diff options
Diffstat (limited to 'gnu/packages/package-management.scm')
-rw-r--r-- | gnu/packages/package-management.scm | 145 |
1 files changed, 104 insertions, 41 deletions
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index e8e17eeeef..6a55f62ee6 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> +;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,15 +27,20 @@ (define-module (gnu packages package-management) #:use-module (gnu packages) #:use-module (gnu packages acl) + #:use-module (gnu packages attr) + #:use-module (gnu packages avahi) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages bison) #:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin' #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpio) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) + #:use-module (gnu packages docbook) #:use-module (gnu packages file) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) @@ -94,8 +100,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.14.0") - (commit "ab85cf7185da366da56314c53d8e43276e1cccc4") - (revision 11)) + (commit "7af5c2a248b6c229187fc850517c84b0917c452b") + (revision 13)) (package (name "guix") @@ -111,7 +117,7 @@ (commit commit))) (sha256 (base32 - "1c00yr2vgsdl3kmlbjppyws47ssahamdx88y0wg26x73px71rd19")) + "06kjimcln4ydirgl05qy98kxjyx3l6brxnq1ly7wb85f73s97gix")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -207,12 +213,13 @@ (let* ((out (assoc-ref outputs "out")) (guile (assoc-ref inputs "guile")) (json (assoc-ref inputs "guile-json")) + (sqlite (assoc-ref inputs "guile-sqlite3")) (git (assoc-ref inputs "guile-git")) (bs (assoc-ref inputs "guile-bytestructures")) (ssh (assoc-ref inputs "guile-ssh")) (gnutls (assoc-ref inputs "gnutls")) - (deps (list json gnutls git bs ssh)) + (deps (list json sqlite gnutls git bs ssh)) (effective (read-line (open-pipe* OPEN_READ @@ -269,6 +276,7 @@ (propagated-inputs `(("gnutls" ,gnutls) ("guile-json" ,guile-json) + ("guile-sqlite3" ,guile-sqlite3) ("guile-ssh" ,guile-ssh) ("guile-git" ,guile-git))) @@ -286,26 +294,34 @@ the Nix package manager.") ;; Alias for backward compatibility. (define-public guix-devel guix) -(define-public guix-register +(define-public guix-daemon ;; This package is for internal consumption: it allows us to quickly build - ;; the 'guix-register' program, which is referred to by (guix config). - ;; TODO: Remove this hack when 'guix-register' has been superseded by Scheme - ;; code. + ;; the 'guix-daemon' program and use that in (guix self), used by 'guix + ;; pull'. (package (inherit guix) (properties `((hidden? . #t))) - (name "guix-register") + (name "guix-daemon") ;; Use a minimum set of dependencies. (native-inputs (fold alist-delete (package-native-inputs guix) '("po4a" "graphviz" "help2man"))) - (propagated-inputs + (inputs `(("gnutls" ,gnutls) - ("guile-git" ,guile-git))) + ("guile-git" ,guile-git) + ,@(fold alist-delete (package-inputs guix) + '("boot-guile" "boot-guile/i686" "util-linux")))) + + (propagated-inputs '()) (arguments (substitute-keyword-arguments (package-arguments guix) + ((#:configure-flags flags '()) + ;; Pretend we have those libraries; we don't actually need them. + `(append ,flags + '("guix_cv_have_recent_guile_sqlite3=yes" + "guix_cv_have_recent_guile_ssh=yes"))) ((#:tests? #f #f) #f) ((#:phases phases '%standard-phases) @@ -315,11 +331,21 @@ the Nix package manager.") (invoke "make" "nix/libstore/schema.sql.hh") (invoke "make" "-j" (number->string (parallel-job-count)) - "guix-register"))) + "guix-daemon"))) (delete 'copy-bootstrap-guile) (replace 'install - (lambda _ - (invoke "make" "install-sbinPROGRAMS"))) + (lambda* (#:key outputs #:allow-other-keys) + (invoke "make" "install-binPROGRAMS" + "install-nodist_pkglibexecSCRIPTS") + + ;; We need to tell 'guix-daemon' which 'guix' command to use. + ;; Here we use a questionable hack where we hard-code + ;; "~root/.config", which could be wrong (XXX). + (let ((out (assoc-ref outputs "out"))) + (substitute* (find-files (string-append out "/libexec")) + (("exec \".*/bin/guix\"") + "exec ~root/.config/current/bin/guix")) + #t))) (delete 'wrap-program))))))) (define-public guile2.0-guix @@ -376,41 +402,24 @@ out) and returning a package that uses that as its 'source'." (define-public nix (package (name "nix") - (version "1.11.9") + (version "2.0.4") (source (origin (method url-fetch) (uri (string-append "http://nixos.org/releases/nix/nix-" version "/nix-" version ".tar.xz")) (sha256 (base32 - "1qg7qrfr60dysmyfg3ijgani71l23p1kqadhjs8kz11pgwkkx50f")))) + "0ss9svxlh1pvrdmnqjvjyqjmbqmrdbyfarvbb14i9d4bggzl0r8n")))) (build-system gnu-build-system) - ;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also - ;; need '--localstatedir=/var'. But then! The thing would use /var/nix - ;; instead of /var/guix. So in the end, we do nothing special. - (arguments - '(#:configure-flags - ;; Set the prefixes of Perl libraries to avoid propagation. - (let ((perl-libdir (lambda (p) - (string-append - (assoc-ref %build-inputs p) - "/lib/perl5/site_perl")))) - (list (string-append "--with-dbi=" - (perl-libdir "perl-dbi")) - (string-append "--with-dbd-sqlite=" - (perl-libdir "perl-dbd-sqlite")) - (string-append "--with-www-curl=" - (perl-libdir "perl-www-curl")))))) - (native-inputs `(("perl" ,perl) - ("pkg-config" ,pkg-config))) + (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("curl" ,curl) - ("openssl" ,openssl) + ("bzip2" ,bzip2) ("libgc" ,libgc) + ("libseccomp" ,libseccomp) + ("libsodium" ,libsodium) + ("openssl" ,openssl) ("sqlite" ,sqlite) - ("bzip2" ,bzip2) - ("perl-www-curl" ,perl-www-curl) - ("perl-dbi" ,perl-dbi) - ("perl-dbd-sqlite" ,perl-dbd-sqlite))) + ("xz" ,xz))) (home-page "https://nixos.org/nix/") (synopsis "The Nix package manager") (description @@ -544,13 +553,13 @@ transactions from C or Python.") (define-public diffoscope (package (name "diffoscope") - (version "95") + (version "96") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "0aksxxivxli6l3fylxgl771hw0h7l8x35l76cmj0d12zgx54w0a1")))) + "1x66f2x8miy3giff14higpcs70c0zb5d3gj6yn8ac6p183sngl72")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -899,3 +908,57 @@ Microsoft cabinet (.@dfn{CAB}) files.") 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+))) + +(define-public libostree + (package + (name "libostree") + (version "2018.5") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/ostreedev/ostree/releases/download/v" + version "/libostree-" version ".tar.xz")) + (sha256 + (base32 + "0q82d6rvp119nx7ck7j63a591kz8vg7v465kf9ygh8kzg875l3xd")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Don't try to use the non-existing '/var/tmp' as test + ;; directory. + (setenv "TEST_TMPDIR" (getenv "TMPDIR")) + #t))) + ;; XXX: fails with: + ;; tap-driver.sh: internal error getting exit status + ;; tap-driver.sh: fatal: I/O or internal error + #:tests? #f)) + (native-inputs + `(("attr" ,attr) ; for tests + ("bison" ,bison) + ("glib:bin" ,glib "bin") ; for 'glib-mkenums' + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("xsltproc" ,libxslt))) + (inputs + `(("avahi" ,avahi) + ("docbook-xml" ,docbook-xml-4.2) + ("docbook-xsl" ,docbook-xsl) + ("e2fsprogs" ,e2fsprogs) + ("fuse" ,fuse) + ("glib" ,glib) + ("gpgme" ,gpgme) + ("libarchive" ,libarchive) + ("libsoup" ,libsoup) + ("nettle" ,nettle) ; required by 'libarchive.la' + ("util-linux" ,util-linux))) + (home-page "https://ostree.readthedocs.io/en/latest/") + (synopsis "Operating system and container binary deployment and upgrades") + (description + "@code{libostree} is both a shared library and suite of command line +tools that combines a \"git-like\" model for committing and downloading +bootable filesystem trees, along with a layer for deploying them and managing +the bootloader configuration.") + (license license:lgpl2.0+))) |