diff options
author | Marius Bakke <marius@gnu.org> | 2020-11-26 01:08:35 +0100 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2020-11-26 01:08:35 +0100 |
commit | bff94a5a537c2c484f9f6e98cab75195c3dde9e7 (patch) | |
tree | 56c58b40471048d57e3d8650967de47e3520418c /gnu | |
parent | c73a7f7d86c11de6649f12b749c035fd2b6fc1d0 (diff) | |
parent | f36bee1416ffb1ce1111168bca82e7d0313d65dc (diff) | |
download | guix-bff94a5a537c2c484f9f6e98cab75195c3dde9e7.tar.gz guix-bff94a5a537c2c484f9f6e98cab75195c3dde9e7.zip |
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
61 files changed, 1248 insertions, 406 deletions
diff --git a/gnu/ci.scm b/gnu/ci.scm index a5afef91ae..5548d9560e 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -209,8 +210,13 @@ SYSTEM." pine64-barebones-raw-image pinebook-pro-barebones-raw-image)) +(define (hours hours) + (* 3600 hours)) + (define (image-jobs store system) - "Return a list of jobs that build images for SYSTEM." + "Return a list of jobs that build images for SYSTEM. Those jobs are +expensive in storage and I/O operations, hence their periodicity is limited by +passing the PERIOD argument." (define (->alist drv) `((derivation . ,(derivation-file-name drv)) (log . ,(log-file store (derivation-file-name drv))) @@ -225,6 +231,7 @@ SYSTEM." (long-description . "This is a demo stand-alone image of the GNU system.") (license . ,(license-name gpl3+)) + (period . ,(hours 48)) (max-silent-time . 600) (timeout . 3600) (home-page . ,%guix-home-page-url) @@ -323,6 +330,9 @@ system.") (set-guile-for-build (default-guile)) (system-test-value test)))) + ;; Those tests are extremely expensive in I/O operations and storage + ;; size, use the "period" attribute to run them with a period of at + ;; least 48 hours. `((derivation . ,(derivation-file-name drv)) (log . ,(log-file store (derivation-file-name drv))) (outputs . ,(filter-map (lambda (res) @@ -336,6 +346,7 @@ system.") (system-test-name test))) (long-description . ,(system-test-description test)) (license . ,(license-name gpl3+)) + (period . ,(hours 48)) (max-silent-time . 600) (timeout . 3600) (home-page . ,%guix-home-page-url) @@ -374,7 +385,8 @@ system.") all its dependencies, and ready to be installed on \"foreign\" distributions.") (license . ,(license-name gpl3+)) (home-page . ,%guix-home-page-url) - (maintainers . ("bug-guix@gnu.org")))) + (maintainers . ("bug-guix@gnu.org")) + (period . ,(hours 24)))) (define (->job name drv) (let ((name (symbol-append name (string->symbol ".") diff --git a/gnu/local.mk b/gnu/local.mk index c095a5e86a..7717793984 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1365,6 +1365,7 @@ dist_patch_DATA = \ %D%/packages/patches/mumps-shared-libseq.patch \ %D%/packages/patches/mumps-shared-mumps.patch \ %D%/packages/patches/mumps-shared-pord.patch \ + %D%/packages/patches/mupdf-fix-linkage.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ %D%/packages/patches/musl-cross-locale.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 852b56e80f..d3090edf61 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -58,6 +58,7 @@ #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages build-tools) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -4713,7 +4714,7 @@ in the package.") (define-public libaudec (package (name "libaudec") - (version "0.2.3") + (version "0.2.4") (source (origin (method git-fetch) @@ -4723,11 +4724,13 @@ in the package.") (file-name (git-file-name name version)) (sha256 (base32 - "04hw61db8wscj28qjyiaiafx8xl87njgmvqszxyhs4gmg8xgjip7")))) + "1570m2dfia17dbkhd2qhx8jjihrpm7g8nnyg6n4wif4vv229s7dz")))) (build-system meson-build-system) (arguments - ;; Compile tests. - `(#:configure-flags `("-Dtests=true"))) + `(#:meson ,meson-0.55 + #:configure-flags + ;; Build the tests. + `("-Dtests=true"))) (inputs `(("libsamplerate" ,libsamplerate) ("libsndfile" ,libsndfile))) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index b051389ae2..1a82815e92 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018, 2019, 2020 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> -;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> @@ -66,6 +66,8 @@ #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages code) + #:use-module (gnu packages commencement) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cpio) #:use-module (gnu packages cran) @@ -82,6 +84,7 @@ #:use-module (gnu packages golang) #:use-module (gnu packages glib) #:use-module (gnu packages graph) + #:use-module (gnu packages graphics) #:use-module (gnu packages graphviz) #:use-module (gnu packages groff) #:use-module (gnu packages gtk) @@ -91,6 +94,7 @@ #:use-module (gnu packages haskell-web) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages image) + #:use-module (gnu packages image-processing) #:use-module (gnu packages imagemagick) #:use-module (gnu packages java) #:use-module (gnu packages java-compression) @@ -11169,23 +11173,44 @@ programs for inferring phylogenies (evolutionary trees).") "1z1vcpwbylixk0zywngg5iw0jv083jj1bqphi817jpg3fb9fx2jj")))) (build-system cmake-build-system) (arguments - `(;; FIXME: Some tests fail because they produce warnings, others fail - ;; because the PYTHONPATH does not include the modeller's directory. - #:tests? #f)) + `( ;; CMake 3.17 or newer is required for the CMAKE_TEST_ARGUMENTS used + ;; below to have an effect. + #:cmake ,cmake + #:configure-flags + (let ((disabled-tests + '("expensive" ;exclude expensive tests + "IMP.modeller" ;fail to import its own modules + "IMP.parallel-test_sge.py" ;fail in build container + ;; The following test fails non-reproducibly on + ;; an inexact numbers assertion. + "IMP.em-medium_test_local_fitting.py"))) + (list + (string-append + "-DCMAKE_CTEST_ARGUMENTS=" + (string-join + (list "-L" "-tests?-" ;select only tests + "-E" (format #f "'(~a)'" (string-join disabled-tests "|"))) + ";")))))) + (native-inputs + `(("python" ,python-wrapper) + ("swig" ,swig))) (inputs `(("boost" ,boost) + ("cgal" ,cgal) ("gsl" ,gsl) - ("swig" ,swig) ("hdf5" ,hdf5) ("fftw" ,fftw) ("eigen" ,eigen) - ("python" ,python-2))) + ;; Enabling MPI causes the build to use all the available memory and + ;; fail (tested on a machine with 32 GiB of RAM). + ;;("mpi" ,openmpi) + ("opencv" ,opencv))) (propagated-inputs - `(("python2-numpy" ,python2-numpy) - ("python2-scipy" ,python2-scipy) - ("python2-pandas" ,python2-pandas) - ("python2-scikit-learn" ,python2-scikit-learn) - ("python2-networkx" ,python2-networkx))) + `(("python-numpy" ,python-numpy) + ("python-scipy" ,python-scipy) + ("python-pandas" ,python-pandas) + ("python-scikit-learn" ,python-scikit-learn) + ("python-networkx" ,python-networkx))) (home-page "https://integrativemodeling.org") (synopsis "Integrative modeling platform") (description "IMP's broad goal is to contribute to a comprehensive @@ -11203,7 +11228,7 @@ applications for tackling some common problems in a user-friendly way.") (define-public tadbit (package (name "tadbit") - (version "0.2.0") + (version "1.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -11212,21 +11237,13 @@ applications for tackling some common problems in a user-friendly way.") (file-name (git-file-name name version)) (sha256 (base32 - "07g3aj648prmsvxp9caz5yl41k0y0647vxh0f5p3w8376mfiljd0")))) + "0hqrlymh2a2bimcfdvlssy1x5h1lp3h1c5a7jj11hmcqczzqn3ni")))) (build-system python-build-system) (arguments - `(;; Tests are included and must be run after installation, but - ;; they are incomplete and thus cannot be run. - #:tests? #f - #:python ,python-2 - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'fix-problems-with-setup.py (lambda* (#:key outputs #:allow-other-keys) - ;; setup.py opens these files for writing - (chmod "_pytadbit/_version.py" #o664) - (chmod "README.rst" #o664) - ;; Don't attempt to install the bash completions to ;; the home directory. (rename-file "extras/.bash_completion" @@ -11238,15 +11255,25 @@ applications for tackling some common problems in a user-friendly way.") "/etc/bash_completion.d\"")) (("extras/\\.bash_completion") "extras/tadbit")) + #t)) + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "python3" "test/test_all.py") #t))))) + (native-inputs + `(("glib" ,glib "bin") ;for gtester + ("pkg-config" ,pkg-config))) (inputs ;; TODO: add Chimera for visualization `(("imp" ,imp) ("mcl" ,mcl) - ("python2-scipy" ,python2-scipy) - ("python2-numpy" ,python2-numpy) - ("python2-matplotlib" ,python2-matplotlib) - ("python2-pysam" ,python2-pysam))) + ("python-future" ,python-future) + ("python-h5py" ,python-h5py) + ("python-scipy" ,python-scipy) + ("python-numpy" ,python-numpy) + ("python-matplotlib" ,python-matplotlib) + ("python-pysam" ,python-pysam))) (home-page "https://3dgenomes.github.io/TADbit/") (synopsis "Analyze, model, and explore 3C-based data") (description diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 09bff49818..ab44caa06a 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -312,7 +312,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.") (define-public uget (package (name "uget") - (version "2.2.0") + (version "2.2.1") (source (origin (method url-fetch) @@ -320,7 +320,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.") "uget%20%28stable%29/" version "/uget-" version ".tar.gz")) (sha256 - (base32 "0rg2mr2cndxvnjib8zm5dp7y2hgbvnqkz2j2jmg0xlzfh9d34b2m")))) + (base32 "0dlrjhnm1pg2vwmp7nl2xv1aia5hyirb3021rl46x859k63zap24")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 2e9709982f..75ae8d919b 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -258,21 +258,25 @@ menu to select one of the installed operating systems.") (fold alist-delete (package-native-inputs grub) '("help2man" "texinfo" "parted" "qemu" "xorriso"))) (arguments - `(#:configure-flags (list "PYTHON=true") - #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-stuff - (lambda* (#:key native-inputs inputs #:allow-other-keys) - (substitute* "grub-core/Makefile.in" - (("/bin/sh") (which "sh"))) + (substitute-keyword-arguments (package-arguments grub) + ((#:configure-flags _ ''()) + '(list "PYTHON=true")) + ((#:tests? _ #t) + #f) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (replace 'patch-stuff + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (substitute* "grub-core/Makefile.in" + (("/bin/sh") (which "sh"))) - ;; Make the font visible. - (copy-file (assoc-ref (or native-inputs inputs) - "unifont") - "unifont.bdf.gz") - (system* "gunzip" "unifont.bdf.gz") + ;; Make the font visible. + (copy-file (assoc-ref (or native-inputs inputs) + "unifont") + "unifont.bdf.gz") + (system* "gunzip" "unifont.bdf.gz") - #t))) - #:tests? #f)))) + #t)))))))) (define-public grub-efi (package diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index 517b20f448..2fb9822fb5 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -68,8 +68,8 @@ (file-name (string-append name "-" version "-checkout"))))))) (define-public cuirass - (let ((commit "df2d13621f4b2ace33a460746e704115b7b1541e") - (revision "53")) + (let ((commit "fd432b8e8f449d691773e96e7d90f44761e01aa3") + (revision "55")) (package (name "cuirass") (version (git-version "0.0.1" revision commit)) @@ -81,7 +81,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1vgb1wl1rkijm1vv5chqllf4i5w1j7g02xqlaf2xmqjh2phy5dxa")))) + "10j3w3px0250avwry2x8wsa0m0plvm957g4qqgnajsbc9gvka554")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index bfbedfd984..f4b138ebb3 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; @@ -297,6 +297,39 @@ and workspaces that can be used in the compiler environment of your choice.") (package (inherit cmake-minimal) (name "cmake") + (version "3.19.0") + ;; TODO: Move the following source field to the cmake-bootstrap package in + ;; the next rebuild cycle. + (source (origin + (inherit (package-source cmake-bootstrap)) + (uri (string-append "https://cmake.org/files/v" + (version-major+minor version) + "/cmake-" version ".tar.gz")) + (sha256 + (base32 + "14zlrb7awiazxc5wlvgah9rw1dm4ziczbxiyqsvp4zmaan0ninpx")) + (snippet + (match (origin-snippet (package-source cmake-bootstrap)) + ((_ _ exp ...) + ;; Now we can delete the remaining software bundles. + (append `(begin + (define preserved-files + '(,@%preserved-third-party-files + ;; TODO: Move this file to the + ;; %preserved-third-party-files variable in + ;; the next rebuild cycle. + "Utilities/cm3p" ;CMake header wrappers + ;; Use the bundled JsonCpp during bootstrap + ;; to work around a circular dependency. + ;; TODO: JsonCpp can be built with Meson + ;; instead of CMake, but meson-build-system + ;; currently does not support + ;; cross-compilation. + "Utilities/cmjsoncpp" + ;; LibUV is required to bootstrap the initial + ;; build system. + "Utilities/cmlibuv"))) + exp)))))) (arguments (substitute-keyword-arguments (package-arguments cmake-minimal) ;; Use cmake-minimal this time. @@ -318,6 +351,42 @@ and workspaces that can be used in the compiler environment of your choice.") ,flags)) ((#:phases phases) `(modify-phases ,phases + ;; TODO: Remove this override in the next rebuild cycle and adjust + ;; the %common-build-phases variable instead: the + ;; Utilities/Release/release_cmake.cmake file no longer exists in + ;; version 3.19.0. + (replace 'patch-bin-sh + (lambda _ + ;; Replace "/bin/sh" by the right path in... a lot of + ;; files. + (substitute* + '("Modules/CompilerId/Xcode-3.pbxproj.in" + "Modules/Internal/CPack/CPack.RuntimeScript.in" + "Source/cmGlobalXCodeGenerator.cxx" + "Source/cmLocalUnixMakefileGenerator3.cxx" + "Source/cmExecProgramCommand.cxx" + "Tests/CMakeLists.txt" + "Tests/RunCMake/File_Generate/RunCMakeTest.cmake") + (("/bin/sh") (which "sh"))) + #t)) + ;; TODO: Remove this override in the next rebuild cycle and adjust + ;; the %common-disabled-tests variable instead. + (replace 'check + (lambda* (#:key tests? parallel-tests? #:allow-other-keys) + (let ((skipped-tests (list ,@%common-disabled-tests + ;; This test fails for unknown reason. + "RunCMake.file-GET_RUNTIME_DEPENDENCIES" + ;; This test requires the bundled libuv. + "BootstrapTest"))) + (if tests? + (begin + (invoke "ctest" "-j" (if parallel-tests? + (number->string (parallel-job-count)) + "1") + "--exclude-regex" + (string-append "^(" (string-join skipped-tests "|") ")$"))) + (format #t "test suite not run~%")) + #t))) (add-after 'install 'move-html-doc (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index a83169263e..bfa78556bc 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -2320,7 +2320,7 @@ database.") (define-public lmdb (package (name "lmdb") - (version "0.9.26") + (version "0.9.27") (source (origin (method git-fetch) @@ -2329,7 +2329,7 @@ database.") (commit (string-append "LMDB_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0323xwb2rqyrr9vr6gbxc2kl89drhqw0ifmyh9pg9qgqmymyhxdx")))) + (base32 "09xqqm8yjsf1gv4gd4llal48sms76hfhxadx6rik1j2g5v3d3f1k")))) (build-system gnu-build-system) (arguments `(#:test-target "test" diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 52e7ec223a..a82e6a07a8 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; @@ -26,12 +26,17 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (gnu packages autotools) + #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) + #:use-module (gnu packages dbm) #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) - #:use-module (gnu packages wget) - #:use-module (gnu packages perl)) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages wget)) (define-public debian-archive-keyring (package @@ -275,3 +280,114 @@ debian/copyright for more information."))))) selectively mirror Debian and Ubuntu GNU/Linux distributions or any other apt sources typically provided by open source developers.") (license license:gpl2)))) + +(define-public dpkg + (package + (name "dpkg") + (version "1.20.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.dpkg.org/git/dpkg/dpkg") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "190q968g1vdz07byvfvc2gladhpq3yl765mfiacglyix3nkisy0j")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'patch-version + (lambda _ + (patch-shebang "get-version") + (with-output-to-file ".dist-version" + (lambda () (display ,version))) + #t)) + (add-after 'unpack 'set-perl-libdir + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (perl (assoc-ref inputs "perl"))) + (setenv "PERL_LIBDIR" + (string-append out + "/lib/perl5/site_perl/" + ,(package-version perl))) + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gettext-minimal) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("perl-io-string" ,perl-io-string))) + (inputs + `(("bzip2" ,bzip2) + ("libmd" ,libmd) + ("ncurses" ,ncurses) + ("perl" ,perl) + ("xz" ,xz) + ("zlib" ,zlib))) + (home-page "https://wiki.debian.org/Teams/Dpkg") + (synopsis "Debian package management system") + (description "This package provides the low-level infrastructure for +handling the installation and removal of Debian software packages.") + (license license:gpl2+))) + +(define-public reprepro + (package + (name "reprepro") + (version "5.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/brlink/reprepro.git/") + (commit (string-append name "-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kn7m5rxay6q2c4vgjgm4407xx2r46skkkb6rn33m6dqk1xfkqnh")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; testtool not found + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (with-directory-excursion "tests" + (invoke (which "sh") "test.sh")) + #t))) + (add-after 'install 'install-completions + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bash (string-append out "/etc/bash_completion.d/")) + (zsh (string-append out "/share/zsh/site-fucnctions/"))) + (mkdir-p bash) + (mkdir-p zsh) + (copy-file "docs/reprepro.bash_completion" + (string-append bash "reprepro")) + (copy-file "docs/reprepro.zsh_completion" + (string-append zsh "_reprepro")) + #t)))))) + (inputs + `(("bdb" ,bdb) + ("bzip2" ,bzip2) + ("gpgme" ,gpgme) + ("libarchive" ,libarchive) + ("xz" ,xz) + ("zlib" ,zlib))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake))) + (home-page "https://salsa.debian.org/brlink/reprepro") + (synopsis "Debian package repository producer") + (description "Reprepro is a tool to manage a repository of Debian packages +(@code{.deb}, @code{.udeb}, @code{.dsc}, ...). It stores files either being +injected manually or downloaded from some other repository (partially) mirrored +into one pool/ hierarchy. Managed packages and files are stored in a Berkeley +DB, so no database server is needed. Checking signatures of mirrored +repositories and creating signatures of the generated Package indices is +supported.") + (license license:gpl2))) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index c361e5c265..3aa3cf3e8d 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -317,7 +317,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (package (name "bind") ;; When updating, check whether isc-dhcp's bundled copy should be as well. - (version "9.16.8") + (version "9.16.9") (source (origin (method url-fetch) (uri (string-append @@ -325,7 +325,7 @@ and BOOTP/TFTP for network booting of diskless machines.") "/bind-" version ".tar.xz")) (sha256 (base32 - "0ccdbqmpvnxlbrxjsx2w8ir4xh961svzcw7n87n8dglj6rb9r6wy")))) + "0nja60jxb8d2m5fi6xd55xjpfkzmxhjsmbxqphy6x91qsz295cmw")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index cdd58ffa42..840e596e30 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -140,7 +140,7 @@ of categories with some of the activities available in that category. (define-public gcompris-qt (package (name "gcompris-qt") - (version "0.98") + (version "1.0") (source (origin (method url-fetch) @@ -148,22 +148,19 @@ of categories with some of the activities available in that category. "https://gcompris.net/download/qt/src/gcompris-qt-" version ".tar.xz")) (sha256 - (base32 "1jmjykn0lpk0v6hs2flmch8v4da5bgxl891nav7szxw9l7aqnf4y")))) + (base32 "08dw1q0h4qz2q0ksa5pbmb9v60hr1zv9skx6z8dlq9b1i7harnds")))) (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'disable-failing-test - (lambda _ - (substitute* "tests/core/CMakeLists.txt" - (("DownloadManagerTest\\.cpp") "#")) - #t)) (add-before 'check 'start-xorg-server (lambda* (#:key inputs #:allow-other-keys) ;; The test suite requires a running X server. (system (string-append (assoc-ref inputs "xorg-server") "/bin/Xvfb :1 &")) (setenv "DISPLAY" ":1") + ;; The test suite wants to write to /homeless-shelter + (setenv "HOME" (getcwd)) #t)) (add-after 'install 'wrap-executable (lambda* (#:key inputs outputs #:allow-other-keys) @@ -192,7 +189,7 @@ of categories with some of the activities available in that category. ("xorg-server" ,xorg-server-for-tests))) (inputs `(("openssl" ,openssl) - ("python-2" ,python-2) + ("python" ,python-wrapper) ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative) ("qtgraphicaleffects" ,qtgraphicaleffects) @@ -217,7 +214,8 @@ Currently available boards include: @item reading practice @item small games (memory games, jigsaw puzzles, ...) @end enumerate\n") - (license license:gpl3+))) + (license (list license:silofl1.1 ; bundled fonts + license:gpl3+)))) (define-public tipp10 (package diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 5f49c64bb7..907ff200e0 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -85,6 +85,7 @@ ;;; Copyright © 2020 Adam Kandur <rndd@tuta.io> ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com> ;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net> +;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -10357,6 +10358,31 @@ Flx has support for ido (interactively do things) through flx-ido.") known loosely as deftheme. Many mode-specific customizations are included.") (license license:gpl3+))) +(define-public emacs-dart-mode + (package + (name "emacs-dart-mode") + (version "1.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bradyt/dart-mode") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qmdlwjmmqyyb65sqvfpygifai5m0llc815vp0jqwp8ldd8ls172")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-flycheck" ,emacs-flycheck) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/bradyt/dart-mode") + (synopsis "Emacs mode for the Dart programming language") + (description + "Dart mode is an Emacs major mode for editing Dart files. It provides +basic syntax highlighting and indentation.") + (license license:gpl3+))) + (define-public emacs-danneskjold-theme (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57") (revision "1")) @@ -10602,6 +10628,28 @@ provides functions to convert hash tables from and to alists and plists.") you to deal with multiple log levels.") (license license:gpl3+))) +(define-public emacs-gn-mode + (package + (name "emacs-gn-mode") + (version "0.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lashtear/gn-mode") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx")))) + (build-system emacs-build-system) + (home-page "https://github.com/lashtear/gn-mode") + (synopsis "Emacs major mode for editing GN (ninja generator) config files") + (description + "GN mode is a major mode for editing @acronym{GN,Ninja Generator} config +files in Emacs. Files of this type (e.g., @file{BUILD.gn} or @file{*.gni}) +are common in Chromium-derived projects.") + (license license:bsd-3))) + (define-public emacs-gntp (package (name "emacs-gntp") @@ -14111,15 +14159,14 @@ Anzu.zim.") (define-public emacs-ascii-art-to-unicode (package (name "emacs-ascii-art-to-unicode") - (version "1.12") + (version "1.13") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-" version ".el")) (sha256 - (base32 - "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna")))) + (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html") (synopsis "ASCII to Unicode art converter for Emacs") @@ -19796,7 +19843,7 @@ too ambiguous and navigation in the result buffer.") (home-page "https://github.com/sebastiencs/frame-local") (synopsis "Access variables local to an Emacs frame") (description - "This packages allows setting and accessing variables local to + "This package allows setting and accessing variables local to an Emacs frame. Note that the variables created with this package do not have any relation with variables defined by @code{defvar}, @code{defconst}, etc.") @@ -22299,7 +22346,7 @@ and article extracts for Wikipedia.") (define-public emacs-webfeeder (package (name "emacs-webfeeder") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) @@ -22309,7 +22356,7 @@ and article extracts for Wikipedia.") ".tar")) (sha256 (base32 - "09wz6v58xc86hdnz6g54ckaxkm6844yyk2ffbxh4s5sdvgqrzdd8")))) + "09caj12hfdfhlbcsmjyhw728w1f7yq13hdslh793yvfqv83ipvc4")))) (build-system emacs-build-system) (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder") (synopsis "Build RSS and Atom webfeeds from HTML files") @@ -23955,14 +24002,14 @@ interface.") (define-public emacs-ivy-posframe (package (name "emacs-ivy-posframe") - (version "0.5.2") + (version "0.5.3") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "ivy-posframe-" version ".el")) (sha256 - (base32 "01zc2yj7g4lfz7qblx7k6sg54v0h4w0frnnmsf92lwypfijd2lsj")))) + (base32 "03ydfb155p5lak7nw4s79ab9zadwsjw1zggzwxgnlydsqdqbr6l6")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-ivy" ,emacs-ivy) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 3da11e3fed..558541dd5a 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018, 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de> -;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz> ;;; Copyright © 2019 Jovany Leandro G.C <bit4bit@riseup.net> ;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com> @@ -74,6 +74,7 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gd) + #:use-module (gnu packages geo) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) @@ -1076,18 +1077,29 @@ the 'showing the effect of'-style of operation.") (define-public volk (package (name "volk") - (version "2.3.0") + (version "2.4.0") (source (origin - (method url-fetch) - (uri (string-append "https://www.libvolk.org/releases/volk-" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/gnuradio/volk") + (commit (string-append "v" version)) + (recursive? #t))) ; for cpu_features git submodule + (file-name (git-file-name name version)) (sha256 - (base32 "1pjxz3piwy49njj5y2zk437prwkv9lfs5g48577jj3kcsg766vi3")))) + (base32 "14y0988r5qi1h3yvkivx5ihccn8r15910lq30r8iy71ih190r5m9")))) (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases + (add-after 'install 'remove-static-libraries + ;; Remove libcpu_features.a (and any others that might appear). + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + (for-each delete-file (find-files lib "\\.a$" + #:fail-on-error? #t)) + #t))) (add-after 'install 'wrap-pythonpath (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -2836,3 +2848,39 @@ GUI.") provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them.") (license license:gpl3+)))) + +(define-public pcb2gcode + (package + (name "pcb2gcode") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pcb2gcode/pcb2gcode") + (commit (string-append "v" version)) + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0nzglcyh6ban27cc73j4l7w7r9k38qivq0jz8iwnci02pfalw4ry")))) + (build-system gnu-build-system) + (inputs + `(("boost" ,boost) + ("geos" ,geos) + ("gerbv" ,gerbv) + ("glibmm" ,glibmm) + ("gtkmm" ,gtkmm-2) + ("librsvg" ,librsvg))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/pcb2gcode/pcb2gcode") + (synopsis "Generate G-code for milling PCBs") + (description "pcb2gcode is a command-line program for isolation routing +and drilling of PCBs. It takes Gerber files as input and outputs G-code files +for the milling of PCBs. It also includes an autoleveller for the automatic +dynamic calibration of the milling depth.") + (license license:gpl3+))) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 8940b04ca3..c37f5c28a6 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -711,17 +711,17 @@ for use at smaller text sizes"))) (define-public font-gnu-unifont (package (name "font-gnu-unifont") - (version "13.0.03") + (version "13.0.04") (source (origin (method url-fetch) (uri (list - (string-append "http://unifoundry.com/pub/unifont/unifont-" + (string-append "https://unifoundry.com/pub/unifont/unifont-" version "/unifont-" version ".tar.gz") (string-append "mirror://gnu/unifont/unifont-" version "/unifont-" version ".tar.gz"))) (sha256 - (base32 "04l2sbg6il78qsj3jxqfbz5k1xzihvw8vdlckgkp4zfr0nh2q7h7")))) + (base32 "064ilpbnz62cwmpajszs2b08x2zg7yh9whlaiqhjzi7bir3im94j")))) (build-system gnu-build-system) (outputs '("out" ; TrueType version "pcf" ; PCF (bitmap) version diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4dfd65040a..d01d4de33a 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -689,7 +689,7 @@ card, or paper tape, or Morse codes), caesar & rot13 (ciphers and deciphers the input), factor (factorizes a number), number (translates numbers into text), pig (translates from English to Pig Latin), pom (should print the Moon's phase), primes (generates primes), rain & worms (plays an screen-saver -in terminal), random (prints randomly choosen lines from files, or returns a +in terminal), random (prints randomly chosen lines from files, or returns a random exit-code), and wtf (explains what do some acronyms mean). Board: backgammon (lead the men out of board faster than the friend do), diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 395ad4be7a..5908ef4b66 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -788,14 +788,14 @@ utilities for data translation and processing.") (define-public postgis (package (name "postgis") - (version "3.0.2") + (version "3.0.3") (source (origin (method url-fetch) (uri (string-append "https://download.osgeo.org/postgis/source/postgis-" version ".tar.gz")) (sha256 (base32 - "1jmji8i2wjabkrzqil683lypnmimigdmn64a10j3kj3kzlfn98d3")))) + "05s8cx1rlysiq7dd44kf7cid0la61a4p895j9g95bvfb8v8dpzh7")))) (build-system gnu-build-system) (arguments `(#:tests? #f diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 20182a4ff9..05499bc220 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4270,7 +4270,7 @@ passwords in the GNOME keyring.") `(("graphviz" ,graphviz))) (propagated-inputs `(("glib" ,glib))) ; required by libvala-0.40.pc - (home-page "https://live.gnome.org/Vala/") + (home-page "https://wiki.gnome.org/Projects/Vala/") (synopsis "Compiler for the GObject type system") (description "Vala is a programming language that aims to bring modern programming @@ -4282,7 +4282,7 @@ libraries written in C.") (define-public vala-0.50 (package (inherit vala) - (version "0.50.1") + (version "0.50.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/vala/" @@ -4290,7 +4290,7 @@ libraries written in C.") "vala-" version ".tar.xz")) (sha256 (base32 - "0v4g2gvn7x7cl33h8sj1y2xyyskw5ayaj4jm2jrd3my3r439z3cm")))))) + "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c")))))) (define-public vte (package diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index c769252ab9..a8ea94d008 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -326,52 +326,6 @@ libskba (working with X.509 certificates and CMS data).") (properties '((ftp-server . "ftp.gnupg.org") (ftp-directory . "/gcrypt/gnupg"))))) -(define-public gnupg-2.0 - (package (inherit gnupg) - (version "2.0.30") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnupg/gnupg/gnupg-" version - ".tar.bz2")) - (sha256 - (base32 - "0wax4cy14hh0h7kg9hj0hjn9424b71z8lrrc5kbsasrn9xd7hag3")))) - (native-inputs '()) - (inputs - `(("adns" ,adns) - ("bzip2" ,bzip2) - ("curl" ,curl) - ("libassuan" ,libassuan) - ("libgcrypt" ,libgcrypt) - ("libgpg-error" ,libgpg-error) - ("libksba" ,libksba) - ("pth" ,pth) - ("openldap" ,openldap) - ("zlib" ,zlib) - ("readline" ,readline))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-config-files - (lambda _ - (substitute* "tests/openpgp/Makefile.in" - (("/bin/sh") (which "sh"))) - #t)) - (add-after 'install 'rename-v2-commands - (lambda* (#:key outputs #:allow-other-keys) - ;; Upstream suggests removing the trailing '2' from command names: - ;; <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22883#58>. - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion (string-append out "/bin") - (rename-file "gpgv2" "gpgv") - (rename-file "gpg2" "gpg") - - ;; Keep the old name around to ease transition. - (symlink "gpgv" "gpgv2") - (symlink "gpg" "gpg2") - #t))))))) - (properties `((superseded . ,gnupg))))) - (define-public gnupg-1 (package (inherit gnupg) (version "1.4.23") diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index af50119d75..3625755500 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> +;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -713,6 +714,10 @@ model to base your own plug-in on, here it is.") (("'GST_PLUGIN_SYSTEM_PATH_1_0', ''") (string-append "'GST_PLUGIN_SYSTEM_PATH_1_0', '" gst-plugins-good "/lib/gstreamer-1.0'")) + + ;; FIXME: Why is this failing. + ((".*elements/dash_mpd\\.c.*") "") + ;; These tests are flaky and occasionally time out: ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932 ((".*elements/curlhttpsrc\\.c.*") "") @@ -746,6 +751,7 @@ model to base your own plug-in on, here it is.") ("libgudev" ,libgudev) ("libkate" ,libkate) ("libmodplug" ,libmodplug) + ("libnice" ,libnice) ("librsvg" ,librsvg) ("libsndfile" ,libsndfile) ("libsrtp" ,libsrtp) @@ -770,6 +776,7 @@ model to base your own plug-in on, here it is.") ;; GStreamer is not yet compatible with srt > 1.4.1. ("srt" ,srt-1.4.1) ("x265" ,x265) + ("webrtc-audio-processing" ,webrtc-audio-processing) ("wayland" ,wayland))) (home-page "https://gstreamer.freedesktop.org/") (synopsis "Plugins for the GStreamer multimedia library") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 6a2384c79e..3c930722b5 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1509,7 +1509,7 @@ write GNOME applications.") (define-public perl-cairo (package (name "perl-cairo") - (version "1.107") + (version "1.108") (source (origin (method url-fetch) (uri (string-append @@ -1517,7 +1517,7 @@ write GNOME applications.") version ".tar.gz")) (sha256 (base32 - "0sg1gf1f2pjq7pji0zsv4rbi3bzpsx82z98k7yqxafzrvlkf27ay")))) + "1nh5iya63q6j2w0cdi24x2ygpi8k8wwccnbh8cisnx8nqmywnhk0")))) (build-system perl-build-system) (native-inputs `(("perl-extutils-depends" ,perl-extutils-depends) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 6d93d7432f..11694e06f9 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -686,17 +686,17 @@ Guile's foreign function interface.") (define-public guile-bytestructures (package (name "guile-bytestructures") - (version "1.0.7") + (version "1.0.9") (home-page "https://github.com/TaylanUB/scheme-bytestructures") (source (origin (method git-fetch) (uri (git-reference (url home-page) - (commit (string-append "v" version)))) + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0q0habjiy3h9cigb7q1br9kz6z212dn2ab31f6dgd3rrmsfn5rvb")))) + "0r59sqrvwbsknw21bf44bppi6wdhd2rl2v5dw9i2vij3v8w7pgkm")))) (build-system gnu-build-system) (arguments `(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index 1339536954..c6045279c0 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -339,14 +339,14 @@ to @code{cabal repl}).") (define-public git-annex (package (name "git-annex") - (version "8.20201103") + (version "8.20201116") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "git-annex/git-annex-" version ".tar.gz")) (sha256 - (base32 "1z9ikpsz3by48yfw87qav5dy7j4k9ky4a7nqnasl15kdm3lav9pl")))) + (base32 "0xv7n9f6l90l4k964675v0lgs22gcy97ic86mbfb40rl0fk0jalr")))) (build-system haskell-build-system) (arguments `(#:configure-flags @@ -487,6 +487,7 @@ to @code{cabal repl}).") ("ghc-split" ,ghc-split) ("ghc-stm-chans" ,ghc-stm-chans) ("ghc-tagsoup" ,ghc-tagsoup) + ("ghc-torrent" ,ghc-torrent) ("ghc-unix-compat" ,ghc-unix-compat) ("ghc-unordered-containers" ,ghc-unordered-containers) ("ghc-utf8-string" ,ghc-utf8-string) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 19eabd949b..d340df4a08 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -997,6 +997,32 @@ Users wishing to have an improved Prelude can use BasicPrelude. Developers wishing to create a new prelude should use CorePrelude.") (license license:expat))) +(define-public ghc-bencode + (package + (name "ghc-bencode") + (version "0.6.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/bencode/bencode-" + version ".tar.gz")) + (sha256 + (base32 "0znv0y3b3zm5jvhlvj5f5s7y93db67j9yd59w1bnrw2pqv30gqaq")))) + (build-system haskell-build-system) + (inputs + `(("ghc-transformers-compat" ,ghc-transformers-compat))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://hackage.haskell.org/package/bencode") + (synopsis "Parsers and printers for bencoded data") + (description + "This library provides parsers and printers for bencoded data. Bencode +is the encoding used by the peer-to-peer file sharing system BitTorrent for +storing and transmitting loosely structured data.") + (license license:bsd-3))) + (define-public ghc-bifunctors (package (name "ghc-bifunctors") @@ -4414,7 +4440,7 @@ file contents, and more.") (define-public ghc-filepath-bytestring (package (name "ghc-filepath-bytestring") - (version "1.4.2.1.1") + (version "1.4.2.1.6") (source (origin (method url-fetch) @@ -4423,7 +4449,7 @@ file contents, and more.") "filepath-bytestring-" version ".tar.gz")) (sha256 (base32 - "06shdskjj391hb9295slm9gg2rbn5fdq5v6fg0mgn3yl5dv8q5dx")))) + "11xrrzdkm5i96dazbz0gi1qp8nnj2lwbnxzwy7f4cnahskz4f4g7")))) (build-system haskell-build-system) (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck))) @@ -9167,7 +9193,7 @@ require aeson (home-page "https://hackage.haskell.org/package/text-short") (synopsis "Memory-efficient representation of Unicode text strings") (description "This package provides the @code{ShortText} type which -is suitable for keeping many short strings in memory. This is similiar +is suitable for keeping many short strings in memory. This is similar to how @code{ShortByteString} relates to @code{ByteString}. The main difference between @code{Text} and @code{ShortText} is that @@ -13797,6 +13823,28 @@ from a shell. The @code{tldr} pages are a community effort to simplify the man pages with practical examples.") (license license:bsd-3))) +(define-public ghc-torrent + (package + (name "ghc-torrent") + (version "10000.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/torrent/torrent-" + version ".tar.gz")) + (sha256 + (base32 "0m7s0q7f8c7glxzqhf2j86ch5xhk6jnzwwsa4mkywag22119c290")))) + (build-system haskell-build-system) + (inputs + `(("ghc-bencode" ,ghc-bencode) + ("ghc-syb" ,ghc-syb))) + (home-page "https://hackage.haskell.org/package/torrent") + (synopsis "BitTorrent file parser and generator") + (description "This library provides support for parsing and generating +BitTorrent files.") + (license license:bsd-3))) + (define-public ghc-transformers (package (name "ghc-transformers") diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index db0cb855bb..f379ad87c1 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -91,6 +92,7 @@ #:use-module (guix build-system copy) #:use-module (guix build-system meson) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix build-system scons) #:use-module (guix deprecation) #:use-module (srfi srfi-1)) @@ -1792,33 +1794,26 @@ parsing, viewing, modifying, and saving this metadata.") (define-public flameshot (package (name "flameshot") - (version "0.5.1") + (version "0.8.5") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/lupoDharkael/flameshot") + (url "https://github.com/flameshot-org/flameshot") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "13h77np93r796jf289v4r687cmnpqkyqs34dm9gif4akaig74ky0")))) - (build-system gnu-build-system) + "1z77igs60lz106vsf6wsayxjafxm3llf2lm4dpvsqyyrxybfq191")))) + (build-system qt-build-system) (native-inputs `(("qttools" ,qttools))) (inputs - `(("qtbase" ,qtbase))) + `(("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) (arguments - `(#:tests? #f ; no tests - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (invoke "qmake" - "CONFIG+=packaging" - (string-append "BASEDIR=" (assoc-ref outputs "out")) - "PREFIX=/")))))) - (home-page "https://github.com/lupoDharkael/flameshot") + `(#:tests? #f)) ;no tests + (home-page "https://github.com/flameshot-org/flameshot") (synopsis "Powerful yet simple to use screenshot software") (description "Flameshot is a screenshot program. Features: diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7c07a6d008..ceeb96d8ae 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -352,7 +352,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernel. That is, the most recently released major ;; version. -(define-public linux-libre-5.9-version "5.9.10") +(define-public linux-libre-5.9-version "5.9.11") (define deblob-scripts-5.9 (linux-libre-deblob-scripts linux-libre-5.9-version @@ -360,7 +360,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0yb04a4j2wq3mwvks3cj7kcm2pscmfs29lrz3falkxpbvjxbbgq2"))) (define-public linux-libre-5.9-pristine-source (let ((version linux-libre-5.9-version) - (hash (base32 "0c7hcqn1ld0axlipzpwmjr1jwizrhz5w6bdfbk9npbirx7rb54gm"))) + (hash (base32 "0q6jlnigyjjnnxw6l724zv8acgs95s3pafabz4l9jrhhlijhmcjy"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.9))) @@ -368,7 +368,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; <https://www.kernel.org/category/releases.html> -(define-public linux-libre-5.4-version "5.4.79") +(define-public linux-libre-5.4-version "5.4.80") (define deblob-scripts-5.4 (linux-libre-deblob-scripts linux-libre-5.4-version @@ -376,12 +376,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "167zcfkw62pm6nv1xdvvhxw0ca724sywcywnv3z00189f8f8p3vg"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "09ffj66wlp27vx799lnixq4zdkin3y4pqaw4lx2a6rpz13xr3455"))) + (hash (base32 "1iv4rsc9mr13xqzayzwz8mpdrdpnc425mn1izz9hylrw3xf45nj9"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.159") +(define-public linux-libre-4.19-version "4.19.160") (define deblob-scripts-4.19 (linux-libre-deblob-scripts linux-libre-4.19-version @@ -389,12 +389,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "195hlvr9zsa2km80rk71na1gl0222r2mk76rsqx0cxpgg7dhpjv0"))) + (hash (base32 "118maapizgqgrgawnw7xmbcz26c61g5d012jzbd8l7n6z4354d0q"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.208") +(define-public linux-libre-4.14-version "4.14.209") (define deblob-scripts-4.14 (linux-libre-deblob-scripts linux-libre-4.14-version @@ -402,12 +402,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "0vzn5kprjlgpgnjr1drjq97x9xbyfgigpgs42xsfw61h2qjy3b1q"))) + (hash (base32 "171b31c4rz9sn95s4s4yqchd4s46kivmvch78z0jr5zir1f4c0nb"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.245") +(define-public linux-libre-4.9-version "4.9.246") (define deblob-scripts-4.9 (linux-libre-deblob-scripts linux-libre-4.9-version @@ -415,12 +415,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "1vxsd3g96vbykrmfnj9qali0p868h678qzcqvf4yrhya47k6pnnb"))) + (hash (base32 "1xd9vgc4yj2vrr5r76cy3fp9a1fc3086lj5aws68wf1dsz3ndqj9"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.245") +(define-public linux-libre-4.4-version "4.4.246") (define deblob-scripts-4.4 (linux-libre-deblob-scripts linux-libre-4.4-version @@ -428,7 +428,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf"))) (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "0g1cnis8496kp1ln922gxa7skfr096mdvv89la6676yw7dd4lhyi"))) + (hash (base32 "15xd1dqw53kwqvsa71nr1ymp0jp22pkl4h2yks4hqbd132zxw2wy"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -3215,7 +3215,7 @@ from the module-init-tools project.") (define-public earlyoom (package (name "earlyoom") - (version "1.3.1") + (version "1.6.2") (source (origin (method git-fetch) (uri (git-reference @@ -3224,23 +3224,23 @@ from the module-init-tools project.") (file-name (git-file-name name version)) (sha256 (base32 - "06sd3jpkdrwqbphsf8jrgs5rxfi7j3xjmygjjvj4xjk4gncz7r2i")))) + "16iyn51xlrsbshc7p5xl2338yyfzknaqc538sa7mamgccqwgyvvq")))) (build-system gnu-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (delete 'configure) - (add-before 'check 'set-home - (lambda _ - (setenv "HOME" (getcwd)) - #t)) - (add-after 'build 'install-contribs - ;; Install what seems useful from the contrib directory. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (contrib (string-append - out "/share/earlyoom/contrib"))) - (install-file "contrib/notify_all_users.py" contrib) - #t)))) + `(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-before 'check 'set-go-HOME + (lambda _ + (setenv "HOME" (getcwd)) + #t)) + (add-before 'check 'disable-failing-test + (lambda _ + ;; This test relies on writing to /proc/%d/oom_score_adj. + (substitute* "testsuite_cli_test.go" + (("TestI" match) + (string-append "skipped" match))) + #t))) #:make-flags (let* ((prefix (assoc-ref %outputs "out"))) (list ,(string-append "CC=" (cc-for-target)) (string-append "VERSION=v" ,version) @@ -5980,14 +5980,14 @@ running boot option, and more.") (define-public sysstat (package (name "sysstat") - (version "12.4.0") - (source (origin - (method url-fetch) - (uri (string-append "http://pagesperso-orange.fr/sebastien.godard/" - "sysstat-" version ".tar.xz")) - (sha256 - (base32 - "05idnvkhvzaynj9awx7q54x1v42jblzrxq0fn5zd1v4mjwrnqmbq")))) + (version "12.4.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://pagesperso-orange.fr/sebastien.godard/" + "sysstat-" version ".tar.xz")) + (sha256 + (base32 "02yf2c9n56c3ic72r4p4kb99zjxr8fldvsnmcy7s262izx78vbr4")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite. diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index a4e9739c94..3981929f20 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -1121,6 +1121,40 @@ to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).") (define-public ecl-cl-yacc (sbcl-package->ecl-package sbcl-cl-yacc)) +(define-public sbcl-eager-future2 + (let ((commit "54df8effd9d9eccac917509590286b5ac5f9cb30")) + (package + (name "sbcl-eager-future2") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/vsedach/eager-future2.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qs1bv3m0ki8l5czhsflxcryh22r9d9g9a3a3b0cr0pl954q5rld")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("trivial-garbage" ,sbcl-trivial-garbage))) + (synopsis "Futures promises synchronization mechanism for Common Lisp") + (description + "Eager Future2 is a Common Lisp library that provides composable +concurrency primitives that unify parallel and lazy evaluation, are integrated +with the Common Lisp condition system, and have automatic resource +management.") + (home-page "https://gitlab.common-lisp.net/vsedach/eager-future2") + (license license:lgpl3+)))) + +(define-public cl-eager-future2 + (sbcl-package->cl-source-package sbcl-eager-future2)) + +(define-public ecl-eager-future2 + (sbcl-package->ecl-package sbcl-eager-future2)) + (define-public sbcl-jpl-util (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62")) (package @@ -1197,6 +1231,62 @@ several blockable channels.)") (define-public ecl-jpl-queues (sbcl-package->ecl-package sbcl-jpl-queues)) +(define-public sbcl-calispel + (let ((commit "e9f2f9c1af97f4d7bb4c8ac25fb2a8f3e8fada7a")) + (package + (name "sbcl-calispel") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + ;; This fork replaces the dependency on the obsolete + ;; eager-future with eager-future2. + (url "https://github.com/hawkir/calispel") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08bmf3pi7n5hadpmqqkg65cxcj6kbvm997wcs1f53ml1nb79d9z8")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("jpl-queues" ,sbcl-jpl-queues) + ("bordeaux-threads" ,sbcl-bordeaux-threads))) + (native-inputs + `(("eager-future2" ,sbcl-eager-future2))) + (synopsis "Thread-safe message-passing channels in Common Lisp") + (description + "Calispel is a Common Lisp library for thread-safe message-passing +channels, in the style of the occam programming language, also known as +communicating sequential processes (CSP). See +@url{https://en.wikipedia.org/wiki/Communicating_sequential_processes}. + +Calispel channels let one thread communicate with another, facilitating +unidirectional communication of any Lisp object. Channels may be unbuffered, +where a sender waits for a receiver (or vice versa) before either operation can +continue, or channels may be buffered with flexible policy options. + +Because sending and receiving on a channel may block, either operation can time +out after a specified amount of time. + +A syntax for alternation is provided (like @code{ALT} in occam, or Unix +@code{select()}): given a sequence of operations, any or all of which may +block, alternation selects the first operation that doesn't block and executes +associated code. Alternation can also time out, executing an \"otherwise\" +clause if no operation becomes available within a set amount of time. + +Calispel is a message-passing library, and as such leaves the role of +threading abstractions and utilities left to be filled by complementary +libraries such as Bordeaux-Threads and Eager Future.") + (home-page "https://www.thoughtcrime.us/software/jpl-queues/") + (license license:isc)))) + +(define-public cl-calispel + (sbcl-package->cl-source-package sbcl-calispel)) + +(define-public ecl-calispel + (sbcl-package->ecl-package sbcl-calispel)) + (define-public sbcl-eos (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243") (revision "2")) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 34b522c99b..f1d0922ef2 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -65,6 +65,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages image) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages ocaml) @@ -869,6 +870,77 @@ data analysis.") (base32 "08zbzi8yx5wdlxfx9jap61vg1malc9ajf576w7a0liv6jvvrxlpj"))))))) +(define-public python-pynndescent + (package + (name "python-pynndescent") + (version "0.4.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pynndescent" version)) + (sha256 + (base32 "0li1fclif50v6xrq7wh3lif9vv5jpj7xhrb0z6g89wwjnp9b9833")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) + (propagated-inputs + `(("python-joblib" ,python-joblib) + ("python-llvmlite" ,python-llvmlite) + ("python-numba" ,python-numba) + ("python-scikit-learn" ,python-scikit-learn) + ("python-scipy" ,python-scipy))) + (home-page "https://github.com/lmcinnes/pynndescent") + (synopsis "Nearest neighbor descent for approximate nearest neighbors") + (description + "PyNNDescent provides a Python implementation of Nearest Neighbor Descent +for k-neighbor-graph construction and approximate nearest neighbor search.") + (license license:bsd-2))) + +(define-public python-opentsne + (package + (name "python-opentsne") + (version "0.4.4") + (source + (origin + ;; No tests in the PyPI tarball. + (method git-fetch) + (uri (git-reference + (url "https://github.com/pavlin-policar/openTSNE") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "08wamsssmyf6511cbmglm67dp48i6xazs89m1cskdk219v90bc76")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Benchmarks require the 'macosko2015' data files. + (add-after 'unpack 'delete-benchmark + (lambda _ + (delete-file-recursively "benchmarks") + #t)) + ;; Numba needs a writable dir to cache functions. + (add-before 'check 'set-numba-cache-dir + (lambda _ + (setenv "NUMBA_CACHE_DIR" "/tmp") + #t))))) + (native-inputs + `(("python-cython" ,python-cython))) + (inputs + `(("fftw" ,fftw))) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ("python-pynndescent" ,python-pynndescent) + ("python-scikit-learn" ,python-scikit-learn) + ("python-scipy" ,python-scipy))) + (home-page "https://github.com/pavlin-policar/openTSNE") + (synopsis "Extensible, parallel implementations of t-SNE") + (description + "This is a modular Python implementation of t-Distributed Stochastic +Neighbor Embedding (t-SNE), a popular dimensionality-reduction algorithm for +visualizing high-dimensional data sets.") + (license license:bsd-3))) + (define-public python-scikit-rebate (package (name "python-scikit-rebate") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 5a10194a4a..84b1f1c6d3 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -444,7 +444,7 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.14.7") + (version "2.0.2") (source (origin (method url-fetch) (uri (list @@ -454,7 +454,7 @@ aliasing facilities to work just as they would on normal mail.") version ".tar.gz"))) (sha256 (base32 - "0r58xnjgkw0kmnnzhb32mk5gkkani5kbi5krybpbag156fqhgxg4")) + "1j0i2jmlk5sc78af9flj3ynj0iiwa8biw7jgf12qm5lppsx1h4j7")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs @@ -1228,14 +1228,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.31.1") + (version "0.31.2") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.xz")) (sha256 (base32 - "0pmvwynd4f4kr38agd5m1ml20lq854knc9da7yiqfi776j8fg2rj")))) + "1vzv9imd0ba51y5zw8h358wikm1fh52rlvvyzvp98w330hzbcmhl")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -2604,7 +2604,7 @@ converts them to maildir format directories.") (define-public mblaze (package (name "mblaze") - (version "0.2") + (version "1.0") (source (origin (method git-fetch) @@ -2613,7 +2613,7 @@ converts them to maildir format directories.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0p97zfl35ilrnrx9ynj82igsb698m9klikfaicw5jhjpf6qp2n3y")))) + (base32 "0hxy3mjjv4hg856sl1r15fdmqaw4s9c26b3lidsd5x0kpqy601ai")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) diff --git a/gnu/packages/mercury.scm b/gnu/packages/mercury.scm index bab8909862..5a2c85a79b 100644 --- a/gnu/packages/mercury.scm +++ b/gnu/packages/mercury.scm @@ -56,7 +56,7 @@ (define-public mercury-minimal (package (name "mercury-minimal") - (version "20.06") + (version "20.06.1") (source (origin (method url-fetch) (uri (string-append @@ -64,7 +64,7 @@ version ".tar.gz")) (sha256 (base32 - "1gkr9w8lsdzqykqwd3f1a1phsqv090648i14ilhv8jdg85frdimr")))) + "07qwkk871yxd4q1sw5xv26g8jrpvnpprmzvfd7zg7i142kl3l2gg")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -173,7 +173,7 @@ separate compilation, and numerous optimization/time trade-offs.") (define-public mercury (package (inherit mercury-minimal) (name "mercury") - (version "20.06") + (version "20.06.1") (source (origin (method git-fetch) @@ -185,7 +185,7 @@ separate compilation, and numerous optimization/time trade-offs.") (file-name (git-file-name name version)) (sha256 (base32 - "1pc51r7vlqmi689rkwdkk1ka2dyk36q11dqvl339cizng6mp72h6")))) + "1b6rmdinw8mj6n9sc7c75kkf42gd2k254rf51x4snlrqckxj7aaz")))) (arguments (substitute-keyword-arguments (package-arguments mercury-minimal) diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 919e7f1449..0ee4b4c9ee 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -456,7 +456,7 @@ written in Go with pluggable metric collectors.") (define-public collectd (package (name "collectd") - (version "5.11.0") + (version "5.12.0") (source (origin (method url-fetch) (uri (string-append @@ -465,7 +465,7 @@ written in Go with pluggable metric collectors.") ".tar.bz2")) (sha256 (base32 - "1cjxksxdqcqdccz1nbnc2fp6yy84qq361ynaq5q8bailds00mc9p")) + "1mh97afgq6qgmpvpr84zngh58m0sl1b4wimqgvvk376188q09bjv")) (patches (search-patches "collectd-5.11.0-noinstallvar.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 9035147441..2b73794409 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -69,6 +69,7 @@ (build-system gnu-build-system) (outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc. "lib" ;small closure + "doc" ;400+ section 3 man pages "debug")) (inputs `(("libx11" ,libx11) @@ -114,6 +115,15 @@ (substitute* (string-append lib "/lib/pkgconfig/hwloc.pc") (("^.*prefix=.*$") "")) + #t))) + (add-after 'install 'move-man3-pages + (lambda* (#:key outputs #:allow-other-keys) + ;; Move section 3 man pages to the "doc" output. + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (copy-recursively (string-append out "/share/man/man3") + (string-append doc "/share/man/man3")) + (delete-file-recursively (string-append out "/share/man/man3")) #t)))))) (home-page "https://www.open-mpi.org/projects/hwloc/") (synopsis "Abstraction of hardware architectures") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index ac1290e8fd..8a84c8476a 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -144,7 +144,7 @@ (define-public axel (package (name "axel") - (version "2.17.9") + (version "2.17.10") (source (origin (method url-fetch) @@ -152,7 +152,7 @@ "releases/download/v" version "/" "axel-" version ".tar.xz")) (sha256 - (base32 "0m1smb9rmw9w2fcfcf0162qyffx6a1x0j612sg3fydflandlsdpi")))) + (base32 "0kmlqk04sgkshsll4r9w3k0rvrgz0gpk987618r50khwl484zss6")))) (build-system gnu-build-system) (native-inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/patches/mupdf-fix-linkage.patch b/gnu/packages/patches/mupdf-fix-linkage.patch new file mode 100644 index 0000000000..4ffd1c6a77 --- /dev/null +++ b/gnu/packages/patches/mupdf-fix-linkage.patch @@ -0,0 +1,27 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Tue, 24 Nov 2020 10:29:28 +0000 +Subject: [PATCH] gnu: mupdf: Fix linkage. + +Replace broken linkage to ‘build/shared-release/libmupdf.so’ with the +proper ‘-L$(libdir) -lmupdf’ incantation, and fix libmupdf.so's mode. + +--- mupdf-1.18.0-source.org/Makefile ++++ mupdf-1.18.0-source/Makefile +@@ -61,7 +61,7 @@ + ifdef RANLIB + RANLIB_CMD = $(QUIET_RANLIB) $(RANLIB) $@ + endif +-LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) ++LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $(subst $(MUPDF_LIB),-L$(libdir) -L$(OUT) -lmupdf,$^) $(LIBS) + TAGS_CMD = $(QUIET_TAGS) ctags -R --c-kinds=+p + WINDRES_CMD = $(QUIET_WINDRES) $(MKTGTDIR) ; $(WINDRES) $< $@ + OBJCOPY_CMD = $(QUIET_OBJCOPY) $(MKTGTDIR) ; $(LD) -r -b binary -z noexecstack -o $@ $< +@@ -364,7 +364,7 @@ install: libs apps + install -m 644 include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf + + install -d $(DESTDIR)$(libdir) +- install -m 644 $(INSTALL_LIBS) $(DESTDIR)$(libdir) ++ install -m 755 $(INSTALL_LIBS) $(DESTDIR)$(libdir) + + install -d $(DESTDIR)$(bindir) + install -m 755 $(TOOL_APPS) $(VIEW_APPS) $(DESTDIR)$(bindir) diff --git a/gnu/packages/patches/mutt-store-references.patch b/gnu/packages/patches/mutt-store-references.patch index 3b69c7b0bd..77d1680d60 100644 --- a/gnu/packages/patches/mutt-store-references.patch +++ b/gnu/packages/patches/mutt-store-references.patch @@ -2,15 +2,16 @@ By default 'mutt' embeds configure flags and the output of 'gcc -v', which contains the store file name of Bash and GCC. This patch makes sure we don't embed a reference to these in 'mutt'. ---- mutt-1.5.23/txt2c.sh 2015-06-26 22:56:56.500731643 +0200 -+++ mutt-1.5.23/txt2c.sh 2015-06-26 22:57:26.664583900 +0200 +diff --git a/txt2c.sh b/txt2c.sh +index f634bb9..53845cf 100755 +--- a/txt2c.sh ++++ b/txt2c.sh @@ -21,6 +21,8 @@ txt2c_fallback () { echo ";" } +echo "unsigned char $1[] = \"value of '$1' not kept\";" +exit 0 - ./txt2c test </dev/null >/dev/null 2>&1 && - ./txt2c "$1" || - txt2c_fallback "$1" - + if ./txt2c test </dev/null >/dev/null 2>&1; then + ./txt2c "$1" + else diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index a1984e0695..879bc7f93f 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +46,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system meson) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages audio) @@ -54,6 +56,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages cups) #:use-module (gnu packages curl) #:use-module (gnu packages djvu) #:use-module (gnu packages fontutils) @@ -88,6 +91,7 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages tex) #:use-module (gnu packages tls) + #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -218,17 +222,17 @@ please install the @code{flyer-composer-gui} package."))) (define-public poppler-data (package (name "poppler-data") - (version "0.4.9") + (version "0.4.10") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-data" "-" version ".tar.gz")) (sha256 (base32 - "04i0wgdkn5lhda8cyxd1ll4a2p41pwqrwd47n9mdpl7cx5ypx70z")))) + "0c3vjs3p7rjc4yfacnhd865r27czmzwcr4j2z4jldi68dvvcwbvf")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; no test suite + '(#:tests? #f ; no test suite #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases @@ -498,7 +502,7 @@ using the DjVuLibre library.") (define-public zathura-pdf-mupdf (package (name "zathura-pdf-mupdf") - (version "0.3.5") + (version "0.3.6") (source (origin (method url-fetch) (uri @@ -506,7 +510,7 @@ using the DjVuLibre library.") "/download/zathura-pdf-mupdf-" version ".tar.xz")) (sha256 (base32 - "1pjwsb7zwclxsvz229fl7y2saf1pv3ifwv3ay8viqxgrp9x3z9hq")))) + "1r3v37k9fl2rxipvacgxr36llywvy7n20a25h3ajlyk70697sa66")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("jbig2dec" ,jbig2dec) @@ -525,6 +529,12 @@ using the DjVuLibre library.") "-Dlink-external=true") #:phases (modify-phases %standard-phases + (add-after 'unpack 'remove-libmupdfthird.a-requirement + (lambda _ + ;; Ignore a missing (apparently superfluous) static library. + (substitute* "meson.build" + ((".*mupdfthird.*") "")) + #t)) (add-before 'configure 'add-mujs-to-dependencies (lambda _ ;; Add mujs to the 'build_dependencies'. @@ -683,30 +693,35 @@ extracting content or merging files.") (define-public mupdf (package (name "mupdf") - (version "1.16.1") + (version "1.18.0") (source - (origin - (method url-fetch) - (uri (string-append "https://mupdf.com/downloads/archive/" - "mupdf-" version "-source.tar.xz")) - (sha256 - (base32 - "1npmy92lkj41nnc14b4fpq7z62pminy94zsdbrczj22jpn283rvg")) - (modules '((guix build utils))) - (snippet - ;; We keep lcms2 since it is different than our lcms. - '(begin - (for-each - (lambda (dir) - (delete-file-recursively (string-append "thirdparty/" dir))) - '("freeglut" "freetype" "harfbuzz" "jbig2dec" - "libjpeg" "mujs" "openjpeg" "zlib")) - #t)))) + (origin + (method url-fetch) + (uri (string-append "https://mupdf.com/downloads/archive/" + "mupdf-" version "-source.tar.xz")) + (sha256 + (base32 "16m5sksil22sshxy70xkslsb2qhvcqb1d95i9savnhds1xn4ybar")) + (patches (search-patches "mupdf-fix-linkage.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove bundled software. + (let* ((keep (list "lcms2")) ; different from our lcms2 package + (from "thirdparty") + (kept (string-append from "~temp"))) + (mkdir-p kept) + (for-each (lambda (file) (rename-file (string-append from "/" file) + (string-append kept "/" file))) + keep) + (delete-file-recursively from) + (rename-file kept from)) + #t)))) (build-system gnu-build-system) (inputs `(("curl" ,curl) ("freeglut" ,freeglut) ("freetype" ,freetype) + ("gumbo-parser" ,gumbo-parser) ("harfbuzz" ,harfbuzz) ("jbig2dec" ,jbig2dec) ("libjpeg" ,libjpeg-turbo) @@ -719,14 +734,19 @@ extracting content or merging files.") (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:tests? #f ; no check target - #:make-flags (list "CC=gcc" + `(#:tests? #f ; no check target + #:make-flags (list "verbose=yes" + (string-append "CC=" ,(cc-for-target)) "XCFLAGS=-fpic" "USE_SYSTEM_LIBS=yes" "USE_SYSTEM_MUJS=yes" + "shared=yes" + ;; Even with the linkage patch we must fix RUNPATH. + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib") (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure)))) ; no configure script (home-page "https://mupdf.com") (synopsis "Lightweight PDF viewer and toolkit") (description @@ -789,6 +809,53 @@ program capable of converting PDF into other formats.") (license (list license:asl2.0 license:clarified-artistic)) (home-page "http://qpdf.sourceforge.net/"))) +(define-public qpdfview + (package + (name "qpdfview") + (version "0.4.18") + (source + (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/qpdfview/" + "trunk/" version "/+download/" + "qpdfview-" version ".tar.gz")) + (sha256 + (base32 "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("cups" ,cups) + ("djvulibre" ,djvulibre) + ("libspectre" ,libspectre) + ("poppler-qt5" ,poppler-qt5) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) + (arguments + `(#:imported-modules ((guix build qt-build-system) + (guix build cmake-build-system) + ,@%gnu-build-system-modules) + #:modules ((guix build utils) + (guix build gnu-build-system) + ((guix build qt-build-system) #:prefix qt:)) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ + (substitute* "qpdfview.pri" + (("/usr") (assoc-ref %outputs "out"))) + (invoke "qmake" "qpdfview.pro"))) + ;; Otherwise, the user interface will not display any icons. + (add-after 'install 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap))))) + (home-page "https://launchpad.net/qpdfview") + (synopsis "Tabbed document viewer") + (description "@command{qpdfview} is a document viewer for PDF, PS and DJVU +files. It uses the Qt toolkit and features persistent per-file settings, +configurable toolbars and shortcuts, continuous and multi‐page layouts, +SyncTeX support, and rudimentary support for annotations and forms.") + (license license:gpl2+))) + (define-public xournal (package (name "xournal") diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 0efc253718..f23b56728a 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -208,14 +208,14 @@ colors, styles, options and details.") (define-public asymptote (package (name "asymptote") - (version "2.67") + (version "2.68") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asymptote/" version "/asymptote-" version ".src.tgz")) (sha256 - (base32 "16rdwxal27fikzfqsm2sb8ji78whpxl98rdyyp0ky2qlh55mf7la")))) + (base32 "1ch2bc28v0v76x9sbbn7xswvqi88plam9y4966j0kj2dn5fmms71")))) (build-system gnu-build-system) ;; Note: The 'asy' binary retains a reference to docdir for use with its ;; "help" command in interactive mode, so adding a "doc" output is not diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index b7587230bd..a414bc6bbb 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> +;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,7 +83,7 @@ data in motion, or as a file format for data at rest.") (define-public protobuf (package (name "protobuf") - (version "3.12.3") + (version "3.14.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/google/protobuf/releases/" @@ -90,7 +91,7 @@ data in motion, or as a file format for data at rest.") version ".tar.gz")) (sha256 (base32 - "0s29dj8l9j6jk04im3ivcji1x9jm42fwjmwcmli0smz0m337xyaf")))) + "0nan2wkkwkcx3qyx0cf5vfzjcjhr5qgh4jfx6v2lwpf5q03mmv2h")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) (outputs (list "out" diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 101c8fb640..99903ef247 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -439,6 +439,32 @@ doing practical, real world data analysis in Python.") written in C.") (license license:bsd-2))) +(define-public python-baycomp + (package + (name "python-baycomp") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "baycomp" version)) + (sha256 + (base32 "1c1354a7b3g8slychjgyjxqdm8z40z9kviyl9n4g9kfpdg0p4d64")))) + (build-system python-build-system) + (propagated-inputs + `(("python-matplotlib" ,python-matplotlib) + ("python-numpy" ,python-numpy) + ("python-scipy" ,python-scipy))) + (home-page "https://github.com/janezd/baycomp") + (synopsis "Library for comparison of Bayesian classifiers") + (description + "Baycomp is a library for Bayesian comparison of classifiers. Functions +in the library compare two classifiers on one or on multiple data sets. They +compute three probabilities: the probability that the first classifier has +higher scores than the second, the probability that differences are within the +region of practical equivalence (rope), or that the second classifier has +higher scores.") + (license license:expat))) + (define-public python-xarray (package (name "python-xarray") diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 16249680f2..dfc5d1dcf3 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -1316,7 +1316,7 @@ another XPath engine to find the matching elements in an XML or HTML document.") (define-public python-databricks-cli (package (name "python-databricks-cli") - (version "0.14.0") + (version "0.14.1") (home-page "https://github.com/databricks/databricks-cli") (source (origin (method git-fetch) @@ -1324,7 +1324,7 @@ another XPath engine to find the matching elements in an XML or HTML document.") (file-name (git-file-name name version)) (sha256 (base32 - "0imwpfda2pxix1rx0nlqs48v58icfw065nsv53rpg0dw4bw9x2wi")))) + "03w19rzh72jll9phai23wp0c2mlv39qsrv50mhckziy39z60yxh8")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 2d9f2f10cc..8db1f761af 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -8903,6 +8903,32 @@ Supported netlink families and protocols include: (define-public python2-wrapt (package-with-python2 python-wrapt)) +(define-public python-commonmark + (package + (name "python-commonmark") + (version "0.9.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "commonmark" version)) + (sha256 + (base32 "0q7d39lm8kcingpmykk5r959hrwwj6v2icyw3mihczxyb749sbs5")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "python" "setup.py" "test")))))) + (home-page "https://github.com/readthedocs/commonmark.py") + (synopsis "Python parser for the CommonMark Markdown spec") + (description + "This module is a pure Python port of jgm's @code{commonmark.js}, a +Markdown parser and renderer for the CommonMark specification, using only +native modules.") + (license license:bsd-3))) + (define-public python-xlrd (package (name "python-xlrd") @@ -15364,14 +15390,14 @@ builds partial trees by inspecting living objects.") (define-public python-isbnlib (package (name "python-isbnlib") - (version "3.10.3") + (version "3.10.4") (source (origin (method url-fetch) (uri (pypi-uri "isbnlib" version)) (sha256 (base32 - "07qhykv0x60d5rsx5pj6s4q15ri4znczscll3xmpf6gyclac1592")))) + "0iin0x2xqwyphyyzd0mzrq5v5xm7b6dlbb294k4dywra5qvbrgzm")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; No test (home-page "https://github.com/xlcnd/isbnlib") @@ -15468,13 +15494,13 @@ in other versions.") (define-public python-mamba (package (name "python-mamba") - (version "0.11.1") + (version "0.11.2") (source (origin (method url-fetch) (uri (pypi-uri "mamba" version)) (sha256 (base32 - "1jxy3bva94ac02a0wjsms79rp5104zmalxh8rhqqg6mw95cp6xpr")))) + "15m4dpnpv9m60pdaygvwgi43fwqaivs3qxfxhspwrp47sbgwdkvm")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; No test (propagated-inputs diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 0be7359985..70a9762379 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -159,14 +159,14 @@ this package. E.g.: @code{(udev-rules-service 'rtl-sdr rtl-sdr)}") (define-public chirp (package (name "chirp") - (version "20201014") + (version "20201121") (source (origin (method url-fetch) (uri (string-append "https://trac.chirp.danplanet.com/chirp_daily/daily-" version "/chirp-daily-" version ".tar.gz")) (sha256 - (base32 "16x3ix2n7a9l7lln2pri1xfmhyfvvzxb0nr3h33iajqimbwckxj0")))) + (base32 "092jryb1jn9li6zj243awv6piz1lhghqsm4phrz7j0rgqf76dy4n")))) (build-system python-build-system) (inputs `(("python2-libxml2" ,python2-libxml2) diff --git a/gnu/packages/re2c.scm b/gnu/packages/re2c.scm index 427195fd5f..3b329617c7 100644 --- a/gnu/packages/re2c.scm +++ b/gnu/packages/re2c.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru> +;;; Copyright © 2017, 2020 Sergei Trofimovich <slyfox@inbox.ru> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. @@ -26,7 +26,7 @@ (define-public re2c (package (name "re2c") - (version "1.2.1") + (version "2.0.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/skvadrik/" name @@ -34,7 +34,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "05xq0571mkgr20v827jm63nhsirr8arghg4fszzswrmrnl3dfk0s")))) + "0y22fiyv2pqmq8asb2p5hzcf7ibjdrz7nl16rlpzy8damaw1xg5j")))) (build-system gnu-build-system) (home-page "https://re2c.org/") (synopsis "Lexer generator for C/C++") diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm index cb7a08e207..d37663bf5b 100644 --- a/gnu/packages/regex.scm +++ b/gnu/packages/regex.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,7 +31,7 @@ (define-public re2 (package (name "re2") - (version "2020-07-06") + (version "2020-11-01") (home-page "https://github.com/google/re2") (source (origin (method git-fetch) @@ -38,7 +39,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "12a9r9y7ry3hq0qf4znl9j7pn9mb5k6xp1f8nrk1sagfj1a504mq")))) + "0ii51fpp6fn51x4qyd99sy4r122s8ayh4x1srwhhijxlh8mzla5k")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) diff --git a/gnu/packages/rpc.scm b/gnu/packages/rpc.scm index e26170942b..cffa703fe0 100644 --- a/gnu/packages/rpc.scm +++ b/gnu/packages/rpc.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,12 +39,13 @@ #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages regex) #:use-module (gnu packages tls)) (define-public grpc (package (name "grpc") - (version "1.27.3") + (version "1.33.2") (outputs '("out" "static")) (source (origin (method git-fetch) @@ -53,7 +55,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0czmbwnafc7jnrrq2fnac2av83vs2q7q0wy4k11w9zbpld7j5h6d")))) + "09xd9pkyp10gh051kf8kwxn4myw42zv8kngr9z8wpm6mjy0j4ylw")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no test target @@ -63,6 +65,7 @@ "-DgRPC_CARES_PROVIDER=package" "-DgRPC_SSL_PROVIDER=package" "-DgRPC_PROTOBUF_PROVIDER=package" + "-DgRPC_RE2_PROVIDER=package" (string-append "-DCMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "out")) "-DCMAKE_INSTALL_LIBDIR=lib" @@ -102,9 +105,11 @@ `(("abseil-cpp" ,abseil-cpp) ("c-ares" ,c-ares/cmake) ("openssl" ,openssl) + ("re2" ,re2) ("zlib" ,zlib))) (native-inputs - `(("protobuf" ,protobuf) + `(("pkg-config" ,pkg-config) + ("protobuf" ,protobuf) ("python" ,python-wrapper))) (home-page "https://grpc.io") (synopsis "High performance universal RPC framework") diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index bd77b3e808..b647b9ee2e 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -540,7 +540,7 @@ of libraries.") version "/racket-minimal-" version "-src.tgz"))) (sha256 (base32 - "0xvnd7afx058sg7j51bmbikqgn4sl0246nkhr8zlqcrbr3nqi6p4")) + "0yc5zkpq1bavj64h67pllw6mfjhmdp65fgdpyqcaan3syy6b5cia")) (patches (search-patches "racket-store-checksum-override.patch")))) (synopsis "Racket without bundled packages such as Dr. Racket") diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index 0e259d71f3..1fd7d91eb9 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -295,7 +295,7 @@ systems and other constrained environments, but they work everywhere."))) (define-public s6-linux-init (package (name "s6-linux-init") - (version "1.0.4.2") + (version "1.0.5.1") (source (origin (method url-fetch) @@ -303,7 +303,7 @@ systems and other constrained environments, but they work everywhere."))) "https://skarnet.org/software/s6-linux-init/s6-linux-init-" version ".tar.gz")) (sha256 - (base32 "0rp4k78555r38ir57a8w9qlxss4x487jqmhpn40ankpidwjs04gm")))) + (base32 "1gkbjldf4f7i3vmv251f9hw7ma09nh8zkwjmqi2gplpkf7z3i34p")))) (build-system gnu-build-system) (inputs `(("execline" ,execline) @@ -312,6 +312,7 @@ systems and other constrained environments, but they work everywhere."))) (arguments '(#:configure-flags (list + "--disable-static" (string-append "--with-lib=" (assoc-ref %build-inputs "skalibs") "/lib/skalibs") diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 9f60b3c02e..e5bcac33f2 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -487,36 +487,6 @@ of user keystrokes. It's a replacement for SSH that's more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.") (license license:gpl3+))) -(define-public et - (package - (name "et") - (version "3.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/MisterTea/EternalTCP") - (commit (string-append "et-v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1m5caxckn2ihwp9s2pbyh5amxlpwr7yc54q8s0kb10fr52w2vfnm")))) - (build-system cmake-build-system) - (arguments `(#:tests? #f)) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs `(("glog" ,glog) - ("gflags" ,gflags) - ("libsodium" ,libsodium) - ("protobuf" ,protobuf))) - (synopsis "Remote shell that automatically reconnects") - (description - "Eternal Terminal (ET) is a remote shell that automatically reconnects -without interrupting the session. Unlike SSH sessions, ET sessions will -survive even network outages and IP changes. ET uses a custom protocol over -TCP, not the SSH protocol.") - (home-page "https://eternalterminal.dev/") - (license license:asl2.0))) - (define-public dropbear (package (name "dropbear") diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index 48944d3b72..88350ac81b 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -55,14 +55,14 @@ (define-public ceph (package (name "ceph") - (version "14.2.14") + (version "14.2.15") (source (origin (method url-fetch) (uri (string-append "https://download.ceph.com/tarballs/ceph-" version ".tar.gz")) (sha256 (base32 - "10ma8qimgspz1q3lqb4yl990l9xa87iwd0r4dxl5xg89w6j7qwix")) + "1rq4pp7j8x0f4csspd9csllz6h3phiqfh5vlvsqsj60agyhidinc")) (patches (search-patches "ceph-disable-cpu-optimizations.patch")) (modules '((guix build utils))) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index f17c36cf2b..c9d57bee67 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -16,7 +16,7 @@ ;;; Copyright © 2018, 2019 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> -;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> +;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Valentin Ignatev <valentignatev@gmail.com> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> @@ -1044,7 +1044,7 @@ comfortably in a pager or editor. (define-public eternalterminal (package (name "eternalterminal") - (version "6.0.7") + (version "6.0.13") (source (origin (method git-fetch) @@ -1053,7 +1053,7 @@ comfortably in a pager or editor. (commit (string-append "et-v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "03pdspggqxkmz95qb96pig5x0xw18hy9a7ivszydr32ry6kxxx1h")))) + (base32 "0sb1hypg2276y8c2a5vivrkcxp70swddvhnd9h273if3kv6j879r")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DBUILD_TEST=ON") @@ -1081,6 +1081,9 @@ while also supporting native scrolling and @command{tmux} control mode (@code{tmux -CC}).") (license license:asl2.0))) +(define-public et + (deprecated-package "et" eternalterminal)) + (define-public wterm (package (name "wterm") diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 1842528ff6..29de995665 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> -;;; Copyright © 2017 André <eu@euandre.org> +;;; Copyright © 2017, 2020 EuAndreh <eu@euandre.org> ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com> @@ -74,6 +74,7 @@ #:use-module (gnu packages ed) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages golang) @@ -2718,6 +2719,40 @@ videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server.") (license license:expat))) +(define-public git-open + (package + (name "git-open") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/paulirish/git-open") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11n46bngvca5wbdbfcxzjhjbfdbad7sgf7h9gf956cb1q8swsdm0")))) + (build-system trivial-build-system) + (propagated-inputs + `(("xdg-utils" ,xdg-utils))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (out (assoc-ref %outputs "out"))) + (mkdir-p (string-append out "/bin")) + (copy-file (string-append source "/git-open") + (string-append out "/bin/git-open")) + #t)))) + (home-page "https://github.com/paulirish/git-open") + (synopsis "Open a Git repository's homepage from the command-line") + (description + "@code{git open} opens the repository's website from the command-line, +guessing the URL pattern from the @code{origin} remote.") + (license license:expat))) + (define-public tla (package (name "gnu-arch") diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e58be3b274..44cf5f68b9 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -528,7 +528,7 @@ applications by providing high-level classes for commonly required tasks.") (define-public libde265 (package (name "libde265") - (version "1.0.7") + (version "1.0.8") (source (origin (method git-fetch) @@ -538,7 +538,7 @@ applications by providing high-level classes for commonly required tasks.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0x7g9771457z49qvzpk4iswfhq018i0mzsflv9gg8if5hjqhfdp0")))) + (base32 "1dzflqbk248lz5ws0ni5acmf32b3rmnq5gsfaz7691qqjxkl1zml")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -2188,14 +2188,14 @@ To load this plugin, specify the following option when starting mpv: (define-public youtube-dl (package (name "youtube-dl") - (version "2020.11.21.1") + (version "2020.11.26") (source (origin (method url-fetch) (uri (string-append "https://youtube-dl.org/downloads/latest/" "youtube-dl-" version ".tar.gz")) (sha256 (base32 - "0a9livib328z5j3kfndxys2193dvfs4hh38krx0idg0k26xp7cfl")))) + "0zvgb1b5kzd2y97rvynxf7qvz3narllf1m26xsph1zll1zb6q47v")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -4378,15 +4378,17 @@ transitions, and effects and then export your film to many common formats.") (define-public dav1d (package (name "dav1d") - (version "0.7.1") + (version "0.8.0") (source (origin - (method url-fetch) - (uri (string-append "https://downloads.videolan.org/pub/videolan" - "/dav1d/" version "/dav1d-" version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://code.videolan.org/videolan/dav1d.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1hnkfcg57bv5rib6cnj39dy1jx0q7zi5fb2fz52hf2y0bv8bad1k")))) + "0mjn87xjdqv0q1gj4s4f6fdmsj504mhk4qmqiyrhq2rs7yqj4csv")))) (build-system meson-build-system) (native-inputs `(("nasm" ,nasm))) (home-page "https://code.videolan.org/videolan/dav1d") diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index ed09f3dcd2..466e9d1ac5 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -2053,14 +2053,14 @@ use with virtualization provisioning tools") (define-public python-transient (package (name "python-transient") - (version "0.10") + (version "0.11") (source (origin (method url-fetch) (uri (pypi-uri "transient" version)) (sha256 (base32 - "1740l50483fcq9748g69nkk28s2x69n4hh1l7n8f4s7p6lq1kqjy")))) + "1pcyw8j2l354qa6c8gr58xd7fmxcx1svnfyr2rj5nh04ircx3x7l")))) (build-system python-build-system) (arguments `(#:tests? #f ; Requires behave diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index f1c4143a59..dc2ca76a6c 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1424,7 +1424,7 @@ used to validate and fix HTML data.") (define-public esbuild (package (name "esbuild") - (version "0.8.11") + (version "0.8.14") (source (origin (method git-fetch) @@ -1433,8 +1433,7 @@ used to validate and fix HTML data.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "18cp68jds8cq58hpcwh85cgvh5vlkjfdcpwqp5h754065j896rr3")) + (base32 "0hv6qgkdp5jhb3s3088xgahgddnivb6gc13gjsvjqz5clhscy81d")) (modules '((guix build utils))) (snippet '(begin @@ -1457,7 +1456,7 @@ used to validate and fix HTML data.") `(("golang.org/x/sys" ,go-golang-org-x-sys))) (native-inputs `(("github.com/kylelemons/godebug" ,go-github-com-kylelemons-godebug))) - (home-page "https://github.com/evanw/esbuild") + (home-page "https://esbuild.github.io/") (synopsis "Bundler and minifier tool for JavaScript and TypeScript") (description "The esbuild tool provides a unified bundler, transpiler and diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 7d9ef43f96..b433ea4996 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -41,6 +41,7 @@ ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2020 James Smith <jsubuntuxp@disroot.org> +;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -110,6 +111,38 @@ ;; packages outside the x.org system proper +(define-public xtitle + (package + (name "xtitle") + (version "0.4.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/baskerville/xtitle") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f5070k2bwarghl1vq886pl52xck1x5p7x3qhlfchsc2y3dcqms9")))) + (build-system gnu-build-system) + (inputs + `(("libxcb" ,libxcb) + ("xcb-util" ,xcb-util) + ("xcb-util-wm" ,xcb-util-wm))) + (arguments + `(#:tests? #f ;no test suite + #:make-flags (list (string-append "CC=" ,(cc-for-target)) + (string-append "PREFIX=" %output)) + #:phases (modify-phases %standard-phases (delete 'configure)))) + (home-page "https://github.com/baskerville/xtitle") + (synopsis "Output X window titles") + (description + "If arguments are given, @code{xtitle} outputs the title of each +specified window, otherwise it outputs the title of the active window. With +@emph{snoop} mode on, it continuously monitors the specified windows and +outputs when titles change.") + (license license:unlicense))) + (define-public arandr (package (name "arandr") @@ -1458,7 +1491,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") (define-public rofi (package (name "rofi") - (version "1.6.0") + (version "1.6.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/DaveDavenport/rofi/" @@ -1466,7 +1499,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") version "/rofi-" version ".tar.xz")) (sha256 (base32 - "0566b499lbpfb1gk4p17iw78ywmk9l2jww1kqjbdanrl22hai1y4")))) + "12p9z8bl1gg8k024m4a6zfz7gf1zbyffardh98raqgabn6knwk22")))) (build-system gnu-build-system) (inputs `(("pango" ,pango) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 4b8bd5b8f7..90660829c9 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3012,8 +3012,8 @@ X server.") (define-public xf86-video-intel - (let ((commit "5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc") - (revision "16")) + (let ((commit "ad5540f6ecaec287c70259f0181e613561b716f6") + (revision "17")) (package (name "xf86-video-intel") (version (git-version "2.99.917" revision commit)) @@ -3026,7 +3026,7 @@ X server.") (commit commit))) (sha256 (base32 - "1y1v6cp3r3isq3bc7mypkvypwjygi205k06slmidx2q3sz4h4mjc")) + "09jdg5wrq708wc83027337qvdjb96827h7sjwjfl5ffiynfpwl95")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 029df5ac16..3fc4d5f885 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -298,7 +298,8 @@ FILE-SYSTEM." (define (mapped-device->shepherd-service-name md) "Return the symbol that denotes the shepherd service of MD, a <mapped-device>." (symbol-append 'device-mapping- - (string->symbol (mapped-device-target md)))) + (string->symbol (string-join + (mapped-device-targets md) "-")))) (define dependency->shepherd-service-name (match-lambda diff --git a/gnu/system.scm b/gnu/system.scm index b257ea0385..fcf3310fa3 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -475,9 +475,9 @@ marked as 'needed-for-boot'." (let ((device (file-system-device fs))) (if (string? device) ;title is 'device (filter (lambda (md) - (string=? (string-append "/dev/mapper/" - (mapped-device-target md)) - device)) + (any (cut string=? device <>) + (map (cut string-append "/dev/mapper" <>) + (mapped-device-targets md)))) (operating-system-mapped-devices os)) '()))) @@ -497,11 +497,12 @@ marked as 'needed-for-boot'." (define (mapped-device-users device file-systems) "Return the subset of FILE-SYSTEMS that use DEVICE." - (let ((target (string-append "/dev/mapper/" (mapped-device-target device)))) + (let ((targets (map (cut string-append "/dev/mapper/" <>) + (mapped-device-targets device)))) (filter (lambda (fs) (or (member device (file-system-dependencies fs)) (and (string? (file-system-device fs)) - (string=? (file-system-device fs) target)))) + (any (cut string=? (file-system-device fs) <>) targets)))) file-systems))) (define (operating-system-user-mapped-devices os) diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index b8a30c0abc..85e493fecb 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -195,11 +195,11 @@ upon error." (define device-mapping-commands ;; List of gexps to open the mapped devices. (map (lambda (md) - (let* ((source (mapped-device-source md)) - (target (mapped-device-target md)) - (type (mapped-device-type md)) - (open (mapped-device-kind-open type))) - (open source target))) + (let* ((source (mapped-device-source md)) + (targets (mapped-device-targets md)) + (type (mapped-device-type md)) + (open (mapped-device-kind-open type))) + (open source targets))) mapped-devices)) (define kodir @@ -217,6 +217,7 @@ upon error." (gnu system file-systems) ((guix build utils) #:hide (delete)) (guix build bournish) ;add the 'bournish' meta-command + (srfi srfi-1) ;for lvm-device-mapping (srfi srfi-26) ;; FIXME: The following modules are for diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index 31c50c4e40..559c27bb28 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -28,6 +28,7 @@ formatted-message &fix-hint &error-location)) + #:use-module (guix deprecation) #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu system uuid) @@ -35,17 +36,19 @@ #:autoload (gnu build linux-modules) (missing-modules) #:autoload (gnu packages cryptsetup) (cryptsetup-static) - #:autoload (gnu packages linux) (mdadm-static) + #:autoload (gnu packages linux) (mdadm-static lvm2-static) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (ice-9 match) #:use-module (ice-9 format) - #:export (mapped-device + #:export (%mapped-device + mapped-device mapped-device? mapped-device-source mapped-device-target + mapped-device-targets mapped-device-type mapped-device-location @@ -61,7 +64,8 @@ check-device-initrd-modules ;XXX: needs a better place luks-device-mapping - raid-device-mapping)) + raid-device-mapping + lvm-device-mapping)) ;;; Commentary: ;;; @@ -70,15 +74,36 @@ ;;; ;;; Code: -(define-record-type* <mapped-device> mapped-device +(define-record-type* <mapped-device> %mapped-device make-mapped-device mapped-device? (source mapped-device-source) ;string | list of strings - (target mapped-device-target) ;string + (targets mapped-device-targets) ;list of strings (type mapped-device-type) ;<mapped-device-kind> (location mapped-device-location (default (current-source-location)) (innate))) +(define-syntax mapped-device-compatibility-helper + (syntax-rules (target) + ((_ () (fields ...)) + (%mapped-device fields ...)) + ((_ ((target exp) rest ...) (others ...)) + (%mapped-device others ... + (targets (list exp)) + rest ...)) + ((_ (field rest ...) (others ...)) + (mapped-device-compatibility-helper (rest ...) + (others ... field))))) + +(define-syntax-rule (mapped-device fields ...) + "Build an <mapped-device> record, automatically converting 'target' field +specifications to 'targets'." + (mapped-device-compatibility-helper (fields ...) ())) + +(define-deprecated (mapped-device-target md) + mapped-device-targets + (car (mapped-device-targets md))) + (define-record-type* <mapped-device-type> mapped-device-kind make-mapped-device-kind mapped-device-kind? @@ -97,14 +122,14 @@ (shepherd-service-type 'device-mapping (match-lambda - (($ <mapped-device> source target + (($ <mapped-device> source targets ($ <mapped-device-type> open close)) (shepherd-service - (provision (list (symbol-append 'device-mapping- (string->symbol target)))) + (provision (list (symbol-append 'device-mapping- (string->symbol (string-join targets "-"))))) (requirement '(udev)) (documentation "Map a device node using Linux's device mapper.") - (start #~(lambda () #$(open source target))) - (stop #~(lambda _ (not #$(close source target)))) + (start #~(lambda () #$(open source targets))) + (stop #~(lambda _ (not #$(close source targets)))) (respawn? #f)))))) (define (device-mapping-service mapped-device) @@ -162,48 +187,52 @@ option of @command{guix system}.\n") ;;; Common device mappings. ;;; -(define (open-luks-device source target) +(define (open-luks-device source targets) "Return a gexp that maps SOURCE to TARGET as a LUKS device, using 'cryptsetup'." (with-imported-modules (source-module-closure '((gnu build file-systems))) - #~(let ((source #$(if (uuid? source) - (uuid-bytevector source) - source))) - ;; XXX: 'use-modules' should be at the top level. - (use-modules (rnrs bytevectors) ;bytevector? - ((gnu build file-systems) - #:select (find-partition-by-luks-uuid))) - - ;; Use 'cryptsetup-static', not 'cryptsetup', to avoid pulling the - ;; whole world inside the initrd (for when we're in an initrd). - (zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup") - "open" "--type" "luks" - - ;; Note: We cannot use the "UUID=source" syntax here - ;; because 'cryptsetup' implements it by searching the - ;; udev-populated /dev/disk/by-id directory but udev may - ;; be unavailable at the time we run this. - (if (bytevector? source) - (or (let loop ((tries-left 10)) - (and (positive? tries-left) - (or (find-partition-by-luks-uuid source) - ;; If the underlying partition is - ;; not found, try again after - ;; waiting a second, up to ten - ;; times. FIXME: This should be - ;; dealt with in a more robust way. - (begin (sleep 1) - (loop (- tries-left 1)))))) - (error "LUKS partition not found" source)) - source) - - #$target))))) - -(define (close-luks-device source target) + (match targets + ((target) + #~(let ((source #$(if (uuid? source) + (uuid-bytevector source) + source))) + ;; XXX: 'use-modules' should be at the top level. + (use-modules (rnrs bytevectors) ;bytevector? + ((gnu build file-systems) + #:select (find-partition-by-luks-uuid))) + + ;; Use 'cryptsetup-static', not 'cryptsetup', to avoid pulling the + ;; whole world inside the initrd (for when we're in an initrd). + (zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup") + "open" "--type" "luks" + + ;; Note: We cannot use the "UUID=source" syntax here + ;; because 'cryptsetup' implements it by searching the + ;; udev-populated /dev/disk/by-id directory but udev may + ;; be unavailable at the time we run this. + (if (bytevector? source) + (or (let loop ((tries-left 10)) + (and (positive? tries-left) + (or (find-partition-by-luks-uuid source) + ;; If the underlying partition is + ;; not found, try again after + ;; waiting a second, up to ten + ;; times. FIXME: This should be + ;; dealt with in a more robust way. + (begin (sleep 1) + (loop (- tries-left 1)))))) + (error "LUKS partition not found" source)) + source) + + #$target))))))) + +(define (close-luks-device source targets) "Return a gexp that closes TARGET, a LUKS device." - #~(zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup") - "close" #$target))) + (match targets + ((target) + #~(zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup") + "close" #$target))))) (define* (check-luks-device md #:key needed-for-boot? @@ -235,36 +264,40 @@ option of @command{guix system}.\n") (close close-luks-device) (check check-luks-device))) -(define (open-raid-device sources target) +(define (open-raid-device sources targets) "Return a gexp that assembles SOURCES (a list of devices) to the RAID device TARGET (e.g., \"/dev/md0\"), using 'mdadm'." - #~(let ((sources '#$sources) - - ;; XXX: We're not at the top level here. We could use a - ;; non-top-level 'use-modules' form but that doesn't work when the - ;; code is eval'd, like the Shepherd does. - (every (@ (srfi srfi-1) every)) - (format (@ (ice-9 format) format))) - (let loop ((attempts 0)) - (unless (every file-exists? sources) - (when (> attempts 20) - (error "RAID devices did not show up; bailing out" - sources)) - - (format #t "waiting for RAID source devices~{ ~a~}...~%" - sources) - (sleep 1) - (loop (+ 1 attempts)))) - - ;; Use 'mdadm-static' rather than 'mdadm' to avoid pulling its whole - ;; closure (80 MiB) in the initrd when a RAID device is needed for boot. - (zero? (apply system* #$(file-append mdadm-static "/sbin/mdadm") - "--assemble" #$target sources)))) - -(define (close-raid-device sources target) + (match targets + ((target) + #~(let ((sources '#$sources) + + ;; XXX: We're not at the top level here. We could use a + ;; non-top-level 'use-modules' form but that doesn't work when the + ;; code is eval'd, like the Shepherd does. + (every (@ (srfi srfi-1) every)) + (format (@ (ice-9 format) format))) + (let loop ((attempts 0)) + (unless (every file-exists? sources) + (when (> attempts 20) + (error "RAID devices did not show up; bailing out" + sources)) + + (format #t "waiting for RAID source devices~{ ~a~}...~%" + sources) + (sleep 1) + (loop (+ 1 attempts)))) + + ;; Use 'mdadm-static' rather than 'mdadm' to avoid pulling its whole + ;; closure (80 MiB) in the initrd when a RAID device is needed for boot. + (zero? (apply system* #$(file-append mdadm-static "/sbin/mdadm") + "--assemble" #$target sources)))))) + +(define (close-raid-device sources targets) "Return a gexp that stops the RAID device TARGET." - #~(zero? (system* #$(file-append mdadm-static "/sbin/mdadm") - "--stop" #$target))) + (match targets + ((target) + #~(zero? (system* #$(file-append mdadm-static "/sbin/mdadm") + "--stop" #$target))))) (define raid-device-mapping ;; The type of RAID mapped devices. @@ -272,4 +305,24 @@ TARGET (e.g., \"/dev/md0\"), using 'mdadm'." (open open-raid-device) (close close-raid-device))) +(define (open-lvm-device source targets) + #~(and + (zero? (system* #$(file-append lvm2-static "/sbin/lvm") + "vgchange" "--activate" "ay" #$source)) + ; /dev/mapper nodes are usually created by udev, but udev may be unavailable at the time we run this. So we create them here. + (zero? (system* #$(file-append lvm2-static "/sbin/lvm") + "vgscan" "--mknodes")) + (every file-exists? (map (lambda (file) (string-append "/dev/mapper/" file)) + '#$targets)))) + + +(define (close-lvm-device source targets) + #~(zero? (system* #$(file-append lvm2-static "/sbin/lvm") + "vgchange" "--activate" "n" #$source))) + +(define lvm-device-mapping + (mapped-device-kind + (open open-lvm-device) + (close close-lvm-device))) + ;;; mapped-devices.scm ends here diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 2d62a873ca..71caa3a493 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -67,6 +67,7 @@ %test-btrfs-root-on-subvolume-os %test-jfs-root-os %test-f2fs-root-os + %test-lvm-separate-home-os %test-gui-installed-os %test-gui-installed-os-encrypted @@ -798,6 +799,92 @@ build (current-guix) and then store a couple of full system images.") ;;; +;;; Separate /home on LVM +;;; + +;; Since LVM support in guix currently doesn't allow root-on-LVM we use /home on LVM +(define-os-with-source (%lvm-separate-home-os %lvm-separate-home-os-source) + (use-modules (gnu) (gnu tests)) + + (operating-system + (host-name "separate-home-on-lvm") + (timezone "Europe/Paris") + (locale "en_US.utf8") + + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (target "/dev/vdb"))) + (kernel-arguments '("console=ttyS0")) + + (mapped-devices (list (mapped-device + (source "vg0") + (target "vg0-home") + (type lvm-device-mapping)))) + (file-systems (cons* (file-system + (device (file-system-label "root-fs")) + (mount-point "/") + (type "ext4")) + (file-system + (device "/dev/mapper/vg0-home") + (mount-point "/home") + (type "ext4") + (dependencies mapped-devices)) + %base-file-systems)) + (users %base-user-accounts) + (services (cons (service marionette-service-type + (marionette-configuration + (imported-modules '((gnu services herd) + (guix combinators))))) + %base-services)))) + +(define %lvm-separate-home-installation-script + "\ +. /etc/profile +set -e -x +guix --version + +export GUIX_BUILD_OPTIONS=--no-grafts +parted --script /dev/vdb mklabel gpt \\ + mkpart primary ext2 1M 3M \\ + mkpart primary ext2 3M 1.6G \\ + mkpart primary 1.6G 3.2G \\ + set 1 boot on \\ + set 1 bios_grub on +pvcreate /dev/vdb3 +vgcreate vg0 /dev/vdb3 +lvcreate -L 1.6G -n home vg0 +vgchange -ay +mkfs.ext4 -L root-fs /dev/vdb2 +mkfs.ext4 /dev/mapper/vg0-home +mount /dev/vdb2 /mnt +mkdir /mnt/home +mount /dev/mapper/vg0-home /mnt/home +df -h /mnt /mnt/home +herd start cow-store /mnt +mkdir /mnt/etc +cp /etc/target-config.scm /mnt/etc/config.scm +guix system init /mnt/etc/config.scm /mnt --no-substitutes +sync +reboot\n") + +(define %test-lvm-separate-home-os + (system-test + (name "lvm-separate-home-os") + (description + "Test functionality of an OS installed with a LVM /home partition") + (value + (mlet* %store-monad ((image (run-install %lvm-separate-home-os + %lvm-separate-home-os-source + #:script + %lvm-separate-home-installation-script + #:packages (list lvm2-static) + #:target-size (* 3200 MiB))) + (command (qemu-command/writable-image image))) + (run-basic-test %lvm-separate-home-os + `(,@command) "lvm-separate-home-os"))))) + + +;;; ;;; Btrfs root file system. ;;; |