summaryrefslogtreecommitdiff
path: root/gnu/packages/package-management.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/package-management.scm')
-rw-r--r--gnu/packages/package-management.scm145
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+)))