diff options
Diffstat (limited to 'gnu/packages/package-management.scm')
-rw-r--r-- | gnu/packages/package-management.scm | 210 |
1 files changed, 137 insertions, 73 deletions
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 59213c52de..32a7a30e7a 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1,10 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com> ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,52 +22,56 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages package-management) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix gexp) - #:use-module (guix utils) - #:use-module (guix build-system gnu) - #:use-module (guix build-system python) - #:use-module (guix build-system emacs) - #:use-module ((guix licenses) #:select (gpl2+ gpl3+ agpl3+ lgpl2.1+ asl2.0 - bsd-3 silofl1.1)) #:use-module (gnu packages) - #:use-module (gnu packages guile) - #:use-module (gnu packages file) + #:use-module (gnu packages acl) + #:use-module (gnu packages autotools) #:use-module (gnu packages backup) + #:use-module (gnu packages bdw-gc) #:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin' #:use-module (gnu packages check) #:use-module (gnu packages compression) - #:use-module (gnu packages gnupg) + #:use-module (gnu packages cpio) + #:use-module (gnu packages curl) #:use-module (gnu packages databases) - #:use-module (gnu packages graphviz) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages autotools) + #:use-module (gnu packages file) #:use-module (gnu packages gettext) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages guile) + #:use-module (gnu packages linux) #:use-module (gnu packages lisp) - #:use-module (gnu packages texinfo) + #:use-module (gnu packages man) #:use-module (gnu packages nettle) + #:use-module (gnu packages patchutils) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) - #:use-module (gnu packages curl) - #:use-module (gnu packages web) - #:use-module (gnu packages man) - #:use-module (gnu packages bdw-gc) - #:use-module (gnu packages patchutils) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages popt) #:use-module (gnu packages python) #:use-module (gnu packages python-web) - #:use-module (gnu packages popt) - #:use-module (gnu packages gnuzilla) - #:use-module (gnu packages cpio) + #:use-module (gnu packages serialization) + #:use-module (gnu packages ssh) + #:use-module (gnu packages texinfo) #:use-module (gnu packages time) #:use-module (gnu packages tls) - #:use-module (gnu packages ssh) #:use-module (gnu packages vim) - #:use-module (gnu packages serialization) - #:use-module (gnu packages acl) - #:use-module (srfi srfi-1) - #:use-module (ice-9 match)) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) + #:use-module (guix build-system emacs) + #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) + #:use-module (guix build-system python) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1)) (define (boot-guile-uri arch) "Return the URI for the bootstrap Guile tarball for ARCH." @@ -88,8 +92,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.14.0") - (commit "3c5dbd2beeaeb21b3b978ec6d76aa16260670fcd") - (revision 5)) + (commit "bdf0c644dafbce2a532161f04e9bf88c9310e081") + (revision 9)) (package (name "guix") @@ -105,7 +109,7 @@ (commit commit))) (sha256 (base32 - "1kia1fbw275xsnm4x0xq46465azryck94pja3gmh09vcdbwwmwq5")) + "1lmkgg4c38jkd1dk9cbh3zamyrh5vml8w8445hn8wq5c3mjj2n01")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -152,31 +156,27 @@ (display ,version port))) (zero? (system* "sh" "bootstrap")))) - (add-before - 'configure 'copy-bootstrap-guile + (add-before 'check 'copy-bootstrap-guile (lambda* (#:key system inputs #:allow-other-keys) - (define (boot-guile-version arch) - (cond ((string=? "armhf" arch) "2.0.11") - ((string=? "aarch64" arch) "2.0.14") - (else "2.0.9"))) - - (define (copy arch) - (let ((guile (assoc-ref inputs - (string-append "boot-guile/" - arch))) - (target (string-append "gnu/packages/bootstrap/" - arch "-linux/" - "/guile-" - (boot-guile-version arch) - ".tar.xz"))) - (mkdir-p (dirname target)) ;XXX: eventually unneeded - (copy-file guile target))) - - (copy "i686") - (copy "x86_64") - (copy "mips64el") - (copy "armhf") - (copy "aarch64") + ;; Copy the bootstrap guile tarball in the store used + ;; by the test suite. + (define (intern tarball) + (let ((base (strip-store-file-name tarball))) + (copy-file tarball base) + (invoke "./test-env" "guix" "download" + (string-append "file://" (getcwd) + "/" base)) + (delete-file base))) + + + (intern (assoc-ref inputs "boot-guile")) + + ;; On x86_64 some tests need the i686 Guile. + ,@(if (and (not (%current-target-system)) + (string=? (%current-system) + "x86_64-linux")) + '((intern (assoc-ref inputs "boot-guile/i686"))) + '()) #t)) (add-after 'unpack 'disable-failing-tests ;; XXX FIXME: These tests fail within the build container. @@ -254,11 +254,13 @@ ("libgcrypt" ,libgcrypt) ("guile" ,guile-2.2) - ("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")) - ("boot-guile/x86_64" ,(bootstrap-guile-origin "x86_64-linux")) - ("boot-guile/mips64el" ,(bootstrap-guile-origin "mips64el-linux")) - ("boot-guile/armhf" ,(bootstrap-guile-origin "armhf-linux")) - ("boot-guile/aarch64" ,(bootstrap-guile-origin "aarch64-linux")))) + ;; Many tests rely on the 'guile-bootstrap' package, which is why we + ;; have it here. + ("boot-guile" ,(bootstrap-guile-origin (%current-system))) + ,@(if (and (not (%current-target-system)) + (string=? (%current-system) "x86_64-linux")) + `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux"))) + '()))) (propagated-inputs `(("gnutls" ,gnutls) ("guile-json" ,guile-json) @@ -273,7 +275,7 @@ also a distribution thereof. It includes a virtual machine image. Besides the usual package management features, it also supports transactional upgrades and roll-backs, per-user profiles, and much more. It is based on the Nix package manager.") - (license gpl3+) + (license license:gpl3+) (properties '((ftp-server . "alpha.gnu.org")))))) ;; Alias for backward compatibility. @@ -368,7 +370,7 @@ out) and returning a package that uses that as its 'source'." ("perl-www-curl" ,perl-www-curl) ("perl-dbi" ,perl-dbi) ("perl-dbd-sqlite" ,perl-dbd-sqlite))) - (home-page "http://nixos.org/nix/") + (home-page "https://nixos.org/nix/") (synopsis "The Nix package manager") (description "Nix is a purely functional package manager. This means that it treats @@ -377,7 +379,7 @@ Haskell—they are built by functions that don't have side-effects, and they never change after they have been built. Nix stores packages in the Nix store, usually the directory /nix/store, where each package has its own unique sub-directory.") - (license lgpl2.1+))) + (license license:lgpl2.1+))) (define-public emacs-nix-mode (package @@ -423,7 +425,7 @@ of data and makes them appear to be merged into the same directory. It is typically used for managing software packages installed from source, by letting you install them apart in distinct directories and then create symlinks to the files in a common directory such as /usr/local.") - (license gpl2+))) + (license license:gpl2+))) (define-public rpm (package @@ -496,7 +498,7 @@ description. There is also a library permitting developers to manage such transactions from C or Python.") ;; The whole is GPLv2+; librpm itself is dual-licensed LGPLv2+ | GPLv2+. - (license gpl2+))) + (license license:gpl2+))) (define-public diffoscope (package @@ -558,7 +560,7 @@ transactions from C or Python.") different. It recursively unpacks archives of many kinds and transforms various binary formats into more human readable forms to compare them. It can compare two tarballs, ISO images, or PDFs just as easily.") - (license gpl3+))) + (license license:gpl3+))) (define-public python-anaconda-client (package @@ -610,7 +612,7 @@ compare two tarballs, ISO images, or PDFs just as easily.") "Anaconda Cloud command line client library provides an interface to Anaconda Cloud. Anaconda Cloud is useful for sharing packages, notebooks and environments.") - (license bsd-3))) + (license license:bsd-3))) (define-public python2-anaconda-client (package-with-python2 python-anaconda-client)) @@ -686,7 +688,7 @@ it easy to create independent environments even for C libraries. Conda is written entirely in Python. This package provides Conda as a library.") - (license bsd-3))) + (license license:bsd-3))) (define-public python2-conda (let ((base (package-with-python2 @@ -784,4 +786,66 @@ on top of GNU Guix.") ;; The Scheme modules in guix/ and gnu/ are licensed GPL3+, ;; the web interface modules in gwl/ are licensed AGPL3+, ;; and the fonts included in this package are licensed OFL1.1. - (license (list gpl3+ agpl3+ silofl1.1)))) + (license (list license:gpl3+ license:agpl3+ license:silofl1.1)))) + +(define-public gcab + (package + (name "gcab") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + version "/" name "-" version ".tar.xz")) + (sha256 + (base32 + "1ji8j8pnxqaycbp9ydi2zq7gcr02c2vw4qnc198i6jwy9zkh2x19")))) + (build-system meson-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-mkenums + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("vala" ,vala))) + (inputs + `(("glib" ,glib) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags + ;; XXX This ‘documentation’ is for developers, and fails informatively: + ;; Error in gtkdoc helper script: 'gtkdoc-mkhtml' failed with status 5 + (list "-Ddocs=false" + "-Dintrospection=false"))) + (home-page "https://wiki.gnome.org/msitools") ; no dedicated home page + (synopsis "Microsoft Cabinet file manipulation library") + (description + "The libgcab library provides GObject functions to read, write, and modify +Microsoft cabinet (.@dfn{CAB}) files.") + (license (list license:gpl2+ ; tests/testsuite.at + license:lgpl2.1+)))) ; the rest + +(define-public msitools + (package + (name "msitools") + (version "0.97") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + version "/" name "-" version ".tar.xz")) + (sha256 + (base32 + "0pn6izlgwi4ngpk9jk2n38gcjjpk29nm15aad89bg9z3k9n2hnrs")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("gcab" ,gcab) + ("glib" ,glib) + ("libgsf" ,libgsf) + ("libxml2" ,libxml2) + ("uuid" ,util-linux))) + (home-page "https://wiki.gnome.org/msitools") + (synopsis "Windows Installer file manipulation tool") + (description + "msitools is a collection of command-line tools to inspect, extract, build, +and sign Windows@tie{}Installer (.@dfn{MSI}) files. It aims to be a solution +for packaging and deployment of cross-compiled Windows applications.") + (license license:lgpl2.1+))) |