diff options
-rw-r--r-- | gnu/packages/bioinformatics.scm | 24 | ||||
-rw-r--r-- | gnu/packages/crypto.scm | 38 | ||||
-rw-r--r-- | gnu/packages/emacs.scm | 43 | ||||
-rw-r--r-- | gnu/packages/guile.scm | 6 | ||||
-rw-r--r-- | gnu/packages/haskell.scm | 8 | ||||
-rw-r--r-- | gnu/packages/imagemagick.scm | 4 | ||||
-rw-r--r-- | gnu/packages/kde.scm | 21 | ||||
-rw-r--r-- | gnu/packages/ocaml.scm | 233 | ||||
-rw-r--r-- | gnu/packages/photo.scm | 12 | ||||
-rw-r--r-- | gnu/packages/python.scm | 28 | ||||
-rw-r--r-- | gnu/system/file-systems.scm | 38 | ||||
-rw-r--r-- | gnu/tests/install.scm | 5 | ||||
-rw-r--r-- | guix/grafts.scm | 8 | ||||
-rw-r--r-- | tests/file-systems.scm | 24 |
14 files changed, 452 insertions, 40 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 4b9cd22f86..b14b7d4caf 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -5159,6 +5159,30 @@ sequence.") (supported-systems '("i686-linux" "x86_64-linux")) (license license:bsd-3))) +(define-public r-centipede + (package + (name "r-centipede") + (version "1.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.r-forge.r-project.org/" + "src/contrib/CENTIPEDE_" version ".tar.gz")) + (sha256 + (base32 + "1hsx6qgwr0i67fhy9257zj7s0ppncph2hjgbia5nn6nfmj0ax6l9")))) + (build-system r-build-system) + (home-page "http://centipede.uchicago.edu/") + (synopsis "Predict transcription factor binding sites") + (description + "CENTIPEDE applies a hierarchical Bayesian mixture model to infer regions +of the genome that are bound by particular transcription factors. It starts +by identifying a set of candidate binding sites, and then aims to classify the +sites according to whether each site is bound or not bound by a transcription +factor. CENTIPEDE is an unsupervised learning algorithm that discriminates +between two different types of motif instances using as much relevant +information as possible.") + (license (list license:gpl2+ license:gpl3+)))) + (define-public r-vegan (package (name "r-vegan") diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index e4a8a4bd54..d7888e6042 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson <davet@gnu.org> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2016 Leo Famulari <leo@famulari.name> +;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox> ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> @@ -378,3 +378,39 @@ no man page, refer to the home page for usage details.") storage files: it can be operated from commandline and it can integrate with a user's graphical desktop.") (license license:gpl3+))) + +(define-public scrypt + (package + (name "scrypt") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.tarsnap.com/scrypt/scrypt-" + version ".tgz")) + (sha256 + (base32 + "1m39hpfby0fdjam842773i5w7pa0qaj7f0r22jnchxsj824vqm0p")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-command-invocations + (lambda _ + (substitute* "Makefile.in" + (("command -p") "")) + #t)) + (add-after 'install 'install-docs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref %outputs "out")) + (misc (string-append out "/share/doc/scrypt"))) + (install-file "FORMAT" misc) + #t)))))) + (inputs + `(("openssl" ,openssl))) + (home-page "https://www.tarsnap.com/scrypt.html") + (synopsis "Memory-hard encryption tool based on scrypt") + (description "This packages provides a simple password-based encryption +utility as a demonstration of the @code{scrypt} key derivation function. +@code{Scrypt} is designed to be far more resistant against hardware brute-force +attacks than alternative functions such as @code{PBKDF2} or @code{bcrypt}.") + (license license:bsd-2))) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 50cea76855..e784a9ea13 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> -;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 humanitiesNerd <catonano@gmail.com> @@ -1440,6 +1440,26 @@ Git, Mercurial, Subversion and Bazaar are supported, and many parts of the display and behaviour is easily customisable.") (license license:gpl3+))) +(define-public emacs-git-timemachine + (package + (name "emacs-git-timemachine") + (version "3.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/pidu/git-timemachine/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1l4g0r69wfrnjsywv03v4bpdd53byg6zdx6mzabfxyymss3kvisa")))) + (build-system emacs-build-system) + (home-page "https://github.com/pidu/git-timemachine") + (synopsis "Step through historic versions of Git-controlled files") + (description "This package enables you to step through historic versions +of files under Git version control from within Emacs.") + (license license:gpl3+))) + (define-public emacs-el-mock (package (name "emacs-el-mock") @@ -1714,6 +1734,27 @@ evaluated in the browser, just like Emacs does with an inferior Lisp process in Lisp modes.") (license license:unlicense))) +(define-public emacs-stripe-buffer + (package + (name "emacs-stripe-buffer") + (version "0.2.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/sabof/stripe-buffer/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik")))) + (build-system emacs-build-system) + (home-page "https://github.com/sabof/stripe-buffer/") + (synopsis "Add stripes to list buffers") + (description + "This Emacs package adds faces to add stripes to list buffers and org +tables.") + (license license:gpl2+))) + (define-public emacs-rich-minority (package (name "emacs-rich-minority") diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 7ce6683681..7b4653cc99 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -890,8 +890,10 @@ Guile's foreign function interface.") (name "guile-sqlite3") (version (string-append "0.0-0." (string-take commit 7))) - ;; XXX: Gitorious being dead, this is not a reliable home page. - (home-page "https://www.gitorious.org/guile-sqlite3/guile-sqlite3.git/") + ;; XXX: This used to be available read-only at + ;; <https://www.gitorious.org/guile-sqlite3/guile-sqlite3.git/> but it + ;; eventually disappeared, so we have our own copy here. + (home-page "https://notabug.org/civodul/guile-sqlite3.git") (source (origin (method git-fetch) (uri (git-reference diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b26234d405..f28009f176 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org> ;;; @@ -2976,7 +2976,7 @@ writing to stdout and other handles.") (define-public ghc-quickcheck-instances (package (name "ghc-quickcheck-instances") - (version "0.3.11") + (version "0.3.12") (source (origin (method url-fetch) @@ -2986,13 +2986,15 @@ writing to stdout and other handles.") version ".tar.gz")) (sha256 (base32 - "041s6963czs1pz0fc9cx17lgd6p83czqy2nxji7bhxqxwl2j15h2")))) + "1wwvkzpams7i0j7nk5qj8vvhj8x5zcbgbgrpczszgvshva4bkmfx")))) (build-system haskell-build-system) (inputs `(("ghc-old-time" ,ghc-old-time) ("ghc-unordered-containers" ,ghc-unordered-containers) ("ghc-hashable" ,ghc-hashable) ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-scientific" ,ghc-scientific) + ("ghc-vector" ,ghc-vector) ("ghc-text" ,ghc-text))) (home-page "https://github.com/aslatter/qc-instances") diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index d654c3be2e..3839dbbdb0 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -46,14 +46,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.7-3") + (version "6.9.7-4") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "18cibh5rmxddwpsrpzjd4sbim80g5w36zhl8bw582nw39cs6f5w0")))) + "0acn5pfdn2aws6gz0ikipw945zzg3jb78yg1ma28p5cwxmajr138")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index db8609a645..aef56bb202 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> +;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +39,7 @@ (define-public kdevelop (package (name "kdevelop") - (version "5.0.2") + (version "5.0.3") (source (origin (method url-fetch) @@ -48,7 +48,7 @@ version ".tar.xz")) (sha256 (base32 - "0rl6csmzf14gf0r0mk7z2lj7cq8fggf5qmlbxq6j68vp2q0pj0cv")))) + "00gn2c66pyd9qaa0zhn2lqam0zsg7fbyi13hk32wclxq73y8v98p")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -98,15 +98,18 @@ (let* ((out (assoc-ref outputs "out")) (kdevplatform (assoc-ref inputs "kdevplatform")) (kio (assoc-ref inputs "kio")) + (kcmutils (assoc-ref inputs "kcmutils")) (qtquickcontrols (assoc-ref inputs "qtquickcontrols")) (qtdeclarative (assoc-ref inputs "qtdeclarative")) - (plugins "/lib/plugins") + (profile "$HOME/.guix-profile") (qml "/qml")) (wrap-program (string-append out "/bin/kdevelop") + `("XDG_DATA_DIRS" ":" prefix + ,(map (lambda (s) (string-append s "/share")) + (list profile out kdevplatform kcmutils))) `("QT_PLUGIN_PATH" ":" prefix - (,(string-append out plugins) - ,(string-append kdevplatform plugins) - ,(string-append kio plugins))) + ,(map (lambda (s) (string-append s "/lib/plugins")) + (list profile out kdevplatform kio))) `("QML2_IMPORT_PATH" ":" prefix (,(string-append qtquickcontrols qml) ,(string-append qtdeclarative qml)))))))))) @@ -145,14 +148,14 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).") (define-public kdevplatform (package (name "kdevplatform") - (version "5.0.2") + (version "5.0.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/KDE/kdevplatform/archive/v" version ".tar.gz")) (sha256 (base32 - "1m8c0ixv91diyy9bvq53d4jik4zrnf7bix7clad4ywxnlpcs4ahr")) + "1k40wg08iwyswnpbs4bfh4yq38pp0qi78shjh4pf7yfa2kbid30j")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (native-inputs diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 93020f1c06..9a70c47536 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -32,8 +32,10 @@ #:use-module (gnu packages emacs) #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) + #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages libevent) #:use-module (gnu packages lynx) #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) @@ -44,6 +46,7 @@ #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) #:use-module (gnu packages time) + #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -804,10 +807,19 @@ other XUnit testing frameworks.") `(#:phases (modify-phases %standard-phases (delete 'configure) - (add-before 'install 'fix-install-name - (lambda* (#:key #:allow-other-keys) - (substitute* "Makefile" - (("install zip") "install camlzip"))))) + (add-after 'install 'install-camlzip + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/lib/ocaml/site-lib/camlzip"))) + (mkdir-p dir) + (call-with-output-file (string-append dir "/META") + (lambda (port) + (format port "version=\"1.06\"\n") + (format port "requires=\"unix\"\n") + (format port "archive(byte)=\"zip.cma\"\n") + (format port "archive(native)=\"zip.cmxa\"\n") + (format port "archive(native,plugin)=\"zip.cmxs\"\n") + (format port "directory=\"../zip\"\n"))))))) #:install-target "install-findlib" #:make-flags (list "all" "allopt" @@ -1218,3 +1230,216 @@ module automatically handles syntax errors, help messages and UNIX man page generation. It supports programs with single or multiple commands and respects most of the POSIX and GNU conventions.") (license license:bsd-3))) + +(define-public ocaml-fmt + (package + (name "ocaml-fmt") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://erratique.ch/software/fmt/releases/fmt-" + version ".tbz")) + (sha256 (base32 + "16y7ibndnairb53j8a6qgipyqwjxncn4pl9jiw5bxjfjm59108px")))) + (build-system ocaml-build-system) + (native-inputs `(("opam" ,opam) + ("topkg" ,ocaml-topkg))) + (propagated-inputs `(("result" ,ocaml-result) + ("cmdliner" ,ocaml-cmdliner))) + (arguments `(#:tests? #f + #:build-flags (list "build" "--with-base-unix" "true" + "--with-cmdliner" "true") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "http://erratique.ch/software/fmt") + (synopsis "OCaml Format pretty-printer combinators") + (description "Fmt exposes combinators to devise Format pretty-printing +functions.") + (license license:isc))) + +(define-public ocaml-astring + (package + (name "ocaml-astring") + (version "0.8.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://erratique.ch/software/astring/releases/astring-" + version ".tbz")) + (sha256 (base32 + "0ixjwc3plrljvj24za3l9gy0w30lsbggp8yh02lwrzw61ls4cri0")))) + (build-system ocaml-build-system) + (native-inputs `(("opam" ,opam) + ("topkg" ,ocaml-topkg))) + (arguments `(#:tests? #f + #:build-flags (list "build") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "http://erratique.ch/software/astring") + (synopsis "Alternative String module for OCaml") + (description "Astring exposes an alternative String module for OCaml. This +module balances minimality and expressiveness for basic, index-free, string +processing and provides types and functions for substrings, string sets and +string maps. The String module exposed by Astring has exception safe functions, +removes deprecated and rarely used functions, alters some signatures and names, +adds a few missing functions and fully exploits OCaml's newfound string +immutability.") + (license license:isc))) + +(define-public ocaml-alcotest + (package + (name "ocaml-alcotest") + (version "0.7.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mirage/alcotest/releases/" + "download/" version "/alcotest-" version ".tbz")) + (sha256 + (base32 + "0g5lzk0gpfx4q8hyhr460gr4lab5wakfxsmhfwvb3yinxwzs95gc")))) + (build-system ocaml-build-system) + (arguments `(#:tests? #f + #:build-flags (list "build") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs `(("opam" ,opam) + ("topkg" ,ocaml-topkg))) + (propagated-inputs `(("fmt" ,ocaml-fmt) + ("astring" ,ocaml-astring))) + (home-page "https://github.com/mirage/alcotest") + (synopsis "Lightweight OCaml test framework") + (description "Alcotest exposes simple interface to perform unit tests. It +exposes a simple TESTABLE module type, a check function to assert test +predicates and a run function to perform a list of unit -> unit test callbacks. +Alcotest provides a quiet and colorful output where only faulty runs are fully +displayed at the end of the run (with the full logs ready to inspect), with a +simple (yet expressive) query language to select the tests to run.") + (license license:isc))) + +(define-public ocaml-ppx-tools + (package + (name "ocaml-ppx-tools") + (version "5.0+4.02.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/alainfrisch/ppx_tools/archive/" + version ".tar.gz")) + (sha256 (base32 + "0rjg4rngi8k9873z4zq95zn9hj8qyw1vcrf11y15aqasfpqq16rc")))) + (build-system ocaml-build-system) + (arguments `(#:phases (modify-phases %standard-phases (delete 'configure)) + #:tests? #f)) + (home-page "https://github.com/alainfrisch/ppx_tools") + (synopsis "Tools for authors of ppx rewriters and other syntactic tools") + (description "Tools for authors of ppx rewriters and other syntactic tools.") + (license license:expat))) + +(define-public ocaml-react + (package + (name "ocaml-react") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://erratique.ch/software/react/releases/react-" + version ".tbz")) + (sha256 (base32 + "0knhgbngphv5sp1yskfd97crf169qhpc0igr6w7vqw0q36lswyl8")))) + (build-system ocaml-build-system) + (native-inputs `(("opam" ,opam))) + (arguments `(#:tests? #f + #:build-flags (list "native=true" "native-dynlink=true") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "http://erratique.ch/software/react") + (synopsis "Declarative events and signals for OCaml") + (description "React is an OCaml module for functional reactive programming +(FRP). It provides support to program with time varying values: declarative +events and signals. React doesn't define any primitive event or signal, it +lets the client choose the concrete timeline.") + (license license:bsd-3))) + +(define-public ocaml-ssl + (package + (name "ocaml-ssl") + (version "0.5.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/savonet/ocaml-ssl/archive/" + version ".tar.gz")) + (sha256 (base32 + "1ds5gzyzpcgwn7h40dmjkll7g990cr82ay05b2a7nrclvv6fdpg8")))) + (build-system ocaml-build-system) + (arguments `(#:tests? #f + #:make-flags (list "OCAMLFIND_LDCONF=ignore") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda* (#:key #:allow-other-keys) + (system* "./bootstrap") + (substitute* "src/OCamlMakefile" + (("/bin/sh") (which "bash"))) + (substitute* "configure" + (("/bin/sh") (which "bash")))))))) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("which" ,which))) + (propagated-inputs `(("openssl" ,openssl))) + (home-page "https://github.com/savonet/ocaml-ssl/") + (synopsis "OCaml bindings for OpenSSL") + (description "OCaml bindings for OpenSSL.") + (license license:lgpl2.1))) + +(define-public ocaml-lwt + (package + (name "ocaml-lwt") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/ocsigen/lwt/archive/" version + ".tar.gz")) + (sha256 (base32 + "1gbw0g8a5a4b16diqrmlhc8ilnikrm4w3jjm1zq310maqg8z0zxz")))) + (build-system ocaml-build-system) + (arguments + `(#:configure-flags + (list "--enable-ssl" "--enable-glib" "--enable-react" + "--enable-ppx") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'disable-some-checks + (lambda* (#:key #:allow-other-keys) + (substitute* "tests/unix/main.ml" + (("Test_mcast.suite;") "")))) + (add-after 'install 'link-stubs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) + (lib (string-append out "/lib/ocaml/site-lib/lwt"))) + (mkdir-p stubs) + (symlink (string-append lib "/dlllwt-glib_stubs.so") + (string-append stubs "/dlllwt-glib_stubs.so")) + (symlink (string-append lib "/dlllwt-unix_stubs.so") + (string-append stubs "/dlllwt-unix_stubs.so")))))))) + (native-inputs `(("pkg-config" ,pkg-config) + ("ppx-tools" ,ocaml-ppx-tools))) + (inputs `(("libev" ,libev) + ("glib" ,glib))) + (propagated-inputs `(("result" ,ocaml-result) + ("ocaml-ssl" ,ocaml-ssl) + ("ocaml-react" ,ocaml-react))) + (home-page "https://github.com/ocsigen/lwt") + (synopsis "Cooperative threads and I/O in monadic style") + (description "Lwt provides typed, composable cooperative threads. These +make it easy to run normally-blocking I/O operations concurrently in a single +process. Also, in many cases, Lwt threads can interact without the need for +locks or other synchronization primitives.") + (license license:lgpl2.1))) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 8e823cfc21..ce71d2a441 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -163,7 +163,7 @@ MTP, and much more.") (define-public perl-image-exiftool (package (name "perl-image-exiftool") - (version "10.20") + (version "10.40") (source (origin (method url-fetch) (uri (string-append @@ -171,7 +171,7 @@ MTP, and much more.") version ".tar.gz")) (sha256 (base32 - "0akdnxvb23ibcwa63ncibaj5m5k56cb34x8gy90z9lqcjl0f4sph")))) + "1p05d9k94win8a24cr7lsllb6wjl3dagsmdbcxzv6f68z7i1jdly")))) (build-system perl-build-system) (arguments '(#:phases (alist-cons-after @@ -186,10 +186,10 @@ MTP, and much more.") `("PERL5LIB" prefix (,lib))))) %standard-phases))) (home-page "http://search.cpan.org/dist/Image-ExifTool") - (synopsis "Program and Perl library to manipulate EXIF tags") - (description - "This package provides the 'exiftool' command and the 'Image::ExifTool' -Perl library to manipulate EXIF tags of digital images.") + (synopsis "Program and Perl library to manipulate EXIF and other metadata") + (description "This package provides the @code{exiftool} command and the +@code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images +and a wide variety of other metadata.") (license (package-license perl)))) (define-public libpano13 diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ddf276de09..a9792afe25 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4157,6 +4157,34 @@ SQLAlchemy Database Toolkit for Python.") (define-public python2-alembic (package-with-python2 python-alembic)) +(define-public python-autopep8 + (package + (name "python-autopep8") + (version "1.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "autopep8" version)) + (sha256 + (base32 + "18parm383lfn42a00wklv3qf20p4v277f1x3cn58x019dqk1xqrq")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pep8" ,python-pep8))) + (home-page "https://github.com/hhatto/autopep8") + (synopsis "Format Python code according to the PEP 8 style guide") + (description + "@code{autopep8} automatically formats Python code to conform to +the PEP 8 style guide. It uses the pycodestyle utility to determine +what parts of the code needs to be formatted. @code{autopep8} is +capable of fixing most of the formatting issues that can be reported +by pycodestyle.") + (license (license:non-copyleft + "https://github.com/hhatto/autopep8/blob/master/LICENSE")))) + +(define-public python2-autopep8 + (package-with-python2 python-autopep8)) + (define-public python-distutils-extra (package (name "python-distutils-extra") diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 4cc1221eb8..fa56853fd1 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -95,11 +95,39 @@ (dependencies file-system-dependencies ; list of <file-system> (default '()))) ; or <mapped-device> -(define-inlinable (file-system-needed-for-boot? fs) - "Return true if FS has the 'needed-for-boot?' flag set, or if it's the root -file system." +(define %not-slash + (char-set-complement (char-set #\/))) + +(define (file-prefix? file1 file2) + "Return #t if FILE1 denotes the name of a file that is a parent of FILE2, +where both FILE1 and FILE2 are absolute file name. For example: + + (file-prefix? \"/gnu\" \"/gnu/store\") + => #t + + (file-prefix? \"/gn\" \"/gnu/store\") + => #f +" + (and (string-prefix? "/" file1) + (string-prefix? "/" file2) + (let loop ((file1 (string-tokenize file1 %not-slash)) + (file2 (string-tokenize file2 %not-slash))) + (match file1 + (() + #t) + ((head1 tail1 ...) + (match file2 + ((head2 tail2 ...) + (and (string=? head1 head2) (loop tail1 tail2))) + (() + #f))))))) + +(define (file-system-needed-for-boot? fs) + "Return true if FS has the 'needed-for-boot?' flag set, or if it holds the +store--e.g., if FS is the root file system." (or (%file-system-needed-for-boot? fs) - (string=? "/" (file-system-mount-point fs)))) + (and (file-prefix? (file-system-mount-point fs) (%store-prefix)) + (not (memq 'bind-mount (file-system-flags fs)))))) (define (file-system->spec fs) "Return a list corresponding to file-system FS that can be passed to the diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index ae54154c5c..4e8d594054 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -257,8 +257,7 @@ build (current-guix) and then store a couple of full system images.") (device "store-fs") (title 'label) (mount-point "/gnu") - (type "ext4") - (needed-for-boot? #t)) ;definitely! + (type "ext4")) %base-file-systems)) (users %base-user-accounts) (services (cons (service marionette-service-type diff --git a/guix/grafts.scm b/guix/grafts.scm index 2006d3908e..e14a40f8d1 100644 --- a/guix/grafts.scm +++ b/guix/grafts.scm @@ -221,9 +221,11 @@ available." ((_ . result) ;cache hit (return result)) (#f ;cache miss - (mlet %state-monad ((result (begin exp ...))) - (set-current-state (vhash-consq key result cache)) - (return result)))))) + (mlet %state-monad ((result (begin exp ...)) + (cache (current-state))) + (mbegin %state-monad + (set-current-state (vhash-consq key result cache)) + (return result))))))) (define* (cumulative-grafts store drv grafts references diff --git a/tests/file-systems.scm b/tests/file-systems.scm index aed27e89c2..fd1599e132 100644 --- a/tests/file-systems.scm +++ b/tests/file-systems.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,6 +17,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (test-file-systems) + #:use-module (guix store) #:use-module (gnu system file-systems) #:use-module (srfi srfi-64) #:use-module (rnrs bytevectors)) @@ -50,4 +51,25 @@ (string-contains message "invalid UUID") (equal? form '(uuid "foobar")))))) +(test-assert "file-system-needed-for-boot?" + (let-syntax ((dummy-fs (syntax-rules () + ((_ directory) + (file-system + (device "foo") + (mount-point directory) + (type "ext4")))))) + (parameterize ((%store-prefix "/gnu/guix/store")) + (and (file-system-needed-for-boot? (dummy-fs "/")) + (file-system-needed-for-boot? (dummy-fs "/gnu")) + (file-system-needed-for-boot? (dummy-fs "/gnu/guix")) + (file-system-needed-for-boot? (dummy-fs "/gnu/guix/store")) + (not (file-system-needed-for-boot? + (dummy-fs "/gnu/guix/store/foo"))) + (not (file-system-needed-for-boot? (dummy-fs "/gn"))) + (not (file-system-needed-for-boot? + (file-system + (inherit (dummy-fs (%store-prefix))) + (device "/foo") + (flags '(bind-mount read-only))))))))) + (test-end) |