From 332177cd2d2da48d1a1f19671cb87e22adbf1f08 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 18 Oct 2021 12:28:55 +0200 Subject: [PATCH 001/287] gnu: Add r-seuratdisk. * gnu/packages/cran.scm (r-seuratdisk): New variable. --- gnu/packages/cran.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 937f53784e..09023a4c79 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -28581,6 +28581,49 @@ (define-public r-seurat discovery of differentially expressed genes and markers.") (license license:gpl3))) +(define-public r-seuratdisk + (let ((commit "163f1aade5bac38ed1e9e9c912283a7e74781610") + (revision "1")) + (package + (name "r-seuratdisk") + (version (git-version "0.0.0.9019" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mojaveazure/seurat-disk") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1d1v8qi6kknzy5fj6bl8akwy74h5h143i00lyidsnqjbwp9n4qnw")))) + (properties `((upstream-name . "SeuratDisk"))) + (build-system r-build-system) + (propagated-inputs + `(("r-cli" ,r-cli) + ("r-crayon" ,r-crayon) + ("r-hdf5r" ,r-hdf5r) + ("r-matrix" ,r-matrix) + ("r-r6" ,r-r6) + ("r-rlang" ,r-rlang) + ("r-seurat" ,r-seurat) + ("r-seuratobject" ,r-seuratobject) + ("r-stringi" ,r-stringi) + ("r-withr" ,r-withr))) + (native-inputs + `(("r-knitr" ,r-knitr))) + (home-page "https://github.com/mojaveazure/seurat-disk") + (synopsis "Interfaces for HDF5-based single cell file formats") + (description + "The h5Seurat file format is specifically designed for the storage and +analysis of multi-modal single-cell and spatially-resolved expression +experiments, for example, from CITE-seq or 10X Visium technologies. It holds +all molecular information and associated metadata, including (for example) +nearest-neighbor graphs, dimensional reduction information, spatial +coordinates and image data, and cluster labels. This package also supports +rapid and on-disk conversion between h5Seurat and AnnData objects, with the +goal of enhancing interoperability between Seurat and Scanpy.") + (license license:gpl3)))) + (define-public r-phangorn (package (name "r-phangorn") From 878744c5e3be6165633ead99c0efdca88abfcaea Mon Sep 17 00:00:00 2001 From: Artem Chernyak Date: Mon, 18 Oct 2021 16:32:38 +0200 Subject: [PATCH 002/287] gnu: udiskie: Update to 2.3.3. * gnu/packages/patches/udiskie-no-appindicator.patch: Remove file. * gnu/local.mk: Remove it. * gnu/packages/freedesktop.scm (udiskie): Update to 2.3.3. [source]: Remove udiskie-no-appindicator patch. [inputs]: Add libindicator. Signed-off-by: Guillaume Le Vaillant --- gnu/local.mk | 1 - gnu/packages/freedesktop.scm | 8 +- .../patches/udiskie-no-appindicator.patch | 155 ------------------ 3 files changed, 3 insertions(+), 161 deletions(-) delete mode 100644 gnu/packages/patches/udiskie-no-appindicator.patch diff --git a/gnu/local.mk b/gnu/local.mk index 142ce24c31..d432829e2d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1843,7 +1843,6 @@ dist_patch_DATA = \ %D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch \ %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \ %D%/packages/patches/ucx-tcp-iface-ioctl.patch \ - %D%/packages/patches/udiskie-no-appindicator.patch \ %D%/packages/patches/ungoogled-chromium-extension-search-path.patch \ %D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch \ %D%/packages/patches/ungoogled-chromium-system-nspr.patch \ diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 514125977b..a002e3e807 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1998,17 +1998,14 @@ (define-public python-cchardet (define-public udiskie (package (name "udiskie") - (version "2.1.0") + (version "2.3.3") (source (origin (method url-fetch) (uri (pypi-uri "udiskie" version)) (sha256 (base32 - "0smib8vbs9q37n7ynhzyw97q16fgdkcdw7fw69lci0xvyq00v1dz")) - ;; Remove support for the libappindicator library of the - ;; Unity desktop environment which is not in Guix. - (patches (search-patches "udiskie-no-appindicator.patch")))) + "0sagdmsc5km32h3jvgj843p8bicrrgfz26qhl04ibxmas6725zr0")))) (build-system python-build-system) (native-inputs `(("asciidoc" ,asciidoc) @@ -2017,6 +2014,7 @@ (define-public udiskie (inputs `(("gobject-introspection" ,gobject-introspection) ("gtk+" ,gtk+) + ("libappindicator" ,libappindicator) ("libnotify" ,libnotify) ("udisks" ,udisks))) (propagated-inputs diff --git a/gnu/packages/patches/udiskie-no-appindicator.patch b/gnu/packages/patches/udiskie-no-appindicator.patch deleted file mode 100644 index df3efe104b..0000000000 --- a/gnu/packages/patches/udiskie-no-appindicator.patch +++ /dev/null @@ -1,155 +0,0 @@ -Remove the support for Unity's appindicator. - -diff -Naur udiskie-2.0.4/completions/zsh/_udiskie udiskie-2.0.4-new/completions/zsh/_udiskie ---- udiskie-2.0.4/completions/zsh/_udiskie 2020-01-21 01:12:40.000000000 +0100 -+++ udiskie-2.0.4-new/completions/zsh/_udiskie 2020-01-23 10:15:46.956141667 +0100 -@@ -18,8 +18,6 @@ - '(-a)'{-A,--no-automount}"[disable automounting]" - '(-N)'{-n,--notify}"[show popup notifications]" - '(-n)'{-N,--no-notify}"[disable notifications]" -- '(--no-appindicator)'--appindicator"[use appindicator for status icon]" -- '(--appindicator)'--no-appindicator"[don't use appindicator]" - '(-T -s)'{-t,--tray}"[show tray icon]" - '(-T -t)'{-s,--smart-tray}"[auto hide tray icon]" - '(-t -s)'{-T,--no-tray}"[disable tray icon]" -diff -Naur udiskie-2.0.4/doc/udiskie.8.txt udiskie-2.0.4-new/doc/udiskie.8.txt ---- udiskie-2.0.4/doc/udiskie.8.txt 2020-01-21 01:12:40.000000000 +0100 -+++ udiskie-2.0.4-new/doc/udiskie.8.txt 2020-01-23 10:16:12.636290647 +0100 -@@ -92,12 +92,6 @@ - *--no-terminal*:: - Disable terminal action. - --*--appindicator*:: -- Use AppIndicator3 for the status icon. Use this on Ubuntu/Unity if no icon is shown. -- --*--no-appindicator*:: -- Use Gtk.StatusIcon for the status icon (default). -- - *--password-cache MINUTES*:: - Cache passwords for LUKS partitions and set the timeout. - -diff -Naur udiskie-2.0.4/udiskie/appindicator.py udiskie-2.0.4-new/udiskie/appindicator.py ---- udiskie-2.0.4/udiskie/appindicator.py 2020-01-21 01:12:40.000000000 +0100 -+++ udiskie-2.0.4-new/udiskie/appindicator.py 1970-01-01 01:00:00.000000000 +0100 -@@ -1,61 +0,0 @@ --""" --Status icon using AppIndicator3. --""" -- --from gi.repository import Gtk --from gi.repository import AppIndicator3 -- --from .async_ import Future -- -- --class AppIndicatorIcon: -- -- """ -- Show status icon using AppIndicator as backend. Replaces -- `udiskie.tray.StatusIcon` on ubuntu/unity. -- """ -- -- def __init__(self, menumaker, _icons): -- self._maker = menumaker -- self._menu = Gtk.Menu() -- self._indicator = AppIndicator3.Indicator.new( -- 'udiskie', -- _icons.get_icon_name('media'), -- AppIndicator3.IndicatorCategory.HARDWARE) -- self._indicator.set_status(AppIndicator3.IndicatorStatus.PASSIVE) -- self._indicator.set_menu(self._menu) -- # Get notified before menu is shown, see: -- # https://bugs.launchpad.net/screenlets/+bug/522152/comments/15 -- dbusmenuserver = self._indicator.get_property('dbus-menu-server') -- self._dbusmenuitem = dbusmenuserver.get_property('root-node') -- self._conn = self._dbusmenuitem.connect('about-to-show', self._on_show) -- self.task = Future() -- menumaker._quit_action = self.destroy -- # Populate menu initially, so libdbusmenu does not ignore the -- # 'about-to-show': -- self._maker(self._menu) -- -- def destroy(self): -- self.show(False) -- self._dbusmenuitem.disconnect(self._conn) -- self.task.set_result(True) -- -- @property -- def visible(self): -- status = self._indicator.get_status() -- return status == AppIndicator3.IndicatorStatus.ACTIVE -- -- def show(self, show=True): -- if show == self.visible: -- return -- status = (AppIndicator3.IndicatorStatus.ACTIVE if show else -- AppIndicator3.IndicatorStatus.PASSIVE) -- self._indicator.set_status(status) -- -- def _on_show(self, menu): -- # clear menu: -- for item in self._menu.get_children(): -- self._menu.remove(item) -- # repopulate: -- self._maker(self._menu) -- self._menu.show_all() -diff -Naur udiskie-2.0.4/udiskie/cli.py udiskie-2.0.4-new/udiskie/cli.py ---- udiskie-2.0.4/udiskie/cli.py 2020-01-21 01:12:40.000000000 +0100 -+++ udiskie-2.0.4-new/udiskie/cli.py 2020-01-23 10:17:13.064810617 +0100 -@@ -287,9 +287,6 @@ - -T, --no-tray Disable tray icon - -m MENU, --menu MENU Tray menu [flat/nested] - -- --appindicator Use appindicator for status icon -- --no-appindicator Don't use appindicator -- - --password-cache MINUTES Set password cache timeout - --no-password-cache Disable password cache - -@@ -312,7 +309,6 @@ - 'notify': True, - 'tray': False, - 'menu': 'flat', -- 'appindicator': False, - 'file_manager': 'xdg-open', - 'terminal': '', - 'password_prompt': 'builtin:gui', -@@ -328,7 +324,6 @@ - '--no-tray': False, - '--smart-tray': 'auto'}), - 'menu': Value('--menu'), -- 'appindicator': Switch('appindicator'), - 'file_manager': OptionalValue('--file-manager'), - 'password_prompt': OptionalValue('--password-prompt'), - 'password_cache': OptionalValue('--password-cache'), -@@ -459,11 +454,7 @@ - - menu_maker = udiskie.tray.UdiskieMenu(self, icons, actions, flat, - config.quickmenu_actions) -- if options['appindicator']: -- import udiskie.appindicator -- TrayIcon = udiskie.appindicator.AppIndicatorIcon -- else: -- TrayIcon = udiskie.tray.TrayIcon -+ TrayIcon = udiskie.tray.TrayIcon - trayicon = TrayIcon(menu_maker, icons) - return udiskie.tray.UdiskieStatusIcon(trayicon, menu_maker, smart) - -diff -Naur udiskie-2.0.4/udiskie.egg-info/SOURCES.txt udiskie-2.0.4-new/udiskie.egg-info/SOURCES.txt ---- udiskie-2.0.4/udiskie.egg-info/SOURCES.txt 2020-01-21 01:12:41.000000000 +0100 -+++ udiskie-2.0.4-new/udiskie.egg-info/SOURCES.txt 2020-01-23 10:17:50.657205798 +0100 -@@ -25,7 +25,6 @@ - test/test_cache.py - test/test_match.py - udiskie/__init__.py --udiskie/appindicator.py - udiskie/async_.py - udiskie/automount.py - udiskie/cache.py -@@ -47,4 +46,4 @@ - udiskie.egg-info/entry_points.txt - udiskie.egg-info/requires.txt - udiskie.egg-info/top_level.txt --udiskie.egg-info/zip-safe -\ Pas de fin de ligne à la fin du fichier -+udiskie.egg-info/zip-safe From 0d03e6ed12732102ec3cd642f4a2d67226271725 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Oct 2021 20:02:45 -0400 Subject: [PATCH 003/287] gnu: linux-libre: Update to 5.14.13. * gnu/packages/linux.scm (linux-libre-5.14-version): Update to 5.14.13. (linux-libre-5.14-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5c21515e20..653863a69f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -346,7 +346,7 @@ (define (%upstream-linux-source version hash) ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-5.14-version "5.14.12") +(define-public linux-libre-5.14-version "5.14.13") (define-public linux-libre-5.14-gnu-revision "gnu") (define deblob-scripts-5.14 (linux-libre-deblob-scripts @@ -356,7 +356,7 @@ (define deblob-scripts-5.14 (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7"))) (define-public linux-libre-5.14-pristine-source (let ((version linux-libre-5.14-version) - (hash (base32 "0dswxf1qk70lms5lph15i7nz3ybwiia58v8zzrmi71ajviwjc9wd"))) + (hash (base32 "0kcn9g5jyd043f75wk3k34j430callzhw5jh1if9zacqq2s7haw3"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.14))) From ff8c81bcc9a780ae9265a0758e3956ea8679a6d2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Oct 2021 20:06:10 -0400 Subject: [PATCH 004/287] gnu: linux-libre 5.10: Update to 5.10.74. * gnu/packages/linux.scm (linux-libre-5.10-version): Update to 5.10.74. (linux-libre-5.10-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 653863a69f..909ca4b73a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -364,7 +364,7 @@ (define-public linux-libre-5.14-pristine-source ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; -(define-public linux-libre-5.10-version "5.10.73") +(define-public linux-libre-5.10-version "5.10.74") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -374,7 +374,7 @@ (define deblob-scripts-5.10 (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "0xhf0g5pra27hnavpy0y3mn05m5hqn5rd3d6fx0a3vr35c1jicpd"))) + (hash (base32 "1c717mn47mg43k7xfwydygwv14r67aksn1c24c99hf8qf14acmap"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) From 278b59c90110c20ddea57f0c6f25cb4e97b47f54 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Oct 2021 20:06:27 -0400 Subject: [PATCH 005/287] gnu: linux-libre 5.4: Update to 5.4.154. * gnu/packages/linux.scm (linux-libre-5.4-version): Update to 5.4.154. (linux-libre-5.4-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 909ca4b73a..b5d1ff87f0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -379,7 +379,7 @@ (define-public linux-libre-5.10-pristine-source (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.153") +(define-public linux-libre-5.4-version "5.4.154") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -389,7 +389,7 @@ (define deblob-scripts-5.4 (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0jaz57sd51xqc7w8k3f43bfc5mdsh1413mdngqqsgr8isv4hg7vd"))) + (hash (base32 "01iwbz1ncakw90yykdw3cx04wnclwf1qa8nmlis08svbcvs99285"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) From 5489d69237ce85b3e5ca31ffe56a424f91f9ff4d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Oct 2021 20:06:41 -0400 Subject: [PATCH 006/287] gnu: linux-libre 4.19: Update to 4.19.212. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.212. (linux-libre-4.19-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b5d1ff87f0..bdabc85e5c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -394,7 +394,7 @@ (define-public linux-libre-5.4-pristine-source (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.211") +(define-public linux-libre-4.19-version "4.19.212") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -404,7 +404,7 @@ (define deblob-scripts-4.19 (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "1m3y5gsf5s8bb4jxkri20dlxi8aiqabzaijj2h1svz4r19ca8j7v"))) + (hash (base32 "0hxn3mzxh4hpnrkyjv9gipb81k6p0zd07a3xvb6fb6njvmwdpvsw"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) From 07cfae78c62cdd088d509b0036bcc8250a1265f5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Oct 2021 20:07:00 -0400 Subject: [PATCH 007/287] gnu: linux-libre 4.14: Update to 4.14.251. * gnu/packages/linux.scm (linux-libre-4.14-version): Update to 4.14.251. (linux-libre-4.14-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index bdabc85e5c..41814f20d8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -409,7 +409,7 @@ (define-public linux-libre-4.19-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.250") +(define-public linux-libre-4.14-version "4.14.251") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts @@ -419,7 +419,7 @@ (define deblob-scripts-4.14 (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "0zbf6gxm8iwf7cra310gfd0zyj8l9ckdahky9w6wb9wlznwkvd54"))) + (hash (base32 "08g1i6wylwi50rns2grdi9f0m8np64qvfqb28drafy772m2klinp"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) From f2efac52b3a71cedf870ddba526c2d889b1a2dee Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Oct 2021 20:07:17 -0400 Subject: [PATCH 008/287] gnu: linux-libre 4.9: Update to 4.9.287. * gnu/packages/linux.scm (linux-libre-4.9-version): Update to 4.9.287. (linux-libre-4.9-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 41814f20d8..c424eee1fa 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -424,7 +424,7 @@ (define-public linux-libre-4.14-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.286") +(define-public linux-libre-4.9-version "4.9.287") (define-public linux-libre-4.9-gnu-revision "gnu1") (define deblob-scripts-4.9 (linux-libre-deblob-scripts @@ -434,7 +434,7 @@ (define deblob-scripts-4.9 (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "0id62p43dmkl9ir278p0dsfg3q7m1d8rlxv0c9qi1pzalkygv8p2"))) + (hash (base32 "1hlpxnlz0y5vxcmkavsirk2kfb2l34fcvmhlcb99slh28xkjhhfl"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) From 757f566b039d4a01d2acc5fb941a61598bab0cec Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Oct 2021 20:07:33 -0400 Subject: [PATCH 009/287] gnu: linux-libre 4.4: Update to 4.4.289. * gnu/packages/linux.scm (linux-libre-4.4-version): Update to 4.4.289. (linux-libre-4.4-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c424eee1fa..37cc427e56 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -439,7 +439,7 @@ (define-public linux-libre-4.9-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.288") +(define-public linux-libre-4.4-version "4.4.289") (define-public linux-libre-4.4-gnu-revision "gnu1") (define deblob-scripts-4.4 (linux-libre-deblob-scripts @@ -449,7 +449,7 @@ (define deblob-scripts-4.4 (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "028w3yzmzymy7l1nf3n1pfbg95hfi4ilphkyl00ddgj8sfm542c7"))) + (hash (base32 "1g77kf0yzwvpdxs3kw7wdvb07mmk3zm6ydjcw5dnsza8q2inl69k"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) From 7c78397593c7349a151313e977714bd4b82165e2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 18 Oct 2021 17:27:18 +0200 Subject: [PATCH 010/287] gnu: hdf5@1.12: Update to 1.12.1. * gnu/packages/maths.scm (hdf5-1.12): Update to 1.12.1. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 038ca5518c..f18d3cc42b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1297,7 +1297,7 @@ (define-public hdf5-1.10 (define-public hdf5-1.12 (package (inherit hdf5-1.8) - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) @@ -1311,7 +1311,7 @@ (define-public hdf5-1.12 (take (string-split version #\.) 2)) "/src/hdf5-" version ".tar.bz2"))) (sha256 - (base32 "0qazfslkqbmzg495jafpvqp0khws3jkxa0z7rph9qvhacil6544p")) + (base32 "074g3z504xf77ff38igs30i1aqxpm508p7yw78ykva7dncrgbyda")) (patches (search-patches "hdf5-config-date.patch")))))) (define-public hdf5 From 7532c17a957f056ec92acde92af7e75c9dc86183 Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 18 Oct 2021 13:37:08 -0500 Subject: [PATCH 011/287] gnu: font-borg-sans-mono: Update to 0.3.3. * gnu/packages/fonts.scm (font-borg-sans-mono): Update to 0.3.3. Signed-off-by: Tobias Geerinckx-Rice --- gnu/packages/fonts.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index dc7add8667..cb00d90d59 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -845,7 +845,7 @@ (define-public font-google-roboto (define-public font-borg-sans-mono (package (name "font-borg-sans-mono") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) @@ -854,7 +854,7 @@ (define-public font-borg-sans-mono "/releases/download/v" version "/borg-sans-mono.zip")) (sha256 (base32 - "0q16gw3ry9hpgbl2636qq00ap59xyx15jf3gzvx2ybz3gja164c4")))) + "0xzi866ag9w4q114bn984yjfy72pmfs563v5yy1rkbqycphgwwyp")))) (build-system font-build-system) (home-page "https://github.com/charje/borg-sans-mono") (synopsis "The Borg Sans Mono font") From 860c2077ebcf39e8b76ad492f64a7c8e8b9de05e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 18 Oct 2021 21:57:47 +0200 Subject: [PATCH 012/287] gnu: python-nbxmpp: Update to 2.0.4. * gnu/packages/messaging.scm (python-nbxmpp): Update to 2.0.4. --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 7f0c9798b1..69d1ed87c1 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1040,14 +1040,14 @@ (define-public znc (define-public python-nbxmpp (package (name "python-nbxmpp") - (version "2.0.2") + (version "2.0.4") (source (origin (method url-fetch) (uri (pypi-uri "nbxmpp" version)) (sha256 - (base32 "1482fva70i01w60fk70c0fhqmqgzi1fb4xflllz2v6c8mdqkd1m3")))) + (base32 "1s2phiipq7ks8vrd93p96dzd5wgmgg8q9h2rxsnh2gg7iy06gj9c")))) (build-system python-build-system) (native-inputs `(("glib:bin" ,glib "bin"))) From f3b64ad54ed7067094d752921f85341cdc0722fe Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 18 Oct 2021 21:58:16 +0200 Subject: [PATCH 013/287] gnu: gajim: Update to 1.3.3. * gnu/packages/messaging.scm (gajim): Update to 1.3.3. [arguments]: Remove 'disable-failing-tests phase, as all now pass. Don't explicitly return #t from other phases. --- gnu/packages/messaging.scm | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 69d1ed87c1..d07c1c6566 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1069,7 +1069,7 @@ (define-public python-nbxmpp (define-public gajim (package (name "gajim") - (version "1.3.2") + (version "1.3.3") (source (origin (method url-fetch) @@ -1078,7 +1078,7 @@ (define-public gajim (version-major+minor version) "/gajim-" version ".tar.gz")) (sha256 - (base32 "1vjzv8zg9s393xw81klcgbkn4h6j2blzla9iil5kqfrw7wmldskh")) + (base32 "1337qkpcv7j0fgws9scnk82mn2l7s17060vmrbh3ihinmxmbxg6x")) (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) (build-system python-build-system) (arguments @@ -1092,13 +1092,6 @@ (define-public gajim (guix build utils)) #:phases (modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda _ - ;; ModuleNotFoundError: No module named 'gajim.gui.emoji_data' - ;; https://dev.gajim.org/gajim/gajim/-/issues/10478 - (delete-file "test/lib/gajim_mocks.py") - (delete-file "test/unit/test_gui_interface.py") - #t)) (replace 'check (lambda _ ;; Tests require a running X server. @@ -1106,8 +1099,7 @@ (define-public gajim (setenv "DISPLAY" ":1") ;; For missing '/etc/machine-id'. (setenv "DBUS_FATAL_WARNINGS" "0") - (invoke "dbus-launch" "python" "./setup.py" "test") - #t)) + (invoke "dbus-launch" "python" "./setup.py" "test"))) (add-after 'install 'glib-or-gtk-compile-schemas (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) (add-after 'install 'glib-or-gtk-wrap @@ -1123,8 +1115,7 @@ (define-public gajim (wrap-program file `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))) - '("gajim" "gajim-remote" "gajim-history-manager"))) - #t))))) + '("gajim" "gajim-remote" "gajim-history-manager")))))))) (native-search-paths (list (search-path-specification From 8ee9516a3a5d7d36131318b5b0ccb1b04793d05a Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 14 Oct 2021 17:58:57 +0200 Subject: [PATCH 014/287] gnu: julia-coordinatetransformations: Enable tests. * gnu/packages/julia-xyz.scm (julia-coordinatetransformations)[arguments]: Remove. [native-inputs]: Add julia-documenter, julia-forwarddiff, julia-unitful. Signed-off-by: Efraim Flashner --- gnu/packages/julia-xyz.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index c1ebc0fba1..62b6e4edfb 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -806,14 +806,12 @@ (define-public julia-coordinatetransformations (sha256 (base32 "15zbkn32v7xlz7559s0r5a0vkwmjwsswxaqpzijly4lky4jnp33d")))) (build-system julia-build-system) - (arguments - `(#:tests? #f)) ; Documenter.jl not packaged yet. (propagated-inputs `(("julia-staticarrays" ,julia-staticarrays))) - ;(native-inputs - ; `(("julia-documenter" ,julia-documenter) - ; ("julia-forwarddiff" ,julia-forwarddiff) - ; ("julia-unitful" ,julia-unitful))) + (native-inputs + `(("julia-documenter" ,julia-documenter) + ("julia-forwarddiff" ,julia-forwarddiff) + ("julia-unitful" ,julia-unitful))) (home-page "https://github.com/JuliaGeometry/CoordinateTransformations.jl") (synopsis "Coordinate transformations in Julia") (description "@code{CoordinateTransformations} is a Julia package to manage From 78f48af0fe0b6479134e03d1b2385651cf8fc0b6 Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 14 Oct 2021 17:58:58 +0200 Subject: [PATCH 015/287] gnu: julia-colortypes: Enable tests. * gnu/packages/julia-xyz (julia-colortypes)[arguments]: Remove. [native-inputs]: Add julia-documenter. Signed-off-by: Efraim Flashner --- gnu/packages/julia-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 62b6e4edfb..89bb2c0f92 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -624,11 +624,11 @@ (define-public julia-colortypes (file-name (git-file-name name version)) (sha256 (base32 "0n7h70caqv7yd0khjhn90iax62r73mcif8qzkwj5b4q46li1r8ih")))) - (arguments - '(#:tests? #f)) ;require Documenter, not packaged yet (build-system julia-build-system) (propagated-inputs `(("julia-fixedpointnumbers" ,julia-fixedpointnumbers))) + (native-inputs + `(("julia-documenter" ,julia-documenter))) (home-page "https://github.com/JuliaGraphics/ColorTypes.jl") (synopsis "Basic color types and constructor") (description "This minimalistic package serves as the foundation for From d36a41279e631ebec90255d640e94a159c2f3694 Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 14 Oct 2021 17:58:59 +0200 Subject: [PATCH 016/287] gnu: julia-irtools: Enable tests. * gnu/packages/julia-xyz (julia-irtools)[arguements]: Remove. [native-inputs]: Add julia-documenter. Signed-off-by: Efraim Flashner --- gnu/packages/julia-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 89bb2c0f92..3dd12b60b8 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -2461,11 +2461,11 @@ (define-public julia-irtools (file-name (git-file-name name version)) (sha256 (base32 "11334fcg2slpwcj0raxf457brhf7pxglgxc6cy8q58ggrpxqfqql")))) - (arguments - '(#:tests? #f)) ;require Documenter, not packaged yet (build-system julia-build-system) (propagated-inputs `(("julia-macrotools" ,julia-macrotools))) + (native-inputs + `(("julia-documenter" ,julia-documenter))) (home-page "https://github.com/FluxML/IRTools.jl") (synopsis "Simple and flexible IR format") (description "This package provides a simple and flexible IR format, From c2051168a3d1b3ff7e8a0a3f46bf9cc3e875476b Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 14 Oct 2021 17:59:00 +0200 Subject: [PATCH 017/287] gnu: julia-paddedviews: Enable tests. * gnu/packages/julia-xyz (julia-paddedviews)[arguments]: Remove. [native-inputs]: Add julia-documenter. Signed-off-by: Efraim Flashner --- gnu/packages/julia-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 3dd12b60b8..07b6265473 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -3123,10 +3123,10 @@ (define-public julia-paddedviews (sha256 (base32 "0ran2vj6ahlzib0g77y7g0jhavy3k9s2mqq23ybpgp9z677wf26h")))) (build-system julia-build-system) - (arguments - '(#:tests? #f)) ;require Documenter, not packaged yet (propagated-inputs `(("julia-offsetarrays" ,julia-offsetarrays))) + (native-inputs + `(("julia-documenter" ,julia-documenter))) (home-page "https://github.com/JuliaArrays/PaddedViews.jl") (synopsis "Add virtual padding to the edges of an array") (description "@code{PaddedViews} provides a simple wrapper type, From e6cda550e2cab3d9210f2ba46220d50d6d8f922a Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 14 Oct 2021 17:59:01 +0200 Subject: [PATCH 018/287] gnu: julia-stackviews: Enable tests. * gnu/packages/julia-xyz (julia-stackviews)[arguments]: Remove #:tests?. [native-inputs]: Add julia-aqua and julia-documenter. Signed-off-by: Efraim Flashner --- gnu/packages/julia-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 07b6265473..9604460600 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -4123,8 +4123,7 @@ (define-public julia-stackviews (base32 "1fwiaxdpx1z9dli3jr8kyraych0jbdiny3qklynf0r13px25r6i7")))) (build-system julia-build-system) (arguments - `(#:tests? #f ; Documenter.jl not packaged yet - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'skip-doctest (lambda _ @@ -4133,9 +4132,9 @@ (define-public julia-stackviews #t))))) (propagated-inputs `(("julia-offsetarrays" ,julia-offsetarrays))) - ;(native-inputs - ; `(("julia-aqua" ,julia-aqua) - ; ("julia-documenter" ,julia-documenter))) + (native-inputs + `(("julia-aqua" ,julia-aqua) + ("julia-documenter" ,julia-documenter))) (home-page "https://github.com/JuliaArrays/StackViews.jl") (synopsis "No more catcat") (description "StackViews provides only one array type: @code{StackView}. From 4b7b94cac86e08a063cf4a8919912ca9f025a6b6 Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 14 Oct 2021 17:59:02 +0200 Subject: [PATCH 019/287] gnu: Add julia-functors. * gnu/packages/julia-xyz.scm (julia-functors): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/julia-xyz.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 9604460600..a1f3cc4cfb 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -1743,6 +1743,31 @@ (define-public julia-functionwrappers arbitrary functions.") (license license:expat))) +(define-public julia-functors + (package + (name "julia-functors") + (version "0.2.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FluxML/Functors.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03ry1wn1y2jssq65l29bi6q4ki041aa6gl1nd2w6cgl00k2mrxf3")))) + (build-system julia-build-system) + (home-page "https://fluxml.ai/Functors.jl/stable/") + (synopsis "Design pattern for structures as in machine learning") + (description "This package provides tools to express a design pattern for +dealing with large/ nested structures, as in machine learning and +optimisation. For large machine learning models it can be cumbersome or +inefficient to work with parameters as one big, flat vector, and structs help +in managing complexity; but it is also desirable to easily operate over all +parameters at once, e.g. for changing precision or applying an optimiser +update step.") + (license license:expat))) + (define-public julia-fuzzycompletions (package (name "julia-fuzzycompletions") From dfd7e8215f1d11d128f944abf3890189a1b32fbd Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 14 Oct 2021 17:59:03 +0200 Subject: [PATCH 020/287] gnu: Add julia-transcodingstreams. * gnu/packages/julia-xyz.scm (julia-transcodingstreams): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/julia-xyz.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index a1f3cc4cfb..3ece040c5b 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -4563,6 +4563,34 @@ (define-public julia-tracker automatic differentiation for its machine learning platform.") (license license:expat))) +(define-public julia-transcodingstreams + (package + (name "julia-transcodingstreams") + (version "0.9.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaIO/TranscodingStreams.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1w3klii293caqiclfh28jggv7f53xclm9fr6xmw38brwrn1hjb48")))) + (build-system julia-build-system) + (arguments + `(#:tests? #f)) ; Circular dependency with various codecs. + (home-page "https://github.com/JuliaIO/TranscodingStreams.jl") + (synopsis "Fast I/O transcoding data streams") + (description "This package provides tools for transcoding data streams +which are: +@itemize +@item fast: small overhead and specialized methods +@item consistent: basic I/O operations work as expected +@item generic: support any I/O objects like files, buffers, pipes, etc. +@item extensible: easy definition for new codec to transcode data +@end itemize") + (license license:expat))) + (define-public julia-typedtables (package (name "julia-typedtables") From 87a6109c337645ef734cb2bf69fe31327339948b Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 14 Oct 2021 17:59:04 +0200 Subject: [PATCH 021/287] gnu: Add julia-codeczlib. * gnu/packages/julia-xyz.scm (julia-codeczlib): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/julia-xyz.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 3ece040c5b..a87c9d1834 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -561,6 +561,38 @@ (define-public julia-chainrulestestutils dependencies, while keeping @code{ChainRulesCore.jl} as light-weight as possible.") (license license:expat))) +(define-public julia-codeczlib + (package + (name "julia-codeczlib") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaIO/CodecZlib.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xm603nylkwk4bzx66zv1g3syzrvn3jh9spdx7kvcvgszzyrrgh4")))) + (build-system julia-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-files-writable + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each make-file-writable + (find-files out "\\.gz$")) + #t)))))) + (propagated-inputs + `(("julia-zlib-jll" ,julia-zlib-jll) + ("julia-transcodingstreams" ,julia-transcodingstreams))) + (home-page "https://github.com/JuliaIO/CodecZlib.jl") + (synopsis "Zlib codecs for @code{TranscodingStreams.jl}") + (description "This package provides zlib codecs for +@code{TranscodingStreams.jl}.") + (license license:expat))) + (define-public julia-colors (package (name "julia-colors") From 14f8d58752c2f44b039e4f3b6e7f094ecd0ff1dd Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 14 Oct 2021 17:59:05 +0200 Subject: [PATCH 022/287] gnu: Add julia-media. * gnu/packages/julia-xyz.scm (julia-media): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/julia-xyz.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index a87c9d1834..58f58f36ec 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -2865,6 +2865,32 @@ (define-public julia-measures resolving them into absolute units.") (license license:expat))) +(define-public julia-media + (package + (name "julia-media") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JunoLab/Media.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05jq9j3vs8yfj2lwz3sh1vk5rha06xdcikp9s2q3dn316vryy6di")))) + (build-system julia-build-system) + ;; Package without Project.toml + (arguments + '(#:julia-package-name "Media")) + (propagated-inputs + `(("julia-macrotools" ,julia-macrotools))) + (home-page "https://github.com/JunoLab/Media.jl") + (synopsis "Unified measure and coordinates types") + (description "This package provides a display system which enables the +user handle multiple input/output devices and decide what media types get +displayed where.") + (license license:expat))) + (define-public julia-missings (package (name "julia-missings") From 81b31ca8e1bb4c93e8910f1d3e2e0cf3e8435286 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 5 Oct 2021 15:34:02 +0300 Subject: [PATCH 023/287] gnu: Add gr-framework. * gnu/packages/graphics.scm (gr-framework): New variable. --- gnu/packages/graphics.scm | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 3f2be5766c..9a5e2f2195 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -1254,6 +1254,56 @@ (define-public openscenegraph-3.4 `(("libjpeg" ,libjpeg-turbo) ,@(package-inputs openscenegraph))))) +(define-public gr-framework + (package + (name "gr-framework") + (version "0.58.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sciapp/gr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q1rz4iyxbh0dc22y4w28ry3hr0yypdwdm6pw2zlwgjya7wkbvsw")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "3rdparty") + #t)))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) ; no test target + (inputs + `(("bzip2" ,bzip2) + ("cairo" ,cairo) + ("fontconfig" ,fontconfig) + ("ffmpeg" ,ffmpeg) + ("freetype" ,freetype) + ("ghostscript" ,ghostscript) + ("glfw" ,glfw) + ("libjpeg-turbo" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("libx11" ,libx11) + ("libxft" ,libxft) + ("libxt" ,libxt) + ("pixman" ,pixman) + ("qtbase" ,qtbase-5) + ("qhull" ,qhull) + ("zlib" ,zlib))) + (home-page "https://gr-framework.org/") + (synopsis "Graphics library for visualisation applications") + (description "GR is a universal framework for cross-platform visualization +applications. It offers developers a compact, portable and consistent graphics +library for their programs. Applications range from publication quality 2D +graphs to the representation of complex 3D scenes. GR is essentially based on +an implementation of a @acronym{GKS, Graphical Kernel System}. As a +self-contained system it can quickly and easily be integrated into existing +applications (i.e. using the @code{ctypes} mechanism in Python or @code{ccall} +in Julia).") + (license license:expat))) (define-public openmw-openscenegraph ;; OpenMW prefers its own fork of openscenegraph: From c5258ee6f4d65ddf5960298c1159e4e53b0db2d1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 5 Oct 2021 14:17:19 +0300 Subject: [PATCH 024/287] gnu: Add wl-clipboard-x11. * gnu/packages/xdisorg.scm (wl-clipboard-x11): New variable. --- gnu/packages/xdisorg.scm | 48 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 50b4d5d46a..282763b8aa 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2015 Florian Paul Schmidt ;;; Copyright © 2016 Christine Lemmer-Webber ;;; Copyright © 2016, 2018 Ricardo Wurmus -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017, 2019, 2020 Marius Bakke ;;; Copyright © 2016 Petter @@ -68,6 +68,7 @@ (define-module (gnu packages xdisorg) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) @@ -83,6 +84,7 @@ (define-module (gnu packages xdisorg) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -2381,6 +2383,50 @@ (define-public wl-clipboard Wayland.") (license license:gpl3+))) +(define-public wl-clipboard-x11 + (package + (name "wl-clipboard-x11") + (version "5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/brunelli/wl-clipboard-x11") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y7jv7rps0sdzmm859wn2l8q4pg2x35smcrm7mbfxn5vrga0bslb")))) + (build-system copy-build-system) + (arguments + `(#:install-plan + '(("src/" "bin/") + ("man/" "man/man1")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-binary + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (wl-clipboard (assoc-ref inputs "wl-clipboard"))) + (wrap-program (string-append out "/bin/wl-clipboard-x11") + `("PATH" prefix (,(string-append wl-clipboard "/bin"))))) + #t)) + (add-after 'wrap-binary 'symlink-utilities + ;; As seen in the Makefile. + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) + (symlink "wl-clipboard-x11" (string-append bin "xclip")) + (symlink "wl-clipboard-x11" (string-append bin "xsel"))) + #t))))) + (inputs + `(("bash-minimal" ,bash-minimal) + ("wl-clipboard" ,wl-clipboard))) + (home-page "https://github.com/brunelli/wl-clipboard-x11") + (synopsis "Use wl-clipboard as a drop-in replacement to X11 clipboard tools") + (description "This package provides a wrapper script around +@code{x11-clipboard} to use it as a clipboard on X11 also. It also contains +helper scripts for @code{xclip} and @code{xsel} to assist with the transition.") + (license license:gpl3+))) + (define-public autocutsel (package (name "autocutsel") From 340a91d9056b3d2a444a4a65e9a09370ba547c40 Mon Sep 17 00:00:00 2001 From: la snesne Date: Tue, 19 Oct 2021 16:19:23 +0900 Subject: [PATCH 025/287] gnu: emacs-treemacs-extra: Add missing inputs * gnu/packages/emacs-xyz.scm (emacs-treemacs-extra)[propagated-inputs]: Add emacs-all-the-icons, emacs-perspective Signed-off-by: Nicolas Goaziou --- gnu/packages/emacs-xyz.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index eecec57b3e..15e65d202b 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -102,6 +102,7 @@ ;;; Copyright © 2021 Matthew James Kraai ;;; Copyright © 2021 Noisytoot ;;; Copyright © 2021 Simon South +;;; Copyright © 2021 la snesne ;;; ;;; This file is part of GNU Guix. ;;; @@ -23902,9 +23903,11 @@ (define-public emacs-treemacs-extra (name "emacs-treemacs-extra") (propagated-inputs `(,@(package-propagated-inputs emacs-treemacs) + ("emacs-all-the-icons" ,emacs-all-the-icons) ("emacs-evil" ,emacs-evil) ("emacs-magit" ,emacs-magit) ("emacs-projectile" ,emacs-projectile) + ("emacs-perspective" ,emacs-perspective) ("emacs-persp-mode" ,emacs-persp-mode))) (arguments (substitute-keyword-arguments From a4ea3c30b4244ce8dbfb9331c55df3d60061e51b Mon Sep 17 00:00:00 2001 From: la snesne Date: Tue, 19 Oct 2021 16:19:24 +0900 Subject: [PATCH 026/287] gnu: emacs-treemacs: Update to 2.9.4. * gnu/packages/emacs-xyz.scm (emacs-treemacs): Update to 2.9.4. Signed-off-by: Nicolas Goaziou --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 15e65d202b..e1519451a1 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -23822,7 +23822,7 @@ (define-public emacs-pfuture (define-public emacs-treemacs (package (name "emacs-treemacs") - (version "2.9.3") + (version "2.9.4") (source (origin (method git-fetch) @@ -23831,7 +23831,7 @@ (define-public emacs-treemacs (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65")))) + (base32 "1g2fy2qkscqx01av92hpjbr6qld8s1gk59cdjbff8fm0vlx8xk2p")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-ace-window" ,emacs-ace-window) From 39e9393b360160ca22d07305aadd6266a7b75f85 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 19 Oct 2021 13:11:48 +0200 Subject: [PATCH 027/287] gnu: emacs-shell-command+: Update to 2.3.1. * gnu/packages/emacs-xyz.scm (emacs-shell-command+): Update to 2.3.1. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index e1519451a1..1aa7e1d624 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -28671,7 +28671,7 @@ (define-public emacs-pcmpl-args (define-public emacs-shell-command+ (package (name "emacs-shell-command+") - (version "2.2.0") + (version "2.3.1") (source (origin (method git-fetch) (uri (git-reference @@ -28679,7 +28679,7 @@ (define-public emacs-shell-command+ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1micvz6smhjma7qbka8h3w0crb3sgrxf9lz2548iqfgww50gb0lj")))) + (base32 "1lrwp73klx5cb74i7iiq7r83dy55qxg1ivnrhfyvk8y2l9hfz30v")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/shell-command+.html") (synopsis "Extended Emacs @code{shell-command}") From d6d8f34c4039ebbadace2ee8bdeed95a8546722c Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 19 Oct 2021 13:14:19 +0200 Subject: [PATCH 028/287] gnu: emacs-company-quickhelp: Update to 2.3.0. * gnu/packages/emacs-xyz.scm (emacs-company-quickhelp): Update to 2.3.0. --- gnu/packages/emacs-xyz.scm | 44 +++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 1aa7e1d624..31fe24057f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -6419,31 +6419,27 @@ (define-public emacs-irony-eldoc (license license:gpl3+))) (define-public emacs-company-quickhelp - ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason, - ;; so we use the latest 2.2.0 commit instead - (let ((commit "479676cade80a9f03802ca3d956591820ed5c537") - (revision "1")) - (package - (name "emacs-company-quickhelp") - (version (git-version "2.2.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/expez/company-quickhelp") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-pos-tip" ,emacs-pos-tip) - ("emacs-company" ,emacs-company))) - (home-page "https://github.com/expez/company-quickhelp") - (synopsis "Popup documentation for completion candidates") - (description "@code{company-quickhelp} shows documentation for the + (package + (name "emacs-company-quickhelp") + (version "2.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/expez/company-quickhelp") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-pos-tip" ,emacs-pos-tip) + ("emacs-company" ,emacs-company))) + (home-page "https://github.com/expez/company-quickhelp") + (synopsis "Popup documentation for completion candidates") + (description "@code{company-quickhelp} shows documentation for the completion candidate when using the Company text completion framework.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-math-symbol-lists (package From a012b27980d9e96427c2d34d276c39385c982a58 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 19 Oct 2021 13:20:03 +0200 Subject: [PATCH 029/287] gnu: giac: Update to 1.7.0-39. * gnu/packages/algebra.scm (giac): Update to 1.7.0-39. --- gnu/packages/algebra.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index ad2ad7d96b..3c21a1b556 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -343,7 +343,7 @@ (define-public cmh (define-public giac (package (name "giac") - (version "1.7.0-37") + (version "1.7.0-39") (source (origin (method url-fetch) @@ -355,7 +355,7 @@ (define-public giac "~parisse/debian/dists/stable/main/source/" "giac_" version ".tar.gz")) (sha256 - (base32 "1mzqf7r40ppmzixf4s6sjk76y0wpcf6xp7hklzrn2l1910ld61pz")))) + (base32 "0mmdzhnahiz6hr7a4brnjdmmm4mcaqkigrh1b6n9z5l46bilaii3")))) (build-system gnu-build-system) (arguments `(#:modules ((ice-9 ftw) From 610d8c8967a7fd521f890f3f960de92bf4355ae8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 19 Oct 2021 19:07:42 +0200 Subject: [PATCH 030/287] gnu: dblatex: Update to 0.3.12. * gnu/packages/docbook.scm (dblatex): Update to 0.3.12. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/docbook.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index ba90376e8b..ae5bc5d895 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -387,15 +387,15 @@ (define iso-8879-entities (define-public dblatex (package (name "dblatex") - (version "0.3.11") + (version "0.3.12") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/dblatex/dblatex/" - "dblatex-" version "/dblatex-" + "dblatex-" version "/dblatex3-" version ".tar.bz2")) (sha256 (base32 - "0rp1bc2lgisigscq1i7zxfd2qdaxxxld6khbcxss4pq7fpi9fzkv")))) + "0yd09nypswy3q4scri1dg7dr99d7gd6r2dwx0xm81l9f4y32gs0n")))) (build-system python-build-system) ;; TODO: Add xfig/transfig for fig2dev utility (inputs @@ -456,8 +456,7 @@ (define-public dblatex (string-append (assoc-ref inputs input) "/bin")) '("libxslt" "texlive" - "imagemagick" "inkscape")))) - #t)))))) + "imagemagick" "inkscape")))))))))) (home-page "http://dblatex.sourceforge.net") (synopsis "DocBook to LaTeX Publishing") (description From 7455a5a3ee8ff13dde9c1215771215154f5e9b53 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 19 Oct 2021 19:07:54 +0200 Subject: [PATCH 031/287] gnu: jasper: Update to 2.0.33. * gnu/packages/image.scm (jasper): Update to 2.0.33. --- gnu/packages/image.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 5bce96a81e..49d12d2eeb 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1417,7 +1417,7 @@ (define-public devil (define-public jasper (package (name "jasper") - (version "2.0.32") + (version "2.0.33") (source (origin (method git-fetch) (uri (git-reference @@ -1426,7 +1426,7 @@ (define-public jasper (file-name (git-file-name name version)) (sha256 (base32 - "0hhggh2jxp1wn7nwzvbx2z1vi1ih8wmz4av17bljyn0c3mxjs22k")))) + "0p3fj89gkhd2ys5ci75cwb6p7rvb2pf52jd8c9d4g76qp846njnx")))) (build-system cmake-build-system) (inputs `(("libjpeg" ,libjpeg-turbo))) From d9c7a10b3d5e7e02075a942fad3ae8c0693ca0d5 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 20 Oct 2021 01:08:08 +0530 Subject: [PATCH 032/287] gnu: phockup: Update to 1.7.1. * gnu/packages/image.scm (phockup): Update to 1.7.1. [arguments]: In configure phase, substitute the more specific "'exiftool" instead of "exiftool". Add wrap-program phase. Do not return #t from custom phases. [inputs]: Add python-tqdm. --- gnu/packages/image.scm | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 49d12d2eeb..8a632c85d3 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice ;;; Copyright © 2016 Eric Bavier -;;; Copyright © 2016, 2017, 2020 Arun Isaac +;;; Copyright © 2016, 2017, 2020, 2021 Arun Isaac ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2017 Nikita ;;; Copyright © 2017,2019,2020 Hartmut Goebel @@ -2348,7 +2348,7 @@ (define-public mypaint (define-public phockup (package (name "phockup") - (version "1.5.9") + (version "1.7.1") (source (origin (method git-fetch) @@ -2358,7 +2358,7 @@ (define-public phockup (file-name (git-file-name name version)) (sha256 (base32 - "13ajj0xch7yfqaaxbw0awxs0fz17n1rxir4gqh2wcgxjysqk1j2y")))) + "0nqd89g4ppwc96gxyh9npain7ipnzj66p6n3irsvhrpi4k54h388")))) (build-system copy-build-system) (arguments `(#:install-plan '(("src" "share/phockup/") @@ -2368,10 +2368,10 @@ (define-public phockup (add-after 'unpack 'configure (lambda* (#:key inputs #:allow-other-keys) (substitute* (list "src/dependency.py" "src/exif.py") - (("exiftool") - (string-append (assoc-ref inputs "perl-image-exiftool") - "/bin/exiftool"))) - #t)) + (("'exiftool") + (string-append "'" + (assoc-ref inputs "perl-image-exiftool") + "/bin/exiftool"))))) (add-before 'install 'check (lambda _ (invoke "pytest"))) @@ -2380,11 +2380,18 @@ (define-public phockup (let ((out (assoc-ref outputs "out"))) (mkdir (string-append out "/bin")) (symlink (string-append out "/share/phockup/phockup.py") - (string-append out "/bin/phockup"))) - #t))))) + (string-append out "/bin/phockup"))))) + (add-after 'install-bin 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/phockup") + `("PYTHONPATH" prefix + ,(search-path-as-string->list + (getenv "PYTHONPATH")))))))))) (inputs `(("perl-image-exiftool" ,perl-image-exiftool) - ("python" ,python))) + ("python" ,python) + ("python-tqdm" ,python-tqdm))) (native-inputs `(("python-pytest" ,python-pytest) ("python-pytest-mock" ,python-pytest-mock))) From 96c747cb29c0b762c8a2999a3dcc16085efd3e46 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 19 Oct 2021 23:36:57 +0200 Subject: [PATCH 033/287] doc: Fix typo. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Invoking guix system, Invoking guix home): Fix ‘are […] two month old’ typo. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a49abc0554..63bb22764a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -33901,7 +33901,7 @@ guix system delete-generations @end example You can also select the generations you want to delete. The example below -deletes all the system generations that are more than two month old: +deletes all the system generations that are more than two months old: @example guix system delete-generations 2m @@ -36059,7 +36059,7 @@ guix home delete-generations @end example You can also select the generations you want to delete. The example below -deletes all the home generations that are more than two month old: +deletes all the home generations that are more than two months old: @example guix home delete-generations 2m From 4d82dbea45a00a6cec9df736b3c1506f9050065b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 20 Oct 2021 00:35:19 +0200 Subject: [PATCH 034/287] gnu: allegro: Update to 4.4.3.1. * gnu/packages/game-development.scm (allegro): Update to 4.4.3.1. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/game-development.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index a22167e31b..d7bcfc1741 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -866,7 +866,7 @@ (define-public love-nuklear (define-public allegro-4 (package (name "allegro") - (version "4.4.3") + (version "4.4.3.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/liballeg/allegro5/" @@ -874,7 +874,7 @@ (define-public allegro-4 version ".tar.gz")) (sha256 (base32 - "1d5ws3ihvpa6f4qc6a6drq31pajw6bblxifr4kcxzqj9br1nw28y")))) + "1m6lz35nk07dli26kkwz3wa50jsrxs1kb6w1nj14a911l34xn6gc")))) (build-system cmake-build-system) (arguments '(#:phases @@ -886,8 +886,7 @@ (define-public allegro-4 ;; unconditionally clobbered in the build script. (substitute* '("CMakeLists.txt") (("ADDON_LINKAGE STATIC") - "ADDON_LINKAGE SHARED")) - #t))))) + "ADDON_LINKAGE SHARED"))))))) (inputs `(("glu" ,glu) ("libpng" ,libpng) From f51933aabcce43b837c06eda7add79df7b133850 Mon Sep 17 00:00:00 2001 From: Marcel Schilling Date: Wed, 20 Oct 2021 06:25:13 +0000 Subject: [PATCH 035/287] gnu: Add r-mhg. * gnu/packages/cran.scm (r-mhg): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/cran.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 09023a4c79..135baf6aa5 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -28879,6 +28879,26 @@ (define-public r-lgr well as email and push notifications.") (license license:expat))) +(define-public r-mhg + (package + (name "r-mhg") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "mHG" version)) + (sha256 + (base32 + "1rz5ncrvvv9h9grls15apa63v2nh9j87fmp4mwjjil37jx6a5zki")))) + (properties `((upstream-name . "mHG"))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/package=mHG") + (synopsis "Minimum-hypergeometric test") + (description + "This package runs a minimum-hypergeometric (mHG) test as described in +\"Discovering Motifs in Ranked Lists of DNA Sequences\" by Eran Eden.") + (license license:gpl2))) + (define-public r-mlr3measures (package (name "r-mlr3measures") From c650160abb448d7de75e31dca3e35cd469bb8121 Mon Sep 17 00:00:00 2001 From: zimoun Date: Tue, 12 Oct 2021 22:46:50 +0200 Subject: [PATCH 036/287] gnu: Add r-pnwcolors. * gnu/packages/cran.scm (r-pnwcolors): New variable. --- gnu/packages/cran.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 135baf6aa5..792ea2a75b 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -31,7 +31,7 @@ ;;; Copyright © 2020 Antoine Côté ;;; Copyright © 2020 Arun Isaac ;;; Copyright © 2020 Magali Lemes -;;; Copyright © 2020 Simon Tournier +;;; Copyright © 2020, 2021 Simon Tournier ;;; Copyright © 2020 Aniket Patil ;;; Copyright © 2021 Marcel Schilling ;;; @@ -905,6 +905,27 @@ (define-public r-pheatmap control over dimensions and appearance.") (license license:gpl2+))) +(define-public r-pnwcolors + (package + (name "r-pnwcolors") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "PNWColors" version)) + (sha256 + (base32 + "1phplnclkficfv8s6wsyrckk4ixzbayiy5iix6dddg40485l9nyj")))) + (properties `((upstream-name . "PNWColors"))) + (build-system r-build-system) + (home-page "https://github.com/jakelawlor/PNWColors") + (synopsis "Color palettes for data visualizations") + (description + "This package provides color palettes. They are checked for colorblind +accessibility from hue, saturation, and lightness value scaling using the +Chroma.js Color Palette Helper. See @url{https://gka.github.io/palettes}.") + (license license:cc0))) + (define-public r-ecp (package (name "r-ecp") From 19d3cfec72720a4a1339be3d14f4d88ae5bd59f4 Mon Sep 17 00:00:00 2001 From: jgart Date: Wed, 13 Oct 2021 05:30:32 -0400 Subject: [PATCH 037/287] gnu: python-arrow: Move python-pytz to native-inputs. * gnu/packages/time.scm (python-arrow)[propagated-inputs]: Move python-pytz to ... [native-inputs]: ... here since it is only used for testing purposes. Signed-off-by: Efraim Flashner --- gnu/packages/time.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index df4b8ac6f5..b60fab5db5 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -435,10 +435,10 @@ (define-public python-arrow ("python-pytest" ,python-pytest) ("python-pytest-cov" ,python-pytest-cov) ("python-pytest-mock" ,python-pytest-mock) + ("python-pytz" ,python-pytz) ("python-simplejson" ,python-simplejson))) (propagated-inputs - `(("python-dateutil" ,python-dateutil) - ("python-pytz" ,python-pytz))) + `(("python-dateutil" ,python-dateutil))) (home-page "https://github.com/arrow-py/arrow") (synopsis "Dates and times for Python") (description From 2e8795cf0c57276a63cb0a3601218b6b831fecc6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 20 Oct 2021 14:48:06 +0200 Subject: [PATCH 038/287] gnu: dpf-plugins: Update to 1.4. * gnu/packages/music.scm (dpf-plugins): Update to 1.4. --- gnu/packages/music.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index d64a796c67..40c86a8e4c 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -6268,7 +6268,7 @@ (define-public mamba (define-public dpf-plugins (package (name "dpf-plugins") - (version "1.3") + (version "1.4") (source (origin (method git-fetch) @@ -6278,8 +6278,7 @@ (define-public dpf-plugins (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "1hsfmpv3kvpiwk8nfw9xpaipzy0n27i83y2v1yr93lznwm5rqrbs")))) + (base32 "0y7qvpfm34g6f7d786c6c9043dlbg5c4h71l2s24dsc9m8i7x2ww")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target From 214fb9fbfd4d05f1bae79c0619ea02a3bc742528 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 20 Oct 2021 15:21:30 +0200 Subject: [PATCH 039/287] gnu: dpf-plugins: Prepare for cross-compilation. * gnu/packages/music.scm (dpf-plugins)[arguments]: Set CC in #:make-flags rather than as an environment variable, and set it to CC-FOR-TARGET. --- gnu/packages/music.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 40c86a8e4c..f013ad6d3e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -6283,11 +6283,10 @@ (define-public dpf-plugins (arguments `(#:tests? #f ; no "check" target #:make-flags - (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "CC=" ,(cc-for-target))) #:phases (modify-phases %standard-phases - (add-before 'build 'set-CC-variable - (lambda _ (setenv "CC" "gcc") #t)) (delete 'configure)))) (inputs `(("cairo" ,cairo) From c1ca2716f821fc1907f706723e887e1bc6e19b82 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 20 Oct 2021 17:16:58 +0200 Subject: [PATCH 040/287] gnu: dragonfly-reverb: Update to 3.2.5. * gnu/packages/music.scm (dragonfly-reverb): Update to 3.2.5. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/music.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index f013ad6d3e..7a466eaaf0 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -6483,7 +6483,7 @@ (define-public zrythm (define-public dragonfly-reverb (package (name "dragonfly-reverb") - (version "3.2.1") + (version "3.2.5") (source (origin (method git-fetch) @@ -6495,7 +6495,7 @@ (define-public dragonfly-reverb (recursive? #t))) (file-name (git-file-name name version)) (sha256 - (base32 "0vfm2510shah67k87mdyar4wr4vqwii59y9lqfhwm6blxparkrqa")))) + (base32 "14kia9wjs0nqfx4psnr3vf4x6hihkf80gb0mjzmdnnnk4cnrdydm")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target @@ -6523,8 +6523,7 @@ (define-public dragonfly-reverb (and (equal? (dirname name) "bin") (not (string-suffix? ".so" name)) - (not (string-suffix? ".lv2" name)))))) - #t)))))) + (not (string-suffix? ".lv2" name)))))))))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs From 2782cb38a3bc68c530d6e95f6834ae0cb7ed16aa Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 20 Oct 2021 17:17:09 +0200 Subject: [PATCH 041/287] gnu: dragonfly-reverb: Prepare for cross-compilation. * gnu/packages/music.scm (dragonfly-reverb)[arguments]: Use CC-FOR-TARGET. --- gnu/packages/music.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 7a466eaaf0..07b85b87f6 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -6499,7 +6499,8 @@ (define-public dragonfly-reverb (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target - #:make-flags (list "CC=gcc") + #:make-flags + (list (string-append "CC=" ,(cc-for-target))) #:phases (modify-phases %standard-phases (delete 'configure) ;no configure target From 49176f0e4684a9b50cf75b4a0d1e9c3edb0074d2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 00:39:23 +0200 Subject: [PATCH 042/287] gnu: cdparanoia: Don't build in parallel. * gnu/packages/cdrom.scm (cdparanoia)[arguments]: Disable #:parallel-build?. Reported by Maxim Cournoyer --- gnu/packages/cdrom.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 443d7455a7..66a259f261 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -231,13 +231,15 @@ (define-public cdparanoia '(begin ;; Make libraries respect LDFLAGS. (substitute* '("paranoia/Makefile.in" "interface/Makefile.in") - (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname")) - #t)))) + (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname")))))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there is no check target #:configure-flags ; Add $libdir to the RUNPATH of all the executables. - (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")))) + (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) + ;; Building in parallel is flaky: “ld: […]/cachetest.c:393: undefined + ;; reference to `paranoia_free'”. + #:parallel-build? #f)) (home-page "https://www.xiph.org/paranoia/") (synopsis "Audio CD reading utility") (description "Cdparanoia retrieves audio tracks from CDDA capable CDROM From 9792e14a66f7174dd8aaf4827cda488fe57d850a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 20 Oct 2021 18:26:53 +0200 Subject: [PATCH 043/287] gnu: ethtool: Update to 5.14. * gnu/packages/networking.scm (ethtool): Update to 5.14. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index e6b1b405de..4f46a7fe95 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1215,14 +1215,14 @@ (define-public libndp (define-public ethtool (package (name "ethtool") - (version "5.12") + (version "5.14") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/network/" "ethtool/ethtool-" version ".tar.xz")) (sha256 (base32 - "01vgyczgldrfss98cqrgjz8krj6kwb29xjf8p08q0g85fnfgmpgm")))) + "11kns8imm55i0miggsnv9nblnzm60zgnanxnjajdgb2wj68xn4xv")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) From 5c8c7f74e63aee19169bba8e6d79e4557f1d3957 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 20 Oct 2021 22:02:55 +0200 Subject: [PATCH 044/287] gnu: genimage: Factorise substitutions. * gnu/packages/genimage.scm (genimage)[arguments]: Factorise input substitution for great line savings; also fun. Don't sneakily replace mkdosfs with mkfs.vfat. Remove obsolete fixes. Fix tests in their own 'fix-failing-tests phase. Don't explicitly return #t from any phases. --- gnu/packages/genimage.scm | 121 ++++++++++---------------------------- 1 file changed, 30 insertions(+), 91 deletions(-) diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm index bd77e4dc33..fb994231dd 100644 --- a/gnu/packages/genimage.scm +++ b/gnu/packages/genimage.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Danny Milosavljevic ;;; Copyright © 2021 Vincent Legoll +;;; Copyright © 2021 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,97 +57,37 @@ (define-public genimage (patches (search-patches "genimage-signedness.patch")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:modules + ((ice-9 match) + ,@%gnu-build-system-modules) + #:phases (modify-phases %standard-phases (add-after 'unpack 'guixify (lambda* (#:key inputs #:allow-other-keys) - ;; Note to maintainers: Check ".def =" lines in source. - (substitute* "config.c" - (("\\.def = \"cpio\"") - (string-append ".def = \"" - (assoc-ref inputs "cpio") - "/bin/cpio\"")) - (("\\.def = \"dd\"") - (string-append ".def = \"" - (assoc-ref inputs "coreutils") - "/bin/dd\"")) - (("\\.def = \"debugfs\"") - (string-append ".def = \"" - (assoc-ref inputs "e2fsprogs") - "/sbin/debugfs\"")) - (("\\.def = \"e2fsck\"") - (string-append ".def = \"" - (assoc-ref inputs "e2fsprogs") - "/sbin/e2fsck\"")) - (("\\.def = \"genext2fs\"") - (string-append ".def = \"" - (assoc-ref inputs "genext2fs") - "/bin/genext2fs\"")) - (("\\.def = \"genisoimage\"") - (string-append ".def = \"" - (assoc-ref inputs "cdrkit-libre") - "/bin/genisoimage\"")) - (("\\.def = \"mcopy\"") - (string-append ".def = \"" - (assoc-ref inputs "mtools") - "/bin/mcopy\"")) - (("\\.def = \"mmd\"") - (string-append ".def = \"" - (assoc-ref inputs "mtools") - "/bin/mmd\"")) - ;;; Note: mkcramfs is obsolete. - (("\\.def = \"mkdosfs\"") - (string-append ".def = \"" - (assoc-ref inputs "dosfstools") - "/sbin/mkfs.fat\"")) - (("\\.def = \"mke2fs\"") - (string-append ".def = \"" - (assoc-ref inputs "e2fsprogs") - "/sbin/mke2fs\"")) - (("\\.def = \"mkfs\\.jffs2\"") - (string-append ".def = \"" - (assoc-ref inputs "mtd-utils") - "/sbin/mkfs.jffs2\"")) - (("\\.def = \"mkfs\\.ubifs\"") - (string-append ".def = \"" - (assoc-ref inputs "mtd-utils") - "/sbin/mkfs.ubifs\"")) - (("\\.def = \"mksquashfs\"") - (string-append ".def = \"" - (assoc-ref inputs "squashfs-tools") - "/bin/mksquashfs\"")) - (("\\.def = \"qemu-img\"") - (string-append ".def = \"" - (assoc-ref inputs "qemu") - "/bin/qemu-img\"")) - (("\\.def = \"tar\"") - (string-append ".def = \"" - (assoc-ref inputs "tar") - "/bin/tar\"")) - (("\\.def = \"tune2fs\"") - (string-append ".def = \"" - (assoc-ref inputs "e2fsprogs") - "/sbin/tune2fs\"")) - (("\\.def = \"ubinize\"") - (string-append ".def = \"" - (assoc-ref inputs "mtd-utils") - "/sbin/ubinize\"")) - (("\\.def = \"mkimage\"") - (string-append ".def = \"" - (assoc-ref inputs "u-boot-tools") - "/bin/mkimage\""))) - (substitute* "test/basic-images.test" - ;; Work around bug in sharness.sh. - (("mkdosfs") - "mkfs.fat") - ;; Work around bug in sharness.sh. - (("dd,mkfs\\.fat,mcopy") - "dd,mkfs_fat,mcopy") - ;; Should be in the next upstream release. - (("qemu_img") "qemu-img")) + (map (match-lambda + ((input directory regexp) + (substitute* "config.c" + (((format #f "\\.def = \"(~a)\"" regexp) _ command) + (format #f ".def = \"~a/~a/~a\"" + (assoc-ref inputs input) directory command))))) + '(("cpio" "bin" "cpio") + ("coreutils" "bin" "dd") + ("e2fsprogs" "sbin" "debugfs|e2fsck|mke2fs|tune2fs") + ("genext2fs" "bin" "genext2fs") + ("cdrkit-libre" "bin" "genisoimage") + ("mtools" "bin" "mcopy|mmd") + ;; mkcramfs is obsolete. + ("dosfstools" "sbin" "mkdosfs") + ("mtd-utils" "sbin" "mkfs.(jffs2|ubifs)|ubinize") + ("squashfs-tools" "bin" "mksquashfs") + ("qemu" "bin" "qemu-img") + ("tar" "bin" "tar") + ("u-boot-tools" "bin" "mkimage"))) (substitute* "util.c" - (("\"/bin/sh\"") - (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\""))) + (("\"/bin/sh\"") + (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\""))))) + (add-before 'check 'fix-failing-tests + (lambda _ ;; We don't have /etc/passwd so uid 0 is not known as "root". ;; Thus patch it out. (substitute* '("test/ext2test.dump" @@ -154,16 +95,14 @@ (define-public genimage "test/ext4test.dump" "test/ext2test-percent.dump" "test/mke2fs.dump") - (("root") "unknown")) - #t)) + (("root") "unknown")))) (add-before 'check 'setenv-check (lambda _ ;; Our container doesn't provide access to /etc/mtab (setenv "EXT2FS_NO_MTAB_OK" "1") ;; Make test reproducible (setenv "GENIMAGE_MKFJFFS2" "mkfs.jffs2 -U") - (setenv "GENIMAGE_MKE2FS" "mke2fs -E no_copy_xattrs") - #t)) + (setenv "GENIMAGE_MKE2FS" "mke2fs -E no_copy_xattrs"))) (replace 'check (lambda _ (invoke "make" "TEST_LOG_COMPILER=" "check")))))) From f743c432cc04aad81e09181376560bd1bddfb5f2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 00:48:04 +0200 Subject: [PATCH 045/287] gnu: autofs: Update to 5.1.8. * gnu/packages/file-systems.scm (autofs): Update to 5.1.8. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/file-systems.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 5f0c848e4c..a22e107336 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -88,7 +88,7 @@ (define-module (gnu packages file-systems) (define-public autofs (package (name "autofs") - (version "5.1.7") + (version "5.1.8") (source (origin (method url-fetch) @@ -96,7 +96,7 @@ (define-public autofs "v" (version-major version) "/" "autofs-" version ".tar.xz")) (sha256 - (base32 "1myfz6a3wj2c4j9h5g44zj796fdi82jhp1s92w2hg6xp2632csx3")))) + (base32 "1zf0fgf6kr9amxq5amlgsp1v13sizwl3wvx2xl7b4r2nhmci0gdk")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -118,8 +118,7 @@ (define-public autofs (lambda _ (substitute* "configure" (("^searchpath=\".*\"") - "searchpath=\"$PATH\"")) - #t)) + "searchpath=\"$PATH\"")))) (add-before 'configure 'fix-rpath (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -132,8 +131,7 @@ (define-public autofs (lambda _ (substitute* "modules/Makefile" (("ln -fs lookup_yp.so" match) - (string-append "# " match))) - #t))))) + (string-append "# " match)))))))) (native-inputs `(("bison" ,bison) ("flex" ,flex) From d750f6a89f8ed54729cab2d69417b94b91d52056 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 00:54:35 +0200 Subject: [PATCH 046/287] gnu: font-gnu-unifont: Update to 14.0.01. * gnu/packages/fonts.scm (font-gnu-unifont): Update to 14.0.01. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/fonts.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index cb00d90d59..a9a06e7419 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -743,7 +743,7 @@ (define-public font-anonymous-pro-minus (define-public font-gnu-unifont (package (name "font-gnu-unifont") - (version "13.0.06") + (version "14.0.01") (source (origin (method url-fetch) @@ -753,7 +753,7 @@ (define-public font-gnu-unifont (string-append "mirror://gnu/unifont/unifont-" version "/unifont-" version ".tar.gz"))) (sha256 - (base32 "09g91g0gv76sadslp70m5xwfk3jf8kh7rpk2pz3l2hpldnjggpk8")))) + (base32 "0wkdn8h20pprna5a3hbny0qk2mgksrbxs2y6ng6qarj6rkpdmlbs")))) (build-system gnu-build-system) (outputs '("out" ; TrueType version "pcf" ; PCF (bitmap) version @@ -765,7 +765,7 @@ (define-public font-gnu-unifont (modify-phases %standard-phases (replace 'configure - (lambda _ (setenv "CC" "gcc") #t)) + (lambda _ (setenv "CC" "gcc"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) @@ -786,8 +786,7 @@ (define-public font-gnu-unifont (mkdir (string-append bin "/share/info")) (invoke "gzip" "-9n" "doc/unifont.info") (install-file "doc/unifont.info.gz" - (string-append bin "/share/info")) - #t)))))) + (string-append bin "/share/info")))))))) (inputs `(("perl" ,perl))) ; for utilities (synopsis From 10c856214ece958bb9873153005df111f711b179 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 01:01:30 +0200 Subject: [PATCH 047/287] gnu: font-gnu-unifont: Cross-compile binaries. * gnu/packages/fonts.scm (font-gnu-unifont)[arguments]: Set CC to CC-FOR-TARGET in #:make-flags, where it has an effect. Remove it from the environment, where it did not. Respect #:make-flags during installation. --- gnu/packages/fonts.scm | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index a9a06e7419..c3a2120583 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -760,15 +760,14 @@ (define-public font-gnu-unifont "psf" ; PSF (console) version "bin")) ; Utilities to manipulate '.hex' format (arguments - '(#:tests? #f ; no check target + `(#:tests? #f ; no check target + #:make-flags + (list (string-append "CC=" ,(cc-for-target))) #:phases (modify-phases %standard-phases - (replace - 'configure - (lambda _ (setenv "CC" "gcc"))) - (replace - 'install - (lambda* (#:key outputs #:allow-other-keys) + (delete 'configure) + (replace 'install + (lambda* (#:key make-flags outputs #:allow-other-keys) (let* ((ttf (string-append (assoc-ref outputs "out") "/share/fonts/truetype")) (pcf (string-append (assoc-ref outputs "pcf") @@ -776,12 +775,12 @@ (define-public font-gnu-unifont (psf (string-append (assoc-ref outputs "psf") "/share/consolefonts")) (bin (assoc-ref outputs "bin"))) - (invoke "make" - (string-append "PREFIX=" bin) - (string-append "TTFDEST=" ttf) - (string-append "PCFDEST=" pcf) - (string-append "CONSOLEDEST=" psf) - "install") + (apply invoke "make" "install" + (string-append "PREFIX=" bin) + (string-append "TTFDEST=" ttf) + (string-append "PCFDEST=" pcf) + (string-append "CONSOLEDEST=" psf) + make-flags) ;; Move Texinfo file to the right place. (mkdir (string-append bin "/share/info")) (invoke "gzip" "-9n" "doc/unifont.info") From 8da4ea7dc6c2433b3a1190cf8c3f3e74d8ab0ca5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 01:13:08 +0200 Subject: [PATCH 048/287] gnu: flamp: Update to 2.2.07. * gnu/packages/radio.scm (flamp): Update to 2.2.07. --- gnu/packages/radio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index b974c0340f..c07fa46f76 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -953,7 +953,7 @@ (define-public flrig (define-public flamp (package (name "flamp") - (version "2.2.05") + (version "2.2.07") (source (origin (method git-fetch) @@ -962,7 +962,7 @@ (define-public flamp (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0ll2wbhyh1sb4iqsypwrd118mrgw3vbsdbz442qhk4r6l8kjzblq")))) + (base32 "0rygd5w04nspxdj8qj81gpb3mgijvlmii74s1f4mihqs5kb8nwh6")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) From 0f522bfb636569e205cee5d5368d782c39cb589a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 01:38:19 +0200 Subject: [PATCH 049/287] gnu: eid-mw: Update to 5.0.28. * gnu/packages/security-token.scm (eid-mw): Update to 5.0.28. [arguments]: Remove unused 'make-reproducible phase. --- gnu/packages/security-token.scm | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index a24654a3e5..e006b4cf25 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -52,6 +52,7 @@ (define-module (gnu packages security-token) #:use-module (gnu packages graphviz) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) + #:use-module (gnu packages libbsd) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages man) @@ -111,7 +112,8 @@ (define-public ccid (define-public eid-mw (package (name "eid-mw") - (version "5.0.14") + ;; When updating, remove the short-lived libbsd input and module import! + (version "5.0.28") (source (origin (method git-fetch) @@ -120,7 +122,7 @@ (define-public eid-mw (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1hyxsbxjjn9hh5p7jlcfb5yplf3n8dg49dfgi8fjp95phis3gbd4")))) + (base32 "0fmpdx09a60ndbsvy3m6w77naqy3j6k2ydq6jdcmdvxnr31z7fmf")))) (build-system glib-or-gtk-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -133,6 +135,7 @@ (define-public eid-mw ("perl" ,perl))) (inputs `(("curl" ,curl) + ("libbsd" ,libbsd) ("openssl" ,openssl) ("gtk+" ,gtk+) ("pcsc-lite" ,pcsc-lite) @@ -152,22 +155,7 @@ (define-public eid-mw (substitute* "scripts/build-aux/genver.sh" (("/bin/sh") (which "sh")) (("^(GITDESC=).*" _ match) (string-append match ,version "\n"))) - (invoke "sh" "./bootstrap.sh"))) - (add-after 'unpack 'make-reproducible - (lambda _ - (substitute* "scripts/mac/create-vers.sh" - (("NOW=.*") - "NOW=1970-01-01\n")) - #t)) - ;; Remove failing test that was removed upstream after version 5.0.8. - ;; See: https://github.com/Fedict/eid-mw/commit/3d1187b1b61118b9ae97607903d3d2fc0bad7518 - (add-before 'check 'remove-failing-test - (lambda _ - (substitute* "tests/unit/Makefile.am" - (("sign_state ordering cardcom_common") - "sign_state ordering #cardcom_common")) - #t)) - ))) + (invoke "sh" "./bootstrap.sh")))))) (synopsis "Belgian eID Middleware") (description "The Belgian eID Middleware is required to authenticate with online services using the Belgian electronic identity card.") From 320c971f8e44abc65ed162f20cc93edbb07bd5f5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 01:38:33 +0200 Subject: [PATCH 050/287] gnu: dfu-util: Update to 0.11. * gnu/packages/flashing-tools.scm (dfu-util): Update to 0.11. --- gnu/packages/flashing-tools.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm index c7e5c5e419..8b881a5c2c 100644 --- a/gnu/packages/flashing-tools.scm +++ b/gnu/packages/flashing-tools.scm @@ -190,7 +190,7 @@ (define-public dfu-programmer (define-public dfu-util (package (name "dfu-util") - (version "0.10") + (version "0.11") (source (origin (method url-fetch) (uri (string-append @@ -198,7 +198,7 @@ (define-public dfu-util version ".tar.gz")) (sha256 (base32 - "0hlvc47ccf5hry13saqhc1j5cdq5jyjv4i05kj0mdh3rzj6wagd0")))) + "17piiyp08pccqmbhnswv957lkypmmm92kps79hypxvw23ai3pddl")))) (build-system gnu-build-system) (inputs `(("libusb" ,libusb))) From c0d672853a005fc625169f5c905d4562b9b33635 Mon Sep 17 00:00:00 2001 From: Charles Date: Tue, 19 Oct 2021 23:42:01 -0500 Subject: [PATCH 051/287] gnu: Add cl-rutils. * gnu/packages/lisp-xyz.scm (cl-rutils, sbcl-rutils, ecl-rutils): New variables. Co-authored-by: Guillaume Le Vaillant --- gnu/packages/lisp-xyz.scm | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 9694f6adda..3483e8e14a 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -7736,6 +7736,47 @@ (define-public cl-serapeum (define-public ecl-serapeum (sbcl-package->ecl-package sbcl-serapeum)) +(define-public sbcl-rutils + (let ((commit "db3c3f4ae897025b5f0cd81042ca147da60ca0c5") + (revision "0")) + (package + (name "sbcl-rutils") + (version (git-version "5.2.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vseloved/rutils") + (commit commit))) + (file-name (git-file-name "rutils" version)) + (sha256 + (base32 "1d2whscknh1zga2vdqvfqri8wx0gnml3sfqz62igq0ppap6q07y3")))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:asd-systems '("rutils" "rutilsx") + ;; Tests disabled because of a circular dependency with should-test. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build + (lambda _ + ;; File faild to load, and we don't use it as tests are + ;; disabled, so let's delete it. + (delete-file "rutilsx-test.asd")))))) + (inputs + `(("closer-mop" ,sbcl-closer-mop) + ("named-readtables" ,sbcl-named-readtables))) + (home-page "https://github.com/vseloved/rutils") + (synopsis "Radical Utilities for Common Lisp") + (description "RUTILS is a syntactic utilities package for Common Lisp.") + (license license:bsd-3)))) + +(define-public cl-rutils + (sbcl-package->cl-source-package sbcl-rutils)) + +(define-public ecl-rutils + (sbcl-package->ecl-package sbcl-rutils)) + (define-public sbcl-arrows (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382") (revision "0")) From 49347291efde17edb307eefaabd77f37b0ff8bc2 Mon Sep 17 00:00:00 2001 From: Charles Jackson Date: Thu, 21 Oct 2021 11:23:53 +0200 Subject: [PATCH 052/287] gnu: Add cl-should-test. * gnu/packages/lisp-check.scm (cl-should-test, ecl-should-test, sbcl-should-test): New variables. Co-authored-by: Guillaume Le Vaillant --- gnu/packages/lisp-check.scm | 45 ++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/gnu/packages/lisp-check.scm b/gnu/packages/lisp-check.scm index 95918433c4..6a8dccf8bb 100644 --- a/gnu/packages/lisp-check.scm +++ b/gnu/packages/lisp-check.scm @@ -1,5 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Sharlatan Hellseher +;;; Copyright © 2021 Guillaume Le Vaillant +;;; Copyright © 2021 Charles Jackson ;;; ;;; This file is part of GNU Guix. ;;; @@ -16,6 +18,9 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . +;;; This module only contains Common Lisp libraries related to code testing +;;; facilities. + (define-module (gnu packages lisp-check) #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) @@ -24,11 +29,6 @@ (define-module (gnu packages lisp-check) #:use-module (guix git-download) #:use-module (guix build-system asdf)) -;;; Commentary: -;;; -;;; This module only contains Common Lisp libraries related to code testing -;;; facilities. - (define-public sbcl-nst (let ((commit "6c0990f594abcf5887e8d80f1035e3b60454b61b") (revision "1")) @@ -60,4 +60,37 @@ (define-public ecl-nst (define-public cl-nst (sbcl-package->cl-source-package sbcl-nst)) -;;; lisp-check.scm ends here +(define-public sbcl-should-test + (let ((commit "48facb9f9c07aeceb71fc0c48ce17fd7d54a09d4") + (revision "0")) + (package + (name "sbcl-should-test") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vseloved/should-test") + (commit commit))) + (file-name (git-file-name "should-test" version)) + (sha256 + (base32 "1fqqa7lhf28qg60ji9libkylkcy747x576qpjn1y7c945j2fxmnm")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cl-ppcre" ,sbcl-cl-ppcre) + ("local-time" ,sbcl-local-time) + ("osicat" ,sbcl-osicat) + ("rutils" ,sbcl-rutils))) + (home-page "https://github.com/vseloved/should-test") + (synopsis "Minimal yet feature-rich Common Lisp test framework") + (description + "SHOULD-TEST is a methodology-agnostic and non-opinionated Common Lisp +test framework, i.e. it doesn't care what kind of test approach you'd like to +take.") + (license license:expat)))) + +(define-public cl-should-test + (sbcl-package->cl-source-package sbcl-should-test)) + +(define-public ecl-should-test + (sbcl-package->ecl-package sbcl-should-test)) From a6ad219dd6d0796365c07303f6947e840beedacf Mon Sep 17 00:00:00 2001 From: Charles Date: Tue, 19 Oct 2021 23:46:35 -0500 Subject: [PATCH 053/287] gnu: Add cl-redis. * gnu/packages/lisp-xyz.scm (cl-redis, sbcl-redis, ecl-redis): New variables. Co-authored-by: Guillaume Le Vaillant --- gnu/packages/lisp-xyz.scm | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 3483e8e14a..1c71ca8864 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -78,6 +78,7 @@ (define-module (gnu packages lisp-xyz) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) #:use-module (gnu packages lisp) + #:use-module (gnu packages lisp-check) #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages ncurses) @@ -3191,6 +3192,59 @@ (define-public cl-sqlite (define-public ecl-cl-sqlite (sbcl-package->ecl-package sbcl-cl-sqlite)) +(define-public sbcl-cl-redis + (let ((commit "7d592417421cf7cd1cffa96043b457af0490df7d") + (revision "0")) + (package + (name "sbcl-cl-redis") + (version (git-version "2.3.8" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vseloved/cl-redis") + (commit commit))) + (file-name (git-file-name "cl-redis" version)) + (sha256 + (base32 "0x5ahxb5cx37biyn3cjycshhm1rr9p5cf1a9l5hd1n1xjxm2f8vi")))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'start-redis + (lambda _ + (system "redis-server --port 6379 &")))))) + (native-inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("flexi-streams" ,sbcl-flexi-streams) + ("redis" ,redis) + ("should-test" ,sbcl-should-test))) + (inputs + `(("babel" ,sbcl-babel) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("flexi-streams" ,sbcl-flexi-streams) + ("rutils" ,sbcl-rutils) + ("usocket" ,sbcl-usocket))) + (home-page "https://github.com/vseloved/cl-redis") + (synopsis "Common Lisp client for Redis") + (description "This is a Common Lisp wrapper for interacting with the +Redis data structure store.") + (license license:expat)))) + +(define-public cl-redis + (sbcl-package->cl-source-package sbcl-cl-redis)) + +(define-public ecl-cl-redis + (let ((pkg (sbcl-package->ecl-package sbcl-cl-redis))) + (package + (inherit pkg) + (arguments + (substitute-keyword-arguments (package-arguments pkg) + ;; Tests are failing on ECL with: + ;; Test L-COMMANDS: An error occurred during initialization: + ;; Protocol not found: "tcp". + ((#:tests? _ #f) #f)))))) + (define-public sbcl-parenscript ;; Source archives are overwritten on every release, we use the Git repo instead. (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766")) From ac327cc7fcd3fdc8dc29db225df3b25a3d54af38 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 10:57:54 +0000 Subject: [PATCH 054/287] gnu: Add r-fcscan. * gnu/packages/bioconductor.scm (r-fcscan): New variable. --- gnu/packages/bioconductor.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 4cbffac000..90a0e1f288 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -7331,6 +7331,37 @@ (define-public r-sigpathway phenotype of interest.") (license license:gpl2))) +(define-public r-fcscan + (package + (name "r-fcscan") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "fcScan" version)) + (sha256 + (base32 "10fcz741dr3wbb9f63qywlrays4cnvfnsm6yw4bmkrwk6ccijg8h")))) + (properties `((upstream-name . "fcScan"))) + (build-system r-build-system) + (propagated-inputs + `(("r-genomicranges" ,r-genomicranges) + ("r-iranges" ,r-iranges) + ("r-plyr" ,r-plyr) + ("r-rtracklayer" ,r-rtracklayer) + ("r-summarizedexperiment" ,r-summarizedexperiment) + ("r-variantannotation" ,r-variantannotation))) + (native-inputs `(("r-knitr" ,r-knitr))) + (home-page "https://bioconductor.org/packages/fcScan") + (synopsis "Detect clusters of coordinates with user defined options") + (description + "This package is used to detect combination of genomic coordinates +falling within a user defined window size along with user defined overlap +between identified neighboring clusters. It can be used for genomic data +where the clusters are built on a specific chromosome or specific strand. +Clustering can be performed with a \"greedy\" option allowing thus the +presence of additional sites within the allowed window size.") + (license license:artistic2.0))) + (define-public r-fgsea (package (name "r-fgsea") From 6526c35df5d96a3020fdad8bbe4240ca8b2954ee Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 11:43:48 +0000 Subject: [PATCH 055/287] gnu: Add python-pyspoa. * gnu/packages/bioinformatics.scm (python-pyspoa): New variable. --- gnu/packages/bioinformatics.scm | 47 +++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 7dec74f0c0..afbacc1c83 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -15065,6 +15065,53 @@ (define-public python-coolbox browser.") (license license:gpl3+))) +(define-public python-pyspoa + (package + (name "python-pyspoa") + (version "0.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nanoporetech/pyspoa") + (commit (string-append "v" version)) + (recursive? #true))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lgf2shzhxkcsircd6vy46h27pjljd5q95fyz1cm3lkk702qbnzx")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'build-libspoa + (lambda _ + (mkdir-p "src/build") + (with-directory-excursion "src/build" + (invoke "cmake" + "-Dspoa_optimize_for_portability=ON" + "-DCMAKE_BUILD_TYPE=Release" + "-DCMAKE_CXX_FLAGS=\"-I ../vendor/cereal/include/\" -fPIC" + "..") + (invoke "make")))) + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + (invoke "python" "tests/test_pyspoa.py"))))))) + (propagated-inputs + `(("pybind11" ,pybind11))) + (native-inputs + `(("cmake" ,cmake-minimal))) + (home-page "https://github.com/nanoporetech/pyspoa") + (synopsis "Python bindings for the SIMD partial order alignment library ") + (description + "This package provides Python bindings for spoa, a C++ implementation of +the @dfn{partial order alignment} (POA) algorithm (as described in +10.1093/bioinformatics/18.3.452) which is used to generate consensus +sequences") + (license license:expat))) + (define-public scregseg (package (name "scregseg") From 57841a91f5917fdf3166c1751abaa2e7beab257f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 11:47:19 +0000 Subject: [PATCH 056/287] gnu: Add python-bwapy. * gnu/packages/bioinformatics.scm (python-bwapy): New variable. --- gnu/packages/bioinformatics.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index afbacc1c83..139eb3434a 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -106,6 +106,7 @@ (define-module (gnu packages bioinformatics) #:use-module (gnu packages java-compression) #:use-module (gnu packages jemalloc) #:use-module (gnu packages jupyter) + #:use-module (gnu packages libffi) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages lsof) @@ -15112,6 +15113,31 @@ (define-public python-pyspoa sequences") (license license:expat))) +(define-public python-bwapy + (package + (name "python-bwapy") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bwapy" version)) + (sha256 + (base32 "090qwx3vl729zn3a7sksbviyg04kc71gpbm3nd8dalqp673x1npw")))) + (build-system python-build-system) + (propagated-inputs + `(("python-cffi" ,python-cffi) + ("python-setuptools" ,python-setuptools) + ("python-wheel" ,python-wheel))) + (inputs + `(("zlib" ,zlib))) + (home-page "https://github.com/ACEnglish/bwapy") + (synopsis "Python bindings to bwa alinger") + (description "This package provides Python bindings to the bwa mem +aligner.") + ;; These Python bindings are licensed under Mozilla Public License 2.0, + ;; bwa itself is licenced under GNU General Public License v3.0. + (license license:mpl2.0))) + (define-public scregseg (package (name "scregseg") From 36cf0253a9dfb013a6cb50adf5942eebe0d5ee54 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 13:32:37 +0000 Subject: [PATCH 057/287] gnu: instrain: Update to 1.5.4. * gnu/packages/bioinformatics.scm (instrain): Update to 1.5.4. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 139eb3434a..5c4d5abdb4 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -11710,14 +11710,14 @@ (define-public python-drep (define-public instrain (package (name "instrain") - (version "1.5.2") + (version "1.5.4") (source (origin (method url-fetch) (uri (pypi-uri "inStrain" version)) (sha256 (base32 - "0ykqlpf6yz4caihsaz3ys00cyvlr7wdj4s9a8rh56q5r8xf80ic0")))) + "05w1lw75x4lwkzg4qpi055g7hdjp9rnc4ksbxg2hfgksq9djk0hx")))) (build-system python-build-system) (arguments `(#:phases From 579f31396dd8066c013cb3b6463e85dba5e84c52 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 13:33:01 +0000 Subject: [PATCH 058/287] gnu: python-levenshtein: Update to 0.12.2. * gnu/packages/python-xyz.scm (python-levenshtein): Update to 0.12.2. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index c335dea277..18f88fc1a7 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18358,14 +18358,14 @@ (define-public python2-dirsync (define-public python-levenshtein (package (name "python-levenshtein") - (version "0.12.0") + (version "0.12.2") (source (origin (method url-fetch) (uri (pypi-uri "python-Levenshtein" version)) (sha256 (base32 - "1c9ybqcja31nghfcc8xxbbz9h60s9qi12b9hr4jyl69xbvg12fh3")))) + "1xj60gymwx1jl2ra9razx2wk8nb9cv1i7l8d14qsp8a8s7xra8yw")))) (build-system python-build-system) (home-page "https://github.com/ztane/python-Levenshtein") (synopsis "Fast computation of Levenshtein distance and string similarity") From 10664fcc8c557a33a6670db8fb2ecec8eaa68d0d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 13:33:20 +0000 Subject: [PATCH 059/287] gnu: python-biopython: Update to 1.76. * gnu/packages/bioinformatics.scm (python-biopython): Update to 1.76. (python-biopython-1.73): New variable. (instrain)[inputs]: Replace python-biopython with python-biopython-1.73. --- gnu/packages/bioinformatics.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5c4d5abdb4..2593dc1f55 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1245,14 +1245,14 @@ (define-public perl-bio-db-hts (define-public python-biopython (package (name "python-biopython") - (version "1.73") + (version "1.76") (source (origin (method url-fetch) ;; use PyPi rather than biopython.org to ease updating (uri (pypi-uri "biopython" version)) (sha256 (base32 - "1q55jhf76z3k6is3psis0ckbki7df26x7dikpcc3vhk1vhkwribh")))) + "0wlch9xpa0fpgjzyxi6jsfca6iakaq9a05927xg8vqnmvaccnwrq")))) (build-system python-build-system) (arguments `(#:phases @@ -1273,6 +1273,18 @@ (define-public python-biopython into separate processes; and more.") (license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE")))) +(define-public python-biopython-1.73 + (package + (inherit python-biopython) + (version "1.73") + (source (origin + (method url-fetch) + ;; use PyPi rather than biopython.org to ease updating + (uri (pypi-uri "biopython" version)) + (sha256 + (base32 + "1q55jhf76z3k6is3psis0ckbki7df26x7dikpcc3vhk1vhkwribh")))))) + (define-public python2-biopython (package-with-python2 python-biopython)) @@ -11730,7 +11742,7 @@ (define-public instrain (("from job_utils") "from .job_utils"))))))) (inputs - `(("python-biopython" ,python-biopython) + `(("python-biopython" ,python-biopython-1.73) ("python-boto3" ,python-boto3) ("python-h5py" ,python-h5py) ("python-lmfit" ,python-lmfit) From 42c9b75b25fe13cca95c22e38bc60e1b28380c0a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 13:39:36 +0000 Subject: [PATCH 060/287] gnu: Add ciri-long. * gnu/packages/bioinformatics.scm (ciri-long): New variable. --- gnu/packages/bioinformatics.scm | 50 +++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 2593dc1f55..0059ed36ad 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1311,6 +1311,56 @@ (define-public python-fastalite (define-public python2-fastalite (package-with-python2 python-fastalite)) +(define-public ciri-long + (package + (name "ciri-long") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bioinfo-biols/CIRI-long") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10k88i1fcqchrrjv82rmylwvbwqfba0n51palhig9hsg71xs0dbi")) + ;; Delete bundled binary + (snippet '(delete-file "libs/ccs")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "setup.py" + (("'argparse[^']*',") "") ; only for python2 + (("==") ">=")))) + (add-before 'build 'build-libssw + (lambda _ + (with-directory-excursion "libs/striped_smith_waterman" + (invoke "make" "libssw.so"))))))) + (inputs + `(("python-biopython" ,python-biopython) + ("python-bwapy" ,python-bwapy) + ("python-cython" ,python-cython) + ("python-levenshtein" ,python-levenshtein) + ("python-mappy" ,python-mappy) + ("python-numpy" ,python-numpy) + ("python-pandas" ,python-pandas) + ("python-pysam" ,python-pysam) + ("python-pyspoa" ,python-pyspoa) + ("python-scikit-learn" ,python-scikit-learn) + ("python-scipy" ,python-scipy))) + (native-inputs + `(("python-nose" ,python-nose) + ("python-setuptools" ,python-setuptools))) + (home-page "https://ciri-cookbook.readthedocs.io/") + (synopsis "Circular RNA identification for Nanopore sequencing") + (description "CIRI-long is a package for circular RNA identification using +long-read sequencing data.") + (license license:expat))) + (define-public bpp-core ;; The last release was in 2014 and the recommended way to install from source ;; is to clone the git repository, so we do this. From 4885f40b80cec9c61bb006e21a64937045c6d5c4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 14:25:44 +0000 Subject: [PATCH 061/287] gnu: Add r-misha. * gnu/packages/bioinformatics.scm (r-misha): New variable. --- gnu/packages/bioinformatics.scm | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 0059ed36ad..13ed94c1c2 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7698,6 +7698,42 @@ (define-public r-scde ;; See https://github.com/hms-dbmi/scde/issues/38 (license license:gpl2))) +(define-public r-misha + (package + (name "r-misha") + (version "4.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tanaylab/misha") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bgivx3lzjh3173jsfrhb5kvhjsn53br0n4hmyx7i3dwy2cnnp2p")) + ;; Delete bundled executable. + (snippet + '(delete-file "exec/bigWigToWig")))) + (build-system r-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'do-not-use-bundled-bigWigToWig + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "R/misha.R" + (("get\\(\".GLIBDIR\"\\), \"/exec/bigWigToWig") + (string-append "\"" + (assoc-ref inputs "kentutils") + "/bin/bigWigToWig")))))))) + (inputs + `(("kentutils" ,kentutils))) + (home-page "https://github.com/tanaylab/misha") + (synopsis "Toolkit for analysis of genomic data") + (description "This package is intended to help users to efficiently +analyze genomic data resulting from various experiments.") + (license license:gpl2))) + (define-public r-centipede (package (name "r-centipede") From f65917f6073b7af9b9249bf225a4ca1ef7f5598b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 14:34:35 +0000 Subject: [PATCH 062/287] gnu: Add r-shaman. * gnu/packages/bioinformatics.scm (r-shaman): New variable. --- gnu/packages/bioinformatics.scm | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 13ed94c1c2..cd848b6e00 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7734,6 +7734,50 @@ (define-public r-misha analyze genomic data resulting from various experiments.") (license license:gpl2))) +(define-public r-shaman + (let ((commit "d6944e8ac7bd1dbd5c6cec646eafc1d19d0ca96f") + (release "2.0") + (revision "2")) + (package + (name "r-shaman") + (version (git-version release revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tanaylab/shaman") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03sx138dzpfiq23j49z0m0s4j79855mrg64hpj9c83408wzphxi6")) + (snippet + ;; This file will be generated. + '(delete-file "inst/doc/shaman-package.R")))) + (build-system r-build-system) + (propagated-inputs + `(("r-data-table" ,r-data-table) + ("r-domc" ,r-domc) + ("r-ggplot2" ,r-ggplot2) + ("r-gviz" ,r-gviz) + ("r-misha" ,r-misha) + ("r-plyr" ,r-plyr) + ("r-rann" ,r-rann) + ("r-rcpp" ,r-rcpp) + ("r-reshape2" ,r-reshape2) + ;; For vignettes + ("r-rmarkdown" ,r-rmarkdown) + ("r-knitr" ,r-knitr))) + (home-page "https://github.com/tanaylab/shaman") + (synopsis "Sampling HiC contact matrices for a-parametric normalization") + (description "The Shaman package implements functions for +resampling Hi-C matrices in order to generate expected contact +distributions given constraints on marginal coverage and +contact-distance probability distributions. The package also provides +support for visualizing normalized matrices and statistical analysis +of contact distributions around selected landmarks.") + ;; Any version of the GPL + (license license:gpl3+)))) + (define-public r-centipede (package (name "r-centipede") From a8bac123f0f556b5911e34ccfac733a78178643e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 21 Oct 2021 14:49:01 +0000 Subject: [PATCH 063/287] gnu: Add gdc-client. * gnu/packages/bioinformatics.scm (gdc-client): New variable. --- gnu/packages/bioinformatics.scm | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index cd848b6e00..395e8ce509 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7841,6 +7841,46 @@ (define-public r-demultiplex ") (license license:cc0)))) +(define-public gdc-client + (package + (name "gdc-client") + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/NCI-GDC/gdc-client.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0cagawlzjwj3wam10lv64xgbfx4zcnzxi5sjpsdhq7rn4z24mzc2")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "requirements.txt" + (("==") ">="))))))) + (inputs + `(("python-cryptography" ,python-cryptography) + ("python-intervaltree" ,python-intervaltree) + ("python-jsonschema" ,python-jsonschema) + ("python-lxml" ,python-lxml) + ("python-ndg-httpsclient" ,python-ndg-httpsclient) + ("python-progressbar2" ,python-progressbar2) + ("python-pyasn1" ,python-pyasn1) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pyyaml" ,python-pyyaml) + ("python-requests" ,python-requests) + ("python-termcolor" ,python-termcolor))) + (home-page "https://gdc.nci.nih.gov/access-data/gdc-data-transfer-tool") + (synopsis "GDC data transfer tool") + (description "The gdc-client provides several convenience functions over +the GDC API which provides general download/upload via HTTPS.") + (license license:asl2.0))) + (define-public vsearch (package (name "vsearch") From 3f90f83576453238cda99e92a0999413ad6c55d4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 14:35:37 +0200 Subject: [PATCH 064/287] gnu: criu: Build from Git sources. This in preparation for 3.16.1 which lacks a stable tarball. * gnu/packages/virtualization.scm (criu)[source]: Use GIT-FETCH and GIT-FILE-NAME. --- gnu/packages/virtualization.scm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 41b405a7f0..4fe1663cd9 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1545,13 +1545,15 @@ (define-public criu (package (name "criu") (version "3.16") - (source (origin - (method url-fetch) - (uri (string-append "https://download.openvz.org/criu/criu-" - version ".tar.bz2")) - (sha256 - (base32 - "13x4s7nms3ckb016d03icdsrw4k6f7i33qz9n84fzhmibm0grj70")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/checkpoint-restore/criu") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ddgmsry4k1ialbj0rwfcdrcsazdn72py7a084wjwb4g0al1jg9l")))) (build-system gnu-build-system) (arguments `(#:test-target "test" From c07266dee5a08160d98ec725052db35a8cc33686 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 14:44:01 +0200 Subject: [PATCH 065/287] gnu: criu: Delete custom 'configure phase. * gnu/packages/virtualization.scm (criu)[arguments]: Delete 'configure phase. --- gnu/packages/virtualization.scm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 4fe1663cd9..e9217dc0ec 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1568,14 +1568,8 @@ (define-public criu "/bin/xmlto")) #:phases (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key inputs #:allow-other-keys) - ;; The includes for libnl are located in a sub-directory. - (setenv "C_INCLUDE_PATH" - (string-append (assoc-ref inputs "libnl") - "/include/libnl3:" - (or (getenv "C_INCLUDE_PATH") ""))))) - (add-after 'configure 'fix-documentation + (delete 'configure) ; no configure script + (add-after 'unpack 'fix-documentation (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "Documentation/Makefile" (("-m custom.xsl") From b16b9f85bef0c2966837912c59f81670cf8e26ef Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 14:37:08 +0200 Subject: [PATCH 066/287] gnu: criu: Update to 3.16.1. * gnu/packages/virtualization.scm (criu): Update to 3.16.1. --- gnu/packages/virtualization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index e9217dc0ec..3ed25ccc85 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1544,7 +1544,7 @@ (define-public virt-manager (define-public criu (package (name "criu") - (version "3.16") + (version "3.16.1") (source (origin (method git-fetch) @@ -1553,7 +1553,7 @@ (define-public criu (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ddgmsry4k1ialbj0rwfcdrcsazdn72py7a084wjwb4g0al1jg9l")))) + (base32 "1riw15197fnrs254jl7wks9x8bdml76kf1vnqkkgyypr13dnq55g")))) (build-system gnu-build-system) (arguments `(#:test-target "test" From 04542d5a6fffbff80fa429c6186098537751b33e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 15:38:46 +0200 Subject: [PATCH 067/287] gnu: criu: Fix PYTHONPATH & switch to Python 3 to build criu-ns. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/virtualization.scm (criu)[arguments]: Set PYTHON in #:make-flags instead of ‘hard-coding’ it later. Replace the forever-broken 'wrap phase with one that doesn't attempt to support ‘--with-input’ for now. [inputs]: Substitute python and python-protobuf for python-2 and python2-protobuf, respectively, and remove python2-ipaddr. --- gnu/packages/virtualization.scm | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 3ed25ccc85..fb6e8ebfa3 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1564,6 +1564,7 @@ (define-public criu "/lib") (string-append "ASCIIDOC=" (assoc-ref %build-inputs "asciidoc") "/bin/asciidoc") + (string-append "PYTHON=python3") (string-append "XMLTO=" (assoc-ref %build-inputs "xmlto") "/bin/xmlto")) #:phases @@ -1583,14 +1584,7 @@ (define-public criu (lambda* (#:key inputs #:allow-other-keys) ;; Hardcode arm version detection (substitute* "Makefile" - (("ARMV.*:=.*") "ARMV := 7\n")) - ;; We are currently using python-2 - (substitute* "crit/Makefile" - (("\\$\\(PYTHON\\)") "python2")) - (substitute* "lib/Makefile" - (("\\$\\(PYTHON\\)") - (string-append (assoc-ref inputs "python") - "/bin/python"))))) + (("ARMV.*:=.*") "ARMV := 7\n")))) (add-before 'build 'fix-symlink (lambda* (#:key inputs #:allow-other-keys) ;; The file 'images/google/protobuf/descriptor.proto' points to @@ -1604,15 +1598,14 @@ (define-public criu (add-after 'install 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) ;; Make sure 'crit' runs with the correct PYTHONPATH. - (let* ((out (assoc-ref outputs "out")) - (path (string-append out - "/lib/python" - (string-take (string-take-right - (assoc-ref inputs "python") 5) 3) - "/site-packages:" - (getenv "PYTHONPATH")))) + (let* ((out (assoc-ref outputs "out")) + (site (string-append out "/lib/python" + ,(version-major+minor + (package-version python)) + "/site-packages")) + (path (getenv "PYTHONPATH"))) (wrap-program (string-append out "/bin/crit") - `("PYTHONPATH" ":" prefix (,path)))))) + `("PYTHONPATH" ":" prefix (,site ,path)))))) (add-after 'install 'delete-static-libraries ;; Not building/installing these at all doesn't seem to be supported. (lambda* (#:key outputs #:allow-other-keys) @@ -1620,9 +1613,8 @@ (define-public criu (for-each delete-file (find-files out "\\.a$")))))))) (inputs `(("protobuf" ,protobuf) - ("python" ,python-2) - ("python2-protobuf" ,python2-protobuf) - ("python2-ipaddr" ,python2-ipaddr) + ("python" ,python) + ("python-protobuf" ,python-protobuf) ("iproute" ,iproute) ("libaio" ,libaio) ("libcap" ,libcap) From 3e73beaf233f7533b9cafc3d162048560f48a72f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 19:37:07 +0200 Subject: [PATCH 068/287] gnu: fntsample: Update Blocks.txt and use stable URL. * gnu/packages/fontutils.scm (fntsample)[input]: Update unicode-blocks to 14.0.0 and include the version in its URL and name. --- gnu/packages/fontutils.scm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index d173a1529e..c962777666 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -935,13 +935,15 @@ (define-public fntsample ("perl-pdf-api2" ,perl-pdf-api2) ("perl-libintl-perl" ,perl-libintl-perl) ("unicode-blocks" - ,(origin - (method url-fetch) - (uri "https://unicode.org/Public/UNIDATA/Blocks.txt") - (file-name "unicode-blocks.txt") - (sha256 - (base32 - "1xs8fnhh48gs41wg004r7m4r2azh9khmyjjlnvyzy9c6zrd212x2")))))) + ,(let ((version "14.0.0")) + (origin + (method url-fetch) + (uri (string-append "https://unicode.org/Public/" + version "/ucd/Blocks.txt")) + (file-name (string-append "unicode-blocks-" version ".txt")) + (sha256 + (base32 + "05vzgrvfp35mgxjgkm4wnxjjgzva8n6545i9jxd4pczpvvfp122r"))))))) (home-page "https://github.com/eugmes/fntsample") (synopsis "PDF and PostScript font samples generator") (description "This package provides a tool that can be used to make font From 44d0acfe92fda66acb00e20e11555f2ba153afbb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 19:38:14 +0200 Subject: [PATCH 069/287] gnu: fntsample: Update to 5.4. * gnu/packages/fontutils.scm (fntsample): Update to 5.4. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/fontutils.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index c962777666..febe5839f8 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -891,7 +891,7 @@ (define-public fontmanager (define-public fntsample (package (name "fntsample") - (version "5.3") + (version "5.4") (source (origin (method git-fetch) (uri (git-reference @@ -900,7 +900,7 @@ (define-public fntsample (file-name (git-file-name name version)) (sha256 (base32 - "02rx3gp7k472304vhjwb129nw10a29s4nvgs7i2m6bpjhlk2xgs5")))) + "0pcqqdriv6hq64zrqd9vhdd9p2vhimjnajcxdz10qnqgrkmm751v")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -921,8 +921,7 @@ (define-public fntsample "/lib/perl5/site_perl/" ,(package-version perl)))) (wrap-program (string-append out "/bin/pdfoutline") - `("PERL5LIB" ":" prefix (,perllib))) - #t)))))) + `("PERL5LIB" ":" prefix (,perllib))))))))) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal))) From 3a7504cbc490f74d9b9d0a3a461058c1d6cafbe6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 23 Sep 2021 14:40:52 +0200 Subject: [PATCH 070/287] installer: Reorder file system type listbox. Recommending ext4 over btrfs is probably ill-advised nowadays. See the regular bug reports about running out of /gnu/store directory entries, for which the documented fix then breaks booting with GRUB. Instead, just list regular file systems alphabetically. We can bikeshed bcachefs later ;-) Move second-class file systems like NTFS to their own section at the end of the list. * gnu/packages/package-management.scm (run-fs-type-page): Reorder the LISTBOX-ITEMS. --- gnu/installer/newt/partition.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index ea524eb4c3..70c11ed8ad 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -131,7 +131,11 @@ (define (run-fs-type-page) (run-listbox-selection-page #:info-text (G_ "Please select the file-system type for this partition.") #:title (G_ "File-system type") - #:listbox-items '(ext4 btrfs fat16 fat32 jfs ntfs xfs swap) + #:listbox-items '(btrfs ext4 jfs xfs + swap + ;; These lack basic Unix features. Their only use + ;; on GNU is for interoperation, e.g., with UEFI. + fat32 fat16 ntfs) #:listbox-item->text user-fs-type-name #:sort-listbox-items? #f #:button-text (G_ "Exit") From 2f79308872482402d3a32174dbefbf3d6d40f727 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 20:38:42 +0200 Subject: [PATCH 071/287] =?UTF-8?q?gnu:=20Fix=20=E2=80=98this=20packages?= =?UTF-8?q?=E2=80=99=20and=20some=20other=20niggles.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/crates-io.scm (rust-home-0.5)[description]: Fix ‘this packages’ typo. * gnu/packages/emacs-xyz.scm (emacs-ahg, emacs-cwl-mode)[description]: Likewise. * gnu/packages/python-check.scm (python-pytest-csv)[description]: Likewise. * gnu/packages/ocaml.scm (ocaml-syntax-shims)[description]: Likewise, and note which language. * gnu/packages/python-xyz.scm (python-recommonmark)[description]: Likewise, and work around ‘enabling you’. --- gnu/packages/crates-io.scm | 2 +- gnu/packages/emacs-xyz.scm | 4 ++-- gnu/packages/ocaml.scm | 4 ++-- gnu/packages/python-check.scm | 2 +- gnu/packages/python-xyz.scm | 4 ++-- gnu/packages/web.scm | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 089b9f456c..b8587e8084 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -20512,7 +20512,7 @@ (define-public rust-home-0.5 (("rust-winapi" ,rust-winapi-0.3)))) (home-page "https://github.com/brson/home") (synopsis "Shared definitions of home directories") - (description "This packages provides the definition of @code{home_dir} + (description "This package provides the definition of @code{home_dir} used by @command{cargo} and @command{rustup}, as well as functions to find the correct value of @samp{CARGO_HOME} and @samp{RUSTUP_HOME}.") (license (list license:expat license:asl2.0)))) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 31fe24057f..8ad35124ed 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -1722,7 +1722,7 @@ (define-public emacs-ahg (home-page "https://bitbucket.org/agriggio/ahg") (synopsis "Emacs front-end for the Mercurial SCM") (description - "This packages provides a simple Emacs front-end for the Mercurial + "This package provides a simple Emacs front-end for the Mercurial Distributed @acronym{Source Control Management, SCM} system.") (license license:gpl3+)))) @@ -29509,7 +29509,7 @@ (define-public emacs-cwl-mode `(("emacs-yaml-mode" ,emacs-yaml-mode))) (home-page "https://github.com/tom-tan/cwl-mode") (synopsis "Emacs mode for @acronym{CWL, Common Workflow Language} files") - (description "This packages provides a major mode for editing + (description "This package provides a major mode for editing @acronym{CWL, Common Workflow Language} files.") (license license:gpl3+))) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 025bac691c..660bc44bc7 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -7262,8 +7262,8 @@ (define-public ocaml-syntax-shims (synopsis "Backport new syntax to older OCaml versions") (description - "This packages backports new features of the language to older -compilers, such as let+.") + "This package backports new language features such as @code{let+} to older +OCaml compilers.") (license license:expat))) (define-public ocaml-angstrom diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index f321d0b0f6..a13bd0baa4 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -120,7 +120,7 @@ (define-public python-pytest-csv ("python-six" ,python-six))) (home-page "https://github.com/nicoulaj/pytest-csv") (synopsis "CSV reporter for Pytest") - (description "This packages provides a plugin for Pytest that enables a + (description "This package provides a plugin for Pytest that enables a CSV output mode for Pytest. It can be enabled via the @option{--csv} option it adds to the Pytest command line interface (CLI).") (license license:gpl3+))) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 18f88fc1a7..eb9fcc310d 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -27044,8 +27044,8 @@ (define-public python-recommonmark (home-page "https://github.com/readthedocs/recommonmark") (synopsis "Docutils-compatibility bridge to CommonMark") (description - "This packages provides a docutils-compatibility bridge to CommonMark, -enabling you to write CommonMark inside of Docutils & Sphinx projects.") + "This package provides a docutils-compatibility bridge to CommonMark that +lets you write CommonMark inside of Docutils & Sphinx projects.") (license license:expat))) (define-public python-pyhull diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 0fd9e865cb..7d7a3c4317 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -807,7 +807,7 @@ (define-public nginx-rtmp-module ;; The nginx source code is part of the module’s source. (format #t "decompressing nginx source code~%") (invoke "tar" "xvf" (assoc-ref inputs "nginx-sources") - ;; This packages's LICENSE file would be + ;; This package's LICENSE file would be ;; overwritten with the one from nginx when ;; unpacking the nginx source, so rename the nginx ;; one when unpacking. From b5602ef7ecccc96468bddd7bdf3ac423e12dcb3a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 22:05:11 +0200 Subject: [PATCH 072/287] gnu: boxes: Update to 2.1.1. * gnu/packages/shellutils.scm (boxes): Update to 2.1.1. [arguments]: Adjust 'install phase. Don't explicitly return #t from phases. [native-inputs]: Add xxd. [inputs]: Add libunistring and pcre2. --- gnu/packages/shellutils.scm | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 70236d9e5c..25e0ae3c2d 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -42,18 +42,21 @@ (define-module (gnu packages shellutils) #:use-module (gnu packages bison) #:use-module (gnu packages flex) #:use-module (gnu packages golang) + #:use-module (gnu packages libunistring) #:use-module (gnu packages ncurses) + #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) #:use-module (gnu packages shells) - #:use-module (gnu packages tmux)) + #:use-module (gnu packages tmux) + #:use-module (gnu packages vim)) (define-public boxes (package (name "boxes") - (version "1.3") + (version "2.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -62,7 +65,7 @@ (define-public boxes (file-name (git-file-name name version)) (sha256 (base32 - "0b12rsynrmkldlwcb62drk33kk0aqwbj10mq5y5x3hjf626gjwsi")))) + "1bf5rnfiw04ffs1l17zhbg4wvq2vfn2qbz1xmd250xqj15lysw88")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -78,11 +81,18 @@ (define-public boxes (for-each (lambda (x) (install-file (car x) (string-append dest "/" (cdr x)))) - '(("src/boxes" . "bin") + '(("out/boxes" . "bin") ("doc/boxes.1" . "share/man/man1") - ("boxes-config" . "etc/"))) - #t)))))) - (native-inputs `(("flex" ,flex) ("bison" ,bison))) + ("boxes-config" . "etc/"))))))))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + + ;; For the tests. + ("xxd" ,xxd))) + (inputs + `(("libunistring" ,libunistring) + ("pcre2" ,pcre2))) (synopsis "Command line ASCII boxes") (description "This command-line filter program draws ASCII-art boxes around your input From ed0215d3f90ca7d55ed878563131a48adfd95195 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 22:10:06 +0200 Subject: [PATCH 073/287] gnu: boxes: Link to homier home page. * gnu/packages/shellutils.scm (boxes)[home-page]: Link to the front page. --- gnu/packages/shellutils.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 25e0ae3c2d..dd13d5dd13 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -93,11 +93,11 @@ (define-public boxes (inputs `(("libunistring" ,libunistring) ("pcre2" ,pcre2))) + (home-page "https://boxes.thomasjensen.com") (synopsis "Command line ASCII boxes") (description "This command-line filter program draws ASCII-art boxes around your input text.") - (home-page "https://boxes.thomasjensen.com/build.html") (license license:gpl2))) (define-public zsh-autosuggestions From 980146637ceed18e1d72900ea95bc61a8367d7fa Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 21 Oct 2021 22:18:38 +0200 Subject: [PATCH 074/287] gnu: boxes: Match over CAR/CDR. * gnu/packages/shellutils.scm (boxes)[arguments]: Import (ice-9 match) and use it to replace the 'install phases's CAR & CDR usage. --- gnu/packages/shellutils.scm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index dd13d5dd13..3ded0ee897 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -72,18 +72,22 @@ (define-public boxes #:make-flags (list (string-append "GLOBALCONF=" (assoc-ref %outputs "out") "/etc/boxes-config")) + #:modules + ((ice-9 match) + ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases (delete 'configure) (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (let ((dest (assoc-ref outputs "out"))) - (for-each (lambda (x) - (install-file (car x) - (string-append dest "/" (cdr x)))) - '(("out/boxes" . "bin") - ("doc/boxes.1" . "share/man/man1") - ("boxes-config" . "etc/"))))))))) + (let ((out (assoc-ref outputs "out"))) + (for-each (match-lambda + ((source target) + (install-file source + (string-append out "/" target)))) + '(("out/boxes" "bin/") + ("doc/boxes.1" "share/man/man1/") + ("boxes-config" "etc/"))))))))) (native-inputs `(("bison" ,bison) ("flex" ,flex) From 886d04425e5a087816979b8a96b1e706693b5f93 Mon Sep 17 00:00:00 2001 From: jgart via Guix-patches via Date: Thu, 21 Oct 2021 17:40:55 -0400 Subject: [PATCH 075/287] guix: packages: Add comment on license field. * guix/packages/packages.scm (): Add comment about the type that the license field expects as part of a package record. Signed-off-by: Tobias Geerinckx-Rice --- guix/packages.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/packages.scm b/guix/packages.scm index 8c3a0b0b7b..e5a9d08bce 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -473,7 +473,7 @@ (define-record-type* (synopsis package-synopsis) ; one-line description (description package-description) ; one or two paragraphs - (license package-license) + (license package-license) ; instance or list (home-page package-home-page) (supported-systems package-supported-systems ; list of strings (default %supported-systems)) From 48c40581356e5eb84fefb66c6f47ff97f17c48ca Mon Sep 17 00:00:00 2001 From: jgart Date: Fri, 22 Oct 2021 00:12:22 +0200 Subject: [PATCH 076/287] gnu: Add snooze. * gnu/packages/suckless.scm (snooze): New variable. Signed-off-by: Nicolas Goaziou --- gnu/packages/suckless.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 59cf542455..e80ed2bca0 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -904,6 +904,39 @@ (define-public lchat chat output in the background.") (license license:isc)))) +(define-public snooze + (package + (name "snooze") + (version "0.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/leahneukirchen/snooze") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02ng3r1gzgpyjia4b60i11dj5bhn3xjsdcbwmxaam6dzb33dmgib")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests. + #:make-flags + (list (string-append "CC=" ,(cc-for-target)) + (string-append "DESTDIR=" %output) + ;; Set prefix path to root of package path in store instead + ;; of /usr/local. + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/leahneukirchen/snooze") + (synopsis "Run a command at a particular time") + (description +"@command{snooze} is a tool for waiting until a particular time and then +running a command.") + (license license:cc0))) + (define-public scron (package (name "scron") From fae6c8a2a2ef427189159540f731940a8a80b9c4 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 22 Oct 2021 00:14:35 +0200 Subject: [PATCH 077/287] gnu: emacs-map: Update to 1.3.2. * gnu/packages/emacs-xyz.scm (emacs-map): Update to 1.3.2. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 8ad35124ed..5604e4d007 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -29214,14 +29214,14 @@ (define-public emacs-map (define-public emacs-xref (package (name "emacs-xref") - (version "1.3.0") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/xref-" version ".tar")) (sha256 - (base32 "0bw2cbxmjavzhmpd9gyl41d4c201p535jrfz3b7jb5zw12jdnppl")))) + (base32 "13bsaxdxwn14plaam0hsrswngh3rm2k29v5ybjgjyjy4d5vwz78j")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/xref.html") (synopsis "Cross-referencing commands") From a84960f3371bc77ebddeefbbb007de623cf44a22 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 22 Oct 2021 00:17:50 +0200 Subject: [PATCH 078/287] gnu: emacs-vc-hgcmd: Update to 1.14.1. * gnu/packages/emacs-xyz.scm (emacs-vc-hgcmd): Update to 1.14.1. --- gnu/packages/emacs-xyz.scm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 5604e4d007..0fc1b7871c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -457,16 +457,16 @@ (define-public emacs-geiser-chez (define-public emacs-vc-hgcmd (package (name "emacs-vc-hgcmd") - (version "1.14") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/muffinmad/emacs-vc-hgcmd") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1mm8lnwii53j32v54aahl8sf3ciwymrvc1rgy4nw2m7hcrnjsb78")))) + (version "1.14.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/muffinmad/emacs-vc-hgcmd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nlaicza4ds325827ks5gb7zn0nc536k2chq8jwbq34ybvxi93wj")))) (build-system emacs-build-system) (home-page "https://github.com/muffinmad/emacs-vc-hgcmd") (synopsis "Version control (VC) backend for the Mercurial command server") From da168ee6d6c7d9a4568c0a0062c0252dc4d42932 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 22 Oct 2021 00:19:54 +0200 Subject: [PATCH 079/287] gnu: emacs-embark: Update to 0.12. * gnu/packages/emacs-xyz.scm (emacs-embark): Update to 0.12. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 0fc1b7871c..930bc0f328 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -8209,7 +8209,7 @@ (define-public emacs-solaire-mode (define-public emacs-embark (package (name "emacs-embark") - (version "0.10") + (version "0.12") (source (origin (method git-fetch) @@ -8217,7 +8217,7 @@ (define-public emacs-embark (url "https://github.com/oantolin/embark") (commit version))) (sha256 - (base32 "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz")) + (base32 "16z7g6ynj4d64wsg49skhwypn5j6awlpsawbz61djsmpzlzjnv36")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs From 74b1cef9d835d78b6756034c32acdb7b06716a97 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 22 Oct 2021 00:22:05 +0200 Subject: [PATCH 080/287] gnu: emacs-org-re-reveal: Update to 3.12.3. * gnu/packages/emacs-xyz.scm (emacs-org-re-reveal): Update to 3.12.3. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 930bc0f328..09b100cc0f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -18958,7 +18958,7 @@ (define-public emacs-org-reveal (define-public emacs-org-re-reveal (package (name "emacs-org-re-reveal") - (version "3.12.1") + (version "3.12.3") (source (origin (method git-fetch) @@ -18967,7 +18967,7 @@ (define-public emacs-org-re-reveal (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0hi8lq9rj6i2m14dh75dzq7lq41i4f6qj4xbp2b8krqw6mk9xg7z")))) + (base32 "08ai87b6nybg0l7y8falb53wwvdv8hr3jzj5q995x48ylw6r1582")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-htmlize" ,emacs-htmlize) From 1011b1ce93de183ecd48c2bb465d81428c39724c Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 22 Oct 2021 00:23:39 +0200 Subject: [PATCH 081/287] gnu: emacs-packed: Update to 3.0.4. * gnu/packages/emacs-xyz.scm (emacs-packed): Update to 3.0.4. --- gnu/packages/emacs-xyz.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 09b100cc0f..0ee0805c5c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -21143,7 +21143,7 @@ (define-public emacs-package-lint (define-public emacs-packed (package (name "emacs-packed") - (version "3.0.3") + (version "3.0.4") (source (origin (method git-fetch) @@ -21152,8 +21152,7 @@ (define-public emacs-packed (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "06blk8parnpq3qi6y5628q3v59c8dyi41glb289a0l16248qwphk")))) + (base32 "1gpv2vaci0m48fzn0sy7iwl1mnkkqc30bf05jjrqlpn9kpbjyf1p")))) (build-system emacs-build-system) (home-page "https://github.com/emacscollective/packed") (synopsis "Package manager agnostic Emacs Lisp package utilities") From fe3a5764104b99e3f7569c80416081c2f1c3a8c4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 21 Oct 2021 16:05:28 -0400 Subject: [PATCH 082/287] gnu: linux-libre: Update to 5.14.14. * gnu/packages/linux.scm (linux-libre-5.14-version): Update to 5.14.14. (linux-libre-5.14-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 37cc427e56..dbcd39ce16 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -346,7 +346,7 @@ (define (%upstream-linux-source version hash) ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-5.14-version "5.14.13") +(define-public linux-libre-5.14-version "5.14.14") (define-public linux-libre-5.14-gnu-revision "gnu") (define deblob-scripts-5.14 (linux-libre-deblob-scripts @@ -356,7 +356,7 @@ (define deblob-scripts-5.14 (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7"))) (define-public linux-libre-5.14-pristine-source (let ((version linux-libre-5.14-version) - (hash (base32 "0kcn9g5jyd043f75wk3k34j430callzhw5jh1if9zacqq2s7haw3"))) + (hash (base32 "0snh17ah49wmfmazy6x42rhvl484h657y0iq4l09a885sjb4xzsd"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.14))) From 1e05e8c35ecb061684afa86953b50856ee303423 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 21 Oct 2021 16:09:51 -0400 Subject: [PATCH 083/287] gnu: linux-libre 5.10: Update to 5.10.75. * gnu/packages/linux.scm (linux-libre-5.10-version): Update to 5.10.75. (linux-libre-5.10-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index dbcd39ce16..00b64d9389 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -364,7 +364,7 @@ (define-public linux-libre-5.14-pristine-source ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; -(define-public linux-libre-5.10-version "5.10.74") +(define-public linux-libre-5.10-version "5.10.75") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -374,7 +374,7 @@ (define deblob-scripts-5.10 (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "1c717mn47mg43k7xfwydygwv14r67aksn1c24c99hf8qf14acmap"))) + (hash (base32 "0jrhhk89587caw54nhnwms93kq33qdm75x5f18cp61xrxxgjyaqa"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) From da3db96f1854db33bb2acef5140b55ee80e22eef Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 21 Oct 2021 16:10:08 -0400 Subject: [PATCH 084/287] gnu: linux-libre 5.4: Update to 5.4.155. * gnu/packages/linux.scm (linux-libre-5.4-version): Update to 5.4.155. (linux-libre-5.4-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 00b64d9389..a3e6c1f8d6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -379,7 +379,7 @@ (define-public linux-libre-5.10-pristine-source (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.154") +(define-public linux-libre-5.4-version "5.4.155") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -389,7 +389,7 @@ (define deblob-scripts-5.4 (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "01iwbz1ncakw90yykdw3cx04wnclwf1qa8nmlis08svbcvs99285"))) + (hash (base32 "0f2hfz76rnhmv99zhbh7n1z48316ilxrxrnh4b5m3lj84y80y36c"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) From 79ab933d3384ebfc8516784de4f42983dc15e7aa Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 21 Oct 2021 16:10:24 -0400 Subject: [PATCH 085/287] gnu: linux-libre 4.19: Update to 4.19.213. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.213. (linux-libre-4.19-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a3e6c1f8d6..2f82da0fbf 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -394,7 +394,7 @@ (define-public linux-libre-5.4-pristine-source (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.212") +(define-public linux-libre-4.19-version "4.19.213") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -404,7 +404,7 @@ (define deblob-scripts-4.19 (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "0hxn3mzxh4hpnrkyjv9gipb81k6p0zd07a3xvb6fb6njvmwdpvsw"))) + (hash (base32 "162f5y3jplql3ca5xy889mq6izjinryx2kx16zp582yvsqf8rwiq"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) From 6cbbd54e64ce588014c906d503bcaf31c9c7f09f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 21 Oct 2021 16:10:38 -0400 Subject: [PATCH 086/287] gnu: linux-libre 4.14: Update to 4.14.252. * gnu/packages/linux.scm (linux-libre-4.14-version): Update to 4.14.252. (linux-libre-4.14-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2f82da0fbf..34e28301dc 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -409,7 +409,7 @@ (define-public linux-libre-4.19-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.251") +(define-public linux-libre-4.14-version "4.14.252") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts @@ -419,7 +419,7 @@ (define deblob-scripts-4.14 (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "08g1i6wylwi50rns2grdi9f0m8np64qvfqb28drafy772m2klinp"))) + (hash (base32 "022rw51s8fzz6wcxa9xq6h60fglfx0hq7bmqgs5dlrci6plv4fwk"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) From 0513aa4b41bcc34840a24054e4e2da2dd6e39ed3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 22 Oct 2021 01:34:21 +0200 Subject: [PATCH 087/287] gnu: chirp: Update to 20211016. * gnu/packages/radio.scm (chirp): Update to 20211016. --- gnu/packages/radio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index c07fa46f76..6c6955b5ea 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -379,14 +379,14 @@ (define-public soapyrtlsdr (define-public chirp (package (name "chirp") - (version "20201121") + (version "20211016") (source (origin (method url-fetch) (uri (string-append "https://trac.chirp.danplanet.com/chirp_daily/daily-" version "/chirp-daily-" version ".tar.gz")) (sha256 - (base32 "092jryb1jn9li6zj243awv6piz1lhghqsm4phrz7j0rgqf76dy4n")))) + (base32 "13xzqnhvnw6yipv4izkq0s9ykyl9pc5ifpr1ii8xfp28ch706qyw")))) (build-system python-build-system) (inputs `(("python2-libxml2" ,python2-libxml2) From 3640ad9a4d0fb80d052f346a33bf4470ae2890c3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 22 Oct 2021 01:14:18 +0200 Subject: [PATCH 088/287] gnu: hamlib: Update to 4.3.1. * gnu/packages/radio.scm (hamlib): Update to 4.3.1. --- gnu/packages/radio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 6c6955b5ea..7c059affa4 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -1069,7 +1069,7 @@ (define-public hackrf (define-public hamlib (package (name "hamlib") - (version "4.2") + (version "4.3.1") (source (origin (method url-fetch) @@ -1077,7 +1077,7 @@ (define-public hamlib "https://github.com/Hamlib/Hamlib/releases/download/" version "/hamlib-" version ".tar.gz")) (sha256 - (base32 "1m8gb20i8ga6ndnnw187ry1h4z8wx27v1hl7c610r6ky60pv4072")))) + (base32 "0c578m04zs8dllbd4cv6nxb44y0dn8kiapzkih84ycfjzmnkhdrl")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) From c5881ff1f3ea321401b0f040c4e795bcd452ef5d Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 20 Oct 2021 04:02:06 +0200 Subject: [PATCH 089/287] doc: Set LC_ALL when translating xref commands. * doc/local.mk (xref_command): Set LC_ALL. --- doc/local.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/local.mk b/doc/local.mk index fff11f8183..d0cab306a4 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -110,18 +110,18 @@ endef $(srcdir)/%D%/guix.%.texi: po/doc/guix-manual.%.po $(srcdir)/%D%/contributing.%.texi guix/build/po.go -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/guix.texi" -p "$<" -l "$@.tmp" -sed -i "s|guix\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp" - -$(AM_V_POXREF)$(xref_command) + -$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command) -mv "$@.tmp" "$@" $(srcdir)/%D%/guix-cookbook.%.texi: po/doc/guix-cookbook.%.po guix/build/po.go -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/guix-cookbook.texi" -p "$<" -l "$@.tmp" -sed -i "s|guix-cookbook\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp" - -$(AM_V_POXREF)$(xref_command) + -$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command) -mv "$@.tmp" "$@" $(srcdir)/%D%/contributing.%.texi: po/doc/guix-manual.%.po guix/build/po.go -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/contributing.texi" -p "$<" -l "$@.tmp" - -$(AM_V_POXREF)$(xref_command) + -$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command) -mv "$@.tmp" "$@" %D%/os-config-%.texi: gnu/system/examples/%.tmpl From 713659f44979d426a45d47005e4591687740e45b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 22 Oct 2021 01:59:51 +0200 Subject: [PATCH 090/287] gnu: chibi-scheme: Update to 0.10. * gnu/packages/scheme.scm (chibi-scheme): Update to 0.10. --- gnu/packages/scheme.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index c43d17219e..de56626ee3 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -444,7 +444,7 @@ (define-public gambit-c (define-public chibi-scheme (package (name "chibi-scheme") - (version "0.9") + (version "0.10") (home-page "https://github.com/ashinn/chibi-scheme") (source (origin @@ -452,8 +452,7 @@ (define-public chibi-scheme (uri (git-reference (url home-page) (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1lnap41gl9vg82h557f4rlr69jgmd2gh0iqs6cxm77d39kv1scb8")))) + (base32 "0yhmj0lws3r3bl4ivs31dhlzxqc7f0dinixi904mraz1fmrg3w7f")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases From e0840e2b1c3c139a826b05adb33563274c14e9d8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 22 Oct 2021 02:12:22 +0200 Subject: [PATCH 091/287] gnu: chibi-scheme: Cross-compile. * gnu/packages/scheme.scm (chibi-scheme)[arguments]: Set CC to CC-FOR-TARGET in #:make-flags rather than hard-coding it to "gcc" as an environment variable. --- gnu/packages/scheme.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index de56626ee3..544c24970a 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -455,13 +455,12 @@ (define-public chibi-scheme (base32 "0yhmj0lws3r3bl4ivs31dhlzxqc7f0dinixi904mraz1fmrg3w7f")))) (build-system gnu-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'set-cc - (lambda _ - (setenv "CC" "gcc")))) + `(#:phases + (modify-phases %standard-phases + (delete 'configure)) ; no configure script #:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "PREFIX=" out) + (string-append "CC=" ,(cc-for-target)) (string-append "LDFLAGS=-Wl,-rpath=" out "/lib"))) #:test-target "test")) (synopsis "Small embeddable Scheme implementation") From e8ef3b808d66fe7a7e73613dd7e57f42f9bb9d5f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 22 Oct 2021 02:58:34 +0200 Subject: [PATCH 092/287] gnu: git-remote-gcrypt: Update to 1.4. * gnu/packages/version-control.scm (git-remote-gcrypt): Update to 1.4. [source]: Use GIT-FILE-NAME helper. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/version-control.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index d7b1adadc7..064212db9f 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -874,16 +874,16 @@ (define-public git-crypt (define-public git-remote-gcrypt (package (name "git-remote-gcrypt") - (version "1.3") + (version "1.4") (source (origin (method git-fetch) (uri (git-reference (url "https://git.spwhitton.name/git-remote-gcrypt") (commit version))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 - "0n8fzvr6y0pxrbvkywlky2bd8jvi0ayp4n9hwi84l1ldmv4a40dh")))) + "1x5ca1fi0hyn5w5mnz230x27bqr8j78adnzmlc7cbhzr13q36y5q")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -893,8 +893,7 @@ (define-public git-remote-gcrypt (output (assoc-ref %outputs "out")) (bindir (string-append output "/bin"))) (install-file (string-append source "/git-remote-gcrypt") - bindir) - #t)))) + bindir))))) (home-page "https://spwhitton.name/tech/code/git-remote-gcrypt/") (synopsis "Whole remote repository encryption") (description "git-remote-gcrypt is a Git remote helper to push and pull from From 39e6fec373c29e341dd6995694756df9d82264b8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 21 Oct 2021 16:25:37 +0200 Subject: [PATCH 093/287] gnu: ungoogled-chromium: Update to 95.0.4638.54-1. * gnu/packages/chromium.scm (%chromium-version): Set to 95.0.4638.54. (%ungoogled-revision): Set to 95.0.4638.54. (%ungoogled-origin): Update hash. (ungoogled-chromium)[source]: Likewise. [arguments]: Remove obsolete configure flag. Adjust substitutions for 95. --- gnu/packages/chromium.scm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 2b3f54e773..6683287258 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -336,8 +336,8 @@ (define* (debian-patch name hash #:optional (revision %debian-revision)) (string-append "ungoogled-chromium-" category "-" name)))) (sha256 (base32 hash)))) -(define %chromium-version "94.0.4606.81") -(define %ungoogled-revision "94.0.4606.81-1") +(define %chromium-version "95.0.4638.54") +(define %ungoogled-revision "95.0.4638.54-1") (define %arch-revision "db2157b84924ce84201a8245e68a02f7d55f6491") (define %debian-revision "debian/90.0.4430.85-1") @@ -367,7 +367,7 @@ (define %ungoogled-origin (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (sha256 (base32 - "113abybh8kkw9a92lj6jww6dl6rc1sv5x7a7a1gjwsihzd2r0cik")))) + "01jkkz5224aaj5cgdmqknf8v73fyaw4q8bzbqa520a0lvl7hwbg5")))) (define %guix-patches (list (local-file @@ -502,7 +502,7 @@ (define-public ungoogled-chromium %chromium-version ".tar.xz")) (sha256 (base32 - "16755mfqxxmvslm9ix060safrnml91ckj5p85960jj5g5hmslwbh")) + "1zb1009gg9962axn2l1krycz7ml20i8z2n3ka2psxpg68pbqivry")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) @@ -598,7 +598,6 @@ (define-public ungoogled-chromium "rtc_use_h264=true" "rtc_use_pipewire=true" "rtc_link_pipewire=true" - "rtc_pipewire_version=\"0.3\"" ;; Don't use bundled sources. "rtc_build_json=true" ;FIXME: libc++ std::string ABI difference "rtc_build_libevent=false" @@ -651,15 +650,16 @@ (define-public ungoogled-chromium "")) ;; XXX: Should be unnecessary when use_system_lcms2=true. - (substitute* "third_party/pdfium/core/fxcodec/icc/iccmodule.h" + (substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h" (("include \"third_party/lcms/include/lcms2\\.h\"") "include \"lcms2.h\"")) - ;; Add missing include statement. - (substitute* "third_party/pdfium/core/fxcodec/png/png_decoder.cpp" - (("#include \"core/fxcodec/fx_codec.h\"" all) - (string-append all - "\n#include \"core/fxcodec/fx_codec_def.h\""))) + ;; Chromium bundles a pre-release of Harfbuzz 3.0 and uses an + ;; experimental API that was removed in 3.0. Adjust to use + ;; the updated API (taken from ). + (substitute* "components/paint_preview/common/subset_font.cc" + (("hb_subset_input_no_subset_tables_set\\(input\\.get\\(\\)\\)") + "hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG)")) (substitute* "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h" From e1261ddd38cf02a0f046f3a5360502d659b4e7d4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 21 Oct 2021 16:29:03 +0200 Subject: [PATCH 094/287] gnu: uBlock Origin: Update to 1.38.6. * gnu/packages/browser-extensions.scm (ublock-origin): Update to 1.38.6. --- gnu/packages/browser-extensions.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm index b643f40843..183b44f2c3 100644 --- a/gnu/packages/browser-extensions.scm +++ b/gnu/packages/browser-extensions.scm @@ -51,7 +51,7 @@ (define-public play-to-kodi/chromium (define ublock-origin (package (name "ublock-origin") - (version "1.38.4") + (version "1.38.6") (home-page "https://github.com/gorhill/uBlock") (source (origin (method git-fetch) @@ -60,7 +60,7 @@ (define ublock-origin (file-name (git-file-name name version)) (sha256 (base32 - "127b5mg54zfci86q66fss701y20b0mjpa4flx7iar7nviqg9fa1h")))) + "1jdi7p537dj0bpxsdnvs722cw8xv5ifh8mjj1ndwjvgasvj18fsd")))) (build-system gnu-build-system) (outputs '("xpi" "firefox" "chromium")) (arguments From 41492639e0223dc8fc1a357e1f9537577c055db7 Mon Sep 17 00:00:00 2001 From: Ivan Gankevich Date: Sat, 24 Jul 2021 11:51:56 +0300 Subject: [PATCH 095/287] gnu: Add gmic-qt-gimp. * gnu/packages/image-processing.scm (gmic-qt-gimp): New variable. Signed-off-by: Leo Famulari --- gnu/packages/image-processing.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index c8b1f20c63..403763d94f 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2021 Andy Tai ;;; Copyright © 2021 Ekaitz Zarraga ;;; Copyright © 2021 Paul Garlick +;;; Copyright © 2021 Ivan Gankevich ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,6 +57,7 @@ (define-module (gnu packages image-processing) #:use-module (gnu packages fontutils) #:use-module (gnu packages geo) #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gimp) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -801,6 +803,25 @@ (define-public gmic-qt-krita (assoc-ref %build-inputs "gmic") "/lib"))))) (synopsis "Krita plugin for the G'MIC image processing framework"))) +(define-public gmic-qt-gimp + (package + (inherit gmic-qt) + (name "gmic-qt-gimp") + (inputs + ;; GIMP and its dependencies. + `(("gimp" ,gimp) + ("gdk-pixbuf" ,gdk-pixbuf) + ("cairo" ,cairo) + ("gegl" ,gegl) + ,@(package-inputs gmic-qt))) + (arguments + (substitute-keyword-arguments (package-arguments gmic-qt) + ((#:configure-flags flags) + '(list "-DGMIC_QT_HOST=gimp" "-DENABLE_DYNAMIC_LINKING=ON" + (string-append "-DGMIC_LIB_PATH=" + (assoc-ref %build-inputs "gmic") "/lib"))))) + (synopsis "GIMP plugin for the G'MIC image processing framework"))) + (define-public nip2 (package (name "nip2") From 4a0cd6297af35a36e9f492bb234fc110d6423a4d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 22 Oct 2021 21:28:34 +0000 Subject: [PATCH 096/287] gnu: Add qtltools. * gnu/packages/bioinformatics.scm (qtltools): New variable. --- gnu/packages/bioinformatics.scm | 77 +++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 395e8ce509..63b391683c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1361,6 +1361,83 @@ (define-public ciri-long long-read sequencing data.") (license license:expat))) +(define-public qtltools + (package + (name "qtltools") + (version "1.3.1") + (source (origin + (method url-fetch/tarbomb) + (uri (string-append "https://qtltools.github.io/qtltools/" + "binaries/QTLtools_" version + "_source.tar.gz")) + (sha256 + (base32 + "13gdry5l43abn3464fmk8qzrxgxnxah2612r66p9dzhhl92j30cd")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests included + #:make-flags + (list (string-append "BOOST_INC=" + (assoc-ref %build-inputs "boost") "/include") + (string-append "BOOST_LIB=" + (assoc-ref %build-inputs "boost") "/lib") + (string-append "HTSLD_INC=" + (assoc-ref %build-inputs "htslib") "/include") + (string-append "HTSLD_LIB=" + (assoc-ref %build-inputs "htslib") "/lib") + (string-append "RMATH_INC=" + (assoc-ref %build-inputs "rmath-standalone") + "/include") + (string-append "RMATH_LIB=" + (assoc-ref %build-inputs "rmath-standalone") + "/lib")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-linkage + (lambda _ + (substitute* "qtltools/Makefile" + (("libboost_iostreams.a") + "libboost_iostreams.so") + (("libboost_program_options.a") + "libboost_program_options.so") + (("-lblas") "-lopenblas")))) + (add-before 'build 'chdir + (lambda _ (chdir "qtltools"))) + (replace 'configure + (lambda _ + (substitute* "qtltools/Makefile" + (("LIB_FLAGS=-lz") + "LIB_FLAGS=-lz -lcrypto -lssl") + (("LIB_FILES=\\$\\(RMATH_LIB\\)/libRmath.a \ +\\$\\(HTSLD_LIB\\)/libhts.a \ +\\$\\(BOOST_LIB\\)/libboost_iostreams.a \ +\\$\\(BOOST_LIB\\)/libboost_program_options.a") + "LIB_FILES=$(RMATH_LIB)/libRmath.so \ +$(HTSLD_LIB)/libhts.so \ +$(BOOST_LIB)/libboost_iostreams.so \ +$(BOOST_LIB)/libboost_program_options.so")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (install-file "bin/QTLtools" bin))))))) + (inputs + `(("curl" ,curl) + ("gsl" ,gsl) + ("boost" ,boost) + ("rmath-standalone" ,rmath-standalone) + ("htslib" ,htslib-1.3) + ("openssl" ,openssl) + ("openblas" ,openblas) + ("zlib" ,zlib))) + (home-page "https://qtltools.github.io/qtltools/") + (synopsis "Tool set for molecular QTL discovery and analysis") + (description "QTLtools is a tool set for molecular QTL discovery +and analysis. It allows to go from the raw genetic sequence data to +collection of molecular @dfn{Quantitative Trait Loci} (QTLs) in few +easy-to-perform steps.") + (license license:gpl3+))) + (define-public bpp-core ;; The last release was in 2014 and the recommended way to install from source ;; is to clone the git repository, so we do this. From cc6f0354e29625ae3d9fc3eaca89d591330d9637 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 23 Oct 2021 11:39:00 +0200 Subject: [PATCH 097/287] gnu: emacs-alect-themes: Update to 0.10. * gnu/packages/emacs-xyz.scm (emacs-alect-themes): Update to 0.10. --- gnu/packages/emacs-xyz.scm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 0ee0805c5c..aeb6aa4aba 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -23442,16 +23442,16 @@ (define-public emacs-repology (define-public emacs-alect-themes (package (name "emacs-alect-themes") - (version "0.9") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alezost/alect-themes") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9")))) + (version "0.10") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alezost/alect-themes") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "190clnm5x4hpzrq2wp18vxg6614ly3ciyv0y1sm9rfr9w9z5i0ya")))) (build-system emacs-build-system) (home-page "https://github.com/alezost/alect-themes") (synopsis "Low contrast, light, dark and black color theme for Emacs") From f03fa7f9b0b8f8e212ccb4bb5e2eafc4a6913cfc Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 01:01:54 +0200 Subject: [PATCH 098/287] gnu: exiv2: Update to 0.27.5. * gnu/packages/image.scm (exiv2): Update to 0.27.5. --- gnu/packages/image.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 8a632c85d3..713e477b8d 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1346,14 +1346,14 @@ (define-public libmng (define-public exiv2 (package (name "exiv2") - (version "0.27.4") + (version "0.27.5") (source (origin (method url-fetch) (uri (string-append "https://www.exiv2.org/builds/exiv2-" version "-Source.tar.gz")) (sha256 - (base32 "0klhxkxvkzzzcqpzv8jb56pykq0gyhb6rk9vc2kzjahngjx6sdl4")))) + (base32 "1qm6bvj28l42km009nc60gffn1qhngc0m2wjlhf90si3mcc8d99m")))) (build-system cmake-build-system) (arguments '(#:test-target "tests" From b7e3f85e11e66bd1e93fe33746707da573e31af8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 12:41:04 +0200 Subject: [PATCH 099/287] gnu: exiv2: Delete static library. * gnu/packages/image.scm (exiv2)[arguments]: Add a 'delete-static-libraries phase. --- gnu/packages/image.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 713e477b8d..09277514aa 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1357,7 +1357,14 @@ (define-public exiv2 (build-system cmake-build-system) (arguments '(#:test-target "tests" - #:configure-flags (list "-DEXIV2_BUILD_UNIT_TESTS=ON"))) + #:configure-flags (list "-DEXIV2_BUILD_UNIT_TESTS=ON") + #:phases + (modify-phases %standard-phases + (add-after 'install 'delete-static-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + (for-each delete-file (find-files lib "\\.a$")))))))) (propagated-inputs `(("expat" ,expat) ("zlib" ,zlib))) From cea62941f0e18c815b38ca932ada95bc605deda9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 01:02:14 +0200 Subject: [PATCH 100/287] gnu: fontmanager: Update to 0.8.7. * gnu/packages/fontutils.scm (fontmanager): Update to 0.8.7. --- gnu/packages/fontutils.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index febe5839f8..733a4072c2 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -844,7 +844,7 @@ (define-public fcft (define-public fontmanager (package (name "fontmanager") - (version "0.8.4") + (version "0.8.7") (source (origin (method git-fetch) @@ -853,8 +853,7 @@ (define-public fontmanager (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "09rv0srpj8ann2n1zpv1frlpxz0x10d2y21c5lys7pmfngljlxi9")))) + (base32 "0nyda2a6vbzyz4sn9mmrr8bkifzxmmjp7x9a3c4s6n925ccy79cn")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t From 196e3f52355ee7d086e67eb769d714dd040d61c2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 01:02:52 +0200 Subject: [PATCH 101/287] gnu: bcachefs-tools: Update to 0.1-12.f9f5778. * gnu/packages/file-systems.scm (bcachefs-tools): Update to 0.1-12.f9f5778. --- gnu/packages/file-systems.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index a22e107336..32a6a33042 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -414,8 +414,8 @@ (define-public gphotofs (license license:gpl2+))) (define-public bcachefs-tools - (let ((commit "37850436dd7dfbe67738749c4d4a2506ffff1ec3") - (revision "11")) + (let ((commit "f9f57789de567726f7cfa46bd13df4b0815d137a") + (revision "12")) (package (name "bcachefs-tools") (version (git-version "0.1" revision commit)) @@ -427,7 +427,7 @@ (define-public bcachefs-tools (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "040vgxrimahmfs9rhlggfwg0bzl7h9j2ksx3563rh63asjwlhnhi")))) + (base32 "13442qpmv7hywkpbnbwlg2sfhlfh16qxry1xwlv35vch2qnzlhrq")))) (build-system gnu-build-system) (arguments `(#:make-flags From 7628430a2f46a4a57d5ff7e51b1be80b7765c96c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 13:14:17 +0200 Subject: [PATCH 102/287] gnu: php: Update to 7.4.25 [security fixes]. * gnu/packages/php.scm (php): Update to 7.4.25. [source]: Don't explicitly return #t from snippet. --- gnu/packages/php.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index e6df1e6666..c4d5856325 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -60,7 +60,7 @@ (define-module (gnu packages php) (define-public php (package (name "php") - (version "7.4.22") + (version "7.4.25") (home-page "https://secure.php.net/") (source (origin (method url-fetch) @@ -68,7 +68,7 @@ (define-public php "php-" version ".tar.xz")) (sha256 (base32 - "1s5xjy1cchlg0vfxic73wy2wip8spfjr094hzzyc76plsbbqq1wf")) + "02iw75niazf3zh3ry15k5yjy6ivg49rwzlr8g8w49rgyszqmi9qj")) (patches (search-patches "php-bug-74093-test.patch")) (modules '((guix build utils))) (snippet @@ -82,8 +82,7 @@ (define-public php ;;"fileinfo/libmagic" ; a patched version of libmagic '("gd/libgd" "pcre/pcre2lib" - "xmlrpc/libxmlrpc")) - #t)))) + "xmlrpc/libxmlrpc")))))) (build-system gnu-build-system) (arguments `(#:configure-flags From fa6b5f5043c098f8ce0c7b73c9b7e4688cc33034 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 14:01:27 +0200 Subject: [PATCH 103/287] gnu: xen: Fetch Git sources over HTTPS. * gnu/packages/virtualization.scm (xen)[source, native-inputs]: Clone the xen and mini-os repositories over HTTPS. --- gnu/packages/virtualization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index fb6e8ebfa3..ecde4aec9e 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -2012,7 +2012,7 @@ (define-public xen (source (origin (method git-fetch) (uri (git-reference - (url "git://xenbits.xenproject.org/xen.git") + (url "https://xenbits.xen.org/git-http/xen.git") (commit (string-append "RELEASE-" version)))) (file-name (git-file-name name version)) (sha256 @@ -2184,7 +2184,7 @@ (define (filter-environment! filter-predicate ,(origin (method git-fetch) (uri (git-reference - (url "http://xenbits.xen.org/git-http/mini-os.git") + (url "https://xenbits.xen.org/git-http/mini-os.git") (commit (string-append "xen-RELEASE-" version)))) (sha256 (base32 From 7635279100147fc7cec97e0c0046f5871c26f380 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 14:03:10 +0200 Subject: [PATCH 104/287] gnu: xen: Fix upstream hash mismatch. * gnu/packages/virtualization.scm (xen)[native-inputs]: Fetch mini-os by Git its commit rather than an unstable tag. --- gnu/packages/virtualization.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index ecde4aec9e..15040d65a8 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -2008,7 +2008,7 @@ (define-public bochs (define-public xen (package (name "xen") - (version "4.14.1") + (version "4.14.1") ; please update the mini-os input as well (source (origin (method git-fetch) (uri (git-reference @@ -2185,10 +2185,12 @@ (define (filter-environment! filter-predicate (method git-fetch) (uri (git-reference (url "https://xenbits.xen.org/git-http/mini-os.git") - (commit (string-append "xen-RELEASE-" version)))) + ;; This corresponds to (string-append "xen-RELEASE-" version)) + ;; at time of packaging, but upstream has unfortunately modified + ;; existing tags in the past. + (commit "0b4b7897e08b967a09bed2028a79fabff82342dd"))) (sha256 - (base32 - "1i8pcl19n60i2m9vlg79q3nknpj209c9ic5x10wxaicx45kc107f")) + (base32 "1i8pcl19n60i2m9vlg79q3nknpj209c9ic5x10wxaicx45kc107f")) (file-name "mini-os-git-checkout"))) ("perl" ,perl) ; TODO: markdown From 1f5e6ff6486eefb0d035e27ca2059c780180bebd Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sat, 23 Oct 2021 15:01:56 +0200 Subject: [PATCH 105/287] gnu: sdr++: Activate M17 support. * gnu/packages/radio.scm (sdr++)[inputs]: Add codec2. [arguments]: Add "-DOPT_BUILD_M17_DECODER=ON" to 'configure-flags'. --- gnu/packages/radio.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 7c059affa4..d3ba209617 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -2135,6 +2135,7 @@ (define-public sdr++ (inputs `(("airspyhf" ,airspyhf) ("alsa-lib" ,alsa-lib) + ("codec2" ,codec2) ("fftwf" ,fftwf) ("glew" ,glew) ("glfw" ,glfw) @@ -2149,7 +2150,8 @@ (define-public sdr++ (arguments `(#:tests? #f ; No test suite. #:configure-flags '("-DOPT_BUILD_AIRSPY_SOURCE=OFF" - "-DOPT_BUILD_PLUTOSDR_SOURCE=OFF") + "-DOPT_BUILD_PLUTOSDR_SOURCE=OFF" + "-DOPT_BUILD_M17_DECODER=ON") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-paths From 5df03003e62748734781ed8425b2aeceba256652 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 16:48:39 +0200 Subject: [PATCH 106/287] gnu: bcachefs-tools-static: Fix build. This follows up on commit 196e3f52355ee7d086e67eb769d714dd040d61c2: bcachefs-tools now unconditionally builds and installs libbcachefs.so. * gnu/packages/file-systems.scm (bcachefs-tools-static)[arguments]: Add a new 'skip-shared-library phase. --- gnu/packages/file-systems.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 32a6a33042..68488301b3 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -507,7 +507,17 @@ (define-public bcachefs-tools/static (substitute-keyword-arguments (package-arguments bcachefs-tools) ((#:make-flags make-flags) `(append ,make-flags - (list "LDFLAGS=-static"))))) + (list "LDFLAGS=-static"))) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'skip-shared-library + (lambda _ + (substitute* "Makefile" + ;; Building the shared library with ‘-static’ obviously fails… + (("^((all|install):.*)\\blib\\b(.*)" _ prefix suffix) + (string-append prefix suffix "\n")) + ;; …as does installing a now non-existent file. + ((".*\\$\\(INSTALL\\).* lib.*") "")))))))) (inputs `(("eudev:static" ,eudev "static") ("libscrypt:static" ,libscrypt "static") From 09b8fcc0b7ea24268419a7e27024dfd14378fb76 Mon Sep 17 00:00:00 2001 From: Michael Ford Date: Tue, 19 Oct 2021 14:21:35 +0800 Subject: [PATCH 107/287] gnu: bitcoin-core@0.21: Update to 0.21.2 Signed-off-by: Leo Famulari --- gnu/packages/finance.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 7ccf4b77b6..f0093ba635 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -115,7 +115,7 @@ (define-module (gnu packages finance) (define-public bitcoin-core-0.21 (package (name "bitcoin-core") - (version "0.21.1") + (version "0.21.2") (source (origin (method url-fetch) (uri @@ -123,7 +123,7 @@ (define-public bitcoin-core-0.21 version "/bitcoin-" version ".tar.gz")) (sha256 (base32 - "1q51nqv64lhng5wh1cqb01jar7iswpnyyb1i7xslbkr0j9227zya")))) + "17nvir1yc6mf4wr1fn4xsabw49cd5p9vig8wj77vv4anzi8zfij1")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) From 38db6e10f020c305bfc6e459dc2cf2a6ad444f91 Mon Sep 17 00:00:00 2001 From: Konrad Hinsen Date: Wed, 29 Sep 2021 20:40:35 +0200 Subject: [PATCH 108/287] gnu: font-juliamono: Update to 0.043. * gnu/packages/fonts.scm (font-juliamono): Update to 0.043. Signed-off-by: Leo Famulari --- gnu/packages/fonts.scm | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index c3a2120583..793b86ced8 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -1966,25 +1966,25 @@ (define-public font-jetbrains-mono (define-public font-juliamono (package (name "font-juliamono") - (version "0.031") + (version "0.043") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cormullion/juliamono") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append + "https://github.com/cormullion/juliamono/releases/download/" + "v" version "/JuliaMono-ttf.tar.gz")) (sha256 - (base32 "0pcz2qaw0g0gak4plvhgg3m76h4gamffa373r52dzx0qwn1i1cf1")))) + (base32 + "0vb7n9yqgasnxzps13ckklay5bla6b0i79pzmfqvjms1r37079gh")))) (build-system font-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'delete-website-folder - ;; This folder contains other unrelated fonts. - (lambda _ - (delete-file-recursively "website") - #t))))) + `(#:phases (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (mkdir "source") + (chdir "source") + (invoke "tar" "xzf" source)))))) + (native-inputs `(("tar" ,tar))) (home-page "https://github.com/cormullion/juliamono") (synopsis "Monospaced font for programming") (description From ae3fa855f38bd3952e2cf510bbb58bbe74aeb3f8 Mon Sep 17 00:00:00 2001 From: Vinicius Monego Date: Sat, 23 Oct 2021 12:17:59 +0000 Subject: [PATCH 109/287] gnu: Add imath. * gnu/packages/graphics.scm (imath): New variable. Signed-off-by: Leo Famulari --- gnu/packages/graphics.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 9a5e2f2195..c285d781fe 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2021 Antoine Côté ;;; Copyright © 2021 Andy Tai ;;; Copyright © 2021 Ekaitz Zarraga +;;; Copyright © 2021 Vinicius Monego ;;; ;;; This file is part of GNU Guix. ;;; @@ -796,6 +797,28 @@ (define-public cgal ;; permissive licenses. (license license:gpl3+))) +(define-public imath + (package + (name "imath") + (version "3.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AcademySoftwareFoundation/Imath") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nyld18mf220ghm1vidnfnn0rdns9z5i4l9s66xgd0kfdgarb31f")))) + (build-system cmake-build-system) + (home-page "https://github.com/AcademySoftwareFoundation/Imath") + (synopsis "Library of math operations for computer graphics") + (description + "Imath is a C++ representation of 2D and 3D vectors and matrices and other +mathematical objects, functions, and data types common in computer graphics +applications, including the \"half\" 16-bit floating-point type.") + (license license:bsd-3))) + (define-public ilmbase (package (name "ilmbase") From d71336b2e3c86432f174645163d06a3ef83deaae Mon Sep 17 00:00:00 2001 From: Vinicius Monego Date: Sat, 23 Oct 2021 12:18:00 +0000 Subject: [PATCH 110/287] gnu: Rename openexr to openexr-2. This is done so the OpenEXR package can be upgraded to version 3 in a later commit. * gnu/packages/graphics.scm (openexr): Rename to ... (openexr-2): ... new variable. (blender, blender-2.79, openimageio, povray)[inputs]: Adjust accordingly. (ctl)[propagated-inputs]: Likewise. * gnu/packages/animation.scm (synfig)[propagated-inputs]: Likewise. * gnu/packages/gimp.scm (gegl, gimp)[inputs]: Likewise. * gnu/packages/gstreamer.scm (gst-plugins-bad)[inputs]: Likewise. * gnu/packages/image-processing.scm (mia, opencolorio, opencv, vips, gmic, nip2)[inputs]: Likewise. * gnu/packages/image-viewers.scm (luminance-hdr)[inputs]: Likewise. * gnu/packages/image.scm (freeimage, vigra, devil)[inputs]: Likewise. * gnu/packages/kde-frameworks.scm (kimageformats)[inputs]: Likewise. * gnu/packages/kde.scm (krita)[inputs]: Likewise. * gnu/packages/photo.scm (enblend-enfuse, darktable, hugin)[inputs]: Likewise. Signed-off-by: Leo Famulari --- gnu/packages/animation.scm | 2 +- gnu/packages/gimp.scm | 4 ++-- gnu/packages/graphics.scm | 12 ++++++------ gnu/packages/gstreamer.scm | 2 +- gnu/packages/image-processing.scm | 12 ++++++------ gnu/packages/image-viewers.scm | 2 +- gnu/packages/image.scm | 6 +++--- gnu/packages/kde-frameworks.scm | 2 +- gnu/packages/kde.scm | 2 +- gnu/packages/photo.scm | 6 +++--- 10 files changed, 25 insertions(+), 25 deletions(-) diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm index 6f116af63c..a8ead4295c 100644 --- a/gnu/packages/animation.scm +++ b/gnu/packages/animation.scm @@ -179,7 +179,7 @@ (define-public synfig ("libxml++" ,libxml++) ("libsigc++" ,libsigc++) ("mlt" ,mlt-6) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("pango" ,pango))) (native-inputs `(("intltool" ,intltool) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index ae59385d45..11ec47b7e5 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -265,7 +265,7 @@ (define-public gegl ("libtiff" ,libtiff) ("libwebp" ,libwebp) ("maxflow" ,maxflow) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("pango" ,pango) ("poppler" ,poppler) ("sdl2" ,sdl2))) @@ -352,7 +352,7 @@ (define-public gimp ("libmng" ,libmng) ; optional, MNG support ("librsvg" ,librsvg) ; optional, SVG support ("libxcursor" ,libxcursor) ; optional, Mouse Cursor support - ("openexr" ,openexr) ; optional, EXR support + ("openexr" ,openexr-2) ; optional, EXR support ("openjpeg" ,openjpeg) ; optional, JPEG 2000 support ("poppler" ,poppler) ; optional, PDF support ("poppler-data" ,poppler-data) ; optional, PDF support diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index c285d781fe..eda8744bca 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -569,7 +569,7 @@ (define-public blender ("libxrender" ,libxrender) ("opencolorio" ,opencolorio) ("openimageio" ,openimageio) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("opensubdiv" ,opensubdiv) ("ilmbase" ,ilmbase) ("openjpeg" ,openjpeg) @@ -669,7 +669,7 @@ (define-public blender-2.79 ("libx11" ,libx11) ("opencolorio" ,opencolorio) ("openimageio" ,openimageio) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("ilmbase" ,ilmbase) ("openjpeg" ,openjpeg) ("libjpeg" ,libjpeg-turbo) @@ -1105,7 +1105,7 @@ (define-public ogre (home-page "https://www.ogre3d.org/") (license license:expat))) -(define-public openexr +(define-public openexr-2 (package (name "openexr") (version (package-version ilmbase)) @@ -1189,7 +1189,7 @@ (define-public openimageio ("libjpeg" ,libjpeg-turbo) ("libtiff" ,libtiff) ("giflib" ,giflib) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("ilmbase" ,ilmbase) ("pugixml" ,pugixml) ("python" ,python-wrapper) @@ -1392,7 +1392,7 @@ (define-public povray ("libjpeg" ,libjpeg-turbo) ("libpng" ,libpng) ("libtiff" ,libtiff) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("sdl" ,sdl) ("zlib" ,zlib))) (arguments @@ -1513,7 +1513,7 @@ (define-public ctl (arguments '(#:tests? #f)) ;no 'test' target ;; Headers include OpenEXR and IlmBase headers. - (propagated-inputs `(("openexr" ,openexr))) + (propagated-inputs `(("openexr" ,openexr-2))) (home-page "http://ampasctl.sourceforge.net") (synopsis "Color Transformation Language") diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 73ae2c9815..bb991789da 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -768,7 +768,7 @@ (define-public gst-plugins-bad ("mesa" ,mesa) ("neon" ,neon) ("openal" ,openal) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("openjpeg" ,openjpeg) ("openssl" ,openssl) ("opus" ,opus) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 403763d94f..00b4a3c151 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -162,7 +162,7 @@ (define-public mia ("maxflow" ,maxflow) ("niftilib" ,niftilib) ("nlopt" ,nlopt) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("python-lxml" ,python2-lxml) ("vtk" ,vtk))) (native-inputs @@ -232,7 +232,7 @@ (define-public opencolorio ;; ocioconvert fails: error: conflicting declaration ?typedef void ;; (* PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum, GLenum, GLfloat*) `(("lcms" ,lcms) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("tinyxml" ,tinyxml))) (home-page "https://opencolorio.org") (synopsis "Color management for visual effects and animation") @@ -637,7 +637,7 @@ (define-public opencv ("libwebp" ,libwebp) ("zlib" ,zlib) ("gtkglext" ,gtkglext) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("ilmbase" ,ilmbase) ("gtk+" ,gtk+-2) ("python-numpy" ,python-numpy) @@ -703,7 +703,7 @@ (define-public vips ("libwebp" ,libwebp) ("matio" ,matio) ("niftilib" ,niftilib) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("orc" ,orc) ("pango" ,pango) ("poppler" ,poppler))) @@ -755,7 +755,7 @@ (define-public gmic ("libtiff" ,libtiff) ("libx11" ,libx11) ;;("opencv" ,opencv) ;OpenCV is currently broken in the CI - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("zlib" ,zlib))) (home-page "https://gmic.eu/") (synopsis "Full-featured framework for digital image processing") @@ -861,7 +861,7 @@ (define-public nip2 ("matio" ,matio) ("lcms" ,lcms) ("libwebp" ,libwebp) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("poppler" ,poppler) ("gsl" ,gsl))) (native-inputs diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 0bd53aae8f..4f87b63ca1 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -544,7 +544,7 @@ (define-public luminance-hdr ("libpng" ,libpng) ("libjpeg" ,libjpeg-turbo) ("lcms" ,lcms) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("fftw" ,fftwf) ("gsl" ,gsl) ("libtiff" ,libtiff))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 09277514aa..fc021dd2db 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1158,7 +1158,7 @@ (define-public freeimage ("libraw" ,libraw) ("libtiff" ,libtiff) ("libwebp" ,libwebp) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("openjpeg" ,openjpeg) ("zlib" ,zlib))) (synopsis "Library for handling popular graphics image formats") @@ -1192,7 +1192,7 @@ (define-public vigra ("libjpeg" ,libjpeg-turbo) ("libpng" ,libpng) ("libtiff" ,libtiff) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("python" ,python-wrapper) ("python-numpy" ,python-numpy) ("zlib" ,zlib))) @@ -1412,7 +1412,7 @@ (define-public devil ("libmng" ,libmng) ("libpng" ,libpng) ("libtiff" ,libtiff) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("zlib" ,zlib))) (synopsis "Library for manipulating many image formats") (description "Developer's Image Library (DevIL) is a library to develop diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 00d5eb049d..6a48dc229a 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -1816,7 +1816,7 @@ (define-public kimageformats ("pkg-config" ,pkg-config))) (inputs `(("karchive" ,karchive) ; for Krita and OpenRaster images - ("openexr" ,openexr) ; for OpenEXR high dynamic-range images + ("openexr" ,openexr-2) ; for OpenEXR high dynamic-range images ("qtbase" ,qtbase-5))) (arguments `(#:phases diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 6cba017af0..c6f5227e8b 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -522,7 +522,7 @@ (define-public krita ("libx11" ,libx11) ("libxcb" ,libxcb) ("libxi" ,libxi) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("perl" ,perl) ("poppler-qt5" ,poppler-qt5) ("qtbase" ,qtbase-5) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 908a872b6b..6364323731 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -413,7 +413,7 @@ (define-public enblend-enfuse ("libjpeg" ,libjpeg-turbo) ("libpng" ,libpng) ("libtiff" ,libtiff) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("vigra" ,vigra) ("zlib" ,zlib))) (arguments @@ -568,7 +568,7 @@ (define-public darktable ("libxslt" ,libxslt) ("lua" ,lua) ;optional, for plugins ("opencl-icd-loader" ,opencl-icd-loader) ;optional, for OpenCL support - ("openexr" ,openexr) ;optional, for EXR import/export + ("openexr" ,openexr-2) ;optional, for EXR import/export ("openjpeg" ,openjpeg) ;optional, for JPEG2000 export ("osm-gps-map" ,osm-gps-map) ;optional, for geotagging view ("pugixml" ,pugixml) @@ -726,7 +726,7 @@ (define-public hugin ("libxi" ,libxi) ("libxmu" ,libxmu) ("mesa" ,mesa) - ("openexr" ,openexr) + ("openexr" ,openexr-2) ("sqlite" ,sqlite) ("vigra" ,vigra) ("wxwidgets" ,wxwidgets) From c52ba63c673f90be1d3b52be0051961ed2a9181a Mon Sep 17 00:00:00 2001 From: Vinicius Monego Date: Sat, 23 Oct 2021 12:18:01 +0000 Subject: [PATCH 111/287] gnu: Add OpenEXR 3. * gnu/packages/graphics.scm (openexr): New variable. (openexr-2)[home-page]: Use home-page from openexr. [synopsis]: Use synopsis from openexr. [description]: Use description from openexr. [license]: Use license from openexr. Signed-off-by: Leo Famulari --- gnu/packages/graphics.scm | 46 +++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index eda8744bca..16d1ad2954 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -1105,6 +1105,41 @@ (define-public ogre (home-page "https://www.ogre3d.org/") (license license:expat))) +(define-public openexr + (package + (name "openexr") + (version "3.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AcademySoftwareFoundation/openexr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vyclrrikphwkkpyjg8kzh3qzflzk3d6xsidgqllgfdgllr9wmgv")) + (modules '((guix build utils))) + (snippet + '(begin + (with-directory-excursion "src/test" + (substitute* (append (find-files "." "tmpDir\\.h") + '("OpenEXRCoreTest/main.cpp")) + (("\"/var/tmp/\"") + "\"/tmp/\""))) + #t)))) + (build-system cmake-build-system) + (inputs + `(("imath" ,imath) + ("zlib" ,zlib))) + (home-page "https://www.openexr.com/") + (synopsis "High-dynamic-range file format library") + (description + "OpenEXR provides the specification and reference implementation of the +EXR file format. The purpose of EXR format is to accurately and efficiently +represent high-dynamic-range scene-linear image data and associated metadata, +with strong support for multi-part, multi-channel use cases.") + (license license:bsd-3))) + (define-public openexr-2 (package (name "openexr") @@ -1152,13 +1187,10 @@ (define-public openexr-2 (propagated-inputs `(("ilmbase" ,ilmbase) ;used in public headers ("zlib" ,zlib))) ;OpenEXR.pc reads "-lz" - (home-page "https://www.openexr.com/") - (synopsis "High-dynamic range file format library") - (description - "OpenEXR is a high dynamic-range (HDR) image file format developed for -use in computer imaging applications. The IlmImf C++ libraries support -storage of the \"EXR\" file format for storing 16-bit floating-point images.") - (license license:bsd-3))) + (home-page (package-home-page openexr)) + (synopsis (package-synopsis openexr)) + (description (package-description openexr)) + (license (package-license openexr)))) (define-public openimageio (package From 6b0b6bb4a21afab9720df9f04d531af9ab804673 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 23:19:42 +0200 Subject: [PATCH 112/287] gnu: goaccess: Update to 1.5.2. * gnu/packages/web.scm (goaccess): Update to 1.5.2. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/web.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 7d7a3c4317..dc5a9d61a8 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5823,20 +5823,19 @@ (define-public darkhttpd (define-public goaccess (package (name "goaccess") - (version "1.5.1") + (version "1.5.2") (source (origin (method url-fetch) (uri (string-append "http://tar.goaccess.io/goaccess-" version ".tar.gz")) (sha256 (base32 - "03wp75n1krv8g643q00gcv1ikmzwwh8jjqmph0wxww1bwrw7whc8")) + "12hwmd9cn7yy7vj92110skjaslpxkn05msb9wj228qmjjf9jzkm0")) (modules '((guix build utils))) (snippet '(begin (substitute* "src/error.h" (("__DATE__") "\"1970-01-01\"") - (("__TIME__") "\"00:00:00\"")) - #t)))) + (("__TIME__") "\"00:00:00\"")))))) (build-system gnu-build-system) (inputs ;; TODO: Add dependency on geoip-tools. From 82924c19530b386f1eb972fc84aa535365c3c012 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 23:32:56 +0200 Subject: [PATCH 113/287] gnu: asciinema: Update to 2.1.0. * gnu/packages/terminals.scm (asciinema): Update to 2.1.0. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/terminals.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 637ddb7264..d606bf4bea 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -199,7 +199,7 @@ (define-public termite (define-public asciinema (package (name "asciinema") - (version "2.0.2") + (version "2.1.0") (source (origin (method git-fetch) @@ -208,8 +208,7 @@ (define-public asciinema (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "1a2pysxnp6icyd08mgf66xr6f6j0irnfxdpf3fmzcz31ix7l9kc4")))) + (base32 "1alcz018jrrpasrmgs8nw775a6pf62xq2xgs54c4mb396prdqy4x")))) (build-system python-build-system) (arguments `(#:phases @@ -219,8 +218,7 @@ (define-public asciinema (let ((ncurses (assoc-ref inputs "ncurses"))) (substitute* "asciinema/term.py" (("'tput'") - (string-append "'" ncurses "/bin/tput'")))) - #t)) + (string-append "'" ncurses "/bin/tput'")))))) (replace 'check (lambda _ (invoke "nosetests" "-v")))))) (inputs `(("ncurses" ,ncurses))) From 075c9f12696d23bc86999b7a9ed567f38715e00a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 23:39:04 +0200 Subject: [PATCH 114/287] gnu: asciinema: Remove ncurses reference. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An external ‘tput’ is only required by ancient (<3.3) Pythons 3 and can always be provided in $PATH. It is not worth a reference. * gnu/packages/terminals.scm (asciinema)[arguments]: Remove 'patch-exec-paths phase. [inputs]: Remove ncurses. --- gnu/packages/terminals.scm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index d606bf4bea..9fee37a04d 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -213,15 +213,8 @@ (define-public asciinema (arguments `(#:phases (modify-phases %standard-phases - (add-before 'build 'patch-exec-paths - (lambda* (#:key inputs #:allow-other-keys) - (let ((ncurses (assoc-ref inputs "ncurses"))) - (substitute* "asciinema/term.py" - (("'tput'") - (string-append "'" ncurses "/bin/tput'")))))) (replace 'check (lambda _ (invoke "nosetests" "-v")))))) - (inputs `(("ncurses" ,ncurses))) (native-inputs ;; For tests. `(("python-nose" ,python-nose))) From 103eb25b12b403446e8b08723894dde20e1e6184 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 23 Oct 2021 23:55:40 +0200 Subject: [PATCH 115/287] gnu: dstask: Update to 0.25. * gnu/packages/task-management.scm (dstask): Update to 0.25. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/task-management.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index f7d9de0a52..9968fc28da 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -143,7 +143,7 @@ (define-public taskwarrior (define-public dstask (package (name "dstask") - (version "0.24.1") + (version "0.25") (source (origin (method git-fetch) @@ -152,7 +152,7 @@ (define-public dstask (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "03rl2wh58xd6a80ji43c7ak3h0ysi3ddg570pn8ry24s7s45zsz2")))) + (base32 "1m83zc2zqvpcbjng92jvlnk0biw4krv12wjvjas66jbbk3sjghcy")))) (build-system go-build-system) (arguments `(#:import-path "github.com/naggie/dstask" @@ -178,8 +178,7 @@ (define-public dstask (install-file "dstask" bindir) (install-file "dstask-import" bindir) (install-file ".dstask-bash-completions.sh" bash-completion) - (install-file ".dstask-zsh-completions.sh" zsh-completion))) - #t))))) + (install-file ".dstask-zsh-completions.sh" zsh-completion)))))))) (synopsis "CLI-based TODO manager with git-based sync + markdown notes per task") (description "dstask is a personal task tracker that uses git for synchronization. It offers a note command to attach a Markdown based note to From 35a5650426a8952c595d09104cd0a0b91686b390 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 00:00:33 +0200 Subject: [PATCH 116/287] gnu: skalibs: Update to 2.11.0.0. * gnu/packages/skarnet.scm (skalibs): Update to 2.11.0.0. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/skarnet.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index b38d3f418f..ec524b1d76 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -30,14 +30,14 @@ (define-module (gnu packages skarnet) (define-public skalibs (package (name "skalibs") - (version "2.10.0.3") + (version "2.11.0.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/skalibs/skalibs-" version ".tar.gz")) (sha256 - (base32 "0ka6n5rnxd5sn5lycarf596d5wlak5s535zqqlz0rnhdcnpb105p")))) + (base32 "1n9l7mb54dlb0iijjaf446jba6nmq1ql9n39s095ngrk5ahcipwq")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests exist @@ -48,8 +48,7 @@ (define-public skalibs ;; and *.so files are reproducible. (substitute* "Makefile" (("\\$\\(wildcard src/lib\\*/\\*.c\\)") - "$(sort $(wildcard src/lib*/*.c))")) - #t))))) + "$(sort $(wildcard src/lib*/*.c))"))))))) (home-page "https://skarnet.org/software/skalibs/") (synopsis "Platform abstraction libraries for skarnet.org software") (description From 9ed3ee95bdd03302229bbfe9fdd33af928c065c2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 00:00:56 +0200 Subject: [PATCH 117/287] gnu: execline: Update to 2.8.1.0. * gnu/packages/skarnet.scm (execline): Update to 2.8.1.0. --- gnu/packages/skarnet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index ec524b1d76..c9bc4c6323 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -61,14 +61,14 @@ (define-public skalibs (define-public execline (package (name "execline") - (version "2.8.0.1") + (version "2.8.1.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/execline/execline-" version ".tar.gz")) (sha256 - (base32 "1v9swmhw2rcrr9fmkmd7qh8qq0kslhmvxwz2a3bhan9ksabz8wx3")))) + (base32 "0msmzf5zwjcsgjlvvq28rd2i0fkdb2skmv8ii0ix8dhyckwwjmav")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs))) (arguments From 577e348c0bfdab1009299947f307a6be3961ab4a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 00:05:01 +0200 Subject: [PATCH 118/287] gnu: s6: Update to 2.11.0.0. * gnu/packages/skarnet.scm (s6): Update to 2.11.0.0. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/skarnet.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index c9bc4c6323..6cff495c8c 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -103,14 +103,14 @@ (define-public execline (define-public s6 (package (name "s6") - (version "2.10.0.3") + (version "2.11.0.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6/s6-" version ".tar.gz")) (sha256 - (base32 "0mw7blp8dwr09z58m9mrxwmmvvpnjzq9klcf1vgm0hbha4qkf88x")))) + (base32 "1a3lj0xfhn1w3a4ygqsxy8q4dr3n48hnwml4xzdpz3nrikhy8if5")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs) ("execline" ,execline))) @@ -132,8 +132,7 @@ (define-public s6 (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (doc (string-append out "/share/doc/s6-" ,version))) - (copy-recursively "doc" doc) - #t)))))) + (copy-recursively "doc" doc))))))) (home-page "https://skarnet.org/software/s6") (license isc) (synopsis "Small suite of programs for process supervision") From 6ef806ffde9c3c0e089e8666c87e9d110d0ea4ad Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 00:06:11 +0200 Subject: [PATCH 119/287] gnu: s6-dns: Update to 2.3.5.2. * gnu/packages/skarnet.scm (s6-dns): Update to 2.3.5.2. --- gnu/packages/skarnet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index 6cff495c8c..5081876617 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -148,14 +148,14 @@ (define-public s6 (define-public s6-dns (package (name "s6-dns") - (version "2.3.5.1") + (version "2.3.5.2") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6-dns/s6-dns-" version ".tar.gz")) (sha256 - (base32 "0qsgqwdr5ms337fc9f2b4aa5cr7myvbzndvgkgswnrdwszjm078c")))) + (base32 "0nczzjprvp6wirzycgf5h32dlgx4r8grzkqhif27n3ii6f5g78yw")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs))) (arguments From 9aa11db1cf78ca527a90e5a0fd917f81c1ee5d61 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 00:07:22 +0200 Subject: [PATCH 120/287] gnu: s6-networking: Update to 2.5.0.0. * gnu/packages/skarnet.scm (s6-networking): Update to 2.5.0.0. --- gnu/packages/skarnet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index 5081876617..31dd884c9a 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -177,14 +177,14 @@ (define-public s6-dns (define-public s6-networking (package (name "s6-networking") - (version "2.4.1.1") + (version "2.5.0.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6-networking/" "s6-networking-" version ".tar.gz")) (sha256 - (base32 "0m55ibx7k2wgrqbpci1n667ij0h925ajzggxalq2pj65kmwcmyx3")))) + (base32 "1fn3g9gkwgmnxallhk82f5rly81pnkilj7n49g5fbfmaalsq96mh")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs) ("execline" ,execline) From 155a36ac768aa9580118beb85cd4bfb9cc44760d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 00:08:22 +0200 Subject: [PATCH 121/287] gnu: s6-rc: Update to 0.5.2.3. * gnu/packages/skarnet.scm (s6-rc): Update to 0.5.2.3. --- gnu/packages/skarnet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index 31dd884c9a..e70625d4b6 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -220,14 +220,14 @@ (define-public s6-networking (define-public s6-rc (package (name "s6-rc") - (version "0.5.2.2") + (version "0.5.2.3") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6-rc/s6-rc-" version ".tar.gz")) (sha256 - (base32 "12bzc483jpd16xmhfsfrib84daj1k3kwy5s5nc18ap60apa1r39a")))) + (base32 "1xyaplwzvqnb53mg59a7jklakzwsiqivp6qggsry3sbaw4hf3d5j")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs) ("execline" ,execline) From 5ff655e2ee493c4491b7724ddf630a9021e609c3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 00:09:21 +0200 Subject: [PATCH 122/287] gnu: s6-portable-utils: Update to 2.2.3.3. * gnu/packages/skarnet.scm (s6-portable-utils): Update to 2.2.3.3. --- gnu/packages/skarnet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index e70625d4b6..a79673c9da 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -261,7 +261,7 @@ (define-public s6-rc (define-public s6-portable-utils (package (name "s6-portable-utils") - (version "2.2.3.2") + (version "2.2.3.3") (source (origin (method url-fetch) @@ -269,7 +269,7 @@ (define-public s6-portable-utils "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-" version ".tar.gz")) (sha256 - (base32 "173nmygkp7ky3093dg4rx3ahvyl7ll86z8qj6pl3jd96xb9s49v6")))) + (base32 "132jj5qk8x40kw6lrrn7jiqhvqj9d2h6g6mhl8zma1sp37bg0i84")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs))) (arguments From c78b914ee28c506e0c572b46eadbd900263cf3b5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 00:11:01 +0200 Subject: [PATCH 123/287] gnu: s6-linux-init: Update to 1.0.6.4. * gnu/packages/skarnet.scm (s6-linux-init): Update to 1.0.6.4. --- gnu/packages/skarnet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index a79673c9da..0e0f362dcc 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -293,7 +293,7 @@ (define-public s6-portable-utils (define-public s6-linux-init (package (name "s6-linux-init") - (version "1.0.6.3") + (version "1.0.6.4") (source (origin (method url-fetch) @@ -301,7 +301,7 @@ (define-public s6-linux-init "https://skarnet.org/software/s6-linux-init/s6-linux-init-" version ".tar.gz")) (sha256 - (base32 "1idqjcxhl5wgff8yrsvx2812wahjri2hcs7qs6k62g0sdd8niqr9")))) + (base32 "0grqk111d6aqym1c4l9j26fdqcgra1hvwb9vdgylrfbvn1c3hlpb")))) (build-system gnu-build-system) (inputs `(("execline" ,execline) From b111497f813bb69a273ce47519f0ef0059dfa56e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 00:11:53 +0200 Subject: [PATCH 124/287] gnu: s6-linux-utils: Update to 2.5.1.6. * gnu/packages/skarnet.scm (s6-linux-utils): Update to 2.5.1.6. --- gnu/packages/skarnet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index 0e0f362dcc..a282399024 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -339,7 +339,7 @@ (define-public s6-linux-init (define-public s6-linux-utils (package (name "s6-linux-utils") - (version "2.5.1.5") + (version "2.5.1.6") (source (origin (method url-fetch) @@ -347,7 +347,7 @@ (define-public s6-linux-utils "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-" version ".tar.gz")) (sha256 - (base32 "1fj5ldlrc6bx40pphg29rp3byd6fal6869v85kw86c2kdgrxn063")))) + (base32 "0hr49nl0d7a6i5w8cfg43xzvzayb8kpqij9xg7bmw2fyvc2z338z")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs))) (arguments From 6f3a9d4c9b3cb67ba4a7b9cb2eb00394a06ad36c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 20 Oct 2021 14:51:09 +0300 Subject: [PATCH 125/287] gnu: Add julia-gr-jll. * gnu/packages/julia-jll.scm (julia-gr-jll): New variable. --- gnu/packages/julia-jll.scm | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm index d3677d0a33..51643819ae 100644 --- a/gnu/packages/julia-jll.scm +++ b/gnu/packages/julia-jll.scm @@ -36,6 +36,7 @@ (define-module (gnu packages julia-jll) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) + #:use-module (gnu packages graphics) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) @@ -522,6 +523,55 @@ (define-public julia-glib-jll (description "This package provides a wrapper for the glib library.") (license license:expat))) +(define-public julia-gr-jll + (package + (name "julia-gr-jll") + (version "0.58.1+0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaBinaryWrappers/GR_jll.jl") + (commit (string-append "GR-v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16m22n0wh86v3lh0im2pc9bg381djbmqji5hjx42j6aaz634gqiq")))) + (build-system julia-build-system) + (arguments + '(#:tests? #f ; no runtests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'override-binary-path + (lambda* (#:key inputs #:allow-other-keys) + (map + (lambda (wrapper) + (substitute* wrapper + (("generate_wrapper_header.*") + (string-append + "generate_wrapper_header(\"GR\", \"" + (assoc-ref inputs "gr-framework") "\")\n")))) + ;; There's a Julia file for each platform, override them all + (find-files "src/wrappers/" "\\.jl$"))))))) + (inputs + `(("gr-framework" ,gr-framework))) + (propagated-inputs + `(("julia-jllwrappers" ,julia-jllwrappers) + ("julia-bzip2-jll" ,julia-bzip2-jll) + ("julia-cairo-jll" ,julia-cairo-jll) + ("julia-ffmpeg-jll" ,julia-ffmpeg-jll) + ("julia-fontconfig-jll" ,julia-fontconfig-jll) + ("julia-glfw-jll" ,julia-glfw-jll) + ("julia-jpegturbo-jll" ,julia-jpegturbo-jll) + ("julia-libpng-jll" ,julia-libpng-jll) + ("julia-libtiff-jll" ,julia-libtiff-jll) + ("julia-pixman-jll" ,julia-pixman-jll) + ("julia-qt5base-jll" ,julia-qt5base-jll) + ("julia-zlib-jll" ,julia-zlib-jll))) + (home-page "https://github.com/JuliaBinaryWrappers/GR_jll.jl") + (synopsis "GR framework library wrappers") + (description "This package provides a wrapper for the GR framework.") + (license license:expat))) + (define-public julia-gumbo-jll (package (name "julia-gumbo-jll") From 49996b2763ef92f03aae8709c3494eb129c03178 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 20 Oct 2021 14:55:47 +0300 Subject: [PATCH 126/287] gnu: Add julia-gr. * gnu/packages/julia-xyz.scm (julia-gr): New variable. --- gnu/packages/julia-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 58f58f36ec..1db5a1bc58 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -1895,6 +1895,28 @@ (define-public julia-genericschur matrices the Schur form is often more useful.") (license license:expat))) +(define-public julia-gr + (package + (name "julia-gr") + (version "0.58.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jheinen/GR.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18zxa1w2wmrf44c5l10qbh99zjdp7h94gxlymh47cf5kj5fc4xmx")))) + (build-system julia-build-system) + (propagated-inputs + `(("julia-gr-jll" ,julia-gr-jll))) + (home-page "https://github.com/jheinen/GR.jl") + (synopsis "Plotting for Julia based on GR") + (description "This module provides a Julia interface to GR, a framework for +visualisation applications.") + (license license:expat))) + (define-public julia-graphics (package (name "julia-graphics") From caaf3a7bc673699c4a92a18e7128b57fcb79be48 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 20 Oct 2021 15:25:44 +0300 Subject: [PATCH 127/287] gnu: Add julia-geometrybasics. * gnu/packages/julia-xyz.scm (julia-geometrybasics): New variable. --- gnu/packages/julia-xyz.scm | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 1db5a1bc58..74bec305f0 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -1895,6 +1895,51 @@ (define-public julia-genericschur matrices the Schur form is often more useful.") (license license:expat))) +(define-public julia-geometrybasics + (package + (name "julia-geometrybasics") + (version "0.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaGeometry/GeometryBasics.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "057j3hjpli3q5b98cqkpi4p10x2k9pyksrz62hjmv1kb5qzdvhsj")))) + (build-system julia-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-earcut + (lambda _ + (substitute* '("Project.toml" + "src/GeometryBasics.jl") + ((".*EarCut.*") "")) + #t)) + (add-after 'unpack 'skip-incompatible-test + (lambda _ + (substitute* "test/runtests.jl" + (("@testset.*MetaT and heterogeneous data.*" all) + (string-append all "return\n"))) + #t))))) + (propagated-inputs + `(("julia-itertools" ,julia-itertools) + ("julia-staticarrays" ,julia-staticarrays) + ("julia-structarrays" ,julia-structarrays) + ("julia-tables" ,julia-tables))) + (native-inputs + `(("julia-offsetarrays" ,julia-offsetarrays))) + (home-page "https://github.com/JuliaGeometry/GeometryBasics.jl") + (synopsis "Basic Geometry Types") + (description "This package aims to offer a standard set of Geometry types, +which easily work with metadata, query frameworks on geometries and different +memory layouts. The aim is to create a solid basis for Graphics/Plotting, +finite elements analysis, Geo applications, and general geometry manipulations +- while offering a Julian API, that still allows performant C-interop.") + (license license:expat))) + (define-public julia-gr (package (name "julia-gr") From 9c3b2cf0b3328a08d026dbbf4fea4c26eafc67ef Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 20 Oct 2021 15:36:58 +0300 Subject: [PATCH 128/287] gnu: Add julia-infinity. * gnu/packages/julia-xyz.scm (julia-infinity): New variable. --- gnu/packages/julia-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 74bec305f0..93fadf318c 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -2448,6 +2448,39 @@ (define-public julia-indirectarrays indexed images, sometimes called \"colormap images\" or \"paletted images.\"") (license license:expat))) +(define-public julia-infinity + (package + (name "julia-infinity") + (version "0.2.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cjdoris/Infinity.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1941lwvrdjnrynigzixxin3chpg1ba6xplvcwc89x0f6z658hwmm")))) + (build-system julia-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-timezones.jl + (lambda _ + (substitute* "test/runtests.jl" + (("using TimeZones.*") "") + ((".*infextendedtime.*") "")) + #t))))) + (propagated-inputs + `(("julia-requires" ,julia-requires))) + (native-inputs + `(("julia-compat" ,julia-compat))) + (home-page "https://docs.juliahub.com/Infinity/") + (synopsis "Representation of infinity in Julia") + (description "This package provides representations for infinity and +negative infinity in Julia.") + (license license:expat))) + (define-public julia-inifile (package (name "julia-inifile") From 49d19b35cebd749510b7dddd773d76a3a96d1358 Mon Sep 17 00:00:00 2001 From: Morgan Smith Date: Tue, 19 Oct 2021 15:10:09 -0400 Subject: [PATCH 129/287] gnu: emacs: Handle pdump filenames that contain a fingerprint. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs) [restore-emacs-pdmp]: Use lax regular expressions to match files by the “.pdmp” file ending only. Adjust comment accordingly. Signed-off-by: Liliana Marie Prikler --- gnu/packages/emacs.scm | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 6d9950d068..22d8db3839 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -182,15 +182,13 @@ (define* (emacs-byte-compile-directory dir) (lambda* (#:key outputs target #:allow-other-keys) (let* ((libexec (string-append (assoc-ref outputs "out") "/libexec")) - ;; each of these find-files should return one file - (pdmp (find-files libexec "^emacs\\.pdmp$")) - (pdmp-real (find-files libexec - "^\\.emacs\\.pdmp-real$"))) - (for-each (lambda (wrapper real) - (delete-file wrapper) - (rename-file real wrapper)) - pdmp pdmp-real)) - #t)) + ;; each of these ought to only match a single file, + ;; but even if not (find-files) sorts by string<, + ;; so the Nth element in one maps to the Nth element of + ;; the other + (pdmp (find-files libexec "\\.pdmp$")) + (pdmp-real (find-files libexec "\\.pdmp-real$"))) + (for-each rename-file pdmp-real pdmp)))) (add-after 'glib-or-gtk-wrap 'strip-double-wrap (lambda* (#:key outputs #:allow-other-keys) ;; Directly copy emacs-X.Y to emacs, so that it is not wrapped From 973b21aa6a2b8e4c5e8473a9ca194ce7611c827f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 24 Oct 2021 13:37:53 +0000 Subject: [PATCH 130/287] gnu: Add r-umi4cpackage. * gnu/packages/bioinformatics.scm (r-umi4cpackage): New variable. --- gnu/packages/bioinformatics.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 63b391683c..fbcd571c59 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7647,6 +7647,33 @@ (define-public r-snapatac single cell ATAC-seq sequencing data.") (license license:gpl3))) +(define-public r-umi4cpackage + (let ((commit "88b07d896a137418ba6c31c2474b9dbe1d86fc20") + (revision "1")) + (package + (name "r-umi4cpackage") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tanaylab/umi4cpackage") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bjzamdw2lcfhlbzc0vdva87c3wwnij8jsvnrpx4wyyxvpcz13m5")))) + (properties `((upstream-name . "umi4cPackage"))) + (build-system r-build-system) + (propagated-inputs + `(("r-misha" ,r-misha) + ("r-zoo" ,r-zoo))) + (native-inputs `(("r-knitr" ,r-knitr))) + (home-page "https://github.com/tanaylab/umi4cpackage") + (synopsis "Processing and analysis of UMI-4C contact profiles.") + (description "This is a package that lets you process UMI-4C data from +scratch to produce nice plots.") + (license license:expat)))) + (define-public r-shinycell (let ((commit "aecbd56e66802f28e397f5ae1f19403aadd12163") From 83a7d42426a6931a23f04ffa32ae33764835d28a Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sun, 24 Oct 2021 15:39:32 +0200 Subject: [PATCH 131/287] gnu: Move Common Lisp testing frameworks to lisp-check module. * gnu/packages/lisp-xyz.scm (sbcl-1am, cl-1am, ecl-1am, sbcl-check-it, cl-check-it, ecl-check-it, sbcl-checkl, cl-checkl, ecl-checkl, sbcl-cl-mock, cl-mock, ecl-cl-mock, sbcl-cl-quickcheck, cl-quickcheck, ecl-cl-quickcheck, sbcl-clunit, cl-clunit, ecl-clunit, sbcl-clunit2, cl-clunit2, ecl-clunit2, sbcl-eos, cl-eos, ecl-eos, sbcl-fiasco, cl-fiasco, ecl-fiasco, sbcl-fiveam, cl-fiveam, ecl-fiveam, sbcl-hu.dwim.stefil, cl-hu.dwim.stefil, ecl-hu.dwim.stefil, sbcl-lift, cl-lift, ecl-lift, sbcl-lisp-unit, cl-lisp-unit, ecl-lisp-unit, sbcl-lisp-unit2, cl-lisp-unit2, ecl-lisp-unit2, sbcl-parachute, cl-parachute, ecl-parachute, sbcl-prove, cl-prove, ecl-prove, sbcl-ptester, cl-ptester, ecl-ptester, sbcl-rove, cl-rove, ecl-rove, sbcl-rt, cl-rt, ecl-rt, sbcl-stefil, cl-stefil, ecl-stefil, sbcl-unit-test, cl-unit-test, ecl-unit-test, sbcl-xlunit, cl-xlunit, ecl-xlunit): Move to ... * gnu/packages/lisp-check.scm: ... here. * gnu/packages/web-browsers.scm: Import lisp-check module. * gnu/packages/wm.scm: Import lisp-check module. --- gnu/packages/lisp-check.scm | 753 +++++++++++++++++++++++++++++++++- gnu/packages/lisp-xyz.scm | 745 --------------------------------- gnu/packages/web-browsers.scm | 1 + gnu/packages/wm.scm | 1 + 4 files changed, 754 insertions(+), 746 deletions(-) diff --git a/gnu/packages/lisp-check.scm b/gnu/packages/lisp-check.scm index 6a8dccf8bb..ca00e5054e 100644 --- a/gnu/packages/lisp-check.scm +++ b/gnu/packages/lisp-check.scm @@ -1,6 +1,12 @@ ;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016, 2017 Andy Patterson +;;; Copyright © 2018, 2020 Efraim Flashner +;;; Copyright © 2018, 2019, 2020, 2021 Pierre Neidhardt +;;; Copyright © 2018 Pierre Langlois +;;; Copyright © 2019 Tobias Geerinckx-Rice +;;; Copyright © 2019, 2020 Katherine Cox-Buday +;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant ;;; Copyright © 2021 Sharlatan Hellseher -;;; Copyright © 2021 Guillaume Le Vaillant ;;; Copyright © 2021 Charles Jackson ;;; ;;; This file is part of GNU Guix. @@ -29,6 +35,475 @@ (define-module (gnu packages lisp-check) #:use-module (guix git-download) #:use-module (guix build-system asdf)) +(define-public sbcl-1am + (let ((commit "8b1da94eca4613fd8a20bdf63f0e609e379b0ba5")) + (package + (name "sbcl-1am") + (version (git-version "0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lmj/1am") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/lmj/1am") + (synopsis "Minimal testing framework for Common Lisp") + (description "A minimal testing framework for Common Lisp.") + (license license:expat)))) + +(define-public cl-1am + (sbcl-package->cl-source-package sbcl-1am)) + +(define-public ecl-1am + (sbcl-package->ecl-package sbcl-1am)) + +(define-public sbcl-check-it + (let ((commit "b79c9103665be3976915b56b570038f03486e62f")) + (package + (name "sbcl-check-it") + (version (git-version "0.1.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DalekBaldwin/check-it/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kbjwpniffdpv003igmlz5r0vy65m7wpfnhg54fhwirp1227hgg7")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("closer-mop" ,sbcl-closer-mop) + ("optima" ,sbcl-optima))) + (native-inputs + `(("stefil" ,sbcl-stefil))) + (home-page "https://github.com/arclanguage/Clamp") + (synopsis "Randomized specification-based testing for Common Lisp") + (description + "This is a randomized property-based testing library for Common Lisp. +Rather than being a full-fledged general test framework in its own right, it's +designed to embed randomized tests in whatever framework you like.") + (license license:llgpl)))) + +(define-public cl-check-it + (sbcl-package->cl-source-package sbcl-check-it)) + +(define-public ecl-check-it + (sbcl-package->ecl-package sbcl-check-it)) + +(define-public sbcl-checkl + (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9") + (revision "1")) + (package + (name "sbcl-checkl") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rpav/CheckL") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx")))) + (build-system asdf-build-system/sbcl) + (arguments + ;; Error while trying to load definition for system checkl-test from + ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP + ;; is undefined. + '(#:asd-files '("checkl.asd") + #:tests? #f)) + (native-inputs + `(("sbcl-fiveam" ,sbcl-fiveam))) + (inputs + `(("sbcl-marshal" ,sbcl-marshal))) + (home-page "https://github.com/rpav/CheckL/") + (synopsis "Dynamic testing for Common Lisp") + (description + "CheckL lets you write tests dynamically, it checks resulting values +against the last run.") + ;; The author specifies both LLGPL and "BSD", but the "BSD" license + ;; isn't specified anywhere, so I don't know which kind. LLGPL is the + ;; stronger of the two and so I think only listing this should suffice. + (license license:llgpl)))) + +(define-public cl-checkl + (sbcl-package->cl-source-package sbcl-checkl)) + +(define-public ecl-checkl + (sbcl-package->ecl-package sbcl-checkl)) + +(define-public sbcl-cl-mock + ;; .asd version only got updated recently, despired the old GitHug "1.0.1" release. + (let ((commit "7988dca2093358911b67597a2cd1570c785dfe76")) + (package + (name "sbcl-cl-mock") + (version (git-version "1.0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Ferada/cl-mock/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f40wikcf783jx26ip0nnhwjjfjvjiw7njqsqrb6kaphc8bgw0i1")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("closer-mop" ,sbcl-closer-mop) + ("trivia" ,sbcl-trivia))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (home-page "https://github.com/Ferada/cl-mock") + (synopsis "Mocking functions for Common Lisp testing") + (description + "This small library provides a way to replace the actual implementation +of either regular or generic functions with mocks.") + (license license:agpl3)))) + +(define-public ecl-cl-mock + (sbcl-package->ecl-package sbcl-cl-mock)) + +(define-public cl-mock + (sbcl-package->cl-source-package sbcl-cl-mock)) + +(define-public sbcl-cl-quickcheck + (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f") + (revision "1")) + (package + (name "sbcl-cl-quickcheck") + (version (git-version "0.0.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mcandre/cl-quickcheck") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767")))) + (build-system asdf-build-system/sbcl) + (synopsis + "Common Lisp port of the QuickCheck unit test framework") + (description + "Common Lisp port of the QuickCheck unit test framework") + (home-page "https://github.com/mcandre/cl-quickcheck") + ;; MIT + (license license:expat)))) + +(define-public cl-quickcheck + (sbcl-package->cl-source-package sbcl-cl-quickcheck)) + +(define-public ecl-cl-quickcheck + (sbcl-package->ecl-package sbcl-cl-quickcheck)) + +(define-public sbcl-clunit + (let ((commit "6f6d72873f0e1207f037470105969384f8380628") + (revision "1")) + (package + (name "sbcl-clunit") + (version (git-version "0.2.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tgutu/clunit") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85")))) + (build-system asdf-build-system/sbcl) + (synopsis "CLUnit is a Common Lisp unit testing framework") + (description + "CLUnit is a Common Lisp unit testing framework. It is designed +to be easy to use so that you can quickly start testing. CLUnit +provides a rich set of features aimed at improving your unit testing +experience.") + (home-page "https://tgutu.github.io/clunit/") + ;; MIT License + (license license:expat)))) + +(define-public cl-clunit + (sbcl-package->cl-source-package sbcl-clunit)) + +(define-public ecl-clunit + (sbcl-package->ecl-package sbcl-clunit)) + +(define-public sbcl-clunit2 + (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b") + (revision "1")) + (package + (name "sbcl-clunit2") + (version (git-version "0.2.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/cage/clunit2.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw")))) + (build-system asdf-build-system/sbcl) + (synopsis "Unit testing framework for Common Lisp") + (description + "CLUnit is a Common Lisp unit testing framework. It is designed to be +easy to use so that you can quickly start testing.") + (home-page "https://notabug.org/cage/clunit2") + (license license:expat)))) + +(define-public cl-clunit2 + (sbcl-package->cl-source-package sbcl-clunit2)) + +(define-public ecl-clunit2 + (sbcl-package->ecl-package sbcl-clunit2)) + +(define-public sbcl-eos + (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243") + (revision "2")) + (package + (name "sbcl-eos") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/adlai/Eos") + (commit commit))) + (sha256 + (base32 "1afllvmlnx97yzz404gycl3pa3kwx427k3hrbf37rpmjlv47knhk")) + (file-name (git-file-name "eos" version)))) + (build-system asdf-build-system/sbcl) + (synopsis "Unit Testing for Common Lisp") + (description + "Eos was a unit testing library for Common Lisp. +It began as a fork of FiveAM; however, FiveAM development has continued, while +that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.") + (home-page "https://github.com/adlai/Eos") + (license license:expat)))) + +(define-public cl-eos + (sbcl-package->cl-source-package sbcl-eos)) + +(define-public ecl-eos + (sbcl-package->ecl-package sbcl-eos)) + +(define-public sbcl-fiasco + (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f") + (revision "1")) + (package + (name "sbcl-fiasco") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/joaotavora/fiasco") + (commit commit))) + (file-name (git-file-name "fiasco" version)) + (sha256 + (base32 + "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (synopsis "Simple and powerful test framework for Common Lisp") + (description "A Common Lisp test framework that treasures your failures, +logical continuation of Stefil. It focuses on interactive debugging.") + (home-page "https://github.com/joaotavora/fiasco") + ;; LICENCE specifies this is public-domain unless the legislation + ;; doesn't allow or recognize it. In that case it falls back to a + ;; permissive licence. + (license (list license:public-domain + (license:x11-style "file://LICENCE")))))) + +(define-public cl-fiasco + (sbcl-package->cl-source-package sbcl-fiasco)) + +(define-public ecl-fiasco + (sbcl-package->ecl-package sbcl-fiasco)) + +(define-public sbcl-fiveam + (package + (name "sbcl-fiveam") + (version "1.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sionescu/fiveam") + (commit (string-append "v" version)))) + (file-name (git-file-name "fiveam" version)) + (sha256 + (base32 "04mh5plmlb15jbq3dkd8b9jl1dmbbg4hnd3k7859vpf6s12k5p4j")))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv) + ("trivial-backtrace" ,sbcl-trivial-backtrace))) + (build-system asdf-build-system/sbcl) + (synopsis "Common Lisp testing framework") + (description "FiveAM is a simple (as far as writing and running tests +goes) regression testing framework. It has been designed with Common Lisp's +interactive development model in mind.") + (home-page "https://common-lisp.net/project/fiveam/") + (license license:bsd-3))) + +(define-public cl-fiveam + (sbcl-package->cl-source-package sbcl-fiveam)) + +(define-public ecl-fiveam + (sbcl-package->ecl-package sbcl-fiveam)) + +(define-public sbcl-hu.dwim.stefil + (let ((commit "414902c6f575818c39a8a156b8b61b1adfa73dad")) + (package + (name "sbcl-hu.dwim.stefil") + (version (git-version "0.0.0" "2" commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/hu-dwim/hu.dwim.stefil") + (commit commit))) + (sha256 + (base32 "14izmjjim590rh74swrssavdmdznj2z8vhqixy780sjhpcr5pmkc")) + (file-name (git-file-name "hu.dwim.stefil" version)))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf))) + (inputs + `(("sbcl-alexandria" ,sbcl-alexandria))) + (home-page "http://dwim.hu/project/hu.dwim.stefil") + (synopsis "Simple test framework") + (description "Stefil is a simple test framework for Common Lisp, +with a focus on interactive development.") + (license license:public-domain)))) + +(define-public cl-hu.dwim.stefil + (sbcl-package->cl-source-package sbcl-hu.dwim.stefil)) + +(define-public ecl-hu.dwim.stefil + (sbcl-package->ecl-package sbcl-hu.dwim.stefil)) + +(define-public sbcl-lift + (let ((commit "2594160d6ca3a77d8750110dfa63214256aab852") + (revision "2")) + (package + (name "sbcl-lift") + (version (git-version "1.7.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gwkkwg/lift") + (commit commit))) + (sha256 + (base32 "01xvz9sl5l5lai4h9dabmcjnm659wf5zllaxqbs55lffskp6jwq3")) + (file-name (git-file-name "lift" version)) + (modules '((guix build utils))) + (snippet + ;; Don't keep the bundled website + `(begin + (delete-file-recursively "website") + #t)))) + (build-system asdf-build-system/sbcl) + (arguments + ;; The tests require a debugger, but we run with the debugger disabled. + '(#:tests? #f)) + (synopsis "LIsp Framework for Testing") + (description + "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP. +Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT, +testcases are organized into hierarchical testsuites each of which can have +its own fixture. When run, a testcase can succeed, fail, or error. LIFT +supports randomized testing, benchmarking, profiling, and reporting.") + (home-page "https://github.com/gwkkwg/lift") + (license license:expat)))) + +(define-public cl-lift + (sbcl-package->cl-source-package sbcl-lift)) + +(define-public ecl-lift + (sbcl-package->ecl-package sbcl-lift)) + +(define-public sbcl-lisp-unit + (let ((commit "89653a232626b67400bf9a941f9b367da38d3815")) + (package + (name "sbcl-lisp-unit") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OdonataResearchLLC/lisp-unit") + (commit commit))) + (sha256 + (base32 + "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry")) + (file-name (git-file-name "lisp-unit" version)))) + (build-system asdf-build-system/sbcl) + (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use") + (description + "@command{lisp-unit} is a Common Lisp library that supports unit +testing. It is an extension of the library written by Chris Riesbeck.") + (home-page "https://github.com/OdonataResearchLLC/lisp-unit") + (license license:expat)))) + +(define-public cl-lisp-unit + (sbcl-package->cl-source-package sbcl-lisp-unit)) + +(define-public ecl-lisp-unit + (sbcl-package->ecl-package sbcl-lisp-unit)) + +(define-public sbcl-lisp-unit2 + ;; There is a cyclical dependency between symbol-munger and lisp-unit2. + ;; See https://github.com/AccelerationNet/symbol-munger/issues/4 + (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c") + (revision "1")) + (package + (name "sbcl-lisp-unit2") + (version (git-version "0.2.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AccelerationNet/lisp-unit2") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-interpol" ,sbcl-cl-interpol) + ("iterate" ,sbcl-iterate) + ("symbol-munger" ,sbcl-symbol-munger))) + (synopsis "Test Framework for Common Lisp") + (description + "LISP-UNIT2 is a Common Lisp library that supports unit testing in the +style of JUnit for Java. It is a new version of the lisp-unit library written +by Chris Riesbeck.") + (home-page "https://github.com/AccelerationNet/lisp-unit2") + (license license:expat)))) + +(define-public cl-lisp-unit2 + (sbcl-package->cl-source-package sbcl-lisp-unit2)) + +(define-public ecl-lisp-unit2 + (sbcl-package->ecl-package sbcl-lisp-unit2)) + (define-public sbcl-nst (let ((commit "6c0990f594abcf5887e8d80f1035e3b60454b61b") (revision "1")) @@ -60,6 +535,174 @@ (define-public ecl-nst (define-public cl-nst (sbcl-package->cl-source-package sbcl-nst)) +(define-public sbcl-parachute + (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666") + (revision "0")) + (package + (name "sbcl-parachute") + (version (git-version "1.1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/Shinmera/parachute") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("documentation-utils" ,sbcl-documentation-utils) + ("form-fiddle" ,sbcl-form-fiddle))) + (synopsis "Extensible and cross-compatible testing framework for Common Lisp") + (description + "Parachute is a simple-to-use and extensible testing framework. +In Parachute, things are organised as a bunch of named tests within a package. +Each test can contain a bunch of test forms that make up its body.") + (home-page "https://shinmera.github.io/parachute/") + (license license:zlib)))) + +(define-public cl-parachute + (sbcl-package->cl-source-package sbcl-parachute)) + +(define-public ecl-parachute + (sbcl-package->ecl-package sbcl-parachute)) + +(define-public sbcl-prove + (let ((commit "5d71f02795b89e36f34e8c7d50e69b67ec6ca2de") + (revision "2")) + (package + (name "sbcl-prove") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fukamachi/prove") + (commit commit))) + (sha256 + (base32 "0ca6ha3zhmckq3ad9lxm6sbg4i0hg3m81xhan4dkxd3x9898jzpc")) + (file-name (git-file-name "prove" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-colors" ,sbcl-cl-colors) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("cl-ansi-text" ,sbcl-cl-ansi-text))) + (synopsis "Yet another unit testing framework for Common Lisp") + (description + "This project was originally called @command{cl-test-more}. +@command{prove} is yet another unit testing framework for Common Lisp. The +advantages of @command{prove} are: + +@itemize +@item Various simple functions for testing and informative error messages +@item ASDF integration +@item Extensible test reporters +@item Colorizes the report if it's available (note for SLIME) +@item Reports test durations +@end itemize\n") + (home-page "https://github.com/fukamachi/prove") + (license license:expat)))) + +(define-public cl-prove + (sbcl-package->cl-source-package sbcl-prove)) + +(define-public ecl-prove + (sbcl-package->ecl-package sbcl-prove)) + +(define-public sbcl-ptester + (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253") + (revision "1")) + (package + (name "sbcl-ptester") + (version (git-version "2.1.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "http://git.kpe.io/ptester.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf")))) + (build-system asdf-build-system/sbcl) + (home-page "http://quickdocs.org/ptester/") + (synopsis "Portable test harness package") + (description + "@command{ptester} is a portable testing framework based on Franz's +tester module.") + (license license:llgpl)))) + +(define-public cl-ptester + (sbcl-package->cl-source-package sbcl-ptester)) + +(define-public ecl-ptester + (sbcl-package->ecl-package sbcl-ptester)) + +(define-public sbcl-rove + (package + (name "sbcl-rove") + (version "0.9.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fukamachi/rove") + (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07ala4l2fncxf540fzxj3h5mhi9i4wqllhj0rqk8m2ljl5zbz89q")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("dissect" ,sbcl-dissect) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (home-page "https://github.com/fukamachi/rove") + (synopsis + "Yet another common lisp testing library") + (description + "Rove is a unit testing framework for Common Lisp applications. +This is intended to be a successor of Prove.") + (license license:bsd-3))) + +(define-public cl-rove + (sbcl-package->cl-source-package sbcl-rove)) + +(define-public ecl-rove + (sbcl-package->ecl-package sbcl-rove)) + +(define-public sbcl-rt + (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a") + (revision "1")) + (package + (name "sbcl-rt") + (version (git-version "1990.12.19" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "http://git.kpe.io/rt.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b")))) + (build-system asdf-build-system/sbcl) + (synopsis "MIT Regression Tester") + (description + "RT provides a framework for writing regression test suites.") + (home-page "https://www.cliki.net/rt") + (license license:expat)))) + +(define-public cl-rt + (sbcl-package->cl-source-package sbcl-rt)) + +(define-public ecl-rt + (sbcl-package->ecl-package sbcl-rt)) + (define-public sbcl-should-test (let ((commit "48facb9f9c07aeceb71fc0c48ce17fd7d54a09d4") (revision "0")) @@ -94,3 +737,111 @@ (define-public cl-should-test (define-public ecl-should-test (sbcl-package->ecl-package sbcl-should-test)) + +(define-public sbcl-stefil + (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a") + (revision "0")) + (package + (name "sbcl-stefil") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/stefil/stefil.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("iterate" ,sbcl-iterate) + ("metabang-bind" ,sbcl-metabang-bind) + ("swank" ,sbcl-slime-swank))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'drop-unnecessary-dependency + (lambda _ + (substitute* "package.lisp" + ((":stefil-system") "")) + #t))))) + (home-page "https://common-lisp.net/project/stefil/index-old.shtml") + (synopsis "Simple test framework") + (description + "Stefil is a simple test framework for Common Lisp, with a focus on +interactive development.") + (license license:public-domain)))) + +(define-public cl-stefil + (sbcl-package->cl-source-package sbcl-stefil)) + +(define-public ecl-stefil + (sbcl-package->ecl-package sbcl-stefil)) + +(define-public sbcl-unit-test + (let ((commit "266afaf4ac091fe0e8803bac2ae72d238144e735") + (revision "1")) + (package + (name "sbcl-unit-test") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hanshuebner/unit-test") + (commit commit))) + (file-name (git-file-name "unit-test" version)) + (sha256 + (base32 "11hpksz56iqkv7jw25p2a8r3n9dj922fyarn16d98589g6hdskj9")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/hanshuebner/unit-test") + (synopsis "Unit-testing framework for Common Lisp") + (description "This is a unit-testing framework for Common Lisp.") + (license license:unlicense)))) + +(define-public ecl-unit-test + (sbcl-package->ecl-package sbcl-unit-test)) + +(define-public cl-unit-test + (sbcl-package->cl-source-package sbcl-unit-test)) + +(define-public sbcl-xlunit + (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc") + (revision "1")) + (package + (name "sbcl-xlunit") + (version (git-version "0.6.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "http://git.kpe.io/xlunit.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3")))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "xlunit.asd" + ((" :force t") "")) + #t))))) + (synopsis "Unit testing package for Common Lisp") + (description + "The XLUnit package is a toolkit for building test suites. It is based +on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.") + (home-page "http://quickdocs.org/xlunit/") + (license license:bsd-3)))) + +(define-public cl-xlunit + (sbcl-package->cl-source-package sbcl-xlunit)) + +(define-public ecl-xlunit + (sbcl-package->ecl-package sbcl-xlunit)) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 1c71ca8864..e4e13b7ed7 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -334,37 +334,6 @@ (define-public ecl-command-line-arguments (define-public cl-command-line-arguments (sbcl-package->cl-source-package sbcl-command-line-arguments)) -(define-public sbcl-fiveam - (package - (name "sbcl-fiveam") - (version "1.4.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sionescu/fiveam") - (commit (string-append "v" version)))) - (file-name (git-file-name "fiveam" version)) - (sha256 - (base32 "04mh5plmlb15jbq3dkd8b9jl1dmbbg4hnd3k7859vpf6s12k5p4j")))) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv) - ("trivial-backtrace" ,sbcl-trivial-backtrace))) - (build-system asdf-build-system/sbcl) - (synopsis "Common Lisp testing framework") - (description "FiveAM is a simple (as far as writing and running tests -goes) regression testing framework. It has been designed with Common Lisp's -interactive development model in mind.") - (home-page "https://common-lisp.net/project/fiveam/") - (license license:bsd-3))) - -(define-public cl-fiveam - (sbcl-package->cl-source-package sbcl-fiveam)) - -(define-public ecl-fiveam - (sbcl-package->ecl-package sbcl-fiveam)) - (define-public sbcl-cl-irc (let ((commit "963823537c7bfcda2edd4c44d172192da6722175") (revision "0")) @@ -513,42 +482,6 @@ (define-public cl-trivial-gray-streams (define-public ecl-trivial-gray-streams (sbcl-package->ecl-package sbcl-trivial-gray-streams)) -(define-public sbcl-fiasco - (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f") - (revision "1")) - (package - (name "sbcl-fiasco") - (version (git-version "0.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joaotavora/fiasco") - (commit commit))) - (file-name (git-file-name "fiasco" version)) - (sha256 - (base32 - "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) - (synopsis "Simple and powerful test framework for Common Lisp") - (description "A Common Lisp test framework that treasures your failures, -logical continuation of Stefil. It focuses on interactive debugging.") - (home-page "https://github.com/joaotavora/fiasco") - ;; LICENCE specifies this is public-domain unless the legislation - ;; doesn't allow or recognize it. In that case it falls back to a - ;; permissive licence. - (license (list license:public-domain - (license:x11-style "file://LICENCE")))))) - -(define-public cl-fiasco - (sbcl-package->cl-source-package sbcl-fiasco)) - -(define-public ecl-fiasco - (sbcl-package->ecl-package sbcl-fiasco)) - (define-public sbcl-flexi-streams (package (name "sbcl-flexi-streams") @@ -1428,38 +1361,6 @@ (define-public cl-hu.dwim.asdf (define-public ecl-hu.dwim.asdf (sbcl-package->ecl-package sbcl-hu.dwim.asdf)) -(define-public sbcl-hu.dwim.stefil - (let ((commit "414902c6f575818c39a8a156b8b61b1adfa73dad")) - (package - (name "sbcl-hu.dwim.stefil") - (version (git-version "0.0.0" "2" commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/hu-dwim/hu.dwim.stefil") - (commit commit))) - (sha256 - (base32 "14izmjjim590rh74swrssavdmdznj2z8vhqixy780sjhpcr5pmkc")) - (file-name (git-file-name "hu.dwim.stefil" version)))) - (build-system asdf-build-system/sbcl) - (native-inputs - `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf))) - (inputs - `(("sbcl-alexandria" ,sbcl-alexandria))) - (home-page "http://dwim.hu/project/hu.dwim.stefil") - (synopsis "Simple test framework") - (description "Stefil is a simple test framework for Common Lisp, -with a focus on interactive development.") - (license license:public-domain)))) - -(define-public cl-hu.dwim.stefil - (sbcl-package->cl-source-package sbcl-hu.dwim.stefil)) - -(define-public ecl-hu.dwim.stefil - (sbcl-package->ecl-package sbcl-hu.dwim.stefil)) - (define-public sbcl-babel ;; No release since 2014. (let ((commit "aeed2d1b76358db48e6b70a64399c05678a6b9ea")) @@ -1786,36 +1687,6 @@ (define-public cl-calispel (define-public ecl-calispel (sbcl-package->ecl-package sbcl-calispel)) -(define-public sbcl-eos - (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243") - (revision "2")) - (package - (name "sbcl-eos") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/adlai/Eos") - (commit commit))) - (sha256 - (base32 "1afllvmlnx97yzz404gycl3pa3kwx427k3hrbf37rpmjlv47knhk")) - (file-name (git-file-name "eos" version)))) - (build-system asdf-build-system/sbcl) - (synopsis "Unit Testing for Common Lisp") - (description - "Eos was a unit testing library for Common Lisp. -It began as a fork of FiveAM; however, FiveAM development has continued, while -that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.") - (home-page "https://github.com/adlai/Eos") - (license license:expat)))) - -(define-public cl-eos - (sbcl-package->cl-source-package sbcl-eos)) - -(define-public ecl-eos - (sbcl-package->ecl-package sbcl-eos)) - (define-public sbcl-esrap (let ((commit "866f28fa7a2c1d3fb6d0d0423850d1f9d955750f") (revision "2")) @@ -2061,34 +1932,6 @@ (define-public ecl-fn (define-public cl-fn (sbcl-package->cl-source-package sbcl-fn)) -(define-public sbcl-rt - (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a") - (revision "1")) - (package - (name "sbcl-rt") - (version (git-version "1990.12.19" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "http://git.kpe.io/rt.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b")))) - (build-system asdf-build-system/sbcl) - (synopsis "MIT Regression Tester") - (description - "RT provides a framework for writing regression test suites.") - (home-page "https://www.cliki.net/rt") - (license license:expat)))) - -(define-public cl-rt - (sbcl-package->cl-source-package sbcl-rt)) - -(define-public ecl-rt - (sbcl-package->ecl-package sbcl-rt)) - (define-public sbcl-nibbles ;; No tagged release since 2018. (let ((commit "dad25240928d5cf8f7df69c4398244e03570bb35") @@ -2389,35 +2232,6 @@ (define-public ecl-mssql (define-public cl-mssql (sbcl-package->cl-source-package sbcl-mssql)) -(define-public sbcl-lisp-unit - (let ((commit "89653a232626b67400bf9a941f9b367da38d3815")) - (package - (name "sbcl-lisp-unit") - (version (git-version "0.0.0" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/OdonataResearchLLC/lisp-unit") - (commit commit))) - (sha256 - (base32 - "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry")) - (file-name (git-file-name "lisp-unit" version)))) - (build-system asdf-build-system/sbcl) - (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use") - (description - "@command{lisp-unit} is a Common Lisp library that supports unit -testing. It is an extension of the library written by Chris Riesbeck.") - (home-page "https://github.com/OdonataResearchLLC/lisp-unit") - (license license:expat)))) - -(define-public cl-lisp-unit - (sbcl-package->cl-source-package sbcl-lisp-unit)) - -(define-public ecl-lisp-unit - (sbcl-package->ecl-package sbcl-lisp-unit)) - (define-public sbcl-anaphora (package (name "sbcl-anaphora") @@ -2449,47 +2263,6 @@ (define-public cl-anaphora (define-public ecl-anaphora (sbcl-package->ecl-package sbcl-anaphora)) -(define-public sbcl-lift - (let ((commit "2594160d6ca3a77d8750110dfa63214256aab852") - (revision "2")) - (package - (name "sbcl-lift") - (version (git-version "1.7.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/gwkkwg/lift") - (commit commit))) - (sha256 - (base32 "01xvz9sl5l5lai4h9dabmcjnm659wf5zllaxqbs55lffskp6jwq3")) - (file-name (git-file-name "lift" version)) - (modules '((guix build utils))) - (snippet - ;; Don't keep the bundled website - `(begin - (delete-file-recursively "website") - #t)))) - (build-system asdf-build-system/sbcl) - (arguments - ;; The tests require a debugger, but we run with the debugger disabled. - '(#:tests? #f)) - (synopsis "LIsp Framework for Testing") - (description - "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP. -Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT, -testcases are organized into hierarchical testsuites each of which can have -its own fixture. When run, a testcase can succeed, fail, or error. LIFT -supports randomized testing, benchmarking, profiling, and reporting.") - (home-page "https://github.com/gwkkwg/lift") - (license license:expat)))) - -(define-public cl-lift - (sbcl-package->cl-source-package sbcl-lift)) - -(define-public ecl-lift - (sbcl-package->ecl-package sbcl-lift)) - (define-public sbcl-let-plus (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb")) (package @@ -2610,49 +2383,6 @@ (define-public cl-ansi-text (define-public ecl-cl-ansi-text (sbcl-package->ecl-package sbcl-cl-ansi-text)) -(define-public sbcl-prove - (let ((commit "5d71f02795b89e36f34e8c7d50e69b67ec6ca2de") - (revision "2")) - (package - (name "sbcl-prove") - (version (git-version "1.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/prove") - (commit commit))) - (sha256 - (base32 "0ca6ha3zhmckq3ad9lxm6sbg4i0hg3m81xhan4dkxd3x9898jzpc")) - (file-name (git-file-name "prove" version)))) - (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-colors" ,sbcl-cl-colors) - ("cl-ppcre" ,sbcl-cl-ppcre) - ("cl-ansi-text" ,sbcl-cl-ansi-text))) - (synopsis "Yet another unit testing framework for Common Lisp") - (description - "This project was originally called @command{cl-test-more}. -@command{prove} is yet another unit testing framework for Common Lisp. The -advantages of @command{prove} are: - -@itemize -@item Various simple functions for testing and informative error messages -@item ASDF integration -@item Extensible test reporters -@item Colorizes the report if it's available (note for SLIME) -@item Reports test durations -@end itemize\n") - (home-page "https://github.com/fukamachi/prove") - (license license:expat)))) - -(define-public cl-prove - (sbcl-package->cl-source-package sbcl-prove)) - -(define-public ecl-prove - (sbcl-package->ecl-package sbcl-prove)) - (define-public sbcl-proc-parse (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd")) (package @@ -2774,35 +2504,6 @@ (define-public cl-string-match (define-public ecl-cl-string-match (sbcl-package->ecl-package sbcl-cl-string-match)) -(define-public sbcl-ptester - (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253") - (revision "1")) - (package - (name "sbcl-ptester") - (version (git-version "2.1.3" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "http://git.kpe.io/ptester.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf")))) - (build-system asdf-build-system/sbcl) - (home-page "http://quickdocs.org/ptester/") - (synopsis "Portable test harness package") - (description - "@command{ptester} is a portable testing framework based on Franz's -tester module.") - (license license:llgpl)))) - -(define-public cl-ptester - (sbcl-package->cl-source-package sbcl-ptester)) - -(define-public ecl-ptester - (sbcl-package->ecl-package sbcl-ptester)) - (define-public sbcl-puri (let ((commit "4bbab89d9ccbb26346899d1f496c97604fec567b") (revision "2")) @@ -4809,48 +4510,6 @@ (define-public cl-marshal (define-public ecl-marshal (sbcl-package->ecl-package sbcl-marshal)) -(define-public sbcl-checkl - (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9") - (revision "1")) - (package - (name "sbcl-checkl") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rpav/CheckL") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx")))) - (build-system asdf-build-system/sbcl) - (arguments - ;; Error while trying to load definition for system checkl-test from - ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP - ;; is undefined. - '(#:asd-files '("checkl.asd") - #:tests? #f)) - (native-inputs - `(("sbcl-fiveam" ,sbcl-fiveam))) - (inputs - `(("sbcl-marshal" ,sbcl-marshal))) - (home-page "https://github.com/rpav/CheckL/") - (synopsis "Dynamic testing for Common Lisp") - (description - "CheckL lets you write tests dynamically, it checks resulting values -against the last run.") - ;; The author specifies both LLGPL and "BSD", but the "BSD" license - ;; isn't specified anywhere, so I don't know which kind. LLGPL is the - ;; stronger of the two and so I think only listing this should suffice. - (license license:llgpl)))) - -(define-public cl-checkl - (sbcl-package->cl-source-package sbcl-checkl)) - -(define-public ecl-checkl - (sbcl-package->ecl-package sbcl-checkl)) - (define-public sbcl-fast-io (let ((commit "603f4903dd74fb221859da7058ae6ca3853fe64b") (revision "2")) @@ -5505,39 +5164,6 @@ (define-public cl-find-port (define-public ecl-find-port (sbcl-package->ecl-package sbcl-find-port)) -(define-public sbcl-clunit - (let ((commit "6f6d72873f0e1207f037470105969384f8380628") - (revision "1")) - (package - (name "sbcl-clunit") - (version (git-version "0.2.3" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tgutu/clunit") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85")))) - (build-system asdf-build-system/sbcl) - (synopsis "CLUnit is a Common Lisp unit testing framework") - (description - "CLUnit is a Common Lisp unit testing framework. It is designed -to be easy to use so that you can quickly start testing. CLUnit -provides a rich set of features aimed at improving your unit testing -experience.") - (home-page "https://tgutu.github.io/clunit/") - ;; MIT License - (license license:expat)))) - -(define-public cl-clunit - (sbcl-package->cl-source-package sbcl-clunit)) - -(define-public ecl-clunit - (sbcl-package->ecl-package sbcl-clunit)) - (define-public sbcl-py4cl (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136") (revision "1")) @@ -5669,37 +5295,6 @@ (define-public cl-parse-declarations (define-public ecl-parse-declarations (sbcl-package->ecl-package sbcl-parse-declarations)) -(define-public sbcl-cl-quickcheck - (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f") - (revision "1")) - (package - (name "sbcl-cl-quickcheck") - (version (git-version "0.0.4" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mcandre/cl-quickcheck") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767")))) - (build-system asdf-build-system/sbcl) - (synopsis - "Common Lisp port of the QuickCheck unit test framework") - (description - "Common Lisp port of the QuickCheck unit test framework") - (home-page "https://github.com/mcandre/cl-quickcheck") - ;; MIT - (license license:expat)))) - -(define-public cl-quickcheck - (sbcl-package->cl-source-package sbcl-cl-quickcheck)) - -(define-public ecl-cl-quickcheck - (sbcl-package->ecl-package sbcl-cl-quickcheck)) - (define-public sbcl-burgled-batteries3 (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760") (revision "2")) @@ -7141,44 +6736,6 @@ (define-public cl-containers (define-public ecl-cl-containers (sbcl-package->ecl-package sbcl-cl-containers)) -(define-public sbcl-xlunit - (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc") - (revision "1")) - (package - (name "sbcl-xlunit") - (version (git-version "0.6.3" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "http://git.kpe.io/xlunit.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3")))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-tests - (lambda _ - (substitute* "xlunit.asd" - ((" :force t") "")) - #t))))) - (synopsis "Unit testing package for Common Lisp") - (description - "The XLUnit package is a toolkit for building test suites. It is based -on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.") - (home-page "http://quickdocs.org/xlunit/") - (license license:bsd-3)))) - -(define-public cl-xlunit - (sbcl-package->cl-source-package sbcl-xlunit)) - -(define-public ecl-xlunit - (sbcl-package->ecl-package sbcl-xlunit)) - (define-public sbcl-cambl (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636") (revision "1")) @@ -7990,49 +7547,6 @@ (define-public cl-yason (define-public ecl-yason (sbcl-package->ecl-package sbcl-yason)) -(define-public sbcl-stefil - (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a") - (revision "0")) - (package - (name "sbcl-stefil") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.common-lisp.net/stefil/stefil.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("iterate" ,sbcl-iterate) - ("metabang-bind" ,sbcl-metabang-bind) - ("swank" ,sbcl-slime-swank))) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'drop-unnecessary-dependency - (lambda _ - (substitute* "package.lisp" - ((":stefil-system") "")) - #t))))) - (home-page "https://common-lisp.net/project/stefil/index-old.shtml") - (synopsis "Simple test framework") - (description - "Stefil is a simple test framework for Common Lisp, with a focus on -interactive development.") - (license license:public-domain)))) - -(define-public cl-stefil - (sbcl-package->cl-source-package sbcl-stefil)) - -(define-public ecl-stefil - (sbcl-package->ecl-package sbcl-stefil)) - (define-public sbcl-graph (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f") (revision "0")) @@ -8216,41 +7730,6 @@ (define-public cl-form-fiddle (define-public ecl-form-fiddle (sbcl-package->ecl-package sbcl-form-fiddle)) -(define-public sbcl-parachute - (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666") - (revision "0")) - (package - (name "sbcl-parachute") - (version (git-version "1.1.1" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/Shinmera/parachute") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("documentation-utils" ,sbcl-documentation-utils) - ("form-fiddle" ,sbcl-form-fiddle))) - (synopsis "Extensible and cross-compatible testing framework for Common Lisp") - (description - "Parachute is a simple-to-use and extensible testing framework. -In Parachute, things are organised as a bunch of named tests within a package. -Each test can contain a bunch of test forms that make up its body.") - (home-page "https://shinmera.github.io/parachute/") - (license license:zlib)))) - -(define-public cl-parachute - (sbcl-package->cl-source-package sbcl-parachute)) - -(define-public ecl-parachute - (sbcl-package->ecl-package sbcl-parachute)) - (define-public sbcl-array-utils (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56") (revision "0")) @@ -8566,44 +8045,6 @@ (define-public cl-symbol-munger (define-public ecl-symbol-munger (sbcl-package->ecl-package sbcl-symbol-munger)) -(define-public sbcl-lisp-unit2 - ;; There is a cyclical dependency between symbol-munger and lisp-unit2. - ;; See https://github.com/AccelerationNet/symbol-munger/issues/4 - (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c") - (revision "1")) - (package - (name "sbcl-lisp-unit2") - (version (git-version "0.2.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/AccelerationNet/lisp-unit2") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("cl-interpol" ,sbcl-cl-interpol) - ("iterate" ,sbcl-iterate) - ("symbol-munger" ,sbcl-symbol-munger))) - (synopsis "Test Framework for Common Lisp") - (description - "LISP-UNIT2 is a Common Lisp library that supports unit testing in the -style of JUnit for Java. It is a new version of the lisp-unit library written -by Chris Riesbeck.") - (home-page "https://github.com/AccelerationNet/lisp-unit2") - (license license:expat)))) - -(define-public cl-lisp-unit2 - (sbcl-package->cl-source-package sbcl-lisp-unit2)) - -(define-public ecl-lisp-unit2 - (sbcl-package->ecl-package sbcl-lisp-unit2)) - (define-public sbcl-cl-csv (let ((commit "68ecb5d816545677513d7f6308d9e5e8d2265651") (revision "2")) @@ -9396,35 +8837,6 @@ (define-public cl-lex (define-public ecl-cl-lex (sbcl-package->ecl-package sbcl-cl-lex)) -(define-public sbcl-clunit2 - (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b") - (revision "1")) - (package - (name "sbcl-clunit2") - (version (git-version "0.2.4" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://notabug.org/cage/clunit2.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw")))) - (build-system asdf-build-system/sbcl) - (synopsis "Unit testing framework for Common Lisp") - (description - "CLUnit is a Common Lisp unit testing framework. It is designed to be -easy to use so that you can quickly start testing.") - (home-page "https://notabug.org/cage/clunit2") - (license license:expat)))) - -(define-public cl-clunit2 - (sbcl-package->cl-source-package sbcl-clunit2)) - -(define-public ecl-clunit2 - (sbcl-package->ecl-package sbcl-clunit2)) - (define-public sbcl-cl-colors2 (let ((commit "795aedee593b095fecde574bd999b520dd03ed24") (revision "1")) @@ -11371,39 +10783,6 @@ (define-public cl-dissect (define-public ecl-dissect (sbcl-package->ecl-package sbcl-dissect)) -(define-public sbcl-rove - (package - (name "sbcl-rove") - (version "0.9.6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/rove") - (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "07ala4l2fncxf540fzxj3h5mhi9i4wqllhj0rqk8m2ljl5zbz89q")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ("dissect" ,sbcl-dissect) - ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) - (home-page "https://github.com/fukamachi/rove") - (synopsis - "Yet another common lisp testing library") - (description - "Rove is a unit testing framework for Common Lisp applications. -This is intended to be a successor of Prove.") - (license license:bsd-3))) - -(define-public cl-rove - (sbcl-package->cl-source-package sbcl-rove)) - -(define-public ecl-rove - (sbcl-package->ecl-package sbcl-rove)) - (define-public sbcl-exponential-backoff (let ((commit "8d9e8444d8b3184a524c12ce3449f91613ab714f")) (package @@ -11470,33 +10849,6 @@ (define-public cl-sxql (define-public ecl-sxql (sbcl-package->ecl-package sbcl-sxql)) -(define-public sbcl-1am - (let ((commit "8b1da94eca4613fd8a20bdf63f0e609e379b0ba5")) - (package - (name "sbcl-1am") - (version (git-version "0.0" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lmj/1am") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g")))) - (build-system asdf-build-system/sbcl) - (home-page "https://github.com/lmj/1am") - (synopsis "Minimal testing framework for Common Lisp") - (description "A minimal testing framework for Common Lisp.") - (license license:expat)))) - -(define-public cl-1am - (sbcl-package->cl-source-package sbcl-1am)) - -(define-public ecl-1am - (sbcl-package->ecl-package sbcl-1am)) - (define-public sbcl-cl-ascii-table (let ((commit "d9f5e774a56fad1b416e4dadb8f8a5b0e84094e2") (revision "1")) @@ -14099,41 +13451,6 @@ (define-public cl-clawk (define-public ecl-clawk (sbcl-package->ecl-package sbcl-clawk)) -(define-public sbcl-check-it - (let ((commit "b79c9103665be3976915b56b570038f03486e62f")) - (package - (name "sbcl-check-it") - (version (git-version "0.1.0" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/DalekBaldwin/check-it/") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1kbjwpniffdpv003igmlz5r0vy65m7wpfnhg54fhwirp1227hgg7")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("closer-mop" ,sbcl-closer-mop) - ("optima" ,sbcl-optima))) - (native-inputs - `(("stefil" ,sbcl-stefil))) - (home-page "https://github.com/arclanguage/Clamp") - (synopsis "Randomized specification-based testing for Common Lisp") - (description - "This is a randomized property-based testing library for Common Lisp. -Rather than being a full-fledged general test framework in its own right, it's -designed to embed randomized tests in whatever framework you like.") - (license license:llgpl)))) - -(define-public cl-check-it - (sbcl-package->cl-source-package sbcl-check-it)) - -(define-public ecl-check-it - (sbcl-package->ecl-package sbcl-check-it)) - (define-public sbcl-clamp (let ((commit "02b8f3953e5753cc61a719807c82f3795cd28fe1")) (package @@ -16625,33 +15942,6 @@ (define-public ecl-dufy (define-public cl-dufy (sbcl-package->cl-source-package sbcl-dufy)) -(define-public sbcl-unit-test - (let ((commit "266afaf4ac091fe0e8803bac2ae72d238144e735") - (revision "1")) - (package - (name "sbcl-unit-test") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hanshuebner/unit-test") - (commit commit))) - (file-name (git-file-name "unit-test" version)) - (sha256 - (base32 "11hpksz56iqkv7jw25p2a8r3n9dj922fyarn16d98589g6hdskj9")))) - (build-system asdf-build-system/sbcl) - (home-page "https://github.com/hanshuebner/unit-test") - (synopsis "Unit-testing framework for Common Lisp") - (description "This is a unit-testing framework for Common Lisp.") - (license license:unlicense)))) - -(define-public ecl-unit-test - (sbcl-package->ecl-package sbcl-unit-test)) - -(define-public cl-unit-test - (sbcl-package->cl-source-package sbcl-unit-test)) - (define-public sbcl-bknr-datastore (let ((commit "c98d44f47cc88d19ff91ca3eefbd9719a8ace022") (revision "1")) @@ -17928,41 +17218,6 @@ (define-public ecl-atomics (define-public cl-atomics (sbcl-package->cl-source-package sbcl-atomics)) -(define-public sbcl-cl-mock - ;; .asd version only got updated recently, despired the old GitHug "1.0.1" release. - (let ((commit "7988dca2093358911b67597a2cd1570c785dfe76")) - (package - (name "sbcl-cl-mock") - (version (git-version "1.0.1" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Ferada/cl-mock/") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0f40wikcf783jx26ip0nnhwjjfjvjiw7njqsqrb6kaphc8bgw0i1")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("closer-mop" ,sbcl-closer-mop) - ("trivia" ,sbcl-trivia))) - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (home-page "https://github.com/Ferada/cl-mock") - (synopsis "Mocking functions for Common Lisp testing") - (description - "This small library provides a way to replace the actual implementation -of either regular or generic functions with mocks.") - (license license:agpl3)))) - -(define-public ecl-cl-mock - (sbcl-package->ecl-package sbcl-cl-mock)) - -(define-public cl-mock - (sbcl-package->cl-source-package sbcl-cl-mock)) - (define-public sbcl-cl-murmurhash ;; No release. (let ((commit "5433f5e95f1cce63a81259a471150834c6a59364") diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 89eb61007f..35e8db7e91 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -73,6 +73,7 @@ (define-module (gnu packages web-browsers) #:use-module (gnu packages libunistring) #:use-module (gnu packages linux) #:use-module (gnu packages lisp) + #:use-module (gnu packages lisp-check) #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages lua) #:use-module (gnu packages man) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 891a7960d6..96c103f93b 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -102,6 +102,7 @@ (define-module (gnu packages wm) #:use-module (gnu packages imagemagick) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) + #:use-module (gnu packages lisp-check) #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages logging) #:use-module (gnu packages lua) From 2ab53a68fd687b15deb5ad837e20e7ea81cac484 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 24 Oct 2021 17:48:56 +0200 Subject: [PATCH 132/287] gnu: parallel: Update to 20211022. * gnu/packages/parallel.scm (parallel): Update to 20211022. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/parallel.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 6730772f24..e3813b1512 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -61,14 +61,14 @@ (define-module (gnu packages parallel) (define-public parallel (package (name "parallel") - (version "20210922") + (version "20211022") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parallel/parallel-" version ".tar.bz2")) (sha256 - (base32 "0rjd9636sgmnhaww2q8rbnpwhpq1aqg3df6rmpdm880zqi7skp6y")))) + (base32 "16yyjvlm70lj7csaz4am98dlyqrc588xydnfnabxm71awby90wfs")))) (build-system gnu-build-system) (arguments `(#:phases @@ -82,8 +82,7 @@ (define-public parallel ;; $Global::shell = $ENV{'PARALLEL_SHELL'} || ;; parent_shell($$) || $ENV{'SHELL'} || "/bin/sh"; (("/bin/sh\\\";\n$") (string-append (which "sh") "\";\n")))) - (list "src/parallel" "src/sem")) - #t)) + (list "src/parallel" "src/sem")))) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -92,8 +91,7 @@ (define-public parallel ,(map (lambda (input) (string-append (assoc-ref inputs input) "/bin")) '("perl" - "procps")))) - #t))) + "procps"))))))) (add-after 'wrap-program 'post-install-test (lambda* (#:key outputs #:allow-other-keys) (invoke (string-append From 55f6d9e818512b4e3e4adacfa99deb201b6854be Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sun, 24 Oct 2021 14:09:47 +0200 Subject: [PATCH 133/287] etc: completion: Filter gratuitous spaces from available packages. Tested with: guix environment --{ad-hoc,pure} zsh guix bash-completion coreutils -- zsh % fpath=(~/guix/etc/completion/zsh $fpath) % autoload -U compinit; compinit * etc/completion/zsh/_guix (_guix_list_available_packages): Remove spaces. Co-authored-by: Tobias Geerinckx-Rice --- etc/completion/zsh/_guix | 1 + 1 file changed, 1 insertion(+) diff --git a/etc/completion/zsh/_guix b/etc/completion/zsh/_guix index bbc13c6ca1..9b1f16c664 100644 --- a/etc/completion/zsh/_guix +++ b/etc/completion/zsh/_guix @@ -58,6 +58,7 @@ _guix_list_available_packages() if ( [[ ${+_guix_available_packages} -eq 0 ]] || _cache_invalid GUIX_AVAILABLE_PACKAGES ) \ && ! _retrieve_cache GUIX_AVAILABLE_PACKAGES; then _guix_available_packages=(${${(f)"$(guix package -A | cut -f1)"}}) + _guix_available_packages=("${_guix_available_packages[@]// /}") _store_cache GUIX_AVAILABLE_PACKAGES _guix_available_packages fi } From 92d3f2673e62c6cf5c16e05cb28a1be338bf2161 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 25 Sep 2021 11:51:15 +0200 Subject: [PATCH 134/287] gnu: Add libpotassco. * gnu/packages/maths.scm (libpotassco): New variable. --- gnu/packages/maths.scm | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index f18d3cc42b..fa94679ae3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2194,6 +2194,55 @@ (define-public libflame includes a complete LAPACK implementation.") (license license:bsd-3))) +(define-public libpotassco + ;; No public release, update together with clasp + (let ((revision "1") + (commit "2f9fb7ca2c202f1b47643aa414054f2f4f9c1821")) + (package + (name "libpotassco") + (version (git-version "0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/potassco/libpotassco") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1c32f9gqclf7qx07lpx8wd720vfhkjqhzc6nyy8mjmgwpmb3iyyn")))) + (arguments + `(#:configure-flags '("-DLIB_POTASSCO_BUILD_TESTS=on" + "-DLIB_POTASSCO_INSTALL_LIB=on" + "-DBUILD_SHARED_LIBS=on") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + ;; clasp expects lowercase potassco and include directory is + ;; lowercase as well, so let's use that + (("\"cmake/Potassco\"") "\"cmake/potassco\"") + (("PotasscoConfig\\.cmake") "potassco-config.cmake") + (("PotasscoConfigVersion\\.cmake") + "potassco-config-version.cmake")) + (rename-file "cmake/PotasscoConfig.cmake.in" + "cmake/potassco-config.cmake.in")))))) + (build-system cmake-build-system) + (home-page "https://potassco.org/") + (synopsis "Utility library for Potassco's projects") + (description "@code{libpotassco} is a utility library providing functions +and datatypes for +@itemize +@item parsing, writing, and converting logic programs in aspif and smodels +format, +@item passing information between a grounder and a solver, +@item and defining and parsing command-line options and for creating +command-line applications. +@end itemize +Furthermore, it comes with the tool @command{lpconvert} that converts either +between aspif and smodels format or to a human-readable text format.") + (license license:expat)))) + (define-public ceres (package (name "ceres-solver") From 2dfc574b13908d016895b48a7eab8cf1e1b35abf Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 25 Sep 2021 13:16:42 +0200 Subject: [PATCH 135/287] gnu: Add clasp. * gnu/packages/maths.scm (clasp): New variable. --- gnu/packages/maths.scm | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index fa94679ae3..2f2c43cb0a 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2243,6 +2243,49 @@ (define-public libpotassco between aspif and smodels format or to a human-readable text format.") (license license:expat)))) +(define-public clasp + (package + (name "clasp") + (version "3.3.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/potassco/clasp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rahqiq530jckvx717858h1q5p8znp1kb6sjm95p8blkr4n3pvmj")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DCLASP_BUILD_TESTS=on" + "-DCLASP_INSTALL_LIB=on" + "-DCLASP_USE_LOCAL_LIB_POTASSCO=off" + "-DBUILD_SHARED_LIBS=on") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + ;; Use lowercase to be consistent with libpotassco + (("\"cmake/Clasp\"") "\"cmake/clasp\"") + (("ClaspConfig\\.cmake") "clasp-config.cmake") + (("ClaspConfigVersion\\.cmake") + "clasp-config-version.cmake")) + (substitute* "cmake/ClaspConfig.cmake.in" + (("find_package\\(Potassco") "find_package(potassco")) + (rename-file "cmake/ClaspConfig.cmake.in" + "cmake/clasp-config.cmake.in")))))) + (inputs + `(("libpotassco" ,libpotassco))) + (home-page "https://potassco.org/") + (synopsis "Answer set solver") + (description "clasp is an answer set solver for (extended) normal and +disjunctive logic programs. The primary algorithm of clasp relies on +conflict-driven nogood learning, a technique that proved very successful for +satisfiability checking (SAT).") + (license license:expat))) + (define-public ceres (package (name "ceres-solver") From 505d53a4b4c722fcfb03792744857c79c4d07553 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Fri, 1 Oct 2021 11:47:17 +0200 Subject: [PATCH 136/287] gnu: Add clingo. * gnu/packages/maths.scm (clingo): New variable. --- gnu/packages/maths.scm | 65 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 2f2c43cb0a..9bb2094768 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2286,6 +2286,71 @@ (define-public clasp satisfiability checking (SAT).") (license license:expat))) +(define-public clingo + (package + (name "clingo") + (version "5.5.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/potassco/clingo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rfjwkcwm0mmf3r4i7asyjwb6cia4i7px7fn2kdbi9j85qvas4pb")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags `("-DCLINGO_BUILD_TESTS=on" + "-DCLINGO_INSTALL_LIB=on" + "-DCLINGO_BUILD_STATIC=off" + "-DCLINGO_BUILD_SHARED=on" + ;; XXX: Clingo requries private headers and + ;; sources from clasp + ,(string-append + "-DCLASP_SOURCE_DIR=" + (assoc-ref %build-inputs "clasp-src"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + (("add_subdirectory\\(clasp\\)") + "find_package(clasp REQUIRED)")) + (substitute* "libclingo/CMakeLists.txt" + (("\"cmake/Clingo\"") "\"cmake/clingo\"") + (("ClingoConfig\\.cmake") "clingo-config.cmake") + (("ClingoConfigVersion\\.cmake") + "clingo-config-version.cmake")) + (substitute* "cmake/ClingoConfig.cmake.in" + (("find_package\\(Clasp") "find_package(clasp")) + (rename-file "cmake/ClingoConfig.cmake.in" + "cmake/clingo-config.cmake.in"))) + (add-after 'unpack 'skip-failing-tests + (lambda _ + (with-directory-excursion "libclingo/tests" + (substitute* "CMakeLists.txt" + (("COMMAND test_clingo" all) + (string-append all + " -f " + "\"${CMAKE_CURRENT_SOURCE_DIR}/good.txt\""))) + (call-with-output-file "good.txt" + (lambda (port) + (for-each (lambda (test) (format port "~s~%" test)) + '("parse-ast-v2" "add-ast-v2" "build-ast-v2" + "unpool-ast-v2" "parse_term" + "propagator" "propgator-sequence-mining" + "symbol" "visitor")))))))))) + (inputs + `(("clasp" ,clasp) + ("libpotassco" ,libpotassco))) + (native-inputs + `(("clasp-src" ,(package-source clasp)))) + (home-page "https://potassco.org/") + (synopsis "Grounder and solver for logic programs") + (description "Clingo computes answer sets for a given logic program.") + (license license:expat))) + (define-public ceres (package (name "ceres-solver") From ab8c08c51913671861ebadf11cc3c2bf3d82658c Mon Sep 17 00:00:00 2001 From: Timothy Sample Date: Sun, 24 Oct 2021 13:45:59 -0400 Subject: [PATCH 137/287] gnu: disarchive: Update to 0.3.0. * gnu/packages/backup.scm (disarchive): Update to 0.3.0. [source]: Remove cross-compilation patch. [arguments]: Remove field. * gnu/packages/patches/disarchive-cross-compilation.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/backup.scm | 10 +-- .../disarchive-cross-compilation.patch | 77 ------------------- 3 files changed, 2 insertions(+), 86 deletions(-) delete mode 100644 gnu/packages/patches/disarchive-cross-compilation.patch diff --git a/gnu/local.mk b/gnu/local.mk index d432829e2d..13ee828399 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -998,7 +998,6 @@ dist_patch_DATA = \ %D%/packages/patches/dfu-programmer-fix-libusb.patch \ %D%/packages/patches/diffoscope-fix-test_item3_deflate_llvm_bitcode.patch \ %D%/packages/patches/diffutils-gets-undeclared.patch \ - %D%/packages/patches/disarchive-cross-compilation.patch \ %D%/packages/patches/dkimproxy-add-ipv6-support.patch \ %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \ %D%/packages/patches/doc++-include-directives.patch \ diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index ec31b0adeb..61d330e861 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -1144,21 +1144,15 @@ (define-public burp (define-public disarchive (package (name "disarchive") - (version "0.2.1") + (version "0.3.0") (source (origin (method url-fetch) (uri (string-append "https://files.ngyro.com/disarchive/" "disarchive-" version ".tar.gz")) (sha256 (base32 - "1jypk0gdwxqbqxiblww863nzq0kwnc676q68j32sprqd7ilnq02s")) - (patches (search-patches "disarchive-cross-compilation.patch")))) + "0jgc53rrbas8i4z13l2ii99cpav1ma73spsjg70ygihf0635r3dh")))) (build-system gnu-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'delete-configure - (lambda _ - (delete-file "configure")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/patches/disarchive-cross-compilation.patch b/gnu/packages/patches/disarchive-cross-compilation.patch deleted file mode 100644 index 8061262168..0000000000 --- a/gnu/packages/patches/disarchive-cross-compilation.patch +++ /dev/null @@ -1,77 +0,0 @@ -From dc0f8f8bf8608c39da32e3c8ca1484b766fc7452 Mon Sep 17 00:00:00 2001 -From: Maxim Cournoyer -Date: Mon, 17 May 2021 16:47:19 -0400 -Subject: [PATCH] build: Fix cross-compilation. - -The cross-compilation issues corrected by this change were discovered -when attempting to cross-compile disarchive for the i586-gnu target on -GNU Guix. - -* configure.ac [O_NOFOLLOW]: Rewrite test using AC_COMPUTE_INT, which -is supported even when cross-compiling. -(GUILD_TARGET_OPTION): New computed variable. -* build-aux/guile.am ($(AM_V_GUILEC)GUILE_AUTO_COMPILE): Use it. ---- - build-aux/guile.am | 6 +++--- - configure.ac | 24 +++++++++++++++--------- - 2 files changed, 18 insertions(+), 12 deletions(-) - -diff --git a/build-aux/guile.am b/build-aux/guile.am -index bec04ea..7745125 100644 ---- a/build-aux/guile.am -+++ b/build-aux/guile.am -@@ -54,7 +54,7 @@ AM_V_GUILEC_0 = @echo " GUILEC" $@; - SUFFIXES = .scm .go - - .scm.go: -- $(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \ -- $(top_builddir)/pre-inst-env \ -- $(GUILD) compile $(GUILE_WARNINGS) \ -+ $(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \ -+ $(top_builddir)/pre-inst-env \ -+ $(GUILD) compile $(GUILE_WARNINGS) $(GUILD_TARGET_OPTION) \ - -o "$@" "$<" -diff --git a/configure.ac b/configure.ac -index 99c5ac5..0cd0173 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -39,21 +39,27 @@ AS_IF([test "x$GUILD" = "x"], - [AC_MSG_ERROR(m4_normalize([ - 'guild' binary not found; please check your Guile installation.]))])]) - -+dnl This argument is passed to guild; it ensures cross-compiling uses -+dnl the right target. -+if test -n "$host_alias"; then -+ AC_SUBST([GUILD_TARGET_OPTION], [--target=$host_alias]) -+fi -+ - GUILE_MODULE_REQUIRED(gcrypt hash) - - dnl Guile defines a handful of values from , but it is - dnl missing O_NOFOLLOW. - AC_ARG_VAR([O_NOFOLLOW], [value to use for O_NOFOLLOW (cf. )]) - AS_IF([test "x$O_NOFOLLOW" = "x"], -- [AC_MSG_CHECKING([the value of O_NOFOLLOW]) -- AC_RUN_IFELSE([AC_LANG_PROGRAM([[ -- #include -- #include -- ]], [[ -- printf("%d\n", O_NOFOLLOW) -- ]])], -- [O_NOFOLLOW=`./conftest$EXEEXT`], -- [AC_MSG_FAILURE([could find value for O_NOFOLLOW])])]) -+ [AC_MSG_CHECKING([the value of O_NOFOLLOW])] -+ [AC_COMPUTE_INT([O_NOFOLLOW], -+ [O_NOFOLLOW], -+ [[ -+ #include -+ #include -+ ]], -+ [AC_MSG_FAILURE([could find value for O_NOFOLLOW])])] -+ [AC_MSG_RESULT([$O_NOFOLLOW])]) - - AC_ARG_VAR([TAR], [tar utility]) - AS_IF([test "x$TAR" = "x"], [AC_PATH_PROG([TAR], [tar])]) --- -2.31.1 - From 1636acaac500ce65249b49b97c06865deb1fb6b2 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sun, 24 Oct 2021 22:22:13 +0200 Subject: [PATCH 138/287] gnu: python2-pygame-sdl2: Update to renpy-version 7.4.10. * gnu/packages/game-development.scm (python2-pygame-sdl2): Update to renpy-version 7.4.10. --- gnu/packages/game-development.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index d7bcfc1741..d66d46597d 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1183,7 +1183,7 @@ (define-public python2-pygame (define-public python-pygame-sdl2 (let ((real-version "2.1.0") - (renpy-version "7.4.8")) + (renpy-version "7.4.10")) (package (inherit python-pygame) (name "python-pygame-sdl2") @@ -1193,7 +1193,7 @@ (define-public python-pygame-sdl2 (method url-fetch) (uri (string-append "https://www.renpy.org/dl/" renpy-version "/pygame_sdl2-" version ".tar.gz")) - (sha256 (base32 "1yyqcg7khac17jif86vi2d4j9l8x2vfg4h5pasrwwsy0g8386zsm")) + (sha256 (base32 "0m0asrr722a4v24fm8199b0c53igagylay8bn9bz9rmc0r4v8si4")) (modules '((guix build utils))) (snippet '(begin From be5216efcca161553fe474cf79155323bda06d91 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sun, 24 Oct 2021 22:23:02 +0200 Subject: [PATCH 139/287] gnu: python2-renpy: Update to 7.4.10. * gnu/packages/game-development.scm (python2-renpy): Update to 7.4.10. [snippet]: No longer drop "gen" directory, it's not in this release. --- gnu/packages/game-development.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index d66d46597d..c92d505ddb 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1239,21 +1239,19 @@ (define-public python2-pygame-sdl2 (define-public python2-renpy (package (name "python2-renpy") - (version "7.4.8") + (version "7.4.10") (source (origin (method url-fetch) (uri (string-append "https://www.renpy.org/dl/" version "/renpy-" version "-source.tar.bz2")) - (sha256 (base32 "1ml3gs87xxk1iflrg5ivffr4q8fi7d65l1cx462bvvpm1rs2sa8d")) + (sha256 (base32 "1yngs2kh1l8micg28mcp9580qsvgq3aa8bkhv2xqfkg9qqrbr8y4")) (modules '((guix build utils))) (patches (search-patches "renpy-use-system-fribidi.patch")) (snippet '(with-directory-excursion "module" - ;; drop generated sources - (delete-file-recursively "gen") ;; drop fribidi sources (delete-file-recursively "fribidi-src") #t)))) From efe0c3d75978cb77b5de72be7c588e4bf830a637 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Fri, 22 Oct 2021 16:14:14 -0700 Subject: [PATCH 140/287] gnu: arm-trusted-firmware: Update to 2.5. * gnu/packages/firmware (make-arm-trusted-firmware): Update to 2.5. --- gnu/packages/firmware.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index ebcb89923c..e9083bc1c4 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -465,7 +465,7 @@ (define-public ovmf-arm (define* (make-arm-trusted-firmware platform #:optional (arch "aarch64")) (package (name (string-append "arm-trusted-firmware-" platform)) - (version "2.4") + (version "2.5") (source (origin (method git-fetch) @@ -476,7 +476,7 @@ (define* (make-arm-trusted-firmware platform #:optional (arch "aarch64")) (file-name (git-file-name "arm-trusted-firmware" version)) (sha256 (base32 - "12k0n79j156bdzqws18kpbli04kn00nh6dy42pjv6gakqrkx9px3")))) + "0w3blkqgmyb5bahlp04hmh8abrflbzy0qg83kmj1x9nv4mw66f3b")))) (build-system gnu-build-system) (arguments `(#:phases From 65be27dcfd799e4d14cafc49e253d08836f73350 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Fri, 22 Oct 2021 18:03:59 -0700 Subject: [PATCH 141/287] gnu: u-boot: Update to 2021.10. * gnu/packages/bootloaders.scm (%u-boot-allow-disabling-openssl-patch): New variable. (u-boot): Update to 2021.10. Add patch fixing build without openssl. (u-boot-qemu-riscv64-smode): Add patch fixing build without openssl. (u-boot-tools): Adjust phases to disable CONFIG_TOOLS_LIBCRYPTO. (make-u-boot-package): Add phase disabling CONFIG_TOOLS_LIBCRYPTO. * gnu/packages/patches/u-boot-allow-disabling-openssl.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add patch. --- gnu/local.mk | 1 + gnu/packages/bootloaders.scm | 21 ++- .../u-boot-allow-disabling-openssl.patch | 164 ++++++++++++++++++ 3 files changed, 182 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/u-boot-allow-disabling-openssl.patch diff --git a/gnu/local.mk b/gnu/local.mk index 13ee828399..2d52bba3ef 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1837,6 +1837,7 @@ dist_patch_DATA = \ %D%/packages/patches/tup-unbundle-dependencies.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/twinkle-bcg729.patch \ + %D%/packages/patches/u-boot-allow-disabling-openssl.patch \ %D%/packages/patches/u-boot-nintendo-nes-serial.patch \ %D%/packages/patches/u-boot-rockchip-inno-usb.patch \ %D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch \ diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 75cf618115..706ddf0207 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -499,13 +499,19 @@ (define %u-boot-sifive-prevent-relocating-initrd-fdt ;; https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/1937246 (search-patch "u-boot-sifive-prevent-reloc-initrd-fdt.patch")) +(define %u-boot-allow-disabling-openssl-patch + ;; Fixes build of u-boot 2021.10 without openssl + ;; https://lists.denx.de/pipermail/u-boot/2021-October/462728.html + (search-patch "u-boot-allow-disabling-openssl.patch")) + (define u-boot (package (name "u-boot") - (version "2021.07") + (version "2021.10") (source (origin (patches (list %u-boot-rockchip-inno-usb-patch + %u-boot-allow-disabling-openssl-patch %u-boot-sifive-prevent-relocating-initrd-fdt)) (method url-fetch) (uri (string-append @@ -513,7 +519,7 @@ (define u-boot "u-boot-" version ".tar.bz2")) (sha256 (base32 - "0zm7igkdnz0w4ir8rfl2dislfrl0ip104grs5hvd30a5wkm7wari")))) + "1m0bvwv8r62s4wk4w3cmvs888dhv9gnfa98dczr4drk2jbhj7ryd")))) (native-inputs `(("bc" ,bc) ("bison" ,bison) @@ -585,7 +591,7 @@ (define-public u-boot-tools ;; See https://bugs.gnu.org/34717 for ;; details. (("CONFIG_FIT_SIGNATURE=y") - "CONFIG_FIT_SIGNATURE=n\nCONFIG_UT_LIB_ASN1=n") + "CONFIG_FIT_SIGNATURE=n\nCONFIG_UT_LIB_ASN1=n\nCONFIG_TOOLS_LIBCRYPTO=n") ;; This test requires a sound system, which is un-used ;; in u-boot-tools. (("CONFIG_SOUND=y") "CONFIG_SOUND=n"))) @@ -684,6 +690,12 @@ (define-public (make-u-boot-package board triplet) suffix-len)))) (sort entries string-ci<))) (error "Invalid boardname ~s." ,board)))))) + (add-after 'configure 'disable-tools-libcrypto + ;; Disable libcrypto due to GPL and OpenSSL license + ;; incompatibilities + (lambda _ + (substitute* ".config" + (("CONFIG_TOOLS_LIBCRYPTO=.*$") "CONFIG_TOOLS_LIBCRYPTO=n")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -895,7 +907,8 @@ (define-public u-boot-qemu-riscv64-smode (source (origin (inherit (package-source u-boot)) (patches - (search-patches "u-boot-riscv64-fix-extlinux.patch"))))))) + (search-patches "u-boot-riscv64-fix-extlinux.patch" + %u-boot-allow-disabling-openssl-patch))))))) (define-public u-boot-sifive-unleashed (make-u-boot-package "sifive_unleashed" "riscv64-linux-gnu")) diff --git a/gnu/packages/patches/u-boot-allow-disabling-openssl.patch b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch new file mode 100644 index 0000000000..e3ec92be84 --- /dev/null +++ b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch @@ -0,0 +1,164 @@ +From f060e90d148270307228315e2759a0065ec1d796 Mon Sep 17 00:00:00 2001 +From: Vagrant Cascadian +Date: Fri, 22 Oct 2021 17:34:53 -0700 +Subject: [PATCH] Revert "tools: kwbimage: Do not hide usage of secure header + under CONFIG_ARMADA_38X" + +This reverts commit b4f3cc2c42d97967a3a3c8796c340f6b07ecccac. +--- + tools/Makefile | 8 ++++++++ + tools/kwbimage.c | 22 ++++++++++++++++++++++ + 2 files changed, 30 insertions(+) + +diff --git a/tools/Makefile b/tools/Makefile +index 4a86321f64..9517f203fd 100644 +--- a/tools/Makefile ++++ b/tools/Makefile +@@ -169,6 +169,14 @@ HOST_EXTRACFLAGS += -DCONFIG_FIT_SIGNATURE_MAX_SIZE=0xffffffff + HOST_EXTRACFLAGS += -DCONFIG_FIT_CIPHER + endif + ++ifneq ($(CONFIG_SYS_U_BOOT_OFFS),) ++HOSTCFLAGS_kwbimage.o += -DCONFIG_SYS_U_BOOT_OFFS=$(CONFIG_SYS_U_BOOT_OFFS) ++endif ++ ++ifneq ($(CONFIG_ARMADA_38X),) ++HOSTCFLAGS_kwbimage.o += -DCONFIG_KWB_SECURE ++endif ++ + # MXSImage needs LibSSL + ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_ARMADA_38X)$(CONFIG_TOOLS_LIBCRYPTO),) + HOSTCFLAGS_kwbimage.o += \ +diff --git a/tools/kwbimage.c b/tools/kwbimage.c +index d200ff2425..23d6be3c9a 100644 +--- a/tools/kwbimage.c ++++ b/tools/kwbimage.c +@@ -14,6 +14,7 @@ + #include + #include "kwbimage.h" + ++#ifdef CONFIG_KWB_SECURE + #include + #include + #include +@@ -39,10 +40,13 @@ void EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx) + EVP_MD_CTX_reset(ctx); + } + #endif ++#endif + + static struct image_cfg_element *image_cfg; + static int cfgn; ++#ifdef CONFIG_KWB_SECURE + static int verbose_mode; ++#endif + + struct boot_mode { + unsigned int id; +@@ -237,6 +241,8 @@ image_count_options(unsigned int optiontype) + return count; + } + ++#if defined(CONFIG_KWB_SECURE) ++ + static int image_get_csk_index(void) + { + struct image_cfg_element *e; +@@ -259,6 +265,8 @@ static bool image_get_spezialized_img(void) + return e->sec_specialized_img; + } + ++#endif ++ + /* + * Compute a 8-bit checksum of a memory area. This algorithm follows + * the requirements of the Marvell SoC BootROM specifications. +@@ -353,6 +361,7 @@ static uint8_t baudrate_to_option(unsigned int baudrate) + } + } + ++#if defined(CONFIG_KWB_SECURE) + static void kwb_msg(const char *fmt, ...) + { + if (verbose_mode) { +@@ -847,6 +856,8 @@ done: + return ret; + } + ++#endif ++ + static void *image_create_v0(size_t *imagesz, struct image_tool_params *params, + int payloadsz) + { +@@ -977,11 +988,13 @@ static size_t image_headersz_v1(int *hasext) + *hasext = 1; + } + ++#if defined(CONFIG_KWB_SECURE) + if (image_get_csk_index() >= 0) { + headersz += sizeof(struct secure_hdr_v1); + if (hasext) + *hasext = 1; + } ++#endif + + /* + * The payload should be aligned on some reasonable +@@ -1058,6 +1071,8 @@ err_close: + return -1; + } + ++#if defined(CONFIG_KWB_SECURE) ++ + int export_pub_kak_hash(RSA *kak, struct secure_hdr_v1 *secure_hdr) + { + FILE *hashf; +@@ -1170,6 +1185,7 @@ int add_secure_header_v1(struct image_tool_params *params, uint8_t *ptr, + + return 0; + } ++#endif + + static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, + uint8_t *ptr, int payloadsz) +@@ -1177,7 +1193,9 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, + struct image_cfg_element *e; + struct main_hdr_v1 *main_hdr; + struct register_set_hdr_v1 *register_set_hdr; ++#if defined(CONFIG_KWB_SECURE) + struct secure_hdr_v1 *secure_hdr = NULL; ++#endif + size_t headersz; + uint8_t *image, *cur; + int hasext = 0; +@@ -1253,6 +1271,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, + if (main_hdr->blockid == IBR_HDR_PEX_ID) + main_hdr->srcaddr = cpu_to_le32(0xFFFFFFFF); + ++#if defined(CONFIG_KWB_SECURE) + if (image_get_csk_index() >= 0) { + /* + * only reserve the space here; we fill the header later since +@@ -1263,6 +1282,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, + *next_ext = 1; + next_ext = &secure_hdr->next; + } ++#endif + + datai = 0; + register_set_hdr = (struct register_set_hdr_v1 *)cur; +@@ -1310,9 +1330,11 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, + return NULL; + } + ++#if defined(CONFIG_KWB_SECURE) + if (secure_hdr && add_secure_header_v1(params, ptr, payloadsz, + headersz, image, secure_hdr)) + return NULL; ++#endif + + /* Calculate and set the header checksum */ + main_hdr->checksum = image_checksum8(main_hdr, headersz); +-- +2.30.2 + From b5f45a21c27b80210753e184e52708bb75a347bb Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sun, 24 Oct 2021 04:00:15 -0700 Subject: [PATCH 142/287] lint: Add description check for common typos. Fixes: https://issues.guix.gnu.org/44675 * guix/lint.scm (check-description-typo): Add check for occurences of "This packages", "This modules", "allows to" and "permits to" in package descriptions. * tests/lint.scm: Add tests for "This packages" and "allows to". --- guix/lint.scm | 19 +++++++++++++++++++ tests/lint.scm | 14 ++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/guix/lint.scm b/guix/lint.scm index 7b02b9cec0..ac2e7b3841 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -321,6 +321,21 @@ (define (check-texinfo-markup description) (G_ "Texinfo markup in description is invalid") #:field 'description)))) + (define (check-description-typo description typo-corrections) + "Check that DESCRIPTION does not contain typo, with optional correction" + (append-map + (match-lambda + ((typo . correction) + (if (string-contains description typo) + (list + (make-warning package + (G_ + (format #false + "description contains typo '~a'~@[, should be '~a'~]" + typo correction)))) + '()))) + typo-corrections)) + (define (check-trademarks description) "Check that DESCRIPTION does not contain '™' or '®' characters. See http://www.gnu.org/prep/standards/html_node/Trademarks.html." @@ -401,6 +416,10 @@ (define (check-no-trailing-whitespace description) (check-not-empty description) (check-quotes description) (check-trademarks description) + (check-description-typo description '(("This packages" . "This package") + ("This modules" . "This module") + ("allows to" . #f) + ("permits to" . #f))) ;; Use raw description for this because Texinfo rendering ;; automatically fixes end of sentence space. (check-end-of-sentence-space description) diff --git a/tests/lint.scm b/tests/lint.scm index 699a750eb9..6a7eed02e0 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -177,6 +177,20 @@ (define (warning-contains? str warnings) (description "Whitespace. ")))) (check-description-style pkg)))) +(test-equal "description: pluralized 'This package'" + "description contains typo 'This packages', should be 'This package'" + (single-lint-warning-message + (let ((pkg (dummy-package "x" + (description "This packages is a typo.")))) + (check-description-style pkg)))) + +(test-equal "description: grammar 'allows to'" + "description contains typo 'allows to'" + (single-lint-warning-message + (let ((pkg (dummy-package "x" + (description "This package allows to do stuff.")))) + (check-description-style pkg)))) + (test-equal "synopsis: not a string" "invalid synopsis: #f" (single-lint-warning-message From fb3b26b2ab73a2f0da4a3f3ae6e00ce098f9e610 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sun, 24 Oct 2021 17:19:42 -0700 Subject: [PATCH 143/287] gnu: reprotest: Update to 0.7.18. * gnu/packages/diffoscope.scm (reprotest): Update to 0.7.18. --- gnu/packages/diffoscope.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 6e8363d819..f96577ce6d 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -228,7 +228,7 @@ (define-public diffoscope (define-public reprotest (package (name "reprotest") - (version "0.7.16") + (version "0.7.18") (source (origin (method git-fetch) @@ -238,7 +238,7 @@ (define-public reprotest (file-name (git-file-name name version)) (sha256 (base32 - "0s7gyixk868dw6yqxsb1sq24mgg9ilz5s2yidd5j0zhl683n7dw9")))) + "19lwsxq53isgfkvlxvxqqmbjfcim3lhcxwk7m9ddfjiynhq74949")))) (inputs `(("python-debian" ,python-debian) ("python-distro" ,python-distro) From ebd999c5d8153fc766bb064c88eac6be68935b90 Mon Sep 17 00:00:00 2001 From: Foo Chuan Wei Date: Tue, 12 Oct 2021 14:55:42 +0000 Subject: [PATCH 144/287] gnu: Add vim-mucomplete. * gnu/packages/vim.scm (vim-mucomplete): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/vim.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 9d1a74319b..397bae5c3f 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -1161,3 +1161,30 @@ (define-public vim-ctrlp @item Mappings and usage conform to Vim's conventions. @end itemize") (license license:vim))) + +(define-public vim-mucomplete + (package + (name "vim-mucomplete") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lifepillar/vim-mucomplete") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "054g80n09mmxxlh8xaic29bn8bgn3clvv732rymljdyvbj1mlhwd")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("autoload" "share/vim/vimfiles/") + ("doc" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/")))) + (home-page "https://github.com/lifepillar/vim-mucomplete") + (synopsis "MUcomplete is a minimalist autocompletion plugin for Vim") + (description + "MUcomplete is an implementation of chained (fallback) completion, +whereby several completion methods are attempted one after another until a +result is returned.") + (license license:expat))) From bb524f43fb1722f4a3e948b7fae5b795077e86d1 Mon Sep 17 00:00:00 2001 From: Foo Chuan Wei Date: Tue, 12 Oct 2021 15:06:31 +0000 Subject: [PATCH 145/287] gnu: Add vim-gitgutter. * gnu/packages/vim.scm (vim-gitgutter): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/vim.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 397bae5c3f..624ee38b63 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -1188,3 +1188,34 @@ (define-public vim-mucomplete whereby several completion methods are attempted one after another until a result is returned.") (license license:expat))) + +(define-public vim-gitgutter + (let ((commit "256702dd1432894b3607d3de6cd660863b331818") + (revision "1")) + (package + (name "vim-gitgutter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/airblade/vim-gitgutter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zpa7cs59a8sq0k3frlf9flpf30jcn239yrpmv40r7nqvxzglbpl")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("autoload" "share/vim/vimfiles/") + ("doc" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/")))) + (synopsis "Vim plugin which shows a git diff in the sign column") + (description + "A Vim plugin which shows a git diff in the sign column. It shows which +lines have been added, modified, or removed. You can also preview, stage, and +undo individual hunks; and stage partial hunks. The plugin also provides a hunk +text object. The signs are always up to date and the plugin never saves your +buffer.") + (home-page "https://github.com/airblade/vim-gitgutter") + (license license:expat)))) From b87fe805aa66851f17f56078cb0e94f7cc4525df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 25 Oct 2021 10:38:21 +0200 Subject: [PATCH 146/287] gnu: python-peachpy: Make output deterministic. Fixes . This makes users of python-peachpy bit-reproducible, such as nnpack. * gnu/packages/patches/python-peachpy-determinism.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/python-xyz.scm (python-peachpy)[source]: Use it. Co-authored-by: Kyle Meyer --- gnu/local.mk | 1 + .../patches/python-peachpy-determinism.patch | 25 +++++++++++++++++++ gnu/packages/python-xyz.scm | 3 ++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/python-peachpy-determinism.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2d52bba3ef..cfd608fa01 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1675,6 +1675,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-execnet-read-only-fix.patch \ %D%/packages/patches/python-flask-restful-werkzeug-compat.patch \ %D%/packages/patches/python-keras-integration-test.patch \ + %D%/packages/patches/python-peachpy-determinism.patch \ %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \ %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \ %D%/packages/patches/python-flint-includes.patch \ diff --git a/gnu/packages/patches/python-peachpy-determinism.patch b/gnu/packages/patches/python-peachpy-determinism.patch new file mode 100644 index 0000000000..f326a4b6b0 --- /dev/null +++ b/gnu/packages/patches/python-peachpy-determinism.patch @@ -0,0 +1,25 @@ +Make PeachPy processes deterministic: + + https://github.com/Maratyszcza/PeachPy/issues/88 + https://issues.guix.gnu.org/50672 + +diff --git a/peachpy/name.py b/peachpy/name.py +index b6a03dc..412079d 100644 +--- a/peachpy/name.py ++++ b/peachpy/name.py +@@ -86,13 +86,13 @@ def add_scoped_name(self, scoped_name): + self.names[scope_name.name] = scope + else: + assert scope_name.name is None +- self.prenames.setdefault(scope_name.prename, set()) ++ self.prenames.setdefault(scope_name.prename, {}) + if subscoped_name: + for subscope in iter(self.prenames[scope_name.prename]): + if isinstance(subscope, Namespace) and subscope.scope_name is scope_name: + subscope.add_scoped_name(subscoped_name) + return +- self.prenames[scope_name.prename].add(scope) ++ self.prenames[scope_name.prename][scope] = None + + def assign_names(self): + # Step 1: assign names to symbols with prenames with no conflicts diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index eb9fcc310d..a7b1e0efe2 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -27118,7 +27118,8 @@ (define-public python-peachpy (file-name (git-file-name name version)) (sha256 (base32 - "1yy62k3cjr6556nbp651w6v4hzl7kz4y75wy2dfqgndgbnixskx2")))) + "1yy62k3cjr6556nbp651w6v4hzl7kz4y75wy2dfqgndgbnixskx2")) + (patches (search-patches "python-peachpy-determinism.patch")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases From 69b249ecaeb1aa1de1d00c187eb21905eb5c7ca6 Mon Sep 17 00:00:00 2001 From: Olivier Dion Date: Sun, 17 Oct 2021 11:06:39 -0400 Subject: [PATCH 147/287] gnu: Add lttng-tools. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/linux.scm (lttng-tools): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/linux.scm | 61 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 34e28301dc..61ec6d8657 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -52,6 +52,7 @@ ;;; Copyright © 2020 pukkamustard ;;; Copyright © 2021 B. Wilson ;;; Copyright © 2021 Ivan Gankevich +;;; Copyright © 2021 Olivier Dion ;;; ;;; This file is part of GNU Guix. ;;; @@ -8138,6 +8139,66 @@ (define-public lttng-ust to ring buffers shared with a consumer daemon.") (license license:lgpl2.1+))) +(define-public lttng-tools + (package + (name "lttng-tools") + (version "2.12.5") + (source (origin + (method url-fetch) + (uri (string-append "https://lttng.org/files/lttng-tools/" + "lttng-tools-" version ".tar.bz2")) + (sha256 + (base32 + "0bgk35423v6z17j1w80m7dcza7gigs1pwyq24sdmgqwg6j2d1zmc")))) + (build-system gnu-build-system) + (arguments + `(;; FIXME - Currently there's a segmentation fault by swig when enabling + ;; Python's bindings. Thus, bindings are disable here. Replace + ;; `disable` by `enable` in #:configure-flags when this is fixed. + #:configure-flags '("--disable-python-bindings") + ;; FIXME - Tests are disabled for now because one test hangs + ;; indefinetely. Also, parallel testing is not possible because of how + ;; the lttng-daemon handles sessions. Thus, keep parallel testing + ;; disabled even after tests are enabled! + #:tests? #f + #:parallel-tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-environment-variables + (lambda _ + (setenv "HOME" "/tmp") + (setenv "LTTNG_HOME" "/tmp")))))) + ;; NOTE - Users have to install python-3 in their profile to use the + ;; bindings. We don't put it in the inputs, because the rest of the tools + ;; can work without it. + (inputs + `(("liburcu" ,liburcu) + ("popt" ,popt) + ("numactl" ,numactl))) + (propagated-inputs + `(("kmod" ,kmod) + ("module-init-tools" ,module-init-tools))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("perl" ,perl) + ("libpfm4" ,libpfm4) + ("python-3" ,python-3) + ("swig" ,swig) + ("procps" ,procps) + ("which" ,which) + ("flex" ,flex) + ("bison" ,bison) + ("asciidoc" ,asciidoc) + ("libxml2" ,libxml2) + ("lttng-ust" ,lttng-ust))) + (home-page "https://lttng.org/") + (synopsis "LTTng userspace tracer libraries") + (description "The lttng-tools project provides a session +daemon @code{lttng-sessiond} that acts as a tracing registry, the @command{lttng} command +line for tracing control, a @code{lttng-ctl} library for tracing control and a +@code{lttng-relayd} for network streaming.") + (license (list license:gpl2 license:lgpl2.1)))) + (define-public kexec-tools (package (name "kexec-tools") From 1ea032fb5fc8dd6f7a10e5bc705e526d25fbe1b4 Mon Sep 17 00:00:00 2001 From: Jacob Adams Date: Sun, 26 Sep 2021 13:31:31 -0400 Subject: [PATCH 148/287] services: rsync: support binding rsync to a specific IP address MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/rsync.scm ()[address]: New field. (rsync-config-file): Honor it. * doc/guix.texi (Networking Services): Document new address rsync configuration option. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 4 ++++ gnu/services/rsync.scm | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 63bb22764a..b1a1e71055 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -17158,6 +17158,10 @@ Data type representing the configuration for @code{rsync-service}. @item @code{package} (default: @var{rsync}) @code{rsync} package to use. +@item @code{address} (default: @code{#f}) +IP address on which @command{rsync} listens for incoming connections. +If unspecified, it defaults to listening on all available addresses. + @item @code{port-number} (default: @code{873}) TCP port on which @command{rsync} listens for incoming connections. If port is less than @code{1024} @command{rsync} needs to be started as the diff --git a/gnu/services/rsync.scm b/gnu/services/rsync.scm index 6c117bbda4..59faed78f6 100644 --- a/gnu/services/rsync.scm +++ b/gnu/services/rsync.scm @@ -45,6 +45,8 @@ (define-record-type* rsync-configuration? (package rsync-configuration-package ; package (default rsync)) + (address rsync-configuration-address ; string | #f + (default #f)) (port-number rsync-configuration-port-number ; integer (default 873)) (pid-file rsync-configuration-pid-file ; string @@ -110,7 +112,7 @@ (define (rsync-activation config) (define rsync-config-file ;; Return the rsync configuration file corresponding to CONFIG. (match-lambda - (($ package port-number pid-file lock-file log-file + (($ package address port-number pid-file lock-file log-file use-chroot? share-path share-comment read-only? timeout user group uid gid) (if (not (string=? user "root")) @@ -132,6 +134,7 @@ (define rsync-config-file "pid file = " pid-file "\n" "lock file = " lock-file "\n" "log file = " log-file "\n" + (if address (string-append "address = " address "\n") "") "port = " (number->string port-number) "\n" "use chroot = " (if use-chroot? "true" "false") "\n" (if uid (string-append "uid = " uid "\n") "") From e4276fc4c1c9035971a7d72328e8bea8b165c9c0 Mon Sep 17 00:00:00 2001 From: Morgan Smith Date: Sun, 26 Sep 2021 10:47:40 -0400 Subject: [PATCH 149/287] gnu: mspdebug: Update to 0.25-0.4c4d94e. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/debug.scm (mspdebug): Update to 0.25-0.4c4d94e. Signed-off-by: Ludovic Courtès --- gnu/packages/debug.scm | 61 ++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 7363d45c43..c95cd036e8 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2018, 2019 Rutger Helling ;;; Copyright © 2019 Pkill -9 ;;; Copyright © 2020 Vincent Legoll -;;; Copyright © 2020 Morgan Smith +;;; Copyright © 2020, 2021 Morgan Smith ;;; Copyright © 2020 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. @@ -757,35 +757,38 @@ (define-public libleak (license license:gpl2+))) (define-public mspdebug - (package - (name "mspdebug") - (version "0.25") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dlbeer/mspdebug") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0prgwb5vx6fd4bj12ss1bbb6axj2kjyriyjxqrzd58s5jyyy8d3c")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; no test suite - #:phases - (modify-phases %standard-phases - (delete 'configure)) ; no configure script - #:make-flags - (list (string-append "CC=" ,(cc-for-target)) - "INSTALL=install" - (string-append "PREFIX=" %output)))) - (inputs - `(("libusb-compat" ,libusb-compat) - ("readline" ,readline))) - (synopsis "Debugging tool for MSP430 MCUs") - (description "MspDebug supports FET430UIF, eZ430, RF2500 and Olimex + ;; Last official release was 24 July 2017 + (let ((commit "4c4d94e43bc4a18ecf82070ff81cd38dd5641e3b") + (revision "0")) + (package + (name "mspdebug") + (version (git-version "0.25" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dlbeer/mspdebug") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lgw1dsc1aglyja610ichadvgs5b0df3wlarinczb0ykf431gjln")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no test suite + #:phases + (modify-phases %standard-phases + (delete 'configure)) ; no configure script + #:make-flags + (list (string-append "CC=" ,(cc-for-target)) + "INSTALL=install" + (string-append "PREFIX=" %output)))) + (inputs + `(("libusb-compat" ,libusb-compat) + ("readline" ,readline))) + (synopsis "Debugging tool for MSP430 MCUs") + (description "MspDebug supports FET430UIF, eZ430, RF2500 and Olimex MSP430-JTAG-TINY programmers, as well as many other compatible devices. It can be used as a proxy for gdb or as an independent debugger with support for programming, disassembly and reverse engineering.") - (home-page "https://github.com/dlbeer/mspdebug") - (license license:gpl2+))) + (home-page "https://github.com/dlbeer/mspdebug") + (license license:gpl2+)))) From fb368f4e760777e399aa58b08b89df1832fda8ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 10:49:22 +0200 Subject: [PATCH 150/287] packages: Add 'package-development-inputs'. * guix/packages.scm (package-development-inputs): New procedure. * guix/scripts/environment.scm (package-environment-inputs): Use it. * tests/packages.scm ("package-development-inputs") ("package-development-inputs, cross-compilation"): New tests. * doc/guix.texi (package Reference): Document it. --- doc/guix.texi | 41 ++++++++++++++++++++++++++++++++++++ guix/packages.scm | 10 +++++++++ guix/scripts/environment.scm | 2 +- tests/packages.scm | 14 ++++++++++++ 4 files changed, 66 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index b1a1e71055..31b8cd7069 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6848,6 +6848,47 @@ cross-compiling: It is an error to refer to @code{this-package} outside a package definition. @end deffn +@cindex development inputs, of a package +@cindex implicit inputs, of a package +Sometimes you will want to obtain the list of inputs needed to +@emph{develop} a package---all the inputs that are visible when the +package is compiled. This is what the @code{package-development-inputs} +procedure returns. + +@deffn {Scheme Procedure} package-development-inputs @var{package} @ + [@var{system}] [#:target #f] +Return the list of inputs required by @var{package} for development +purposes on @var{system}. When @var{target} is true, return the inputs +needed to cross-compile @var{package} from @var{system} to +@var{triplet}, where @var{triplet} is a triplet such as +@code{"aarch64-linux-gnu"}. + +Note that the result includes both explicit inputs and implicit +inputs---inputs automatically added by the build system (@pxref{Build +Systems}). Let us take the @code{hello} package to illustrate that: + +@lisp +(use-modules (gnu packages base) (guix packages)) + +hello +@result{} # + +(package-direct-inputs hello) +@result{} () + +(package-development-inputs hello) +@result{} (("source" @dots{}) ("tar" #) @dots{}) +@end lisp + +In this example, @code{package-direct-inputs} returns the empty list, +because @code{hello} has zero explicit dependencies. Conversely, +@code{package-development-inputs} includes inputs implicitly added by +@code{gnu-build-system} that are required to build @code{hello}: tar, +gzip, GCC, libc, Bash, and more. To visualize it, @command{guix graph +hello} would show you explicit inputs, whereas @command{guix graph -t +bag hello} would include implicit inputs (@pxref{Invoking guix graph}). +@end deffn + Because packages are regular Scheme objects that capture a complete dependency graph and associated build procedures, it is often useful to write procedures that take a package and return a modified version diff --git a/guix/packages.scm b/guix/packages.scm index e5a9d08bce..b99689b9a4 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -153,6 +153,7 @@ (define-module (guix packages) bag-transitive-host-inputs bag-transitive-build-inputs bag-transitive-target-inputs + package-development-inputs package-closure default-guile @@ -1070,6 +1071,15 @@ (define (bag-transitive-target-inputs bag) (%current-system (bag-system bag))) (transitive-inputs (bag-target-inputs bag)))) +(define* (package-development-inputs package + #:optional (system (%current-system)) + #:key target) + "Return the list of inputs required by PACKAGE for development purposes on +SYSTEM. When TARGET is true, return the inputs needed to cross-compile +PACKAGE from SYSTEM to TRIPLET, where TRIPLET is a triplet such as +\"aarch64-linux-gnu\"." + (bag-transitive-inputs (package->bag package system target))) + (define* (package-closure packages #:key (system (%current-system))) "Return the closure of PACKAGES on SYSTEM--i.e., PACKAGES and the list of packages they depend on, recursively." diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 6958bd6238..418f11c37e 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -82,7 +82,7 @@ (define (package-environment-inputs package) packages for PACKAGE." ;; Remove non-package inputs such as origin records. (filter-map input->manifest-entry - (bag-transitive-inputs (package->bag package)))) + (package-development-inputs package))) (define (show-help) (display (G_ "Usage: guix environment [OPTION]... PACKAGE... [-- COMMAND...] diff --git a/tests/packages.scm b/tests/packages.scm index 3756877270..266b5aeb7a 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -353,6 +353,20 @@ (define read-at (package-transitive-supported-systems d) (package-transitive-supported-systems e)))) +(test-assert "package-development-inputs" + ;; Note: Due to propagated inputs, 'package-development-inputs' returns a + ;; couple more inputs, such as 'linux-libre-headers'. + (lset<= equal? + `(("source" ,(package-source hello)) ,@(standard-packages)) + (package-development-inputs hello))) + +(test-assert "package-development-inputs, cross-compilation" + (lset<= equal? + `(("source" ,(package-source hello)) + ,@(standard-cross-packages "mips64el-linux-gnu" 'host) + ,@(standard-cross-packages "mips64el-linux-gnu" 'target)) + (package-development-inputs hello #:target "mips64el-linux-gnu"))) + (test-assert "package-closure" (let-syntax ((dummy-package/no-implicit (syntax-rules () From 23f99f1a299ed0e19d926a0f719980b3c151c9c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 11:14:58 +0200 Subject: [PATCH 151/287] profiles: Add 'package->development-manifest'. * guix/profiles.scm (package->development-manifest): New procedure. * guix/scripts/environment.scm (input->manifest-entry) (package-environment-inputs): Remove. * guix/scripts/environment.scm (options/resolve-packages): Use 'package->development-manifest' instead of 'package-environment-inputs'. * tests/profiles.scm ("package->development-manifest"): New test. --- doc/guix.texi | 11 +++++++++++ guix/profiles.scm | 19 +++++++++++++++++++ guix/scripts/environment.scm | 27 +++++---------------------- tests/profiles.scm | 7 +++++++ 4 files changed, 42 insertions(+), 22 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 31b8cd7069..37d31d5fa9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3341,6 +3341,17 @@ objects, like this: '("emacs" "guile@@2.2" "guile@@2.2:debug")) @end lisp +@findex package->development-manifest +You might also want to create a manifest for all the dependencies of a +package, rather than the package itself: + +@lisp +(package->development-manifest (specification->package "emacs")) +@end lisp + +The example above gives you all the software required to develop Emacs, +similar to what @command{guix environment emacs} provides. + @xref{export-manifest, @option{--export-manifest}}, to learn how to obtain a manifest file from an existing profile. diff --git a/guix/profiles.scm b/guix/profiles.scm index 2486f91d09..9f30349c69 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -124,6 +124,7 @@ (define-module (guix profiles) profile-manifest package->manifest-entry + package->development-manifest packages->manifest ca-certificate-bundle %default-profile-hooks @@ -400,6 +401,24 @@ (define* (package->manifest-entry package #:optional (output "out") (properties properties)))) entry)) +(define* (package->development-manifest package + #:optional + (system (%current-system)) + #:key target) + "Return a manifest for the \"development inputs\" of PACKAGE for SYSTEM, +optionally when cross-compiling to TARGET. Development inputs include both +explicit and implicit inputs of PACKAGE." + (manifest + (filter-map (match-lambda + ((label (? package? package)) + (package->manifest-entry package)) + ((label (? package? package) output) + (package->manifest-entry package output)) + ;; TODO: Support . + (_ + #f)) + (package-development-inputs package system #:target target)))) + (define (packages->manifest packages) "Return a list of manifest entries, one for each item listed in PACKAGES. Elements of PACKAGES can be either package objects or package/string tuples diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 418f11c37e..54f48a7482 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -66,24 +66,6 @@ (define* (show-search-paths profile manifest #:key pure?) (newline))) (profile-search-paths profile manifest))) -(define (input->manifest-entry input) - "Return a manifest entry for INPUT, or #f if INPUT does not correspond to a -package." - (match input - ((_ (? package? package)) - (package->manifest-entry package)) - ((_ (? package? package) output) - (package->manifest-entry package output)) - (_ - #f))) - -(define (package-environment-inputs package) - "Return a list of manifest entries corresponding to the transitive input -packages for PACKAGE." - ;; Remove non-package inputs such as origin records. - (filter-map input->manifest-entry - (package-development-inputs package))) - (define (show-help) (display (G_ "Usage: guix environment [OPTION]... PACKAGE... [-- COMMAND...] Build an environment that includes the dependencies of PACKAGE and execute @@ -297,11 +279,11 @@ (define (packages->outputs packages mode) ((? package? package) (if (eq? mode 'ad-hoc-package) (list (package->manifest-entry* package)) - (package-environment-inputs package))) + (manifest-entries (package->development-manifest package)))) (((? package? package) (? string? output)) (if (eq? mode 'ad-hoc-package) (list (package->manifest-entry* package output)) - (package-environment-inputs package))) + (manifest-entries (package->development-manifest package)))) ((lst ...) (append-map (cut packages->outputs <> mode) lst)))) @@ -313,8 +295,9 @@ (define (packages->outputs packages mode) (specification->package+output spec))) (list (package->manifest-entry* package output)))) (('package 'package (? string? spec)) - (package-environment-inputs - (transform (specification->package+output spec)))) + (manifest-entries + (package->development-manifest + (transform (specification->package+output spec))))) (('expression mode str) ;; Add all the outputs of the package STR evaluates to. (packages->outputs (read/eval str) mode)) diff --git a/tests/profiles.scm b/tests/profiles.scm index 06a0387221..cac5b73347 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -265,6 +265,13 @@ (define transform1 (manifest-transaction-removal-candidate? guile-2.0.9 t) (null? install) (null? downgrade) (null? upgrade))))) +(test-assert "package->development-manifest" + (let ((manifest (package->development-manifest packages:hello))) + (every (lambda (name) + (manifest-installed? manifest + (manifest-pattern (name name)))) + '("gcc" "binutils" "glibc" "coreutils" "grep" "sed")))) + (test-assertm "profile-derivation" (mlet* %store-monad ((entry -> (package->manifest-entry %bootstrap-guile)) From 80edb7df6586464aa40e84e103f0045452de95db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 15:19:54 +0200 Subject: [PATCH 152/287] Add 'guix shell'. * guix/scripts/shell.scm, tests/guix-shell.sh: New files. * Makefile.am (MODULES): Add 'shell.scm'. (SH_TESTS): Add 'tests/guix-shell.sh'. * guix/scripts/environment.scm (show-environment-options-help): New procedure. (show-help): Use it. (guix-environment*): New procedure. (guix-environment): Use it. * po/guix/POTFILES.in: Add it. * doc/guix.texi (Features): Refer to "guix shell" (Invoking guix package): Likewise. (Development): Likewise. (Invoking guix shell): New node. (Invoking guix environment): Add deprecation warning. (Debugging Build Failures): Use 'guix shell' in examples. (Invoking guix container): Refer to 'guix shell'. (Invoking guix processes, Virtualization Services): Adjust examples to use 'guix shell'. * doc/contributing.texi (Building from Git): Refer to 'guix shell'. * etc/completion/bash/guix: Handle "shell". --- Makefile.am | 2 + doc/contributing.texi | 8 +- doc/guix.texi | 368 ++++++++++++++++++++++++++++++++--- etc/completion/bash/guix | 6 +- guix/scripts/environment.scm | 52 +++-- guix/scripts/shell.scm | 135 +++++++++++++ po/guix/POTFILES.in | 1 + tests/guix-shell.sh | 54 +++++ 8 files changed, 579 insertions(+), 47 deletions(-) create mode 100644 guix/scripts/shell.scm create mode 100644 tests/guix-shell.sh diff --git a/Makefile.am b/Makefile.am index 41ec19eb89..239387c2f4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -316,6 +316,7 @@ MODULES = \ guix/scripts/import/stackage.scm \ guix/scripts/import/texlive.scm \ guix/scripts/environment.scm \ + guix/scripts/shell.scm \ guix/scripts/publish.scm \ guix/scripts/edit.scm \ guix/scripts/size.scm \ @@ -552,6 +553,7 @@ SH_TESTS = \ tests/guix-authenticate.sh \ tests/guix-environment.sh \ tests/guix-environment-container.sh \ + tests/guix-shell.sh \ tests/guix-graph.sh \ tests/guix-describe.sh \ tests/guix-repl.sh \ diff --git a/doc/contributing.texi b/doc/contributing.texi index 76ab913b0d..db0f836157 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -73,10 +73,10 @@ all the dependencies and appropriate environment variables are set up to hack on Guix: @example -guix environment guix --pure +guix shell -D guix --pure @end example -@xref{Invoking guix environment}, for more information on that command. +@xref{Invoking guix shell}, for more information on that command. If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the @@ -92,10 +92,10 @@ installation instructions (@pxref{Requirements}). @end itemize On Guix, extra dependencies can be added by instead running @command{guix -environment} with @option{--ad-hoc}: +shell}: @example -guix environment guix --pure --ad-hoc help2man git strace +guix shell -D guix help2man git strace --pure @end example Run @command{./bootstrap} to generate the build system infrastructure diff --git a/doc/guix.texi b/doc/guix.texi index 37d31d5fa9..f5bfb59229 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -119,6 +119,7 @@ Documentation License''. @dircategory Software development @direntry +* guix shell: (guix)Invoking guix shell. Creating software environments. * guix environment: (guix)Invoking guix environment. Building development environments with Guix. * guix build: (guix)Invoking guix build. Building packages. * guix pack: (guix)Invoking guix pack. Creating binary bundles. @@ -262,6 +263,7 @@ Channels Development +* Invoking guix shell:: Spawning one-off software environments. * Invoking guix environment:: Setting up development environments. * Invoking guix pack:: Creating software bundles. * The GCC toolchain:: Working with languages supported by GCC. @@ -3067,10 +3069,10 @@ substitutes: they can force a local build and @emph{challenge} providers (@pxref{Invoking guix challenge}). Control over the build environment is a feature that is also useful for -developers. The @command{guix environment} command allows developers of +developers. The @command{guix shell} command allows developers of a package to quickly set up the right development environment for their package, without having to manually install the dependencies of the -package into their profile (@pxref{Invoking guix environment}). +package into their profile (@pxref{Invoking guix shell}). @cindex replication, of software environments @cindex provenance tracking, of software artifacts @@ -3234,7 +3236,7 @@ As an example, @var{file} might contain a definition like this Developers may find it useful to include such a @file{guix.scm} file in the root of their project source tree that can be used to test development snapshots and create reproducible development environments -(@pxref{Invoking guix environment}). +(@pxref{Invoking guix shell}). The @var{file} may also contain a JSON representation of one or more package definitions. Running @code{guix package -f} on @@ -5559,31 +5561,352 @@ If you are a software developer, Guix provides tools that you should find helpful---independently of the language you're developing in. This is what this chapter is about. -The @command{guix environment} command provides a convenient way to set up -@dfn{development environments} containing all the dependencies and tools -necessary to work on the software package of your choice. The @command{guix +The @command{guix shell} command provides a convenient way to set up +one-off software environments, be it for development purposes or to run +a command without installing it in your profile. The @command{guix pack} command allows you to create @dfn{application bundles} that can be easily distributed to users who do not run Guix. @menu +* Invoking guix shell:: Spawning one-off software environments. * Invoking guix environment:: Setting up development environments. * Invoking guix pack:: Creating software bundles. * The GCC toolchain:: Working with languages supported by GCC. * Invoking guix git authenticate:: Authenticating Git repositories. @end menu -@node Invoking guix environment -@section Invoking @command{guix environment} +@node Invoking guix shell +@section Invoking @command{guix shell} @cindex reproducible build environments @cindex development environments @cindex @command{guix environment} @cindex environment, package build environment -The purpose of @command{guix environment} is to assist hackers in -creating reproducible development environments without polluting their -package profile. The @command{guix environment} tool takes one or more -packages, builds all of their inputs, and creates a shell -environment to use them. +The purpose of @command{guix shell} is to make it easy to create one-off +software environments, without changing one's profile. It is typically +used to create development environments; it is also a convenient way to +run applications without ``polluting'' your profile. + +@quotation Note +The @command{guix shell} command was recently introduced to supersede +@command{guix environment} (@pxref{Invoking guix environment}). If you +are familiar with @command{guix environment}, you will notice that it is +similar but also---we hope!---more convenient. +@end quotation + +The general syntax is: + +@example +guix shell [@var{options}] [@var{package}@dots{}] +@end example + +The following example creates an environment containing Python and NumPy, +building or downloading any missing package, and runs the +@command{python3} command in that environment: + +@example +guix shell python python-numpy -- python3 +@end example + +Development environments can be created as in the example below, which +spawns an interactive shell containing all the dependencies and +environment variables needed to work on Inkscape: + +@example +guix shell --development inkscape +@end example + +Exiting the shell places the user back in the original environment +before @command{guix shell} was invoked. The next garbage collection +(@pxref{Invoking guix gc}) may clean up packages that were installed in +the environment and that are no longer used outside of it. + +By default, the shell session or command runs in an @emph{augmented} +environment, where the new packages are added to search path environment +variables such as @code{PATH}. You can, instead, choose to create an +@emph{isolated} environment containing nothing but the packages you +asked for. Passing the @option{--pure} option clears environment +variable definitions found in the parent environment@footnote{Users +sometimes wrongfully augment environment variables such as @env{PATH} in +their @file{~/.bashrc} file. As a consequence, when @command{guix +environment} launches it, Bash may read @file{~/.bashrc}, thereby +introducing ``impurities'' in these environment variables. It is an +error to define such environment variables in @file{.bashrc}; instead, +they should be defined in @file{.bash_profile}, which is sourced only by +log-in shells. @xref{Bash Startup Files,,, bash, The GNU Bash Reference +Manual}, for details on Bash start-up files.}; passing +@option{--container} goes one step further by spawning a @dfn{container} +isolated from the rest of the system: + +@example +guix shell --container emacs gcc-toolchain +@end example + +The command above spawns an interactive shell in a container when +nothing but @code{emacs}, @code{gcc-toolchain}, and their dependencies +is available. The container lacks network access and shares no files +other than the current working directory with the surrounding +environment. This is useful to prevent access to system-wide resources +such as @file{/usr/bin} on foreign distros. + +This @option{--container} option can also prove useful if you wish to +run a security-sensitive application, such as a web browser, in an +isolated environment. For example, the command below launches +Ungoogled-Chromium in an isolated environment, this time sharing network +access with the host and preserving its @code{DISPLAY} environment +variable, but without even sharing the current directory: + +@example +guix shell --container --network --no-cwd ungoogled-chromium \ + --preserve='^DISPLAY$' -- chromium +@end example + +@vindex GUIX_ENVIRONMENT +@command{guix shell} defines the @env{GUIX_ENVIRONMENT} +variable in the shell it spawns; its value is the file name of the +profile of this environment. This allows users to, say, define a +specific prompt for development environments in their @file{.bashrc} +(@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}): + +@example +if [ -n "$GUIX_ENVIRONMENT" ] +then + export PS1="\u@@\h \w [dev]\$ " +fi +@end example + +@noindent +...@: or to browse the profile: + +@example +$ ls "$GUIX_ENVIRONMENT/bin" +@end example + +The available options are summarized below. + +@table @code +@item --development +@itemx -D +Cause @command{guix shell} to include in the environment the +dependencies of the following package rather than the package itself. +This can be combined with other packages. For instance, the command +below starts an interactive shell containing the build-time dependencies +of GNU@tie{}Guile, plus Autoconf, Automake, and Libtool: + +@example +guix shell -D guile autoconf automake libtool +@end example + +@item --expression=@var{expr} +@itemx -e @var{expr} +Create an environment for the package or list of packages that +@var{expr} evaluates to. + +For example, running: + +@example +guix shell -D -e '(@@ (gnu packages maths) petsc-openmpi)' +@end example + +starts a shell with the environment for this specific variant of the +PETSc package. + +Running: + +@example +guix shell -e '(@@ (gnu) %base-packages)' +@end example + +starts a shell with all the base system packages available. + +The above commands only use the default output of the given packages. +To select other outputs, two element tuples can be specified: + +@example +guix shell -e '(list (@@ (gnu packages bash) bash) "include")' +@end example + +@item --file=@var{file} +@itemx -f @var{file} +Create an environment containing the package or list of packages that +the code within @var{file} evaluates to. + +As an example, @var{file} might contain a definition like this +(@pxref{Defining Packages}): + +@lisp +@verbatiminclude environment-gdb.scm +@end lisp + +With the file above, you can enter a development environment for GDB by +running: + +@example +guix shell -D -f gdb-devel.scm +@end example + +@item --manifest=@var{file} +@itemx -m @var{file} +Create an environment for the packages contained in the manifest object +returned by the Scheme code in @var{file}. This option can be repeated +several times, in which case the manifests are concatenated. + +This is similar to the same-named option in @command{guix package} +(@pxref{profile-manifest, @option{--manifest}}) and uses the same +manifest files. + +@item --pure +Unset existing environment variables when building the new environment, except +those specified with @option{--preserve} (see below). This has the effect of +creating an environment in which search paths only contain package inputs. + +@item --preserve=@var{regexp} +@itemx -E @var{regexp} +When used alongside @option{--pure}, preserve the environment variables +matching @var{regexp}---in other words, put them on a ``white list'' of +environment variables that must be preserved. This option can be repeated +several times. + +@example +guix shell --pure --preserve=^SLURM openmpi @dots{} \ + -- mpirun @dots{} +@end example + +This example runs @command{mpirun} in a context where the only environment +variables defined are @env{PATH}, environment variables whose name starts +with @samp{SLURM}, as well as the usual ``precious'' variables (@env{HOME}, +@env{USER}, etc.). + +@item --search-paths +Display the environment variable definitions that make up the +environment. + +@item --system=@var{system} +@itemx -s @var{system} +Attempt to build for @var{system}---e.g., @code{i686-linux}. + +@item --container +@itemx -C +@cindex container +Run @var{command} within an isolated container. The current working +directory outside the container is mapped inside the container. +Additionally, unless overridden with @option{--user}, a dummy home +directory is created that matches the current user's home directory, and +@file{/etc/passwd} is configured accordingly. + +The spawned process runs as the current user outside the container. Inside +the container, it has the same UID and GID as the current user, unless +@option{--user} is passed (see below). + +@item --network +@itemx -N +For containers, share the network namespace with the host system. +Containers created without this flag only have access to the loopback +device. + +@item --link-profile +@itemx -P +For containers, link the environment profile to @file{~/.guix-profile} +within the container and set @code{GUIX_ENVIRONMENT} to that. +This is equivalent to making @file{~/.guix-profile} a symlink to the +actual profile within the container. +Linking will fail and abort the environment if the directory already +exists, which will certainly be the case if @command{guix shell} +was invoked in the user's home directory. + +Certain packages are configured to look in @file{~/.guix-profile} for +configuration files and data;@footnote{For example, the +@code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} +for additional fonts.} @option{--link-profile} allows these programs to +behave as expected within the environment. + +@item --user=@var{user} +@itemx -u @var{user} +For containers, use the username @var{user} in place of the current +user. The generated @file{/etc/passwd} entry within the container will +contain the name @var{user}, the home directory will be +@file{/home/@var{user}}, and no user GECOS data will be copied. Furthermore, +the UID and GID inside the container are 1000. @var{user} +need not exist on the system. + +Additionally, any shared or exposed path (see @option{--share} and +@option{--expose} respectively) whose target is within the current user's +home directory will be remapped relative to @file{/home/USER}; this +includes the automatic mapping of the current working directory. + +@example +# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target +cd $HOME/wd +guix shell --container --user=foo \ + --expose=$HOME/test \ + --expose=/tmp/target=$HOME/target +@end example + +While this will limit the leaking of user identity through home paths +and each of the user fields, this is only one useful component of a +broader privacy/anonymity solution---not one in and of itself. + +@item --no-cwd +For containers, the default behavior is to share the current working +directory with the isolated container and immediately change to that +directory within the container. If this is undesirable, +@option{--no-cwd} will cause the current working directory to @emph{not} +be automatically shared and will change to the user's home directory +within the container instead. See also @option{--user}. + +@item --expose=@var{source}[=@var{target}] +@itemx --share=@var{source}[=@var{target}] +For containers, @option{--expose} (resp. @option{--share}) exposes the +file system @var{source} from the host system as the read-only +(resp. writable) file system @var{target} within the container. If +@var{target} is not specified, @var{source} is used as the target mount +point in the container. + +The example below spawns a Guile REPL in a container in which the user's +home directory is accessible read-only via the @file{/exchange} +directory: + +@example +guix shell --container --expose=$HOME=/exchange guile -- guile +@end example + +@item --root=@var{file} +@itemx -r @var{file} +@cindex persistent environment +@cindex garbage collector root, for environments +Make @var{file} a symlink to the profile for this environment, and +register it as a garbage collector root. + +This is useful if you want to protect your environment from garbage +collection, to make it ``persistent''. + +When this option is omitted, the environment is protected from garbage +collection only for the duration of the @command{guix shell} +session. This means that next time you recreate the same environment, +you could have to rebuild or re-download packages. @xref{Invoking guix +gc}, for more on GC roots. +@end table + +@command{guix shell} also supports all of the common build options that +@command{guix build} supports (@pxref{Common Build Options}) as well as +package transformation options (@pxref{Package Transformation Options}). + +@node Invoking guix environment +@section Invoking @command{guix environment} + +The purpose of @command{guix environment} is to assist in creating +development environments. + +@quotation Deprecation warning +The @command{guix environment} command is deprecated in favor of +@command{guix shell}, which performs similar functions but is more +convenient to use. @xref{Invoking guix shell}. + +Being deprecated, @command{guix environment} is slated for eventual +removal, but the Guix project is committed to keeping it until May 1st, +2023. Please get in touch with us at @email{guix-devel@@gnu.org} if you +would like to discuss it. +@end quotation The general syntax is: @@ -11099,14 +11422,14 @@ a container similar to the one the build daemon creates: $ guix build -K foo @dots{} $ cd /tmp/guix-build-foo.drv-0 -$ guix environment --no-grafts -C foo --ad-hoc strace gdb +$ guix shell --no-grafts -C foo strace gdb [env]# source ./environment-variables [env]# cd foo-1.2 @end example -Here, @command{guix environment -C} creates a container and spawns a new -shell in it (@pxref{Invoking guix environment}). The @command{--ad-hoc -strace gdb} part adds the @command{strace} and @command{gdb} commands to +Here, @command{guix shell -C} creates a container and spawns a new +shell in it (@pxref{Invoking guix shell}). The @command{strace gdb} +part adds the @command{strace} and @command{gdb} commands to the container, which you may find handy while debugging. The @option{--no-grafts} option makes sure we get the exact same environment, with ungrafted packages (@pxref{Security Updates}, for more @@ -11120,7 +11443,7 @@ remove @file{/bin/sh}: @end example (Don't worry, this is harmless: this is all happening in the throw-away -container created by @command{guix environment}.) +container created by @command{guix shell}.) The @command{strace} command is probably not in the search path, but we can run: @@ -13316,8 +13639,8 @@ is subject to radical change in the future. The purpose of @command{guix container} is to manipulate processes running within an isolated environment, commonly known as a -``container'', typically created by the @command{guix environment} -(@pxref{Invoking guix environment}) and @command{guix system container} +``container'', typically created by the @command{guix shell} +(@pxref{Invoking guix shell}) and @command{guix system container} (@pxref{Invoking guix system}) commands. The general syntax is: @@ -13503,7 +13826,7 @@ listed.}. Here's an example of the information it returns: $ sudo guix processes SessionPID: 19002 ClientPID: 19090 -ClientCommand: guix environment --ad-hoc python +ClientCommand: guix shell python SessionPID: 19402 ClientPID: 19367 @@ -29699,8 +30022,7 @@ When the service is running, you can view its console by connecting to it with a VNC client, for example with: @example -guix environment --ad-hoc tigervnc-client -- \ - vncviewer localhost:5900 +guix shell tigervnc-client -- vncviewer localhost:5900 @end example The default configuration (see @code{hurd-vm-configuration} below) diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix index 87d9911e53..ec6adfdb22 100644 --- a/etc/completion/bash/guix +++ b/etc/completion/bash/guix @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès +# Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès # Copyright © 2021 Tobias Geerinck-Rice # # This file is part of GNU Guix. @@ -215,7 +215,7 @@ _guix_complete () if [[ "$word" = "--" ]] then case "$command" in - environment) + environment|shell) break ;; time-machine) @@ -265,7 +265,7 @@ _guix_complete () else _guix_complete_available_package_or_store_file "$word_at_point" fi - elif [[ "$command" = "environment" ]] + elif [[ "$command" = "environment" || "$command" = "shell" ]] then if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p || _guix_is_dash_l then diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 54f48a7482..77956fc018 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -50,7 +50,11 @@ (define-module (guix scripts environment) #:use-module (srfi srfi-37) #:use-module (srfi srfi-98) #:export (assert-container-features - guix-environment)) + guix-environment + guix-environment* + show-environment-options-help + (%options . %environment-options) + (%default-options . %environment-default-options))) (define %default-shell (or (getenv "SHELL") "/bin/sh")) @@ -66,23 +70,16 @@ (define* (show-search-paths profile manifest #:key pure?) (newline))) (profile-search-paths profile manifest))) -(define (show-help) - (display (G_ "Usage: guix environment [OPTION]... PACKAGE... [-- COMMAND...] -Build an environment that includes the dependencies of PACKAGE and execute -COMMAND or an interactive shell in that environment.\n")) +(define (show-environment-options-help) + "Print help about options shared between 'guix environment' and 'guix +shell'." (display (G_ " -e, --expression=EXPR create environment for the package that EXPR evaluates to")) (display (G_ " - -l, --load=FILE create environment for the package that the code within - FILE evaluates to")) - (display (G_ " -m, --manifest=FILE create environment with the manifest from FILE")) (display (G_ " -p, --profile=PATH create environment from profile at PATH")) - (display (G_ " - --ad-hoc include all specified packages in the environment instead - of only their inputs")) (display (G_ " --pure unset existing environment variables")) (display (G_ " @@ -118,7 +115,24 @@ (define (show-help) (display (G_ " -v, --verbosity=LEVEL use the given verbosity LEVEL")) (display (G_ " - --bootstrap use bootstrap binaries to build the environment")) + --bootstrap use bootstrap binaries to build the environment"))) + +(define (show-help) + (display (G_ "Usage: guix environment [OPTION]... PACKAGE... [-- COMMAND...] +Build an environment that includes the dependencies of PACKAGE and execute +COMMAND or an interactive shell in that environment.\n")) + (warning (G_ "This command is deprecated in favor of 'guix shell'.\n")) + (newline) + + ;; These two options are left out in 'guix shell'. + (display (G_ " + -l, --load=FILE create environment for the package that the code within + FILE evaluates to")) + (display (G_ " + --ad-hoc include all specified packages in the environment instead + of only their inputs")) + + (show-environment-options-help) (newline) (show-build-options-help) (newline) @@ -649,11 +663,15 @@ (define (register-gc-root target root) (define-command (guix-environment . args) (category development) - (synopsis "spawn one-off software environments") + (synopsis "spawn one-off software environments (deprecated)") + (guix-environment* (parse-args args))) + +(define (guix-environment* opts) + "Run the 'guix environment' command on OPTS, an alist resulting for +command-line option processing with 'parse-command-line'." (with-error-handling - (let* ((opts (parse-args args)) - (pure? (assoc-ref opts 'pure)) + (let* ((pure? (assoc-ref opts 'pure)) (container? (assoc-ref opts 'container?)) (link-prof? (assoc-ref opts 'link-profile?)) (network? (assoc-ref opts 'network?)) @@ -724,8 +742,8 @@ (define manifest (prof-drv (manifest->derivation manifest system bootstrap?)) (profile -> (if profile - (readlink* profile) - (derivation->output-path prof-drv))) + (readlink* profile) + (derivation->output-path prof-drv))) (gc-root -> (assoc-ref opts 'gc-root))) ;; First build the inputs. This is necessary even for diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm new file mode 100644 index 0000000000..190dd8837d --- /dev/null +++ b/guix/scripts/shell.scm @@ -0,0 +1,135 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Ludovic Courtès +;;; +;;; 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 . + +(define-module (guix scripts shell) + #:use-module (guix ui) + #:use-module (guix scripts environment) + #:autoload (guix scripts build) (show-build-options-help) + #:autoload (guix transformations) (show-transformation-options-help) + #:use-module (guix scripts) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-37) + #:use-module (srfi srfi-71) + #:use-module (ice-9 match) + #:export (guix-shell)) + +(define (show-help) + (display (G_ "Usage: guix shell [OPTION] PACKAGES... [-- COMMAND...] +Build an environment that includes PACKAGES and execute COMMAND or an +interactive shell in that environment.\n")) + (newline) + + ;; These two options differ from 'guix environment'. + (display (G_ " + -D, --development include the development inputs of the next package")) + (display (G_ " + -f, --file=FILE create environment for the package that the code within + FILE evaluates to")) + + (show-environment-options-help) + (newline) + (show-build-options-help) + (newline) + (show-transformation-options-help) + (newline) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define (tag-package-arg opts arg) + "Return a two-element list with the form (TAG ARG) that tags ARG with either +'ad-hoc' in OPTS has the 'ad-hoc?' key set to #t, or 'inputs' otherwise." + (if (assoc-ref opts 'ad-hoc?) + `(ad-hoc-package ,arg) + `(package ,arg))) + +(define (ensure-ad-hoc alist) + (if (assq-ref alist 'ad-hoc?) + alist + `((ad-hoc? . #t) ,@alist))) + +(define (wrapped-option opt) + "Wrap OPT, a SRFI-37 option, such that its processor always adds the +'ad-hoc?' flag to the resulting alist." + (option (option-names opt) + (option-required-arg? opt) + (option-optional-arg? opt) + (compose ensure-ad-hoc (option-processor opt)))) + +(define %options + ;; Specification of the command-line options. + (let ((to-remove '("ad-hoc" "inherit" "load" "help" "version"))) + (append + (list (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix shell"))) + + (option '(#\D "development") #f #f + (lambda (opt name arg result) + ;; Temporarily remove the 'ad-hoc?' flag from result. + ;; The next option will put it back thanks to + ;; 'wrapped-option'. + (alist-delete 'ad-hoc? result))) + + ;; For consistency with 'guix package', support '-f' rather than + ;; '-l' like 'guix environment' does. + (option '(#\f "file") #t #f + (lambda (opt name arg result) + (alist-cons 'load (tag-package-arg result arg) + result)))) + (filter-map (lambda (opt) + (and (not (any (lambda (name) + (member name to-remove)) + (option-names opt))) + (wrapped-option opt))) + %environment-options)))) + +(define %default-options + `((ad-hoc? . #t) ;always true + ,@%environment-default-options)) + +(define (parse-args args) + "Parse the list of command line arguments ARGS." + (define (handle-argument arg result) + (alist-cons 'package (tag-package-arg result arg) + (ensure-ad-hoc result))) + + ;; The '--' token is used to separate the command to run from the rest of + ;; the operands. + (let ((args command (break (cut string=? "--" <>) args))) + (let ((opts (parse-command-line args %options (list %default-options) + #:argument-handler handle-argument))) + (match command + (() opts) + (("--") opts) + (("--" command ...) (alist-cons 'exec command opts)))))) + + +(define-command (guix-shell . args) + (category development) + (synopsis "spawn one-off software environments") + + (guix-environment* (parse-args args))) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 5e77b3c230..ee0adbcf3c 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -140,5 +140,6 @@ guix/scripts/offload.scm guix/scripts/perform-download.scm guix/scripts/refresh.scm guix/scripts/repl.scm +guix/scripts/shell.scm guix/scripts/system/reconfigure.scm nix/nix-daemon/guix-daemon.cc diff --git a/tests/guix-shell.sh b/tests/guix-shell.sh new file mode 100644 index 0000000000..f08637f7ff --- /dev/null +++ b/tests/guix-shell.sh @@ -0,0 +1,54 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2021 Ludovic Courtès +# +# 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 . + +# +# Test the 'guix shell' alias. +# + +guix shell --version + +tmpdir="t-guix-shell-$$" +trap 'rm -r "$tmpdir"' EXIT +mkdir "$tmpdir" + +guix shell --bootstrap --pure guile-bootstrap -- guile --version + +# '--ad-hoc' is a thing of the past. +! guix shell --ad-hoc guile-bootstrap + +if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null +then + # Compute the build environment for the initial GNU Make. + guix shell --bootstrap --no-substitutes --search-paths --pure \ + -D -e '(@ (guix tests) gnu-make-for-tests)' > "$tmpdir/a" + + # Make sure bootstrap binaries are in the profile. + profile=`grep "^export PATH" "$tmpdir/a" | sed -r 's|^.*="(.*)/bin"|\1|'` + + # Make sure the bootstrap binaries are all listed where they belong. + grep -E "^export PATH=\"$profile/bin\"" "$tmpdir/a" + grep -E "^export CPATH=\"$profile/include\"" "$tmpdir/a" + grep -E "^export LIBRARY_PATH=\"$profile/lib\"" "$tmpdir/a" + for dep in bootstrap-binaries-0 gcc-bootstrap-0 glibc-bootstrap-0 + do + guix gc --references "$profile" | grep "$dep" + done + + # 'make-boot0' itself must not be listed. + ! guix gc --references "$profile" | grep make-boot0 +fi From 746584e0ca200e7bf51b139ceb36c19ea81d6ef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 17:18:43 +0200 Subject: [PATCH 153/287] shell: By default load the local 'manifest.scm' or 'guix.scm' file. * guix/scripts/shell.scm (parse-args): Add call to 'auto-detect-manifest'. (authorized-directory-file, authorized-shell-directory?) (find-file-in-parent-directories, auto-detect-manifest): New procedures. * tests/guix-shell.sh: Add test. * doc/guix.texi (Invoking guix shell): Document it. --- doc/guix.texi | 14 +++++ guix/scripts/shell.scm | 119 +++++++++++++++++++++++++++++++++++++++-- tests/guix-shell.sh | 50 ++++++++++++++++- 3 files changed, 176 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index f5bfb59229..5809bbacd4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5621,6 +5621,20 @@ before @command{guix shell} was invoked. The next garbage collection (@pxref{Invoking guix gc}) may clean up packages that were installed in the environment and that are no longer used outside of it. +As an added convenience, when running from a directory that contains a +@file{manifest.scm} or a @file{guix.scm} file (in this order), possibly +in a parent directory, @command{guix shell} automatically loads the +file---provided the directory is listed in +@file{~/.config/guix/shell-authorized-directories}, and only for +interactive use: + +@example +guix shell +@end example + +This provides an easy way to define, share, and enter development +environments. + By default, the shell session or command runs in an @emph{augmented} environment, where the new packages are added to search path environment variables such as @code{PATH}. You can, instead, choose to create an diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm index 190dd8837d..bee3192a9d 100644 --- a/guix/scripts/shell.scm +++ b/guix/scripts/shell.scm @@ -18,15 +18,20 @@ (define-module (guix scripts shell) #:use-module (guix ui) + #:use-module ((guix diagnostics) #:select (location)) #:use-module (guix scripts environment) #:autoload (guix scripts build) (show-build-options-help) #:autoload (guix transformations) (show-transformation-options-help) #:use-module (guix scripts) + #:use-module (guix packages) + #:use-module (guix profiles) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-37) #:use-module (srfi srfi-71) #:use-module (ice-9 match) + #:autoload (ice-9 rdelim) (read-line) + #:autoload (guix utils) (config-directory) #:export (guix-shell)) (define (show-help) @@ -41,6 +46,8 @@ (define (show-help) (display (G_ " -f, --file=FILE create environment for the package that the code within FILE evaluates to")) + (display (G_ " + -q inhibit loading of 'guix.scm' and 'manifest.scm'")) (show-environment-options-help) (newline) @@ -99,7 +106,10 @@ (define %options (option '(#\f "file") #t #f (lambda (opt name arg result) (alist-cons 'load (tag-package-arg result arg) - result)))) + result))) + (option '(#\q) #f #f + (lambda (opt name arg result) + (alist-cons 'explicit-loading? #t result)))) (filter-map (lambda (opt) (and (not (any (lambda (name) (member name to-remove)) @@ -122,10 +132,109 @@ (define (handle-argument arg result) (let ((args command (break (cut string=? "--" <>) args))) (let ((opts (parse-command-line args %options (list %default-options) #:argument-handler handle-argument))) - (match command - (() opts) - (("--") opts) - (("--" command ...) (alist-cons 'exec command opts)))))) + (auto-detect-manifest + (match command + (() opts) + (("--") opts) + (("--" command ...) (alist-cons 'exec command opts))))))) + +(define (find-file-in-parent-directories candidates) + "Find one of CANDIDATES in the current directory or one of its ancestors." + (define start (getcwd)) + (define device (stat:dev (stat start))) + + (let loop ((directory start)) + (let ((stat (stat directory))) + (and (= (stat:uid stat) (getuid)) + (= (stat:dev stat) device) + (or (any (lambda (candidate) + (let ((candidate (string-append directory "/" candidate))) + (and (file-exists? candidate) candidate))) + candidates) + (and (not (string=? directory "/")) + (loop (dirname directory)))))))) ;lexical ".." resolution + +(define (authorized-directory-file) + "Return the name of the file listing directories for which 'guix shell' may +automatically load 'guix.scm' or 'manifest.scm' files." + (string-append (config-directory) "/shell-authorized-directories")) + +(define (authorized-shell-directory? directory) + "Return true if DIRECTORY is among the authorized directories for automatic +loading. The list of authorized directories is read from +'authorized-directory-file'; each line must be either: an absolute file name, +a hash-prefixed comment, or a blank line." + (catch 'system-error + (lambda () + (call-with-input-file (authorized-directory-file) + (lambda (port) + (let loop () + (match (read-line port) + ((? eof-object?) #f) + ((= string-trim line) + (cond ((string-prefix? "#" line) ;comment + (loop)) + ((string-prefix? "/" line) ;absolute file name + (or (string=? line directory) + (loop))) + ((string-null? (string-trim-right line)) ;blank line + (loop)) + (else ;bogus line + (let ((loc (location (port-filename port) + (port-line port) + (port-column port)))) + (warning loc (G_ "ignoring invalid file name: '~a'~%") + line)))))))))) + (const #f))) + +(define (auto-detect-manifest opts) + "If OPTS do not specify packages or a manifest, load a \"guix.scm\" or +\"manifest.scm\" file from the current directory or one of its ancestors. +Return the modified OPTS." + (define (options-contain-payload? opts) + (match opts + (() #f) + ((('package . _) . _) #t) + ((('load . _) . _) #t) + ((('manifest . _) . _) #t) + ((('expression . _) . _) #t) + ((_ . rest) (options-contain-payload? rest)))) + + (define interactive? + (not (assoc-ref opts 'exec))) + + (define disallow-implicit-load? + (assoc-ref opts 'explicit-loading?)) + + (if (or (not interactive?) + disallow-implicit-load? + (options-contain-payload? opts)) + opts + (match (find-file-in-parent-directories '("manifest.scm" "guix.scm")) + (#f + (warning (G_ "no packages specified; creating an empty environment~%")) + opts) + (file + (if (authorized-shell-directory? (dirname file)) + (begin + (info (G_ "loading environment from '~a'...~%") file) + (match (basename file) + ("guix.scm" (alist-cons 'load `(package ,file) opts)) + ("manifest.scm" (alist-cons 'manifest file opts)))) + (begin + (warning (G_ "not loading '~a' because not authorized to do so~%") + file) + (display-hint (format #f (G_ "To allow automatic loading of +@file{~a} when running @command{guix shell}, you must explicitly authorize its +directory, like so: + +@example +echo ~a >> ~a +@end example\n") + file + (dirname file) + (authorized-directory-file))) + opts)))))) (define-command (guix-shell . args) diff --git a/tests/guix-shell.sh b/tests/guix-shell.sh index f08637f7ff..95725cba2d 100644 --- a/tests/guix-shell.sh +++ b/tests/guix-shell.sh @@ -22,15 +22,55 @@ guix shell --version +configdir="t-guix-shell-config-$$" tmpdir="t-guix-shell-$$" -trap 'rm -r "$tmpdir"' EXIT -mkdir "$tmpdir" +trap 'rm -r "$tmpdir" "$configdir"' EXIT +mkdir "$tmpdir" "$configdir" "$configdir/guix" + +XDG_CONFIG_HOME="$(realpath $configdir)" +export XDG_CONFIG_HOME guix shell --bootstrap --pure guile-bootstrap -- guile --version # '--ad-hoc' is a thing of the past. ! guix shell --ad-hoc guile-bootstrap +# Ignoring unauthorized files. +cat > "$tmpdir/guix.scm" < "$configdir/guix/shell-authorized-directories" + +# Ignoring 'manifest.scm' and 'guix.scm' in non-interactive use. +(cd "$tmpdir"; guix shell --bootstrap -- true) +mv "$tmpdir/guix.scm" "$tmpdir/manifest.scm" +(cd "$tmpdir"; guix shell --bootstrap -- true) +rm "$tmpdir/manifest.scm" + +# Honoring the local 'manifest.scm' file. +cat > "$tmpdir/manifest.scm" <manifest '("guile-bootstrap")) +EOF +cat > "$tmpdir/fake-shell.sh" < "$tmpdir/manifest.scm" +(cd "$tmpdir"; SHELL="$(realpath fake-shell.sh)" guix shell --bootstrap -q) +rm "$tmpdir/manifest.scm" + if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null then # Compute the build environment for the initial GNU Make. @@ -51,4 +91,10 @@ then # 'make-boot0' itself must not be listed. ! guix gc --references "$profile" | grep make-boot0 + + # Honoring the local 'guix.scm' file. + echo '(@ (guix tests) gnu-make-for-tests)' > "$tmpdir/guix.scm" + (cd "$tmpdir"; guix shell --bootstrap --search-paths --pure > "b") + cmp "$tmpdir/a" "$tmpdir/b" + rm "$tmpdir/guix.scm" fi From 10208952eaf0834b9cdf341bc75463ed033af315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 18:49:22 +0200 Subject: [PATCH 154/287] environment: Add tests for '--profile'. This is a followup to a643deac2de81755a1843a3b41dd53857678bebc. * tests/guix-environment-container.sh, tests/guix-environment.sh: Add tests for '--profile'. --- tests/guix-environment-container.sh | 8 ++++++++ tests/guix-environment.sh | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh index f2d15c8d0c..2e238c501d 100644 --- a/tests/guix-environment-container.sh +++ b/tests/guix-environment-container.sh @@ -44,6 +44,14 @@ else test $? = 42 fi +# Try '--root' and '--profile'. +root="$tmpdir/root" +guix environment -C --ad-hoc --bootstrap guile-bootstrap -r "$root" -- guile --version +guix environment -C -p "$root" --bootstrap -- guile --version +path1=$(guix environment -C -p "$root" --bootstrap -- guile -c '(display (getenv "PATH"))') +path2=$(guix environment -C --ad-hoc --bootstrap guile-bootstrap -- guile -c '(display (getenv "PATH"))') +test "$path1" = "$path2" + # Make sure "localhost" resolves. guix environment --container --ad-hoc --bootstrap guile-bootstrap \ -- guile -c '(exit (pair? (getaddrinfo "localhost" "80")))' diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index afadcbe195..f4fc2e39ed 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -119,6 +119,13 @@ test `readlink "$gcroot"` = "$expected" guix environment --bootstrap -r "$gcroot" --ad-hoc guile-bootstrap \ -- guile -c 1 test `readlink "$gcroot"` = "$expected" + +# Make sure '-p' works as expected. +test $(guix environment -p "$gcroot" -- "$SHELL" -c 'echo $GUIX_ENVIRONMENT') = "$expected" +paths1="$(guix environment -p "$gcroot" --search-paths)" +paths2="$(guix environment --bootstrap --ad-hoc guile-bootstrap --search-paths)" +test "$paths1" = "$paths2" + rm "$gcroot" # Try '-r' with a relative file name. From 648a6eb03fddb6c67f0ec685ac74d2c7a82179cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 18:59:54 +0200 Subject: [PATCH 155/287] environment: Skip derivation computation when '--profile' is used. * guix/scripts/environment.scm (guix-environment*): Bypass calls to 'package-derivation' and to 'manifest->derivation' when PROFILE is true. --- guix/scripts/environment.scm | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 77956fc018..32f376fdd2 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -729,18 +729,21 @@ (define manifest ;; Use the bootstrap Guile when requested. (parameterize ((%graft? (assoc-ref opts 'graft?)) (%guile-for-build - (package-derivation - store - (if bootstrap? - %bootstrap-guile - (default-guile))))) + (and (or container? (not profile)) + (package-derivation + store + (if bootstrap? + %bootstrap-guile + (default-guile)))))) (run-with-store store ;; Containers need a Bourne shell at /bin/sh. (mlet* %store-monad ((bash (environment-bash container? bootstrap? system)) - (prof-drv (manifest->derivation - manifest system bootstrap?)) + (prof-drv (if profile + (return #f) + (manifest->derivation + manifest system bootstrap?))) (profile -> (if profile (readlink* profile) (derivation->output-path prof-drv))) @@ -750,9 +753,9 @@ (define manifest ;; --search-paths. Additionally, we might need to build bash for ;; a container. (mbegin %store-monad - (built-derivations (if (derivation? bash) - (list prof-drv bash) - (list prof-drv))) + (built-derivations (append + (if prof-drv (list prof-drv) '()) + (if (derivation? bash) (list bash) '()))) (mwhen gc-root (register-gc-root profile gc-root)) From 99499a2037b886925bc73dd81340bbf9c02c95c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 22:09:51 +0200 Subject: [PATCH 156/287] environment: Do not connect to the daemon when '--profile' is used. This further speeds up the 'guix environment -p PROFILE' case. * guix/scripts/environment.scm (guix-environment*)[store-needed?]: New variable. [with-store/maybe]: New macro. Use it instead of 'with-store', and remove 'with-build-handler' form. --- guix/scripts/environment.scm | 169 +++++++++++++++++++---------------- 1 file changed, 93 insertions(+), 76 deletions(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 32f376fdd2..e23d52df39 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -691,6 +691,26 @@ (define (guix-environment* opts) (mappings (pick-all opts 'file-system-mapping)) (white-list (pick-all opts 'inherit-regexp))) + (define store-needed? + ;; Whether connecting to the daemon is needed. + (or container? (not profile))) + + (define-syntax-rule (with-store/maybe store exp ...) + ;; Evaluate EXP... with STORE bound to a connection, unless + ;; STORE-NEEDED? is false, in which case STORE is bound to #f. + (let ((proc (lambda (store) exp ...))) + (if store-needed? + (with-store s + (set-build-options-from-command-line s opts) + (with-build-handler (build-notifier #:use-substitutes? + (assoc-ref opts 'substitutes?) + #:verbosity + (assoc-ref opts 'verbosity) + #:dry-run? + (assoc-ref opts 'dry-run?)) + (proc s))) + (proc #f)))) + (when container? (assert-container-features)) (when (and (not container?) link-prof?) @@ -701,88 +721,85 @@ (define (guix-environment* opts) (leave (G_ "--no-cwd cannot be used without --container~%"))) - (with-store store - (with-build-handler (build-notifier #:use-substitutes? - (assoc-ref opts 'substitutes?) - #:verbosity - (assoc-ref opts 'verbosity) - #:dry-run? - (assoc-ref opts 'dry-run?)) - (with-status-verbosity (assoc-ref opts 'verbosity) - (define manifest-from-opts - (options/resolve-packages store opts)) + (with-store/maybe store + (with-status-verbosity (assoc-ref opts 'verbosity) + (define manifest-from-opts + (options/resolve-packages store opts)) - (define manifest - (if profile - (profile-manifest profile) - manifest-from-opts)) + (define manifest + (if profile + (profile-manifest profile) + manifest-from-opts)) - (when (and profile - (> (length (manifest-entries manifest-from-opts)) 0)) - (leave (G_ "'--profile' cannot be used with package options~%"))) + (when (and profile + (> (length (manifest-entries manifest-from-opts)) 0)) + (leave (G_ "'--profile' cannot be used with package options~%"))) - (when (null? (manifest-entries manifest)) - (warning (G_ "no packages specified; creating an empty environment~%"))) + (when (null? (manifest-entries manifest)) + (warning (G_ "no packages specified; creating an empty environment~%"))) - (set-build-options-from-command-line store opts) + ;; Use the bootstrap Guile when requested. + (parameterize ((%graft? (assoc-ref opts 'graft?)) + (%guile-for-build + (and store-needed? + (package-derivation + store + (if bootstrap? + %bootstrap-guile + (default-guile)))))) + (run-with-store store + ;; Containers need a Bourne shell at /bin/sh. + (mlet* %store-monad ((bash (environment-bash container? + bootstrap? + system)) + (prof-drv (if profile + (return #f) + (manifest->derivation + manifest system bootstrap?))) + (profile -> (if profile + (readlink* profile) + (derivation->output-path prof-drv))) + (gc-root -> (assoc-ref opts 'gc-root))) - ;; Use the bootstrap Guile when requested. - (parameterize ((%graft? (assoc-ref opts 'graft?)) - (%guile-for-build - (and (or container? (not profile)) - (package-derivation - store - (if bootstrap? - %bootstrap-guile - (default-guile)))))) - (run-with-store store - ;; Containers need a Bourne shell at /bin/sh. - (mlet* %store-monad ((bash (environment-bash container? - bootstrap? - system)) - (prof-drv (if profile - (return #f) - (manifest->derivation - manifest system bootstrap?))) - (profile -> (if profile - (readlink* profile) - (derivation->output-path prof-drv))) - (gc-root -> (assoc-ref opts 'gc-root))) - - ;; First build the inputs. This is necessary even for - ;; --search-paths. Additionally, we might need to build bash for - ;; a container. - (mbegin %store-monad + ;; First build the inputs. This is necessary even for + ;; --search-paths. Additionally, we might need to build bash for + ;; a container. + (mbegin %store-monad + (mwhen store-needed? (built-derivations (append (if prof-drv (list prof-drv) '()) - (if (derivation? bash) (list bash) '()))) - (mwhen gc-root - (register-gc-root profile gc-root)) + (if (derivation? bash) (list bash) '())))) + (mwhen gc-root + (register-gc-root profile gc-root)) - (cond - ((assoc-ref opts 'search-paths) - (show-search-paths profile manifest #:pure? pure?) - (return #t)) - (container? - (let ((bash-binary - (if bootstrap? - (derivation->output-path bash) - (string-append (derivation->output-path bash) - "/bin/sh")))) - (launch-environment/container #:command command - #:bash bash-binary - #:user user - #:user-mappings mappings - #:profile profile - #:manifest manifest - #:white-list white-list - #:link-profile? link-prof? - #:network? network? - #:map-cwd? (not no-cwd?)))) + (cond + ((assoc-ref opts 'search-paths) + (show-search-paths profile manifest #:pure? pure?) + (return #t)) + (container? + (let ((bash-binary + (if bootstrap? + (derivation->output-path bash) + (string-append (derivation->output-path bash) + "/bin/sh")))) + (launch-environment/container #:command command + #:bash bash-binary + #:user user + #:user-mappings mappings + #:profile profile + #:manifest manifest + #:white-list white-list + #:link-profile? link-prof? + #:network? network? + #:map-cwd? (not no-cwd?)))) - (else - (return - (exit/status - (launch-environment/fork command profile manifest - #:white-list white-list - #:pure? pure?))))))))))))))) + (else + (return + (exit/status + (launch-environment/fork command profile manifest + #:white-list white-list + #:pure? pure?)))))))))))))) + +;;; Local Variables: +;;; (put 'with-store/maybe 'scheme-indent-function 1) +;;; End: From 3c96158438e3a813fb98f0eba78ee5c3ae93f065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 22:22:18 +0200 Subject: [PATCH 157/287] environment: Autoload some modules. This further speeds up the 'guix environment -p PROFILE' case. * guix/scripts/environment.scm: Autoload a bunch of modules. --- guix/scripts/environment.scm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index e23d52df39..05a43659da 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -34,15 +34,18 @@ (define-module (guix scripts environment) #:use-module (guix scripts) #:use-module (guix scripts build) #:use-module (guix transformations) - #:use-module (gnu build linux-container) - #:use-module (gnu build accounts) - #:use-module ((guix build syscalls) #:select (set-network-interface-up)) - #:use-module (gnu system linux-container) + #:autoload (gnu build linux-container) (call-with-container %namespaces + user-namespace-supported? + unprivileged-user-namespace-supported? + setgroups-supported?) + #:autoload (gnu build accounts) (password-entry group-entry + password-entry-name password-entry-directory + write-passwd write-group) + #:autoload (guix build syscalls) (set-network-interface-up) #:use-module (gnu system file-systems) - #:use-module (gnu packages) - #:use-module (gnu packages bash) - #:use-module ((gnu packages bootstrap) - #:select (bootstrap-executable %bootstrap-guile)) + #:autoload (gnu packages) (specification->package+output) + #:autoload (gnu packages bash) (bash) + #:autoload (gnu packages bootstrap) (bootstrap-executable %bootstrap-guile) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) From 2cb0b3709ace41078872578f657ab0ee45d20ac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 23:12:09 +0200 Subject: [PATCH 158/287] cache: Gracefully handle non-existent cache. * guix/cache.scm (maybe-remove-expired-cache-entries): Ignore ENOENT when writing EXPIRY-FILE. --- guix/cache.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/guix/cache.scm b/guix/cache.scm index 0401a9d428..51009809bd 100644 --- a/guix/cache.scm +++ b/guix/cache.scm @@ -101,7 +101,13 @@ (define last-expiry-date #:now now #:entry-expiration entry-expiration #:delete-entry delete-entry) - (call-with-output-file expiry-file - (cute write (time-second now) <>)))) + (catch 'system-error + (lambda () + (call-with-output-file expiry-file + (cute write (time-second now) <>))) + (lambda args + ;; ENOENT means CACHE does not exist. + (unless (= ENOENT (system-error-errno args)) + (apply throw args)))))) ;;; cache.scm ends here From 9730692d9f06f8c412b45ef108006921298983c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 1 Oct 2021 22:47:33 +0200 Subject: [PATCH 159/287] shell: Maintain a profile cache. shell: Maintain a profile cache. With this change, running "guix shell" (no arguments) is equivalent to: guix environment -r ~/.cache/guix/profiles/some-root -l guix.scm This is the cache miss. On cache hit, it's equivalent to: guix environment -p ~/.cache/guix/profiles/some-root ... which can run in 0.1s. * guix/scripts/shell.scm (options-with-caching): New procedure. (parse-args): Use it. (%profile-cache-directory): New variable. (profile-cache-key, profile-cached-gc-root): New procedures. (show-help, %options): Add '--rebuild-cache'. (guix-shell)[cache-entries, entry-expiration]: New procedures. Add call to 'maybe-remove-expired-cache-entries'. * doc/guix.texi (Invoking guix shell): Document '--rebuild-cache'. --- doc/guix.texi | 11 ++++ guix/scripts/shell.scm | 127 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 130 insertions(+), 8 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 5809bbacd4..093e354509 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5769,6 +5769,17 @@ This is similar to the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files. +@item --rebuild-cache +When using @option{--manifest}, @option{--file}, or when invoked without +arguments, @command{guix shell} caches the environment so that +subsequent uses are instantaneous. The cache is invalidated anytime the +file is modified. + +The @option{--rebuild-cache} forces the cached environment to be +refreshed even if the file has not changed. This is useful if the +@command{guix.scm} or @command{manifest.scm} has external dependencies, +or if its behavior depends, say, on environment variables. + @item --pure Unset existing environment variables when building the new environment, except those specified with @option{--preserve} (see below). This has the effect of diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm index bee3192a9d..05b6f98656 100644 --- a/guix/scripts/shell.scm +++ b/guix/scripts/shell.scm @@ -31,7 +31,15 @@ (define-module (guix scripts shell) #:use-module (srfi srfi-71) #:use-module (ice-9 match) #:autoload (ice-9 rdelim) (read-line) - #:autoload (guix utils) (config-directory) + #:autoload (guix base32) (bytevector->base32-string) + #:autoload (rnrs bytevectors) (string->utf8) + #:autoload (guix utils) (config-directory cache-directory) + #:autoload (guix describe) (current-channels) + #:autoload (guix channels) (channel-commit) + #:autoload (gcrypt hash) (sha256) + #:use-module ((guix build utils) #:select (mkdir-p)) + #:use-module (guix cache) + #:use-module ((ice-9 ftw) #:select (scandir)) #:export (guix-shell)) (define (show-help) @@ -48,6 +56,8 @@ (define (show-help) FILE evaluates to")) (display (G_ " -q inhibit loading of 'guix.scm' and 'manifest.scm'")) + (display (G_ " + --rebuild-cache rebuild cached environment, if any")) (show-environment-options-help) (newline) @@ -109,7 +119,10 @@ (define %options result))) (option '(#\q) #f #f (lambda (opt name arg result) - (alist-cons 'explicit-loading? #t result)))) + (alist-cons 'explicit-loading? #t result))) + (option '("rebuild-cache") #f #f + (lambda (opt name arg result) + (alist-cons 'rebuild-cache? #t result)))) (filter-map (lambda (opt) (and (not (any (lambda (name) (member name to-remove)) @@ -132,11 +145,12 @@ (define (handle-argument arg result) (let ((args command (break (cut string=? "--" <>) args))) (let ((opts (parse-command-line args %options (list %default-options) #:argument-handler handle-argument))) - (auto-detect-manifest - (match command - (() opts) - (("--") opts) - (("--" command ...) (alist-cons 'exec command opts))))))) + (options-with-caching + (auto-detect-manifest + (match command + (() opts) + (("--") opts) + (("--" command ...) (alist-cons 'exec command opts)))))))) (define (find-file-in-parent-directories candidates) "Find one of CANDIDATES in the current directory or one of its ancestors." @@ -187,6 +201,53 @@ (define (authorized-shell-directory? directory) line)))))))))) (const #f))) +(define (options-with-caching opts) + "If OPTS contains exactly one 'load' or one 'manifest' key, automatically +add a 'profile' key (when a profile for that file is already in cache) or a +'gc-root' key (to add the profile to cache)." + (define (single-file-for-caching opts) + (let loop ((opts opts) + (file #f)) + (match opts + (() file) + ((('package . _) . _) #f) + ((('load . ('package candidate)) . rest) + (and (not file) (loop rest candidate))) + ((('manifest . candidate) . rest) + (and (not file) (loop rest candidate))) + ((('expression . _) . _) #f) + ((_ . rest) (loop rest file))))) + + ;; Check whether there's a single 'load' or 'manifest' option. When that is + ;; the case, arrange to automatically cache the resulting profile. + (match (single-file-for-caching opts) + (#f opts) + (file + (let* ((root (profile-cached-gc-root file)) + (stat (and root (false-if-exception (lstat root))))) + (if (and (not (assoc-ref opts 'rebuild-cache?)) + stat + (<= (stat:mtime ((@ (guile) stat) file)) + (stat:mtime stat))) + (let ((now (current-time))) + ;; Update the atime on ROOT to reflect usage. + (utime root + now (stat:mtime stat) 0 (stat:mtimensec stat) + AT_SYMLINK_NOFOLLOW) + (alist-cons 'profile root + (remove (match-lambda + (('load . _) #t) + (('manifest . _) #t) + (_ #f)) + opts))) ;load right away + (if (and root (not (assq-ref opts 'gc-root))) + (begin + (if stat + (delete-file root) + (mkdir-p (dirname root))) + (alist-cons 'gc-root root opts)) + opts)))))) + (define (auto-detect-manifest opts) "If OPTS do not specify packages or a manifest, load a \"guix.scm\" or \"manifest.scm\" file from the current directory or one of its ancestors. @@ -236,9 +297,59 @@ (define disallow-implicit-load? (authorized-directory-file))) opts)))))) + +;;; +;;; Profile cache. +;;; + +(define %profile-cache-directory + ;; Directory where profiles created by 'guix shell' alone (without extra + ;; options) are cached. + (make-parameter (string-append (cache-directory #:ensure? #f) + "/profiles"))) + +(define (profile-cache-key file) + "Return the cache key for the profile corresponding to FILE, a 'guix.scm' or +'manifest.scm' file, or #f if we lack channel information." + (match (current-channels) + (() #f) + (((= channel-commit commits) ...) + (let ((stat (stat file))) + (bytevector->base32-string + ;; Since FILE is not canonicalized, only include the device/inode + ;; numbers. XXX: In some rare cases involving Btrfs and NFS, this can + ;; be insufficient: . + (sha256 (string->utf8 + (string-append (string-join commits) ":" + (number->string (stat:dev stat)) ":" + (number->string (stat:ino stat)))))))))) + +(define (profile-cached-gc-root file) + "Return the cached GC root for FILE, a 'guix.scm' or 'manifest.scm' file, or +#f if we lack information to cache it." + (match (profile-cache-key file) + (#f #f) + (key (string-append (%profile-cache-directory) "/" key)))) + (define-command (guix-shell . args) (category development) (synopsis "spawn one-off software environments") - (guix-environment* (parse-args args))) + (define (cache-entries directory) + (filter-map (match-lambda + ((or "." "..") #f) + (file (string-append directory "/" file))) + (or (scandir directory) '()))) + + (define* (entry-expiration file) + ;; Return the time at which FILE, a cached profile, is considered expired. + (match (false-if-exception (lstat file)) + (#f 0) ;FILE may have been deleted in the meantime + (st (+ (stat:atime st) (* 60 60 24 7))))) + + (let ((result (guix-environment* (parse-args args)))) + (maybe-remove-expired-cache-entries (%profile-cache-directory) + cache-entries + #:entry-expiration entry-expiration) + result)) From 4aa41a37f0819c9e1750bca0af47e632c2443d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 25 Oct 2021 20:09:51 +0200 Subject: [PATCH 160/287] news: Add entry about "guix shell". * etc/news.scm: Add entry. --- etc/news.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/etc/news.scm b/etc/news.scm index 47b4437426..8900d5660e 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -23,7 +23,66 @@ (channel-news (version 0) -(entry (commit "a2324d8b56eabf8117bca220a507cc791edffd2e") + + (entry (commit "746584e0ca200e7bf51b139ceb36c19ea81d6ef1") + (title + (en "New @command{guix shell} command supersedes @command{guix +environment}") + (fr "Nouvelle commande @command{guix shell} en remplacement de +@command{guix environment}")) + (body + (en "A new @command{guix shell} command is now available. It is +similar to @command{guix environment}, but with a more convenient interface +(@command{guix environment} is deprecated but will remain available until May, +1st 2023). The main difference compared to @command{guix environment} is that +the \"ad hoc\" mode is the default. Thus, to create an interactive +environment containing Python, NumPy, and SciPy, you would run: + +@example +guix shell python python-numpy python-scipy +@end example + +To get a development environment for, say, Inkscape, pass the @option{-D} +flag: + +@example +guix shell -D inkscape +@end example + +Another difference is that running @command{guix shell} without arguments +loads @file{manifest.scm} or @file{guix.scm} for the current directory or an +ancestor, provided you allowed it. The command maintains a cache to speed up +access to such environments. + +Run @command{info \"(guix) Invoking guix shell\"} for more information.") + (fr "Une nouvelle commande, @command{guix shell}, est maintenant +disponible. Elle est similaire à @command{guix environment}, mais avec une +interface plus pratique (@command{guix environment} est désuet mais restera +disponible jusqu'au 1er mai 2023). La principale différence par rapport à +@command{guix environment} est que le mode par défaut est le mode \"ad hoc\". +Pour créer un environnement interactif contenant Python, NumPy et SciPy, il +faut donc lancer : + +@example +guix shell python python-numpy python-scipy +@end example + +Pour obtenir un environnement de développement pour Inkscape, par exemple, +passer l'option @option{-D} : + +@example +guix shell -D inkscape +@end example + +Une autre différence est qu'en lançant @command{guix shell} sans argument, le +fichier @file{manifest.scm} ou @file{guix.scm} du répertoire courant ou d'un +parent est automatiquement chargé, à condition de l'avoir autorisé. La +commande garde un cache pour accélérer l'accès à ces environnements. + +Lancer @command{info \"(guix.fr) Invoquer guix shell\"} pour plus +d'informations."))) + + (entry (commit "a2324d8b56eabf8117bca220a507cc791edffd2e") (title (en "Guix Home is a part of GNU Guix") (de "Guix Home ist jetzt Teil von GNU Guix") From 2be79191e0358130548f31c68d684e89a6e4b978 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Fri, 8 Oct 2021 14:07:58 -0400 Subject: [PATCH 161/287] gnu: libportal: Update to 0.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (libportal): Update to 0.4. Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 81 +++++++++++++++++------------------- 1 file changed, 39 insertions(+), 42 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index a002e3e807..25660b8f85 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2020 Raghav Gururajan ;;; Copyright © 2021 pineapples ;;; Copyright © 2021 Robby Zambito +;;; Copyright © 2021 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -2240,48 +2241,44 @@ (define-public libappindicator (license license:lgpl2.1+))) (define-public libportal - (let ((commit "bff3289") - (revision "1")) - (package - (name "libportal") - (version (git-version "0.3" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flatpak/libportal") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "104b91qircr1i9jkmm6f725awywky52aimrki303kiaadn2v8b5i")))) - (build-system meson-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'move-doc - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc")) - (html "/share/gtk-doc")) - (copy-recursively (string-append out html) - (string-append doc html)) - (delete-file-recursively (string-append out html)) - #t)))))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("gtk-doc" ,gtk-doc/stable) - ("docbook-xsl" ,docbook-xsl) - ("docbook-xml" ,docbook-xml) - ("libxml2" ,libxml2) - ("glib:bin" ,glib "bin"))) - (propagated-inputs - `(("glib" ,glib))) - (outputs '("out" "doc")) - (home-page "https://github.com/flatpak/libportal") - (synopsis "Flatpak portal library") - (description - "libportal provides GIO-style async APIs for most Flatpak portals.") - (license license:lgpl2.1+)))) + (package + (name "libportal") + (version "0.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/flatpak/libportal/releases/download/" + version "/libportal-" version ".tar.xz")) + (sha256 + (base32 + "0a7gmhyf0b58xy335jyf524g1fyc2id4r88anhvg47430w4zbm9w")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (html "/share/gtk-doc")) + (copy-recursively (string-append out html) + (string-append doc html)) + (delete-file-recursively (string-append out html)) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gtk-doc" ,gtk-doc/stable) + ("docbook-xsl" ,docbook-xsl) + ("docbook-xml" ,docbook-xml) + ("libxml2" ,libxml2) + ("glib:bin" ,glib "bin"))) + (propagated-inputs + `(("glib" ,glib))) + (outputs '("out" "doc")) + (home-page "https://github.com/flatpak/libportal") + (synopsis "Flatpak portal library") + (description + "libportal provides GIO-style async APIs for most Flatpak portals.") + (license license:lgpl2.1+))) (define-public xdg-desktop-portal (package From 419a778e4679b63b456ec6fad5ca88f120ed9d60 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Fri, 8 Oct 2021 14:12:00 -0400 Subject: [PATCH 162/287] gnu: xdg-desktop-portal: Update to 1.10.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (xdg-desktop-portal): Update to 1.10.1. Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 25660b8f85..966de38d6e 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2283,16 +2283,15 @@ (define-public libportal (define-public xdg-desktop-portal (package (name "xdg-desktop-portal") - (version "1.8.1") + (version "1.10.1") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flatpak/xdg-desktop-portal") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append + "https://github.com/flatpak/xdg-desktop-portal/releases/download/" + version "/xdg-desktop-portal-" version ".tar.xz")) (sha256 (base32 - "0pq0kmvzk56my396vh97pzw4wizwmlmzvv2kr2xv047x3044mr5n")))) + "199lqr2plsy9qqnxx5a381ml8ygcbz4nkjla5pvljjcrwzlqsygd")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From 7c5a4025f5191f98b3b52c59f563eb2b0415c356 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Fri, 8 Oct 2021 14:12:29 -0400 Subject: [PATCH 163/287] gnu: xdg-desktop-portal-gtk: Update to 1.10.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (xdg-desktop-portal-gtk): Update to 1.10.0. [arguments]: Adjust configure-flags for Gnome backends in new version (defaults to disabled in this version) Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 966de38d6e..e6c7266b1e 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2342,16 +2342,15 @@ (define-public xdg-desktop-portal (define-public xdg-desktop-portal-gtk (package (name "xdg-desktop-portal-gtk") - (version "1.7.1") + (version "1.10.0") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flatpak/xdg-desktop-portal-gtk") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append + "https://github.com/flatpak/xdg-desktop-portal-gtk/releases/download/" + version "/xdg-desktop-portal-gtk-" version ".tar.xz")) (sha256 (base32 - "183iha9dxmvprn99ymgz17jx1lyn1fj5jyj6ghxl716zn9mxmird")))) + "0nlbnd6qvs92fanrmmn123vy0y2ml0v3ndxyk5x0cpfbnmxpa2f8")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -2362,7 +2361,16 @@ (define-public xdg-desktop-portal-gtk (for-each (lambda (po) (chmod po #o666)) (find-files "po" "\\.po$")) - #t))))) + #t))) + ;; Enable Gnome portal backends + #:configure-flags + (list + "--enable-appchooser" + "--enable-wallpaper" + "--enable-screenshot" + "--enable-screencast" + "--enable-background" + "--enable-settings"))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) From 811b62d8c8fb865d4fc1db2249e6308228bb300e Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Fri, 8 Oct 2021 14:15:13 -0400 Subject: [PATCH 164/287] gnu: Add p11-kit 0.24.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/tls.scm (p11-kit-next): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/tls.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 74a88e1b3d..2534d289e3 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2021 Solene Rapenne ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Matthew James Kraai +;;; Copyright © 2021 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -165,6 +166,18 @@ (define-public p11-kit living in the same process.") (license license:bsd-3))) +(define-public p11-kit-next + (package + (inherit p11-kit) + (version "0.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/p11-glue/p11-kit/releases/" + "download/" version "/p11-kit-" version ".tar.xz")) + (sha256 + (base32 "11f6saclxsclc1f3lbavzw8kikws4cr3mfd1avly8dgnhh2i9rl1")))))) + (define-public gnutls (package (name "gnutls") From b4d29851e412c6f4fea5b2d98160258b9768dee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 25 Oct 2021 20:57:15 +0200 Subject: [PATCH 165/287] gnu: p11-kit@0.24.0: Use certificates from /etc/ssl/certs. Fixes . Flatpak has a soft dependency on p11-kit, which was configured without knowledge of the system-wide CA certificate store. This caused some flatpak apps to fail with ERR_CERT_AUTHORITY_INVALID errors. Reported by Andrew Whatson . * gnu/packages/tls.scm (p11-kit-next)[arguments]: New field. Co-authored-by: Andrew Whatson Co-authored-by: John Kehayias --- gnu/packages/tls.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 2534d289e3..700897a49b 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -176,7 +176,13 @@ (define-public p11-kit-next (uri (string-append "https://github.com/p11-glue/p11-kit/releases/" "download/" version "/p11-kit-" version ".tar.xz")) (sha256 - (base32 "11f6saclxsclc1f3lbavzw8kikws4cr3mfd1avly8dgnhh2i9rl1")))))) + (base32 "11f6saclxsclc1f3lbavzw8kikws4cr3mfd1avly8dgnhh2i9rl1")))) + (arguments + ;; Use the default certificates so that users such as flatpak find them. + ;; See . + (substitute-keyword-arguments (package-arguments p11-kit) + ((#:configure-flags flags ''()) + ''("--with-trust-paths=/etc/ssl/certs/ca-certificates.crt")))))) (define-public gnutls (package From 73a795e77cc422e569c7e96057be43cdf1b909bf Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Fri, 8 Oct 2021 14:17:38 -0400 Subject: [PATCH 166/287] gnu: flatpak: Update to 1.12.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/package-management.scm (flatpak): Update to 1.12.1. Signed-off-by: Ludovic Courtès --- gnu/packages/package-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index b33e08baf2..6530978c34 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1523,14 +1523,14 @@ (define-public libostree (define-public flatpak (package (name "flatpak") - (version "1.10.2") + (version "1.12.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/flatpak/flatpak/releases/download/" version "/flatpak-" version ".tar.xz")) (sha256 - (base32 "1r6xw7r3ir2vaa30n3mily6m7d51cf4qv22fkqlzzy3js0wjf5fv")))) + (base32 "0my82ijg1ipa4lwrvh88jlrxbabfqfz2ssfb8cn6k0pfgz53p293")))) ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to ;; find the TLS backend in glib-networking. From d407c107f363c36feecbf1d55735479add59d799 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Fri, 8 Oct 2021 14:54:46 -0400 Subject: [PATCH 167/287] gnu: flatpak: Fix certificate error from p11-kit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/package-management.scm (flatpak)[inputs]: Add p11-kit-next. [arguments]: Add new 'p11-kit-fix phase to patch source to use p11-kit-next input instead of an implicit p11-kit from dependencies. Signed-off-by: Ludovic Courtès --- gnu/packages/package-management.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 6530978c34..e8f8ee1ce7 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1565,6 +1565,16 @@ (define-public flatpak (("/bin/kill") (which "kill")) (("/usr/bin/python3") (which "python3"))) #t)) + (add-after 'unpack 'p11-kit-fix + (lambda* (#:key inputs #:allow-other-keys) + (let ((p11-path (string-append (assoc-ref inputs "p11-kit-next") + "/bin/p11-kit"))) + (substitute* "session-helper/flatpak-session-helper.c" + (("\"p11-kit\",") + (string-append "\"" p11-path "\",")) + (("if \\(g_find_program_in_path \\(\"p11-kit\"\\)\\)") + (string-append "if (g_find_program_in_path (\"" + p11-path "\"))")))))) ;; Many tests fail for unknown reasons, so we just run a few basic ;; tests. (replace 'check @@ -1603,6 +1613,7 @@ (define-public flatpak ("libsoup" ,libsoup) ("libxau" ,libxau) ("libxml2" ,libxml2) + ("p11-kit-next" ,p11-kit-next) ("util-linux" ,util-linux) ("xdg-dbus-proxy" ,xdg-dbus-proxy))) (home-page "https://flatpak.org") From 9c4244cc73db4d5c3adf6f8342f6b08b39dd3628 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Fri, 8 Oct 2021 15:07:57 -0400 Subject: [PATCH 168/287] gnu: flatpak: Add patch to fix paths. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/package-management.scm (flatpak)[source]: Add patch. * gnu/packages/patches/flatpak-fix-path.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/package-management.scm | 3 ++- gnu/packages/patches/flatpak-fix-path.patch | 29 +++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/flatpak-fix-path.patch diff --git a/gnu/local.mk b/gnu/local.mk index cfd608fa01..28e8c1966a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1063,6 +1063,7 @@ dist_patch_DATA = \ %D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-test-rwlock-threads.patch \ %D%/packages/patches/flann-cmake-3.11.patch \ + %D%/packages/patches/flatpak-fix-path.patch \ %D%/packages/patches/foobillard++-pkg-config.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index e8f8ee1ce7..7d04fd7d3e 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1530,7 +1530,8 @@ (define-public flatpak (uri (string-append "https://github.com/flatpak/flatpak/releases/download/" version "/flatpak-" version ".tar.xz")) (sha256 - (base32 "0my82ijg1ipa4lwrvh88jlrxbabfqfz2ssfb8cn6k0pfgz53p293")))) + (base32 "0my82ijg1ipa4lwrvh88jlrxbabfqfz2ssfb8cn6k0pfgz53p293")) + (patches (search-patches "flatpak-fix-path.patch")))) ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to ;; find the TLS backend in glib-networking. diff --git a/gnu/packages/patches/flatpak-fix-path.patch b/gnu/packages/patches/flatpak-fix-path.patch new file mode 100644 index 0000000000..e87a08a7fe --- /dev/null +++ b/gnu/packages/patches/flatpak-fix-path.patch @@ -0,0 +1,29 @@ +Flatpak writes files for installed applications with the full Flatpak (store) path. This patch makes it write just "flatpak", using Flatpak from PATH. This is similar to the NixOS [0] patch, updated for Flatpak 1.12.1 + +[0] https://github.com/NixOS/nixpkgs/blob/bf4167861d0f864b0fc457778d54feb4a2675ea2/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch + +diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c +index 80ff5e5f..0c111c31 100644 +--- a/common/flatpak-dir.c ++++ b/common/flatpak-dir.c +@@ -7134,8 +7134,7 @@ export_desktop_file (const char *app, + flatpak = FLATPAK_BINDIR "/flatpak"; + + g_string_append_printf (new_exec, +- "%s run --branch=%s --arch=%s", +- flatpak, ++ "flatpak run --branch=%s --arch=%s", + escaped_branch, + escaped_arch); + +@@ -8467,8 +8466,8 @@ flatpak_dir_deploy (FlatpakDir *self, + if ((flatpak = g_getenv ("FLATPAK_BINARY")) == NULL) + flatpak = FLATPAK_BINDIR "/flatpak"; + +- bin_data = g_strdup_printf ("#!/bin/sh\nexec %s run --branch=%s --arch=%s %s \"$@\"\n", +- flatpak, escaped_branch, escaped_arch, escaped_app); ++ bin_data = g_strdup_printf ("#!/bin/sh\nexec flatpak run --branch=%s --arch=%s %s \"$@\"\n", ++ escaped_branch, escaped_arch, escaped_app); + if (!g_file_replace_contents (wrapper, bin_data, strlen (bin_data), NULL, FALSE, + G_FILE_CREATE_REPLACE_DESTINATION, NULL, cancellable, error)) + return FALSE; From f52694e1d52754c53df3316c1ae9a793a33cfa55 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Fri, 8 Oct 2021 15:18:36 -0400 Subject: [PATCH 169/287] gnu: xdg-desktop-portal-gtk: Propagate xdg-desktop-portal. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (xdg-desktop-portal-gtk)[inputs]: Fix the runtime need for xdg-desktop-portal and XDG_DESKTOP_PORTAL_DIR being written twice. Move xdg-desktop-portal to ... [propagated-inputs]: ... here. Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index e6c7266b1e..e2a4a264e9 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2376,7 +2376,6 @@ (define-public xdg-desktop-portal-gtk ("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) - ("xdg-desktop-portal" ,xdg-desktop-portal) ("glib:bin" ,glib "bin") ("which" ,which) ("gettext" ,gettext-minimal))) @@ -2386,10 +2385,8 @@ (define-public xdg-desktop-portal-gtk ("fontconfig" ,fontconfig) ("gnome-desktop" ,gnome-desktop) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) - (native-search-paths - (list (search-path-specification - (variable "XDG_DESKTOP_PORTAL_DIR") - (files '("share/xdg-desktop-portal/portals"))))) + (propagated-inputs + `(("xdg-desktop-portal" ,xdg-desktop-portal))) (home-page "https://github.com/flatpak/xdg-desktop-portal-gtk") (synopsis "GTK implementation of xdg-desktop-portal") (description From b0735c79b0d1d34117ec36d5dc5f14a3f9392bc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 25 Oct 2021 21:03:15 +0200 Subject: [PATCH 170/287] gnu: p11-kit: Update home page. * gnu/packages/tls.scm (p11-kit)[home-page]: Update. --- gnu/packages/tls.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 700897a49b..f3fce5ffe1 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -156,7 +156,7 @@ (define-public p11-kit (substitute* "Makefile" (("test-runtime\\$\\(EXEEXT\\)") "")) #t))))) - (home-page "https://p11-glue.freedesktop.org/p11-kit.html") + (home-page "https://p11-glue.github.io/p11-glue/p11-kit.html") (synopsis "PKCS#11 library") (description "p11-kit provides a way to load and enumerate PKCS#11 modules. It From 547009ff0acdb0a16ed24bbedfa35d6c107d4721 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 23 Oct 2021 16:47:27 -0400 Subject: [PATCH 171/287] gnu: OpenEXR: Move the snippet into a build phase. This snippet was just working around a quirk of the Guix build environment. * gnu/packages/graphics.scm (openexr)[origin]: Remove snippet. [arguments]: Add a 'patch-test-directory' phase. --- gnu/packages/graphics.scm | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 16d1ad2954..6fc324012d 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -1117,17 +1117,19 @@ (define-public openexr (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0vyclrrikphwkkpyjg8kzh3qzflzk3d6xsidgqllgfdgllr9wmgv")) - (modules '((guix build utils))) - (snippet - '(begin - (with-directory-excursion "src/test" - (substitute* (append (find-files "." "tmpDir\\.h") - '("OpenEXRCoreTest/main.cpp")) - (("\"/var/tmp/\"") - "\"/tmp/\""))) - #t)))) + (base32 "0vyclrrikphwkkpyjg8kzh3qzflzk3d6xsidgqllgfdgllr9wmgv")))) (build-system cmake-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; /var/tmp does not exist in the Guix build environment + (add-after 'unpack 'patch-test-directory + (lambda _ + (substitute* '("src/test/OpenEXRUtilTest/tmpDir.h" + "src/test/OpenEXRFuzzTest/tmpDir.h" + "src/test/OpenEXRTest/tmpDir.h" + "src/test/OpenEXRCoreTest/main.cpp") + (("/var/tmp") "/tmp"))))))) (inputs `(("imath" ,imath) ("zlib" ,zlib))) From de3bf035b4e42474355af3a4b110b54835098ac4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 23 Oct 2021 16:48:34 -0400 Subject: [PATCH 172/287] gnu: OpenEXR 2: Move the snippet into a build phase. This snippet was just working around a quirk of the Guix build environment. * gnu/packages/graphics.scm (openexr-2)[origin]: Remove snippet. [arguments]: Add a 'patch-test-directory' phase. --- gnu/packages/graphics.scm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 6fc324012d..222f500445 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -1148,14 +1148,7 @@ (define-public openexr-2 (version (package-version ilmbase)) (source (origin (inherit (package-source ilmbase)) - (file-name (git-file-name "openexr" version)) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* (find-files "OpenEXR" "tmpDir\\.h") - (("\"/var/tmp/\"") - "\"/tmp/\"")) - #t)))) + (file-name (git-file-name "openexr" version)))) (build-system cmake-build-system) (arguments `(#:phases @@ -1164,6 +1157,12 @@ (define-public openexr-2 (lambda _ (chdir "OpenEXR") #t)) + (add-after 'change-directory 'patch-test-directory + (lambda _ + (substitute* '("IlmImfFuzzTest/tmpDir.h" + "IlmImfTest/tmpDir.h" + "IlmImfUtilTest/tmpDir.h") + (("/var/tmp") "/tmp")))) (add-after 'change-directory 'increase-test-timeout (lambda _ ;; On armhf-linux, we need to override the CTest default From b8fc7c23596b542b81306829b31cf255d908fa65 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 26 Oct 2021 01:54:14 +0200 Subject: [PATCH 173/287] gnu: fcft: Update to 2.4.6. * gnu/packages/fontutils.scm (fcft): Update to 2.4.6. --- gnu/packages/fontutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 733a4072c2..2b98c6427b 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -800,7 +800,7 @@ (define-public nototools (define-public fcft (package (name "fcft") - (version "2.4.5") + (version "2.4.6") (home-page "https://codeberg.org/dnkl/fcft") (source (origin (method git-fetch) @@ -808,7 +808,7 @@ (define-public fcft (file-name (git-file-name name version)) (sha256 (base32 - "0z4bqap88pydkgcxrsvm3fmcyhi9x7z8knliarvdcvqlk7qnyzfh")))) + "0jh05wzrif7z1xf9jzs8bgf49lpj5zs55agj414bmmwdddk7my7j")))) (build-system meson-build-system) (arguments `(#:meson ,meson-0.55)) From e598e46913c661bc92df813d537eeb6be5a86471 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 26 Oct 2021 02:01:41 +0200 Subject: [PATCH 174/287] gnu: darkhttpd: Update to 1.13. * gnu/packages/web.scm (darkhttpd): Update to 1.13. [source]: Use GIT-FETCH and GIT-FILE-NAME. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/web.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index dc5a9d61a8..2bd3c4ea13 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5791,28 +5791,28 @@ (define-public surfraw (define-public darkhttpd (package (name "darkhttpd") - (version "1.12") + (version "1.13") (source (origin - (method url-fetch) - (uri (string-append "https://unix4lyfe.org/darkhttpd/darkhttpd-" - version ".tar.bz2")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/emikulic/darkhttpd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155")))) + (base32 "0w11xq160q9yyffv4mw9ncp1n0dl50d9plmwxb0yijaaxls9i4sk")))) (build-system gnu-build-system) (arguments `(#:make-flags '("CC=gcc") #:tests? #f ; No test suite #:phases (modify-phases %standard-phases - (delete 'configure) + (delete 'configure) ; no configure script (replace 'install (lambda* (#:key outputs #:allow-other-keys) (install-file "darkhttpd" (string-append (assoc-ref outputs "out") - "/bin")) - #t))))) + "/bin"))))))) (synopsis "Simple static web server") (description "darkhttpd is a simple static web server. It is standalone and does not need inetd or ucspi-tcp. It does not need any From d579df680e38bde3ab94373ae1b293caa28015b9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 26 Oct 2021 02:01:53 +0200 Subject: [PATCH 175/287] gnu: darkhttpd: Cross-compile. * gnu/packages/web.scm (darkhttpd)[arguments]: Use CC-FOR-TARGET. --- gnu/packages/web.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 2bd3c4ea13..d7df3079b3 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5803,7 +5803,8 @@ (define-public darkhttpd (base32 "0w11xq160q9yyffv4mw9ncp1n0dl50d9plmwxb0yijaaxls9i4sk")))) (build-system gnu-build-system) (arguments - `(#:make-flags '("CC=gcc") + `(#:make-flags + (list (string-append "CC=" ,(cc-for-target))) #:tests? #f ; No test suite #:phases (modify-phases %standard-phases From b7a36599b4533db35e27e0fc5506589fb7c8221f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Oct 2021 11:06:23 +0300 Subject: [PATCH 176/287] gnu: python-aiohttp: Remove cythonized files. * gnu/packages/python-web.scm (python-aiohttp)[source]: Add snippet to remove generated cythonized files. [arguments]: Add phase to generate cythonized files. [native-inputs]: Add python-cython. --- gnu/packages/python-web.scm | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 2b5379950d..a38ed5c268 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -171,7 +171,16 @@ (define-public python-aiohttp (method url-fetch) (uri (pypi-uri "aiohttp" version)) (sha256 - (base32 "1pn79h8fng4xi5gl1f6saw31nxgmgyxl41yf3vba1l21673yr12x")))) + (base32 "1pn79h8fng4xi5gl1f6saw31nxgmgyxl41yf3vba1l21673yr12x")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file + '("aiohttp/_frozenlist.c" + "aiohttp/_helpers.c" + "aiohttp/_http_parser.c" + "aiohttp/_http_writer.c" + "aiohttp/_websocket.c")))))) (build-system python-build-system) (arguments '(#:phases @@ -195,6 +204,15 @@ (define-public python-aiohttp ;; Don't test the aiohttp pytest plugin to avoid a dependency loop. (delete-file "tests/test_pytest_plugin.py") #t)) + (add-before 'build 'cythonize + (lambda _ + ;; Adapted from the Makefile. + (with-directory-excursion "aiohttp" + (for-each + (lambda (file) + (invoke "cython" "-3" + file "-I" "aiohttp")) + (find-files "." "_.*\\.pyx$"))))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (setenv "PYTHONPATH" @@ -216,7 +234,8 @@ (define-public python-aiohttp ("python-typing-extensions" ,python-typing-extensions) ("python-yarl" ,python-yarl))) (native-inputs - `(("python-pytest" ,python-pytest) + `(("python-cython" ,python-cython) + ("python-pytest" ,python-pytest) ("python-pytest-mock" ,python-pytest-mock) ("python-re-assert" ,python-re-assert) ("gunicorn" ,gunicorn-bootstrap) From b7b0ac85443c719a616edee6963578e58396f339 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 26 Oct 2021 10:46:12 +0200 Subject: [PATCH 177/287] packages: Optimize 'package-transitive-supported-systems'. With this change, the wall-clock time of: ./pre-inst-env guile -c '(use-modules (gnu) (guix)(ice-9 time)) (time (pk (fold-packages (lambda (p r)(supported-package? p)(+ 1 r)) 0)))' goes from 3.2s to 2.0s, a 37% improvement. * guix/packages.scm (package-transitive-supported-systems): Change 'supported-systems' to 'supported-systems-procedure', returning an 'mlambdaq' instead of the original 'mlambda'. Add 'procs'. Adjust body accordingly. --- guix/packages.scm | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index b99689b9a4..780c6ddb65 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -1018,23 +1018,36 @@ (define label (define package-transitive-supported-systems (let () - (define supported-systems - (mlambda (package system) - (parameterize ((%current-system system)) - (fold (lambda (input systems) - (match input - ((label (? package? package) . _) - (lset-intersection string=? systems - (supported-systems package system))) - (_ - systems))) - (package-supported-systems package) - (bag-direct-inputs (package->bag package)))))) + (define (supported-systems-procedure system) + (define supported-systems + (mlambdaq (package) + (parameterize ((%current-system system)) + (fold (lambda (input systems) + (match input + ((label (? package? package) . _) + (lset-intersection string=? systems + (supported-systems package))) + (_ + systems))) + (package-supported-systems package) + (bag-direct-inputs (package->bag package)))))) + + supported-systems) + + (define procs + ;; Map system strings to one-argument procedures. This allows these + ;; procedures to have fast 'eq?' memoization on their argument. + (make-hash-table)) (lambda* (package #:optional (system (%current-system))) "Return the intersection of the systems supported by PACKAGE and those supported by its dependencies." - (supported-systems package system)))) + (match (hash-ref procs system) + (#f + (hash-set! procs system (supported-systems-procedure system)) + (package-transitive-supported-systems package system)) + (proc + (proc package)))))) (define* (supported-package? package #:optional (system (%current-system))) "Return true if PACKAGE is supported on SYSTEM--i.e., if PACKAGE and all its From f87371bf3e952a211782311dad2971c8820a5150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 19 Oct 2021 10:56:38 +0200 Subject: [PATCH 178/287] syscalls: Add 'openpty' and 'login-tty'. * guix/build/syscalls.scm (openpty, login-pty): New procedures. * tests/syscalls.scm ("openpty", "openpty + login-tty"): New tests. --- guix/build/syscalls.scm | 39 +++++++++++++++++++++++++++++++++++++++ tests/syscalls.scm | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 99a3b45004..7ea6b56e54 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -180,6 +180,8 @@ (define-module (guix build syscalls) terminal-window-size terminal-columns terminal-rows + openpty + login-tty utmpx? utmpx-login-type @@ -2286,6 +2288,43 @@ (define* (terminal-rows #:optional (port (current-output-port))) always a positive integer." (terminal-dimension window-size-rows port (const 25))) +(define openpty + (let* ((ptr (dynamic-func "openpty" (dynamic-link "libutil"))) + (proc (pointer->procedure int ptr '(* * * * *) + #:return-errno? #t))) + (lambda () + "Return two file descriptors: one for the pseudo-terminal control side, +and one for the controlled side." + (let ((head (make-bytevector (sizeof int))) + (inferior (make-bytevector (sizeof int)))) + (let-values (((ret err) + (proc (bytevector->pointer head) + (bytevector->pointer inferior) + %null-pointer %null-pointer %null-pointer))) + (unless (zero? ret) + (throw 'system-error "openpty" "~A" + (list (strerror err)) + (list err)))) + + (let ((* (lambda (bv) + (bytevector-sint-ref bv 0 (native-endianness) + (sizeof int))))) + (values (* head) (* inferior))))))) + +(define login-tty + (let* ((ptr (dynamic-func "login_tty" (dynamic-link "libutil"))) + (proc (pointer->procedure int ptr (list int) + #:return-errno? #t))) + (lambda (fd) + "Make FD the controlling terminal of the current process (with the +TIOCSCTTY ioctl), redirect standard input, standard output and standard error +output to this terminal, and close FD." + (let-values (((ret err) (proc fd))) + (unless (zero? ret) + (throw 'system-error "login-pty" "~A" + (list (strerror err)) + (list err))))))) + ;;; ;;; utmpx. diff --git a/tests/syscalls.scm b/tests/syscalls.scm index 706dd4177f..c9e011f453 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -26,6 +26,7 @@ (define-module (test-syscalls) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-64) + #:use-module (srfi srfi-71) #:use-module (system foreign) #:use-module ((ice-9 ftw) #:select (scandir)) #:use-module (ice-9 match)) @@ -582,6 +583,40 @@ (define perform-container-tests? (test-assert "terminal-rows" (> (terminal-rows) 0)) +(test-assert "openpty" + (let ((head inferior (openpty))) + (and (integer? head) (integer? inferior) + (let ((port (fdopen inferior "r+0"))) + (and (isatty? port) + (begin + (close-port port) + (close-fdes head) + #t)))))) + +(test-equal "openpty + login-tty" + '(hello world) + (let ((head inferior (openpty))) + (match (primitive-fork) + (0 + (dynamic-wind + (const #t) + (lambda () + (setvbuf (current-input-port) 'none) + (close-fdes head) + (login-tty inferior) + (write (read)) + (read)) ;this gets EIO when HEAD is closed + (lambda () + (primitive-_exit 42)))) + (pid + (close-fdes inferior) + (let ((head (fdopen head "r+0"))) + (write '(hello world) head) + (let ((result (read head))) + (close-port head) + (waitpid pid) + result)))))) + (test-assert "utmpx-entries" (match (utmpx-entries) (((? utmpx? entries) ...) From 9e46942c1c8e719af97026d89d64b25da759eff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 19 Oct 2021 11:17:24 +0200 Subject: [PATCH 179/287] environment: Add '--check'. * guix/scripts/environment.scm (show-environment-options-help) (%options): Add '--check'. * guix/scripts/environment.scm (child-shell-environment) (validate-child-shell-environment): New procedures. (guix-environment*): Call 'validate-child-shell-environment' when 'check?' key is in OPTS. * doc/guix.texi (Invoking guix shell): Shorten footnote about Bash startup files. Document '--check' and mention startup files. (Invoking guix environment): Document '--check'. --- doc/guix.texi | 39 ++++++--- guix/scripts/environment.scm | 162 ++++++++++++++++++++++++++++++++++- 2 files changed, 189 insertions(+), 12 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 093e354509..22215214e0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5640,17 +5640,11 @@ environment, where the new packages are added to search path environment variables such as @code{PATH}. You can, instead, choose to create an @emph{isolated} environment containing nothing but the packages you asked for. Passing the @option{--pure} option clears environment -variable definitions found in the parent environment@footnote{Users -sometimes wrongfully augment environment variables such as @env{PATH} in -their @file{~/.bashrc} file. As a consequence, when @command{guix -environment} launches it, Bash may read @file{~/.bashrc}, thereby -introducing ``impurities'' in these environment variables. It is an -error to define such environment variables in @file{.bashrc}; instead, -they should be defined in @file{.bash_profile}, which is sourced only by -log-in shells. @xref{Bash Startup Files,,, bash, The GNU Bash Reference -Manual}, for details on Bash start-up files.}; passing -@option{--container} goes one step further by spawning a @dfn{container} -isolated from the rest of the system: +variable definitions found in the parent environment@footnote{Be sure to +use the @option{--check} option the first time you use @command{guix +shell} interactively to make sure the shell does not undo the effect of +@option{--pure}.}; passing @option{--container} goes one step further by +spawning a @dfn{container} isolated from the rest of the system: @example guix shell --container emacs gcc-toolchain @@ -5699,6 +5693,24 @@ $ ls "$GUIX_ENVIRONMENT/bin" The available options are summarized below. @table @code +@item --check +Set up the environment and check whether the shell would clobber +environment variables. It's a good idea to use this option the first +time you run @command{guix shell} for an interactive session to make +sure your setup is correct. + +For example, if the shell modifies the @env{PATH} environment variable, +report it since you would get a different environment than what you +asked for. + +Such problems usually indicate that the shell startup files are +unexpectedly modifying those environment variables. For example, if you +are using Bash, make sure that environment variables are set or modified +in @file{~/.bash_profile} and @emph{not} in @file{~/.bashrc}---the +former is sourced only by log-in shells. @xref{Bash Startup Files,,, +bash, The GNU Bash Reference Manual}, for details on Bash start-up +files. + @item --development @itemx -D Cause @command{guix shell} to include in the environment the @@ -6065,6 +6077,11 @@ guix environment --preserve='^DISPLAY$' --container --network \ The available options are summarized below. @table @code +@item --check +Set up the environment and check whether the shell would clobber +environment variables. @xref{Invoking guix shell, @option{--check}}, +for more info. + @item --root=@var{file} @itemx -r @var{file} @cindex persistent environment diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 05a43659da..7b97a8e39a 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -41,12 +41,14 @@ (define-module (guix scripts environment) #:autoload (gnu build accounts) (password-entry group-entry password-entry-name password-entry-directory write-passwd write-group) - #:autoload (guix build syscalls) (set-network-interface-up) + #:autoload (guix build syscalls) (set-network-interface-up openpty login-tty) #:use-module (gnu system file-systems) #:autoload (gnu packages) (specification->package+output) #:autoload (gnu packages bash) (bash) #:autoload (gnu packages bootstrap) (bootstrap-executable %bootstrap-guile) #:use-module (ice-9 match) + #:autoload (ice-9 rdelim) (read-line) + #:use-module (ice-9 vlist) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) @@ -83,6 +85,8 @@ (define (show-environment-options-help) -m, --manifest=FILE create environment with the manifest from FILE")) (display (G_ " -p, --profile=PATH create environment from profile at PATH")) + (display (G_ " + --check check if the shell clobbers environment variables")) (display (G_ " --pure unset existing environment variables")) (display (G_ " @@ -178,6 +182,9 @@ (define %options (option '(#\V "version") #f #f (lambda args (show-version-and-exit "guix environment"))) + (option '("check") #f #f + (lambda (opt name arg result) + (alist-cons 'check? #t result))) (option '("pure") #f #f (lambda (opt name arg result) (alist-cons 'pure #t result))) @@ -396,6 +403,155 @@ (define* (launch-environment command profile manifest ((program . args) (apply execlp program program args)))) +(define (child-shell-environment shell profile manifest) + "Create a child process, load PROFILE and MANIFEST, and then run SHELL in +interactive mode in it. Return a name/value vhash for all the variables shown +by running 'set' in the shell." + (define-values (controller inferior) + (openpty)) + + (define script + ;; Script to obtain the list of environment variable values. On a POSIX + ;; shell we can rely on 'set', but on fish we have to use 'env' (fish's + ;; 'set' truncates values and prints them in a different format.) + "env || /usr/bin/env || set; echo GUIX-CHECK-DONE; read x; exit\n") + + (define lines + (match (primitive-fork) + (0 + (catch #t + (lambda () + (load-profile profile manifest #:pure? #t) + (setenv "GUIX_ENVIRONMENT" profile) + (close-fdes controller) + (login-tty inferior) + (execl shell shell)) + (lambda _ + (primitive-exit 127)))) + (pid + (close-fdes inferior) + (let* ((port (fdopen controller "r+l")) + (result (begin + (display script port) + (let loop ((lines '())) + (match (read-line port) + ((? eof-object?) (reverse lines)) + ("GUIX-CHECK-DONE\r" + (display "done\n" port) + (reverse lines)) + (line + ;; Drop the '\r' from LINE. + (loop (cons (string-drop-right line 1) + lines)))))))) + (close-port port) + (waitpid pid) + result)))) + + (fold (lambda (line table) + ;; Note: 'set' in fish outputs "NAME VALUE" instead of "NAME=VALUE" + ;; but it also truncates values anyway, so don't try to support it. + (let ((index (string-index line #\=))) + (if index + (vhash-cons (string-take line index) + (string-drop line (+ 1 index)) + table) + table))) + vlist-null + lines)) + +(define* (validate-child-shell-environment profile manifest + #:optional (shell %default-shell)) + "Run SHELL in interactive mode in an environment for PROFILE and MANIFEST +and report clobbered environment variables." + (define warned? #f) + (define-syntax-rule (warn exp ...) + (begin + (set! warned? #t) + (warning exp ...))) + + (info (G_ "checking the environment variables visible from shell '~a'...~%") + shell) + (let ((actual (child-shell-environment shell profile manifest))) + (when (vlist-null? actual) + (leave (G_ "failed to determine environment of shell '~a'~%") + shell)) + (for-each (match-lambda + ((spec . expected) + (let ((name (search-path-specification-variable spec))) + (match (vhash-assoc name actual) + (#f + (warn (G_ "variable '~a' is missing from shell \ +environment~%") + name)) + ((_ . actual) + (cond ((string=? expected actual) + #t) + ((string-prefix? expected actual) + (warn (G_ "variable '~a' has unexpected \ +suffix '~a'~%") + name + (string-drop actual + (string-length expected)))) + (else + (warn (G_ "variable '~a' is clobbered: '~a'~%") + name actual)))))))) + (profile-search-paths profile manifest)) + + ;; Special case. + (match (vhash-assoc "GUIX_ENVIRONMENT" actual) + (#f + (warn (G_ "'GUIX_ENVIRONMENT' is missing from the shell \ +environment~%"))) + ((_ . value) + (unless (string=? value profile) + (warn (G_ "'GUIX_ENVIRONMENT' is set to '~a' instead of '~a'~%") + value profile)))) + + ;; Check the prompt unless we have more important warnings. + (unless warned? + (match (vhash-assoc "PS1" actual) + (#f #f) + (str + (when (and (getenv "PS1") (string=? str (getenv "PS1"))) + (warning (G_ "'PS1' is the same in sub-shell~%")) + (display-hint (G_ "Consider setting a different prompt for +environment shells to make them distinguishable. + +If you are using Bash, you can do that by adding these lines to +@file{~/.bashrc}: + +@example +if [ -n \"$GUIX_ENVIRONMENT\" ] +then + export PS1=\"\\u@@\\h \\w [env]\\$ \" +fi +@end example +")))))) + + (if warned? + (begin + (display-hint (G_ "One or more environment variables have a +different value in the shell than the one we set. This means that you may +find yourself running code in an environment different from the one you asked +Guix to prepare. + +This usually indicates that your shell startup files are unexpectedly +modifying those environment variables. For example, if you are using Bash, +make sure that environment variables are set or modified in +@file{~/.bash_profile} and @emph{not} in @file{~/.bashrc}. For more +information on Bash startup files, run: + +@example +info \"(bash) Bash Startup Files\" +@end example + +Alternatively, you can avoid the problem by passing the @option{--container} +or @option{-C} option. That will give you a fully isolated environment +running in a \"container\", immune to the issue described above.")) + (exit 1)) + (info (G_ "All is good! The shell gets correct environment \ +variables.~%"))))) + (define* (launch-environment/fork command profile manifest #:key pure? (white-list '())) "Run COMMAND in a new process with an environment containing PROFILE, with @@ -775,6 +931,10 @@ (define manifest (mwhen gc-root (register-gc-root profile gc-root)) + (mwhen (assoc-ref opts 'check?) + (return + (validate-child-shell-environment profile manifest))) + (cond ((assoc-ref opts 'search-paths) (show-search-paths profile manifest #:pure? pure?) From 409f538d651a7ba26a41f714915e6b7d59e0a82f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 19 Oct 2021 11:50:14 +0200 Subject: [PATCH 180/287] shell: Suggest running '--check' once for interactive use. * guix/scripts/shell.scm (hint-directory, hint-file, record-hint) (hint-given?): New procedures. (guix-shell): Record and probe the 'shell-check' hint. --- guix/scripts/shell.scm | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm index 05b6f98656..c7eba429d5 100644 --- a/guix/scripts/shell.scm +++ b/guix/scripts/shell.scm @@ -331,6 +331,29 @@ (define (profile-cached-gc-root file) (#f #f) (key (string-append (%profile-cache-directory) "/" key)))) + +;;; +;;; One-time hints. +;;; + +(define (hint-directory) + "Return the directory name where previously given hints are recorded." + (string-append (cache-directory #:ensure? #f) "/hints")) + +(define (hint-file hint) + "Return the name of the file that marks HINT as already printed." + (string-append (hint-directory) "/" (symbol->string hint))) + +(define (record-hint hint) + "Mark HINT as already given." + (let ((file (hint-file hint))) + (mkdir-p (dirname file)) + (close-fdes (open-fdes file (logior O_CREAT O_WRONLY))))) + +(define (hint-given? hint) + "Return true if HINT was already given." + (file-exists? (hint-file hint))) + (define-command (guix-shell . args) (category development) @@ -348,7 +371,22 @@ (define* (entry-expiration file) (#f 0) ;FILE may have been deleted in the meantime (st (+ (stat:atime st) (* 60 60 24 7))))) - (let ((result (guix-environment* (parse-args args)))) + (define opts + (parse-args args)) + + (define interactive? + (not (assoc-ref opts 'exec))) + + (if (assoc-ref opts 'check?) + (record-hint 'shell-check) + (when (and interactive? + (not (hint-given? 'shell-check)) + (not (assoc-ref opts 'container?)) + (not (assoc-ref opts 'search-paths))) + (display-hint (G_ "Consider passing the @option{--check} option once +to make sure your shell does not clobber environment variables."))) ) + + (let ((result (guix-environment* opts))) (maybe-remove-expired-cache-entries (%profile-cache-directory) cache-entries #:entry-expiration entry-expiration) From f8e260e5a2be2d2961bfdf7ad9b5b8da546c9f74 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 6 Oct 2021 12:55:56 -0500 Subject: [PATCH 181/287] gnu: ruby-eventmachine: Add openssl input. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit While EventMachine will build without openssl present, attempting to use it to make any TLS-secured connections will crash at runtime, which is not very useful. This allows the build system to find and link OpenSSL and thus TLS will work at runtime. * gnu/packages/ruby.scm (ruby-eventmachine): Add openssl input. Signed-off-by: Ludovic Courtès --- gnu/packages/ruby.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index e9db2cfe31..4a791ebfb5 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -8722,6 +8722,8 @@ (define-public ruby-eventmachine (build-system ruby-build-system) (arguments '(#:tests? #f)) ; test suite tries to connect to google.com + (inputs + `(("openssl" ,openssl))) (native-inputs `(("ruby-rake-compiler" ,ruby-rake-compiler))) (synopsis "Single-threaded network event framework for Ruby") From 45f787593768bcb092a0819fcf7d33b071e68757 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Tue, 26 Oct 2021 12:45:42 +0000 Subject: [PATCH 182/287] gnu: Add uuu. * gnu/packages/flashing-tools.scm (uuu): New variable. --- gnu/packages/flashing-tools.scm | 56 ++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm index 8b881a5c2c..c5f1abccbf 100644 --- a/gnu/packages/flashing-tools.scm +++ b/gnu/packages/flashing-tools.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2021 Ricardo Wurmus +;;; Copyright © 2021 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,7 +51,8 @@ (define-module (gnu packages flashing-tools) #:use-module (gnu packages libusb) #:use-module (gnu packages libftdi) #:use-module (gnu packages pciutils) - #:use-module (gnu packages qt)) + #:use-module (gnu packages qt) + #:use-module (gnu packages tls)) (define-public flashrom (package @@ -520,3 +522,55 @@ (define-public srecord manipulating EPROM load files. It reads and writes numerous EPROM file formats, and can perform many different manipulations.") (license license:gpl3+))) + +(define-public uuu + (package + (name "uuu") + (version "1.4.165") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/NXPmicro/mfgtools") + (commit (string-append "uuu_" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0k309lp27d4k6x4qq0badbk8i47xsc6f3fffz73650iyfs4hcniw")))) + (arguments + `(#:tests? #f ; no tests + #:modules ((guix build utils) + (ice-9 popen) + (srfi srfi-26) + (guix build cmake-build-system)) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-version-gen + (lambda _ + (call-with-output-file ".tarball-version" + (lambda (port) + (display ,version port))))) + (add-after 'install 'install-udev-rules + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (uuu (string-append out "/bin/uuu")) + (pipe (open-pipe* OPEN_READ uuu "-udev")) + (rules + (string-append out "/lib/udev/rules.d/70-uuu.rules"))) + (mkdir-p (string-append out "/lib/udev/rules.d")) + (call-with-output-file rules + (cut dump-port pipe <>)))))))) + (build-system cmake-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libusb" ,libusb) + ("bzip2" ,bzip2) + ("zlib" ,zlib) + ("libzip" ,libzip) + ("openssl" ,openssl))) + (home-page "https://github.com/NXPmicro/mfgtools") + (synopsis "Freescale/NXP I.MX chip image deploy tools") + (description "@code{uuu} is a command line tool, evolved out of MFGTools. +It can be used to upload images to I.MX SoC's using at least their boot ROM.") + (license license:bsd-3))) From 73ae663b213bb943b35dd719283bbdbb4ce3bab2 Mon Sep 17 00:00:00 2001 From: Robin Templeton Date: Sun, 24 Oct 2021 23:36:24 -0400 Subject: [PATCH 183/287] gnu: Add yt-dlp. * gnu/packages/video.scm (yt-dlp): New variable. Co-authored-by: Morgan Smith Suggested-by: bdju Signed-off-by: Liliana Marie Prikler --- gnu/packages/video.scm | 70 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index d2a2a08ee3..245007f294 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -53,6 +53,7 @@ ;;; Copyright © 2020 Hartmut Goebel ;;; Copyright © 2021 Raghav Gururajan ;;; Copyright © 2021 Petr Hodina +;;; Copyright © 2021 Robin Templeton ;;; ;;; This file is part of GNU Guix. ;;; @@ -142,6 +143,7 @@ (define-module (gnu packages video) #:use-module (gnu packages man) #:use-module (gnu packages markup) #:use-module (gnu packages maths) + #:use-module (gnu packages music) #:use-module (gnu packages mp3) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) @@ -2360,6 +2362,74 @@ (define-public youtube-dl (home-page "https://yt-dl.org") (license license:public-domain))) +(define-public yt-dlp + (package/inherit youtube-dl + (name "yt-dlp") + (version "2021.10.22") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/yt-dlp/yt-dlp/" + "releases/download/" + version "/yt-dlp.tar.gz")) + (sha256 + (base32 + "0xh4cwmvx49pxn8x07wj2dy8ynj6xg8977l5493vv0l8zc27wp87")) + (snippet + '(begin + ;; Delete the pre-generated files, except for the man page + ;; which requires 'pandoc' to build. + (for-each delete-file '("yt-dlp" + ;;pandoc is needed to generate + ;;"yt-dlp.1" + "completions/bash/yt-dlp" + "completions/fish/yt-dlp.fish" + "completions/zsh/_yt-dlp")) + #t)))) + (arguments + (substitute-keyword-arguments (package-arguments youtube-dl) + ((#:tests? _) #t) + ((#:phases phases) + `(modify-phases ,phases + ;; See the comment for the corresponding phase in youtube-dl. + (replace 'default-to-the-ffmpeg-input + (lambda _ + (substitute* "yt_dlp/postprocessor/ffmpeg.py" + (("\\.get_param\\('ffmpeg_location'\\)" match) + (format #f "~a or '~a'" match (which "ffmpeg")))) + #t)) + (replace 'build-generated-files + (lambda _ + ;; Avoid the yt-dlp.1 target, which requires pandoc. + (invoke "make" "PYTHON=python" "yt-dlp" "completions"))) + (replace 'fix-the-data-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((prefix (assoc-ref outputs "out"))) + (substitute* "setup.py" + (("'etc/") + (string-append "'" prefix "/etc/")) + (("'share/") + (string-append "'" prefix "/share/")))) + #t)) + (delete 'install-completion) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-k" "not download")))))))) + (inputs + `(("python-mutagen" ,python-mutagen) + ("python-pycryptodomex" ,python-pycryptodomex) + ("python-websockets" ,python-websockets) + ,@(package-inputs youtube-dl))) + (native-inputs + `(("python-pytest" ,python-pytest) + ,@(package-native-inputs youtube-dl))) + (description + "yt-dlp is a small command-line program to download videos from +YouTube.com and many more sites. It is a fork of youtube-dl with a +focus on adding new features while keeping up-to-date with the +original project.") + (home-page "https://github.com/yt-dlp/yt-dlp"))) + (define-public youtube-dl-gui (package (name "youtube-dl-gui") From 0a42998a50e8bbe9e49142b21a570db00efe7491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 26 Oct 2021 14:50:54 +0200 Subject: [PATCH 184/287] syscalls: Gracefully handle failure to load libc's libutil. In particular, libutil is not found when running code on a statically-linked Guile. Reported by mahmooz on #guix. * guix/build/syscalls.scm (syscall->procedure): Add #:library parameter and honor it. (openpty, login-tty): Use 'syscall->procedure' instead of calling 'dynamic-link' directly. --- guix/build/syscalls.scm | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 7ea6b56e54..b305133c37 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -424,15 +424,21 @@ (define-syntax-rule (restart-on-EINTR expr) "Evaluate EXPR and restart upon EINTR. Return the value of EXPR." (call-with-restart-on-EINTR (lambda () expr))) -(define (syscall->procedure return-type name argument-types) +(define* (syscall->procedure return-type name argument-types + #:key library) "Return a procedure that wraps the C function NAME using the dynamic FFI, -and that returns two values: NAME's return value, and errno. +and that returns two values: NAME's return value, and errno. When LIBRARY is +specified, look up NAME in that library rather than in the global symbol name +space. If an error occurs while creating the binding, defer the error report until the returned procedure is called." (catch #t (lambda () - (let ((ptr (dynamic-func name (dynamic-link)))) + (let ((ptr (dynamic-func name + (if library + (dynamic-link library) + (dynamic-link))))) ;; The #:return-errno? facility was introduced in Guile 2.0.12. (pointer->procedure return-type ptr argument-types #:return-errno? #t))) @@ -2289,9 +2295,8 @@ (define* (terminal-rows #:optional (port (current-output-port))) (terminal-dimension window-size-rows port (const 25))) (define openpty - (let* ((ptr (dynamic-func "openpty" (dynamic-link "libutil"))) - (proc (pointer->procedure int ptr '(* * * * *) - #:return-errno? #t))) + (let ((proc (syscall->procedure int "openpty" '(* * * * *) + #:library "libutil"))) (lambda () "Return two file descriptors: one for the pseudo-terminal control side, and one for the controlled side." @@ -2312,9 +2317,8 @@ (define openpty (values (* head) (* inferior))))))) (define login-tty - (let* ((ptr (dynamic-func "login_tty" (dynamic-link "libutil"))) - (proc (pointer->procedure int ptr (list int) - #:return-errno? #t))) + (let* ((proc (syscall->procedure int "login_tty" (list int) + #:library "libutil"))) (lambda (fd) "Make FD the controlling terminal of the current process (with the TIOCSCTTY ioctl), redirect standard input, standard output and standard error From 3d51fd19faee59d9455eebbb957cf6498ecc1220 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 14 Oct 2021 00:28:21 -0400 Subject: [PATCH 185/287] gnu: Add b2sum. * gnu/packages/crypto.scm (b2sum): New variable. --- gnu/packages/crypto.scm | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 823b888b82..209375f44e 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus -;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari +;;; Copyright © 2016, 2017, 2018, 2019, 2021 Leo Famulari ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice ;;; Copyright © 2016, 2017 Nikita @@ -840,6 +840,41 @@ (define-public libb2 BLAKE.") (license license:public-domain))) +(define-public b2sum + ;; Upstream doesn't seem to use a versioned release workflow, so build from + ;; a recent commit. + (let ((commit "54f4faa4c16ea34bcd59d16e8da46a64b259fc07") + (revision "0")) + (package + (name "b2sum") + (version (git-version "20190724" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BLAKE2/BLAKE2") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04z631v0vzl52g73v390ask5fnzi5wg83lcjkjhpmmymaz0jn152")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list (string-append "CC=" ,(cc-for-target)) + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:tests? #f ; No test suite + #:phases + (modify-phases %standard-phases + (add-before 'build 'change-directory + (lambda _ + (chdir "b2sum"))) + (delete 'configure)))) ; No ./configure script + (home-page "https://www.blake2.net/") + (synopsis "BLAKE2 checksum tool") + (description "BLAKE2 is a cryptographic hash function faster than MD5, +SHA-1, SHA-2, and SHA-3, yet is at least as secure as SHA-3.") + ;; You may also choose to redistribute this program as Apache 2.0 or the + ;; OpenSSL license. See 'b2sum/b2sum.c' in the source distribution. + (license license:cc0)))) + (define-public rhash (package (name "rhash") From c6adc0947396daa6d85ab08837f9cbc86f4d8722 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 11 Sep 2021 13:52:08 -0400 Subject: [PATCH 186/287] gnu: asignify: Update to 1.1-1.08af003. * gnu/packages/crypto.scm (asignify): Update to 1.1-1.08af003. --- gnu/packages/crypto.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 209375f44e..3acd147f25 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -1008,8 +1008,8 @@ (define-public ccrypt (license license:gpl2))) (define-public asignify - (let ((commit "f58e7977a599f040797975d649ed318e25cbd2d5") - (revision "0")) + (let ((commit "08af003e1f4833713db28b871759d94f9b2b1469") + (revision "1")) (package (name "asignify") (version (git-version "1.1" revision commit)) @@ -1021,7 +1021,7 @@ (define-public asignify (file-name (git-file-name name version)) (sha256 (base32 - "1zl68qq6js6fdahxzyhvhrpyrwlv8c2zhdplycnfxyr1ckkhq8dw")))) + "1zacpqa8b5lg270z1g06r5ik9vnb91crb4ivyy20381dny82xvr1")))) (build-system gnu-build-system) (arguments `(#:configure-flags From ebc274063716a3a9471f51abb526d693c06b9f63 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 27 Oct 2021 00:08:27 +0200 Subject: [PATCH 187/287] gnu: tor: Update to 0.4.6.8. * gnu/packages/tor.scm (tor): Update to 0.4.6.8. [fixes low-severity TROVE-2021-008] --- gnu/packages/tor.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 972160fb8e..2507f80c74 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -57,14 +57,14 @@ (define-module (gnu packages tor) (define-public tor (package (name "tor") - (version "0.4.6.7") + (version "0.4.6.8") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "16hga7195va8v0x062dc05nbz4sm3dscifcqpl8235dj47hmqrpz")))) + "0sj7qn6d6js6gk4vjfkc7p9g021czbfaq00yfq3mn5ycnhvimkhm")))) (build-system gnu-build-system) (arguments `(#:configure-flags From 89d8417b371f3918f0508bbc561675ec100a6add Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 27 Oct 2021 00:12:34 +0200 Subject: [PATCH 188/287] gnu: snooze: Fix installation destination. * gnu/packages/suckless.scm (snooze)[arguments]: Remove bogus $(DESTDIR) from #:make-flags to install in $(PREFIX). Reported by Christopher Howard --- gnu/packages/suckless.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index e80ed2bca0..b4855ec0a2 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -923,7 +923,6 @@ (define-public snooze `(#:tests? #f ; There are no tests. #:make-flags (list (string-append "CC=" ,(cc-for-target)) - (string-append "DESTDIR=" %output) ;; Set prefix path to root of package path in store instead ;; of /usr/local. (string-append "PREFIX=" %output)) From 55483dcb985363af2d266e95eec7837c44ad4185 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Wed, 27 Oct 2021 13:46:48 +0200 Subject: [PATCH 189/287] gnu: pdf2djvu: Update to 0.9.18.1. * gnu/packages/djvu.scm (pdf2djvu): Update to 0.9.18.1. [arguments]: Add 'fix-tests' phase. --- gnu/packages/djvu.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm index 96071b8da1..39c2b20d7e 100644 --- a/gnu/packages/djvu.scm +++ b/gnu/packages/djvu.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2020 Nicolas Goaziou ;;; Copyright © 2020 Tobias Geerinckx-Rice -;;; Copyright © 2020 Guillaume Le Vaillant +;;; Copyright © 2020, 2021 Guillaume Le Vaillant ;;; ;;; This file is part of GNU Guix. ;;; @@ -151,7 +151,7 @@ (define-public djview (define-public pdf2djvu (package (name "pdf2djvu") - (version "0.9.17.1") + (version "0.9.18.1") (source (origin (method url-fetch) @@ -159,7 +159,7 @@ (define-public pdf2djvu "https://github.com/jwilk/pdf2djvu/releases/download/" version "/pdf2djvu-" version ".tar.xz")) (sha256 - (base32 "18r648kna6ccw0m0nfxxnsmz541k69d0w9zzqvm1x2l5qyyvgfsv")))) + (base32 "0c595yziz81c9izf9s5sskd00qmgz2n1hp2vdcgg0dx81g3xfidb")))) (build-system gnu-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -174,7 +174,15 @@ (define-public pdf2djvu ("poppler-data" ,poppler-data) ("util-linux-lib" ,util-linux "lib"))) ; for libuuid (arguments - `(#:test-target "test")) + `(#:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "tests/test-xmp-broken.py" + ;; Error message changed in recent versions of XML parser + (("XML parsing failure") + "Error in XMLValidator"))))))) (synopsis "PDF to DjVu converter") (description "@code{pdf2djvu} creates DjVu files from PDF files. From 2efc7819ce083f246d60ef1be2301568f4be4f9e Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Wed, 27 Oct 2021 15:12:55 +0200 Subject: [PATCH 190/287] news: Add 'de' translation. * etc/news.scm: Add German translation of "guix shell" entry. --- etc/news.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/etc/news.scm b/etc/news.scm index 8900d5660e..76d9ed3739 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -28,6 +28,8 @@ (title (en "New @command{guix shell} command supersedes @command{guix environment}") + (de "Neuer Befehl @command{guix shell} löst @command{guix +environment} ab") (fr "Nouvelle commande @command{guix shell} en remplacement de @command{guix environment}")) (body @@ -55,6 +57,34 @@ access to such environments. Run @command{info \"(guix) Invoking guix shell\"} for more information.") + (de "Ein neuer Befehl @command{guix shell} ist ab jetzt +verfügbar. Er ähnelt @command{guix environment}, ist aber leichter zu +benutzen (@command{guix environment} gilt als veraltet, bleibt aber +bis zum 1.@: Mai 2023 verfügbar). Der größte Unterschied ist, dass das +Verhalten mit @option{--ad-hoc} nun der Normalfall ist. D.h.@: um eine +interaktive Umgebung mit Python, NumPy und SciPy zu bekommen, lautet +der Befehl: + +@example +guix shell python python-numpy python-scipy +@end example + +Wenn Sie eine Entwicklungsumgebung für, sagen wir, Inkscape schaffen +wollen, übergeben Sie die Option @option{-D}: + +@example +guix shell -D inkscape +@end example + +Noch ein Unterschied ist, dass wenn Sie @command{guix shell} ohne +Argumente ausführen, @file{manifest.scm} oder @file{guix.scm} aus dem +aktuellen Arbeitsverzeichnis oder einem übergeordneten Verzeichnis +geladen wird, wenn Sie die Berechtigung dazu erteilt haben. Für den +Befehl wird ein Zwischenspeicher vorgehalten, damit Sie schneller auf +solche Umgebungen zugreifen können. + +Führen Sie @command{info \"(guix) Invoking guix shell\"} aus, um mehr +zu erfahren.") (fr "Une nouvelle commande, @command{guix shell}, est maintenant disponible. Elle est similaire à @command{guix environment}, mais avec une interface plus pratique (@command{guix environment} est désuet mais restera From af4ce7bd413c3a50733bfcc05370903a1e3808bc Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Wed, 27 Oct 2021 08:58:22 -0700 Subject: [PATCH 191/287] gnu: diffoscope: Update to 188. * gnu/packages/patches/diffoscope-fix-test_item3_deflate_llvm_bitcode.patch: Rename patch to... * gnu/packages/patches/diffoscope-fix-llvm-test.patch: This. * gnu/local.mk (dist_patch_DATA): Update patch name. * gnu/packages/diffoscope.scm (diffoscope): Update to 188. [source]: Update patch name. [arguments]: Add skip-python-tests phase. Add fpc-external-tool phase. Add use-dumppdf-py phase. [native-inputs]: Add fpc. --- gnu/local.mk | 2 +- gnu/packages/diffoscope.scm | 38 +++++++++++++++++-- ...e.patch => diffoscope-fix-llvm-test.patch} | 0 3 files changed, 36 insertions(+), 4 deletions(-) rename gnu/packages/patches/{diffoscope-fix-test_item3_deflate_llvm_bitcode.patch => diffoscope-fix-llvm-test.patch} (100%) diff --git a/gnu/local.mk b/gnu/local.mk index 28e8c1966a..0c3f212d9b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -996,7 +996,7 @@ dist_patch_DATA = \ %D%/packages/patches/desmume-gcc6-fixes.patch \ %D%/packages/patches/desmume-gcc7-fixes.patch \ %D%/packages/patches/dfu-programmer-fix-libusb.patch \ - %D%/packages/patches/diffoscope-fix-test_item3_deflate_llvm_bitcode.patch \ + %D%/packages/patches/diffoscope-fix-llvm-test.patch \ %D%/packages/patches/diffutils-gets-undeclared.patch \ %D%/packages/patches/dkimproxy-add-ipv6-support.patch \ %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \ diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index f96577ce6d..cb4c766f4e 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -49,6 +49,7 @@ (define-module (gnu packages diffoscope) #:use-module (gnu packages mono) #:use-module (gnu packages ocaml) #:use-module (gnu packages package-management) + #:use-module (gnu packages pascal) #:use-module (gnu packages patchutils) #:use-module (gnu packages pdf) #:use-module (gnu packages python-web) @@ -72,7 +73,7 @@ (define-module (gnu packages diffoscope) (define-public diffoscope (package (name "diffoscope") - (version "186") + (version "188") (source (origin (method git-fetch) @@ -81,9 +82,9 @@ (define-public diffoscope (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1qlll5jn76ci5jy915v2kvyngfyycwylxpbdylffzaninvdy3dav")) + (base32 "1byd28ihni5g0ikjjcsq68smj1rw33vv9z0cymqa4ds670c77yvn")) (patches - (search-patches "diffoscope-fix-test_item3_deflate_llvm_bitcode.patch")))) + (search-patches "diffoscope-fix-llvm-test.patch")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -108,6 +109,36 @@ (define-public diffoscope (string-append "['" (which "stat") "',")) (("\\['getfacl',") (string-append "['" (which "getfacl") "',"))))) + (add-after 'unpack 'skip-python-tests + (lambda _ + ;; Python tests appear to assume python 3.9, remove + ;; phase when python is upgraded + (substitute* "tests/comparators/test_python.py" + (("def test_identification") + "def skip_test_identification")) + (substitute* "tests/comparators/test_python.py" + (("def test_diff") + "def skip_test_diff")))) + (add-after 'unpack 'use-dumppdf-py + ;; python-pdfminer-six ships "dumppdf" as "dumppdf.py" + ;; https://salsa.debian.org/reproducible-builds/diffoscope/-/issues/283 + ;; Fixed upstream, remove this phase when updating to + ;; diffoscope 189 + (lambda _ + (substitute* "diffoscope/comparators/pdf.py" + (("dumppdf") "dumppdf.py")) + (substitute* "diffoscope/external_tools.py" + (("dumppdf") "dumppdf.py")) + (substitute* "diffoscope/external_tools.py" + (("'debian': 'python3-pdfminer'") + "'debian': 'python3-pdfminer', 'guix': 'python-pdfminer-six'")))) + (add-after 'unpack 'fpc-external-tool + ;; Fixed upstream, remove this phase when updating to + ;; diffoscope 189 + (lambda _ + (substitute* "diffoscope/external_tools.py" + (("'debian': 'fp-utils'") + "'debian': 'fp-utils', 'guix': 'fpc'")))) (add-after 'build 'build-man-page (lambda* (#:key (make-flags '()) #:allow-other-keys) (apply invoke "make" "-C" "doc" make-flags))) @@ -182,6 +213,7 @@ (define-public diffoscope ("dtc" ,dtc) ("e2fsprogs" ,e2fsprogs) ("ffmpeg" ,ffmpeg) + ("fpc" ,fpc) ("gettext" ,gettext-minimal) ("ghostscript" ,ghostscript) ("giflib:bin" ,giflib "bin") diff --git a/gnu/packages/patches/diffoscope-fix-test_item3_deflate_llvm_bitcode.patch b/gnu/packages/patches/diffoscope-fix-llvm-test.patch similarity index 100% rename from gnu/packages/patches/diffoscope-fix-test_item3_deflate_llvm_bitcode.patch rename to gnu/packages/patches/diffoscope-fix-llvm-test.patch From a56b000745029bc457f01ad87d2e36f83823337b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Oct 2021 20:05:15 +0300 Subject: [PATCH 192/287] gnu: python-deprecated: Honor #:tests? flag. * gnu/packages/python-xyz.scm (python-deprecated)[arguments]: Adjust custom 'check phase to honor the #:tests? flag. --- gnu/packages/python-xyz.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index a7b1e0efe2..d5b21d8352 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -4362,8 +4362,9 @@ (define-public python-deprecated (arguments `(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ - (invoke "pytest")))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) (propagated-inputs `(("python-wrapt" ,python-wrapt))) (native-inputs From 014f1b607f1d88a8e733017afaca006545b7d99b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Oct 2021 20:09:21 +0300 Subject: [PATCH 193/287] gnu: python-deprecated: Update to 1.2.13. * gnu/packages/python-xyz.scm (python-deprecated): Update to 1.2.13. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d5b21d8352..bd5a5c2d4a 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -4347,7 +4347,7 @@ (define-public python-bumpversion (define-public python-deprecated (package (name "python-deprecated") - (version "1.2.5") + (version "1.2.13") (source (origin (method git-fetch) @@ -4357,7 +4357,7 @@ (define-public python-deprecated (file-name (git-file-name name version)) (sha256 (base32 - "14909glxxwwc4b9qpz2b9jdriwzi5n65ichw85xqppap5f79wcwz")))) + "0v4ys9xr8lski2r98da99spsj6hjlnnqgnhhmyhrm66myiix885c")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases From e2ce7fc73d7333003f04f2dd7f7fc989db254721 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 27 Oct 2021 23:44:44 +0200 Subject: [PATCH 194/287] gnu: kicad: Update home page. * gnu/packages/engineering.scm (kicad)[home-page]: Update. --- gnu/packages/engineering.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 42f7504d18..6abc4cd410 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -983,7 +983,7 @@ (define-public kicad ("python" ,python-wrapper) ("wxwidgets" ,wxwidgets) ("wxpython" ,python-wxpython))) - (home-page "https://kicad-pcb.org/") + (home-page "https://www.kicad.org/") (synopsis "Electronics Design Automation Suite") (description "Kicad is a program for the formation of printed circuit boards and electrical circuits. The software has a number of programs that From a8c69e22ee2f9e7b487ffe0b567297f28863128d Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 8 Oct 2021 13:23:37 +0200 Subject: [PATCH 195/287] gnu: Add ocaml-z3. * gnu/packages/maths.scm (ocaml-z3): New variable. --- gnu/packages/maths.scm | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 9bb2094768..5152fe6942 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -5776,6 +5776,65 @@ (define-public z3 theories} (SMT) solver. It provides a C/C++ API, as well as Python bindings.") (license license:expat))) +(define-public ocaml-z3 + (package + (inherit z3) + (name "ocaml-z3") + (arguments + `(#:imported-modules ((guix build python-build-system) + ,@%gnu-build-system-modules) + #:modules (((guix build python-build-system) #:select (site-packages)) + (guix build gnu-build-system) + (guix build utils)) + #:tests? #f; no ml tests + #:phases + (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "OCAMLFIND_LDCONF" "ignore") + (setenv "OCAMLFIND_DESTDIR" (string-append out "/lib/ocaml/site-lib")) + (mkdir-p (string-append out "/lib/ocaml/site-lib")) + (substitute* "scripts/mk_util.py" + (("LIBZ3 = LIBZ3") + (string-append "LIBZ3 = LIBZ3 + ' -dllpath " out "/lib'")) + ;; Do not build z3 again, use the library passed as input + ;; instead + (("z3linkdep,") "\"\",") + (("z3linkdep)") "\"\")")) + (invoke "python" "scripts/mk_make.py")))) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (invoke "./configure" + "--ml" + (string-append "--prefix=" (assoc-ref outputs "out"))))) + (add-after 'configure 'change-directory + (lambda _ + (chdir "build") + #t)) + (replace 'build + (lambda _ + (invoke "make" "ml"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "ocamlfind" "install" "-destdir" + (string-append (assoc-ref outputs "out") "/lib/ocaml/site-lib") + "z3" "api/ml/META" "api/ml/z3enums.mli" "api/ml/z3enums.cmi" + "api/ml/z3enums.cmx" "api/ml/z3native.mli" + "api/ml/z3native.cmi" "api/ml/z3native.cmx" + "../src/api/ml/z3.mli" "api/ml/z3.cmi" "api/ml/z3.cmx" + "api/ml/libz3ml.a" "api/ml/z3ml.a" "api/ml/z3ml.cma" + "api/ml/z3ml.cmxa" "api/ml/z3ml.cmxs" "api/ml/dllz3ml.so")))))) + (native-inputs + `(("which" ,which) + ("python" ,python-wrapper) + ("ocaml" ,ocaml) + ("ocaml-findlib" ,ocaml-findlib))) + (propagated-inputs + `(("ocaml-zarith" ,ocaml-zarith))) + (inputs + `(("z3" ,z3))))) + (define-public elpa (package (name "elpa") From b7a0935420ee630a29b7e5ac73a32ba1eb24f00b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 23 Oct 2021 13:13:08 -0400 Subject: [PATCH 196/287] gnu: icecat: Update to 91.2.0-guix0-preview1. * gnu/packages/gnuzilla.scm (mozilla-compare-locales) (all-mozilla-locales, %icecat-version, %icecat-build-id): Update. (icecat-source): Update upstream source hash. Update to latest gnuzilla commit. Remove the hack that provided 'rename' as 'prename'; set RENAME_CMD environment variable instead. Add python to PATH. Set PYTHONPATH appropriately. Adapt substitutions for the reorganized 'makeicecat' script. Run 'makeicecat' outside of the IceCat source directory. (icecat)[inputs]: Add cairo, font-dejavu, libpng-apng, libvpx, pciutils, hunspell, libnotify, sqlite, and zlib. Update icu4c to version 69. [native-inputs]: Update rust and cargo to 1.51. Update rust-cbindgen to 0.19. Update llvm and clang to 11. Add m4. Remove autoconf. [description]: Update embedded version number to 91. [arguments]: Remove "#:out-of-source? #t". Add "#:validate-runpath? #f". In configure-flags, add "--enable-application=browser", "--enable-rust-simd", "--enable-release", "--enable-optimize", "--enable-strip", "--disable-elf-hack", "--with-system-png", and "--with-system-zlib". Adjust the set of modules. Remove the 'link-libxul-with-libraries' and 'bootstrap' phases. Remove the sandbox whitelist population code from the 'fix-ffmpeg-runtime-linker' phase. Add a new 'build-sandbox-whitelist' phase. The new whitelist code now adds /share/fonts to the whitelist, and also the runpaths of all libraries in the 'mesa' package. Update the 'configure' phase to use clang-11 and llvm-11 for compilation (previously we used gcc), to create a 'mozconfig' file and run './mach configure' (previously we passed flags to './configure'). Update the 'build' and 'install' phases to use './mach'. Update and simplify the 'neutralise-store-references' phase. Move the 'install-desktop-entry' phase to happen after 'wrap-program', whereas previously it was run after 'configure'. In the 'wrap-program' phase, add libpng-apng and libnotify to LD_LIBRARY_PATH. (mozilla-78-compare-locales, all-mozilla-78-locales, %icecat-78-version) (icecat-78-source): New variables, containing the previous values of mozilla-compare-locales, all-mozilla-locales, %icecat-version, and icecat-source, respectively. (icedove)[source]: Use 'icecat-78-source'. * gnu/packages/patches/icecat-makeicecat.patch: Adapt to the reorganized 'makeicecat' script. * gnu/packages/patches/icecat-78-makeicecat.patch: New file, containing previous contents of icecat-makeicecat.patch. * gnu/local.mk: Add icecat-78-makeicecat.patch. --- gnu/local.mk | 1 + gnu/packages/gnuzilla.scm | 1208 ++++++++++------- .../patches/icecat-78-makeicecat.patch | 110 ++ gnu/packages/patches/icecat-makeicecat.patch | 137 +- 4 files changed, 901 insertions(+), 555 deletions(-) create mode 100644 gnu/packages/patches/icecat-78-makeicecat.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0c3f212d9b..5233581200 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1275,6 +1275,7 @@ dist_patch_DATA = \ %D%/packages/patches/hurd-cross.patch \ %D%/packages/patches/hurd-xattr.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \ + %D%/packages/patches/icecat-78-makeicecat.patch \ %D%/packages/patches/icecat-makeicecat.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ %D%/packages/patches/icecat-use-older-reveal-hidden-html.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 872e4771dd..3aa39bc806 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -51,6 +51,7 @@ (define-module (gnu packages gnuzilla) #:use-module (gnu packages admin) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) + #:use-module (gnu packages m4) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages databases) @@ -65,6 +66,7 @@ (define-module (gnu packages gnuzilla) #:use-module (gnu packages pkg-config) #:use-module (gnu packages compression) #:use-module (gnu packages fontutils) + #:use-module (gnu packages fonts) #:use-module (gnu packages libevent) #:use-module (gnu packages libreoffice) ;for hunspell #:use-module (gnu packages image) @@ -75,6 +77,7 @@ (define-module (gnu packages gnuzilla) #:use-module (gnu packages node) #:use-module (gnu packages xorg) #:use-module (gnu packages gl) + #:use-module (gnu packages pciutils) #:use-module (gnu packages assembly) #:use-module (gnu packages rust) #:use-module (gnu packages rust-apps) @@ -563,9 +566,9 @@ (define mozilla-compare-locales (method hg-fetch) (uri (hg-reference (url "https://hg.mozilla.org/l10n/compare-locales/") - (changeset "RELEASE_8_0_0"))) + (changeset "RELEASE_8_1_0"))) (file-name "mozilla-compare-locales") - (sha256 (base32 "0052wq92sg4i776x407b5838jx9h3phl9xy69m2q34f31n3gdyk2")))) + (sha256 (base32 "00bpkaqf2ng1nn9ajyb5mli0jq58q5fm2n3yy90jy0hp4q2gbs50")))) (define (mozilla-locale locale changeset hash-string) (origin @@ -582,6 +585,743 @@ (define-syntax-rule (mozilla-locales (hash-string changeset locale) ...) ...)) (define all-mozilla-locales + (mozilla-locales + ;; sha256 changeset locale + ;;--------------------------------------------------------------------------- + ("0f2lkv79gqf46f74905mab3zwyz1532chxlf9d28s548p1hw6lv9" "8312cd2e0777" "ach") + ("1v5jpmd0b04mizm9pjffp4r9q121vpq3yzkkxcgmrcwj4gc5jb2y" "21bf766c19d8" "af") + ("1fqjiq2la543z5pbbvd9kfs0wdc2phmqjbxascfsak854qy1z9f9" "34b6a4f0790d" "an") + ("0pl6j99xnali25glyr3g9fmj67v9vqmhd9k74i97f8q5n4xmv3ym" "513c3e8dac97" "ar") + ("0d1fbk9jcai19pi8b7i4y4r0gscqi1inr9dbahd6h0xbxfwc0zif" "19ca0cd0d1bf" "ast") + ("08f9b63wxxy28zaimjn1ab9w51bvrarc3pp75s7v6kzm5bk1jwic" "44aa0dad7964" "az") + ("15pksy9bgaxcbcnvvp8jwqnqxvvhq9vnljpai6jlh52yyrsglbwi" "5e4499355167" "be") + ("0gdg84jp1i4il4nc6gwaswdhc4ljbb9inyip7vhkng09v3pmwm0h" "98d006107851" "bg") + ("0i6vl0ag74phj4l38cvds1ds3jjdal1c8d7hy6pf4aqrp4ai32mh" "2ca52cbb680a" "bn") + ("16yavargwq8rhipzpmrrvyh68g3a6disz9g5m8xbhxvixhcsi5fr" "ce92556a0a90" "br") + ("1512dzp394pj66i13nsz76qh6fmjpz7r7fmvk8d0h7pjk0d6n0dy" "1c79dabdb120" "bs") + ("19wg0kbr2ihbn4lscsxg9agz04r8bsih4692vfgb6nyn1z8vx2i0" "a22912c01617" "ca") + ("1ixpzjb7caq1d9c7c044rxg3ymxs3hjw120kq85v004jrrb4d9c6" "34bf3fd631d4" "ca-valencia") + ("1abizdmd1c56syni1aanwwrfvmgzz25fmimbj2324bcw801ma9h0" "e2e4ba2c37bc" "cak") + ("0wgrg2wiz1jcj52nd4zl4shfkjhbngfj6p1gw1ywj266hk8g6pvw" "a60792bff6ff" "cs") + ("132f29111jd2z9yxpakkyri80mi2ggnik6zxaxqrp4vlcrd1fxd2" "66369fcad8c7" "cy") + ("04lpic3cxdj1imcwjkbk81avp9dpa1c9b1zcchrr1a4vyy4yfjpy" "af198d43f7d6" "da") + ("1h0rkwlsqls8k1qi1y68plw6xk0z2c5xc2y4nqywiirl71yz7fi5" "816fcef20c05" "de") + ("11lzdyl1h42zb1x2yxiv3r0wih8jy1gr0gzs5d1isdq53sa9cqnq" "962e5a544415" "dsb") + ("146jgrhl41k6zbxg58hxh1s088padsjz7ny8nm59i9i8d00jpv0a" "e7c49fd88463" "el") + ("1qppr44hdnrb1z1igcd1p0w5sy9vpihzilkl2w44y0v0v9rigppv" "5a0e35b08a48" "en-CA") + ("1v2irfms24cx9g5s6r1glmp2c000wi91axyca1pn37s7c01r0n4b" "72f8c5d8305d" "en-GB") + ("1y0rbbmax1w6jy4jacy27xgy4aqnd43izysw8qjwm0qhhfjvf3xh" "40994fca693d" "eo") + ("0kmjvinqpb3y81mqda1qq8k202aa36as9z1z775745bx6sbvkggz" "6cf3c836995d" "es-AR") + ("06rvd1z3l0r7hwnsnw90i0f5j2ysbv6wd3cl64g0bgifmwjk75hi" "8727dda3935e" "es-CL") + ("0gzw1rn9nzpgcrrc10indnbqqpax87azczrfxv8mn5n56j734hc0" "5351aba49895" "es-ES") + ("0bnmgisxfkb6rb12avhipbsj1yr0dyv56qjj9471gnc2ppq7k3c9" "dd834a4af402" "es-MX") + ("1951975h9w813qxanbk3frjz7c8knzx5rvq9i82j9i6x6a3fh6fi" "1f2150796079" "et") + ("1vkb5rd0k6vh9dbll3fhyzg8rfpkxxkd2rxwf66b8l3hg4fqd7f2" "2911663f4a7c" "eu") + ("1cj9zblfp94h86m7zd762bfmcfz0yxc1q4ra35s4wnnlqajarzwj" "04ec3c3bbe92" "fa") + ("1ininsyzaj7xd8ppmklm3zglgw1i0nhdy43iiyva32hb592zxy4m" "0cf866f9bc4e" "ff") + ("1hc308d71iygarrpliv7pxjz49gxwqg10d0pv8j4sbb2pw39bprl" "04a600fc54a4" "fi") + ("02nl54db9130rg59wmrrnh0z726fg5ir1njfcnhxagb4g5b7s69f" "64a3576df276" "fr") + ("1qbby23qlkxjz3vwlk8pd2w1w4cxdff8cq7j0ipk44mijkxkry0c" "c84177dfa254" "fy-NL") + ("1x23pg36ld5qnrmdn149rkl85ia8lmiqbzcac2bm0iqprnjdszii" "31590cffac56" "ga-IE") + ("005fpyr1lvw23dja3yrzx4y8wdih7vx6ljjpisf4pd3k5zai4x81" "ba4f274ac4a1" "gd") + ("0kdlb5q74n0fl5fxfy873s392kry69dmdl8b4gvqdyh5sy66vsqm" "56b41bdcd401" "gl") + ("0v8r8b0nrk1l4xipzhq16klmh0pinzcrma0s0gyhgzqqli6z7aym" "59e2afb65c08" "gn") + ("1grb1lq1f9p5jxgh9v78jl1wswxmsqxkcssm35l30k6y24pglr0m" "33b4409fb615" "gu-IN") + ("172fg55y8l90ix4c8s5x7f8mg6rc7779p6l852cnnkfqjgqa5a5f" "92f9f8238189" "he") + ("0i52nmg0yv3y1y3rkinxcyh51mgjksk7c3jlc8014801m3zvyxj7" "00090f7a2a3f" "hi-IN") + ("074q8n00yq54kzk632dwbs64r0sygvybbvwpd6hbvfpn38lz8hxf" "6e4a3fdc01f3" "hr") + ("1jxiz8zyxbpnwgk5xkwfxlr5f1zfyc88jcsajy8wcaifdkld3cwn" "7fd9bc25e49d" "hsb") + ("0ca11pmkzyd9ccrnrbmk0jrpcb03k88v4zivxblnxj4w03g0hyhq" "ce3b378ce950" "hu") + ("1yszljbh8f7w6lckfw22jwximy3yhis4430lfynfb8lh9nm0fw59" "c91a4a3e8821" "hy-AM") + ("0hhl8b8szqlhjdxhsa81zmgr303kr0jx5d6rzbi840qwf01h12sz" "4f235acc839e" "ia") + ("063yfk3nz3kignbri7r9sr3jwr5p9yyqc6sckgqs94hx6lvc355p" "fface86a34e4" "id") + ("1qszxkgliall4haaq6v0xayxikq43ddcdsn1d4m1mwyp7gdpbry5" "5978ae767b44" "is") + ("1fsfz9iz5pdd5r9ckdal6grvddchsc4r3r8gn4w6f2bja6vpbs05" "0c7d2a0e1304" "it") + ("1phkw0apiicgbw2nq3g392xncw1v2c4yac595h3nchs4q6rp9pd9" "1c923f3e88b9" "ja") + ("1y4gc4l6g72nphhsw4aqhcl80a7wi9qdy61h66c6jc6h14i7278d" "66f700940cfa" "ja-JP-mac") + ("0iqwj0y19zqcdclnn92z490s1g9vh2qr9gmkyfnpsz69llxidx1j" "49b4a7c6bb2c" "ka") + ("111nm2khff0zxnqqfc68rbi3j0b1nx5r4xai7b8yymyv1i0qbsxd" "4854facbd60b" "kab") + ("12p7lg2p6pcqdlb4bqbz5isxilw2r9vb8344sh8zrvv9cb9jq04f" "d2fda8a1b287" "kk") + ("142vpw9npqgc8b5zcg5cy2lh07s4mg8xfbaymg44fb4j3s6agw88" "3a5a1cae9b93" "km") + ("00v1sd2byj2ksxw1020z142cdlxa7ri2v1rzjrhay9l465bj3k8x" "6ed122b33cac" "kn") + ("1s07yhwzpxj0l5vj5lzbvgw115sjx1g2zgbqca5wln95dds39npl" "49bc07645a47" "ko") + ("1b4brfww0w7x1h3ff19i6xi8xq2cb1hxysilira6yq4rb6vhlmly" "93f04df12616" "lij") + ("1i30my0bbgm9z02rxxi7x4vc69bs3bnjs9l2q6jd8xvs1ga3vc7n" "e1f4e0d87509" "lt") + ("1bjh4xlx6562hxq527cqcn4b5295dsdpwn4c4y5ci902nlh6fc8l" "daea4ba4e7f4" "lv") + ("0vig42slcx6bhpisyc1bnyklr95lbv7vqd1ckiywp5c5qzfa9afi" "0c4ca0f4fc17" "mk") + ("10qfnkqi2snmgvm4vcrmp2489klchv3hn2c4rmkdhi5bilfk42jx" "9be8d5951976" "mr") + ("1bkn8ds3fyz710ck4gg4g5vpv23bi573ssm9xbiyl8y59pvbig9b" "0f44d0bcfda2" "ms") + ("1j9af3axbijn0s8y96310mvgaq5a36m0r3ij550jv5bv52862crj" "ccbf0c4355d6" "my") + ("0lspnp9jn3rrgz3djnmc0qrb6ymigvqnr3fb0jbhmf83r4yfs8z1" "a6cf2c6e3594" "nb-NO") + ("1xp2884m9gqm9gaakc747bd9j55wssrh3qsf4y4k02ijh08sfmwb" "c1636a1a7507" "ne-NP") + ("0y1fxp9pxia6x2wxdharh2ynvzdqcmzpya1gdb89pcv5qyrzqgcl" "60ed1c2397a6" "nl") + ("1nbp924p7fp2c76ym71wp34vk96z89i4g2rfgpsi54cgv42a6vgq" "a7f9a3d35875" "nn-NO") + ("1yrmhyvb6skypcyvi6j3py51sdkq9vn35zkryx6rdp8ygqwm1va7" "9ac29828960e" "oc") + ("0rn2414ji1icar627arf5rjwl9r9vxhznbfsyxgrmrf0p6dp72fv" "87720cc32205" "pa-IN") + ("09lam6yaprc8zyisq0pcdj4afpg930c2x3x47gdxnqfyhmcfygs7" "56b2c592ffba" "pl") + ("0mbc1a8wvjs3k928qh0k800d230251i0rw0myhdpc6mk3xjna7i5" "89f1b173c9b1" "pt-BR") + ("1v1qa5slllz78222rlqr4b8k7c8dapmx8d7s5nb90wdffic0zcqy" "27adc5dad781" "pt-PT") + ("04k6h5d7c740lz1hx1vavj6p0fmhgn9mm3nwvk4p9iccy5nw5pmf" "83e2e4833fc3" "rm") + ("0f0hz792wr17mgi6n190dliqx67479aqg3y2ak0jg0fiz2c8qr7p" "69cdc288966f" "ro") + ("17yngj0v30687m7fa1ls0g86vjg8jzxs7bnsca91jpxf3ij44xp6" "03046775600f" "ru") + ("1fvz23nphs9i4gdkx9fcy5ahdk2f879281pchclwi0qlciq7digr" "61ea93a50fff" "sco") + ("0yc1iwqbnpnf1i7yz3zqrx6g8pinc7l53pvbczywfkq3rz6wmmf5" "2b134d24c046" "si") + ("0kizljksn2vn4yw7qlv7c8h2m75f7n9ddg6n6ag3hwxxip83hn4y" "6d69c24dc8db" "sk") + ("1ll936b18wy464623jc5smf3c6dpimh0qwn28a991h7zcw31n3kp" "29e195d1d160" "sl") + ("14w9n994z9gf0wx7vrqisyxkngvhmmnayx8r0vwiq8k7jy81sxlm" "60a3b235fe1d" "son") + ("0z7bcfvq6x6dxf4d4bbjsg36r5npkr89087b0j360ljampk6c2fn" "8588cbc89847" "sq") + ("1fcq9g89lhzckzr2qb6x0w0z6q486n9jdqfi6h70dx8b069b3jfj" "198f7e89f10d" "sr") + ("0ap3m1sbibnaj9s2l139m7l8cc8s2ky4jlxwgzbxdzvqxfz7n954" "b098e2ebc049" "sv-SE") + ("0k93gnwfs5mahb9vz1c65ddcbkav0cwhxnrww3qk7gcmn7q88gqk" "25951b964d5b" "szl") + ("0b0v5pcwvhvhg8vlzy26g3j0m1r8svrpq07hq0q7lxldwlb48phz" "94659c83c9d8" "ta") + ("1v35cl6m3ikzsriq6zkjzjs3p9bhl8zmbp2gl14mga1f1zy4kcah" "eb59646a5d36" "te") + ("0y3r30mjgxngjraqmf5cm00kgqx2pvhbvy8sfxb3fhypv9vda3yr" "10d257301a2d" "th") + ("1inyqk495py20jwjvs4yl0n5ncf3hhb896bs1lwfsgpvbvr5hbq1" "9be6adca0e51" "tl") + ("0vsirjs655cia9n8dys2r84bvg303hcxkk2w6a9j3dkbifq5ymk6" "51354c936bf6" "tr") + ("050x882c0ywil290k4g861njw70ffw2y55dqk3w0kffi972mm909" "d7510f2d01dc" "trs") + ("001ykwxkwibavbi1k42b1hmysb3gmrwcs68zmw96m1vc80p29nz1" "4d1fa878042b" "uk") + ("0lsz6jlmmsqdg47pdx8b1djjvcavi0wlyr0mkpyhjgpginag21zx" "ad3035f28183" "ur") + ("0d3ggm3q76pkpg4n3lz2ji4pbb47n885byqxbp7sk6n9vlgzir7l" "8ea7a5a051db" "uz") + ("0v7d8y6xsr6yf2s1sjxnsjmw0hdnj91f0w2da6spkifb52lmbv6v" "67fe2acb306f" "vi") + ("0j8l09vzqlw4zlkyp6wkh44c5gr1xgbcmnawks1zj7xz02ambwii" "abc22dfb6d84" "xh") + ("1c01pbyswixkjg42714fvfy33b09mpdbf4d8f8kcs88c86jpf07z" "d6d6f9bb6113" "zh-CN") + ("0yq8fqdz862pnlbvfsqfc152rhpsqgncvp8bqkd653mdfv4qkwr4" "0cbdc5f1a048" "zh-TW"))) + +;; XXXX: Workaround 'snippet' limitations. +(define computed-origin-method (@@ (guix packages) computed-origin-method)) + +(define %icecat-version "91.2.0-guix0-preview1") +(define %icecat-build-id "20211006000000") ;must be of the form YYYYMMDDhhmmss + +;; 'icecat-source' is a "computed" origin that generates an IceCat tarball +;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' +;; script from the upstream IceCat project. +(define icecat-source + (let* ((base-version (first (string-split %icecat-version #\-))) + + (major-version (first (string-split base-version #\.))) + (minor-version (second (string-split base-version #\.))) + (sub-version (third (string-split base-version #\.))) + + (upstream-firefox-version (string-append base-version "esr")) + (upstream-firefox-source + (origin + (method url-fetch) + (uri (string-append + "https://ftp.mozilla.org/pub/firefox/releases/" + upstream-firefox-version "/source/" + "firefox-" upstream-firefox-version ".source.tar.xz")) + (sha256 + (base32 + "1hs2bvzl0d4kfir3gq997kwxm90ygapqn6xlw47cihnh479wzwry")))) + + (upstream-icecat-base-version "91.2.0") ; maybe older than base-version + ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) + (gnuzilla-commit "1537880dac3087d3779543303f0df83432831166") + (gnuzilla-source + (origin + (method git-fetch) + (uri (git-reference + (url "git://git.savannah.gnu.org/gnuzilla.git") + (commit gnuzilla-commit))) + (file-name (git-file-name "gnuzilla" + ;;upstream-icecat-base-version + (string-take gnuzilla-commit 8))) + (sha256 + (base32 + "16r42hp05qmiifw8ym89328w5b4flp3hngpjwbrzgq23q1qmixa9")))) + + ;; 'search-patch' returns either a valid file name or #f, so wrap it + ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. + (gnuzilla-fixes-patch + (local-file (assume-valid-file-name + (search-patch "icecat-use-older-reveal-hidden-html.patch")))) + (makeicecat-patch + (local-file (assume-valid-file-name + (search-patch "icecat-makeicecat.patch"))))) + + (origin + (method computed-origin-method) + (file-name (string-append "icecat-" %icecat-version ".tar.xz")) + (sha256 #f) + (uri + (delay + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (let ((firefox-dir + (string-append "firefox-" #$base-version)) + (icecat-dir + (string-append "icecat-" #$%icecat-version))) + + (set-path-environment-variable + "PATH" '("bin") + (list #+rename + #+python + #+(canonical-package bash) + #+(canonical-package coreutils) + #+(canonical-package findutils) + #+(canonical-package patch) + #+(canonical-package xz) + #+(canonical-package sed) + #+(canonical-package grep) + #+(canonical-package bzip2) + #+(canonical-package gzip) + #+(canonical-package tar))) + + (set-path-environment-variable + "PYTHONPATH" + (list #+(format #f "lib/python~a/site-packages" + (version-major+minor + (package-version python)))) + '#+(cons python-jsonschema + (map second + (package-transitive-propagated-inputs + python-jsonschema)))) + + ;; Needed by the 'makeicecat' script. + (setenv "RENAME_CMD" "rename") + + ;; We copy the gnuzilla source directory because it is + ;; read-only in 'gnuzilla-source', and the makeicecat script + ;; uses "cp -a" to copy parts of it and assumes that the + ;; copies will be writable. + (copy-recursively #+gnuzilla-source "/tmp/gnuzilla" + #:log (%make-void-port "w")) + + (with-directory-excursion "/tmp/gnuzilla" + (make-file-writable "makeicecat") + (invoke "patch" "--force" "--no-backup-if-mismatch" + "-p1" "--input" #+gnuzilla-fixes-patch) + (invoke "patch" "--force" "--no-backup-if-mismatch" + "-p1" "--input" #+makeicecat-patch) + (patch-shebang "makeicecat") + (substitute* "makeicecat" + (("^readonly FFMAJOR=(.*)" all ffmajor) + (unless (string=? #$major-version + (string-trim-both ffmajor)) + ;; The makeicecat script cannot be expected to work + ;; properly on a different version of Firefox, even if + ;; no errors occur during execution. + (error "makeicecat major version mismatch")) + (string-append "readonly FFMAJOR=" #$major-version "\n")) + (("^readonly FFMINOR=.*") + (string-append "readonly FFMINOR=" #$minor-version "\n")) + (("^readonly FFSUB=.*") + (string-append "readonly FFSUB=" #$sub-version "\n")) + (("^readonly DATADIR=.*") + "readonly DATADIR=/tmp/gnuzilla/data\n") + (("^readonly SOURCEDIR=.*") + (string-append "readonly SOURCEDIR=" icecat-dir "\n")) + (("/bin/sed") + #+(file-append (canonical-package sed) "/bin/sed")))) + + (format #t "Unpacking upstream firefox tarball...~%") + (force-output) + (invoke "tar" "xf" #+upstream-firefox-source) + (rename-file firefox-dir icecat-dir) + + (with-directory-excursion icecat-dir + (format #t "Populating l10n directory...~%") + (force-output) + (mkdir "l10n") + (with-directory-excursion "l10n" + (for-each + (lambda (locale-dir) + (let ((locale + (string-drop (basename locale-dir) + (+ 32 ; length of hash + (string-length "-mozilla-locale-"))))) + (format #t " ~a~%" locale) + (force-output) + (copy-recursively locale-dir locale + #:log (%make-void-port "w")) + (for-each make-file-writable (find-files locale)) + (with-directory-excursion locale + (when (file-exists? ".hgtags") + (delete-file ".hgtags")) + (mkdir-p "browser/chrome/browser/preferences") + (call-with-output-file + "browser/chrome/browser/preferences/advanced-scripts.dtd" + (lambda (port) #f))))) + '#+all-mozilla-locales) + (copy-recursively #+mozilla-compare-locales + "compare-locales" + #:log (%make-void-port "w")) + (delete-file "compare-locales/.gitignore") + (delete-file "compare-locales/.hgignore") + (delete-file "compare-locales/.hgtags"))) + + (format #t "Running makeicecat script...~%") + (force-output) + (invoke "bash" "/tmp/gnuzilla/makeicecat") + + (format #t "Packing IceCat source tarball...~%") + (force-output) + (invoke "tar" "cfa" #$output + ;; Avoid non-determinism in the archive. We set the + ;; mtime of files in the archive to early 1980 because + ;; the build process fails if the mtime of source + ;; files is pre-1980, due to the creation of zip + ;; archives. + "--mtime=@315619200" ; 1980-01-02 UTC + "--owner=root:0" + "--group=root:0" + "--sort=name" + icecat-dir) + + #t)))))))) + +(define-public icecat + (package + (name "icecat") + (version %icecat-version) + (source icecat-source) + (build-system gnu-build-system) + (inputs + `(("alsa-lib" ,alsa-lib) + ("bzip2" ,bzip2) + ("cups" ,cups) + ("dbus-glib" ,dbus-glib) + ("gdk-pixbuf" ,gdk-pixbuf) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("gtk+-2" ,gtk+-2) + ;; UNBUNDLE-ME! ("graphite2" ,graphite2) + ("cairo" ,cairo) + ("pango" ,pango) + ("freetype" ,freetype) + ("font-dejavu" ,font-dejavu) + ;; UNBUNDLE-ME! ("harfbuzz" ,harfbuzz) + ("libcanberra" ,libcanberra) + ("libgnome" ,libgnome) + ("libjpeg-turbo" ,libjpeg-turbo) + ("libpng-apng" ,libpng-apng) + ;; UNBUNDLE-ME! ("libogg" ,libogg) + ;; UNBUNDLE-ME! ("libtheora" ,libtheora) ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! ("libvorbis" ,libvorbis) + ("libxft" ,libxft) + ("libevent" ,libevent) + ("libxinerama" ,libxinerama) + ("libxscrnsaver" ,libxscrnsaver) + ("libxcomposite" ,libxcomposite) + ("libxt" ,libxt) + ("libffi" ,libffi) + ("ffmpeg" ,ffmpeg) + ("libvpx" ,libvpx) + ("icu4c" ,icu4c-69) + ("pixman" ,pixman) + ("pulseaudio" ,pulseaudio) + ("mesa" ,mesa) + ("pciutils" ,pciutils) + ("mit-krb5" ,mit-krb5) + ("hunspell" ,hunspell) + ("libnotify" ,libnotify) + ;; See + ;; and related comments in the 'remove-bundled-libraries' phase. + ;; UNBUNDLE-ME! ("nspr" ,nspr) + ;; UNBUNDLE-ME! ("nss" ,nss) + ("shared-mime-info" ,shared-mime-info) + ("sqlite" ,sqlite) + ("eudev" ,eudev) + ("unzip" ,unzip) + ("zip" ,zip) + ("zlib" ,zlib))) + (native-inputs + ;; The following patches are specific to the Guix packaging of IceCat, + ;; and therefore we prefer to leave them out of 'source', which should be + ;; a tarball suitable for compilation on any system that IceCat supports. + ;; (Bug fixes and security fixes, however, should go in 'source'). + `(;; XXX TODO: Adapt these patches to IceCat 91. + ;; ("icecat-avoid-bundled-libraries.patch" + ;; ,(search-patch "icecat-avoid-bundled-libraries.patch")) + ;; ("icecat-use-system-graphite2+harfbuzz.patch" + ;; ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch")) + ;; ("icecat-use-system-media-libs.patch" + ;; ,(search-patch "icecat-use-system-media-libs.patch")) + + ("patch" ,(canonical-package patch)) + + ("rust" ,rust-1.51) + ("cargo" ,rust-1.51 "cargo") + ("rust-cbindgen" ,rust-cbindgen-0.19) + ("llvm" ,llvm-11) + ("clang" ,clang-11) + ("perl" ,perl) + ("node" ,node) + ("python" ,python) + ("python-2" ,python-2) + ("python2-pysqlite" ,python2-pysqlite) + ("yasm" ,yasm) + ("nasm" ,nasm) ; XXX FIXME: only needed on x86_64 and i686 + ("pkg-config" ,pkg-config) + ("m4" ,m4) + ("which" ,which))) + (arguments + `(#:tests? #f ;not worth the cost + + ;; Some dynamic lib was determined at runtime, so rpath check may fail. + #:validate-runpath? #f + + #:configure-flags `("--enable-application=browser" + "--with-distribution-id=org.gnu" + + ;; Do not require addons in the global app or + ;; system directories to be signed by Mozilla. + "--with-unsigned-addon-scopes=app,system" + "--allow-addon-sideload" + + "--enable-pulseaudio" + + "--disable-tests" + "--disable-updater" + "--disable-crashreporter" + "--disable-eme" + + ;; Building with debugging symbols takes ~5GiB, so + ;; disable it. + "--disable-debug" + "--disable-debug-symbols" + + "--enable-rust-simd" + "--enable-release" + "--enable-optimize" + "--enable-strip" + "--disable-elf-hack" + + ;; Clang is needed to build Stylo, Mozilla's new + ;; CSS engine. We must specify the clang paths + ;; manually, because otherwise the Mozilla build + ;; system looks in the directories returned by + ;; llvm-config --bindir and llvm-config --libdir, + ;; which return paths in the llvm package where + ;; clang is not found. + ,(string-append "--with-clang-path=" + (assoc-ref %build-inputs "clang") + "/bin/clang") + ,(string-append "--with-libclang-path=" + (assoc-ref %build-inputs "clang") + "/lib") + + ;; Hack to work around missing + ;; "unofficial" branding in icecat. + "--enable-official-branding" + + ;; Avoid bundled libraries. + "--with-system-jpeg" ; must be libjpeg-turbo + "--with-system-png" ; must be libpng-apng + "--with-system-zlib" + ;; UNBUNDLE-ME! "--with-system-bz2" + ;; UNBUNDLE-ME! "--with-system-libevent" + ;; UNBUNDLE-ME! "--with-system-ogg" + ;; UNBUNDLE-ME! "--with-system-vorbis" + ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! "--with-system-libvpx" + "--with-system-icu" + + ;; See + ;; and related comments in the + ;; 'remove-bundled-libraries' phase below. + ;; UNBUNDLE-ME! "--with-system-nspr" + ;; UNBUNDLE-ME! "--with-system-nss" + + ;; UNBUNDLE-ME! "--with-system-harfbuzz" + ;; UNBUNDLE-ME! "--with-system-graphite2" + "--enable-system-pixman" + "--enable-system-ffi" + ;; UNBUNDLE-ME! "--enable-system-sqlite" + ) + + #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums' + + #:modules ((ice-9 ftw) + (ice-9 match) + (srfi srfi-1) + (srfi srfi-26) + (rnrs bytevectors) + (rnrs io ports) + (guix elf) + (guix build gremlin) + ,@%gnu-build-system-modules) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'apply-guix-specific-patches + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((patch (string-append (assoc-ref (or native-inputs inputs) + "patch") + "/bin/patch"))) + (for-each (match-lambda + ((label . file) + (when (and (string-prefix? "icecat-" label) + (string-suffix? ".patch" label)) + (format #t "applying '~a'...~%" file) + (invoke patch "--force" "--no-backup-if-mismatch" + "-p1" "--input" file)))) + (or native-inputs inputs))) + #t)) + (add-after 'apply-guix-specific-patches 'remove-bundled-libraries + (lambda _ + ;; Remove bundled libraries that we don't use, since they may + ;; contain unpatched security flaws, they waste disk space and + ;; memory, and may cause confusion. + (for-each (lambda (file) + (format #t "deleting '~a'...~%" file) + (delete-file-recursively file)) + '(;; FIXME: Removing the bundled icu breaks configure. + ;; * The bundled icu headers are used in some places. + ;; * The version number is taken from the bundled copy. + ;;"intl/icu" + ;; + ;; FIXME: A script from the bundled nspr is used. + ;;"nsprpub" + ;; + ;; FIXME: With the update to IceCat 60, using system NSS + ;; broke certificate validation. See + ;; . For now, we use + ;; the bundled NSPR and NSS. TODO: Investigate, + ;; and try to unbundle these libraries again. + ;; UNBUNDLE-ME! "security/nss" + ;; + ;; TODO: Use more system media libraries. See: + ;; + ;; * libtheora: esr60 wants v1.2, not yet released. + ;; * soundtouch: avoiding the bundled library would + ;; result in some loss of functionality. There's + ;; also an issue with exception handling + ;; configuration. It seems that this is needed in + ;; some moz.build: + ;; DEFINES['ST_NO_EXCEPTION_HANDLING'] = 1 + ;; * libopus + ;; * speex + ;; + "modules/freetype2" + ;; "media/libjpeg" ; needed for now, because media/libjpeg/moz.build is referenced from config/external/moz.build + ;; UNBUNDLE-ME! "modules/zlib" + ;; UNBUNDLE-ME! "ipc/chromium/src/third_party/libevent" + ;; UNBUNDLE-ME! "media/libvpx" + ;; UNBUNDLE-ME! "media/libogg" + ;; UNBUNDLE-ME! "media/libvorbis" + ;; UNBUNDLE-ME! "media/libtheora" ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! "media/libtremor" + ;; UNBUNDLE-ME! "gfx/harfbuzz" + ;; UNBUNDLE-ME! "gfx/graphite2" + "js/src/ctypes/libffi" + ;; UNBUNDLE-ME! "db/sqlite3" + )) + #t)) + (add-after 'remove-bundled-libraries 'fix-ffmpeg-runtime-linker + (lambda* (#:key inputs #:allow-other-keys) + (let* ((ffmpeg (assoc-ref inputs "ffmpeg")) + (libavcodec (string-append ffmpeg "/lib/libavcodec.so"))) + ;; Arrange to load libavcodec.so by its absolute file name. + (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp" + (("libavcodec\\.so") + libavcodec)) + #t))) + (add-after 'fix-ffmpeg-runtime-linker 'build-sandbox-whitelist + (lambda* (#:key inputs #:allow-other-keys) + (define (runpath-of lib) + (call-with-input-file lib + (compose elf-dynamic-info-runpath + elf-dynamic-info + parse-elf + get-bytevector-all))) + (define (runpaths-of-input label) + (let* ((dir (string-append (assoc-ref inputs label) "/lib")) + (libs (find-files dir "\\.so$"))) + (append-map runpath-of libs))) + ;; Populate the sandbox read-path whitelist as needed by ffmpeg. + (let* ((whitelist + (map (cut string-append <> "/") + (delete-duplicates + `(,(string-append (assoc-ref inputs "shared-mime-info") + "/share/mime") + ,(string-append (assoc-ref inputs "font-dejavu") + "/share/fonts") + ,@(append-map runpaths-of-input + '("mesa" "ffmpeg")))))) + (whitelist-string (string-join whitelist ",")) + (port (open-file "browser/app/profile/icecat.js" "a"))) + (format #t "setting 'security.sandbox.content.read_path_whitelist' to '~a'~%" + whitelist-string) + (format port "~%pref(\"security.sandbox.content.read_path_whitelist\", ~S);~%" + whitelist-string) + (close-output-port port)) + #t)) + (add-after 'patch-source-shebangs 'patch-cargo-checksums + (lambda _ + (use-modules (guix build cargo-utils)) + (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")) + (for-each (lambda (file) + (format #t "patching checksums in ~a~%" file) + (substitute* file + (("^checksum = \".*\"") + (string-append "checksum = \"" null-hash "\"")))) + (find-files "." "Cargo.lock$")) + (for-each generate-all-checksums + '("services" + "js" + "third_party/rust" + "dom/media" + "dom/webauthn" + "toolkit" + "gfx" + "storage" + "modules" + "xpcom/rust" + "media" + "mozglue/static/rust" + "netwerk" + "remote" + "intl" + "servo" + "security/manager/ssl" + "build"))) + #t)) + (delete 'bootstrap) + (replace 'configure + ;; configure does not work followed by both "SHELL=..." and + ;; "CONFIG_SHELL=..."; set environment variables instead + (lambda* (#:key outputs configure-flags #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bash (which "bash")) + (abs-srcdir (getcwd)) + (flags `(,(string-append "--prefix=" out) + ,(string-append "--with-l10n-base=" + abs-srcdir "/l10n") + ,@configure-flags))) + (setenv "SHELL" bash) + (setenv "CONFIG_SHELL" bash) + + (setenv "AR" "llvm-ar") + (setenv "NM" "llvm-nm") + (setenv "CC" "clang") + (setenv "CXX" "clang++") + (setenv "LDFLAGS" (string-append "-Wl,-rpath=" + (assoc-ref outputs "out") + "/lib/icecat")) + + (setenv "MACH_USE_SYSTEM_PYTHON" "1") + (setenv "MOZ_NOSPAM" "1") + (setenv "MOZ_BUILD_DATE" ,%icecat-build-id) ; avoid timestamp + + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" flags) + + (call-with-output-file "mozconfig" + (lambda (out) + (for-each (lambda (flag) + (format out "ac_add_options ~a\n" flag)) + flags))) + + (invoke "./mach" "configure")))) + (replace 'build + (lambda* (#:key (make-flags '()) (parallel-build? #t) + #:allow-other-keys) + (apply invoke "./mach" "build" + ;; mach will use parallel build if possible by default + `(,@(if parallel-build? + '() + '("-j1")) + ,@make-flags)))) + (add-after 'build 'neutralise-store-references + (lambda _ + ;; Mangle the store references to compilers & other build tools in + ;; about:buildconfig, reducing IceCat's closure by 1 GiB on x86-64. + (let* ((obj-dir (match (scandir "." (cut string-prefix? "obj-" <>)) + ((dir) dir))) + (file (string-append + obj-dir + "/dist/bin/chrome/toolkit/content/global/buildconfig.html"))) + (substitute* file + (("[0-9a-df-np-sv-z]{32}" hash) + (string-append (string-take hash 8) + "" + (string-drop hash 8))))) + #t)) + (replace 'install + (lambda _ (invoke "./mach" "install"))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (gtk (assoc-ref inputs "gtk+")) + (gtk-share (string-append gtk "/share")) + (ld-libs (map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib")) + '("libpng-apng" + "libxscrnsaver" + "mesa" + "pciutils" + "mit-krb5" + "eudev" + "pulseaudio" + ;; For the integration of native notifications + "libnotify")))) + (wrap-program (car (find-files lib "^icecat$")) + `("XDG_DATA_DIRS" prefix (,gtk-share)) + ;; The following line is commented out because the icecat + ;; package on guix has been observed to be unstable when + ;; using wayland, and the bundled extensions stop working. + ;; `("MOZ_ENABLE_WAYLAND" = ("1")) + `("LD_LIBRARY_PATH" prefix ,ld-libs)) + #t))) + (add-after 'wrap-program 'install-desktop-entry + (lambda* (#:key outputs #:allow-other-keys) + ;; Install the '.desktop' file. + (let* ((desktop-file "taskcluster/docker/icecat-snap/icecat.desktop") + (out (assoc-ref outputs "out")) + (applications (string-append out "/share/applications"))) + (substitute* desktop-file + (("^Exec=icecat") (string-append "Exec=" out "/bin/icecat")) + (("IceCat") "GNU IceCat") + (("Icon=.*") "Icon=icecat\n") + (("NewWindow") "new-window") + (("NewPrivateWindow") "new-private-window")) + (install-file desktop-file applications) + #t))) + (add-after 'install-desktop-entry 'install-icons + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion "browser/branding/official" + (for-each + (lambda (file) + (let* ((size (string-filter char-numeric? file)) + (icons (string-append out "/share/icons/hicolor/" + size "x" size "/apps"))) + (mkdir-p icons) + (copy-file file (string-append icons "/icecat.png")))) + '("default16.png" "default22.png" "default24.png" + "default32.png" "default48.png" "content/icon64.png" + "mozicon128.png" "default256.png")) + #t))))))) + (home-page "https://www.gnu.org/software/gnuzilla/") + (synopsis "Entirely free browser derived from Mozilla Firefox") + (description + "IceCat is the GNU version of the Firefox browser. It is entirely free +software, which does not recommend non-free plugins and addons. It also +features built-in privacy-protecting features. + +WARNING: IceCat 91 has not yet been released by the upstream IceCat project. +This is a preview release, and does not currently meet the privacy-respecting +standards of the IceCat project.") + (license license:mpl2.0) ;and others, see toolkit/content/license.html + (properties + `((ftp-directory . "/gnu/gnuzilla") + (cpe-name . "firefox_esr") + (cpe-version . ,(first (string-split version #\-))))))) + +(define mozilla-78-compare-locales + (origin + (method hg-fetch) + (uri (hg-reference + (url "https://hg.mozilla.org/l10n/compare-locales/") + (changeset "RELEASE_8_0_0"))) + (file-name "mozilla-compare-locales") + (sha256 (base32 "0052wq92sg4i776x407b5838jx9h3phl9xy69m2q34f31n3gdyk2")))) + +(define all-mozilla-78-locales (mozilla-locales ;; sha256 changeset locale ;;--------------------------------------------------------------------------- @@ -682,17 +1422,10 @@ (define all-mozilla-locales ("1j6l66v1xw27z8w78mpsnmqgv8m277mf4r0hgqcrb4zx7xc2vqyy" "527e5e090608" "zh-CN") ("1frwx35klpyz3sdwrkz7945ivb2dwaawhhyfnz4092h9hn7rc4ky" "6cd366ad2947" "zh-TW"))) -;; XXXX: Workaround 'snippet' limitations. -(define computed-origin-method (@@ (guix packages) computed-origin-method)) +(define %icecat-78-version "78.15.0-guix0-preview1") -(define %icecat-version "78.15.0-guix0-preview1") -(define %icecat-build-id "20211005000000") ;must be of the form YYYYMMDDhhmmss - -;; 'icecat-source' is a "computed" origin that generates an IceCat tarball -;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' -;; script from the upstream IceCat project. -(define icecat-source - (let* ((base-version (first (string-split %icecat-version #\-))) +(define icecat-78-source + (let* ((base-version (first (string-split %icecat-78-version #\-))) (major-version (first (string-split base-version #\.))) (minor-version (second (string-split base-version #\.))) @@ -733,11 +1466,11 @@ (define icecat-source (search-patch "icecat-use-older-reveal-hidden-html.patch")))) (makeicecat-patch (local-file (assume-valid-file-name - (search-patch "icecat-makeicecat.patch"))))) + (search-patch "icecat-78-makeicecat.patch"))))) (origin (method computed-origin-method) - (file-name (string-append "icecat-" %icecat-version ".tar.xz")) + (file-name (string-append "icecat-" %icecat-78-version ".tar.xz")) (sha256 #f) (uri (delay @@ -747,7 +1480,7 @@ (define icecat-source (let ((firefox-dir (string-append "firefox-" #$base-version)) (icecat-dir - (string-append "icecat-" #$%icecat-version))) + (string-append "icecat-" #$%icecat-78-version))) (mkdir "/tmp/bin") (set-path-environment-variable @@ -828,8 +1561,8 @@ (define icecat-source (call-with-output-file "browser/chrome/browser/preferences/advanced-scripts.dtd" (lambda (port) #f))))) - '#+all-mozilla-locales) - (copy-recursively #+mozilla-compare-locales + '#+all-mozilla-78-locales) + (copy-recursively #+mozilla-78-compare-locales "compare-locales" #:log (%make-void-port "w")) (delete-file "compare-locales/.gitignore") @@ -856,452 +1589,13 @@ (define icecat-source #t)))))))) -(define-public icecat - (package - (name "icecat") - (version %icecat-version) - (source icecat-source) - (build-system gnu-build-system) - (inputs - `(("alsa-lib" ,alsa-lib) - ("bzip2" ,bzip2) - ("cups" ,cups) - ("dbus-glib" ,dbus-glib) - ("gdk-pixbuf" ,gdk-pixbuf) - ("glib" ,glib) - ("gtk+" ,gtk+) - ("gtk+-2" ,gtk+-2) - ;; UNBUNDLE-ME! ("graphite2" ,graphite2) - ("pango" ,pango) - ("freetype" ,freetype) - ;; UNBUNDLE-ME! ("harfbuzz" ,harfbuzz) - ("libcanberra" ,libcanberra) - ("libgnome" ,libgnome) - ("libjpeg-turbo" ,libjpeg-turbo) - ;; UNBUNDLE-ME! ("libogg" ,libogg) - ;; UNBUNDLE-ME! ("libtheora" ,libtheora) ; wants theora-1.2, not yet released - ;; UNBUNDLE-ME! ("libvorbis" ,libvorbis) - ("libxft" ,libxft) - ("libevent" ,libevent) - ("libxinerama" ,libxinerama) - ("libxscrnsaver" ,libxscrnsaver) - ("libxcomposite" ,libxcomposite) - ("libxt" ,libxt) - ("libffi" ,libffi) - ("ffmpeg" ,ffmpeg) - ;; UNBUNDLE-ME! ("libvpx" ,libvpx) - ("icu4c" ,icu4c-67) - ("pixman" ,pixman) - ("pulseaudio" ,pulseaudio) - ("mesa" ,mesa) - ("mit-krb5" ,mit-krb5) - ;; See - ;; and related comments in the 'remove-bundled-libraries' phase. - ;; UNBUNDLE-ME! ("nspr" ,nspr) - ;; UNBUNDLE-ME! ("nss" ,nss) - ("shared-mime-info" ,shared-mime-info) - ;; UNBUNDLE-ME! ("sqlite" ,sqlite) - ("eudev" ,eudev) - ("unzip" ,unzip) - ("zip" ,zip) - ;; UNBUNDLE-ME! ("zlib" ,zlib) - )) - (native-inputs - ;; The following patches are specific to the Guix packaging of IceCat, - ;; and therefore we prefer to leave them out of 'source', which should be - ;; a tarball suitable for compilation on any system that IceCat supports. - ;; (Bug fixes and security fixes, however, should go in 'source'). - `(;; XXX TODO: Adapt these patches to IceCat 68. - ;; ("icecat-avoid-bundled-libraries.patch" - ;; ,(search-patch "icecat-avoid-bundled-libraries.patch")) - ;; ("icecat-use-system-graphite2+harfbuzz.patch" - ;; ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch")) - ;; ("icecat-use-system-media-libs.patch" - ;; ,(search-patch "icecat-use-system-media-libs.patch")) - - ("patch" ,(canonical-package patch)) - - ("rust" ,rust-1.41) - ("cargo" ,rust-1.41 "cargo") - ("rust-cbindgen" ,rust-cbindgen-0.14) - ("llvm" ,llvm) - ("clang" ,clang) - ("perl" ,perl) - ("node" ,node) - ("python" ,python) - ("python-2" ,python-2) - ("python2-pysqlite" ,python2-pysqlite) - ("yasm" ,yasm) - ("nasm" ,nasm) ; XXX FIXME: only needed on x86_64 and i686 - ("pkg-config" ,pkg-config) - ("autoconf" ,autoconf-2.13) - ("which" ,which))) - (arguments - `(#:tests? #f ; no check target - #:out-of-source? #t ; must be built outside of the source directory - - #:configure-flags `("--enable-default-toolkit=cairo-gtk3-wayland" - - "--with-distribution-id=org.gnu" - - ;; Do not require addons in the global app or - ;; system directories to be signed by Mozilla. - "--with-unsigned-addon-scopes=app,system" - "--allow-addon-sideload" - - "--enable-pulseaudio" - - "--disable-tests" - "--disable-updater" - "--disable-crashreporter" - "--disable-eme" - - ;; Building with debugging symbols takes ~5GiB, so - ;; disable it. - "--disable-debug" - "--disable-debug-symbols" - - ;; Clang is needed to build Stylo, Mozilla's new - ;; CSS engine. We must specify the clang paths - ;; manually, because otherwise the Mozilla build - ;; system looks in the directories returned by - ;; llvm-config --bindir and llvm-config --libdir, - ;; which return paths in the llvm package where - ;; clang is not found. - ,(string-append "--with-clang-path=" - (assoc-ref %build-inputs "clang") - "/bin/clang") - ,(string-append "--with-libclang-path=" - (assoc-ref %build-inputs "clang") - "/lib") - - ;; Hack to work around missing - ;; "unofficial" branding in icecat. - "--enable-official-branding" - - ;; Avoid bundled libraries. - "--with-system-jpeg" ; must be libjpeg-turbo - ;; UNBUNDLE-ME! "--with-system-zlib" - ;; UNBUNDLE-ME! "--with-system-bz2" - ;; UNBUNDLE-ME! "--with-system-libevent" - ;; UNBUNDLE-ME! "--with-system-ogg" - ;; UNBUNDLE-ME! "--with-system-vorbis" - ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released - ;; UNBUNDLE-ME! "--with-system-libvpx" - "--with-system-icu" - - ;; See - ;; and related comments in the - ;; 'remove-bundled-libraries' phase below. - ;; UNBUNDLE-ME! "--with-system-nspr" - ;; UNBUNDLE-ME! "--with-system-nss" - - ;; UNBUNDLE-ME! "--with-system-harfbuzz" - ;; UNBUNDLE-ME! "--with-system-graphite2" - "--enable-system-pixman" - "--enable-system-ffi" - ;; UNBUNDLE-ME! "--enable-system-sqlite" - - ;; Fails with "--with-system-png won't work because - ;; the system's libpng doesn't have APNG support". - ;; According to - ;; http://sourceforge.net/projects/libpng-apng/ , - ;; "the Animated Portable Network Graphics (APNG) - ;; is an unofficial extension of the Portable - ;; Network Graphics (PNG) format"; - ;; we probably do not wish to support it. - ;; "--with-system-png" - ) - - #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums' - - #:modules ((ice-9 ftw) - (ice-9 rdelim) - (ice-9 regex) - (ice-9 match) - (srfi srfi-34) - (srfi srfi-35) - (rnrs bytevectors) - (rnrs io ports) - (guix elf) - (guix build gremlin) - ,@%gnu-build-system-modules) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'apply-guix-specific-patches - (lambda* (#:key inputs native-inputs #:allow-other-keys) - (let ((patch (string-append (assoc-ref (or native-inputs inputs) - "patch") - "/bin/patch"))) - (for-each (match-lambda - ((label . file) - (when (and (string-prefix? "icecat-" label) - (string-suffix? ".patch" label)) - (format #t "applying '~a'...~%" file) - (invoke patch "--force" "--no-backup-if-mismatch" - "-p1" "--input" file)))) - (or native-inputs inputs))) - #t)) - (add-after 'apply-guix-specific-patches 'remove-bundled-libraries - (lambda _ - ;; Remove bundled libraries that we don't use, since they may - ;; contain unpatched security flaws, they waste disk space and - ;; memory, and may cause confusion. - (for-each (lambda (file) - (format #t "deleting '~a'...~%" file) - (delete-file-recursively file)) - '(;; FIXME: Removing the bundled icu breaks configure. - ;; * The bundled icu headers are used in some places. - ;; * The version number is taken from the bundled copy. - ;;"intl/icu" - ;; - ;; FIXME: A script from the bundled nspr is used. - ;;"nsprpub" - ;; - ;; FIXME: With the update to IceCat 60, using system NSS - ;; broke certificate validation. See - ;; . For now, we use - ;; the bundled NSPR and NSS. TODO: Investigate, - ;; and try to unbundle these libraries again. - ;; UNBUNDLE-ME! "security/nss" - ;; - ;; TODO: Use more system media libraries. See: - ;; - ;; * libtheora: esr60 wants v1.2, not yet released. - ;; * soundtouch: avoiding the bundled library would - ;; result in some loss of functionality. There's - ;; also an issue with exception handling - ;; configuration. It seems that this is needed in - ;; some moz.build: - ;; DEFINES['ST_NO_EXCEPTION_HANDLING'] = 1 - ;; * libopus - ;; * speex - ;; - "modules/freetype2" - ;; "media/libjpeg" ; needed for now, because media/libjpeg/moz.build is referenced from config/external/moz.build - ;; UNBUNDLE-ME! "modules/zlib" - ;; UNBUNDLE-ME! "ipc/chromium/src/third_party/libevent" - ;; UNBUNDLE-ME! "media/libvpx" - ;; UNBUNDLE-ME! "media/libogg" - ;; UNBUNDLE-ME! "media/libvorbis" - ;; UNBUNDLE-ME! "media/libtheora" ; wants theora-1.2, not yet released - ;; UNBUNDLE-ME! "media/libtremor" - ;; UNBUNDLE-ME! "gfx/harfbuzz" - ;; UNBUNDLE-ME! "gfx/graphite2" - "js/src/ctypes/libffi" - ;; UNBUNDLE-ME! "db/sqlite3" - )) - #t)) - (add-after 'remove-bundled-libraries 'link-libxul-with-libraries - (lambda _ - ;; libxul.so dynamically opens libraries, so here we explicitly - ;; link them into libxul.so instead. - ;; - ;; TODO: It might be preferable to patch in absolute file names in - ;; calls to dlopen or PR_LoadLibrary, but that didn't seem to - ;; work. More investigation is needed. - (substitute* "toolkit/library/moz.build" - (("^# This library needs to be last" all) - (string-append "OS_LIBS += [ - 'GL', 'gnome-2', 'canberra', 'Xss', 'cups', 'gssapi_krb5', - 'avcodec', 'avutil', 'pulse' ]\n\n" - all))) - #t)) - (add-after 'link-libxul-with-libraries 'fix-ffmpeg-runtime-linker - (lambda* (#:key inputs #:allow-other-keys) - (let* ((ffmpeg (assoc-ref inputs "ffmpeg")) - (libavcodec (string-append ffmpeg "/lib/libavcodec.so"))) - ;; Arrange to load libavcodec.so by its absolute file name. - (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp" - (("libavcodec\\.so") - libavcodec)) - ;; Populate the sandbox read-path whitelist as needed by ffmpeg. - (let* ((mime-info (assoc-ref inputs "shared-mime-info")) - (libavcodec-runpath (call-with-input-file libavcodec - (compose elf-dynamic-info-runpath - elf-dynamic-info - parse-elf - get-bytevector-all))) - (whitelist (cons (string-append mime-info "/share/mime/") - (map (lambda (dir) - (string-append dir "/")) - libavcodec-runpath))) - (whitelist-string (string-join whitelist ",")) - (port (open-file "browser/app/profile/icecat.js" "a"))) - (format #t "setting 'security.sandbox.content.read_path_whitelist' to '~a'~%" - whitelist-string) - (format port "~%pref(\"security.sandbox.content.read_path_whitelist\", ~S);~%" - whitelist-string) - (close-output-port port)) - #t))) - (replace 'bootstrap - (lambda _ - (invoke "sh" "-c" "autoconf old-configure.in > old-configure") - ;; 'configure' must be newer than 'old-configure.in', or else the - ;; build system will raise an alarm and abort. - (invoke "touch" "configure"))) - (add-after 'patch-source-shebangs 'patch-cargo-checksums - (lambda _ - (use-modules (guix build cargo-utils)) - (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")) - (for-each (lambda (file) - (format #t "patching checksums in ~a~%" file) - (substitute* file - (("^checksum = \".*\"") - (string-append "checksum = \"" null-hash "\"")))) - (find-files "." "Cargo.lock$")) - (for-each generate-all-checksums - '("services" - "js" - "third_party/rust" - "dom/media" - "dom/webauthn" - "toolkit" - "gfx" - "storage" - "modules" - "xpcom/rust" - "media" - "mozglue/static/rust" - "netwerk" - "remote" - "intl" - "servo" - "security/manager/ssl" - "build"))) - #t)) - (replace 'configure - ;; configure does not work followed by both "SHELL=..." and - ;; "CONFIG_SHELL=..."; set environment variables instead - (lambda* (#:key outputs configure-flags #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bash (which "bash")) - (abs-srcdir (getcwd)) - (srcdir (string-append "../" (basename abs-srcdir))) - (flags `(,(string-append "--prefix=" out) - ,(string-append "--with-l10n-base=" - abs-srcdir "/l10n") - ,@configure-flags))) - (setenv "SHELL" bash) - (setenv "CONFIG_SHELL" bash) - (setenv "AUTOCONF" (which "autoconf")) ; must be autoconf-2.13 - (setenv "CC" "gcc") ; apparently needed when Stylo is enabled - (setenv "MOZ_BUILD_DATE" ,%icecat-build-id) ; avoid timestamp - (setenv "LDFLAGS" (string-append "-Wl,-rpath=" - (assoc-ref outputs "out") - "/lib/icecat")) - (mkdir "../build") - (chdir "../build") - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" flags) - (apply invoke bash - (string-append srcdir "/configure") - flags)))) - (replace 'build - ;; The build system often spuriously fails. See - ;; . To - ;; work around this, we try the standard 'build' phase up - ;; to 5 times. - (lambda args - (let ((build (assoc-ref %standard-phases 'build))) - (let retry ((remaining-attempts 5)) - (if (= remaining-attempts 1) - (apply build args) - (guard (c ((invoke-error? c) - (format #t "~%Retrying build! (~a attempts remaining)~%~%" - (- remaining-attempts 1)) - (force-output) - (retry (- remaining-attempts 1)))) - (apply build args))))))) - (add-after 'build 'neutralise-store-references - (lambda _ - ;; Mangle the store references to compilers & other build tools in - ;; about:buildconfig, reducing IceCat's closure by 1 GiB on x86-64. - (substitute* - "dist/bin/chrome/toolkit/content/global/buildconfig.html" - (((format #f "(~a/)([0-9a-df-np-sv-z]{32})" - (regexp-quote (%store-directory))) - _ store hash) - (string-append store - (string-take hash 8) - "" - (string-drop hash 8)))) - #t)) - (add-before 'configure 'install-desktop-entry - (lambda* (#:key outputs #:allow-other-keys) - ;; Install the '.desktop' file. - (let* ((desktop-file "taskcluster/docker/icecat-snap/icecat.desktop") - (out (assoc-ref outputs "out")) - (applications (string-append out "/share/applications"))) - (substitute* desktop-file - (("^Exec=icecat") (string-append "Exec=" out "/bin/icecat")) - (("IceCat") "GNU IceCat") - (("Icon=.*") "Icon=icecat\n") - (("NewWindow") "new-window") - (("NewPrivateWindow") "new-private-window")) - (install-file desktop-file applications) - #t))) - (add-after 'install-desktop-entry 'install-icons - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion "browser/branding/official" - (for-each - (lambda (file) - (let* ((size (string-filter char-numeric? file)) - (icons (string-append out "/share/icons/hicolor/" - size "x" size "/apps"))) - (mkdir-p icons) - (copy-file file (string-append icons "/icecat.png")))) - '("default16.png" "default22.png" "default24.png" - "default32.png" "default48.png" "content/icon64.png" - "mozicon128.png" "default256.png")) - #t)))) - ;; This fixes the file chooser crash that happens with GTK 3. - (add-after 'install 'wrap-program - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib")) - (gtk (assoc-ref inputs "gtk+")) - (gtk-share (string-append gtk "/share")) - (ld-libs (map (lambda (lib) - (string-append (assoc-ref inputs lib) - "/lib")) - '("libxscrnsaver" - "mesa" - "mit-krb5" - "eudev" - "pulseaudio")))) - (wrap-program (car (find-files lib "^icecat$")) - `("XDG_DATA_DIRS" prefix (,gtk-share)) - ;; The following line is commented out because the icecat - ;; package on guix has been observed to be unstable when - ;; using wayland, and the bundled extensions stop working. - ;; `("MOZ_ENABLE_WAYLAND" = ("1")) - `("LD_LIBRARY_PATH" prefix ,ld-libs)) - #t)))))) - (home-page "https://www.gnu.org/software/gnuzilla/") - (synopsis "Entirely free browser derived from Mozilla Firefox") - (description - "IceCat is the GNU version of the Firefox browser. It is entirely free -software, which does not recommend non-free plugins and addons. It also -features built-in privacy-protecting features. - -WARNING: IceCat 78 has not yet been released by the upstream IceCat project. -This is a preview release, and does not currently meet the privacy-respecting -standards of the IceCat project.") - (license license:mpl2.0) ;and others, see toolkit/content/license.html - (properties - `((ftp-directory . "/gnu/gnuzilla") - (cpe-name . "firefox_esr") - (cpe-version . ,(first (string-split version #\-))))))) - ;; Update this together with icecat! (define %icedove-build-id "20211008000000") ;must be of the form YYYYMMDDhhmmss (define-public icedove (package (name "icedove") (version "78.15.0") - (source icecat-source) + (source icecat-78-source) (properties `((cpe-name . "thunderbird_esr"))) (build-system gnu-build-system) diff --git a/gnu/packages/patches/icecat-78-makeicecat.patch b/gnu/packages/patches/icecat-78-makeicecat.patch new file mode 100644 index 0000000000..edd1ced257 --- /dev/null +++ b/gnu/packages/patches/icecat-78-makeicecat.patch @@ -0,0 +1,110 @@ +Make some of the changes needed to the 'makeicecat' script, to allow it to run +in a snippet without network access. After this patch is applied, some +additional changes will be made using 'substitute*'. + +diff --git a/makeicecat b/makeicecat +index 8be2362..48716f2 100755 +--- a/makeicecat ++++ b/makeicecat +@@ -31,55 +31,55 @@ SOURCEDIR=icecat-$FFVERSION + + DATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/data + +-mkdir -p output +-cd output ++# mkdir -p output ++# cd output + + ############################################################################### + # Retrieve FF source code + ############################################################################### + +-rm mozilla-esr${FFMAJOR} $SOURCEDIR -rf +- +-wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz +-wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc +-gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 +-gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc +-echo -n 1aa041db28cd742e93d663a9da8defd33040b38d8b9470350538473251621643 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - +- +-echo Extracting Firefox tarball +-tar -xf firefox-${FFVERSION}esr.source.tar.xz +- +-mv firefox-${FFVERSION} $SOURCEDIR ++# rm mozilla-esr${FFMAJOR} $SOURCEDIR -rf ++# ++# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz ++# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc ++# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 ++# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc ++# echo -n 1aa041db28cd742e93d663a9da8defd33040b38d8b9470350538473251621643 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - ++# ++# echo Extracting Firefox tarball ++# tar -xf firefox-${FFVERSION}esr.source.tar.xz ++# ++# mv firefox-${FFVERSION} $SOURCEDIR + + ############################################################################### + # Retrieve l10n + ############################################################################### + +-mkdir l10n +-cd l10n +-while read line;do +- line=$(echo $line |cut -d' ' -f1) +- #[ $line = "es-ES" ] || continue # To speed up testing +- [ $line = "en-US" ] && continue +- hg clone https://hg.mozilla.org/l10n-central/$line +- mkdir -p $line/browser/chrome/browser/preferences +- touch $line/browser/chrome/browser/preferences/advanced-scripts.dtd +- rm -rf $line/.hg* +-done < ../$SOURCEDIR/browser/locales/shipped-locales +-cd .. +- +-mv l10n $SOURCEDIR +- +-hg clone https://hg.mozilla.org/l10n/compare-locales/ +-cd compare-locales/ +-hg checkout RELEASE_8_0_0 +-cd .. +-rm compare-locales/.hg* compare-locales/.git* -rf +-mv compare-locales $SOURCEDIR/l10n ++# mkdir l10n ++# cd l10n ++# while read line;do ++# line=$(echo $line |cut -d' ' -f1) ++# #[ $line = "es-ES" ] || continue # To speed up testing ++# [ $line = "en-US" ] && continue ++# hg clone https://hg.mozilla.org/l10n-central/$line ++# mkdir -p $line/browser/chrome/browser/preferences ++# touch $line/browser/chrome/browser/preferences/advanced-scripts.dtd ++# rm -rf $line/.hg* ++# done < ../$SOURCEDIR/browser/locales/shipped-locales ++# cd .. ++# ++# mv l10n $SOURCEDIR ++# ++# hg clone https://hg.mozilla.org/l10n/compare-locales/ ++# cd compare-locales/ ++# hg checkout RELEASE_8_0_0 ++# cd .. ++# rm compare-locales/.hg* compare-locales/.git* -rf ++# mv compare-locales $SOURCEDIR/l10n + + ####################################################### + +-cd $SOURCEDIR ++# cd $SOURCEDIR + + shopt -s nullglob + for patch in $DATA/patches/*.patch; do +@@ -598,6 +598,6 @@ sed 's/777/755/;' -i toolkit/crashreporter/google-breakpad/Makefile.in + # Fix CVE-2012-3386 + /bin/sed 's/chmod a+w/chmod u+w/' -i ./js/src/ctypes/libffi/Makefile.in ./toolkit/crashreporter/google-breakpad/Makefile.in ./toolkit/crashreporter/google-breakpad/src/third_party/glog/Makefile.in || true + +-cd .. +-echo Packaging tarball +-tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR ++# cd .. ++# echo Packaging tarball ++# tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch index edd1ced257..c46cb27ff6 100644 --- a/gnu/packages/patches/icecat-makeicecat.patch +++ b/gnu/packages/patches/icecat-makeicecat.patch @@ -3,108 +3,49 @@ in a snippet without network access. After this patch is applied, some additional changes will be made using 'substitute*'. diff --git a/makeicecat b/makeicecat -index 8be2362..48716f2 100755 +index bf2b7a6..bc3b19b 100755 --- a/makeicecat +++ b/makeicecat -@@ -31,55 +31,55 @@ SOURCEDIR=icecat-$FFVERSION +@@ -58,7 +58,7 @@ readonly SOURCEDIR=icecat-${FFVERSION} + # debug/shell options + readonly DEVEL=0 + set -euo pipefail +-(( DEVEL )) && set -x ++set -x - DATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/data - --mkdir -p output --cd output -+# mkdir -p output -+# cd output ############################################################################### - # Retrieve FF source code +@@ -459,7 +459,7 @@ configure_search() + sed 's|ddg@|ddg-html@|' -i browser/components/search/extensions/ddg-html/manifest.json + + # Process various JSON pre-configuration dumps. +- python3 ../../tools/process-json-files.py . browser/components/extensions/schemas/ ++ python3 "${DATADIR}"/../tools/process-json-files.py . browser/components/extensions/schemas/ + } + + configure_mobile() +@@ -855,12 +855,12 @@ finalize_sourceball() + # entry point ############################################################################### --rm mozilla-esr${FFMAJOR} $SOURCEDIR -rf -- --wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz --wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc --gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 --gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc --echo -n 1aa041db28cd742e93d663a9da8defd33040b38d8b9470350538473251621643 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - -- --echo Extracting Firefox tarball --tar -xf firefox-${FFVERSION}esr.source.tar.xz -- --mv firefox-${FFVERSION} $SOURCEDIR -+# rm mozilla-esr${FFMAJOR} $SOURCEDIR -rf -+# -+# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz -+# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc -+# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 -+# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc -+# echo -n 1aa041db28cd742e93d663a9da8defd33040b38d8b9470350538473251621643 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - -+# -+# echo Extracting Firefox tarball -+# tar -xf firefox-${FFVERSION}esr.source.tar.xz -+# -+# mv firefox-${FFVERSION} $SOURCEDIR - - ############################################################################### - # Retrieve l10n - ############################################################################### - --mkdir l10n --cd l10n --while read line;do -- line=$(echo $line |cut -d' ' -f1) -- #[ $line = "es-ES" ] || continue # To speed up testing -- [ $line = "en-US" ] && continue -- hg clone https://hg.mozilla.org/l10n-central/$line -- mkdir -p $line/browser/chrome/browser/preferences -- touch $line/browser/chrome/browser/preferences/advanced-scripts.dtd -- rm -rf $line/.hg* --done < ../$SOURCEDIR/browser/locales/shipped-locales --cd .. -- --mv l10n $SOURCEDIR -- --hg clone https://hg.mozilla.org/l10n/compare-locales/ --cd compare-locales/ --hg checkout RELEASE_8_0_0 --cd .. --rm compare-locales/.hg* compare-locales/.git* -rf --mv compare-locales $SOURCEDIR/l10n -+# mkdir l10n -+# cd l10n -+# while read line;do -+# line=$(echo $line |cut -d' ' -f1) -+# #[ $line = "es-ES" ] || continue # To speed up testing -+# [ $line = "en-US" ] && continue -+# hg clone https://hg.mozilla.org/l10n-central/$line -+# mkdir -p $line/browser/chrome/browser/preferences -+# touch $line/browser/chrome/browser/preferences/advanced-scripts.dtd -+# rm -rf $line/.hg* -+# done < ../$SOURCEDIR/browser/locales/shipped-locales -+# cd .. -+# -+# mv l10n $SOURCEDIR -+# -+# hg clone https://hg.mozilla.org/l10n/compare-locales/ -+# cd compare-locales/ -+# hg checkout RELEASE_8_0_0 -+# cd .. -+# rm compare-locales/.hg* compare-locales/.git* -rf -+# mv compare-locales $SOURCEDIR/l10n - - ####################################################### - --cd $SOURCEDIR -+# cd $SOURCEDIR - - shopt -s nullglob - for patch in $DATA/patches/*.patch; do -@@ -598,6 +598,6 @@ sed 's/777/755/;' -i toolkit/crashreporter/google-breakpad/Makefile.in - # Fix CVE-2012-3386 - /bin/sed 's/chmod a+w/chmod u+w/' -i ./js/src/ctypes/libffi/Makefile.in ./toolkit/crashreporter/google-breakpad/Makefile.in ./toolkit/crashreporter/google-breakpad/src/third_party/glog/Makefile.in || true - --cd .. --echo Packaging tarball --tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR -+# cd .. -+# echo Packaging tarball -+# tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR +-validate_env || exit 1 +-prepare_env +-fetch_source +-verify_sources +-extract_sources +-fetch_l10n ++# validate_env || exit 1 ++# prepare_env ++# fetch_source ++# verify_sources ++# extract_sources ++# fetch_l10n + apply_patches + configure + configure_search +@@ -872,4 +872,4 @@ prepare_macos_packaging + configure_extensions + configure_onboarding + apply_bugfixes +-finalize_sourceball ++# finalize_sourceball From 97d8d2ad02dda331fa9dbef4ac2b01ebfd3815b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 28 Oct 2021 00:14:29 +0200 Subject: [PATCH 197/287] gnu: guix: Update to 014f1b6. * gnu/packages/package-management.scm (guix): Update to 014f1b6. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 7d04fd7d3e..3c9d4da941 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -142,8 +142,8 @@ (define-public guix ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.3.0") - (commit "c3c502896b1454b345ee9f17d20063853652a35a") - (revision 10)) + (commit "014f1b607f1d88a8e733017afaca006545b7d99b") + (revision 11)) (package (name "guix") @@ -159,7 +159,7 @@ (define-public guix (commit commit))) (sha256 (base32 - "037nlr5z8qmq2zp0slcg5lyhcdp7v6vxl1f36wkqrw9xzgq8k6kf")) + "0mmq0ypkxj6dc1r9j1mdgih87h6fc0mk05hp481cjp8shdc1w6gw")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments From b19250eec6f92308f237a09a43e8e3e2355345b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 28 Oct 2021 00:26:40 +0200 Subject: [PATCH 198/287] remote: Really build things remotely when #:build-locally? is #false. Fixes . Reported by pkill9 , Maxim Cournoyer , and Katherine Cox-Buday . * guix/remote.scm (remote-eval): When BUILD-LOCALLY? is false, wrap 'build-derivations' call in 'with-build-handler'. --- guix/remote.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/guix/remote.scm b/guix/remote.scm index f6adb22846..37e9827084 100644 --- a/guix/remote.scm +++ b/guix/remote.scm @@ -146,6 +146,15 @@ (define sources sources))) (mbegin %store-monad ((store-lift send-files) to-send remote #:recursive? #t) - (return (build-derivations remote inputs)) + + ;; Build handlers are not tied to a specific . + ;; If a handler is already installed, it might want to go ahead + ;; and build, but on the local instead of + ;; REMOTE. To avoid that, install a build handler that does + ;; nothing. + (return (with-build-handler (lambda (continue . _) + (continue #t)) + (build-derivations remote inputs))) + (return (close-connection remote)) (return (%remote-eval lowered session become-command))))))) From 9b0ee18ba8b2c2cdc5238cbaa2fb2648d55b30c9 Mon Sep 17 00:00:00 2001 From: Olivier Dion Date: Mon, 25 Oct 2021 12:18:43 -0400 Subject: [PATCH 199/287] gnu: lttng-tools: Patch default man path. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/linux.scm (lttng-tools) [arguments]: Add 'patch-default-man-path after 'unpack phase. Signed-off-by: Ludovic Courtès --- gnu/packages/linux.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 61ec6d8657..3b4da16d78 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -8167,7 +8167,12 @@ (define-public lttng-tools (add-before 'configure 'set-environment-variables (lambda _ (setenv "HOME" "/tmp") - (setenv "LTTNG_HOME" "/tmp")))))) + (setenv "LTTNG_HOME" "/tmp"))) + ;; We don't put (which "man") here because LTTng uses execlp. + (add-after 'unpack 'patch-default-man-path + (lambda _ + (substitute* "src/common/defaults.h" + (("/usr/bin/man") "man"))))))) ;; NOTE - Users have to install python-3 in their profile to use the ;; bindings. We don't put it in the inputs, because the rest of the tools ;; can work without it. From bcc4aef0dbaaf3a66e11e0af30c88e60f8f9d4fb Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Tue, 26 Oct 2021 12:10:26 +0800 Subject: [PATCH 200/287] environment: Fix broken file-local variable. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/scripts/environment.scm (Local Variables): Add missing eval. Signed-off-by: Ludovic Courtès --- guix/scripts/environment.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 7b97a8e39a..cca0ad991b 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -964,5 +964,5 @@ (define manifest #:pure? pure?)))))))))))))) ;;; Local Variables: -;;; (put 'with-store/maybe 'scheme-indent-function 1) +;;; eval: (put 'with-store/maybe 'scheme-indent-function 1) ;;; End: From 6cf6dc111685b4bbbc5e92bd4e36e13ad3cdb926 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Fri, 22 Oct 2021 00:06:41 +0200 Subject: [PATCH 201/287] gnu: Add xfce4-dev-tools MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is now needed to build newer lightdm-gtk-greeter versions * gnu/packages/xfce.scm (xfce4-dev-tools): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/xfce.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index c653b23a91..c279ac9355 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -2130,3 +2130,28 @@ (define-public xfce4-weather-plugin local weather in the panel, using forecast data provided by the @uref{https://met.no, Norwegian Meteorological Institute}.") (license gpl2+))) + +(define-public xfce4-dev-tools + (package + (name "xfce4-dev-tools") + (version "4.17.0") + (source (origin + (method url-fetch) + (uri (string-append "https://archive.xfce.org/src/xfce/" + "xfce4-dev-tools/" (version-major+minor version) "/" + "xfce4-dev-tools-" version ".tar.bz2")) + (sha256 + (base32 + "1iwkqj96x2s7fk4srg1pymvsiwb2rn6vvhy6hrmnc3hl1vqw2d6k")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib))) + (home-page "https://docs.xfce.org/xfce/xfce4-dev-tools/") + (synopsis "Xfce developer tools") + (description + "The Xfce development tools are a collection of tools and macros for Xfce +developers and people that want to build Xfce from Git In addition it contains +the Xfce developer's handbook.") + (license gpl2+))) From c5962a729726ed9a75653a4658add8118ae287b6 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Fri, 22 Oct 2021 00:10:15 +0200 Subject: [PATCH 202/287] gnu: lightdm-gtk-greeter: Update to 2.0.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This also fixes the build. Before configure failed with the following error: checking for exo-csource... no configure: error: in `/tmp/guix-build-lightdm-gtk-greeter-2.0.7.drv-0/lightdm-gtk-greeter-2.0.7': configure: error: exo-csource not installed * gnu/packages/display-managers.scm (lightdm): update to 2.0.8 Signed-off-by: Ludovic Courtès --- gnu/packages/display-managers.scm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 8a0342d7c5..7f0cb468e4 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -260,16 +260,16 @@ (define-public lightdm (define-public lightdm-gtk-greeter (package (name "lightdm-gtk-greeter") - (version "2.0.7") + (version "2.0.8") (source (origin (method url-fetch) (uri (string-append - "https://launchpad.net/lightdm-gtk-greeter/" - (version-major+minor version) "/" version - "/+download/lightdm-gtk-greeter-" version ".tar.gz")) + "https://github.com/xubuntu/lightdm-gtk-greeter" + "/releases/download/lightdm-gtk-greeter-" version "/" + "lightdm-gtk-greeter-" version ".tar.gz")) (sha256 (base32 - "1g7wc3d3vqfa7mrdhx1w9ywydgjbffla6rbrxq9k3sc62br97qms")))) + "04q62mvr97l9gv8h37hfarygqc7p0498ig7xclcg4kxkqw0b7yxy")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -304,14 +304,15 @@ (define-public lightdm-gtk-greeter (native-inputs `(("exo" ,exo) ("intltool" ,intltool) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("xfce4-dev-tools" ,xfce4-dev-tools))) (inputs `(("lightdm" ,lightdm) ("shared-mime-info" ,shared-mime-info) ("at-spi2-core" ,at-spi2-core) ("gtk+" ,gtk+))) (synopsis "GTK+ greeter for LightDM") - (home-page "https://launchpad.net/lightdm-gtk-greeter") + (home-page "https://github.com/xubuntu/lightdm-gtk-greeter") (description "This package provides a LightDM greeter implementation using GTK+, lets you select a desktop session and log in to it.") (license license:gpl3+))) From 2227bb2ac2fed2a8bdeaf146bc6896b0e8bd2981 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Fri, 22 Oct 2021 00:10:16 +0200 Subject: [PATCH 203/287] gnu: lightdm-gtk-greeter: Add bash-minimal dependency. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bash-minimal dependency is required by the wrap-program, and guix lint suggests to add it in the inputs. * gnu/packages/display-managers.scm (lightdm): add bash-minimal dependency Signed-off-by: Ludovic Courtès --- gnu/packages/display-managers.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 7f0cb468e4..ef5d14352e 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -39,6 +39,7 @@ (define-module (gnu packages display-managers) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) + #:use-module (gnu packages bash) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gl) @@ -307,7 +308,8 @@ (define-public lightdm-gtk-greeter ("pkg-config" ,pkg-config) ("xfce4-dev-tools" ,xfce4-dev-tools))) (inputs - `(("lightdm" ,lightdm) + `(("bash" ,bash-minimal) ; for wrap-program + ("lightdm" ,lightdm) ("shared-mime-info" ,shared-mime-info) ("at-spi2-core" ,at-spi2-core) ("gtk+" ,gtk+))) From c9c4c851a8f05228e060d2d12550d31c2dced5b4 Mon Sep 17 00:00:00 2001 From: Olivier Dion Date: Wed, 20 Oct 2021 10:59:45 -0400 Subject: [PATCH 204/287] gnu: docker-compose: Update to 1.29.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/docker.scm (docker-compose): Update to 1.29.2. Signed-off-by: Ludovic Courtès --- gnu/packages/docker.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 8bac1b89ce..9ab9e86c21 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2020 Katherine Cox-Buday ;;; Copyright © 2020 Jesse Dowell ;;; Copyright © 2021 Oleg Pykhalov +;;; Copyright © 2021 Olivier Dion ;;; ;;; This file is part of GNU Guix. ;;; @@ -106,14 +107,14 @@ (define-public python-dockerpty (define-public docker-compose (package (name "docker-compose") - (version "1.25.4") + (version "1.29.2") (source (origin (method url-fetch) (uri (pypi-uri "docker-compose" version)) (sha256 (base32 - "1ww8ckpj3n5jdg63qvmiqx3gk0fsrnynnnqj17fppymbwjzf5fps")))) + "1dq9kfak61xx7chjrzmkvbw9mvj9008k7g8q7mwi4x133p9dk32c")))) (build-system python-build-system) ;; TODO: Tests require running Docker daemon. (arguments '(#:tests? #f)) From 0cd05b5e5c1373cd60fe1e426de967fd8908ed0a Mon Sep 17 00:00:00 2001 From: Vinicius Monego Date: Sun, 17 Oct 2021 00:45:06 +0000 Subject: [PATCH 205/287] gnu: Add openhmd. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/hardware.scm (openhmd): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/hardware.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index e64055c4a5..2bf3576d5a 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2021 Denis Carikli ;;; Copyright © 2021 Petr Hodina ;;; Copyright © 2021 Raghav Gururajan +;;; Copyright © 2021 Vinicius Monego ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,6 +60,7 @@ (define-module (gnu packages hardware) #:use-module (gnu packages xorg) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (guix download) #:use-module (guix git-download) @@ -568,6 +570,32 @@ (define-public msr-tools be dangerous and may void your CPU or system board's warranty.") (license license:gpl2))) ; cpuid.c is gpl2, {rd,wr}msr.c are gpl2+ +(define-public openhmd + (package + (name "openhmd") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenHMD/OpenHMD") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1hkpdl4zgycag5k8njvqpx01apxmm8m8pvhlsxgxpqiqy9a38ccg")))) + (build-system meson-build-system) + (arguments + `(#:tests? #f)) ; no test target although there is a test folder + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("hidapi" ,hidapi))) + (home-page "http://www.openhmd.net/") + (synopsis "API and drivers for immersive technology") + (description "OpenHMD aims to provide an API and drivers for immersive +technology, such as head mounted displays with built in head tracking.") + (license license:boost1.0))) + (define-public wavemon (package (name "wavemon") From 85ca89ee8f6b179360ae0c0dc4b35f796d1dd08d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 27 Oct 2021 12:06:18 -0400 Subject: [PATCH 206/287] gnu: linux-libre 5.14: Update to 5.14.15. * gnu/packages/linux.scm (linux-libre-5.14-version): Update to 5.14.15. (linux-libre-5.14-pristine-source, deblob-scripts-5.14): Update hashes. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 3b4da16d78..b67dad8bd9 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -347,17 +347,17 @@ (define (%upstream-linux-source version hash) ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-5.14-version "5.14.14") +(define-public linux-libre-5.14-version "5.14.15") (define-public linux-libre-5.14-gnu-revision "gnu") (define deblob-scripts-5.14 (linux-libre-deblob-scripts linux-libre-5.14-version linux-libre-5.14-gnu-revision - (base32 "00vv2a51cvw2nx8iazmiy9i4h3jj9gvvpwz9gxp2v1hcmrsxq935") + (base32 "11zax57brk8bl75q68c71xsdlvslj48wpmrv8rh34sb8wym9n4mc") (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7"))) (define-public linux-libre-5.14-pristine-source (let ((version linux-libre-5.14-version) - (hash (base32 "0snh17ah49wmfmazy6x42rhvl484h657y0iq4l09a885sjb4xzsd"))) + (hash (base32 "01m4qw1z7xn3ngsbm1bvcvikqpkjjr9n8585556wkmz9d469mwvl"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.14))) From e520d95b17914cddc05447818f30f06d360a594a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 27 Oct 2021 12:11:56 -0400 Subject: [PATCH 207/287] gnu: linux-libre 5.10: Update to 5.10.76. * gnu/packages/linux.scm (linux-libre-5.10-version): Update to 5.10.76. (linux-libre-5.10-pristine-source, deblob-scripts-5.10): Update hashes. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b67dad8bd9..67248b3c23 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -365,17 +365,17 @@ (define-public linux-libre-5.14-pristine-source ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; -(define-public linux-libre-5.10-version "5.10.75") +(define-public linux-libre-5.10-version "5.10.76") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts linux-libre-5.10-version linux-libre-5.10-gnu-revision - (base32 "19d1pdsilq1ycnx1zw3vhf9mwdxbi5nmgzm0g1kj1lkkf1y4i1mv") + (base32 "1swy3y851jnnmk3hc0khllpsifb98camlwyskpn1dyvjsgjljd8x") (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "0jrhhk89587caw54nhnwms93kq33qdm75x5f18cp61xrxxgjyaqa"))) + (hash (base32 "140qkvs88b5zh6mxxzpf36z1r8bbvyh3yigripqjz1k236x0j2j8"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) From 7bd0ef9d5035e8250fe774c1f8055852256d682a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 27 Oct 2021 12:12:10 -0400 Subject: [PATCH 208/287] gnu: linux-libre 5.4: Update to 5.4.156. * gnu/packages/linux.scm (linux-libre-5.4-version): Update to 5.4.156. (linux-libre-5.4-pristine-source, deblob-scripts-5.4): Update hashes. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 67248b3c23..c035dcf37a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -380,17 +380,17 @@ (define-public linux-libre-5.10-pristine-source (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.155") +(define-public linux-libre-5.4-version "5.4.156") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts linux-libre-5.4-version linux-libre-5.4-gnu-revision - (base32 "1cdxljvmivdwcy9v9fr5iv0x0d1884pf3876p9nzrly599lz2wnl") + (base32 "1nlgk8ajb5wl3aa96h9a0pb9j5a5wmrbpk63varn557x1d00r7wj") (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0f2hfz76rnhmv99zhbh7n1z48316ilxrxrnh4b5m3lj84y80y36c"))) + (hash (base32 "1zkpqfhrc5n0yiij3jzvzywgabva53c8668f1ly1pkrzcbj77zh6"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) From d35451e5d42bd52240ad3363acba48a13dc687fe Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 27 Oct 2021 12:12:24 -0400 Subject: [PATCH 209/287] gnu: linux-libre 4.19: Update to 4.19.214. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.214. (linux-libre-4.19-pristine-source, deblob-scripts-5.19): Update hashes. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c035dcf37a..623d897cf6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -395,17 +395,17 @@ (define-public linux-libre-5.4-pristine-source (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.213") +(define-public linux-libre-4.19-version "4.19.214") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts linux-libre-4.19-version linux-libre-4.19-gnu-revision - (base32 "1hiaagdyfy6b0f9ivdy7zq0cd6akaj6v3c4nzikrgsk12vgc1a1q") + (base32 "06pqv050bkii0hc2v7ymny5264w1bca8db0dp1pw9mfmjg865am5") (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "162f5y3jplql3ca5xy889mq6izjinryx2kx16zp582yvsqf8rwiq"))) + (hash (base32 "0i08np4gxiks7chp6j328pdqb02apbba53mj4zvxb9v37qpxzqgz"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) From fb13e94aba0aa3e4a5374b18fc660c03b98e7dcf Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 27 Oct 2021 12:12:41 -0400 Subject: [PATCH 210/287] gnu: linux-libre 4.14: Update to 4.14.253. * gnu/packages/linux.scm (linux-libre-4.14-version): Update to 4.14.253. (linux-libre-4.14-pristine-source, deblob-scripts-4.14): Update hashes. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 623d897cf6..c5c9e0a601 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -410,17 +410,17 @@ (define-public linux-libre-4.19-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.252") +(define-public linux-libre-4.14-version "4.14.253") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts linux-libre-4.14-version linux-libre-4.14-gnu-revision - (base32 "0cnax38650m9sxiwvc1xm5saymlsmx427j3jqpx34df2ah2rnrwf") + (base32 "02rxvr0gmxb3zfsyyzdmzgfq04gkdkv1cc38md0xfl0mxzdzdfyk") (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "022rw51s8fzz6wcxa9xq6h60fglfx0hq7bmqgs5dlrci6plv4fwk"))) + (hash (base32 "1mgl55c8fa2ry4qp0phkdkzjhwfnkbhvi266n348kyjyqnjl234f"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) From 81f65287631fa817aaf239d76a334ce195a70498 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 27 Oct 2021 12:12:53 -0400 Subject: [PATCH 211/287] gnu: linux-libre 4.9: Update to 4.9.288. * gnu/packages/linux.scm (linux-libre-4.9-version): Update to 4.9.288. (linux-libre-4.9-pristine-source, deblob-scripts-4.9): Update hashes. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c5c9e0a601..89855561b9 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -425,17 +425,17 @@ (define-public linux-libre-4.14-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.287") +(define-public linux-libre-4.9-version "4.9.288") (define-public linux-libre-4.9-gnu-revision "gnu1") (define deblob-scripts-4.9 (linux-libre-deblob-scripts linux-libre-4.9-version linux-libre-4.9-gnu-revision - (base32 "1n74ddrifnw06hx7ih2sk8jaiqlm1jyyhswyjpxiyhrrcvjcilch") + (base32 "0nai5m4rbh37qaj1xf2qj7656l2gacfh0847q5d07y22b048fq5n") (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "1hlpxnlz0y5vxcmkavsirk2kfb2l34fcvmhlcb99slh28xkjhhfl"))) + (hash (base32 "0v5592v565bl924c23m1n7p5zddr0w7zn8m97pmikk6p7cyhjq9n"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) From 5cbf9a48d766191d8f17b2e9d1cf7b7db69b99ea Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 27 Oct 2021 12:13:12 -0400 Subject: [PATCH 212/287] gnu: linux-libre 4.4: Update to 4.4.290. * gnu/packages/linux.scm (linux-libre-4.4-version): Update to 4.4.290. (linux-libre-4.4-pristine-source, deblob-scripts-4.4): Update hashes. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 89855561b9..574b86f6cb 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -440,17 +440,17 @@ (define-public linux-libre-4.9-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.289") +(define-public linux-libre-4.4-version "4.4.290") (define-public linux-libre-4.4-gnu-revision "gnu1") (define deblob-scripts-4.4 (linux-libre-deblob-scripts linux-libre-4.4-version linux-libre-4.4-gnu-revision - (base32 "11397dgj6cdfv6anxrj7jwgvnqvwh5i0ci6c8mb85ry6h4fnfmq4") + (base32 "1mmnv77432la5dkhpy1n8w59c0v6l08fyf2ggh294gyrx8nbci11") (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "1g77kf0yzwvpdxs3kw7wdvb07mmk3zm6ydjcw5dnsza8q2inl69k"))) + (hash (base32 "1dcx58nmzkcc5nz2b5b7mgw4w7y28v3s9wd8h78czdqfa0kxrl20"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) From babab31fdd64d1f355c24b8f53d3aea3ff47fcf8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 28 Oct 2021 13:02:04 +0300 Subject: [PATCH 213/287] gnu: mujs: Update to 1.1.3. * gnu/packages/javascript.scm (mujs): Update to 1.1.3. --- gnu/packages/javascript.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm index cdf9dd19fa..6d4efe2c92 100644 --- a/gnu/packages/javascript.scm +++ b/gnu/packages/javascript.scm @@ -556,7 +556,7 @@ (define-public js-filesaver (define-public mujs (package (name "mujs") - (version "1.1.1") + (version "1.1.3") (source (origin (method git-fetch) @@ -565,7 +565,7 @@ (define-public mujs (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0ivqz06fq8v36p2gkjh64vgv0gm7nghds0n42vrv7vm46phdffvb")))) + (base32 "0qizld89qw24i9v6i2j9cxjyqn425xbiqfp1b7qfrkyxqkn0byws")))) (build-system gnu-build-system) (arguments `(#:phases From c1ca85323d5246fc805a31e03b4164b8da08e930 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 28 Oct 2021 13:02:28 +0300 Subject: [PATCH 214/287] gnu: mupdf: Update to 1.19.0. * gnu/packages/pdf.scm (mupdf): Update to 1.19.0. [source]: Remove patches. Add directory to be saved in snippet * gnu/packages/patches/mupdf-CVE-2021-3407.patch, gnu/packages/patches/mupdf-fix-linkage.patch: Remove files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 2 - .../patches/mupdf-CVE-2021-3407.patch | 51 ------------------- gnu/packages/patches/mupdf-fix-linkage.patch | 27 ---------- gnu/packages/pdf.scm | 9 ++-- 4 files changed, 4 insertions(+), 85 deletions(-) delete mode 100644 gnu/packages/patches/mupdf-CVE-2021-3407.patch delete mode 100644 gnu/packages/patches/mupdf-fix-linkage.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5233581200..3a849ed2b0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1513,8 +1513,6 @@ dist_patch_DATA = \ %D%/packages/patches/mumps-shared-libseq.patch \ %D%/packages/patches/mumps-shared-mumps.patch \ %D%/packages/patches/mumps-shared-pord.patch \ - %D%/packages/patches/mupdf-fix-linkage.patch \ - %D%/packages/patches/mupdf-CVE-2021-3407.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ %D%/packages/patches/musl-cross-locale.patch \ diff --git a/gnu/packages/patches/mupdf-CVE-2021-3407.patch b/gnu/packages/patches/mupdf-CVE-2021-3407.patch deleted file mode 100644 index 9f901517c5..0000000000 --- a/gnu/packages/patches/mupdf-CVE-2021-3407.patch +++ /dev/null @@ -1,51 +0,0 @@ -This patch came from https://git.ghostscript.com/?p=mupdf.git;a=patch;h=cee7cefc610d42fd383b3c80c12cbc675443176a -and fixes CVE-2021-3407. - -From cee7cefc610d42fd383b3c80c12cbc675443176a Mon Sep 17 00:00:00 2001 -From: Robin Watts -Date: Fri, 22 Jan 2021 17:05:15 +0000 -Subject: [PATCH] Bug 703366: Fix double free of object during linearization. - -This appears to happen because we parse an illegal object from -a broken file and assign it to object 0, which is defined to -be free. - -Here, we fix the parsing code so this can't happen. ---- - source/pdf/pdf-parse.c | 6 ++++++ - source/pdf/pdf-xref.c | 2 ++ - 2 files changed, 8 insertions(+) - -diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c -index 7abc8c3d4..5761c3351 100644 ---- a/source/pdf/pdf-parse.c -+++ b/source/pdf/pdf-parse.c -@@ -749,6 +749,12 @@ pdf_parse_ind_obj(fz_context *ctx, pdf_document *doc, - fz_throw(ctx, FZ_ERROR_SYNTAX, "expected generation number (%d ? obj)", num); - } - gen = buf->i; -+ if (gen < 0 || gen >= 65536) -+ { -+ if (try_repair) -+ *try_repair = 1; -+ fz_throw(ctx, FZ_ERROR_SYNTAX, "invalid generation number (%d)", gen); -+ } - - tok = pdf_lex(ctx, file, buf); - if (tok != PDF_TOK_OBJ) -diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c -index 1b2bdcd59..30197b4b8 100644 ---- a/source/pdf/pdf-xref.c -+++ b/source/pdf/pdf-xref.c -@@ -1190,6 +1190,8 @@ pdf_read_new_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf) - { - ofs = fz_tell(ctx, doc->file); - trailer = pdf_parse_ind_obj(ctx, doc, doc->file, buf, &num, &gen, &stm_ofs, NULL); -+ if (num == 0) -+ fz_throw(ctx, FZ_ERROR_GENERIC, "Trailer object number cannot be 0\n"); - } - fz_catch(ctx) - { --- -2.17.1 - diff --git a/gnu/packages/patches/mupdf-fix-linkage.patch b/gnu/packages/patches/mupdf-fix-linkage.patch deleted file mode 100644 index 4ffd1c6a77..0000000000 --- a/gnu/packages/patches/mupdf-fix-linkage.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Tobias Geerinckx-Rice -Date: Tue, 24 Nov 2020 10:29:28 +0000 -Subject: [PATCH] gnu: mupdf: Fix linkage. - -Replace broken linkage to ‘build/shared-release/libmupdf.so’ with the -proper ‘-L$(libdir) -lmupdf’ incantation, and fix libmupdf.so's mode. - ---- mupdf-1.18.0-source.org/Makefile -+++ mupdf-1.18.0-source/Makefile -@@ -61,7 +61,7 @@ - ifdef RANLIB - RANLIB_CMD = $(QUIET_RANLIB) $(RANLIB) $@ - endif --LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -+LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $(subst $(MUPDF_LIB),-L$(libdir) -L$(OUT) -lmupdf,$^) $(LIBS) - TAGS_CMD = $(QUIET_TAGS) ctags -R --c-kinds=+p - WINDRES_CMD = $(QUIET_WINDRES) $(MKTGTDIR) ; $(WINDRES) $< $@ - OBJCOPY_CMD = $(QUIET_OBJCOPY) $(MKTGTDIR) ; $(LD) -r -b binary -z noexecstack -o $@ $< -@@ -364,7 +364,7 @@ install: libs apps - install -m 644 include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf - - install -d $(DESTDIR)$(libdir) -- install -m 644 $(INSTALL_LIBS) $(DESTDIR)$(libdir) -+ install -m 755 $(INSTALL_LIBS) $(DESTDIR)$(libdir) - - install -d $(DESTDIR)$(bindir) - install -m 755 $(TOOL_APPS) $(VIEW_APPS) $(DESTDIR)$(bindir) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 704093e16c..ec5f2a4f9b 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -710,21 +710,20 @@ (define-public podofo (define-public mupdf (package (name "mupdf") - (version "1.18.0") + (version "1.19.0") (source (origin (method url-fetch) (uri (string-append "https://mupdf.com/downloads/archive/" "mupdf-" version "-source.tar.xz")) (sha256 - (base32 "16m5sksil22sshxy70xkslsb2qhvcqb1d95i9savnhds1xn4ybar")) - (patches (search-patches "mupdf-fix-linkage.patch" - "mupdf-CVE-2021-3407.patch")) + (base32 "1i98xqgnzp168hnnhradl8658qsif06wlbvcglz0mmh8wi1rkwrq")) (modules '((guix build utils))) (snippet '(begin ;; Remove bundled software. - (let* ((keep (list "lcms2")) ; different from our lcms2 package + (let* ((keep (list "extract" + "lcms2")) ; different from our lcms2 package (from "thirdparty") (kept (string-append from "~temp"))) (mkdir-p kept) From 25e9d690ccbdae4967aa615c293cf142f16b053a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 28 Oct 2021 13:26:52 +0000 Subject: [PATCH 215/287] gnu: Add recoll. * gnu/packages/search.scm (recoll): New variable. --- gnu/packages/search.scm | 52 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index df6a8b2dfc..ca716aec77 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015, 2016 Eric Bavier ;;; Copyright © 2017 Thomas Danckaert -;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017, 2021 Ricardo Wurmus ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice ;;; Copyright © 2018 Adam Massmann ;;; Copyright © 2020 Hartmut Goebel @@ -36,9 +36,12 @@ (define-module (gnu packages search) #:use-module (guix build-system python) #:use-module (guix build-system meson) #:use-module (gnu packages) + #:use-module (gnu packages aspell) + #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages check) #:use-module (gnu packages databases) + #:use-module (gnu packages ebook) #:use-module (gnu packages freedesktop) #:use-module (gnu packages less) #:use-module (gnu packages linux) @@ -286,6 +289,53 @@ (define-public bool for parsing HTML files.") (license gpl3+))) +(define-public recoll + (package + (name "recoll") + (version "1.31.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.lesbonscomptes.com/recoll/" + "recoll-" version ".tar.gz")) + (sha256 + (base32 "0m1w5hf2n09lbzmzvlrm2lks4lci9vvjxy2mcmgb2avgly7v5vfk")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--disable-qtgui" + "--disable-webkit" + "--disable-python-module" + "--without-systemd") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-default-data-dir + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "python/recoll/recoll/rclconfig.py" + (("/opt/local") + (assoc-ref outputs "out")))))))) + (inputs + `(("aspell" ,aspell) + ("chmlib" ,chmlib) + ("inotify-tools" ,inotify-tools) + ("libxslt" ,libxslt) + ("libxml2" ,libxml2) + ("python" ,python) + ("python-pdftotext" ,python-pdftotext) + ("xapian" ,xapian) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (home-page "") + (synopsis "Recoll finds documents based on their contents or file names") + (description "Recoll finds documents based on their contents as well as +their file names. It can search most document formats, but you may need +external applications for text extraction. It can reach any storage place: +files, archive members, email attachments, transparently handling +decompression.") + (license gpl2+))) + (define-public hyperestraier (package (name "hyperestraier") From 07ae9d8fe3887adbc99baeb53759434381a86a75 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 28 Oct 2021 17:02:06 +0000 Subject: [PATCH 216/287] gnu: recoll: Add home-page. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported-by: Ludovic Courtès . * gnu/packages/search.scm (recoll)[home-page]: Add it. --- gnu/packages/search.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index ca716aec77..4433c48b13 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -327,7 +327,7 @@ (define-public recoll (native-inputs `(("pkg-config" ,pkg-config) ("which" ,which))) - (home-page "") + (home-page "https://www.lesbonscomptes.com/recoll/") (synopsis "Recoll finds documents based on their contents or file names") (description "Recoll finds documents based on their contents as well as their file names. It can search most document formats, but you may need From 0e6470b47f00470c213fbf20bddc5bcf1e2f8e2a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 28 Oct 2021 17:04:46 +0000 Subject: [PATCH 217/287] gnu: recoll: Update synopsis. * gnu/packages/search.scm (recoll)[synopsis]: Do not use package name. --- gnu/packages/search.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index 4433c48b13..4640429fa9 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -328,7 +328,7 @@ (define-public recoll `(("pkg-config" ,pkg-config) ("which" ,which))) (home-page "https://www.lesbonscomptes.com/recoll/") - (synopsis "Recoll finds documents based on their contents or file names") + (synopsis "Find documents based on their contents or file names") (description "Recoll finds documents based on their contents as well as their file names. It can search most document formats, but you may need external applications for text extraction. It can reach any storage place: From afe6c8a97f4b921465079c6ccbaccd5689bcd7ae Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 28 Oct 2021 20:28:58 +0200 Subject: [PATCH 218/287] gnu: dovecot: Update to 2.3.17. * gnu/packages/mail.scm (dovecot): Update to 2.3.17. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/mail.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 523e6cdce3..8776633796 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1896,7 +1896,7 @@ (define-public dovecot (package (name "dovecot") ;; Also update dovecot-pigeonhole when updating to a new minor version. - (version "2.3.16") + (version "2.3.17") (source (origin (method url-fetch) @@ -1904,7 +1904,7 @@ (define-public dovecot (version-major+minor version) "/" "dovecot-" version ".tar.gz")) (sha256 - (base32 "04ngqv5mml5z0i4p7fkchp4xw2awy7x7mq2mim9frnav0m9iv9q3")))) + (base32 "1y9dpn4jgzrfjibp5zrc11bdk0q843d998kxhpxkyfm2fz6i4i12")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1943,8 +1943,7 @@ (define-public dovecot (("sleep") (which "sleep"))) (substitute* (list "src/lib-smtp/test-bin/sendmail-exit-1.sh" "src/lib-smtp/test-bin/sendmail-success.sh") - (("cat") (which "cat"))) - #t)) + (("cat") (which "cat"))))) (replace 'install (lambda* (#:key make-flags #:allow-other-keys) ;; Simple hack to avoid installing a trivial README in /etc. From 3fb19280bb9067b03341409cf36d6b9d0e7ee0ed Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 28 Oct 2021 21:03:12 +0200 Subject: [PATCH 219/287] gnu: dovecot-pigeonhole: Update to 0.5.17. * gnu/packages/mail.scm (dovecot-pigeonhole): Update to 0.5.17. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/mail.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 8776633796..98c32b497c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1964,7 +1964,7 @@ (define-public dovecot-pigeonhole (let ((dovecot-version (version-major+minor (package-version dovecot)))) (package (name "dovecot-pigeonhole") - (version "0.5.16") + (version "0.5.17") (source (origin (method url-fetch) @@ -1972,7 +1972,7 @@ (define-public dovecot-pigeonhole "https://pigeonhole.dovecot.org/releases/" dovecot-version "/" "dovecot-" dovecot-version "-pigeonhole-" version ".tar.gz")) (sha256 - (base32 "0f79qsiqnhaxn7mrrfcrnsjyv6357kzb7wa0chhfd69vwa06g8sw")) + (base32 "0j6ng173hh5iiqxdkxfb5v9djpn39gxdrv5ki7i22cf5cqwq47h3")) (modules '((guix build utils))) (snippet '(begin @@ -1981,8 +1981,7 @@ (define-public dovecot-pigeonhole (substitute* "configure" (("doc/rfc/Makefile") "")) (substitute* "doc/Makefile.in" - (("rfc ") "")) - #t)))) + (("rfc ") "")))))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -2010,8 +2009,7 @@ (define-public dovecot-pigeonhole (substitute* "src/managesieve-login/managesieve-login-settings.c" (("\\.executable = \"managesieve-login\"") (string-append ".executable = \"" libexec - "/managesieve-login\""))) - #t)))))) + "/managesieve-login\""))))))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs From 219cf5093ec847b1cce09eb6a21dc2699f133d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 28 Oct 2021 14:54:22 +0200 Subject: [PATCH 220/287] import: cran: Use the standard diagnostic procedures. * guix/import/cran.scm (bioconductor-packages-list) (fetch-description): Use 'warning' instead of 'format'. --- guix/import/cran.scm | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/guix/import/cran.scm b/guix/import/cran.scm index f649928c5a..5f5f73cbf4 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus -;;; Copyright © 2015, 2016, 2017, 2019, 2020 Ludovic Courtès +;;; Copyright © 2015, 2016, 2017, 2019, 2020, 2021 Ludovic Courtès ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2020 Martin Becze ;;; @@ -34,6 +34,8 @@ (define-module (guix import cran) #:use-module (web uri) #:use-module (guix memoization) #:use-module (guix http-client) + #:use-module (guix diagnostics) + #:use-module (guix i18n) #:use-module (gcrypt hash) #:use-module (guix store) #:use-module ((guix serialization) #:select (write-file)) @@ -171,11 +173,11 @@ (define* (bioconductor-packages-list #:optional type) release." (let ((url (string->uri (bioconductor-packages-list-url type)))) (guard (c ((http-get-error? c) - (format (current-error-port) - "error: failed to retrieve list of packages from ~s: ~a (~s)~%" - (uri->string (http-get-error-uri c)) - (http-get-error-code c) - (http-get-error-reason c)) + (warning (G_ "failed to retrieve list of packages \ +from ~a: ~a (~a)~%") + (uri->string (http-get-error-uri c)) + (http-get-error-code c) + (http-get-error-reason c)) #f)) ;; Split the big list on empty lines, then turn each chunk into an ;; alist of attributes. @@ -237,12 +239,11 @@ (define (fetch-description repository name) ((cran) (let ((url (string-append %cran-url name "/DESCRIPTION"))) (guard (c ((http-get-error? c) - (format (current-error-port) - "error: failed to retrieve package information \ -from ~s: ~a (~s)~%" - (uri->string (http-get-error-uri c)) - (http-get-error-code c) - (http-get-error-reason c)) + (warning (G_ "failed to retrieve package information \ +from ~a: ~a (~a)~%") + (uri->string (http-get-error-uri c)) + (http-get-error-code c) + (http-get-error-reason c)) #f)) (let* ((port (http-fetch url)) (result (description->alist (read-string port)))) From 45b251fd045fe47dd65d42a269508ee50f26565d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 28 Oct 2021 18:13:53 +0200 Subject: [PATCH 221/287] doc: Allow offloading of the expensive derivations. * doc/build.scm (translated-texi-manuals) (html-manual, pdf-manual): Pass #:local-build? #f. --- doc/build.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/build.scm b/doc/build.scm index 1d086b83ac..a9e279159b 100644 --- a/doc/build.scm +++ b/doc/build.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019, 2020 Ludovic Courtès +;;; Copyright © 2019, 2020, 2021 Ludovic Courtès ;;; Copyright © 2020 Björn Höfling ;;; ;;; This file is part of GNU Guix. @@ -59,6 +59,7 @@ (define translated-texi-manuals ;; failed" crash: . (computed-file (computed-file-name result) (computed-file-gexp result) + #:local-build? #f #:options (computed-file-options result) #:guile guile-3.0-latest))))) @@ -699,7 +700,7 @@ (define (language->texi-file-name language) '#$languages))))) (let* ((name (string-append manual "-html-manual")) - (manual (computed-file name build))) + (manual (computed-file name build #:local-build? #f))) (syntax-highlighted-html manual #:mono-node-indexes mono-node-indexes #:split-node-indexes split-node-indexes @@ -803,7 +804,8 @@ (define (normalize language) ;XXX: deduplicate opts)))) '#$languages)))) - (computed-file (string-append manual "-pdf-manual") build)) + (computed-file (string-append manual "-pdf-manual") build + #:local-build? #f)) (define (guix-manual-text-domain source languages) "Return the PO files for LANGUAGES of the 'guix-manual' text domain taken From 2015d3f042870860efef10e801b93eacc0742d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 28 Oct 2021 19:21:50 +0200 Subject: [PATCH 222/287] store: 'map/accumulate-builds' handler checks the store received. This is a followup to b19250eec6f92308f237a09a43e8e3e2355345b9, providing a proper fix for . * guix/remote.scm (remote-eval): Revert b19250eec6f92308f237a09a43e8e3e2355345b9. * guix/store.scm (build-accumulator): Turn into a procedure. Call CONTINUE when the store is not eq? to the initial store. (map/accumulate-builds): Adjust accordingly. * tests/store.scm ("map/accumulate-builds and different store"): New test. --- guix/remote.scm | 11 +---------- guix/store.scm | 18 ++++++++++++------ tests/store.scm | 28 ++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 16 deletions(-) diff --git a/guix/remote.scm b/guix/remote.scm index 37e9827084..f6adb22846 100644 --- a/guix/remote.scm +++ b/guix/remote.scm @@ -146,15 +146,6 @@ (define sources sources))) (mbegin %store-monad ((store-lift send-files) to-send remote #:recursive? #t) - - ;; Build handlers are not tied to a specific . - ;; If a handler is already installed, it might want to go ahead - ;; and build, but on the local instead of - ;; REMOTE. To avoid that, install a build handler that does - ;; nothing. - (return (with-build-handler (lambda (continue . _) - (continue #t)) - (build-derivations remote inputs))) - + (return (build-derivations remote inputs)) (return (close-connection remote)) (return (%remote-eval lowered session become-command))))))) diff --git a/guix/store.scm b/guix/store.scm index 89a719bcfc..7388953d15 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1349,11 +1349,14 @@ (define-record-type (things unresolved-things) (continuation unresolved-continuation)) -(define (build-accumulator continue store things mode) - "This build handler accumulates THINGS and returns an object." - (if (= mode (build-mode normal)) - (unresolved things continue) - (continue #t))) +(define (build-accumulator expected-store) + "Return a build handler that accumulates THINGS and returns an +object, only for build requests on EXPECTED-STORE." + (lambda (continue store things mode) + (if (and (eq? store expected-store) + (= mode (build-mode normal))) + (unresolved things continue) + (continue #t)))) (define* (map/accumulate-builds store proc lst #:key (cutoff 30)) @@ -1366,13 +1369,16 @@ (define* (map/accumulate-builds store proc lst ;; stumbling upon the same .drv build requests with many incoming edges. ;; See . + (define accumulator + (build-accumulator store)) + (define-values (result rest) (let loop ((lst lst) (result '()) (unresolved 0)) (match lst ((head . tail) - (match (with-build-handler build-accumulator + (match (with-build-handler accumulator (proc head)) ((? unresolved? obj) (if (>= unresolved cutoff) diff --git a/tests/store.scm b/tests/store.scm index 95f47c3af3..2150a0048c 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -490,6 +490,34 @@ (define lst (equal? (map derivation-file-name (drop d 16)) batch3) lst))))) +(test-equal "map/accumulate-builds and different store" + '(d2) ;see + (let* ((b (add-text-to-store %store "build" "echo $foo > $out" '())) + (s (add-to-store %store "bash" #t "sha256" + (search-bootstrap-binary "bash" + (%current-system)))) + (d1 (derivation %store "first" + s `("-e" ,b) + #:env-vars `(("foo" . ,(random-text))) + #:sources (list b s))) + (d2 (derivation %store "second" + s `("-e" ,b) + #:env-vars `(("foo" . ,(random-text)) + ("bar" . "baz")) + #:sources (list b s)))) + (with-store alternate-store + (with-build-handler (lambda (continue store things mode) + ;; If this handler is called, it means that + ;; 'map/accumulate-builds' triggered a build, + ;; which it shouldn't since the inner + ;; 'build-derivations' call is for another store. + 'failed) + (map/accumulate-builds %store + (lambda (drv) + (build-derivations alternate-store (list d2)) + 'd2) + (list d1)))))) + (test-assert "mapm/accumulate-builds" (let* ((d1 (run-with-store %store (gexp->derivation "foo" #~(mkdir #$output)))) From 6938d9f1c738666d0554d832e12a87b5d69c1e71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 18 Oct 2021 13:37:56 +0200 Subject: [PATCH 223/287] ui: Gracefully handle invalid Texinfo markup in package blurbs. Previously 'guix search' & co. would crash when encountering invalid Texinfo. * guix/ui.scm (texi->plain-text*): New procedure. (package-field-string, package->recutils): Use it. --- guix/ui.scm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 1428c254b3..eb7f0afcfd 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1431,10 +1431,22 @@ (define (texi->plain-text str) (with-fluids ((%default-port-encoding "UTF-8")) (stexi->plain-text (texi-fragment->stexi str)))) +(define (texi->plain-text* package str) + "Same as 'texi->plain-text', but gracefully handle Texinfo errors." + (catch 'parser-error + (lambda () + (texi->plain-text str)) + (lambda args + (warning (package-location package) + (G_ "~a: invalid Texinfo markup~%") + (package-full-name package)) + str))) + (define (package-field-string package field-accessor) "Return a plain-text representation of PACKAGE field." (and=> (field-accessor package) - (compose texi->plain-text P_))) + (lambda (str) + (texi->plain-text* package (P_ str))))) (define (package-description-string package) "Return a plain-text representation of PACKAGE description field." @@ -1555,7 +1567,8 @@ (define (packageplain-text' on the concatenated string to account ;; for the width of "description:" in paragraph filling. - (texi->plain-text + (texi->plain-text* + p (string-append "description: " (or (and=> (package-description p) P_) "")))) From e171182a20962c4119e12439b92bbbfd59b1495e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 18 Oct 2021 17:49:55 +0200 Subject: [PATCH 224/287] packages: Optionally validate Texinfo markup at expansion time. * guix/packages.scm (validate-texinfo): New macro. ()[synopsis, description]: Add 'sanitize' property. --- guix/packages.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index 780c6ddb65..4b6098bb8d 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -49,6 +49,7 @@ (define-module (guix packages) #:use-module (srfi srfi-35) #:use-module (rnrs bytevectors) #:use-module (web uri) + #:autoload (texinfo) (texi-fragment->stexi) #:re-export (%current-system %current-target-system search-path-specification) ;for convenience @@ -438,6 +439,49 @@ (define location (lambda (s) #,location))) body ...)))))) +(define-syntax validate-texinfo + (let ((validate? (getenv "GUIX_UNINSTALLED"))) + (define ensure-thread-safe-texinfo-parser! + ;; Work around for Guile <= 3.0.7. + (let ((patched? (or (> (string->number (major-version)) 3) + (> (string->number (minor-version)) 0) + (> (string->number (micro-version)) 7))) + (next-token-of/thread-safe + (lambda (pred port) + (let loop ((chars '())) + (match (read-char port) + ((? eof-object?) + (list->string (reverse! chars))) + (chr + (let ((chr* (pred chr))) + (if chr* + (loop (cons chr* chars)) + (begin + (unread-char chr port) + (list->string (reverse! chars))))))))))) + (lambda () + (unless patched? + (set! (@@ (texinfo) next-token-of) next-token-of/thread-safe) + (set! patched? #t))))) + + (lambda (s) + "Raise a syntax error when passed a literal string that is not valid +Texinfo. Otherwise, return the string." + (syntax-case s () + ((_ str) + (string? (syntax->datum #'str)) + (if validate? + (catch 'parser-error + (lambda () + (ensure-thread-safe-texinfo-parser!) + (texi-fragment->stexi (syntax->datum #'str)) + #'str) + (lambda _ + (syntax-violation 'package "invalid Texinfo markup" #'str))) + #'str)) + ((_ obj) + #'obj))))) + ;; A package. (define-record-type* package make-package @@ -472,9 +516,11 @@ (define-record-type* (replacement package-replacement ; package | #f (default #f) (thunked) (innate)) - (synopsis package-synopsis) ; one-line description - (description package-description) ; one or two paragraphs - (license package-license) ; instance or list + (synopsis package-synopsis + (sanitize validate-texinfo)) ; one-line description + (description package-description + (sanitize validate-texinfo)) ; one or two paragraphs + (license package-license) ; instance or list (home-page package-home-page) (supported-systems package-supported-systems ; list of strings (default %supported-systems)) From d0850dbd345373fb7c78b2915e94a2f41983ea99 Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Tue, 19 Oct 2021 22:19:36 -0400 Subject: [PATCH 225/287] gnu: waypipe: Simplify 'fix-sleep-path phase. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (waypipe) [arguments]: Remove inputs argument. [native-inputs]: Remove coreutils. Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index e2a4a264e9..f824633ea2 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2451,16 +2451,14 @@ (define-public waypipe `(#: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"))))))))) + (lambda* (#:key #:allow-other-keys) + (substitute* "./test/startup_failure.py" + (("sleep") (which "sleep")))))))) (native-inputs `(("pkg-config" ,pkg-config) ("scdoc" ,scdoc) ;; For tests - ("python" ,python) - ("coreutils" ,coreutils))) + ("python" ,python))) (home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe") (synopsis "Proxy for Wayland protocol applications") (description From 91bb0955d9a769ed61e904465f0aa267dbae71bb Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Tue, 19 Oct 2021 22:19:37 -0400 Subject: [PATCH 226/287] gnu: waypipe: Update to 0.8.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (waypipe): Update to 0.8.1. [arguments]: Remove obsolete 'fix-sleep-path phase. Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index f824633ea2..bf4bce553b 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2436,7 +2436,7 @@ (define-public xdg-desktop-portal-wlr (define-public waypipe (package (name "waypipe") - (version "0.8.0") + (version "0.8.1") (source (origin (method git-fetch) @@ -2445,15 +2445,8 @@ (define-public waypipe (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz")))) + (base32 "1v08dv3dfz420v51ahz7qgv3429073kmgrf8f66s4c3jlpch2pa1")))) (build-system meson-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-sleep-path - (lambda* (#:key #:allow-other-keys) - (substitute* "./test/startup_failure.py" - (("sleep") (which "sleep")))))))) (native-inputs `(("pkg-config" ,pkg-config) ("scdoc" ,scdoc) From 7b2a30d8b4037058f53344b5a6e2a4c0d212930d Mon Sep 17 00:00:00 2001 From: Vinicius Monego Date: Fri, 22 Oct 2021 03:08:09 +0000 Subject: [PATCH 227/287] gnu: Add cln. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/multiprecision.scm (cln): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/multiprecision.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 733e6548b9..7861e2f589 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Eric Bavier ;;; Copyright © 2018, 2019, 2021 Efraim Flashner +;;; Copyright © 2021 Vinicius Monego ;;; ;;; This file is part of GNU Guix. ;;; @@ -256,6 +257,29 @@ (define-public qd and numerical quadrature programs are included.") (license bsd-3))) +(define-public cln + (package + (name "cln") + (version "1.3.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.ginac.de/CLN/cln-" + version ".tar.bz2")) + (sha256 + (base32 "0jlq9l4hphk7qqlgqj9ihjp4m3rwjbhk6q4v00lsbgbri07574pl")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list "--disable-static"))) + (inputs + `(("gmp" ,gmp))) + (home-page "https://www.ginac.de/CLN/") + (synopsis "Library for arbitrary precision computations") + (description "CLN is a C++ library for efficient computations with all +kinds of numbers in arbitrary precision. It provides a rich set of number +classes and elementary, logical and transcendental functions.") + (license gpl2+))) + (define-public tomsfastmath (package (name "tomsfastmath") From e57817c4728022b97bb02777dee324f35847986e Mon Sep 17 00:00:00 2001 From: Vinicius Monego Date: Fri, 22 Oct 2021 03:08:10 +0000 Subject: [PATCH 228/287] gnu: Add ginac. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/algebra.scm (ginac): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/algebra.scm | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 3c21a1b556..58873c7a60 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2020 Björn Höfling ;;; Copyright © 2020 Jakub Kądziołka ;;; Copyright © 2020 Vincent Legoll -;;; Copyright © 2020 Vinicius Monego +;;; Copyright © 2020, 2021 Vinicius Monego ;;; Copyright © 2021 Lars-Dominik Braun ;;; ;;; This file is part of GNU Guix. @@ -986,6 +986,36 @@ (define-public symengine (license (list license:expat ;SymEngine license:bsd-3)))) ;3rd party code +(define-public ginac + (package + (name "ginac") + (version "1.8.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.ginac.de/ginac-" + version ".tar.bz2")) + (sha256 + (base32 "1az1ypfcny4jdz0mic1kywwa9nynr547cl5s7zpn2w0qdfymssgi")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list "--disable-static"))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper))) ; Python is required + (inputs + `(("cln" ,cln) + ("readline" ,readline))) + (home-page "https://www.ginac.de/") + (synopsis "Library for symbolic computation") + (description "GiNaC is a C++ library for symbolic computation. Contrary +to other CAS it does not try to provide extensive algebraic capabilities and a +simple programming language but instead accepts a given language (C++) and +extends it by a set of algebraic capabilities.") + (license license:gpl2+))) + (define-public eigen (package (name "eigen") From cb11325a1870c61143929acb9d32953bacd2b265 Mon Sep 17 00:00:00 2001 From: jgart Date: Fri, 22 Oct 2021 04:06:17 -0400 Subject: [PATCH 229/287] gnu: python-slugify: Update to 5.0.2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-web.scm (python-slugify): Update to 5.0.2. Signed-off-by: Ludovic Courtès --- gnu/packages/python-web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index a38ed5c268..fcca8697a8 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -4581,13 +4581,13 @@ (define-public python-ws4py (define-public python-slugify (package (name "python-slugify") - (version "4.0.1") + (version "5.0.2") (source (origin (method url-fetch) (uri (pypi-uri "python-slugify" version)) (sha256 - (base32 "0w22fapghmzk3xdasc4dn7h8sl58l08d1h5zbf72dh80drv1g9b9")))) + (base32 "1aww2ncglyii4jkbfjxqhinivawf9zmwifcj32d69gpwp6h86czi")))) (propagated-inputs `(("python-unidecode" ,python-unidecode))) (arguments From 7dbd5339d7e9c572afa0aa051dd304abe702cb7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 28 Oct 2021 21:02:57 +0200 Subject: [PATCH 230/287] gnu: python-slugify: Honor #:tests?. * gnu/packages/python-web.scm (python-slugify)[arguments]: Honor #:tests? --- gnu/packages/python-web.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index fcca8697a8..62de043e70 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -4594,8 +4594,9 @@ (define-public python-slugify `(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ - (invoke "python" "test.py")))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "test.py"))))))) (build-system python-build-system) (home-page "https://github.com/un33k/python-slugify") (synopsis "Python Slugify application that handles Unicode") From ad39268cdf075f4c4eeb87ed78ce46ca6f817675 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 28 Oct 2021 21:55:27 -0400 Subject: [PATCH 231/287] Revert "gnu: docker-compose: Update to 1.29.2" This reverts commit c9c4c851a8f05228e060d2d12550d31c2dced5b4, until the following runtime dependency problem can be investigated: pkg_resources.DistributionNotFound: The 'python-dotenv<1,>=0.13.0' distribution was not found and is required by docker-compose --- gnu/packages/docker.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 9ab9e86c21..8bac1b89ce 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -7,7 +7,6 @@ ;;; Copyright © 2020 Katherine Cox-Buday ;;; Copyright © 2020 Jesse Dowell ;;; Copyright © 2021 Oleg Pykhalov -;;; Copyright © 2021 Olivier Dion ;;; ;;; This file is part of GNU Guix. ;;; @@ -107,14 +106,14 @@ (define-public python-dockerpty (define-public docker-compose (package (name "docker-compose") - (version "1.29.2") + (version "1.25.4") (source (origin (method url-fetch) (uri (pypi-uri "docker-compose" version)) (sha256 (base32 - "1dq9kfak61xx7chjrzmkvbw9mvj9008k7g8q7mwi4x133p9dk32c")))) + "1ww8ckpj3n5jdg63qvmiqx3gk0fsrnynnnqj17fppymbwjzf5fps")))) (build-system python-build-system) ;; TODO: Tests require running Docker daemon. (arguments '(#:tests? #f)) From 21fcb08d09414a0cd6e2ce3c32ad5a33b22dad38 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 29 Oct 2021 11:40:04 +0000 Subject: [PATCH 232/287] gnu: recoll: Enable GUI and add inputs for common filters. * gnu/packages/search.scm (recoll)[arguments]: Enable GUI; add build phase 'wrap-filters. [inputs]: Replace python-pdftotext with poppler; add qtbase-5, unzip, gawk, grep, groff, gzip, libiconv, perl, perl-image-exiftool, sed, and tar. --- gnu/packages/search.scm | 67 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index 4640429fa9..14b21e644f 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -43,15 +43,19 @@ (define-module (gnu packages search) #:use-module (gnu packages databases) #:use-module (gnu packages ebook) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gawk) + #:use-module (gnu packages groff) #:use-module (gnu packages less) #:use-module (gnu packages linux) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pdf) + #:use-module (gnu packages photo) #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #:use-module (gnu packages sphinx) #:use-module (gnu packages time) #:use-module (gnu packages web) @@ -303,17 +307,55 @@ (define-public recoll (build-system gnu-build-system) (arguments `(#:configure-flags - (list "--disable-qtgui" - "--disable-webkit" + (list "--disable-webkit" "--disable-python-module" - "--without-systemd") + "--without-systemd" + (string-append "QMAKEPATH=" (assoc-ref %build-inputs "qtbase") + "/bin/qmake")) #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-default-data-dir (lambda* (#:key outputs #:allow-other-keys) (substitute* "python/recoll/recoll/rclconfig.py" (("/opt/local") - (assoc-ref outputs "out")))))))) + (assoc-ref outputs "out"))))) + (add-after 'install 'wrap-filters + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (mapping + '(("rclps" + "poppler") + ("rclpdf.py" + "poppler") + ("rclpurple" + "gawk") + ("rcllyx" + "libiconv") + ("rcltex" + "libiconv") + ("rclkwd" + "unzip" "gzip" "tar" "libxslt") + ("rclman" + "groff") + ("rclgaim" + "gawk" "libiconv") + ("rclaptosidman" + "sed") + ("rclscribus" + "grep" "gawk" "sed")))) + (for-each + (lambda (program packages) + (wrap-program (string-append out "/share/recoll/filters/" program) + `("PATH" ":" prefix + ,(map (lambda (i) + (string-append (assoc-ref inputs i) "/bin")) + packages)))) + (map car mapping) + (map cdr mapping)) + + (wrap-program (string-append out "/share/recoll/filters/rclimg") + `("PERL5LIB" ":" prefix + (,(getenv "PERL5LIB")))))))))) (inputs `(("aspell" ,aspell) ("chmlib" ,chmlib) @@ -321,9 +363,22 @@ (define-public recoll ("libxslt" ,libxslt) ("libxml2" ,libxml2) ("python" ,python) - ("python-pdftotext" ,python-pdftotext) + ("qtbase" ,qtbase-5) + ("unzip" ,unzip) ("xapian" ,xapian) - ("zlib" ,zlib))) + ("zlib" ,zlib) + + ;; For filters + ("gawk" ,gawk) + ("grep" ,grep) + ("groff" ,groff) + ("gzip" ,gzip) + ("libiconv" ,libiconv) + ("perl" ,perl) + ("perl-image-exiftool" ,perl-image-exiftool) + ("poppler" ,poppler) + ("sed" ,sed) + ("tar" ,tar))) (native-inputs `(("pkg-config" ,pkg-config) ("which" ,which))) From 4938ea5feaeebdc3948de2855c49828a312a265b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 17:55:12 +0200 Subject: [PATCH 233/287] gnu: butt: Update to 0.1.32. * gnu/packages/audio.scm (butt): Update to 0.1.32. --- gnu/packages/audio.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index faf106fc68..1895c9fab8 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -5433,14 +5433,14 @@ (define-public ableton-link (define-public butt (package (name "butt") - (version "0.1.31") + (version "0.1.32") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/butt/butt/butt-" version "/butt-" version ".tar.gz")) (sha256 (base32 - "19zvdi5vr6vqnrpc60jir7550nz9a5x1c61lh13355cdny2zp28z")) + "1qwllkx9p1gb3syhbbck3agrk375m82l18fb81aqygi4g3dg3s9r")) (modules '((guix build utils))) (snippet '(substitute* "src/butt.cpp" @@ -5481,7 +5481,7 @@ (define-public butt version "_manual.pdf")) (sha256 (base32 - "0a0kgd069whfp1v8xgw6qm67w02n8b7b4h5ay5665wgq947hxanp")))))) + "0g70jyyxbx5nin3xs9q9zf878b2kyy7rn8gn9w91x1ychbjd6dhh")))))) (home-page "https://danielnoethen.de/butt/") (synopsis "Audio streaming tool") (description "Butt is a tool to stream audio to a ShoutCast or From 29f97a2e3f54cc76cf629eed83e1ebbbe35ae5c1 Mon Sep 17 00:00:00 2001 From: Simon South Date: Fri, 29 Oct 2021 11:34:37 -0400 Subject: [PATCH 234/287] gnu: knot-resolver: Update to 5.4.2. * gnu/packages/dns.scm (knot-resolver): Update to 5.4.2. Signed-off-by: Tobias Geerinckx-Rice --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index c770b880c8..89ebe588fd 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -1062,14 +1062,14 @@ (define-public knot (define-public knot-resolver (package (name "knot-resolver") - (version "5.4.1") + (version "5.4.2") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-resolver/" "knot-resolver-" version ".tar.xz")) (sha256 (base32 - "0rixiqfj53rfabrz8qpnq4whx8y29d2m5w64a4jlwx7gv4nrd2zv")))) + "12x5cd09rv530pak5f2smxcfq2zdqg0g5qxsd5k0alm7f6aj2spa")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments From 641fd253b88274c54d2428625db51899b86df9f9 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Fri, 29 Oct 2021 19:49:24 +0200 Subject: [PATCH 235/287] gnu: komikku: Update to 0.35.2. * gnu/packages/gnome.scm (komikku): Update to 0.35.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b138ff228b..000db14d0b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -12084,7 +12084,7 @@ (define-public gnome-builder (define-public komikku (package (name "komikku") - (version "0.35.1") + (version "0.35.2") (source (origin (method git-fetch) @@ -12094,7 +12094,7 @@ (define-public komikku (file-name (git-file-name name version)) (sha256 (base32 - "0975c55lmiwaqm0wj0ci91a90syjan3i99akrp0hl9m7r73jnfh9")))) + "11iq2mc8k7ny70vb0iqfjhj1hii0wvr4cv2p6b5rnjqdp6hc63n9")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t From fea894d3270c1d768167d95e9b6c5bb8eed7291d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 19:41:53 +0200 Subject: [PATCH 236/287] gnu: botan: Update to 2.18.2. * gnu/packages/crypto.scm (botan): Update to 2.18.2. --- gnu/packages/crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 3acd147f25..dd2f76d2a1 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -932,14 +932,14 @@ (define-public rhash (define-public botan (package (name "botan") - (version "2.18.1") + (version "2.18.2") (source (origin (method url-fetch) (uri (string-append "https://botan.randombit.net/releases/" "Botan-" version ".tar.xz")) (sha256 (base32 - "0adf53drhk1hlpfih0175c9081bqpclw6p2afn51cmx849ib9izq")))) + "0zih8agygp39ff0dwi3fv8y7dnnzpz3y86kcgjbhzlxry49kn6jl")))) (build-system gnu-build-system) (arguments '(#:phases From 36d6b1ac5f43c3746b73e1cd612ba0cda8cee836 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 19:42:19 +0200 Subject: [PATCH 237/287] gnu: botan: Omit static library. * gnu/packages/crypto.scm (botan)[arguments]: Add a "--disable-static" configure flag. --- gnu/packages/crypto.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index dd2f76d2a1..f48fc23c1f 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -952,6 +952,8 @@ (define-public botan (setenv "CXXFLAGS" "-O3") (invoke "python" "./configure.py" (string-append "--prefix=" out) + "--disable-static" + ;; Otherwise, the `botan` executable cannot find ;; libbotan. (string-append "--ldflags=-Wl,-rpath=" lib) From 3af75416e7af3794a201f38b46cd8e20b764321e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 20:23:14 +0200 Subject: [PATCH 238/287] gnu: chroma: Update to 1.19. * gnu/packages/games.scm (chroma): Update to 1.19. [arguments]: Remove "CFLAGS=-fgnu89-inline" work-around. --- gnu/packages/games.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 38852a2874..28443394b7 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -6414,18 +6414,17 @@ (define-public enigma (define-public chroma (package (name "chroma") - (version "1.18") + (version "1.19") (source (origin (method url-fetch) (uri (string-append "http://level7.org.uk/chroma/download/chroma-" version ".tar.bz2")) (sha256 (base32 - "12bjisf5nlqinw8n4r223vld52p0p2mw3fca92vi175c46bycbzn")))) + "19ybvv0dkql913xpgjgxyyy50s72vajc7hm83zsvy2lsq8lhg76q")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no tests included - #:configure-flags '("CFLAGS=-fgnu89-inline"))) ; fix inlines + `(#:tests? #f)) ; no tests included (inputs `(("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-ttf))) ("freetype" ,freetype) From 503a0cfc915a31b5e32a5a09efee6ca8958e8295 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 21:31:00 +0200 Subject: [PATCH 239/287] gnu: corefreq: Update to 1.87.4. * gnu/packages/linux.scm (corefreq): Update to 1.87.4. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 574b86f6cb..8462d8ab98 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1219,7 +1219,7 @@ (define-public acpi-call-linux-module (define-public corefreq (package (name "corefreq") - (version "1.86.7") + (version "1.87.4") (source (origin (method git-fetch) @@ -1228,7 +1228,7 @@ (define-public corefreq (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1k8pyxcahc78kcc8q1h76dr91i1r33jciqhgkajkz3xa28qx8mhn")))) + (base32 "01g1smhfzb02gmfjm8c7rchc79dan9jc9pv9c0f8f7fly2hy5zvs")))) (build-system linux-module-build-system) (outputs (list "out" "linux-module")) (arguments From cbe902545d6911b254e6c29a7b3a0792b184fefb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 21:12:18 +0200 Subject: [PATCH 240/287] gnu: blueman: Update to 2.2.3. * gnu/packages/networking.scm (blueman): Update to 2.2.3. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 4f46a7fe95..8ac3b0095e 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -645,14 +645,14 @@ (define-public nanomsg (define-public blueman (package (name "blueman") - (version "2.2.2") + (version "2.2.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/blueman-project/blueman/releases" "/download/" version "/blueman-" version ".tar.xz")) (sha256 - (base32 "1xnhxhr2l4cf703j76wvzl4rf2k4xxgjjisz03y89x9ll6qmkv8r")))) + (base32 "1s86w4mklzr8hvbgl3nkg8jycl6grww533dhzw8gdn5glqfpkpbf")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list "--enable-polkit" From 52ab88a5aae15f031ba5046a2997b04aabbf188a Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Fri, 29 Oct 2021 12:31:01 -0700 Subject: [PATCH 241/287] gnu: diffoscope: Update to 189. * gnu/packages/diffoscope.scm (diffoscope): Update to 189. [arguments] Remove phases 'use-dumppdf-py and 'fpc-external-tool. Update 'skip-python-tests. --- gnu/packages/diffoscope.scm | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index cb4c766f4e..dfb2e05f16 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -73,7 +73,7 @@ (define-module (gnu packages diffoscope) (define-public diffoscope (package (name "diffoscope") - (version "188") + (version "189") (source (origin (method git-fetch) @@ -82,7 +82,7 @@ (define-public diffoscope (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1byd28ihni5g0ikjjcsq68smj1rw33vv9z0cymqa4ds670c77yvn")) + (base32 "0dai9gwsr9xnficjy8myq6xr301y4iy82aidm936qsqjwrp8q1sm")) (patches (search-patches "diffoscope-fix-llvm-test.patch")))) (build-system python-build-system) @@ -115,30 +115,7 @@ (define-public diffoscope ;; phase when python is upgraded (substitute* "tests/comparators/test_python.py" (("def test_identification") - "def skip_test_identification")) - (substitute* "tests/comparators/test_python.py" - (("def test_diff") - "def skip_test_diff")))) - (add-after 'unpack 'use-dumppdf-py - ;; python-pdfminer-six ships "dumppdf" as "dumppdf.py" - ;; https://salsa.debian.org/reproducible-builds/diffoscope/-/issues/283 - ;; Fixed upstream, remove this phase when updating to - ;; diffoscope 189 - (lambda _ - (substitute* "diffoscope/comparators/pdf.py" - (("dumppdf") "dumppdf.py")) - (substitute* "diffoscope/external_tools.py" - (("dumppdf") "dumppdf.py")) - (substitute* "diffoscope/external_tools.py" - (("'debian': 'python3-pdfminer'") - "'debian': 'python3-pdfminer', 'guix': 'python-pdfminer-six'")))) - (add-after 'unpack 'fpc-external-tool - ;; Fixed upstream, remove this phase when updating to - ;; diffoscope 189 - (lambda _ - (substitute* "diffoscope/external_tools.py" - (("'debian': 'fp-utils'") - "'debian': 'fp-utils', 'guix': 'fpc'")))) + "def skip_test_identification")))) (add-after 'build 'build-man-page (lambda* (#:key (make-flags '()) #:allow-other-keys) (apply invoke "make" "-C" "doc" make-flags))) From 211cebef1b658196bbbf0719c1575fb8947c1ccc Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 29 Oct 2021 22:33:43 +0200 Subject: [PATCH 242/287] gnu: emacs-ebdb: Update to 0.8.8. * gnu/packages/emacs-xyz.scm (emacs-ebdb): Update to 0.8.8. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index aeb6aa4aba..557dd8ed9f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -26071,14 +26071,14 @@ (define-public emacs-mastodon (define-public emacs-ebdb (package (name "emacs-ebdb") - (version "0.8.6") + (version "0.8.8") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "ebdb-" version ".tar")) (sha256 - (base32 "0amr1s1q5w4513qw31qsr8gpsfgj5b2j7qn017rmwbaf1mj0k6z0")))) + (base32 "035xakji5vypdpc06qp9yhg8ny7qn80h8kax6cl80p0lljplzrnn")))) (build-system emacs-build-system) (home-page "https://github.com/girzel/ebdb") (synopsis "EIEIO port of BBDB, Emacs's contact-management package") From 00197d7508ea4124e363a4c672abb7610b65acb2 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 29 Oct 2021 22:37:20 +0200 Subject: [PATCH 243/287] gnu: emacs-shell-command+: Update to 2.3.2. * gnu/packages/emacs-xyz.scm (emacs-shell-command+): Update to 2.3.2. --- gnu/packages/emacs-xyz.scm | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 557dd8ed9f..543ce6303a 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -28664,26 +28664,29 @@ (define-public emacs-pcmpl-args (license license:gpl3+))) (define-public emacs-shell-command+ - (package - (name "emacs-shell-command+") - (version "2.3.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~pkal/shell-command-plus") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1lrwp73klx5cb74i7iiq7r83dy55qxg1ivnrhfyvk8y2l9hfz30v")))) - (build-system emacs-build-system) - (home-page "http://elpa.gnu.org/packages/shell-command+.html") - (synopsis "Extended Emacs @code{shell-command}") - (description - "Shell-command+ is a @code{shell-command} substitute that extends the + ;; XXX: Upstream did not tag last release. The commit below corresponds to + ;; the exact version bump. + (let ((commit "bf744c63bbd1e3bbb93407bd32d6da670b23e67e")) + (package + (name "emacs-shell-command+") + (version "2.3.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~pkal/shell-command-plus") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0prlvcryq5ngrzn5f45rkw09wbr99v7nnwps2bjrjc3wvr2rp6h0")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/shell-command+.html") + (synopsis "Extended Emacs @code{shell-command}") + (description + "Shell-command+ is a @code{shell-command} substitute that extends the regular Emacs command with several features. You can for example count all the lines in a buffer with @code{> wc -l}, or delete all lower case letters in the selected region with @code{| tr -d a-z}.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-shell-pop (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6") From b62a6317d1ef4afb939c16151f568bb74edcc709 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 29 Oct 2021 22:45:44 +0200 Subject: [PATCH 244/287] gnu: thinkfan: Update to 1.3.0. * gnu/packages/linux.scm (thinkfan): Update to 1.3.0. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8462d8ab98..f4c1867c5d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -5685,7 +5685,7 @@ (define-public freefall (define-public thinkfan (package (name "thinkfan") - (version "1.2.2") + (version "1.3.0") (source (origin (method git-fetch) @@ -5694,7 +5694,7 @@ (define-public thinkfan (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "01l1pnj1cgy3dwgyys2s5iqzyv6kk47vlpy09qjafk8py21ijik3")))) + (base32 "1whdhf3aw0g4xwbn1csy2wz6g1hw5nlw64r91nnxba9qn25nl9k4")))) (build-system cmake-build-system) (arguments `(#:modules ((guix build cmake-build-system) From 27b0d893033c5223fbaf7a63a35e12c05efe25bf Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 29 Oct 2021 22:50:44 +0200 Subject: [PATCH 245/287] gnu: scintilla: Update to 5.1.3. * gnu/packages/text-editors.scm (scintilla): Update to 5.1.3. --- gnu/packages/text-editors.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index d73f32c64e..6899d6179f 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -927,14 +927,14 @@ (define-public texmacs (define-public scintilla (package (name "scintilla") - (version "5.1.1") + (version "5.1.3") (source (origin (method url-fetch) (uri (let ((v (apply string-append (string-split version #\.)))) (string-append "https://www.scintilla.org/scintilla" v ".tgz"))) (sha256 - (base32 "1d0yjx2wlx4fj5bccxdgfmrr7nzazkw4m08i6h4c0a54sb484yif")))) + (base32 "1zgzpbl7yzyqwqlk7l8s8g74ddg02wa6f0w4dkwdp7fp7ayjn9a2")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk") From d7c93012d15c0c9279628494ab0b033cfa21c9a4 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 29 Oct 2021 23:03:18 +0200 Subject: [PATCH 246/287] gnu: mame: Update to 0.237. * gnu/packages/emulators.scm (mame): Update to 0.237. --- gnu/packages/emulators.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index bd7a2d79e0..b31d1ae491 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -1750,7 +1750,7 @@ (define-public libticalcs2 (define-public mame (package (name "mame") - (version "0.236") + (version "0.237") (source (origin (method git-fetch) @@ -1759,7 +1759,7 @@ (define-public mame (commit (apply string-append "mame" (string-split version #\.))))) (file-name (git-file-name name version)) (sha256 - (base32 "0pxvvdirbwakl5cy7lp0zib6z176ckxx8c3mazsd7q1ddxxd3l8x")) + (base32 "0syj7l262s2ac70dfg47pakd6fk8x3p3sasixmcwdmvnzkiqvmj4")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. From b440794c3dae836be03e0dd8a1049c3306d52202 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 30 Oct 2021 00:37:27 +0200 Subject: [PATCH 247/287] gnu: ungoogled-chromium: Update to 95.0.4638.69-1. * gnu/packages/chromium.scm (%chromium-version): Set to 95.0.4638.69. (%ungoogled-revision): Inherit from it. (%ungoogled-origin, ungoogled-chromium): Update hashes. --- gnu/packages/chromium.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 6683287258..f55379bbf0 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -336,8 +336,8 @@ (define* (debian-patch name hash #:optional (revision %debian-revision)) (string-append "ungoogled-chromium-" category "-" name)))) (sha256 (base32 hash)))) -(define %chromium-version "95.0.4638.54") -(define %ungoogled-revision "95.0.4638.54-1") +(define %chromium-version "95.0.4638.69") +(define %ungoogled-revision (string-append %chromium-version "-1")) (define %arch-revision "db2157b84924ce84201a8245e68a02f7d55f6491") (define %debian-revision "debian/90.0.4430.85-1") @@ -367,7 +367,7 @@ (define %ungoogled-origin (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (sha256 (base32 - "01jkkz5224aaj5cgdmqknf8v73fyaw4q8bzbqa520a0lvl7hwbg5")))) + "19azr4m4rd6za9vgcggijyq9x54jrjp0n07y4falgjrdz9q4f7aj")))) (define %guix-patches (list (local-file @@ -502,7 +502,7 @@ (define-public ungoogled-chromium %chromium-version ".tar.xz")) (sha256 (base32 - "1zb1009gg9962axn2l1krycz7ml20i8z2n3ka2psxpg68pbqivry")) + "1rzg48mbd5n75nq2rfwknyxpmfrddds199ic82c736kcgirpv8rq")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) From d7a1eb2a663503954000293b361b835ba8a02ed7 Mon Sep 17 00:00:00 2001 From: Foo Chuan Wei Date: Fri, 29 Oct 2021 14:13:15 +0000 Subject: [PATCH 248/287] gnu: Add cl-clinenoise. * gnu/packages/lisp-xyz.scm (cl-clinenoise, ecl-clinenoise, sbcl-clinenoise): New variables. Signed-off-by: Guillaume Le Vaillant --- gnu/packages/lisp-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index e4e13b7ed7..7c69b8064b 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -18595,3 +18595,36 @@ (define-public cl-charms (define-public ecl-cl-charms (sbcl-package->ecl-package sbcl-cl-charms)) + +(define-public sbcl-clinenoise + (let ((commit "46e21f99d06a55d93eaa382cf652d55d457032ef") + (revision "1")) + (package + (name "sbcl-clinenoise") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jasom/clinenoise") + (commit commit))) + (file-name (git-file-name "clinenoise" version)) + (sha256 + (base32 "0ydlirfk4dbpqqjwwph99v5swcrhd8v9g8q24fvs35wn2vm08lh1")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cffi" ,sbcl-cffi) + ("split-sequence" ,sbcl-split-sequence))) + (home-page "https://github.com/jasom/clinenoise") + (synopsis "Port of linenoise to Common Lisp") + (description + "This package provides a trivial line-input library for VT-like +terminals.") + (license license:bsd-2)))) + +(define-public cl-clinenoise + (sbcl-package->cl-source-package sbcl-clinenoise)) + +(define-public ecl-clinenoise + (sbcl-package->ecl-package sbcl-clinenoise)) From cd188b9c6f28bd907b625a5cd6c616d1d2529671 Mon Sep 17 00:00:00 2001 From: Foo Chuan Wei Date: Fri, 29 Oct 2021 23:49:49 +0000 Subject: [PATCH 249/287] gnu: Add cl-pass. * gnu/packages/lisp-xyz.scm (cl-pass, ecl-cl-pass, sbcl-cl-pass): New variables. Signed-off-by: Guillaume Le Vaillant --- gnu/packages/lisp-xyz.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 7c69b8064b..0fb6222732 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -18628,3 +18628,37 @@ (define-public cl-clinenoise (define-public ecl-clinenoise (sbcl-package->ecl-package sbcl-clinenoise)) + +(define-public sbcl-cl-pass + (let ((commit "e58e97c0c0588dc742c061208afb9bc31e4dbd34") + (revision "1")) + (package + (name "sbcl-cl-pass") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/eudoxia0/cl-pass") + (commit commit))) + (file-name (git-file-name "cl-pass" version)) + (sha256 + (base32 "05qx4jrkxqbqi72cxgswbpnifbdvp9mh7apc7566v522899bh0hb")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("ironclad" ,sbcl-ironclad) + ("trivial-utf-8" ,sbcl-trivial-utf-8) + ("split-sequence" ,sbcl-split-sequence))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (home-page "https://github.com/eudoxia0/cl-pass") + (synopsis "Password hashing and verification library") + (description + "@code{cl-pass} is a password hashing and verification library.") + (license license:expat)))) + +(define-public cl-pass + (sbcl-package->cl-source-package sbcl-cl-pass)) + +(define-public ecl-cl-pass + (sbcl-package->ecl-package sbcl-cl-pass)) From d4449565ed90aabaa6b755dfe1786a1dce370707 Mon Sep 17 00:00:00 2001 From: Foo Chuan Wei Date: Fri, 29 Oct 2021 11:06:43 +0000 Subject: [PATCH 250/287] gnu: ta-lib: Explicitly link math library. * gnu/packages/finance.scm (ta-lib)[arguments]: Add 'link-math-library' phase. Signed-off-by: Guillaume Le Vaillant --- gnu/packages/finance.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index f0093ba635..1427735a9e 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -1768,7 +1768,17 @@ (define-public ta-lib (base32 "0lf69nna0aahwpgd9m9yjzbv2fbfn081djfznssa84f0n7y1xx4z")))) (build-system gnu-build-system) (arguments - `(;; Parallel build fails with: + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'link-math-library + (lambda _ + (substitute* "src/Makefile.am" + (("ta_common/libta_common.la") + "ta_common/libta_common.la -lm")) + (substitute* "src/Makefile.in" + (("\\$\\(libta_lib_la_LDFLAGS\\) \\$\\(LDFLAGS\\) -o \\$@") + "$(libta_lib_la_LDFLAGS) $(LDFLAGS) -lm -o $@"))))) + ;; Parallel build fails with: ;; mv -f .deps/gen_code-gen_code.Tpo .deps/gen_code-gen_code.Po ;; mv: cannot stat '.deps/gen_code-gen_code.Tpo': No such file or directory ;; Makefile:254: recipe for target 'gen_code-gen_code.o' failed From bcce83c7857d226a053a8563fc4e326a47fca473 Mon Sep 17 00:00:00 2001 From: Foo Chuan Wei Date: Fri, 29 Oct 2021 06:53:28 +0000 Subject: [PATCH 251/287] gnu: Add Random Identity Generator (rig) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/shellutils.scm (rig): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/shellutils.scm | 49 +++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 3ded0ee897..6e64cee1da 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Alexandr Vityazev ;;; Copyright © 2021 Xinglu Chen +;;; Copyright © 2021 Foo Chuan Wei ;;; ;;; This file is part of GNU Guix. ;;; @@ -463,3 +464,51 @@ (define-public shell-functools large collection of functions such as basename, replace, contains or is_dir are provided as arguments to these commands.") (license license:expat))) + +(define-public rig + (package + (name "rig") + (version "1.11") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/rig/rig/" + version "/rig-" + version ".tar.gz")) + (sha256 + (base32 + "1f3snysjqqlpk2kgvm5p2icrj4lsdymccmn3igkc2f60smqckgq0")))) + (build-system gnu-build-system) + (arguments `(#:make-flags + (list (string-append "CXX=" ,(cxx-for-target)) + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'fix-build + (lambda _ + (substitute* "rig.cc" + (("^#include ") + "#include ")) + (substitute* "Makefile" + (("g\\+\\+") + "${CXX} -O2") + (("install -g 0 -m 755 -o 0 -s rig \\$\\(BINDIR\\)") + "install -m 755 -d $(DESTDIR)$(BINDIR)\n\t\ +install -m 755 rig $(DESTDIR)$(BINDIR)/rig") + (("install -g 0 -m 644 -o 0 rig.6 \\$\\(MANDIR\\)/man6/rig.6") + "install -m 755 -d $(DESTDIR)$(MANDIR)/man6/\n\t\ +install -m 644 rig.6 $(DESTDIR)$(MANDIR)/man6/rig.6") + (("install -g 0 -m 755 -o 0 -d \\$\\(DATADIR\\)") + "install -m 755 -d $(DESTDIR)$(DATADIR)") + (("install -g 0 -m 644 -o 0 data/\\*.idx \\$\\(DATADIR\\)") + "install -m 644 data/*.idx $(DESTDIR)$(DATADIR)"))))) + #:tests? #f)) + (home-page "http://rig.sourceforge.net") + (synopsis "Random identity generator") + (description + "RIG (Random Identity Generator) generates random, yet real-looking, +personal data. It is useful if you need to feed a name to a Web site, BBS, or +real person, and are too lazy to think of one yourself. Also, if the Web +site/BBS/person you are giving the information to tries to cross-check the +city, state, zip, or area code, it will check out.") + (license license:gpl2+))) From 98173af5222ab5e879e44ba9521dec5416ba8c60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 30 Oct 2021 16:35:06 +0200 Subject: [PATCH 252/287] shell: Error out when an unauthorized guix.scm/manifest.scm is found. The previous behavior was confusing: a warning would be printed and 'guix shell' would go on starting an empty environment. Reported by Tobias Geerinckx-Rice . * guix/scripts/shell.scm (auto-detect-manifest): Change "not loading" case from warning to error. * tests/guix-shell.sh: Adjust accordingly. --- guix/scripts/shell.scm | 7 ++++--- tests/guix-shell.sh | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm index c7eba429d5..5749485a44 100644 --- a/guix/scripts/shell.scm +++ b/guix/scripts/shell.scm @@ -283,8 +283,9 @@ (define disallow-implicit-load? ("guix.scm" (alist-cons 'load `(package ,file) opts)) ("manifest.scm" (alist-cons 'manifest file opts)))) (begin - (warning (G_ "not loading '~a' because not authorized to do so~%") - file) + (report-error + (G_ "not loading '~a' because not authorized to do so~%") + file) (display-hint (format #f (G_ "To allow automatic loading of @file{~a} when running @command{guix shell}, you must explicitly authorize its directory, like so: @@ -295,7 +296,7 @@ (define disallow-implicit-load? file (dirname file) (authorized-directory-file))) - opts)))))) + (exit 1))))))) ;;; diff --git a/tests/guix-shell.sh b/tests/guix-shell.sh index 95725cba2d..3bdf625189 100644 --- a/tests/guix-shell.sh +++ b/tests/guix-shell.sh @@ -39,7 +39,9 @@ guix shell --bootstrap --pure guile-bootstrap -- guile --version cat > "$tmpdir/guix.scm" < "stderr") +grep "not authorized" "$tmpdir/stderr" +rm "$tmpdir/stderr" # Authorize the directory. echo "$(realpath "$tmpdir")" > "$configdir/guix/shell-authorized-directories" From a239b1e678e0c6b21fa95105546e754e2eff8a5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20M=C3=A9lotte?= Date: Tue, 19 Oct 2021 14:08:52 +0200 Subject: [PATCH 253/287] gnu: Add python-ijson. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-ijson): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index bd5a5c2d4a..f12cca9757 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -110,6 +110,7 @@ ;;; Copyright © 2021 Pradana Aumars ;;; Copyright © 2021 Felix Gruber ;;; Copyright © 2021 Sébastien Lerique +;;; Copyright © 2021 Raphaël Mélotte ;;; ;;; This file is part of GNU Guix. ;;; @@ -27606,3 +27607,38 @@ (define-public python-aspectlib code is desired. It includes tools for debugging and testing: simple mock/record and a complete capture/replay framework.") (license license:bsd-2))) + +(define-public python-ijson + (package + (name "python-ijson") + (version "3.1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ijson" version)) + (sha256 + (base32 "1sp463ywj4jv5cp6hsv2qwiima30d09xsabxb2dyq5b17jp0640x")))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; the tests run by the default setup.py require yajl 1.x, + ;; but we have 2.x. yajl 1.x support is going to be removed + ;; anyway, so use pytest to avoid running the yajl1-related + ;; tests. See: https://github.com/ICRAR/ijson/issues/55 + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv"))))))) + (inputs + ;; libyajl is optional, but compiling with it makes faster + ;; backends available to ijson: + `(("libyajl", libyajl))) + (native-inputs + `(("python-pytest", python-pytest))) + (build-system python-build-system) + (home-page "https://github.com/ICRAR/ijson") + (synopsis "Iterative JSON parser with Python iterator interfaces") + (description + "Ijson is an iterative JSON parser with standard Python iterator +interfaces.") + (license license:bsd-3))) From 2339ee166c73055604c9c3770b86f72b04b09ea8 Mon Sep 17 00:00:00 2001 From: jgart Date: Fri, 1 Oct 2021 05:26:06 -0400 Subject: [PATCH 254/287] gnu: Add r-fasterize. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cran.scm (r-fasterize): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/cran.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 792ea2a75b..d1f3e52b1e 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -32117,6 +32117,34 @@ (define-public r-logger formatting and delivering log messages with low overhead.") (license license:agpl3+))) +(define-public r-fasterize + (package + (name "r-fasterize") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "fasterize" version)) + (sha256 + (base32 "10bzl77c1b9jhcn1xp467qzp2n8c7s3wpxn53qjh1nwvbri5kd32")))) + (properties `((upstream-name . "fasterize"))) + (build-system r-build-system) + (propagated-inputs + `(("r-raster" ,r-raster) + ("r-rcpp" ,r-rcpp) + ("r-rcpparmadillo" ,r-rcpparmadillo) + ("r-sp" ,r-sp))) + (native-inputs `(("r-knitr" ,r-knitr))) + (home-page "https://github.com/ecohealthalliance/fasterize") + (synopsis "Fast Polygon to Raster Conversion") + (description +"This package provides a drop-in replacement for @code{rasterize} from +the @code{raster} package that takes sf-type objects, and is much faster. +There is support for the main options provided by the @code{rasterize} +function, including setting the field used and background value, and +options for aggregating multi-layer rasters.") + (license license:expat))) + (define-public r-ggh4x (package (name "r-ggh4x") From f8d3c98162910b3d715c93f73ae9e7d278de6840 Mon Sep 17 00:00:00 2001 From: jgart Date: Fri, 1 Oct 2021 05:26:07 -0400 Subject: [PATCH 255/287] gnu: Add r-bien. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cran.scm (r-bien): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/cran.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index d1f3e52b1e..5448c52330 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -32145,6 +32145,43 @@ (define-public r-fasterize options for aggregating multi-layer rasters.") (license license:expat))) +(define-public r-bien + (package + (name "r-bien") + (version "1.2.4") + (source + (origin + (method url-fetch) + (uri (cran-uri "BIEN" version)) + (sha256 + (base32 "1dagrs54ciagm2mgqrvxl6k2akahr0qk63ifxqnks7iljm0x1gw6")))) + (properties `((upstream-name . "BIEN"))) + (build-system r-build-system) + (native-inputs + `(("r-knitr" ,r-knitr) + ("r-testthat" ,r-testthat))) + (propagated-inputs + `(("r-ape" ,r-ape) + ("r-dbi" ,r-dbi) + ("r-doparallel" ,r-doparallel) + ("r-fasterize" ,r-fasterize) + ("r-foreach" ,r-foreach) + ("r-raster" ,r-raster) + ("r-rgdal" ,r-rgdal) + ("r-rgeos" ,r-rgeos) + ("r-rpostgresql" ,r-rpostgresql) + ("r-sf" ,r-sf) + ("r-sp" ,r-sp))) + (home-page "https://cran.r-project.org/package=BIEN") + (synopsis "Tools for accessing the BIEN database") + (description + "This package provides tools for accessing the Botanical Information and +Ecology Network (BIEN) database. The BIEN database contains cleaned and +standardized botanical data including occurrence, trait, plot and taxonomic +data. This package provides functions that query the BIEN database by +constructing and executing optimized SQL queries.") + (license license:expat))) + (define-public r-ggh4x (package (name "r-ggh4x") From 142344b6efa42e1a4d57a4bdf14dfb3ca1cba25a Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Sat, 23 Oct 2021 12:03:18 +0200 Subject: [PATCH 256/287] gnu: qemu: Add Guix support to QEMU guest agent. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QEMU guest agent hardcodes paths to /sbin/hwclock and /sbin/shutdown. Patch the source to try binaries under /run/current-system/profile/sbin first. * gnu/packages/patches/qemu-fix-agent-paths.patch: New file. * gnu/local.mk (dist_patch_DATA): Register the patch. * gnu/packages/virtualization.scm (qemu)[origin]: Apply it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + .../patches/qemu-fix-agent-paths.patch | 66 +++++++++++++++++++ gnu/packages/virtualization.scm | 3 +- 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/qemu-fix-agent-paths.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3a849ed2b0..baba6be058 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1707,6 +1707,7 @@ dist_patch_DATA = \ %D%/packages/patches/qemu-CVE-2021-20203.patch \ %D%/packages/patches/qemu-glibc-2.27.patch \ %D%/packages/patches/qemu-glibc-2.30.patch \ + %D%/packages/patches/qemu-fix-agent-paths.patch \ %D%/packages/patches/qpdfview-qt515-compat.patch \ %D%/packages/patches/qrcodegen-cpp-make-install.patch \ %D%/packages/patches/qt4-ldflags.patch \ diff --git a/gnu/packages/patches/qemu-fix-agent-paths.patch b/gnu/packages/patches/qemu-fix-agent-paths.patch new file mode 100644 index 0000000000..bae62fadbf --- /dev/null +++ b/gnu/packages/patches/qemu-fix-agent-paths.patch @@ -0,0 +1,66 @@ +Allow a QEMU host to set the time and shutdown Guix guests. Styled +after the patch from the Nix package: + +https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch + +diff --git a/qga/commands-posix.c b/qga/commands-posix.c +index 75dbaab..b416b03 100644 +--- a/qga/commands-posix.c ++++ b/qga/commands-posix.c +@@ -84,6 +84,7 @@ static void ga_wait_child(pid_t pid, int *status, Error **errp) + void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp) + { + const char *shutdown_flag; ++ const char *command; + Error *local_err = NULL; + pid_t pid; + int status; +@@ -91,10 +92,13 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp) + slog("guest-shutdown called, mode: %s", mode); + if (!has_mode || strcmp(mode, "powerdown") == 0) { + shutdown_flag = "-P"; ++ command = "shutdown"; + } else if (strcmp(mode, "halt") == 0) { + shutdown_flag = "-H"; ++ command = "halt"; + } else if (strcmp(mode, "reboot") == 0) { + shutdown_flag = "-r"; ++ command = "reboot"; + } else { + error_setg(errp, + "mode is invalid (valid values are: halt|powerdown|reboot"); +@@ -109,6 +113,11 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp) + reopen_fd_to_null(1); + reopen_fd_to_null(2); + ++ /* try Guix’s shutdown/halt/reboot first */ ++ char *path = g_strdup_printf("/run/current-system/profile/sbin/%s", command); ++ execle(path, command, (char *)NULL, environ); ++ g_free(path); ++ + execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0", + "hypervisor initiated shutdown", (char *)NULL, environ); + _exit(EXIT_FAILURE); +@@ -158,10 +167,12 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp) + Error *local_err = NULL; + struct timeval tv; + static const char hwclock_path[] = "/sbin/hwclock"; ++ static const char hwclock_path_guix[] = "/run/current-system/profile/sbin/hwclock"; + static int hwclock_available = -1; + + if (hwclock_available < 0) { +- hwclock_available = (access(hwclock_path, X_OK) == 0); ++ hwclock_available = (access(hwclock_path_guix, X_OK) == 0) || ++ (access(hwclock_path, X_OK) == 0); + } + + if (!hwclock_available) { +@@ -207,6 +218,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp) + + /* Use '/sbin/hwclock -w' to set RTC from the system time, + * or '/sbin/hwclock -s' to set the system time from RTC. */ ++ execle(hwclock_path_guix, "hwclock", has_time ? "-w" : "-s", ++ NULL, environ); + execle(hwclock_path, "hwclock", has_time ? "-w" : "-s", + NULL, environ); + _exit(EXIT_FAILURE); diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 15040d65a8..7da6345c63 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -159,7 +159,8 @@ (define-public qemu (base32 "15iw7982g6vc4jy1l9kk1z9sl5bm1bdbwr74y7nvwjs1nffhig7f")) (patches (search-patches "qemu-CVE-2021-20203.patch" - "qemu-build-info-manual.patch")) + "qemu-build-info-manual.patch" + "qemu-fix-agent-paths.patch")) (modules '((guix build utils))) (snippet '(begin From cf0abb6cfe5222796b676fe2d1c7667fb396ce14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C4=83d=C4=83lin=20Ionel=20Patra=C8=99cu?= Date: Thu, 28 Oct 2021 20:26:08 +0200 Subject: [PATCH 257/287] gnu: Add r-formattable. * gnu/packages/cran.scm (r-formattable): New variable. --- gnu/packages/cran.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 5448c52330..5384dbcb29 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -23669,6 +23669,35 @@ (define-public r-forecast space models and automatic ARIMA modelling.") (license license:gpl3))) +(define-public r-formattable + (package + (name "r-formattable") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "formattable" version)) + (sha256 + (base32 "1vdxi0xmg019qyzjrp8bkjxciz245jcxsrkhfzd44ynqcwi4s3ag")))) + (properties `((upstream-name . "formattable"))) + (build-system r-build-system) + (propagated-inputs + `(("r-htmltools" ,r-htmltools) + ("r-htmlwidgets" ,r-htmlwidgets) + ("r-lifecycle" ,r-lifecycle) + ("r-rmarkdown" ,r-rmarkdown))) + (native-inputs + `(("r-knitr" ,r-knitr))) + (home-page "https://github.com/renkun-ken/formattable") + (synopsis "Print vectors and data frames with text fromatting") + (description + "This R package provides functions to create formattable vectors and data +frames. @emph{Formattable} vectors are printed with text formatting, and +formattable data frames are printed with multiple types of formatting in HTML +to improve the readability of data presented in tabular form rendered in web +pages.") + (license license:expat))) + (define-public r-xmisc (package (name "r-xmisc") From d5eb05f01ea59da8435e9df4f15835edbb31a30e Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Sat, 30 Oct 2021 12:42:27 +0200 Subject: [PATCH 258/287] guix home: import: Make the user to specify a destination directory. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Copy the appropriate the relevant configuration files to the destination directory, and call ‘local-file’ on them. Without this, ‘guix home import’ will generate a service declaration like this (service home-bash-service-type (home-bash-configuration (bashrc (list (slurp-file-gexp (local-file "/home/yoctocell/.bashrc")))))) but when running ‘guix home reconfigure’, the ~/.bashrc file would be moved, so when running ‘guix home reconfigure’ for the second time, it would read the ~/.bashrc which is itself a symlink to a file the store. * guix/scripts/home/import.scm (generate-bash-module+configuration): Take ‘destination-directory’ parameter (modules+configurations): Copy the user’s configuration file to ‘%destination-directory’. * guix/scripts/home.scm (process-command): Adjust accordingly; create ‘destination’ if it doesn’t exist. Signed-off-by: Ludovic Courtès --- guix/scripts/home.scm | 24 ++++++---- guix/scripts/home/import.scm | 86 +++++++++++++++++++++--------------- 2 files changed, 65 insertions(+), 45 deletions(-) diff --git a/guix/scripts/home.scm b/guix/scripts/home.scm index 55e7b436c1..3f48b98ed4 100644 --- a/guix/scripts/home.scm +++ b/guix/scripts/home.scm @@ -40,6 +40,7 @@ (define-module (guix scripts home) #:autoload (guix scripts pull) (channel-commit-hyperlink) #:use-module (guix scripts home import) #:use-module ((guix status) #:select (with-status-verbosity)) + #:use-module ((guix build utils) #:select (mkdir-p)) #:use-module (guix gexp) #:use-module (guix monads) #:use-module (srfi srfi-1) @@ -260,15 +261,20 @@ (define-syntax-rule (with-store* store exp ...) (apply search args)) ((import) (let* ((profiles (delete-duplicates - (match (filter-map (match-lambda - (('profile . p) p) - (_ #f)) - opts) - (() (list %current-profile)) - (lst (reverse lst))))) - (manifest (concatenate-manifests - (map profile-manifest profiles)))) - (import-manifest manifest (current-output-port)))) + (match (filter-map (match-lambda + (('profile . p) p) + (_ #f)) + opts) + (() (list %current-profile)) + (lst (reverse lst))))) + (manifest (concatenate-manifests + (map profile-manifest profiles))) + (destination (match args + ((destination) destination) + (_ (leave (G_ "wrong number of arguments~%")))))) + (unless (file-exists? destination) + (mkdir-p destination)) + (import-manifest manifest destination (current-output-port)))) ((describe) (match (generation-number %guix-home) (0 diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index 611f580e85..c7c60e95e8 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -36,49 +36,61 @@ (define-module (guix scripts home import) ;;; ;;; Code: +(define (generate-bash-configuration+modules destination-directory) + (define (destination-append path) + (string-append destination-directory "/" path)) -(define (generate-bash-module+configuration) - (let ((rc (string-append (getenv "HOME") "/.bashrc")) - (profile (string-append (getenv "HOME") "/.bash_profile")) - (logout (string-append (getenv "HOME") "/.bash_logout"))) - `((gnu home services bash) + (let ((rc (destination-append ".bashrc")) + (profile (destination-append ".bash_profile")) + (logout (destination-append ".bash_logout"))) + `((gnu home-services bash) (service home-bash-service-type - (home-bash-configuration - ,@(if (file-exists? rc) - `((bashrc - (list (local-file ,rc)))) - '()) - ,@(if (file-exists? profile) - `((bash-profile - (list (local-file ,profile)))) - '()) - ,@(if (file-exists? logout) - `((bash-logout - (list (local-file ,logout)))) - '())))))) - + (home-bash-configuration + ,@(if (file-exists? rc) + `((bashrc + (list (slurp-file-gexp + (local-file ,rc))))) + '()) + ,@(if (file-exists? profile) + `((bash-profile + (list (slurp-file-gexp + (local-file ,profile))))) + '()) + ,@(if (file-exists? logout) + `((bash-logout + (list (slurp-file-gexp + (local-file ,logout))))) + '())))))) (define %files-configurations-alist `((".bashrc" . ,generate-bash-module+configuration) (".bash_profile" . ,generate-bash-module+configuration) (".bash_logout" . ,generate-bash-module+configuration))) -(define (modules+configurations) - (let ((configurations (delete-duplicates - (filter-map (match-lambda - ((file . proc) - (if (file-exists? - (string-append (getenv "HOME") "/" file)) - proc - #f))) - %files-configurations-alist) - (lambda (x y) - (equal? (procedure-name x) (procedure-name y)))))) - (map (lambda (proc) (proc)) configurations))) +(define (configurations+modules destination-directory) + "Return a list of procedures which when called, generate code for a home +service declaration." + (define configurations + (delete-duplicates + (filter-map (match-lambda + ((file . proc) + (let ((absolute-path (string-append (getenv "HOME") + "/" file))) + (and (file-exists? absolute-path) + (begin + (copy-file absolute-path + (string-append + destination-directory "/" file)) + proc))))) + %files+configurations-alist) + (lambda (x y) + (equal? (procedure-name x) (procedure-name y))))) + + (map (lambda (proc) (proc destination-directory)) configurations)) ;; Based on `manifest->code' from (guix profiles) ;; MAYBE: Upstream it? -(define* (manifest->code manifest +(define* (manifest->code manifest destination-directory #:key (entry-package-version (const "")) (home-environment? #f)) @@ -129,7 +141,8 @@ (define (qualified-name entry) ":" output)))) (manifest-entries manifest)))) (if home-environment? - (let ((modules+configurations (modules+configurations))) + (let ((configurations+modules + (configurations+modules destination-directory))) `(begin (use-modules (gnu home) (gnu packages) @@ -171,7 +184,8 @@ (define name (options->transformation ',options)))) transformation-procedures))) (if home-environment? - (let ((modules+configurations (modules+configurations))) + (let ((configurations+modules + (configurations+modules destination-directory))) `(begin (use-modules (guix transformations) (gnu home) @@ -204,7 +218,7 @@ (define* (home-environment-template #:key (packages #f) (specs #f) services) (services (list ,@services)))) (define* (import-manifest - manifest + manifest destination-directory #:optional (port (current-output-port))) "Write to PORT a corresponding to MANIFEST." (define (version-spec entry) @@ -227,7 +241,7 @@ (define (version-spec entry) (version-unique-prefix (manifest-entry-version entry) versions))))))) - (match (manifest->code manifest + (match (manifest->code manifest destination-directory #:entry-package-version version-spec #:home-environment? #t) (('begin exp ...) From e4d09d25ae6e4319c9eb1c78601af7007128a21e Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Sat, 30 Oct 2021 12:42:32 +0200 Subject: [PATCH 259/287] guix home: import: Allow multiple modules to be imported for each service. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, only one module could be imported for each service, e.g., only (gnu home-services shell) could be imported when generating the Bash service declaration. However, for some services, multiple modules might need to be imported in order for it to work. * guix/scripts/home/import.scm (generate-bash-module+configuration): Rename to ... (generate-bash-configuration+modules): ... this. (%files-configurations-alist): Rename to ... (%files+configurations-alist): ... this. (modules+configurations): Rename to ... (configurations+modules): ... this. (manifest->code): Adjust accordingly. Signed-off-by: Ludovic Courtès --- guix/scripts/home/import.scm | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index c7c60e95e8..533abdbb8d 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -43,8 +43,7 @@ (define (destination-append path) (let ((rc (destination-append ".bashrc")) (profile (destination-append ".bash_profile")) (logout (destination-append ".bash_logout"))) - `((gnu home-services bash) - (service home-bash-service-type + `((service home-bash-service-type (home-bash-configuration ,@(if (file-exists? rc) `((bashrc @@ -60,12 +59,15 @@ (define (destination-append path) `((bash-logout (list (slurp-file-gexp (local-file ,logout))))) - '())))))) + '()))) + (gnu home-services bash)))) -(define %files-configurations-alist - `((".bashrc" . ,generate-bash-module+configuration) - (".bash_profile" . ,generate-bash-module+configuration) - (".bash_logout" . ,generate-bash-module+configuration))) + + +(define %files+configurations-alist + `((".bashrc" . ,generate-bash-configuration+modules) + (".bash_profile" . ,generate-bash-configuration+modules) + (".bash_logout" . ,generate-bash-configuration+modules))) (define (configurations+modules destination-directory) "Return a list of procedures which when called, generate code for a home @@ -144,12 +146,13 @@ (define (qualified-name entry) (let ((configurations+modules (configurations+modules destination-directory))) `(begin - (use-modules (gnu home) - (gnu packages) - ,@(map first modules+configurations)) - ,(home-environment-template - #:specs specs - #:services (map second modules+configurations)))) + (use-modules (gnu home) + (gnu packages) + (gnu services) + ,@(concatenate (map cdr configurations+modules))) + ,(home-environment-template + #:specs specs + #:services (map first configurations+modules)))) `(begin (use-modules (gnu packages)) @@ -190,13 +193,14 @@ (define name (use-modules (guix transformations) (gnu home) (gnu packages) - ,@(map first modules+configurations)) + (gnu services) + ,@(concatenate (map cdr configurations+modules))) ,@transformations ,(home-environment-template #:packages packages - #:services (map second modules+configurations)))) + #:services (map first configurations+modules)))) `(begin (use-modules (guix transformations) (gnu packages)) From 3be1a982f30dee261b90fd2779fc4d1b04c50961 Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Sat, 30 Oct 2021 12:42:34 +0200 Subject: [PATCH 260/287] guix home: import: Fix module name for Bash service. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/scripts/home/import.scm (generate-bash-configuration+modules): Change (gnu home-services bash) to (gnu home-services shells); add (guix gexp). Signed-off-by: Ludovic Courtès --- guix/scripts/home/import.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index 533abdbb8d..f20088aa88 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -60,7 +60,8 @@ (define (destination-append path) (list (slurp-file-gexp (local-file ,logout))))) '()))) - (gnu home-services bash)))) + (guix gexp) + (gnu home services shells)))) From e12e8aad35e734fe2c4a0a54e9c6bc91eedf921d Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Sat, 30 Oct 2021 12:42:35 +0200 Subject: [PATCH 261/287] =?UTF-8?q?guix=20home:=20import:=20Don=E2=80=99t?= =?UTF-8?q?=20use=20'slurp-file-gexp'.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ‘slurp-file-gexp’ is not a bound procedure. * guix/scripts/home/import.scm (generate-bash-configuration+modules): Don’t use ‘slurp-file-gexp’. Signed-off-by: Ludovic Courtès --- guix/scripts/home/import.scm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index f20088aa88..0e7c454f45 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -47,24 +47,19 @@ (define (destination-append path) (home-bash-configuration ,@(if (file-exists? rc) `((bashrc - (list (slurp-file-gexp - (local-file ,rc))))) + (list (local-file ,rc)))) '()) ,@(if (file-exists? profile) `((bash-profile - (list (slurp-file-gexp - (local-file ,profile))))) + (list (local-file ,profile)))) '()) ,@(if (file-exists? logout) `((bash-logout - (list (slurp-file-gexp - (local-file ,logout))))) + (list (local-file ,logout)))) '()))) (guix gexp) (gnu home services shells)))) - - (define %files+configurations-alist `((".bashrc" . ,generate-bash-configuration+modules) (".bash_profile" . ,generate-bash-configuration+modules) From 256bd712648f404451f820eaedab3985df819556 Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Sat, 30 Oct 2021 12:42:37 +0200 Subject: [PATCH 262/287] guix home: import: Delete duplicate modules when importing. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two different services might require the same module(s), so delete duplicates when generating the ‘use-modules’ form. * import.scm (manifest->code): Delete duplicate modules. Signed-off-by: Ludovic Courtès --- guix/scripts/home/import.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index 0e7c454f45..f0ae233b75 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -145,7 +145,8 @@ (define (qualified-name entry) (use-modules (gnu home) (gnu packages) (gnu services) - ,@(concatenate (map cdr configurations+modules))) + ,@((compose delete-duplicates concatenate) + (map cdr configurations+modules))) ,(home-environment-template #:specs specs #:services (map first configurations+modules)))) @@ -190,7 +191,8 @@ (define name (gnu home) (gnu packages) (gnu services) - ,@(concatenate (map cdr configurations+modules))) + ,@((compose delete-duplicates concatenate) + (map cdr configurations+modules))) ,@transformations From 87c04b0e170a62aa60c8f2054ad039d169751b9c Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Sat, 30 Oct 2021 12:42:39 +0200 Subject: [PATCH 263/287] =?UTF-8?q?doc:=20Document=20the=20=E2=80=98guix?= =?UTF-8?q?=20home=20import=E2=80=99=20subcommand.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Invoking guix home): Document ‘guix home import’. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 22215214e0..066971b995 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -36509,6 +36509,38 @@ generations that are up to 10 days old: $ guix home list-generations 10d @end example +@item import +Generate a @dfn{home environment} from the packages in the default +profile and configuration files found in the user's home directory. The +configuration files will be copied to the specified directory. Note +that not every home service that exists is supported (@pxref{Home +Services}). + +@example +$ guix home import ~/guix-config +;; This "home-environment" file can be passed to 'guix home reconfigure' +;; to reproduce the content of your profile. This is "symbolic": it only +;; specifies package names. To reproduce the exact same profile, you also +;; need to capture the channels being used, as returned by "guix describe". +;; See the "Replicating Guix" section in the manual. + +(use-modules + (gnu home) + (gnu packages) + (gnu home services shells)) + +(home-environment + (packages + (map specification->package + (list "glibc-locales" "nss-certs" "nss"))) + (services + (list (service + home-bash-service-type + (home-bash-configuration + (bashrc + (list (local-file "/home/charlie/guix-config/.bashrc")))))))) +@end example + @end table @var{options} can contain any of the common build options (@pxref{Common From 40acbaf0789d47464062622bef463921556c2235 Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Sat, 30 Oct 2021 12:42:41 +0200 Subject: [PATCH 264/287] =?UTF-8?q?Add=20tests=20for=20=E2=80=98guix=20hom?= =?UTF-8?q?e=20import=E2=80=99.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * tests/home-import.scm: New file. * Makefile.am (SCM_TESTS): Add it. Signed-off-by: Ludovic Courtès --- Makefile.am | 1 + guix/scripts/home/import.scm | 7 +- tests/home-import.scm | 179 +++++++++++++++++++++++++++++++++++ 3 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 tests/home-import.scm diff --git a/Makefile.am b/Makefile.am index 239387c2f4..d608b08899 100644 --- a/Makefile.am +++ b/Makefile.am @@ -475,6 +475,7 @@ SCM_TESTS = \ tests/graph.scm \ tests/gremlin.scm \ tests/hackage.scm \ + tests/home-import.scm \ tests/import-git.scm \ tests/import-utils.scm \ tests/inferior.scm \ diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index f0ae233b75..6e3ed065d5 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -27,7 +27,10 @@ (define-module (guix scripts home import) #:use-module (ice-9 pretty-print) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) - #:export (import-manifest)) + #:export (import-manifest + + ;; For tests. + manifest->code)) ;;; Commentary: ;;; @@ -36,6 +39,8 @@ (define-module (guix scripts home import) ;;; ;;; Code: + + (define (generate-bash-configuration+modules destination-directory) (define (destination-append path) (string-append destination-directory "/" path)) diff --git a/tests/home-import.scm b/tests/home-import.scm new file mode 100644 index 0000000000..691e8196d6 --- /dev/null +++ b/tests/home-import.scm @@ -0,0 +1,179 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Xinglu Chen +;;; +;;; 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 . + +(define-module (test-home-import) + #:use-module (guix scripts home import) + #:use-module (guix utils) + #:use-module (guix build utils) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:use-module ((guix profiles) #:hide (manifest->code)) + #:use-module ((guix build syscalls) #:select (mkdtemp!)) + #:use-module (gnu packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-64)) + +;; Test the (guix scripts home import) tools. + +(test-begin "home-import") + +;; Example manifest entries. + +(define guile-2.0.9 + (manifest-entry + (name "guile") + (version "2.0.9") + (item "/gnu/store/..."))) + +(define glibc + (manifest-entry + (name "glibc") + (version "2.19") + (item "/gnu/store/..."))) + +(define gcc + (manifest-entry + (name "gcc") + (version "10.3.0") + (item "/gnu/store/..."))) + +;; Helpers for checking and generating home environments. + +(define %destination-directory "/tmp/guix-config") +(mkdir-p %destination-directory) + +(define %temporary-home-directory (mkdtemp! "/tmp/guix-home-import.XXXXXX")) + +(define-syntax-rule (define-home-environment-matcher name pattern) + (define (name obj) + (match obj + (pattern #t) + (x (pk 'fail x #f))))) + +(define (create-temporary-home files-alist) + "Create a temporary home directory in '%temporary-home-directory'. +FILES-ALIST is an association list of files and the content of the +corresponding file." + (define (create-file file content) + (let ((absolute-path (string-append %temporary-home-directory "/" file))) + (unless (file-exists? absolute-path) + (mkdir-p (dirname absolute-path))) + (call-with-output-file absolute-path + (cut display content <>)))) + + (for-each (match-lambda + ((file . content) (create-file file content))) + files-alist)) + +;; Copied from (guix profiles) +(define (version-spec entry) + (let ((name (manifest-entry-name entry))) + (match (map package-version (find-packages-by-name name)) + ((_) + ;; A single version of NAME is available, so do not specify the + ;; version number, even if the available version doesn't match ENTRY. + "") + (versions + ;; If ENTRY uses the latest version, don't specify any version. + ;; Otherwise return the shortest unique version prefix. Note that + ;; this is based on the currently available packages, which could + ;; differ from the packages available in the revision that was used + ;; to build MANIFEST. + (let ((current (manifest-entry-version entry))) + (if (every (cut version>? current <>) + (delete current versions)) + "" + (version-unique-prefix (manifest-entry-version entry) + versions))))))) + +(define (eval-test-with-home-environment files-alist manifest matcher) + (create-temporary-home files-alist) + (setenv "HOME" %temporary-home-directory) + (mkdir-p %temporary-home-directory) + (let* ((home-environment (manifest->code manifest %destination-directory + #:entry-package-version version-spec + #:home-environment? #t)) + (result (matcher home-environment))) + (delete-file-recursively %temporary-home-directory) + result)) + +(define-home-environment-matcher match-home-environment-no-services + ('begin + ('use-modules + ('gnu 'home) + ('gnu 'packages) + ('gnu 'services)) + ('home-environment + ('packages + ('map 'specification->package + ('list "guile@2.0.9" "gcc" "glibc@2.19"))) + ('services + ('list))))) + +(define-home-environment-matcher match-home-environment-no-services-nor-packages + ('begin + ('use-modules + ('gnu 'home) + ('gnu 'packages) + ('gnu 'services)) + ('home-environment + ('packages + ('map 'specification->package + ('list))) + ('services + ('list))))) + +(define-home-environment-matcher match-home-environment-bash-service + ('begin + ('use-modules + ('gnu 'home) + ('gnu 'packages) + ('gnu 'services) + ('guix 'gexp) + ('gnu 'home 'services 'shells)) + ('home-environment + ('packages + ('map 'specification->package + ('list))) + ('services + ('list ('service + 'home-bash-service-type + ('home-bash-configuration + ('bashrc + ('list ('local-file "/tmp/guix-config/.bashrc")))))))))) + +(test-assert "manifest->code: No services" + (eval-test-with-home-environment + '() + (make-manifest (list guile-2.0.9 gcc glibc)) + match-home-environment-no-services)) + +(test-assert "manifest->code: No packages nor services" + (eval-test-with-home-environment + '() + (make-manifest '()) + match-home-environment-no-services-nor-packages)) + +(test-assert "manifest->code: Bash service" + (eval-test-with-home-environment + '((".bashrc" . "echo 'hello guix'")) + (make-manifest '()) + match-home-environment-bash-service)) + +(test-end "home-import") From ea19381bd9405bdb711c36b534e463fc7c8ca949 Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Sat, 30 Oct 2021 12:42:44 +0200 Subject: [PATCH 265/287] =?UTF-8?q?guix=20home:=20import:=20Call=20?= =?UTF-8?q?=E2=80=98local-file=E2=80=99=20with=20=E2=80=98name=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Set the name of the file to just the basename of the file passed to ‘local-file’. * guix/scripts/home/import.scm (basename+remove-dots): New procedure. (generate-bash-configuration+modules): Use it. * tests/home-import.scm (match-home-environment-bash-service): Adjust accordingly. Signed-off-by: Ludovic Courtès --- guix/scripts/home/import.scm | 20 ++++++++++++++++---- tests/home-import.scm | 3 ++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index 6e3ed065d5..a0022458f6 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -39,7 +39,16 @@ (define-module (guix scripts home import) ;;; ;;; Code: - +(define (basename+remove-dots file-name) + "Remove the dot from the dotfile FILE-NAME; replace the other dots in +FILE-NAME with \"-\", and return the basename of it." + (string-map (match-lambda + (#\. #\-) + (c c)) + (let ((base (basename file-name))) + (if (string-prefix? "." base) + (string-drop base 1) + base)))) (define (generate-bash-configuration+modules destination-directory) (define (destination-append path) @@ -52,15 +61,18 @@ (define (destination-append path) (home-bash-configuration ,@(if (file-exists? rc) `((bashrc - (list (local-file ,rc)))) + (list (local-file ,rc + ,(basename+remove-dots rc))))) '()) ,@(if (file-exists? profile) `((bash-profile - (list (local-file ,profile)))) + (list (local-file ,profile + ,(basename+remove-dots profile))))) '()) ,@(if (file-exists? logout) `((bash-logout - (list (local-file ,logout)))) + (list (local-file ,logout + ,(basename+remove-dots logout))))) '()))) (guix gexp) (gnu home services shells)))) diff --git a/tests/home-import.scm b/tests/home-import.scm index 691e8196d6..40d9547e8b 100644 --- a/tests/home-import.scm +++ b/tests/home-import.scm @@ -156,7 +156,8 @@ (define-home-environment-matcher match-home-environment-bash-service 'home-bash-service-type ('home-bash-configuration ('bashrc - ('list ('local-file "/tmp/guix-config/.bashrc")))))))))) + ('list ('local-file "/tmp/guix-config/.bashrc" + "bashrc")))))))))) (test-assert "manifest->code: No services" (eval-test-with-home-environment From 341fba217f5a9490c0e3a077e017adf7bc68acf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 30 Oct 2021 21:39:18 +0200 Subject: [PATCH 266/287] home: import: Compare procedures with 'eq?'. 'procedure-name' is a debugging aid and cannot be reliably used to check for procedure equality. * guix/scripts/home/import.scm (configurations+modules): Remove use of 'procedure-name'. --- guix/scripts/home/import.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index a0022458f6..d00739da22 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -98,9 +98,8 @@ (define configurations destination-directory "/" file)) proc))))) %files+configurations-alist) - (lambda (x y) - (equal? (procedure-name x) (procedure-name y))))) - + eq?)) + (map (lambda (proc) (proc destination-directory)) configurations)) ;; Based on `manifest->code' from (guix profiles) From f3933ae40d4192fa3aeff95ac768bab86ade766f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 30 Oct 2021 21:43:19 +0200 Subject: [PATCH 267/287] home: import: Clarify "destination directory". Suggested by Liliana Marie Prikler . * guix/scripts/home/import.scm (configurations+modules): Rename 'destination-directory' to 'configuration-directory'. Improve docstring. --- guix/scripts/home/import.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index d00739da22..a51f7f504b 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -82,9 +82,11 @@ (define %files+configurations-alist (".bash_profile" . ,generate-bash-configuration+modules) (".bash_logout" . ,generate-bash-configuration+modules))) -(define (configurations+modules destination-directory) +(define (configurations+modules configuration-directory) "Return a list of procedures which when called, generate code for a home -service declaration." +service declaration. Copy configuration files to CONFIGURATION-DIRECTORY; the +generated service declarations will refer to those files that have been saved +in CONFIGURATION-DIRECTORY." (define configurations (delete-duplicates (filter-map (match-lambda @@ -95,12 +97,12 @@ (define configurations (begin (copy-file absolute-path (string-append - destination-directory "/" file)) + configuration-directory "/" file)) proc))))) %files+configurations-alist) eq?)) - (map (lambda (proc) (proc destination-directory)) configurations)) + (map (lambda (proc) (proc configuration-directory)) configurations)) ;; Based on `manifest->code' from (guix profiles) ;; MAYBE: Upstream it? From 96728c54df365cc48f14a514b63616ff7a6d052b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 30 Oct 2021 23:30:50 +0200 Subject: [PATCH 268/287] home: import: Factorize triplicated 'version-spec' procedure. * guix/scripts/package.scm (manifest-entry-version-prefix): New procedure, moved from... (export-manifest)[version-spec]: ... here. Adjust caller. * tests/home-import.scm (version-spec): Remove. (eval-test-with-home-environment): Use 'manifest-entry-version-prefix' instead. * guix/scripts/home/import.scm (import-manifest): Likewise. --- guix/scripts/home/import.scm | 23 ++---------------- guix/scripts/package.scm | 47 ++++++++++++++++++++---------------- tests/home-import.scm | 26 +++----------------- 3 files changed, 32 insertions(+), 64 deletions(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index a51f7f504b..8f6b3b58aa 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -22,6 +22,7 @@ (define-module (guix scripts home import) #:use-module (guix ui) #:use-module (guix utils) #:use-module (guix packages) + #:autoload (guix scripts package) (manifest-entry-version-prefix) #:use-module (gnu packages) #:use-module (ice-9 match) #:use-module (ice-9 pretty-print) @@ -241,28 +242,8 @@ (define* (import-manifest manifest destination-directory #:optional (port (current-output-port))) "Write to PORT a corresponding to MANIFEST." - (define (version-spec entry) - (let ((name (manifest-entry-name entry))) - (match (map package-version (find-packages-by-name name)) - ((_) - ;; A single version of NAME is available, so do not specify the - ;; version number, even if the available version doesn't match ENTRY. - "") - (versions - ;; If ENTRY uses the latest version, don't specify any version. - ;; Otherwise return the shortest unique version prefix. Note that - ;; this is based on the currently available packages, which could - ;; differ from the packages available in the revision that was used - ;; to build MANIFEST. - (let ((current (manifest-entry-version entry))) - (if (every (cut version>? current <>) - (delete current versions)) - "" - (version-unique-prefix (manifest-entry-version entry) - versions))))))) - (match (manifest->code manifest destination-directory - #:entry-package-version version-spec + #:entry-package-version manifest-entry-version-prefix #:home-environment? #t) (('begin exp ...) (format port (G_ "\ diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index a34ecdcb54..4b9c5f210d 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -68,6 +68,7 @@ (define-module (guix scripts package) guix-package search-path-environment-variables + manifest-entry-version-prefix transaction-upgrade-entry ;mostly for testing @@ -327,31 +328,35 @@ (define (display-search-path-hint entries profile) ;;; Export a manifest. ;;; +(define (manifest-entry-version-prefix entry) + "Search among all the versions of ENTRY's package that are available, and +return the shortest unambiguous version prefix for this package. If only one +version of ENTRY's package is available, return the empty string." + (let ((name (manifest-entry-name entry))) + (match (map package-version (find-packages-by-name name)) + ((_) + ;; A single version of NAME is available, so do not specify the + ;; version number, even if the available version doesn't match ENTRY. + "") + (versions + ;; If ENTRY uses the latest version, don't specify any version. + ;; Otherwise return the shortest unique version prefix. Note that + ;; this is based on the currently available packages, which could + ;; differ from the packages available in the revision that was used + ;; to build MANIFEST. + (let ((current (manifest-entry-version entry))) + (if (every (cut version>? current <>) + (delete current versions)) + "" + (version-unique-prefix (manifest-entry-version entry) + versions))))))) + (define* (export-manifest manifest #:optional (port (current-output-port))) "Write to PORT a manifest corresponding to MANIFEST." - (define (version-spec entry) - (let ((name (manifest-entry-name entry))) - (match (map package-version (find-packages-by-name name)) - ((_) - ;; A single version of NAME is available, so do not specify the - ;; version number, even if the available version doesn't match ENTRY. - "") - (versions - ;; If ENTRY uses the latest version, don't specify any version. - ;; Otherwise return the shortest unique version prefix. Note that - ;; this is based on the currently available packages, which could - ;; differ from the packages available in the revision that was used - ;; to build MANIFEST. - (let ((current (manifest-entry-version entry))) - (if (every (cut version>? current <>) - (delete current versions)) - "" - (version-unique-prefix (manifest-entry-version entry) - versions))))))) - (match (manifest->code manifest - #:entry-package-version version-spec) + #:entry-package-version + manifest-entry-version-prefix) (('begin exp ...) (format port (G_ "\ ;; This \"manifest\" file can be passed to 'guix package -m' to reproduce diff --git a/tests/home-import.scm b/tests/home-import.scm index 40d9547e8b..dc413d8516 100644 --- a/tests/home-import.scm +++ b/tests/home-import.scm @@ -24,6 +24,8 @@ (define-module (test-home-import) #:use-module (ice-9 match) #:use-module ((guix profiles) #:hide (manifest->code)) #:use-module ((guix build syscalls) #:select (mkdtemp!)) + #:use-module ((guix scripts package) + #:select (manifest-entry-version-prefix)) #:use-module (gnu packages) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -81,33 +83,13 @@ (define (create-file file content) ((file . content) (create-file file content))) files-alist)) -;; Copied from (guix profiles) -(define (version-spec entry) - (let ((name (manifest-entry-name entry))) - (match (map package-version (find-packages-by-name name)) - ((_) - ;; A single version of NAME is available, so do not specify the - ;; version number, even if the available version doesn't match ENTRY. - "") - (versions - ;; If ENTRY uses the latest version, don't specify any version. - ;; Otherwise return the shortest unique version prefix. Note that - ;; this is based on the currently available packages, which could - ;; differ from the packages available in the revision that was used - ;; to build MANIFEST. - (let ((current (manifest-entry-version entry))) - (if (every (cut version>? current <>) - (delete current versions)) - "" - (version-unique-prefix (manifest-entry-version entry) - versions))))))) - (define (eval-test-with-home-environment files-alist manifest matcher) (create-temporary-home files-alist) (setenv "HOME" %temporary-home-directory) (mkdir-p %temporary-home-directory) (let* ((home-environment (manifest->code manifest %destination-directory - #:entry-package-version version-spec + #:entry-package-version + manifest-entry-version-prefix #:home-environment? #t)) (result (matcher home-environment))) (delete-file-recursively %temporary-home-directory) From 6f4ca78761471602e3af37ee1a33de446114039f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 31 Oct 2021 00:02:27 +0200 Subject: [PATCH 269/287] home: import: Avoid duplication of 'manifest->code'. * guix/scripts/home/import.scm (manifest->code): Remove. (manifest+configuration-files->code): New procedure. (import-manifest): Use 'manifest+configuration-files->code' instead of 'manifest->code'. * tests/home-import.scm (eval-test-with-home-environment): Likewise. (match-home-environment-transformations): New procedure. ("manifest->code: No services, package transformations"): New test. --- guix/scripts/home/import.scm | 170 ++++++++--------------------------- tests/home-import.scm | 33 ++++++- 2 files changed, 66 insertions(+), 137 deletions(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index 8f6b3b58aa..7a7712dd96 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Xinglu Chen ;;; Copyright © 2021 Andrew Tropin +;;; Copyright © 2021 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,7 +32,7 @@ (define-module (guix scripts home import) #:export (import-manifest ;; For tests. - manifest->code)) + manifest+configuration-files->code)) ;;; Commentary: ;;; @@ -105,146 +106,49 @@ (define configurations (map (lambda (proc) (proc configuration-directory)) configurations)) -;; Based on `manifest->code' from (guix profiles) -;; MAYBE: Upstream it? -(define* (manifest->code manifest destination-directory - #:key - (entry-package-version (const "")) - (home-environment? #f)) - "Return an sexp representing code to build an approximate version of -MANIFEST; the code is wrapped in a top-level 'begin' form. If -HOME-ENVIRONMENT? is #t, return an definition. -Call ENTRY-PACKAGE-VERSION to determine the version number to use in -the spec for a given entry; it can be set to 'manifest-entry-version' -for fully-specified version numbers, or to some other procedure to -disambiguate versions for packages for which several versions are -available." - (define (entry-transformations entry) - ;; Return the transformations that apply to ENTRY. - (assoc-ref (manifest-entry-properties entry) 'transformations)) +(define (manifest+configuration-files->code manifest + configuration-directory) + "Read MANIFEST and the user's configuration files listed in +%FILES+CONFIGURATIONS-ALIST, and return a 'home-environment' sexp. Copy the +user's files to CONFIGURATION-DIRECTORY; the generated sexp refers to them." + (match (manifest->code manifest + #:entry-package-version + manifest-entry-version-prefix) + (('begin ('use-modules profile-modules ...) + definitions ... ('packages->manifest packages)) + (match (configurations+modules configuration-directory) + (((services . modules) ...) + `(begin + (use-modules (gnu home) + (gnu packages) + (gnu services) + ,@(delete-duplicates + (append profile-modules (concatenate modules)))) - (define transformation-procedures - ;; List of transformation options/procedure name pairs. - (let loop ((entries (manifest-entries manifest)) - (counter 1) - (result '())) - (match entries - (() result) - ((entry . tail) - (match (entry-transformations entry) - (#f - (loop tail counter result)) - (options - (if (assoc-ref result options) - (loop tail counter result) - (loop tail (+ 1 counter) - (alist-cons options - (string->symbol - (format #f "transform~a" counter)) - result))))))))) + ,@definitions - (define (qualified-name entry) - ;; Return the name of ENTRY possibly with "@" followed by a version. - (match (entry-package-version entry) - ("" (manifest-entry-name entry)) - (version (string-append (manifest-entry-name entry) - "@" version)))) + (home-environment + (packages ,packages) + (services (list ,@services))))))) + (('begin ('specifications->manifest packages)) + (match (configurations+modules configuration-directory) + (((services . modules) ...) + `(begin + (use-modules (gnu home) + (gnu packages) + (gnu services) + ,@(delete-duplicates (concatenate modules))) - (if (null? transformation-procedures) - (let ((specs (map (lambda (entry) - (match (manifest-entry-output entry) - ("out" (qualified-name entry)) - (output (string-append (qualified-name entry) - ":" output)))) - (manifest-entries manifest)))) - (if home-environment? - (let ((configurations+modules - (configurations+modules destination-directory))) - `(begin - (use-modules (gnu home) - (gnu packages) - (gnu services) - ,@((compose delete-duplicates concatenate) - (map cdr configurations+modules))) - ,(home-environment-template - #:specs specs - #:services (map first configurations+modules)))) - `(begin - (use-modules (gnu packages)) - - (specifications->manifest - (list ,@specs))))) - (let* ((transform (lambda (options exp) - (if (not options) - exp - (let ((proc (assoc-ref transformation-procedures - options))) - `(,proc ,exp))))) - (packages (map (lambda (entry) - (define options - (entry-transformations entry)) - - (define name - (qualified-name entry)) - - (match (manifest-entry-output entry) - ("out" - (transform options - `(specification->package ,name))) - (output - `(list ,(transform - options - `(specification->package ,name)) - ,output)))) - (manifest-entries manifest))) - (transformations (map (match-lambda - ((options . name) - `(define ,name - (options->transformation ',options)))) - transformation-procedures))) - (if home-environment? - (let ((configurations+modules - (configurations+modules destination-directory))) - `(begin - (use-modules (guix transformations) - (gnu home) - (gnu packages) - (gnu services) - ,@((compose delete-duplicates concatenate) - (map cdr configurations+modules))) - - ,@transformations - - ,(home-environment-template - #:packages packages - #:services (map first configurations+modules)))) - `(begin - (use-modules (guix transformations) - (gnu packages)) - - ,@transformations - - (packages->manifest - (list ,@packages))))))) - -(define* (home-environment-template #:key (packages #f) (specs #f) services) - "Return an S-exp containing a declaration -containing PACKAGES, or SPECS (package specifications), and SERVICES." - `(home-environment - (packages - ,@(if packages - `((list ,@packages)) - `((map specification->package - (list ,@specs))))) - (services (list ,@services)))) + (home-environment + (packages (map specification->package ,packages)) + (services (list ,@services))))))))) (define* (import-manifest manifest destination-directory #:optional (port (current-output-port))) "Write to PORT a corresponding to MANIFEST." - (match (manifest->code manifest destination-directory - #:entry-package-version manifest-entry-version-prefix - #:home-environment? #t) + (match (manifest+configuration-files->code manifest + destination-directory) (('begin exp ...) (format port (G_ "\ ;; This \"home-environment\" file can be passed to 'guix home reconfigure' diff --git a/tests/home-import.scm b/tests/home-import.scm index dc413d8516..abd3cec43d 100644 --- a/tests/home-import.scm +++ b/tests/home-import.scm @@ -87,10 +87,8 @@ (define (eval-test-with-home-environment files-alist manifest matcher) (create-temporary-home files-alist) (setenv "HOME" %temporary-home-directory) (mkdir-p %temporary-home-directory) - (let* ((home-environment (manifest->code manifest %destination-directory - #:entry-package-version - manifest-entry-version-prefix - #:home-environment? #t)) + (let* ((home-environment (manifest+configuration-files->code + manifest %destination-directory)) (result (matcher home-environment))) (delete-file-recursively %temporary-home-directory) result)) @@ -108,6 +106,22 @@ (define-home-environment-matcher match-home-environment-no-services ('services ('list))))) +(define-home-environment-matcher match-home-environment-transformations + ('begin + ('use-modules + ('gnu 'home) + ('gnu 'packages) + ('gnu 'services) + ('guix 'transformations)) + + ('define transform ('options->transformation _)) + ('home-environment + ('packages + ('list (transform ('specification->package "guile@2.0.9")) + ('specification->package "gcc") + ('specification->package "glibc@2.19"))) + ('services ('list))))) + (define-home-environment-matcher match-home-environment-no-services-nor-packages ('begin ('use-modules @@ -141,12 +155,23 @@ (define-home-environment-matcher match-home-environment-bash-service ('list ('local-file "/tmp/guix-config/.bashrc" "bashrc")))))))))) + (test-assert "manifest->code: No services" (eval-test-with-home-environment '() (make-manifest (list guile-2.0.9 gcc glibc)) match-home-environment-no-services)) +(test-assert "manifest->code: No services, package transformations" + (eval-test-with-home-environment + '() + (make-manifest (list (manifest-entry + (inherit guile-2.0.9) + (properties `((transformations + . ((foo . "bar")))))) + gcc glibc)) + match-home-environment-transformations)) + (test-assert "manifest->code: No packages nor services" (eval-test-with-home-environment '() From 7711a6c3f41b0791f9fac60d31954f5ce478b7b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 31 Oct 2021 00:16:44 +0200 Subject: [PATCH 270/287] doc: Mention "guix home import" upfront. * doc/guix.texi (Declaring the Home Environment): Mention "guix home import". --- doc/guix.texi | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 066971b995..c78dbdc451 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -35853,12 +35853,27 @@ still in an experimental stage, though. @section Declaring the Home Environment The home environment is configured by providing a @code{home-environment} declaration in a file that can be passed to the -@command{guix home} command (@pxref{Invoking guix home}). A simple -setup can include Bash and a custom text configuration, like in the -example below. Don't be afraid to declare home environment parts, which -overlaps with your current dotfiles, before installing any configuration -files, Guix Home will back up existing config files to a separate place -in the home folder. +@command{guix home} command (@pxref{Invoking guix home}). The easiest +way to get started is by generating an initial configuration with +@command{guix home import}: + +@example +guix home import ~/src/guix-config +@end example + +The @command{guix home import} command reads some of the ``dot files'' +such as @file{~/.bashrc} found in your home directory and copies them to +the given directory, @file{~/src/guix-config} in this case; it also +reads the contents of your profile, @file{~/.guix-profile}, and, based +on that, it outputs a Home configuration that resembles your current +configuration. You can dump that configuration to a file and you're +ready to go! + +A simple setup can include Bash and a custom text configuration, like in +the example below. Don't be afraid to declare home environment parts, +which overlaps with your current dot files: before installing any +configuration files, Guix Home will back up existing config files to a +separate place in the home directory. @quotation Note It is highly recommended that you manage your shell or shells with Guix From 971a69d8e33bf3fe37755798b142b18515ad6e06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 31 Oct 2021 00:19:45 +0200 Subject: [PATCH 271/287] doc: Avoid misuse of @ref. * doc/guix.texi (Declaring the Home Environment): Avoid @ref in the middle of a sentence. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index c78dbdc451..9206c0d907 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -35896,7 +35896,7 @@ There is no daemon (at least not necessarily) related to a home service, a home service is just an element that is used to declare part of home environment and extend other parts of it. The extension mechanism discussed in the previous chapter (@pxref{Defining Services}) should not -be confused with @ref{Shepherd Services}. Using this extension +be confused with Shepherd services (@pxref{Shepherd Services}). Using this extension mechanism and some Scheme code that glues things together gives the user the freedom to declare their own, very custom, home environments. From c4ac8cf4f61c730ef7e699831f697b853394e3d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 31 Oct 2021 00:49:31 +0200 Subject: [PATCH 272/287] doc: Mention 'guix home reconfigure' upfront. * doc/guix.texi (Declaring the Home Environment): Mention 'guix home reconfigure'. --- doc/guix.texi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 9206c0d907..ea1973f02c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -35900,6 +35900,16 @@ be confused with Shepherd services (@pxref{Shepherd Services}). Using this exte mechanism and some Scheme code that glues things together gives the user the freedom to declare their own, very custom, home environments. +Once you have a configuration file that suits your needs, you can +reconfigure your home by running: + +@example +guix home reconfigure config.scm +@end example + +This ``builds'' your home environment and creates @file{~/.guix-home} +pointing to it. Voilà! + @node Configuring the Shell @section Configuring the Shell This section is safe to skip if your shell or shells are managed by From 3df874deb900f8da2a832a804bcf2074171efc62 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 20:43:45 +0200 Subject: [PATCH 273/287] gnu: bsequencer: Update to 1.8.10. * gnu/packages/music.scm (bsequencer): Update to 1.8.10. [arguments]: Set CC to something sensible. --- gnu/packages/music.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 07b85b87f6..7c12d158fa 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1869,7 +1869,7 @@ (define-public tascam-gtk (define-public bsequencer (package (name "bsequencer") - (version "1.8.0") + (version "1.8.10") (source (origin (method git-fetch) (uri (git-reference @@ -1878,12 +1878,13 @@ (define-public bsequencer (file-name (git-file-name name version)) (sha256 (base32 - "0w7iwzz2r4a699fi24qk71vv2k3jpl9ylzlgmvyc3rlgad0m01k1")))) + "0w3m7x0619iq8rafcy0bal4gwh9m9h7iq93q7gkpxhv6dq58ix6l")))) (build-system gnu-build-system) (arguments `(#:make-flags - (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:tests? #f ; there are none + (list (string-append "CC=" ,(cc-for-target)) + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:tests? #f ; there are none #:phases (modify-phases %standard-phases (delete 'configure)))) From 9c1a1c3b36cf1896a4f2040c5e21be34f4c9c3fc Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 21:11:40 +0200 Subject: [PATCH 274/287] gnu: bchoppr: Update to 1.10.10. * gnu/packages/music.scm (bchoppr): Update to 1.10.10. --- gnu/packages/music.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 7c12d158fa..b652da5e77 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1905,7 +1905,7 @@ (define-public bchoppr (package (inherit bsequencer) (name "bchoppr") - (version "1.8.0") + (version "1.10.10") (source (origin (method git-fetch) @@ -1914,8 +1914,7 @@ (define-public bchoppr (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1nd6byy75f0rbz9dm9drhxmpsfhxhg0y7q3v2m3098llynhy9k2j")))) + (base32 "0gxz0cpxdfj7ajcd9yg05d26i7p24mx5865vy3ph76ni8kycdlrc")))) (synopsis "Audio stream-chopping LV2 plugin") (description "B.Choppr cuts the audio input stream into a repeated sequence of up to 16 chops. Each chop can be leveled up or down (gating). From b8da019283692392a3b11922d23fc6ebdff43808 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 21:11:50 +0200 Subject: [PATCH 275/287] gnu: bshapr: Update to 0.13. * gnu/packages/music.scm (bshapr): Update to 0.13. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index b652da5e77..d711b85088 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1926,7 +1926,7 @@ (define-public bshapr (package (inherit bsequencer) (name "bshapr") - (version "0.9") + (version "0.13") (source (origin (method git-fetch) @@ -1935,7 +1935,7 @@ (define-public bshapr (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "04zd3a178i2nivg5rjailzqvc5mlnilmhj1ziygmbhshbrywplri")))) + (base32 "1qr3fxqcplgb6iqi2vxc27jghhv6qsidww2by15zb2vs34yh73pl")))) (synopsis "Beat/envelope shaper LV2 plugin") (description "B.Shapr is a beat/envelope shaper LV2 plugin.") (home-page "https://github.com/sjaehn/BShapr") From 3f5f58df8bd8edcfabee1336be1531639353dff3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 21:12:00 +0200 Subject: [PATCH 276/287] gnu: bjumblr: Update to 1.6.8. * gnu/packages/music.scm (bjumblr): Update to 1.6.8. --- gnu/packages/music.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index d711b85088..75519fb232 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1945,7 +1945,7 @@ (define-public bjumblr (package (inherit bsequencer) (name "bjumblr") - (version "1.4.2") + (version "1.6.8") (source (origin (method git-fetch) @@ -1954,8 +1954,7 @@ (define-public bjumblr (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v")))) + (base32 "00fgax8aqqggs54pjpagw5pc30kgxaghh8mrzpqwhs06cnchcam9")))) (inputs `(("cairo" ,cairo) ("libsndfile" ,libsndfile) From c73d1e68cf64d108ed9e6433b286f03da1f16d54 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 29 Oct 2021 21:12:07 +0200 Subject: [PATCH 277/287] gnu: bschaffl: Update to 1.4.8. * gnu/packages/music.scm (bschaffl): Update to 1.4.8. --- gnu/packages/music.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 75519fb232..abbc60331f 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1969,7 +1969,7 @@ (define-public bschaffl (package (inherit bsequencer) (name "bschaffl") - (version "1.2.0") + (version "1.4.8") (source (origin (method git-fetch) @@ -1978,8 +1978,7 @@ (define-public bschaffl (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1c09acqrbd387ba41f8ch1qykdap5h6cg9if5pgd16i4dmjnpghj")))) + (base32 "1kfc75xhj365fwl8cbvhg5chwz1snzcvf4929flds02ljylc7k6d")))) (inputs `(("cairo" ,cairo) ("fontconfig" ,fontconfig) From 943dd59beb5b30437f940405fd2b56fea73764cb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 30 Oct 2021 15:48:48 +0200 Subject: [PATCH 278/287] ui: Add top-level options to help text. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This also makes automated ‘guix --h’ completion possible. * guix/ui.scm (show-guix-help): Document that an OPTION's an option, and all valid options. --- guix/ui.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index eb7f0afcfd..4b4f21d32c 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -2098,8 +2098,15 @@ (define (category-predicate category) (lambda (command) (eq? category (command-category command)))) - (format #t (G_ "Usage: guix COMMAND ARGS... -Run COMMAND with ARGS.\n")) + (format #t (G_ "Usage: guix OPTION | COMMAND ARGS... +Run COMMAND with ARGS, if given.\n")) + + (display (G_ " + -h, --help display this helpful text again and exit")) + (display (G_ " + -V, --version display version and copyright information and exit")) + (newline) + (newline) (format #t (G_ "COMMAND must be one of the sub-commands listed below:\n")) From 8f455557814ef7c1402a81d87e9e45f3508f711e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 30 Oct 2021 16:07:14 +0200 Subject: [PATCH 279/287] ui: Use DISPLAY in SHOW-GUIX-HELP. * guix/ui.scm (show-guix-help): Use DISPLAY where FORMAT isn't needed. --- guix/ui.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 4b4f21d32c..b01bb3d587 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -2098,7 +2098,7 @@ (define (category-predicate category) (lambda (command) (eq? category (command-category command)))) - (format #t (G_ "Usage: guix OPTION | COMMAND ARGS... + (display (G_ "Usage: guix OPTION | COMMAND ARGS... Run COMMAND with ARGS, if given.\n")) (display (G_ " @@ -2108,7 +2108,7 @@ (define (category-predicate category) (newline) (newline) - (format #t (G_ "COMMAND must be one of the sub-commands listed below:\n")) + (display (G_ "COMMAND must be one of the sub-commands listed below:\n")) (let ((commands (commands)) (categories (module-ref (resolve-interface '(guix scripts)) From 0987a0eba4e8220e98e93686a4ad3ef87433fb2f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 30 Oct 2021 16:34:10 +0200 Subject: [PATCH 280/287] bash completion: Don't hard-code "guix" binary name. * etc/completion/bash/guix (_guix_complete_command): Use ${COMP_WORDS[0]} instead of hard-coding "guix". --- etc/completion/bash/guix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix index ec6adfdb22..5d1ae37f12 100644 --- a/etc/completion/bash/guix +++ b/etc/completion/bash/guix @@ -28,10 +28,11 @@ _guix_complete_command () if [ -z "$_guix_commands" ] then # Cache the list of commands to speed things up. - _guix_commands="$(guix --help 2> /dev/null \ + _guix_commands="$(${COMP_WORDS[0]} --help 2> /dev/null \ | grep '^ ' \ | sed '-es/^ *\([a-z-]\+\).*$/\1/g')" fi + COMPREPLY+=($(compgen -W "$_guix_commands" -- "$word_at_point")) } From 8e6989fcaf4a6de00e799777e2a0ccb90fc05e59 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 30 Oct 2021 16:37:25 +0200 Subject: [PATCH 281/287] bash completion: Complete top-level options. * etc/completion/bash/guix (_guix_complete_option): Fix operation without a {,sub}command. (_guix_complete): Call it also when no command is given. --- etc/completion/bash/guix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix index 5d1ae37f12..6a11e1b23b 100644 --- a/etc/completion/bash/guix +++ b/etc/completion/bash/guix @@ -72,10 +72,16 @@ _guix_complete_option () { local command="${COMP_WORDS[$1]}" local subcommand="${COMP_WORDS[$(($1 + 1))]}" - if _guix_is_option "$subcommand" + + if [ $1 -le 1 ] + then + command="" + subcommand="" + elif _guix_is_option "$subcommand" then subcommand="" fi + local options="$(${COMP_WORDS[0]} $command $subcommand --help 2> /dev/null \ | grep '^ \+-' \ | sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g')" @@ -229,6 +235,7 @@ _guix_complete () case $COMP_CWORD in $command_index) _guix_complete_command + _guix_complete_option 0 "$word_at_point" ;; *) if [[ "$command" = "package" ]] From 02fcabe2300475453ebeb168be3e2761afdfde5f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 30 Oct 2021 19:08:38 +0200 Subject: [PATCH 282/287] gnu: polybar: Update to 3.5.7. * gnu/packages/wm.scm (polybar): Update to 3.5.7. --- gnu/packages/wm.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 96c103f93b..fc229e0753 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -1429,14 +1429,14 @@ (define-public nitrogen (define-public polybar (package (name "polybar") - (version "3.5.5") + (version "3.5.7") (source (origin (method url-fetch) (uri (string-append "https://github.com/polybar/polybar/releases/" "download/" version "/polybar-" version ".tar.gz")) (sha256 - (base32 "1c8br9972x1qw7l2shj9aqzv0gsx58fdh3r0f1z5i1bqdwxmsqky")))) + (base32 "1nr386jdlm8qkbdf23w7lyvbfhr362s90f957fawnyi1finhw8bk")))) (build-system cmake-build-system) (arguments ;; Test is disabled because it requires downloading googletest from the From 1632cad620f9fd03dd4e4b5172910885a9037303 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 30 Oct 2021 19:14:22 +0200 Subject: [PATCH 283/287] gnu: aws-c-mqtt: Update to 0.7.8. * gnu/packages/c.scm (aws-c-mqtt): Update to 0.7.8. --- gnu/packages/c.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index c6399280f6..93d829391c 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -838,7 +838,7 @@ (define-public aws-c-s3 (define-public aws-c-mqtt (package (name "aws-c-mqtt") - (version "0.7.6") + (version "0.7.8") (source (origin (method git-fetch) (uri (git-reference @@ -847,7 +847,7 @@ (define-public aws-c-mqtt (file-name (git-file-name name version)) (sha256 (base32 - "0qgblakp9n281z5w1kmmy9sjiz6s44kg487l76w7p43p1dp7s401")) + "19j6nw2v36c4yff4p0fbf0748s06fd5r9cp2yakry9ybn1ada99c")) (patches (search-patches "aws-c-mqtt-cmake-prefix.patch")))) (build-system cmake-build-system) (arguments From b4359fc5e6d255c6e23be692994b8ca0aadc0baf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 30 Oct 2021 21:29:13 +0200 Subject: [PATCH 284/287] gnu: remmina: Update to 1.4.21. * gnu/packages/vnc.scm (remmina): Update to 1.4.21. [arguments]: Don't explicitly return #t from phases. --- gnu/packages/vnc.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm index 4c2b13c93c..10ae2b6e87 100644 --- a/gnu/packages/vnc.scm +++ b/gnu/packages/vnc.scm @@ -61,7 +61,7 @@ (define-module (gnu packages vnc) (define-public remmina (package (name "remmina") - (version "1.4.20") + (version "1.4.21") (source (origin (method git-fetch) @@ -71,7 +71,7 @@ (define-public remmina (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0apm4lqcmqskdp2fjxl8dbg3686cm4w0b5806fqj7w43hdmd8w4v")))) + (base32 "1g6aqbkbjfywkbaigyysivxswmbp8fbcw9x5ppysaj658cfdnicx")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; No target @@ -102,8 +102,7 @@ (define-public remmina (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) (wrap-program file `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))) - '("remmina" "remmina-file-wrapper"))) - #t))))) + '("remmina" "remmina-file-wrapper")))))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") From 84c6f17f1660073c2109dca7e6dfb9dadc35f24f Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Tue, 17 Aug 2021 21:31:04 +0200 Subject: [PATCH 285/287] gnu: dconf: Increase test timeout further. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The “engine” test hit the previous 90s time limit when cross-compiling on a less powerful machine. * gnu/packages/gnome.scm (dconf)[arguments]: Change timeout to 300s in 'increase-test-timeout phase. Drop trailing #t. Signed-off-by: Tobias Geerinckx-Rice --- gnu/packages/gnome.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 000db14d0b..efa000fd87 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4581,8 +4581,7 @@ (define-public dconf ;; much longer than the default of 30 seconds. (substitute* "tests/meson.build" (("test\\(unit_test\\[0\\], exe" all) - (string-append all ", timeout : 90"))) - #t))))) + (string-append all ", timeout: 300")))))))) (home-page "https://developer.gnome.org/dconf/") (synopsis "Low-level GNOME configuration system") (description "Dconf is a low-level configuration system. Its main purpose From 9f2c5e901e988b575d487629976d2d14be4ed61d Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Thu, 9 Sep 2021 15:32:22 +0200 Subject: [PATCH 286/287] gnu: Add zig. * gnu/packages/patches/zig-disable-libc-note-test.patch, gnu/packages/patches/zig-use-system-paths.patch: New files. * gnu/packages/zig.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES, dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 3 + .../patches/zig-disable-libc-note-test.patch | 31 ++++ .../patches/zig-use-system-paths.patch | 143 ++++++++++++++++++ gnu/packages/zig.scm | 104 +++++++++++++ 4 files changed, 281 insertions(+) create mode 100644 gnu/packages/patches/zig-disable-libc-note-test.patch create mode 100644 gnu/packages/patches/zig-use-system-paths.patch create mode 100644 gnu/packages/zig.scm diff --git a/gnu/local.mk b/gnu/local.mk index baba6be058..bbc54eff4f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -610,6 +610,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/xdisorg.scm \ %D%/packages/xorg.scm \ %D%/packages/xfce.scm \ + %D%/packages/zig.scm \ %D%/packages/zile.scm \ %D%/packages/zwave.scm \ \ @@ -1943,6 +1944,8 @@ dist_patch_DATA = \ %D%/packages/patches/ytfzf-updates.patch \ %D%/packages/patches/ytnef-CVE-2021-3403.patch \ %D%/packages/patches/ytnef-CVE-2021-3404.patch \ + %D%/packages/patches/zig-disable-libc-note-test.patch \ + %D%/packages/patches/zig-use-system-paths.patch \ %D%/packages/patches/zstd-CVE-2021-24031_CVE-2021-24032.patch \ %D%/packages/patches/zziplib-CVE-2018-16548.patch diff --git a/gnu/packages/patches/zig-disable-libc-note-test.patch b/gnu/packages/patches/zig-disable-libc-note-test.patch new file mode 100644 index 0000000000..4d76139efb --- /dev/null +++ b/gnu/packages/patches/zig-disable-libc-note-test.patch @@ -0,0 +1,31 @@ +This test fails with "error.CompilationIncorrectlySucceeded". + +diff --git a/test/compile_errors.zig b/test/compile_errors.zig +index fd1255c..20d5548 100644 +--- a/test/compile_errors.zig ++++ b/test/compile_errors.zig +@@ -2751,15 +2751,15 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { + "tmp.zig:3:5: error: dependency on libc must be explicitly specified in the build command", + }); + +- cases.addTest("libc headers note", +- \\const c = @cImport(@cInclude("stdio.h")); +- \\export fn entry() void { +- \\ _ = c.printf("hello, world!\n"); +- \\} +- , &[_][]const u8{ +- "tmp.zig:1:11: error: C import failed", +- "tmp.zig:1:11: note: libc headers not available; compilation does not link against libc", +- }); ++// cases.addTest("libc headers note", ++// \\const c = @cImport(@cInclude("stdio.h")); ++// \\export fn entry() void { ++// \\ _ = c.printf("hello, world!\n"); ++// \\} ++// , &[_][]const u8{ ++// "tmp.zig:1:11: error: C import failed", ++// "tmp.zig:1:11: note: libc headers not available; compilation does not link against libc", ++// }); + } + + cases.addTest("comptime vector overflow shows the index", diff --git a/gnu/packages/patches/zig-use-system-paths.patch b/gnu/packages/patches/zig-use-system-paths.patch new file mode 100644 index 0000000000..33b7da1e0d --- /dev/null +++ b/gnu/packages/patches/zig-use-system-paths.patch @@ -0,0 +1,143 @@ +This patch replaces the OS-specific detection mechanism by one that solely +relies on environment variables. This has the benefit that said environment +variables can be used as search paths in Guix. + +Index: zig-0.8.1/lib/std/zig/system.zig +=================================================================== +--- zig-0.8.1.orig/lib/std/zig/system.zig ++++ zig-0.8.1/lib/std/zig/system.zig +@@ -39,101 +39,57 @@ pub const NativePaths = struct { + }; + errdefer self.deinit(); + +- var is_nix = false; +- if (process.getEnvVarOwned(allocator, "NIX_CFLAGS_COMPILE")) |nix_cflags_compile| { +- defer allocator.free(nix_cflags_compile); +- +- is_nix = true; +- var it = mem.tokenize(nix_cflags_compile, " "); ++ // TODO: Support cross-compile paths? ++ if (process.getEnvVarOwned(allocator, "C_INCLUDE_PATH")) |c_include_path| { ++ defer allocator.free(c_include_path); ++ var it = mem.tokenize(c_include_path, ":"); + while (true) { +- const word = it.next() orelse break; +- if (mem.eql(u8, word, "-isystem")) { +- const include_path = it.next() orelse { +- try self.addWarning("Expected argument after -isystem in NIX_CFLAGS_COMPILE"); +- break; +- }; +- try self.addIncludeDir(include_path); +- } else { +- if (mem.startsWith(u8, word, "-frandom-seed=")) { +- continue; +- } +- try self.addWarningFmt("Unrecognized C flag from NIX_CFLAGS_COMPILE: {s}", .{word}); +- } ++ const dir = it.next() orelse break; ++ try self.addIncludeDir(dir); + } + } else |err| switch (err) { + error.InvalidUtf8 => {}, + error.EnvironmentVariableNotFound => {}, + error.OutOfMemory => |e| return e, + } +- if (process.getEnvVarOwned(allocator, "NIX_LDFLAGS")) |nix_ldflags| { +- defer allocator.free(nix_ldflags); + +- is_nix = true; +- var it = mem.tokenize(nix_ldflags, " "); ++ if (process.getEnvVarOwned(allocator, "CPLUS_INCLUDE_PATH")) |cplus_include_path| { ++ defer allocator.free(cplus_include_path); ++ var it = mem.tokenize(cplus_include_path, ":"); + while (true) { +- const word = it.next() orelse break; +- if (mem.eql(u8, word, "-rpath")) { +- const rpath = it.next() orelse { +- try self.addWarning("Expected argument after -rpath in NIX_LDFLAGS"); +- break; +- }; +- try self.addRPath(rpath); +- } else if (word.len > 2 and word[0] == '-' and word[1] == 'L') { +- const lib_path = word[2..]; +- try self.addLibDir(lib_path); +- } else { +- try self.addWarningFmt("Unrecognized C flag from NIX_LDFLAGS: {s}", .{word}); +- break; +- } ++ const dir = it.next() orelse break; ++ try self.addIncludeDir(dir); + } + } else |err| switch (err) { + error.InvalidUtf8 => {}, + error.EnvironmentVariableNotFound => {}, + error.OutOfMemory => |e| return e, + } +- if (is_nix) { +- return self; +- } +- +- if (comptime Target.current.isDarwin()) { +- try self.addIncludeDir("/usr/include"); +- try self.addIncludeDir("/usr/local/include"); + +- try self.addLibDir("/usr/lib"); +- try self.addLibDir("/usr/local/lib"); +- +- try self.addFrameworkDir("/Library/Frameworks"); +- try self.addFrameworkDir("/System/Library/Frameworks"); +- +- return self; ++ if (process.getEnvVarOwned(allocator, "LIBRARY_PATH")) |library_path| { ++ defer allocator.free(library_path); ++ var it = mem.tokenize(library_path, ":"); ++ while (true) { ++ const dir = it.next() orelse break; ++ try self.addLibDir(dir); ++ } ++ } else |err| switch (err) { ++ error.InvalidUtf8 => {}, ++ error.EnvironmentVariableNotFound => {}, ++ error.OutOfMemory => |e| return e, + } + +- if (native_target.os.tag != .windows) { +- const triple = try native_target.linuxTriple(allocator); +- const qual = native_target.cpu.arch.ptrBitWidth(); +- +- // TODO: $ ld --verbose | grep SEARCH_DIR +- // the output contains some paths that end with lib64, maybe include them too? +- // TODO: what is the best possible order of things? +- // TODO: some of these are suspect and should only be added on some systems. audit needed. +- +- try self.addIncludeDir("/usr/local/include"); +- try self.addLibDirFmt("/usr/local/lib{d}", .{qual}); +- try self.addLibDir("/usr/local/lib"); +- +- try self.addIncludeDirFmt("/usr/include/{s}", .{triple}); +- try self.addLibDirFmt("/usr/lib/{s}", .{triple}); +- +- try self.addIncludeDir("/usr/include"); +- try self.addLibDirFmt("/lib{d}", .{qual}); +- try self.addLibDir("/lib"); +- try self.addLibDirFmt("/usr/lib{d}", .{qual}); +- try self.addLibDir("/usr/lib"); +- +- // example: on a 64-bit debian-based linux distro, with zlib installed from apt: +- // zlib.h is in /usr/include (added above) +- // libz.so.1 is in /lib/x86_64-linux-gnu (added here) +- try self.addLibDirFmt("/lib/{s}", .{triple}); ++ if (process.getEnvVarOwned(allocator, "DYLD_FRAMEWORK_PATH")) |dyld_framework_path| { ++ defer allocator.free(dyld_framework_path); ++ var it = mem.tokenize(dyld_framework_path, ":"); ++ while (true) { ++ const dir = it.next() orelse break; ++ try self.addFrameworkDir(dir); ++ } ++ } else |err| switch (err) { ++ error.InvalidUtf8 => {}, ++ error.EnvironmentVariableNotFound => {}, ++ error.OutOfMemory => |e| return e, + } + + return self; diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm new file mode 100644 index 0000000000..ab62f554f4 --- /dev/null +++ b/gnu/packages/zig.scm @@ -0,0 +1,104 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Liliana Prikler +;;; Copyright © 2021 Sarah Morgensen +;;; +;;; 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 . + +(define-module (gnu packages zig) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (gnu packages llvm)) + +(define-public zig + (package + (name "zig") + (version "0.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ziglang/zig.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "147qx7xgj0r353wh5ragzn6kmm1vrf31i8038z3zqwjnqqgqxi6c")) + (patches + (search-patches + "zig-disable-libc-note-test.patch" + "zig-use-system-paths.patch")))) + (build-system cmake-build-system) + (inputs + `(("clang" ,clang-12) ; Clang propagates llvm. + ("lld" ,lld))) + ;; Zig compiles fine with GCC, but also needs native LLVM libraries. + (native-inputs + `(("llvm" ,llvm-12))) + (arguments + `(#:configure-flags + (list ,@(if (%current-target-system) + (string-append "-DZIG_TARGET_TRIPLE=" + (%current-target-system)) + '())) + #:out-of-source? #f ; for tests + #:phases + (modify-phases %standard-phases + (add-after 'configure 'set-cache-dir + (lambda _ + ;; Set cache dir, otherwise Zig looks for `$HOME/.cache'. + (setenv "ZIG_GLOBAL_CACHE_DIR" + (string-append (getcwd) "/zig-cache")))) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key outputs tests? #:allow-other-keys) + (when tests? + (invoke (string-append (assoc-ref outputs "out") "/bin/zig") + ;; Testing the standard library takes >7.5GB RAM, and + ;; will fail if it is OOM-killed. The 'test-toolchain' + ;; target skips standard library and doc tests. + "build" "test-toolchain" + ;; Stage 2 is experimental, not what we run with `zig', + ;; and stage 2 tests require a lot of RAM. + "-Dskip-stage2-tests" + ;; Non-native tests try to link and execute non-native + ;; binaries. + "-Dskip-non-native"))))))) + (native-search-paths + (list + (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "CPLUS_INCLUDE_PATH") + (files '("include/c++" "include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64"))))) + (synopsis "General purpose programming language and toolchain") + (description "Zig is a general-purpose programming language and +toolchain. Among other features it provides +@itemize +@item an Optional type instead of null pointers, +@item manual memory management, +@item generic data structures and functions, +@item compile-time reflection and compile-time code execution, +@item integration with C using zig as a C compiler, and +@item concurrency via async functions. +@end itemize") + (home-page "https://github.com/ziglang/zig") + (license license:expat))) From 4e5000114ec01b5e92a87c52f2a10f9ba7a601c8 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Sat, 30 Oct 2021 19:07:14 +0000 Subject: [PATCH 287/287] gnu: wesnoth: Update to 1.16.0. * gnu/packages/games.scm (wesnoth): Update to 1.16.0. Signed-off-by: Arun Isaac --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 28443394b7..782c2b9c2e 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -4147,7 +4147,7 @@ (define-public gnujump (define-public wesnoth (package (name "wesnoth") - (version "1.14.17") + (version "1.16.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-" @@ -4156,7 +4156,7 @@ (define-public wesnoth "wesnoth-" version ".tar.bz2")) (sha256 (base32 - "1qc4ylhc4ab51milclzhflpmzw6bg35knwqaj3b157700jkcniin")))) + "0qs102ws46z0cqyk3maxd1c4bywswlacbqkpmb51x9jd8c746vhz")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;no check target