1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-07-16 04:14:05 +02:00

Compare commits

..

171 Commits

Author SHA1 Message Date
Jan (janneke) Nieuwenhuizen 721c51ceb3 squash! gnu: commencement: gcc-mesboot0: Support ARM. 2022-10-19 10:37:17 +02:00
Jan (janneke) Nieuwenhuizen 3c8170f65f squash! gnu: commencement: gcc-core-mesboot0: Support ARM. 2022-10-19 10:37:16 +02:00
Jan (janneke) Nieuwenhuizen f927cc48e1 squash! gnu: commencement: gcc-core-mesboot0: Support ARM. 2022-10-19 09:47:14 +02:00
Jan (janneke) Nieuwenhuizen 9d40ec0fcd squash! gnu: commencement: gcc-core-mesboot0: Support ARM. 2022-10-19 09:31:39 +02:00
Jan (janneke) Nieuwenhuizen 83842db321 DRAFT gnu: commencement: gcc-mesboot0: Support ARM.
* gnu/packages/commencement.scm (gcc-mesboot0)[native-inputs]: Add
gcc-boot-2.95.3-arm.patch.
[supported-systems]: Add armhf-linux, aarch64-linux.
[arguments]: Cater for armhf-linux, aarch64-linux.
2022-10-19 07:35:29 +02:00
Jan (janneke) Nieuwenhuizen cc625c9b1e DRAFT gnu: commencement: glibc-mesboot0: Support ARM.
* __restrict_arr is probably symptom of preprocessor arithmetic problems
   + lsh, /
 * It looks like glibc-2.2.5 and mesboot-haeders mismatch.
   + Many __NR_* syscalls are missing
   + Some headers are missing.
 * gcc-mesboot0: illegal instruction in glibc-2.2.5:

   0x000276b4 <+28>:	ldr	r8, [r10]
   0x000276b8 <+32>:	svc	0x00000014
=> 0x000276bc <+36>:	mov	r4, r0

* gnu/packages/patches/glibc-bootstrap-arm-2.2.5.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/commencement.scm (glibc-mesboot0)[native-inputs]: Add it.
[arguments]: Apply it in apply-patches.  Cater for armhf-linux, aarch64-linux.
* gnu/packages/commencement.scm (glibc-mesboot0)
[supported-systems]: Add armhf-linux, aarch64-linux.
2022-10-19 07:35:29 +02:00
Jan (janneke) Nieuwenhuizen 7d21e9a8c4 gnu: commencement: mesboot-headers: Support ARM.
* gnu/packages/commencement.scm (mesboot-headers)[supported-systems]: Add
aarch64-linux, armhf-linux.
2022-10-19 07:35:29 +02:00
Jan (janneke) Nieuwenhuizen a524b98c67 gnu: bootstrap: linux-libre-headers-bootstrap: Support ARM.
* gnu/packages/bootstrap.scm (%bootstrap-linux-libre-headers): Add tarball for
armhf-linux.
2022-10-19 07:35:29 +02:00
Jan (janneke) Nieuwenhuizen 062185b678 gnu: commencement: gcc-core-mesboot0: Support ARM.
* gnu/packages/patches/gcc-boot-2.95.3-arm.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/commencement.scm (gcc-core-mesboot0)[arguments]: Use it in
"apply-patches" stage, renamed from "apply-boot-patch".  Parameterize
configure-flags' --build,--host,--target.
[supported-systems]: Add aarch64-linux, armhf-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen 5e05e0f56f gnu: commencement: binutils-mesboot0: Support ARM.
* gnu/packages/commencement.scm (bash-mesboot0)[arguments]: Update to new
package style.  Parameterize configure-flags' --build,--host,--target.  Add
ac_cv_func_strncmp_works configure override.
[supported-systems]: Add aarch64-linux, armhf-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen 3b84bafcf7 gnu: commencement: patch-mesboot: Support ARM.
* gnu/packages/commencement.scm (patch-mesboot)[supported-systems]: Add
aarch64-linux, armhf-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen ebef32e07b gnu: commencement: tcc-boot: Support ARM.
* gnu/packages/commencement.scm (tcc-boot)[arguments]: Cater for armhf-linux,
aarch64-linux.
[supported-systems]: Add aarch64-linux, armhf-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen a49dd5b0ba gnu: commencement: make-mesboot0: Support ARM.
* gnu/packages/commencement.scm (gnu-make-mesboot0)[supported-systems]: Add
armhf-linux, aarch64-linux.
[arguments]: Cater for armhf-linux, aarch64-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen ab5334e4c6 gnu: commencement: gzip-mesboot: Support ARM.
* gnu/packages/commencement.scm (gzip-mesboot)[supported-systems]: Add
armhf-linux, aarch64-linux.
2022-10-18 23:00:13 +02:00
Jan (janneke) Nieuwenhuizen 8963701e2f gnu: commencement: tcc-boot0: Update to tcc-0.9.26-1136-g1b4f281f.
* gnu/packages/commencement.scm (tcc-boot0)[source]: Use https source URL
with mirror://.  Update to tcc-0.9.26-1136-g1b4f281f.
[suported-systems]: Add armhf-linux, aarch64-linux.
[arguments]: Update accordingly.
2022-10-18 23:00:11 +02:00
Jan (janneke) Nieuwenhuizen 6c65906c9a gnu: commencement: tcc-boot0: Use nyacc-1.00.2.
* gnu/packages/commencement.scm (tcc-boot0): Update NYACC to 1.00.2 and call
'bootstrap-origin' on the source.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen ba4fb0c975 gnu: commencement: mes-boot: Support ARM, update to 0.23.1.
* gnu/packages/commencement.scm (mes-boot)[source]: Update to 0.23.1.
[native-inputs]: Upadate to nyacc-1.00.2.
[arguments]: Cater for armhf-linux, aarch64-linux.
[supported-systems]: Add arm-linux, aarch64-linux.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen 2c6136b6e3 gnu: commencement: bootstrap-mes-rewired: Support ARM.
* gnu/packages/commencement.scm (%bootstrap-mes-rewired)[version]: Remove.
[arguments]: Use map fixup and numbered_arch override for x86 bootstrap only,
which bootstrap binary is fixed at mes-0.19.
[supported-systems]: Add armhf-linux, aarch64-linux.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen 579e3712b0 gnu: commencement: gash-boot: Build fix for ARM.
* gnu/packages/commencement.scm (gash-boot)[arguments]: Add 'patch-compat
stage.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen ed906c84c7 DRAFT gnu: bootstrap: %bootstrap-mes: Support ARM.
XXX TODO:
  * rebase onto core-updates
  * release mes-0.23
  * rebuild

Built with
    7f847ea20b90c2fb8dc3b5eb51e6c007a8c5461a
    DRAFT bootstrap: mes-minimal: Support ARM, update to mes-0.22.115.

* gnu/packages/bootstrap.scm (%bootstrap-mes)[inputs]: Add tarball for
armhf-linux.
[supported-systems]: Add armhf-linux, aarch64-linux.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen 4984e737b7 gnu: bootstrap: %bootstrap-mescc-tools: Update ARM to 1.4.0.
Built with
    1e41b0abb3d977301b5533588ee24803a5649a08
    gnu: bootstrap: mes-minimal: Support ARM, update for mes-0.23.1.

* gnu/packages/bootstrap.scm (%bootstrap-mes)
* gnu/packages/bootstrap.scm (%bootstrap-mescc-tools)[inputs]: Update ARM to
1.4.0.
2022-10-18 22:59:58 +02:00
Jan (janneke) Nieuwenhuizen 257ca91787 DRAFT gnu: bootstrap: %bootstrap-mescc-tools: Support ARM.
XXX TODO:
  * rebase onto core-updates
  * rebuild

Built with
    7f847ea20b90c2fb8dc3b5eb51e6c007a8c5461a
    DRAFT bootstrap: mes-minimal: Support ARM, update to mes-0.22.115.

* gnu/packages/bootstrap.scm (%bootstrap-mescc-tools)[inputs]: Add
tarball for armhf-linux.
[supported-systems]: Add armhf-linux, aarch64-linux.
2022-10-15 11:02:38 +02:00
Jan (janneke) Nieuwenhuizen f9293be58e gnu: bootstrap: mes-minimal: Support ARM, update for mes-0.23.1.
* gnu/packages/make-bootstrap.scm (%mes-minimal): Update for mes-0.23.1.
[arguments]: Support armhf-linux, aarch64-linux.
2022-10-15 11:02:31 +02:00
Jan (janneke) Nieuwenhuizen a7e7f29090 gnu: bootstrap: mescc-tools: Support ARM.
* gnu/packages/make-bootstrap.scm[arguments]: Support armhf-linux,
aarch64-linux.  Update make-flags to really build static.
2022-10-15 11:02:30 +02:00
Jan (janneke) Nieuwenhuizen 83ddbe0477 gnu: mes: Update to 0.23.1.
* gnu/packages/mes.scm (mes): Update to 0.23.1.
2022-10-15 11:02:30 +02:00
Paul Alesius 6ff0f60dab gnu: curl: Update to 7.82.0.
* gnu/packages/curl.scm (curl): Update to 7.82.0.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-08 11:36:05 +02:00
Timotej Lazar 7a6a8ee7e0 gnu: poppler: Build support for PDF signatures.
* gnu/packages/pdf.scm (poppler)[inputs]: Add nss.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-08 11:31:20 +02:00
Greg Hogan b8f4ed8f5d gnu: boost: Update to 1.79.0.
* gnu/packages/boost.scm (boost): Update to 1.79.0.
[source](patches): Add new and remove old upstream patches.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-08 11:25:26 +02:00
Efraim Flashner 46fbea36ea gnu: findutils: Update to 4.9.0.
* gnu/packages/base.scm (findutils): Update to 4.9.0.
2022-04-29 05:24:17 +03:00
Efraim Flashner 2d8e56ac16 gnu: gzip: Update to 1.12.
* gnu/packages/compression.scm (gzip): Update to 1.12.
[arguments]: Add configure-flag to enable building zless without less
binary present. Remove unneeded 'patch-for-glibc-2.28 phase. Adjust
custom 'use-absolute-name-of-gzip phase to upstream changes.
2022-04-29 02:55:57 +03:00
Greg Hogan 43d18521e8 gnu: zstd: Update to 1.5.2.
* gnu/packages/compression.scm (zstd): Update to 1.5.2.
[arguments]: Remove obsolete phase.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-28 16:56:13 +02:00
Maxim Cournoyer 3f2b0e12f1 gnu: python-pytest-xdist: Update to 2.5.0.
* gnu/packages/check.scm (python-pytest-xdist): Update to 2.5.0.
[source]: Remove obsolete snippet.
[phases]{patch-setup-py}: Delete phase.
{check}: Streamline.
[native-inputs, propagated-inputs, home-page]: Fix indentation.
(python2-pytest-xdist): Delete variable.
(python-pytest-xdist-next): Delete variable.
* gnu/packages/django.scm (python-pytest-django): Use regular
python-pytest-xdist.
* gnu/packages/python-check.scm (python-pytest-csv): Likewise, and ditto for
python-pytest.
2022-04-12 14:59:22 -04:00
Maxim Cournoyer 189b1c4f27 gnu: python-pytest-forked: Update to 1.4.0.
* gnu/packages/check.scm (python-pytest-forked): Update to 1.4.0.
[phases]{pretend-version}: New phase.
{disable-setuptools-scm}: Delete phase.
{check}: Streamline.
[native-inputs]: Add python-setuptools-scm.
2022-04-12 14:59:12 -04:00
Ludovic Courtès 6b6fb78724 gnu: glibc: Build with '--strip-debug' instead of '--strip-all'.
Fixes <https://issues.guix.gnu.org/54728>.
Reported by Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>.

* gnu/packages/base.scm (glibc)[arguments]: Add #:strip-flags.
2022-04-07 18:34:47 +02:00
Ludovic Courtès edb9a5b835 gnu: texlive-latex-listings, texlive-latex-pgf: Remove redundant definitions.
Those were presumably introduced by mistake during a merge.

* gnu/packages/tex.scm (texlive-latex-listings, texlive-latex-pgf):
Remove redundant definitions.
2022-03-28 09:38:48 +02:00
Simon South 08bb73749e gnu: texlive-psnfss: Fix build; add "doc" output.
* gnu/packages/tex.scm (texlive-psnfss)[outputs]: Add "doc".
[arguments]<#:phases>: Add "chdir-back", "clean-installed-files" and
"move-doc-files" phases to ensure files are correctly arranged in package's
outputs, matching installation instructions in README.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-28 09:33:14 +02:00
Simon South e7f1e1a78d gnu: texlive-psnfss: Do not return #t from custom phase.
* gnu/packages/tex.scm (texlive-psnfss)[arguments]<#:phases>: Remove
trailing #t from "chdir" phase.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-28 09:32:35 +02:00
Greg Hogan a59afdc92e gnu: boost: Update to 1.78.0.
* gnu/packages/boost.scm (boost): Update to 1.78.0.
[source](patches): Add upstream patch.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-28 09:23:41 +02:00
Ludovic Courtès c6b5161e97 gnu: bash: Build '--without-bash-malloc'.
Fixes <https://issues.guix.gnu.org/54557>.

* gnu/packages/bash.scm (bash): Add '--without-bash-malloc' to
CONFIGURE-FLAGS.
2022-03-28 09:22:06 +02:00
Efraim Flashner 01647fc80c gnu: ed: Use cc-for-target.
* gnu/packages/ed.scm (ed)[arguments]: Replace hardcoded gcc with
cc-for-target.
2022-03-23 11:20:20 +02:00
Efraim Flashner b77ec228af gnu: ed: Update to 1.18.
* gnu/packages/ed.scm (ed): Update to 1.18.
[arguments]: Remove trailing #t.
2022-03-23 11:18:46 +02:00
Efraim Flashner a973d72355 gnu: bash: Update to 5.1.16.
* gnu/packages/bash.scm (%patch-series-5.1): Add patches 9 through 16.
2022-03-23 09:26:11 +02:00
Brendan Tildesley 387a9772c2 gnu: pciutils: Use newer pci.ids file from hwdata.
* gnu/packages/pciutils.scm (pciutils)[phases]{unbundle-pci.ids}: New phase.
[configure]: Adjust Makefile to not install the update script and its man page.
[native-inputs]{hwdata:pci}: New native input.

Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-03-22 17:54:07 -04:00
Maxim Cournoyer dbc5b51cb9 gnu: python-nbconvert: Replace texlive-generic-ulem input by texlive-ulem.
This was a caused by a badly resolved conflict in the recent staging branch
merge.

* gnu/packages/python-xyz.scm (python-nbconvert)[native-inputs]: Replace
texlive-generic-ulem by texlive-ulem in the computed texlive-updmap.cfg.
2022-03-22 15:43:22 -04:00
Maxim Cournoyer 2f7ab8e373 gnu: man-db: Simplify 'patch-test-shebangs' phase.
* gnu/packages/man.scm (man-db)[phases]{patch-test-shebangs}: Do not filter
nonexistent directories from find-files.
[modules]: Delete field.
2022-03-22 15:43:22 -04:00
Maxim Cournoyer 8e3d4f05df profiles: manual-database: Remove GDBM workaround.
* guix/profiles.scm (manual-database): No longer set the MALLOC_PERTURB_
environment variable.
2022-03-22 15:43:22 -04:00
Wil deBeest d8a7e37b86 gnu: libusb: Update to 1.0.25.
* gnu/packages/libusb.scm (libusb): Update to 1.0.25.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-03-22 15:00:45 +01:00
Maxim Cournoyer a9429c8f22 Merge branch 'staging' into core-updates. 2022-03-21 23:39:43 -04:00
Timothy Sample f0136b36ae gnu: commencement: Remove many old utilities.
* gnu/packages/commencement.scm (bash-mesboot0): Delete variable...
(%boot-tcc-inputs): ...and remove it from here.
(gawk-mesboot0): Delete variable...
(%boot-mesboot-core-inputs): ...and remove it from here.
(coreutils-mesboot0): Delete variable.
(%boot-mesboot1-inputs): Remove 'bash-mesboot',
'coreutils-mesboot0', 'gawk-mesboot', 'grep-mesboot', 'sed-mesboot',
and 'tar-mesboot' from the list of inputs to add; and remove "bash",
"bootar", "coreutils", "gash", "gawk", "grep", "guile", "sed", and
"tar" from the list of inputs to delete.
(hello-mesboot)[native-inputs]: Remove 'xz-mesboot'.
(gawk-mesboot)[native-inputs]: Use '%boot-mesboot2-inputs'.
(%boot-mesboot3-inputs): Remove 'xz-mesboot'; add 'gawk-mesboot'.
(glibc-headers-mesboot)[arguments]: Add 'remove-bashism' phase.
(glibc-mesboot)[arguments]: Add 'simplify-intl-tests' phase.
(gcc-mesboot1-wrapper)[native-inputs]: Replace 'bash-mesboot' and
'coreutils-mesboot0' with 'gash-boot' and 'gash-utils-boot'.
(gcc-mesboot-wrapper): Likewise.
(mesboot-package): New procedure.
(bash-mesboot, coreutils-mesboot, grep-mesboot, sed-mesboot,
xz-mesboot, tar-mesboot): Recreate in terms of 'mesboot-package'
using up-to-date versions.
(%boot-mesboot6-inputs): Add 'bash-mesboot', 'coreutils-mesboot',
'grep-mesboot', 'sed-mesboot', 'tar-mesboot', and 'xz-mesboot' to
the list of inputs to add; and add "bash" and "bootar" to the list
of inputs to delete.
2022-03-19 13:33:07 -06:00
Timothy Sample 1594aaecd5 gnu: %boot-tcc-inputs: Remove extra "gash-utils".
* gnu/packages/commencement.scm (%boot-tcc-inputs): Remove
'gash-utils-boot' (it is already included in '%boot-gash-inputs'
under the name "coreutils").
2022-03-19 13:33:07 -06:00
Timothy Sample 95630d2d74 gnu: binutils-mesboot0: Update to 2.20.1a.
This restores the package to how it was before the Scheme-only
bootstrap.  See cb167958ea.

* gnu/packages/commencement.scm (binutils-mesboot0): Update to 2.20.1a.
(binutils-mesboot1)[arguments]: Remove #:phases substitution.
(binutils-mesboot): Inherit from binutils-mesboot1, changing only
the native-inputs field.
2022-03-19 13:33:07 -06:00
Timothy Sample e42753fd86 gnu: sed-mesboot0: Remove package.
* gnu/packages/commencement.scm (sed-mesboot0): Remove variable.
(%boot-tcc-inputs): Remove 'sed-mesboot0'.
2022-03-19 13:33:07 -06:00
Timothy Sample 97a5819643 gnu: bzip2-mesboot: Remove package.
gnu/packages/commencement.scm (bzip2-mesboot): Remove variable.
(tcc-boot)[native-inputs]: Remove 'bzip2-mesboot'.
[arguments]: Do not replace the 'unpack' phase.
(%boot-tcc-inputs): Remove 'bzip2-mesboot'.
2022-03-19 13:33:06 -06:00
Timothy Sample 6bf2fa8d1c gnu: gash-utils-boot: Create 'echo' wrapper.
* gnu/packages/commencement.scm (gash-utils-boot)[arguments]: Add a
phase that generates an external wrapper for Gash's 'echo' built-in.
2022-03-19 13:33:06 -06:00
Timothy Sample ee2f074d0b gnu: gash: Update to 0.3.0.
* gnu/packages/shells.scm (gash): Update to 0.3.0.
[source]: Remove Guile 3.0 snippet.
[arguments]: Delete arguments.
* gnu/packages/commencement.scm (gash-boot)[source]: Do not remove
the Guile 3.0 snippet (it no longer exists).
2022-03-19 13:33:06 -06:00
Timothy Sample ca6993af91 gnu: bootar: Update to 1b.
* gnu/packages/commencement.scm (bootar): Update to 1b.
2022-03-19 13:33:06 -06:00
Timothy Sample 892aac72a2 gnu: gash-utils: Update to 0.2.0.
* gnu/packages/patches/gash-utils-ls-test.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
* gnu/packages/shells.scm (gash-utils): Update to 0.2.0.
[source]: Remove patch and Guile 3.0 snippet.
* gnu/packages/commencement.scm (gash-utils-boot)[source]: Do not
modify parent value.
[arguments]: Add "env" to the list of scripts to create in the
'pre-configure' phase; add the "gash-utils" module directory in the
'configure', 'build', and 'install' phases.
2022-03-19 13:33:06 -06:00
Timothy Sample 0db2a6e749 gnu-bootstrap: Allow multiple module directories.
* guix/build/gnu-bootstrap.scm (bootstrap-configure,
bootstrap-build, bootstrap-install): Treat the 'modules' argument as
a list of directories.
* gnu/packages/commencement.scm (bootar, gash-boot,
gash-utils-boot): Adjust call sites.
2022-03-19 13:33:06 -06:00
Timothy Sample 5268bd97b1 gnu-bootstrap: Configure PACKAGE_NAME.
* guix/build/gnu-bootstrap.scm (bootstrap-configure): Add a 'name'
argument and use it to configure the PACKAGE_NAME variable.
* gnu/packages/commencement.scm (bootar, gash-boot,
gash-utils-boot): Use the new argument.
2022-03-19 13:33:06 -06:00
Timothy Sample 4c19c3eb06 gnu: hello-mesboot: Downgrade to 2.10.
* gnu/packages/commencement.scm (hello-mesboot): Downgrade to 2.10.
2022-03-19 13:33:00 -06:00
Maxim Cournoyer 806824c2c0 gnu: docbook-xml-4.1.2: Install an XML catalog file.
* gnu/packages/docbook.scm (docbook-xml-4.1.2)[builder]: Generate a catalog
file.
[native-inputs]: Add libxml2.
2022-03-18 01:20:32 -04:00
Christine Lemmer-Webber 2d206cd3dc gnu: mesa: Update to 21.3.7.
* gnu/packages/gl.scm (mesa): Update to 21.3.7.
2022-03-16 13:49:50 -04:00
jgart 9223b81071 gnu: socat: Update to 1.7.4.3.
* gnu/packages/networking.scm (socat): Update to 1.7.4.3.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2022-03-11 10:47:41 +01:00
Nicolas Goaziou 296398e672 gnu: texlive-latex-pdfpages: Rename to texlive-pdfpages.
* gnu/packages/tex.scm (texlive-pdfpages): New variable.
(texlive-latex-pdfpages): Deprecate variable.
* gnu/packages/docbook.scm (dblatex): Use new name.
2022-03-09 01:25:21 +01:00
Nicolas Goaziou 7e2e7a34d1 gnu: Deprecate texlive-latex-tools.
* gnu/packages/tex.scm (texlive-latex-tools): Deprecate variable.
(texlive-base):
(texlive-pstool):
(texlive-jadetex):
* gnu/packages/statistics.scm (r-with-tests): Use TEXLIVE-TOOLS instead.
2022-03-09 01:25:21 +01:00
Nicolas Goaziou 3a29ec6d32 gnu: texlive-tools: Add missing files.
* gnu/packages/tex.scm (texlive-tools)[outputs]: Add "doc" output.
[arguments]: Use G-expressions.  Add phase to install all non-generated ".sty" files.
2022-03-09 00:58:10 +01:00
Nicolas Goaziou fa5a062572 gnu: texlive-latex-eso-pic: Rename to texlive-eso-pic.
* gnu/packages/tex.scm (texlive-eso-pic): New variable.
(texlive-latex-eso-pic): Deprecated alias.
2022-03-09 00:39:43 +01:00
Nicolas Goaziou 359636a408 gnu: texlive-latex-titlesec: Rename to texlive titlesec.
* gnu/packages/tex.scm (texlive-titlesec): New variable.
(texlive-latex-titlesec): Deprecate name.
* gnu/packages/python-xyz.scm (python-ipython-documentation):
(python-numpy-documentation):
* gnu/packages/docbook.scm (dblatex):
* gnu/packages/maths.scm (hypre): Use new name.
2022-03-09 00:26:30 +01:00
Nicolas Goaziou 4810804e72 gnu: texlive-latex-subfigure: Rename to texlive-subfigure.
* gnu/packages/tex.scm (texlive-subfigure): New variable.
(texlive-latex-subfigure): Deprecated alias.
* gnu/packages/docbook.scm (dblatex): Use new name.
2022-03-09 00:20:33 +01:00
Nicolas Goaziou 4f407029bf gnu: texlive-grfext: Add missing files.
* gnu/packages/tex.scm (texlive-grfext)[outputs]: Add "doc" output.
[arguments]: Use G-expressions.  Modify COPY-FILES phase to include all source
files.  Add REMOVE-GENERATED-FILE phase.
2022-03-06 14:49:50 +01:00
Nicolas Goaziou cddaf93e22 gnu: texlive-oberdiek: Add missing files.
* gnu/packages/tex.scm (texlive-oberdiek)[outputs]: Add "doc" output.
[arguments]: Remove DO-NOT-PROCESS-IFPDF.INS phase.  Modify COPY-FILES phase
to include all runfiles.
[propagated-inputs]: Add TEXLIVE-AUXHOOK, TEXLIVE-GRFEXT, TEXLIVE-GRFFILE,
TEXLIVE-INFWARERR, TEXLIVE-KVOPTIONS, TEXLIVE-PDFTEXCMDS.
2022-03-06 14:34:06 +01:00
Nicolas Goaziou 280097b71f gnu: texlive-hyperref: Add missing files.
* gnu/packages/tex.scm (texlive-hyperref)[arguments]: Add phase to copy
missing files.  Generate ".sty" files from source when possible.
[propagated-inputs]: Add TEXLIVE-ZAPFDING, TEXLIVE-STRINGENC.  Remove
TEXLIVE-ATVERYEND, TEXLIVE-INFWARERR, TEXLIVE-KVOPTIONS, TEXLIVE-PDFTEXCMDS.
Reorder-inputs.
2022-03-06 12:22:17 +01:00
Nicolas Goaziou 36685334a0 gnu: texlive-latex-rerunfilecheck: Rename to texlive-rerunfilecheck.
* gnu/packages/tex.scm (texlive-rerunfilecheck): New variable.
(texlive-latex-rerunfilecheck): Deprecated alias.
(texlive-hyperref): Use new name.
2022-03-06 12:22:16 +01:00
Nicolas Goaziou 38ec52136f gnu: texlive-latex-kvoptions: Rename to texlive-kvoptions.
* gnu/packages/tex.scm (texlive-kvoptions): New variable.
(texlive-latex-kvoptions): Deprecated alias.
(texlive-hyperref):
* gnu/packages/plotutils.scm (asymptote): Use new name.
2022-03-06 12:22:16 +01:00
Nicolas Goaziou c63566c5cf gnu: texlive-latex-refcount: Rename to texlive-refcount.
* gnu/packages/tex.scm (texlive-refcount): New variable.
(texlive-latex-refcount): Deprecated alias.
(texlive-hyperref):
* gnu/packages/docbook.scm (dblatex): Use new name.
2022-03-06 12:22:16 +01:00
Nicolas Goaziou 09deb8a570 gnu: texlive-latex-letltxmacro: Rename to texlive-letltxmacro.
* gnu/packages/tex.scm (texlive-letltxmacro): New variable.
(texlive-latex-letltxmacro): Deprecated alias.
(texlive-hyperref): Use new name.
2022-03-06 12:22:15 +01:00
Nicolas Goaziou b47d8363f9 gnu: texlive-latex-hycolor: Rename to texlive-hycolor.
* gnu/packages/tex.scm (texlive-hycolor): New variable.
(texlive-latex-hycolor): Deprecated alias.
(texlive-hyperref): Use new name.
2022-03-06 12:22:15 +01:00
Nicolas Goaziou df8a042de8 gnu: texlive-latex-auxhook: Rename to texlive-auxhook.
* gnu/packages/tex.scm (texlive-auxhook): New variable.
(texlive-latex-auxhook): Deprecated alias.
(texlive-hyperref): Use new name.
2022-03-06 12:22:15 +01:00
Nicolas Goaziou b3fb3c10b8 gnu: texlive-generic-uniquecounter: Rename to texlive-uniquecounter.
* gnu/packages/tex.scm (texlive-uniquecounter): New variable.
(texlive-generic-uniquecounter): Deprecated alias.
(texlive-latex-rerunfilecheck): Use new name.
2022-03-06 12:22:14 +01:00
Nicolas Goaziou 774042fede gnu: texlive-generic-pdfescape: Rename to texlive-pdfescape.
* gnu/packages/tex.scm (texlive-pdfescape): New variable.
(texlive-generic-pdfescape): Define deprecated alias.
(texlive-hyperref): Use new name.
2022-03-06 12:22:14 +01:00
Nicolas Goaziou 98bd43095c gnu: texlive-generic-ltxcmds: Rename to texlive-ltxcmds.
* gnu/packages/tex.scm (texlive-ltxcmds): New variable.
(texlive-generic-ltxcmds): Deprecated alias.
(texlive-hyperref):
(texlive-pdftexcmds):
(texlive-latex-kvoptions): Use new name.
2022-03-06 12:22:14 +01:00
Nicolas Goaziou 47f87b2e48 gnu: texlive-generic-kvsetkeys: Rename to texlive-kvsetkeys.
* gnu/packages/tex.scm (texlive-kvsetkeys): New variable.
(texlive-generic-kvsetkeys): Deprecated alias.
(texlive-hyperref):
(texlive-latex-kvoptions): Use new name.
2022-03-06 12:22:13 +01:00
Nicolas Goaziou 11302036f7 gnu: texlive-generic-kvdefinekeys: Rename to texlive-kvdefinekeys.
* gnu/packages/tex.scm (texlive-kvdefinekeys): New variable.
(texlive-generic-kvdefinekeys): Deprecated alias.
(texlive-hyperref):
* gnu/packages/plotutils.scm (asymptote): Use new name.
2022-03-06 12:22:13 +01:00
Nicolas Goaziou b2907f5b25 gnu: texlive-generic-intcalc: Rename to texlive-intcalc.
* gnu/packages/tex.scm (texlive-intcalc): New variable.
(texlive-generic-intcalc): Deprecated alias.
(texlive-hyperref):
(texlive-bitset): Use new name.
2022-03-06 12:22:13 +01:00
Nicolas Goaziou 4270d3cf98 gnu: texlive-generic-infwarerr: Rename to texlive-infwarerr.
* gnu/packages/tex.scm (texlive-infwarerr): New variable.
(texlive-generic-infwarerr): Deprecated alias.
(texlive-generic-uniquecounter):
(texlive-hyperref):
(texlive-latex-rerunfilecheck):
(texlive-pdftexcmds):
(texlive-bitset):
(texlive-etexcmds):
* gnu/packages/plotutils.scm (asymptote): Use new name.
2022-03-06 11:37:30 +01:00
Nicolas Goaziou ec9d9bddc7 gnu: texlive-generic-gettitlestring: Rename to texlive-gettitlestring.
* gnu/packages/tex.scm (texlive-gettitlestring): New variable.
(texlive-generic-gettitlestring): Deprecated alias.
(texlive-hyperref): Use new name.
2022-03-06 11:25:16 +01:00
Nicolas Goaziou e6db86b337 gnu: texlive-generic-etexcmds: Rename to texlive-etexcmds.
* gnu/packages/tex.scm (texlive-etexcmds): New variable.
(texlive-generic-etexcmds): Deprecated alias.
(texlive-hyperref): Use new name.
2022-03-06 11:23:22 +01:00
Nicolas Goaziou 5418275398 gnu: texlive-generic-bitset: Rename to texlive-bitset.
* gnu/packages/tex.scm (texlive-bitset): Renamed from texlive-generic-bitset.
(texlive-generic-bitset): Define deprecated alias.
(texlive-hyperref): Use new name.
2022-03-06 11:15:56 +01:00
Nicolas Goaziou ca9527845f gnu: texlive-generic-bigintcalc: Rename to texlive-bigintcalc.
* gnu/packages/tex.scm (texlive-bigintcalc): New variable.
(texlive-generic-bigintcalc): Deprecated alias.
(texlive-generic-bitset):
(texlive-generic-uniquecounter): Use new name.
2022-03-06 11:08:22 +01:00
Nicolas Goaziou 5e9018b389 gnu: texlive-generic-atbegshi: Rename to texlive-atbegshi.
* gnu/packages/tex.scm (texlive-atbegshi): New variable.
(texlive-generic-atbegshi): Define deprecated alias.
(texlive-hyperref): Use new variable name.
2022-03-06 11:02:59 +01:00
Nicolas Goaziou c2777bb64f gnu: Rename texlive-latex-fancyvrb to texlive-fancyvrb.
* gnu/packages/tex.scm (texlive-fancyvrb): New variable, renamed from
TEXLIVE-LATEX-FANCYVRB.
(texlive-latex-fancyvrb): Deprecate variable.
* gnu/packages/docbook.scm (dblatex):
* gnu/packages/maths.scm (hypre):
* gnu/packages/python-xyz.scm (python-numpy-documentation):
(python-ipython-documentation):
(python-nbconvert):
* gnu/packages/statistics.scm (r-with-tests): Use new name.
2022-03-04 02:25:12 +01:00
Nicolas Goaziou 91aa20e237 gnu: Add texlive-fancyhdr.
* gnu/packages/tex.scm (texlive-fancyhdr): New variable.
(texlive-latex-fancyhdr): Deprecate variable.
(texlive-jadetex):
* gnu/packages/docbook.scm (dblatex):
* gnu/packages/python-xyz.scm (python-numpy-documentation):
(python-ipython-documentation):  Use new variable.
2022-03-04 02:21:25 +01:00
Nicolas Goaziou 006538c527 gnu: texlive-generic-iftex: Rename to texlive-iftex.
* gnu/packages/tex.scm (texlive-iftex): Renamed from TEXLIVE-GENERIC-IFTEX.
(texlive-hyperref):
(texlive-oberdiek):
(texlive-pdftexcmds):
(texlive-generic-etexcmds):
(texlive-generic-iftex):
(texlive-generic-ifxetex):
(texlive-latex-xkeyval):
* gnu/packages/docbook.scm (dblatex):
* gnu/packages/python-xyz.scm (python-numpy-documentation):
(python-ipython-documentation):
(python-nbconvert):
(python-pypandoc): Apply renaming.
2022-03-04 02:00:09 +01:00
Nicolas Goaziou e7cf0ea660 gnu: Add texlive-listings.
* gnu/packages/docbook.scm (texlive-listings): New variable.
(texlive-latex-listings): Deprecate variable.
(dblatex): Use new variable.
* gnu/packages/tex.scm (texlive-latex-xkeyval): Use new variable.
2022-03-03 15:58:54 +01:00
Nicolas Goaziou d293162615 gnu: Add texlive-pgf.
* gnu/packages/tex.scm (texlive-pgf): New variable.
(texlive-latex-pgf): Deprecate variable.
(texlive-beamer):
(texlive-latex-xkeyval):
(texlive-todonotes):
(texlive-adjustbox):
(texlive-tcolorbox):
* gnu/packages/bioinformatics.scm (discrover): Use new variable.
2022-02-14 00:08:30 +01:00
Nicolas Goaziou 970b7a949d gnu: Add texlive-graphics.
* gnu/packages/tex.scm (texlive-graphics): New variable.
(texlive-latex-graphics): Deprecate variable.
(texlive-base):
(texlive-pstool):
(texlive-jadetex):
* gnu/packages/bioinformatics.scm (velvet):
* gnu/packages/plotutils.scm (asymptote):
* gnu/packages/python-xyz.scm (python-numpy-documentation):
(python-ipython-documentation):
* gnu/packages/radio.scm (gnuradio):
(libosmo-dsp):
* gnu/packages/statistics.scm (r-with-tests): Use new variable.
2022-02-14 00:08:30 +01:00
Nicolas Goaziou f833399811 gnu: Add texlive-fp.
* gnu/packages/tex.scm (texlive-fp): New variable.
2022-02-14 00:08:30 +01:00
Nicolas Goaziou 94268d5021 gnu: Add texlive-ms.
* gnu/packages/tex.scm (texlive-ms): New variable.
(texlive-latex-ms): Deprecate variable.
* gnu/packages/bioinformatics.scm (discrover):
* gnu/packages/python-xyz.scm (python-nbconvert): Use new variable.
2022-02-14 00:08:29 +01:00
Nicolas Goaziou 83c3332758 gnu: Add texlive-atveryend.
* gnu/packages/tex.scm (texlive-atveryend): New variable.
(texlive-latex-atveryend): Deprecate variable.
(texlive-hyperref):
(texlive-latex-rerunfilecheck): Use new variable.
2022-02-14 00:08:29 +01:00
Nicolas Goaziou 5e796bfc22 gnu: texlive-xcolor: Provide missing files.
* gnu/packages/tex.scm (texlive-xcolor): Make sure package provides all the
expected files.
2022-02-14 00:08:29 +01:00
Nicolas Goaziou 69f284a35f gnu: Add texlive-pdftexcmds.
* gnu/packages/tex.scm (texlive-pdftexcmds): New variable.
(texlive-latex-pdftexcmds): Deprecate variable.
(texlive-hyperref):
(texlive-latex-rerunfilecheck):
(texlive-generic-bigintcalc): Use new variable.
* gnu/packages/plotutils.scm (asymptote): Use new variable.
2022-02-14 00:08:24 +01:00
Andrew Tropin f172118ca4 gnu: linux-pam: Change path to unix_chkpwd helper.
* gnu/packages/patches/linux-pam-unix_chkpwd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/linux.scm (linux-pam): Use it.
* gnu/system/pam.scm (pam-root-service-type): Add unix_chkpwd to setuid.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-02-10 23:37:10 +01:00
Jai Vetrivelan b31ef5638b gnu: qpdf: Update to 10.6.0.
* gnu/packages/pdf.scm (qpdf): Update to 10.6.0.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2022-02-10 18:16:48 +01:00
jgart via Guix-patches via 521e0d32e3 gnu: ruby-parser: Update to 3.1.0.0.
* gnu/packages/ruby.scm (ruby-parser): Update to 3.1.0.0.
2022-02-09 15:36:05 +01:00
Liliana Marie Prikler 10ee2542e8 gnu: poppler: Enable tests.
* gnu/package/pdf.scm (poppler-tests): New variable.
(poppler)[arguments]: Drop #:tests?.  Add "-DTESTDATADIR" to #:configure-flags.
2022-02-06 00:54:37 +01:00
Remco van 't Veer 0989c839dd gnu: poppler: Update to 22.01.0.
* gnu/packages/pdf.scm (poppler): Update to 22.01.0.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-02-06 00:32:11 +01:00
Liliana Marie Prikler 65df5a4eb2 gnu: poppler: Use gexps in arguments.
* gnu/packages/pdf.scm (poppler)[arguments]: Transform from quasiquote to list
of gexps.
<#:phases>: Always bind, using %standard-phases as explicit default.
2022-02-06 00:29:16 +01:00
Liliana Marie Prikler d5f8bfcd14 gnu: poppler: Use new input style.
* gnu/packages/pdf.scm (poppler)[inputs]: Drop labels.
2022-02-06 00:14:59 +01:00
Taiju HIGASHI 6c4c0f16a6 gnu: pdf2djvu: Remove poppler-data.
* gnu/packages/djvu.scm (pdf2djvu)[inputs]: Drop poppler-data.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-02-06 00:02:58 +01:00
Taiju HIGASHI 5f628d773b gnu: poppler: Add poppler-data.
In order to make poppler support CJK and Cyrillic scripts, one of the
following has to be done:
1. Build poppler with poppler-data as input.
2. Add poppler-data into poppler's output path.
A simple union-build is not enough, as reported in
<https://issues.guix.gnu.org/53536>.

* gnu/packages/pdf.scm (poppler)[inputs]: Add poppler-data.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-02-05 23:57:48 +01:00
Efraim Flashner 6ac6a7e020 gnu: file: Update to 5.41.
* gnu/packages/file.scm (file): Absorb file-next.
* gnu/packages/commencement.scm (file-boot0)[arguments]: Add make-flag
to set CFLAGS.
* gnu/packages/diffoscope.scm (diffoscope): Remove file-next.
* gnu/packages/python-xyz.scm (python-magic)[inputs]: Replace file-next
with file.
2022-01-27 17:01:20 +02:00
Maxim Cournoyer 0d41fe4855 Merge branch 'staging' into core-updates.
With "conflicts" resolved in (mostly in favor of master/staging):
	gnu/packages/admin.scm
	gnu/packages/gnuzilla.scm
	gnu/packages/gtk.scm
	gnu/packages/kerberos.scm
	gnu/packages/linux.scm
	guix/lint.scm
2022-01-25 23:48:37 -05:00
Nicolas Goaziou 7c57821c68 gnu: sdl2: Update to 2.0.18.
* gnu/packages/sdl.scm (sdl2): Update to 2.0.18.
[inputs]: Remove labels.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2022-01-25 18:00:28 +01:00
Nicolas Goaziou bca1157e47 gnu: qpdf: Update to 10.5.0.
* gnu/packages/pdf.scm (qpdf): Update to 10.5.0.
[arguments]<#:phases>: Use G-expression.
2022-01-25 17:45:35 +01:00
Efraim Flashner 9bf69d38aa gnu: gzip: Update to 1.11.
* gnu/packages/compression.scm (gzip): Update to 1.11.
2022-01-24 09:56:45 +02:00
Efraim Flashner 3dc776cb71 gnu: grep: Update to 3.7.
* gnu/packages/base.scm (grep): Update to 3.7.
2022-01-24 09:56:44 +02:00
Efraim Flashner 8313f741a8 gnu: libidn: Update to 1.38.
* gnu/packages/libidn.scm (libidn): Update to 1.38.
2022-01-24 09:56:44 +02:00
Efraim Flashner bbb08831e0 gnu: libidn2: Update to 2.3.2.
* gnu/packages/libidn.scm (libidn2): Update to 2.3.2.
2022-01-24 09:56:44 +02:00
Efraim Flashner 1236a563b9 gnu: dejagnu: Honor tests? flag.
* gnu/packages/dejagnu.scm (dejagnu)[arguments]: Adjust custom 'check
phase to honor the #:tests? flag.
2022-01-24 09:56:44 +02:00
SeerLite e25ff31663 gnu: xkeyboard-config: Build man page.
* gnu/packages/xorg.scm (xkeyboard-config)[native-inputs]: Add libxslt and
remove labels.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-01-23 01:00:00 +01:00
Efraim Flashner 80194d9e47 gnu: python-boot0: Don't install tests.
* gnu/packages/commencement.scm (python-boot0)[arguments]: Add phase to
remove installed tests.
2022-01-19 13:06:23 +02:00
Efraim Flashner bc5654af82 gnu: python-boot0: Remove sitecustomize.py.
* gnu/packages/commencement.scm (python-boot0)[native-inputs]: Remove
sitecustomize.py.
[arguments]: Remove 'install-sitecustomize.py phase.
[native-search-paths]: Set PYTHONPATH, not GUIX_PYTHONPATH.
2022-01-19 11:22:57 +02:00
Hartmut Goebel fab871ae7a build/python: Improve error output in sanity check.
Instead of printing the "str()" representation of the excaption, print the
"repr()" representation. This will print the name of the exception and thus
ease understanding the actual error.
2022-01-15 21:42:14 +01:00
Jelle Licht 94f8ba37cc gnu: c-ares: Enable tests.
* gnu/packages/adns.scm (c-ares)[arguments]: Enable tests.
2021-12-23 15:41:15 +01:00
Efraim Flashner 6ccf8ea81f Merge branch 'master' into core-updates 2021-12-19 15:15:11 +02:00
Efraim Flashner 9f916d1476 gnu: qutebrowser: Install userscripts.
* gnu/packages/web-browsers.scm (qutebrowsers)[inputs]: Add
python-pynacs.
[arguments]: Add custom 'patch-systemdir, 'install-userscripts phases.
2021-12-19 12:23:41 +02:00
Efraim Flashner de86aaa097 gnu: qutebrowser: Remove unnecessary input.
* gnu/packages/web-browsers.scm (qutebrowser)[inputs]: Remove
python-importlib-resources.
2021-12-19 11:22:21 +02:00
Maxime Devos fcaed5b81e lint: check-wrapper-inputs: Remove mentions of core-updates.
The #:sh argument of 'wrap-program' and 'wrap-qt-program' is
now in the current branch, so some comments aren't relevant anymore.

* guix/lint.scm (check-wrapper-inputs)[check-procedure-body]: Remove mentions
  of core-updates.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:06 +00:00
Maxime Devos 77b98bf187 build/qt-utils: Allow overriding the shell interpreter used.
* guix/build/qt-utils.scm
  (wrap-qt-program*): Add #:sh argument and pass it to 'wrap-program'.
  (wrap-qt-program): Likewise, but pass it to 'wrap-qt-program*' instead.
  (wrap-all-qt-programs): Likewise, but pass it to 'wrap-qt-program' instead.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:06 +00:00
Maxime Devos a7bc1c8dd3 gnu: libproxy: Respect #:tests?.
* gnu/packages/networking.scm (libproxy)[arguments]<#:phases>{check}: Don't
  run the tests if the value for #:tests? is false.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:06 +00:00
Maxime Devos d3d6e8b31a gnu: libcap: Unconditionally use #$output.
* gnu/packages/linux.scm (libcap)[arguments]<#:phases>{configure}:
  Unconditionally use #$output instead of %output.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:06 +00:00
Maxime Devos ea5039c765 gnu: heimdal: Make 'bash-minimal' input unconditional.
* gnu/packages/kerberos.scm (heimdal)[inputs]{bash-minimal}:
  Make it unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:06 +00:00
Maxime Devos 296599dac5 gnu: heimdal: Make some parts of phases unconditional.
* gnu/packages/kerberos.scm (heimdal)[arguments]<#:phases>{pre-configure}:
  Make the '(%current-target-system)' branches unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:06 +00:00
Maxime Devos 4acddaa659 gnu: json-glib: Make 'bash-minimal' input unconditional.
* gnu/packages/gnome.scm (json-glib)[inputs]{bash-minimal}:
  Make it unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:06 +00:00
Maxime Devos 97cd9b73a6 gnu: json-glib: Unconditionally lookup docbook in native-inputs.
* gnu/packages/gnome.scm
  (json-glib)[arguments]<#:phases>{patch-docbook}:
  Unconditionally look in (or native-inputs inputs) for docbook-xml and
  docbook-xsl.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:05 +00:00
Maxime Devos 65e5f1475d gnu: wayland: Unconditionally lookup docbook in native-inputs.
* gnu/packages/freedesktop.scm
  (wayland)[arguments]<#:phases>{patch-docbook-sgml}:
  Unconditionally look in (or native-inputs inputs) for docbook-xml and
  docbook-xml-4.2.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:05 +00:00
Maxime Devos a4c40efa05 gnu: freedesktop: Unconditionally use alternatives to % variables.
* gnu/packages/freedesktop.scm
  (elogind)[arguments]<#:configure-flags>: Use #$output and this-package-input
  instead of %outputs and %build-inputs.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:05 +00:00
Maxime Devos 40e07889d1 gnu: avahi: Make the 'patch-more-shebangs' phase unconditional.
* gnu/packages/avahi.scm (avahi)[arguments]<#:phases>{patch-more-shebangs}:
  Make it unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:05 +00:00
Maxime Devos 9c96dfd43c gnu: avahi: Make 'bash-minimal' input unconditional.
* gnu/packages/avahi.scm (avahi)[inputs]{bash-minimal}:
  Make it unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:05 +00:00
Maxime Devos c2f5510730 gnu: at-spi2-core: Remove trailing #t.
* gnu/packages/gtk.scm (at-spi2-core)[arguments]<#:phases>:
  Remove trailing #t.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:05 +00:00
Maxime Devos c3417f0754 gnu: at-spi2-core: Unconditionally lookup docbook in native-inputs.
* gnu/packages/gtk.scm (at-spi2-core)[arguments]<#:phases>{patch-docbook-sgml}:
  Unconditionally look in (or native-inputs inputs) for docbook-xml.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:05 +00:00
Maxime Devos 2d9c06c61d gnu: at-spi2-core: Respect #:tests?.
* gnu/packages/gtk.scm (at-spi2-core)[arguments]<#:phases>{check}:
  Don't run tests if the value of #:tests? if false.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:04 +00:00
Maxime Devos d8ff47a75e gnu: at-spi2-core: Make 'bash-minimal' input unconditional.
* gnu/packages/gtk.scm (at-spi2-core)[inputs]{bash-minimal}:
  Make it unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:04 +00:00
Maxime Devos 2f817ab6ab gnu: gdk-pixbuf: Remove trailing #t.
* gnu/packages/gtk.scm (gdk-pixbuf)[arguments]<#:phases>: Remove
  the trailing #t.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:04 +00:00
Maxime Devos 90fb289b69 gnu: gdk-pixbuf: Make 'bash-minimal' input unconditional.
* gnu/packages/gtk.scm (gdk-pixbuf)[inputs]{bash-minimal}:
  Make it unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:04 +00:00
Maxime Devos 744bfc61da gnu: gdk-pixbuf: Use target predicates.
This seems a little tidier to me.

* gnu/packages/gtk.scm (gdk-pixbuf)[arguments]<#:phases>{check}: Use
  target-arm? instead of string=?.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:04 +00:00
Maxime Devos 1f7cf5834c gnu: gdk-pixbuf: Respect #:tests?.
* gnu/packages/gtk.scm (gdk-pixbuf)[arguments]<#:phases>{check}: Don't
  run the tests if the value for #:tests? is false.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:04 +00:00
Maxime Devos cf7c7e2596 gnu: gdk-pixbuf: Unconditionally lookup docbook in native-inputs.
* gnu/packages/gtk.scm (gdk-pixbuf)[arguments]<#:phases>{patch-docbook}:
  Unconditionally look in (or native-inputs inputs) for docbook-xsl and
  docbook-xml.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:04 +00:00
Maxime Devos 9ccb0cf70a gnu: pango: Make 'bash-minimal' input unconditional.
* gnu/packages/gtk.scm (pango)[inputs]{bash-minimal}:
  Make it unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:03 +00:00
Maxime Devos bbb5243817 gnu: libdatrie: Make input labels match the package name.
* gnu/packages/gtk.scm
  (libthai)[native-inputs]{datrie}: Rename to ...
  (libthai)[native-inputs]{libdatrie}: ... this.
  (libthai)[propagated-inputs]{datrie}: Rename to ...
  (libthai)[propagated-inputs]{libdatrie}: ... this.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:03 +00:00
Maxime Devos 7f3da8f882 gnu: libthai: Make 'datrie' input unconditional.
* gnu/packages/gtk.scm (libthai)[native-inputs]{datrie}: Make this input
  unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:03 +00:00
Maxime Devos e8176d3152 gnu: cairo: Make 'bash-minimal' input unconditional.
* gnu/packages/gtk.scm (cairo)[inputs]{bash-minimal}: Make this input
  unconditional.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:03 +00:00
Maxime Devos f73758f6c2 gnu: gobject-introspection: Use python instead of python-wrapper.
'python' is a tiny bit simpler than 'python-wrapper', and is already
used when cross-compiling.  Use it unconditionally.

* gnu/packages/glib.scm (gobject-introspection)[inputs]{python}: Use 'python'
  even when compiling natively.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:03 +00:00
Maxime Devos 7b71cd6dab gnu: gobject-introspection: Move things to native-inputs.
* gnu/packages/glib.scm (gobject-introspection)[native-inputs]: Make
  'bison' and 'flex' inputs unconditional ...
  (gobject-introspection)[inputs]: ... and unconditionally remove them here.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:03 +00:00
Maxime Devos 9bf44750dc gnu: isc-dhcp: Remove trailing #t.
They aren't required anymore on core-updates.

* gnu/packages/admin.scm (isc-dhcp)[arguments]<#:phases>: Remove trailing #t.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:03 +00:00
Maxime Devos 0fe0a3a8ee gnu: isc-dhcp: Remove unnecessary shebang patching.
* gnu/packages/admin.scm (isc-dhcp)[arguments]<#:phases>{post-install}:
  Remove parts indicated by TODOs.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:03 +00:00
Maxime Devos 283bc45649 gnu: isc-dhcp: Make an input unconditional.
* gnu/packages/admin.scm (isc-dhcp)[inputs]{bash}: Always include this
  input, even when compiling natively.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:03 +00:00
Maxime Devos 9ca2f94b1b gnu: isc-dhcp: Don't use canonical-package.
As I understand it, canonical-package is only for things that
won't end up in the closure, so canonical-package shouldn't be
used here.

* gnu/packages/admin.scm (isc-dhcp)[inputs]{bash}: Remove 'canonical-package'.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:02 +00:00
Maxime Devos 034459cc67 gnu: mozjs: Make the quasiquote unconditional.
* gnu/packages/nss.scm (mozjs-60)[arguments]<#:configure-flags>: Always use
  quasiquote instead of quote.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:02 +00:00
Maxime Devos e3d61d2082 gnu: mozjs: Make the native-inputs unconditional.
* gnu/packages/nss.scm (mozjs)[inputs]: Always include 'perl" and
  'bash-minimal', even when compiling natively.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:02 +00:00
Maxime Devos 8a55fde935 build/minetest-build-system: Move png-file? to (guix build utils).
It's not really Minetest-specific.  It was only placed in
(guix build minetest-build-system) to avoid a world rebuild.

* guix/build/minetest-build-system.scm (%png-magic-bytes,png-file?):
  Move to ...
* guix/build/utils.scm (%png-magic-bytes,png-file?): ... here.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:02 +00:00
Maxime Devos 9bf0652b08 gnu: icecat: Use mozilla-build-system.
This doesn't actually have any effect because the 'configure'
phase is replaced.

* gnu/packages/gnuzilla.scm (icecat)[build-system]: Use mozilla-build-system.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:02 +00:00
Maxime Devos 5d8515b337 gnu: mozjs: Use mozilla-build-system.
Due to the use of 'inherit', all versions of mozjs are adjusted.

* gnu/packages/gnuzilla.scm
  (mozjs)[build-system]: Adjust it.
  (mozjs)[arguments]<#:configure-flags>: Remove now superfluous --target and
  --host.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:02 +00:00
Maxime Devos 385ba2f369 gnu: nspr: Use mozilla-build-system.
* gnu/packages/nss.scm
  (nspr)[build-system]: Adjust it.
  (nspr)[arguments]<#:configure-flags>: Remove now superfluous --target and
  --host.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:02 +00:00
Maxime Devos fae2fcdbc9 build-system/mozilla: New build system.
* guix/build-system/mozilla.scm
  (lower-mozilla): New procedure.
  (mozilla-build-system): New variable.
* Makefile.am (MODULES): Add it.
* doc/guix.texi (Build Systems): Document it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:01 +00:00
Mathieu Othacehe 0cccc2f52c Merge remote-tracking branch core-updates-frozen into core-updates 2021-09-22 06:25:20 +00:00
Raghav Gururajan 22f7d4bce1 gnu: gobject-introspection: Fix the header of patch files.
* gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch: Modify.
* gnu/packages/patches/gobject-introspection-cc.patch: Modify.
2021-09-08 11:18:17 -04:00
Raghav Gururajan 426038df3b gnu: gobject-introspection: Update to 1.68.0 and adjust patches.
* gnu/packages/glib.scm (gobject-introspection)[version]: Update to 1.68.0.
* gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch: Modify.
* gnu/packages/patches/gobject-introspection-cc.patch: Modify.
2021-09-07 18:05:57 -04:00
Andy Tai 693d75e859 gnu: automake: Update to 1.16.4
* gnu/packages/autotools.scm (automake): Update to 1.16.4

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-08-04 11:09:14 +03:00
Ricardo Wurmus 8419221620 gnu: r-with-tests: Add missing TeX Live packages.
* gnu/packages/statistics.scm (r-with-tests)[native-inputs]: Add
texlive-grfext and texlive-latex-l3backend to the texlive union.
2021-07-29 13:37:27 +02:00
Ricardo Wurmus 041a12c46b gnu: Add texlive-grfext.
* gnu/packages/tex.scm (texlive-grfext): New variable.
2021-07-29 13:37:17 +02:00
727 changed files with 568469 additions and 288740 deletions
+2 -3
View File
@@ -6,9 +6,9 @@
(sentence-end-double-space . t)
;; For use with 'bug-reference-prog-mode'.
(bug-reference-url-format . "http://bugs.gnu.org/%s")
(bug-reference-bug-regexp
. "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)")
(bug-reference-url-format . "https://bugs.gnu.org/%s")
. "<https?://\\(debbugs\\|bugs\\)\\.gnu\\.org/\\([0-9]+\\)>")
;; Emacs-Guix
(eval . (setq-local guix-directory
@@ -121,7 +121,6 @@
(eval . (put 'run-with-store 'scheme-indent-function 1))
(eval . (put 'run-with-state 'scheme-indent-function 1))
(eval . (put 'wrap-program 'scheme-indent-function 1))
(eval . (put 'wrap-script 'scheme-indent-function 1))
(eval . (put 'with-imported-modules 'scheme-indent-function 1))
(eval . (put 'with-extensions 'scheme-indent-function 1))
(eval . (put 'with-parameters 'scheme-indent-function 1))
-2
View File
@@ -68,7 +68,6 @@
/doc/version.texi
/doc/version-*.texi
/etc/committer.scm
/etc/teams.scm
/etc/gnu-store.mount
/etc/guix-daemon.cil
/etc/guix-daemon.conf
@@ -158,4 +157,3 @@ tmp
/gnu/packages/bootstrap
/gnu/packages/aux-files/guile-guile-launcher.o
/guile
.DS_Store
-2
View File
@@ -64,8 +64,6 @@
(;; primary: "4F71 6F9A 8FA2 C80E F1B5 E1BA 5E35 F231 DE1A C5E0"
"B051 5948 F1E7 D3C1 B980 38A0 2646 FA30 BACA 7F08"
(name "lfam"))
("925C 8EBD F446 931D 1B64 4498 2D58 A112 6E2D FC90"
(name "magali"))
("CBF5 9755 CBE7 E7EF EF18 3FB1 DD40 9A15 D822 469D"
(name "marusich"))
("BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
+12 -44
View File
@@ -97,6 +97,7 @@ MODULES = \
guix/discovery.scm \
guix/android-repo-download.scm \
guix/bzr-download.scm \
guix/extracting-download.scm \
guix/git-download.scm \
guix/hg-download.scm \
guix/hash.scm \
@@ -129,14 +130,7 @@ MODULES = \
guix/cache.scm \
guix/cve.scm \
guix/workers.scm \
guix/least-authority.scm \
guix/ipfs.scm \
guix/platform.scm \
guix/platforms/arm.scm \
guix/platforms/mips.scm \
guix/platforms/powerpc.scm \
guix/platforms/riscv.scm \
guix/platforms/x86.scm \
guix/build-system.scm \
guix/build-system/android-ndk.scm \
guix/build-system/ant.scm \
@@ -146,11 +140,11 @@ MODULES = \
guix/build-system/cmake.scm \
guix/build-system/dub.scm \
guix/build-system/dune.scm \
guix/build-system/elm.scm \
guix/build-system/emacs.scm \
guix/build-system/font.scm \
guix/build-system/go.scm \
guix/build-system/meson.scm \
guix/build-system/mozilla.scm \
guix/build-system/minify.scm \
guix/build-system/minetest.scm \
guix/build-system/asdf.scm \
@@ -171,7 +165,6 @@ MODULES = \
guix/build-system/waf.scm \
guix/build-system/r.scm \
guix/build-system/rakudo.scm \
guix/build-system/rebar.scm \
guix/build-system/ruby.scm \
guix/build-system/scons.scm \
guix/build-system/texlive.scm \
@@ -199,7 +192,6 @@ MODULES = \
guix/build/cmake-build-system.scm \
guix/build/dub-build-system.scm \
guix/build/dune-build-system.scm \
guix/build/elm-build-system.scm \
guix/build/emacs-build-system.scm \
guix/build/meson-build-system.scm \
guix/build/minify-build-system.scm \
@@ -226,7 +218,6 @@ MODULES = \
guix/build/r-build-system.scm \
guix/build/renpy-build-system.scm \
guix/build/rakudo-build-system.scm \
guix/build/rebar-build-system.scm \
guix/build/ruby-build-system.scm \
guix/build/scons-build-system.scm \
guix/build/texlive-build-system.scm \
@@ -266,7 +257,6 @@ MODULES = \
guix/import/cran.scm \
guix/import/crate.scm \
guix/import/egg.scm \
guix/import/elm.scm \
guix/import/elpa.scm \
guix/import/gem.scm \
guix/import/git.scm \
@@ -275,7 +265,6 @@ MODULES = \
guix/import/gnu.scm \
guix/import/go.scm \
guix/import/hackage.scm \
guix/import/hexpm.scm \
guix/import/json.scm \
guix/import/kde.scm \
guix/import/launchpad.scm \
@@ -310,24 +299,20 @@ MODULES = \
guix/scripts/describe.scm \
guix/scripts/style.scm \
guix/scripts/system.scm \
guix/scripts/system/edit.scm \
guix/scripts/system/reconfigure.scm \
guix/scripts/system/search.scm \
guix/scripts/system/reconfigure.scm \
guix/scripts/home.scm \
guix/scripts/home/edit.scm \
guix/scripts/home/import.scm \
guix/scripts/lint.scm \
guix/scripts/challenge.scm \
guix/scripts/import/crate.scm \
guix/scripts/import/cran.scm \
guix/scripts/import/egg.scm \
guix/scripts/import/elm.scm \
guix/scripts/import/elpa.scm \
guix/scripts/import/gem.scm \
guix/scripts/import/gnu.scm \
guix/scripts/import/go.scm \
guix/scripts/import/hackage.scm \
guix/scripts/import/hexpm.scm \
guix/scripts/import/json.scm \
guix/scripts/import/minetest.scm \
guix/scripts/import/opam.scm \
@@ -341,7 +326,6 @@ MODULES = \
guix/scripts/size.scm \
guix/scripts/git.scm \
guix/scripts/git/authenticate.scm \
guix/scripts/git/log.scm \
guix/scripts/graph.scm \
guix/scripts/weather.scm \
guix/scripts/container.scm \
@@ -396,10 +380,10 @@ AUX_FILES = \
gnu/packages/aux-files/chromium/master-preferences.json \
gnu/packages/aux-files/emacs/guix-emacs.el \
gnu/packages/aux-files/guix.vim \
gnu/packages/aux-files/linux-libre/5.18-arm.conf \
gnu/packages/aux-files/linux-libre/5.18-arm64.conf \
gnu/packages/aux-files/linux-libre/5.18-i686.conf \
gnu/packages/aux-files/linux-libre/5.18-x86_64.conf \
gnu/packages/aux-files/linux-libre/5.16-arm.conf \
gnu/packages/aux-files/linux-libre/5.16-arm64.conf \
gnu/packages/aux-files/linux-libre/5.16-i686.conf \
gnu/packages/aux-files/linux-libre/5.16-x86_64.conf \
gnu/packages/aux-files/linux-libre/5.15-arm.conf \
gnu/packages/aux-files/linux-libre/5.15-arm64.conf \
gnu/packages/aux-files/linux-libre/5.15-i686.conf \
@@ -421,6 +405,8 @@ AUX_FILES = \
gnu/packages/aux-files/linux-libre/4.14-x86_64.conf \
gnu/packages/aux-files/linux-libre/4.9-i686.conf \
gnu/packages/aux-files/linux-libre/4.9-x86_64.conf \
gnu/packages/aux-files/linux-libre/4.4-i686.conf \
gnu/packages/aux-files/linux-libre/4.4-x86_64.conf \
gnu/packages/aux-files/pack-audit.c \
gnu/packages/aux-files/python/sanity-check.py \
gnu/packages/aux-files/python/sitecustomize.py \
@@ -473,7 +459,6 @@ SCM_TESTS = \
tests/boot-parameters.scm \
tests/bournish.scm \
tests/builders.scm \
tests/build-emacs-utils.scm \
tests/build-utils.scm \
tests/cache.scm \
tests/challenge.scm \
@@ -489,7 +474,6 @@ SCM_TESTS = \
tests/derivations.scm \
tests/discovery.scm \
tests/egg.scm \
tests/elm.scm \
tests/elpa.scm \
tests/file-systems.scm \
tests/gem.scm \
@@ -503,7 +487,6 @@ SCM_TESTS = \
tests/gremlin.scm \
tests/hackage.scm \
tests/home-import.scm \
tests/home-services.scm \
tests/http-client.scm \
tests/import-git.scm \
tests/import-github.scm \
@@ -586,7 +569,6 @@ SH_TESTS = \
tests/guix-environment.sh \
tests/guix-environment-container.sh \
tests/guix-shell.sh \
tests/guix-shell-export-manifest.sh \
tests/guix-graph.sh \
tests/guix-describe.sh \
tests/guix-repl.sh \
@@ -1087,35 +1069,21 @@ WEBLATE_REPO = https://framagit.org/tyreunom/guix-translations
# form.
download-po:
dir=$$(mktemp -d); \
git clone --depth 1 "$(WEBLATE_REPO)" "$$dir/translations" && \
git clone --depth 1 "$(WEBLATE_REPO)" "$$dir/translations"; \
for domain in po/doc po/guix po/packages; do \
for po in "$$dir/translations/$$domain"/*.po; do \
translated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | cut -f1 -d' '); \
untranslated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | rev | cut -f3 -d' ' | rev); \
untranslated=$${untranslated:-0}; \
total=$$(($$translated+$$untranslated)); \
target=$$(basename "$$po"); \
target="$$domain/$$target"; \
msgfmt -c "$$po"; \
if msgfmt -c "$$po" && [ "$$translated" != "0" ] && ([ "$$domain" != "po/doc" ] || [ "$$translated" -gt $$(($$total/10)) ] || [ -f $$target ]); then \
if msgfmt -c "$$po" && [ "$$translated" != "0" ]; then \
msgfilter --no-wrap -i "$$po" cat > "$$po".tmp; \
mv "$$po".tmp "$$target"; \
echo "copied $$target."; \
else \
echo "WARN: $$target ($$translated translated messages ($$((translated/total*100))%)) was not added/updated."; \
echo "WARN: $$target ($$translated translated messages) was not added/updated."; \
fi; \
done; \
done; \
for po in po/doc/*.po; do \
translated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | cut -f1 -d' '); \
untranslated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | rev | cut -f3 -d' ' | rev); \
untranslated=$${untranslated:-0}; \
total=$$(($$translated + $$untranslated)); \
if [ "$$translated" -lt "$$(($$total/20))" ]; then \
echo "WARN: $$po was removed because it is below the 5% threshold: $$((translated/total*100))%"; \
rm $$po; \
fi; \
done; \
rm -rf "$$dir"
.PHONY: download-po
+23 -30
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016-2018, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
;;;
@@ -78,35 +78,28 @@
;; up the evaluation speed as the evaluations can be performed
;; concurrently. It also decreases the amount of memory needed per
;; evaluation process.
;;
;; Fork inferior processes upfront before we have created any
;; threads.
(let ((inferiors (map (lambda _
(open-inferior (derivation->output-path derivation)))
%cuirass-supported-systems)))
(n-par-for-each
(min (length %cuirass-supported-systems)
(current-processor-count))
(lambda (system inferior)
(with-store store
(let ((channels (map channel-instance->sexp instances)))
(inferior-eval '(use-modules (gnu ci)) inferior)
(let ((jobs
(inferior-eval-with-store
inferior store
`(lambda (store)
(cuirass-jobs store
'((subset . all)
(systems . ,(list system))
(channels . ,channels))))))
(file
(string-append directory "/jobs-" system ".scm")))
(close-inferior inferior)
(call-with-output-file file
(lambda (port)
(write jobs port)))))))
%cuirass-supported-systems
inferiors)))))))
(n-par-for-each
(/ (current-processor-count) 2)
(lambda (system)
(with-store store
(let ((inferior
(open-inferior (derivation->output-path derivation)))
(channels (map channel-instance->sexp instances)))
(inferior-eval '(use-modules (gnu ci)) inferior)
(let ((jobs
(inferior-eval-with-store
inferior store
`(lambda (store)
(cuirass-jobs store
'((subset . all)
(systems . ,(list system))
(channels . ,channels))))))
(file
(string-append directory "/jobs-" system ".scm")))
(call-with-output-file file
(lambda (port)
(write jobs port)))))))
%cuirass-supported-systems))))))
(x
(format (current-error-port) "Wrong command: ~a~%." x)
(exit 1)))
-1
View File
@@ -274,7 +274,6 @@ AC_CONFIG_FILES([Makefile
guix/config.scm])
AC_CONFIG_FILES([etc/committer.scm], [chmod +x etc/committer.scm])
AC_CONFIG_FILES([etc/teams.scm], [chmod +x etc/teams.scm])
AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env])
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
[chmod +x pre-inst-env])
+31 -40
View File
@@ -1,7 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,7 +30,6 @@
(guix gexp)
(guix git)
(guix git-download)
(guix profiles)
(guix utils)
(git)
(gnu packages base)
@@ -64,19 +62,11 @@
(or (getenv "GUIX_MANUAL")
"guix"))
(define %manual-languages
;; Available translations for the 'guix-manual' text domain.
'("de" "en" "es" "fr" "ru" "zh_CN"))
(define %cookbook-languages
;; Available translations for the 'guix-cookbook' text domain.
'("de" "en" "fr" "sk"))
(define %languages
;; Available translations for the document being built.
;; The cookbook is not translated in the same languages as the manual
(if (string=? %manual "guix-cookbook")
%cookbook-languages
%manual-languages))
'("de" "en" "fr" "sk")
'("de" "en" "es" "fr" "ru" "zh_CN")))
(define (texinfo-manual-images source)
"Return a directory containing all the images used by the user manual, taken
@@ -311,9 +301,8 @@ actual file name."
(define (html-files directory)
;; Return the list of HTML files under DIRECTORY.
(map (cut string-append directory "/" <>)
(or (scandir #$manual (lambda (file)
(string-suffix? ".html" file)))
'())))
(scandir #$manual (lambda (file)
(string-suffix? ".html" file)))))
(define anchors
(sort (concatenate
@@ -892,22 +881,14 @@ makeinfo OPTIONS."
#:languages languages
#:date date))
(define texinfo-profile
(profile
(content (packages->manifest
;; texi2dvi requires various command line tools.
(list coreutils
diffutils
gawk
grep
sed
tar
texinfo
texlive-base
texlive-bin ;for GUIX_TEXMF
texlive-epsf
texlive-fonts-ec
texlive-tex-texinfo)))))
;; FIXME: This union works, except for the table of contents of non-English
;; manuals, which contains escape sequences like "^^ca^^fe" instead of
;; accented letters.
;;
;; (define texlive
;; (texlive-updmap.cfg (list texlive-tex-texinfo
;; texlive-generic-epsf
;; texlive-fonts-ec)))
(define build
(with-imported-modules '((guix build utils))
@@ -924,12 +905,21 @@ makeinfo OPTIONS."
(string-downcase language)))
;; Install a UTF-8 locale so that 'makeinfo' is at ease.
(setenv "GUIX_LOCPATH" #+(file-append glibc-utf8-locales
"/lib/locale"))
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(setenv "LC_ALL" "en_US.utf8")
(setenv "PATH" #+(file-append texinfo-profile "/bin"))
(setenv "GUIX_TEXMF" #+(file-append texinfo-profile
"/share/texmf-dist"))
(setenv "PATH"
(string-append #+(file-append texlive "/bin") ":"
#+(file-append texinfo "/bin") ":"
;; Below are command-line tools needed by
;; 'texi2dvi' and friends.
#+(file-append sed "/bin") ":"
#+(file-append grep "/bin") ":"
#+(file-append coreutils "/bin") ":"
#+(file-append gawk "/bin") ":"
#+(file-append tar "/bin") ":"
#+(file-append diffutils "/bin")))
(setvbuf (current-output-port) 'line)
(setvbuf (current-error-port) 'line)
@@ -979,8 +969,7 @@ PDF for language '~a'!~%~%"
(computed-file (string-append manual "-pdf-manual") build
#:local-build? #f))
(define* (guix-manual-text-domain source
#:optional (languages %manual-languages))
(define (guix-manual-text-domain source languages)
"Return the PO files for LANGUAGES of the 'guix-manual' text domain taken
from SOURCE."
(define po-directory
@@ -1053,7 +1042,9 @@ must be the Guix top-level source directory, from which PO files are taken."
(define exp
`(begin
(bindtextdomain "guix-manual"
#+(guix-manual-text-domain source))
#+(guix-manual-text-domain
source
languages))
(bindtextdomain "iso_639-3" ;language names
#+(file-append iso-codes
"/share/locale"))
-104
View File
@@ -447,7 +447,6 @@ needed is to review and apply the patch.
* Perl Modules:: Little pearls.
* Java Packages:: Coffee break.
* Rust Crates:: Beware of oxidation.
* Elm Packages:: Trees of browser code
* Fonts:: Fond of fonts.
@end menu
@@ -899,87 +898,6 @@ developed for a different Operating System, depend on features from the Nightly
Rust compiler, or the test suite may have atrophied since it was released.
@node Elm Packages
@subsection Elm Packages
@cindex Elm
Elm applications can be named like other software: their names need not
mention Elm.
Packages in the Elm sense (see @code{elm-build-system} under @ref{Build
Systems}) are required use names of the format
@var{author}@code{/}@var{project}, where both the @var{author} and the
@var{project} may contain hyphens internally, and the @var{author} sometimes
contains uppercase letters.
To form the Guix package name from the upstream name, we follow a convention
similar to Python packages (@pxref{Python Modules}), adding an @code{elm-}
prefix unless the name would already begin with @code{elm-}.
In many cases we can reconstruct an Elm package's upstream name heuristically,
but, since conversion to a Guix-style name involves a loss of information,
this is not always possible. Care should be taken to add the
@code{'upstream-name} property when necessary so that @samp{guix import elm}
will work correctly (@pxref{Invoking guix import}). The most notable scenarios
when explicitly specifying the upstream name is necessary are:
@enumerate
@item
When the @var{author} is @code{elm} and the @var{project} contains one or more
hyphens, as with @code{elm/virtual-dom}; and
@item
When the @var{author} contains hyphens or uppercase letters, as with
@code{Elm-Canvas/raster-shapes}---unless the @var{author} is
@code{elm-explorations}, which is handled as a special case, so packages like
@code{elm-explorations/markdown} do @emph{not} need to use the
@code{'upstream-name} property.
@end enumerate
The module @code{(guix build-system elm)} provides the following utilities for
working with names and related conventions:
@deffn {Scheme procedure} elm-package-origin @var{elm-name} @var{version} @
@var{hash}
Returns a Git origin using the repository naming and tagging regime required
for a published Elm package with the upstream name @var{elm-name} at version
@var{version} with sha256 checksum @var{hash}.
For example:
@lisp
(package
(name "elm-html")
(version "1.0.0")
(source
(elm-package-origin
"elm/html"
version
(base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a")))
...)
@end lisp
@end deffn
@deffn {Scheme procedure} elm->package-name @var{elm-name}
Returns the Guix-style package name for an Elm package with upstream name
@var{elm-name}.
Note that there is more than one possible @var{elm-name} for which
@code{elm->package-name} will produce a given result.
@end deffn
@deffn {Scheme procedure} guix-package->elm-name @var{package}
Given an Elm @var{package}, returns the possibly-inferred upstream name, or
@code{#f} the upstream name is not specified via the @code{'upstream-name}
property and can not be inferred by @code{infer-elm-package-name}.
@end deffn
@deffn {Scheme procedure} infer-elm-package-name @var{guix-name}
Given the @var{guix-name} of an Elm package, returns the inferred upstream
name, or @code{#f} if the upstream name can't be inferred. If the result is
not @code{#f}, supplying it to @code{elm->package-name} would produce
@var{guix-name}.
@end deffn
@node Fonts
@subsection Fonts
@@ -1993,28 +1911,6 @@ Currently, some parts of Guix cannot be translated on Weblate, help wanted!
translated.
@end itemize
@subsubheading Conditions for Inclusion
There are no conditions for adding new translations of the @code{guix} and
@code{guix-packages} components, other than they need at least one translated
string. New languages will be added to Guix as soon as possible. The
files may be removed if they fall out of sync and have no more translated
strings.
Given that the web site is dedicated to new users, we want its translation
to be as complete as possible before we include it in the language menu.
For a new language to be included, it needs to reach at least 80% completion.
When a language is included, it may be removed in the future if it stays
out of sync and falls below 60% completion.
The manual and cookbook are automatically added in the default compilation
target. Every time we synchronize translations, developers need to
recompile all the translated manuals and cookbooks. This is useless for what
is essentially the English manual or cookbook. Therefore, we will only
include a new language when it reaches 10% completion in the component.
When a language is included, it may be removed in the future if it stays
out of sync and falls below 5% completion.
@subsubheading Translation Infrastructure
Weblate is backed by a git repository from which it discovers new strings to
+6 -7
View File
@@ -296,7 +296,7 @@ online}, together with
@uref{https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/,
videos of the lectures by the authors}. The book is available in Texinfo
format as the @code{sicp} Guix package. Go ahead, run @code{guix install
sicp} and start reading with @code{info sicp} (@pxref{Top,,, sicp, Structure and Interpretation of Computer Programs}).
sicp} and start reading with @code{info sicp} (@pxref{,,, sicp, Structure and Interpretation of Computer Programs}).
An @uref{https://sarabander.github.io/sicp/, unofficial ebook is also
available}.
@@ -903,7 +903,7 @@ Installed in the store and in the profile, as well as
being present at build time.
@end table
@xref{package Reference,,, guix, GNU Guix Reference Manual} for more details.
@xref{Package Reference,,, guix, GNU Guix Reference Manual} for more details.
The distinction between the various inputs is important: if a dependency can be
handled as an @emph{input} instead of a @emph{propagated input}, it should be done so, or
@@ -2533,9 +2533,8 @@ Let's dive in the set up!
@node Basic setup with manifests
@subsection Basic setup with manifests
A Guix profile can be set up @i{via} a @dfn{manifest}. A manifest is a
snippet of Scheme code that specifies the set of packages you want to
have in your profile; it looks like this:
A Guix profile can be set up @emph{via} a so-called @emph{manifest specification} that looks like
this:
@lisp
(specifications->manifest
@@ -2548,8 +2547,8 @@ have in your profile; it looks like this:
"package-N"))
@end lisp
@xref{Writing Manifests,,, guix, GNU Guix Reference Manual}, for
more information about the syntax.
@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual}, for
the syntax details.
We can create a manifest specification per profile and install them this way:
+277 -1686
View File
File diff suppressed because it is too large Load Diff
+5 -6
View File
@@ -13,13 +13,12 @@
(service home-bash-service-type
(home-bash-configuration
(guix-defaults? #t)
(bash-profile (list (plain-file "bash-profile" "\
export HISTFILE=$XDG_CACHE_HOME/.bash_history")))))
(bash-profile '("\
export HISTFILE=$XDG_CACHE_HOME/.bash_history"))))
(simple-service 'test-config
home-xdg-configuration-files-service-type
(list `("test.conf"
home-files-service-type
(list `("config/test.conf"
,(plain-file "tmp-file.txt"
"the content of
~/.config/test.conf")))))))
"the content of ~/.config/test.conf")))))))
+6 -5
View File
@@ -1,9 +1,9 @@
# htmlxref.cnf - reference file for free Texinfo manuals on the web.
# Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual.
htmlxrefversion=2022-06-16.15; # UTC
htmlxrefversion=2021-09-24.23; # UTC
# Copyright 2010-2020, 2022 Free Software Foundation, Inc.
# Copyright 2010-2020 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
@@ -291,6 +291,8 @@ gdbm chapter ${GDBM}/html_chapter/
gdbm section ${GDBM}/html_section/
gdbm node ${GDBM}/html_node/
# XXX: These are actually pages created by texi2html, so no quite following
# the expected naming scheme.
geiser chapter http://geiser.nongnu.org/
gettext mono ${GS}/gettext/manual/gettext.html
@@ -412,8 +414,7 @@ guile-gtk node ${GS}/guile-gtk/docs/guile-gtk/
guile-rpc mono ${GS}/guile-rpc/manual/guile-rpc.html
guile-rpc node ${GS}/guile-rpc/manual/html_node/
GUIX_ROOT = https://guix.gnu.org
GUIX = ${GUIX_ROOT}/guix/manual
GUIX = ${GS}/guix/manual
guix.de mono ${GUIX}/de/guix.de.html
guix.de node ${GUIX}/de/html_node/
guix.es mono ${GUIX}/es/guix.es.html
@@ -427,7 +428,7 @@ GUIX = ${GUIX_ROOT}/guix/manual
guix mono ${GUIX}/en/guix.html
guix node ${GUIX}/en/html_node/
GUIX_COOKBOOK = ${GUIX_ROOT}/cookbook
GUIX_COOKBOOK = ${GS}/guix/cookbook
guix-cookbook.de mono ${GUIX_COOKBOOK}/de/guix-cookbook.html
guix-cookbook.de node ${GUIX_COOKBOOK}/de/html_node/
guix-cookbook.fr mono ${GUIX_COOKBOOK}/fr/guix-cookbook.html
+15 -3
View File
@@ -22,8 +22,8 @@
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
# If adding a language, update the following variables, and info_TEXINFOS.
MANUAL_LANGUAGES = de es fr pt_BR ru zh_CN
COOKBOOK_LANGUAGES = de fr ko sk
MANUAL_LANGUAGES = de es fa fi fr it ko pt_BR ru sk zh_CN
COOKBOOK_LANGUAGES = de es fa fi fr ko pt_BR ru sk uk zh_Hans
# Arg1: A list of languages codes.
# Arg2: The file name stem.
@@ -34,15 +34,27 @@ lang_to_texinfo = $(foreach lang,$(1),%D%/$(2).$(lang).texi)
info_TEXINFOS = %D%/guix.texi \
%D%/guix.de.texi \
%D%/guix.es.texi \
%D%/guix.fa.texi \
%D%/guix.fi.texi \
%D%/guix.fr.texi \
%D%/guix.it.texi \
%D%/guix.ko.texi \
%D%/guix.pt_BR.texi \
%D%/guix.ru.texi \
%D%/guix.sk.texi \
%D%/guix.zh_CN.texi \
%D%/guix-cookbook.texi \
%D%/guix-cookbook.de.texi \
%D%/guix-cookbook.es.texi \
%D%/guix-cookbook.fa.texi \
%D%/guix-cookbook.fi.texi \
%D%/guix-cookbook.fr.texi \
%D%/guix-cookbook.ko.texi \
%D%/guix-cookbook.sk.texi
%D%/guix-cookbook.pt_BR.texi \
%D%/guix-cookbook.ru.texi \
%D%/guix-cookbook.sk.texi \
%D%/guix-cookbook.uk.texi \
%D%/guix-cookbook.zh_Hans.texi
%C%_guix_TEXINFOS = \
%D%/contributing.texi \
+90 -109
View File
@@ -6,7 +6,6 @@
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,19 +28,19 @@
;;; Code:
(use-modules ((sxml xpath) #:prefix xpath:)
(srfi srfi-1)
(srfi srfi-2)
(srfi srfi-9)
(srfi srfi-11)
(srfi srfi-26)
(ice-9 format)
(ice-9 popen)
(ice-9 match)
(ice-9 rdelim)
(ice-9 regex)
(ice-9 textual-ports)
(guix gexp))
(import (sxml xpath)
(srfi srfi-1)
(srfi srfi-2)
(srfi srfi-9)
(srfi srfi-11)
(srfi srfi-26)
(ice-9 format)
(ice-9 popen)
(ice-9 match)
(ice-9 rdelim)
(ice-9 regex)
(ice-9 textual-ports)
(guix gexp))
(define* (break-string str #:optional (max-line-length 70))
"Break the string STR into lines that are no longer than MAX-LINE-LENGTH.
@@ -101,16 +100,12 @@ LINE-NO in PORT."
(read-line port)
(loop (1- i) last-top-level-sexp))))))
;;; Whether the hunk contains a newly added package (definition), a removed
;;; package (removal) or something else (#false).
(define hunk-types '(addition removal #false))
(define-record-type <hunk>
(make-hunk file-name
old-line-number
new-line-number
diff-lines
type)
definition?)
hunk?
(file-name hunk-file-name)
;; Line number before the change
@@ -119,8 +114,8 @@ LINE-NO in PORT."
(new-line-number hunk-new-line-number)
;; The full diff to be used with "git apply --cached"
(diff-lines hunk-diff-lines)
;; Does this hunk add or remove a package?
(type hunk-type)) ;one of 'hunk-types'
;; Does this hunk add a definition?
(definition? hunk-definition?))
(define* (hunk->patch hunk #:optional (port (current-output-port)))
(let ((file-name (hunk-file-name hunk)))
@@ -138,30 +133,25 @@ LINE-NO in PORT."
;; new definitions with changes to existing
;; definitions.
"--unified=1"
"--" "gnu")))
"gnu")))
(define (extract-line-number line-tag)
(abs (string->number
(car (string-split line-tag #\,)))))
(define (read-hunk)
(let loop ((lines '())
(type #false))
(definition? #false))
(let ((line (read-line port 'concat)))
(cond
((eof-object? line)
(values (reverse lines) type))
(values (reverse lines) definition?))
((or (string-prefix? "@@ " line)
(string-prefix? "diff --git" line))
(unget-string port line)
(values (reverse lines) type))
(values (reverse lines) definition?))
(else
(loop (cons line lines)
(or type
(cond
((string-prefix? "+(define" line)
'addition)
((string-prefix? "-(define" line)
'removal)
(else #false)))))))))
(or definition?
(string-prefix? "+(define" line))))))))
(define info
(let loop ((acc '())
(file-name #f))
@@ -176,13 +166,13 @@ LINE-NO in PORT."
(match (string-split line #\space)
((_ old-start new-start . _)
(let-values
(((diff-lines type) (read-hunk)))
(((diff-lines definition?) (read-hunk)))
(loop (cons (make-hunk file-name
(extract-line-number old-start)
(extract-line-number new-start)
(cons (string-append line "\n")
diff-lines)
type) acc)
definition?) acc)
file-name)))))
(else (loop acc file-name))))))
(close-pipe port)
@@ -224,10 +214,10 @@ corresponding to the top-level definition containing the staged changes."
(define* (change-commit-message file-name old new #:optional (port (current-output-port)))
"Print ChangeLog commit message for changes between OLD and NEW."
(define (get-values expr field)
(match ((xpath:sxpath `(// ,field quasiquote *)) expr)
(match ((sxpath `(// ,field quasiquote *)) expr)
(()
;; New-style plain lists
(match ((xpath:sxpath `(// ,field list *)) expr)
(match ((sxpath `(// ,field list *)) expr)
((inner) inner)
(_ '())))
;; Old-style labelled inputs
@@ -244,7 +234,7 @@ corresponding to the top-level definition containing the staged changes."
(define variable-name
(second old))
(define version
(and=> ((xpath:sxpath '(// version *any*)) new)
(and=> ((sxpath '(// version *any*)) new)
first))
(format port
"gnu: ~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%"
@@ -272,18 +262,10 @@ corresponding to the top-level definition containing the staged changes."
(listify added))))))))))
'(inputs propagated-inputs native-inputs)))
(define* (add-commit-message file-name variable-name
#:optional (port (current-output-port)))
"Print ChangeLog commit message for a change to FILE-NAME adding a
definition."
(format port "gnu: Add ~a.~%~%* ~a (~a): New variable.~%"
variable-name file-name variable-name))
(define* (remove-commit-message file-name variable-name
#:optional (port (current-output-port)))
"Print ChangeLog commit message for a change to FILE-NAME removing a
definition."
(format port "gnu: Remove ~a.~%~%* ~a (~a): Delete variable.~%"
(define* (add-commit-message file-name variable-name #:optional (port (current-output-port)))
"Print ChangeLog commit message for a change to FILE-NAME adding a definition."
(format port
"gnu: Add ~a.~%~%* ~a (~a): New variable.~%"
variable-name file-name variable-name))
(define* (custom-commit-message file-name variable-name message changelog
@@ -362,67 +344,66 @@ modifying."
(()
(display "Nothing to be done.\n" (current-error-port)))
(hunks
(let-values (((definitions changes) (partition hunk-type hunks)))
;; Additions/removals.
(for-each
(lambda (hunk)
(and-let* ((define-line (find (cut string-match "(\\+|-)\\(define" <>)
(hunk-diff-lines hunk)))
(variable-name (and=> (string-tokenize define-line)
second))
(commit-message-proc (match (hunk-type hunk)
('addition add-commit-message)
('removal remove-commit-message))))
(commit-message-proc (hunk-file-name hunk) variable-name)
(let ((port (open-pipe* OPEN_WRITE
"git" "apply"
"--cached"
"--unidiff-zero")))
(hunk->patch hunk port)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot apply")))
(let-values
(((definitions changes)
(partition hunk-definition? hunks)))
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
(commit-message-proc (hunk-file-name hunk) variable-name port)
(usleep %delay)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot commit"))))
(usleep %delay))
definitions))
;; Changes.
(for-each
(match-lambda
((new old . hunks)
(for-each (lambda (hunk)
(let ((port (open-pipe* OPEN_WRITE
"git" "apply"
"--cached"
"--unidiff-zero")))
(hunk->patch hunk port)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
;; Additions.
(for-each (lambda (hunk)
(and-let*
((define-line (find (cut string-prefix? "+(define" <>)
(hunk-diff-lines hunk)))
(variable-name (and=> (string-tokenize define-line) second)))
(add-commit-message (hunk-file-name hunk) variable-name)
(let ((port (open-pipe* OPEN_WRITE
"git" "apply"
"--cached"
"--unidiff-zero")))
(hunk->patch hunk port)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot apply")))
(usleep %delay))
hunks)
(define copyright-line
(any (lambda (line) (and=> (string-prefix? "+;;; Copyright ©" line)
(const line)))
(hunk-diff-lines (first hunks))))
(cond
(copyright-line
(add-copyright-line copyright-line))
(else
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
(change-commit-message* (hunk-file-name (first hunks))
old new)
(change-commit-message* (hunk-file-name (first hunks))
old new
port)
(usleep %delay)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot commit")))))))
;; XXX: we recompute the hunks here because previous
;; insertions lead to offsets.
(new+old+hunks (diff-info))))))
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
(add-commit-message (hunk-file-name hunk)
variable-name port)
(usleep %delay)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot commit"))))
(usleep %delay))
definitions)
;; Changes.
(for-each (match-lambda
((new old . hunks)
(for-each (lambda (hunk)
(let ((port (open-pipe* OPEN_WRITE
"git" "apply"
"--cached"
"--unidiff-zero")))
(hunk->patch hunk port)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot apply")))
(usleep %delay))
hunks)
(define copyright-line
(any (lambda (line) (and=> (string-prefix? "+;;; Copyright ©" line)
(const line)))
(hunk-diff-lines (first hunks))))
(cond
(copyright-line
(add-copyright-line copyright-line))
(else
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
(change-commit-message* (hunk-file-name (first hunks))
old new)
(change-commit-message* (hunk-file-name (first hunks))
old new
port)
(usleep %delay)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot commit")))))))
;; XXX: we recompute the hunks here because previous
;; insertions lead to offsets.
(new+old+hunks (diff-info)))))))
(apply main (cdr (command-line)))
+30 -31
View File
@@ -117,59 +117,58 @@ _guix_is_removing ()
$result
}
_guix_is_short_option ()
{
case "${COMP_WORDS[$COMP_CWORD - 1]}" in
--*) false;;
-*$1) true ;;
*) false ;;
esac
}
_guix_is_long_option ()
{
# Don't handle (non-GNU?) --long-option VALUE, as Guix doesn't either.
case "${COMP_WORDS[$COMP_CWORD]}" in
--$1=*) true ;;
*) false ;;
esac
}
_guix_is_dash_f ()
{
_guix_is_short_option f ||
_guix_is_long_option file ||
_guix_is_long_option install-from-file
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-f" ] \
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
--file=*|--install-from-file=*) true;;
*) false;;
esac }
}
_guix_is_dash_l ()
{
_guix_is_short_option l ||
_guix_is_long_option load
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-l" ] \
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
--load=*) true;;
*) false;;
esac }
}
_guix_is_dash_L ()
{
_guix_is_short_option L ||
_guix_is_long_option load-path
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-L" ] \
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
--load-path=*) true;;
*) false;;
esac }
}
_guix_is_dash_m ()
{
_guix_is_short_option m ||
_guix_is_long_option manifest
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-m" ] \
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
--manifest=*) true;;
*) false;;
esac }
}
_guix_is_dash_C ()
{
_guix_is_short_option C ||
_guix_is_long_option channels
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-C" ] \
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
--channels=*) true;;
*) false;;
esac }
}
_guix_is_dash_p ()
{
_guix_is_short_option p ||
_guix_is_long_option profile
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-p" ] \
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
--profile=*) true;;
*) false;;
esac }
}
_guix_complete_file ()
+1 -198
View File
@@ -13,7 +13,7 @@
;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;; Copyright © 2021 Zhu Zihao <all_but_last@163.com>
;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
@@ -25,203 +25,6 @@
(channel-news
(version 0)
(entry (commit "2ec7ab2610eb67e26dab52b671eb29e46f64ea0f")
(title
(en "Linux-libre kernel updated to 5.18")
(de "Linux-libre-Kernel wird auf 5.18 aktualisiert"))
(body
(en "The default version of the linux-libre kernel has been
updated to the 5.18 release series.")
(de "Der standardmäßig verwendete @code{linux-libre}-Kernel basiert
jetzt auf der 5.18-Versionsreihe.")))
(entry (commit "bdf422176739b473add66eb8cac9fdd8c654f794")
(title
(en "@option{-L} option of @command{guix refresh} repurposed")
(de "Option @option{-L} von @command{guix refresh} wechselt Bedeutung")
(fr "Option @option{-L} de @command{guix refresh} réutilisée"))
(body
(en "The @option{-L} option of @command{guix refresh} has been
repurposed: it used to be synonymous with @option{--list-updaters}; it is now
synonymous with @option{--load-path} as is the case with most other commands.
Run @command{info \"(guix) Invoking guix refresh\"} for more info.")
(de "Die Befehlszeilenoption @option{-L} von @command{guix refresh} hat
einen anderen Zweck bekommen: Früher war sie gleichbedeutend mit
@option{--list-updaters}; jetzt ist sie gleichbedeutend mit
@option{--load-path}, wie bereits beim Großteil der anderen Befehle.
Führen Sie @command{info \"(guix.de) Aufruf von guix refresh\"} aus, wenn Sie
mehr wissen möchten.")
(fr "L'option @option{-L} de @command{guix refresh} a changé de
signification : elle était auparavant synonyme de @option{--list-updaters} ;
elle est maintenant synonyme de @option{--load-path} comme c'est le cas pour
la plupart des autres commandes.
Lancer @command{info \"(guix.fr) Invoquer guix refresh\"} pour plus
d'informations.")))
(entry (commit "35c1edb20ad07250728d3bdcd0296bd0cedaf6bb")
(title
(en "New @command{edit} sub-commands for services")
(de "Neue @command{edit}-Unterbefehle für Dienste")
(fr "Nouvelles commandes @command{edit} pour les services")
(nl "Nieuwe deelopdracht @command{edit} voor diensten"))
(body
(en "The new @command{guix system edit} and @command{guix home edit} commands
allow you to view or edit service types defined for Guix System or Guix Home.
For example, here is how you would open the definition of the OpenSSH system
service:
@example
guix system edit openssh
@end example
Run @command{info \"(guix) Invoking guix system\"} or @command{info \"(guix)
Invoking guix home\"} for more info.")
(de "Mit den neuen Befehlen @command{guix system edit} und
@command{guix home edit} können Sie Diensttypen für Guix System oder Guix Home
betrachten und bearbeiten. Zum Beispiel würden Sie die Definition des
OpenSSH-Systemdienstes wie folgt öffnen:
@example
guix system edit openssh
@end example
Führen Sie @command{info \"(guix.de) Aufruf von guix system\"} oder
@command{info \"(guix.de) Aufruf von guix home\"} aus, um mehr zu erfahren.")
(fr "Les nouvelles commandes @command{guix system edit} et
@command{guix home edit} permettent de visualiser ou d'éditer les types de
services définis pour Guix System ou Guix Home. Par exemple, voici comment
ouvrir la définition du service système OpenSSH :
@example
guix system edit openssh
@end example
Lancer @command{info \"(guix.fr) Invoquer guix system\"} ou @command{info
\"(guix.fr) Invoquer guix home\"} pour plus d'informations.")
;; TODO: pas verwijzingen naar de handleiding aan wanneer ze vertaald is
(nl "Met de nieuwe bewerkingen @command{guix system edit} en
@command{guix home edit} kan je dienstsoorten van Guix System en Guix
Home bekijken en bewerken. Je kan bijvoorbeeld de definitie van de
systeemdienst OpenSSH als volgt openen:
@example
guix system edit openssh
@end example
Voer @command{info \"(guix) Invoking guix system\"} of @command{info
\"(guix)Invoking guix home\"} uit voor meer informatie.")))
(entry (commit "903c82583e1cec4c9ff09d5895c5cc646c37b661")
(title
(en "New @command{guix import elm} command")
(de "Neuer Befehl @command{guix import elm}")
(fr "Nouvelle commande @command{guix import elm}"))
(body
(en "The new @command{guix import elm} command allows packagers to
generate a package definition or given the name of a package for Elm, a
functional programming language for the Web:
@example
guix import elm elm/bytes
@end example
Run @command{info \"(guix) Invoking guix import\"} for more info.
This comes with a new build system for Elm packages---run @command{info
\"(guix) Build Systems\"} for details.")
(de "Mit dem neuen Befehl @command{guix import elm} können Paketautoren
eine Paketdefinition anhand des Namens eines Pakets für Elm, einer funktionalen
Programmiersprache für das Web, erzeugen:
@example
guix import elm elm/bytes
@end example
Führen Sie @command{info \"(guix.de) Aufruf von guix import\"} aus, um mehr
Informationen zu bekommen.
Dazu kommt ein neues Erstellungssystem für Elm-Pakete. Führen Sie
@command{info \"(guix.de) Erstellungssysteme\"} aus, um mehr zu erfahren.")
(fr "La nouvelle commande @command{guix import elm} permet de générer
une définition de paquet reposant sur Elm, un langage de programmation
fonctionnelle pour le Web:
@example
guix import elm elm/bytes
@end example
Lancer @command{info \"(guix.fr) Invoquer guix import\"} pour plus
d'informations.
Cela vient avec un nouveau système de construction pour paquets Elm---lancer
@command{info \"(guix.fr) Systèmes de construction\"} pour plus de détails.")))
(entry (commit "b6b2de2a0d52530bc1ee128c61580bed662ee15c")
(title (en "Linux-libre kernel updated to 5.17")
(de "Linux-libre-Kernel wird auf 5.17 aktualisiert"))
(body
(en "The default version of the linux-libre kernel has been
updated to the 5.17 release series.")
(de "Der standardmäßig verwendete @code{linux-libre}-Kernel basiert
jetzt auf der 5.17-Versionsreihe.")))
(entry (commit "c42b7baf13c7633b4512e94da7445299c57b247d")
(title
(en "New @option{--export-manifest} option for @command{guix shell}")
(de "Neue Option @option{--export-manifest} für @command{guix shell}")
(fr "Nouvelle option @option{--export-manifest} de @command{guix shell}"))
(body
(en "If you use @command{guix shell}, you might wonder how to
``translate'' a command line into a manifest file that you can keep under
version control, share with others, and pass to @command{guix shell -m} and in
fact to most @command{guix} commands. This is what the new
@option{--export-manifest} option does.
For example, the command below prints a manifest for the given packages:
@lisp
guix shell --export-manifest \\
-D guile git emacs emacs-geiser emacs-geiser-guile
@end lisp
Run @code{info \"(guix) Invoking guix shell\"} for more information.")
(de "Wenn Sie @command{guix shell} benutzen, haben Sie sich vielleicht
einmal gefragt, wie Sie eine Befehlszeile in eine Manifest-Datei übersetzen
können, die Sie unter Versionskontrolle stellen können, mit anderen teilen
können und an @command{guix shell -m} oder tatsächlich die meisten anderen
@command{guix}-Befehle übergeben können. Die Antwort ist die neue
Befehlszeilenoption @option{--export-manifest}.
Zum Beispiel gibt der folgende Befehl ein Manifest mit den genannten Paketen
aus:
@lisp
guix shell --export-manifest \\
-D guile git emacs emacs-geiser emacs-geiser-guile
@end lisp
Führen Sie @command{info \"(guix.de) Aufruf von guix shell\"} aus, um mehr
zu erfahren.")
(fr "Si tu utilises @command{guix shell}, tu t'es peut-être déjà
demandé comment « traduire » une ligne de commande en un fichier manifeste que
tu puisse garder en gestion de version, partager et passer à @command{guix
shell -m} et autres commandes @command{guix}. C'est ce que la nouvelle option
@option{--export-manifest} fait.
Par exemple, la commande ci-dessous affiche un manifeste pour les paquets
donnés :
@lisp
guix shell --export-manifest \\
-D guile git emacs emacs-geiser emacs-geiser-guile
@end lisp
Lancer @code{info \"(guix.fr) Invoquer guix shell\"} pour plus
d'informations.")))
(entry (commit "094a2cfbe45c104d0da30ff9d975d052ca0c118c")
(title
(en "New @command{guix home container} command")
+2 -2
View File
@@ -23,7 +23,7 @@
(use-modules (gnu packages)
(guix packages)
(guix profiles)
((guix platform) #:select (targets))
((gnu ci) #:select (%cross-targets))
((gnu services xorg) #:select (%default-xorg-modules))
(guix utils)
(srfi srfi-1)
@@ -144,7 +144,7 @@ TARGET."
%packages-to-cross-build)))
;; XXX: Important bits like libsigsegv and libffi don't support
;; RISCV at the moment, so don't require RISCV support.
(delete "riscv64-linux-gnu" (targets)))))
(delete "riscv64-linux-gnu" %cross-targets))))
(define %cross-bootstrap-manifest
(manifest
@@ -1,13 +0,0 @@
# -*- mode: snippet -*-
# name: guix-commit-message-remove-package
# key: remove
# condition: git-commit-mode
# --
gnu: Remove ${1:`(with-temp-buffer
(magit-git-wash #'magit-diff-wash-diffs
"diff" "--staged")
(goto-char (point-min))
(when (re-search-forward "\\-(define-public \\(\\S-+\\)" nil 'noerror)
(match-string-no-properties 1)))`}.
* `(car (magit-staged-files))` ($1): Delete variable.
+9 -30
View File
@@ -18,8 +18,6 @@
(use-modules (gnu tests)
(gnu packages package-management)
(guix monads)
(guix store)
((gnu ci) #:select (channel-source->package))
((guix git-download) #:select (git-predicate))
((guix utils) #:select (current-source-directory))
@@ -43,21 +41,6 @@ determined."
(repository-close! repository))
#f))))
(define-syntax mparameterize
(syntax-rules ()
"This form implements dynamic scoping, similar to 'parameterize', but in a
monadic context."
((_ monad ((parameter value) rest ...) body ...)
(let ((old-value (parameter)))
(mbegin monad
;; XXX: Non-local exits are not correctly handled.
(return (parameter value))
(mlet monad ((result (mparameterize monad (rest ...) body ...)))
(parameter old-value)
(return result)))))
((_ monad () body ...)
(mbegin monad body ...))))
(define (tests-for-current-guix source commit)
"Return a list of tests for perform, using Guix built from SOURCE, a channel
instance."
@@ -65,19 +48,15 @@ instance."
;; of tests to run in the usual way:
;;
;; make check-system TESTS=installed-os
(let ((guix (channel-source->package source #:commit commit)))
(map (lambda (test)
(system-test
(inherit test)
(value (mparameterize %store-monad ((current-guix-package guix))
(system-test-value test)))))
(match (getenv "TESTS")
(#f
(all-system-tests))
((= string-tokenize (tests ...))
(filter (lambda (test)
(member (system-test-name test) tests))
(all-system-tests)))))))
(parameterize ((current-guix-package
(channel-source->package source #:commit commit)))
(match (getenv "TESTS")
(#f
(all-system-tests))
((= string-tokenize (tests ...))
(filter (lambda (test)
(member (system-test-name test) tests))
(all-system-tests))))))
(define (system-test->manifest-entry test)
"Return a manifest entry for TEST, a system test."
-264
View File
@@ -1,264 +0,0 @@
#!@GUILE@ \
--no-auto-compile -s
!#
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; This code defines development teams and team members.
;;; Code:
(use-modules (srfi srfi-1)
(srfi srfi-9)
(ice-9 format)
(ice-9 match)
(guix ui))
(define-record-type <team>
(make-team id name description members)
team?
(id team-id)
(name team-name)
(description team-description)
(members team-members set-team-members!))
(define-record-type <person>
(make-person name email)
person?
(name person-name)
(email person-email))
(define* (person name #:optional email)
(make-person name email))
(define* (team id #:key name description (members '()))
(make-team id
(or name (symbol->string id))
description
members))
(define %teams
(make-hash-table))
(define-syntax define-team
(lambda (x)
(syntax-case x ()
((_ id value)
#`(begin
(define-public id value)
(hash-set! %teams 'id id))))))
(define-syntax-rule (define-member person teams ...)
(let ((p person))
(for-each (lambda (team-id)
(let ((team
(hash-ref %teams team-id
(lambda ()
(error (format #false
"Unknown team ~a for ~a~%"
team-id p))))))
(set-team-members!
team (cons p (team-members team)))))
(quote (teams ...)))))
(define-team python
(team 'python
#:name "Python team"
#:description
"Python, Python packages, the \"pypi\" importer, and the python-build-system."))
(define-team haskell
(team 'haskell
#:name "Haskell team"
#:description
"GHC, Hugs, Haskell packages, the \"hackage\" and \"stackage\" importers, and
the haskell-build-system."))
(define-team r
(team 'r
#:name "R team"
#:description
"The R language, CRAN and Bioconductor repositories, the \"cran\" importer,
and the r-build-system."))
(define-team julia
(team 'julia
#:name "Julia team"
#:description
"The Julia language, Julia packages, and the julia-build-system."))
(define-team ocaml
(team 'ocaml
#:name "OCaml and Dune team"
#:description
"The OCaml language, the Dune build system, OCaml packages, the \"opam\"
importer, and the ocaml-build-system."))
(define-team java
(team 'java
#:name "Java and Maven team"
#:description
"The JDK and JRE, the Maven build system, Java packages, the ant-build-system,
and the maven-build-system."))
(define-team science
(team 'science
#:name "Science team"))
(define-team emacs
(team 'emacs
#:name "Emacs team"))
(define-team lisp
(team 'lisp
#:name "Lisp team"))
(define-team ruby
(team 'ruby
#:name "Ruby team"))
(define-team go
(team 'go
#:name "Go team"))
(define-team embedded-bootstrap
(team 'embedded-bootstrap
#:name "Embedded / Bootstrap"))
(define-team rust
(team 'rust
#:name "Rust"))
(define-team kernel
(team 'kernel
#:name "Linux-libre kernel team"))
(define-team core
(team 'core
#:name "Core / Tools / Internals"))
(define-team games
(team 'games
#:name "Games and Videos"))
(define-team translations
(team 'translations
#:name "Translations"))
(define-team installer
(team 'installer
#:name "Installer script and system installer"))
(define-team home
(team 'home
#:name "Team for \"guix home\""))
(define-team mentors
(team 'mentors
#:name "Mentors"
#:description
"A group of mentors who chaperone contributions by newcomers."))
(define-member (person "Ludovic Courtès"
"ludo@gnu.org")
core home embedded-bootstrap mentors)
(define-member (person "Andreas Enge"
"andreas@enge.fr")
science)
(define-member (person "Liliana Marie Prikler"
"liliana.prikler@gmail.com")
emacs games)
(define-member (person "Ricardo Wurmus"
"rekado@elephly.net")
r core mentors)
(define (find-team name)
(or (hash-ref %teams (string->symbol name))
(error (format #false
"no such team: ~a~%" name))))
(define (cc . teams)
"Return arguments for `git send-email' to notify the members of the given
TEAMS when a patch is received by Debbugs."
(format #true
"~{--add-header=\"X-Debbugs-Cc: ~a\"~^ ~}"
(map person-email
(delete-duplicates (append-map team-members teams) equal?))))
(define* (list-members team #:optional port (prefix ""))
"Print the members of the given TEAM."
(define port* (or port (current-output-port)))
(for-each
(lambda (member)
(format port*
"~a~a <~a>~%"
prefix
(person-name member)
(person-email member)))
(team-members team)))
(define (list-teams)
"Print all teams and their members."
(define port* (current-output-port))
(define width* (%text-width))
(hash-for-each
(lambda (key team)
(format port*
"\
id: ~a
name: ~a
description: ~a
members:
"
(team-id team)
(team-name team)
(or (and=> (team-description team)
(lambda (text)
(string->recutils
(fill-paragraph text width*
(string-length "description: ")))))
"<none>"))
(list-members team port* "+ ")
(newline))
%teams))
(define (main . args)
(match args
(("cc" . team-names)
(apply cc (map find-team team-names)))
(("list-teams" . args)
(list-teams))
(("list-members" . team-names)
(for-each
(lambda (team-name)
(list-members (find-team team-name)))
team-names))
(anything
(format (current-error-port)
"Usage: etc/teams.scm <command> [<args>]~%"))))
(apply main (cdr (command-line)))
-66
View File
@@ -7,8 +7,6 @@
;;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de>
;;; Copyright © 2022 Karl Hallsby <karl@hallsby.com>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -52,13 +50,10 @@
grub-theme-color-highlight
grub-theme-gfxmode
install-grub-efi-removable
install-grub-efi-netboot
grub-bootloader
grub-efi-bootloader
grub-efi-removable-bootloader
grub-efi32-bootloader
grub-efi-netboot-bootloader
grub-mkrescue-bootloader
grub-minimal-bootloader
@@ -613,54 +608,6 @@ fi~%"))))
"--bootloader-id=Guix"
"--efi-directory" target-esp)))))
(define install-grub-efi-removable
#~(lambda (bootloader efi-dir mount-point)
;; NOTE: mount-point is /mnt in guix system init /etc/config.scm /mnt/point
;; NOTE: efi-dir comes from target list of booloader configuration
;; There is nothing useful to do when called in the context of a disk
;; image generation.
(when efi-dir
;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the
;; system whose root is mounted at MOUNT-POINT.
(let ((grub-install (string-append bootloader "/sbin/grub-install"))
(install-dir (string-append mount-point "/boot"))
;; When installing Guix, it's common to mount EFI-DIR below
;; MOUNT-POINT rather than /boot/efi on the live image.
(target-esp (if (file-exists? (string-append mount-point efi-dir))
(string-append mount-point efi-dir)
efi-dir)))
;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or
;; root partition.
(setenv "GRUB_ENABLE_CRYPTODISK" "y")
(invoke/quiet grub-install "--boot-directory" install-dir
"--removable"
;; "--no-nvram"
"--bootloader-id=Guix"
"--efi-directory" target-esp)))))
(define install-grub-efi32
#~(lambda (bootloader efi-dir mount-point)
;; There is nothing useful to do when called in the context of a disk
;; image generation.
(when efi-dir
;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the
;; system whose root is mounted at MOUNT-POINT.
(let ((grub-install (string-append bootloader "/sbin/grub-install"))
(install-dir (string-append mount-point "/boot"))
;; When installing Guix, it's common to mount EFI-DIR below
;; MOUNT-POINT rather than /boot/efi on the live image.
(target-esp (if (file-exists? (string-append mount-point efi-dir))
(string-append mount-point efi-dir)
efi-dir)))
;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or
;; root partition.
(setenv "GRUB_ENABLE_CRYPTODISK" "y")
(invoke/quiet grub-install "--boot-directory" install-dir
"--bootloader-id=Guix"
(cond ((target-x86?) "--target=i386-efi")
((target-arm?) "--target=arm-efi"))
"--efi-directory" target-esp)))))
(define (install-grub-efi-netboot subdir)
"Define a grub-efi-netboot bootloader installer for installation in SUBDIR,
which is usually efi/Guix or efi/boot."
@@ -787,19 +734,6 @@ considered for security aspects."
(name 'grub-efi)
(package grub-efi)))
(define grub-efi-removable-bootloader
(bootloader
(inherit grub-efi-bootloader)
(name 'grub-efi-removable-bootloader)
(installer install-grub-efi-removable)))
(define grub-efi32-bootloader
(bootloader
(inherit grub-efi-bootloader)
(installer install-grub-efi32)
(name 'grub-efi32)
(package grub-efi32)))
(define grub-efi-netboot-bootloader
(bootloader
(inherit grub-efi-bootloader)
+13 -24
View File
@@ -1,8 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -56,12 +54,8 @@
;;; EFI bootloader.
;;;
(define* (install-efi grub grub-config esp #:key targets)
"Write a self-contained GRUB EFI loader to the mounted ESP using
GRUB-CONFIG.
If TARGETS is set, use its car as the GRUB image format and its cdr as
the output filename. Otherwise, use defaults for the host platform."
(define (install-efi grub grub-config esp)
"Write a self-contained GRUB EFI loader to the mounted ESP using GRUB-CONFIG."
(let* ((system %host-type)
;; Hard code the output location to a well-known path recognized by
;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour":
@@ -69,15 +63,14 @@ the output filename. Otherwise, use defaults for the host platform."
(grub-mkstandalone (string-append grub "/bin/grub-mkstandalone"))
(efi-directory (string-append esp "/EFI/BOOT"))
;; Map grub target names to boot file names.
(efi-targets (or targets
(cond ((string-prefix? "x86_64" system)
'("x86_64-efi" . "BOOTX64.EFI"))
((string-prefix? "i686" system)
'("i386-efi" . "BOOTIA32.EFI"))
((string-prefix? "armhf" system)
'("arm-efi" . "BOOTARM.EFI"))
((string-prefix? "aarch64" system)
'("arm64-efi" . "BOOTAA64.EFI"))))))
(efi-targets (cond ((string-prefix? "x86_64" system)
'("x86_64-efi" . "BOOTX64.EFI"))
((string-prefix? "i686" system)
'("i386-efi" . "BOOTIA32.EFI"))
((string-prefix? "armhf" system)
'("arm-efi" . "BOOTARM.EFI"))
((string-prefix? "aarch64" system)
'("arm64-efi" . "BOOTAA64.EFI")))))
;; grub-mkstandalone requires a TMPDIR to prepare the firmware image.
(setenv "TMPDIR" esp)
@@ -88,12 +81,9 @@ the output filename. Otherwise, use defaults for the host platform."
;; Graft the configuration file onto the image.
(string-append "boot/grub/grub.cfg=" grub-config))))
(define* (install-efi-loader grub-efi esp #:key targets)
(define (install-efi-loader grub-efi esp)
"Install in ESP directory the given GRUB-EFI bootloader. Configure it to
load the Grub bootloader located in the 'Guix_image' root partition.
If TARGETS is set, use its car as the GRUB image format and its cdr as
the output filename. Otherwise, use defaults for the host platform."
load the Grub bootloader located in the 'Guix_image' root partition."
(let ((grub-config "grub.cfg"))
(call-with-output-file grub-config
(lambda (port)
@@ -107,6 +97,5 @@ the output filename. Otherwise, use defaults for the host platform."
insmod part_gpt~@
search --set=root --label Guix_image~@
configfile /boot/grub/grub.cfg~%")))
(install-efi grub-efi grub-config esp #:targets targets)
(install-efi grub-efi grub-config esp)
(delete-file grub-config)))
-213
View File
@@ -1,213 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;;
;;; This module contains procedures to interact with D-Bus via the 'dbus-send'
;;; command line utility. Before using any public procedure
;;;
;;; Code:
(define-module (gnu build dbus-service)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:autoload (d-bus protocol connections) (d-bus-conn?
d-bus-conn-flush
d-bus-connect
d-bus-disconnect
d-bus-session-bus-address
d-bus-system-bus-address)
#:autoload (d-bus protocol messages) (MESSAGE_TYPE_METHOD_CALL
d-bus-headers-ref
d-bus-message-body
d-bus-message-headers
d-bus-read-message
d-bus-write-message
header-PATH
header-DESTINATION
header-INTERFACE
header-MEMBER
header-SIGNATURE
make-d-bus-message)
#:export (%dbus-query-timeout
initialize-dbus-connection!
%current-dbus-connection
send-dbus
call-dbus-method
dbus-available-services
dbus-service-available?
with-retries))
(define %dbus-query-timeout 2) ;in seconds
;;; Use Fibers' sleep to enable cooperative scheduling in Shepherd >= 0.9.0,
;;; which is required at least for the Jami service.
(define sleep*
(lambda () ;delay execution
(if (resolve-module '(fibers) #f)
(module-ref (resolve-interface '(fibers)) 'sleep)
(begin
(format #f "fibers not available -- blocking 'sleep' in use")
sleep))))
;;;
;;; Utilities.
;;;
(define-syntax-rule (with-retries n delay body ...)
"Retry the code in BODY up to N times until it doesn't raise an exception nor
return #f, else raise an error. A delay of DELAY seconds is inserted before
each retry."
(let loop ((attempts 0))
(catch #t
(lambda ()
(let ((result (begin body ...)))
(if (not result)
(error "failed attempt" attempts)
result)))
(lambda args
(if (< attempts n)
(begin
((sleep*) delay) ;else wait and retry
(loop (+ 1 attempts)))
(error "maximum number of retry attempts reached"
body ... args))))))
;;;
;;; Low level wrappers above AC/D-Bus.
;;;
;; The active D-Bus connection (a parameter) used by the other procedures.
(define %current-dbus-connection (make-parameter #f))
(define* (initialize-dbus-connection!
#:key (address (or (d-bus-session-bus-address)
(d-bus-system-bus-address))))
"Initialize the D-Bus connection. ADDRESS should be the address of the D-Bus
session, e.g. \"unix:path=/var/run/dbus/system_bus_socket\", the default value
if ADDRESS is not provided and DBUS_SESSION_BUS_ADDRESS is not set. Return
the initialized D-Bus connection."
;; Clear current correction if already active.
(when (d-bus-conn? (%current-dbus-connection))
(d-bus-disconnect (%current-dbus-connection)))
(let ((connection (d-bus-connect address)))
(%current-dbus-connection connection) ;update connection parameter
(call-dbus-method "Hello")) ;initial handshake
(%current-dbus-connection))
(define* (send-dbus message #:key
(connection (%current-dbus-connection))
timeout)
"Send a D-Bus MESSAGE to CONNECTION and return the body of its reply. Up to
READ-RETRIES replies are read until a matching reply is found, else an error
is raised. MESSAGE is to be constructed with `make-d-bus-message'. When the
body contains a single element, it is returned directly, else the body
elements are returned as a list. TIMEOUT is a timeout value in seconds."
(let ((serial (d-bus-write-message connection message))
(start-time (current-time time-monotonic))
(timeout* (or timeout %dbus-query-timeout)))
(d-bus-conn-flush connection)
(let retry ()
(when (> (time-second (time-difference (current-time time-monotonic)
start-time))
timeout*)
(error 'dbus "fail to get reply in timeout" timeout*))
(let* ((reply (d-bus-read-message connection))
(reply-headers (d-bus-message-headers reply))
(reply-serial (d-bus-headers-ref reply-headers 'REPLY_SERIAL))
(error-name (d-bus-headers-ref reply-headers 'ERROR_NAME))
(body (d-bus-message-body reply)))
;; Validate the reply matches the message.
(when error-name
(error 'dbus "method failed with error" error-name body))
;; Some replies do not include a serial header, such as the for the
;; org.freedesktop.DBus NameAcquired one.
(if (and reply-serial (= serial reply-serial))
(match body
((x x* ..1) ;contains 2 ore more elements
body)
((x)
x) ;single element; return it directly
(#f #f))
(retry))))))
(define (argument->signature-type argument)
"Infer the D-Bus signature type from ARGUMENT."
;; XXX: avoid ..1 when using vectors due to a bug (?) in (ice-9 match).
(match argument
((? boolean?) "b")
((? string?) "s")
(#((? string?) (? string?) ...) "as")
(#(((? string?) . (? string?))
((? string?) . (? string?)) ...) "a{ss}")
(_ (error 'dbus "no rule to infer type from argument" argument))))
(define* (call-dbus-method method
#:key
(path "/org/freedesktop/DBus")
(destination "org.freedesktop.DBus")
(interface "org.freedesktop.DBus")
(connection (%current-dbus-connection))
arguments
timeout)
"Call the D-Bus method specified by METHOD, PATH, DESTINATION and INTERFACE.
The currently active D-Bus CONNECTION is used unless explicitly provided.
Method arguments may be provided via ARGUMENTS sent as the message body.
TIMEOUT limit the maximum time to allow for the reply. Return the body of the
reply."
(let ((message (make-d-bus-message
MESSAGE_TYPE_METHOD_CALL 0 #f '()
`#(,(header-PATH path)
,(header-DESTINATION destination)
,(header-INTERFACE interface)
,(header-MEMBER method)
,@(if arguments
(list (header-SIGNATURE
(string-join
(map argument->signature-type arguments)
"")))
'()))
arguments)))
(send-dbus message #:connection connection #:timeout timeout)))
;;;
;;; Higher-level, D-Bus procedures.
;;;
(define (dbus-available-services)
"Return the list of available (acquired) D-Bus services."
(let ((names (vector->list (call-dbus-method "ListNames"))))
;; Remove entries such as ":1.7".
(remove (cut string-prefix? ":" <>) names)))
(define (dbus-service-available? service)
"Predicate to check for the D-Bus SERVICE availability."
(member service (dbus-available-services)))
;; Local Variables:
;; eval: (put 'with-retries 'scheme-indent-function 2)
;; End:
+45 -97
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
@@ -52,11 +52,8 @@
read-partition-uuid
read-luks-partition-uuid
cleanly-unmounted-ext2?
bind-mount
system*/tty
mount-flags->bit-mask
check-file-system
mount-file-system
@@ -70,33 +67,6 @@
;;;
;;; Code:
(define (system*/console program . args)
"Run PROGRAM with ARGS in a tty on top of /dev/console. The return value is
as for 'system*'."
(match (primitive-fork)
(0
(dynamic-wind
(const #t)
(lambda ()
(login-tty (open-fdes "/dev/console" O_RDWR))
(apply execlp program program args))
(lambda ()
(primitive-_exit 127))))
(pid
(cdr (waitpid pid)))))
(define (system*/tty program . args)
"Run PROGRAM with ARGS, creating a tty if its standard input isn't one.
The return value is as for 'system*'.
This is necessary for commands such as 'cryptsetup open' or 'fsck' that may
need to interact with the user but might be invoked from shepherd, where
standard input is /dev/null."
(apply (if (isatty? (current-input-port))
system*
system*/console)
program args))
(define (bind-mount source target)
"Bind-mount SOURCE at TARGET."
(mount source target "" MS_BIND))
@@ -195,23 +165,6 @@ NUL terminator, return the size of the bytevector."
if DEVICE does not contain an ext2 file system."
(read-superblock device 1024 264 ext2-superblock?))
(define (ext2-superblock-cleanly-unmounted? sblock)
"Return true if SBLOCK denotes a file system that was cleanly unmounted,
false otherwise."
(define EXT2_VALID_FS 1) ;cleanly unmounted
(define EXT2_ERROR_FS 2) ;errors detected
(define EXT3_FEATURE_INCOMPAT_RECOVER #x0004) ;journal needs recovery
(let ((state (bytevector-u16-ref sblock 58 %ext2-endianness)))
(cond ((= state EXT2_VALID_FS)
(let ((incompatible-features
(bytevector-u32-ref sblock 96 %ext2-endianness)))
(zero? (logand incompatible-features
EXT3_FEATURE_INCOMPAT_RECOVER))))
((= state EXT2_ERROR_FS) #f)
(else (error "invalid ext2 superblock state" state)))))
(define (ext2-superblock-uuid sblock)
"Return the UUID of ext2 superblock SBLOCK as a 16-byte bytevector."
(sub-bytevector sblock 104 16))
@@ -227,23 +180,18 @@ true, check the file system even if it's marked as clean. If REPAIR is false,
do not write to the file system to fix errors. If it's #t, fix all
errors. Otherwise, fix only those considered safe to repair automatically."
(match (status:exit-val
(apply system*/tty "e2fsck" "-v" "-C" "0"
`(,@(if force? '("-f") '())
,@(match repair
(#f '("-n"))
(#t '("-y"))
(_ '("-p")))
,device)))
(apply system* `("e2fsck" "-v" "-C" "0"
,@(if force? '("-f") '())
,@(match repair
(#f '("-n"))
(#t '("-y"))
(_ '("-p")))
,device)))
(0 'pass)
(1 'errors-corrected)
(2 'reboot-required)
(_ 'fatal-error)))
(define (cleanly-unmounted-ext2? device) ;convenience procedure
"Return true if DEVICE is an ext2 file system and if it was cleanly
unmounted."
(ext2-superblock-cleanly-unmounted? (read-ext2-superblock device)))
;;;
;;; Linux swap.
@@ -364,14 +312,14 @@ errors. Otherwise, fix only those considered safe to repair automatically."
(status
;; A number, or #f on abnormal termination (e.g., assertion failure).
(status:exit-val
(apply system*/tty "bcachefs" "fsck" "-v"
`(,@(if force? '("-f") '())
,@(match repair
(#f '("-n"))
(#t '("-y"))
(_ '("-p")))
;; Make each multi-device member a separate argument.
,@(string-split device #\:))))))
(apply system* `("bcachefs" "fsck" "-v"
,@(if force? '("-f") '())
,@(match repair
(#f '("-n"))
(#t '("-y"))
(_ '("-p")))
;; Make each multi-device member a separate argument.
,@(string-split device #\:))))))
(match (and=> status (cut logand <> (lognot ignored-bits)))
(0 'pass)
(1 'errors-corrected)
@@ -416,17 +364,17 @@ false, do not write to DEVICE. If it's #t, fix any errors found. Otherwise,
fix only those considered safe to repair automatically."
(if force?
(match (status:exit-val
(apply system*/tty "btrfs" "check" "--progress"
;; Btrfs's --force is not relevant to us here.
`(,@(match repair
;; Upstream considers ALL repairs dangerous
;; and will warn the user at run time.
(#t '("--repair"))
(_ '("--readonly" ; a no-op for clarity
;; A 466G file system with 180G used is
;; enough to kill btrfs with 6G of RAM.
"--mode" "lowmem")))
,device)))
(apply system* `("btrfs" "check" "--progress"
;; Btrfs's --force is not relevant to us here.
,@(match repair
;; Upstream considers ALL repairs dangerous
;; and will warn the user at run time.
(#t '("--repair"))
(_ '("--readonly" ; a no-op for clarity
;; A 466G file system with 180G used is
;; enough to kill btrfs with 6G of RAM.
"--mode" "lowmem")))
,device)))
(0 'pass)
(_ 'fatal-error))
'pass))
@@ -464,11 +412,11 @@ ignored: a full file system scan is always performed. If REPAIR is false, do
not write to the file system to fix errors. Otherwise, automatically fix them
using the least destructive approach."
(match (status:exit-val
(system*/tty "fsck.vfat" "-v"
(match repair
(#f "-n")
(_ "-a")) ;no 'safe/#t distinction
device))
(apply system* `("fsck.vfat" "-v"
,@(match repair
(#f '("-n"))
(_ '("-a"))) ; no 'safe/#t distinction
,device)))
(0 'pass)
(1 'errors-corrected)
(_ 'fatal-error)))
@@ -597,7 +545,7 @@ do not write to the file system to fix errors, and replay the transaction log
only if FORCE? is true. Otherwise, replay the transaction log before checking
and automatically fix found errors."
(match (status:exit-val
(apply system*/tty
(apply system*
`("jfs_fsck" "-v"
;; The LEVEL logic is convoluted. To quote fsck/xchkdsk.c
;; (-p, -a, and -r are aliases in every way):
@@ -673,10 +621,10 @@ REPAIR are true, automatically fix found errors."
"warning: forced check of F2FS ~a implies repairing any errors~%"
device))
(match (status:exit-val
(apply system*/tty "fsck.f2fs"
`(,@(if force? '("-f") '())
,@(if repair '("-p") '("--dry-run"))
,device)))
(apply system* `("fsck.f2fs"
,@(if force? '("-f") '())
,@(if repair '("-p") '("--dry-run"))
,device)))
;; 0 and -1 are the only two possibilities according to the man page.
(0 'pass)
(_ 'fatal-error)))
@@ -761,9 +709,9 @@ ignored: a full check is always performed. Repair is not possible: if REPAIR is
true and the volume has been repaired by an external tool, clear the volume
dirty flag to indicate that it's now safe to mount."
(match (status:exit-val
(system*/tty "ntfsfix"
(if repair "--clear-dirty" "--no-action")
device))
(apply system* `("ntfsfix"
,@(if repair '("--clear-dirty") '("--no-action"))
,device)))
(0 'pass)
(_ 'fatal-error)))
@@ -806,11 +754,11 @@ write to DEVICE. If it's #t, replay the log, check, and fix any errors found.
Otherwise, only replay the log, and check without attempting further repairs."
(define (xfs_repair)
(status:exit-val
(system*/tty "xfs_repair" "-Pv"
(match repair
(#t "-e")
(_ "-n")) ;will miss some errors
device)))
(apply system* `("xfs_repair" "-Pv"
,@(match repair
(#t '("-e"))
(_ '("-n"))) ; will miss some errors
,device))))
(if force?
;; xfs_repair fails with exit status 2 if the log is dirty, which is
;; likely in situations where you're running xfs_repair. Only the kernel
+12 -33
View File
@@ -5,8 +5,6 @@
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,7 +26,6 @@
#:use-module (guix build syscalls)
#:use-module (guix build utils)
#:use-module (guix store database)
#:use-module (guix utils)
#:use-module (gnu build bootloader)
#:use-module (gnu build install)
#:use-module (gnu build linux-boot)
@@ -43,7 +40,6 @@
convert-disk-image
genimage
initialize-efi-partition
initialize-efi32-partition
initialize-root-partition
make-iso9660-image))
@@ -52,13 +48,12 @@
"Take SEXP, a tuple as returned by 'partition->gexp', and turn it into a
<partition> record."
(match sexp
((size file-system file-system-options label uuid flags)
((size file-system file-system-options label uuid)
(partition (size size)
(file-system file-system)
(file-system-options file-system-options)
(label label)
(uuid uuid)
(flags flags)))))
(uuid uuid)))))
(define (size-in-kib size)
"Convert SIZE expressed in bytes, to kilobytes and return it as a string."
@@ -83,7 +78,6 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
(fs-options (partition-file-system-options partition))
(label (partition-label partition))
(uuid (partition-uuid partition))
(flags (partition-flags partition))
(journal-options "lazy_itable_init=1,lazy_journal_init=1"))
(apply invoke
`("fakeroot" "mke2fs" "-t" ,fs "-d" ,root
@@ -98,18 +92,16 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
(estimate-partition-size root)
size)))))))
(define* (make-vfat-image partition target root fs-bits)
(define* (make-vfat-image partition target root)
"Handle the creation of VFAT partition images. See 'make-partition-image'."
(let ((size (partition-size partition))
(label (partition-label partition))
(flags (partition-flags partition)))
(apply invoke "fakeroot" "mkdosfs" "-n" label "-C" target
"-F" (number->string fs-bits)
(size-in-kib
(if (eq? size 'guess)
(estimate-partition-size root)
size))
(if (member 'esp flags) (list "-S" "1024") '()))
(label (partition-label partition)))
(invoke "fakeroot" "mkdosfs" "-n" label "-C" target
"-F" "16" "-S" "1024"
(size-in-kib
(if (eq? size 'guess)
(estimate-partition-size root)
size)))
(for-each (lambda (file)
(unless (member file '("." ".."))
(invoke "mcopy" "-bsp" "-i" target
@@ -125,10 +117,8 @@ ROOT directory to populate the image."
(cond
((string-prefix? "ext" type)
(make-ext-image partition target root))
((or (string=? type "vfat") (string=? type "fat16"))
(make-vfat-image partition target root 16))
((string=? type "fat32")
(make-vfat-image partition target root 32))
((string=? type "vfat")
(make-vfat-image partition target root))
(else
(raise (condition
(&message
@@ -172,17 +162,6 @@ produced by #:references-graphs. Pass WAL-MODE? to call-with-database."
"Install in ROOT directory, an EFI loader using GRUB-EFI."
(install-efi-loader grub-efi root))
(define* (initialize-efi32-partition root
#:key
grub-efi32
#:allow-other-keys)
"Install in ROOT directory, an EFI 32bit loader using GRUB-EFI32."
(install-efi-loader grub-efi32 root
#:targets (cond ((target-x86?)
'("i386-efi" . "BOOTIA32.EFI"))
((target-arm?)
'("arm-efi" . "BOOTARM.EFI")))))
(define* (initialize-root-partition root
#:key
bootcfg
+322 -66
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,16 +24,16 @@
;;; Code:
(define-module (gnu build jami-service)
#:use-module (gnu build dbus-service)
#:use-module (ice-9 format)
#:use-module (ice-9 match)
#:use-module (ice-9 peg)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 regex)
#:use-module (rnrs io ports)
#:autoload (shepherd service) (fork+exec-command)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (jami-service-available?
account-fingerprint?
#:export (account-fingerprint?
account-details->recutil
get-accounts
get-usernames
@@ -51,12 +51,43 @@
set-all-moderators
set-moderator
username->all-moderators?
username->moderators))
username->moderators
dbus-available-services
dbus-service-available?
%send-dbus-binary
%send-dbus-bus
%send-dbus-user
%send-dbus-group
%send-dbus-debug
send-dbus
with-retries))
;;;
;;; Utilities.
;;;
(define-syntax-rule (with-retries n delay body ...)
"Retry the code in BODY up to N times until it doesn't raise an exception
nor return #f, else raise an error. A delay of DELAY seconds is inserted
before each retry."
(let loop ((attempts 0))
(catch #t
(lambda ()
(let ((result (begin body ...)))
(if (not result)
(error "failed attempt" attempts)
result)))
(lambda args
(if (< attempts n)
(begin
(sleep delay) ;else wait and retry
(loop (+ 1 attempts)))
(error "maximum number of retry attempts reached"
body ... args))))))
(define (alist->list alist)
"Flatten ALIST into a list."
(append-map (match-lambda
@@ -73,34 +104,212 @@ hexadecimal characters."
(and (string? val)
(regexp-exec account-fingerprint-rx val)))
;;;
;;; D-Bus reply parser.
;;;
(define (parse-dbus-reply reply)
"Return the parse tree of REPLY, a string returned by the 'dbus-send'
command."
;; Refer to 'man 1 dbus-send' for the grammar reference. Note that the
;; format of the replies doesn't match the format of the input, which is the
;; one documented, but it gives an idea. For an even better reference, see
;; the `print_iter' procedure of the 'dbus-print-message.c' file from the
;; 'dbus' package sources.
(define-peg-string-patterns
"contents <- header (item / container (item / container*)?)
item <-- WS type WS value NL
container <- array / dict / variant
array <-- array-start (item / container)* array-end
dict <-- array-start dict-entry* array-end
dict-entry <-- dict-entry-start item item dict-entry-end
variant <-- variant-start item
type <-- 'string' / 'int16' / 'uint16' / 'int32' / 'uint32' / 'int64' /
'uint64' / 'double' / 'byte' / 'boolean' / 'objpath'
value <-- (!NL .)* NL
header < (!NL .)* NL
variant-start < WS 'variant'
array-start < WS 'array [' NL
array-end < WS ']' NL
dict-entry-start < WS 'dict entry(' NL
dict-entry-end < WS ')' NL
DQ < '\"'
WS < ' '*
NL < '\n'*")
(peg:tree (match-pattern contents reply)))
(define (strip-quotes text)
"Strip the leading and trailing double quotes (\") characters from TEXT."
(let* ((text* (if (string-prefix? "\"" text)
(string-drop text 1)
text))
(text** (if (string-suffix? "\"" text*)
(string-drop-right text* 1)
text*)))
text**))
(define (deserialize-item item)
"Return the value described by the ITEM parse tree as a Guile object."
;; Strings are printed wrapped in double quotes (see the print_iter
;; procedure in dbus-print-message.c).
(match item
(('item ('type "string") ('value value))
(strip-quotes value))
(('item ('type "boolean") ('value value))
(if (string=? "true" value)
#t
#f))
(('item _ ('value value))
value)))
(define (serialize-boolean bool)
"Return the serialized format expected by dbus-send for BOOL."
(format #f "boolean:~:[false~;true~]" bool))
(define (dict->alist dict-parse-tree)
"Translate a dict parse tree to an alist."
(define (tuples->alist tuples)
(map (lambda (x) (apply cons x)) tuples))
(match dict-parse-tree
('dict
'())
(('dict ('dict-entry keys values) ...)
(let ((keys* (map deserialize-item keys))
(values* (map deserialize-item values)))
(tuples->alist (zip keys* values*))))))
(define (array->list array-parse-tree)
"Translate an array parse tree to a list."
(match array-parse-tree
('array
'())
(('array items ...)
(map deserialize-item items))))
;;;
;;; Low-level, D-Bus-related procedures.
;;;
;;; The following parameters are used in the jami-service-type service
;;; definition to conveniently customize the behavior of the send-dbus helper,
;;; even when called indirectly.
(define %send-dbus-binary (make-parameter "dbus-send"))
(define %send-dbus-bus (make-parameter #f))
(define %send-dbus-user (make-parameter #f))
(define %send-dbus-group (make-parameter #f))
(define %send-dbus-debug (make-parameter #f))
(define* (send-dbus #:key service path interface method
bus
dbus-send
user group
timeout
arguments)
"Return the response of DBUS-SEND, else raise an error. Unless explicitly
provided, DBUS-SEND takes the value of the %SEND-DBUS-BINARY parameter. BUS
can be used to specify the bus address, such as 'unix:path=/var/run/jami/bus'.
Alternatively, the %SEND-DBUS-BUS parameter can be used. ARGUMENTS can be
used to pass input values to a D-Bus method call. TIMEOUT is the amount of
time to wait for a reply in milliseconds before giving up with an error. USER
and GROUP allow choosing under which user/group the DBUS-SEND command is
executed. Alternatively, the %SEND-DBUS-USER and %SEND-DBUS-GROUP parameters
can be used instead."
(let* ((command `(,(if dbus-send
dbus-send
(%send-dbus-binary))
,@(if (or bus (%send-dbus-bus))
(list (string-append "--bus="
(or bus (%send-dbus-bus))))
'())
"--print-reply"
,@(if timeout
(list (format #f "--reply-timeout=~d" timeout))
'())
,(string-append "--dest=" service) ;e.g., cx.ring.Ring
,path ;e.g., /cx/ring/Ring/ConfigurationManager
,(string-append interface "." method)
,@(or arguments '())))
(temp-port (mkstemp! (string-copy "/tmp/dbus-send-output-XXXXXXX")))
(temp-file (port-filename temp-port)))
(dynamic-wind
(lambda ()
(let* ((uid (or (and=> (or user (%send-dbus-user))
(compose passwd:uid getpwnam)) -1))
(gid (or (and=> (or group (%send-dbus-group))
(compose group:gid getgrnam)) -1)))
(chown temp-port uid gid)))
(lambda ()
(let ((pid (fork+exec-command command
#:user (or user (%send-dbus-user))
#:group (or group (%send-dbus-group))
#:log-file temp-file)))
(match (waitpid pid)
((_ . status)
(let ((exit-status (status:exit-val status))
(output (call-with-port temp-port get-string-all)))
(if (= 0 exit-status)
output
(error "the send-dbus command exited with: "
command exit-status output)))))))
(lambda ()
(false-if-exception (delete-file temp-file))))))
(define (parse-account-ids reply)
"Return the Jami account IDs from REPLY, which is assumed to be the output
of the Jami D-Bus `getAccountList' method."
(array->list (parse-dbus-reply reply)))
(define (parse-account-details reply)
"Parse REPLY, which is assumed to be the output of the Jami D-Bus
`getAccountDetails' method, and return its content as an alist."
(dict->alist (parse-dbus-reply reply)))
(define (parse-contacts reply)
"Parse REPLY, which is assumed to be the output of the Jamid D-Bus
`getContacts' method, and return its content as an alist."
(match (parse-dbus-reply reply)
('array
'())
(('array dicts ...)
(map dict->alist dicts))))
;;;
;;; Higher-level, D-Bus-related procedures.
;;;
(define (validate-fingerprint fingerprint)
"Validate that fingerprint is 40 characters long."
(unless (account-fingerprint? fingerprint)
(error "Account fingerprint is not valid:" fingerprint)))
(define (jami-service-available?)
"Whether the Jami D-Bus service was acquired by the D-Bus daemon."
(unless (%current-dbus-connection)
(initialize-dbus-connection!))
(dbus-service-available? "cx.ring.Ring"))
(define (dbus-available-services)
"Return the list of available (acquired) D-Bus services."
(let ((reply (parse-dbus-reply
(send-dbus #:service "org.freedesktop.DBus"
#:path "/org/freedesktop/DBus"
#:interface "org.freedesktop.DBus"
#:method "ListNames"))))
;; Remove entries such as ":1.7".
(remove (cut string-prefix? ":" <>)
(array->list reply))))
;;;
;;; Bindings for the Jami D-Bus API.
;;;
(define (dbus-service-available? service)
"Predicate to check for the D-Bus SERVICE availability."
(member service (dbus-available-services)))
(define* (call-configuration-manager-method method #:optional arguments
#:key timeout)
"Query the Jami D-Bus ConfigurationManager interface with METHOD applied to
ARGUMENTS. TIMEOUT can optionally be provided as a value in seconds."
(unless (%current-dbus-connection)
(initialize-dbus-connection!))
(call-dbus-method method
#:path "/cx/ring/Ring/ConfigurationManager"
#:destination "cx.ring.Ring"
#:interface "cx.ring.Ring.ConfigurationManager"
#:arguments arguments
#:timeout timeout))
(define* (send-dbus/configuration-manager #:key method arguments timeout)
"Query the Jami D-Bus ConfigurationManager service."
(send-dbus #:service "cx.ring.Ring"
#:path "/cx/ring/Ring/ConfigurationManager"
#:interface "cx.ring.Ring.ConfigurationManager"
#:method method
#:arguments arguments
#:timeout timeout))
;;; The following methods are for internal use; they make use of the account
;;; ID, an implementation detail of Jami the user should not need to be
@@ -108,17 +317,22 @@ ARGUMENTS. TIMEOUT can optionally be provided as a value in seconds."
(define (get-account-ids)
"Return the available Jami account identifiers (IDs). Account IDs are an
implementation detail used to identify the accounts in Jami."
(vector->list (call-configuration-manager-method "getAccountList")))
(parse-account-ids
(send-dbus/configuration-manager #:method "getAccountList")))
(define (id->account-details id)
"Retrieve the account data associated with the given account ID."
(vector->list (call-configuration-manager-method "getAccountDetails"
(list id))))
(parse-account-details
(send-dbus/configuration-manager
#:method "getAccountDetails"
#:arguments (list (string-append "string:" id)))))
(define (id->volatile-account-details id)
"Retrieve the account data associated with the given account ID."
(vector->list (call-configuration-manager-method "getVolatileAccountDetails"
(list id))))
(parse-account-details
(send-dbus/configuration-manager
#:method "getVolatileAccountDetails"
#:arguments (list (string-append "string:" id)))))
(define (id->account id)
"Retrieve the complete account data associated with the given account ID."
@@ -148,8 +362,8 @@ implementation detail used to identify the accounts in Jami."
'()))))
(get-account-ids))))
(or (assoc-ref %username-to-id-cache username)
(let ((message (format #f "no account ID for ~:[username~;fingerprint~]"
(account-fingerprint? username))))
(let ((message (format #f "Could not retrieve a local account ID\
for ~:[username~;fingerprint~]" (account-fingerprint? username))))
(error message username))))
(define (account->username account)
@@ -186,21 +400,27 @@ registered username."
should *not* be encrypted with a password. Return the username associated
with the account."
(invalidate-username-to-id-cache!)
(let ((id (call-configuration-manager-method
"addAccount" (list `#(("Account.archivePath" . ,archive)
("Account.type" . "RING"))))))
(let ((reply (send-dbus/configuration-manager
#:method "addAccount"
#:arguments (list (string-append
"dict:string:string:Account.archivePath,"
archive
",Account.type,RING")))))
;; The account information takes some time to be populated.
(with-retries 20 1
(let ((username (id->username id)))
(if (and=> username (negate string-null?))
username
#f)))))
(let ((id (deserialize-item (parse-dbus-reply reply))))
(with-retries 20 1
(let ((username (id->username id)))
(if (string-null? username)
#f
username))))))
(define (remove-account username)
"Delete the Jami account associated with USERNAME, the account 40 characters
fingerprint or a registered username."
(let ((id (username->id username)))
(call-configuration-manager-method "removeAccount" (list id)))
(send-dbus/configuration-manager
#:method "removeAccount"
#:arguments (list (string-append "string:" id))))
(invalidate-username-to-id-cache!))
(define* (username->contacts username)
@@ -210,16 +430,15 @@ contacts. USERNAME can be either the account 40 characters public key
fingerprint or a registered username. The contacts returned are represented
using their 40 characters fingerprint."
(let* ((id (username->id username))
;; The contacts are returned as "aa{ss}", that is, an array of arrays
;; containing (string . string) pairs.
(contacts (map vector->list
(vector->list (call-configuration-manager-method
"getContacts" (list id)))))
(reply (send-dbus/configuration-manager
#:method "getContacts"
#:arguments (list (string-append "string:" id))))
(all-contacts (parse-contacts reply))
(banned? (lambda (contact)
(and=> (assoc-ref contact "banned")
(cut string=? "true" <>))))
(banned (filter banned? contacts))
(not-banned (filter (negate banned?) contacts))
(banned (filter banned? all-contacts))
(not-banned (filter (negate banned?) all-contacts))
(fingerprint (cut assoc-ref <> "id")))
(values (map fingerprint not-banned)
(map fingerprint banned))))
@@ -230,20 +449,27 @@ the account associated with USERNAME (either a fingerprint or a registered
username). When BAN? is true, also mark the contact as banned."
(validate-fingerprint contact)
(let ((id (username->id username)))
(call-configuration-manager-method "removeContact" (list id contact ban?))))
(send-dbus/configuration-manager
#:method "removeContact"
#:arguments (list (string-append "string:" id)
(string-append "string:" contact)
(serialize-boolean ban?)))))
(define (add-contact contact username)
"Add CONTACT, the 40 characters public key fingerprint of a contact, to the
account of USERNAME (either a fingerprint or a registered username)."
(validate-fingerprint contact)
(let ((id (username->id username)))
(call-configuration-manager-method "addContact" (list id contact))))
(send-dbus/configuration-manager
#:method "addContact"
#:arguments (list (string-append "string:" id)
(string-append "string:" contact)))))
(define* (set-account-details details username #:key timeout)
"Set DETAILS, an alist containing the key value pairs to set for the account
of USERNAME, a registered username or account fingerprint. The value of the
parameters not provided are unchanged. TIMEOUT is a value in milliseconds to
pass to the `call-configuration-manager-method' procedure."
pass to the `send-dbus/configuration-manager' procedure."
(let* ((id (username->id username))
(current-details (id->account-details id))
(updated-details (map (match-lambda
@@ -251,29 +477,52 @@ pass to the `call-configuration-manager-method' procedure."
(or (and=> (assoc-ref details key)
(cut cons key <>))
(cons key value))))
current-details)))
(call-configuration-manager-method
"setAccountDetails" (list id (list->vector updated-details))
#:timeout timeout)))
current-details))
;; dbus-send does not permit sending null strings (it throws a
;; "malformed dictionary" error). Luckily they seem to have the
;; semantic of "default account value" in Jami; so simply drop them.
(updated-details* (remove (match-lambda
((_ . value)
(string-null? value)))
updated-details)))
(send-dbus/configuration-manager
#:timeout timeout
#:method "setAccountDetails"
#:arguments
(list (string-append "string:" id)
(string-append "dict:string:string:"
(string-join (alist->list updated-details*)
","))))))
(define (set-all-moderators enabled? username)
"Set the 'AllModerators' property to enabled? for the account of USERNAME, a
registered username or account fingerprint."
(let ((id (username->id username)))
(call-configuration-manager-method "setAllModerators" (list id enabled?))))
(send-dbus/configuration-manager
#:method "setAllModerators"
#:arguments
(list (string-append "string:" id)
(serialize-boolean enabled?)))))
(define (username->all-moderators? username)
"Return the 'AllModerators' property for the account of USERNAME, a
registered username or account fingerprint."
(let ((id (username->id username)))
(call-configuration-manager-method "isAllModerators" (list id))))
(let* ((id (username->id username))
(reply (send-dbus/configuration-manager
#:method "isAllModerators"
#:arguments
(list (string-append "string:" id)))))
(deserialize-item (parse-dbus-reply reply))))
(define (username->moderators username)
"Return the moderators for the account of USERNAME, a registered username or
account fingerprint."
(let* ((id (username->id username)))
(vector->list (call-configuration-manager-method "getDefaultModerators"
(list id)))))
(let* ((id (username->id username))
(reply (send-dbus/configuration-manager
#:method "getDefaultModerators"
#:arguments
(list (string-append "string:" id)))))
(array->list (parse-dbus-reply reply))))
(define (set-moderator contact enabled? username)
"Set the moderator flag to ENABLED? for CONTACT, the 40 characters public
@@ -281,8 +530,11 @@ key fingerprint of a contact for the account of USERNAME, a registered
username or account fingerprint."
(validate-fingerprint contact)
(let* ((id (username->id username)))
(call-configuration-manager-method "setDefaultModerator"
(list id contact enabled?))))
(send-dbus/configuration-manager #:method "setDefaultModerator"
#:arguments
(list (string-append "string:" id)
(string-append "string:" contact)
(serialize-boolean enabled?)))))
(define (disable-account username)
"Disable the account known by USERNAME, a registered username or account
@@ -291,7 +543,7 @@ fingerprint."
;; Waiting for the reply on this command takes a very
;; long time that trips the default D-Bus timeout value
;; (25 s), for some reason.
#:timeout 60))
#:timeout 60000))
(define (enable-account username)
"Enable the account known by USERNAME, a registered username or account
@@ -329,3 +581,7 @@ requirements."
(fold alist-delete account-details first-items))))
(string-join (map pair->recutil-property sorted-account-details) "\n"))
;; Local Variables:
;; eval: (put 'with-retries 'scheme-indent-function 2)
;; End:
+7 -71
View File
@@ -301,28 +301,8 @@ delete it when leaving the dynamic extent of this call."
(lambda ()
(false-if-exception (delete-file-recursively tmp-dir))))))
(define (wait-child-process)
"Wait for one child process and return a pair, like 'waitpid', or return #f
if there are no child processes left."
(catch 'system-error
(lambda ()
(waitpid WAIT_ANY))
(lambda args
(if (= ECHILD (system-error-errno args))
#f
(apply throw args)))))
(define (status->exit-status status)
"Reify STATUS as an exit status."
(or (status:exit-val status)
;; See <http://www.tldp.org/LDP/abs/html/exitcodes.html#EXITCODESREF>.
(+ 128 (or (status:term-sig status)
(status:stop-sig status)))))
(define* (call-with-container mounts thunk #:key (namespaces %namespaces)
(host-uids 1) (guest-uid 0) (guest-gid 0)
(relayed-signals (list SIGINT SIGTERM))
(child-is-pid1? #t)
(process-spawned-hook (const #t)))
"Run THUNK in a new container process and return its exit status; call
PROCESS-SPAWNED-HOOK with the PID of the new process that has been spawned.
@@ -340,64 +320,20 @@ can map more than a single uid/gid.
GUEST-UID and GUEST-GID specify the first UID (respectively GID) that host
UIDs (respectively GIDs) map to in the namespace.
RELAYED-SIGNALS is the list of signals that are \"relayed\" to the container
process when caught by its parent.
When CHILD-IS-PID1? is true, and if NAMESPACES contains 'pid', then the child
process runs directly as PID 1. As such, it is responsible for (1) installing
signal handlers and (2) reaping terminated processes by calling 'waitpid'.
When CHILD-IS-PID1? is false, a new intermediate process is created instead
that takes this responsibility.
Note that if THUNK needs to load any additional Guile modules, the relevant
module files must be present in one of the mappings in MOUNTS and the Guile
load path must be adjusted as needed."
(define thunk*
(if (and (memq 'pid namespaces)
(not child-is-pid1?))
(lambda ()
;; Behave like an init process: create a sub-process that calls
;; THUNK, and wait for child processes. Furthermore, forward
;; RELAYED-SIGNALS to the child process.
(match (primitive-fork)
(0
(call-with-clean-exit thunk))
(pid
(install-signal-handlers pid)
(let loop ()
(match (wait-child-process)
((child . status)
(if (= child pid)
(primitive-exit (status->exit-status status))
(loop)))
(#f
(primitive-exit 128))))))) ;cannot happen
thunk))
(define (periodically-schedule-asyncs)
;; XXX: In Guile there's a time window where a signal-handling async could
;; be queued without being processed by the time we enter a blocking
;; syscall like waitpid(2) (info "(guile) Signals"). This terrible hack
;; ensures pending asyncs get a chance to run periodically.
(sigaction SIGALRM (lambda _ (alarm 1)))
(alarm 1))
(define (install-signal-handlers pid)
;; Install handlers that forward signals to PID.
(define (relay-signal signal)
(false-if-exception (kill pid signal)))
(periodically-schedule-asyncs)
(for-each (lambda (signal)
(sigaction signal relay-signal))
relayed-signals))
(call-with-temporary-directory
(lambda (root)
(let ((pid (run-container root mounts namespaces host-uids thunk*
(let ((pid (run-container root mounts namespaces host-uids thunk
#:guest-uid guest-uid
#:guest-gid guest-gid)))
(install-signal-handlers pid)
;; Catch SIGINT and kill the container process.
(sigaction SIGINT
(lambda (signum)
(false-if-exception
(kill pid SIGKILL))))
(process-spawned-hook pid)
(match (waitpid pid)
((_ . status) status))))))
+19 -26
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -196,38 +196,31 @@ FILE has not shown up after TIMEOUT seconds, raise an error."
(error "file didn't show up" file))))
(define* (wait-for-tcp-port port marionette
#:key
(timeout 20)
(address `(make-socket-address AF_INET
INADDR_LOOPBACK
,port)))
#:key (timeout 20))
"Wait for up to TIMEOUT seconds for PORT to accept connections in
MARIONETTE. ADDRESS must be an expression that returns a socket address,
typically a call to 'make-socket-address'. Raise an error on failure."
MARIONETTE. Raise an error on failure."
;; Note: The 'connect' loop has to run within the guest because, when we
;; forward ports to the host, connecting to the host never raises
;; ECONNREFUSED.
(match (marionette-eval
`(let* ((address ,address)
(sock (socket (sockaddr:fam address) SOCK_STREAM 0)))
(let loop ((i 0))
(catch 'system-error
(lambda ()
(connect sock address)
(close-port sock)
'success)
(lambda args
(if (< i ,timeout)
(begin
(sleep 1)
(loop (+ 1 i)))
(list 'failure address))))))
`(begin
(let ((sock (socket PF_INET SOCK_STREAM 0)))
(let loop ((i 0))
(catch 'system-error
(lambda ()
(connect sock AF_INET INADDR_LOOPBACK ,port)
(close-port sock)
'success)
(lambda args
(if (< i ,timeout)
(begin
(sleep 1)
(loop (+ 1 i)))
'failure))))))
marionette)
('success #t)
(('failure address)
(error "nobody's listening on port"
(list (inet-ntop (sockaddr:fam address) (sockaddr:addr address))
(sockaddr:port address))))))
('failure
(error "nobody's listening on port" port))))
(define* (wait-for-unix-socket file-name marionette
#:key (timeout 20))
+19 -71
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -47,52 +47,6 @@
;; to syslog.
#'(format (current-output-port) fmt args ...))))))
(define-syntax with-modules
(syntax-rules ()
"Dynamically load the given MODULEs at run time, making the chosen
bindings available within the lexical scope of BODY."
((_ ((module #:select (bindings ...)) rest ...) body ...)
(let* ((iface (resolve-interface 'module))
(bindings (module-ref iface 'bindings))
...)
(with-modules (rest ...) body ...)))
((_ () body ...)
(begin body ...))))
(define (wait-for-readable-fd port timeout)
"Wait until PORT has data available for reading or TIMEOUT has expired.
Return #t in the former case and #f in the latter case."
(match (resolve-module '(fibers) #f) ;using Fibers?
(#f
(log "blocking on socket...~%")
(match (select (list port) '() '() timeout)
(((_) () ()) #t)
((() () ()) #f)))
(fibers
;; We're running on the Shepherd 0.9+ with Fibers. Arrange to make a
;; non-blocking wait so that other fibers can be scheduled in while we
;; wait for PORT.
(with-modules (((fibers) #:select (spawn-fiber sleep))
((fibers channels)
#:select (make-channel put-message get-message)))
;; Make PORT non-blocking.
(let ((flags (fcntl port F_GETFL)))
(fcntl port F_SETFL (logior O_NONBLOCK flags)))
(let ((channel (make-channel)))
(spawn-fiber
(lambda ()
(sleep timeout) ;suspends the fiber
(put-message channel 'timeout)))
(spawn-fiber
(lambda ()
(lookahead-u8 port) ;suspends the fiber
(put-message channel 'readable)))
(log "suspending fiber on socket...~%")
(match (get-message channel)
('readable #t)
('timeout #f)))))))
(define* (secret-service-send-secrets port secret-root
#:key (retry 60)
(handshake-timeout 120))
@@ -120,10 +74,7 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
(log "sending secrets to ~a~%" port)
(let ((sock (socket AF_INET SOCK_STREAM 0))
(addr (make-socket-address AF_INET INADDR_LOOPBACK port))
(sleep (if (resolve-module '(fibers) #f)
(module-ref (resolve-interface '(fibers)) 'sleep)
sleep)))
(addr (make-socket-address AF_INET INADDR_LOOPBACK port)))
;; Connect to QEMU on the forwarded port. The 'connect' call succeeds as
;; soon as QEMU is ready, even if there's no server listening on the
;; forward port inside the guest.
@@ -142,22 +93,23 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
;; Wait for "hello" message from the server. This is the only way to know
;; that we're really connected to the server inside the guest.
(if (wait-for-readable-fd sock handshake-timeout)
(match (read sock)
(('secret-service-server ('version version ...))
(log "sending files from ~s...~%" secret-root)
(send-files sock)
(log "done sending files to port ~a~%" port)
(close-port sock)
secret-root)
(x
(log "invalid handshake ~s~%" x)
(close-port sock)
#f))
(begin ;timeout
(log "timeout while sending files to ~a~%" port)
(close-port sock)
#f))))
(match (select (list sock) '() '() handshake-timeout)
(((_) () ())
(match (read sock)
(('secret-service-server ('version version ...))
(log "sending files from ~s...~%" secret-root)
(send-files sock)
(log "done sending files to port ~a~%" port)
(close-port sock)
secret-root)
(x
(log "invalid handshake ~s~%" x)
(close-port sock)
#f)))
((() () ()) ;timeout
(log "timeout while sending files to ~a~%" port)
(close-port sock)
#f))))
(define (delete-file* file)
"Ensure FILE does not exist."
@@ -250,8 +202,4 @@ and #f otherwise."
(close-port port))
result))
;;; Local Variables:
;;; eval: (put 'with-modules 'scheme-indent-function 1)
;;; End:
;;; secret-service.scm ends here
+30 -62
View File
@@ -1,7 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,8 +30,7 @@
exec-command
%precious-signals)
#:autoload (shepherd system) (unblock-signals)
#:export (default-mounts
make-forkexec-constructor/container
#:export (make-forkexec-constructor/container
fork+exec-command/container))
;;; Commentary:
@@ -105,13 +103,8 @@
separate mount and PID name space. Return the \"outer\" PID. "
(match (container-excursion* pid
(lambda ()
;; XXX: Trick for Shepherd 0.9: prevent 'read-pid-file' from
;; using (@ (fibers) sleep), which would try to suspend the
;; current task, which doesn't work in this extra process.
(with-continuation-barrier
(lambda ()
(read-pid-file pid-file
#:max-delay max-delay)))))
(read-pid-file pid-file
#:max-delay max-delay)))
(#f
;; Send SIGTERM to the whole process group.
(catch-system-error (kill (- pid) SIGTERM))
@@ -121,28 +114,6 @@ separate mount and PID name space. Return the \"outer\" PID. "
;; PID is always 1, but that's not what Shepherd needs to know.
pid)))
(define* (exec-command* command #:key user group log-file pid-file
(supplementary-groups '())
(directory "/") (environment-variables (environ)))
"Like 'exec-command', but first restore signal handles modified by
shepherd (PID 1)."
;; First restore the default handlers.
(for-each (cut sigaction <> SIG_DFL) %precious-signals)
;; Unblock any signals that have been blocked by the parent process.
(unblock-signals %precious-signals)
(mkdir-p "/var/run")
(clean-up pid-file)
(exec-command command
#:user user
#:group group
#:supplementary-groups supplementary-groups
#:log-file log-file
#:directory directory
#:environment-variables environment-variables))
(define* (make-forkexec-constructor/container command
#:key
(namespaces
@@ -150,7 +121,6 @@ shepherd (PID 1)."
(mappings '())
(user #f)
(group #f)
(supplementary-groups '())
(log-file #f)
pid-file
(pid-file-timeout 5)
@@ -194,16 +164,24 @@ namespace, in addition to essential bind-mounts such /proc."
(let ((pid (run-container container-directory
mounts namespaces 1
(lambda ()
(exec-command* command
#:user user
#:group group
#:supplementary-groups
supplementary-groups
#:pid-file pid-file
#:log-file log-file
#:directory directory
#:environment-variables
environment-variables)))))
;; First restore the default handlers.
(for-each (cut sigaction <> SIG_DFL)
%precious-signals)
;; Unblock any signals that have been blocked
;; by the parent process.
(unblock-signals %precious-signals)
(mkdir-p "/var/run")
(clean-up pid-file)
(exec-command command
#:user user
#:group group
#:log-file log-file
#:directory directory
#:environment-variables
environment-variables)))))
(if pid-file
(if (or (memq 'mnt namespaces) (memq 'pid namespaces))
(read-pid-file/container pid pid-file
@@ -231,24 +209,14 @@ on Hurd systems for instance, fallback to direct forking."
((head . rest)
(loop rest (cons head result))))))
(let ((container-support? (file-exists? "/proc/self/ns")))
(if (and container-support?
(not (and pid (= pid (getpid)))))
(container-excursion* pid
(lambda ()
;; Note: In the Shepherd 0.9, 'fork+exec-command' expects to be
;; called from the shepherd process (because it creates a pipe to
;; capture stdout/stderr and spawns a logging fiber) so we cannot
;; use it here.
(match (primitive-fork)
(0 (dynamic-wind
(const #t)
(lambda ()
(apply exec-command* command (strip-pid args)))
(lambda ()
(primitive-_exit 127))))
(pid pid)))) ;XXX: assuming the same PID namespace
(apply fork+exec-command command (strip-pid args)))))
(let ((container-support?
(file-exists? "/proc/self/ns"))
(fork-proc (lambda ()
(apply fork+exec-command command
(strip-pid args)))))
(if container-support?
(container-excursion* pid fork-proc)
(fork-proc))))
;; Local Variables:
;; eval: (put 'container-excursion* 'scheme-indent-function 1)
+13 -2
View File
@@ -55,7 +55,6 @@
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages make-bootstrap)
#:use-module (gnu packages package-management)
#:use-module (guix platform)
#:use-module (gnu system)
#:use-module (gnu system image)
#:use-module (gnu system vm)
@@ -72,6 +71,7 @@
image->job
%core-packages
%cross-targets
channel-source->package
arguments->systems
@@ -169,6 +169,17 @@ SYSTEM."
(drop-right %core-packages 6)
%core-packages))
(define %cross-targets
'("mips64el-linux-gnu"
"arm-linux-gnueabihf"
"aarch64-linux-gnu"
"powerpc-linux-gnu"
"powerpc64le-linux-gnu"
"riscv64-linux-gnu"
"i586-pc-gnu" ;aka. GNU/Hurd
"i686-w64-mingw32"
"x86_64-w64-mingw32"))
(define (cross-jobs store system)
"Return a list of cross-compilation jobs for SYSTEM."
(define (from-32-to-64? target)
@@ -210,7 +221,7 @@ SYSTEM."
package target system))
(packages-to-cross-build target)))
(remove (either from-32-to-64? same? pointless?)
(targets))))
%cross-targets)))
(define* (guix-jobs store systems #:key source commit)
"Return a list of jobs for Guix itself."
+4 -41
View File
@@ -33,14 +33,12 @@
#:use-module (guix modules)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:use-module (ice-9 vlist)
#:export (home-service-type
home-profile-service-type
home-environment-variables-service-type
home-files-service-type
home-xdg-configuration-files-service-type
home-xdg-data-files-service-type
home-run-on-first-login-service-type
home-activation-service-type
home-run-on-change-service-type
@@ -48,10 +46,8 @@
home-files-directory
xdg-configuration-files-directory
xdg-data-files-directory
fold-home-service-types
lookup-home-service-types
home-provenance
%initialize-gettext)
@@ -289,10 +285,10 @@ directory containing FILES."
(description "Files that will be put in
@file{~~/.guix-home/files}, and further processed during activation.")))
(define xdg-configuration-files-directory ".config")
(define xdg-configuration-files-directory "config")
(define (xdg-configuration-files files)
"Add .config/ prefix to each file-path in FILES."
"Add config/ prefix to each file-path in FILES."
(map (match-lambda
((file-path . rest)
(cons (string-append xdg-configuration-files-directory "/" file-path)
@@ -300,7 +296,7 @@ directory containing FILES."
files))
(define home-xdg-configuration-files-service-type
(service-type (name 'home-xdg-configuration)
(service-type (name 'home-files)
(extensions
(list (service-extension home-files-service-type
xdg-configuration-files)))
@@ -308,30 +304,7 @@ directory containing FILES."
(extend append)
(default-value '())
(description "Files that will be put in
@file{~~/.guix-home/files/.config}, and further processed during activation.")))
(define xdg-data-files-directory ".local/share")
(define (xdg-data-files files)
"Add .local/share prefix to each file-path in FILES."
(map (match-lambda
((file-path . rest)
(cons (string-append xdg-data-files-directory "/" file-path)
rest)))
files))
(define home-xdg-data-files-service-type
(service-type (name 'home-xdg-data)
(extensions
(list (service-extension home-files-service-type
xdg-data-files)))
(compose concatenate)
(extend append)
(default-value '())
(description "Files that will be put in
@file{~~/.guix-home/files/.local/share}, and further processed during
activation.")))
@file{~~/.guix-home/files/config}, and further processed during activation.")))
(define %initialize-gettext
#~(begin
@@ -607,13 +580,3 @@ environment, and its configuration file, when available.")))
(define* (fold-home-service-types proc seed)
(fold-service-types proc seed (all-home-service-modules)))
(define lookup-home-service-types
(let ((table
(delay (fold-home-service-types (lambda (type result)
(vhash-consq (service-type-name type)
type result))
vlist-null))))
(lambda (name)
"Return the list of services with the given NAME (a symbol)."
(vhash-foldq* cons '() name (force table)))))
+6 -6
View File
@@ -91,26 +91,26 @@ queried for location information.")
"Nighttime color temperature (kelvins).")
(daytime-brightness
maybe-inexact-number
(maybe-inexact-number 'disabled)
"Daytime screen brightness, between 0.1 and 1.0.")
(nighttime-brightness
maybe-inexact-number
(maybe-inexact-number 'disabled)
"Nighttime screen brightness, between 0.1 and 1.0.")
(latitude
maybe-inexact-number
(maybe-inexact-number 'disabled)
"Latitude, when @code{location-provider} is @code{'manual}.")
(longitude
maybe-inexact-number
(maybe-inexact-number 'disabled)
"Longitude, when @code{location-provider} is @code{'manual}.")
(dawn-time
maybe-string
(maybe-string 'disabled)
"Custom time for the transition from night to day in the
morning---@code{\"HH:MM\"} format. When specified, solar elevation is not
used to determine the daytime/nighttime period.")
(dusk-time
maybe-string
(maybe-string 'disabled)
"Likewise, custom time for the transition from day to night in the
evening.")
+20 -20
View File
@@ -77,7 +77,7 @@ user's customizations. Extend home-shell-profile service only if you
really know what you do."))
(define (add-shell-profile-file config)
`((".profile"
`(("profile"
,(mixed-text-file
"shell-profile"
"\
@@ -211,18 +211,18 @@ source ~/.profile
(zsh-serialize-field config field)))))
(define (zsh-get-configuration-files config)
`((".zprofile" ,(zsh-file-by-field config 'zprofile)) ;; Always non-empty
,@(if (or (zsh-field-not-empty? config 'zshenv)
(zsh-field-not-empty? config 'environment-variables))
`((".zshenv" ,(zsh-file-by-field config 'zshenv))) '())
`(("zprofile" ,(zsh-file-by-field config 'zprofile)) ;; Always non-empty
,@(if (and (zsh-field-not-empty? config 'zshenv)
(zsh-field-not-empty? config 'environment-variables))
`(("zshenv" ,(zsh-file-by-field config 'zshenv))) '())
,@(if (zsh-field-not-empty? config 'zshrc)
`((".zshrc" ,(zsh-file-by-field config 'zshrc))) '())
`(("zshrc" ,(zsh-file-by-field config 'zshrc))) '())
,@(if (zsh-field-not-empty? config 'zlogin)
`((".zlogin" ,(zsh-file-by-field config 'zlogin))) '())
`(("zlogin" ,(zsh-file-by-field config 'zlogin))) '())
,@(if (zsh-field-not-empty? config 'zlogout)
`((".zlogout" ,(zsh-file-by-field config 'zlogout))) '())))
`(("zlogout" ,(zsh-file-by-field config 'zlogout))) '())))
(define (add-zsh-dot-configuration config)
(define (zsh-home-files config)
(define zshenv-auxiliary-file
(mixed-text-file
"zshenv-auxiliary"
@@ -230,14 +230,14 @@ source ~/.profile
"[[ -f $ZDOTDIR/.zshenv ]] && source $ZDOTDIR/.zshenv\n"))
(if (home-zsh-configuration-xdg-flavor? config)
`((".zshenv" ,zshenv-auxiliary-file))
`(("zshenv" ,zshenv-auxiliary-file))
(zsh-get-configuration-files config)))
(define (add-zsh-xdg-configuration config)
(define (zsh-xdg-configuration-files config)
(if (home-zsh-configuration-xdg-flavor? config)
(map
(lambda (lst)
(cons (string-append "zsh/" (car lst))
(cons (string-append "zsh/." (car lst))
(cdr lst)))
(zsh-get-configuration-files config))
'()))
@@ -298,10 +298,10 @@ source ~/.profile
(extensions
(list (service-extension
home-files-service-type
add-zsh-dot-configuration)
zsh-home-files)
(service-extension
home-xdg-configuration-files-service-type
add-zsh-xdg-configuration)
zsh-xdg-configuration-files)
(service-extension
home-profile-service-type
add-zsh-packages)))
@@ -430,7 +430,7 @@ alias grep='grep --color=auto'\n")
(field-obj (car (filter-fields field))))
(if (or extra-content
(not (null? ((configuration-field-getter field-obj) config))))
`(,(string-append "." (object->snake-case-string file-name))
`(,(object->snake-case-string file-name)
,(apply mixed-text-file
(object->snake-case-string file-name)
(append (or extra-content '())
@@ -439,7 +439,7 @@ alias grep='grep --color=auto'\n")
(filter
(compose not null?)
`((".bash_profile"
`(("bash_profile"
,(mixed-text-file
"bash_profile"
"\
@@ -555,9 +555,9 @@ with text blocks from other extensions and the base service."))
((key . #f)
"")
((key . #t)
#~(string-append "set -x " #$key "\n"))
#~(string-append "set " #$key "\n"))
((key . value)
#~(string-append "set -x " #$key " " #$value "\n")))
#~(string-append "set " #$key " " #$value "\n")))
val)))
(define-configuration home-fish-configuration
@@ -586,7 +586,7 @@ when typed in the shell, will automatically expand to the full text."
serialize-fish-abbreviations))
(define (fish-files-service config)
`(("fish/config.fish"
`(("config/fish/config.fish"
,(mixed-text-file
"fish-config.fish"
#~(string-append "\
@@ -650,7 +650,7 @@ end\n\n")
(service-type (name 'home-fish)
(extensions
(list (service-extension
home-xdg-configuration-files-service-type
home-files-service-type
fish-files-service)
(service-extension
home-profile-service-type
+18 -26
View File
@@ -51,7 +51,7 @@
home-shepherd-configuration make-home-shepherd-configuration
home-shepherd-configuration?
(shepherd home-shepherd-configuration-shepherd
(default shepherd-0.9)) ; package
(default shepherd)) ; package
(auto-start? home-shepherd-configuration-auto-start?
(default #t))
(services home-shepherd-configuration-services
@@ -78,16 +78,12 @@ as shepherd package."
'#$files))
(action 'root 'daemonize)
(format #t "Starting services...~%")
(let ((services-to-start
'#$(append-map shepherd-service-provision
(filter shepherd-service-auto-start?
services))))
(if (defined? 'start-in-the-background)
(start-in-the-background services-to-start)
(for-each start services-to-start))
(redirect-port (open-input-file "/dev/null")
(current-input-port)))))
(for-each
(lambda (service) (start service))
'#$(append-map shepherd-service-provision
(filter shepherd-service-auto-start?
services)))
(newline)))
(scheme-file "shepherd.conf" config)))
@@ -96,21 +92,17 @@ as shepherd package."
(services (home-shepherd-configuration-services config)))
(if (home-shepherd-configuration-auto-start? config)
(with-imported-modules '((guix build utils))
#~(unless (file-exists?
(string-append
(or (getenv "XDG_RUNTIME_DIR")
(format #f "/run/user/~a" (getuid)))
"/shepherd/socket"))
(let ((log-dir (or (getenv "XDG_LOG_HOME")
(format #f "~a/.local/var/log"
(getenv "HOME")))))
((@ (guix build utils) mkdir-p) log-dir)
(system*
#$(file-append shepherd "/bin/shepherd")
"--logfile"
(string-append log-dir "/shepherd.log")
"--config"
#$(home-shepherd-configuration-file services shepherd)))))
#~(let ((log-dir (or (getenv "XDG_LOG_HOME")
(format #f "~a/.local/var/log" (getenv "HOME")))))
((@ (guix build utils) mkdir-p) log-dir)
(system*
#$(file-append shepherd "/bin/shepherd")
"--logfile"
(string-append
log-dir
"/shepherd.log")
"--config"
#$(home-shepherd-configuration-file services shepherd))))
#~"")))
(define (reload-configuration-gexp config)
-254
View File
@@ -1,254 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu home services ssh)
#:use-module (guix gexp)
#:use-module (guix records)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (guix modules)
#:use-module (gnu home services)
#:use-module ((gnu home services utils)
#:select (object->camel-case-string))
#:autoload (gnu packages base) (glibc-utf8-locales)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
#:export (home-openssh-configuration
home-openssh-configuration-authorized-keys
home-openssh-configuration-known-hosts
home-openssh-configuration-hosts
openssh-host
openssh-host-host-name
openssh-host-identity-file
openssh-host-name
openssh-host-port
openssh-host-user
openssh-host-forward-x11?
openssh-host-forward-x11-trusted?
openssh-host-forward-agent?
openssh-host-compression?
openssh-host-proxy-command
openssh-host-host-key-algorithms
openssh-host-accepted-key-types
openssh-host-extra-content
home-openssh-service-type))
(define (serialize-field-name name)
(match name
('accepted-key-types "PubkeyAcceptedKeyTypes")
(_
(let ((name (let ((str (symbol->string name)))
(if (string-suffix? "?" str)
(string->symbol (string-drop-right str 1))
name))))
(object->camel-case-string name 'upper)))))
(define (serialize-string field value)
(string-append " " (serialize-field-name field)
" " value "\n"))
(define (address-family? obj)
(memv obj (list *unspecified* AF_INET AF_INET6)))
(define (serialize-address-family field family)
(if (unspecified? family)
""
(string-append " " (serialize-field-name field) " "
(cond ((= family AF_INET) "inet")
((= family AF_INET6) "inet6")
;; The 'else' branch is unreachable.
(else (raise (condition (&error)))))
"\n")))
(define (natural-number? obj)
(and (integer? obj) (exact? obj) (> obj 0)))
(define (serialize-natural-number field value)
(string-append " " (serialize-field-name field) " "
(number->string value) "\n"))
(define (serialize-boolean field value)
(string-append " " (serialize-field-name field) " "
(if value "yes" "no") "\n"))
(define-maybe string)
(define-maybe natural-number)
(define (serialize-raw-configuration-string field value)
(string-append value "\n"))
(define raw-configuration-string? string?)
(define (string-list? lst)
(and (pair? lst) (every string? lst)))
(define (serialize-string-list field lst)
(string-append " " (serialize-field-name field) " "
(string-join lst ",") "\n"))
(define-maybe string-list)
(define-configuration openssh-host
(name
(string)
"Name of this host declaration.")
(host-name
maybe-string
"Host name---e.g., @code{\"foo.example.org\"} or @code{\"192.168.1.2\"}.")
(address-family
address-family
"Address family to use when connecting to this host: one of
@code{AF_INET} (for IPv4 only), @code{AF_INET6} (for IPv6 only), or
@code{*unspecified*} (allowing any address family).")
(identity-file
maybe-string
"The identity file to use---e.g.,
@code{\"/home/charlie/.ssh/id_ed25519\"}.")
(port
maybe-natural-number
"TCP port number to connect to.")
(user
maybe-string
"User name on the remote host.")
(forward-x11?
(boolean #f)
"Whether to forward remote client connections to the local X11 graphical
display.")
(forward-x11-trusted?
(boolean #f)
"Whether remote X11 clients have full access to the original X11 graphical
display.")
(forward-agent?
(boolean #f)
"Whether the authentication agent (if any) is forwarded to the remote
machine.")
(compression?
(boolean #f)
"Whether to compress data in transit.")
(proxy-command
maybe-string
"The command to use to connect to the server. As an example, a command
to connect via an HTTP proxy at 192.0.2.0 would be: @code{\"nc -X
connect -x 192.0.2.0:8080 %h %p\"}.")
(host-key-algorithms
maybe-string-list
"The list of accepted host key algorithms---e.g.,
@code{'(\"ssh-ed25519\")}.")
(accepted-key-types
maybe-string-list
"The list of accepted user public key types.")
(extra-content
(raw-configuration-string "")
"Extra content appended as-is to this @code{Host} block in
@file{~/.ssh/config}."))
(define (serialize-openssh-host config)
(define (openssh-host-name-field? field)
(eq? (configuration-field-name field) 'name))
(string-append
"Host " (openssh-host-name config) "\n"
(string-concatenate
(map (lambda (field)
((configuration-field-serializer field)
(configuration-field-name field)
((configuration-field-getter field) config)))
(remove openssh-host-name-field?
openssh-host-fields)))))
(define-record-type* <home-openssh-configuration>
home-openssh-configuration make-home-openssh-configuration
home-openssh-configuration?
(authorized-keys home-openssh-configuration-authorized-keys ;list of file-like
(default '()))
(known-hosts home-openssh-configuration-known-hosts ;unspec | list of file-like
(default *unspecified*))
(hosts home-openssh-configuration-hosts ;list of <openssh-host>
(default '())))
(define (openssh-configuration->string config)
(string-join (map serialize-openssh-host
(home-openssh-configuration-hosts config))
"\n"))
(define* (file-join name files #:optional (delimiter " "))
"Return a file in the store called @var{name} that is the concatenation
of all the file-like objects listed in @var{files}, with @var{delimited}
inserted after each of them."
(computed-file name
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
;; Support non-ASCII file names.
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales
"/lib/locale"))
(setlocale LC_ALL "en_US.utf8")
(call-with-output-file #$output
(lambda (output)
(for-each (lambda (file)
(call-with-input-file file
(lambda (input)
(dump-port input output)))
(display #$delimiter output))
'#$files)))))))
(define (openssh-configuration-files config)
(let ((config (plain-file "ssh.conf"
(openssh-configuration->string config)))
(known-hosts (home-openssh-configuration-known-hosts config))
(authorized-keys (file-join
"authorized_keys"
(home-openssh-configuration-authorized-keys config)
"\n")))
`((".ssh/authorized_keys" ,authorized-keys)
,@(if (unspecified? known-hosts)
'()
`((".ssh/known_hosts"
,(file-join "known_hosts" known-hosts "\n"))))
(".ssh/config" ,config))))
(define openssh-activation
(with-imported-modules (source-module-closure
'((gnu build activation)))
#~(begin
(use-modules (gnu build activation))
;; Make sure ~/.ssh is #o700.
(let* ((home (getenv "HOME"))
(dot-ssh (string-append home "/.ssh")))
(mkdir-p/perms dot-ssh (getpw (getuid)) #o700)))))
(define home-openssh-service-type
(service-type
(name 'home-openssh)
(extensions
(list (service-extension home-files-service-type
openssh-configuration-files)
(service-extension home-activation-service-type
(const openssh-activation))))
(description "Configure the OpenSSH @acronym{SSH, secure shell} client
by providing a @file{~/.ssh/config} file, which is honored by the OpenSSH
client,@command{ssh}, and by other tools such as @command{guix deploy}.")
(default-value (home-openssh-configuration))))
+10 -26
View File
@@ -54,10 +54,6 @@
(or (getenv "XDG_CONFIG_HOME")
(string-append (getenv "HOME") "/.config")))
(define xdg-data-home
(or (getenv "XDG_DATA_HOME")
(string-append (getenv "HOME") "/.local/share")))
(define backup-directory
(string-append home-directory "/" (number->string (current-time))
"-guix-home-legacy-configs-backup"))
@@ -65,30 +61,19 @@
(define (preprocess-file file)
"If file is in XDG-CONFIGURATION-FILES-DIRECTORY use
subdirectory from XDG_CONFIG_HOME to generate a target path."
(cond
((string-prefix? #$xdg-configuration-files-directory file)
(string-append
(substring xdg-config-home
(1+ (string-length home-directory)))
(substring file
(string-length #$xdg-configuration-files-directory))))
((string-prefix? #$xdg-data-files-directory file)
(string-append
(substring xdg-data-home
(1+ (string-length home-directory)))
(substring file
(string-length #$xdg-data-files-directory))))
(else file)))
(if (string-prefix? #$xdg-configuration-files-directory file)
(string-append
(substring xdg-config-home
(1+ (string-length home-directory)))
(substring file
(string-length #$xdg-configuration-files-directory)))
(string-append "." file)))
(define (target-file file)
;; Return the target of FILE, a config file name sans leading dot
;; such as "config/fontconfig/fonts.conf" or "bashrc".
(string-append home-directory "/" (preprocess-file file)))
(define (no-follow-file-exists? file)
"Return #t if file exists, even if it's a dangling symlink."
(->bool (false-if-exception (lstat file))))
(define (symlink-to-store? file)
(catch 'system-error
(lambda ()
@@ -127,7 +112,7 @@ subdirectory from XDG_CONFIG_HOME to generate a target path."
(const #t)
(lambda (file stat _) ;leaf
(let ((file (target-file (strip file))))
(when (no-follow-file-exists? file)
(when (file-exists? file)
;; DO NOT remove the file if it is no longer a symlink to
;; the store, it will be backed up later during
;; create-symlinks phase.
@@ -157,7 +142,6 @@ subdirectory from XDG_CONFIG_HOME to generate a target path."
#t
(G_ "Skipping ~a (not an empty directory)... done\n")
directory))
((= ENOENT errno) #t)
((= ENOTDIR errno) #t)
(else
(apply throw args)))))))))
@@ -187,7 +171,7 @@ subdirectory from XDG_CONFIG_HOME to generate a target path."
(lambda (file stat result) ;leaf
(let ((source (source-file (strip file)))
(target (target-file (strip file))))
(when (no-follow-file-exists? target)
(when (file-exists? target)
(backup-file (strip file)))
(format #t (G_ "Symlinking ~a -> ~a...")
target source)
@@ -196,7 +180,7 @@ subdirectory from XDG_CONFIG_HOME to generate a target path."
(lambda (directory stat result) ;down
(unless (string=? directory config-file-directory)
(let ((target (target-file (strip directory))))
(when (and (no-follow-file-exists? target)
(when (and (file-exists? target)
(not (file-is-directory? target)))
(backup-file (strip directory)))
+2 -3
View File
@@ -421,8 +421,7 @@ that the application cannot open the specified MIME type.")
(define (add-xdg-desktop-entry-file entry)
(let ((file (first entry))
(config (second entry)))
;; TODO: Use xdg-data-files instead of home-files here
(list (format #f "applications/~a" file)
(list (format #f "local/share/applications/~a" file)
(apply mixed-text-file
(format #f "xdg-desktop-~a-entry" file)
config))))
@@ -469,7 +468,7 @@ that the application cannot open the specified MIME type.")
(service-type (name 'home-xdg-mime-applications)
(extensions
(list (service-extension
home-xdg-data-files-service-type
home-files-service-type
home-xdg-mime-applications-files)
(service-extension
home-xdg-configuration-files-service-type
+4 -28
View File
@@ -17,12 +17,8 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu image)
#:use-module (guix platform)
#:use-module (gnu platform)
#:use-module (guix records)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:export (partition
partition?
partition-device
@@ -74,38 +70,19 @@
(label partition-label (default #f))
(uuid partition-uuid (default #f))
(flags partition-flags (default '()))
(initializer partition-initializer (default #f))) ;gexp | #f
(initializer partition-initializer (default #f)))
;;;
;;; Image record.
;;;
(define-syntax-rule (define-set-sanitizer name field set)
"Define NAME as a procedure or macro that raises an error if passed a value
that is not in SET, mentioning FIELD in the error message."
(define-with-syntax-properties (name (value properties))
(unless (memq value 'set)
(raise
(make-compound-condition
(condition
(&error-location
(location (source-properties->location properties))))
(formatted-message (G_ "~s: invalid '~a' value") value 'field))))
value))
(define-set-sanitizer validate-image-format format
(disk-image compressed-qcow2 docker iso9660))
(define-set-sanitizer validate-partition-table-type partition-table-type
(mbr gpt))
(define-record-type* <image>
image make-image
image?
(name image-name ;symbol
(default #f))
(format image-format ;symbol
(sanitize validate-image-format))
(format image-format) ;symbol
(platform image-platform ;<platform>
(default #f))
(size image-size ;size in bytes as integer
@@ -113,8 +90,7 @@ that is not in SET, mentioning FIELD in the error message."
(operating-system image-operating-system ;<operating-system>
(default #f))
(partition-table-type image-partition-table-type ; 'mbr or 'gpt
(default 'mbr)
(sanitize validate-partition-table-type))
(default 'mbr))
(partitions image-partitions ;list of <partition>
(default '()))
(compression? image-compression? ;boolean
+18 -31
View File
@@ -40,9 +40,6 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
(define (pad-label label)
(string-pad-right label 25))
(define (root-account? name)
(string=? name "root"))
(let* ((label-name
(make-label -1 -1 (pad-label (G_ "Name"))))
(label-real-name
@@ -119,14 +116,10 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
GRID-ELEMENT-SUBGRID button-grid)
title)
(let ((error-empty-field-page
(let ((error-page
(lambda ()
(run-error-page (G_ "Empty inputs are not allowed.")
(G_ "Empty input"))))
(error-root-page
(lambda ()
(run-error-page (G_ "Root account is automatically created.")
(G_ "Root account")))))
(G_ "Empty input")))))
(receive (exit-reason argument)
(run-form form)
(dynamic-wind
@@ -139,28 +132,22 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
(real-name (entry-value entry-real-name))
(home-directory (entry-value entry-home-directory))
(password (entry-value entry-password)))
(cond
;; Empty field.
((or (string=? name "")
(string=? home-directory ""))
(error-empty-field-page)
(run-user-add-page))
;; Reject root account.
((root-account? name)
(error-root-page)
(run-user-add-page))
(else
(let ((password (confirm-password password)))
(if password
(user
(name name)
(real-name real-name)
(home-directory home-directory)
(password (make-secret password)))
(run-user-add-page #:name name
#:real-name real-name
#:home-directory
home-directory))))))))))
(if (or (string=? name "")
(string=? home-directory ""))
(begin
(error-page)
(run-user-add-page))
(let ((password (confirm-password password)))
(if password
(user
(name name)
(real-name real-name)
(home-directory home-directory)
(password (make-secret password)))
(run-user-add-page #:name name
#:real-name real-name
#:home-directory
home-directory)))))))))
(lambda ()
(destroy-form-and-pop form)))))))
+71 -65
View File
@@ -1,6 +1,6 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012-2021, 2021-2022 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022 Andreas Enge <andreas@enge.fr>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Andreas Enge <andreas@enge.fr>
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
@@ -49,7 +49,6 @@
# Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
# Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
# Copyright © 2022 Remco van 't Veer <remco@remworks.net>
# Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
#
# This file is part of GNU Guix.
#
@@ -85,11 +84,11 @@ GNU_SYSTEM_MODULES = \
%D%/home/services/fontutils.scm \
%D%/home/services/shells.scm \
%D%/home/services/shepherd.scm \
%D%/home/services/ssh.scm \
%D%/home/services/mcron.scm \
%D%/home/services/utils.scm \
%D%/home/services/xdg.scm \
%D%/image.scm \
%D%/platform.scm \
%D%/packages.scm \
%D%/packages/abduco.scm \
%D%/packages/abiword.scm \
@@ -120,7 +119,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/autotools.scm \
%D%/packages/avahi.scm \
%D%/packages/avr.scm \
%D%/packages/avr-xyz.scm \
%D%/packages/axoloti.scm \
%D%/packages/backup.scm \
%D%/packages/base.scm \
@@ -182,7 +180,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/cvassistant.scm \
%D%/packages/cybersecurity.scm \
%D%/packages/cyrus-sasl.scm \
%D%/packages/darwin.scm \
%D%/packages/databases.scm \
%D%/packages/datamash.scm \
%D%/packages/datastructures.scm \
@@ -192,7 +189,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/debian.scm \
%D%/packages/debug.scm \
%D%/packages/dejagnu.scm \
%D%/packages/dezyne.scm \
%D%/packages/dhall.scm \
%D%/packages/dico.scm \
%D%/packages/dictionaries.scm \
@@ -476,7 +472,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/phabricator.scm \
%D%/packages/php.scm \
%D%/packages/piet.scm \
%D%/packages/pikchr.scm \
%D%/packages/pkg-config.scm \
%D%/packages/plan9.scm \
%D%/packages/plotutils.scm \
@@ -614,6 +609,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/web-browsers.scm \
%D%/packages/webkit.scm \
%D%/packages/wget.scm \
%D%/packages/wicd.scm \
%D%/packages/wine.scm \
%D%/packages/wireservice.scm \
%D%/packages/wm.scm \
@@ -631,6 +627,9 @@ GNU_SYSTEM_MODULES = \
%D%/packages/zile.scm \
%D%/packages/zwave.scm \
\
%D%/platforms/arm.scm \
%D%/platforms/hurd.scm \
\
%D%/services.scm \
%D%/services/admin.scm \
%D%/services/audio.scm \
@@ -717,7 +716,6 @@ GNU_SYSTEM_MODULES = \
%D%/build/bootloader.scm \
%D%/build/chromium-extension.scm \
%D%/build/cross-toolchain.scm \
%D%/build/dbus-service.scm \
%D%/build/image.scm \
%D%/build/jami-service.scm \
%D%/build/file-systems.scm \
@@ -828,6 +826,8 @@ MODULES_NOT_COMPILED += \
patchdir = $(guilemoduledir)/%D%/packages/patches
dist_patch_DATA = \
%D%/packages/patches/4store-fix-buildsystem.patch \
%D%/packages/patches/4store-unset-preprocessor-directive.patch \
%D%/packages/patches/a2ps-CVE-2001-1593.patch \
%D%/packages/patches/a2ps-CVE-2014-0466.patch \
%D%/packages/patches/a2ps-CVE-2015-8107.patch \
@@ -851,6 +851,7 @@ dist_patch_DATA = \
%D%/packages/patches/akonadi-not-relocatable.patch \
%D%/packages/patches/akonadi-timestamps.patch \
%D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \
%D%/packages/patches/alpine-fix-privacy-policy-crash.patch \
%D%/packages/patches/anki-mpv-args.patch \
%D%/packages/patches/antiword-CVE-2014-8123.patch \
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
@@ -916,7 +917,6 @@ dist_patch_DATA = \
%D%/packages/patches/bloomberg-bde-cmake-module-path.patch \
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/breezy-fix-gio.patch \
%D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
%D%/packages/patches/cabal-install-base16-bytestring1.0.patch \
@@ -926,6 +926,7 @@ dist_patch_DATA = \
%D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-remove-test-sqlite.patch \
%D%/packages/patches/calibre-remove-test-unrar.patch \
%D%/packages/patches/casync-renameat2-declaration.patch \
%D%/packages/patches/catdoc-CVE-2017-11110.patch \
%D%/packages/patches/circos-remove-findbin.patch \
%D%/packages/patches/cdparanoia-fpic.patch \
@@ -950,7 +951,6 @@ dist_patch_DATA = \
%D%/packages/patches/clang-11.0-libc-search-path.patch \
%D%/packages/patches/clang-12.0-libc-search-path.patch \
%D%/packages/patches/clang-13.0-libc-search-path.patch \
%D%/packages/patches/clang-14.0-libc-search-path.patch \
%D%/packages/patches/clang-runtime-asan-build-fixes.patch \
%D%/packages/patches/clang-runtime-esan-build-fixes.patch \
%D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \
@@ -962,7 +962,6 @@ dist_patch_DATA = \
%D%/packages/patches/cling-use-shared-library.patch \
%D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/cmake-curl-certificates.patch \
%D%/packages/patches/cmh-support-fplll.patch \
%D%/packages/patches/coda-use-system-libs.patch \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
%D%/packages/patches/combinatorial-blas-awpm.patch \
@@ -977,7 +976,6 @@ dist_patch_DATA = \
%D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/clucene-contribs-lib.patch \
%D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/curl-easy-lock.patch \
%D%/packages/patches/curl-use-ssl-cert-env.patch \
%D%/packages/patches/cursynth-wave-rand.patch \
%D%/packages/patches/cvs-CVE-2017-12836.patch \
@@ -992,6 +990,8 @@ dist_patch_DATA = \
%D%/packages/patches/dbus-c++-gcc-compat.patch \
%D%/packages/patches/dbus-c++-threading-mutex.patch \
%D%/packages/patches/dbxfs-remove-sentry-sdk.patch \
%D%/packages/patches/dealii-fix-compiliation-with-boost-1.78.patch \
%D%/packages/patches/dealii-fix-sundials.patch \
%D%/packages/patches/debops-constants-for-external-program-names.patch \
%D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
%D%/packages/patches/dee-vapi.patch \
@@ -1005,6 +1005,7 @@ dist_patch_DATA = \
%D%/packages/patches/docbook-xsl-support-old-url.patch \
%D%/packages/patches/doc++-include-directives.patch \
%D%/packages/patches/doc++-segfault-fix.patch \
%D%/packages/patches/docker-fix-tests.patch \
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.patch \
@@ -1014,34 +1015,29 @@ dist_patch_DATA = \
%D%/packages/patches/ecl-16-ignore-stderr-write-error.patch \
%D%/packages/patches/ecl-16-libffi.patch \
%D%/packages/patches/efibootmgr-remove-extra-decl.patch \
%D%/packages/patches/efivar-211.patch \
%D%/packages/patches/eigen-remove-openmp-error-counting.patch \
%D%/packages/patches/eigen-stabilise-sparseqr-test.patch \
%D%/packages/patches/einstein-build.patch \
%D%/packages/patches/elfutils-tests-ptrace.patch \
%D%/packages/patches/elixir-path-length.patch \
%D%/packages/patches/elm-offline-package-registry.patch \
%D%/packages/patches/elm-reactor-static-files.patch \
%D%/packages/patches/elm-compiler-disable-reactor.patch \
%D%/packages/patches/elm-compiler-fix-map-key.patch \
%D%/packages/patches/elogind-revert-polkit-detection.patch \
%D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch \
%D%/packages/patches/emacs-exec-path.patch \
%D%/packages/patches/emacs-ess-fix-obsolete-function-alias.patch \
%D%/packages/patches/emacs-git-email-missing-parens.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
%D%/packages/patches/emacs-ignore-empty-xim-styles.patch \
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \
%D%/packages/patches/emacs-helpful-fix-docstring-test.patch \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
%D%/packages/patches/emacs-hyperbole-toggle-messaging.patch \
%D%/packages/patches/emacs-libgit-use-system-libgit2.patch \
%D%/packages/patches/emacs-lispy-fix-thread-last-test.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \
%D%/packages/patches/emacs-telega-path-placeholder.patch \
%D%/packages/patches/emacs-telega-test-env.patch \
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
%D%/packages/patches/emacs-yasnippet-fix-tests.patch \
%D%/packages/patches/enjarify-setup-py.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
%D%/packages/patches/eog-update-libportal-usage.patch \
%D%/packages/patches/epiphany-update-libportal-usage.patch \
%D%/packages/patches/erlang-man-path.patch \
%D%/packages/patches/esmtp-add-lesmtp.patch \
%D%/packages/patches/eudev-rules-directory.patch \
@@ -1069,13 +1065,13 @@ dist_patch_DATA = \
%D%/packages/patches/findutils-localstatedir.patch \
%D%/packages/patches/flann-cmake-3.11.patch \
%D%/packages/patches/flatpak-fix-path.patch \
%D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \
%D%/packages/patches/fontconfig-cache-ignore-mtime.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 \
%D%/packages/patches/fp16-system-libraries.patch \
%D%/packages/patches/fpc-reproducibility.patch \
%D%/packages/patches/fplll-std-fenv.patch \
%D%/packages/patches/freedink-engine-fix-sdl-hints.patch \
%D%/packages/patches/freeglut-gcc-compat.patch \
%D%/packages/patches/freeimage-unbundle.patch \
@@ -1083,16 +1079,17 @@ dist_patch_DATA = \
%D%/packages/patches/fxdiv-system-libraries.patch \
%D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \
%D%/packages/patches/ganeti-disable-version-symlinks.patch \
%D%/packages/patches/ganeti-haskell-compat.patch \
%D%/packages/patches/ganeti-haskell-pythondir.patch \
%D%/packages/patches/ganeti-pyyaml-compat.patch \
%D%/packages/patches/ganeti-shepherd-master-failover.patch \
%D%/packages/patches/ganeti-shepherd-support.patch \
%D%/packages/patches/gash-utils-ls-test.patch \
%D%/packages/patches/ganeti-sphinx-compat.patch \
%D%/packages/patches/gawk-shell.patch \
%D%/packages/patches/gcc-arm-bug-71399.patch \
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
%D%/packages/patches/gcc-asan-missing-include.patch \
%D%/packages/patches/gcc-boot-2.95.3.patch \
%D%/packages/patches/gcc-boot-2.95.3-arm.patch \
%D%/packages/patches/gcc-boot-4.6.4.patch \
%D%/packages/patches/gcc-cross-environment-variables.patch \
%D%/packages/patches/gcc-cross-gxx-include-dir.patch \
@@ -1128,10 +1125,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-8-strmov-store-file-names.patch \
%D%/packages/patches/gcc-9-asan-fix-limits-include.patch \
%D%/packages/patches/gcc-9-strmov-store-file-names.patch \
%D%/packages/patches/gcc-12-strmov-store-file-names.patch \
%D%/packages/patches/gcc-10-cross-environment-variables.patch \
%D%/packages/patches/gcc-12-cross-environment-variables.patch \
%D%/packages/patches/gcolor3-update-libportal-usage.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-brect-bounds.patch \
%D%/packages/patches/gd-Revert-fix-303-gdlib.pc.patch \
@@ -1164,6 +1158,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-allow-kernel-2.6.32.patch \
%D%/packages/patches/glibc-boot-2.16.0.patch \
%D%/packages/patches/glibc-boot-2.2.5.patch \
%D%/packages/patches/glibc-bootstrap-arm-2.2.5.patch \
%D%/packages/patches/glibc-bootstrap-system-2.2.5.patch \
%D%/packages/patches/glibc-bootstrap-system-2.16.0.patch \
%D%/packages/patches/glibc-bootstrap-system.patch \
@@ -1213,7 +1208,6 @@ dist_patch_DATA = \
%D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
%D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
%D%/packages/patches/go-skip-gc-test.patch \
%D%/packages/patches/gourmet-sqlalchemy-compat.patch \
%D%/packages/patches/gpaste-fix-paths.patch \
%D%/packages/patches/gpm-glibc-2.26.patch \
%D%/packages/patches/gpodder-disable-updater.patch \
@@ -1236,7 +1230,6 @@ dist_patch_DATA = \
%D%/packages/patches/guile-3.0-relocatable.patch \
%D%/packages/patches/guile-linux-syscalls.patch \
%D%/packages/patches/guile-3.0-linux-syscalls.patch \
%D%/packages/patches/guile-ac-d-bus-fix-tests.patch \
%D%/packages/patches/guile-cross-compilation.patch \
%D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
%D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
@@ -1253,6 +1246,7 @@ dist_patch_DATA = \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
%D%/packages/patches/gtk-doc-respect-xml-catalog.patch \
%D%/packages/patches/gtk-introspection-test.patch \
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
@@ -1278,7 +1272,6 @@ dist_patch_DATA = \
%D%/packages/patches/hueplusplus-mbedtls.patch \
%D%/packages/patches/hurd-cross.patch \
%D%/packages/patches/hurd-xattr.patch \
%D%/packages/patches/hwloc-1-test-btrfs.patch \
%D%/packages/patches/i7z-gcc-10.patch \
%D%/packages/patches/icecat-makeicecat.patch \
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
@@ -1288,7 +1281,9 @@ dist_patch_DATA = \
%D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch\
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
%D%/packages/patches/idris-test-ffi008.patch \
%D%/packages/patches/idris-disable-test.patch \
%D%/packages/patches/idris-build-with-haskeline-0.8.patch \
%D%/packages/patches/idris-build-with-megaparsec-9.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
%D%/packages/patches/imagemagick-CVE-2020-27829.patch \
%D%/packages/patches/imagemagick-ReadDCMImage-fix.patch \
@@ -1300,9 +1295,8 @@ dist_patch_DATA = \
%D%/packages/patches/iputils-libcap-compat.patch \
%D%/packages/patches/ipxe-reproducible-geniso.patch \
%D%/packages/patches/irrlicht-use-system-libs.patch \
%D%/packages/patches/irrlicht-link-against-needed-libs.patch \
%D%/packages/patches/isc-dhcp-gcc-compat.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/itk-snap-alt-glibc-compat.patch \
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jsoncpp-pkg-config-version.patch \
@@ -1320,7 +1314,6 @@ dist_patch_DATA = \
%D%/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch \
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
%D%/packages/patches/java-commons-collections-fix-java8.patch \
%D%/packages/patches/java-commons-lang-fix-dependency.patch \
%D%/packages/patches/java-jeromq-fix-tests.patch \
%D%/packages/patches/java-openjfx-build-jdk_version.patch \
%D%/packages/patches/java-powermock-fix-java-files.patch \
@@ -1338,7 +1331,6 @@ dist_patch_DATA = \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/libffi-3.3-powerpc-fixes.patch \
%D%/packages/patches/libffi-float128-powerpc64le.patch \
%D%/packages/patches/libobjc2-unbundle-robin-map.patch \
%D%/packages/patches/librime-fix-build-with-gcc10.patch \
%D%/packages/patches/libvirt-add-install-prefix.patch \
%D%/packages/patches/libziparchive-add-includes.patch \
@@ -1351,7 +1343,6 @@ dist_patch_DATA = \
%D%/packages/patches/kinit-kdeinit-extra_libs.patch \
%D%/packages/patches/kinit-kdeinit-libpath.patch \
%D%/packages/patches/kio-search-smbd-on-PATH.patch \
%D%/packages/patches/kismet-unbundle-boost.patch \
%D%/packages/patches/kmail-Fix-missing-link-libraries.patch \
%D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/kmscon-runtime-keymap-switch.patch \
@@ -1407,6 +1398,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmad-length-check.patch \
%D%/packages/patches/libmad-md_size.patch \
%D%/packages/patches/libmad-mips-newgcc.patch \
%D%/packages/patches/libmicrohttpd-0.9.73-test-ssl3.patch \
%D%/packages/patches/libmp4v2-c++11.patch \
%D%/packages/patches/libmpeg2-arm-private-symbols.patch \
%D%/packages/patches/libmpeg2-global-symbol-test.patch \
@@ -1434,7 +1426,6 @@ dist_patch_DATA = \
%D%/packages/patches/libxml2-terminating-newline.patch \
%D%/packages/patches/libxml2-xpath-recursion-limit.patch \
%D%/packages/patches/libxml2-xpath0-Add-option-xpath0.patch \
%D%/packages/patches/libxmlb-install-xb-tool-into-bindir.patch \
%D%/packages/patches/libxslt-generated-ids.patch \
%D%/packages/patches/libxt-guix-search-paths.patch \
%D%/packages/patches/lierolibre-check-unaligned-access.patch \
@@ -1446,6 +1437,7 @@ dist_patch_DATA = \
%D%/packages/patches/linphone-desktop-without-sdk.patch \
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/linux-pam-unix_chkpwd.patch \
%D%/packages/patches/linuxdcpp-openssl-1.1.patch \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
@@ -1455,8 +1447,9 @@ dist_patch_DATA = \
%D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch \
%D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch \
%D%/packages/patches/llvm-9-fix-scev-miscompilation.patch \
%D%/packages/patches/llvm-roc-3.0.0-add_libraries.patch \
%D%/packages/patches/llvm-roc-4.0.0-remove-isystem-usr-include.patch \
%D%/packages/patches/llvm-roc-5.0.0-linkdl.patch \
%D%/packages/patches/llvm-roc-4.2.0-add_Object.patch \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
%D%/packages/patches/lrcalc-includes.patch \
%D%/packages/patches/lsh-fix-x11-forwarding.patch \
@@ -1478,12 +1471,9 @@ dist_patch_DATA = \
%D%/packages/patches/mars-sfml-2.3.patch \
%D%/packages/patches/mathjax-disable-webpack.patch \
%D%/packages/patches/mathjax-no-a11y.patch \
%D%/packages/patches/mathjax-3.1.2-no-a11y.patch \
%D%/packages/patches/maxima-defsystem-mkdir.patch \
%D%/packages/patches/maven-generate-component-xml.patch \
%D%/packages/patches/maven-generate-javax-inject-named.patch \
%D%/packages/patches/mcrl2-fix-1687.patch \
%D%/packages/patches/mcrl2-fix-counterexample.patch \
%D%/packages/patches/mcrypt-CVE-2012-4409.patch \
%D%/packages/patches/mcrypt-CVE-2012-4426.patch \
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
@@ -1495,7 +1485,7 @@ dist_patch_DATA = \
%D%/packages/patches/mesa-skip-tests.patch \
%D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch \
%D%/packages/patches/mhash-keygen-test-segfault.patch \
%D%/packages/patches/mia-fix-boost-headers.patch \
%D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch \
%D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
%D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch \
%D%/packages/patches/mingw-w64-reproducible-gendef.patch \
@@ -1511,6 +1501,13 @@ dist_patch_DATA = \
%D%/packages/patches/monero-use-system-miniupnpc.patch \
%D%/packages/patches/mono-mdoc-timestamping.patch \
%D%/packages/patches/mosaicatcher-unbundle-htslib.patch \
%D%/packages/patches/mozjs17-aarch64-support.patch \
%D%/packages/patches/mozjs24-aarch64-support.patch \
%D%/packages/patches/mozjs38-pkg-config-version.patch \
%D%/packages/patches/mozjs38-shell-version.patch \
%D%/packages/patches/mozjs38-tracelogger.patch \
%D%/packages/patches/mozjs38-version-detection.patch \
%D%/packages/patches/mozjs60-riscv64-support.patch \
%D%/packages/patches/mrrescue-support-love-11.patch \
%D%/packages/patches/mtools-mformat-uninitialized.patch \
%D%/packages/patches/mumps-build-parallelism.patch \
@@ -1524,7 +1521,6 @@ dist_patch_DATA = \
%D%/packages/patches/m4-gnulib-libio.patch \
%D%/packages/patches/nautilus-add-libportal-gtk3.patch \
%D%/packages/patches/ncompress-fix-softlinks.patch \
%D%/packages/patches/ncftp-reproducible.patch \
%D%/packages/patches/netcdf-date-time.patch \
%D%/packages/patches/netpbm-CVE-2017-2586.patch \
%D%/packages/patches/netpbm-CVE-2017-2587.patch \
@@ -1565,14 +1561,11 @@ dist_patch_DATA = \
%D%/packages/patches/onnx-skip-model-downloads.patch \
%D%/packages/patches/openboardview-use-system-imgui.patch \
%D%/packages/patches/openboardview-use-system-utf8.patch \
%D%/packages/patches/openbox-python3.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
%D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch \
%D%/packages/patches/openmpi-mtl-priorities.patch \
%D%/packages/patches/openssh-hurd.patch \
%D%/packages/patches/openssh-trust-guix-store-directory.patch \
%D%/packages/patches/openresolv-restartcmd-guix.patch \
%D%/packages/patches/openrgb-unbundle-hueplusplus.patch \
%D%/packages/patches/opensles-add-license-file.patch \
@@ -1599,7 +1592,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-chai-drop-python2.patch \
%D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/python-poppler-qt5-fix-build.patch \
%D%/packages/patches/python-w3lib-fix-test-failure.patch \
%D%/packages/patches/sdcc-disable-non-free-code.patch \
%D%/packages/patches/sdl-pango-api_additions.patch \
%D%/packages/patches/sdl-pango-blit_overflow.patch \
@@ -1609,6 +1601,8 @@ dist_patch_DATA = \
%D%/packages/patches/sdl-pango-sans-serif.patch \
%D%/packages/patches/smalltalk-multiplication-overflow.patch \
%D%/packages/patches/sqlite-hurd.patch \
%D%/packages/patches/sssd-collision-with-external-nss-symbol.patch \
%D%/packages/patches/sssd-fix-samba-4.15.3.patch \
%D%/packages/patches/strace-readlink-tests.patch \
%D%/packages/patches/sunxi-tools-remove-sys-io.patch \
%D%/packages/patches/p11-kit-hurd.patch \
@@ -1627,12 +1621,16 @@ dist_patch_DATA = \
%D%/packages/patches/perl-reproducible-build-date.patch \
%D%/packages/patches/perl-www-curl-fix-struct-void.patch \
%D%/packages/patches/perl-www-curl-remove-symbol.patch \
%D%/packages/patches/phoronix-test-suite-fsdg.patch \
%D%/packages/patches/php-bug-74093-test.patch \
%D%/packages/patches/php-openssl_x509_checkpurpose_basic.patch \
%D%/packages/patches/picard-fix-id3-rename-test.patch \
%D%/packages/patches/picprog-non-intel-support.patch \
%D%/packages/patches/pidgin-add-search-path.patch \
%D%/packages/patches/pigx-bsseq-no-citeproc.patch \
%D%/packages/patches/pigx-chipseq-no-citeproc.patch \
%D%/packages/patches/pigx-rnaseq-no-citeproc.patch \
%D%/packages/patches/pigx-sars-cov2-ww-no-citeproc.patch \
%D%/packages/patches/pigx-scrnaseq-no-citeproc.patch \
%D%/packages/patches/pinball-system-ltdl.patch \
%D%/packages/patches/pingus-boost-headers.patch \
%D%/packages/patches/pingus-sdl-libs-config.patch \
@@ -1657,7 +1655,6 @@ dist_patch_DATA = \
%D%/packages/patches/psm-disable-memory-stats.patch \
%D%/packages/patches/psm-ldflags.patch \
%D%/packages/patches/psm-repro.patch \
%D%/packages/patches/public-inbox-fix-spawn-test.patch \
%D%/packages/patches/pulseaudio-fix-mult-test.patch \
%D%/packages/patches/pulseaudio-longer-test-timeout.patch \
%D%/packages/patches/pulseview-qt515-compat.patch \
@@ -1683,13 +1680,10 @@ dist_patch_DATA = \
%D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \
%D%/packages/patches/python-cross-compile.patch \
%D%/packages/patches/python-configobj-setuptools.patch \
%D%/packages/patches/python-debugpy-unbundle-pydevd.patch \
%D%/packages/patches/python-docopt-pytest6-compat.patch \
%D%/packages/patches/python-execnet-read-only-fix.patch \
%D%/packages/patches/python-fixtures-remove-monkeypatch-test.patch \
%D%/packages/patches/python-flask-restful-werkzeug-compat.patch \
%D%/packages/patches/python-ipython-documentation-chars.patch \
%D%/packages/patches/python-ipython-documentation-repro.patch \
%D%/packages/patches/python-keras-integration-test.patch \
%D%/packages/patches/python-pdoc3-tests.patch \
%D%/packages/patches/python-peachpy-determinism.patch \
@@ -1705,28 +1699,29 @@ dist_patch_DATA = \
%D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-typing-inspect-fix.patch \
%D%/packages/patches/python-packaging-test-arch.patch \
%D%/packages/patches/python2-parameterized-docstring-test.patch \
%D%/packages/patches/python-paste-remove-timing-test.patch \
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
%D%/packages/patches/python-pycrypto-time-clock.patch \
%D%/packages/patches/python-pyan3-fix-absolute-path-bug.patch \
%D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
%D%/packages/patches/python2-pygobject-2-deprecation.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
%D%/packages/patches/python-pytorch-runpath.patch \
%D%/packages/patches/python-pytorch-system-libraries.patch \
%D%/packages/patches/python-pytorch-1.9.0-system-libraries.patch \
%D%/packages/patches/python-robotframework-atest.patch \
%D%/packages/patches/python-robotframework-source-date-epoch.patch \
%D%/packages/patches/python-robotframework-ug2html.patch \
%D%/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch \
%D%/packages/patches/python-seaborn-kde-test.patch \
%D%/packages/patches/python-seaborn-2690.patch \
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.patch \
%D%/packages/patches/python-versioneer-guix-support.patch \
%D%/packages/patches/python-waitress-fix-tests.patch \
%D%/packages/patches/python-werkzeug-tests.patch \
%D%/packages/patches/python-mypy-12332.patch \
%D%/packages/patches/python-mypy-use-sys-path.patch \
%D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \
%D%/packages/patches/qemu-build-info-manual.patch \
%D%/packages/patches/qemu-glibc-2.27.patch \
%D%/packages/patches/qemu-glibc-2.30.patch \
@@ -1747,6 +1742,7 @@ dist_patch_DATA = \
%D%/packages/patches/ragel-char-signedness.patch \
%D%/packages/patches/randomjungle-disable-static-build.patch \
%D%/packages/patches/range-v3-build-with-gcc10.patch \
%D%/packages/patches/rapicorn-isnan.patch \
%D%/packages/patches/rapidjson-gcc-compat.patch \
%D%/packages/patches/raptor2-heap-overflow.patch \
%D%/packages/patches/ratpoints-sturm_and_rp_private.patch \
@@ -1761,6 +1757,8 @@ dist_patch_DATA = \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \
%D%/packages/patches/racket-enable-scheme-backport.patch \
%D%/packages/patches/racket-gui-tethered-launcher-backport.patch \
%D%/packages/patches/racket-minimal-sh-via-rktio.patch \
%D%/packages/patches/remake-impure-dirs.patch \
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
@@ -1769,7 +1767,9 @@ dist_patch_DATA = \
%D%/packages/patches/rnp-disable-ruby-rnp-tests.patch \
%D%/packages/patches/rnp-unbundle-googletest.patch \
%D%/packages/patches/rocm-comgr-3.1.0-dependencies.patch \
%D%/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
%D%/packages/patches/ruby-sanitize-system-libxml.patch \
@@ -1778,7 +1778,6 @@ dist_patch_DATA = \
%D%/packages/patches/i3status-rust-enable-unstable-features.patch \
%D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \
%D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \
%D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch \
%D%/packages/patches/rust-nettle-disable-vendor.patch \
%D%/packages/patches/rust-nettle-sys-disable-vendor.patch \
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
@@ -1818,7 +1817,7 @@ dist_patch_DATA = \
%D%/packages/patches/snappy-add-inline-for-GCC.patch \
%D%/packages/patches/sphinxbase-fix-doxygen.patch \
%D%/packages/patches/spice-vdagent-glib-2.68.patch \
%D%/packages/patches/sssd-optional-systemd.patch \
%D%/packages/patches/sssd-fix-samba.patch \
%D%/packages/patches/sssd-system-directories.patch \
%D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/suitesparse-mongoose-cmake.patch \
@@ -1850,7 +1849,6 @@ dist_patch_DATA = \
%D%/packages/patches/texi2html-i18n.patch \
%D%/packages/patches/thefuck-test-environ.patch \
%D%/packages/patches/tidy-CVE-2015-5522+5523.patch \
%D%/packages/patches/timescaledb-flaky-test.patch \
%D%/packages/patches/tinyxml-use-stl.patch \
%D%/packages/patches/tipp10-disable-downloader.patch \
%D%/packages/patches/tipp10-fix-compiling.patch \
@@ -1861,9 +1859,11 @@ dist_patch_DATA = \
%D%/packages/patches/tlf-support-hamlib-4.2+.patch \
gnu/packages/patches/tootle-glib-object-naming.patch \
gnu/packages/patches/tootle-reason-phrase.patch \
%D%/packages/patches/tor-sandbox-i686.patch \
%D%/packages/patches/transcode-ffmpeg.patch \
%D%/packages/patches/transfig-gcc10-fno-common.patch \
%D%/packages/patches/transmission-honor-localedir.patch \
%D%/packages/patches/tremc-fix-decodestring.patch \
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
%D%/packages/patches/trytond-add-guix_trytond_path.patch \
%D%/packages/patches/ttf2eot-cstddef.patch \
@@ -1874,6 +1874,7 @@ dist_patch_DATA = \
%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 \
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
%D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
@@ -1921,26 +1922,27 @@ dist_patch_DATA = \
%D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/util-linux-CVE-2021-3995.patch \
%D%/packages/patches/util-linux-CVE-2021-3996.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/valgrind-fix-default-debuginfo-path.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
%D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
%D%/packages/patches/vboot-utils-skip-test-workbuf.patch \
%D%/packages/patches/vinagre-newer-freerdp.patch \
%D%/packages/patches/vinagre-newer-rdp-parameters.patch \
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \
%D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch \
%D%/packages/patches/vsearch-unbundle-cityhash.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
%D%/packages/patches/vtk-fix-freetypetools-build-failure.patch \
%D%/packages/patches/vtk-7-gcc-10-compat.patch \
%D%/packages/patches/vtk-7-hdf5-compat.patch \
%D%/packages/patches/vtk-7-python-compat.patch \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/webkitgtk-bind-all-fonts.patch \
%D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \
%D%/packages/patches/webkitgtk-canonicalize-paths.patch \
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
%D%/packages/patches/wicd-urwid-1.3.patch \
%D%/packages/patches/wicd-wpa2-ttls.patch \
%D%/packages/patches/widelands-add-missing-map-include.patch \
%D%/packages/patches/widelands-system-wide_minizip.patch \
%D%/packages/patches/wmctrl-64-fix.patch \
@@ -1976,9 +1978,13 @@ dist_patch_DATA = \
%D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \
%D%/packages/patches/xsane-support-ipv6.patch \
%D%/packages/patches/xsane-tighten-default-umask.patch \
%D%/packages/patches/xterm-370-explicit-xcursor.patch \
%D%/packages/patches/xygrib-fix-finding-data.patch \
%D%/packages/patches/yggdrasil-extra-config.patch \
%D%/packages/patches/ytfzf-programs.patch \
%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
MISC_DISTRO_FILES = \
+13 -40
View File
@@ -4,7 +4,6 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,11 +39,11 @@
#:use-module (ice-9 binary-ports)
#:autoload (system base compile) (compile)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (srfi srfi-39)
#:use-module (srfi srfi-71)
#:export (search-patch
search-patches
search-auxiliary-file
@@ -66,9 +65,6 @@
specification->package+output
specification->location
specifications->manifest
specifications->packages
package-unique-version-prefix
generate-package-cache))
@@ -143,10 +139,13 @@ flags."
;; Search path for package modules. Each item must be either a directory
;; name or a pair whose car is a directory and whose cdr is a sub-directory
;; to narrow the search.
(let* ((not-colon (char-set-complement (char-set #\:)))
(environment (string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "")
not-colon))
(channels-scm channels-go (package-path-entries)))
(let*-values (((not-colon)
(char-set-complement (char-set #\:)))
((environment)
(string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "")
not-colon))
((channels-scm channels-go)
(package-path-entries)))
;; Automatically add channels and items from $GUIX_PACKAGE_PATH to Guile's
;; search path. For historical reasons, $GUIX_PACKAGE_PATH goes to the
;; front; channels go to the back so that they don't override Guix' own
@@ -499,13 +498,13 @@ return its return value."
"Return a package matching SPEC. SPEC may be a package name, or a package
name followed by an at-sign and a version number. If the version number is not
present, return the preferred newest version."
(let ((name version (package-name->name+version spec)))
(let-values (((name version) (package-name->name+version spec)))
(%find-package spec name version)))
(define (specification->location spec)
"Return the location of the highest-numbered package matching SPEC, a
specification such as \"guile@2\" or \"emacs\"."
(let ((name version (package-name->name+version spec)))
(let-values (((name version) (package-name->name+version spec)))
(match (find-package-locations name version)
(()
(if version
@@ -540,8 +539,8 @@ version; if SPEC does not specify an output, return OUTPUT.
When OUTPUT is false and SPEC does not specify any output, return #f as the
output."
(let ((name version sub-drv
(package-specification->name+version+output spec output)))
(let-values (((name version sub-drv)
(package-specification->name+version+output spec output)))
(match (%find-package spec name version)
(#f
(values #f #f))
@@ -553,36 +552,10 @@ output."
(package-full-name package)
sub-drv))))))
(define (specifications->packages specs)
"Given SPECS, a list of specifications such as \"emacs@25.2\" or
\"guile:debug\", return a list of package/output tuples."
;; This procedure exists so users of 'guix home' don't have to write out the
;; (map (compose list specification->package+output)... boilerplate.
(map (compose list specification->package+output) specs))
(define (specifications->manifest specs)
"Given SPECS, a list of specifications such as \"emacs@25.2\" or
\"guile:debug\", return a profile manifest."
;; This procedure exists mostly so users of 'guix package -m' don't have to
;; fiddle with multiple-value returns.
(packages->manifest
(specifications->packages specs)))
(define (package-unique-version-prefix name version)
"Search among all the versions of package NAME that are available, and
return the shortest unambiguous version prefix to designate VERSION. If only
one version of the package is available, return the empty string."
(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 VERSION.
"")
(versions
;; If VERSION is 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 so the result may vary
;; over time.
(if (every (cut version>? version <>)
(delete version versions))
""
(version-unique-prefix version versions)))))
(map (compose list specification->package+output) specs)))
+3 -3
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
@@ -89,14 +89,14 @@ terminals.")
(define-public brltty
(package
(name "brltty")
(version "6.5")
(version "6.4")
(source
(origin
(method url-fetch)
(uri
(string-append "https://brltty.app/archive/brltty-" version ".tar.gz"))
(sha256
(base32 "1h62xzd5k0aaq2k4v3w93rizxnb8psvkxrlx62wr08ybwpspgp7z"))))
(base32 "0zybi9i9izv25g0wphl0snddrhb6xl5879y4pkpjpnxq61wm9gry"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; No target
+29
View File
@@ -149,3 +149,32 @@ Ada system. Being an interpreter, it does not implement most representation
clauses, and thus does not support systems programming close to the machine
level.")
(license license:gpl2+)))
(define-public python2-langkit
(let ((commit "fe0bc8bf60dbd2937759810df76ac420d99fc15f")
(revision "0"))
(package
(name "python2-langkit")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AdaCore/langkit")
(commit commit)))
(sha256
(base32
"1abqgw2p8pb1pm54my5kkbbixfhc6l0bwajdv1xlzyrh31xki3wx"))
(file-name (string-append name "-" version "-checkout"))))
(build-system python-build-system)
(propagated-inputs
(list python2-docutils python2-enum34 python2-funcy python2-mako))
(arguments
`(#:python ,python-2
#:tests? #f)) ; Tests would requite gprbuild (Ada).
(synopsis "Semantic analysis tool generator in Python")
(description "@code{Langkit} is a tool whose purpose is to make it easy
to create syntactic and semantic analysis engines. Write a language
specification in our Python DSL and Langkit will generate for you an
Ada library with bindings for the C and Python programming languages.")
(home-page "https://github.com/AdaCore/langkit/")
(license license:gpl3+)))) ; and gcc runtime library exception
+140 -442
View File
@@ -13,7 +13,7 @@
;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 20162022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20162021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
@@ -45,12 +45,8 @@
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 muradm <mail@muradm.net>
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -68,7 +64,6 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages admin)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system emacs)
#:use-module (guix build-system glib-or-gtk)
@@ -96,7 +91,6 @@
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
@@ -105,7 +99,6 @@
#:use-module (gnu packages elf)
#:use-module (gnu packages file)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
@@ -116,7 +109,6 @@
#:use-module (gnu packages groff)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages hurd)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
@@ -274,7 +266,7 @@ the percentage of copied data. It can also show estimated time and throughput,
and provides a \"top-like\" mode (monitoring).")
(license license:gpl3+)))
(define-public shepherd-0.8
(define-public shepherd
(package
(name "shepherd")
(version "0.8.1")
@@ -315,60 +307,14 @@ interface and is based on GNU Guile.")
(license license:gpl3+)
(home-page "https://www.gnu.org/software/shepherd/")))
;; Update on the next rebuild cycle.
(define-public shepherd shepherd-0.8)
(define-public shepherd-0.9
(package
(inherit shepherd)
(version "0.9.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/shepherd/shepherd-"
version ".tar.gz"))
(sha256
(base32
"0l2arn6gsyw88xk9phxnyplvv1mn8sqp3ipgyyb0nszdzvxlgd36"))
(modules '((guix build utils)))
(snippet
;; Avoid continuation barriers so (@ (fibers) sleep) can be
;; called from a service's 'stop' method
'(substitute* "modules/shepherd/service.scm"
(("call-with-blocked-asyncs") ;in 'stop' method
"(lambda (thunk) (thunk))")
(("\\(for-each-service\n") ;in 'shutdown-services'
"((lambda (proc)
(for-each proc
(fold-services cons '())))\n")))))
(arguments
(list #:configure-flags #~'("--localstatedir=/var")
#:make-flags #~'("GUILE_AUTO_COMPILE=0")
#:phases (if (%current-target-system)
#~(modify-phases %standard-phases
(add-before 'configure 'set-fibers-directory
(lambda _
;; When cross-compiling, refer to the target
;; Fibers, not the native one.
(substitute* '("herd.in" "shepherd.in")
(("%FIBERS_SOURCE_DIRECTORY%")
#$(file-append
(this-package-input "guile-fibers")
"/share/guile/site/3.0"))
(("%FIBERS_OBJECT_DIRECTORY%")
#$(file-append
(this-package-input "guile-fibers")
"/lib/guile/3.0/site-ccache"))))))
#~%standard-phases)))
(native-inputs (list pkg-config guile-3.0
guile-fibers-1.1)) ;for cross-compilation
(inputs (list guile-3.0 guile-fibers-1.1))))
(define-public guile2.2-shepherd
(package
(inherit shepherd-0.9)
(inherit shepherd)
(name "guile2.2-shepherd")
(native-inputs (list pkg-config guile-2.2))
(inputs (list guile-2.2 guile2.2-fibers))))
(native-inputs
(list pkg-config guile-2.2))
(inputs
(list guile-2.2 guile2.2-readline))))
(define-public guile2.0-shepherd
(package
@@ -424,7 +370,7 @@ inspired by @command{vi}.")
(define-public cloud-utils
(package
(name "cloud-utils")
(version "0.33")
(version "0.32")
(source
(origin
(method url-fetch)
@@ -436,11 +382,7 @@ inspired by @command{vi}.")
"0xxdi55lzw7j91zfajw7jhd2ilsqj2dy04i9brlk8j3pvb5ma8hk"))))
(build-system gnu-build-system)
(arguments
'(#:modules
((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
#:make-flags
'(#:make-flags
(let ((out (assoc-ref %outputs "out")))
(list (string-append "BINDIR=" out "/bin")
(string-append "MANDIR=" out "/share/man/man1")
@@ -454,15 +396,11 @@ inspired by @command{vi}.")
(let ((growpart (string-append (assoc-ref outputs "out")
"/bin/growpart")))
(wrap-program growpart
`("PATH" ":" prefix
,(map dirname
(map (cut search-input-file inputs <>)
(list "bin/readlink"
"sbin/sfdisk")))))))))))
`("PATH" ":" prefix (,(dirname (which "sfdisk"))
,(dirname (which "readlink"))))))
#t)))))
(inputs
(list coreutils ; for readlink
python
util-linux)) ; sfdisk for growpart
(list python util-linux)) ; contains sfdisk for growpart
(home-page "https://launchpad.net/cloud-utils")
(synopsis "Set of utilities for cloud computing environments")
(description
@@ -550,7 +488,7 @@ services.")
(base32 "0w4g0iyssyw7dd0061881z8s5czcl01mz6v00znax57zfxjqpvnm"))))
(build-system gnu-build-system)
(arguments '(#:tests? #f)) ; No tests available.
(home-page "https://software.clapper.org/daemonize/")
(home-page "http://software.clapper.org/daemonize/")
(synopsis "Command line utility to run a program as a daemon")
(description
"daemonize runs a command as a Unix daemon. It will close all open file
@@ -696,7 +634,7 @@ console.")
(define-public htop
(package
(name "htop")
(version "3.2.1")
(version "3.1.2")
(source
(origin
(method git-fetch)
@@ -704,7 +642,7 @@ console.")
(url "https://github.com/htop-dev/htop")
(commit version)))
(sha256
(base32 "0yfmkw3y4qyd42svhpiijif7krvmnb8z88y6h9g4fwf7sfynq2rk"))
(base32 "024qhrlmqgwmn6bwb5yiff9bhhdabryiphzx8y654k8r8vqi59j4"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
@@ -1093,7 +1031,7 @@ would need and has several interesting built-in capabilities.")
(define-public netcat-openbsd
(package
(name "netcat-openbsd")
(version "1.218-5")
(version "1.218-2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1102,7 +1040,7 @@ would need and has several interesting built-in capabilities.")
(file-name (git-file-name name version))
(sha256
(base32
"0hpbmz9m2q22a6qgbn9590z2x96xgffim8g0m1v47mariz3pqhlc"))))
"1rj4nx0jdism1idc4fghahqbafhv72cpk7zlyq9czgvbps10d1kh"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
@@ -1143,76 +1081,6 @@ IPv6, proxies, and Unix sockets.")
(license (list license:bsd-3
license:bsd-2)))) ; atomicio.*, socks.c
(define-public nmon
(package
(name "nmon")
(version "16n")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/nmon/lmon" version ".c"))
(sha256
(base32 "1wpm2f30414b87kpbr9hbidblr5cmfby5skwqd0fkpi5v712q0f0"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ; no test suite
#:phases
#~(modify-phases %standard-phases
(replace 'unpack
(lambda _
(copy-file #$(package-source this-package) "lmon.c")))
(delete 'configure) ; no build system
(replace 'build
;; There is an example Makefile in the .c file.
(lambda _
;; These #defines aren't well-documented and, e.g., POWER was
;; not actually tested on every possible TARGET-POWERPC?.
(let* ((system #$(cond ((target-x86?) "X86")
((target-arm?) "ARM")
((target-powerpc?) "POWER")
(else "CROSS_FINGERS"))))
(format #t "Building for ~a~%" system)
(invoke #$(cc-for-target) "-o" "nmon" "lmon.c"
"-g" "-Wall" "-D" system
"-lncurses" "-lm"))))
(replace 'install
(lambda _
(let ((bin (string-append #$output "/bin"))
(man1 (string-append #$output "/share/man/man1")))
(install-file "nmon" bin)
(mkdir-p man1)
(copy-file #$(this-package-native-input "man-page")
(string-append man1 "/nmon.1"))))))))
(native-inputs
(list `("man-page"
,(origin
;; There is no man page upstream, so install Debian's.
(method url-fetch)
(uri (string-append "https://salsa.debian.org/carnil/nmon/"
"-/raw/debian/" version "+debian-1/"
"debian/nmon.1"))
(sha256
(base32
"1gpvd2kjyhs18sh6sga5bk9wj8s78blfd4c0m38r0wl92jx2yv1b"))))))
(inputs
(list ncurses))
(home-page "http://nmon.sourceforge.net/")
(synopsis
"Monitor system performance in a terminal or to a @file{.csv} log file")
(description
"@acronym{Nmon, Nigel's performance monitor} is yet another system monitor
useful in systems administration, debugging, tuning, and benchmarking.
The configurable ncurses interface displays all the classic resource usage
statistics (CPU, memory, network, disk, ...) as real-time graphs or numbers.
It can also list the processes responsible in a @command{top}-like table.
A less common nmon feature is its ability to create highly detailed log files
in @acronym{CSV, comma-separated values} format. These can be imported into
spreadsheets or fed straight into an @acronym{RRD, round-robin database} using
@command{rrdtool} for further analyisis, or to create colourful graphs.")
(license license:gpl3+)))
(define-public sipcalc
(package
(name "sipcalc")
@@ -1327,14 +1195,15 @@ connection alive.")
bind-release-version)))
(package
(name "isc-dhcp")
(version "4.4.3")
(version "4.4.2-P1")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.isc.org/isc/dhcp/"
version "/dhcp-" version ".tar.gz"))
(patches (search-patches "isc-dhcp-gcc-compat.patch"))
(sha256
(base32
"062q2g8cj2zv0zv22x6pg21m21bdlscxkg3li0ac0pm0qasccghf"))))
"06jsr0cg5rsmyibshrpcb9za0qgwvqccashdma7mlm1rflrh8pmh"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f
@@ -1448,7 +1317,7 @@ connection alive.")
(list config perl file))
(inputs `(("inetutils" ,inetutils)
("bash" ,(canonical-package bash-minimal)) ;for wrap-program
("bash" ,bash-minimal)
,@(if (hurd-target?) '()
`(("net-tools" ,net-tools)
("iproute" ,iproute)))
@@ -1855,7 +1724,7 @@ system administrator.")
(define-public sudo
(package
(name "sudo")
(version "1.9.11p3")
(version "1.9.10")
(source (origin
(method url-fetch)
(uri
@@ -1865,7 +1734,7 @@ system administrator.")
version ".tar.gz")))
(sha256
(base32
"0w0z9w4vnhjsc4jjghi6wlyv4v055hsy38ncb67p08b7yp9fg1s6"))
"1x34k8sd2msfjjsahff1q143gr5j9z19jx2rmkkbiiz7k084d8a4"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -2123,16 +1992,10 @@ command.")
(add-after 'install-documentation 'install-dbus-conf
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(interfaces (string-append out "/etc/dbus-1/system.d"))
(services (string-append out
"/share/dbus-1/system-services")))
(mkdir-p interfaces)
(dir (string-append out "/etc/dbus-1/system.d")))
(mkdir-p dir)
(copy-file "dbus/dbus-wpa_supplicant.conf"
(string-append interfaces "/wpa_supplicant.conf"))
(mkdir-p services)
(copy-file "dbus/fi.w1.wpa_supplicant1.service"
(string-append services
"/fi.w1.wpa_supplicant1.service")))
(string-append dir "/wpa_supplicant.conf")))
#t))))))))
(define-public wpa-supplicant-gui
@@ -2311,7 +2174,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
(define-public acpica
(package
(name "acpica")
(version "20220331")
(version "20211217")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2319,7 +2182,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
version ".tar.gz"))
(sha256
(base32
"0yjcl00nnnlw01sz6a1i5d3v75gr17mkbxkxfx2v344al33abk8w"))))
"0521hmaw2zhi0mpgnaf2i83dykfgql4bx98cg7xqy8wmj649z194"))))
(build-system gnu-build-system)
(native-inputs (list flex bison))
(arguments
@@ -2596,7 +2459,7 @@ track changes in important system configuration files.")
(define-public libcap-ng
(package
(name "libcap-ng")
(version "0.8.3")
(version "0.8.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2604,12 +2467,11 @@ track changes in important system configuration files.")
version ".tar.gz"))
(sha256
(base32
"0ba9dfga7chwf6lf7a03x1a30fgdy2pb4r7pnn1jzfr2is2gdmmy"))))
"1sasp1n154aqy9fz0knlb966svm7xg1zjhg1vr4q839bgjvq7h2j"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--disable-static"
"--without-python")))
(list "--without-python")))
(home-page "https://people.redhat.com/sgrubb/libcap-ng/")
(synopsis "Library for more easily working with POSIX capabilities")
(description
@@ -2668,6 +2530,42 @@ degradation and failure.")
specified directories.")
(license license:expat)))
(define-public graphios
(package
(name "graphios")
(version "2.0.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "graphios" version))
(sha256
(base32
"1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
(build-system python-build-system)
(arguments
;; Be warned: Building with Python 3 succeeds, but the build process
;; throws a syntax error that is ignored.
`(#:python ,python-2
#:phases
(modify-phases %standard-phases
(add-before 'build 'fix-setup.py
(lambda* (#:key outputs #:allow-other-keys)
;; Fix hardcoded, unprefixed file names.
(let ((out (assoc-ref outputs "out")))
(substitute* '("setup.py")
(("/etc") (string-append out "/etc"))
(("/usr") out)
(("distro_ver = .*") "distro_ver = ''"))
#t))))))
(home-page "https://github.com/shawn-sterling/graphios")
(synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
(description
"Graphios is a script to emit nagios perfdata to various upstream metrics
processing and time-series systems. It's currently compatible with Graphite,
Statsd, Librato and InfluxDB. Graphios can emit Nagios metrics to any number
of supported upstream metrics systems simultaneously.")
(license license:gpl2+)))
(define-public ansible-core
(package
(name "ansible-core")
@@ -2808,15 +2706,15 @@ provides the following commands:
(build-system python-build-system)
(propagated-inputs
(list ansible-core))
;; The Ansible collections are found by ansible-core via the Python search
;; path; the following search path ensures that they are found even when
;; Python is not present in the profile.
;; The Ansible collections are found by ansible-core via PYTHONPATH; the
;; following search path ensures that they are found even when Python is
;; not present in the profile.
(native-search-paths
;; XXX: Attempting to use (package-native-search-paths python)
;; here would cause an error about python being an unbound
;; variable in the tests/cpan.scm test.
(list (search-path-specification
(variable "GUIX_PYTHONPATH")
(variable "PYTHONPATH")
(files (list "lib/python3.9/site-packages")))))
(home-page "https://www.ansible.com/")
(synopsis "Radically simple IT automation")
@@ -3119,17 +3017,10 @@ displays a table of current bandwidth usage by pairs of hosts.")
(list openssl libgcrypt))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
'(#:configure-flags
(list "--localstatedir=/var"
(string-append "--with-pkgconfigdir="
(assoc-ref %outputs "out") "/lib/pkgconfig")
(string-append "--with-libgcrypt-prefix="
(assoc-ref %build-inputs "libgcrypt"))
,@(if (%current-target-system)
;; Assume yes on pipes when cross compiling.
`("ac_cv_file__dev_spx=yes"
"x_ac_cv_check_fifo_recvfd=yes")
'()))
(assoc-ref %outputs "out") "/lib/pkgconfig"))
#:phases
(modify-phases %standard-phases
;; XXX Many test series fail. Some might be fixable, others do no-no
@@ -3165,13 +3056,13 @@ platform-specific methods.")
(package
(name "audit")
(home-page "https://people.redhat.com/sgrubb/audit/")
(version "3.0.8")
(version "3.0.7")
(source (origin
(method url-fetch)
(uri (string-append home-page "audit-" version ".tar.gz"))
(sha256
(base32
"04w9m9ffvi58z11i344wa1hji9ba68cdklrkizhiwf39mnwxkx5m"))))
"15r5lrrkv2zj3dvpqssd46w61hmrq27y7c2rz33s20ck59iphk4b"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--with-python=no"
@@ -3256,12 +3147,10 @@ rules is done with the @code{auditctl} utility.")
(,(python-path ndiff)))))))
;; These are the tests that do not require network access.
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "make"
"check-nse"
"check-ndiff"
"check-dns")))))
(lambda _ (invoke "make"
"check-nse"
"check-ndiff"
"check-dns"))))
;; Nmap can't cope with out-of-source building.
#:out-of-source? #f))
(home-page "https://nmap.org/")
@@ -3801,32 +3690,6 @@ used in screenshots to show other users what operating system or distribution
you are running, what theme or icon set you are using, etc.")
(license license:expat)))
(define-public hyfetch
(package
(name "hyfetch")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "HyFetch" version))
(sha256
(base32 "1bfkycdhsyzkk6q24gdy1xwvyz0rvkr7xk2khbn74b3nk6kp83r2"))))
(build-system python-build-system)
(inputs (list python-hypy-utils python-typing-extensions))
(arguments `(#:phases (modify-phases %standard-phases
(add-before 'build 'set-HOME
(lambda _ ;; Tries to set files in .config
(setenv "HOME" "/tmp"))))))
(home-page "https://github.com/hykilpikonna/HyFetch")
(synopsis "@code{neofetch} with pride flags <3")
(description "HyFetch is a command-line system information tool fork of
@code{neofetch}. HyFetch displays information about your system next to your
OS logo in ASCII representation. The ASCII representation is then colored in
the pattern of the pride flag of your choice. The main purpose of HyFetch is to
be used in screenshots to show other users what operating system or distribution
you are running, what theme or icon set you are using, etc.")
(license license:expat)))
(define-public screenfetch
(package
(name "screenfetch")
@@ -3970,29 +3833,30 @@ information tool.")
(define-public nnn
(package
(name "nnn")
(version "4.5")
(version "4.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/jarun/nnn/releases/download/v"
version "/nnn-v" version ".tar.gz"))
(sha256
(base32 "1aj9hzhpwxl2v1dlf3jpd3rp81z689dq8iycbipc0024dnyibp7s"))))
(base32 "0lqn7pyy8c1vy29vn8ad4x23cw67cy1d21ghns6f3w9a1h7kyjp0"))))
(build-system gnu-build-system)
(inputs
(list ncurses readline))
(native-inputs
(list pkg-config))
(arguments
(list #:tests? #f ; no tests
#:make-flags
#~(list
(string-append "PREFIX=" #$output)
(string-append "CC=" #$(cc-for-target))
(string-append "PKG_CONFIG=" #$(pkg-config-for-target)))
#:phases
#~(modify-phases %standard-phases
(delete 'configure)))) ; no configure script
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(delete 'configure)) ; no configure script
#:make-flags
(list
(string-append "PREFIX="
(assoc-ref %outputs "out"))
(string-append "CC=" ,(cc-for-target))
(string-append "PKG_CONFIG=" ,(pkg-config-for-target)))))
(home-page "https://github.com/jarun/nnn")
(synopsis "Terminal file browser")
(description
@@ -4194,7 +4058,7 @@ Python loading in HPC environments.")
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
(version "3.3.15-1")
(version "3.3.11-1")
(source
(origin
(method git-fetch)
@@ -4203,7 +4067,7 @@ Python loading in HPC environments.")
(commit version)))
(file-name (git-file-name real-name version))
(sha256
(base32 "02zy94bd6ayfl9y7ka6gk32q254k49cbq3a6wgi31r2fcvybyrf7"))))
(base32 "1nk3q2xg0myykq1myasxhvhhr0vk8qv3m7pb3icw81r3ydasnls0"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash-minimal)
@@ -4253,7 +4117,7 @@ Python loading in HPC environments.")
(string-append dir "/lib/perl5/site_perl"))
(_ ""))
%build-inputs)))))
(invoke "gzip" "-n" "inxi.1")
(invoke "gzip" "inxi.1")
(install-file "inxi.1.gz"
(string-append %output "/share/man/man1"))))))
(home-page "https://smxi.org/docs/inxi.htm")
@@ -4434,7 +4298,7 @@ Logitech Unifying Receiver.")
(package
(name "lynis")
;; Also update the lynis-sdk input to the commit matching this release.
(version "3.0.8")
(version "3.0.6")
(source
(origin
(method git-fetch)
@@ -4443,7 +4307,7 @@ Logitech Unifying Receiver.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "19kz1ffbbd431cdfw7fjcl5hjkks3gfkwk3w2zkwsxgyiky1gx3w"))
(base32 "1a1n8alcq6zil1rwk9940cg3x2nz3igcxfad99505pdh7ccz9324"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -4459,20 +4323,13 @@ Logitech Unifying Receiver.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/CISOfy/lynis-sdk")
(commit "dffe5d352e4d6029ea95a84d50604ccd97cb8999")))
(commit "1c4e5f60a03e29a1525ca9ec17c793461058253d")))
(file-name (git-file-name "lynis-sdk" version))
(sha256
(base32 "05qq4395x8f0kyl1ppm74npsf8sb3hhgz0ck4fya91sy6a26b4ja"))))))
(base32 "060k8k1q4c7nvrv3cwscxq8md2v75q3nrwwim1hgfw20divw3npy"))))))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'unpack
;; XXX Remove after fixing <https://issues.guix.gnu.org/55287>.
(lambda* (#:key source #:allow-other-keys)
(mkdir "source")
(chdir "source")
(copy-recursively source "."
#:keep-mtime? #t)))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "lynis"
@@ -4608,7 +4465,7 @@ supplied by the user when logging in.")
(define-public jc
(package
(name "jc")
(version "1.19.0")
(version "1.13.4")
(source
(origin
;; The PyPI tarball lacks the test suite.
@@ -4618,16 +4475,8 @@ supplied by the user when logging in.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "021zk0y8kb6v3qf3hwfg8qjzzmrca039nz3fjywiy2njmbhr8hyi"))))
(base32 "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr"))))
(build-system python-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
;; XXX Guix's America/Los_Angeles time zone is somehow broken.
(add-before 'check 'hack-time-zone
(lambda _
(substitute* (find-files "tests" "^test.*\\.py$")
(("America/Los_Angeles") "PST8PDT")))))))
(propagated-inputs
(list python-pygments python-ruamel.yaml python-xmltodict))
(home-page "https://github.com/kellyjonbrazil/jc")
@@ -4775,40 +4624,49 @@ Netgear devices.")
(define-public atop
(package
(name "atop")
(version "2.7.1")
(version "2.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.atoptool.nl/download/atop-"
version ".tar.gz"))
(sha256
(base32
"0kjwgf94skbrndv1krlmsrq34smzi3iwk73fbsnyw787gvqx4j6a"))))
"0wlg0n0h9vwpjp2dcb623jvvqck422jrjpq9mbpzg4hnawxcmhly"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no test suite
`(#:tests? #f ; no test suite
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "DESTDIR=" #$output)
(string-append "SYSDPATH=/etc/systemd/system")
(string-append "PMPATHD=/etc/systemd/system-sleep")
;; Or else it tries to create /var/log/atop...
(string-append "LOGPATH="))
(list (string-append "CC=" ,(cc-for-target))
;; The installer requires a choice between systemd or SysV.
"systemdinstall"
(string-append "DESTDIR=" (assoc-ref %outputs "out"))
(string-append "BINPATH=/bin")
(string-append "SBINPATH=/sbin")
(string-append "SYSDPATH=/etc/systemd/system")
(string-append "PMPATHD=/etc/systemd/system-sleep")
(string-append "MAN1PATH=/share/man/man1")
(string-append "MAN5PATH=/share/man/man5")
(string-append "MAN8PATH=/share/man/man8")
;; Or else it tries to create /var/log/atop...
(string-append "LOGPATH="))
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; No ./configure script
(add-before 'build 'patch-build
(lambda _
(substitute* "Makefile"
;; Don't use /usr as a prefix.
(("/usr") "")
;; Otherwise, it creates a blank configuration file as a "default".
(("touch.*DEFPATH)/atop") "")
(("chmod.*DEFPATH)/atop") "")))))))
(modify-phases %standard-phases
(delete 'configure) ; No ./configure script
(add-before 'build 'patch-build
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
;; We don't need to chown things in the build environment.
(("chown.*$") "")
;; We can't toggle the setuid bit in the build environment.
(("chmod 04711") "chmod 0711")
;; Otherwise, it creates a blank configuration file as a "default".
(("touch.*DEFPATH)/atop") "")
(("chmod.*DEFPATH)/atop") ""))
#t)))))
(inputs
(list ncurses
python-wrapper ; for `atopgpud`
zlib))
`(("ncurses" ,ncurses)
("python" ,python-wrapper) ; for `atopgpud`
("zlib" ,zlib)))
(home-page "https://www.atoptool.nl/")
(synopsis "Linux performance monitoring console")
(description "Atop is an ASCII full-screen performance monitor for Linux
@@ -4819,8 +4677,6 @@ using colors, etc. At regular intervals, it shows system-level activity related
to the CPU, memory, swap, disks (including LVM) and network layers, and for
every process (and thread) it shows e.g. the CPU utilization, memory growth,
disk utilization, priority, username, state, and exit code.")
(properties
`((release-monitoring-url . "https://www.atoptool.nl/downloadatop.php")))
(license license:gpl2+)))
;; TODO: Unvendor u-root (pkg: forth, golang, testutil).
@@ -4942,7 +4798,7 @@ the XMODEM/YMODEM/ZMODEM file transfer protocols.")
(define-public nq
(package
(name "nq")
(version "0.5")
(version "0.4")
(source
(origin
(method git-fetch)
@@ -4951,17 +4807,16 @@ the XMODEM/YMODEM/ZMODEM file transfer protocols.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0szbndvwl6ghwjzb165s09977s0r1yq8h0ziknm0h6xndkcjspl3"))))
(base32 "0sdamjzvmf6cxhjmd1rjvn7zm6k10fp5n6vabyxd3yl30cgrxw2i"))))
(build-system gnu-build-system)
(native-inputs
(list perl))
(arguments
(list #:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(delete 'configure))))
`(#:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(synopsis "Unix command line queue utility")
(description
"@code{nq} can create very lightweight job queue systems which require no
@@ -5073,161 +4928,4 @@ it won't take longer to install 15 machines than it would to install just 2.")
(home-page "https://www.udpcast.linux.lu")
(license license:gpl2+)))
(define-public greetd
(package
(name "greetd")
(version "0.8.0")
(home-page "https://git.sr.ht/~kennylevinsen/greetd")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-nix" ,rust-nix-0.19)
("rust-pam-sys" ,rust-pam-sys-0.5)
("rust-rpassword" ,rust-rpassword-5)
("rust-users" ,rust-users-0.11)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-libc" ,rust-libc-0.2)
("rust-tokio" ,rust-tokio-1)
("rust-getopts" ,rust-getopts-0.2)
("rust-thiserror" ,rust-thiserror-1)
("rust-async-trait" ,rust-async-trait-0.1)
("rust-enquote" ,rust-enquote-1))
#:phases
(modify-phases %standard-phases
(delete 'package)
(add-after 'build 'build-man-pages
(lambda* (#:key inputs #:allow-other-keys)
(define (scdoc-cmd doc lvl)
(system (string-append "scdoc < "
doc "-" lvl ".scd > "
doc "." lvl)))
(with-directory-excursion "man"
(scdoc-cmd "greetd" "1")
(scdoc-cmd "greetd" "5")
(scdoc-cmd "greetd-ipc" "7")
(scdoc-cmd "agreety" "1"))))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(sbin (string-append out "/sbin"))
(share (string-append out "/share"))
(man (string-append share "/man"))
(man1 (string-append man "/man1"))
(man5 (string-append man "/man5"))
(man7 (string-append man "/man7"))
(release "target/release")
(greetd-bin (string-append release "/greetd"))
(agreety-bin (string-append release "/agreety")))
(install-file greetd-bin sbin)
(install-file agreety-bin bin)
(with-directory-excursion "man"
(install-file "greetd.1" man1)
(install-file "greetd.5" man5)
(install-file "greetd-ipc.7" man7)
(install-file "agreety.1" man1))))))))
(native-inputs
`(("linux-pam" ,linux-pam)
("scdoc" ,scdoc)))
(synopsis "minimal and flexible login manager daemon")
(description
"greetd is a minimal and flexible login manager daemon
that makes no assumptions about what you want to launch.
If you can run it from your shell in a TTY, greetd can start it.
If it can be taught to speak a simple JSON-based IPC protocol,
then it can be a greeter.")
(license license:gpl3+)))
(define-public greetd-pam-mount
(package
(inherit pam-mount)
(name "greetd-pam-mount")
(arguments
(substitute-keyword-arguments (package-arguments pam-mount)
((#:configure-flags flags ''())
#~(cons* "--with-rundir=/run/greetd" #$flags))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'patch-config-file-name
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/pam_mount.c"
((".*define CONFIGFILE .*$")
"#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n")
(("pam_mount_config") "greetd_pam_mount_config")
(("pam_mount_system_authtok") "greetd_pam_mount_system_authtok"))))))))
(synopsis "pam-mount specifically compiled for use with greetd")
(description
"Pam-mount is a PAM module that can mount volumes when a user logs in.
It supports mounting local filesystems of any kind the normal mount utility
supports. It can also mount encrypted LUKS volumes using the password
supplied by the user when logging in.
This package inherits pam-mount in the way that it is compiled specifically
for use with greetd daemon. It uses different configuration location and
name space for storing data in PAM.
greetd-pam-mount is used in configuration of greetd to provide
auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not
interfere with default pam-mount configuration.")))
(define-public libseat
(package
(name "libseat")
(version "0.7.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~kennylevinsen/seatd")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"10f8387yy5as547xjjhl0cna6iywdgjmw0iq2nvcs8q6vlpnik4v"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Dlibseat-logind=elogind"
"-Dserver=disabled")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(propagated-inputs
`(("elogind" ,elogind)))
(home-page "https://sr.ht/~kennylevinsen/seatd")
(synopsis "Seat management library")
(description
"This package provides a universal seat management library that
allows applications to use whatever seat management is available.")
(license license:expat)))
(define-public seatd
(package
(inherit libseat)
(name "seatd")
(arguments
`(#:configure-flags '("-Dlibseat-logind=elogind")
#:phases
(modify-phases %standard-phases
(add-after 'install 'remove-libs
(lambda* (#:key outputs #:allow-other-keys)
(with-directory-excursion (assoc-ref outputs "out")
(for-each delete-file-recursively '("lib" "include"))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("scdoc" ,scdoc)))
(inputs '())
(synopsis "Seat management daemon")
(description
"This package provides a minimal seat management daemon whose task is to
mediate access to shared devices, such as graphics and input, for applications
that require it.")
(license license:expat)))
+1 -3
View File
@@ -76,9 +76,7 @@ scripts.")
"0gcincjvpll2qmlc906jx6mfq97s87mgi0zby0753ki0rr2ch0s8"))))
(build-system gnu-build-system)
(arguments
'(;; FIXME: Some tests require network access
#:tests? #f
#:phases
'(#:phases
(modify-phases %standard-phases
(add-before 'check 'filter-live-tests
(lambda _
+19 -20
View File
@@ -2,7 +2,7 @@
;;; Copyright © 2018 Alex ter Weele <alex.ter.weele@gmail.com>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 John Soo <jsoo1@asu.edu>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
@@ -29,7 +29,6 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system haskell)
#:use-module (guix build-system trivial)
#:use-module (guix gexp)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
@@ -38,7 +37,7 @@
(define-public agda
(package
(name "agda")
(version "2.6.2.2")
(version "2.6.2.1")
(source
(origin
(method url-fetch)
@@ -46,7 +45,7 @@
"https://hackage.haskell.org/package/Agda/Agda-"
version ".tar.gz"))
(sha256
(base32 "0yjjbhc593ylrm4mq4j01nkdvh7xqsg5in30wxj4y53vf5hkggp5"))))
(base32 "03dw7jfqr3ffik6avigm525djqh2gn5c3qwnb2h6298zkr9lch9w"))))
(build-system haskell-build-system)
(inputs
(list ghc-aeson
@@ -72,22 +71,22 @@
ghc-uri-encode
ghc-zlib))
(arguments
(list #:modules `((guix build haskell-build-system)
(guix build utils)
(srfi srfi-26)
(ice-9 match))
#:phases
#~(modify-phases %standard-phases
;; This allows us to call the 'agda' binary before installing.
(add-after 'unpack 'set-ld-library-path
(lambda _
(setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))))
(add-after 'compile 'agda-compile
(lambda* (#:key outputs #:allow-other-keys)
(let ((agda-compiler (string-append #$output "/bin/agda")))
(for-each (cut invoke agda-compiler <>)
(find-files (string-append #$output "/share")
"\\.agda$"))))))))
`(#:modules ((guix build haskell-build-system)
(guix build utils)
(srfi srfi-26)
(ice-9 match))
#:phases
(modify-phases %standard-phases
;; This allows us to call the 'agda' binary before installing.
(add-after 'unpack 'set-ld-library-path
(lambda _
(setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))))
(add-after 'compile 'agda-compile
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(agda-compiler (string-append out "/bin/agda")))
(for-each (cut invoke agda-compiler <>)
(find-files (string-append out "/share") "\\.agda$"))))))))
(home-page "https://wiki.portal.chalmers.se/agda/")
(synopsis
"Dependently typed functional programming language and proof assistant")
+31 -28
View File
@@ -1,10 +1,10 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019, 2021, 2022 Eric Bavier <bavier@posteo.net>
@@ -127,7 +127,7 @@ greatest common divisor operations.")
(define-public cm
(package
(name "cm")
(version "0.4.0")
(version "0.3.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -135,7 +135,7 @@ greatest common divisor operations.")
version ".tar.gz"))
(sha256
(base32
"04l3inafql40n0r5rq8rmp21zplgdrzblil2kgkpx5s0jbs9i8rr"))))
"0qq6b1kwb1byj8ws33ya5awq0ilkpm32037pi1l4cf2737fg9m42"))))
(build-system gnu-build-system)
(propagated-inputs
(list mpfrcx zlib)) ; Header files included from cm_common.h.
@@ -154,7 +154,7 @@ line applications.")
(define-public fplll
(package
(name "fplll")
(version "5.4.2")
(version "5.3.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -163,7 +163,8 @@ line applications.")
(file-name (git-file-name name version))
(sha256
(base32
"0044nyfnwzgyfrsikbcbh00f54dd61hwn3fb6711rrskkfnw977a"))))
"06nyfidagp8pc2kfcw88ldgb2b1xm0a8z31n0sln7j72ihlmd8zj"))
(patches (search-patches "fplll-std-fenv.patch"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake libtool pkg-config))
@@ -198,14 +199,19 @@ the real span of the lattice.")
(define-public python-fpylll
(package
(name "python-fpylll")
(version "0.5.7")
(version "0.5.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "fpylll" version))
;; Pypi contains and older release, so we use a tagged release from
;; Github instead.
(method git-fetch)
(uri (git-reference
(url "https://github.com/fplll/fpylll")
(commit (string-append version "dev"))))
(file-name (git-file-name name version))
(sha256
(base32
"1xjqcwq90blgzvnbkbzdys8mdhi2b4li6faywm6yi8shxvz8iz0s"))))
"1a25iibihph626jl4wbs4b77xc4a2c4nfc2ypscf9wpani3dnhjf"))))
(build-system python-build-system)
(inputs
(list fplll gmp mpfr pari-gp))
@@ -220,7 +226,7 @@ the real span of the lattice.")
(define-public pari-gp
(package
(name "pari-gp")
(version "2.13.4")
(version "2.13.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -228,7 +234,7 @@ the real span of the lattice.")
version ".tar.gz"))
(sha256
(base32
"11g1pkrj12dmggj1n6r00ijpnmk3f3dpqsf1h51q34hmmv79xpmw"))))
"1jm1cz1687cz8pl8lgvmyk3l33cms1xbayv38ca4z1f60qb7zfnc"))))
(build-system gnu-build-system)
(native-inputs
`(("texlive" ,(texlive-updmap.cfg
@@ -242,7 +248,6 @@ the real span of the lattice.")
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(invoke "./Configure"
"--mt=pthread"
(string-append "--prefix="
(assoc-ref outputs "out"))))))))
(synopsis "PARI/GP, a computer algebra system for number theory")
@@ -302,8 +307,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
version ".tar.gz"))
(sha256
(base32
"1ws2yhzxmm2l5xqqqcjcimmg40f9qq5l9i6d4i5434an9v9s8531"))
(patches (search-patches "cmh-support-fplll.patch"))))
"1ws2yhzxmm2l5xqqqcjcimmg40f9qq5l9i6d4i5434an9v9s8531"))))
(build-system gnu-build-system)
(inputs
(list gmp
@@ -466,7 +470,7 @@ fast arithmetic.")
(define-public arb
(package
(name "arb")
(version "2.22.1")
(version "2.21.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -475,7 +479,7 @@ fast arithmetic.")
(file-name (git-file-name name version))
(sha256
(base32
"0qcyf8a7w95yxap0r3sb7xibk53nbs5kkidja3ljvqpbpk5xvpax"))))
"1lmcl122qy6mr1g1y65bm7dk9fj0sym7gzmvar5vdgk7ln03c5iq"))))
(build-system gnu-build-system)
(propagated-inputs
(list flint)) ; flint.h is included by arf.h
@@ -1017,18 +1021,17 @@ extends it by a set of algebraic capabilities.")
#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(lambda _
(let* ((cores (parallel-job-count))
(dash-j (format #f "-j~a" cores)))
(when tests?
(setenv "EIGEN_SEED" "1") ;for reproducibility
;; First build the tests, in parallel. See
;; <http://eigen.tuxfamily.org/index.php?title=Tests>.
(invoke "make" "buildtests" dash-j)
(setenv "EIGEN_SEED" "1") ;for reproducibility
;; First build the tests, in parallel. See
;; <http://eigen.tuxfamily.org/index.php?title=Tests>.
(invoke "make" "buildtests" dash-j)
;; Then run 'CTest' with -V so we get more
;; details upon failure.
(invoke "ctest" "-V" dash-j))))))))
;; Then run 'CTest' with -V so we get more
;; details upon failure.
(invoke "ctest" "-V" dash-j)))))))
(home-page "https://eigen.tuxfamily.org")
(synopsis "C++ template library for linear algebra")
(description
@@ -1731,14 +1734,14 @@ no more than about 20 bits long).")
(define-public sollya
(package
(name "sollya")
(version "8.0")
(version "7.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.sollya.org/releases/"
"sollya-" version "/sollya-" version ".tar.bz2"))
(sha256
(base32
"1sf1cjcr6x035n97l64ppzb9pzq5568h7waz0zfc3120894gcnjz"))))
"11290ivi9h665cxi8f1shlavhy10vzb8s28m57hrcgnxyxqmhx0m"))))
(build-system gnu-build-system)
(inputs
(list fplll
+6 -16
View File
@@ -4,7 +4,7 @@
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2017, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2020 Andreas Enge <andreas@enge.fr>
@@ -1078,33 +1078,23 @@ backups. It supports encrypted archives.")
(define-public python-miio
(package
(name "python-miio")
(version "0.5.11")
(version "0.5.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-miio" version))
(sha256
(base32
"1dyzzywfa5h6q8clmzxsqmszlby8757ajmvkhdyvq6719z4bn46n"))))
"0a4f5ybjvibawwxcjm3r9nnrzf1yff6wwgy05yzyk0bb3rmc99fp"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "setup.py"
(("cryptography>=35")
"cryptography"))))
(add-after 'unpack 'adjust-for-click-8
(lambda _
(substitute* '("miio/integrations/vacuum/roborock/vacuum.py"
"miio/integrations/vacuum/roborock/vacuum_cli.py")
(("resultcallback")
"result_callback"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv" "miio")))))))
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "miio")))))))
(native-inputs
(list python-pytest
python-pytest-mock
+66 -66
View File
@@ -21,7 +21,6 @@
(define-module (gnu packages antivirus)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
@@ -45,14 +44,14 @@
(define-public clamav
(package
(name "clamav")
(version "0.103.6")
(version "0.103.3")
(source (origin
(method url-fetch)
(uri (string-append "https://www.clamav.net/downloads/production/"
"clamav-" version ".tar.gz"))
(sha256
(base32
"0cxsv5m9pqxxb56qd7hlj11pwmdgm07s3msh3hxk47czq4yjx8da"))
"1sba4zccgwjqk29b5qkgfc9gm794hmk6j7bpj8wilgcz8hc3svlz"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -60,7 +59,8 @@
'("win32" ; unnecessary
"libclamav/c++/llvm" ; use system llvm
"libclamav/tomsfastmath" ; use system tomsfastmath
"libclamunrar")))) ; non-free license
"libclamunrar")) ; non-free license
#t))
(patches
(search-patches "clamav-system-tomsfastmath.patch"
"clamav-config-llvm-libs.patch"))))
@@ -72,70 +72,70 @@
libtool
pkg-config))
(inputs
(list bzip2
curl
json-c
libltdl
libmspack
llvm-3.6 ; requires <3.7, for JIT/verifier
ncurses
libressl
pcre2
cyrus-sasl ; for linking curl with libtool
tomsfastmath
libxml2
zlib))
`(("bzip2" ,bzip2)
("libcurl" ,curl)
("libjson" ,json-c)
("libltdl" ,libltdl)
("libmspack" ,libmspack)
("llvm" ,llvm-3.6) ; requires <3.7, for JIT/verifier
("ncurses" ,ncurses)
("openssl" ,libressl)
("pcre2" ,pcre2)
("sasl" ,cyrus-sasl) ; for linking curl with libtool
("tomsfastmath" ,tomsfastmath)
("xml" ,libxml2)
("zlib" ,zlib)))
(arguments
(list #:configure-flags
#~(let-syntax ((with (syntax-rules ()
((_ name use)
`(#:configure-flags
(let-syntax ((with (syntax-rules ()
((_ name)
(string-append "--with-" name "="
(assoc-ref %build-inputs use))))))
(list "--disable-unrar"
"--enable-llvm"
"--with-system-llvm"
"--with-system-libmspack"
"--without-included-ltdl"
(with "xml" "libxml2")
(with "openssl" "libressl")
(with "libjson" "json-c")
(with "pcre2" "pcre2")
(with "zlib" "zlib")
(with "libcurl" "curl")
;; For sanity, specifying --enable-* flags turns
;; "support unavailable" warnings into errors.
"--enable-bzip2"
"--enable-check"
"--sysconfdir=/etc/clamav"
;; Default database directory needs to be writeable
"--with-dbdir=/var/db/clamav"))
;; install sample .conf files to %output/etc rather than /etc/clamav
#:make-flags
#~(list (string-append "sysconfdir=" %output "/etc"))
#:phases
#~(modify-phases %standard-phases
;; Regenerate configure script. Without this we don't get
;; the correct value for LLVM linker variables.
(add-after 'unpack 'reconf
(lambda _ (invoke "autoreconf" "-vfi")))
(add-before 'configure 'patch-llvm-config
(lambda _
(substitute* '("libclamav/c++/detect.cpp"
"libclamav/c++/ClamBCRTChecks.cpp"
"libclamav/c++/bytecode2llvm.cpp")
(("llvm/Config/config.h") "llvm/Config/llvm-config.h"))
;; `llvm-config --libfiles` inappropriately lists lib*.a
;; libraries, rather than the lib*.so's that our llvm
;; contains. They're used only for listing extra build
;; dependencies, so ignore them until that's fixed.
(substitute* "libclamav/c++/Makefile.in"
(("@LLVMCONFIG_LIBFILES@") ""))))
(add-before 'check 'skip-clamd-tests
;; XXX: The check?_clamd tests fail inside the build
;; chroot, but pass outside.
(lambda _
(substitute* "unit_tests/Makefile"
(("check2_clamd.sh.*check4_clamd.sh") "")))))))
(assoc-ref %build-inputs name))))))
(list "--disable-unrar"
"--enable-llvm"
"--with-system-llvm"
"--with-system-libmspack"
"--without-included-ltdl"
(with "xml")
(with "openssl")
(with "libjson")
(with "pcre2")
(with "zlib")
(with "libcurl")
;; For sanity, specifying --enable-* flags turns
;; "support unavailable" warnings into errors.
"--enable-bzip2"
"--enable-check"
"--sysconfdir=/etc/clamav"
;; Default database directory needs to be writeable
"--with-dbdir=/var/db/clamav"))
;; install sample .conf files to %output/etc rather than /etc/clamav
#:make-flags (list (string-append "sysconfdir=" %output "/etc"))
#:phases (modify-phases %standard-phases
;; Regenerate configure script. Without this we don't get
;; the correct value for LLVM linker variables.
(add-after 'unpack 'reconf
(lambda _ (invoke "autoreconf" "-vfi")))
(add-before 'configure 'patch-llvm-config
(lambda _
(substitute* '("libclamav/c++/detect.cpp"
"libclamav/c++/ClamBCRTChecks.cpp"
"libclamav/c++/bytecode2llvm.cpp")
(("llvm/Config/config.h") "llvm/Config/llvm-config.h"))
;; `llvm-config --libfiles` inappropriately lists lib*.a
;; libraries, rather than the lib*.so's that our llvm
;; contains. They're used only for listing extra build
;; dependencies, so ignore them until that's fixed.
(substitute* "libclamav/c++/Makefile.in"
(("@LLVMCONFIG_LIBFILES@") ""))
#t))
(add-before 'check 'skip-clamd-tests
;; XXX: The check?_clamd tests fail inside the build
;; chroot, but pass outside.
(lambda _
(substitute* "unit_tests/Makefile"
(("check2_clamd.sh.*check4_clamd.sh") ""))
#t)))))
(home-page "https://www.clamav.net")
(synopsis "Antivirus engine")
(description
+28 -47
View File
@@ -2,7 +2,6 @@
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,11 +19,9 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages apl)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages gettext)
#:use-module (gnu packages maths)
@@ -33,46 +30,30 @@
#:use-module (gnu packages sqlite))
(define-public apl
(let ((revision 1550))
(package
(name "apl")
(version (string-append "1.8-r" (number->string revision)))
(source
(origin
(method svn-fetch)
(uri (svn-reference
(url "svn://svn.savannah.gnu.org/apl/trunk")
(revision revision)))
(file-name (git-file-name name version))
(sha256
(base32 "1bgc3a09f35zrqq2irhm1hspppnxjqas0fmcw14hkc7910br9ip3"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/apl/")
(inputs
(list gettext-minimal
lapack
pcre2
readline
sqlite))
(arguments
(list #:configure-flags #~(list (string-append
"--with-sqlite3="
#$(this-package-input "sqlite")))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'fix-configure
(lambda _
(substitute* "buildtag.sh"
;; Don't exit on failed SVN-related calls.
(("^ +return 0\n") "")
;; Manually set the SVN revision, since the directory is
;; unversioned and we know it anyway.
(("^SVNINFO=.*")
(string-append "SVNINFO=" #$(number->string revision) "\n"))
;; Requires running svn info on a versioned directory.
(("\\\\\"\\$ARCHIVE_SVNINFO\\\\\"") "\\\"\\\"")))))))
(synopsis "APL interpreter")
(description
"GNU APL is a free interpreter for the programming language APL. It is
(package
(name "apl")
(version "1.8")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz"))
(sha256
(base32
"1jxvv2h3y1am1fw6r5sn3say1n0dj8shmscbybl0qhqdia2lqkql"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/apl/")
(inputs
`(("gettext" ,gettext-minimal)
("lapack" ,lapack)
("pcre" ,pcre2)
("sqlite" ,sqlite)
("readline" ,readline)))
(arguments
`(#:configure-flags (list (string-append
"--with-sqlite3="
(assoc-ref %build-inputs "sqlite")))))
(synopsis "APL interpreter")
(description
"GNU APL is a free interpreter for the programming language APL. It is
an implementation of the ISO standard 13751.")
(license license:gpl3+))))
(license gpl3+)))
+4 -3
View File
@@ -490,14 +490,14 @@ under permissive licensing terms. See the 'Copyright' file."))))
(define-public ispell
(package
(name "ispell")
(version "3.4.05")
(version "3.4.04")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.cs.hmc.edu/~geoff/tars/ispell-"
version ".tar.gz"))
(sha256
(base32 "00jni7gvdswjd9sdwip5ixnvjg2qzv56mn3m8gdgl9gxwgnns36g"))))
(base32 "0gp1rwn8grkvz28wgisc2j9w9svldnaiahl3lyis118xabqddg47"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f
@@ -520,7 +520,8 @@ under permissive licensing terms. See the 'Copyright' file."))))
(format port "#define BINDIR \"~a/bin\"~%" out)
(format port "#define LIBDIR \"~a/lib/ispell\"~%" out)
(format port "#define MAN1DIR \"~a/share/man/man1\"~%" out)
(format port "#define MAN45DIR \"~a/share/man/man5\"~%" out)))))))))
(format port "#define MAN45DIR \"~a/share/man/man5\"~%" out))))
#t)))))
(inputs
(list grep ncurses))
(native-inputs
+8 -17
View File
@@ -3,7 +3,7 @@
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20172022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
;;; Copyright © 2019 Andy Tai <atai@atai.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -11,7 +11,6 @@
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -182,14 +181,14 @@ speed on x86, NEON on ARM, etc.).")
(define-public fasm
(package
(name "fasm")
(version "1.73.30")
(version "1.73.29")
(source
(origin
(method url-fetch)
(uri (string-append "https://flatassembler.net/fasm-"
version ".tgz"))
(sha256
(base32 "00giqb94z8cxhv20yiyk8axkd2kzjcg1c0841yzbn7c8lm8m06bm"))))
(base32 "0ar1k1504cmwi49y6g254rkzayll0kn90vjd4zj09xv86kcg8a33"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests exist
@@ -343,7 +342,7 @@ package for the Game Boy and Game Boy Color. It consists of:
(define-public wla-dx
(package
(name "wla-dx")
(version "10.1")
(version "9.12")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -352,20 +351,12 @@ package for the Game Boy and Game Boy Color. It consists of:
(file-name (git-file-name name version))
(sha256
(base32
"1nh2k2xn5fj389gq68f3fxgrxakgn8c6dw2ffqay86s3706hac9w"))))
"1wlbqv2rgk9q6m9an1mi0i29250zl8lw7zipki2bbi9mczpyczli"))))
(build-system cmake-build-system)
(native-inputs (list python-sphinx)) ; to generate man pages
(native-inputs
`(("sphinx" ,python-sphinx))) ; to generate man pages
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'check 'copy-tests-to-build-directory
(lambda _
(copy-recursively "../source/tests" "tests")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(let ((sh (which "sh")))
(when tests?
(invoke sh "../source/run_tests.sh"))))))))
`(#:tests? #f)) ; no tests
(home-page "https://github.com/vhelin/wla-dx")
(synopsis "Assemblers for various processors")
(description "WLA DX is a set of tools to assemble assembly files to
+14 -143
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 20182022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
@@ -26,17 +26,19 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages astronomy)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -46,20 +48,16 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages lua)
#:use-module (gnu packages maths)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages time)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
@@ -67,140 +65,12 @@
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
(define-public calceph
(package
(name "calceph")
(version "3.5.1")
(source
(origin
(method url-fetch)
(uri (string-append
"https://www.imcce.fr/content/medias/recherche/equipes/asd/calceph/calceph-"
version ".tar.gz"))
(sha256
(base32 "078wn773pwf4pg9m0h0l00g4aq744pq1rb6kz6plgdpzp3hhpk1k"))))
(build-system gnu-build-system)
(native-inputs
(list gfortran))
(home-page "https://www.imcce.fr/inpop/calceph")
(properties `((release-monitoring-url . ,home-page)))
(synopsis "Astronomical library to access the binary planetary ephemeris files")
(description
"The CALCEPH Library is designed to access the binary planetary ephemeris files,
such INPOPxx and JPL DExxx ephemeris files, (called @code{original JPL binary} or
@code{INPOP 2.0 or 3.0 binary} ephemeris files in the next sections) and the SPICE
kernel files (called @code{SPICE} ephemeris files in the next sections). At the
moment, supported SPICE files are:
@itemize
@item text Planetary Constants Kernel (KPL/PCK) files;
@item binary PCK (DAF/PCK) files;
@item binary SPK (DAF/SPK) files containing segments of type 1, 2, 3, 5, 8, 9,
12, 13, 17, 18, 19, 20, 21, 102, 103 and 120;
@item meta kernel (KPL/MK) files;
@item frame kernel (KPL/FK) files (only basic support).
@end itemize\n")
(license license:cecill)))
(define-public casacore
(package
(name "casacore")
(version "3.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/casacore/casacore")
(commit (string-append "v" version))))
(sha256
(base32
"05ar5gykgh4dm826xplj5ri5rw7znhxrvin2l67a3mjwfys7r2a0"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
(list
;; Note: There are multiple failures in
;; tests which require additional measures data. They are
;; distributed via FTP without any license:
;; ftp://ftp.astron.nl/outgoing/Measures/
;; TODO: Check how to fix tests.
#:tests? #f
#:parallel-build? #t
#:configure-flags
#~(list "-DBUILD_PYTHON3=ON"
"-DBUILD_PYTHON=OFF"
"-DBUILD_TESTING=TRUE"
"-DUSE_HDF5=ON"
"-DUSE_OPENMP=OFF"
"-DUSE_THREADS=ON"
(string-append "-DDATA_DIR=" #$output "/data")
(string-append "-DPYTHON3_EXECUTABLE="
#$(this-package-input "python") "/bin")
(string-append "-DPYTHON3_INCLUDE_DIR="
#$(this-package-input "python") "/include")
(string-append "-DPYTHON3_LIBRARY="
#$(this-package-input "python") "/lib"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-env
(lambda _
(setenv "HOME" "/tmp")))
(add-after 'unpack 'use-absolute-rm
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "casa/OS/test/tFile.run"
(("/bin/rm")
(search-input-file inputs "/bin/rm")))))
(add-after 'unpack 'use-absolute-python3
(lambda _
(substitute* "build-tools/casacore_floatcheck"
(("#!/usr/bin/env python")
(string-append "#!" (which "python3"))))))
;; NOTE: (Sharlatan-20220611T200837+0100): Workaround for casacore
;; tests stuck with missing "qsub" issue.
;; https://github.com/casacore/casacore/issues/1122
(add-after 'unpack 'patch-pre-test-checks
(lambda _
(substitute* "build-tools/casacore_assay"
(("QSUBP=.*$") "QSUBP=\n")
(("YODP=.*$") "YODP=\n")))))))
(native-inputs
(list bison
boost
flex
readline))
(inputs
(list cfitsio
fftw
fftwf
gfortran
hdf5
lapack
ncurses
openblas
python
python-numpy
wcslib))
(home-page "http://casacore.github.io/casacore/")
(synopsis "Suite of C++ libraries for radio astronomy data processing")
(description
"The casacore package contains the core libraries of the old
AIPS++/CASA (Common Astronomy Software Application) package. This split was
made to get a better separation of core libraries and applications.
@url{https://casa.nrao.edu/, CASA} is now built on top of Casacore.")
(license license:gpl2+)))
(define-public cfitsio
(package
(name "cfitsio")
@@ -237,20 +107,21 @@ in FITS files.")
(define-public python-fitsio
(package
(name "python-fitsio")
(version "1.1.7")
(version "1.1.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "fitsio" version))
(sha256
(base32 "0q8siijys9kmjnqvyipjgh6hkhf4fwvr1swhsf4if211i9b0m1xy"))
(base32 "1llql2i6xr9lkdl81jx5nvz80kspamvira90546y32ldy551hq1l"))
(modules '((guix build utils)))
(snippet
;; Remove the bundled cfitsio
`(begin
(delete-file-recursively "cfitsio3490")
(substitute* "MANIFEST.in"
(("recursive-include cfitsio3490.*$\n") ""))))))
(("recursive-include cfitsio3490.*$\n") ""))
#t))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -877,13 +748,13 @@ astronomy and astrophysics.")
(define-public python-astroquery
(package
(name "python-astroquery")
(version "0.4.6")
(version "0.4.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "astroquery" version))
(sha256
(base32 "1vhkzsqlgn3ji5by2rdf2gwklhbyzvpzb1iglalhqjkkrdaaaz1h"))))
(base32 "06xy0qzqmps6z5vwfkh5fkhr151p7g94r2j0mvp1rc8zns22y010"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1495,13 +1366,13 @@ Moon position, etc.")
(define-public python-jplephem
(package
(name "python-jplephem")
(version "2.17")
(version "2.16")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jplephem" version))
(sha256
(base32 "09xaibxnwbzzs3x9g3ibqa2la17z3r6in93321glh02dbibfbip1"))))
(base32 "1xvivnsywjaf5lxn3kyg2jhhq393gcwkjrl634m8dn52ypidrcdb"))))
(build-system python-build-system)
(arguments
`(#:phases
+227 -261
View File
@@ -11,7 +11,7 @@
;;; Copyright © 20162022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018, 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
@@ -110,7 +110,6 @@
#:use-module (gnu packages qt)
#:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
#:use-module (gnu packages samba)
#:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
@@ -617,7 +616,8 @@ Filter) modules follow the convention of 1V / Octave.")
"--enable-jack"
"--enable-sndfile"
"--enable-samplerate"
"--enable-avcodec")))
"--enable-avcodec")
#:python ,python-2))
(inputs
(list jack-1 libsndfile libsamplerate fftwf ffmpeg)) ; for libavcodec
(native-inputs
@@ -1158,7 +1158,7 @@ envelope follower, distortion effects, tape effects and more.")
(define-public snapcast
(package
(name "snapcast")
(version "0.26.0")
(version "0.24.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1167,7 +1167,7 @@ envelope follower, distortion effects, tape effects and more.")
(file-name (git-file-name name version))
(sha256
(base32
"091gf3k1xv3k0m0kf2apr9bwiifw2czjcksd3vzwy544sfgrya08"))))
"13yz8alplnqwkcns3mcli01qbyy6l3h62xx0v71ygcrz371l4g9g"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no included tests
@@ -1914,40 +1914,6 @@ also play midifiles using a Soundfont.")
"Faust is a programming language for realtime audio signal processing.")
(license license:gpl2+)))
;; This version is needed to build older synths that require the lv2synth.cpp
;; architecture file, such as sorcer.
(define-public faust-0.9.67
(package
(inherit faust)
(name "faust")
(version "0.9.67")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/grame-cncm/faust")
(commit (string-append "v"
(string-map (lambda (c)
(if (char=? c #\.) #\- c))
version)))))
(file-name (git-file-name name version))
(sha256
(base32
"0856x666s6ymzk8v15f9gy402dbr8c9v2s40hyfadhraqljmqrm0"))
(snippet
;; Remove prebuilt library
'(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags
#~(list (string-append "prefix=" #$output))
#:tests? #f
#:phases
'(modify-phases %standard-phases
;; no "configure" script
(delete 'configure))))
(native-inputs (list unzip))))
(define-public faust-2
(package
(inherit faust)
@@ -2014,51 +1980,6 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
;; GPLv2+ with exception for compositions using these patches.
(license license:gpl2+)))
(define-public freepats-gm
(package
(name "freepats-gm")
(version "20210329")
(source (origin
(method url-fetch)
(uri (string-append "https://freepats.zenvoid.org/SoundSets/"
"FreePats-GeneralMIDI/FreePatsGM-SF2-" version ".7z"))
(sha256
(base32
"19a1mp9yi33j2zff4mjvhrjz97dwwgjwzfdlf84j9xyydhx0crhc"))))
(build-system trivial-build-system)
(native-inputs
`(("p7zip" ,p7zip)))
(arguments
`(#:modules ((guix build utils))
#:builder
(let ((dir (string-append "FreePatsGM-SF2-" ,version))
(file (string-append "FreePatsGM-" ,version ".sf2"))
(out (string-append %output "/share/soundfonts"))
(doc (string-append %output "/share/doc/freepats-gm-" ,version)))
(use-modules (guix build utils))
(invoke (string-append (assoc-ref %build-inputs "p7zip") "/bin/7z")
"e" (assoc-ref %build-inputs "source")
(string-append dir "/" file)
(string-append dir "/gpl.txt")
(string-append dir "/cc0.txt")
(string-append dir "/readme.txt"))
(mkdir-p out)
(copy-file file (string-append out "/FreePatsGM.sf2"))
(mkdir-p doc)
(for-each
(lambda (file)
(copy-file file (string-append doc "/" file)))
(find-files "." "\\.txt$"))
#t)))
(home-page "https://freepats.zenvoid.org/SoundSets/general-midi.html")
(synopsis "General MIDI sound set")
(description "FreePats is a project to create a free (as in free software)
collection of digital instruments for music production. This sound bank is a
partial release of the General MIDI sound set.")
(license (list
license:gpl3+ ; with sampling exception
license:cc0))))
(define-public guitarix
(package
(name "guitarix")
@@ -2273,23 +2194,23 @@ synchronous execution of all clients, and low latency operation.")
;; jack-2 implement the same API. JACK2 is provided primarily as a client
;; program for users who might benefit from the D-BUS features.
(define-public jack-2
(package
(inherit jack-1)
(package (inherit jack-1)
(name "jack2")
(version "1.9.21")
(version "1.9.14")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jackaudio/jack2")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0sbrffmdbajvrk7iqvsvrnwnpvmicvbjyq3f52r6ashdsznsz03b"))))
(method url-fetch)
(uri (string-append "https://github.com/jackaudio/jack2/releases/"
"download/v" version "/jack2-"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no check target
#:configure-flags '("--dbus" "--alsa")
`(#:tests? #f ; no check target
#:configure-flags '("--dbus"
"--alsa")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'set-linkflags
@@ -2303,13 +2224,16 @@ synchronous execution of all clients, and low latency operation.")
((".*CFLAGS.*-Wall.*" m)
(string-append m
" conf.env.append_unique('LINKFLAGS',"
"'-Wl,-rpath=" %output "/lib')\n")))))
"'-Wl,-rpath=" %output "/lib')\n")))
#t))
(add-after 'install 'wrap-python-scripts
(lambda* (#:key outputs #:allow-other-keys)
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make sure 'jack_control' runs with the correct PYTHONPATH.
(wrap-program (search-input-file outputs "bin/jack_control")
`("GUIX_PYTHONPATH" ":"
prefix (,(getenv "GUIX_PYTHONPATH")))))))))
(let* ((out (assoc-ref outputs "out"))
(path (getenv "GUIX_PYTHONPATH")))
(wrap-program (string-append out "/bin/jack_control")
`("GUIX_PYTHONPATH" ":" prefix (,path))))
#t)))))
(inputs
(list alsa-lib
dbus
@@ -2336,15 +2260,17 @@ synchronous execution of all clients, and low latency operation.")
"05lycfq0f06zjp5xqvzjz9hx9kmqx72yng1lghh76hv63dw43lcj"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f)) ; no check target
`(#:tests? #f ; no check target
#:python ,python-2))
(inputs
(list lv2
lilv
suil
gtk
gtkmm
qtbase-5
jack-1))
`(("lv2" ,lv2)
("lilv" ,lilv)
("suil" ,suil)
("gtk2" ,gtk+-2)
("gtk3" ,gtk+)
("gtkmm" ,gtkmm-2)
("qtbase" ,qtbase-5)
("jack" ,jack-1)))
(native-inputs
(list pkg-config))
(home-page "https://drobilla.net/software/jalv/")
@@ -2596,6 +2522,9 @@ compensation, (de)interleaving, and byte-swapping
cross-platform audio input/output stream library.")
(license license:expat)))
(define-public python2-pyaudio
(package-with-python2 python-pyaudio))
(define-public python-pyliblo
(package
(name "python-pyliblo")
@@ -2622,6 +2551,9 @@ to send and receive OSC messages using a nice and simple Python API. Also
included are the command line utilities @code{send_osc} and @code{dump_osc}.")
(license license:lgpl2.1+)))
(define-public python2-pyliblo
(package-with-python2 python-pyliblo))
(define-public python-soundfile
(package
(name "python-soundfile")
@@ -2829,33 +2761,37 @@ software.")
(description "An LV2 port of the mda EPiano VSTi.")))
(define-public lvtk
;; Use the latest commit, as the latest release was made in 2014 and depends
;; on Python 2.
(let ((commit "a73feabe772f9650aa071e6a4df660e549ab7c48")
(revision "0"))
(package
(name "lvtk")
(version (git-version "1.2.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lvtk/lvtk")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0scmv8b4jlm88d21dqqchjy98wb93zclc9x960h213gdi871vsaj"))))
(build-system waf-build-system)
(arguments (list #:tests? #f)) ;no check target
(inputs (list boost gtkmm lv2))
(native-inputs (list pkg-config))
(home-page "https://github.com/lvtk/lvtk")
(synopsis "C++ libraries for LV2 plugins")
(description
"The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
(package
(name "lvtk")
(version "1.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lvtk/lvtk")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1b01zvzl70ana6l1kn8fgyr7msnn3c7x61cgw7fdpp50322352p8"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no check target
#:python ,python-2
#:configure-flags
(list (string-append "--boost-includes="
(assoc-ref %build-inputs "boost")
"/include"))))
(inputs
(list boost gtkmm-2 lv2))
(native-inputs
(list pkg-config))
(home-page "https://github.com/lvtk/lvtk")
(synopsis "C++ libraries for LV2 plugins")
(description
"The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
extensions into easy to use C++ classes. It is the successor of
lv2-c++-tools.")
(license license:isc))))
(license license:gpl3+)))
(define-public openal
(package
@@ -2992,14 +2928,14 @@ different audio devices such as ALSA or PulseAudio.")
(define-public qjackctl
(package
(name "qjackctl")
(version "0.9.7")
(version "0.9.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz"))
(sha256
(base32
"104hfvr15v8cbkzil8slrqj48y3fl7lx060alj80q1sjh5hl6j2j"))))
"0sqni9ppwadc01fnyqj6lkwy30ql1vccqglv9imd3zdchffjpjir"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no check target
@@ -3181,6 +3117,49 @@ using Guix System.")
;; GNU Library (not Lesser) General Public License.
(license license:lgpl2.0+)))
(define-public raul
(package
(name "raul")
(version "0.8.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.drobilla.net/raul-"
version ".tar.bz2"))
(sha256
(base32
"09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
(build-system waf-build-system)
(arguments
`(#:python ,python-2
#:tests? #f)) ; no check target
(inputs
(list glib boost))
(native-inputs
(list pkg-config))
(home-page "https://drobilla.net/software/raul/")
(synopsis "Real-time audio utility library")
(description
"Raul (Real-time Audio Utility Library) is a C++ utility library primarily
aimed at audio/musical applications.")
(license license:gpl2+)))
(define-public raul-devel
(let ((commit "4db870b2b20b0a608ec0283139056b836c5b1624")
(revision "1"))
(package (inherit raul)
(name "raul")
(version (string-append "0.8.9-" revision "."
(string-take commit 9)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.drobilla.net/raul.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr")))))))
(define-public resample
(package
(name "resample")
@@ -3244,7 +3223,7 @@ tempo and pitch of an audio recording independently of one another.")
(define-public rtmidi
(package
(name "rtmidi")
(version "5.0.0")
(version "4.0.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
@@ -3252,7 +3231,7 @@ tempo and pitch of an audio recording independently of one another.")
(file-name (string-append "rtmidi-" version ".tar.gz"))
(sha256
(base32
"1ff2yfq3k4l209fr71v3w98fpjjv1chs09vkbmxj03lcikahxns8"))))
"1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
(build-system gnu-build-system)
(inputs
(list jack-1 alsa-lib))
@@ -3266,19 +3245,6 @@ classes) that provide a common cross-platform API for realtime MIDI
input/output.")
(license license:expat)))
(define-public rtmidi-4.0
(package
(inherit rtmidi)
(version "4.0.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
"/release/rtmidi-" version ".tar.gz"))
(file-name (string-append "rtmidi-" version ".tar.gz"))
(sha256
(base32
"1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))))
(define-public sratom
(package
(name "sratom")
@@ -4335,6 +4301,9 @@ It is currently fairly complete for PCM devices, and has some support for
mixers.")
(license license:psfl)))
(define-public python2-pyalsaaudio
(package-with-python2 python-pyalsaaudio))
(define-public ldacbt
(package
(name "ldacbt")
@@ -4618,44 +4587,37 @@ representations.")
(file-name (git-file-name name version))
(sha256
(base32
"1mziklmqifhnb4kg9ia2r56r8wjn6xp40bkpf484hsgqvnrccl86"))
(modules '((guix build utils)))
(snippet
#~(begin
(delete-file-recursively "iniparser")
(substitute* "configure.ac"
(("AC_CONFIG_FILES\\(iniparser/Makefile\\)") ""))
(substitute* "Makefile.am"
(("SUBDIRS = iniparser") ""))))))
"1mziklmqifhnb4kg9ia2r56r8wjn6xp40bkpf484hsgqvnrccl86"))))
(build-system gnu-build-system)
(native-inputs (list autoconf automake libtool))
(inputs (list fftw ncurses pulseaudio iniparser))
(native-inputs
(list autoconf automake libtool))
(inputs
(list fftw ncurses pulseaudio))
(arguments
(list #:configure-flags
#~(list (string-append "PREFIX="
#$output)
(string-append "FONT_DIR="
#$output "/share/consolefonts"))
#:make-flags
#~(let ((lib (string-append #$output "/lib")))
(list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib " -lrt")))
#:phases
#~(modify-phases %standard-phases
(replace 'bootstrap
(lambda _
(setenv "HOME"
(getcwd))
(invoke "sh" "autogen.sh")))
(add-before 'build 'make-cava-ldflags
(lambda _
(mkdir-p (string-append #$output "/lib"))))
(add-after 'install 'data
(lambda _
(for-each (lambda (file)
(install-file file
(string-append #$output
"/share/doc/examples")))
(find-files "example_files")))))))
`(#:configure-flags
(list (string-append "PREFIX=" %output)
(string-append "FONT_DIR=" %output "/share/consolefonts"))
#:make-flags
(let ((lib (string-append %output "/lib")))
(list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
#:phases
(modify-phases %standard-phases
(replace 'bootstrap
(lambda* (#:key outputs #:allow-other-keys)
(setenv "HOME" (getcwd))
(invoke "sh" "autogen.sh")))
(add-before 'build 'make-cava-ldflags
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
#t))
(add-after 'install 'data
(lambda* (#:key outputs #:allow-other-keys)
(for-each (lambda (file)
(install-file file
(string-append (assoc-ref outputs "out")
"/share/doc/examples")))
(find-files "example_files"))
#t)))))
(home-page "https://karlstav.github.io/cava/")
(synopsis "Console audio visualizer for ALSA, MPD, and PulseAudio")
(description "C.A.V.A. is a bar audio spectrum visualizer for the terminal
@@ -4983,47 +4945,50 @@ as is the case with audio plugins.")
(base32 "01ngkmfcxyg1bb4qmfvlkkjbx4lx62akxqhizl8zmqnhfcy4p9bx"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ; no "check" target
#:make-flags
#~(list (string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-before 'build 'set-CC-variable-and-show-features
(lambda _
(setenv "CC" #$(cc-for-target))
(invoke "make" "features")))
(add-after 'install 'make-carla-executable
(lambda _
(chmod (string-append #$output "/share/carla/carla") #o555)))
(add-after 'install 'wrap-executables
(lambda* (#:key inputs #:allow-other-keys)
(wrap-script (string-append #$output "/bin/carla")
#:guile (search-input-file inputs "bin/guile")
`("GUIX_PYTHONPATH" ":" prefix
(,(getenv "GUIX_PYTHONPATH")))))))))
`(#:tests? #f ; no "check" target
#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-before 'build 'set-CC-variable-and-show-features
(lambda _
(setenv "CC" "gcc")
(invoke "make" "features")))
(add-after 'install 'make-carla-executable
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(chmod (string-append out "/share/carla/carla") #o555)
#t)))
(add-after 'install 'wrap-executables
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-script (string-append out "/bin/carla")
#:guile (search-input-file inputs "bin/guile")
`("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
#t))))))
(inputs
(list alsa-lib
ffmpeg
fluidsynth
file
liblo
libsndfile
libx11
gtk+-2 ;needed for bridging GTK2 plugins in GTK3 hosts
gtk+
python-pyliblo
python-pyqt
python-rdflib
;; python-pyqt shows the following error without python-wrapper:
;; Error while finding module specification for 'PyQt5.uic.pyuic'
;; (ModuleNotFoundError: No module named 'PyQt5')
python-wrapper
qtbase-5
zlib
`(("alsa-lib" ,alsa-lib)
("ffmpeg" ,ffmpeg)
("fluidsynth" ,fluidsynth)
("file" ,file)
("liblo" ,liblo)
("libsndfile" ,libsndfile)
("gtk2" ,gtk+-2) ;needed for bridging GTK2 plugins in GTK3 hosts
("gtk+" ,gtk+)
("python-pyliblo" ,python-pyliblo)
("python-pyqt" ,python-pyqt)
("python-rdflib" ,python-rdflib)
;; python-pyqt shows the following error without python-wrapper:
;; Error while finding module specification for 'PyQt5.uic.pyuic'
;; (ModuleNotFoundError: No module named 'PyQt5')
("python-wrapper" ,python-wrapper)
("libx11" ,libx11)
("qtbase" ,qtbase-5)
("zlib" ,zlib)
;; For WRAP-SCRIPT above.
guile-2.2))
;; For WRAP-SCRIPT above.
("guile" ,guile-2.2)))
(native-inputs
(list pkg-config))
(home-page "https://kx.studio/Applications:Carla")
@@ -5434,54 +5399,55 @@ while still staying in time.")
(define-public butt
(package
(name "butt")
(version "0.1.34")
(version "0.1.32")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/butt/butt/butt-"
version "/butt-" version ".tar.gz"))
(sha256
(base32
"0zd1g1673pv8z437y34fllxska8dzpd7mygpham35pzwpdyc5c1p"))
"1qwllkx9p1gb3syhbbck3agrk375m82l18fb81aqygi4g3dg3s9r"))
(modules '((guix build utils)))
(snippet
'(substitute* "src/butt.cpp"
((".*zica.*") "")))))
(build-system gnu-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-documentation
(lambda _
(let ((doc (string-append #$output "/share/doc/" #$name)))
(install-file "README" doc)
(copy-file #$(this-package-native-input "manual")
(string-append doc "/butt-manual.pdf"))))))))
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'install-documentation
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(manual (assoc-ref inputs "manual"))
(doc (string-append out "/share/doc/" ,name "-" ,version)))
(install-file "README" doc)
(copy-file manual (string-append doc "/butt-manual.pdf"))))))))
(inputs
`(("dbus" ,dbus)
("flac" ,flac)
("fltk" ,fltk)
("lame" ,lame)
("libfdk" ,libfdk)
("libsamplerate" ,libsamplerate)
("libvorbis" ,libvorbis)
("libx11" ,libx11)
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("libxft" ,libxft)
("libxrender" ,libxrender)
("ogg" ,libogg)
("openssl" ,openssl)
("opus" ,opus)
("portaudio" ,portaudio)))
(native-inputs
`(("pkg-config" ,pkg-config)
("manual"
,(origin
(method url-fetch)
(uri (string-append "https://danielnoethen.de/butt/butt-"
version "_manual.pdf"))
(sha256
(base32 "0kadqzzbk25n0aqxgbqhg4mq4hsbjq44phzcx5qj1b8847yzz8si"))))))
(inputs
(list dbus
flac
fltk
lame
libfdk
libsamplerate
libvorbis
libx11
libxext
libxfixes
libxft
libxrender
libogg
openssl
opus
portaudio))
("manual" ,(origin
(method url-fetch)
(uri (string-append "https://danielnoethen.de/butt/butt-"
version "_manual.pdf"))
(sha256
(base32
"0g70jyyxbx5nin3xs9q9zf878b2kyy7rn8gn9w91x1ychbjd6dhh"))))))
(home-page "https://danielnoethen.de/butt/")
(synopsis "Audio streaming tool")
(description "Butt is a tool to stream audio to a ShoutCast or
+1 -23
View File
@@ -49,7 +49,7 @@
"def_bf[MAXNAMELEN + 10]")))))
(build-system gnu-build-system)
(native-inputs (list pkg-config which))
(inputs (list guile-3.0 perl)) ; for doc generator mdoc
(inputs (list guile-2.2 perl)) ; for doc generator mdoc
(arguments
'(#:configure-flags
;; XXX Needed to build 5.18.16. ./configure fails without it:
@@ -62,28 +62,6 @@
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'support-guile-3.0
;; Upstream bug:
;; https://sourceforge.net/p/autogen/bugs/196/
;;
;; Supported in Debian and openSUSE:
;; https://salsa.debian.org/debian/autogen/-/blob/master/debian/patches/40_suse_04-guile-version.patch
(lambda _
(substitute* "agen5/guile-iface.h"
(("#elif GUILE_VERSION < 203000") "#elif GUILE_VERSION < 301000"))
(substitute* "configure"
(("2.2 2.0 1.8") "3.0 2.2 2.0 1.8"))))
(add-after 'unpack 'use-numeric-ids-in-tarball
;; Pass arguments to tar to generate tarball with consistent uid
;; and gid to ensure reproducible build
(lambda _
(substitute* "pkg/libopts/mklibsrc.sh"
(("--sort=name --format=gnu")
"--sort=name --format=gnu --owner=0 --group=0 --numeric-owner"))))
(add-before 'build 'set-man-page-date
;; Avoid embedding the current date for reproducible builds
(lambda _
(setenv "MAN_PAGE_DATE" "2012-04-18")))
(add-before 'patch-source-shebangs 'patch-test-scripts
(lambda _
(let ((sh (which "sh")))
+3 -15
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2012-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
@@ -324,14 +324,14 @@ output is indexed in many ways to simplify browsing.")
(define-public automake
(package
(name "automake")
(version "1.16.3")
(version "1.16.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
"0fmz2fhmzcpacnprl5msphvaflwiy0hvpgmqlgfny72ddijzfazz"))
"0v8kbw4fan7apbjwziylyjl5z708w452r5q6kpafcmssi04wryl0"))
(patches
(search-patches "automake-skip-amhello-tests.patch"))))
(build-system gnu-build-system)
@@ -519,18 +519,6 @@ complexity of working with shared libraries across platforms.")
(license gpl3+)
(home-page "https://www.gnu.org/software/libtool/")))
(define-public libtool-2.4.7
(package
(inherit libtool)
(version "2.4.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libtool/libtool-"
version ".tar.xz"))
(sha256
(base32
"0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg"))))))
(define-public config
(let ((revision "1")
(commit "c8ddc8472f8efcadafc1ef53ca1d863415fddd5f"))
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -5848,7 +5848,7 @@ CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMD_DC_SI=y
# end of Display Engine Configuration
CONFIG_HSA_AMD=y
# CONFIG_HSA_AMD is not set
CONFIG_DRM_NOUVEAU=m
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
@@ -6304,7 +6304,7 @@ CONFIG_DRM_AMD_DC_SI=y
# CONFIG_DEBUG_KERNEL_DC is not set
# end of Display Engine Configuration
CONFIG_HSA_AMD=y
# CONFIG_HSA_AMD is not set
CONFIG_DRM_NOUVEAU=m
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_DEBUG=5
@@ -6100,7 +6100,7 @@ CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMD_DC_SI=y
# end of Display Engine Configuration
CONFIG_HSA_AMD=y
# CONFIG_HSA_AMD is not set
CONFIG_DRM_NOUVEAU=m
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
@@ -6482,7 +6482,7 @@ CONFIG_DRM_AMD_DC_DCN=y
CONFIG_DRM_AMD_SECURE_DISPLAY=y
# end of Display Engine Configuration
CONFIG_HSA_AMD=y
# CONFIG_HSA_AMD is not set
CONFIG_DRM_NOUVEAU=m
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_DEBUG=5
@@ -5523,7 +5523,7 @@ CONFIG_DRM_AMD_DC=y
# CONFIG_DEBUG_KERNEL_DC is not set
# end of Display Engine Configuration
CONFIG_HSA_AMD=y
# CONFIG_HSA_AMD is not set
CONFIG_DRM_NOUVEAU=m
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
@@ -6108,7 +6108,7 @@ CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
# CONFIG_DEBUG_KERNEL_DC is not set
# end of Display Engine Configuration
CONFIG_HSA_AMD=y
# CONFIG_HSA_AMD is not set
CONFIG_DRM_NOUVEAU=m
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_DEBUG=5
+2 -19
View File
@@ -1,29 +1,12 @@
#! @PYTHON@
# -*- mode: python -*-
import glob
from __future__ import print_function
import os
import sys
import warnings
def __renpy_files(directory):
for pattern in ['*.rpa', '*.rpyc', '*.rpy']:
for file in glob.iglob(pattern, root_dir=directory):
yield file
def path_to_gamedir(basedir, name):
candidates = [name, 'game', 'data', 'launcher/game']
if __renpy_files(basedir):
return basedir
for candidate in candidates:
gamedir = os.path.join(basedir, candidate)
if __renpy_files(gamedir):
return gamedir
return basedir
def path_to_common(renpy_base):
return renpy_base + "/common"
-97
View File
@@ -1,97 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages avr-xyz)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages avr)
#:use-module (gnu packages elf)
#:use-module (gnu packages gl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages version-control)
#:use-module (gnu packages ruby))
(define-public simavr
(package
(name "simavr")
(version "1.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/buserror/simavr")
(commit (string-append "v" version))))
(sha256
(base32 "0njz03lkw5374x1lxrq08irz4b86lzj2hibx46ssp7zv712pq55q"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f
#:modules '((guix build gnu-build-system)
(guix build utils))
#:phases #~(modify-phases %standard-phases
(delete 'configure)
(replace 'check
(lambda* (#:key tests? outputs #:allow-other-keys)
(when tests?
(invoke "make"
"-C"
"tests"
(string-append "CC=" #$(cc-for-target))
"RELEASE=1"
"run_tests")))))
#:make-flags #~(list (string-append "CC=" #$(cc-for-target))
"RELEASE=1"
(string-append "PREFIX=" #$output)
(string-append "DESTDIR=" #$output))))
(propagated-inputs
(list avr-toolchain))
(native-inputs
(list autoconf
which
git
automake
pkg-config
ncurses
ruby))
(inputs
(list bash-minimal libelf freeglut))
(home-page "https://github.com/buserror/simavr")
(synopsis "Lean, mean and hackable simulator for AVR CPUs/MCUs")
(description
"simavr is a new AVR simulator for GNU/Linux or any platform that uses
@command{avr-gcc}. It uses avr-gcc's own register definition to simplify
creating new targets for supported AVR devices. The core was made to be small
and compact, and hackable so allow quick prototyping of an AVR project. The
AVR core is now stable for use with parts with <= 128KB flash, and with
preliminary support for the bigger parts. The simulator loads ELF files
directly, and there is even a way to specify simulation parameterps directly
in the emulated code using an @code{.elf} section. You can also load
multipart HEX files.")
(license license:gpl3)))
+45 -80
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015, 2016, 2017, 2021, 2022 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015, 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
@@ -22,7 +22,6 @@
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Feng Shu <tumashu@163.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -63,7 +62,6 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages digest)
#:use-module (gnu packages dbm)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages ftp)
@@ -72,7 +70,6 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages linux)
@@ -86,7 +83,6 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
@@ -633,13 +629,13 @@ detection, and lossless compression.")
(define-public borg
(package
(name "borg")
(version "1.2.1")
(version "1.1.17")
(source
(origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
(base32 "0cy6chpa053rlvy4448vf9klb5v0v1vq3l76gqa3mcrwjb8y574z"))
(base32 "0x0ncy0b0bmf586hbdgrif3gjmkdw760vfnfxndr493v07y29fbs"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -649,6 +645,8 @@ detection, and lossless compression.")
;; generate the wrong list.
(for-each delete-file
'("src/borg/algorithms/checksums.c"
"src/borg/algorithms/msgpack/_packer.cpp"
"src/borg/algorithms/msgpack/_unpacker.cpp"
"src/borg/chunker.c"
"src/borg/compress.c"
"src/borg/crypto/low_level.c"
@@ -658,12 +656,11 @@ detection, and lossless compression.")
"src/borg/platform/freebsd.c"
"src/borg/platform/linux.c"
"src/borg/platform/posix.c"
"src/borg/platform/syncfilerange.c"
"src/borg/platform/windows.c"))
"src/borg/platform/syncfilerange.c"))
;; Remove bundled shared libraries.
(with-directory-excursion "src/borg/algorithms"
(for-each delete-file-recursively
(list "lz4" "xxh64" "zstd")))
(list "blake2" "lz4" "zstd")))
#t))))
(build-system python-build-system)
(arguments
@@ -675,12 +672,12 @@ detection, and lossless compression.")
(add-after 'unpack 'set-env
(lambda* (#:key inputs #:allow-other-keys)
(let ((openssl (assoc-ref inputs "openssl"))
(libb2 (assoc-ref inputs "libb2"))
(lz4 (assoc-ref inputs "lz4"))
(xxhash (assoc-ref inputs "xxhash"))
(zstd (assoc-ref inputs "zstd")))
(setenv "BORG_OPENSSL_PREFIX" openssl)
(setenv "BORG_LIBB2_PREFIX" libb2)
(setenv "BORG_LIBLZ4_PREFIX" lz4)
(setenv "BORG_LIBXXHASH_PREFIX" xxhash)
(setenv "BORG_LIBZSTD_PREFIX" zstd)
(setenv "PYTHON_EGG_CACHE" "/tmp")
;; The test 'test_return_codes[python]' fails when
@@ -690,37 +687,32 @@ detection, and lossless compression.")
;; The tests need to be run after Borg is installed.
(delete 'check)
(add-after 'install 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
;; Make the installed package available for the test suite.
(add-installed-pythonpath inputs outputs)
;; The tests should be run in an empty directory.
(mkdir-p "tests")
(with-directory-excursion "tests"
(invoke "py.test" "-v" "--pyargs" "borg.testsuite" "-k"
(string-append
;; These tests need to write to '/var'.
"not test_get_cache_dir "
"and not test_get_config_dir "
"and not test_get_keys_dir "
"and not test_get_security_dir "
;; These tests assume there is a root user in '/etc/passwd'.
"and not test_access_acl "
"and not test_default_acl "
"and not test_get_item_uid_gid "
"and not test_non_ascii_acl "
"and not test_create_content_from_command "
"and not test_create_content_from_command_with_failed_command "
"and not test_create_stdin "
;; We don't need to run benchmarks
"and not benchmark "
;; These tests assume the kernel supports FUSE.
"and not test_fuse "
"and not test_fuse_allow_damaged_files "
"and not test_mount_hardlinks "
"and not test_readonly_mount "
"and not test_fuse_versions_view "
"and not test_migrate_lock_alive"))))))
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make the installed package available for the test suite.
(add-installed-pythonpath inputs outputs)
;; The tests should be run in an empty directory.
(mkdir-p "tests")
(with-directory-excursion "tests"
(invoke "py.test" "-v" "--pyargs" "borg.testsuite" "-k"
(string-append
;; These tests need to write to '/var'.
"not test_get_cache_dir "
"and not test_get_config_dir "
"and not test_get_keys_dir "
"and not test_get_security_dir "
;; These tests assume there is a root user in
;; '/etc/passwd'.
"and not test_access_acl "
"and not test_default_acl "
"and not test_non_ascii_acl "
"and not test_create_stdin "
;; This test needs the unpackaged pytest-benchmark.
"and not benchmark "
;; These tests assume the kernel supports FUSE.
"and not test_fuse "
"and not test_fuse_allow_damaged_files "
"and not test_mount_hardlinks "
"and not test_readonly_mount ")))))
(add-after 'install 'install-doc
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -728,10 +720,10 @@ detection, and lossless compression.")
(misc (string-append out "/share/borg/misc")))
(for-each (cut install-file <> misc)
'("docs/misc/create_chunker-params.txt"
"docs/misc/borg-data-flow.png"
"docs/misc/internals-picture.txt"
"docs/misc/prune-example.txt"))
(copy-recursively "docs/man" man))))
(copy-recursively "docs/man" man)
#t)))
(add-after 'install-docs 'install-shell-completions
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -743,27 +735,24 @@ detection, and lossless compression.")
(install-file "zsh/_borg"
(string-append share "/zsh/site-functions"))
(install-file "fish/borg.fish"
(string-append share "/fish/vendor_completions.d")))))))))
(string-append share "/fish/vendor_completions.d")))
#t))))))
(native-inputs
(list python-cython python-dateutil python-setuptools-scm python-pytest))
(list python-cython python-setuptools-scm python-pytest))
(inputs
(list acl
libb2
lz4
openssl
;; This is the latest version of msgpack accepted by 'setup.py'.
python-msgpack-1.0.2
;; FUSE 3 isn't working well, so we stick with FUSE 2 for now:
;; <https://issues.guix.gnu.org/53407>
python-llfuse
`(,zstd "lib")
xxhash))
`(,zstd "lib")))
(synopsis "Deduplicated, encrypted, authenticated and compressed backups")
(description "Borg is a deduplicating backup program. Optionally, it
supports compression and authenticated encryption. The main goal of Borg is to
provide an efficient and secure way to backup data. The data deduplication
technique used makes Borg suitable for daily backups since only changes are
stored. The authenticated encryption technique makes it suitable for storing
backups on untrusted computers.")
stored. The authenticated encryption technique makes it suitable for
storing backups on untrusted computers.")
(home-page "https://www.borgbackup.org/")
(license license:bsd-3)))
@@ -1199,7 +1188,7 @@ additional snapshots).")
uthash
zlib))
(native-inputs
(list autoconf automake check pkg-config))
(list autoconf automake check-0.14 pkg-config))
(home-page "https://burp.grke.org")
(synopsis "Differential backup and restore")
(description "Burp is a network backup and restore program. It attempts
@@ -1343,27 +1332,3 @@ tool. It supports the use of remote backup repositories. It can perform
scheduled backups, and has a graphical tool for browsing and extracting the Borg
archives.")
(license license:gpl3+)))
(define-public grsync
(package
(name "grsync")
(version "1.3.0")
(source (origin
(method url-fetch)
(uri (string-append "http://www.opbyte.it/release/"
"grsync-" version ".tar.gz"))
(sha256
(base32
"1z1m782b50x348kgynzf753apy8yszkl31y32y1jsc055skcdixp"))))
(build-system gnu-build-system)
(native-inputs (list intltool pkg-config))
(inputs (list gtk+))
(propagated-inputs (list rsync))
(home-page "http://www.opbyte.it/grsync/")
(synopsis "GTK frontend for rsync")
(description
"Grsync is a simple graphical interface using GTK for the @command{rsync}
command line program. It currently supports only a limited set of the most
important rsync features, but can be used effectively for local directory
synchronization.")
(license license:gpl2)))
+1 -1
View File
@@ -46,7 +46,7 @@
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "19bwa9qidq2mxv1fkyxxc1xdmv3jx6bj35bkaaw70jzkblnfmlfs"))))
(base32 "10xk9szxxnqgfym53mcd9hqj1cw2ipncmiixw3i3ajlj1vn88qh1"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
+15 -74
View File
@@ -1,11 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
@@ -85,14 +85,14 @@
(define-public hello
(package
(name "hello")
(version "2.12.1")
(version "2.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/hello/hello-" version
".tar.gz"))
(sha256
(base32
"086vqwk2wl8zfs47sq2xpjc9k066ilmb8z6dn0q6ymwjzlm196cd"))))
"1ayhp9v4m4rdhjmnl2bq3cibrbqqkgjbl3s7yk2nhlh8vj3ay16g"))))
(build-system gnu-build-system)
(synopsis "Hello, GNU world: An example GNU package")
(description
@@ -105,14 +105,14 @@ command-line arguments, multiple languages, and so on.")
(define-public grep
(package
(name "grep")
(version "3.6")
(version "3.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz"))
(sha256
(base32
"0gipv6bzkm1aihj0ncqpyh164xrzgcxcv9r1kwzyk2g1mzl1azk6"))
"0g42svbc1nq5bamxfj6x7320wli4dlj86padk0hwgbk04hqxl42w"))
(patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system)
(native-inputs (list perl)) ;some of the tests require it
@@ -293,14 +293,14 @@ interactive means to merge two files.")
(define-public findutils
(package
(name "findutils")
(version "4.8.0")
(version "4.9.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/findutils/findutils-"
version ".tar.xz"))
(sha256
(base32
"0r3i72hnw0a30khlczi9k2c51aamaj6kfmp5mk3844nrjxz7n4jp"))
"1zk2sighc26bfdsm97bv7cd1cnvq7r4gll4zqpnp0rs3kp0bigx2"))
(patches (search-patches "findutils-localstatedir.patch"))))
(build-system gnu-build-system)
(arguments
@@ -742,6 +742,10 @@ the store.")
(guix build utils)
(guix build gnu-build-system))
;; Strip binaries but preserve the symbol table needed by Valgrind:
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
#:strip-flags '("--strip-debug")
#:configure-flags
(list "--sysconfdir=/etc"
@@ -930,60 +934,6 @@ with the Linux kernel.")
;; Below are old libc versions, which we use mostly to build locale data in
;; the old format (which the new libc cannot cope with.)
(define-public glibc-2.32
(package
(inherit glibc)
(version "2.32")
(source (origin
(inherit (package-source glibc))
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
(sha256
(base32
"0di848ibffrnwq7g2dvgqrnn4xqhj3h96csn69q4da51ymafl9qn"))
(patches (search-patches
"glibc-skip-c++.patch"
"glibc-ldd-powerpc.patch"
"glibc-ldd-x86_64.patch"
"glibc-dl-cache.patch"
"glibc-hidden-visibility-ldconfig.patch"
"glibc-versioned-locpath.patch"
"glibc-allow-kernel-2.6.32.patch"
"glibc-reinstate-prlimit64-fallback.patch"
"glibc-supported-locales.patch"
"glibc-hurd-clock_t_centiseconds.patch"
"glibc-2.31-hurd-clock_gettime_monotonic.patch"
"glibc-hurd-signal-sa-siginfo.patch"
"glibc-hurd-mach-print.patch"
"glibc-hurd-gettyent.patch"))
#;
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-hidden-visibility-ldconfig.patch"
"glibc-versioned-locpath.patch"
"glibc-allow-kernel-2.6.32.patch"
"glibc-reinstate-prlimit64-fallback.patch"
"glibc-supported-locales.patch"
"glibc-hurd-clock_t_centiseconds.patch"
"glibc-hurd-clock_gettime_monotonic.patch"
"glibc-hurd-signal-sa-siginfo.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments glibc)
((#:make-flags flags '())
;; Arrange so that /etc/rpc & co. go to $out/etc.
`(list (string-append "sysconfdir="
(assoc-ref %outputs "out")
"/etc")))
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'set-etc-rpc-installation-directory
(lambda* (#:key outputs #:allow-other-keys)
;; Install the rpc data base file under `$out/etc/rpc'.
(let ((out (assoc-ref outputs "out")))
(substitute* "sunrpc/Makefile"
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
(string-append out "/etc/rpc" suffix "\n"))
(("^install-others =.*$")
(string-append "install-others = " out "/etc/rpc\n"))))))))))))
(define-public glibc-2.31
(package
@@ -1229,15 +1179,6 @@ test environments.")
(make-glibc-utf8-locales glibc)))
;; Packages provided to ease use of binaries linked against the previous libc.
(define-public glibc-locales-2.32
(package (inherit (make-glibc-locales glibc-2.32))
(name "glibc-locales-2.32")))
(define-public glibc-locales-2.31
(package (inherit (make-glibc-locales glibc-2.31))
(name "glibc-locales-2.31")))
(define-public glibc-locales-2.30
(package (inherit (make-glibc-locales glibc-2.30))
(name "glibc-locales-2.30")))
(define-public glibc-locales-2.29
(package (inherit (make-glibc-locales glibc-2.29))
(name "glibc-locales-2.29")))
@@ -1304,7 +1245,7 @@ command.")
(name "tzdata")
;; This package should be kept in sync with python-pytz in (gnu packages
;; time).
(version "2022a")
(version "2021e")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1312,7 +1253,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
"0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg"))))
"1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f
@@ -1380,7 +1321,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
"1iysv8fdkm79k8wh8jizmjmq075q4qjhk090vxjy57my6dz5wmzq")))))
"0x8pcfmjvxk29yfh8bklchv2f0vpl4yih0gc4wyx292l78wncijq")))))
(home-page "https://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo)
+14 -5
View File
@@ -1,8 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2017, 2019-2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018, 2019, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
@@ -72,7 +72,7 @@
...))
(define %patch-series-5.1
;; This is the current patches series for 5.0, generated using
;; This is the current patches series for 5.1, generated using
;; 'download-patches' below.
(patch-series
(1 "1ymm8ppss6gyh9ifznjwiabrb4k91npd09c10y7mk66xp8yppc7b")
@@ -82,7 +82,15 @@
(5 "19bdyigdr81824nxvqr6a7k0cax60wq7376j6b91afbnwvlvbjyc")
(6 "051x8wlwrqk0yr0zg378vh824iklfl5g9pkmcdf62qp8gn9pvqbm")
(7 "0fir80pp1gmlpadmqcgkrv4y119pc7xllchjzg05fd7px73viz5c")
(8 "1lfjgshk8i9vch92p5wgc9r90j3phw79aa7gbai89w183b2z6b7j")))
(8 "1lfjgshk8i9vch92p5wgc9r90j3phw79aa7gbai89w183b2z6b7j")
(9 "1vn36dzd9g4y1h3jiss6418crla0rbcd0d6wwsyv9d5l7aaxlp74")
(10 "0amfmvbzsand7bdypylkjdpcp88fa3cplfshn7vyzv2ff2rdgj52")
(11 "0yq24abb4fzfxqnwl20b330sxl9lr9ds0nc4yi30f81l94b1y6aq")
(12 "165bff97ffih49vfs4mkr5w3z5gn1w6zfyrf773iajkw6v48kw8h")
(13 "1bfmgv3lagbk3aq9a831d29xv7jz4sjq7jhn9hq89limyinvdb67")
(14 "1l43dw4kpddn7l41i8wmj406z9abxky1wb3rk8krcys33g4f0kka")
(15 "1w40vzadzx019v0zhs4q6yqycrk04x1k8xs6qb73vk7ny4p6jdqv")
(16 "0krqqljz4bkp9wrdnwfx51bxkb8rkwf8ivc93as1znx5fr7i96c8")))
(define (download-patches store count)
"Download COUNT Bash patches into store. Return a list of
@@ -109,7 +117,8 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
"-DSSH_SOURCE_BASHRC")
" "))
(configure-flags
``("--with-installed-readline"
``("--without-bash-malloc"
"--with-installed-readline"
,,(string-append "CPPFLAGS=" cppflags)
,(string-append
"LDFLAGS=-Wl,-rpath -Wl,"
+39 -115
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017 Dave Love <fx@gnu.org>
;;; Copyright © 20182022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
@@ -39,23 +39,20 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages databases)
#:use-module (gnu packages docbook)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages opencl)
#:use-module (gnu packages perl)
#:use-module (gnu packages php)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
@@ -63,55 +60,49 @@
#:use-module (gnu packages xml)
#:use-module (ice-9 match))
;; Lazily resolve the gcc-toolchain to avoid a circular dependency.
(define gcc-toolchain*
(delay (module-ref (resolve-interface '(gnu packages commencement))
'gcc-toolchain)))
(define-public fio
(package
(name "fio")
(version "3.30")
(version "3.29")
(source (origin
(method url-fetch)
(uri (string-append "https://brick.kernel.dk/snaps/"
"fio-" version ".tar.bz2"))
(sha256
(base32
"1qjivkisn7dxk8irrb0rglmmdpbnai6n7vindf18ln0j24cc1x56"))))
"11k7ksksnb8lcbz0qdc9g7zlzaa0515j7kx4mlhk75sfs43v9zxc"))))
(build-system gnu-build-system)
(arguments
(list #:modules
`(,@%gnu-build-system-modules
(ice-9 textual-ports))
#:test-target "test"
#:configure-flags
#~(list "--disable-native") ;don't generate code for the build CPU
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key (configure-flags ''()) #:allow-other-keys)
;; The configure script doesn't understand some of the
;; GNU options, so we can't use the stock phase.
(apply invoke "./configure"
(string-append "--prefix=" #$output)
configure-flags)))
;; The main `fio` executable is fairly small and self contained.
;; Moving the auxiliary scripts to a separate output saves ~100 MiB
;; on the closure.
(add-after 'install 'move-outputs
(lambda _
(let ((oldbin (string-append #$output "/bin"))
(newbin (string-append #$output:utils "/bin"))
(script? (lambda* (file #:rest _)
(call-with-input-file file
(lambda (port)
(char=? #\# (peek-char port)))))))
(mkdir-p newbin)
(for-each (lambda (file)
(link file (string-append newbin "/" (basename file)))
(delete-file file))
(find-files oldbin script?))))))))
`(#:modules (,@%gnu-build-system-modules
(ice-9 textual-ports))
#:test-target "test"
#:configure-flags '("--disable-native") ;don't generate code for the build CPU
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key (configure-flags ''()) outputs #:allow-other-keys)
;; The configure script doesn't understand some of the
;; GNU options, so we can't use the stock phase.
(let ((out (assoc-ref outputs "out")))
(apply invoke "./configure"
(string-append "--prefix=" out)
configure-flags))))
;; The main `fio` executable is fairly small and self contained.
;; Moving the auxiliary scripts to a separate output saves ~100 MiB
;; on the closure.
(add-after 'install 'move-outputs
(lambda* (#:key outputs #:allow-other-keys)
(let ((oldbin (string-append (assoc-ref outputs "out") "/bin"))
(newbin (string-append (assoc-ref outputs "utils") "/bin"))
(script? (lambda* (file #:rest _)
(call-with-input-file file
(lambda (port)
(char=? #\# (peek-char port)))))))
(mkdir-p newbin)
(for-each (lambda (file)
(link file (string-append newbin "/" (basename file)))
(delete-file file))
(find-files oldbin script?))))))))
(outputs '("out" "utils"))
(inputs
(list libaio python zlib))
@@ -271,81 +262,21 @@ speed, the number of seeks that can be performed per second, and the number of
file metadata operations that can be performed per second.")
(license license:gpl2))) ;GPL 2 only, see copyright.txt
(define-public phoronix-test-suite
(package
(name "phoronix-test-suite")
(version "10.8.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://phoronix-test-suite.com/releases/"
name "-" version ".tar.gz"))
(sha256
(base32
"105shk78jy46nwj6vnlmgp3y3lv9klar3dmcgasy4bslm4l2wx2b"))
(patches (search-patches "phoronix-test-suite-fsdg.patch"))))
(arguments
(list
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda _
(invoke "./install-sh" #$output "--free-software-only")))
(add-after 'install 'wrap-binary
(lambda* (#:key inputs #:allow-other-keys)
(let ((pts (string-append #$output "/bin/phoronix-test-suite")))
(wrap-program pts
(list "PATH" 'prefix
(map (lambda (binary)
(dirname (search-input-file
inputs (string-append "bin/" binary))))
'("bash" "cat" ;coreutils
"gzip" "make" "php" "sed" "tar" "which"))))))))))
(build-system gnu-build-system)
(native-inputs (list python which))
;; Wrap the most basic build tools needed by Phoronix Test Suite to build
;; simple tests such as 'fio'.
(inputs (list bash coreutils gnu-make gzip php sed tar which))
;; Phoronix Test Suite builds and caches the benchmarking tools itself;
;; the user is required to manually install extra libraries depending on
;; the selected test; but at least a working C/C++ toolchain is assumed to
;; be available.
(propagated-inputs (list (force gcc-toolchain*)))
(home-page "https://www.phoronix-test-suite.com/")
(synopsis "Automated testing/benchmarking software")
(description
"The Phoronix Test Suite is a comprehensive testing and benchmarking platform
that provides an extensible framework for which new tests can be easily added.
It can carry out both qualitative and quantitative benchmarks in a clean,
reproducible, and easy-to-use manner, making it easy to compare one particular
setup against another one.")
(license license:gpl3+)))
(define-public python-locust
(package
(name "python-locust")
(version "2.8.6")
(version "2.5.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "locust" version))
(sha256
(base32
"1gn13j758j36knlcdyyyggn60rpw98iqdkvl3kjsz34brysic6q1"))))
"1516z6z5pikybg7pma2cgxgj3wxaaky7z6d30mxf81wd4krbq16s"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "setup.py"
(("setuptools_scm<=6.0.1")
"setuptools_scm")
(("Jinja2<3.1.0")
"Jinja2"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
@@ -367,10 +298,7 @@ setup against another one.")
;; respectively (see:
;; https://github.com/locustio/locust/issues/1708).
"not test_custom_exit_code"
"not test_webserver"
;; This test fails with "AssertionError:
;; 'stopped' != 'stopping'".
"not test_distributed_shape") " and "))))))))
"not test_webserver") " and "))))))))
(propagated-inputs
(list python-configargparse
python-flask
@@ -378,7 +306,6 @@ setup against another one.")
python-flask-cors
python-gevent
python-geventhttpclient
python-jinja2
python-msgpack
python-psutil
python-pyzmq
@@ -387,11 +314,8 @@ setup against another one.")
python-typing-extensions
python-werkzeug))
(native-inputs
(list python-mock
python-pyquery
python-pytest
python-retry
python-setuptools-scm))
(list python-mock python-pyquery python-pytest
python-retry python-setuptools-scm))
(home-page "https://locust.io/")
(synopsis "Distributed load testing framework")
(description "Locust is a performance testing tool that aims to be easy to
+1252 -2413
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+46 -7
View File
@@ -105,11 +105,6 @@
#:glib-or-gtk-wrap-excluded-outputs '("out")
#:phases
(modify-phases %standard-phases
;; Avoid embedding kernel version for reproducible build
(add-after 'unpack 'remove-kernel-version
(lambda _
(substitute* "third-party/miniupnpc/updateminiupnpcstrings.sh"
(("OS_VERSION=`uname -r`") "OS_VERSION=Guix"))))
(add-after 'install 'move-gui
(lambda* (#:key outputs #:allow-other-keys)
;; Move the GUI to its own output, so that "out" doesn't
@@ -231,7 +226,7 @@ XML-RPC over SCGI.")
(define-public tremc
(package
(name "tremc")
(version "0.9.3")
(version "0.9.2")
(source
(origin
(method git-fetch)
@@ -241,7 +236,8 @@ XML-RPC over SCGI.")
(file-name (git-file-name name version))
(sha256
(base32
"11izsgwj435skkgvw96an6ddcm1hk3ff1gji4ksnidlyv6g6npyv"))))
"1fqspp2ckafplahgba54xmx0sjidx1pdzyjaqjhz0ivh98dkx2n5"))
(patches (search-patches "tremc-fix-decodestring.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
@@ -260,6 +256,49 @@ Transmission BitTorrent daemon.")
(home-page "https://github.com/tremc/tremc")
(license l:gpl3+)))
(define-public transmission-remote-cli
(package
(name "transmission-remote-cli")
(version "1.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/fagga/transmission-remote-cli")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"09w9f8vrm61lapin8fmq4rgahr95y3c6wss10g0fgd0kl16f895v"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; only supports Python 2
#:tests? #f ; no test suite
#:phases (modify-phases %standard-phases
;; The software is just a Python script that must be
;; copied into place.
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/share/man/man1"))
;; FIXME install zsh completions
(completions (string-append out "/etc/bash_completion.d")))
(install-file "transmission-remote-cli" bin)
(install-file "transmission-remote-cli.1" man)
(install-file
(string-append
"completion/bash/"
"transmission-remote-cli-bash-completion.sh")
completions)))))))
(synopsis "Console client for the Transmission BitTorrent daemon")
(description "Transmission-remote-cli is a console client, with a curses
interface, for the Transmission BitTorrent daemon. This package is no longer
maintained upstream.")
(home-page "https://github.com/fagga/transmission-remote-cli")
(license l:gpl3+)
(properties `((superseded . ,tremc)))))
(define-public aria2
(package
(name "aria2")
+16 -4
View File
@@ -15,9 +15,8 @@
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021, 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
;;;
;;; This file is part of GNU Guix.
@@ -68,15 +67,21 @@
(define-public boost
(package
(name "boost")
(version "1.77.0")
(version "1.79.0")
(source (origin
(method url-fetch)
(uri (string-append "https://boostorg.jfrog.io/artifactory/main/release/"
version "/source/boost_"
(version-with-underscores version) ".tar.bz2"))
(patches
(list (boost-patch
;; 1.79.0 was released with a segmentation fault:
;; <https://github.com/boostorg/json/issues/692>.
"0001-json-array-erase-relocate.patch" version
"1b0izwj8w92imr8ydzrh522syncprpf82n3kcy6apxn6p54b7p0f")))
(sha256
(base32
"0m08hhk3l7zvzajyk39qlw566q3fhixayhc2j11328qf0gy8b7zw"))))
"0fggarccddj6q4ifj3kn7g565rbhn4ia1vd45fxb7y57a6fmhpa7"))))
(build-system gnu-build-system)
(inputs (list icu4c zlib))
(native-inputs
@@ -278,6 +283,13 @@ across a broad spectrum of applications.")
(define-public boost-with-python3
(deprecated-package "boost-with-python3" boost))
(define-public boost-with-python2
(package/inherit boost
(name "boost-python2")
(native-inputs
`(("python" ,python-2)
,@(alist-delete "python" (package-native-inputs boost))))))
(define-public boost-static
(package
(inherit boost)
+17 -55
View File
@@ -15,7 +15,6 @@
;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -333,18 +332,6 @@ menu to select one of the installed operating systems.")
"/bin/mcopy\"")))
#t))))))))))
(define-public grub-efi32
(package
(inherit grub-efi)
(name "grub-efi32")
(synopsis "GRand Unified Boot loader (UEFI 32bit version)")
(arguments
`(,@(substitute-keyword-arguments (package-arguments grub-efi)
((#:configure-flags flags
''()) `(cons* ,(cond ((target-x86?) "--target=i386")
((target-arm?) "--target=arm"))
,flags)))))))
;; Because grub searches hardcoded paths it's easiest to just build grub
;; again to make it find both grub-pc and grub-efi. There is a command
;; line argument which allows you to specify ONE platform - but
@@ -530,7 +517,7 @@ tree binary files. These are board description files used by Linux and BSD.")
(define u-boot
(package
(name "u-boot")
(version "2022.04")
(version "2021.10")
(source (origin
(patches
(list %u-boot-rockchip-inno-usb-patch
@@ -543,22 +530,19 @@ tree binary files. These are board description files used by Linux and BSD.")
"u-boot-" version ".tar.bz2"))
(sha256
(base32
"1l5w13dznj0z1ibqv2d6ljx2ma1gnf5x5ay3dqkqwxr6750nbq38"))))
"1m0bvwv8r62s4wk4w3cmvs888dhv9gnfa98dczr4drk2jbhj7ryd"))))
(native-inputs
`(("bc" ,bc)
("bison" ,bison)
("dtc" ,dtc)
("gnutls" ,gnutls)
("flex" ,flex)
("lz4" ,lz4)
("tinfo" ,ncurses/tinfo)
("perl" ,perl)
("python" ,python)
("python-coverage" ,python-coverage)
("python-pycryptodomex" ,python-pycryptodomex)
("python-pytest" ,python-pytest)
("swig" ,swig)
("libuuid" ,util-linux "lib")))
("swig" ,swig)))
(build-system gnu-build-system)
(home-page "https://www.denx.de/wiki/U-Boot/")
(synopsis "ARM bootloader")
@@ -927,7 +911,14 @@ to Novena upstream, does not load u-boot.img from the first partition.")
(make-u-boot-package "qemu-riscv64" "riscv64-linux-gnu"))
(define-public u-boot-qemu-riscv64-smode
(make-u-boot-package "qemu-riscv64_smode" "riscv64-linux-gnu"))
(let ((base (make-u-boot-package "qemu-riscv64_smode" "riscv64-linux-gnu")))
(package
(inherit base)
(source (origin
(inherit (package-source u-boot))
(patches
(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"))
@@ -995,37 +986,6 @@ to Novena upstream, does not load u-boot.img from the first partition.")
(lambda* (#:key inputs #:allow-other-keys)
(setenv "BL31"
(search-input-file inputs "/bl31.elf"))))
(add-after 'unpack 'patch-config
(lambda _
(substitute* "configs/rockpro64-rk3399_defconfig"
(("CONFIG_USB=y") "\
CONFIG_USB=y
CONFIG_AHCI=y
CONFIG_AHCI_PCI=y
CONFIG_SATA=y
CONFIG_SATA_SIL=y
CONFIG_SCSI=y
CONFIG_SCSI_AHCI=y
CONFIG_DM_SCSI=y
"))
(substitute* "include/config_distro_bootcmd.h"
(("\"scsi_need_init=false")
"\"setenv scsi_need_init false")
(("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
"#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
(substitute* "include/configs/rockchip-common.h"
(("#define BOOT_TARGET_DEVICES\\(func\\)")
"
#if CONFIG_IS_ENABLED(CMD_SCSI)
#define BOOT_TARGET_SCSI(func) func(SCSI, scsi, 0)
#else
#define BOOT_TARGET_SCSI(func)
#endif
#define BOOT_TARGET_DEVICES(func)")
(("BOOT_TARGET_NVME\\(func\\) \\\\")
"\
BOOT_TARGET_NVME(func) \\
BOOT_TARGET_SCSI(func) \\"))))
;; Phases do not succeed on the bl31 ELF.
(delete 'strip)
(delete 'validate-runpath)))))
@@ -1144,14 +1104,14 @@ tools, and more.")
(define-public os-prober
(package
(name "os-prober")
(version "1.80")
(version "1.79")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://debian/pool/main/o/os-prober/os-prober_"
version ".tar.xz"))
(sha256
(base32 "13z3rshgz5xj0328a80wavdimjw925yha9s1ks398sq0kn5w6qw0"))))
(base32 "1vhhk0bl2j4910513gn5h3z8nsaavyv3c8764bim2klc0xyk3rmb"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@@ -1168,7 +1128,8 @@ tools, and more.")
(substitute* (find-files ".")
(("/usr") (assoc-ref outputs "out")))
(substitute* (find-files "." "50mounted-tests$")
(("mkdir") "mkdir -p"))))
(("mkdir") "mkdir -p"))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(define (find-files-non-recursive directory)
@@ -1199,7 +1160,8 @@ tools, and more.")
(append (find-files-non-recursive (string-append directory "/common"))
(find-files-non-recursive (string-append directory "/x86")))))
(list "os-probes" "os-probes/mounted" "os-probes/init"
"linux-boot-probes" "linux-boot-probes/mounted"))))))))
"linux-boot-probes" "linux-boot-probes/mounted"))
#t))))))
(home-page "https://joeyh.name/code/os-prober")
(synopsis "Detect other operating systems")
(description "os-prober probes disks on the system for other operating
+65 -35
View File
@@ -26,7 +26,6 @@
(define-module (gnu packages bootstrap)
#:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (guix platform)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system)
@@ -315,29 +314,33 @@ or false to signal an error."
(%current-system))))
"Return the name of Glibc's dynamic linker for SYSTEM."
;; See the 'SYSDEP_KNOWN_INTERPRETER_NAMES' cpp macro in libc.
(let ((platform (lookup-platform-by-system system)))
(cond
((platform? platform)
(platform-glibc-dynamic-linker platform))
(cond ((string=? system "x86_64-linux") "/lib/ld-linux-x86-64.so.2")
((string=? system "i686-linux") "/lib/ld-linux.so.2")
((string=? system "armhf-linux") "/lib/ld-linux-armhf.so.3")
((string=? system "mips64el-linux") "/lib/ld.so.1")
((string=? system "i586-gnu") "/lib/ld.so.1")
((string=? system "i686-gnu") "/lib/ld.so.1")
((string=? system "aarch64-linux") "/lib/ld-linux-aarch64.so.1")
((string=? system "powerpc-linux") "/lib/ld.so.1")
((string=? system "powerpc64-linux") "/lib/ld64.so.1")
((string=? system "powerpc64le-linux") "/lib/ld64.so.2")
((string=? system "alpha-linux") "/lib/ld-linux.so.2")
((string=? system "s390x-linux") "/lib/ld64.so.1")
((string=? system "riscv64-linux") "/lib/ld-linux-riscv64-lp64d.so.1")
;; TODO: Define those as platforms.
((string=? system "i686-gnu") "/lib/ld.so.1")
((string=? system "powerpc64-linux") "/lib/ld64.so.1")
((string=? system "alpha-linux") "/lib/ld-linux.so.2")
;; XXX: This one is used bare-bones, without a libc, so add a case
;; here just so we can keep going.
((string=? system "arm-elf") "no-ld.so")
((string=? system "arm-eabi") "no-ld.so")
((string=? system "xtensa-elf") "no-ld.so")
((string=? system "avr") "no-ld.so")
((string=? system "propeller-elf") "no-ld.so")
((string=? system "i686-mingw") "no-ld.so")
((string=? system "x86_64-mingw") "no-ld.so")
((string=? system "vc4-elf") "no-ld.so")
;; XXX: This one is used bare-bones, without a libc, so add a case
;; here just so we can keep going.
((string=? system "arm-elf") "no-ld.so")
((string=? system "arm-eabi") "no-ld.so")
((string=? system "xtensa-elf") "no-ld.so")
((string=? system "avr") "no-ld.so")
((string=? system "propeller-elf") "no-ld.so")
((string=? system "i686-mingw") "no-ld.so")
((string=? system "x86_64-mingw") "no-ld.so")
((string=? system "vc4-elf") "no-ld.so")
(else (error "dynamic linker name not known for this system"
system)))))
(else (error "dynamic linker name not known for this system"
system))))
;;;
@@ -658,12 +661,23 @@ $out/bin/guile --version~%"
(origin
(method url-fetch)
(uri (map (cute string-append <>
"/i686-linux/20190815/"
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
(match system
((or "armhf-linux" "aarch64-linux")
(string-append
"/armhf-linux/20201219/"
"linux-libre-headers-stripped-5.4.20-armhf-linux.tar.xz"))
((or "i686-linux" "x86_64-linux")
(string-append
"/i686-linux/20190815/"
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz"))))
%bootstrap-base-urls))
(sha256
(base32
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
(match system
((or "armhf-linux" "aarch64-linux")
"0d010sp3n2q6cc3ppcgrxrdlgkgr3vlv3x76wz14gc3xfhnnm2x5")
((or "i686-linux" "x86_64-linux")
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))))
#f ; no program to test
"Bootstrap linux-libre-headers"))
@@ -965,17 +979,25 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
(origin
(method url-fetch)
(uri (map
(cute string-append <>
"/i686-linux/20190815/"
"mescc-tools-static-stripped-0.5.2-i686-linux.tar.xz")
(cut string-append <> (%current-system) "/"
(match (%current-system)
((or "armhf-linux" "aarch64-linux")
"20221016/mescc-tools-static-stripped-1.4.0-armhf-linux.tar.xz")
((or "i686-linux" "x86_64-linux")
"20190815/mescc-tools-static-stripped-0.5.2-i686-linux.tar.xz")))
%bootstrap-base-urls))
(sha256
(base32
"0c3kklgghzh4q2dbpl6asb74cimp7hp6jscdwqwmzxbapgcl6582")))))))
(match (%current-system)
((or "armhf-linux" "aarch64-linux")
"0ldpxi17c6bgxi8sp84k0f49q0s4xn2nbg89qav594slhq3px9lv")
((or "i686-linux" "x86_64-linux")
"0c3kklgghzh4q2dbpl6asb74cimp7hp6jscdwqwmzxbapgcl6582")))))))))
(synopsis "Bootstrap binaries of MesCC Tools")
(description synopsis)
(home-page #f)
(supported-systems '("i686-linux" "x86_64-linux"))
(supported-systems '("armhf-linux" "aarch64-linux"
"i686-linux" "x86_64-linux"))
(license gpl3+)))
(define %bootstrap-mes
@@ -1014,14 +1036,22 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
(origin
(method url-fetch)
(uri (map
(cute string-append <>
"/i686-linux/20190815/"
"mes-minimal-stripped-0.19-i686-linux.tar.xz")
(cute string-append <> (%current-system) "/"
(match (%current-system)
((or "armhf-linux" "aarch64-linux")
"20201217/mes-minimal-stripped-0.22-115-gdacaed9fe-armhf-linux.tar.xz")
((or "i686-linux" "x86_64-linux")
"20190815/mes-minimal-stripped-0.19-i686-linux.tar.xz")))
%bootstrap-base-urls))
(sha256
(base32
"1q4xjpx6nbn44kxnilpgl12bhpmwy2bblzwszc2ci7xkf400jcpv")))))))
(supported-systems '("i686-linux" "x86_64-linux"))
(match (%current-system)
((or "armhf-linux" "aarch64-linux")
"0daz658r9psmqxjkayvr8ymql6h4gf11gwdd4k3mdv7czc5ak399")
((or "i686-linux" "x86_64-linux")
"1q4xjpx6nbn44kxnilpgl12bhpmwy2bblzwszc2ci7xkf400jcpv")))))))))
(supported-systems '("armhf-linux" "aarch64-linux"
"i686-linux" "x86_64-linux"))
(synopsis "Bootstrap binaries of Mes")
(description synopsis)
(home-page #f)
+2 -2
View File
@@ -51,7 +51,7 @@ supported content to the Kodi media center.")
(define ublock-origin
(package
(name "ublock-origin")
(version "1.43.0")
(version "1.41.6")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
@@ -62,7 +62,7 @@ supported content to the Kodi media center.")
(file-name (git-file-name name version))
(sha256
(base32
"0w0by41v1s1cbd3bfjlb7kxr2bl6r5z3jvizlx02x14hqlppma9k"))))
"05flr4jksa3l4cwi0fgkzmzn46rg5znaqd73615lwnxmnpr4va9d"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(arguments
+2 -2
View File
@@ -102,7 +102,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
(define-public bear
(package
(name "bear")
(version "3.0.19")
(version "3.0.17")
(source
(origin
(method git-fetch)
@@ -111,7 +111,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "05jbcx5m923dg27j3i442hc73hdci5n7vp7a671x1w7bdivgqg96"))))
(base32 "0klbk99qphibrp2944w8gn6x1dwwgrbm7f2bh530wjp5h3bpkr45"))))
(build-system cmake-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
+22 -15
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20182022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -34,7 +34,7 @@
(define-public busybox
(package
(name "busybox")
(version "1.34.1")
(version "1.33.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -42,20 +42,22 @@
version ".tar.bz2"))
(sha256
(base32
"0jfm9fik7nv4w21zqdg830pddgkdjmplmna9yjn9ck1lwn4vsps1"))))
"0a0dcvsh7nxnhxc5y73fky0z30i9p7r30qfidm2akn0n5fywdkhj"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'configure 'disable-timestamps
(lambda _
(setenv "KCONFIG_NOTIMESTAMP" "1")))
(setenv "KCONFIG_NOTIMESTAMP" "1")
#t))
(add-before 'configure 'disable-taskset
;; This feature fails its tests in the build environment,
;; was default 'n' until after 1.26.2.
(lambda _
(substitute* "util-linux/taskset.c"
(("default y") "default n"))))
(("default y") "default n"))
#t))
(replace 'configure
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "defconfig" make-flags)))
@@ -63,7 +65,8 @@
(lambda _
(substitute* ".config"
(("# CONFIG_INSTALL_NO_USR is not set")
"CONFIG_INSTALL_NO_USR=y"))))
"CONFIG_INSTALL_NO_USR=y"))
#t))
(replace 'check
(lambda* (#:key make-flags #:allow-other-keys)
(substitute* '("testsuite/du/du-s-works"
@@ -120,7 +123,7 @@ any small or embedded system.")
(define-public toybox
(package
(name "toybox")
(version "0.8.7")
(version "0.8.6")
(source (origin
(method url-fetch)
(uri (string-append
@@ -128,18 +131,17 @@ any small or embedded system.")
version ".tar.gz"))
(sha256
(base32
"150lvp7hf9ndafvmr42kb8xi86hxjd2zj4binwwhgjw2dwrvy25m"))))
"0jq3368jps6jg717ikzhlc6whml3k2s9xy69zpj4i0r35c5ck622"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "HOSTCC=gcc")
(string-append "PREFIX=" #$output))
#:phases
(list #:phases
#~(modify-phases %standard-phases
(add-before 'configure 'set-environment-variables
(lambda _
(setenv "CC" #$(cc-for-target))
(setenv "HOSTCC" (which "gcc"))))
(replace 'configure
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "defconfig" make-flags)))
(lambda _ (invoke "make" "defconfig")))
(add-before 'check 'fix-or-skip-broken-tests
(lambda _
;; Some tests expect $USER to magically be the current user.
@@ -149,6 +151,11 @@ any small or embedded system.")
;; Delete tests that expect a root or 0 user to exist.
(substitute* "tests/id.test"
(("^testing .*[ \\(]root.*") ""))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make"
(string-append "PREFIX=" #$output)
"install")))
(add-after 'install 'remove-usr-directory
(lambda* (#:key outputs #:allow-other-keys)
(delete-file-recursively (string-append #$output "/usr")))))
+39 -199
View File
@@ -1,9 +1,9 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018, 20202022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -12,9 +12,6 @@
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 David Dashyan <mail@davie.li>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org>
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,7 +37,6 @@
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix store)
#:use-module (gnu packages)
@@ -147,75 +143,10 @@ compiler while still keeping it small, simple, fast and understandable.")
;; preferred. See http://pcc.ludd.ltu.se/licenses/ for more details.
(license (list license:bsd-2 license:bsd-3))))
(define-public qbe
(package
(name "qbe")
(version "1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://c9x.me/qbe")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0qx4a3fjjrp2m4dsn19rpbjf89k9w7w7l09s96jx8vv15vzsdgis"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'allow-cross-compilation
(lambda _
(substitute* "Makefile"
(("`uname -m`") #$(or (%current-target-system)
(%current-system))))))
(delete 'configure))))
(supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux"))
(synopsis "Simple compiler backend")
(description
"QBE is a small compiler backend using an SSA-based intermediate
language as input.")
(home-page "https://c9x.me/compile/")
(license license:expat)))
(define-public python-pcpp
(package
(name "python-pcpp")
(version "1.30")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ned14/pcpp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1rihvlg11nzk70kfzz4i3gi5izcy46w05ismcx04p5j1hlim0brb"))))
(build-system python-build-system)
(arguments
(list
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'unbundle-ply
(lambda _
(rmdir "pcpp/ply")
(substitute* "setup.py"
(("'pcpp/ply/ply'") "")))))))
(native-inputs (list python-pytest))
(propagated-inputs (list python-ply))
(home-page "https://github.com/ned14/pcpp")
(synopsis "C99 preprocessor written in Python")
(description "This package provides a C99 preprocessor written in pure
Python.")
(license license:bsd-3)))
(define-public libbytesize
(package
(name "libbytesize")
(version "2.6")
(version "2.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -223,12 +154,14 @@ Python.")
"download/" version "/libbytesize-" version ".tar.gz"))
(sha256
(base32
"0h87ryi0mp8msq43h1cna453cqaw5knx1xaggfzm4fxvn8sjpapg"))))
"1aivwypmnqcaj2230pifvf3jcgl5chja8rspkxf0j3480asm8g5r"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f))
(native-inputs
(list gettext-minimal pkg-config python))
`(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)
("python" ,python)))
(inputs
(list mpfr pcre2))
(home-page "https://github.com/storaged-project/libbytesize")
@@ -306,11 +239,6 @@ Its three main components are:
(build-system gnu-build-system)
(native-inputs
(list autoconf automake libtool pkg-config check))
(native-search-paths
(list
(search-path-specification
(variable "C_INCLUDE_PATH")
(files '("include")))))
(synopsis "Thin wrapper over POSIX syscalls")
(description
"The purpose of libfixposix is to offer replacements for parts of POSIX
@@ -320,14 +248,14 @@ whose behaviour is inconsistent across *NIX flavours.")
(define-public libhx
(package
(name "libhx")
(version "4.3")
(version "4.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://inai.de/files/libhx/"
"libHX-" version ".tar.xz"))
(sha256
(base32 "06zkzaya6j3vaafz80qcgn5qcri047003bhmjisv5sbikcw97jqy"))))
(base32 "1ri3sxiw5a8br27j7f20s40kihfvq6mmxzcrx68zydiwyxjvf5jj"))))
(build-system gnu-build-system)
(home-page "https://inai.de/projects/libhx/")
(synopsis "C library with common data structures and functions")
@@ -399,7 +327,7 @@ as dictionaries, skip lists, and memory pools.")
(define-public packcc
(package
(name "packcc")
(version "1.7.2")
(version "1.5.0")
(home-page "https://github.com/arithy/packcc")
(source (origin
(method git-fetch)
@@ -409,7 +337,7 @@ as dictionaries, skip lists, and memory pools.")
(file-name (git-file-name name version))
(sha256
(base32
"1mb6ys5ylvjz0xpq6769ir98s80p98s9ahd0c9k8p2ra1w20vz33"))))
"1n9ivsa6b9ps2jbh34bycjqjpbwbk85l4jjg46pfhqxzz96793wy"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@@ -433,7 +361,8 @@ as dictionaries, skip lists, and memory pools.")
(install-file "release/bin/packcc"
(string-append out "/bin"))
(install-file "../../README.md"
(string-append out "/share/doc/packcc"))))))))
(string-append out "/share/doc/packcc"))
#t))))))
(native-inputs
(list bats))
(synopsis "Packrat parser generator for C")
@@ -652,33 +581,11 @@ portability.")
(license (list license:bsd-2 ;all files except...
license:bsd-3)))) ;...the unidef.1 manual page
(define-public byacc
(package
(name "byacc")
(version "20220128")
(source (origin
(method url-fetch)
(uri (string-append
"https://invisible-mirror.net/archives/byacc/byacc-"
version ".tgz"))
(sha256
(base32
"173l5pdzgqk2ld6lf0ablii0iiw07sry2vrjfrm4wc99qmf81ha2"))))
(build-system gnu-build-system)
(home-page "https://invisible-island.net/byacc/byacc.html")
(synopsis "Berkeley Yacc LALR parser generator")
(description
"Berkeley Yacc is an LALR(1) parser generator. Yacc reads the grammar
specification from a file and generates an LALR(1) parser for it. The parsers
consist of a set of LALR(1) parsing tables and a driver routine written in the
C programming language.")
(license license:public-domain)))
(define-public aws-c-common
(package
(name "aws-c-common")
;; Update only when updating aws-crt-cpp.
(version "0.6.20")
; Update only when updating aws-crt-cpp.
(version "0.6.11")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -687,13 +594,12 @@ C programming language.")
(file-name (git-file-name name version))
(sha256
(base32
"089grcj58n4xs41kmnpaqpwsalcisjbqqb5yqahxxyfx2lf1j9c9"))))
"1v4dhygiynl75y3702lbp9j8kph88j4f2sq39s4lkhn6lmbz5f0f"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
'("-DBUILD_SHARED_LIBS=ON")))
(synopsis "Amazon Web Services core C library")
(supported-systems '("i686-linux" "x86_64-linux"))
(description
"This library provides common C99 primitives, configuration, data
structures, and error handling for the @acronym{AWS,Amazon Web Services} SDK.")
@@ -703,7 +609,7 @@ C programming language.")
(define-public aws-checksums
(package
(name "aws-checksums")
;; Update only when updating aws-crt-cpp.
; Update only when updating aws-crt-cpp.
(version "0.1.12")
(source (origin
(method git-fetch)
@@ -732,7 +638,7 @@ with fallback to efficient C99 software implementations.")
(define-public aws-c-event-stream
(package
(name "aws-c-event-stream")
;; Update only when updating aws-crt-cpp.
; Update only when updating aws-crt-cpp.
(version "0.2.7")
(source (origin
(method git-fetch)
@@ -764,8 +670,8 @@ communication.")
(define-public aws-c-io
(package
(name "aws-c-io")
;; Update only when updating aws-crt-cpp.
(version "0.10.20")
; Update only when updating aws-crt-cpp.
(version "0.10.9")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -774,7 +680,7 @@ communication.")
(file-name (git-file-name name version))
(sha256
(base32
"07l5rfbm1irkigfv51sfygs992af8rxicmay97frbx6z21khdjnr"))))
"14rxa3k842fgk43702nz7z9y3clfhvax8j0k93i0c5vg14wj38yp"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@@ -793,8 +699,8 @@ event-driven, asynchronous network application protocols.")
(define-public aws-c-cal
(package
(name "aws-c-cal")
;; Update only when updating aws-crt-cpp.
(version "0.5.17")
; Update only when updating aws-crt-cpp.
(version "0.5.12")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -803,7 +709,7 @@ event-driven, asynchronous network application protocols.")
(file-name (git-file-name name version))
(sha256
(base32
"0gd7xfzv509vcysifzfa8j2rykkc1prhiry7953snblkzm7airm5"))))
"09zqf610x4g2mcjcaf9nh88k6dkw14pi721yr8hxb5rmsx7rlfrb"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@@ -821,34 +727,6 @@ cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.")
(home-page "https://github.com/awslabs/aws-c-cal")
(license license:asl2.0)))
(define-public aws-c-sdkutils
(package
(name "aws-c-sdkutils")
;; Update only when updating aws-crt-cpp.
(version "0.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url (string-append "https://github.com/awslabs/" name))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"14wpl3dxwjbbzas44v6m6m3ll89rgz34x9gb140qz624gwzs9v0v"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
(list "-DBUILD_SHARED_LIBS=ON"
(string-append "-DCMAKE_PREFIX_PATH="
(assoc-ref %build-inputs "aws-c-common")))))
(propagated-inputs
(list aws-c-common))
(synopsis "Amazon Web Service utility library")
(description "This library provides for parsing and management of profiles
for the @acronym{AWS,Amazon Web Services} SDK.")
(home-page "https://github.com/awslabs/aws-c-sdkutils")
(license license:asl2.0)))
(define-public pcl
(package
(name "pcl")
@@ -871,8 +749,8 @@ low level functionality for coroutines.")
(define-public aws-c-http
(package
(name "aws-c-http")
;; Update only when updating aws-crt-cpp.
(version "0.6.13")
; Update only when updating aws-crt-cpp.
(version "0.6.7")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -881,7 +759,7 @@ low level functionality for coroutines.")
(file-name (git-file-name name version))
(sha256
(base32
"125glc9b3906r95519zqfbzzz6wj5ib4im2n45yxrigwkkpffbq9"))))
"1s06bz6w7355ldyhwjidcpbff7591ch4lwwjcj47a6k2kczdmiz4"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@@ -901,7 +779,7 @@ specifications.")
(define-public aws-c-compression
(package
(name "aws-c-compression")
;; Update only when updating aws-crt-cpp.
; Update only when updating aws-crt-cpp.
(version "0.2.14")
(source (origin
(method git-fetch)
@@ -930,8 +808,8 @@ currently limited to Huffman encoding and decoding.")
(define-public aws-c-auth
(package
(name "aws-c-auth")
;; Update only when updating aws-crt-cpp.
(version "0.6.11")
; Update only when updating aws-crt-cpp.
(version "0.6.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -940,7 +818,7 @@ currently limited to Huffman encoding and decoding.")
(file-name (git-file-name name version))
(sha256
(base32
"0frfnbifkrib9l68mj92a3g1x8xc8hpdlzbga2a801zgf2flx4fy"))
"120p69lj279yq3d2b81f45kgfrvf32j6m7s03m8hh27w8yd4vbfp"))
(patches
(search-patches
"aws-c-auth-install-private-headers.patch"))))
@@ -952,7 +830,7 @@ currently limited to Huffman encoding and decoding.")
(assoc-ref %build-inputs "aws-c-common"))
"-DENABLE_NET_TESTS=OFF")))
(propagated-inputs
(list aws-c-cal aws-c-common aws-c-http aws-c-io aws-c-sdkutils))
(list aws-c-cal aws-c-common aws-c-http aws-c-io))
(synopsis "Amazon Web Services client-side authentication library")
(description
"This library provides a C99 implementation for AWS client-side
@@ -963,8 +841,8 @@ authentication.")
(define-public aws-c-s3
(package
(name "aws-c-s3")
;; Update only when updating aws-crt-cpp.
(version "0.1.38")
; Update only when updating aws-crt-cpp.
(version "0.1.26")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -973,7 +851,7 @@ authentication.")
(file-name (git-file-name name version))
(sha256
(base32
"0n2y8hzb1bx3vnzlpb5hsav18dg33pwav0mpji6krz98y2l8msya"))))
"0gaxnwwk0jbvkgjnxcgchq13xmn7jk5vjvjsps6b0vaz6bf12wv8"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@@ -982,7 +860,7 @@ authentication.")
(assoc-ref %build-inputs "aws-c-common"))
"-DENABLE_NET_TESTS=OFF")))
(propagated-inputs
(list aws-c-auth aws-c-http aws-checksums))
(list aws-c-auth aws-c-http))
(synopsis "Amazon Web Services client library for Amazon S3")
(description
"This library provides a C99 client implementation of the Simple Storage
@@ -993,8 +871,8 @@ Service (S3) protocol for object storage.")
(define-public aws-c-mqtt
(package
(name "aws-c-mqtt")
;; Update only when updating aws-crt-cpp.
(version "0.7.10")
; Update only when updating aws-crt-cpp.
(version "0.7.8")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1003,7 +881,7 @@ Service (S3) protocol for object storage.")
(file-name (git-file-name name version))
(sha256
(base32
"0qmzx8b4wcsq9s99q2zrhx1s3jdmfy8zs16qys9bqv45gspi3ybr"))))
"19j6nw2v36c4yff4p0fbf0748s06fd5r9cp2yakry9ybn1ada99c"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@@ -1134,41 +1012,3 @@ performance concurrent systems developed in C99+.")
C and C++. The functions it provides are like those from the C header
string.h, but with a utf8* prefix instead of the str* prefix.")
(license license:unlicense))))
(define-public utest-h
;; The latest commit is used as there is no release.
(let ((commit "54458e248f875f1a51f0af8bec8ca6ae7761b9d1")
(revision "0"))
(package
(name "utest-h")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sheredom/utest.h")
(commit commit)))
(file-name (git-file-name "utest.h" version))
(sha256
(base32
"1ikl5jwmjdw1mblqyl2kvnqwkjgaz78c1h7mjcfmzjc0d3h8kh44"))))
(build-system cmake-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(delete 'build)
(delete 'configure)
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "test"
(invoke "cmake" ".")
(invoke "make")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "utest.h"
(string-append out "/include"))))))))
(home-page "https://www.duskborn.com/utest_h/")
(synopsis "Single-header unit testing framework for C and C++")
(description
"This package provides a header-only unit testing library for C/C++.")
(license license:unlicense))))
-1
View File
@@ -50,7 +50,6 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages sphinx)
+3 -3
View File
@@ -2,7 +2,7 @@
;;; Copyright © 2014, 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021, 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,14 +32,14 @@
(define-public ccache
(package
(name "ccache")
(version "4.6.1")
(version "4.5.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/ccache/ccache/releases/download/v"
version "/ccache-" version ".tar.xz"))
(sha256
(base32 "1lgk6fbfsnh2fscjmhpak8gwp3njq3kr0ihjcjlas15mrg9ppm75"))))
(base32 "05wmflxdc8h3d00gr3kilr5dmrqxj6lcmq9ic575ydi60fz6w62i"))))
(build-system cmake-build-system)
(native-inputs (list perl ; for test/run
(@ (gnu packages base) which)))
+21 -23
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016-2017, 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -28,7 +28,6 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
@@ -160,27 +159,26 @@ that was originally contributed to Debian.")
(inputs '())
(propagated-inputs '())
(arguments
(list #:modules '((guix build gnu-build-system)
(guix build utils)
(rnrs io ports)
(srfi srfi-26))
#:phases
#~(modify-phases
(map (cut assq <> %standard-phases)
'(set-paths install-locale unpack))
(add-after 'unpack 'install
(lambda _
(let ((certsdir (string-append #$output
"/etc/ssl/certs/")))
(with-directory-excursion "nss/lib/ckfw/builtins/"
(unless (file-exists? "blacklist.txt")
(call-with-output-file "blacklist.txt" (const #t)))
;; Extract selected single certificates from blob.
(invoke "certdata2pem")
;; Copy .pem files into the output.
(for-each (cut install-file <> certsdir)
(find-files "." ".*\\.pem$")))
(invoke "openssl" "rehash" certsdir)))))))
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(rnrs io ports)
(srfi srfi-26))
#:phases
(modify-phases
(map (cut assq <> %standard-phases)
'(set-paths install-locale unpack))
(add-after 'unpack 'install
(lambda _
(let ((certsdir (string-append %output "/etc/ssl/certs/")))
(with-directory-excursion "nss/lib/ckfw/builtins/"
(unless (file-exists? "blacklist.txt")
(call-with-output-file "blacklist.txt" (const #t)))
;; Extract selected single certificates from blob.
(invoke "certdata2pem")
;; Copy .pem files into the output.
(for-each (cut install-file <> certsdir)
(find-files "." ".*\\.pem$")))
(invoke "openssl" "rehash" certsdir)))))))
(synopsis "CA certificates from Mozilla")
(description
"This package provides certificates for Certification Authorities (CA)
+292 -330
View File
@@ -7,7 +7,7 @@
;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2018-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
@@ -16,7 +16,7 @@
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 20162022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20162021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -818,8 +818,19 @@ but it works for any C/C++ project.")
(description
"Parameterized is a Python library that aims to fix parameterized testing
for every Python test framework. It supports nose, py.test, and unittest.")
(properties `((python2-variant . ,(delay python2-parameterized))))
(license license:bsd-2)))
(define-public python2-parameterized
(let ((base (package-with-python2 (strip-python2-variant
python-parameterized))))
(package/inherit
base
(source
(origin
(inherit (package-source base))
(patches (search-patches "python2-parameterized-docstring-test.patch")))))))
(define-public python-minimock
(package
(name "python-minimock")
@@ -838,6 +849,9 @@ for every Python test framework. It supports nose, py.test, and unittest.")
doctest.")
(license license:expat)))
(define-public python2-minimock
(package-with-python2 python-minimock))
(define-public python-mock
(package
(name "python-mock")
@@ -862,8 +876,18 @@ doctest.")
of your system under test with mock objects and make assertions about how they
have been used. This library is now part of Python (since Python 3.3),
available via the @code{unittest.mock} module.")
(properties `((python2-variant . ,(delay python2-mock))))
(license license:expat)))
(define-public python2-mock
(let ((base (package-with-python2
(strip-python2-variant python-mock))))
(package/inherit base
(propagated-inputs
`(("python2-functools32" ,python2-functools32)
("python2-funcsigs" ,python2-funcsigs)
,@(package-propagated-inputs base))))))
;;; This package is unmaintained (see the note at the top of doc/index.rst).
(define-public python-nose
(package
@@ -887,33 +911,33 @@ available via the @code{unittest.mock} module.")
(synopsis "Python testing library")
(description
"Nose extends the unittest library to make testing easier.")
(license license:lgpl2.0+)))
(license license:lgpl2.0+)
(properties `((python2-variant . ,(delay python2-nose))))))
(define-public python2-nose
(let ((base (package-with-python2
(strip-python2-variant python-nose))))
(package/inherit base
(arguments (substitute-keyword-arguments (package-arguments base)
((#:phases phases)
`(modify-phases ,phases
(delete 'invoke-2to3))))))))
(define-public python-nose2
(package
(name "python-nose2")
(version "0.11.0")
(version "0.9.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nose2" version))
(sha256
(base32
"1scxwvwbgfdj41acma41xzdhcfdwjj9irj6sfifdbyf9dryqs83d"))))
"0pmbb6nk31yhgh4zkcblzxsznml7f7pf5q1ihgrwvbxv4mwzfql7"))))
(build-system python-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; Tests require nose2 itself.
(setenv "PYTHONPATH" (getcwd))
(invoke (string-append #$output "/bin/nose2") "-v")))))))
(native-inputs
(list python-coverage))
(arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector'
(propagated-inputs
(list python-six))
(list python-cov-core python-pytest-cov python-six))
(home-page "https://github.com/nose-devs/nose2")
(synopsis "Next generation of nicer testing for Python")
(description
@@ -923,6 +947,9 @@ better plugin api, being easier for users to configure, and simplifying internal
interfaces and processes.")
(license license:bsd-2)))
(define-public python2-nose2
(package-with-python2 python-nose2))
(define-public python-unittest2
(package
(name "python-unittest2")
@@ -953,6 +980,9 @@ interfaces and processes.")
standard library.")
(license license:psfl)))
(define-public python2-unittest2
(package-with-python2 python-unittest2))
(define-public python-pytest
(package
(name "python-pytest")
@@ -1013,17 +1043,77 @@ standard library.")
"Pytest is a testing tool that provides auto-discovery of test modules
and functions, detailed info on failing assert statements, modular fixtures,
and many external plugins.")
(license license:expat)))
(license license:expat)
(properties `((python2-variant . ,(delay python2-pytest))))))
(define-public python-pytest-6 python-pytest)
;; Pytest 4.x are the last versions that support Python 2.
(define-public python2-pytest
(package
(inherit (strip-python2-variant python-pytest))
(name "python2-pytest")
(version "4.6.11")
(source (origin
(method url-fetch)
(uri (pypi-uri "pytest" version))
(sha256
(base32
"0ls3pqr86xgif6bphsb6wrww9r2vc7p7a2naq8zcq8115wwq5yjh"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2
,@(package-arguments python-pytest)))
(propagated-inputs
`(("python-atomicwrites" ,python2-atomicwrites)
("python-attrs" ,python2-attrs-bootstrap)
("python-funcsigs" ,python2-funcsigs)
("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
("python-more-itertools" ,python2-more-itertools)
("python-packaging" ,python2-packaging-bootstrap)
("python-pathlib2" ,python2-pathlib2)
("python-pluggy" ,python2-pluggy)
("python-py" ,python2-py)
("python-six" ,python2-six-bootstrap)
("python-wcwidth" ,python2-wcwidth)))
(native-inputs
`(("bash" ,bash) ;tests require 'compgen'
("python-hypothesis" ,python2-hypothesis)
("python-nose" ,python2-nose)
("python-mock" ,python2-mock)
("python-pytest" ,python2-pytest-bootstrap)
("python-setuptools-scm" ,python2-setuptools-scm)))))
(define-public python-pytest-bootstrap
(package
(inherit python-pytest)
(inherit (strip-python2-variant python-pytest))
(name "python-pytest-bootstrap")
(native-inputs (list python-iniconfig python-setuptools-scm
python-toml))
(arguments `(#:tests? #f))))
(arguments `(#:tests? #f))
(properties `((python2-variant . ,(delay python2-pytest-bootstrap))))))
(define-public python2-pytest-bootstrap
(hidden-package
(package/inherit
python2-pytest
(name "python2-pytest-bootstrap")
(arguments
(substitute-keyword-arguments (package-arguments python2-pytest)
((#:tests? _ #f) #f)))
(native-inputs
`(("python-setuptools-scm" ,python2-setuptools-scm)))
(propagated-inputs
`(("python-atomicwrites" ,python2-atomicwrites)
("python-attrs" ,python2-attrs-bootstrap)
("python-funcsigs" ,python2-funcsigs-bootstrap)
("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
("python-more-itertools" ,python2-more-itertools)
("python-packaging" ,python2-packaging-bootstrap)
("python-pathlib2" ,python2-pathlib2-bootstrap)
("python-pluggy" ,python2-pluggy-bootstrap)
("python-py" ,python2-py)
("python-wcwidth" ,python2-wcwidth))))))
(define-public python-pytest-assume
(package
@@ -1060,13 +1150,13 @@ following improvements:
(define-public python-pytest-cov
(package
(name "python-pytest-cov")
(version "3.0.0")
(version "2.8.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-cov" version))
(sha256
(base32 "0w6lfv8gc1lxmnvsz7mq5z9shxac5zz6s9mwrai108kxc6qzbw77"))))
(base32 "0avzlk9p4nc44k7lpx9109dybq71xqnggxb9f4hp0l64pbc44ryc"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1088,6 +1178,9 @@ distributed testing in both @code{load} and @code{each} modes. It also
supports coverage of subprocesses.")
(license license:expat)))
(define-public python2-pytest-cov
(package-with-python2 python-pytest-cov))
(define-public python-pytest-httpserver
(package
(name "python-pytest-httpserver")
@@ -1149,47 +1242,6 @@ tests. Tests can be rerun in a specific order by passing a seed value
reported in a previous test run.")
(license license:expat)))
(define-public python-pytest-randomly
(package
(name "python-pytest-randomly")
(version "3.11.0")
(source (origin
(method git-fetch) ;no tests in pypi archive
(uri (git-reference
(url "https://github.com/pytest-dev/pytest-randomly")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1sjgq49g8f8973vhmzrim79b6wz29a765n99azjk1maimqh7mmik"))))
(build-system python-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; The tests validating ordering fail, as well as as two
;; others, for unknown reasons (see:
;; https://github.com/pytest-dev/pytest-randomly/issues/454).
(invoke "pytest" "-vv" "-k"
(string-append
"not reordered "
"and not test_it_runs_before_stepwise "
"and not test_entrypoint_injection"))))))))
(native-inputs (list python-coverage
python-factory-boy
python-faker
python-numpy
python-pytest-xdist))
(propagated-inputs (list python-importlib-metadata python-pytest))
(home-page "https://github.com/pytest-dev/pytest-randomly")
(synopsis "Pytest plugin to randomly order tests")
(description "This is a Pytest plugin to randomly order tests and control
Python's @code{random.seed}.")
(license license:expat)))
(define-public python-pytest-runner
(package
(name "python-pytest-runner")
@@ -1222,6 +1274,25 @@ Python's @code{random.seed}.")
@file{setup.py} files can use to run tests.")
(license license:expat)))
(define-public python2-pytest-runner
(package-with-python2 python-pytest-runner))
;; python-bleach 3.1.0 requires this ancient version of pytest-runner.
;; Remove once no longer needed.
(define-public python-pytest-runner-2
(package
(inherit python-pytest-runner)
(version "2.12.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "pytest-runner" version))
(sha256
(base32
"11ivjj9hfphkv4yfb2g74av4yy86y8gcbf7gbif0p1hcdfnxg3w6"))))))
(define-public python2-pytest-runner-2
(package-with-python2 python-pytest-runner-2))
(define-public python-pytest-lazy-fixture
(package
(name "python-pytest-lazy-fixture")
@@ -1293,49 +1364,53 @@ around the patching API provided by the @code{mock} package, but with the
benefit of not having to worry about undoing patches at the end of a test.
The mocker fixture has the same API as @code{mock.patch}, supporting the
same arguments.")
(properties `((python2-variant . ,(delay python2-pytest-mock))))
(license license:expat)))
(define-public python2-pytest-mock
(let ((base (package-with-python2
(strip-python2-variant python-pytest-mock))))
(package/inherit base
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-mock" version))
(sha256
(base32
"1i5mg3ff1qk0wqfcxfz60hwy3q5dskdp36i10ckigkzffg8hc3ad"))))
(arguments
`(#:python ,python-2))
(native-inputs
`(("python2-setuptools-scm" ,python2-setuptools-scm)))
(propagated-inputs
`(("python2-mock" ,python2-mock)
("python2-pytest" ,python2-pytest))))))
(define-public python-pytest-xdist
(package
(name "python-pytest-xdist")
(version "2.1.0")
(version "2.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-xdist" version))
(sha256
(base32
"0wh6pn66nncfs6ay0n863bgyriwsgppn8flx5l7551j1lbqkinc2"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove pre-compiled .pyc files from source.
(for-each delete-file-recursively
(find-files "." "__pycache__" #:directories? #t))
(for-each delete-file (find-files "." "\\.pyc$"))
#t))))
"1psf5dqxvc38qzxvc305mkg5xpdmdkbkkfiyqlmdnkgh7z5dx025"))))
(build-system python-build-system)
(arguments
'(#:tests? #f ; Lots of tests fail.
#:phases
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-setup-py
(lambda _
;; Relax pytest requirement.
(substitute* "setup.py"
(("pytest>=6\\.0\\.0") "pytest"))))
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv"
"-n" (number->string (parallel-job-count)))))))))
(native-inputs
(list python-setuptools-scm))
(propagated-inputs
(list python-execnet python-pytest python-py python-pytest-forked))
(home-page
"https://github.com/pytest-dev/pytest-xdist")
(native-inputs (list python-setuptools-scm))
(propagated-inputs (list python-execnet python-pytest python-py
python-pytest-forked))
(home-page "https://github.com/pytest-dev/pytest-xdist")
(synopsis
"Plugin for py.test with distributed testing and loop-on-failing modes")
(description
@@ -1347,20 +1422,6 @@ program code to a remote location, executes there, and then syncs the
result back.")
(license license:expat)))
(define-public python-pytest-xdist-next
(package/inherit python-pytest-xdist
(name "python-pytest-xdist")
(version "2.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-xdist" version))
(sha256
(base32
"1psf5dqxvc38qzxvc305mkg5xpdmdkbkkfiyqlmdnkgh7z5dx025"))))
(propagated-inputs (list python-execnet python-pytest
python-pytest-forked-next))))
(define-public python-pytest-timeout
(package
(name "python-pytest-timeout")
@@ -1393,51 +1454,6 @@ timeout has been exceeded.")
(define-public python-pytest-forked
(package
(name "python-pytest-forked")
(version "1.3.0")
(source
(origin
(method git-fetch) ;for tests
(uri (git-reference
(url "https://github.com/pytest-dev/pytest-forked")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1aip4kx50ynvykl7kq2mlbsi82vx701dvb8mm64lhp69bbv105rc"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-setuptools-scm
(lambda _
(substitute* "setup.py"
(("use_scm_version=True")
(format #f "version=~s" ,version))
(("setup_requires=\\['setuptools_scm'\\],.*")
""))))
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv")))))))
(native-inputs
;; XXX: The bootstrap variant of Pytest is used to ensure the
;; 'hypothesis' plugin is not in the environment (due to
;; <http://issues.guix.gnu.org/25235>), which would cause the test suite
;; to fail (see: https://github.com/pytest-dev/pytest-forked/issues/54).
`(("python-pytest" ,python-pytest-bootstrap)))
(home-page "https://github.com/pytest-dev/pytest-forked")
(synopsis "Pytest plugin to run tests in isolated forked subprocesses")
(description "This package provides a Pytest plugin which enables running
each test in a subprocess and will report if a test crashed the process. It
can be useful to isolate tests against undesirable global environment
side-effects (such as setting environment variables).")
(license license:expat)))
(define-public python-pytest-forked-next
(package
(inherit python-pytest-forked)
(name "python-pytest-forked")
(version "1.4.0")
(source
@@ -1450,7 +1466,30 @@ side-effects (such as setting environment variables).")
(sha256
(base32
"0j9bbjny7h3b4fig6l26f26c697r67mm62fzdd9m9rqyy2bmnqjs"))))
(native-inputs (list python-pytest-bootstrap python-setuptools-scm))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'build 'pretend-version
(lambda _
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" ,version)))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv")))))))
(native-inputs
;; XXX: The bootstrap variant of Pytest is used to ensure the
;; 'hypothesis' plugin is not in the environment (due to
;; <http://issues.guix.gnu.org/25235>), which would cause the test suite
;; to fail (see: https://github.com/pytest-dev/pytest-forked/issues/54).
(list python-pytest-bootstrap python-setuptools-scm))
(home-page "https://github.com/pytest-dev/pytest-forked")
(synopsis "Pytest plugin to run tests in isolated forked subprocesses")
(description "This package provides a Pytest plugin which enables running
each test in a subprocess and will report if a test crashed the process. It
can be useful to isolate tests against undesirable global environment
side-effects (such as setting environment variables).")
(license license:expat)))
(define-public python-scripttest
(package
@@ -1745,6 +1784,9 @@ library to determine which lines are executable, and which have been
executed.")
(license license:bsd-3)))
(define-public python2-coverage
(package-with-python2 python-coverage))
(define-public python-pytest-asyncio
(package
(name "python-pytest-asyncio")
@@ -1805,6 +1847,9 @@ and @code{nose2-cov}. It is useful for developing coverage plugins for these
testing frameworks.")
(license license:expat)))
(define-public python2-cov-core
(package-with-python2 python-cov-core))
(define-public python-codecov
(package
(name "python-codecov")
@@ -1893,6 +1938,9 @@ tools for mocking system commands and recording calls to those.")
(home-page "https://github.com/trentm/testlib")
(license license:expat)))
(define-public python2-testlib
(package-with-python2 python-testlib))
;;; The software provided by this package was integrated into pytest 2.8.
(define-public python-pytest-cache
(package
@@ -1913,6 +1961,9 @@ the last py.test invocation.")
(home-page "https://bitbucket.org/hpk42/pytest-cache/")
(license license:expat)))
(define-public python2-pytest-cache
(package-with-python2 python-pytest-cache))
(define-public python-pytest-localserver
(package
(name "python-pytest-localserver")
@@ -1983,6 +2034,9 @@ normally the case.")
(home-page "https://github.com/untitaker/pytest-subtesthack/")
(license license:unlicense)))
(define-public python2-pytest-subtesthack
(package-with-python2 python-pytest-subtesthack))
(define-public python-pytest-sugar
(package
(name "python-pytest-sugar")
@@ -2026,23 +2080,36 @@ instantly.")
much larger range of examples than you would ever want to write by hand. Its
based on the Haskell library, Quickcheck, and is designed to integrate
seamlessly into your existing Python unit testing work flow.")
(home-page "https://github.com/HypothesisWorks/hypothesis")
(license license:mpl2.0)))
(home-page "https://github.com/HypothesisWorks/hypothesis-python")
(license license:mpl2.0)
(properties `((python2-variant . ,(delay python2-hypothesis))))))
;;; TODO: Make the default python-hypothesis in the next rebuild cycle.
(define-public python-hypothesis-next
(define-public python-hypothesis-6.23
(package
(inherit python-hypothesis)
(version "6.43.3")
(version "6.23.4")
(source (origin
(method url-fetch)
(uri (pypi-uri "hypothesis" version))
(sha256
(base32
"0d67dlc5a47i48fxzmji2mnybzby0h1wdscmj54555fghcyp1045"))))
(propagated-inputs
(modify-inputs (package-propagated-inputs python-hypothesis)
(append python-pytest))))) ;to satisfy the sanity-check phase
"0wp8i9qmd5wl1sq1l2b97fgliyk5fyphssl6j7q5qn5zjlfgi4qs"))))))
;; This is the last version of Hypothesis that supports Python 2.
(define-public python2-hypothesis
(let ((hypothesis (package-with-python2
(strip-python2-variant python-hypothesis))))
(package (inherit hypothesis)
(version "4.57.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "hypothesis" version))
(sha256
(base32
"183gpxbfcdhdqzlahkji5a71n6lmvgqsbkcb0ihqad51n2j6jhrw"))))
(propagated-inputs
(modify-inputs (package-propagated-inputs hypothesis)
(prepend python2-enum34))))))
(define-public python-hypothesmith
(package
@@ -2068,14 +2135,14 @@ programs, something like CSmith, a random generator of C programs.")
(define-public python-lit
(package
(name "python-lit")
(version "14.0.3")
(version "12.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "lit" version))
(sha256
(base32
"162x7pddwl395c3mdb0mfn3f5z24x1jz6g27x303lfxpzidnn4m4"))))
"01yggsb73s2gbq36xwifxl6k5ll5lkss5rwz59k9h3jnbnn7m5fj"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -2092,114 +2159,6 @@ style test suites, summarizing their results, and providing indication of
failures.")
(license license:ncsa)))
;;; This is marked as a bootstrap package because it propagates bootstrapped
;;; versions of jaraco-context and jaraco-functools.
(define-public python-pytest-enabler-bootstrap
(hidden-package
(package
(name "python-pytest-enabler-bootstrap")
(version "1.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-enabler" version))
(sha256
(base32 "023ymm0r2gpn5q7aikvx567s507j0zk46w41w6gxb69c688zgs73"))))
(build-system python-build-system)
(arguments (list #:tests? #f))
(propagated-inputs
(list python-jaraco-context-bootstrap
python-jaraco-functools-bootstrap
python-toml))
(native-inputs (list python-setuptools-scm))
(home-page "https://github.com/jaraco/pytest-enabler")
(synopsis "Enable installed pytest plugins")
(description "Enable installed pytest plugins")
(license license:expat))))
(define-public python-pytest-enabler
(package/inherit python-pytest-enabler-bootstrap
(arguments
(substitute-keyword-arguments
(package-arguments python-pytest-enabler-bootstrap)
((#:tests? _ #f)
#t)
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "python" "-m" "pytest" "-vv" "tests"))))))))
(propagated-inputs
(modify-inputs (package-propagated-inputs python-pytest-enabler-bootstrap)
(replace "python-jaraco-context-bootstrap" python-jaraco-context)
(replace "python-jaraco-functools-bootstrap" python-jaraco-functools)))
(native-inputs
(modify-inputs (package-native-inputs python-pytest-enabler-bootstrap)
(append python-pytest
python-pytest-black
python-pytest-checkdocs
python-pytest-cov
python-pytest-flake8
python-pytest-mypy
python-types-toml)))
(properties (alist-delete 'hidden?
(package-properties
python-pytest-enabler-bootstrap)))))
(define-public python-pytest-freezegun
(package
(name "python-pytest-freezegun")
(version "0.4.2")
(source (origin
;; The test suite is not included in the PyPI archive.
(method git-fetch)
(uri (git-reference
(url "https://github.com/ktosiek/pytest-freezegun")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"10c4pbh03b4s1q8cjd75lr0fvyf9id0zmdk29566qqsmaz28npas"))))
(build-system python-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv")))))))
(propagated-inputs (list python-freezegun python-pytest))
(native-inputs (list unzip))
(home-page "https://github.com/ktosiek/pytest-freezegun")
(synopsis "Pytest plugin to freeze time in test fixtures")
(description "The @code{pytest-freezegun} plugin wraps tests and fixtures
with @code{freeze_time}, which allows to control (i.e., freeze) the time seen
by the test.")
(license license:expat)))
(define-public python-pytest-mypy
(package
(name "python-pytest-mypy")
(version "0.9.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-mypy" version))
(sha256
(base32 "0p5bd4r4gbwk1h7mpx1jkhdwkckapfz24bp9x5mmqb610ps3pylz"))))
(build-system python-build-system)
(native-inputs (list python-setuptools-scm))
(propagated-inputs
(list python-attrs python-filelock python-mypy python-pytest))
(home-page "https://github.com/dbader/pytest-mypy")
(synopsis "Mypy static type checker plugin for Pytest")
(description "@code{pytest-mypi} is a static type checker plugin for
Pytest that runs the mypy static type checker on your source files as part of
a Pytest test execution.")
(license license:expat)))
(define-public python-pytest-pep8
(package
(name "python-pytest-pep8")
@@ -2233,63 +2192,8 @@ a Pytest test execution.")
(description "Pytest plugin for checking PEP8 compliance.")
(license license:expat)))
(define-public python-pytest-perf
(package
(name "python-pytest-perf")
(version "0.12.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jaraco/pytest-perf")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"05mgknvrmyz1kmkgw8jzvisavc68wz1g2wxv69i6xvzgqxf17m9f"))))
(build-system python-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-k"
(string-append
;; Do not test the myproject.toml build as it tries to pull
;; dependencies from the internet.
"not project "
;; The benchmark test attempts to install the
;; package, failing to pull its dependencies from the
;; network.
"and not BenchmarkRunner "
;; The upstream_url test requires networking.
"and not upstream_url"))))))))
(native-inputs
(list python-pytest
python-pytest-black
python-pytest-checkdocs
python-pytest-cov
python-pytest-enabler
python-pytest-flake8
python-pytest-mypy))
(propagated-inputs
(list python-jaraco-context
python-jaraco-functools
python-more-itertools
python-packaging
python-pip-run
python-tempora))
(home-page "https://github.com/jaraco/pytest-perf")
(synopsis "Pytest plugin for performance testing")
(description "@code{pytest-perf} makes it easy to compare works by
creating two installs, the control and the experiment, and measuring the
performance of some Python code against each. Under the hood, it uses the
@command{pip-run} command to install from the upstream main
branch (e.g. https://github.com/jaraco/pytest-perf) for the control and from
@file{.} for the experiment. It then runs each of the experiments against
each of the environments.")
(license license:expat)))
(define-public python2-pytest-pep8
(package-with-python2 python-pytest-pep8))
(define-public python-pytest-flakes
(package
@@ -2322,6 +2226,9 @@ each of the environments.")
(description "Pytest plugin for checking Python source code with pyflakes.")
(license license:expat)))
(define-public python2-pytest-flakes
(package-with-python2 python-pytest-flakes))
(define-public python-coverage-test-runner
(package
(name "python-coverage-test-runner")
@@ -2352,6 +2259,9 @@ unit tests and failing them if the unit test module does not exercise all
statements in the module it tests.")
(license license:gpl3+)))
(define-public python2-coverage-test-runner
(package-with-python2 python-coverage-test-runner))
(define-public python-pylint
(package
(name "python-pylint")
@@ -2377,10 +2287,9 @@ statements in the module it tests.")
(delete-file "tests/primer/test_primer_external.py")
(delete-file "tests/testutils/test_package_to_lint.py")
(setenv "HOME" "/tmp")
(invoke "pytest" "-k" "test_functional"
"-n" (number->string (parallel-job-count)))))))))
(invoke "pytest" "-k" "test_functional")))))))
(native-inputs
(list python-pytest python-pytest-xdist))
(list python-pytest))
(propagated-inputs
(list python-astroid
python-isort
@@ -2423,6 +2332,9 @@ cases. Since they are TestCase subclasses, they work with other test suites tha
recognize TestCases.")
(license license:bsd-2)))
(define-public python2-python-paramunittest
(package-with-python2 python-paramunittest))
(define-public python-pytest-warnings
(package
(name "python-pytest-warnings")
@@ -2443,7 +2355,14 @@ recognize TestCases.")
"Python-pytest-warnings is a pytest plugin to list Python warnings in
pytest report.")
(license license:expat)
(properties `((superseded unquote python-pytest)))))
(properties `((python2-variant . ,(delay python2-pytest-warnings))
;; This package is part of pytest as of version 3.1.0.
(superseded . ,python-pytest)))))
(define-public python2-pytest-warnings
(package (inherit (package-with-python2
(strip-python2-variant python-pytest-warnings)))
(properties `((superseded . ,python2-pytest)))))
(define-public python-pytest-capturelog
(package
@@ -2465,6 +2384,9 @@ pytest report.")
"Python-pytest-catchlog is a pytest plugin to catch log messages.")
(license license:expat)))
(define-public python2-pytest-capturelog
(package-with-python2 python-pytest-capturelog))
(define-public python-pytest-catchlog
(package
(name "python-pytest-catchlog")
@@ -2488,6 +2410,9 @@ pytest report.")
a fork of pytest-capturelog.")
(license license:expat)))
(define-public python2-pytest-catchlog
(package-with-python2 python-pytest-catchlog))
(define-public python-nosexcover
(package
(name "python-nosexcover")
@@ -2511,6 +2436,9 @@ It will honor all the options you pass to the Nose coverage plugin,
especially -cover-package.")
(license license:expat)))
(define-public python2-nosexcover
(package-with-python2 python-nosexcover))
(define-public python-discover
(package
(name "python-discover")
@@ -2531,6 +2459,9 @@ especially -cover-package.")
backported from Python 2.7 for Python 2.4+.")
(license license:bsd-3)))
(define-public python2-discover
(package-with-python2 python-discover))
(define-public behave
(package
(name "behave")
@@ -2631,6 +2562,9 @@ JSON APIs with Behave.")
@command{nosetests} command of the Python Nose unit test framework.")
(license license:bsd-3)))
(define-public python2-rednose
(package-with-python2 python-rednose))
(define-public python-nose-random
(package
(name "python-nose-random")
@@ -2681,6 +2615,9 @@ by resetting it to a repeatable number for each test, enabling the tests to
create data based on random numbers and yet remain repeatable.")
(license license:bsd-3)))
(define-public python2-nose-randomly
(package-with-python2 python-nose-randomly))
(define-public python-nose-timer
(package
(name "python-nose-timer")
@@ -2699,6 +2636,9 @@ create data based on random numbers and yet remain repeatable.")
(description "Shows how much time was needed to run individual tests.")
(license license:expat)))
(define-public python2-nose-timer
(package-with-python2 python-nose-timer))
(define-public python-freezegun
(package
(name "python-freezegun")
@@ -2729,6 +2669,9 @@ create data based on random numbers and yet remain repeatable.")
time by mocking the datetime module.")
(license license:asl2.0)))
(define-public python2-freezegun
(package-with-python2 python-freezegun))
(define-public python-flexmock
(package
(name "python-flexmock")
@@ -2747,6 +2690,9 @@ time by mocking the datetime module.")
mocks, stubs and fakes.")
(license license:bsd-3)))
(define-public python2-flexmock
(package-with-python2 python-flexmock))
(define-public python-flaky
(package
(name "python-flaky")
@@ -2773,6 +2719,9 @@ those tests or marking them to @code{@@skip}, they can be automatically
retried.")
(license license:asl2.0)))
(define-public python2-flaky
(package-with-python2 python-flaky))
(define-public python-pyhamcrest
(package
(name "python-pyhamcrest")
@@ -3024,10 +2973,23 @@ under test to interact with a fake file system instead of the real file
system. The code under test requires no modification to work with pyfakefs.")
(license license:asl2.0)))
;; This minimal variant is used to avoid a circular dependency between
;; python2-importlib-metadata, which requires pyfakefs for its tests, and
;; python2-pytest, which requires python2-importlib-metadata.
(define-public python2-pyfakefs-bootstrap
(hidden-package
(package
(inherit (package-with-python2 python-pyfakefs))
(name "python2-pyfakefs-bootstrap")
(native-inputs '())
(arguments
`(#:python ,python-2
#:tests? #f)))))
(define-public python-aiounittest
(package
(name "python-aiounittest")
(version "1.4.1")
(version "1.4.0")
;; Pypi package lacks tests.
(source
(origin (method git-fetch)
@@ -3037,7 +2999,7 @@ system. The code under test requires no modification to work with pyfakefs.")
(file-name (git-file-name name version))
(sha256
(base32
"10x7ds09b9415r92f7g9714gxixvvq3bm5mnh29ml9aba8blcb0n"))))
"0hql5mw62lclrpblbh7xvinwjfcdcfvhhlvl7xlq2hi9isjq1c8r"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
+92
View File
@@ -128,6 +128,35 @@ science, and related areas. It offers flexible high quality rendering and a
powerful plugin architecture.")
(license license:bsd-3)))
(define-public domainfinder
(package
(name "domainfinder")
(version "2.0.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/khinsen/"
"domainfinder/downloads/DomainFinder-"
version ".tar.gz"))
(sha256
(base32
"1z26lsyf7xwnzwjvimmbla7ckipx6p734w7y0jk2a2fzci8fkdcr"))))
(build-system python-build-system)
(inputs
(list python2-mmtk))
(arguments
`(#:python ,python-2
;; No test suite
#:tests? #f))
(home-page "http://dirac.cnrs-orleans.fr/DomainFinder.html")
(synopsis "Analysis of dynamical domains in proteins")
(description "DomainFinder is an interactive program for the determination
and characterization of dynamical domains in proteins. It can infer dynamical
domains by comparing two protein structures, or from normal mode analysis on a
single structure. The software is currently not actively maintained and works
only with Python 2 and NumPy < 1.9.")
(license license:cecill-c)))
(define-public inchi
(package
(name "inchi")
@@ -303,6 +332,69 @@ with templates to facilitate the execution of the program. Input files can be
staged, and output files collected using a standard interface.")
(license license:bsd-3)))
(define with-numpy-1.8
(package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8))))
(define-public nmoldyn
(package
(name "nmoldyn")
(version "3.0.11")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/khinsen/nMOLDYN3")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"016h4bqg419p6s7bcx55q5iik91gqmk26hbnfgj2j6zl0j36w51r"))))
(build-system python-build-system)
(inputs
(list (with-numpy-1.8 python2-matplotlib) python2-scientific netcdf
gv))
(propagated-inputs
(list python2-mmtk))
(arguments
`(#:python ,python-2
#:tests? #f ; No test suite
#:phases
(modify-phases %standard-phases
(add-before 'build 'create-linux2-directory
(lambda _
(mkdir-p "nMOLDYN/linux2")))
(add-before 'build 'change-PDF-viewer
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "nMOLDYN/Preferences.py"
;; Set the paths for external executables, substituting
;; gv for acroread.
;; There is also vmd_path, but VMD is not free software
;; and Guix contains currently no free molecular viewer that
;; could be substituted.
(("PREFERENCES\\['acroread_path'\\] = ''")
(format #f "PREFERENCES['acroread_path'] = '~a'"
(which "gv")))
(("PREFERENCES\\['ncdump_path'\\] = ''")
(format #f "PREFERENCES['ncdump_path'] = '~a'"
(which "ncdump")))
(("PREFERENCES\\['ncgen_path'\\] = ''")
(format #f "PREFERENCES['ncgen_path'] = '~a'"
(which "ncgen3")))
(("PREFERENCES\\['task_manager_path'\\] = ''")
(format #f "PREFERENCES['task_manager_path'] = '~a'"
(which "task_manager")))
;; Show documentation as PDF
(("PREFERENCES\\['documentation_style'\\] = 'html'")
"PREFERENCES['documentation_style'] = 'pdf'") ))))))
(home-page "http://dirac.cnrs-orleans.fr/nMOLDYN.html")
(synopsis "Analysis software for Molecular Dynamics trajectories")
(description "nMOLDYN is an interactive analysis program for Molecular Dynamics
simulations. It is especially designed for the computation and decomposition of
neutron scattering spectra, but also computes other quantities. The software
is currently not actively maintained and works only with Python 2 and
NumPy < 1.9.")
(license license:cecill)))
(define-public tng
(package
(name "tng")
+176 -254
View File
@@ -4,7 +4,7 @@
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -48,7 +48,9 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (chez-scheme-for-system
racket-cs-native-supported-system?
nix-system->chez-machine
chez-machine->nonthreaded
chez-machine->threaded
unpack-nanopass+stex))
;; Commentary:
@@ -69,141 +71,97 @@
(define* (chez-scheme-for-system #:optional
(system (or (%current-target-system)
(%current-system))))
"Return 'chez-scheme' if it fully supports SYSTEM, including support for
bootstrapping and native threads. Otherwise, return
'chez-scheme-for-racket'."
(if (and=> (chez-upstream-features-for-system system)
(lambda (features)
(every (cut memq <> features)
'(threads
;; We can cross-compile for platforms without
;; bootstrap bootfiles, but we can't self-host
;; on them short of adding more binary seeds.
bootstrap-bootfiles))))
"Return 'chez-scheme' unless only 'chez-scheme-for-racket' supports SYSTEM,
including support for native threads."
(if (or
;; full support upstream
(and=> (chez-upstream-features-for-system system)
(cut memq 'threads <>))
;; no support anywhere
(not (nix-system->chez-machine system)))
chez-scheme
chez-scheme-for-racket))
(define* (target-chez-arch #:optional (system
(or (%current-target-system)
(%current-system))))
"Return a string representing the architecture of SYSTEM as used in Chez
Scheme machine types, or '#f' if none is defined."
(cond
((target-x86-64? system)
"a6")
((target-x86-32? system)
"i3")
((target-aarch64? system)
"arm64")
((target-arm32? system)
"arm32")
((target-ppc64le? system)
#f)
((target-ppc32? system)
"ppc32")
((target-riscv64? system)
#f)
(else
#f)))
(define (chez-machine->nonthreaded machine)
"Given a string MACHINE naming a Chez Scheme machine type, returns a string
naming the nonthreaded machine type for the same architecture and OS as
MACHINE. The returned string may share storage with MACHINE."
;; Chez Scheme documentation consistently uses "nonthreaded" rather than
;; e.g. "unthreaded"
(if (eqv? #\t (string-ref machine 0))
(substring machine 1)
machine))
(define (chez-machine->threaded machine)
"Like @code{chez-machine->nonthreaded}, but returns the threaded machine
type."
(if (eqv? #\t (string-ref machine 0))
machine
(string-append "t" machine)))
(define* (target-chez-os #:optional (system (or (%current-target-system)
(%current-system))))
"Return a string representing the operating system kernel of SYSTEM as used
in Chez Scheme machine types, or '#f' if none is defined."
;; e.g. "le" includes both GNU/Linux and Android
(cond
((target-linux? system)
"le")
((target-hurd? system)
#f)
((target-mingw? system)
"nt")
;; missing (guix utils) predicates
;; cf. https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix
((string-suffix? "-darwin" system)
"osx")
((string-suffix? "-freebsd" system)
"fb")
((string-suffix? "-openbsd" system)
"ob")
((string-suffix? "-netbsd" system)
"nb")
;; Nix says "x86_64-solaris", but accommodate "-solaris2"
((string-contains system "solaris")
"s2")
;; unknown
(else
#f)))
;; Based on the implementation from raco-cross-lib/private/cross/platform.rkt
;; in https://github.com/racket/raco-cross.
;; For supported platforms, refer to release_notes/release_notes.stex in the
;; upstream Chez Scheme repository or to racket/src/ChezScheme/README.md
;; in https://github.com/racket/racket.
(define %nix-arch-to-chez-alist
`(("x86_64" . "a6")
("i386" . "i3")
("aarch64" . "arm64")
("armhf" . "arm32") ;; Chez supports ARM v6+
("ppc" . "ppc32")))
(define %nix-os-to-chez-alist
`(("w64-mingw32" . "nt")
("darwin" . "osx")
("linux" . "le")
("freebsd" . "fb")
("openbsd" . "ob")
("netbsd" . "nb")
("solaris" . "s2")))
(define %chez-features-table
;; An alist of alists mapping:
;; os -> arch -> (or/c #f (listof symbol?))
;; where:
;; - `os` is a string for the OS part of a Chez Scheme machine type; and
;; - `arch` is a string for the architecture part of a Chez machine type.
;;
;; The absence of an entry for a given arch--os pair means that neither
;; upstream Chez Scheme nor the Racket variant can generate native code for
;; that system. (The Racket variant can still provide support via its
;; ``portable bytecode'' backends and optional compilation to C.) A value
;; of `#f` means that upstream Chez Scheme does not support the arch--os
;; pair at all, but the Racket variant does. A list has the same meaning as
;; a result from `chez-upstream-features-for-system`.
;;
;; The arch--os pairs marked "commented out" have been commented out in the
;; STeX source for the upstream release notes since the initial release as
;; free software, but they are reported to work and/or have been described
;; as supported by upstream maintainers.
;;
;; For this overall approach to make sense, we assume that Racket's variant
;; of Chez Scheme can generate native code for a superset of the platforms
;; supported upstream, supports threads on all platforms it supports at all
;; (because they are needed for Racket), and doesn't need bootstrap
;; bootfiles. Those assumptions have held for several years.
'(;; Linux
("le"
("i3" threads bootstrap-bootfiles)
("a6" threads bootstrap-bootfiles)
("arm32" bootstrap-bootfiles)
("arm64" . #f)
("ppc32" threads))
;; FreeBSD
("fb"
("i3" threads) ;; commented out
("a6" threads) ;; commented out
("arm32" . #f)
("arm64" . #f)
("ppc32" . #f))
;; OpenBSD
("ob"
("i3" threads) ;; commented out
("a6" threads) ;; commented out
("arm32" . #f)
("arm64" . #f)
("ppc32" . #f))
;; NetBSD
("nb"
("i3" threads) ;; commented out
("a6" threads) ;; commented out
("arm32" . #f)
("arm64" . #f)
("ppc32" . #f))
;; OpenSolaris / OpenIndiana / Illumos
("s2"
("i3" threads) ;; commented out
("a6" threads)) ;; commented out
;; Windows
("nt"
("i3" threads bootstrap-bootfiles)
("a6" threads bootstrap-bootfiles)
;; ^ threads "experiemental", but reportedly fine
("arm64" . #f))
;; Darwin
("osx"
("i3" threads bootstrap-bootfiles)
("a6" threads bootstrap-bootfiles)
("arm64" . #f)
("ppc32" . #f))))
(define (chez-machine->nix-system machine)
"Return the Nix system type corresponding to the Chez Scheme machine type
MACHINE. If MACHINE is not a string representing a known machine type, an
exception is raised. This function does not distinguish between threaded and
nonthreaded variants of MACHINE.
Note that this function only handles Chez Scheme machine types in the
strictest sense, not other kinds of descriptors sometimes used in place of a
Chez Scheme machine type by Racket, such as @code{\"pb\"}, @code{#f}, or
@code{\"racket\"}. (When using such extensions, the Chez Scheme machine type
for the host system is often still relevant.)"
(let ((machine (chez-machine->nonthreaded machine)))
(let find-arch ((alist %nix-arch-to-chez-alist))
(match alist
(((nix . chez) . alist)
(if (string-prefix? chez machine)
(string-append
nix "-" (let ((machine-os
(substring machine (string-length chez))))
(let find-os ((alist %nix-os-to-chez-alist))
(match alist
(((nix . chez) . alist)
(if (equal? chez machine-os)
nix
(find-os alist)))))))
(find-arch alist)))))))
(define* (nix-system->chez-machine #:optional
(system (or (%current-target-system)
(%current-system))))
"Return the Chez Scheme machine type corresponding to the Nix system
identifier SYSTEM, or @code{#f} if the translation of SYSTEM to a Chez Scheme
machine type is undefined.
It is unspecified whether the resulting string will name a threaded or a
nonthreaded machine type: when the distinction is relevant, use
@code{chez-machine->nonthreaded} or @code{chez-machine->threaded} to adjust
the result."
(let* ((hyphen (string-index system #\-))
(nix-arch (substring system 0 hyphen))
(nix-os (substring system (+ 1 hyphen)))
(chez-arch (assoc-ref %nix-arch-to-chez-alist nix-arch))
(chez-os (assoc-ref %nix-os-to-chez-alist nix-os)))
(and chez-arch chez-os (string-append chez-arch chez-os))))
(define* (chez-upstream-features-for-system #:optional
(system
@@ -214,27 +172,20 @@ for the Nix system identifier SYSTEM, or @code{#f} if upstream Chez Scheme
does not support SYSTEM at all.
If native threads are supported, the returned list will include
@code{'threads}. If bootstrap bootfiles for SYSTEM are distributed in the
upstream Chez Scheme repository, the returned list will include
@code{'bootstrap-bootfiles}. Other feature symbols may be added in the
future."
(let ((chez-arch (target-chez-arch system))
(chez-os (target-chez-os system)))
(and=> (assoc-ref %chez-features-table chez-os)
(cut assoc-ref <> chez-arch))))
(define* (racket-cs-native-supported-system? #:optional
(system
(or (%current-target-system)
(%current-system))))
"Can Racket's variant of Chez Scheme generate native code for SYSTEM?
Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
(let ((chez-arch (target-chez-arch system))
(chez-os (target-chez-os system)))
(and (and=> (assoc-ref %chez-features-table chez-os)
;; NOT assoc-ref: supported even if cdr is #f
(cut assoc chez-arch <>))
#t)))
@code{'threads}. Other feature symbols may be added in the future."
(cond
((not (nix-system->chez-machine system))
#f)
((target-aarch64? system)
#f)
((target-arm32? system)
(and (target-linux? system)
'()))
((target-ppc32? system)
(and (target-linux? system)
'(threads)))
(else
'(threads))))
;;
;; Chez Scheme:
@@ -259,7 +210,7 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
(name "chez-scheme")
;; The version should match `(scheme-version-number)`.
;; See s/cmacros.ss c. line 360.
(version "9.5.8")
(version "9.5.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -267,7 +218,7 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
(commit (string-append "v" version))))
(sha256
(base32
"0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc"))
"07s433hn1z2slfc026sidrpzxv3a8narcd40qqr1xrpb9012xdky"))
(file-name (git-file-name name version))
(snippet #~(begin
(use-modules (guix build utils))
@@ -307,18 +258,8 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
(ice-9 ftw)
(ice-9 match))
#:test-target "test"
#:configure-flags
#~`(,(string-append "--installprefix=" #$output)
#$@(if (and=> (chez-upstream-features-for-system)
(cut memq 'threads <>))
#~("--threads")
#~())
"ZLIB=-lz"
"LZ4=-llz4"
"--libkernel"
;; Guix will do 'compress-man-pages',
;; and letting Chez try causes an error
"--nogzip-man-pages")
;; TODO when we fix armhf, it may not support --threads
#:configure-flags #~'("--threads")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'unpack-nanopass+stex
@@ -332,35 +273,26 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
(search-input-directory (or native-inputs inputs)
"lib/chez-scheme-bootfiles")
"boot")))
;; NOTE: The custom Chez 'configure' script doesn't allow
;; NOTE: the custom Chez 'configure' script doesn't allow
;; unrecognized flags, such as those automatically added
;; by `gnu-build-system`. This replacement phase uses only
;; the explicitly provided `#:configure-flags`.
;; by `gnu-build-system`.
(replace 'configure
(lambda* (#:key inputs (configure-flags '()) out-of-source?
#:allow-other-keys)
(let* ((abs-srcdir (getcwd))
(srcdir (if out-of-source?
(string-append "../" (basename abs-srcdir))
".")))
(format #t "source directory: ~s (relative from build: ~s)~%"
abs-srcdir srcdir)
(if out-of-source?
(begin
(mkdir "../build")
(chdir "../build")))
(format #t "build directory: ~s~%" (getcwd))
(format #t "configure flags: ~s~%" configure-flags)
(apply invoke
(string-append srcdir "/configure")
configure-flags))))
(add-after 'configure 'configure-environment-variables
(lambda args
;; Some makefiles (for tests) don't seem to propagate CC
;; properly, so we take it out of their hands:
(setenv "CC" #$(cc-for-target))
;; Likewise, some tests have needed HOME to be set:
(setenv "HOME" "/tmp")))
(lambda* (#:key inputs (configure-flags '()) #:allow-other-keys)
;; add flags which are always required:
(let ((flags (cons* (string-append "--installprefix=" #$output)
"ZLIB=-lz"
"LZ4=-llz4"
"--libkernel"
;; Guix will do compress-man-pages,
;; and letting Chez try causes an error
"--nogzip-man-pages"
configure-flags)))
(format #t "configure flags: ~s~%" flags)
;; Some makefiles (for tests) don't seem to propagate CC
;; properly, so we take it out of their hands:
(setenv "CC" #$(cc-for-target))
(setenv "HOME" "/tmp")
(apply invoke "./configure" flags))))
;; The binary file name is called "scheme" as is the one from
;; MIT/GNU Scheme. We add a symlink to use in case both are
;; installed.
@@ -377,46 +309,43 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
(string-append (dirname scheme.boot)
"/chez-scheme.boot")))))))
;; Building the documentation requires stex and a running scheme.
(add-after 'install-symlink 'install-docs
;; FIXME: this is probably wrong for cross-compilation
(add-after 'install-symlink 'install-doc
(lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
(let* ((doc-prefix (or (assoc-ref outputs "doc")
(assoc-ref outputs "out")))
(chez+version (strip-store-file-name #$output))
(scheme (search-input-file outputs "/bin/scheme"))
(stexlib (search-input-directory (or native-inputs
inputs)
"/lib/stex"))
(doc-dir (string-append doc-prefix
"/share/doc/"
chez+version)))
(define* (stex-make #:optional (suffix ""))
(invoke "make" "install"
(string-append "Scheme=" scheme)
(string-append "STEXLIB=" stexlib)
(string-append "installdir=" doc-dir suffix)))
(with-directory-excursion "csug"
(stex-make "/csug"))
(with-directory-excursion "release_notes"
(stex-make "/release_notes")))))
(add-after 'install-docs 'link-doc-pdfs
;; otherwise, it's hard to notice them in a forest of HTML files
(lambda* (#:key outputs #:allow-other-keys)
(with-directory-excursion
(string-append (or (assoc-ref outputs "doc")
(assoc-ref outputs "out"))
"/share/doc/"
(strip-store-file-name #$output))
(symlink "release_notes/release_notes.pdf"
"release_notes.pdf")
(match (find-files "csug"
"csug.*\\.pdf$" ;; embeded version number
#:fail-on-error? #t)
((pth)
(symlink pth
"csug.pdf")))))))))
(match (assoc-ref outputs "doc")
(#f
(format #t "not installing docs~%"))
(doc-prefix
(let* ((chez+version (strip-store-file-name #$output))
(scheme (search-input-file outputs "/bin/scheme"))
(stexlib (search-input-directory (or native-inputs
inputs)
"/lib/stex"))
(doc-dir (string-append doc-prefix
"/share/doc/"
chez+version)))
(define* (stex-make #:optional (suffix ""))
(invoke "make" "install"
(string-append "Scheme=" scheme)
(string-append "STEXLIB=" stexlib)
(string-append "installdir=" doc-dir suffix)))
(with-directory-excursion "csug"
(stex-make "/csug"))
(with-directory-excursion "release_notes"
(stex-make "/release_notes"))
(with-directory-excursion doc-dir
(symlink "release_notes/release_notes.pdf"
"release_notes.pdf")
(symlink "csug/csug9_5.pdf"
"csug.pdf"))))))))))
;; Chez Scheme does not have a MIPS backend.
;; FIXME: Debian backports patches to get armhf working.
;; We should too. It is the Chez machine type arm32le
;; (no threaded version upstream yet, though there is in
;; Racket's fork), more specifically (per the release notes) ARMv6.
(supported-systems
(delete
"armhf-linux" ;; XXX reportedly broken, needs checking
"armhf-linux" ;; <-- should work, but reportedly broken
(filter chez-upstream-features-for-system
%supported-systems)))
(home-page "https://cisco.github.io/ChezScheme/")
@@ -432,7 +361,7 @@ and 32-bit PowerPC architectures.")
(package
(inherit chez-scheme)
(name "chez-scheme-for-racket")
(version "9.5.7.6")
(version "9.5.7.3")
;; The version should match `(scheme-fork-version-number)`.
;; See racket/src/ChezScheme/s/cmacros.ss c. line 360.
;; It will always be different than the upstream version!
@@ -448,9 +377,7 @@ and 32-bit PowerPC architectures.")
(arguments
(substitute-keyword-arguments (package-arguments chez-scheme)
((#:configure-flags cfg-flags #~'())
#~(cons* "--disable-x11"
"--threads" ;; ok to potentially duplicate
#$cfg-flags))
#~(cons "--disable-x11" #$cfg-flags))
((#:phases those-phases #~%standard-phases)
#~(let* ((those-phases #$those-phases)
(unpack (assoc-ref those-phases 'unpack)))
@@ -462,9 +389,7 @@ and 32-bit PowerPC architectures.")
(add-after 'unpack 'chdir
(lambda args
(chdir "racket/src/ChezScheme"))))))))
;; TODO: How to build pbarch/pbchunks for other systems?
;; See https://racket.discourse.group/t/950
(supported-systems (filter racket-cs-native-supported-system?
(supported-systems (filter nix-system->chez-machine
%supported-systems))
(home-page "https://github.com/racket/ChezScheme")
;; ^ This is downstream of https://github.com/racket/racket,
@@ -517,9 +442,16 @@ Faster multiplication and division for large exact numbers
(list #:install-plan
#~`(("boot/" "lib/chez-scheme-bootfiles"))))
(supported-systems
;; Upstream only distributes pre-built bootfiles for
;; arm32le and t?(i3|a6)(le|nt|osx)
(filter (lambda (system)
(and=> (chez-upstream-features-for-system system)
(cut memq 'bootstrap-bootfiles <>)))
(let ((machine (and=> (nix-system->chez-machine system)
chez-machine->nonthreaded)))
(or (equal? "arm32le" machine)
(and machine
(member (substring machine 0 2) '("i3" "a6"))
(or-map (cut string-suffix? <> machine)
'("le" "nt" "osx"))))))
%supported-systems))
(synopsis "Chez Scheme bootfiles (binary seed)")
(description
@@ -529,7 +461,7 @@ current platform. (Chez can then cross-compile bootfiles for all other
supported platforms.)
This package provides bootstrap bootfiles for upstream Chez Scheme.
Currently, it simply packages the binaries checked in to the upstream
Currently, it simply packages the binaries checked in to the upsream
repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to
work with upstream Chez Scheme so that we can bootstrap these files from
source.")))
@@ -641,10 +573,6 @@ Chez Scheme.")))
("src" "lib/stex/")
("Mf-stex" "lib/stex/")
("Makefile.template" "lib/stex/"))
#:modules
'((guix build copy-build-system)
(guix build utils)
(ice-9 popen))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'patch-sources
@@ -676,14 +604,8 @@ Chez Scheme.")))
(define makefile
(string-append (getcwd) "/Makefile"))
(define machine
(let ((pipe (open-pipe* OPEN_BOTH scheme "-q")))
;; try to not be wrong for cross-compilation
;; (avoid #% reader abbreviation for Guile)
(write '(($primitive $target-machine)) pipe)
(force-output pipe)
(let ((sym (read pipe)))
(close-pipe pipe)
(symbol->string sym))))
#$(and=> (nix-system->chez-machine)
chez-machine->threaded))
(with-directory-excursion
(search-input-directory outputs "/lib/stex")
(invoke "make"
@@ -712,7 +634,7 @@ Chez Scheme.")))
(else
(format #t "not making docs~%"))))))))
(home-page "https://github.com/dybvig/stex")
(synopsis "LaTeX with embedded Scheme code and HTML generation")
(synopsis "LaTeX with embeded Scheme code and HTML generation")
(description "The @code{stex} package extends LaTeX with a handful of
commands for including Scheme code (or pretty much any other kind of code, as
long as you don't plan to use the Scheme-specific transcript support) in a
+39 -110
View File
@@ -50,7 +50,6 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages maths)
#:use-module (gnu packages ninja)
#:use-module (gnu packages node)
#:use-module (gnu packages nss)
@@ -123,7 +122,6 @@
"third_party/ced" ;BSD-3
"third_party/cld_3" ;ASL2.0
"third_party/closure_compiler" ;ASL2.0
"third_party/cpuinfo" ;BSD-2
"third_party/crashpad" ;ASL2.0
"third_party/crashpad/crashpad/third_party/lss" ;ASL2.0
"third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
@@ -131,14 +129,10 @@
"third_party/cros_system_api" ;BSD-3
"third_party/dav1d" ;BSD-2
"third_party/dawn" ;ASL2.0
;; TODO: can likely be unbundled when Vulkan is updated.
"third_party/dawn/third_party/khronos" ;ASL2.0
"third_party/dawn/third_party/gn/webgpu-cts" ;BSD-3
"third_party/dawn/third_party/tint"
"third_party/depot_tools/owners.py" ;BSD-3
"third_party/devtools-frontend" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
"third_party/devtools-frontend/src/front_end/third_party\
/additional_readme_paths.json" ;no explicit license; trivial
"third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
"third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
@@ -177,6 +171,7 @@
"third_party/khronos" ;Expat, SGI
"third_party/leveldatabase" ;BSD-3
"third_party/libavif" ;BSD-2
"third_party/libXNVCtrl" ;Expat
"third_party/libaddressinput" ;ASL2.0
"third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
"third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3
@@ -235,7 +230,6 @@
"third_party/private-join-and-compute" ;ASL2.0
"third_party/protobuf" ;BSD-3
"third_party/protobuf/third_party/six" ;Expat
"third_party/pthreadpool" ;BSD-2
"third_party/pyjson5" ;ASL2.0
"third_party/qcms" ;Expat
"third_party/rnnoise" ;BSD-3
@@ -262,13 +256,14 @@
"third_party/swiftshader/third_party/marl" ;ASL2.0
"third_party/swiftshader/third_party/subzero" ;NCSA
"third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style
"third_party/swiftshader/third_party/SPIRV-Tools" ;ASL2.0
"third_party/tcmalloc/chromium" ;BSD-3
"third_party/tensorflow-text" ;ASL2.0
"third_party/tflite" ;ASL2.0
"third_party/tflite/src/third_party/eigen3" ;MPL2.0
"third_party/tflite/src/third_party/fft2d" ;ASL2.0
"third_party/ukey2" ;ASL2.0
"third_party/usb_ids" ;BSD-3
"third_party/usrsctp" ;BSD-2
"third_party/utf" ;Expat
"third_party/vulkan-deps" ;ASL2.0, BSD-3, Expat
"third_party/vulkan_memory_allocator" ;Expat
@@ -293,7 +288,6 @@
"third_party/wuffs" ;ASL2.0
"third_party/xcbproto" ;X11
"third_party/xdg-utils" ;Expat
"third_party/xnnpack" ;BSD-3
;; These are forked components of the X11 keybinding code.
"third_party/libxcb-keysyms" ;X11
@@ -316,9 +310,9 @@
;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests"))
(define %chromium-version "103.0.5060.53")
(define %chromium-version "98.0.4758.102")
(define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision "debian/102.0.5005.61-1")
(define %debian-revision "debian/90.0.4430.85-1")
(define %ungoogled-origin
(origin
@@ -328,44 +322,27 @@
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256
(base32
"1g5ciwzrhg9g13gvhrwqf19djk9jhj1d6nx2f6a8d5ch1mhi2z8s"))))
"0baz90fnzpldw0wwibhmh4pmki7vlpci9b9vvifa0rj5cwckl8a0"))))
(define %debian-origin
(origin
(method git-fetch)
(uri (git-reference
(url "https://salsa.debian.org/chromium-team/chromium.git")
(commit %debian-revision)))
(file-name (git-file-name "debian-chromium-patches"
(match (string-split %debian-revision #\/)
((_ version) version))))
(sha256
(base32
"1ln6r1qzlr7dsgvcbssvvc34my4mpkwv9hmvlb2dhjncs7isp65j"))))
(define (debian-patch name)
(computed-file
(basename name)
#~(symlink (string-append #$%debian-origin "/debian/patches/" #$name)
#$output)))
(define %debian-patches
(map debian-patch
'("system/jsoncpp.patch"
"system/zlib.patch"
"system/openjpeg.patch")))
;; Take a patch from Arch that reverts a change which requires an unreleased
;; version of ffmpeg.
(define %ungoogled-chromium-unroll-ffmpeg.patch
(define* (debian-patch name hash #:optional (revision %debian-revision))
(origin
(method url-fetch)
(uri "https://raw.githubusercontent.com/archlinux/svntogit-packages\
/f3225f99b900e11ac900725992ea883142d7309c/trunk/roll-src-third_party-ffmpeg.patch")
(file-name "ungoogled-chromium-unroll-ffmpeg.patch")
(sha256
(base32
"0i7crn6fcwq09kd6a4smqnffaldyv61lmv2p0drcnpfrwalmkprh"))))
(uri (string-append "https://salsa.debian.org/chromium-team/chromium/-/raw/"
revision "/debian/patches/" name))
(file-name (match (string-split name #\/)
((category name)
(string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash))))
(define %debian-patches
(list (debian-patch "fixes/nomerge.patch"
"0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3")
(debian-patch "system/jsoncpp.patch"
"16lvhci10hz0q9axc6p921b95a76kbzcla5cl81czxzfwnynr1w5")
(debian-patch "system/zlib.patch"
"0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv")
(debian-patch "system/openjpeg.patch"
"048405xh84pys0kky81vlqhaxjyxvcql4py217z01qxiv991zxaj")))
(define %guix-patches
(list (local-file
@@ -407,9 +384,6 @@
patch "--no-backup-if-mismatch"))
(append '#+%debian-patches '#+%guix-patches))
(invoke "patch" "-Rp1" "--force" "--input" "--no-backup-if-mismatch"
"--input" #$%ungoogled-chromium-unroll-ffmpeg.patch)
(with-directory-excursion #+%ungoogled-origin
(format #t "Ungooglifying...~%")
(force-output)
@@ -477,7 +451,7 @@
%chromium-version ".tar.xz"))
(sha256
(base32
"00di0nw6h3kb0qp2wp3ny3zsar1ayn1lyx5zr28dl1h5cwaaxjqf"))
"0gpk13k8pfk65vinlmkg3p7mm0qb8z35psajkxzx0v3n2bllfns1"))
(modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
@@ -523,8 +497,6 @@
"build_with_tflite_lib=false"
;; Avoid dependency on code formatting tools.
"blink_enable_generated_code_formatting=false"
;; Don't bother building Dawn tests.
"build_dawn_tests=false"
;; Define a custom toolchain that simply looks up CC, AR and
;; friends from the environment.
@@ -585,6 +557,7 @@
"rtc_build_libvpx=true"
"rtc_build_opus=false"
"rtc_build_libsrtp=true" ;FIXME: fails to find headers
"rtc_build_usrsctp=true" ;TODO: package this
"rtc_build_ssl=true") ;XXX: requires BoringSSL
#:phases
#~(modify-phases %standard-phases
@@ -622,14 +595,16 @@
"#include \"opus/opus_types.h\"")))
(find-files (string-append "third_party/webrtc/modules"
"/audio_coding/codecs/opus")))
(substitute* "media/audio/audio_opus_encoder.h"
(("\"third_party/opus/src/include/opus.h\"")
"<opus/opus.h>"))
(substitute* "third_party/webrtc/rtc_base/strings/json.h"
(("#include \"third_party/jsoncpp/")
"#include \"json/"))
;; This can be removed for M99.
(substitute* "media/gpu/chromeos/video_decoder_pipeline.cc"
(("third_party/libdrm/src/include/drm/drm_fourcc\\.h")
"libdrm/drm_fourcc.h"))
;; Many files try to include ICU headers from "third_party/icu/...".
;; Remove the "third_party/" prefix to use system headers instead.
(substitute* (find-files "chrome" "\\.cc$")
@@ -661,18 +636,8 @@
(libudev.so.1 (search-input-file inputs "/lib/libudev.so.1"))
(libvulkan.so.1 (search-input-file inputs
"/lib/libvulkan.so.1"))
(icd.d (search-input-directory inputs "share/vulkan/icd.d"))
(mesa-lib (dirname (search-input-file inputs
"/lib/libGL.so.1")))
(gtk-libs '("libgio-2.0.so.0"
"libgdk_pixbuf-2.0.so.0"
"libgdk-3.so.0"
"libgtk-3.so.0")))
(for-each (lambda (lib)
(substitute* "ui/gtk/gtk_compat.cc"
((lib) (search-input-file
inputs (string-append "lib/" lib)))))
gtk-libs)
"/lib/libGL.so.1"))))
(substitute* "printing/cups_config_helper.py"
(("cups_config =.*")
(string-append "cups_config = '" cups-config "'\n")))
@@ -680,31 +645,8 @@
(("libnssckbi\\.so") libnssckbi.so))
(substitute* "device/udev_linux/udev1_loader.cc"
(("libudev\\.so\\.1") libudev.so.1))
;; Patch libvulkan.so everywhere.
(substitute*
'("third_party/swiftshader/include/vulkan/vulkan.hpp"
"third_party/vulkan-deps/vulkan-tools\
/src/vulkaninfo/vulkaninfo.h"
"third_party/vulkan-deps/vulkan-headers\
/src/include/vulkan/vulkan.hpp"
"content/gpu/gpu_sandbox_hook_linux.cc"
"ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc"
"ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc"
"ui/ozone/platform/x11/vulkan_implementation_x11.cc"
"third_party/skia/tools/sk_app/unix\
/DawnVulkanWindowContext_unix.cpp")
(substitute* "third_party/dawn/src/dawn_native/vulkan/BackendVk.cpp"
(("libvulkan\\.so\\.1") libvulkan.so.1))
(substitute* "content/gpu/gpu_sandbox_hook_linux.cc"
(("/usr/share/vulkan/icd\\.d") icd.d))
;; Add the libvulkan directory to dawn built-in search paths.
(substitute* "third_party/dawn/src/dawn/native/Instance.cpp"
(("^([[:blank:]]+)mRuntimeSearchPaths\\.push_back\\(\"\"\\);"
all indent)
(string-append indent "mRuntimeSearchPaths.push_back(\""
(dirname libvulkan.so.1) "/\");\n" all)))
(substitute*
'("ui/ozone/platform/x11/gl_ozone_glx.cc"
"ui/ozone/common/egl_util.cc"
@@ -726,15 +668,6 @@
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
(setenv "CC" "clang") (setenv "CXX" "clang++")
;; Disable compiler flags that require Clang 15.
(substitute* "build/config/compiler/BUILD.gn"
(("\"-no-opaque-pointers\",")
"")
(("\"-Wno-unqualified-std-cast-call\"")
"")
(("\"-Wno-deprecated-non-prototype\"")
""))
;; TODO: pre-compile instead. Avoids a race condition.
(setenv "PYTHONDONTWRITEBYTECODE" "1")
@@ -805,9 +738,8 @@
#$(local-file
(search-auxiliary-file
"chromium/master-preferences.json")))
(gtk (dirname (dirname
(search-input-file inputs "lib/libgtk-3.so"))))
(xdg-utils (dirname (search-input-file inputs "bin/xdg-open"))))
(gtk+ (assoc-ref inputs "gtk+"))
(xdg-utils (assoc-ref inputs "xdg-utils")))
(substitute* '("chrome/app/resources/manpage.1.in"
"chrome/installer/linux/common/desktop.template")
@@ -843,8 +775,8 @@
(wrap-program exe
;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
`("XDG_DATA_DIRS" ":" prefix (,(string-append gtk "/share")))
`("PATH" ":" prefix (,xdg-utils))))
`("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))
`("PATH" ":" prefix (,(string-append xdg-utils "/bin")))))
(with-directory-excursion "chrome/app/theme/chromium"
(for-each
@@ -857,7 +789,7 @@
'("24" "48" "64" "128" "256")))))))))
(native-inputs
(list bison
clang-14
clang-13
gn
gperf
lld-as-ld-wrapper
@@ -872,7 +804,6 @@
(inputs
(list alsa-lib
atk
at-spi2-atk
cups
curl
dbus
@@ -880,14 +811,12 @@
flac
ffmpeg
fontconfig
fp16
freetype
fxdiv
gdk-pixbuf
glib
gtk+
harfbuzz-3.0
icu4c-71
icu4c
jsoncpp
lcms
libevent
+5 -12
View File
@@ -28,7 +28,6 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR))
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
@@ -53,8 +52,7 @@
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR)))
#:use-module (guix build-system gnu))
(define-public cuirass
(let ((commit "9f08035f942a1e78f92e2db886d7837b0ab98b2f")
@@ -164,14 +162,7 @@
;; FIXME: this is propagated by "guile-git", but it needs to be among
;; the inputs to add it to GUILE_LOAD_PATH.
guile-bytestructures
;; FIXME: The 'cuirass evaluate' command is multithreaded, but it
;; uses 'open-inferior', which calls 'primitive-fork', thus
;; potentially creating child processes that deadlock. To work
;; around that, use the last revision of Guix where
;; 'open-inferior' was using 'open-pipe*' rather than
;; 'primitive-fork'. See <https://issues.guix.gnu.org/55441>.
guix-for-cuirass))
guix))
(native-inputs
(list autoconf automake pkg-config texinfo ephemeralpg))
(native-search-paths
@@ -182,7 +173,9 @@
(file-type 'regular)
(separator #f) ;single entry
(files '("etc/ssl/certs/ca-certificates.crt")))
$SSL_CERT_DIR))
(search-path-specification
(variable "SSL_CERT_DIR")
(files '("etc/ssl/certs")))))
(synopsis "Continuous integration system")
(description
"Cuirass is a continuous integration tool using GNU Guix. It is
+57 -75
View File
@@ -2,7 +2,7 @@
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Dion Mendel <guix@dm9.info>
;;;
;;; This file is part of GNU Guix.
@@ -22,7 +22,6 @@
(define-module (gnu packages cluster)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -30,30 +29,27 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages docbook)
#:use-module (gnu packages flex)
#:use-module (gnu packages gettext)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages ruby)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml))
#:use-module (gnu packages tls))
(define-public drbd-utils
(package
(name "drbd-utils")
(version "9.21.2")
(version "9.19.1")
(source (origin
(method url-fetch)
(uri (list (string-append "https://pkg.linbit.com/downloads/drbd"
"/utils/drbd-utils-" version ".tar.gz")))
(sha256
(base32
"1zhinblhpfb7wq3wkaim4xzx1m89671djvnrf4vjabfzpclkz60h"))
"1l99kcrb0j85wxxmrdihpx9bk1a4sdi7wlp5m1x5l24k8ck1m5cf"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -69,73 +65,62 @@
(substitute* "configure"
;; Use a sensible default udev rules directory.
(("default_udevdir=/lib/udev")
"default_udevdir='${prefix}/lib/udev'"))))))
"default_udevdir='${prefix}/lib/udev'"))
#t))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list "--sysconfdir=/etc"
"--localstatedir=/var"
;; Do not install sysv or systemd init scripts.
"--with-initscripttype=none"
;; Disable support for DRBD 8.3 as it is only for
;; Linux-Libre versions < 3.8. 8.4 is the latest
;; kernel driver as of Linux 5.18.
"--without-83support")
#:test-target "test"
#:make-flags #~(list "WANT_DRBD_REPRODUCIBLE_BUILD=yesplease")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-ja-translation
(lambda _
;; XXX: The japanese documentation cannot be created due to
;; several "Invalid po file" and "use of uninitialized variable"
;; in po4a.
(substitute* "Makefile.in"
(("(DOC_DIRS.*)documentation/ja/v[[:digit:]]+" _ match)
match)
(("[[:blank:]]+\\$\\(MAKE\\) -C documentation/ja/v[[:digit:]]+.*")
""))))
(add-after 'patch-generated-file-shebangs 'patch-documentation
(lambda _
;; The preceding phase misses some Makefiles with unusual file
;; names, so we handle those here.
(for-each patch-makefile-SHELL (find-files "documentation/common"
"^Makefile"))))
(add-before 'configure 'use-absolute-/lib/drbd
(lambda _
;; Look for auxiliary executables below exec_prefix instead
;; of assuming /lib/drbd (see TODO comment in the file).
(substitute* "user/v9/drbdtool_common.c"
(("\"/lib/drbd\"")
(string-append "\"" #$output "/lib/drbd\"")))))
(add-after 'configure 'adjust-installation-directories
(lambda _
;; Do not attempt to create /etc or /var.
(substitute* "scripts/Makefile"
(("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)")
"$(DESTDIR)$(prefix)$(sysconfdir)"))
(substitute* "user/v84/Makefile"
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
"$(DESTDIR)$(prefix)$(localstatedir)")
(("\\$\\(DESTDIR\\)/lib/drbd")
"$(DESTDIR)$(prefix)/lib/drbd"))
(substitute* "user/v9/Makefile"
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
"$(DESTDIR)$(prefix)$(localstatedir)")
(("\\$\\(DESTDIR\\)\\$\\(DRBD_LIB_DIR\\)")
"$(DESTDIR)$(prefix)$(DRBD_LIB_DIR)")))))))
`(#:configure-flags '(;; Do not install sysv or systemd init scripts.
"--with-initscripttype=none"
;; Use the pre-built manual pages present in release
;; tarballs instead of generating them from scratch.
"--with-prebuiltman"
;; Disable support for DRBD 8.3 as it is only for
;; Linux-Libre versions < 3.8. 8.4 is the latest
;; kernel driver as of Linux 5.7.
"--without-83support"
"--sysconfdir=/etc"
"--localstatedir=/var")
#:test-target "test"
#:make-flags '("WANT_DRBD_REPRODUCIBLE_BUILD=yesplease")
#:phases
(modify-phases %standard-phases
(add-after 'patch-generated-file-shebangs 'patch-documentation
(lambda _
;; The preceding phase misses some Makefiles with unusual file
;; names, so we handle those here.
(for-each patch-makefile-SHELL (find-files "documentation/common"
"^Makefile"))
#t))
(add-before 'configure 'use-absolute-/lib/drbd
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; Look for auxiliary executables below exec_prefix instead
;; of assuming /lib/drbd (see TODO comment in the file).
(substitute* "user/v9/drbdtool_common.c"
(("\"/lib/drbd\"")
(string-append "\"" out "/lib/drbd\"")))
#t)))
(add-after 'configure 'adjust-installation-directories
(lambda _
;; Do not attempt to create /etc or /var.
(substitute* "scripts/Makefile"
(("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)")
"$(DESTDIR)$(prefix)$(sysconfdir)"))
(substitute* "user/v84/Makefile"
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
"$(DESTDIR)$(prefix)$(localstatedir)")
(("\\$\\(DESTDIR\\)/lib/drbd")
"$(DESTDIR)$(prefix)/lib/drbd"))
(substitute* "user/v9/Makefile"
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
"$(DESTDIR)$(prefix)$(localstatedir)")
(("\\$\\(DESTDIR\\)\\$\\(DRBD_LIB_DIR\\)")
"$(DESTDIR)$(prefix)$(DRBD_LIB_DIR)"))
#t)))))
(native-inputs
(list clitest
eudev ;just to satisfy a configure check
flex
;; For the documentation.
docbook-xml
docbook-xml-4.4 ;used by documentation/ra2refentry.xsl
docbook-xsl
libxml2 ;for XML_CATALOG_FILES
libxslt ;for xsltproc
ruby-asciidoctor))
`(("clitest" ,clitest)
("flex" ,flex)
("udev" ,eudev))) ;just to satisfy a configure check
(home-page "https://www.linbit.com/drbd/")
(synopsis "Replicate block devices between machines")
(description
@@ -143,9 +128,6 @@
shared-nothing, replicated storage solution mirroring the content of block
devices (hard disks, partitions, logical volumes etc.) over any network
connection. This package contains the userland utilities.")
(properties
'((release-monitoring-url
. "https://www.linbit.com/en/drbd-community/drbd-download/")))
(license license:gpl2+)))
(define-public keepalived
+9 -3
View File
@@ -38,7 +38,6 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system emacs)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
#:use-module (gnu packages)
#:use-module (gnu packages backup)
#:use-module (gnu packages compression)
@@ -230,8 +229,15 @@ using the CMake build system.")
(files '("")))
;; "cmake-curl-certificates.patch" changes CMake to honor 'SSL_CERT_DIR'
;; and 'SSL_CERT_FILE', hence these search path entries.
$SSL_CERT_DIR
$SSL_CERT_FILE))
(search-path-specification
(variable "SSL_CERT_DIR")
(separator #f) ;single entry
(files '("etc/ssl/certs")))
(search-path-specification
(variable "SSL_CERT_FILE")
(file-type 'regular)
(separator #f) ;single entry
(files '("etc/ssl/certs/ca-certificates.crt")))))
(home-page "https://cmake.org/")
(synopsis "Cross-platform build system")
(description
+6 -126
View File
@@ -11,11 +11,11 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2019 Hartmut Goebel <h.goebel@goebel-consult.de>
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 lu hui <luhuins@163.com>
;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -48,14 +48,12 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages c)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages elf)
#:use-module (gnu packages emacs)
#:use-module (gnu packages flex)
#:use-module (gnu packages gcc)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages llvm)
@@ -67,9 +65,7 @@
#:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages texinfo)
@@ -121,13 +117,6 @@ a major mode for Emacs for examining the flowcharts that it produces.")
(base32
"0lr0l9kj2w3jilz9h9y4np9pf9i9ccpy6331lanki2fnz4z8ldvd"))))
(build-system gnu-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-man-page-date
;; Avoid embedding the current date for reproducible builds
(lambda _
(setenv "MAN_PAGE_DATE" "2012-04-18"))))))
(native-inputs
(list texinfo autogen))
(home-page "https://www.gnu.org/software/complexity/")
@@ -390,7 +379,7 @@ features that are not supported by the standard @code{stdio} implementation.")
(define-public universal-ctags
(package
(name "universal-ctags")
(version "5.9.20220626.0")
(version "5.9.20210509.0")
(source
(origin
(method git-fetch)
@@ -400,14 +389,14 @@ features that are not supported by the standard @code{stdio} implementation.")
(file-name (git-file-name name version))
(sha256
(base32
"1x5kqqznlbndwln8g0kcxnla6b94i7x7cd63ba2sj0fzzms5gx24"))
"1sq94bnbzr40zwihfnsna759bbak0lw27j0yn12iwpg4xgb4hhwp"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove the bundled PackCC and associated build rules.
(substitute* "Makefile.am"
(("^PACKCC = .*")
"PACKCC = packcc\n")
"PACKCC = packcc")
(("\\$\\(PACKCC_FILES\\)")
"")
(("\\$\\(PEG_SRCS\\) \\$\\(PEG_HEADS\\): \\$\\(PACKCC\\)")
@@ -437,7 +426,7 @@ features that are not supported by the standard @code{stdio} implementation.")
(native-inputs
(list autoconf automake packcc perl pkg-config))
(inputs
(list jansson libseccomp libxml2 libyaml pcre2))
(list jansson libseccomp libxml2 libyaml))
(home-page "https://ctags.io/")
(synopsis "Generate tag files for source code")
(description
@@ -936,88 +925,6 @@ extensions over the standard utility.")
source and header amalgamation in projects.")
(license license:bsd-3))))
(define-public cdecl
(package
(name "cdecl")
(version "2.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.ibiblio.org/pub/linux/devel/lang/c/cdecl-"
version ".tar.gz"))
(sha256
(base32 "0dm98bp186r4cihli6fmcwzjaadgwl1z3b0zdxfik8h7hkqawk5p"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
,#~(list "LIBS=-lreadline"
(string-append "BINDIR=" #$output "/bin")
(string-append "MANDIR=" #$output "/share/man/man1"))
#:phases
(modify-phases %standard-phases
(delete 'configure) ; No configure script.
(add-after 'unpack 'fix-build
(lambda _
(substitute* "Makefile"
(("lex cdlex.l")
"flex cdlex.l"))
(substitute* "cdecl.c"
;; Fix "error: conflicting types for getline".
(("char \\* getline\\(\\)")
"char * our_getline(void)")
(("char \\* getline \\(\\)")
"char * our_getline(void)")
(("line = getline\\(\\)")
"line = our_getline()")
;; Fix "error: conflicting types for getopt".
(("int getopt\\(int,char \\*\\*,char \\*\\);")
"")
;; Fix invalid use of "restrict" as a variable name.
(("i, j, restrict")
"i, j, restriction")
(("restrict =")
"restriction =")
;; Fix "warning: implicit declaration of function add_history".
(("# include <readline/readline.h>" all)
(string-append all "\n# include <readline/history.h>"))
;; Fix "warning: implicit declaration of function dotmpfile_from_string".
(("void setprogname\\(char \\*\\);" all)
(string-append all "\nint dotmpfile_from_string(char *);"))
;; Fix "warning: implicit declaration of function completion_matches".
(("matches = completion_matches\\(text, command_completion\\);")
"matches = rl_completion_matches(text, command_completion);")
(("char \\* command_completion\\(char \\*, int\\);")
"char * command_completion(const char *, int);")
(("char \\* command_completion\\(char \\*text, int flag\\)")
"char * command_completion(const char *text, int flag)")
;; Fix "warning: CPPFunction is deprecated".
(("rl_attempted_completion_function = \\(CPPFunction \\*\\)attempt_completion;")
"rl_attempted_completion_function = (rl_completion_func_t *)attempt_completion;")
;; Fix "warning: Function is deprecated".
(("rl_completion_entry_function = \\(Function \\*\\)keyword_completion;")
"rl_completion_entry_function = (rl_compentry_func_t *)keyword_completion;"))
;; Fix typo in man page.
(substitute* "cdecl.1"
(("<storage>\t::= auto \\| extern \\| register \\| auto")
"<storage>\t::= auto | extern | register | static"))))
(add-before 'install 'create-directories
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/share/man/man1")))
(mkdir-p bin)
(mkdir-p man)))))
#:tests? #f)) ; No "check" target.
(native-inputs (list bison flex))
(inputs (list readline))
(home-page "https://www.ibiblio.org/pub/linux/devel/lang/c/")
(synopsis "Turn English phrases into C or C++ declarations and vice versa")
(description "@code{cdecl} is a program that turns English-like phrases into C
declarations. It can also translate C into pseudo-English. It also handles
type casts and C++. It has command-line editing and history with the GNU
Readline library.")
(license license:public-domain)))
(define-public cscope
(package
(name "cscope")
@@ -1046,30 +953,3 @@ also be used for C++ code.
Using cscope, you can easily search for where symbols are used and defined.")
(license license:bsd-3)))
(define-public xenon
(package
(name "xenon")
(version "0.9.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xenon" version))
(sha256
(base32
"1f4gynjzfckm3rjfywwgz1c7icfx3zjqirf16aj73xv0c9ncpffj"))))
(build-system python-build-system)
(arguments (list #:tests? #f)) ;test suite not shipped with the PyPI archive
(inputs (list python-pyyaml python-radon python-requests))
(home-page "https://xenon.readthedocs.org/")
(synopsis "Monitor code metrics for Python on your CI server")
(description
"Xenon is a monitoring tool based on Radon. It monitors code complexity.
Ideally, @code{xenon} is run every time code is committed. Through command
line options, various thresholds can be set for the complexity of code. It
will fail (i.e. it will exit with a non-zero exit code) when any of these
requirements is not met.")
(license license:expat)))
(define-public python-xenon
(deprecated-package "python-xenon" xenon))
File diff suppressed because it is too large Load Diff
+69 -96
View File
@@ -10,7 +10,7 @@
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 20162022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20162021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016, 2019, 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
@@ -35,6 +35,7 @@
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Ahmad Jarara <git@ajarara.io>
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -52,7 +53,6 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages compression)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
@@ -233,43 +233,28 @@ adding and extracting files to/from a tar archive.")
(define-public gzip
(package
(name "gzip")
(version "1.10")
(version "1.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gzip/gzip-"
version ".tar.xz"))
(sha256
(base32
"1h6p374d3j8d4cdfydzls021xa2yby8myc0h8d6m8bc7k6ncq9c4"))))
"0mhrx5wk9gazmxdw7vmbpg036yzqqhsww6h12kwf2dzn37jh6pnf"))))
(build-system gnu-build-system)
(synopsis "General file (de)compression (using lzw)")
(arguments
;; FIXME: The test suite wants `less', and optionally Perl.
'(#:tests? #f
#:configure-flags '("ac_cv_prog_LESS=\"less\"")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-for-glibc-2.28
(lambda _
;; Adjust the bundled gnulib to work with glibc 2.28. See e.g.
;; "m4-gnulib-libio.patch". This is a phase rather than patch
;; or snippet to work around <https://bugs.gnu.org/32347>.
(substitute* (find-files "lib" "\\.c$")
(("#if defined _IO_ftrylockfile")
"#if defined _IO_EOF_SEEN"))
(substitute* "lib/stdio-impl.h"
(("^/\\* BSD stdio derived implementations")
(string-append "#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN\n"
"# define _IO_IN_BACKUP 0x100\n"
"#endif\n\n"
"/* BSD stdio derived implementations")))
#t))
(add-after 'unpack 'use-absolute-name-of-gzip
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "gunzip.in"
(("exec gzip")
(("exec 'gzip'")
(string-append "exec " (assoc-ref outputs "out")
"/bin/gzip")))
#t)))))
"/bin/gzip"))))))))
(description
"GNU Gzip provides data compression and decompression utilities; the
typical extension is \".gz\". Unlike the \"zip\" format, it compresses a single
@@ -412,10 +397,8 @@ decompression.")
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-gnulib
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(let ((gnulib
(dirname (search-input-file (or native-inputs inputs)
"gnulib-tool.py"))))
(lambda* (#:key inputs #:allow-other-keys)
(let ((gnulib (assoc-ref inputs "gnulib")))
(copy-recursively gnulib "lib")
(setenv "PATH" (string-append "lib:" (getenv "PATH")))
#t)))
@@ -633,14 +616,14 @@ archiving. Lzip is a clean implementation of the LZMA algorithm.")
(define-public lziprecover
(package
(name "lziprecover")
(version "1.23")
(version "1.22")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/lziprecover/"
"lziprecover-" version ".tar.gz"))
(sha256
(base32
"0wmmyi03fv2lflsir5ldrsv04q57k3hmlqajzb1m3p86gwbh967j"))))
"0qh8dnhr5rly2k9dnx43qqynqwqzi5kfb15pyd29qwppfl4qm5gx"))))
(build-system gnu-build-system)
(home-page "https://www.nongnu.org/lzip/lziprecover.html")
(synopsis "Recover and decompress data from damaged lzip files")
@@ -981,30 +964,31 @@ byte-for-byte identical output.")
(define-public pigz
(package
(name "pigz")
(version "2.7")
(version "2.6")
(source (origin
(method url-fetch)
(uri (string-append "http://zlib.net/pigz/"
name "-" version ".tar.gz"))
(sha256
(base32
"01y7n7lafp6maqnp4jrmasawnv67najh1bd7gjrmv3d08h1ydjdl"))))
"0z9avc4mifwcpj3qdsf9m2rjw9jx03b2r9pj0c4xgla9fh6ppv9f"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list (string-append "CC=" #$(cc-for-target)))
#:test-target "test"
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda _
(let* ((bin (string-append #$output "/bin"))
(man (string-append #$output "/share/man/man1")))
(install-file "pigz" bin)
(symlink "pigz" (string-append bin "/unpigz"))
(install-file "pigz.1" man)))))))
(native-inputs (list which))
`(#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/share/man/man1")))
(install-file "pigz" bin)
(symlink "pigz" (string-append bin "/unpigz"))
(install-file "pigz.1" man)
#t))))
#:make-flags
(list ,(string-append "CC=" (cc-for-target)))
#:test-target "tests"))
(inputs (list zlib))
(home-page "https://zlib.net/pigz/")
(synopsis "Parallel implementation of gzip")
@@ -1088,7 +1072,7 @@ tarballs.")
(define-public libjcat
(package
(name "libjcat")
(version "0.1.11")
(version "0.1.9")
(source
(origin
(method git-fetch)
@@ -1098,12 +1082,13 @@ tarballs.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "08zywwhm9q8m8v17w2mp23w3w93p40ir1w4x18zrlbhs10xnhiys"))))
(base32 "02cgznk6qdylqpcyks6qykmvhpz1pplvnxp72bjzji1y6yj3zpkj"))))
(build-system meson-build-system)
(native-inputs
(list gobject-introspection help2man pkg-config))
(inputs
(list glib
(list git
glib
gnupg
gnutls
gpgme
@@ -1156,14 +1141,14 @@ human-readable output.")
(define-public lrzip
(package
(name "lrzip")
(version "0.651")
(version "0.641")
(source
(origin
(method url-fetch)
(uri (string-append
"http://ck.kolivas.org/apps/lrzip/lrzip-" version ".tar.xz"))
(sha256
(base32 "1y822rpl7ak57s1a4xzd6ja82cp3sff9axrpkdn5khcpn3n8vga8"))))
(base32 "0ziyanspd96dc3lp2qdcylc7aq8dhb511jhqrhxvlp502fjqjqrc"))))
(build-system gnu-build-system)
(native-inputs
`(;; nasm is only required when building for 32-bit x86 platforms
@@ -1579,28 +1564,21 @@ or junctions, and always follows hard links.")
(define-public zstd
(package
(name "zstd")
(version "1.5.0")
(version "1.5.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/facebook/zstd/releases/download/"
"v" version "/zstd-" version ".tar.gz"))
(sha256
(base32 "150y541303vnvfhd8wkbih00lfvvm98rd12yijwlbkqzg3xgp52i"))))
(base32 "1l1zm1imcc2ixayykyh4y421shdj3pzp7g2xm2k2js8jmipxahkw"))))
(build-system gnu-build-system)
(outputs '("out" ;1.2MiB executables and documentation
(outputs '("out" ;1.5MiB executables and documentation
"lib" ;1.2MiB shared library and headers
"static")) ;1.2MiB static library
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-bogus-check
(lambda _
;; lib/Makefile falsely claims that no .pc file can be created.
(substitute* "lib/Makefile"
(("error configured .*dir ")
"true "))
#t))
(add-after 'unpack 'patch-command-file-names
;; Don't require hard requirements to be in $PATH.
(lambda* (#:key outputs #:allow-other-keys)
@@ -1975,14 +1953,14 @@ of archives.")
(define-public lunzip
(package
(name "lunzip")
(version "1.13")
(version "1.12")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/lunzip/"
"lunzip-" version ".tar.gz"))
(sha256
(base32 "153qa674rlbw812fb7h8rfzdw4hvr6vgkjl1c0yfplj7p4h86z9w"))))
(base32 "1liaynyy3qcs29hfk1pnb7i9r1mnmpw557j5v356qsv6qnm4lnz5"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -2002,14 +1980,14 @@ Lunzip is intended to be fully compatible with the regular lzip package.")
(define-public clzip
(package
(name "clzip")
(version "1.13")
(version "1.12")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/clzip/"
"clzip-" version ".tar.gz"))
(sha256
(base32 "0ypagygbnq4ppqyg7sj4816x5c1w579883m2nsq0zxbb0gszpjbs"))))
(base32 "1s7yidqvmxi61hh569h5aci816l6qkffjgx0zx57qyyq0qq2pjgw"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -2028,14 +2006,14 @@ Clzip is intended to be fully compatible with the regular lzip package.")
(define-public lzlib
(package
(name "lzlib")
(version "1.13")
(version "1.12")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/lzlib/"
"lzlib-" version ".tar.gz"))
(sha256
(base32 "107vkzfgvb21cqq4gmxyfn97l4s2c0b3i14k9rkv594b2krmiax1"))))
(base32 "1c9pwd6by8is4z8bs6j306jyy6pgm2dvsn4fr7fg2b5m5qj88pcf"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -2055,14 +2033,14 @@ corrupted input.")
(define-public plzip
(package
(name "plzip")
(version "1.10")
(version "1.9")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/plzip/"
"plzip-" version ".tar.gz"))
(sha256
(base32 "16408n8z21hfxp0qnx3hh1d0c47g8z9i3vflbgbrmf6qcn1abyj3"))))
(base32 "19zinpx7hssl6r3vilpvq2s7wha3545xan8b0vcvsxnyipdx3n0l"))))
(build-system gnu-build-system)
(inputs
(list lzlib))
@@ -2321,7 +2299,7 @@ reading from and writing to ZIP archives.")
(package
(inherit quazip-0)
(name "quazip")
(version "1.3")
(version "1.2")
(source
(origin
(method git-fetch)
@@ -2330,7 +2308,7 @@ reading from and writing to ZIP archives.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0njgbdm3dm5p7xic5mhppbqsl36zn83zz0xfsfh624hlk0ff7n0a"))))))
(base32 "1dwld7jxhjz9l33lrqwvklazdy7ygi6n1m4ry1n1sk5dnschrhby"))))))
(define-public zchunk
(package
@@ -2575,30 +2553,29 @@ chunks.")
(define-public c-blosc
(package
(name "c-blosc")
(version "1.21.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Blosc/c-blosc")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0gy9a7wp7x71x5l3rprx8wpb3c5cn7wqc77gdiffq35hr34q88p9"))
(modules '((guix build utils)))
(snippet
;; In a rare victory, we may delete all bundled libs to no ill effect.
'(delete-file-recursively "internal-complibs"))))
(version "1.18.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Blosc/c-blosc")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1ywq8j70149859vvs19wgjq89d6xsvvmvm2n1dmkzpchxgrvnw70"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
'("-DBUILD_STATIC=OFF"
"-DDEACTIVATE_AVX2=ON"
'("-DDEACTIVATE_AVX2=ON"
"-DPREFER_EXTERNAL_LZ4=ON"
"-DPREFER_EXTERNAL_SNAPPY=ON"
"-DPREFER_EXTERNAL_ZLIB=ON"
"-DPREFER_EXTERNAL_ZSTD=ON")))
(inputs
(list lz4 snappy zlib `(,zstd "lib")))
`(("lz4" ,lz4)
("snappy" ,snappy)
("zlib" ,zlib)
("zstd:lib" ,zstd "lib")))
(home-page "https://blosc.org")
(synopsis "Blocking, shuffling and lossless compression library")
(description
@@ -2648,7 +2625,7 @@ to their original, binary CD format.")
(define-public libdeflate
(package
(name "libdeflate")
(version "1.10")
(version "1.8")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2657,7 +2634,7 @@ to their original, binary CD format.")
(file-name (git-file-name name version))
(sha256
(base32
"0v5qh1cz787xj86l15x6brkkaw0jbxhqj5f85275q0l945qazvwm"))))
"0nw1zhr2s6ffcc3s0n5wsshvjb6pmybwapagli135zzn2fx1pdiz"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -2665,10 +2642,6 @@ to their original, binary CD format.")
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-static-library-installation
(lambda _
(substitute* "Makefile"
(("install .*\\$\\(STATIC_LIB\\).*") ""))))
(delete 'configure))))
(inputs
(list zlib))
@@ -2716,7 +2689,7 @@ can append files to the end of such compressed archives.")
(define-public libcbor
(package
(name "libcbor")
(version "0.9.0")
(version "0.8.0")
(source
(origin
(method git-fetch)
@@ -2724,7 +2697,7 @@ can append files to the end of such compressed archives.")
(url "https://github.com/PJK/libcbor")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32 "1n9fx5i81wr9j18bhz74wclfkwqf1k3piq6lzngvkmq04krzi7ss"))))
(sha256 (base32 "01dv4vxcmbvpphqy16vqiwh25wx11x630js5wfnx7cryarsh9ld7"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@@ -2738,8 +2711,8 @@ can append files to the end of such compressed archives.")
(string-append "-DCMAKE_INSTALL_RPATH=" lib)))))
(synopsis "The C library for parsing and generating CBOR")
(description
"@acronym{CBOR, The Concise Binary Object Representation} is a data format
whose design goals include the possibility of extremely small code size, fairly
"The Concise Binary Object Representation (CBOR) is a data format whose
design goals include the possibility of extremely small code size, fairly
small message size, and extensibility without the need for version
negotiation. These design goals make it different from earlier binary
serializations such as ASN.1 and MessagePack.")
+3 -3
View File
@@ -47,10 +47,10 @@
#:use-module (gnu packages web))
(define-public crun
(let ((commit "c381048530aa750495cf502ddb7181f2ded5b400"))
(let ((commit "8e5757a4e68590326dafe8a8b1b4a584b10a1370"))
(package
(name "crun")
(version "1.4.5")
(version "1.3")
(source
(origin
(method git-fetch)
@@ -59,7 +59,7 @@
(commit commit)
(recursive? #t)))
(sha256
(base32 "0x2xmr5sv9ivvcv5fl5jjk4kq9b3n97s5hsqiqfwl4rz8qcz4xk1"))
(base32 "01yiss2d57kwlxb7zlqzjwlg9fyaf19yjngd1mw9n4hxls3dfj3k"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments

Some files were not shown because too many files have changed in this diff Show More