diff options
author | Marius Bakke <mbakke@fastmail.com> | 2019-11-28 16:47:01 +0100 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2019-11-28 16:47:01 +0100 |
commit | 34f849a945d25daa76d93839dcf8768c8b45b636 (patch) | |
tree | 33cde8cf068593f29366ba3702aabdb75b5fa126 | |
parent | 0897ad7fac04fc9d814e83eed46e88c7bf9740bc (diff) | |
parent | c09f598d94af81f326fe1d4cf2ab344d4e720679 (diff) | |
download | guix-34f849a945d25daa76d93839dcf8768c8b45b636.tar.gz |
Merge branch 'master' into staging
-rw-r--r-- | doc/build.scm | 1 | ||||
-rw-r--r-- | doc/guix.texi | 86 | ||||
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/cran.scm | 41 | ||||
-rw-r--r-- | gnu/packages/disk.scm | 6 | ||||
-rw-r--r-- | gnu/packages/games.scm | 24 | ||||
-rw-r--r-- | gnu/packages/gnome.scm | 1 | ||||
-rw-r--r-- | gnu/packages/graph.scm | 4 | ||||
-rw-r--r-- | gnu/packages/graphics.scm | 10 | ||||
-rw-r--r-- | gnu/packages/kde.scm | 3 | ||||
-rw-r--r-- | gnu/packages/lisp.scm | 31 | ||||
-rw-r--r-- | gnu/packages/python-xyz.scm | 4 | ||||
-rw-r--r-- | gnu/packages/statistics.scm | 12 | ||||
-rw-r--r-- | gnu/packages/video.scm | 18 | ||||
-rw-r--r-- | gnu/services/pam-mount.scm | 111 | ||||
-rw-r--r-- | gnu/services/web.scm | 4 | ||||
-rw-r--r-- | guix/lint.scm | 1 | ||||
-rwxr-xr-x | guix/scripts/substitute.scm | 26 | ||||
-rw-r--r-- | guix/ui.scm | 42 |
19 files changed, 337 insertions, 89 deletions
diff --git a/doc/build.scm b/doc/build.scm index 81bb94670a..e171b539e6 100644 --- a/doc/build.scm +++ b/doc/build.scm @@ -278,6 +278,7 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')." (define entity->string (match-lambda ("rArr" "⇒") + ("rarr" "→") ("hellip" "…") ("rsquo" "’") (e (pk 'unknown-entity e) (primitive-exit 2)))) diff --git a/doc/guix.texi b/doc/guix.texi index 23a30ce553..d188f06a43 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -68,6 +68,7 @@ Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* +Copyright @copyright{} 2019 Guillaume Le Vaillant@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -305,6 +306,7 @@ Services * Virtualization Services:: Virtualization services. * Version Control Services:: Providing remote access to Git repositories. * Game Services:: Game servers. +* PAM Mount Service:: Service to mount volumes when logging in. * Miscellaneous Services:: Other services. Defining Services @@ -11931,6 +11933,7 @@ declaration. * Virtualization Services:: Virtualization services. * Version Control Services:: Providing remote access to Git repositories. * Game Services:: Game servers. +* PAM Mount Service:: Service to mount volumes when logging in. * Guix Services:: Services relating specifically to Guix. * Miscellaneous Services:: Other services. @end menu @@ -24656,6 +24659,89 @@ The port to bind the server to. @end deftp +@node PAM Mount Service +@subsection PAM Mount Service +@cindex pam-mount + +The @code{(gnu services pam-mount)} module provides a service allowing +users to mount volumes when they log in. It should be able to mount any +volume format supported by the system. + +@defvar {Scheme Variable} pam-mount-service-type +Service type for PAM Mount support. +@end defvar + +@deftp {Data Type} pam-mount-configuration +Data type representing the configuration of PAM Mount. + +It takes the following parameters: + +@table @asis +@item @code{rules} +The configuration rules that will be used to generate +@file{/etc/security/pam_mount.conf.xml}. + +The configuration rules are SXML elements (@pxref{SXML,,, guile, GNU +Guile Reference Manual}), and the the default ones don't mount anything +for anyone at login: + +@lisp +`((debug (@@ (enable "0"))) + (mntoptions (@@ (allow ,(string-join + '("nosuid" "nodev" "loop" + "encryption" "fsck" "nonempty" + "allow_root" "allow_other") + ",")))) + (mntoptions (@@ (require "nosuid,nodev"))) + (logout (@@ (wait "0") + (hup "0") + (term "no") + (kill "no"))) + (mkmountpoint (@@ (enable "1") + (remove "true")))) +@end lisp + +Some @code{volume} elements must be added to automatically mount volumes +at login. Here's an example allowing the user @code{alice} to mount her +encrypted @code{HOME} directory and allowing the user @code{bob} to mount +the partition where he stores his data: + +@lisp +(define pam-mount-rules +`((debug (@@ (enable "0"))) + (volume (@@ (user "alice") + (fstype "crypt") + (path "/dev/sda2") + (mountpoint "/home/alice"))) + (volume (@@ (user "bob") + (fstype "auto") + (path "/dev/sdb3") + (mountpoint "/home/bob/data") + (options "defaults,autodefrag,compress"))) + (mntoptions (@@ (allow ,(string-join + '("nosuid" "nodev" "loop" + "encryption" "fsck" "nonempty" + "allow_root" "allow_other") + ",")))) + (mntoptions (@@ (require "nosuid,nodev"))) + (logout (@@ (wait "0") + (hup "0") + (term "no") + (kill "no"))) + (mkmountpoint (@@ (enable "1") + (remove "true"))))) + +(service pam-mount-service-type + (pam-mount-configuration + (rules pam-mount-rules))) +@end lisp + +The complete list of possible options can be found in the man page for +@uref{http://pam-mount.sourceforge.net/pam_mount.conf.5.html, pam_mount.conf}. +@end table +@end deftp + + @node Guix Services @subsection Guix Services diff --git a/gnu/local.mk b/gnu/local.mk index feb7343ba9..0aa069dd43 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -551,6 +551,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/networking.scm \ %D%/services/nix.scm \ %D%/services/nfs.scm \ + %D%/services/pam-mount.scm \ %D%/services/security-token.scm \ %D%/services/shepherd.scm \ %D%/services/sound.scm \ diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index b0160347c9..46521323c0 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -5813,14 +5813,14 @@ clustering.") (define-public r-factominer (package (name "r-factominer") - (version "1.42") + (version "2.0") (source (origin (method url-fetch) (uri (cran-uri "FactoMineR" version)) (sha256 (base32 - "1yl16inb2m89l1czgaf0pgy9655dpr751hyx92yw6rqpd2ryznac")))) + "0qiw60ypf3bf5xsqz2b9l82i4jvprjm8lzpp12lhl8d9j5s8m0j8")))) (properties `((upstream-name . "FactoMineR"))) (build-system r-build-system) (propagated-inputs @@ -5828,6 +5828,8 @@ clustering.") ("r-cluster" ,r-cluster) ("r-ellipse" ,r-ellipse) ("r-flashclust" ,r-flashclust) + ("r-ggplot2" ,r-ggplot2) + ("r-ggrepel" ,r-ggrepel) ("r-lattice" ,r-lattice) ("r-leaps" ,r-leaps) ("r-mass" ,r-mass) @@ -6419,14 +6421,14 @@ documents.") (define-public r-writexl (package (name "r-writexl") - (version "1.1") + (version "1.2") (source (origin (method url-fetch) (uri (cran-uri "writexl" version)) (sha256 (base32 - "0w4wnpl3yhaqp63p32bk60xrbmd7xd11kxifjbzrghi7d4483a46")))) + "09fhdip6igcg97fjx4c7727cx2lb49l4d74l4i8rg2bag2s5lrj3")))) (build-system r-build-system) (inputs `(("zlib" ,zlib))) (home-page "https://github.com/ropensci/writexl") @@ -8068,14 +8070,14 @@ Hothorn, Westfall, 2010, CRC Press).") (define-public r-emmeans (package (name "r-emmeans") - (version "1.4.2") + (version "1.4.3.01") (source (origin (method url-fetch) (uri (cran-uri "emmeans" version)) (sha256 (base32 - "1sxwbh6sym2shrj7gva8q96ca2csqz3081q4d84avpxz15dfz1z1")))) + "16v5j31516nbqnj2zhgqvyp5yxd4zcs5zi0aspa5plr2qikvrkmg")))) (build-system r-build-system) (propagated-inputs `(("r-estimability" ,r-estimability) @@ -10044,14 +10046,14 @@ Touzet and Varre (2007).") (define-public r-rnifti (package (name "r-rnifti") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (cran-uri "RNifti" version)) (sha256 (base32 - "0l61hjnzv043ibpkgrhc0yngaqmc58lkvii8j1dzh022z5wbqrj8")))) + "0hfid40pgfi1ykqka8y3v0m7h0iyd6fbvycvqlad3ibmbg621f0w")))) (properties `((upstream-name . "RNifti"))) (build-system r-build-system) (propagated-inputs `(("r-rcpp" ,r-rcpp))) @@ -10157,14 +10159,14 @@ handling.") (define-public r-grimport (package (name "r-grimport") - (version "0.9-2") + (version "0.9-3") (source (origin (method url-fetch) (uri (cran-uri "grImport" version)) (sha256 (base32 - "0n3y6dzy8s0ifvyrgwbly6cl14lmgd54dyi74s5i984apszpsp16")))) + "109mrdvq06xq3zgn9ngz0c7zzgqkv5zbpvsb2i636vmlk6y4dpkd")))) (properties `((upstream-name . "grImport"))) (build-system r-build-system) (inputs @@ -10181,14 +10183,14 @@ PostScript pictures in R plots.") (define-public r-grimport2 (package (name "r-grimport2") - (version "0.1-5") + (version "0.2-0") (source (origin (method url-fetch) (uri (cran-uri "grImport2" version)) (sha256 (base32 - "0dyb3nrrvxnkk9q5b136bdivcz1jj3ajx1kscm3k0kkpqjif0pls")))) + "19q0dd8fpp1g4xf6sg5f8dxybwxjfw553ra6wgjd8b74fzca40m1")))) (properties `((upstream-name . "grImport2"))) (build-system r-build-system) (propagated-inputs @@ -10212,18 +10214,17 @@ be imported and then exported via the @code{gridSVG} package.") (define-public r-kohonen (package (name "r-kohonen") - (version "3.0.8") + (version "3.0.10") (source (origin (method url-fetch) (uri (cran-uri "kohonen" version)) (sha256 (base32 - "1zbfqa1qdlry8w6xhypkiknc5gn98v1ijhlsfka8zjg8ajhqgn1q")))) + "1ck7j13x701g67bx81x7plszz804jfhl1yg42krcj9x88vm5cscr")))) (build-system r-build-system) (propagated-inputs - `(("r-mass" ,r-mass) - ("r-rcpp" ,r-rcpp))) + `(("r-rcpp" ,r-rcpp))) (home-page "https://cran.r-project.org/web/packages/kohonen") (synopsis "Supervised and unsupervised self-organising maps") (description @@ -15432,13 +15433,13 @@ function and interfaces to external frameworks.") (define-public r-covr (package (name "r-covr") - (version "3.3.2") + (version "3.4.0") (source (origin (method url-fetch) (uri (cran-uri "covr" version)) (sha256 - (base32 "160w0m2d06kdd8dar57lpph39rxx55xwncbpl3b21l7j9drh1s5f")))) + (base32 "0p44kr6yz5sqza5zvq6divqglzkpv0if9pjpjmzhmdaaddjrqzg5")))) (properties `((upstream-name . "covr"))) (build-system r-build-system) (propagated-inputs @@ -15636,13 +15637,13 @@ effect size.") (define-public r-rgdal (package (name "r-rgdal") - (version "1.4-7") + (version "1.4-8") (source (origin (method url-fetch) (uri (cran-uri "rgdal" version)) (sha256 - (base32 "05rvqy8lr2c3phaylmc4g5761208b0xrmgwn9c4a60x7p251dzjs")))) + (base32 "1jd691amf3ghznq5im15gvhl6v6k25klpl75m4ngrqf9xlxaa3as")))) (properties `((upstream-name . "rgdal"))) (build-system r-build-system) (inputs diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 88a917dda7..1a6a7c40f6 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> @@ -364,10 +364,10 @@ and can dramatically shorten the lifespan of the drive if left unchecked.") ("glib" ,glib) ("gtkmm" ,gtkmm) ("libxml2" ,libxml2) - ("yelp-tools" ,yelp-tools) - ("itstool" ,itstool))) + ("yelp-tools" ,yelp-tools))) (native-inputs `(("intltool" ,intltool) + ("itstool" ,itstool) ("lvm2" ,lvm2) ; for tests ("pkg-config" ,pkg-config))) (home-page "https://gparted.org/") diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 613b3acfeb..b25133db78 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -27,7 +27,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2019 nee <nee-git@hidamari.blue> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> -;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> @@ -5139,7 +5139,7 @@ Crowther & Woods, its original authors, in 1995. It has been known as (define-public tome4 (package (name "tome4") - (version "1.6.1") + (version "1.6.4") (synopsis "Single-player, RPG roguelike game set in the world of Eyal") (source (origin @@ -5148,7 +5148,7 @@ Crowther & Woods, its original authors, in 1995. It has been known as version ".tar.bz2")) (sha256 (base32 - "0c5a2bdyfccwkqnb6yqvzggyi2nk032v01kfc00zlgpdfzljcb9i")) + "1hrh79aqmvwwd7idlr3lzpdpc9dgm1k5p7w2462chcjvd8vhfhb7")) (modules '((guix build utils))) (snippet '(begin @@ -6888,6 +6888,22 @@ a fortress beyond the forbidden swamp.") (("PATH_SUFFIXES \"src\" \"gtest\"") "PATH_SUFFIXES \"src\"")) #t)) + (add-after 'unpack 'adjust-backward-cpp-includes + (lambda _ + ;; XXX: The bundled backward-cpp exports a CMake "interface" + ;; that includes external libraries such as libdl from glibc. + ;; By default, CMake interface includes are treated as "system + ;; headers", and GCC behaves poorly when glibc is passed as a + ;; system header (causing #include_next failures). + + ;; Here we prevent targets that consume the Backward::Backward + ;; interface from treating it as "system includes". + (substitute* "CMakeLists.txt" + (("target_link_libraries\\((.+) Backward::Backward\\)" all target) + (string-append "set_property(TARGET " target " PROPERTY " + "NO_SYSTEM_FROM_IMPORTED true)\n" + all))) + #t)) (add-after 'unpack 'add-libiberty ;; Build fails upon linking executables without this. (lambda _ @@ -6939,7 +6955,7 @@ a fortress beyond the forbidden swamp.") "Multiplayer action game where you control small and nimble humanoids") (description "OpenClonk is a multiplayer action/tactics/skill game. It is often referred to as a mixture of The Settlers and Worms. In a simple 2D -antfarm-style landscape, the player controls his crew of Clonks, small but +antfarm-style landscape, the player controls a crew of Clonks, small but robust humanoid beings. The game encourages free play but the normal goal is to either exploit valuable resources from the earth by building a mine or fight each other on an arena-like map.") diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 11ed035919..4e5e8cdbfd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2431,6 +2431,7 @@ selection and URL hints."))) (patches (search-patches "vte-CVE-2012-2738-pt1.patch" "vte-CVE-2012-2738-pt2.patch")))) + (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-python"))) (native-inputs diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 9979b176d7..326477730b 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -107,14 +107,14 @@ more.") (define-public r-igraph (package (name "r-igraph") - (version "1.2.4.1") + (version "1.2.4.2") (source (origin (method url-fetch) (uri (cran-uri "igraph" version)) (sha256 (base32 - "1074y8mvprrqlkb4vwa2qc9l03r8d7p5vaaqacj4ljjs7dvcq6l9")))) + "0scrbqb26pam8akblb4g9rkz888s0xffw3gcly78s4ijj67barxd")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 8795107dcb..3ef420cf05 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -71,6 +71,7 @@ #:use-module (gnu packages readline) #:use-module (gnu packages sdl) #:use-module (gnu packages swig) + #:use-module (gnu packages tbb) #:use-module (gnu packages video) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -87,14 +88,14 @@ (define-public blender (package (name "blender") - (version "2.80") + (version "2.81") (source (origin (method url-fetch) (uri (string-append "https://download.blender.org/source/" - "blender-" version ".tar.gz")) + "blender-" version ".tar.xz")) (sha256 (base32 - "1h550jisdbis50hxwk5kxrvrk1a6sh2fsri3yyj66vhzbi87x7fd")))) + "1prp0f2152f1sz23jlc86vndfvmplb7qhllikkirq7hgpykrshna")))) (build-system cmake-build-system) (arguments (let ((python-version (version-major+minor (package-version python)))) @@ -145,6 +146,8 @@ `(("boost" ,boost) ("jemalloc" ,jemalloc) ("libx11" ,libx11) + ("libxi" ,libxi) + ("libxrender" ,libxrender) ("openimageio" ,openimageio) ("openexr" ,openexr) ("opensubdiv" ,opensubdiv) @@ -162,6 +165,7 @@ ("openal" ,openal) ("python" ,python) ("python-numpy" ,python-numpy) + ("tbb" ,tbb) ("zlib" ,zlib))) (home-page "https://blender.org/") (synopsis "3D graphics creation suite") diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 636b5d60ba..742e003433 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -517,8 +517,9 @@ cards.") (arguments `(#:tests? #f)) ; both tests fail, require display (inputs + `(("qtbase" ,qtbase))) + (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) - ("qtbase" ,qtbase) ("qttools" ,qttools))) (home-page "https://techbase.kde.org/Projects/Snorenotify") (synopsis "Qt notification framework") diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index fdde7f744c..9a83a1598a 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is> ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net> ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> @@ -1469,16 +1469,17 @@ JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.") (define-public sbcl-parse-number (package (name "sbcl-parse-number") - (version "1.5") + (version "1.7") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/sharplispers/parse-number/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/sharplispers/parse-number/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1k6s4v65ksc1j5i0dprvzfvj213v6nah7i0rgd0726ngfjisj9ir")))) + "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7")))) (build-system asdf-build-system/sbcl) (home-page "http://www.cliki.net/PARSE-NUMBER") (synopsis "Parse numbers") @@ -4140,11 +4141,13 @@ encoding table that uses only URI-compatible characters.") (version "1.1.7") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/edicl/chunga/archive/v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/edicl/chunga.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "0ra17kyc9l7qbaw003ly111r1cbn4zixbfq1ydr9cxw10v30q1n7")))) + (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd")))) (build-system asdf-build-system/sbcl) (inputs `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams))) @@ -4923,6 +4926,7 @@ reset to 0 and you're able to read it again.") (uri (git-reference (url "https://github.com/fukamachi/lack.git") (commit commit))) + (file-name (git-file-name "lack-request" version)) (sha256 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) (build-system asdf-build-system/sbcl) @@ -5039,6 +5043,7 @@ performance and simplicity in mind.") (uri (git-reference (url "https://github.com/fukamachi/lack.git") (commit commit))) + (file-name (git-file-name "lack-component" version)) (sha256 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) (build-system asdf-build-system/sbcl) @@ -5074,6 +5079,7 @@ performance and simplicity in mind.") (uri (git-reference (url "https://github.com/fukamachi/lack.git") (commit commit))) + (file-name (git-file-name "lack-util" version)) (sha256 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) (build-system asdf-build-system/sbcl) @@ -5111,6 +5117,7 @@ performance and simplicity in mind.") (uri (git-reference (url "https://github.com/fukamachi/lack.git") (commit commit))) + (file-name (git-file-name "lack-middleware-backtrace" version)) (sha256 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) (build-system asdf-build-system/sbcl) @@ -5193,6 +5200,7 @@ mime-type of a file.") (uri (git-reference (url "https://github.com/fukamachi/lack.git") (commit commit))) + (file-name (git-file-name "lack-middleware-static" version)) (sha256 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) (build-system asdf-build-system/sbcl) @@ -5232,6 +5240,7 @@ performance and simplicity in mind.") (uri (git-reference (url "https://github.com/fukamachi/lack.git") (commit commit))) + (file-name (git-file-name "lack" version)) (sha256 (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) (build-system asdf-build-system/sbcl) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 8f4a2334d9..9095984811 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -4088,8 +4088,7 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc. (assoc-ref inputs "jquery-ui") "-d" dir)) #t)) - (delete 'check) - (add-after 'install 'check + (replace 'check (lambda* (#:key outputs inputs #:allow-other-keys) (add-installed-pythonpath inputs outputs) (invoke "python" "tests.py" "-v" @@ -4147,6 +4146,7 @@ toolkits.") (assoc-ref inputs "jquery-ui") "-d" dir)) #t)) + (delete 'fix-and-disable-failing-tests) (delete 'check))))) ; These tests weren't run the the past. ;; Make sure to use special packages for Python 2 instead ;; of those automatically rewritten by package-with-python2. diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 1c315c23ef..a2ab913c6c 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -567,14 +567,14 @@ also flexible enough to handle most nonstandard requirements.") (define-public r-matrix (package (name "r-matrix") - (version "1.2-17") + (version "1.2-18") (source (origin (method url-fetch) (uri (cran-uri "Matrix" version)) (sha256 (base32 - "1k1zf92ycqr7fz44w7bp1p354ww7jg0wm23ybb8dzmbg37qfchyv")))) + "06b1rc1vq65b271f2wpzhqkvhng8hwwnvjflzxkng50i52603zzp")))) (properties `((upstream-name . "Matrix"))) (build-system r-build-system) (propagated-inputs @@ -2661,13 +2661,13 @@ certain criterion, e.g., it contains a certain regular file.") (define-public r-rmarkdown (package (name "r-rmarkdown") - (version "1.17") + (version "1.18") (source (origin (method url-fetch) (uri (cran-uri "rmarkdown" version)) (sha256 - (base32 "18dj6nr1m79pv1pv9w2n0rhiidwqjb2w8w1rnpcwijwbz4i8d3k2")))) + (base32 "0fykzbb5kjsqc8v6gjcdma7rmq0gailp30qij6plgna4d8nhjw3w")))) (properties `((upstream-name . "rmarkdown"))) (build-system r-build-system) (propagated-inputs @@ -3332,14 +3332,14 @@ Stochastic Neighbor Embedding using a Barnes-Hut implementation.") (define-public r-e1071 (package (name "r-e1071") - (version "1.7-2") + (version "1.7-3") (source (origin (method url-fetch) (uri (cran-uri "e1071" version)) (sha256 (base32 - "0lipj692rjjw8rrhqh2k9i5dh8y2sjrw9q53rwm32irhx2f2j73j")))) + "0pf2pjb590z0jikgv1037xcp7dq06mg3dzmyffjw6gk7dd9blbdv")))) (build-system r-build-system) (propagated-inputs `(("r-class" ,r-class))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 2ed4ed2dc1..c93531b744 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1266,7 +1266,8 @@ streaming protocols.") (build-system gnu-build-system) ;; FIXME: Add additional inputs once available. (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("yasm" ,yasm))) (inputs `(("alsa-lib" ,alsa-lib) ("cdparanoia" ,cdparanoia) @@ -1297,7 +1298,6 @@ streaming protocols.") ("python" ,python-wrapper) ("sdl" ,sdl) ("speex" ,speex) - ("yasm" ,yasm) ("zlib" ,zlib))) (arguments `(#:tests? #f ; no test target @@ -1943,7 +1943,11 @@ for use with HTML5 video.") (patches (search-patches "avidemux-install-to-lib.patch")))) (build-system cmake-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper) + ("qttools" ,qttools) + ("yasm" ,yasm))) ;; FIXME: Once packaged, add libraries not found during the build. (inputs `(("alsa-lib" ,alsa-lib) @@ -1958,14 +1962,9 @@ for use with HTML5 video.") ("libvorbis" ,libvorbis) ("libvpx" ,libvpx) ("libxv" ,libxv) - ("perl" ,perl) ("pulseaudio" ,pulseaudio) - ("python" ,python-wrapper) ("qtbase" ,qtbase) - ("qttools" ,qttools) - ("sdl" ,sdl) ("sqlite" ,sqlite) - ("yasm" ,yasm) ("zlib" ,zlib))) (arguments `(#:tests? #f ; no check target @@ -2002,7 +2001,6 @@ for use with HTML5 video.") (let* ((out (assoc-ref outputs "out")) (lib (string-append out "/lib")) (top (getcwd)) - (sdl (assoc-ref inputs "sdl")) (build_component (lambda* (component srcdir #:optional (args '())) (let ((builddir (string-append "build_" component))) @@ -2015,8 +2013,6 @@ for use with HTML5 video.") (string-append "-DCMAKE_SHARED_LINKER_FLAGS=" "\"-Wl,-rpath=" lib "\"") (string-append "-DAVIDEMUX_SOURCE_DIR=" top) - (string-append "-DSDL_INCLUDE_DIR=" - sdl "/include/SDL") (string-append "../" srcdir) "-DENABLE_QT5=True" args) diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm new file mode 100644 index 0000000000..98611462c2 --- /dev/null +++ b/gnu/services/pam-mount.scm @@ -0,0 +1,111 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services pam-mount) + #:use-module (gnu packages admin) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu system pam) + #:use-module (guix gexp) + #:use-module (guix records) + #:export (pam-mount-configuration + pam-mount-configuration? + pam-mount-service-type)) + +(define %pam-mount-default-configuration + `((debug (@ (enable "0"))) + (mntoptions (@ (allow ,(string-join + '("nosuid" "nodev" "loop" + "encryption" "fsck" "nonempty" + "allow_root" "allow_other") + ",")))) + (mntoptions (@ (require "nosuid,nodev"))) + (logout (@ (wait "0") + (hup "0") + (term "no") + (kill "no"))) + (mkmountpoint (@ (enable "1") + (remove "true"))))) + +(define (make-pam-mount-configuration-file config) + (computed-file + "pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@(pam-mount-configuration-rules config) + (pmvarrun + #$(file-append pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")) + (cryptmount + #$(file-append pam-mount + (string-append + "/sbin/mount.crypt" + " '%(if %(CIPHER),-ocipher=%(CIPHER))'" + " '%(if %(FSKEYCIPHER)," + "-ofsk_cipher=%(FSKEYCIPHER))'" + " '%(if %(FSKEYHASH),-ofsk_hash=%(FSKEYHASH))'" + " '%(if %(FSKEYPATH),-okeyfile=%(FSKEYPATH))'" + " '%(if %(OPTIONS),-o%(OPTIONS))'" + " '%(VOLUME)' '%(MNTPT)'"))) + (cryptumount + #$(file-append pam-mount "/sbin/umount.crypt '%(MNTPT)'")))) + port)))))) + +(define-record-type* <pam-mount-configuration> + pam-mount-configuration + make-pam-mount-configuration + pam-mount-configuration? + (rules pam-mount-configuration-rules + (default %pam-mount-default-configuration))) + +(define (pam-mount-etc-service config) + `(("security/pam_mount.conf.xml" + ,(make-pam-mount-configuration-file config)))) + +(define (pam-mount-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) + (list (lambda (pam) + (if (member (pam-service-name pam) + '("login" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define pam-mount-service-type + (service-type + (name 'pam-mount) + (extensions (list (service-extension etc-service-type + pam-mount-etc-service) + (service-extension pam-root-service-type + pam-mount-pam-service))) + (default-value (pam-mount-configuration)) + (description "Activate PAM-Mount support. It allows mounting volumes for +specific users when they log in."))) diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 3d149a105d..372f4dc6fc 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -742,8 +742,8 @@ of index files." (server-blocks (append (nginx-configuration-server-blocks config) servers))))) - (default-value - (nginx-configuration)))) + (default-value (nginx-configuration)) + (description "Run the nginx Web server."))) (define-record-type* <fcgiwrap-configuration> fcgiwrap-configuration make-fcgiwrap-configuration diff --git a/guix/lint.scm b/guix/lint.scm index 03a8e88225..629604e0e9 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -292,6 +292,7 @@ of a package, and INPUT-NAMES, a list of package specifications such as "intltool" "itstool" "qttools" + "yasm" "nasm" "fasm" "python-coverage" "python2-coverage" "python-cython" "python2-cython" "python-docutils" "python2-docutils" diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index ba2fb291d8..421561a4ea 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -526,6 +526,9 @@ initial connection on which HTTP requests are sent." (let connect ((port port) (requests requests) (result seed)) + (define batch + (at-most 1000 requests)) + ;; (format (current-error-port) "connecting (~a requests left)..." ;; (length requests)) (let ((p (or port (guix:open-connection-for-uri @@ -536,7 +539,7 @@ initial connection on which HTTP requests are sent." (when (file-port? p) (setvbuf p 'block (expt 2 16))) - ;; Send REQUESTS, up to a certain number, in a row. + ;; Send BATCH in a row. ;; XXX: Do our own caching to work around inefficiencies when ;; communicating over TLS: <http://bugs.gnu.org/22966>. (let-values (((buffer get) (open-bytevector-output-port))) @@ -544,16 +547,21 @@ initial connection on which HTTP requests are sent." (set-http-proxy-port?! buffer (http-proxy-port? p)) (for-each (cut write-request <> buffer) - (at-most 1000 requests)) + batch) (put-bytevector p (get)) (force-output p)) ;; Now start processing responses. - (let loop ((requests requests) - (result result)) - (match requests + (let loop ((sent batch) + (processed 0) + (result result)) + (match sent (() - (reverse result)) + (match (drop requests processed) + (() + (reverse result)) + (remainder + (connect port remainder result)))) ((head tail ...) (let* ((resp (read-response p)) (body (response-body-port resp)) @@ -564,9 +572,11 @@ initial connection on which HTTP requests are sent." (match (assq 'connection (response-headers resp)) (('connection 'close) (close-connection p) - (connect #f tail result)) ;try again + (connect #f ;try again + (append tail (drop requests processed)) + result)) (_ - (loop tail result)))))))))) ;keep going + (loop tail (+ 1 processed) result)))))))))) ;keep going (define (read-to-eof port) "Read from PORT until EOF is reached. The data are discarded." diff --git a/guix/ui.scm b/guix/ui.scm index 12611cb2bc..e31db33d3b 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -111,6 +111,7 @@ package-specification->name+version+output supports-hyperlinks? + file-hyperlink location->hyperlink relevance @@ -1246,7 +1247,7 @@ documented at (string-append "\x1b]8;;" uri "\x1b\\" text "\x1b]8;;\x1b\\")) -(define (supports-hyperlinks? port) +(define* (supports-hyperlinks? #:optional (port (current-output-port))) "Return true if PORT is a terminal that supports hyperlink escapes." ;; Note that terminals are supposed to ignore OSC escapes they don't ;; understand (this is the case of xterm as of version 349, for instance.) @@ -1255,6 +1256,13 @@ documented at (and (isatty?* port) (not (getenv "INSIDE_EMACS")))) +(define* (file-hyperlink file #:optional (text file)) + "Return TEXT with escapes for a hyperlink to FILE." + (hyperlink (string-append "file://" (gethostname) + (encode-and-join-uri-path + (string-split file #\/))) + text)) + (define (location->hyperlink location) "Return a string corresponding to LOCATION, with escapes for a hyperlink." (let ((str (location->string location)) @@ -1262,10 +1270,7 @@ documented at (location-file location) (search-path %load-path (location-file location))))) (if file - (hyperlink (string-append "file://" (gethostname) - (encode-and-join-uri-path - (string-split file #\/))) - str) + (file-hyperlink file str) str))) (define* (package->recutils p port #:optional (width (%text-width)) @@ -1608,17 +1613,22 @@ DURATION-RELATION with the current time." (define (display-generation profile number) "Display a one-line summary of generation NUMBER of PROFILE." (unless (zero? number) - (let ((header (format #f (highlight (G_ "Generation ~a\t~a")) number - (date->string - (time-utc->date - (generation-time profile number)) - ;; TRANSLATORS: This is a format-string for date->string. - ;; Please choose a format that corresponds to the - ;; usual way of presenting dates in your locale. - ;; See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html - ;; for details. - (G_ "~b ~d ~Y ~T")))) - (current (generation-number profile))) + (let* ((file (generation-file-name profile number)) + (link (if (supports-hyperlinks?) + (cut file-hyperlink file <>) + identity)) + (header (format #f (link (highlight (G_ "Generation ~a\t~a"))) + number + (date->string + (time-utc->date + (generation-time profile number)) + ;; TRANSLATORS: This is a format-string for date->string. + ;; Please choose a format that corresponds to the + ;; usual way of presenting dates in your locale. + ;; See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html + ;; for details. + (G_ "~b ~d ~Y ~T")))) + (current (generation-number profile))) (if (= number current) ;; TRANSLATORS: The word "current" here is an adjective for ;; "Generation", as in "current generation". Use the appropriate |