From 7c033c4627dbcd1ad5996e332976b2b57a0bbb7d Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 21 Nov 2015 10:02:11 +1000 Subject: gnu: Add ruby-systemu. * gnu/packages/ruby.scm (ruby-systemu): New variable. --- gnu/packages/ruby.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 577be185f4..dcf2eef35e 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2930,3 +2930,31 @@ methods, a @code{Mixin} module for including color methods, a @code{Logger}, a device.") (home-page "http://rubyworks.github.io/ansi") (license license:bsd-2))) + +(define-public ruby-systemu + (package + (name "ruby-systemu") + (version "2.6.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "systemu" version)) + (sha256 + (base32 + "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-version + (lambda _ + (setenv "VERSION" ,version) + #t))))) + (synopsis "Capture of stdout/stderr and handling of child processes") + (description + "Systemu can be used on any platform to return status, stdout, and stderr +of any command. Unlike other methods like @code{open3} and @code{popen4} +there is no danger of full pipes or threading issues hanging your process or +subprocess.") + (home-page "https://github.com/ahoward/systemu") + (license license:ruby))) -- cgit v1.2.3 From 3d84a99e73fdc1f7523d33c27a4329ec43b6dbc9 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 21 Nov 2015 10:03:41 +1000 Subject: gnu: Add ruby-bio-commandeer. * gnu/packages/ruby.scm (ruby-bio-commandeer): New variable. --- gnu/packages/ruby.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index dcf2eef35e..f7a20b864c 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2958,3 +2958,39 @@ there is no danger of full pipes or threading issues hanging your process or subprocess.") (home-page "https://github.com/ahoward/systemu") (license license:ruby))) + +(define-public ruby-bio-commandeer + (package + (name "ruby-bio-commandeer") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "bio-commandeer" version)) + (sha256 + (base32 + "061jxa6km92qfwzl058r2gp8gfcsbyr7m643nw1pxvmjdswaf6ly")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + ;; Run test without calling 'rake' so that jeweler is + ;; not required as an input. + (lambda _ + (zero? (system* "rspec" "spec/bio-commandeer_spec.rb"))))))) + (propagated-inputs + `(("ruby-bio-logger" ,ruby-bio-logger) + ("ruby-systemu" ,ruby-systemu))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec))) + (synopsis "Simplified running of shell commands from within Ruby") + (description + "Bio-commandeer provides an opinionated method of running shell commands +from within Ruby. The advantage of bio-commandeer over other methods of +running external commands is that when something goes wrong, messages printed +to the @code{STDOUT} and @code{STDERR} streams are reported, giving extra +detail to ease debugging.") + (home-page "http://github.com/wwood/bioruby-commandeer") + (license license:expat))) -- cgit v1.2.3 From 6b6f7d6a0e809c09a0cae47bfe41f2d35f6cf75b Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 21 Nov 2015 10:37:34 +1000 Subject: gnu: orfm: Update to 0.5.3. * gnu/packages/bioinformatics.scm (orfm): Update to 0.5.3. [native-inputs]: Add inputs required for tests. [description]: Add commas. --- gnu/packages/bioinformatics.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index c6531d669f..a0b7864918 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2079,7 +2079,7 @@ that a read originated from a particular isoform.") (define-public orfm (package (name "orfm") - (version "0.4.1") + (version "0.5.3") (source (origin (method url-fetch) (uri (string-append @@ -2087,12 +2087,16 @@ that a read originated from a particular isoform.") version "/orfm-" version ".tar.gz")) (sha256 (base32 - "05fmw145snk646ly076zby0fjav0k7ysbclck5d4s9pmgcfpijc2")))) + "0vb6d771gl4mix8bwx919x5ayy9pkj44n7ki336nz3rz2rx4c7gk")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) + (native-inputs + `(("ruby-bio-commandeer" ,ruby-bio-commandeer) + ("ruby-rspec" ,ruby-rspec) + ("ruby" ,ruby))) (synopsis "Simple and not slow open reading frame (ORF) caller") (description - "An ORF caller finds stretches of DNA that when translated are not + "An ORF caller finds stretches of DNA that, when translated, are not interrupted by stop codons. OrfM finds and prints these ORFs.") (home-page "https://github.com/wwood/OrfM") (license license:lgpl3+))) -- cgit v1.2.3 From 6b3a1ce8d7426dea57b29067e1190799d65f74ae Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 14 Jan 2016 00:59:35 +0300 Subject: emacs: Fix heading face in "Package Info". MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported by Ludovic Courtès on #guix. This fixes a regression introduced in commit 7171d824. 'insert-text-button' procedure does not allow to override a button face, so a specialized button type should be used instead. * emacs/guix-ui-package.el (guix-package-heading): New button type. (guix-package-info-insert-heading): Use it. --- emacs/guix-ui-package.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index 12bfaeef68..7cf1a7d07f 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -349,6 +349,10 @@ formatted with this string, an action button is inserted.") 'name (button-label btn)) 'add))) +(define-button-type 'guix-package-heading + :supertype 'guix-package-name + 'face 'guix-package-info-heading) + (define-button-type 'guix-package-source :supertype 'guix 'face 'guix-package-info-source @@ -362,8 +366,7 @@ formatted with this string, an action button is inserted.") "Insert package ENTRY heading (name specification) at point." (guix-insert-button (guix-package-entry->name-specification entry) - 'guix-package-name - 'face 'guix-package-info-heading)) + 'guix-package-heading)) (defun guix-package-info-insert-systems (systems entry) "Insert supported package SYSTEMS at point." -- cgit v1.2.3 From 2028a2c9607b407d3686ca5791c604ddec45f8f8 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Wed, 6 Jan 2016 00:09:19 +1000 Subject: import: cran: Move beautify-description to utils module. * guix/import/cran.scm (beautify-description): Move from here... * guix/import/utils.scm: ... to here. --- guix/import/cran.scm | 11 ----------- guix/import/utils.scm | 14 +++++++++++++- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/guix/import/cran.scm b/guix/import/cran.scm index fc2709020a..1c30da89c7 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -136,17 +136,6 @@ empty list when the FIELD cannot be found." (string-any char-set:whitespace item))) (map string-trim-both items)))))) -(define (beautify-description description) - "Improve the package DESCRIPTION by turning a beginning sentence fragment -into a proper sentence and by using two spaces between sentences." - (let ((cleaned (if (string-prefix? "A " description) - (string-append "This package provides a" - (substring description 1)) - description))) - ;; Use double spacing between sentences - (regexp-substitute/global #f "\\. \\b" - cleaned 'pre ". " 'post))) - (define (description->package meta) "Return the `package' s-expression for a CRAN package from the alist META, which was derived from the R package's DESCRIPTION file." diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 0734fa1230..44e004b084 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -37,7 +37,8 @@ string->license license->symbol - snake-case)) + snake-case + beautify-description)) (define (factorize-uri uri version) "Factorize URI, a package tarball URI as a string, such that any occurrences @@ -136,3 +137,14 @@ to in the (guix licenses) module, or #f if there is no such known license." "Return a downcased version of the string STR where underscores are replaced with dashes." (string-join (string-split (string-downcase str) #\_) "-")) + +(define (beautify-description description) + "Improve the package DESCRIPTION by turning a beginning sentence fragment +into a proper sentence and by using two spaces between sentences." + (let ((cleaned (if (string-prefix? "A " description) + (string-append "This package provides a" + (substring description 1)) + description))) + ;; Use double spacing between sentences + (regexp-substitute/global #f "\\. \\b" + cleaned 'pre ". " 'post))) -- cgit v1.2.3 From 869cda545d67ff342924780c045ff1c4efa2fd06 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Wed, 6 Jan 2016 00:17:36 +1000 Subject: import: gem: Beautify description field. * guix/import/gem.scm (gem->guix-package): Use 'beautify-description'. --- guix/import/gem.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/import/gem.scm b/guix/import/gem.scm index c64c4e9374..3c42052f1a 100644 --- a/guix/import/gem.scm +++ b/guix/import/gem.scm @@ -117,7 +117,8 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES." (let ((name (assoc-ref package "name")) (version (assoc-ref package "version")) (hash (assoc-ref package "sha")) - (description (assoc-ref package "info")) + (description (beautify-description + (assoc-ref package "info"))) (home-page (assoc-ref package "homepage_uri")) (dependencies (map (lambda (dep) (let ((name (assoc-ref dep "name"))) -- cgit v1.2.3 From 2d12284d389df5cbe05c7162397b929d9a4dbee6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 14 Jan 2016 15:05:36 +0200 Subject: gnu: gnupg: Add TOFU support. * gnu/packages/gnupg.scm (gnupg)[inputs]: Add sqlite. --- gnu/packages/gnupg.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index aeee440b7e..c17e64d474 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Paul van der Walt -;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015, 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,6 +31,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages compression) + #:use-module (gnu packages databases) #:use-module (gnu packages gtk) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -218,8 +219,9 @@ compatible to GNU Pth.") ("libksba" ,libksba) ("npth" ,npth) ("openldap" ,openldap) - ("zlib" ,zlib) - ("readline" ,readline))) + ("readline" ,readline) + ("sqlite" ,sqlite) + ("zlib" ,zlib))) (arguments `(#:phases (alist-cons-before -- cgit v1.2.3 From 0047d26a220805a99c84d9b87c73e012a63919e1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 14 Jan 2016 14:36:32 +0100 Subject: gnu: bowtie: Update to 2.2.6. * gnu/packages/bioinformatics.scm (bowtie): Update to 2.2.6. [source]: Remove patch; do not set CC and CPP variables. [inputs]: Add "tbb". [arguments]: Pass "prefix" and "WITH_TBB" make flags; remove custom "install" phase. * gnu/packages/patches/bowtie-fix-makefile.patch: Remove file. * gnu-system.am (dist_patch_DATA): Remove patch file. --- gnu-system.am | 1 - gnu/packages/bioinformatics.scm | 38 +++++++++++--------------- gnu/packages/patches/bowtie-fix-makefile.patch | 31 --------------------- 3 files changed, 16 insertions(+), 54 deletions(-) delete mode 100644 gnu/packages/patches/bowtie-fix-makefile.patch diff --git a/gnu-system.am b/gnu-system.am index fa2f038402..dc2631bae1 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -416,7 +416,6 @@ dist_patch_DATA = \ gnu/packages/patches/avidemux-install-to-lib.patch \ gnu/packages/patches/avrdude-fix-libusb.patch \ gnu/packages/patches/bash-completion-directories.patch \ - gnu/packages/patches/bowtie-fix-makefile.patch \ gnu/packages/patches/bigloo-gc-shebangs.patch \ gnu/packages/patches/binutils-ld-new-dtags.patch \ gnu/packages/patches/binutils-loongson-workaround.patch \ diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index a0b7864918..50e1ce714e 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015 Ricardo Wurmus +;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015, 2016 Ben Woodcroft ;;; Copyright © 2015 Pjotr Prins ;;; Copyright © 2015 Andreas Enge @@ -603,7 +603,7 @@ errors at the end of reads.") (define-public bowtie (package (name "bowtie") - (version "2.2.4") + (version "2.2.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/BenLangmead/bowtie2/archive/v" @@ -611,42 +611,36 @@ errors at the end of reads.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "15dnbqippwvhyh9zqjhaxkabk7lm1xbh1nvar1x4b5kwm117zijn")) + "1ssfvymxfrap6f9pf86s9bvsbqdgka4abr2r7j3mgr4w1l289m86")) (modules '((guix build utils))) (snippet '(substitute* "Makefile" - (("^CC = .*$") "CC = gcc") - (("^CPP = .*$") "CPP = g++") ;; replace BUILD_HOST and BUILD_TIME for deterministic build (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"") - (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))) - (patches (list (search-patch "bowtie-fix-makefile.patch"))))) + (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))))) (build-system gnu-build-system) (inputs `(("perl" ,perl) ("perl-clone" ,perl-clone) ("perl-test-deep" ,perl-test-deep) ("perl-test-simple" ,perl-test-simple) - ("python" ,python-2))) + ("python" ,python-2) + ("tbb" ,tbb))) (arguments - '(#:make-flags '("allall") + '(#:make-flags + (list "allall" + "WITH_TBB=1" + (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (alist-delete 'configure (alist-replace - 'install + 'check (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) - (for-each (lambda (file) - (install-file file bin)) - (find-files "." "bowtie2.*")))) - (alist-replace - 'check - (lambda* (#:key outputs #:allow-other-keys) - (system* "perl" - "scripts/test/simple_tests.pl" - "--bowtie2=./bowtie2" - "--bowtie2-build=./bowtie2-build")) - %standard-phases))))) + (system* "perl" + "scripts/test/simple_tests.pl" + "--bowtie2=./bowtie2" + "--bowtie2-build=./bowtie2-build")) + %standard-phases)))) (home-page "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml") (synopsis "Fast and sensitive nucleotide sequence read aligner") (description diff --git a/gnu/packages/patches/bowtie-fix-makefile.patch b/gnu/packages/patches/bowtie-fix-makefile.patch deleted file mode 100644 index 5ac65731cb..0000000000 --- a/gnu/packages/patches/bowtie-fix-makefile.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 4a99b0023bdfbbe486b9649489a32ea184c18c9a Mon Sep 17 00:00:00 2001 -From: Valentin Antonescu -Date: Tue, 2 Dec 2014 11:19:13 -0500 -Subject: [PATCH] Make sure the Mavericks test happens only under Darwin. - ---- - Makefile | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/Makefile b/Makefile -index d74f7c8..a4cdfa7 100644 ---- a/Makefile -+++ b/Makefile -@@ -54,12 +54,11 @@ endif - MACOS = 0 - ifneq (,$(findstring Darwin,$(shell uname))) - MACOS = 1 --endif -- --ifneq (,$(findstring 13,$(shell uname -r))) -- CPP = clang++ -- CC = clang -- EXTRA_FLAGS += -stdlib=libstdc++ -+ ifneq (,$(findstring 13,$(shell uname -r))) -+ CPP = clang++ -+ CC = clang -+ EXTRA_FLAGS += -stdlib=libstdc++ -+ endif - endif - - POPCNT_CAPABILITY ?= 1 -- cgit v1.2.3 From d7786ce9b052dd6716aac1ec63cee9951eaa65a7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 13 Jan 2016 16:23:15 +0100 Subject: gnu: r-sparsem: Add missing "gfortran" input. * gnu/packages/statistics.scm (r-sparsem)[inputs]: Add "gfortran". --- gnu/packages/statistics.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 8bd87582ef..6466af11c0 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Vicente Vera Parra ;;; ;;; This file is part of GNU Guix. @@ -1676,6 +1676,8 @@ worker processes and collect and return the results on the master.") "0s9kab5khk7daqf6nfp1wm1qnhkssnnwnymisfwyk3kz4q5maqfz")))) (properties `((upstream-name . "SparseM"))) + (inputs + `(("gfortran" ,gfortran))) (build-system r-build-system) (home-page "http://www.econ.uiuc.edu/~roger/research/sparse/sparse.html") (synopsis "Sparse linear algebra") -- cgit v1.2.3 From 3141b83d4db74e226a7a6c8a608198128b3eee68 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 13 Jan 2016 16:24:44 +0100 Subject: gnu: r-go-db: Add missing input. * gnu/packages/bioinformatics.scm (r-go-db)[propagated-inputs]: Add "r-annotationdbi". --- gnu/packages/bioinformatics.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 50e1ce714e..3cabb9f528 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3839,6 +3839,8 @@ extracting the desired features in a convenient format.") (properties `((upstream-name . "GO.db"))) (build-system r-build-system) + (propagated-inputs + `(("r-annotationdbi" ,r-annotationdbi))) (home-page "http://bioconductor.org/packages/GO.db") (synopsis "Annotation maps describing the entire Gene Ontology") (description -- cgit v1.2.3 From e90051808badf801050c0034e5c045fec8aef6d2 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 11 Jan 2016 13:24:30 -0500 Subject: gnu: Add version 2.7 variant of python-requests. * gnu/packages/python.scm (python-requests-2.7): New variable. --- gnu/packages/python.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4ab1eede6c..5f6ac799df 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2182,6 +2182,18 @@ compatible install in a way that is very close to the on-disk format.") than Python’s urllib2 library.") (license asl2.0))) +;; Some software requires an older version of Requests, notably Docker +;; Compose. +(define-public python-requests-2.7 + (package (inherit python-requests) + (version "2.7.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "requests" version)) + (sha256 + (base32 + "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir")))))) + (define-public python2-requests (package-with-python2 python-requests)) -- cgit v1.2.3 From ea521b42c219d3dc08bef98cba498e988e76a620 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 11 Jan 2016 13:26:07 -0500 Subject: gnu: Add python-vcversioner. * gnu/packages/python.scm (python-vcversioner, python2-vcversioner): New variables. --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5f6ac799df..91629e819d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2197,6 +2197,30 @@ than Python’s urllib2 library.") (define-public python2-requests (package-with-python2 python-requests)) +(define-public python-vcversioner + (package + (name "python-vcversioner") + (version "2.14.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "vcversioner" version)) + (sha256 + (base32 + "11ivq1bm7v0yb4nsfbv9m7g7lyjn112gbvpjnjz8nv1fx633dm5c")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools))) + (synopsis "Python library for version number discovery") + (description "Vcversioner is a Python library that inspects tagging +information in a variety of version control systems in order to discover +version numbers.") + (home-page "https://github.com/habnabit/vcversioner") + (license isc))) + +(define-public python2-vcversioner + (package-with-python2 python-vcversioner)) + (define-public python-jsonschema (package (name "python-jsonschema") -- cgit v1.2.3 From b3667afbd2c40e3303816452afdfcebefa9d2ea8 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 11 Jan 2016 13:26:47 -0500 Subject: gnu: Update python-jsonschema to 2.5.1. * gnu/packages/python.scm (python-jsonschema): Update to 2.5.1. [inputs]: Add python-vcversioner. --- gnu/packages/python.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 91629e819d..e1009cc2ca 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2224,7 +2224,7 @@ version numbers.") (define-public python-jsonschema (package (name "python-jsonschema") - (version "2.4.0") + (version "2.5.1") (source (origin (method url-fetch) (uri @@ -2233,10 +2233,11 @@ version numbers.") version ".tar.gz")) (sha256 (base32 - "1yik3031ziygvq66rj3mzfqdgxj29sg1bkfc46wsgi7lnbqs560j")))) + "0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools))) + `(("python-setuptools" ,python-setuptools) + ("python-vcversioner" ,python-vcversioner))) (home-page "http://github.com/Julian/jsonschema") (synopsis "Implementation of JSON Schema for Python") (description -- cgit v1.2.3 From 210bf49754f397e229a4e1a81f8d16a52dcdef7a Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 11 Jan 2016 13:27:31 -0500 Subject: gnu: Add python-texttable. * gnu/packages/python.scm (python-texttable, python2-texttable): New variables. --- gnu/packages/python.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e1009cc2ca..4081362f2f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6657,3 +6657,25 @@ the standard library.") (define-public python2-contextlib2 (package-with-python2 python-contextlib2)) + +(define-public python-texttable + (package + (name "python-texttable") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "texttable" version)) + (sha256 + (base32 + "0bkhs4dx9s6g7fpb969hygq56hyz4ncfamlynw72s0n6nqfbd1w5")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; no tests + (home-page "https://github.com/foutaise/texttable/") + (synopsis "Python module for creating simple ASCII tables") + (description "Texttable is a Python module for creating simple ASCII +tables.") + (license lgpl2.1+))) + +(define-public python2-texttable + (package-with-python2 python-texttable)) -- cgit v1.2.3 From 67c52bb3e7fd0b50dc201739049a82a14175f3ee Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 11 Jan 2016 13:28:05 -0500 Subject: gnu: Add python-websocket-client. * gnu/packages/python.scm (python-websocket-client): New variable. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4081362f2f..6b0721b496 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6679,3 +6679,30 @@ tables.") (define-public python2-texttable (package-with-python2 python-texttable)) + +(define-public python-websocket-client + (package + (name "python-websocket-client") + (version "0.34.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/w" + "/websocket-client/websocket_client-" + version ".tar.gz")) + (sha256 + (base32 + "1prdx6d49f1cff17kzj15bnz09palfdgc1m5dkq9jd4mr90n4ak8")))) + (build-system python-build-system) + (native-inputs + `(("python-six" ,python-six))) ; for tests + (inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/liris/websocket-client") + (synopsis "WebSocket client for Python") + (description "The Websocket-client module provides the low level APIs for +WebSocket usage in Python programs.") + (license lgpl2.1+))) + +(define-public python2-websocket-client + (package-with-python2 python-websocket-client)) -- cgit v1.2.3 From d020bfc2df1a9fe2ac765372ab9525f44914c873 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 11 Jan 2016 13:30:10 -0500 Subject: gnu: Add python-docker-py. * gnu/packages/docker.scm: New file. * Makefile.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/docker.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 gnu/packages/docker.scm diff --git a/gnu-system.am b/gnu-system.am index dc2631bae1..1b714e0c49 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -89,6 +89,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/djvu.scm \ gnu/packages/dns.scm \ gnu/packages/docbook.scm \ + gnu/packages/docker.scm \ gnu/packages/doxygen.scm \ gnu/packages/dunst.scm \ gnu/packages/dvtm.scm \ diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm new file mode 100644 index 0000000000..8b75590668 --- /dev/null +++ b/gnu/packages/docker.scm @@ -0,0 +1,52 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 David Thompson +;;; +;;; 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 . + +(define-module (gnu packages docker) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system python) + #:use-module (guix utils) + #:use-module (gnu packages python)) + +(define-public python-docker-py + (package + (name "python-docker-py") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "docker-py" version)) + (sha256 + (base32 + "16ba4xyd46hkj9nkfpz15r8kskl7ljx1afjzchyrhdsrklvzgzim")))) + (build-system python-build-system) + ;; TODO: Tests require a running Docker daemon. + (arguments '(#:tests? #f)) + (inputs + `(("python-requests" ,python-requests) + ("python-setuptools" ,python-setuptools) + ("python-six" ,python-six) + ("python-websocket-client" ,python-websocket-client))) + (home-page "https://github.com/docker/docker-py/") + (synopsis "Python client for Docker") + (description "Docker-Py is a Python client for the Docker container +management tool.") + (license license:asl2.0))) -- cgit v1.2.3 From b42c9c812403074ac0eaa57f9293972a5765e213 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 11 Jan 2016 13:35:51 -0500 Subject: gnu: Add python-dockerpty. * gnu/packages/docker.scm (python-dockerpty): New variable. --- gnu/packages/docker.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 8b75590668..f2164213d4 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -50,3 +50,24 @@ (description "Docker-Py is a Python client for the Docker container management tool.") (license license:asl2.0))) + +(define-public python-dockerpty + (package + (name "python-dockerpty") + (version "0.3.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "dockerpty" version)) + (sha256 + (base32 + "0za6rr349641wv76ww9l3zcic2xyxrirlxpnzl4296h897648455")))) + (build-system python-build-system) + (native-inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/d11wtq/dockerpty") + (synopsis "Python library to use the pseudo-TTY of a Docker container") + (description "Docker PTY provides the functionality needed to operate the +pseudo-terminal (PTY) allocated to a Docker container using the Python +client.") + (license license:asl2.0))) -- cgit v1.2.3 From df1f1d693665bdbaeade86632636377dfe0d1767 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 11 Jan 2016 13:36:26 -0500 Subject: gnu: Add docker-compose. * gnu/packages/docker.scm (docker-compose): New variable. --- gnu/packages/docker.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index f2164213d4..06b72ee376 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -71,3 +71,37 @@ management tool.") pseudo-terminal (PTY) allocated to a Docker container using the Python client.") (license license:asl2.0))) + +(define-public docker-compose + (package + (name "docker-compose") + (version "1.5.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "docker-compose" version)) + (sha256 + (base32 + "0ksg7hm2yvc977968dixxisrhcmvskzpcx3pz0v1kazrdqp7xakr")))) + (build-system python-build-system) + ;; TODO: Tests require running Docker daemon. + (arguments '(#:tests? #f)) + (inputs + `(("python-docker-py" ,python-docker-py) + ("python-dockerpty" ,python-dockerpty) + ("python-docopt" ,python-docopt) + ("python-enum34" ,python-enum34) + ("python-jsonschema" ,python-jsonschema) + ("python-pyyaml" ,python-pyyaml) + ("python-requests" ,python-requests-2.7) + ("python-setuptools" ,python-setuptools) + ("python-six" ,python-six) + ("python-texttable" ,python-texttable) + ("python-websocket-client" ,python-websocket-client))) + (home-page "https://www.docker.com/") + (synopsis "Multi-container orchestration for Docker") + (description "Docker Compose is a tool for defining and running +multi-container Docker applications. A Compose file is used to configure an +application’s services. Then, using a single command, the containers are +created and all the services are started as specified in the configuration.") + (license license:asl2.0))) -- cgit v1.2.3 From 6d139e53b596ca154800d154b37fcd22741c629c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 14 Jan 2016 10:34:16 -0500 Subject: gnu: openssh: Update to 7.1p2 [fixes CVE-0216-0778]. * gnu/packages/ssh.scm (openssh): Update to 7.1p2. --- gnu/packages/ssh.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 76032f9b62..d4bf29cc20 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Andreas Enge -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. @@ -111,7 +111,7 @@ a server that supports the SSH-2 protocol.") (define-public openssh (package (name "openssh") - (version "7.1p1") + (version "7.1p2") (source (origin (method url-fetch) (uri (let ((tail (string-append name "-" version ".tar.gz"))) @@ -122,7 +122,7 @@ a server that supports the SSH-2 protocol.") (string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" tail)))) (sha256 (base32 - "0a44mnr8bvw41zg83xh4sb55d8nds29j95gxvxk5qg863lnns2pw")))) + "1gbbvszz74lkc7b2mqr3ccgpm65zj0k5h7a2ssh0c7pjvhjg0xfx")))) (build-system gnu-build-system) (inputs `(("groff" ,groff) ("openssl" ,openssl) -- cgit v1.2.3 From 1beec63ac8278b9114431160fbc5421bc60329d5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 15 Jan 2016 02:45:58 -0500 Subject: Revert "gnu: openssh: Update to 7.1p2 [fixes CVE-0216-0778]." This reverts commit 6d139e53b596ca154800d154b37fcd22741c629c. --- gnu/packages/ssh.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index d4bf29cc20..76032f9b62 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Andreas Enge -;;; Copyright © 2014, 2015, 2016 Mark H Weaver +;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. @@ -111,7 +111,7 @@ a server that supports the SSH-2 protocol.") (define-public openssh (package (name "openssh") - (version "7.1p2") + (version "7.1p1") (source (origin (method url-fetch) (uri (let ((tail (string-append name "-" version ".tar.gz"))) @@ -122,7 +122,7 @@ a server that supports the SSH-2 protocol.") (string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" tail)))) (sha256 (base32 - "1gbbvszz74lkc7b2mqr3ccgpm65zj0k5h7a2ssh0c7pjvhjg0xfx")))) + "0a44mnr8bvw41zg83xh4sb55d8nds29j95gxvxk5qg863lnns2pw")))) (build-system gnu-build-system) (inputs `(("groff" ,groff) ("openssl" ,openssl) -- cgit v1.2.3 From 45f2ffb48cf58fcec9ba43b742921cab678303ba Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 14 Jan 2016 10:34:16 -0500 Subject: gnu: openssh: Update to 7.1p2. * gnu/packages/ssh.scm (openssh): Update to 7.1p2. --- gnu/packages/ssh.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 76032f9b62..d4bf29cc20 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Andreas Enge -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Efraim Flashner ;;; ;;; This file is part of GNU Guix. @@ -111,7 +111,7 @@ a server that supports the SSH-2 protocol.") (define-public openssh (package (name "openssh") - (version "7.1p1") + (version "7.1p2") (source (origin (method url-fetch) (uri (let ((tail (string-append name "-" version ".tar.gz"))) @@ -122,7 +122,7 @@ a server that supports the SSH-2 protocol.") (string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" tail)))) (sha256 (base32 - "0a44mnr8bvw41zg83xh4sb55d8nds29j95gxvxk5qg863lnns2pw")))) + "1gbbvszz74lkc7b2mqr3ccgpm65zj0k5h7a2ssh0c7pjvhjg0xfx")))) (build-system gnu-build-system) (inputs `(("groff" ,groff) ("openssl" ,openssl) -- cgit v1.2.3 From f5ca44b86e26bcfc8c32c5d21b3ba76185148294 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 14 Jan 2016 11:03:49 +0100 Subject: gnu: glade: Update to 3.18.5. * gnu/packages/gnome.scm (glade): Update to 3.18.5. [arguments]: Disable tests; add "fix-docbook" phase. [inputs]: Replace "gtk+-2" with "gtk+". [native-inputs]: Add "itstool", "libxslt", "docbook-xml", "docbook-xsl"; replace "python" with "python-2". --- gnu/packages/gnome.scm | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e88ee8d904..9ce750ddef 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -751,22 +751,39 @@ API add-ons to make GTK+ widgets OpenGL-capable.") (define-public glade3 (package (name "glade") - (version "3.8.5") + (version "3.18.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" - name "3-" version ".tar.xz")) + name "-" version ".tar.xz")) (sha256 (base32 - "0d97df5pfkrh5670a98r3d3w8zlbh1jcax6cvq6j6a20vzjgd9aq")))) + "0lk4nvd5s8px9i0pbq7bncikgn2lpx7vjh787d3cvzpvwx3cxnzc")))) (build-system gnu-build-system) + (arguments + `(#:tests? #f ; needs X, GL, and software rendering + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-docbook + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "man/Makefile.in" + (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl") + (string-append (assoc-ref inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl) + "/manpages/docbook.xsl"))) + #t))))) (inputs - `(("gtk+" ,gtk+-2) + `(("gtk+" ,gtk+) ("libxml2" ,libxml2))) (native-inputs `(("intltool" ,intltool) - ("python" ,python) + ("itstool" ,itstool) + ("libxslt" ,libxslt) ;for xsltproc + ("docbook-xml" ,docbook-xml-4.2) + ("docbook-xsl" ,docbook-xsl) + ("python" ,python-2) ("pkg-config" ,pkg-config))) (home-page "https://glade.gnome.org") (synopsis "GTK+ rapid application development tool") -- cgit v1.2.3 From 5c6eea2ad10838f702fc1bbec2bfe711f0c6286a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 29 Dec 2015 23:57:00 -0500 Subject: gnu: Add python-atomicwrites. * gnu/packages/python.scm (python-atomicwrites): New variable. --- gnu/packages/python.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6b0721b496..dd9878fa29 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6706,3 +6706,20 @@ WebSocket usage in Python programs.") (define-public python2-websocket-client (package-with-python2 python-websocket-client)) + +(define-public python-atomicwrites + (package + (name "python-atomicwrites") + (version "0.1.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "atomicwrites" version)) + (sha256 + (base32 + "13nwk0gw0yb61pnf5vxs3fvhav6q3zrf08x9ggc93bnk5fsssx1j")))) + (build-system python-build-system) + (synopsis "Atomic file writes in Python") + (description "Library for atomic file writes using platform dependent tools +for atomic filesystem operations.") + (home-page "https://github.com/untitaker/python-atomicwrites") + (license license:expat))) -- cgit v1.2.3 From 561bb3cb1af2dd499c8fa38441d15ea6bafa2177 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 9 Dec 2015 19:09:19 -0500 Subject: gnu: Add python-requests-toolbelt. * gnu/packages/python.scm (python-requests-toolbelt): New variable. --- gnu/packages/python.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index dd9878fa29..cd02504ad8 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6723,3 +6723,22 @@ WebSocket usage in Python programs.") for atomic filesystem operations.") (home-page "https://github.com/untitaker/python-atomicwrites") (license license:expat))) + +(define-public python-requests-toolbelt + (package + (name "python-requests-toolbelt") + (version "0.5.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "requests-toolbelt" version)) + (sha256 + (base32 + "1kbms1s52dhb98vbpaprr15b0ijdbqp500lpfsyjccpd8cjkyngk")))) + (build-system python-build-system) + (propagated-inputs + `(("python-requests" ,python-requests))) + (synopsis "Extensions to python-requests") + (description "This is a toolbelt of useful classes and functions to be used +with python-requests.") + (home-page "https://github.com/sigmavirus24/requests-toolbelt") + (license asl2.0))) -- cgit v1.2.3 From d1deb90b3f9d6cb0d0f68b8bd096db2a5053a464 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 9 Dec 2015 19:10:47 -0500 Subject: gnu: Add python-click-threading. * gnu/packages/python.scm (python-click-threading): New variable. --- gnu/packages/python.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index cd02504ad8..30a6059793 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6742,3 +6742,22 @@ for atomic filesystem operations.") with python-requests.") (home-page "https://github.com/sigmavirus24/requests-toolbelt") (license asl2.0))) + +(define-public python-click-threading + (package + (name "python-click-threading") + (version "0.1.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "click-threading" version)) + (sha256 + (base32 + "0jmrv4334lfxa2ss53c06dafdwqbk1pb3ihd26izn5igw1bm8145")))) + (build-system python-build-system) + (propagated-inputs + `(("python-click" ,python-click))) + (synopsis "Utilities for multithreading in Click") + (description "This package provides utilities for multithreading in Click +applications.") + (home-page "https://github.com/click-contrib/click-threading") + (license license:expat))) -- cgit v1.2.3 From 7b17cab9020c716b4cb6a2bf9f6e001722c704c1 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 9 Dec 2015 19:11:19 -0500 Subject: gnu: Add python-click-log. * gnu/packages/python.scm (python-click-log): New variable. --- gnu/packages/python.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 30a6059793..dfd554096e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6761,3 +6761,22 @@ with python-requests.") applications.") (home-page "https://github.com/click-contrib/click-threading") (license license:expat))) + +(define-public python-click-log + (package + (name "python-click-log") + (version "0.1.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "click-log" version)) + (sha256 + (base32 + "1z3jdwjmwax159zrnyx830xa968rfqrpkm04ad5xqyh0269ydiqb")))) + (build-system python-build-system) + (propagated-inputs + `(("python-click" ,python-click))) + (synopsis "Logging for click applications") + (description "This package provides a Python library for logging Click +applications.") + (home-page "https://github.com/click-contrib/click-log") + (license license:expat))) -- cgit v1.2.3 From 7b3a4ee4c38d4932a560fb4621667ef8b745cad1 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 29 Dec 2015 06:04:15 -0500 Subject: gnu: Add python-apipkg. * gnu/packages/python.scm (python-apipkg): New variable. --- gnu/packages/python.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index dfd554096e..f848395d06 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6780,3 +6780,25 @@ applications.") applications.") (home-page "https://github.com/click-contrib/click-log") (license license:expat))) + +(define-public python-apipkg + (package + (name "python-apipkg") + (version "1.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "apipkg" version)) + (sha256 + (base32 + "1iks5701qnp3dlr3q1d9qm68y2plp2m029irhpz92a44psfkjf1f")))) + (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) + (propagated-inputs + `(("python-pytest" ,python-pytest))) + (synopsis "Namespace control and lazy-import mechanism") + (description "With apipkg you can control the exported namespace of a Python +package and greatly reduce the number of imports for your users. It is a small +pure Python module that works on virtually all Python versions.") + (home-page "https://bitbucket.org/hpk42/apipkg") + (license license:expat))) -- cgit v1.2.3 From 848964fe11e26f7d05301b0d496099e960834c5d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 29 Dec 2015 05:59:46 -0500 Subject: gnu: Add python-execnet. * gnu/packages/python.scm (python-execnet): New variable. --- gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f848395d06..6f83e3df20 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6802,3 +6802,31 @@ package and greatly reduce the number of imports for your users. It is a small pure Python module that works on virtually all Python versions.") (home-page "https://bitbucket.org/hpk42/apipkg") (license license:expat))) + +(define-public python-execnet + (package + (name "python-execnet") + (version "1.4.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "execnet" version)) + (sha256 + (base32 + "1rpk1vyclhg911p3hql0m0nrpq7q7mysxnaaw6vs29cpa6kx8vgn")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm))) + (propagated-inputs + `(("python-apipkg" ,python-apipkg))) + (synopsis "Rapid multi-Python deployment") + (description "Execnet provides a share-nothing model with +channel-send/receive communication for distributing execution across many +Python interpreters across version, platform and network barriers. It has a +minimal and fast API targetting the following uses: +@enumerate +@item distribute tasks to (many) local or remote CPUs +@item write and deploy hybrid multi-process applications +@item write scripts to administer multiple environments +@end enumerate") + (home-page "http://codespeak.net/execnet/") + (license license:expat))) -- cgit v1.2.3 From 6720dbb49f2ac8fdffa68a9816a79a4c39b56f65 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 29 Dec 2015 05:42:16 -0500 Subject: gnu: Add python-pytest-cache. * gnu/packages/python.scm (python-pytest-cache): New variable. --- gnu/packages/python.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6f83e3df20..6d9289b3db 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6830,3 +6830,23 @@ minimal and fast API targetting the following uses: @end enumerate") (home-page "http://codespeak.net/execnet/") (license license:expat))) + +;;; The software provided by this package was integrated into pytest 2.8. +(define-public python-pytest-cache + (package + (name "python-pytest-cache") + (version "1.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest-cache" version)) + (sha256 + (base32 + "1a873fihw4rhshc722j4h6j7g3nj7xpgsna9hhg3zn6ksknnhx5y")))) + (build-system python-build-system) + (propagated-inputs + `(("python-execnet" ,python-execnet))) + (synopsis "Py.test plugin with mechanisms for caching across test runs") + (description "The pytest-cache plugin provides tools to rerun failures from +the last py.test invocation.") + (home-page "https://bitbucket.org/hpk42/pytest-cache/") + (license license:expat))) -- cgit v1.2.3 From d7e729fe08284b15aee074eb61c964953c04d0a2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 30 Dec 2015 00:11:38 -0500 Subject: gnu: Add python-pytest-localserver. * gnu/packages/python.scm (python-pytest-localserver): New variable. --- gnu/packages/python.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6d9289b3db..d45db218e1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6850,3 +6850,33 @@ minimal and fast API targetting the following uses: the last py.test invocation.") (home-page "https://bitbucket.org/hpk42/pytest-cache/") (license license:expat))) + +(define-public python-pytest-localserver + (package + (name "python-pytest-localserver") + (version "0.3.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest-localserver" version ".zip")) + (sha256 + (base32 + "050q505a7gnsz7vqidw0w5dvxjb2flzi7z734agpjzmsl85c2bcx")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "py.test" "--genscript=runtests.py")) + (zero? (system* "py.test"))))))) + (native-inputs + `(("unzip" ,unzip))) + (propagated-inputs + `(("python-pytest" ,python-pytest) + ("python-requests" ,python-requests) + ("python-six" ,python-six) + ("python-werkzeug" ,python-werkzeug))) + (synopsis "Py.test plugin to test server connections locally") + (description "Pytest-localserver is a plugin for the pytest testing +framework which enables you to test server connections locally.") + (home-page "https://pypi.python.org/pypi/pytest-localserver") + (license license:expat))) -- cgit v1.2.3 From 28cecbb7ccbb87593d5f81b4ab0a7d32477b10f4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 29 Dec 2015 06:09:39 -0500 Subject: gnu: Add python-wsgi-intercept. * gnu/packages/python.scm (python-wsgi-intercept): New variable. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d45db218e1..9bc8b8dfef 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6880,3 +6880,30 @@ the last py.test invocation.") framework which enables you to test server connections locally.") (home-page "https://pypi.python.org/pypi/pytest-localserver") (license license:expat))) + +(define-public python-wsgi-intercept + (package + (name "python-wsgi-intercept") + (version "0.10.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "wsgi_intercept" version)) + (sha256 + (base32 + "0xyfchacywb1mql84270mcidsqc5ssyspd18yacjk82x2xc68h0r")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-httplib2" ,python-httplib2) + ("python-requests" ,python-requests))) + (synopsis "Puts a WSGI application in place of a real URI for testing") + (description "Wsgi_intercept installs a WSGI application in place of a real +URI for testing. Testing a WSGI application normally involves starting a +server at a local host and port, then pointing your test code to that address. +Instead, this library lets you intercept calls to any specific host/port +combination and redirect them into a WSGI application importable by your test +program. Thus, you can avoid spawning multiple processes or threads to test +your Web app.") + (home-page "https://github.com/cdent/wsgi-intercept") + (license license:expat))) -- cgit v1.2.3 From 89b8a5516fe3c72befc256652cfb27cb41a4f977 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 30 Dec 2015 00:13:53 -0500 Subject: gnu: Add python-pytest-xprocess. * gnu/packages/python.scm (python-pytest-xprocess): New variable. --- gnu/packages/python.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9bc8b8dfef..7b400d11cc 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6907,3 +6907,24 @@ program. Thus, you can avoid spawning multiple processes or threads to test your Web app.") (home-page "https://github.com/cdent/wsgi-intercept") (license license:expat))) + +(define-public python-pytest-xprocess + (package + (name "python-pytest-xprocess") + (version "0.9.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest-xprocess" version)) + (sha256 + (base32 + "17zlql1xqw3ywcgwwbqmw633aly99lab12hm02asr8awvg5603pp")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-cache" ,python-pytest-cache) + ("python-psutil" ,python-psutil))) + (synopsis "Pytest plugin to manage external processes across test runs") + (description "Pytest-xprocess is an experimental py.test plugin for managing +processes across test runs.") + (home-page "https://bitbucket.org/pytest-dev/pytest-xprocess") + (license license:expat))) -- cgit v1.2.3 From f75bbb028a5f63c62136fd6345fa146bcb038691 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 30 Dec 2015 00:15:35 -0500 Subject: gnu: Add radicale. * gnu/packages/dav.scm (radicale): New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/dav.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 gnu/packages/dav.scm diff --git a/gnu-system.am b/gnu-system.am index 1b714e0c49..543a825923 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -80,6 +80,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/databases.scm \ gnu/packages/datamash.scm \ gnu/packages/datastructures.scm \ + gnu/packages/dav.scm \ gnu/packages/dc.scm \ gnu/packages/debug.scm \ gnu/packages/dejagnu.scm \ diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm new file mode 100644 index 0000000000..b22aff6580 --- /dev/null +++ b/gnu/packages/dav.scm @@ -0,0 +1,50 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Leo Famulari +;;; +;;; 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 . + +(define-module (gnu packages dav) + #:use-module (guix build-system python) + #:use-module (guix download) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (gnu packages python)) + +(define-public radicale + (package + (name "radicale") + (version "1.1.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "Radicale" version)) + (sha256 + (base32 + "1c5lv8qca21mndkx350wxv34qypqh6gb4rhzms4anr642clq3jg2")))) + (build-system python-build-system) + (propagated-inputs + ;; TODO: Add python-pam + `(("python-requests" ,python-requests))) + (synopsis "Basic CalDAV and CardDAV server") + (description "Radicale is a CalDAV and CardDAV server for UNIX-like +platforms. Calendars and address books are available for both local and remote +access, possibly limited through authentication policies. They can be viewed +and edited by calendar and contact clients on mobile phones or computers. + +Radicale intentionally does not fully comply with the CalDAV and CardDAV RFCs. +Instead, it supports the CalDAV and CardDAV implementations of popular +clients.") + (home-page "http://radicale.org/") + (license gpl3+))) -- cgit v1.2.3 From a2f6a3d502768e58b12a64943994dd2102b6ff91 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 30 Dec 2015 00:31:21 -0500 Subject: gnu: Add vdirsyncer. * gnu/packages/dav.scm (vdirsyncer): New variable. --- gnu/packages/dav.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index b22aff6580..f13d013d50 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -48,3 +48,61 @@ Instead, it supports the CalDAV and CardDAV implementations of popular clients.") (home-page "http://radicale.org/") (license gpl3+))) + +(define-public vdirsyncer + (package + (name "vdirsyncer") + (version "0.7.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "vdirsyncer" version)) + (sha256 + (base32 + "0dvar4k95n689fgw5gy19mb7ggaw32c8j2gbglr33wn7pbxc2l9z")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "DAV_SERVER" "radicale") + (setenv "REMOTESTORAGE_SERVER" "skip") + (zero? (system* "py.test")))) + ;; vdirsyncer requires itself to be installed in order to build + ;; the manpage. + (add-after 'install 'manpage + (lambda* (#:key outputs #:allow-other-keys) + (setenv "PYTHONPATH" + (string-append + (getenv "PYTHONPATH") + ":" (assoc-ref outputs "out"))) + (zero? (system* "make" "--directory=docs/" "man")) + (install-file + "docs/_build/man/vdirsyncer.1" + (string-append + (assoc-ref outputs "out") + "/share/man/man1"))))))) + (native-inputs + `(("python-oauthlib" ,python-oauthlib) + ("python-setuptools-scm" ,python-setuptools-scm) + ("python-sphinx" ,python-sphinx) + ;; Required for testing + ("python-pytest" ,python-pytest) + ("python-pytest-localserver" ,python-pytest-localserver) + ("python-pytest-xprocess" ,python-pytest-xprocess) + ("python-wsgi-intercept" ,python-wsgi-intercept) + ("radicale" ,radicale))) + (propagated-inputs + `(("python-atomicwrites" ,python-atomicwrites) + ("python-click" ,python-click) + ("python-click-log" ,python-click-log) + ("python-click-threading" ,python-click-threading) + ("python-lxml" ,python-lxml) ; which one? + ("python-requests-toolbelt" ,python-requests-toolbelt))) + (synopsis "Synchronize calendars and contacts") + (description "Vdirsyncer synchronizes your calendars and addressbooks +between two storage locations. The most popular purpose is to +synchronize a CalDAV or CardDAV server with a local folder or file. The +local data can then be accessed via a variety of programs, none of which +have to know or worry about syncing to a server.") + (home-page "https://github.com/untitaker/vdirsyncer") + (license expat))) -- cgit v1.2.3 From 5c299bf016b822997c012db988e73fcaef113321 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 9 Dec 2015 19:11:46 -0500 Subject: gnu: Add python-icalendar. * gnu/packages/python.scm (python-icalendar): New variable. --- gnu/packages/python.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7b400d11cc..0eb3c85a80 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6928,3 +6928,23 @@ your Web app.") processes across test runs.") (home-page "https://bitbucket.org/pytest-dev/pytest-xprocess") (license license:expat))) + +(define-public python-icalendar + (package + (name "python-icalendar") + (version "3.9.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "icalendar" version)) + (sha256 + (base32 + "0fhrczdj3jxy5bvswphp3vys7vwv5c9bpwg7asykqwa3z6253q6q")))) + (build-system python-build-system) + (propagated-inputs + `(("python-dateutil-2" ,python-dateutil-2) + ("python-pytz" ,python-pytz))) + (synopsis "Python library for parsing iCalendar files") + (description "The icalendar package is a parser/generator of iCalendar +files for use with Python.") + (home-page "https://github.com/collective/icalendar") + (license bsd-2))) -- cgit v1.2.3 From 6bbbb53eeb3f178efbff72ed0bb279fa02d31a7c Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 9 Dec 2015 20:07:55 -0500 Subject: gnu: Add python-sphinxcontrib-newsfeed. * gnu/packages/python.scm (python-sphinxcontrib-newsfeed): New variable. --- gnu/packages/python.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0eb3c85a80..2e10233e5b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6948,3 +6948,23 @@ processes across test runs.") files for use with Python.") (home-page "https://github.com/collective/icalendar") (license bsd-2))) + +(define-public python-sphinxcontrib-newsfeed + (package + (name "python-sphinxcontrib-newsfeed") + (version "0.1.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "sphinxcontrib-newsfeed" version)) + (sha256 + (base32 + "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p")))) + (build-system python-build-system) + (propagated-inputs + `(("python-docutils" ,python-docutils) + ("python-sphinx" ,python-sphinx))) + (synopsis "News Feed extension for Sphinx") + (description "Sphinxcontrib-newsfeed is an extension for adding a simple +Blog, News or Announcements section to a Sphinx website.") + (home-page "https://bitbucket.org/prometheus/sphinxcontrib-newsfeed") + (license bsd-2))) -- cgit v1.2.3 From 226d333103dd648b0efa86345da751abb763b6a4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 29 Dec 2015 06:11:33 -0500 Subject: gnu: Update python-tzlocal to 1.2. * gnu/packages/python.scm (python-tzlocal): Update to 1.2. [source]: Use pypi-uri. [arguments]: Remove the custom 'unpack phase. [native-inputs]: Remove unzip, python-setuptools. [propagated-inputs]: Add python-pytz. --- gnu/packages/python.scm | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2e10233e5b..32da247bff 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1014,31 +1014,16 @@ doing practical, real world data analysis in Python.") (define-public python-tzlocal (package (name "python-tzlocal") - (version "1.1.1") + (version "1.2") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/t/" - "tzlocal/tzlocal-" version ".zip")) + (uri (pypi-uri "tzlocal" version)) (sha256 (base32 - "1m3y918c3chf41fwg2bx4w42bqsjzn3dyvvcmwwy13c8gj6zssv9")))) + "12wsw2fl3adrqrwghasld57bhqdrzn0crblqrci1p5acd0ni53s3")))) (build-system python-build-system) - (native-inputs - `(("unzip" ,unzip) - ("python-setuptools" ,python-setuptools))) - (inputs `(("python-pytz" ,python-pytz))) - (arguments - `(#:phases - (alist-replace - 'unpack - (lambda _ - (let ((unzip (string-append (assoc-ref %build-inputs "unzip") - "/bin/unzip")) - (source (assoc-ref %build-inputs "source"))) - (and (zero? (system* unzip source)) - (chdir (string-append "tzlocal-" ,version))))) - %standard-phases))) + (propagated-inputs `(("python-pytz" ,python-pytz))) (home-page "https://github.com/regebro/tzlocal") (synopsis "Local timezone information for Python") -- cgit v1.2.3 From b97c1bfd5675a4465f006d4c36f8953b005e40b8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 3 Jan 2016 14:07:33 -0500 Subject: gnu: python-urwid: Disable failing test test_remove_watch_file. * gnu/packages/python.scm (python-urwid)[arguments]: Add 'disable-failing-test' phase. [source]: Use pypi-uri. --- gnu/packages/python.scm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 32da247bff..c3e9f42ec1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4361,13 +4361,22 @@ and written in Python.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/u/urwid/urwid-" - version ".tar.gz")) + (uri (pypi-uri "urwid" version)) (sha256 (base32 "18mb0yy94sjc434rd61m2sfnw27sa0nyrszpj5a9r9zh7fnlzw19")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Disable failing test. Bug filed upstream: + ;; https://github.com/wardi/urwid/issues/164 + ;; TODO: check again for python-urwid > 1.3.0 or python > 3.4.3. + (add-after 'unpack 'disable-failing-test + (lambda _ + (substitute* "urwid/tests/test_event_loops.py" + (("test_remove_watch_file") + "disable_remove_watch_file"))))))) (native-inputs `(("python-setuptools" ,python-setuptools))) (home-page "http://urwid.org") (synopsis "Console user interface library for Python") -- cgit v1.2.3 From 78e6c4a86289bba0406facc3548a3992a58ba52f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 30 Dec 2015 01:08:22 -0500 Subject: gnu: Add khal. * gnu/packages/calendar.scm (khal): New variable. --- gnu/packages/calendar.scm | 77 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 7e87fbbfe4..2e4481f94b 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson +;;; Copyright © 2015 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,9 +22,16 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build utils) #:use-module (guix build-system cmake) + #:use-module (guix build-system python) + #:use-module (gnu packages base) + #:use-module (gnu packages databases) + #:use-module (gnu packages dav) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages icu4c) - #:use-module (gnu packages perl)) + #:use-module (gnu packages perl) + #:use-module (gnu packages python)) (define-public libical (package @@ -50,3 +58,70 @@ "Libical is an implementation of the iCalendar protocols and protocol data units.") (license lgpl2.1))) + +(define-public khal + (package + (name "khal") + (version "0.7.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "khal" version)) + (sha256 + (base32 + "00llxj7cv31mjsx0j6zxmyi9s1q20yvfkn025xcy8cv1ylfwic66")) + (modules '((guix build utils))) + ;; Patch broken path in 'doc' Makefile. + ;; Patch sent upstream: https://github.com/geier/khal/pull/307 + (snippet + '(substitute* "doc/source/Makefile" + (("../../../khal/khal/settings/khal.spec") + "../../khal/settings/khal.spec" ))))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + ;; Bug reported: https://github.com/geier/khal/issues/309 + (add-after 'unpack 'disable-test + (lambda _ + (substitute* "tests/khalendar_test.py" + (("test_only_update_old_event") + "disabled_only_update_old_event")))) + ;; Building the manpage requires khal to be installed. + (add-after 'install 'manpage + (lambda* (#:key outputs #:allow-other-keys) + (setenv "PYTHONPATH" + (string-append + (getenv "PYTHONPATH") ":" (assoc-ref outputs "out"))) + (zero? (system* "make" "--directory=doc/" "man")) + (install-file + "doc/build/man/khal.1" + (string-append (assoc-ref outputs "out") "/share/man/man1")))) + ;; The tests require us to choose a timezone. + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + (setenv "TZ" + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo/Zulu")) + (zero? (system* "py.test" "tests"))))))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-setuptools-scm" ,python-setuptools-scm) + ;; Required for tests + ("tzdata" ,tzdata) + ;; Required to build manpage + ("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed) + ("python-sphinx" ,python-sphinx))) + (inputs + `(("sqlite" ,sqlite))) + (propagated-inputs + `(("python-configobj" ,python-configobj) + ("python-dateutil-2" ,python-dateutil-2) + ("python-icalendar" ,python-icalendar) + ("python-tzlocal" ,python-tzlocal) + ("python-urwid" ,python-urwid) + ("python-pyxdg" ,python-pyxdg) + ("vdirsyncer" ,vdirsyncer))) + (synopsis "Console calendar program") + (description "Khal is a standards based console calendar program, +able to synchronize with CalDAV servers through vdirsyncer.") + (home-page "http://lostpackets.de/khal/") + (license expat))) -- cgit v1.2.3 From 2216e15cc310a52026adb3542897b4221c793d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Wed, 13 Jan 2016 09:21:56 +0800 Subject: gnu: Add python-args. * gnu/packages.scm (python-args, python2-args): New variables. --- gnu/packages/python.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c3e9f42ec1..40f086432f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6962,3 +6962,25 @@ files for use with Python.") Blog, News or Announcements section to a Sphinx website.") (home-page "https://bitbucket.org/prometheus/sphinxcontrib-newsfeed") (license bsd-2))) + +(define-public python-args + (package + (name "python-args") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "args" version)) + (sha256 + (base32 + "057qzi46h5dmxdqknsbrssn78lmqjlnm624iqdhrnpk26zcbi1d7")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/kennethreitz/args") + (synopsis "Command-line argument parser") + (description + "This library provides a Python module to parse command-line arguments.") + (license bsd-3))) + +(define-public python2-args + (package-with-python2 python-args)) -- cgit v1.2.3 From c06a3de93a98ba3e5ca67d9fa283e2190ef9fe09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Wed, 13 Jan 2016 09:23:05 +0800 Subject: gnu: Add python-clint. * gnu/packages/python.scm (python-clint, python2-clint): New variables. --- gnu/packages/python.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 40f086432f..b9de9cc5f5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6984,3 +6984,28 @@ Blog, News or Announcements section to a Sphinx website.") (define-public python2-args (package-with-python2 python-args)) + +(define-public python-clint + (package + (name "python-clint") + (version "0.5.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "clint" version)) + (sha256 + (base32 + "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5")))) + (build-system python-build-system) + (inputs + `(("python-args" ,python-args) + ("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/kennethreitz/clint") + (synopsis "Command-line interface tools") + (description + "Clint is a Python module filled with a set of tools for developing +command-line applications, including tools for colored and indented +output, progress bar display, and pipes.") + (license isc))) + +(define-public python2-clint + (package-with-python2 python-clint)) -- cgit v1.2.3 From 4ecdeef8aed9e0dc0e338c205773f11249dcb238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Wed, 13 Jan 2016 09:23:43 +0800 Subject: gnu: Add python-astor. * gnu/packages/python.scm (python-astor, python2-astor): New variables. --- gnu/packages/python.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b9de9cc5f5..84e93d9ab3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7009,3 +7009,26 @@ output, progress bar display, and pipes.") (define-public python2-clint (package-with-python2 python-clint)) + +(define-public python-astor + (package + (name "python-astor") + (version "0.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "astor" version)) + (sha256 + (base32 + "1fdafq5hkis1fxqlmhw0sn44zp2ar46nxhbc22cvwg7hsd8z5gsa")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/berkerpeksag/astor") + (synopsis "Read and write Python ASTs") + (description + "Astor is designed to allow easy manipulation of Python source via the +Abstract Syntax Tree.") + (license bsd-3))) + +(define-public python2-astor + (package-with-python2 python-astor)) -- cgit v1.2.3 From e224b7d0bdfc58e251ba57f03c1ff74c7b4c2c62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Wed, 13 Jan 2016 09:24:15 +0800 Subject: gnu: Add python-rply. * gnu/packages/python.scm (python-rply, python2-rply): New variables. --- gnu/packages/python.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 84e93d9ab3..ee6da2cdbf 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7032,3 +7032,28 @@ Abstract Syntax Tree.") (define-public python2-astor (package-with-python2 python-astor)) + +(define-public python-rply + (package + (name "python-rply") + (version "0.7.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "rply" version)) + (sha256 + (base32 + "12rp1d9ba7nvd5rhaxi6xzx1rm67r1k1ylsrkzhpwnphqpb06cvj")))) + (build-system python-build-system) + (inputs + `(("python-appdirs" ,python-appdirs) + ("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/alex/rply") + (synopsis "Parser generator for Python") + (description + "This package provides a pure Python based parser generator, that also +works with RPython. It is a more-or-less direct port of David Bazzley's PLY, +with a new public API, and RPython support.") + (license bsd-3))) + +(define-public python2-rply + (package-with-python2 python-rply)) -- cgit v1.2.3 From c3e919d7a07dfe0b135eac8c2801d37587c47090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Wed, 13 Jan 2016 09:24:39 +0800 Subject: gnu: Add python-hy. * gnu/packages/python.scm (python-hy, python2-hy): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ee6da2cdbf..cda995c440 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7057,3 +7057,30 @@ with a new public API, and RPython support.") (define-public python2-rply (package-with-python2 python-rply)) + +(define-public python-hy + (package + (name "python-hy") + (version "0.11.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "hy" version)) + (sha256 + (base32 + "1msqv747iz12r73mz4qvsmlwkddwjvrahlrk7ysrcz07h7dsscxs")))) + (build-system python-build-system) + (inputs + `(("python-astor" ,python-astor) + ("python-clint" ,python-clint) + ("python-rply" ,python-rply) + ("python-setuptools" ,python-setuptools))) + (home-page "http://hylang.org/") + (synopsis "Lisp frontend to Python") + (description + "Hy is a dialect of Lisp that's embedded in Python. Since Hy transforms +its Lisp code into the Python Abstract Syntax Tree, you have the whole world of +Python at your fingertips, in Lisp form.") + (license license:expat))) + +(define-public python2-hy + (package-with-python2 python-hy)) -- cgit v1.2.3 From b8300494c0cef32d7398aee705c9271346d0290e Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 8 Jan 2016 02:48:17 +0300 Subject: Move to (gnu system). * guix/scripts/system.scm (previous-grub-entries) (display-system-generation): Use accessors instead of matching . (boot-parameters, boot-parameters?, boot-parameters-label) (boot-parameters-root-device, boot-parameters-kernel) (boot-parameters-kernel-arguments, read-boot-parameters): Move to... * gnu/system.scm: ... here. Export them. --- gnu/system.scm | 41 ++++++++++++++++++++++++ guix/scripts/system.scm | 85 ++++++++++++++++--------------------------------- 2 files changed, 68 insertions(+), 58 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index 4aedb7ee36..ee0280c069 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -88,6 +88,14 @@ operating-system-locale-directory operating-system-boot-script + boot-parameters + boot-parameters? + boot-parameters-label + boot-parameters-root-device + boot-parameters-kernel + boot-parameters-kernel-arguments + read-boot-parameters + local-host-aliases %setuid-programs %base-packages @@ -709,4 +717,37 @@ this file is the reconstruction of GRUB menu entries for old configurations." #$(operating-system-kernel-arguments os)) (initrd #$initrd))))) + +;;; +;;; Boot parameters +;;; + +(define-record-type* + boot-parameters make-boot-parameters boot-parameters? + (label boot-parameters-label) + (root-device boot-parameters-root-device) + (kernel boot-parameters-kernel) + (kernel-arguments boot-parameters-kernel-arguments)) + +(define (read-boot-parameters port) + "Read boot parameters from PORT and return the corresponding + object or #f if the format is unrecognized." + (match (read port) + (('boot-parameters ('version 0) + ('label label) ('root-device root) + ('kernel linux) + rest ...) + (boot-parameters + (label label) + (root-device root) + (kernel linux) + (kernel-arguments + (match (assq 'kernel-arguments rest) + ((_ args) args) + (#f '()))))) ;the old format + (x ;unsupported format + (warning (_ "unrecognized boot parameters for '~a'~%") + system) + #f))) + ;;; system.scm ends here diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 1407dc73fa..564ed02d59 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2016 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -189,39 +190,6 @@ the ownership of '~a' may be incorrect!~%") (mwhen grub? (install-grub* grub.cfg device target))))) - -;;; -;;; Boot parameters -;;; - -(define-record-type* - boot-parameters make-boot-parameters boot-parameters? - (label boot-parameters-label) - (root-device boot-parameters-root-device) - (kernel boot-parameters-kernel) - (kernel-arguments boot-parameters-kernel-arguments)) - -(define (read-boot-parameters port) - "Read boot parameters from PORT and return the corresponding - object or #f if the format is unrecognized." - (match (read port) - (('boot-parameters ('version 0) - ('label label) ('root-device root) - ('kernel linux) - rest ...) - (boot-parameters - (label label) - (root-device root) - (kernel linux) - (kernel-arguments - (match (assq 'kernel-arguments rest) - ((_ args) args) - (#f '()))))) ;the old format - (x ;unsupported format - (warning (_ "unrecognized boot parameters for '~a'~%") - system) - #f))) - ;;; ;;; Reconfiguration. @@ -285,22 +253,24 @@ it atomically, and then run OS's activation script." "Return a list of 'menu-entry' for the generations of PROFILE." (define (system->grub-entry system number time) (unless-file-not-found - (let ((file (string-append system "/parameters"))) - (match (call-with-input-file file read-boot-parameters) - (($ label root kernel kernel-arguments) - (menu-entry - (label (string-append label " (#" - (number->string number) ", " - (seconds->string time) ")")) - (linux kernel) - (linux-arguments - (cons* (string-append "--root=" root) - #~(string-append "--system=" #$system) - #~(string-append "--load=" #$system "/boot") - kernel-arguments)) - (initrd #~(string-append #$system "/initrd")))) - (#f ;invalid format - #f))))) + (let* ((file (string-append system "/parameters")) + (params (call-with-input-file file + read-boot-parameters)) + (label (boot-parameters-label params)) + (root (boot-parameters-root-device params)) + (kernel (boot-parameters-kernel params)) + (kernel-arguments (boot-parameters-kernel-arguments params))) + (menu-entry + (label (string-append label " (#" + (number->string number) ", " + (seconds->string time) ")")) + (linux kernel) + (linux-arguments + (cons* (string-append "--root=" root) + #~(string-append "--system=" #$system) + #~(string-append "--load=" #$system "/boot") + kernel-arguments)) + (initrd #~(string-append #$system "/initrd")))))) (let* ((numbers (generation-numbers profile)) (systems (map (cut generation-file-name profile <>) @@ -366,18 +336,17 @@ list of services." (unless (zero? number) (let* ((generation (generation-file-name profile number)) (param-file (string-append generation "/parameters")) - (params (call-with-input-file param-file read-boot-parameters))) + (params (call-with-input-file param-file read-boot-parameters)) + (label (boot-parameters-label params)) + (root (boot-parameters-root-device params)) + (kernel (boot-parameters-kernel params))) (display-generation profile number) (format #t (_ " file name: ~a~%") generation) (format #t (_ " canonical file name: ~a~%") (readlink* generation)) - (match params - (($ label root kernel) - ;; TRANSLATORS: Please preserve the two-space indentation. - (format #t (_ " label: ~a~%") label) - (format #t (_ " root device: ~a~%") root) - (format #t (_ " kernel: ~a~%") kernel)) - (_ - #f))))) + ;; TRANSLATORS: Please preserve the two-space indentation. + (format #t (_ " label: ~a~%") label) + (format #t (_ " root device: ~a~%") root) + (format #t (_ " kernel: ~a~%") kernel)))) (define* (list-generations pattern #:optional (profile %system-profile)) "Display in a human-readable format all the system generations matching -- cgit v1.2.3 From a0ad8ab01e839f3d3dbea0da84efbe51e8b67589 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 4 Jan 2016 18:55:17 +0300 Subject: emacs: profiles: Add 'guix-system-profile'. * emacs/guix-profiles.el (guix-system-profile): New variable. --- emacs/guix-profiles.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/emacs/guix-profiles.el b/emacs/guix-profiles.el index 2c1936864f..43ad1d42eb 100644 --- a/emacs/guix-profiles.el +++ b/emacs/guix-profiles.el @@ -1,6 +1,7 @@ ;;; guix-profiles.el --- Guix profiles -;; Copyright © 2014 Alex Kost +;; Copyright © 2014, 2015, 2016 Alex Kost +;; Copyright © 2015 Mathieu Lirzin ;; This file is part of GNU Guix. @@ -25,6 +26,10 @@ (expand-file-name "~/.guix-profile") "User profile.") +(defvar guix-system-profile + (concat guix-config-state-directory "/profiles/system") + "System profile.") + (defvar guix-default-profile (concat guix-config-state-directory "/profiles/per-user/" -- cgit v1.2.3 From 2df17bd0eeed1e29e64cf21ecec61413af19ba65 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 4 Jan 2016 19:11:30 +0300 Subject: emacs: Find packages in system profiles. For a usual profile, packages are placed in a profile directory itself, but for a system profile, packages are placed in 'profile' sub-directory. So we need to do some special cases for system profiles to find packages there as well. * emacs/guix-base.el (guix-packages-profile): New procedure. (guix-manifest-file): Use it. Add optional 'system?' argument. * emacs/guix-ui-generation.el (guix-system-generation?) (guix-generation-current-packages-profile): New procedures. (guix-generation-packages, guix-generation-insert-packages): Remove 'generation' argument. (guix-generation-packages-buffer): Add optional 'system?' argument. (guix-profile-generation-manifest-file) (guix-profile-generation-packages-buffer): Adjust accordingly. * emacs/guix-main.scm (generation-package-specifications+paths): Rename to... (profile->specifications+paths): ... this. Use a single 'profile' argument. --- emacs/guix-base.el | 25 ++++++++++++++++++------- emacs/guix-main.scm | 9 ++++----- emacs/guix-ui-generation.el | 40 ++++++++++++++++++++++++++++------------ 3 files changed, 50 insertions(+), 24 deletions(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index dae658ebfa..d720a87833 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -1,6 +1,6 @@ ;;; guix-base.el --- Common definitions -*- lexical-binding: t -*- -;; Copyright © 2014, 2015 Alex Kost +;; Copyright © 2014, 2015, 2016 Alex Kost ;; This file is part of GNU Guix. @@ -91,14 +91,25 @@ For the meaning of location, see `guix-find-location'." "Return the file name of a PROFILE's GENERATION." (format "%s-%s-link" profile generation)) -(defun guix-manifest-file (profile &optional generation) +(defun guix-packages-profile (profile &optional generation system?) + "Return a directory where packages are installed for the +PROFILE's GENERATION. + +If SYSTEM? is non-nil, then PROFILE is considered to be a system +profile. Unlike usual profiles, for a system profile, packages +are placed in 'profile' subdirectory." + (let ((profile (if generation + (guix-generation-file profile generation) + profile))) + (if system? + (expand-file-name "profile" profile) + profile))) + +(defun guix-manifest-file (profile &optional generation system?) "Return the file name of a PROFILE's manifest. -If GENERATION number is specified, return manifest file name for -this generation." +See `guix-packages-profile'." (expand-file-name "manifest" - (if generation - (guix-generation-file profile generation) - profile))) + (guix-packages-profile profile generation system?))) ;;;###autoload (defun guix-edit (id-or-name) diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 8c38e7cae3..5460c9686e 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015 Alex Kost +;;; Copyright © 2014, 2015, 2016 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -144,11 +144,10 @@ return two values: name and version. For example, for SPEC (manifest-entries->package-specifications (manifest-entries manifest)))) -(define (generation-package-specifications+paths profile number) - "Return a list of package specifications and paths for generation NUMBER. +(define (profile->specifications+paths profile) + "Return a list of package specifications and paths for PROFILE. Each element of the list is a list of the package specification and its path." - (let ((manifest (profile-manifest - (generation-file-name profile number)))) + (let ((manifest (profile-manifest profile))) (map (lambda (entry) (list (manifest-entry->package-specification entry) (manifest-entry-item entry))) diff --git a/emacs/guix-ui-generation.el b/emacs/guix-ui-generation.el index aa71645b4e..89a235a29c 100644 --- a/emacs/guix-ui-generation.el +++ b/emacs/guix-ui-generation.el @@ -1,6 +1,6 @@ ;;; guix-ui-generation.el --- Interface for displaying generations -*- lexical-binding: t -*- -;; Copyright © 2014, 2015 Alex Kost +;; Copyright © 2014, 2015, 2016 Alex Kost ;; This file is part of GNU Guix. @@ -78,6 +78,18 @@ Each element from GENERATIONS is a generation number." 'switch-to-generation* profile generation) operation-buffer))) +(defun guix-system-generation? () + "Return non-nil, if current generation is a system one." + (eq (guix-buffer-current-entry-type) + 'system-generation)) + +(defun guix-generation-current-packages-profile (&optional generation) + "Return a directory where packages are installed for the +current profile's GENERATION." + (guix-packages-profile (guix-ui-current-profile) + generation + (guix-system-generation?))) + ;;; Generation 'info' @@ -324,14 +336,13 @@ performance." "Width of an output name \"column\". This variable is used in auxiliary buffers for comparing generations.") -(defun guix-generation-packages (profile generation) - "Return a list of sorted packages installed in PROFILE's GENERATION. +(defun guix-generation-packages (profile) + "Return a list of sorted packages installed in PROFILE. Each element of the list is a list of the package specification and its store path." (let ((names+paths (guix-eval-read (guix-make-guile-expression - 'generation-package-specifications+paths - profile generation)))) + 'profile->specifications+paths profile)))) (sort names+paths (lambda (a b) (string< (car a) (car b)))))) @@ -360,8 +371,8 @@ Use the full PROFILE file name." (indent-to guix-generation-output-name-width 2) (insert path "\n")) -(defun guix-generation-insert-packages (buffer profile generation) - "Insert package outputs installed in PROFILE's GENERATION in BUFFER." +(defun guix-generation-insert-packages (buffer profile) + "Insert package outputs installed in PROFILE in BUFFER." (with-current-buffer buffer (setq buffer-read-only nil indent-tabs-mode nil) @@ -369,9 +380,9 @@ Use the full PROFILE file name." (mapc (lambda (name+path) (guix-generation-insert-package (car name+path) (cadr name+path))) - (guix-generation-packages profile generation)))) + (guix-generation-packages profile)))) -(defun guix-generation-packages-buffer (profile generation) +(defun guix-generation-packages-buffer (profile generation &optional system?) "Return buffer with package outputs installed in PROFILE's GENERATION. Create the buffer if needed." (let ((buf-name (guix-generation-packages-buffer-name @@ -379,19 +390,24 @@ Create the buffer if needed." (or (and (null guix-generation-packages-update-buffer) (get-buffer buf-name)) (let ((buf (get-buffer-create buf-name))) - (guix-generation-insert-packages buf profile generation) + (guix-generation-insert-packages + buf + (guix-packages-profile profile generation system?)) buf)))) (defun guix-profile-generation-manifest-file (generation) "Return the file name of a GENERATION's manifest. GENERATION is a generation number of the current profile." - (guix-manifest-file (guix-ui-current-profile) generation)) + (guix-manifest-file (guix-ui-current-profile) + generation + (guix-system-generation?))) (defun guix-profile-generation-packages-buffer (generation) "Insert GENERATION's package outputs in a buffer and return it. GENERATION is a generation number of the current profile." (guix-generation-packages-buffer (guix-ui-current-profile) - generation)) + generation + (guix-system-generation?))) ;;; Interactive commands -- cgit v1.2.3 From 54c3c284d7f319d6db7c665c612fdbeefe81ae5f Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 4 Jan 2016 22:59:04 +0300 Subject: emacs: Replace 'generation-diff' search with 'profile-diff'. * emacs/guix-main.scm (generation-package-specifications): Rename to... (profile-package-specifications): ... this. Take a single 'profile' argument. (generation-difference): Rename to... (profile-difference): ... this. Take profiles as arguments. (package/output-sexps): Adjust accordingly. * emacs/guix-ui-generation.el (guix-generation-list-profiles-to-compare): New procedure. (guix-generation-list-show-added-packages) (guix-generation-list-show-removed-packages): Use it. * emacs/guix-messages.el (guix-messages): Replace 'generation-diff' with 'profile-diff'. (guix-message-outputs-by-diff): Adjust accordingly. --- emacs/guix-main.scm | 23 +++++++++++------------ emacs/guix-messages.el | 21 ++++++++++----------- emacs/guix-ui-generation.el | 13 +++++++++---- 3 files changed, 30 insertions(+), 27 deletions(-) diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 5460c9686e..dfa9cba8e4 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -137,10 +137,9 @@ return two values: name and version. For example, for SPEC (define (manifest-entries->package-specifications entries) (map manifest-entry->package-specification entries)) -(define (generation-package-specifications profile number) - "Return a list of package specifications for generation NUMBER." - (let ((manifest (profile-manifest - (generation-file-name profile number)))) +(define (profile-package-specifications profile) + "Return a list of package specifications for PROFILE." + (let ((manifest (profile-manifest profile))) (manifest-entries->package-specifications (manifest-entries manifest)))) @@ -153,11 +152,11 @@ Each element of the list is a list of the package specification and its path." (manifest-entry-item entry))) (manifest-entries manifest)))) -(define (generation-difference profile number1 number2) - "Return a list of package specifications for outputs installed in generation -NUMBER1 and not installed in generation NUMBER2." - (let ((specs1 (generation-package-specifications profile number1)) - (specs2 (generation-package-specifications profile number2))) +(define (profile-difference profile1 profile2) + "Return a list of package specifications for outputs installed in PROFILE1 +and not installed in PROFILE2." + (let ((specs1 (profile-package-specifications profile1)) + (specs2 (profile-package-specifications profile2))) (lset-difference string=? specs1 specs2))) (define (manifest-entries->hash-table entries) @@ -698,11 +697,11 @@ See 'entry-sexps' for details." profile)) (manifest (profile-manifest profile)) (patterns (if (and (eq? entry-type 'output) - (eq? search-type 'generation-diff)) + (eq? search-type 'profile-diff)) (match search-vals - ((g1 g2) + ((p1 p2) (map specification->output-pattern - (generation-difference profile g1 g2))) + (profile-difference p1 p2))) (_ '())) (apply (patterns-maker entry-type search-type) manifest search-vals))) diff --git a/emacs/guix-messages.el b/emacs/guix-messages.el index eb2a76e216..234d3d11da 100644 --- a/emacs/guix-messages.el +++ b/emacs/guix-messages.el @@ -98,7 +98,7 @@ val profile) (many "%d package outputs installed in generation %d of profile '%s'." count val profile)) - (generation-diff + (profile-diff guix-message-outputs-by-diff)) (generation @@ -183,19 +183,18 @@ Try \"M-x guix-search-by-name\"." "matching time period '%s' - '%s'.") str-beg profile time-beg time-end))) -(defun guix-message-outputs-by-diff (profile entries generations) - "Display a message for outputs searched by GENERATIONS difference." +(defun guix-message-outputs-by-diff (_ entries profiles) + "Display a message for outputs searched by PROFILES difference." (let* ((count (length entries)) (str-beg (guix-message-string-entries count 'output)) - (gen1 (car generations)) - (gen2 (cadr generations))) + (profile1 (car profiles)) + (profile2 (cadr profiles))) (cl-multiple-value-bind (new old str-action) - (if (> gen1 gen2) - (list gen1 gen2 "added to") - (list gen2 gen1 "removed from")) - (message (concat "%s %s generation %d comparing with " - "generation %d of profile '%s'.") - str-beg str-action new old profile)))) + (if (string-lessp profile2 profile1) + (list profile1 profile2 "added to") + (list profile2 profile1 "removed from")) + (message "%s %s profile '%s' comparing with profile '%s'." + str-beg str-action new old)))) (defun guix-result-message (profile entries entry-type search-type search-vals) diff --git a/emacs/guix-ui-generation.el b/emacs/guix-ui-generation.el index 89a235a29c..752d8523b9 100644 --- a/emacs/guix-ui-generation.el +++ b/emacs/guix-ui-generation.el @@ -212,6 +212,11 @@ VAL is a boolean value." (user-error "2 generations should be marked for comparing") (sort numbers #'<)))) +(defun guix-generation-list-profiles-to-compare () + "Return a sorted list of 2 marked generation profiles for comparing." + (mapcar #'guix-generation-current-packages-profile + (guix-generation-list-generations-to-compare))) + (defun guix-generation-list-show-added-packages () "List package outputs added to the latest marked generation. If 2 generations are marked with \\[guix-list-mark], display @@ -221,8 +226,8 @@ installed in the other one." (guix-buffer-get-display-entries 'list 'output (cl-list* (guix-ui-current-profile) - 'generation-diff - (reverse (guix-generation-list-generations-to-compare))) + 'profile-diff + (reverse (guix-generation-list-profiles-to-compare))) 'add)) (defun guix-generation-list-show-removed-packages () @@ -234,8 +239,8 @@ installed in the other one." (guix-buffer-get-display-entries 'list 'output (cl-list* (guix-ui-current-profile) - 'generation-diff - (guix-generation-list-generations-to-compare)) + 'profile-diff + (guix-generation-list-profiles-to-compare)) 'add)) (defun guix-generation-list-compare (diff-fun gen-fun) -- cgit v1.2.3 From 56728668485dfcba457e64748ab709eacf39b6ce Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 7 Jan 2016 22:40:53 +0300 Subject: emacs: Remove 'generation' search type. Use 'installed' search type instead. * emacs/guix-main.scm (%patterns-makers): Remove 'generation'. (package/output-sexps): Adjust accordingly. * emacs/guix-ui-generation.el (guix-generation-info-insert-number): Replace 'generation' search with 'installed'. (guix-generation-list-show-packages): Likewise. * emacs/guix-messages.el (guix-messages): Remove 'generation'. --- emacs/guix-main.scm | 7 +------ emacs/guix-messages.el | 16 +--------------- emacs/guix-ui-generation.el | 9 +++++---- 3 files changed, 7 insertions(+), 25 deletions(-) diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index dfa9cba8e4..1199679975 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -668,7 +668,6 @@ ENTRIES is a list of installed manifest entries." (id . ,(apply-to-rest ids->package-patterns)) (name . ,(apply-to-rest specifications->package-patterns)) (installed . ,manifest-package-proc) - (generation . ,manifest-package-proc) (obsolete . ,(apply-to-first obsolete-package-patterns)) (regexp . ,regexp-proc) (all-available . ,all-proc) @@ -677,7 +676,6 @@ ENTRIES is a list of installed manifest entries." (id . ,(apply-to-rest ids->output-patterns)) (name . ,(apply-to-rest specifications->output-patterns)) (installed . ,manifest-output-proc) - (generation . ,manifest-output-proc) (obsolete . ,(apply-to-first obsolete-output-patterns)) (regexp . ,regexp-proc) (all-available . ,all-proc) @@ -692,10 +690,7 @@ ENTRIES is a list of installed manifest entries." search-type search-vals) "Return information about packages or package outputs. See 'entry-sexps' for details." - (let* ((profile (if (eq? search-type 'generation) - (generation-file-name profile (car search-vals)) - profile)) - (manifest (profile-manifest profile)) + (let* ((manifest (profile-manifest profile)) (patterns (if (and (eq? entry-type 'output) (eq? search-type 'profile-diff)) (match search-vals diff --git a/emacs/guix-messages.el b/emacs/guix-messages.el index 234d3d11da..9f6d833252 100644 --- a/emacs/guix-messages.el +++ b/emacs/guix-messages.el @@ -55,14 +55,7 @@ (obsolete (0 "No obsolete packages in profile '%s'." profile) (1 "A single obsolete package in profile '%s'." profile) - (many "%d obsolete packages in profile '%s'." count profile)) - (generation - (0 "No packages installed in generation %d of profile '%s'." - val profile) - (1 "A single package installed in generation %d of profile '%s'." - val profile) - (many "%d packages installed in generation %d of profile '%s'." - count val profile))) + (many "%d obsolete packages in profile '%s'." count profile))) (output (id @@ -91,13 +84,6 @@ (0 "No obsolete package outputs in profile '%s'." profile) (1 "A single obsolete package output in profile '%s'." profile) (many "%d obsolete package outputs in profile '%s'." count profile)) - (generation - (0 "No package outputs installed in generation %d of profile '%s'." - val profile) - (1 "A single package output installed in generation %d of profile '%s'." - val profile) - (many "%d package outputs installed in generation %d of profile '%s'." - count val profile)) (profile-diff guix-message-outputs-by-diff)) diff --git a/emacs/guix-ui-generation.el b/emacs/guix-ui-generation.el index 752d8523b9..4047850f23 100644 --- a/emacs/guix-ui-generation.el +++ b/emacs/guix-ui-generation.el @@ -127,8 +127,9 @@ current profile's GENERATION." (lambda (btn) (guix-buffer-get-display-entries 'list guix-package-list-type - (list (guix-ui-current-profile) - 'generation (button-get btn 'number)) + (list (guix-generation-current-packages-profile + (button-get btn 'number)) + 'installed) 'add)) "Show installed packages for this generation" 'number number) @@ -202,8 +203,8 @@ VAL is a boolean value." "List installed packages for the generation at point." (interactive) (guix-package-get-display - (guix-ui-current-profile) - 'generation (guix-list-current-id))) + (guix-generation-current-packages-profile (guix-list-current-id)) + 'installed)) (defun guix-generation-list-generations-to-compare () "Return a sorted list of 2 marked generations for comparing." -- cgit v1.2.3 From 67cedc4ba69ec90b2d9d94646b861ba6821f342d Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 7 Jan 2016 23:01:26 +0300 Subject: emacs: Add interface for system generations. * emacs/guix-main.scm (system-generation-boot-parameters) (system-generation-param-alist, system-generation-sexps): New procedures. (entries): Add 'system-generation' entry type. * emacs/guix-messages.el (guix-result-message): Use the same messages for 'generation' and 'system-generation' entry types. * emacs/guix-ui-system-generation.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Commands): Document new commands. * NEWS: Mention new interface. --- NEWS | 1 + doc/emacs.texi | 8 +++ emacs.am | 1 + emacs/guix-main.scm | 38 +++++++++++++- emacs/guix-messages.el | 5 +- emacs/guix-ui-system-generation.el | 105 +++++++++++++++++++++++++++++++++++++ 6 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 emacs/guix-ui-system-generation.el diff --git a/NEWS b/NEWS index c35c7d67b9..0084394941 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,7 @@ Please send Guix bug reports to bug-guix@gnu.org. ** Package management +*** Emacs interface for system generations *** Emacs interface for hydra.gnu.org *** Changes in Emacs interface variables In the following names, BUFFER-TYPE means "info" or "list"; diff --git a/doc/emacs.texi b/doc/emacs.texi index ea340b19fe..b2a3d473ab 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -191,6 +191,14 @@ date/time prompt,,, org, The Org Manual}). @end table +Analogously on GuixSD you can also display system generations: + +@table @kbd +@item M-x guix-system-generations +@item M-x guix-last-system-generations +@item M-x guix-system-generations-by-time +@end table + You can also invoke the @command{guix pull} command (@pxref{Invoking guix pull}) from Emacs using: diff --git a/emacs.am b/emacs.am index 85165b9368..d0d4dfb9bd 100644 --- a/emacs.am +++ b/emacs.am @@ -47,6 +47,7 @@ ELFILES = \ emacs/guix-ui.el \ emacs/guix-ui-package.el \ emacs/guix-ui-generation.el \ + emacs/guix-ui-system-generation.el \ emacs/guix-utils.el if HAVE_EMACS diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 1199679975..236c882e3c 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -61,7 +61,8 @@ (guix scripts lint) (guix scripts package) (guix scripts pull) - (gnu packages)) + (gnu packages) + (gnu system)) (define-syntax-rule (first-or-false lst) (and (not (null? lst)) @@ -758,6 +759,38 @@ See 'entry-sexps' for details." params))) (map ->sexp generations))) +(define system-generation-boot-parameters + (memoize + (lambda (profile generation) + "Return boot parameters for PROFILE's system GENERATION." + (let* ((gen-file (generation-file-name profile generation)) + (param-file (string-append gen-file "/parameters"))) + (call-with-input-file param-file read-boot-parameters))))) + +(define (system-generation-param-alist profile) + "Return an alist of system generation parameters and procedures for +PROFILE." + (append (generation-param-alist profile) + `((label . ,(lambda (gen) + (boot-parameters-label + (system-generation-boot-parameters + profile gen)))) + (root-device . ,(lambda (gen) + (boot-parameters-root-device + (system-generation-boot-parameters + profile gen)))) + (kernel . ,(lambda (gen) + (boot-parameters-kernel + (system-generation-boot-parameters + profile gen))))))) + +(define (system-generation-sexps profile params search-type search-vals) + "Return an alist with information about system generations." + (let ((generations (find-generations profile search-type search-vals)) + (->sexp (object-transformer (system-generation-param-alist profile) + params))) + (map ->sexp generations))) + ;;; Getting package/output/generation entries (alists). @@ -802,6 +835,9 @@ parameter/value pairs." ((generation) (generation-sexps profile params search-type search-vals)) + ((system-generation) + (system-generation-sexps profile params + search-type search-vals)) (else (entry-type-error entry-type)))) diff --git a/emacs/guix-messages.el b/emacs/guix-messages.el index 9f6d833252..c4f15dcac2 100644 --- a/emacs/guix-messages.el +++ b/emacs/guix-messages.el @@ -186,7 +186,10 @@ Try \"M-x guix-search-by-name\"." search-type search-vals) "Display an appropriate message after displaying ENTRIES." (let* ((type-spec (guix-assq-value guix-messages - entry-type search-type)) + (if (eq entry-type 'system-generation) + 'generation + entry-type) + search-type)) (fun-or-count-spec (car type-spec))) (if (functionp fun-or-count-spec) (funcall fun-or-count-spec profile entries search-vals) diff --git a/emacs/guix-ui-system-generation.el b/emacs/guix-ui-system-generation.el new file mode 100644 index 0000000000..d79f3bceef --- /dev/null +++ b/emacs/guix-ui-system-generation.el @@ -0,0 +1,105 @@ +;;; guix-ui-system-generation.el --- Interface for displaying system generations -*- lexical-binding: t -*- + +;; Copyright © 2016 Alex Kost + +;; 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 this program. If not, see . + +;;; Commentary: + +;; This file provides an interface for displaying system generations +;; in 'list' and 'info' buffers, and commands for working with them. + +;;; Code: + +(require 'cl-lib) +(require 'guix-list) +(require 'guix-ui) +(require 'guix-ui-generation) +(require 'guix-profiles) + +(guix-ui-define-entry-type system-generation) + +(defun guix-system-generation-get-display (search-type &rest search-values) + "Search for system generations and show results. +See `guix-ui-get-entries' for the meaning of SEARCH-TYPE and +SEARCH-VALUES." + (apply #'guix-list-get-display-entries + 'system-generation + guix-system-profile + search-type search-values)) + + +;;; System generation 'info' + +(guix-ui-info-define-interface system-generation + :buffer-name "*Guix Generation Info*" + :format '((number format guix-generation-info-insert-number) + (label format (format)) + (prev-number format (format)) + (current format guix-generation-info-insert-current) + (path format (format guix-file)) + (time format (time)) + (root-device format (format)) + (kernel format (format guix-file))) + :titles guix-generation-info-titles) + + +;;; System generation 'list' + +;; FIXME It is better to make `guix-generation-list-shared-map' with +;; common keys for both usual and system generations. +(defvar guix-system-generation-list-mode-map + (copy-keymap guix-generation-list-mode-map) + "Keymap for `guix-system-generation-list-mode' buffers.") + +(guix-ui-list-define-interface system-generation + :buffer-name "*Guix Generation List*" + :format '((number nil 5 guix-list-sort-numerically-0 :right-align t) + (current guix-generation-list-get-current 10 t) + (label nil 40 t) + (time guix-list-get-time 20 t) + (path guix-list-get-file-path 30 t)) + :titles guix-generation-list-titles + :sort-key '(number . t) + :marks '((delete . ?D))) + + +;;; Interactive commands + +;;;###autoload +(defun guix-system-generations () + "Display information about system generations." + (interactive) + (guix-system-generation-get-display 'all)) + +;;;###autoload +(defun guix-last-system-generations (number) + "Display information about last NUMBER of system generations." + (interactive "nThe number of last generations: ") + (guix-system-generation-get-display 'last number)) + +;;;###autoload +(defun guix-system-generations-by-time (from to) + "Display information about system generations created between FROM and TO." + (interactive + (list (guix-read-date "Find generations (from): ") + (guix-read-date "Find generations (to): "))) + (guix-system-generation-get-display + 'time (float-time from) (float-time to))) + +(provide 'guix-ui-system-generation) + +;;; guix-ui-system-generation.el ends here -- cgit v1.2.3 From 7ba903b6db2d8dafea375b3030ef385a98ee367f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 16 Jan 2016 14:21:57 +0100 Subject: linux-modules: Support 'modprobe.blacklist' on the command line. * gnu/build/linux-modules.scm (file-name->module-name) (module-black-list): New procedure. * gnu/build/linux-modules.scm (load-linux-module*): Add #:black-list parameter. [black-listed?, load-dependencies]: New procedures. Use them. --- gnu/build/linux-modules.scm | 78 +++++++++++++++++++++++++++++++++------------ 1 file changed, 57 insertions(+), 21 deletions(-) diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm index e6552fdb67..bbe1a74d85 100644 --- a/gnu/build/linux-modules.scm +++ b/gnu/build/linux-modules.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Ludovic Courtès +;;; Copyright © 2014, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,6 +96,11 @@ contains module names, not actual file names." name (dot-ko name))) +(define (file-name->module-name file) + "Return the module name corresponding to FILE, stripping the trailing '.ko', +etc." + (basename file ".ko")) + (define* (recursive-module-dependencies files #:key (lookup-module dot-ko)) "Return the topologically-sorted list of file names of the modules depended @@ -130,6 +135,22 @@ LOOKUP-MODULE to the module name." (((modules . _) ...) modules)))) +(define (module-black-list) + "Return the black list of modules that must not be loaded. This black list +is specified using 'modprobe.blacklist=MODULE1,MODULE2,...' on the kernel +command line; it is honored by libkmod." + (define parameter + "modprobe.blacklist=") + + (let ((command (call-with-input-file "/proc/cmdline" + get-string-all))) + (append-map (lambda (arg) + (if (string-prefix? parameter arg) + (string-tokenize (string-drop arg (string-length parameter)) + %not-comma) + '())) + (string-tokenize command)))) + (define (module-loaded? module) "Return #t if MODULE is already loaded. MODULE must be a Linux module name, not a file name." @@ -138,29 +159,44 @@ not a file name." (define* (load-linux-module* file #:key (recursive? #t) - (lookup-module dot-ko)) - "Load Linux module from FILE, the name of a `.ko' file. When RECURSIVE? is -true, load its dependencies first (à la 'modprobe'.) The actual files -containing modules depended on are obtained by calling LOOKUP-MODULE with the -module name." + (lookup-module dot-ko) + (black-list (module-black-list))) + "Load Linux module from FILE, the name of a '.ko' file; return true on +success, false otherwise. When RECURSIVE? is true, load its dependencies +first (à la 'modprobe'.) The actual files containing modules depended on are +obtained by calling LOOKUP-MODULE with the module name. Modules whose name +appears in BLACK-LIST are not loaded." (define (slurp module) ;; TODO: Use 'finit_module' to reduce memory usage. (call-with-input-file file get-bytevector-all)) - (when recursive? - (for-each (cut load-linux-module* <> #:lookup-module lookup-module) - (map lookup-module (module-dependencies file)))) - - (format (current-module-debugging-port) - "loading Linux module from '~a'...~%" file) - - (catch 'system-error - (lambda () - (load-linux-module (slurp file))) - (lambda args - ;; If this module was already loaded and we're in modprobe style, ignore - ;; the error. - (unless (and recursive? (= EEXIST (system-error-errno args))) - (apply throw args))))) + (define (black-listed? module) + (let ((result (member module black-list))) + (when result + (format (current-module-debugging-port) + "not loading module '~a' because it's black-listed~%" + module)) + result)) + + (define (load-dependencies file) + (let ((dependencies (module-dependencies file))) + (every (cut load-linux-module* <> #:lookup-module lookup-module) + (map lookup-module dependencies)))) + + (and (not (black-listed? (file-name->module-name file))) + (or (not recursive?) + (load-dependencies file)) + (begin + (format (current-module-debugging-port) + "loading Linux module from '~a'...~%" file) + + (catch 'system-error + (lambda () + (load-linux-module (slurp file))) + (lambda args + ;; If this module was already loaded and we're in modprobe style, ignore + ;; the error. + (or (and recursive? (= EEXIST (system-error-errno args))) + (apply throw args))))))) ;;; linux-modules.scm ends here -- cgit v1.2.3 From e90cf6c14a32472f013959f0b79b80888e6fa35c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 16 Jan 2016 14:44:21 +0100 Subject: doc: Document command-line options honored by the initrd. * doc/guix.texi (Initial RAM Disk): Document kernel command-line options. --- doc/guix.texi | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index e583e8c389..d055ae357f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -8842,6 +8842,50 @@ The @code{base-initrd} procedure also handles common use cases that involves using the system as a QEMU guest, or as a ``live'' system whose root file system is volatile. +The initial RAM disk produced by @code{base-initrd} honors several +options passed on the Linux kernel command line (that is, arguments +passed @i{via} GRUB's @code{linux} command, or with QEMU's +@code{-append} option), notably: + +@table @code +@item --load=@var{boot} +Tell the initial RAM disk to load @var{boot}, a file containing a Scheme +program, once it has mounted the root file system. + +GuixSD uses this option to yield control to a boot program that runs the +service activation programs and then spawns GNU@tie{}dmd, the +initialization system. + +@item --root=@var{root} +Mount @var{root} as the root file system. @var{root} can be a device +device name like @code{/dev/sda1}, a partition label, or a partition +UUID. + +@item --system=@var{system} +Have @file{/run/booted-system} and @file{/run/current-system} point to +@var{system}. + +@item modprobe.blacklist=@var{modules}@dots{} +@cindex module, black-listing +@cindex black list, of kernel modules +Instruct the initial RAM disk as well as the @command{modprobe} command +(from the kmod package) to refuse to load @var{modules}. @var{modules} +must be a comma-separated list of module names---e.g., +@code{usbkbd,9pnet}. + +@item --repl +Start a read-eval-print loop (REPL) from the initial RAM disk before it +tries to load kernel modules and to mount the root file system. Our +marketing team calls it @dfn{boot-to-Guile}. The Schemer in you will +love it. @xref{Using Guile Interactively,,, guile, GNU Guile Reference +Manual}, for more information on Guile's REPL. + +@end table + +Now that you know all the features that initial RAM disks produced by +@code{base-initrd} provide, here is how to use it and customize it +further. + @deffn {Monadic Procedure} base-initrd @var{file-systems} @ [#:qemu-networking? #f] [#:virtio? #f] [#:volatile-root? #f] @ [#:extra-modules '()] [#:mapped-devices '()] -- cgit v1.2.3 From 2309ed6862c51a4dad7aa1d37e34dcfce125e56b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 16 Jan 2016 15:48:51 +0100 Subject: gnu: samtools-0.1: Adapt to changes in "samtools" variable. * gnu/packages/bioinformatics.scm (samtools-0.1)[arguments]: Add "LIBCURSES" make flag; delete "configure" phase; disable tests outside of "substitute-keyword-arguments". --- gnu/packages/bioinformatics.scm | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 3cabb9f528..314d0ad322 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2456,18 +2456,21 @@ viewer.") (sha256 (base32 "1m33xsfwz0s8qi45lylagfllqg7fphf4dr0780rsvw75av9wk06h")))) (arguments - (substitute-keyword-arguments (package-arguments samtools) - ((#:tests? tests) #f) ;no "check" target - ((#:phases phases) - `(modify-phases ,phases - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append - (assoc-ref outputs "out") "/bin"))) - (mkdir-p bin) - (copy-file "samtools" - (string-append bin "/samtools"))))) - (delete 'patch-tests))))))) + `(#:tests? #f ;no "check" target + ,@(substitute-keyword-arguments (package-arguments samtools) + ((#:make-flags flags) + `(cons "LIBCURSES=-lncurses" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append + (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (copy-file "samtools" + (string-append bin "/samtools"))))) + (delete 'patch-tests) + (delete 'configure)))))))) (define-public mosaik (let ((commit "5c25216d")) -- cgit v1.2.3 From 90907a22bcfc47c5027ecb830b34f226228f1f4e Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Fri, 18 Dec 2015 19:29:22 -0600 Subject: gnu: unison: Add "doc" output. * gnu/packages/ocaml.scm (unison)[source]: Use svn-fetch with snippet. [outputs]: New field. [native-inputs]: Add ghostscript, texlive, hevea, and lynx. [arguments]: Add 'install-doc phase. --- gnu/packages/ocaml.scm | 94 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 9 deletions(-) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 5531867964..d71ae55e7b 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 David Hashe +;;; Copyright © 2016 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ #:use-module ((guix licenses) #:hide (zlib)) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix svn-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages) @@ -36,6 +38,8 @@ #:use-module (gnu packages compression) #:use-module (gnu packages xorg) #:use-module (gnu packages texlive) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages lynx) #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages ncurses) @@ -496,16 +500,65 @@ libpanel, librsvg and quartz.") (version "2.48.3") (source (origin - (method url-fetch) - (uri (string-append "https://www.seas.upenn.edu/~bcpierce/unison/" - "download/releases/stable/unison-" version - ".tar.gz")) - (sha256 - (base32 - "10sln52rnnsj213jy3166m0q97qpwnrwl6mm529xfy10x3xkq3gl")))) + (method svn-fetch) + (uri (svn-reference + (url (string-append "https://webdav.seas.upenn.edu/svn/" + "unison/branches/" + (version-major+minor version))) + (revision 535))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0486s53wyayicj9f2raj2dvwvk4xyzar219rccc1iczdwixm4x05")) + (modules '((guix build utils) + (ice-9 rdelim) + (ice-9 regex) + (srfi srfi-1))) + (snippet + `(begin + ;; The svn revision in the release tarball appears to be + ;; artificially manipulated in order to set the desired point + ;; version number. Because the point version is calculated during + ;; the build, we can offset pointVersionOrigin by the desired + ;; point version and write that into "Rev: %d". We do this rather + ;; than hardcoding the necessary revision number, for + ;; maintainability. + (with-atomic-file-replacement "src/mkProjectInfo.ml" + (lambda (in out) + (let ((pt-ver (string->number (third (string-split ,version #\.)))) + (pt-rx (make-regexp "^let pointVersionOrigin = ([0-9]+)")) + (rev-rx (make-regexp "Rev: [0-9]+"))) + (let loop ((pt-origin #f)) + (let ((line (read-line in 'concat))) + (cond + ((regexp-exec pt-rx line) + => (lambda (m) + (display line out) + (loop (string->number (match:substring m 1))))) + ((regexp-exec rev-rx line) + => (lambda (m) + (format out "~aRev: ~d~a" + (match:prefix m) + (+ pt-origin pt-ver) + (match:suffix m)) + (dump-port in out))) ;done + (else + (display line out) + (loop pt-origin)))))))) + ;; Without the '-fix' argument, the html file produced does not + ;; have functioning internal hyperlinks. + (substitute* "doc/Makefile" + (("hevea unison") "hevea -fix unison")))))) (build-system gnu-build-system) + (outputs '("out" + "doc")) ; 1.9 MiB of documentation (native-inputs - `(("ocaml" ,ocaml))) + `(("ocaml" ,ocaml) + ;; For documentation + ("ghostscript" ,ghostscript) + ("texlive" ,texlive) + ("hevea" ,hevea) + ("lynx" ,lynx))) (arguments `(#:parallel-build? #f #:parallel-tests? #f @@ -522,7 +575,30 @@ libpanel, librsvg and quartz.") (bin (string-append out "/bin"))) (mkdir-p bin) (setenv "HOME" out) ; forces correct INSTALLDIR in Makefile - #t)))))) + #t))) + (add-after 'install 'install-doc + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "doc") + "/share/doc/unison"))) + (mkdir-p doc) + ;; This file needs write-permissions, because it's + ;; overwritten by 'docs' during documentation generation. + (chmod "src/strings.ml" #o600) + (and (zero? (system* "make" "docs" + "TEXDIRECTIVES=\\\\draftfalse")) + (begin + (for-each (lambda (f) + (install-file f doc)) + (map (lambda (ext) + (string-append + "doc/unison-manual." ext)) + ;; Install only html documentation, + ;; since the build is currently + ;; non-reproducible with the ps, pdf, + ;; and dvi docs. + '(;;"ps" "pdf" "dvi" + "html"))) + #t)))))))) (home-page "https://www.cis.upenn.edu/~bcpierce/unison/") (synopsis "File synchronizer") (description -- cgit v1.2.3 From f5a8491b6983087fe85002a7b6435119332892c2 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 17 Jan 2016 00:41:20 -0600 Subject: gnu: hevea: Update to 2.28. * gnu/packages/ocaml.scm (hevea): Update to 2.28. [arguments]: Add 'patch-/bin/sh phase. --- gnu/packages/ocaml.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index d71ae55e7b..1311b1bc37 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -286,14 +286,14 @@ concrete syntax of the language (Quotations, Syntax Extensions).") (define-public hevea (package (name "hevea") - (version "2.23") + (version "2.28") (source (origin (method url-fetch) (uri (string-append "http://hevea.inria.fr/old/" name "-" version ".tar.gz")) (sha256 (base32 - "1f9pj48518ixhjxbviv2zx27v4anp92zgg3x704g1s5cki2w33nv")))) + "14fns13wlnpiv9i05841kvi3cq4b9v2sw5x3ff6ziws28q701qnd")))) (build-system gnu-build-system) (inputs `(("ocaml" ,ocaml))) @@ -301,7 +301,12 @@ concrete syntax of the language (Quotations, Syntax Extensions).") `(#:tests? #f ; no test suite #:make-flags (list (string-append "PREFIX=" %output)) #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure) + (add-before 'build 'patch-/bin/sh + (lambda _ + (substitute* "_tags" + (("/bin/sh") (which "sh"))) + #t))))) (home-page "http://hevea.inria.fr/") (synopsis "LaTeX to HTML translator") (description -- cgit v1.2.3 From 2328b47c643bc32bb823045628f4814885d6204d Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 17 Jan 2016 01:44:15 -0600 Subject: gnu: Add autojump. * gnu/packages/admin.scm (autojump): New variable. --- gnu/packages/admin.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 6e3024dffd..1f2d0fbf95 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2014, 2015, 2016 Mark H Weaver -;;; Copyright © 2014, 2015 Eric Bavier +;;; Copyright © 2014, 2015, 2016 Eric Bavier ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Alex Sassmannshausen ;;; Copyright © 2015 Eric Dvorsak @@ -1318,3 +1318,62 @@ able to adapt itself dynamically to the overall system load. Children processes and threads of the specified process may optionally share the same limits.") (license license:gpl2+))) + +(define-public autojump + (package + (name "autojump") + (version "22.2.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/wting/autojump/archive/" + "release-v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0xglj7nb8xczaqy2dhn78drqdwqj64rqpymxhqmmwwqzfaqassw1")))) + (build-system gnu-build-system) + (native-inputs ;for tests + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest))) + (inputs + `(("python" ,python-wrapper))) + (arguments + `(#:phases (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'check + (lambda _ + (zero? + (system* "python" "tests/autojump_utils_test.py")))) + (replace 'install + ;; The install.py script doesn't allow system installation + ;; into an arbitrary prefix, so do our own install. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share/autojump")) + (py (string-append out "/lib/python" + ,(version-major+minor + (package-version python-wrapper)) + "/site-packages")) + (man (string-append out "/share/man/man1"))) + (install-file "bin/autojump" bin) + (for-each (λ (f) (install-file f py)) + (find-files "bin" "\\.py$")) + (for-each (λ (f) (install-file f share)) + (find-files "bin" "autojump\\..*$")) + (substitute* (string-append share "/autojump.sh") + (("/usr/local") out)) + (install-file "docs/autojump.1" man) + (wrap-program (string-append bin "/autojump") + `("PYTHONPATH" ":" prefix (,py))) + #t)))))) + (home-page "https://github.com/wting/autojump") + (synopsis "Shell extension for filesystem navigation") + (description + "Autojump provides a faster way to navigate your filesystem, with a \"cd +command that learns\". It works by maintaining a database of the directories +you use the most from the command line and allows you to \"jump\" to +frequently used directories by typing only a small pattern.") + (license license:gpl3+))) -- cgit v1.2.3 From d5650f86a7e3f16512af498bfa998398f11c3e8a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 21 Dec 2015 15:53:59 +0200 Subject: gnu: Add libvdpau. * gnu/packages/video.scm (libvdpau): New variable. --- gnu/packages/video.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 752e51d0a7..baeb747fe6 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1299,3 +1299,29 @@ from many input sources such as webcams, X11 (for screencasting), PulseAudio, and JACK.") (home-page "https://obsproject.com") (license license:gpl2+))) + +(define-public libvdpau + (package + (name "libvdpau") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "0dnpb0yh7v6rvckx82kxg045rd9rbsw25wjv7ad5n8h94s9h2yl5")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("dri2proto" ,dri2proto) + ("libx11" ,libx11 "out") + ("libxext" ,libxext))) + (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/") + (synopsis "Video Decode and Presentation API") + (description "VDPAU is the Video Decode and Presentation API for UNIX. It +provides an interface to video decode acceleration and presentation hardware +present in modern GPUs.") + (license (license:x11-style "file://COPYING")))) -- cgit v1.2.3 From 3161d32d37e84ad686c249cfb077126a1c9510c6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 21 Dec 2015 16:06:30 +0200 Subject: gnu: Add vdpauinfo. * gnu/packages/video.scm (vdpauinfo): New variable. --- gnu/packages/video.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index baeb747fe6..82f62a4077 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1325,3 +1325,27 @@ and JACK.") provides an interface to video decode acceleration and presentation hardware present in modern GPUs.") (license (license:x11-style "file://COPYING")))) + +(define-public vdpauinfo + (package + (name "vdpauinfo") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1i2b0k9h8r0lnxlrkgqzmrjakgaw3f1ygqqwzx8w6676g85rcm20")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("libx11" ,libx11))) + (propagated-inputs + `(("libvdpau" ,libvdpau))) + (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/") + (synopsis "Tool to query the capabilities of a VDPAU implementation") + (description "Vdpauinfo is a tool to query the capabilities of a VDPAU +implementation.") + (license (license:x11-style "file://COPYING")))) -- cgit v1.2.3 From 81c29cccaad8760fec6f3673a80648e942b79f8b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 29 Dec 2015 12:36:01 +0200 Subject: gnu: mpv: Add features. * gnu/packages/video.scm (mpv)[inputs]: Add libvdpau. [arguments]: Add gpl3 and zsh completion flags. --- gnu/packages/video.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 82f62a4077..6fd2300f0a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -707,7 +707,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") `(("perl" ,perl) ("pkg-config" ,pkg-config) ("python-docutils" ,python-docutils))) - ;; Missing features: libguess, Wayland, VDPAU, V4L2 + ;; Missing features: libguess, Wayland, V4L2 (inputs `(("alsa-lib" ,alsa-lib) ("enca" ,enca) @@ -724,6 +724,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ("libdvdnav" ,libdvdnav) ("libjpeg" ,libjpeg) ("libva" ,libva) + ("libvdpau" ,libvdpau) ("libx11" ,libx11) ("libxext" ,libxext) ("libxinerama" ,libxinerama) @@ -754,6 +755,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (lambda* (#:key inputs #:allow-other-keys) (copy-file (assoc-ref inputs "waf") "waf") (setenv "CC" "gcc")))) + #:configure-flags (list "--enable-gpl3" "--enable-zsh-comp") ;; No check function defined. #:tests? #f)) (home-page "http://mpv.io/") -- cgit v1.2.3 From cfac12723a307575242dd1e2acd1bb9a3ba21ab7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 16 Jan 2016 13:10:24 +0100 Subject: gnu: drumstick: Update to 1.0.2. * gnu/packages/music.scm (drumstick): Update to 1.0.2. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index fd1751e95b..c50e5d3b7f 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -818,14 +818,14 @@ browser.") (define-public drumstick (package (name "drumstick") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/drumstick/" version "/drumstick-" version ".tar.bz2")) (sha256 (base32 - "0mxgix85b2qqs859z91cxik5x0s60dykqiflbj62px9akvf91qdv")))) + "0l47gy9yywrc860db5g3wdqg8yc8qdb2lqq6wvw1dfim5j0vbail")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no test target -- cgit v1.2.3 From fb492b9a64c969be74f1d57f458377d2860eabd4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 17 Jan 2016 19:55:58 +0100 Subject: gnu: vmpk: Update to 0.6.2a. * gnu/packages/music.scm (vmpk): Update to 0.6.2a. --- gnu/packages/music.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index c50e5d3b7f..c54920986d 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -864,14 +864,15 @@ backends, including ALSA, OSS, Network and FluidSynth.") (define-public vmpk (package (name "vmpk") - (version "0.6.1") + (version "0.6.2a") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/vmpk/vmpk/" - version "/vmpk-" version ".tar.bz2")) + (string-drop-right version 1) + "/vmpk-" version ".tar.bz2")) (sha256 (base32 - "0ranldd033bd31m9d2vkbkn9zp1k46xbaysllai2i95rf1nhirqc")))) + "0259iikvxnfdiifrh02g8xgcxikrkca4nhd3an8xzx0bd6bk8ifi")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no test target -- cgit v1.2.3 From c9e330d001a0018fbbc26e0bb01848eb3c924d81 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Nov 2015 20:29:12 +0200 Subject: gnu: Add python-keystoneclient. * gnu/packages/openstack.scm (python-keystoneclient) (python2-keystoneclient): New variables. --- gnu/packages/openstack.scm | 73 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 48a5c6b7e6..a4be670965 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -19,12 +19,14 @@ (define-module (gnu packages openstack) #:use-module (gnu packages python) + #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (guix build-system python) #:use-module (guix download) #:use-module ((guix licenses) #:select (asl2.0)) - #:use-module (guix packages)) + #:use-module (guix packages) + #:use-module (srfi srfi-1)) (define-public python-bandit (package @@ -679,3 +681,72 @@ handling.") (define-public python2-oslo.utils (package-with-python2 python-oslo.utils)) + +(define-public python-keystoneclient + (package + (name "python-keystoneclient") + (version "1.8.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-keystoneclient" version)) + (sha256 + (base32 + "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-sphinx" ,python-sphinx) + ;; and some packages for the tests + ("openssl" ,openssl) + ("python-coverage" ,python-coverage) + ("python-discover" ,python-discover) + ("python-fixtures" ,python-fixtures) + ("python-hacking" ,python-hacking) + ("python-keyring" ,python-keyring) + ("python-lxml" ,python-lxml) + ("python-mock" ,python-mock) + ("python-mox3" ,python-mox3) + ("python-oauthlib" ,python-oauthlib) + ("python-oslosphinx" ,python-oslosphinx) + ("python-oslotest" ,python-oslotest) + ("python-pycrypto" ,python-pycrypto) + ("python-requests-mock" ,python-requests-mock) + ("python-temptest-lib" ,python-tempest-lib) + ("python-testrepository" ,python-testrepository) + ("python-testresources" ,python-testresources) + ("python-testtools" ,python-testtools) + ("python-webob" ,python-webob))) + (propagated-inputs + `(("python-babel" ,python-babel) + ("python-debtcollector" ,python-debtcollector) + ("python-iso8601" ,python-iso8601) + ("python-netaddr" ,python-netaddr) + ("python-oslo.config" ,python-oslo.config) + ("python-oslo.i18n" ,python-oslo.i18n) + ("python-oslo.serialization" ,python-oslo.serialization) + ("python-oslo.utils" ,python-oslo.utils) + ("python-pbr" ,python-pbr) + ("python-prettytable" ,python-prettytable) + ("python-requests" ,python-requests) + ("python-six" ,python-six) + ("python-stevedore" ,python-stevedore))) + (home-page "http://www.openstack.org/") + (synopsis "Client Library for OpenStack Identity") + (description + "Python-keystoneclient is the identity service used by OpenStack for +authentication (authN) and high-level authorization (authZ). It currently +supports token-based authN with user/service authZ, and is scalable to support +OAuth, SAML, and OpenID in future versions. Out of the box, Keystone uses +SQLite for its identity store database, with the option to connect to external +LDAP.") + (license asl2.0))) + +(define-public python2-keystoneclient + (let ((keystoneclient (package-with-python2 python-keystoneclient))) + (package (inherit keystoneclient) + (native-inputs + `(("python2-oauthlib" ,python2-oauthlib) + ,@(alist-delete + "python-oauthlib" + (package-native-inputs keystoneclient))))))) -- cgit v1.2.3 From 7a5b944eb5bc9df149cca4eb018e58e106084fbb Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 24 Nov 2015 22:33:31 +0200 Subject: gnu: Add python-futures. * gnu/packages/python.scm (python-futures, python2-futures): New variables. --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index cda995c440..8e0019eb43 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7084,3 +7084,29 @@ Python at your fingertips, in Lisp form.") (define-public python2-hy (package-with-python2 python-hy)) + +(define-public python-futures + (package + (name "python-futures") + (version "3.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "futures" version)) + (sha256 + (base32 + "1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/agronholm/pythonfutures") + (synopsis + "Backport of the concurrent.futures package from Python 3.2") + (description + "The concurrent.futures module provides a high-level interface for +asynchronously executing callables. This package backports the +concurrent.futures package from Python 3.2") + (license bsd-3))) + +(define-public python2-futures + (package-with-python2 python-futures)) -- cgit v1.2.3 From 8f0cc2ffce9ebf013a6fd3696e096517123ee935 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Nov 2015 20:27:37 +0200 Subject: gnu: Add python-swiftclient. * gnu/packages/openstack.scm (python-swiftclient, python2-swiftclient): New variables. --- gnu/packages/openstack.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index a4be670965..392ff88291 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -750,3 +750,57 @@ LDAP.") ,@(alist-delete "python-oauthlib" (package-native-inputs keystoneclient))))))) + +(define-public python-swiftclient + (package + (name "python-swiftclient") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-swiftclient" version)) + (sha256 + (base32 + "1j33l4z9vqh0scfncl4fxg01zr1hgqxhhai6gvcih1gccqm4nd7p")))) + (build-system python-build-system) + (native-inputs + `(("python-pbr", python-pbr) + ("python-setuptools" ,python-setuptools) + ("python-sphinx" ,python-sphinx) + ;; The folloing packages are needed for the tests. + ("python-coverage" ,python-coverage) + ("python-discover" ,python-discover) + ("python-hacking" ,python-hacking) + ("python-mock" ,python-mock) + ("python-oslosphinx" ,python-oslosphinx) + ("python-keystoneclient" ,python-keystoneclient) + ("python-testrepository" ,python-testrepository) + ("python-testtools" ,python-testtools))) + (propagated-inputs + `(("python-requests" ,python-requests) + ("python-six" ,python-six))) + (home-page "http://www.openstack.org/") + (synopsis "OpenStack Object Storage API Client Library") + (description + "OpenStack Object Storage (code-named Swift) creates redundant, scalable +object storage using clusters of standardized servers to store petabytes of +accessible data. It is not a file system or real-time data storage system, but +rather a long-term storage system for a more permanent type of static data that +can be retrieved, leveraged, and then updated if necessary. Primary examples of +data that best fit this type of storage model are virtual machine images, photo +storage, email storage and backup archiving. Having no central \"brain\" or +master point of control provides greater scalability, redundancy and +permanence.") + (license asl2.0))) + +(define-public python2-swiftclient + (let ((swiftclient (package-with-python2 python-swiftclient))) + (package (inherit swiftclient) + (propagated-inputs + `(("python2-futures" ,python2-futures) + ,@(package-propagated-inputs swiftclient))) + (native-inputs + `(("python2-keystoneclient" ,python2-keystoneclient) + ,@(alist-delete + "python-keystoneclient" + (package-native-inputs swiftclient))))))) -- cgit v1.2.3 From 81f7f29752525bfe3395036fb94fa059c95893f2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 22 Nov 2015 22:43:51 +0200 Subject: gnu: Add python-rauth. * gnu/packages/python.scm (python-rauth, python2-rauth): New variables. --- gnu/packages/python.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8e0019eb43..0c3df3b296 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7085,6 +7085,39 @@ Python at your fingertips, in Lisp form.") (define-public python2-hy (package-with-python2 python-hy)) +(define-public python-rauth + (package + (name "python-rauth") + (version "0.7.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rauth" version)) + (sha256 + (base32 + "00pq7zw429hhza9c0qzxiqp77m653jv09z92nralnmzwdf6pzicf")))) + (build-system python-build-system) + (arguments + `(#:test-target "check")) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (propagated-inputs + `(("python-requests" ,python-requests))) + (home-page "https://github.com/litl/rauth") + (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly") + (description + "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also +provides service wrappers for convenient connection initialization and +authenticated session objects providing things like keep-alive.") + (license license:expat))) + +(define-public python2-rauth + (let ((rauth (package-with-python2 python-rauth))) + (package (inherit rauth) + (native-inputs + `(("python2-unittest2", python2-unittest2) + ,@(package-native-inputs rauth)))))) + (define-public python-futures (package (name "python-futures") -- cgit v1.2.3 From 5988c299c4bf8d7adf399a885849db7c99b668df Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 24 Nov 2015 18:25:36 +0200 Subject: gnu: Add python-pyasn1-modules. * gnu/packages/python.scm (python-pyasn1-modules) (python2-pyasn1-modules): New variables. --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0c3df3b296..76589ff43c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5642,6 +5642,32 @@ suitable for a wide range of protocols based on the ASN.1 specification.") (define-public python2-pyasn1 (package-with-python2 python-pyasn1)) +(define-public python-pyasn1-modules + (package + (name "python-pyasn1-modules") + (version "0.0.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyasn1-modules" version)) + (sha256 + (base32 + "0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (propagated-inputs + `(("python-pyasn1" ,python-pyasn1))) + (home-page "http://sourceforge.net/projects/pyasn1/") + (synopsis "ASN.1 codec implementations") + (description + "Pyasn1-modules is a collection of Python modules providing ASN.1 types and +implementations of ASN.1-based codecs and protocols.") + (license bsd-3))) + +(define-public python2-pyasn1-modules + (package-with-python2 python-pyasn1-modules)) + (define-public python2-ipaddress (package (name "python2-ipaddress") -- cgit v1.2.3 From 1abe448d56d415a4b9280a22741112f8436a6a0a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 3 Dec 2015 16:04:54 +0200 Subject: gnu: Add python2-functools32. * gnu/packages/python.scm (python2-functools32): New variable. --- gnu/packages/python.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 76589ff43c..8358c8890b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7144,6 +7144,31 @@ authenticated session objects providing things like keep-alive.") `(("python2-unittest2", python2-unittest2) ,@(package-native-inputs rauth)))))) +(define-public python2-functools32 + (package + (name "python2-functools32") + (version "3.2.3-2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "functools32" version)) + (sha256 + (base32 + "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:tests? #f)) ; no test target + (native-inputs + `(("python2-setuptools" ,python2-setuptools))) + (home-page "https://github.com/MiCHiLU/python-functools32") + (synopsis + "Backport of the functools module from Python 3.2.3") + (description + "This package is a backport of the @code{functools} module from Python +3.2.3 for use with older versions of Python and PyPy.") + (license license:expat))) + (define-public python-futures (package (name "python-futures") -- cgit v1.2.3 From 10468636ff823b77f04ae0de03a9f78691a0bbd8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Dec 2015 09:00:14 +0200 Subject: gnu: python-pytest-cov: Clarify description. * gnu/packages/python.scm (python-pytest-cov): Do it. --- gnu/packages/python.scm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8358c8890b..76bce72352 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1610,18 +1610,18 @@ and many external plugins.") (sha256 (base32 "1lf9jsmhqk5nc4w3kzwglmdzjvmi7ajvrsnwv826j3bn0wzx8c92")))) - (build-system python-build-system) - (propagated-inputs - `(("python-coverage" ,python-coverage) - ("python-pytest" ,python-pytest))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) - (home-page "https://github.com/pytest-dev/pytest-cov") - (synopsis "Pytest plugin for measuring coverage") - (description - "Pytest-cov produces coverage reports. It supports centralised testing and -distributed testing in both load and each modes. It also supports coverage -of subprocesses.") + (build-system python-build-system) + (propagated-inputs + `(("python-coverage" ,python-coverage) + ("python-pytest" ,python-pytest))) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/pytest-dev/pytest-cov") + (synopsis "Pytest plugin for measuring coverage") + (description + "Pytest-cov produces coverage reports. It supports centralised testing and +distributed testing in both @code{load} and @code{each} modes. It also +supports coverage of subprocesses.") (license license:expat))) (define-public python2-pytest-cov -- cgit v1.2.3 From e1ba074999747c8416355322361e2a6d158c6228 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Dec 2015 09:39:51 +0200 Subject: gnu: python-wheel: Clarify description. * gnu/packages/python.scm (python-wheel): Do it. --- gnu/packages/python.scm | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 76bce72352..13ad87fc8d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2119,25 +2119,29 @@ with sensible defaults out of the box.") (package (name "python-wheel") (version "0.26.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "wheel" version)) - (sha256 - (base32 - "032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga")))) - (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-jsonschema" ,python-jsonschema) - ("python-pytest-cov" ,python-pytest-cov))) - (home-page "https://bitbucket.org/pypa/wheel/") - (synopsis "Built-package format for Python") - (description - "A wheel is a ZIP-format archive with a specially formatted filename and the -.whl extension. It is designed to contain all the files for a PEP 376 -compatible install in a way that is very close to the on-disk format.") - (license license:expat))) + (source + (origin + (method url-fetch) + (uri (pypi-uri "wheel" version)) + (sha256 + (base32 + "032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-jsonschema" ,python-jsonschema) + ("python-pytest-cov" ,python-pytest-cov))) + (home-page "https://bitbucket.org/pypa/wheel/") + (synopsis "Format for built Python packages") + (description + "A wheel is a ZIP-format archive with a specially formatted filename and +the @code{.whl} extension. It is designed to contain all the files for a PEP +376 compatible install in a way that is very close to the on-disk format. Many +packages will be properly installed with only the @code{Unpack} step and the +unpacked archive preserves enough information to @code{Spread} (copy data and +scripts to their final locations) at any later time. Wheel files can be +installed with a newer @code{pip} or with wheel's own command line utility.") + (license license:expat))) (define-public python2-wheel (package-with-python2 python-wheel)) -- cgit v1.2.3 From c18f6368239de2c4be6560a4e0fa68a36c45374d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Dec 2015 19:50:57 +0200 Subject: gnu: Add python-urllib3. * gnu/packages/python.scm (python-urllib3, python2-urllib3): New variables. --- gnu/packages/python.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 13ad87fc8d..a1757a08fc 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7198,3 +7198,39 @@ concurrent.futures package from Python 3.2") (define-public python2-futures (package-with-python2 python-futures)) + +(define-public python-urllib3 + (package + (name "python-urllib3") + (version "1.13.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "urllib3" version)) + (sha256 + (base32 + "10rrbr6c6k7j5dvfsyj4b2gsgxg9gggnn708qixf6ll57xqivfkf")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ;; some packages for tests + ("python-nose" ,python-nose) + ("python-mock" ,python-mock) + ("python-tornado" ,python-tornado))) + (propagated-inputs + `(;; packages for https security + ("python-certifi" ,python-certifi) + ("python-ndg-httpsclient" ,python-ndg-httpsclient) + ("python-pyasn1" ,python-pyasn1) + ("python-pyopenssl" ,python-pyopenssl))) + (home-page "http://urllib3.readthedocs.org/") + (synopsis "HTTP library with thread-safe connection pooling") + (description + "Urllib3 supports features left out of urllib and urllib2 libraries. It +can reuse the same socket connection for multiple requests, it can POST files, +supports url redirection and retries, and also gzip and deflate decoding.") + (license license:expat))) + +(define-public python2-urllib3 + (package-with-python2 python-urllib3)) -- cgit v1.2.3 From e8d2168c2711d008f6f86e223f1f3339c17c9030 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 Nov 2015 20:55:01 +0200 Subject: gnu: Add git-annex-remote-hubic. * gnu/packages/version-control.scm (git-annex-remote-hubic): New variable. --- gnu/packages/version-control.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index c24c4683c7..1edf9f8d9c 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -56,6 +56,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages ssh) #:use-module (gnu packages web) + #:use-module (gnu packages openstack) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -1028,3 +1029,33 @@ fetching updates) over a collection of version control repositories. It supports a large number of version control systems: Git, Subversion, Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.") (license gpl2+))) + +(define-public git-annex-remote-hubic + (package + (name "git-annex-remote-hubic") + (version "0.3.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Schnouki/" name "/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "196g3jkaybjx11nbr51n0cjps3wjzb145ab76y717diqvvxp5v4r")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ;; for the tests + ("python-six" ,python-six))) + (propagated-inputs + `(("python-dateutil" ,python-dateutil-2) + ("python-futures" ,python-futures) + ("python-rauth" ,python-rauth) + ("python-swiftclient" ,python-swiftclient))) + (home-page "https://github.com/Schnouki/git-annex-remote-hubic/") + (synopsis "Use hubic as a git-annex remote") + (description + "This package allows you to use your hubic account as a \"special +repository\" with git-annex.") + (license gpl3+))) -- cgit v1.2.3 From b153f9f0a94001baf044d257ec278613521d09b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 17 Jan 2016 11:22:45 +0100 Subject: linux-initrd: Remove "usbkbd" from the default set of modules. Reported by Ricardo Wurmus at . * gnu/system/linux-initrd.scm (base-initrd): Remove "usbkbd". --- gnu/system/linux-initrd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 6130e020c8..b1ea637de9 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -179,7 +179,7 @@ loaded at boot time in the order in which they appear." ;; Modules added to the initrd and loaded from the initrd. `("ahci" ;for SATA controllers "usb-storage" "uas" ;for the installation image etc. - "usbkbd" "usbhid" ;USB keyboards, for debugging + "usbhid" ;USB keyboards, for debugging "dm-crypt" "xts" ;for encrypted root partitions ,@(if (string-match "^(x86_64|i[3-6]86)-" (%current-system)) '("pata_acpi" "pata_atiixp" ;for ATA controllers -- cgit v1.2.3 From 18ef998bfc91da5fd27e524e5e4b05f6374cf73a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 11 Jan 2016 19:38:11 +0100 Subject: gnu: bristol: Remove SSE flags on platforms other than x86_64 and i686. * gnu/packages/music.scm (bristol)[arguments]: Add phase "remove-sse-flags" to remove unsupported optimizations on platforms other than x86_64 and i686. --- gnu/packages/music.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index c54920986d..813893e11b 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -659,6 +659,16 @@ Laurens Hammond and Don Leslie.") (base32 "1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-sse-flags + (lambda* (#:key system #:allow-other-keys) + (when (not (or (string-prefix? "x86_64" system) + (string-prefix? "i686" system))) + (substitute* "bristol/Makefile.in" + (("-msse -mfpmath=sse") ""))) + #t))))) (inputs `(("alsa-lib" ,alsa-lib) ("jack" ,jack-1) -- cgit v1.2.3 From e8309291a72bdd44a49630aa4d7a3c1c2e584f5f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 17 Jan 2016 22:56:48 +0100 Subject: gnu: solfege: Build scores with Lilypond. * gnu/packages/music.scm (solfege)[inputs]: Add "lilypond". --- gnu/packages/music.scm | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 813893e11b..bfc90c1eeb 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -462,11 +462,7 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite ("pygtk" ,python2-pygtk) ("gettext" ,gnu-gettext) ("gtk" ,gtk+) - ;; TODO: Lilypond is optional. Produces errors at build time: - ;; Drawing systems...Error: /undefinedresult in --glyphshow-- - ;; Fontconfig is needed to fix one of the errors, but other similar - ;; errors remain. - ;;("lilypond" ,lilypond) + ("lilypond" ,lilypond) ("librsvg" ,librsvg) ; needed at runtime for icons ("libpng" ,libpng) ; needed at runtime for icons ;; players needed at runtime @@ -480,8 +476,6 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite ("txt2man" ,txt2man) ("libxml2" ,libxml2) ; for tests ("ghostscript" ,ghostscript) - ;;("fontconfig" ,fontconfig) ; only needed with lilypond - ;;("freetype" ,freetype) ; only needed with lilypond ("texinfo" ,texinfo))) (home-page "https://www.gnu.org/software/solfege/") (synopsis "Ear training") -- cgit v1.2.3 From 51a277d8e8f78fc04ff5cdcb31bb61ac8df0416c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 17 Jan 2016 21:39:44 -0500 Subject: gnu: rsync: Update to 3.1.2. * gnu/packages/rsync.scm (rsync): Update to 3.1.2. --- gnu/packages/rsync.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm index 5e98d84835..dba4e89a05 100644 --- a/gnu/packages/rsync.scm +++ b/gnu/packages/rsync.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Andreas Enge +;;; Copyright © 2016 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,14 +31,14 @@ (define-public rsync (package (name "rsync") - (version "3.1.0") + (version "3.1.2") (source (origin (method url-fetch) (uri (string-append "http://rsync.samba.org/ftp/rsync/src/rsync-" version ".tar.gz")) (sha256 (base32 - "0kirw8wglqvwi1v8bwxp373g03xg857h59j5k3mmgff9gzvj7jl1")))) + "1hm1q04hz15509f0p9bflw4d6jzfvpm1d36dxjwihk1wzakn5ypc")))) (build-system gnu-build-system) (inputs `(("perl" ,perl) ("acl" ,acl))) -- cgit v1.2.3 From 8047d13dcfb701996bd0d5b154ecbe844bed308a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 17 Jan 2016 21:36:48 -0500 Subject: gnu: mariadb: Update to 10.0.23. * gnu/packages/databases.scm (mariadb): Update to 10.0.23. --- gnu/packages/databases.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 5cac48d081..9945273830 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2012, 2014, 2015 Andreas Enge ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2014 David Thompson -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2015 Sou Bunnbu ;;; @@ -202,7 +202,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.0.20") + (version "10.0.23") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.org/f/" @@ -210,7 +210,7 @@ Language.") name "-" version ".tar.gz")) (sha256 (base32 - "0ywb730l68mxvmpik1x2ndbdaaks6dmc17pxspspm5wlqxinjkrs")))) + "0x52gfxk7zr84al83x62s4gh7mbngahy1svafdkbwd18i5lysvhm")))) (build-system cmake-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From de6af32783991d74a55d68bfd809cc56020e155b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?= Date: Thu, 5 Nov 2015 23:42:45 +0100 Subject: build: Speed up .go compilation. * build-aux/compile-all.scm: New file. * Makefile.am (EXTRA_DIST): Add it. (%.go, make-go): New rules. --- Makefile.am | 32 ++++++------------ build-aux/compile-all.scm | 82 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 23 deletions(-) create mode 100644 build-aux/compile-all.scm diff --git a/Makefile.am b/Makefile.am index 6e9deeb3d8..74bc8b5948 100644 --- a/Makefile.am +++ b/Makefile.am @@ -164,11 +164,6 @@ endif BUILD_DAEMON_OFFLOAD # Internal module with test suite support. dist_noinst_DATA = guix/tests.scm -# Because of the autoload hack in (guix build download), we must build it -# first to avoid errors on systems where (gnutls) is unavailable. -guix/scripts/download.go: guix/build/download.go -guix/download.go: guix/build/download.go - # Linux-Libre configurations. KCONFIGS = \ gnu/packages/linux-libre-i686.conf \ @@ -325,6 +320,7 @@ EXTRA_DIST = \ CODE-OF-CONDUCT \ .dir-locals.el \ build-aux/build-self.scm \ + build-aux/compile-all.scm \ build-aux/hydra/gnu-system.scm \ build-aux/hydra/demo-os.scm \ build-aux/hydra/guix.scm \ @@ -364,31 +360,21 @@ CLEANFILES = \ $(GOBJECTS) \ $(SCM_TESTS:tests/%.scm=%.log) -AM_V_GUILEC = $(AM_V_GUILEC_$(V)) -AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY)) -AM_V_GUILEC_0 = @echo " GUILEC" $@; - -# Flags passed to 'guild compile'. -GUILD_COMPILE_FLAGS = \ - -Wformat -Wunbound-variable -Warity-mismatch - # Unset 'GUILE_LOAD_COMPILED_PATH' altogether while compiling. Otherwise, if # $GUILE_LOAD_COMPILED_PATH contains $(moduledir), we may find .go files in # there that are newer than the local .scm files (for instance because the # user ran 'make install' recently). When that happens, we end up loading # those previously-installed .go files, which may be stale, thereby breaking # the whole thing. -# -# XXX: Use the C locale for when Guile lacks -# . -.scm.go: - $(AM_V_GUILEC)$(MKDIR_P) `dirname "$@"` ; \ +%.go: make-go ; @: +make-go: $(MODULES) guix/config.scm guix/tests.scm + $(AM_V_at)echo "Compiling Scheme modules..." ; \ unset GUILE_LOAD_COMPILED_PATH ; \ - LC_ALL=C \ + host=$(host) srcdir="$(top_srcdir)" \ $(top_builddir)/pre-inst-env \ - $(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \ - $(GUILD_COMPILE_FLAGS) --target="$(host)" \ - -o "$@" "$<" + $(GUILE) -L "$(top_builddir)" -L "$(top_srcdir)" \ + --no-auto-compile \ + -s "$(top_srcdir)"/build-aux/compile-all.scm $^ SUFFIXES = .go @@ -480,6 +466,6 @@ assert-final-inputs-self-contained: $(top_builddir)/pre-inst-env "$(GUILE)" \ "$(top_srcdir)/build-aux/check-final-inputs-self-contained.scm" -.PHONY: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go +.PHONY: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go make-go .PHONY: assert-no-store-file-names assert-binaries-available .PHONY: assert-final-inputs-self-contained diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm new file mode 100644 index 0000000000..e0877dbe8c --- /dev/null +++ b/build-aux/compile-all.scm @@ -0,0 +1,82 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer +;;; +;;; 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 . + +(use-modules (system base target) + (ice-9 match) + (ice-9 threads) + (guix build utils)) + +(define compile-options '(format unbound-variable arity-mismatch)) + +(define host (getenv "host")) + +(define srcdir (getenv "srcdir")) + +(define (relative-file file) + (if (string-prefix? (string-append srcdir "/") file) + (string-drop file (+ 1 (string-length srcdir))) + file)) + +(define (file-mtimego file) + (let* ((relative (relative-file file)) + (without-extension (string-drop-right relative 4))) + (string-append without-extension ".go"))) + +(define (file-needs-compilation? file) + (let ((go (scm->go file))) + (or (not (file-exists? go)) + (file-mtimemodule file) + (let* ((relative (relative-file file)) + (module-path (string-drop-right relative 4))) + (map string->symbol + (string-split module-path #\/)))) + +;;; To work around (FIXME), we want to load all +;;; files to be compiled first. We do this via resolve-interface so that the +;;; top-level of each file (module) is only executed once. +(define (load-module-file file) + (let ((module (file->module file))) + (format #t " LOAD ~a~%" module) + (resolve-interface module))) + +(define (compile-file* file output-mutex) + (let ((go (scm->go file))) + (with-mutex output-mutex + (format #t " GUILEC ~a~%" go) + (force-output)) + (mkdir-p (dirname go)) + (with-target host + (lambda () + (compile-file file + #:output-file go + #:opts compile-options))))) + +(match (command-line) + ((_ . files) + (let ((files (filter file-needs-compilation? files))) + (for-each load-module-file files) + (let ((mutex (make-mutex))) + (par-for-each (lambda (file) + (compile-file* file mutex)) + files))))) -- cgit v1.2.3 From 058247efff39d28c5f3b81351f3d35522b10730c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 18 Jan 2016 12:14:20 +0200 Subject: gnu: datamash: Update to 1.1.0. * gnu/packages/datamash.scm (datamash): Update to 1.1.0. --- gnu/packages/datamash.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/datamash.scm b/gnu/packages/datamash.scm index 4f8ded1d66..9889f16646 100644 --- a/gnu/packages/datamash.scm +++ b/gnu/packages/datamash.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,7 +28,7 @@ (define-public datamash (package (name "datamash") - (version "1.0.7") + (version "1.1.0") (source (origin (method url-fetch) @@ -35,7 +36,7 @@ version ".tar.gz")) (sha256 (base32 - "0y49zaadzirghy4xfajvsv1f5x805cjp61z212ggipx5243302qs")))) + "1c2bj0jrm4fxkf0ykxkzgyk1l9s0idqm8rbzmk3n9pgldb4arrd9")))) (native-inputs `(("which" ,which) ;for tests ("perl" ,perl))) ;for help2man -- cgit v1.2.3 From 264ae686fae658c90716632715846d34aa61b9f3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 18 Jan 2016 12:54:52 +0200 Subject: python2-jsonschema: Add python2-functools32 to inputs. * gnu/packages/python.scm (python2-jsonschema)[inputs]: Add python2-functools32. (python2-wheel)[native-inputs]: Specify python2-jsonschema. Add python2-functools32. (python2-requests)[propagated-inputs]: Specify python2-wheel. (python2-ipython)[inputs]: Specify python2-jsonschema, python2-requests. (python2-rauth)[propagated-inputs]: Specify python2-requests. * gnu/packages/openstack.scm (python2-requests-mock)[propagated-inputs]: Specify python2-requests. (python2-tempest-lib)[propagated-inputs]: Specify python2-jsonschema. (python2-oslosphinx)[propagated-inputs]: Specify python2-requests. (python2-keystoneclient)[porpagated-inputs]: Specify python2-requests. [native-inputs]: Specify python2-oslosphinx, python2-requests-mock, python2-tempest-lib. (python2-swiftclient)[propagated-inputs]: Specify python2-requests, python2-oslosphinx. --- gnu/packages/openstack.scm | 42 +++++++++++++++++++++++++++++++----------- gnu/packages/python.scm | 30 ++++++++++++++++++++++++------ 2 files changed, 55 insertions(+), 17 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 392ff88291..e258b89e2f 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Cyril Roelandt -;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015, 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -304,7 +304,12 @@ portions of your testing code.") (license asl2.0))) (define-public python2-requests-mock - (package-with-python2 python-requests-mock)) + (let ((requests-mock (package-with-python2 python-requests-mock))) + (package (inherit requests-mock) + (propagated-inputs + `(("python2-requests" ,python2-requests) + ,@(alist-delete "python-requests" + (package-propagated-inputs requests-mock))))))) (define-public python-stevedore (package @@ -387,7 +392,12 @@ common features used in Tempest.") (license asl2.0))) (define-public python2-tempest-lib - (package-with-python2 python-tempest-lib)) + (let ((tempest-lib (package-with-python2 python-tempest-lib))) + (package (inherit tempest-lib) + (propagated-inputs + `(("python2-jsonschema", python2-jsonschema) + ,@(alist-delete "python-jsonschema" + (package-propagated-inputs tempest-lib))))))) ;; Packages from the Oslo library (define-public python-oslo.config @@ -596,7 +606,9 @@ from the OpenStack project.") (license asl2.0))) (define-public python2-oslosphinx - (package-with-python2 python-oslosphinx)) + (let ((oslosphinx (package-with-python2 python-oslosphinx))) + (package (inherit oslosphinx) + (propagated-inputs `(("python2-requests" ,python2-requests)))))) (define-public python-oslotest (package @@ -745,11 +757,17 @@ LDAP.") (define-public python2-keystoneclient (let ((keystoneclient (package-with-python2 python-keystoneclient))) (package (inherit keystoneclient) + (propagated-inputs + `(("python2-requests" ,python2-requests) + ,@(alist-delete "python-requests" + (package-propagated-inputs keystoneclient)))) (native-inputs `(("python2-oauthlib" ,python2-oauthlib) - ,@(alist-delete - "python-oauthlib" - (package-native-inputs keystoneclient))))))) + ("python2-oslosphinx" ,python2-oslosphinx) + ("python2-requests-mock" ,python2-requests-mock) + ("python2-tempest-lib" ,python2-tempest-lib) + ,@(fold alist-delete (package-native-inputs keystoneclient) + '("python-oauthlib" "python-oslosphinx" "python-requests-mock" "python-tempest-lib"))))))) (define-public python-swiftclient (package @@ -798,9 +816,11 @@ permanence.") (package (inherit swiftclient) (propagated-inputs `(("python2-futures" ,python2-futures) - ,@(package-propagated-inputs swiftclient))) + ("python2-requests" ,python2-requests) + ,@(alist-delete "python-requests" + (package-propagated-inputs swiftclient)))) (native-inputs `(("python2-keystoneclient" ,python2-keystoneclient) - ,@(alist-delete - "python-keystoneclient" - (package-native-inputs swiftclient))))))) + ("python2-oslosphinx" ,python2-oslosphinx) + ,@(fold alist-delete (package-native-inputs swiftclient) + '("python-keystoneclient" "python-oslosphinx"))))))) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a1757a08fc..813711a9b6 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2015 Ben Woodcroft ;;; Copyright © 2015, 2016 Erik Edrosa -;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2015 Kyle Meyer ;;; Copyright © 2015 Chris Marusich ;;; @@ -2144,7 +2144,13 @@ installed with a newer @code{pip} or with wheel's own command line utility.") (license license:expat))) (define-public python2-wheel - (package-with-python2 python-wheel)) + (let ((wheel (package-with-python2 python-wheel))) + (package (inherit wheel) + (native-inputs + `(("python2-functools32" ,python2-functools32) + ("python2-jsonschema" ,python2-jsonschema) + ,@(alist-delete "python-jsonschema" + (package-native-inputs wheel))))))) (define-public python-requests (package @@ -2184,7 +2190,12 @@ than Python’s urllib2 library.") "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir")))))) (define-public python2-requests - (package-with-python2 python-requests)) + (let ((requests (package-with-python2 python-requests))) + (package (inherit requests) + (propagated-inputs + `(("python2-wheel" ,python2-wheel) + ,@(alist-delete "python-wheel" + (package-propagated-inputs requests))))))) (define-public python-vcversioner (package @@ -2234,7 +2245,11 @@ version numbers.") (license license:expat))) (define-public python2-jsonschema - (package-with-python2 python-jsonschema)) + (let ((jsonschema (package-with-python2 python-jsonschema))) + (package (inherit jsonschema) + (inputs + `(("python2-functools32" ,python2-functools32) + ,@(package-inputs jsonschema)))))) (define-public python-unidecode (package @@ -4290,11 +4305,13 @@ computing.") ,@(alist-delete "python-terminado" (package-propagated-inputs ipython)))) (inputs - `(("python2-mock" ,python2-mock) + `(("python2-jsonschema" ,python2-jsonschema) + ("python2-mock" ,python2-mock) ("python2-matplotlib" ,python2-matplotlib) ("python2-numpy" ,python2-numpy) + ("python2-requests" ,python2-requests) ,@(fold alist-delete (package-inputs ipython) - '("python-matplotlib" "python-numpy"))))))) + '("python-jsonschema" "python-matplotlib" "python-numpy" "python-requests"))))))) (define-public python-isodate (package @@ -7144,6 +7161,7 @@ authenticated session objects providing things like keep-alive.") (define-public python2-rauth (let ((rauth (package-with-python2 python-rauth))) (package (inherit rauth) + (propagated-inputs `(("python2-requests" ,python2-requests))) (native-inputs `(("python2-unittest2", python2-unittest2) ,@(package-native-inputs rauth)))))) -- cgit v1.2.3 From e119ba900877970325b2158dd6d3c700feaab516 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 12 Jan 2016 18:06:32 +0300 Subject: emacs: Rename 'guix-search-by-name' to 'guix-packages-by-name'. * emacs/guix-ui-package.el (guix-search-by-name): Rename to... (guix-packages-by-name): ... this. Complete package name. * doc/emacs.texi (Emacs Commands): Likewise. --- doc/emacs.texi | 2 +- emacs/guix-ui-package.el | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/emacs.texi b/doc/emacs.texi index b2a3d473ab..7edaedc078 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -155,7 +155,7 @@ Display all installed packages. Display obsolete packages (the packages that are installed in a profile but cannot be found among available packages). -@item M-x guix-search-by-name +@item M-x guix-packages-by-name Display package(s) with the specified name. @item M-x guix-search-by-regexp diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index 7cf1a7d07f..0696c4b565 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -912,15 +912,15 @@ See `guix-package-info-type'." "A history of minibuffer prompts.") ;;;###autoload -(defun guix-search-by-name (name &optional profile) - "Search for Guix packages by NAME. +(defun guix-packages-by-name (name &optional profile) + "Display Guix packages with NAME. NAME is a string with name specification. It may optionally contain a version number. Examples: \"guile\", \"guile-2.0.11\". If PROFILE is nil, use `guix-current-profile'. Interactively with prefix, prompt for PROFILE." (interactive - (list (read-string "Package name: " nil 'guix-package-search-history) + (list (guix-read-package-name) (guix-ui-read-profile))) (guix-package-get-display profile 'name name)) -- cgit v1.2.3 From 27a2e483370f9d08b9724a2c82b1fee9b15ce58a Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 12 Jan 2016 18:10:14 +0300 Subject: emacs: Add 'guix-search-by-name'. * emacs/guix-ui-package.el (guix-search-by-name): New command. * doc/emacs.texi (Emacs Commands): Document it. --- doc/emacs.texi | 5 +++++ emacs/guix-ui-package.el | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/doc/emacs.texi b/doc/emacs.texi index 7edaedc078..eb470ab4ca 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -163,6 +163,11 @@ Search for packages by a specified regexp. By default ``name'', ``synopsis'' and ``description'' of the packages will be searched. This can be changed by modifying @code{guix-package-search-params} variable. +@item M-x guix-search-by-name +Search for packages with names matching a specified regexp. This +command is the same as @code{guix-search-by-regexp}, except only a +package ``name'' is searched. + @end table By default, these commands display each output on a separate line. If diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index 0696c4b565..29514527ce 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -938,6 +938,17 @@ Interactively with prefix, prompt for PROFILE." (guix-package-get-display profile 'regexp regexp (or params guix-package-search-params))) +;;;###autoload +(defun guix-search-by-name (regexp &optional profile) + "Search for Guix packages matching REGEXP in a package name. +If PROFILE is nil, use `guix-current-profile'. +Interactively with prefix, prompt for PROFILE." + (interactive + (list (read-string "Package name by regexp: " + nil 'guix-package-search-history) + (guix-ui-read-profile))) + (guix-search-by-regexp regexp '(name) profile)) + ;;;###autoload (defun guix-installed-packages (&optional profile) "Display information about installed Guix packages. -- cgit v1.2.3 From a887fd8d48efd8cf229f9d0a4800b25066638018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 18 Jan 2016 10:38:59 +0100 Subject: doc: Explain how to run a subset of the tests. * doc/guix.texi (Running the Test Suite): Explain 'TESTS'. --- doc/guix.texi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index d055ae357f..a7da452fff 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -502,6 +502,13 @@ on a recent machine; subsequent runs will be faster because the store that is created for test purposes will already have various things in cache. +It is also possible to run a subset of the tests by defining the +@code{TESTS} makefile variable as in this example: + +@example +make check TESTS="tests/store.scm tests/cpio.scm" +@end example + Upon failure, please email @email{bug-guix@@gnu.org} and attach the @file{test-suite.log} file. When @file{tests/@var{something}.scm} fails, please also attach the @file{@var{something}.log} file available -- cgit v1.2.3 From 44ad33843a5653bf9e49b37d7fdd2903a9142ee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 18 Jan 2016 15:13:30 +0100 Subject: derivations: Add test for #:leaked-env-vars. * tests/derivations.scm ("derivation #:leaked-env-vars"): New test. --- tests/derivations.scm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/derivations.scm b/tests/derivations.scm index 1bbc93fe5c..64cc8a94c9 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -472,6 +472,22 @@ (build-derivations %store (list drv)) #f))) +;; Here we should get the value of $NIX_STATE_DIR that the daemon sees, which +;; is a unique value for each test process; this value is the same as the one +;; we see in the process executing this file since it is set by 'test-env'. +(test-equal "derivation #:leaked-env-vars" + (getenv "NIX_STATE_DIR") + (let* ((value (getenv "NIX_STATE_DIR")) + (drv (derivation %store "leaked-env-vars" %bash + '("-c" "echo -n $NIX_STATE_DIR > $out") + #:hash (sha256 (string->utf8 value)) + #:hash-algo 'sha256 + #:inputs `((,%bash)) + #:leaked-env-vars '("NIX_STATE_DIR")))) + (and (build-derivations %store (list drv)) + (call-with-input-file (derivation->output-path drv) + get-string-all)))) + (define %coreutils (false-if-exception -- cgit v1.2.3 From e0c941fefa0769bd834cee220a640ce5b9b0c3f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 18 Jan 2016 15:28:30 +0100 Subject: doc: Document 'http_proxy'. * doc/guix.texi (Build Environment Setup, Substitutes): Document 'http_proxy'. --- doc/guix.texi | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index a7da452fff..592ec3cb1d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -634,6 +634,11 @@ This way, the value of @code{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree. +@vindex http_proxy +The daemon also honors the @code{http_proxy} environment variable for +HTTP downloads it performs, be it for fixed-output derivations +(@pxref{Derivations}) or for substitutes (@pxref{Substitutes}). + If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @code{--disable-chroot}. However, build processes will not be isolated from one another, and not @@ -1685,6 +1690,14 @@ Guix ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL. It also detects and raises an error when attempting to use a substitute that has been tampered with. +@vindex http_proxy +Substitutes are downloaded over HTTP. The @code{http_proxy} environment +variable can be set in the environment of @command{guix-daemon} and is +honored for downloads of substitutes. Note that the value of +@code{http_proxy} in the environment where @command{guix build}, +@command{guix package}, and other client commands are run has +@emph{absolutely no effect}. + The substitute mechanism can be disabled globally by running @code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}). It can also be disabled temporarily by passing the -- cgit v1.2.3 From 4c896c9195ca8cd0c8625b6c391996483bed49b7 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 18 Jan 2016 22:31:12 +0300 Subject: gnu: manaplus: Update to 1.6.1.16. * gnu/packages/games.scm (manaplus): Update to 1.6.1.16. --- gnu/packages/games.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index f7a7636a86..3fcda40ba4 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2015 David Hashe ;;; Copyright © 2015 Christopher Allan Webber ;;; Copyright © 2015 Ricardo Wurmus -;;; Copyright © 2015 Alex Kost +;;; Copyright © 2015, 2016 Alex Kost ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; @@ -1180,7 +1180,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.5.12.5") + (version "1.6.1.16") (source (origin (method url-fetch) (uri (string-append @@ -1188,7 +1188,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "0kmd743q40v82221wj8b09n30lqiwl7096v3m7ki3ynsgszkm326")))) + "1vrsjvdbdzbnqmr8sp110b2d93kp5yfnifsn6zjm60kdvvbphdir")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.3 From d44d60d211daaa1302e9f3b862deb678d10ec721 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 18 Jan 2016 22:34:53 +0300 Subject: gnu: sxiv: Update to 1.3.2. * gnu/packages/sxiv.scm (sxiv): Update to 1.3.2. --- gnu/packages/sxiv.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/sxiv.scm b/gnu/packages/sxiv.scm index ee5e822c8d..8a81d48f3e 100644 --- a/gnu/packages/sxiv.scm +++ b/gnu/packages/sxiv.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Alex Kost +;;; Copyright © 2015, 2016 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +28,7 @@ (define-public sxiv (package (name "sxiv") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append @@ -37,7 +37,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "03hxy5ff7xbs15rhlbpgx8xmvmpjlffp0m4528975hg16sqa2c4s")))) + "0lxnd33gaw4drhdwbkk94wzrjyhh64d57jq2ps7ffmqgizg6hlwz")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no check target -- cgit v1.2.3 From 60edbe22978f36fd4da2f36da02c4308b81b7ade Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 18 Jan 2016 22:32:31 +0300 Subject: gnu: magit: Update to 2.4.0. * gnu/packages/emacs.scm (magit): Update to 2.4.0. --- gnu/packages/emacs.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index e82ffd33a7..ce599bca66 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2014, 2015 Alex Kost +;;; Copyright © 2014, 2015, 2016 Alex Kost ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015 Ricardo Wurmus ;;; @@ -323,7 +323,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (define-public magit (package (name "magit") - (version "2.3.1") + (version "2.4.0") (source (origin (method url-fetch) (uri (string-append @@ -331,7 +331,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1wnx034adkwhbsydd10il2099hpzz351kp39sri8s1yd43f795gf")))) + "1wbam4l36061mj79qlgzrv4xbzhk2dk6gnv45610zwfnf24ikdsp")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-no-x))) -- cgit v1.2.3 From 26da7c2606fa963932b7a9a876f77c1b7488446e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 18 Jan 2016 22:26:56 +0200 Subject: gnu: mpv: Update to 0.15.0. * gnu/packages/video.scm (mpv): Update to 0.15.0. --- gnu/packages/video.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 6fd2300f0a..9e41835720 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015 David Thompson ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer -;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2015 Andy Patterson ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Alex Vong @@ -692,7 +692,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.14.0") + (version "0.15.0") (source (origin (method url-fetch) (uri (string-append @@ -700,7 +700,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "0cqjwl0xyg0sv1jflipfkvqjg32y0kqfh4gc3lyhqgv0hgs3fa84")) + "1p0b83048g66icpz5n66v3k4ldr1z0rmg5d2rr7kcbspm1xj2cbx")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs -- cgit v1.2.3 From aac783cac54e48bb5d85d911bcad198fe3c9de04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 18 Jan 2016 23:37:11 +0100 Subject: build: Remove traces of 'NIX_SETUID_HELPER'. This is a followup to 0919f5f4. * test-env.in: Remove occurrences of 'NIX_SETUID_HELPER'. --- test-env.in | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/test-env.in b/test-env.in index d6389a1097..67f4f805fa 100644 --- a/test-env.in +++ b/test-env.in @@ -1,7 +1,7 @@ #!/bin/sh # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès # # This file is part of GNU Guix. # @@ -31,7 +31,6 @@ unset CDPATH if [ -x "@abs_top_builddir@/guix-daemon" ] then - NIX_SETUID_HELPER="@abs_top_builddir@/nix-setuid-helper" # normally unused NIX_STORE_DIR="@GUIX_TEST_ROOT@/store" # Do that because store.scm calls `canonicalize-path' on it. @@ -87,10 +86,10 @@ then # For the (guix import snix) tests. NIXPKGS="@NIXPKGS@" - export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR \ - NIX_LOCALSTATE_DIR NIX_LOG_DIR NIX_STATE_DIR NIX_DB_DIR \ - NIX_ROOT_FINDER NIX_SETUID_HELPER GUIX_BINARY_SUBSTITUTE_URL \ - GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \ + export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR \ + NIX_LOCALSTATE_DIR NIX_LOG_DIR NIX_STATE_DIR NIX_DB_DIR \ + NIX_ROOT_FINDER GUIX_BINARY_SUBSTITUTE_URL \ + GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \ NIX_CONF_DIR XDG_CACHE_HOME NIXPKGS # Launch the daemon without chroot support because is may be -- cgit v1.2.3 From 1348185ac2bb48b373495830267cff8ddc6b1fa5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Jan 2016 20:34:25 -0800 Subject: gnu: Add linux-libre-4.2.5 * gnu/packages/linux.scm (linux-libre-4.2.5): New variable. --- gnu/packages/linux.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 779b9c85b8..09014d6076 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2016 Christopher Allan Webber ;;; ;;; This file is part of GNU Guix. ;;; @@ -317,6 +318,22 @@ It has been modified to remove all non-free binary blobs.") (license license:gpl2) (home-page "http://www.gnu.org/software/linux-libre/")))) +;; This older version of linux-libre is being added because it was found +;; that newer versions (or at least 4.3.3) of linux-libre were not reading +;; the hardware clock on (at least Libreboot-enabled) Thinkpad x200 +;; machines. See . + +(define-public linux-libre-4.2.5 + (package + (inherit linux-libre) + (version "4.2.5") + (source (origin + (method url-fetch) + (uri (linux-libre-urls version)) + (sha256 + (base32 + "13ar9sghm2g5w2km9x2d07q3lh81rz286d6slklv56qanm24chzx")))))) + ;;; ;;; Pluggable authentication modules (PAM). -- cgit v1.2.3