From a0410663743eaa3bdbf3727baaa9fbc615db2549 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 7 Oct 2018 20:14:02 -0400 Subject: gnu: crawl, crawl-tiles: Update to 0.22.1. * gnu/packages/games.scm (crawl, crawl-tiles): Update to 0.22.1. * gnu/packages/patches/crawl-upgrade-saves.patch: Update accordingly. --- gnu/packages/games.scm | 4 ++-- gnu/packages/patches/crawl-upgrade-saves.patch | 25 +++++++++++++------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 7365a7f5d8..2547c72c23 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -4397,7 +4397,7 @@ fish. The whole game is accompanied by quiet, comforting music.") (define-public crawl (package (name "crawl") - (version "0.21.0") + (version "0.22.1") (source (origin (method url-fetch) @@ -4411,7 +4411,7 @@ fish. The whole game is accompanied by quiet, comforting music.") version "-nodeps.tar.xz"))) (sha256 (base32 - "0mmnkch8s9l7dh136yjvcyjr0vmyzv7z370rlcyir91qz6gg82n1")) + "1qc90wwbxvjzqq66n8kfr0a2ny7sfvv2n84si67jiv2887d0ws6k")) (patches (search-patches "crawl-upgrade-saves.patch")))) (build-system gnu-build-system) (inputs diff --git a/gnu/packages/patches/crawl-upgrade-saves.patch b/gnu/packages/patches/crawl-upgrade-saves.patch index 301942dc30..4c0b3a427b 100644 --- a/gnu/packages/patches/crawl-upgrade-saves.patch +++ b/gnu/packages/patches/crawl-upgrade-saves.patch @@ -5,8 +5,9 @@ By default crawl checks for a mtime difference on files in DATADIR to see if an upgrade is required, but guix nulls all file dates, and crawl would never upgrade saves. ---- a/source/database.cc 2016-05-31 09:56:08.000000000 +0200 -+++ a/source/database.cc 2017-06-05 03:00:19.270632107 +0200 +diff -ur a/source/database.cc b/source/database.cc +--- a/source/database.cc 2018-08-09 21:49:26.000000000 -0400 ++++ b/source/database.cc 2018-10-07 18:06:41.022445789 -0400 @@ -25,6 +25,7 @@ #include "syscalls.h" #include "threads.h" @@ -23,16 +24,16 @@ and crawl would never upgrade saves. TextDB *_parent; const char* lang() { return _parent ? Options.lang_name : 0; } public: -@@ -165,7 +167,7 @@ +@@ -163,7 +165,7 @@ - TextDB::TextDB(const char* db_name, const char* dir, ...) - : _db_name(db_name), _directory(dir), + TextDB::TextDB(const char* db_name, const char* dir, vector files) + : _db_name(db_name), _directory(dir), _input_files(files), - _db(nullptr), timestamp(""), _parent(0), translation(0) + _db(nullptr), timestamp(""), version(""), _parent(0), translation(0) { - va_list args; - va_start(args, dir); -@@ -187,7 +189,7 @@ + } + +@@ -171,7 +173,7 @@ : _db_name(parent->_db_name), _directory(parent->_directory + Options.lang_name + "/"), _input_files(parent->_input_files), // FIXME: pointless copy @@ -41,7 +42,7 @@ and crawl would never upgrade saves. { } -@@ -202,6 +204,9 @@ +@@ -186,6 +188,9 @@ return false; timestamp = _query_database(*this, "TIMESTAMP", false, false, true); @@ -51,7 +52,7 @@ and crawl would never upgrade saves. if (timestamp.empty()) return false; -@@ -245,6 +250,9 @@ +@@ -229,6 +234,9 @@ string ts; bool no_files = true; @@ -61,7 +62,7 @@ and crawl would never upgrade saves. for (const string &file : _input_files) { string full_input_path = _directory + file; -@@ -261,7 +269,7 @@ +@@ -245,7 +253,7 @@ ts += buf; } @@ -70,7 +71,7 @@ and crawl would never upgrade saves. { // No point in empty databases, although for simplicity keep ones // for disappeared translations for now. -@@ -321,7 +329,10 @@ +@@ -313,7 +321,10 @@ _store_text_db(full_input_path, _db); } } -- cgit v1.2.3 From 5103c98f68490d32e71fe7208161450de4fb6f43 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 8 Oct 2018 08:23:10 +0200 Subject: gnu: c-toxcore: Update to 0.2.8. * gnu/packages/messaging.scm (c-toxcore): Update to 0.2.8. --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index af67c922b4..8ac86a852f 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -873,7 +873,7 @@ protocols.") (define-public c-toxcore (package (name "c-toxcore") - (version "0.2.7") + (version "0.2.8") (source (origin (method url-fetch) @@ -882,7 +882,7 @@ protocols.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1lcw979zakyb5kzy8yfk87js3bzfz3k2jxidda6ga6ljdnqdpxmy")))) + "0qlkimlvbd24nlj7w9b5rpz1r807magqxmfylc1mlxsqhmfi5zj7")))) (arguments `(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable ; for now. -- cgit v1.2.3 From 402561ccefd5367ec878461cc088b533993ba0b7 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Thu, 4 Oct 2018 15:48:04 +1000 Subject: gnu: python2-backports-functools-lru-cache: Update to 1.5. * gnu/packages/python.scm (python2-backports-functools-lru-cache): Update to 1.5. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4703d95a2d..6a2bd6e8f5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -11418,7 +11418,7 @@ editors.") (define-public python2-backports-functools-lru-cache (package (name "python2-backports-functools-lru-cache") - (version "1.3") + (version "1.5") (source (origin (method url-fetch) @@ -11426,7 +11426,7 @@ editors.") (uri (pypi-uri "backports.functools_lru_cache" version)) (sha256 (base32 - "158ysf2hb0q4p4695abfiym9x1ywg0dgh8a3apd7gqaaxjy22jj4")))) + "06jgv8gib4fhky0p5cmxdghvsgjyzcdgk48k8pxb1ccf11znk64x")))) (build-system python-build-system) (native-inputs `(("python2-setuptools-scm" ,python2-setuptools-scm))) -- cgit v1.2.3 From 1deab8cbf6d93fec3b119de71374488087427ba8 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 7 Oct 2018 16:32:27 +0100 Subject: gnu: Add picard. * gnu/packages/music.scm (picard): New variable. --- gnu/packages/music.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 3163e6a8f6..e1bac6f51e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2429,6 +2429,47 @@ and managing stations, can be controlled remotely via fifo, and can run event-based scripts for scrobbling, notifications, etc.") (license license:expat))) +(define-public picard + (package + (name "picard") + (version "2.0.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://musicbrainz.osuosl.org/pub/musicbrainz/" + "picard/picard-" version ".tar.gz")) + (sha256 + (base32 + "0ds3ylpqn717fnzcjrfn05v5xram01bj6n3hwn9igmkd1jgf8vhc")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "picard/const/__init__.py" + (("pyfpcalc") + (string-append + "pyfpcalc', '" + (assoc-ref inputs "chromaprint") "/bin/fpcalc"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "python" "setup.py" "install" + (string-append "--prefix=" (assoc-ref outputs "out")) + "--root=/")))))) + (native-inputs + `(("gettext" ,gettext-minimal))) + (inputs + `(("chromaprint" ,chromaprint) + ("python-pyqt" ,python-pyqt) + ("python-mutagen" ,python-mutagen))) + (home-page "https://picard.musicbrainz.org/") + (synopsis "Graphical music tagging application") + (description + "MusicBrainz Picard is a music tagging application, supporting multiple +formats, looking up tracks through metadata and audio fingerprints.") + (license license:gpl2+))) + (define-public python-mutagen (package (name "python-mutagen") -- cgit v1.2.3 From f6e9976393c80d12b5f3235bf7fe593077cbc9d1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 8 Oct 2018 14:18:48 +0200 Subject: gnu: Add r-dnabarcodes. * gnu/packages/bioconductor.scm (r-dnabarcodes): New variable. --- gnu/packages/bioconductor.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 108f3c398f..1b779855b2 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -886,3 +886,30 @@ Time-Course experiments) analyses 4sU-seq and RNA-seq time-course data in order to evaluate synthesis, processing and degradation rates and assess via modeling the rates that determines changes in mature mRNA levels.") (license license:gpl2))) + +(define-public r-dnabarcodes + (package + (name "r-dnabarcodes") + (version "1.10.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "DNABarcodes" version)) + (sha256 + (base32 + "0xhna7f0kr7pp2hqwara5i57m9mdr65shflfxiyw6yy3g90pgb5x")))) + (properties `((upstream-name . "DNABarcodes"))) + (build-system r-build-system) + (propagated-inputs + `(("r-bh" ,r-bh) + ("r-matrix" ,r-matrix) + ("r-rcpp" ,r-rcpp))) + (home-page "https://bioconductor.org/packages/DNABarcodes") + (synopsis "Create and analyze DNA barcodes") + (description + "This package offers tools to create DNA barcode sets capable of +correcting insertion, deletion, and substitution errors. Existing barcodes +can be analyzed regarding their minimal, maximal and average distances between +barcodes. Finally, reads that start with a (possibly mutated) barcode can be +demultiplexed, i.e. assigned to their original reference barcode.") + (license license:gpl2))) -- cgit v1.2.3 From 1d6417340d6c6a80e24b9cd7e9c357b87c8da309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 Oct 2018 17:29:34 +0200 Subject: gnu: Add font-sil-gentium. * gnu/packages/fonts.scm (font-sil-gentium): New variable. --- gnu/packages/fonts.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 6d4abc637b..7fdcda4eee 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -1302,3 +1302,29 @@ Kannada, Malayalam, Manipuri, Oriya, Punjabi, Tamil and Telugu scripts.") "Inria Sans and Inria Serif are the two members of a type family designed for Inria, a public research institute in computer science and mathematics.") (license license:silofl1.1))) + +(define-public font-sil-gentium + (package + (name "font-sil-gentium") + (version "5.000") + (source (origin + (method url-fetch) + (uri (string-append + "https://software.sil.org/downloads/r/gentium/GentiumPlus-" + version ".zip")) + (sha256 + (base32 + "0m7189870hha217n1vgpmf89mwggrxkh679ffi1lxpnjggqi2n9k")))) + ;; Note: The zip file provides TTF files only, but the developer release, + ;; which contains additional files, has a 'SOURCES.txt' file that says + ;; that "the primary source files for the fonts are the fonts themselves". + ;; Thus it looks like the TTF can be considered source. + (build-system font-build-system) + (synopsis "Serif font for the Cyrillic, Greek, and Latin alphabets") + (description + "Gentium is a typeface family designed to enable the diverse ethnic +groups around the world who use the Latin, Cyrillic and Greek scripts to +produce readable, high-quality publications. The font comes with regular and +italics shapes. This package provides only TrueType files (TTF).") + (home-page "https://software.sil.org/gentium/") + (license license:silofl1.1))) -- cgit v1.2.3 From 46e78707a3d72d1fd08432cba8886415c79ebacc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 8 Oct 2018 17:35:22 +0200 Subject: gnu: Add font-sil-charis. * gnu/packages/fonts.scm (font-sil-charis): New variable. --- gnu/packages/fonts.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 7fdcda4eee..1195695d7a 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -1328,3 +1328,27 @@ produce readable, high-quality publications. The font comes with regular and italics shapes. This package provides only TrueType files (TTF).") (home-page "https://software.sil.org/gentium/") (license license:silofl1.1))) + +(define-public font-sil-charis + (package + (name "font-sil-charis") + (version "5.000") + (source (origin + (method url-fetch) + (uri (string-append + "https://software.sil.org/downloads/r/charis/CharisSIL-" + version ".zip")) + (sha256 + (base32 + "1zcvw37f1a7gkml3yfm6hxh93844llm7xj4w52600qq3ndrm8gjy")))) + ;; As for Gentium (see above), the TTF files are considered source. + (build-system font-build-system) + (synopsis "Serif font for the Cyrillic and Latin alphabets") + (description + "Charis SIL is a Unicode-based font family that supports the wide range +of languages that use the Latin and Cyrillic scripts. It is specially +designed to make long texts pleasant and easy to read, even in less than ideal +reproduction and display environments. This package provides only TrueType +files (TTF).") + (home-page "https://software.sil.org/charis/") + (license license:silofl1.1))) -- cgit v1.2.3 From f8e0d27c5c2f338012f00cd3c4620ca76751495c Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sun, 7 Oct 2018 17:53:04 +0200 Subject: gnu: emacs-google-translate: Update to 0.11.15. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-google-translate): Update to 0.11.15. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 1df3456e4a..aad698da0e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11344,27 +11344,25 @@ the GIF result.") (license license:gpl3+)))) (define-public emacs-google-translate - (let ((commit "d8b84a8359fcc697114d1298840e9a45b111c974")) - (package - (name "emacs-google-translate") - (version (git-version "0.11.14" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/atykhonov/google-translate") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1qs4hcg1i2m487z50nnwgs0sa2xj4lpgizbrvi2yda0mf3m75fgc")))) - (build-system emacs-build-system) - (home-page "https://github.com/atykhonov/google-translate") - (synopsis "Emacs interface to Google Translate") - (description - "This packages provides an Emacs interface to the Google Translate + (package + (name "emacs-google-translate") + (version "0.11.15") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/atykhonov/google-translate/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1zxvfagbaf5mxi528mz33c8vxdk86wj0xx5y2jfy97wi8dzrwn3g")))) + (build-system emacs-build-system) + (home-page "https://github.com/atykhonov/google-translate") + (synopsis "Emacs interface to Google Translate") + (description + "This packages provides an Emacs interface to the Google Translate on-line service.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-helm-company (let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d")) -- cgit v1.2.3 From b6bd8b108a4ad53e89d6b83edc57df18935f131c Mon Sep 17 00:00:00 2001 From: pimi Date: Mon, 8 Oct 2018 11:17:41 +0200 Subject: gnu: Add filtlong. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/bioinformatics.scm (filtlong): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/bioinformatics.scm | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index ab9dc185a3..ed713cd144 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -14057,3 +14057,63 @@ absolute GSEA.") (description "Ngless is a domain-specific language for @dfn{next-generation sequencing} (NGS) data processing.") (license license:expat))) + +(define-public filtlong + ;; The recommended way to install is to clone the git repository + ;; https://github.com/rrwick/Filtlong#installation + ;; and the lastest release is more than nine months old + (let ((commit "d1bb46dfe8bc7efe6257b5ce222c04bfe8aedaab") + (revision "1")) + (package + (name "filtlong") + (version (git-version "0.2.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rrwick/Filtlong.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xr92r820x8qlkcr3b57iw223yq8vjgyi42jr79w2xgw47qzr575")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (scripts (string-append out "/share/filtlong/scripts"))) + (install-file "bin/filtlong" bin) + (install-file "scripts/histogram.py" scripts) + (install-file "scripts/read_info_histograms.sh" scripts)) + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (path (getenv "PYTHONPATH"))) + (wrap-program (string-append out + "/share/filtlong/scripts/histogram.py") + `("PYTHONPATH" ":" prefix (,path)))) + #t)) + (add-before 'check 'patch-tests + (lambda _ + (substitute* "scripts/read_info_histograms.sh" + (("awk") (which "gawk"))) + #t))))) + (inputs + `(("gawk" ,gawk) ;for read_info_histograms.sh + ("python" ,python-2) ;required for histogram.py + ("zlib" ,zlib))) + (home-page "https://github.com/rrwick/Filtlong/") + (synopsis "Tool for quality filtering of Nanopore and PacBio data") + (description + "The Filtlong package is a tool for filtering long reads by quality. +It can take a set of long reads and produce a smaller, better subset. It uses +both read length (longer is better) and read identity (higher is better) when +choosing which reads pass the filter.") + (license (list license:gpl3 ;filtlong + license:asl2.0))))) ;histogram.py -- cgit v1.2.3 From df2d77c45ff357a25fee5f96478b1b65dc93f507 Mon Sep 17 00:00:00 2001 From: Thorsten Wilms Date: Mon, 8 Oct 2018 21:12:54 +0200 Subject: gnu: Add emacs-colum-marker. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-colum-marker): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index aad698da0e..c9493dabd4 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -39,6 +39,7 @@ ;;; Copyright © 2018 Jack Hill ;;; Copyright © 2018 Pierre-Antoine Rouby ;;; Copyright © 2018 Alex Branham +;;; Copyright © 2018 Thorsten Wilms ;;; ;;; This file is part of GNU Guix. ;;; @@ -12353,3 +12354,24 @@ with a handful of easy tweaks. scratch, and you think the Spacemacs theme looks good. @end itemize") (license license:gpl3+))) + +(define-public emacs-column-marker + (package + (name "emacs-column-marker") + (version "9") + (source + (origin + (method url-fetch) + (uri "https://www.emacswiki.org/emacs/download/column-marker.el") + (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/ColumnMarker") + (synopsis "Emacs mode for highlighting columns") + (description + "With @code{column-marker.el} you can highlight any number of text columns. +Three such highlight column markers are provided by default. This is +especially useful for languages like COBOL or Fortran where certain columns +have special meaning. It is also handy for aligning text across long vertical +distances. Multi-column characters, such as @kbd{TAB} are treated +correctly.") + (license license:gpl2+))) -- cgit v1.2.3 From 65b8d610739065671af288836d74e5ffbf382c8f Mon Sep 17 00:00:00 2001 From: Thorsten Wilms Date: Mon, 8 Oct 2018 21:11:10 +0200 Subject: gnu: Add gimp-resynthesizer. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gimp.scm (gimp-resynthesizer): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/gimp.scm | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index df8f242c7a..cd0deac158 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Leo Famulari +;;; Copyright © 2018 Thorsten Wilms ;;; ;;; This file is part of GNU Guix. ;;; @@ -305,3 +306,67 @@ brushstrokes which is used by MyPaint and GIMP.") MyPaint.") (home-page "https://github.com/Jehan/mypaint-brushes") (license license:cc0))) + +(define-public gimp-resynthesizer + ;; GIMP does not respect any plugin search path environment variable, so after + ;; installation users have to edit their GIMP settings to include + ;; "$HOME/.guix-profile/lib/gimp/2.0/plug-ins/" in + ;; “Edit->Preferences->Folders->Plug Ins”. + (package + (name "gimp-resynthesizer") + (version "2.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/bootchk/resynthesizer/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "0l3404w6rqny7h3djskxf149gzx6x4qhndgbh3403c9lbh4pi1kr")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system gnu-build-system) + (arguments + `( ;; Turn off tests to avoid: + ;; make[1]: *** No rule to make target '../src/resynth-gui.c', needed by 'resynthesizer.pot'. Stop. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-env + (lambda _ + (setenv "CONFIG_SHELL" (which "sh")) + #t)) + (add-after 'configure 'set-prefix + ;; Install plugin under $prefix, not under GIMP's libdir. + (lambda* (#:key outputs #:allow-other-keys) + (let ((target (string-append (assoc-ref outputs "out") + "/lib/gimp/" + ,(version-major + (package-version gimp)) + ".0"))) + (substitute* (list "src/resynthesizer/Makefile" + "src/resynthesizer-gui/Makefile") + (("GIMP_LIBDIR = .*") + (string-append "GIMP_LIBDIR = " target "\n"))) + (mkdir-p target) + #t)))))) + (native-inputs + `(("autoconf" ,autoconf-wrapper) + ("automake" ,automake) + ("glib" ,glib "bin") ; glib-gettextize + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (inputs + `(("gimp" ,gimp) + ("gdk-pixbuf" ,gdk-pixbuf) ; needed by gimp-2.0.pc + ("cairo" ,cairo) + ("gegl" ,gegl) + ("gtk+" ,gtk+-2) ; needed by gimpui-2.0.pc + ("glib" ,glib))) + (home-page "https://github.com/bootchk/resynthesizer") + (synopsis "GIMP plugins for texture synthesis") + (description + "This package provides resynthesizer plugins for GIMP, which encompasses +tools for healing selections (content-aware fill), enlarging the canvas and +healing the border, increasing the resolution while adding detail, and +transfering the style of an image.") + (license license:gpl3+))) -- cgit v1.2.3 From de68ad095db7cdd06c45c53c47e7cbcb3fdf8bf6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 9 Oct 2018 05:32:35 +0200 Subject: gnu: zstd: Update to 1.3.6. * gnu/packages/compression.scm (zstd): Update to 1.3.6. [source]: Remove merged patches. * gnu/packages/patches/zstd-fix-stdin-list-test.patch, gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 4 +- gnu/packages/compression.scm | 8 +-- .../patches/zstd-fix-stdin-list-test.patch | 30 ---------- .../patches/zstd-fix-stdin-list-without-tty.patch | 67 ---------------------- 4 files changed, 3 insertions(+), 106 deletions(-) delete mode 100644 gnu/packages/patches/zstd-fix-stdin-list-test.patch delete mode 100644 gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch diff --git a/gnu/local.mk b/gnu/local.mk index ea2d650e28..821e83a675 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1247,9 +1247,7 @@ dist_patch_DATA = \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xmodmap-asprintf.patch \ %D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch \ - %D%/packages/patches/zathura-plugindir-environment-variable.patch \ - %D%/packages/patches/zstd-fix-stdin-list-without-tty.patch \ - %D%/packages/patches/zstd-fix-stdin-list-test.patch + %D%/packages/patches/zathura-plugindir-environment-variable.patch MISC_DISTRO_FILES = \ %D%/packages/ld-wrapper.in diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 666c9bfc3e..38d72f1386 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1694,7 +1694,7 @@ or junctions, and always follows hard links.") (define-public zstd (package (name "zstd") - (version "1.3.5") + (version "1.3.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/zstd/archive/v" @@ -1702,11 +1702,7 @@ or junctions, and always follows hard links.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1sifbq18p0hc978g0pq8fymrlpzz1fcxqkbxfqk44z6v9jg5bqfn")) - ;; Fix a regression that causes the tests to fail. Both patches - ;; have been merged upstream and will be part of the next release. - (patches (search-patches "zstd-fix-stdin-list-without-tty.patch" - "zstd-fix-stdin-list-test.patch")))) + "1iwxcpxg51yskiwfw5nhsflvcm3pk4184kkfpm61hsxniwa1cmbz")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/zstd-fix-stdin-list-test.patch b/gnu/packages/patches/zstd-fix-stdin-list-test.patch deleted file mode 100644 index a10355448c..0000000000 --- a/gnu/packages/patches/zstd-fix-stdin-list-test.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8e7bdc18d62632adcee029b2f8f5013d11549dd7 Mon Sep 17 00:00:00 2001 -From: "W. Felix Handte" -Date: Fri, 29 Jun 2018 16:31:22 -0400 -Subject: [PATCH] Fix Tests of `--list` Behavior with `stdin` - ---- - tests/playTests.sh | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/tests/playTests.sh b/tests/playTests.sh -index 09a7377f2..aa5535d59 100755 ---- a/tests/playTests.sh -+++ b/tests/playTests.sh -@@ -731,8 +731,14 @@ $ECHO "\n===> zstd --list/-l error detection tests " - ! $ZSTD -lv tmp1* - ! $ZSTD --list -v tmp2 tmp12.zst - --$ECHO "\n===> zstd --list/-l exits 1 when stdin is piped in" --! echo "piped STDIN" | $ZSTD --list -+$ECHO "\n===> zstd --list/-l errors when presented with stdin / no files" -+! $ZSTD -l -+! $ZSTD -l - -+! $ZSTD -l < tmp1.zst -+! $ZSTD -l - < tmp1.zst -+! $ZSTD -l - tmp1.zst -+! $ZSTD -l - tmp1.zst < tmp1.zst -+$ZSTD -l tmp1.zst < tmp1.zst # but doesn't error just because stdin is not a tty - - $ECHO "\n===> zstd --list/-l test with null files " - ./datagen -g0 > tmp5 diff --git a/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch b/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch deleted file mode 100644 index 47fa3e59a7..0000000000 --- a/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 712a9fd9721c314f4b0238577d803b012845f6d2 Mon Sep 17 00:00:00 2001 -From: "W. Felix Handte" -Date: Fri, 29 Jun 2018 15:33:44 -0400 -Subject: [PATCH] Allow Invoking `zstd --list` When `stdin` is not a `tty` - -Also now returns an error when no inputs are given. - -New proposed behavior: - -``` -felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l; echo $? -No files given -1 -felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l Makefile.zst; echo $? -Frames Skips Compressed Uncompressed Ratio Check Filename - 1 0 3.08 KB 10.92 KB 3.544 XXH64 Makefile.zst -0 -felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l Date: Mon, 8 Oct 2018 16:20:19 +0200 Subject: gnu: docx2txt: End phases with #t. * gnu/packages/textutils.scm (docx2txt)[arguments]: End 'fix-install' phase with #t. --- gnu/packages/textutils.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 7e26bdcf63..8780bb2829 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -735,7 +735,8 @@ measuring and checking the width of strings, with support east asian text.") unzip "/bin/unzip',"))) ;; Makefile is wrong. - (chmod config #o644))))))) + (chmod config #o644) + #t)))))) (synopsis "Recover text from @file{.docx} files, with good formatting") (description "@command{docx2txt} is a Perl based command line utility to convert -- cgit v1.2.3 From 317e80cead5d8f78ed021069a3ef108d44824f76 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 8 Oct 2018 16:38:27 +0200 Subject: gnu: unison: End all phases with #t. * gnu/packages/ocaml.scm (unison)[arguments]: End all phases with #t. --- gnu/packages/ocaml.scm | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 0756aecd6d..6b55e84fed 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -820,7 +820,8 @@ libpanel, librsvg and quartz.") (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) ;; 'unison-fsmonitor' is used in "unison -repeat watch" mode. - (install-file "src/unison-fsmonitor" bin)))) + (install-file "src/unison-fsmonitor" bin) + #t))) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let ((doc (string-append (assoc-ref outputs "doc") @@ -829,21 +830,19 @@ libpanel, librsvg and quartz.") ;; 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)))))))) + (invoke "make" "docs" + "TEXDIRECTIVES=\\\\draftfalse") + (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 3880537c7403c3677ec46e991da9d25ca542c64b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 9 Oct 2018 05:46:00 +0200 Subject: gnu: zstd: Don't use unstable tarball. * gnu/packages/compression.scm (zstd)[source]: Use release archive. --- gnu/packages/compression.scm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 38d72f1386..8c940f3036 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1695,14 +1695,13 @@ or junctions, and always follows hard links.") (package (name "zstd") (version "1.3.6") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/facebook/zstd/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1iwxcpxg51yskiwfw5nhsflvcm3pk4184kkfpm61hsxniwa1cmbz")))) + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/facebook/zstd/releases/download/" + "v" version "/zstd-" version ".tar.gz")) + (sha256 + (base32 "1525b31jmbiczjj1n58nckdzky4cdnbwcsil3zgy4cx03v0a0cp8")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 07b0662754014f7ac8ab81ce6a8878d0cc206b19 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 9 Oct 2018 09:56:02 +0300 Subject: gnu: abiword: Remove wmf support. * gnu/packages/abiword.scm (abiword)[arguments]: Remove 'wmf' from the list of enabled plugins. --- gnu/packages/abiword.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index cf906c6ea4..02f132f6f0 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Marek Benc -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2018 Efraim Flashner ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Leo Famulari ;;; @@ -62,7 +62,7 @@ (build-system glib-or-gtk-build-system) (arguments ;; NOTE: rsvg is disabled, since Abiword `(#:configure-flags ;; supports it directly, and its BS is broken. - (list + (list ;; wmf was removed from Guix for security. "--enable-clipart" ;; TODO: The following plugins have unresolved "--enable-templates" ;; dependencies: aiksaurus, grammar, wpg, gda, (string-append ;; wordperfect, psion, mathview. @@ -73,7 +73,7 @@ "latex " "loadbindings " "mht " "mif " "mswrite " "opendocument " "openwriter " "openxml " "opml " "ots " "paint " "passepartout " "pdb " "pdf " "presentation " "s5 " "sdw " "t602 " "urldict " - "wikipedia " "wmf " "wml " "xslfo")) + "wikipedia " "wml " "xslfo")) ;; tests fail with: Gtk-CRITICAL **: gtk_settings_get_for_screen: ;; assertion 'GDK_IS_SCREEN (screen)' failed ;; GLib-GObject-CRITICAL **: g_object_get_qdata: -- cgit v1.2.3 From 31f45cf7be18d1cfc46a0ae785a3057227c4b185 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 9 Oct 2018 10:31:02 +0300 Subject: gnu: agg: Don't build examples. * gnu/packages/graphics.scm (agg)[arguments]: Disable building the examples. --- gnu/packages/graphics.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 58c742b825..79fd134bbe 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -705,7 +705,8 @@ and understanding different BRDFs (and other component functions).") (list (string-append "--x-includes=" (assoc-ref %build-inputs "libx11") "/include") (string-append "--x-libraries=" (assoc-ref %build-inputs "libx11") - "/lib")) + "/lib") + "--disable-examples") #:phases (modify-phases %standard-phases (add-after 'unpack 'autoreconf -- cgit v1.2.3 From 8d18edde755f4bf5b4723fc9ce89e1cd831d2b7b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 9 Oct 2018 10:32:16 +0300 Subject: * gnu: agg: Replace bootstrap phase. * gnu/packages/graphics.scm (agg)[arguments]: Remove custom 'autoreconf phase and replace default 'bootstrap phase. Use INVOKE. [native-inputs]: Remove bash. --- gnu/packages/graphics.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 79fd134bbe..c3c1a4a580 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -709,17 +709,16 @@ and understanding different BRDFs (and other component functions).") "--disable-examples") #:phases (modify-phases %standard-phases - (add-after 'unpack 'autoreconf + (replace 'bootstrap (lambda _ ;; let's call configure from configure phase and not now (substitute* "autogen.sh" (("./configure") "# ./configure")) - (zero? (system* "sh" "autogen.sh"))))))) + (invoke "sh" "autogen.sh")))))) (native-inputs `(("pkg-config" ,pkg-config) ("libtool" ,libtool) ("autoconf" ,autoconf) - ("automake" ,automake) - ("bash" ,bash))) + ("automake" ,automake))) (inputs `(("libx11" ,libx11) ("freetype" ,freetype) -- cgit v1.2.3 From 8658b81b1acb2d84171914236f63f5b9038f76ea Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 9 Oct 2018 11:01:39 +0300 Subject: gnu: augeas: Update to 1.11.0. * gnu/packages/augeas.scm (augeas): Update to 1.11.0. [source]: Remove snippet. --- gnu/packages/augeas.scm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/gnu/packages/augeas.scm b/gnu/packages/augeas.scm index 9495d4a0a4..fcba5bae7b 100644 --- a/gnu/packages/augeas.scm +++ b/gnu/packages/augeas.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus -;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017, 2018 Efraim Flashner ;;; Copyright © 2017 Eric Bavier ;;; ;;; This file is part of GNU Guix. @@ -32,24 +32,14 @@ (define-public augeas (package (name "augeas") - (version "1.10.1") + (version "1.11.0") (source (origin (method url-fetch) (uri (string-append "http://download.augeas.net/augeas-" version ".tar.gz")) (sha256 (base32 - "0k9nssn7lk58cl5zv3c8kv2zx9cm2yks3sj7q4fd6qdjz9m2bnsj")) - (modules '((guix build utils))) - (snippet - '(begin - ;; The gnulib test-lock test is prone to writer starvation - ;; with our glibc@2.25, which prefers readers, so disable it. - ;; The gnulib commit b20e8afb0b2 should fix this once - ;; incorporated here. - (substitute* "gnulib/tests/Makefile.in" - (("test-lock\\$\\(EXEEXT\\) ") "")) - #t)))) + "1c507qj6dfn2dnsl27w94zs9r45xrgm07y8bqba9ry2s0psfhg1r")))) (build-system gnu-build-system) ;; Marked as "required" in augeas.pc (propagated-inputs -- cgit v1.2.3 From 1fe57b3746de17c523a01e6c3e5a29bde5843018 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 9 Oct 2018 12:04:13 +0300 Subject: gnu: bs1770gain: Update to 0.5.0. * gnu/packages/audio.scm (bs1770gain): Update to 0.5.0. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 17b6363f7c..b858a35359 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -3087,7 +3087,7 @@ with support for HD extensions.") (define-public bs1770gain (package (name "bs1770gain") - (version "0.4.12") + (version "0.5.0") (source (origin (method url-fetch) @@ -3095,7 +3095,7 @@ with support for HD extensions.") version "/bs1770gain-" version ".tar.gz")) (sha256 (base32 - "0n9skdap1vnl6w52fx0gsrjlk7w3xgdwi62ycyf96h29rx059z6a")))) + "0vd7320k7s2zcn2vganclxbr1vav18ghld27rcwskvcc3dm8prii")))) (build-system gnu-build-system) (inputs `(("ffmpeg" ,ffmpeg) ("sox" ,sox))) -- cgit v1.2.3 From 276f368051ff52cf202ede9fce579e49d9d744ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 Oct 2018 09:24:24 +0200 Subject: tests: "make check-system" produces colored output. * build-aux/run-system-tests.scm (run-system-tests): Use 'with-status-report'. --- build-aux/run-system-tests.scm | 49 ++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/build-aux/run-system-tests.scm b/build-aux/run-system-tests.scm index 8b44f579a2..953ba3e221 100644 --- a/build-aux/run-system-tests.scm +++ b/build-aux/run-system-tests.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +19,7 @@ (define-module (run-system-tests) #:use-module (gnu tests) #:use-module (guix store) + #:use-module (guix status) #:use-module (guix monads) #:use-module (guix derivations) #:use-module (guix ui) @@ -63,25 +64,27 @@ (length tests)) (with-store store - (run-with-store store - (mlet* %store-monad ((drv (mapm %store-monad system-test-value tests)) - (out -> (map derivation->output-path drv))) - (mbegin %store-monad - (show-what-to-build* drv) - (set-build-options* #:keep-going? #t #:keep-failed? #t - #:print-build-trace #t - #:fallback? #t) - (built-derivations* drv) - (mlet %store-monad ((valid (filterm (store-lift valid-path?) - out)) - (failed (filterm (store-lift - (negate valid-path?)) - out))) - (format #t "TOTAL: ~a\n" (length drv)) - (for-each (lambda (item) - (format #t "PASS: ~a~%" item)) - valid) - (for-each (lambda (item) - (format #t "FAIL: ~a~%" item)) - failed) - (exit (null? failed)))))))) + (with-status-report print-build-event + (run-with-store store + (mlet* %store-monad ((drv (mapm %store-monad system-test-value tests)) + (out -> (map derivation->output-path drv))) + (mbegin %store-monad + (show-what-to-build* drv) + (set-build-options* #:keep-going? #t #:keep-failed? #t + #:print-build-trace #t + #:print-extended-build-trace? #t + #:fallback? #t) + (built-derivations* drv) + (mlet %store-monad ((valid (filterm (store-lift valid-path?) + out)) + (failed (filterm (store-lift + (negate valid-path?)) + out))) + (format #t "TOTAL: ~a\n" (length drv)) + (for-each (lambda (item) + (format #t "PASS: ~a~%" item)) + valid) + (for-each (lambda (item) + (format #t "FAIL: ~a~%" item)) + failed) + (exit (null? failed))))))))) -- cgit v1.2.3 From fe17037b387c6eca0c45f0526d2761e982a192bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 Oct 2018 09:53:02 +0200 Subject: status: Gracefully handle invalid UTF-8 in build logs. * guix/status.scm (maybe-utf8->string): New procedure. (build-event-output-port): Use it in lieu of 'utf8->string'. * tests/status.scm ("build-output-port, UTF-8") ("current-build-output-port, UTF-8 + garbage"): New tests. --- guix/status.scm | 19 ++++++++++++++++++- tests/status.scm | 22 +++++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/guix/status.scm b/guix/status.scm index c6956066fd..13537c70cd 100644 --- a/guix/status.scm +++ b/guix/status.scm @@ -34,6 +34,7 @@ #:use-module (ice-9 match) #:use-module (ice-9 format) #:use-module (ice-9 binary-ports) + #:autoload (ice-9 rdelim) (read-string) #:use-module (rnrs bytevectors) #:use-module ((system foreign) #:select (bytevector->pointer pointer->bytevector)) @@ -429,6 +430,22 @@ ON-CHANGE can display the build status, build events, etc." (define %newline (char-set #\return #\newline)) +(define (maybe-utf8->string bv) + "Attempt to decode BV as UTF-8 string and return it. Gracefully handle the +case where BV does not contain only valid UTF-8." + (catch 'decoding-error + (lambda () + (utf8->string bv)) + (lambda _ + ;; This is the sledgehammer but it's the only safe way we have to + ;; properly handle this. It's expensive but it's rarely needed. + (let ((port (open-bytevector-input-port bv))) + (set-port-encoding! port "UTF-8") + (set-port-conversion-strategy! port 'substitute) + (let ((str (read-string port))) + (close-port port) + str))))) + (define* (build-event-output-port proc #:optional (seed (build-status))) "Return an output port for use as 'current-build-output-port' that calls PROC with its current state value, initialized with SEED, on every build @@ -464,7 +481,7 @@ The second return value is a thunk to retrieve the current state." (pointer->bytevector ptr count))) (define (write! bv offset count) - (let loop ((str (utf8->string (bytevector-range bv offset count)))) + (let loop ((str (maybe-utf8->string (bytevector-range bv offset count)))) (match (string-index str %newline) ((? integer? cr) (let ((tail (string-take str (+ 1 cr)))) diff --git a/tests/status.scm b/tests/status.scm index 04dedb702c..486ad04dd2 100644 --- a/tests/status.scm +++ b/tests/status.scm @@ -20,7 +20,9 @@ #:use-module (guix status) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) - #:use-module (srfi srfi-64)) + #:use-module (srfi srfi-64) + #:use-module (rnrs bytevectors) + #:use-module (rnrs io ports)) (test-begin "status") @@ -112,4 +114,22 @@ (display "@ substituter-succeeded baz\n" port) (list first (get-status))))) +(test-equal "build-output-port, UTF-8" + '((build-log "lambda is λ!\n")) + (let-values (((port get-status) (build-event-output-port cons '())) + ((bv) (string->utf8 "lambda is λ!\n"))) + (put-bytevector port bv) + (force-output port) + (get-status))) + +(test-equal "current-build-output-port, UTF-8 + garbage" + ;; What about a mixture of UTF-8 + garbage? + '((build-log "garbage: �lambda: λ\n")) + (let-values (((port get-status) (build-event-output-port cons '()))) + (display "garbage: " port) + (put-bytevector port #vu8(128)) + (put-bytevector port (string->utf8 "lambda: λ\n")) + (force-output port) + (get-status))) + (test-end "status") -- cgit v1.2.3 From e54aec7b8e5ef1aa53df043e3c0b06f25d2936a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 Oct 2018 10:52:39 +0200 Subject: pull: '-l' now honors '-p'. * guix/scripts/pull.scm (process-query): Add 'profile' parameter and remove 'profile' local variable. (guix-pull): Adjust caller. --- guix/scripts/pull.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 803f7cf142..0d65857beb 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -341,11 +341,8 @@ and ALIST2 differ, display HEADING upfront." (display-new/upgraded-packages (package-alist gen1) (package-alist gen2))) -(define (process-query opts) - "Process any query specified by OPTS." - (define profile - (string-append (config-directory) "/current")) - +(define (process-query opts profile) + "Process any query on PROFILE specified by OPTS." (match (assoc-ref opts 'query) (('list-generations pattern) (define (list-generations profile numbers) @@ -445,7 +442,7 @@ Use '~/.config/guix/channels.scm' instead.")) (string-append (config-directory) "/current")))) (cond ((assoc-ref opts 'query) - (process-query opts)) + (process-query opts profile)) ((assoc-ref opts 'dry-run?) #t) ;XXX: not very useful (else -- cgit v1.2.3 From 88d9eccc116f29000df6062fdabe2b1377da158b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 Oct 2018 11:49:26 +0200 Subject: profiles: Make Geiser happy. * guix/profiles.scm (manual-database)[config.scm]: Use ungexp/quote trick to placate Geiser, which otherwise thinks it's in (guix config). --- guix/profiles.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 669ebe04e5..de3a044646 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1249,7 +1249,7 @@ the entries in MANIFEST." (define config.scm (scheme-file "config.scm" #~(begin - (define-module (guix config) + (define-module #$'(guix config) ;placate Geiser #:export (%libz)) (define %libz -- cgit v1.2.3 From 64965a068d82d1730097e61f6443a8812051934b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 Oct 2018 15:21:54 +0200 Subject: gnu: Add ttf2pt1. * gnu/packages/fontutils.scm (ttf2pt1): New variable. --- gnu/packages/fontutils.scm | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 30143eba34..09ba9b7e4a 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Nils Gillmann ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -190,6 +191,58 @@ TTF (TrueType/OpenType Font) files.") (license license:bsd-2) (home-page "https://github.com/wget/ttf2eot"))) +(define-public ttf2pt1 + (package + (name "ttf2pt1") + (version "3.4.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/ttf2pt1/ttf2pt1/" + version "/ttf2pt1-" version ".tgz")) + (sha256 + (base32 + "1l718n4k4widx49xz7qrj4mybzb8q67kp2jw7f47604ips4654mf")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove trailing backslashes in the sed expression of the + ;; 'install' rule since sed would otherwise fail. + (substitute* "Makefile" + (("\\|;\\\\[[:space:]]*$") "|; ")) + #t)))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ;no tests + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("INSTDIR =.*") + (string-append "INSTDIR = " out "\n")) + (("OWNER = .*") + "OWNER = `id -un`\n") + (("GROUP = .*") + "GROUP = `id -g`\n")) + #t))) + (replace 'build + (lambda _ + (invoke "make" "-j" + (number->string (parallel-job-count)) + "all" "CC=gcc")))))) + (inputs `(("perl" ,perl))) + (synopsis "Convert TrueType fonts to Postscript Type 1") + (description + "TTF2PT1 provides tools to convert most TrueType fonts (or other formats +supported by the FreeType library) to an Adobe Type 1 @file{.pfa} or +@file{.pfb} file. Another use is as a hinting engine: feed it an unhinted or +poorly hinted Adobe Type 1 font through the FreeType library and get it back +with freshly generated hints. The files produced by default are in +human-readable form, which further needs to be encoded with t1utilities to +work with most software requiring Type 1 fonts.") + (home-page "http://ttf2pt1.sourceforge.net/") + (license license:bsd-3))) + (define-public woff2 (let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede") (revision "1")) -- cgit v1.2.3 From b33e191c86b7638517ea838b63a54d031a033554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 Oct 2018 18:52:37 +0200 Subject: guix build: '-f' accepts file-like objects. * guix/scripts/build.scm (options->things-to-build)[validate-type]: Check for 'file-like?'. (options->derivations): Accept 'file-like?'. * tests/guix-build.sh: Add a test with 'computed-file'. * doc/guix.texi (Additional Build Options): Mention file-like objects. --- doc/guix.texi | 5 ++--- guix/scripts/build.scm | 6 +++++- tests/guix-build.sh | 4 ++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 3c116fc0be..9b37270a83 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6365,9 +6365,8 @@ retrieved using the @option{--log-file} option. @item --file=@var{file} @itemx -f @var{file} - -Build the package or derivation that the code within @var{file} -evaluates to. +Build the package, derivation, or other file-like object that the code within +@var{file} evaluates to (@pxref{G-Expressions, file-like objects}). As an example, @var{file} might contain a package definition like this (@pxref{Defining Packages}): diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 5a6ba62bc3..f3aa5512d5 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -623,7 +623,7 @@ must be one of 'package', 'all', or 'transitive'~%") "Read the arguments from OPTS and return a list of high-level objects to build---packages, gexps, derivations, and so on." (define (validate-type x) - (unless (or (package? x) (derivation? x) (gexp? x) (procedure? x)) + (unless (or (derivation? x) (file-like? x) (gexp? x) (procedure? x)) (leave (G_ "~s: not something we can build~%") x))) (define (ensure-list x) @@ -700,6 +700,10 @@ package '~a' has no source~%") (set-guile-for-build (default-guile)) (proc)) #:system system))) + ((? file-like? obj) + (list (run-with-store store + (lower-object obj system + #:target (assoc-ref opts 'target))))) ((? gexp? gexp) (list (run-with-store store (mbegin %store-monad diff --git a/tests/guix-build.sh b/tests/guix-build.sh index 92e7299321..7842ce87c6 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -221,6 +221,10 @@ guix build -e "(begin guix build -e '#~(mkdir #$output)' -d guix build -e '#~(mkdir #$output)' -d | grep 'gexp\.drv' +# Same with a file-like object. +guix build -e '(computed-file "foo" #~(mkdir #$output))' -d +guix build -e '(computed-file "foo" #~(mkdir #$output))' -d | grep 'foo\.drv' + # Building from a package file. cat > "$module_dir/package.scm"< Date: Tue, 9 Oct 2018 17:38:17 +0200 Subject: gnu: java-w3c-svg: Fix build. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported-by: Björn Höfling * gnu/packages/batik.scm (java-w3c-svg)[arguments]<#:phases>: Delete "patch-interface" phase. --- gnu/packages/batik.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm index cdd1e44713..180d7e7676 100644 --- a/gnu/packages/batik.scm +++ b/gnu/packages/batik.scm @@ -23,6 +23,7 @@ #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix build-system ant) + #:use-module (guix build utils) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages java) @@ -155,6 +156,11 @@ public interface EventListenerInitializer { (sha256 (base32 "0jicqcrxav8ggs37amgvvwgc2f0qp1c5wns4rb2i3si83s2m09ns")))) + (arguments + (substitute-keyword-arguments (package-arguments java-w3c-svg-1.0) + ((#:phases phases) + `(modify-phases ,phases + (delete 'patch-interface))))) (propagated-inputs `()))) -- cgit v1.2.3 From 9096c00629f2582c218d0f081aa78ef43560570c Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 9 Oct 2018 17:39:10 +0200 Subject: gnu: java-w3c-svg: Update synopsis and description. * gnu/packages/batik.scm (java-w3c-svg-1.0)[synopsis]: Modify. [description]: Modify. (java-w3c-svg)[synopsis]: Modify. [description]: Modify. --- gnu/packages/batik.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm index 180d7e7676..8296c0fbd6 100644 --- a/gnu/packages/batik.scm +++ b/gnu/packages/batik.scm @@ -140,8 +140,8 @@ public interface EventListenerInitializer { (native-inputs `(("unzip" ,unzip))) (home-page "https://www.w3.org/Style/CSS/SAC/") - (synopsis "W3C SVG interface") - (description "This package provides a SVG interface.") + (synopsis "W3C SVG 1.0 interface") + (description "This package provides a SVG 1.0 interface.") (license license:w3c))) (define-public java-w3c-svg @@ -162,7 +162,9 @@ public interface EventListenerInitializer { `(modify-phases ,phases (delete 'patch-interface))))) (propagated-inputs - `()))) + `()) + (synopsis "W3C SVG interface") + (description "This package provides a SVG interface."))) (define-public java-w3c-sac (package -- cgit v1.2.3 From 006a1d59ba66ac260a3f3e027db403a7d46eb3a5 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Wed, 10 Oct 2018 09:32:48 +0200 Subject: gnu: vkd3d: Update to 1.1. * gnu/packages/vulkan.scm (vkd3d): Update to 1.1. --- gnu/packages/vulkan.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index f256e21187..2474d640d7 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -346,11 +346,10 @@ shader compilation.") (license license:asl2.0)))) (define-public vkd3d - (let ((commit "020c119e2da0786d8be0615cff961c190b00d62d") ; Release 1.0. - (revision "0")) + (let ((commit "ecda316ef54d70bf1b3e860755241bb75873e53f")) ; Release 1.1. (package (name "vkd3d") - (version "1.0") + (version "1.1") (source (origin (method git-fetch) @@ -359,7 +358,7 @@ shader compilation.") (commit commit))) (sha256 (base32 - "084svxhigs8r0725jv6gs7wwrxb9x4igyg5bgvgpcfw4aq0k69gn")) + "05a28kspy8gzng181w28zjqdb3pj2ss83b0lwnppxbcdzsz7rvrf")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From e4c399fe155b2d268e41656edc0a55f718cb1100 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 9 Oct 2018 20:27:37 +0300 Subject: gnu: clisp: Update to 2.49.92. * gnu/packages/lisp.scm (clisp): Update to 2.49.92. [source]: Switch to git-fetch. Remove unneeded patch. [arguments]: Remove '--enable-portability' flag, add CFLAGS for armhf-linux. Update list of files needing substitutions in custom 'patch-sh-and-pwd phase. [home-page]: Update to new home-page. * gnu/packages/patches/clisp-glibc-2.26.patch: Remove file. & gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/lisp.scm | 36 +++++++++++++++++------------ gnu/packages/patches/clisp-glibc-2.26.patch | 20 ---------------- 3 files changed, 21 insertions(+), 36 deletions(-) delete mode 100644 gnu/packages/patches/clisp-glibc-2.26.patch diff --git a/gnu/local.mk b/gnu/local.mk index 821e83a675..af3773c893 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -621,7 +621,6 @@ dist_patch_DATA = \ %D%/packages/patches/clementine-fix-sqlite.patch \ %D%/packages/patches/clementine-remove-crypto++-dependency.patch \ %D%/packages/patches/clementine-use-openssl.patch \ - %D%/packages/patches/clisp-glibc-2.26.patch \ %D%/packages/patches/clisp-remove-failing-test.patch \ %D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/clx-remove-demo.patch \ diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 82ba6eedf0..ef98de057a 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -35,7 +35,6 @@ #:use-module (gnu packages m4) #:use-module (guix download) #:use-module (guix git-download) - #:use-module (guix hg-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system asdf) @@ -256,28 +255,31 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.") (define-public clisp (package (name "clisp") - (version "2.49-60") + (version "2.49-92") (source (origin - (method hg-fetch) - (uri (hg-reference - (url "http://hg.code.sf.net/p/clisp/clisp") - (changeset "clisp_2_49_60-2017-06-25"))) - (file-name (string-append name "-" version "-checkout")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/gnu-clisp/clisp") + (commit "clisp-2.49.92-2018-02-18"))) + (file-name (git-file-name name version)) (sha256 - (base32 "0qjv3z274rbdmb941hy03hl63f4z7bmci234f8dyz4skgfr82d3i")) - (patches (search-patches "clisp-glibc-2.26.patch" - "clisp-remove-failing-test.patch")))) + (base32 "0k2dmgl0miz3767iks4p0mvp6xw0ysyxhjpklyh11j010rmh6hqb")) + (patches (search-patches "clisp-remove-failing-test.patch")))) (build-system gnu-build-system) (inputs `(("libffcall" ,libffcall) ("ncurses" ,ncurses) ("readline" ,readline) ("libsigsegv" ,libsigsegv))) (arguments - '(#:configure-flags '("--enable-portability" - "--with-dynamic-ffi" - "--with-dynamic-modules" - "--with-module=rawsock") + `(#:configure-flags '(,@(if (string-prefix? "armhf-linux" + (or (%current-system) + (%current-target-system))) + '("CFLAGS=-falign-functions=4") + '()) + "--with-dynamic-ffi" + "--with-dynamic-modules" + "--with-module=rawsock") #:build #f #:phases (modify-phases %standard-phases @@ -288,6 +290,10 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.") ;; many places where our automatic patching misses them. Therefore ;; we do the following, in this early (post-unpack) phase, to solve ;; the problem from its root. + (substitute* '("src/clisp-link.in" + "src/unix.d" + "src/makemake.in") + (("/bin/sh") (which "sh"))) (substitute* (find-files "." "configure|Makefile") (("/bin/sh") "sh")) (substitute* '("src/clisp-link.in") @@ -295,7 +301,7 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.") #t))) ;; Makefiles seem to have race conditions. #:parallel-build? #f)) - (home-page "http://www.clisp.org/") + (home-page "https://clisp.sourceforge.io/") (synopsis "A Common Lisp implementation") (description "GNU CLISP is an implementation of ANSI Common Lisp. Common Lisp is a diff --git a/gnu/packages/patches/clisp-glibc-2.26.patch b/gnu/packages/patches/clisp-glibc-2.26.patch deleted file mode 100644 index c8920ceccc..0000000000 --- a/gnu/packages/patches/clisp-glibc-2.26.patch +++ /dev/null @@ -1,20 +0,0 @@ -This patch comes from Debian. - -Description: cfree is not present in glibc-2.26, stop wrapping it -Author: Adam Conrad -Bug: https://sourceforge.net/p/clisp/bugs/717/ -Bug-Debian: https://bugs.debian.org/880686 -Applied-Upstream: https://sourceforge.net/p/clisp/clisp/ci/3bc928712d150ff1e5f6b2bfb7838655f3ff52fa/ -Reviewed-By: Sébastien Villemot -Last-Update: 2017-11-27 - ---- clisp-2.49.20170913.orig/modules/bindings/glibc/linux.lisp -+++ clisp-2.49.20170913/modules/bindings/glibc/linux.lisp -@@ -649,7 +649,6 @@ - (def-call-out calloc (:arguments (nmemb size_t) (size size_t)) - (:return-type c-pointer)) - (def-call-out free (:arguments (ptr c-pointer)) (:return-type nil)) --(def-call-out cfree (:arguments (ptr c-pointer)) (:return-type nil)) - (def-call-out valloc (:arguments (size size_t)) (:return-type c-pointer)) - - (def-call-out abort (:arguments) (:return-type nil)) -- cgit v1.2.3 From 5ff15b86fcd2eae7d9f16f45597db0dce5ee5943 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 9 Oct 2018 20:30:35 +0300 Subject: gnu: lisp.scm: Arrange imported modules alphabetically. * gnu/packages/lisp.scm: Arrange imported modules alphabetically. --- gnu/packages/lisp.scm | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index ef98de057a..8b8b9229b5 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -29,40 +29,38 @@ #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) - #:use-module (gnu packages readline) - #:use-module (gnu packages texinfo) - #:use-module (gnu packages tex) - #:use-module (gnu packages m4) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system asdf) #:use-module (guix build-system trivial) + #:use-module (gnu packages admin) #:use-module (gnu packages base) + #:use-module (gnu packages bdw-gc) #:use-module (gnu packages compression) + #:use-module (gnu packages ed) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages m4) #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) - #:use-module (gnu packages bdw-gc) - #:use-module (gnu packages libffi) #:use-module (gnu packages libffcall) - #:use-module (gnu packages readline) - #:use-module (gnu packages sdl) + #:use-module (gnu packages libffi) #:use-module (gnu packages libsigsegv) #:use-module (gnu packages linux) - #:use-module (gnu packages admin) - #:use-module (gnu packages ed) - #:use-module (gnu packages gl) - #:use-module (gnu packages gcc) - #:use-module (gnu packages glib) - #:use-module (gnu packages gettext) - #:use-module (gnu packages m4) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) + #:use-module (gnu packages sdl) + #:use-module (gnu packages tex) + #:use-module (gnu packages texinfo) #:use-module (gnu packages version-control) #:use-module (gnu packages xorg) - #:use-module (gnu packages perl) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) -- cgit v1.2.3 From e7cdd311ae2696713da59a4f27614a246ca0f58a Mon Sep 17 00:00:00 2001 From: Mark Meyer Date: Fri, 14 Sep 2018 22:58:29 +0200 Subject: gnu: mlt: Prepare for kdenlive. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/video.scm (mlt): Update to 6.10.0. [inputs]: Add frei0r-plugins, gdk-pixbuf, gtk+-2, qtbase,qtsvg. [make-flags]: Add "CXX=g++ -std=gnu++11". Co-authored-by: Gábor Boskovits Signed-off-by: Gábor Boskovits --- gnu/packages/video.scm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 2f6a89e14d..3e191ef6da 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -29,6 +29,8 @@ ;;; Copyright © 2018 Brendan Tildesley ;;; Copyright © 2018 Arun Isaac ;;; Copyright © 2018 Björn Höfling +;;; Copyright © 2018 Mark Meyer +;;; Copyright © 2018 Gábor Boskovit ;;; ;;; This file is part of GNU Guix. ;;; @@ -1942,7 +1944,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (define-public mlt (package (name "mlt") - (version "6.4.1") + (version "6.10.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/mltframework/mlt/" @@ -1950,7 +1952,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47")) + "1zzdj1g3g24q6v8hd0v34lv0pkh37a13fhjpl44h1ffi00mz3577")) (modules '((guix build utils))) (snippet '(begin ;; As of glibc 2.26, no longer is. @@ -1960,7 +1962,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests - #:make-flags '("CC=gcc") + #:make-flags '("CC=gcc" "CXX=g++ -std=gnu++11") #:configure-flags (list "--enable-gpl3" "--enable-gpl") @@ -1979,11 +1981,16 @@ from sites like Twitch.tv and pipes them into a video player of choice.") `(("alsa-lib" ,alsa-lib) ("ffmpeg" ,ffmpeg-3.4) ("fftw" ,fftw) + ("frei0r-plugins" ,frei0r-plugins) + ("gdk-pixbuf" ,gdk-pixbuf) + ("gtk+" ,gtk+-2) ("libxml2" ,libxml2) ("jack" ,jack-1) ("ladspa" ,ladspa) ("libsamplerate" ,libsamplerate) ("pulseaudio" ,pulseaudio) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg) ("sdl" ,sdl) ("sox" ,sox))) (native-inputs -- cgit v1.2.3 From a50f5258c785929a5f77a80e1805b502dd0c78c8 Mon Sep 17 00:00:00 2001 From: Mark Meyer Date: Sat, 22 Sep 2018 21:28:25 +0200 Subject: gnu: Add kdenlive. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/kde.scm (kdenlive): New variable. Co-authored-by: Gábor Boskovits Signed-off-by: Gábor Boskovits --- gnu/packages/kde.scm | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index a835f42749..3dfba6d383 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -1,8 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 Thomas Danckaert -;;; Copyright © 2017 Mark Meyer +;;; Copyright © 2017, 2018 Mark Meyer ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Gábor Boskovits ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ (define-module (gnu packages kde) #:use-module (guix build-system cmake) #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) @@ -47,8 +49,87 @@ #:use-module (gnu packages tls) #:use-module (gnu packages qt) #:use-module (gnu packages version-control) + #:use-module (gnu packages video) #:use-module (gnu packages xorg)) +(define-public kdenlive + (let ((version "18.08.1")) + (package + (name "kdenlive") + (version version) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "git://anongit.kde.org/kdenlive.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0ifnaclsz7w08mc485i3j1kkcpd1m8q5qamckrfwc375ac13xf4g")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools))) + (propagated-inputs + `(("mlt" ,mlt))) + (inputs + `(("shared-mime-info" ,shared-mime-info) + ("frei0r-plugins" ,frei0r-plugins) + ("qtbase" ,qtbase) + ("qtscript" ,qtscript) + ("qtsvg" ,qtsvg) + ("kparts" ,kparts) + ("knotifications" ,knotifications) + ("karchive" ,karchive) + ("kdbusaddons" ,kdbusaddons) + ("kcrash" ,kcrash) + ("kguiaddons" ,kguiaddons) + ("knewstuff" ,knewstuff) + ("knotifyconfig" ,knotifyconfig) + ("kfilemetadata" ,kfilemetadata) + ("kdoctools" ,kdoctools) + ("kdeclarative", kdeclarative) + ("qtdeclarative", qtdeclarative) + ("qtquickcontrols", qtquickcontrols) + ("kiconthemes", kiconthemes) + ("qtgraphicaleffects" ,qtgraphicaleffects) + ("kplotting", kplotting))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (qtquickcontrols (assoc-ref inputs "qtquickcontrols")) + (qtbase (assoc-ref inputs "qtbase")) + (qtdeclarative (assoc-ref inputs "qtdeclarative")) + (frei0r (assoc-ref inputs "frei0r-plugins")) + (qml "/lib/qt5/qml")) + (wrap-program (string-append out "/bin/kdenlive") + `("QT_PLUGIN_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/plugins/")) + '("qtbase", "qtsvg"))) + `("FREI0R_PATH" ":" = + (,(string-append frei0r "/lib/frei0r-1/"))) + `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" = + (,(string-append qtbase "/lib/qt5/plugins/platforms"))) + `("QML2_IMPORT_PATH" ":" prefix + (,(string-append qtquickcontrols qml) + ,(string-append qtdeclarative qml))))) + #t))))) + (home-page "https://kdenlive.org") + (synopsis "Non-linear video editor") + (description "Kdenlive is an acronym for KDE Non-Linear Video Editor. + +Non-linear video editing is much more powerful than beginner's (linear) +editors, hence it requires a bit more organization before starting. However, +it is not reserved to specialists and can be used for small personal +projects.") + (license license:gpl2+)))) + (define-public kdevelop (package (name "kdevelop") -- cgit v1.2.3 From 296ad592166841c3b6762bc4e9114d12451498cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 10 Oct 2018 11:49:47 +0200 Subject: gnu: haunt: Make sure Guile-CommonMark and Guile-Reader are always visible. * gnu/packages/guile.scm (haunt)[arguments]: In 'wrap-haunt' phase, add Guile-Reader and Guile-CommonMark to the search paths. --- gnu/packages/guile.scm | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 1d330668a7..f7baff4718 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1192,13 +1192,15 @@ Guile's foreign function interface.") #:tests? #f ; test suite is non-deterministic :( #:phases (modify-phases %standard-phases (add-after 'install 'wrap-haunt - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) ;; Wrap the 'haunt' command to refer to the right ;; modules. (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (site (string-append - out "/share/guile/site"))) + out "/share/guile/site")) + (deps (list (assoc-ref inputs "guile-reader") + (assoc-ref inputs "guile-commonmark")))) (match (scandir site) (("." ".." version) (let ((modules (string-append site "/" version)) @@ -1207,9 +1209,19 @@ Guile's foreign function interface.") "/site-ccache"))) (wrap-program (string-append bin "/haunt") `("GUILE_LOAD_PATH" ":" prefix - (,modules)) + (,modules + ,@(map (lambda (dep) + (string-append dep + "/share/guile/site/" + version)) + deps))) `("GUILE_LOAD_COMPILED_PATH" ":" prefix - (,compiled-modules))) + (,compiled-modules + ,@(map (lambda (dep) + (string-append dep "/lib/guile/" + version + "/site-ccache")) + deps)))) #t))))))))) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From 6b009dbfea3e44a66533a5ea41879df669923cff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 10 Oct 2018 14:30:39 +0200 Subject: gnu: openal: Update source and home page URLs. Fixes . Reported by Nam Nguyen . * gnu/packages/audio.scm (openal)[source, home-page]: Update URLs. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index b858a35359..d233940f23 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1913,7 +1913,7 @@ lv2-c++-tools.") (source (origin (method url-fetch) (uri (string-append - "http://kcat.strangesoft.net/openal-releases/openal-soft-" + "http://openal-soft.org/openal-releases/openal-soft-" version ".tar.bz2")) (sha256 (base32 @@ -1950,7 +1950,7 @@ emitters are among the features handled by the API. More advanced effects, including air absorption, occlusion, and environmental reverb, are available through the EFX extension. It also facilitates streaming audio, multi-channel buffers, and audio capture.") - (home-page "http://kcat.strangesoft.net/openal.html") + (home-page "http://openal-soft.org/") (license license:lgpl2.0+))) (define-public freealut -- cgit v1.2.3 From 121f32a104de6d88774c4a819eb40334a618199c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 10 Oct 2018 14:48:46 +0200 Subject: gnu: guile-next: Update to 2.9.1. * gnu/packages/guile.scm (guile-next): Update to 2.9.1. [native-inputs, arguments]: Remove. [properties]: New field. --- gnu/packages/guile.scm | 39 ++++++++------------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index f7baff4718..e223edb9fc 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -323,39 +323,14 @@ without requiring the source code to be rewritten.") (package (inherit guile-2.2) (name "guile-next") - (version (git-version "2.99" revision commit)) + (version "2.9.1") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.savannah.gnu.org/git/guile.git") - (commit commit))) + (inherit (package-source guile-2.2)) + (uri (string-append "https://alpha.gnu.org/gnu/guile/guile-" + version ".tar.xz")) (sha256 (base32 - "1c2xy5cflg0hws48914rz3z8mdmf8w3lblfic0kxnymcmdv9cbhv")) - (file-name (git-file-name name version)))) - (native-inputs - `(("autoconf", autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("gettext" ,gnu-gettext) - ("texinfo" ,texinfo) - ("flex" ,flex) - ,@(package-native-inputs guile-2.2))) - (arguments - (substitute-keyword-arguments (package-arguments guile-2.2) - ((#:phases phases '%standard-phases) - ;; XXX: The default 'bootstrap' phase tries to execute the - ;; ./bootstrap directory. - `(modify-phases ,phases - (replace 'bootstrap - (lambda _ - (patch-shebang "build-aux/git-version-gen") - (invoke "autoreconf" "-vfi"))) - (add-before 'check 'skip-version-test - (lambda _ - ;; Remove this test that's bound to fail. - (delete-file "test-suite/tests/version.test") - #t)))))) + "0iba93yqn6mvgid0rfsrg4amym36pg9m8cqdplxsy222blrj9gh1")))) (native-search-paths (list (search-path-specification (variable "GUILE_LOAD_PATH") @@ -363,7 +338,9 @@ without requiring the source code to be rewritten.") (search-path-specification (variable "GUILE_LOAD_COMPILED_PATH") (files '("lib/guile/3.0/site-ccache" - "share/guile/site/3.0")))))))) + "share/guile/site/3.0"))))) + (properties '((ftp-server . "alpha.gnu.org") + (upstream-name . "guile")))))) (define (make-guile-readline guile) (package -- cgit v1.2.3 From 099bb0175f681e5f68dafb8ad973866f31fe515c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 10 Oct 2018 14:54:18 +0200 Subject: self: Use Guile 2.2 unconditionally for recent 'guix pull'. Fixes . Reported by Michael Bowcutt . * guix/self.scm (guix-derivation)[guile]: Use "2.2" when PULL-VERSION >= 1. Likewise for the #:guile-version argument. --- guix/self.scm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/guix/self.scm b/guix/self.scm index 126116e08a..ecf846490f 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -911,7 +911,11 @@ is not supported." version)) (define guile - (guile-for-build guile-version)) + ;; When PULL-VERSION >= 1, produce a self-contained Guix and use Guile 2.2 + ;; unconditionally. + (guile-for-build (if (>= pull-version 1) + "2.2" + guile-version))) (mbegin %store-monad (set-guile-for-build guile) @@ -920,9 +924,11 @@ is not supported." #:name (string-append "guix-" (shorten version)) #:pull-version pull-version - #:guile-version (match guile-version - ("2.2.2" "2.2") - (version version)) + #:guile-version (if (>= pull-version 1) + "2.2" + (match guile-version + ("2.2.2" "2.2") + (version version))) #:guile-for-build guile))) (if guix (lower-object guix) -- cgit v1.2.3 From 903378910e32a6981199a1669e67c46ca9be2187 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 10 Oct 2018 17:32:53 +0200 Subject: gnu: Add numlockx. * gnu/packages/xdisorg.scm (numlockx): New variable. --- gnu/packages/xdisorg.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index c31680b246..c92dbd1784 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -1497,3 +1497,27 @@ before the system goes to sleep.") "Pyperclip is a clipboard module for Python, handling copy/pasting from the X11 clipboard") (license license:bsd-3))) + +(define-public numlockx + (package + (name "numlockx") + (version "1.2") + (source (origin + (method git-fetch) + (uri (git-reference + ;; It seems that upstream is gone. + (url "https://github.com/rg3/numlockx") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2")))) + (build-system gnu-build-system) + (inputs + `(("xorg-server" ,xorg-server))) + (home-page "https://github.com/rg3/numlockx") + (synopsis "Turns on the numlock key in X11") + (description "@command{numlockx} is a tiny program that lets you turn on +the numlock key in X11. It can be called from the user's initialization files +to automatically turn it on on login.") + (license license:expat))) -- cgit v1.2.3 From d634db9401ac320383d45e24431442259cf6a2a4 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 10 Oct 2018 17:33:42 +0200 Subject: etc: Use git-file-name if origin is git-fetch. * etc/snippets/scheme-mode/guix-origin: Use git-file-name. --- etc/snippets/scheme-mode/guix-origin | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/etc/snippets/scheme-mode/guix-origin b/etc/snippets/scheme-mode/guix-origin index 68d47135db..1a068f8859 100644 --- a/etc/snippets/scheme-mode/guix-origin +++ b/etc/snippets/scheme-mode/guix-origin @@ -15,7 +15,9 @@ ((equal yas-text "hg-fetch") "hg-reference...") ((equal yas-text "cvs-fetch") "cvs-reference...") (t "(string-append \\"https://\\" version \\".tar.gz\\")"))}$0) - ${1:$(cond ((member yas-text '("git-fetch" "svn-fetch" "hg-fetch" "cvs-fetch")) + ${1:$(cond ((equal yas-text "git-fetch") + "(file-name (git-file-name name version))") + ((member yas-text '("svn-fetch" "hg-fetch" "cvs-fetch")) "(file-name (string-append name \\"-\\" version \\"-checkout\\"))") (t ""))} (sha256 -- cgit v1.2.3 From 3e70c3a06ed7cc93e8d25c2c7e69c1bc7d7cb57b Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 10 Oct 2018 17:43:51 +0200 Subject: gnu: emacs-evil-collection: Update to 0.0.1. * gnu/packages/emacs.scm (emacs-evil-collection): Update to 0.0.1. --- gnu/packages/emacs.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c9493dabd4..8945fcd5df 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -5200,11 +5200,11 @@ extensions.") (license license:gpl3+)))) (define-public emacs-evil-collection - (let ((commit "b55ae90f367e103e6568ae00779a8a51c68a0104") - (revision "3")) + (let ((commit "abc9dd60f71ccc1f24803a12d853f84b4a8b258c") + (revision "4")) (package (name "emacs-evil-collection") - (version (git-version "20180911" revision commit)) + (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -5213,7 +5213,7 @@ extensions.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0n7bzi5s7rqi78l1424sxvsk2g46z7ksq02xx5jrmqymnij90jml")))) + "0c9l93vrsl6kzx8gg305dq8qkb2dr3s10fww7lh382911pdmsh7v")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) -- cgit v1.2.3 From 8f3dc810b18280052fed56090a1f8034f7b5b008 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 10 Oct 2018 17:45:07 +0200 Subject: gnu: emacs-slime: Update to 2.22. * gnu/packages/emacs.scm (emacs-slime): Update to 2.22. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 8945fcd5df..4b013eb292 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3034,7 +3034,7 @@ in @code{html-mode}.") (define-public emacs-slime (package (name "emacs-slime") - (version "2.20") + (version "2.22") (source (origin (file-name (string-append name "-" version ".tar.gz")) @@ -3044,7 +3044,7 @@ in @code{html-mode}.") version ".tar.gz")) (sha256 (base32 - "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk")))) + "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms")))) (build-system emacs-build-system) (native-inputs `(("texinfo" ,texinfo))) -- cgit v1.2.3 From 4feb589bf48cbbd2d524002456fa822acf856bc3 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 10 Oct 2018 18:06:08 +0200 Subject: doc: Add recommendations for good origin URLs. * doc/contributing.texi (Submitting Patches): URL recommendations. --- doc/contributing.texi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/contributing.texi b/doc/contributing.texi index 68d8e7e2fb..91a87ef2dd 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -468,6 +468,14 @@ Please follow our code formatting rules, possibly running the @command{etc/indent-code.el} script to do that automatically for you (@pxref{Formatting Code}). +@item +When possible, use mirrors in the source URL (@pxref{Invoking guix download}). +Use reliable URLs, not generated ones. For instance, GitHub archives are not +necessarily identical from one generation to the next, so in this case it's +often better to clone the repository. Don't use the @command{name} field in +the URL: it is not very useful and if the name changes, the URL will probably +be wrong. + @end enumerate When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as -- cgit v1.2.3 From 8984dbd0deb380f6706d36bc9f1aaa061c0e751a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 19:45:27 +0200 Subject: gnu: volume-key: Update to 0.3.12. * gnu/packages/disk.scm (volume-key): Update to 0.3.12. --- gnu/packages/disk.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index fa3a0431a5..a9c355e412 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -559,28 +559,28 @@ automatically finding out which program to use for what file type.") (define-public volume-key (package (name "volume-key") - (version "0.3.11") + (version "0.3.12") (source (origin (method url-fetch) (uri (string-append "https://releases.pagure.org/volume_key/volume_key-" version ".tar.xz")) (sha256 (base32 - "0vaz15rcgdkh5z4yxc22x76wi44gh50jxnrqz5avaxz4bb17kcp6")))) + "16rhfz6sjwxlmss1plb2wv2i3jq6wza02rmz1d2jrlnsq67p98vc")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("util-linux" ,util-linux) ("swig" ,swig) - ("python" ,python-3))) ; Used to generate the Python bindings. + ("python" ,python-3))) ; used to generate the Python bindings (inputs `(("cryptsetup" ,cryptsetup) ("nss" ,nss) - ("lvm2" ,lvm2) ; For "-ldevmapper". + ("lvm2" ,lvm2) ; for "-ldevmapper" ("glib" ,glib) ("gpgme" ,gpgme))) (arguments - `(#:tests? #f ; Not sure how tests are supposed to pass, even when run manually. + `(#:tests? #f ; not sure how tests are supposed to pass, even when run manually #:phases (modify-phases %standard-phases (add-before 'configure 'patch-python.h-path -- cgit v1.2.3 From 4273a7ef65ce3b89b592093e2a07ecb5a9081d7a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 20:05:18 +0200 Subject: gnu: libblockdev: Update to 2.20. * gnu/packages/disk.scm (libblockdev): Update to 2.20. [license]: Update to match fixed licence headers. --- gnu/packages/disk.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index a9c355e412..338678b8d1 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -698,14 +698,15 @@ to create devices with respective mappings for the ATARAID sets discovered.") (define-public libblockdev (package (name "libblockdev") - (version "2.18") + (version "2.20") (source (origin (method url-fetch) - (uri (string-append "https://github.com/storaged-project/libblockdev/releases/download/" + (uri (string-append "https://github.com/storaged-project/" + "libblockdev/releases/download/" version "-1/libblockdev-" version ".tar.gz")) (sha256 (base32 - "1a3kpdr9s6g7nfibazi92i27wbv692b5gm2r24gimis6l6jq4pbh")))) + "092snk5jyv48na4d46v1ckiy859zwpb3r0ivnxv3km5vzsp76y7q")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -738,6 +739,4 @@ manipulation of block devices. It has a plugin-based architecture where each technology (like LVM, Btrfs, MD RAID, Swap...) is implemented in a separate plugin, possibly with multiple implementations (e.g. using LVM CLI or the new LVM D-Bus API).") - ;; XXX: Copying says LGPL2.1, but the source files with license - ;; information are GPL2+. - (license license:gpl2+))) + (license license:lgpl2.1+))) -- cgit v1.2.3 From 1f033795e25f177bb52efe8e98aee7001ba8ccd0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 21:10:23 +0200 Subject: gnu: ndctl: Update to 63. * gnu/packages/disk.scm (ndctl): Update to 63. [source]: Use GIT-FILE-NAME. [native-inputs]: Add bash-completion. [arguments]: Add '--disable-asciidoctor' and '--without-systemd' #:configure-flags. Don't bother patching unused ./autogen.sh in 'patch-FHS-file-names' phase. --- gnu/packages/disk.scm | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 338678b8d1..04fe3deb38 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -600,27 +600,28 @@ passphrases.") (define-public ndctl (package (name "ndctl") - (version "61.2") + (version "63") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/pmem/ndctl") + (url "https://github.com/pmem/ndctl.git") (commit (string-append "v" version)))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 - "0vid78jzhmzh505bpwn8mvlamfhcvl6rlfjc29y4yn7zslpydxl7")))) + "060nsza8xic769bxj3pvl70a9885bwrc0myw16l095i3z6w7yzwq")))) (build-system gnu-build-system) (native-inputs `(("asciidoc" ,asciidoc) ("automake" ,automake) ("autoconf" ,autoconf) + ("bash-completion" ,bash-completion) ("docbook-xsl" ,docbook-xsl) ("libtool" ,libtool) ("libxml2" ,libxml2) ("pkg-config" ,pkg-config) ("xmlto" ,xmlto) - ;; Required for offline docbook generation: + ;; Required for offline docbook generation. ("which" ,which))) (inputs `(("eudev" ,eudev) @@ -628,12 +629,13 @@ passphrases.") ("kmod" ,kmod) ("util-linux" ,util-linux))) (arguments - `(#:phases + `(#:configure-flags + (list "--disable-asciidoctor" ; use docbook-xsl instead + "--without-systemd") + #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-FHS-file-names (lambda _ - (substitute* "autogen.sh" - (("/bin/sh") (which "sh"))) (substitute* "git-version-gen" (("/bin/sh") (which "sh"))) (substitute* "git-version" -- cgit v1.2.3 From 3820d51bec3997bb336d6f7c5eff7c97958b13ae Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 22:10:52 +0200 Subject: Order (gnu packages disk) module imports alphabetically. * gnu/packages/disk.scm (define-module): Order module imports alphabetically. --- gnu/packages/disk.scm | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 04fe3deb38..8b843a7417 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -30,22 +30,24 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages disk) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix build-system gnu) - #:use-module (guix build-system trivial) - #:use-module (guix build-system python) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages c) #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages cryptsetup) #:use-module (gnu packages databases) #:use-module (gnu packages docbook) + #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) - #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages linux) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) @@ -53,20 +55,18 @@ #:use-module (gnu packages popt) #:use-module (gnu packages python) #:use-module (gnu packages readline) - #:use-module (gnu packages guile) - #:use-module (gnu packages compression) + #:use-module (gnu packages swig) #:use-module (gnu packages vim) #:use-module (gnu packages w3m) - #:use-module (gnu packages xml) - #:use-module (gnu packages cryptsetup) - #:use-module (gnu packages gnuzilla) - #:use-module (gnu packages gnupg) - #:use-module (gnu packages swig) - #:use-module (gnu packages autotools) #:use-module (gnu packages web) - #:use-module (gnu packages documentation) - #:use-module (gnu packages bash) - #:use-module (gnu packages c)) + #:use-module (gnu packages xml) + #:use-module (guix build-system gnu) + #:use-module (guix build-system python) + #:use-module (guix build-system trivial) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages)) (define-public parted (package -- cgit v1.2.3 From 3d0fdb34a24dda76130aae3e60743e2191fe3e3d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 22:05:37 +0200 Subject: gnu: ranger: Update to 1.9.2. * gnu/packages/disk.scm (ranger): Update to 1.9.2. [native-inputs]: Order alphabetically. [arguments]: Actually run tests and remove useless #:test-target. --- gnu/packages/disk.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 8b843a7417..d88dbc8921 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -517,25 +517,24 @@ Duperemove can also take input from the @command{fdupes} program.") (define-public ranger (package (name "ranger") - (version "1.9.1") + (version "1.9.2") (source (origin (method url-fetch) (uri (string-append "https://ranger.github.io/" "ranger-" version ".tar.gz")) (sha256 (base32 - "1lnzkrxcnlwnyi3z0v8ybyp8d5rm26qm35rr68kbs2lbs06inha0")))) + "12kbsqakbxs09y0x8hy66mmaf72rk0p850x7ryk2ghkq7wfin78f")))) (build-system python-build-system) (inputs `(("w3m" ,w3m))) (native-inputs ;for tests - `(("python-pytest" ,python-pytest) + `(("python-flake8" ,python-flake8) ("python-pylint" ,python-pylint) - ("python-flake8" ,python-flake8) + ("python-pytest" ,python-pytest) ("which" ,which))) (arguments - '(#:test-target "test" - #:phases + '(#:phases (modify-phases %standard-phases (add-after 'configure 'wrap-program ;; Tell 'ranger' where 'w3mimgdisplay' is. @@ -547,7 +546,11 @@ Duperemove can also take input from the @command{fdupes} program.") "/libexec/w3m/w3mimgdisplay"))) (wrap-program ranger `("W3MIMGDISPLAY_PATH" ":" prefix (,w3mimgdisplay))) - #t)))))) + #t))) + (replace 'check + ;; Running 'make test' simply prints 'Ran 0 tests in 0.000s'. + (lambda _ + (invoke "py.test" "tests")))))) (home-page "https://ranger.github.io/") (synopsis "Console file manager") (description "ranger is a console file manager with Vi key bindings. It -- cgit v1.2.3 From 47f9fb18a3b40a702368cc2dd70e3db1c95679f7 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 10 Oct 2018 12:16:51 +0200 Subject: gnu: Add kicad-symbols. * gnu/packages/engineering.scm (kicad-symbols): New variable. --- gnu/packages/engineering.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index ee524ec78e..0080356494 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -823,6 +823,30 @@ electrical diagrams), gerbview (viewing Gerber files) and others.") render model libraries.") (license license:lgpl2.0+)))) +(define-public kicad-symbols + (package + (name "kicad-symbols") + (version "5.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KiCad/kicad-symbols.git") + (commit version))) + (file-name (string-append "kicad-symbols-" version "-checkout")) + (sha256 + (base32 + "18z5vpdq7hy2mpvm5vz1dz3ra3a5iybavvlzi8q2bmmdb6gsvf64")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) ; No tests exist + (home-page "http://kicad-pcb.org/") + (synopsis "Official KiCad schematic symbol libraries for KiCad 5") + (description "This package contains the official KiCad schematic symbol +libraries for KiCad 5.") + ;; TODO: Exception: "To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material', then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided as part of the 'Licensed Material'." + ;; See . + (license license:cc-by-sa4.0))) + (define-public linsmith (package (name "linsmith") -- cgit v1.2.3 From 43c97cceae055fc59ca14ddc5b3475d66f98de37 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 22:28:40 +0200 Subject: gnu: ranger: More test tweaks. There's no functional difference between 'make test_pytest' and running 'py.test' directly, but there may be in future. This follows up on commit 14173b3c6765bd8fcb2b12ea28fc27226645c7e1. * gnu/packages/disk.scm (ranger)[arguments]: Use #:test-target to run the (same) tests through 'make'. [native-inputs]: Remove left-over python-flake8 and python-pylint. --- gnu/packages/disk.scm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index d88dbc8921..2158da6a81 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -528,13 +528,15 @@ Duperemove can also take input from the @command{fdupes} program.") (build-system python-build-system) (inputs `(("w3m" ,w3m))) - (native-inputs ;for tests - `(("python-flake8" ,python-flake8) - ("python-pylint" ,python-pylint) - ("python-pytest" ,python-pytest) - ("which" ,which))) + (native-inputs + `(("which" ,which) + + ;; For tests. + ("python-pytest" ,python-pytest))) (arguments - '(#:phases + '( ;; The 'test' target runs developer tools like pylint, which fail. + #:test-target "test_pytest" + #:phases (modify-phases %standard-phases (add-after 'configure 'wrap-program ;; Tell 'ranger' where 'w3mimgdisplay' is. @@ -548,9 +550,9 @@ Duperemove can also take input from the @command{fdupes} program.") `("W3MIMGDISPLAY_PATH" ":" prefix (,w3mimgdisplay))) #t))) (replace 'check - ;; Running 'make test' simply prints 'Ran 0 tests in 0.000s'. - (lambda _ - (invoke "py.test" "tests")))))) + ;; The default check phase simply prints 'Ran 0 tests in 0.000s'. + (lambda* (#:key test-target #:allow-other-keys) + (invoke "make" test-target)))))) (home-page "https://ranger.github.io/") (synopsis "Console file manager") (description "ranger is a console file manager with Vi key bindings. It -- cgit v1.2.3 From f825faa502b0c149c430a08268bc972ff5e8c1cd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 22:44:16 +0200 Subject: gnu: python-pickleshare: Update to 0.7.5. * gnu/packages/databases.scm (python-pickleshare): Update to 0.7.5. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 9c966494ad..73026c5e66 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -2420,13 +2420,13 @@ SQLAlchemy Database Toolkit for Python.") (define-public python-pickleshare (package (name "python-pickleshare") - (version "0.7.4") + (version "0.7.5") (source (origin (method url-fetch) (uri (pypi-uri "pickleshare" version)) (sha256 - (base32 "0yvk14dzxk7g6qpr7iw23vzqbsr0dh4ij4xynkhnzpfz4xr2bac4")))) + (base32 "1jmghg3c53yp1i8cm6pcrm280ayi8621rwyav9fac7awjr3kss47")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From 893c340c3af3fb1426d11f7a9f613f9837054ac5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 22:59:13 +0200 Subject: gnu: haveged: Update to 1.9.4. * gnu/packages/linux.scm (haveged): Update to 1.9.4. [source]: Use GIT-FETCH and GIT-FILE-NAME from new (development) home. --- gnu/packages/linux.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d52e8d7d19..c6c5a585e1 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3737,15 +3737,16 @@ such as frequency and voltage scaling.") (define-public haveged (package (name "haveged") - (version "1.9.2") + (version "1.9.4") (source (origin - (method url-fetch) - (uri (string-append "http://www.issihosts.com/haveged/haveged-" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/jirka-h/haveged.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0w5ypz6451msckivjriwyw8djydlwffam7x23xh626s2vzdrlzgp")))) + (base32 "1hrwzjd4byq4fdrg8svww3d8x449k80jxxrjy9v6jvzhfv19rvxr")))) (build-system gnu-build-system) (home-page "http://www.issihosts.com/haveged") (synopsis "Entropy source for the Linux random number generator") -- cgit v1.2.3 From b71a34887bc21d84e0f6d44d3bb765f3ad50eeb9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 23:00:38 +0200 Subject: gnu: haveged: Mark up description. * gnu/packages/linux.scm (haveged)[description]: Use @dfn{} and split into two paragraphs. --- gnu/packages/linux.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c6c5a585e1..b7457a4687 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3755,11 +3755,12 @@ such as frequency and voltage scaling.") Linux's @file{/dev/random} and @file{/dev/urandom} devices. The kernel's standard mechanisms for filling the entropy pool may not be sufficient for systems with high needs or limited user interaction, such as headless servers. + @command{haveged} runs as a privileged daemon, harvesting randomness from the indirect effects of hardware events on hidden processor state using the HArdware -Volatile Entropy Gathering and Expansion (HAVEGE) algorithm. It tunes itself to -its environment and provides the same built-in test suite for the output stream -as used on certified hardware security devices.") +Volatile Entropy Gathering and Expansion (@dfn{HAVEGE}) algorithm. It tunes +itself to its environment and provides the same built-in test suite for the +output stream as used on certified hardware security devices.") (license (list (license:non-copyleft "file://nist/mconf.h") (license:non-copyleft "file://nist/packtest.c") license:public-domain ; nist/dfft.c -- cgit v1.2.3 From 50298d4a8139f188d2bc4882e9808ccb8b16a387 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 23:43:23 +0200 Subject: gnu: perftest: Update to 4.4-0.4. * gnu/packages/linux.scm (perftest): Update to 4.4-0.4. --- gnu/packages/linux.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b7457a4687..b65bf9ba09 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3626,14 +3626,14 @@ The following service daemons are also provided: (define-public perftest (package (name "perftest") - (version "4.2-0.8") + (version "4.4-0.4") (source (origin (method url-fetch) - (uri (string-append "https://github.com/linux-rdma/perftest/releases/download/V" - version "/perftest-" version ".g0e24e67.tar.gz")) + (uri (string-append "https://github.com/linux-rdma/perftest/releases/download/v" + version "/perftest-" version ".g0927198.tar.gz")) (sha256 - (base32 "1r3pxn7cx3grb8myb4q1b0pk447pc06cifd0v7ym13xw00372dlx")))) + (base32 "11ix4h0rrmqqyi84y55a9xnkvwsmwq0sywr46hvxzm4rqz4ma8vq")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 43abffa1a3f216aa7cffaa748d3453e30f3e8839 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 23:45:55 +0200 Subject: gnu: hdparm: Update to 9.56. * gnu/packages/linux.scm (hdparm): Update to 9.56. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b65bf9ba09..9b16083eab 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2668,14 +2668,14 @@ isolation or root privileges.") (define-public hdparm (package (name "hdparm") - (version "9.55") + (version "9.56") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version ".tar.gz")) (sha256 (base32 - "1ivdvrzimaayiq03by8mcq0mhmdljndj06h012zkdpw34irnpixm")))) + "1np42qyhb503khvacnjcl3hb1dqly68gj0a1xip3j5qhbxlyvybg")))) (build-system gnu-build-system) (arguments `(#:make-flags (let ((out (assoc-ref %outputs "out"))) -- cgit v1.2.3 From 272fc9dca35c06d431e59e68a2a05ed8c2c3ce96 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 23:54:17 +0200 Subject: gnu: tlp: Return #t from phases. * gnu/packages/linux.scm (tlp)[argument]: Return #t all from phases. --- gnu/packages/linux.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 9b16083eab..344f3ea397 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4250,12 +4250,14 @@ Light is the successor of lightscript.") (setenv "TLP_SHCPL" (string-append out "/share/bash-completion/completions")) (setenv "TLP_MAN" (string-append out "/share/man")) - (setenv "TLP_META" (string-append out "/share/metainfo"))))) + (setenv "TLP_META" (string-append out "/share/metainfo")) + #t))) (delete 'check) ; no tests (add-before 'install 'fix-installation (lambda _ ;; Stop the Makefile from trying to create system directories. - (substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#")))) + (substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#")) + #t)) (replace 'install (lambda _ (invoke "make" "install-tlp" "install-man") @@ -4289,7 +4291,8 @@ Light is the successor of lightscript.") "pciutils" "rfkill" "wireless-tools")))))) - bin-files))))))) + bin-files) + #t)))))) (home-page "http://linrunner.de/en/tlp/tlp.html") (synopsis "Power management tool for Linux") (description "TLP is a power management tool for Linux. It comes with -- cgit v1.2.3 From dc5282f9ea1142230b8361c788b30c9355af575b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 23:57:29 +0200 Subject: gnu: hexchat: Update to 2.14.2. * gnu/packages/messaging.scm (hexchat): Update to 2.14.2. --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 8ac86a852f..d2b61b9ec5 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -249,14 +249,14 @@ access to servers running the Discord protocol.") (define-public hexchat (package (name "hexchat") - (version "2.14.1") + (version "2.14.2") (source (origin (method url-fetch) (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-" version ".tar.xz")) (sha256 (base32 - "18h3l34zmazjlfx3irg7k7swppa62ad9ffbl0j3ry8p2xfyf8cmh")))) + "064nq151nzsljv97dmkifyl162d2738vbgvm1phx7yv04pjvk4kp")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) ("perl" ,perl) -- cgit v1.2.3 From e05fe1f91701c28e1a05ae13057601cef7aacf3c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 10 Oct 2018 23:17:14 -0400 Subject: gnu: linux-libre@4.4: Update to 4.4.160. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.160. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 344f3ea397..6020330cd3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -452,8 +452,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.159" - "12wrhni1ikmakwv55cgzsznx9llzp82irsisbjjs7bc8z2hzwr6l" + (make-linux-libre "4.4.160" + "1337p94j1hyc2gaw51wvlv622wwj2af1y8rafyfgp1403cs7ghp4" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 0e8f0803b5b2abd1c99408c508e8b36db32df9c5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 10 Oct 2018 23:17:53 -0400 Subject: gnu: linux-libre@4.9: Update to 4.9.132. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.132. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6020330cd3..261a8e28fa 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -446,8 +446,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.131" - "11pxwl7dmisbf2szg9qzkvhlpk68clh5l478n7b62q7hd8j3hxlv" + (make-linux-libre "4.9.132" + "1s4zsv04bdafqqn8i6ab3lxjbh45v20dbm31mb52hfyzlfp4sjp5" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 4f1d7e386b8ff6f83f109e06ca3ccbaa0f9f617f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 10 Oct 2018 23:18:28 -0400 Subject: gnu: linux-libre@4.14: Update to 4.14.75. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.75. (%linux-libre-4.14-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 261a8e28fa..367ee4da29 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -436,8 +436,8 @@ It has been modified to remove all non-free binary blobs.") #:patches %linux-libre-4.18-patches #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.74") -(define %linux-libre-4.14-hash "0cxyx2yinnc8q0hmhb0swjgdz3s0ry7wxzyqss9f2i74xjjz4rm0") +(define %linux-libre-4.14-version "4.14.75") +(define %linux-libre-4.14-hash "0ljcjsc6lxq4q5dxy9kgnngasyqmv6rhl9yyqxrfzm41qbqfn64l") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version -- cgit v1.2.3 From 2faf2edf5880a47d70b716b1780465eb1671c855 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 10 Oct 2018 23:19:36 -0400 Subject: gnu: linux-libre: Update to 4.18.13. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.18.13. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 367ee4da29..8983ed35e4 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -405,8 +405,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.18.12") -(define %linux-libre-hash "1mcnb1mm7m6i9s591c3kx0f1vbzhbl3w92w137swcm9zifqpci5r") +(define %linux-libre-version "4.18.13") +(define %linux-libre-hash "0jqlmzml67dp5708d4giga48vv4npgs3mbnzdrigaxgca5c69qck") (define %linux-libre-4.18-patches (list %boot-logo-patch -- cgit v1.2.3 From a8fa86c47781e3e5f6cb58468446ede59b3ba3f4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 11 Oct 2018 10:30:00 +0200 Subject: gnu: Add python-cvxopt. * gnu/packages/maths.scm (python-cvxopt, python2-cvxopt): New variables. --- gnu/packages/maths.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 766c6e920f..d4128f55c4 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -239,6 +239,50 @@ triangulations.") (license (license:non-copyleft "file://COPYING.txt" "See COPYING in the distribution.")))) +(define-public python-cvxopt + (package + (name "python-cvxopt") + (version "1.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cvxopt/cvxopt.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05mnjil9palaa48xafdfh4f5pr4z7aqjr995rwl08qfyxs8y0crf")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'find-libraries + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CVXOPT_BLAS_LIB" "openblas") + (setenv "CVXOPT_BUILD_FFTW" "1") + (setenv "CVXOPT_BUILD_GLPK" "1") + (setenv "CVXOPT_BUILD_GSL" "1") + #t))))) + (inputs + `(("fftw" ,fftw) + ("glpk" ,glpk) + ("gsl" ,gsl) + ("lapack" ,lapack) + ("openblas" ,openblas) + ("suitesparse" ,suitesparse))) + (home-page "https://www.cvxopt.org") + (synopsis "Python library for convex optimization") + (description + "CVXOPT is a package for convex optimization based on the Python +programming language. Its main purpose is to make the development of software +for convex optimization applications straightforward by building on Python’s +extensive standard library and on the strengths of Python as a high-level +programming language.") + (license license:gpl3+))) + +(define-public python2-cvxopt + (package-with-python2 python-cvxopt)) + (define-public units (package (name "units") -- cgit v1.2.3 From e8a7eab169b84ef66c0fb39b3f20ec8af047d5c0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 11 Oct 2018 16:12:11 +0200 Subject: gnu: kallisto: Update to 0.44.0. * gnu/packages/bioinformatics.scm (kallisto): Update to 0.44.0. [source]: Fetch from git. [arguments]: Add build phase to use htslib from Guix. [inputs]: Add htslib. --- gnu/packages/bioinformatics.scm | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index ed713cd144..91bb94c549 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -11735,19 +11735,39 @@ using nucleotide or amino-acid sequence data.") (define-public kallisto (package (name "kallisto") - (version "0.43.1") + (version "0.44.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/pachterlab/" - "kallisto/archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/pachterlab/kallisto.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "03j3iqhvq7ya3c91gidly3k3jvgm97vjq4scihrlxh315j696r11")))) + "0nj382jiywqnpgvyhichajpkkh5r0bapn43f4dx40zdaq5v4m40m")))) (build-system cmake-build-system) - (arguments `(#:tests? #f)) ; no "check" target + (arguments + `(#:tests? #f ; no "check" target + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'do-not-use-bundled-htslib + (lambda _ + (substitute* "CMakeLists.txt" + (("^ExternalProject_Add" m) + (string-append "if (NEVER)\n" m)) + (("^\\)") + (string-append ")\nendif(NEVER)")) + (("include_directories\\(\\$\\{htslib_PREFIX.*" m) + (string-append "# " m))) + (substitute* "src/CMakeLists.txt" + (("target_link_libraries\\(kallisto kallisto_core pthread \ +\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/../ext/htslib/libhts.a\\)") + "target_link_libraries(kallisto kallisto_core pthread hts)") + (("include_directories\\(\\.\\./ext/htslib\\)") "")) + #t))))) (inputs `(("hdf5" ,hdf5) + ("htslib" ,htslib) ("zlib" ,zlib))) (home-page "http://pachterlab.github.io/kallisto/") (synopsis "Near-optimal RNA-Seq quantification") -- cgit v1.2.3 From 77dcfb4c028417bed53c523dbb8c314e9556f85b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 11 Oct 2018 18:04:51 +0200 Subject: profiles: Add 'ensure-profile-directory'. * guix/scripts/package.scm (ensure-default-profile): Move /var/guix/profiles/per-user handling to... * guix/profiles.scm (ensure-profile-directory): ... here. New procedure. * po/guix/POTFILES.in: Add 'guix/profiles.scm'. --- guix/profiles.scm | 43 ++++++++++++++++++++++++++++++++++++++++++- guix/scripts/package.scm | 40 ++-------------------------------------- po/guix/POTFILES.in | 1 + 3 files changed, 45 insertions(+), 39 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index de3a044646..6c3b26423e 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -28,7 +28,8 @@ #:use-module ((guix config) #:select (%state-directory)) #:use-module ((guix utils) #:hide (package-name->name+version)) #:use-module ((guix build utils) - #:select (package-name->name+version)) + #:select (package-name->name+version mkdir-p)) + #:use-module (guix i18n) #:use-module (guix records) #:use-module (guix packages) #:use-module (guix derivations) @@ -127,6 +128,7 @@ %user-profile-directory %profile-directory %current-profile + ensure-profile-directory canonicalize-profile user-friendly-profile)) @@ -1610,6 +1612,45 @@ because the NUMBER is zero.)" ;; coexist with Nix profiles. (string-append %profile-directory "/guix-profile")) +(define (ensure-profile-directory) + "Attempt to create /…/profiles/per-user/$USER if needed." + (let ((s (stat %profile-directory #f))) + (unless (and s (eq? 'directory (stat:type s))) + (catch 'system-error + (lambda () + (mkdir-p %profile-directory)) + (lambda args + ;; Often, we cannot create %PROFILE-DIRECTORY because its + ;; parent directory is root-owned and we're running + ;; unprivileged. + (raise (condition + (&message + (message + (format #f + (G_ "while creating directory `~a': ~a") + %profile-directory + (strerror (system-error-errno args))))) + (&fix-hint + (hint + (format #f (G_ "Please create the @file{~a} directory, \ +with you as the owner.") + %profile-directory)))))))) + + ;; Bail out if it's not owned by the user. + (unless (or (not s) (= (stat:uid s) (getuid))) + (raise (condition + (&message + (message + (format #f (G_ "directory `~a' is not owned by you") + %profile-directory))) + (&fix-hint + (hint + (format #f (G_ "Please change the owner of @file{~a} \ +to user ~s.") + %profile-directory (or (getenv "USER") + (getenv "LOGNAME") + (getuid)))))))))) + (define (canonicalize-profile profile) "If PROFILE is %USER-PROFILE-DIRECTORY, return %CURRENT-PROFILE. Otherwise return PROFILE unchanged. The goal is to treat '-p ~/.guix-profile' as if diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 93a77915fe..e588ff81ed 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -68,50 +68,14 @@ (define (ensure-default-profile) "Ensure the default profile symlink and directory exist and are writable." - - (define (rtfm) - (format (current-error-port) - (G_ "Try \"info '(guix) Invoking guix package'\" for \ -more information.~%")) - (exit 1)) + (ensure-profile-directory) ;; Create ~/.guix-profile if it doesn't exist yet. (when (and %user-profile-directory %current-profile (not (false-if-exception (lstat %user-profile-directory)))) - (symlink %current-profile %user-profile-directory)) - - (let ((s (stat %profile-directory #f))) - ;; Attempt to create /…/profiles/per-user/$USER if needed. - (unless (and s (eq? 'directory (stat:type s))) - (catch 'system-error - (lambda () - (mkdir-p %profile-directory)) - (lambda args - ;; Often, we cannot create %PROFILE-DIRECTORY because its - ;; parent directory is root-owned and we're running - ;; unprivileged. - (format (current-error-port) - (G_ "error: while creating directory `~a': ~a~%") - %profile-directory - (strerror (system-error-errno args))) - (format (current-error-port) - (G_ "Please create the `~a' directory, with you as the owner.~%") - %profile-directory) - (rtfm)))) - - ;; Bail out if it's not owned by the user. - (unless (or (not s) (= (stat:uid s) (getuid))) - (format (current-error-port) - (G_ "error: directory `~a' is not owned by you~%") - %profile-directory) - (format (current-error-port) - (G_ "Please change the owner of `~a' to user ~s.~%") - %profile-directory (or (getenv "USER") - (getenv "LOGNAME") - (getuid))) - (rtfm)))) + (symlink %current-profile %user-profile-directory))) (define (delete-generations store profile generations) "Delete GENERATIONS from PROFILE. diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index df2cf12de2..2e37a19407 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -41,4 +41,5 @@ guix/status.scm guix/http-client.scm guix/nar.scm guix/channels.scm +guix/profiles.scm nix/nix-daemon/guix-daemon.cc -- cgit v1.2.3 From 50c72ecd9e272d959dfc346b5baea9137f6820ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 Oct 2018 11:51:12 +0200 Subject: profiles: Generalize 'canonicalize-profile'. * guix/profiles.scm (canonicalize-profile): Rewrite to work with any profile that lives under %PROFILE-DIRECTORY. --- guix/profiles.scm | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 6c3b26423e..99e6fe7371 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1652,19 +1652,18 @@ to user ~s.") (getuid)))))))))) (define (canonicalize-profile profile) - "If PROFILE is %USER-PROFILE-DIRECTORY, return %CURRENT-PROFILE. Otherwise -return PROFILE unchanged. The goal is to treat '-p ~/.guix-profile' as if -'-p' was omitted." ; see - - ;; Trim trailing slashes so that the basename comparison below works as - ;; intended. + "If PROFILE points to a profile in %PROFILE-DIRECTORY, return that. +Otherwise return PROFILE unchanged. The goal is to treat '-p ~/.guix-profile' +as if '-p' was omitted." ; see + ;; Trim trailing slashes so 'readlink' can do its job. (let ((profile (string-trim-right profile #\/))) - (if (and %user-profile-directory - (string=? (canonicalize-path (dirname profile)) - (dirname %user-profile-directory)) - (string=? (basename profile) (basename %user-profile-directory))) - %current-profile - profile))) + (catch 'system-error + (lambda () + (let ((target (readlink profile))) + (if (string=? (dirname target) %profile-directory) + target + profile))) + (const profile)))) (define (user-friendly-profile profile) "Return either ~/.guix-profile if that's what PROFILE refers to, directly or -- cgit v1.2.3 From 795d430d90e41eb172315bfccf79c9f13fc0ebfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 9 Oct 2018 11:51:44 +0200 Subject: pull: Turn ~/.config/guix/current into a symlink to /var/guix/profiles. This is more consistent with what 'guix package' does, more pleasant for users (we no longer clobber ~/.config/guix), and more cluster-friendly (since /var/guix/profiles is usually an NFS share already.) * guix/scripts/pull.scm (%current-profile, %user-profile-directory): New variables. (migrate-generations, ensure-default-profile): New procedures. (guix-pull): Use %CURRENT-PROFILE by default. Call 'ensure-default-profile'. * doc/guix.texi (Invoking guix pull): Adjust 'guix package -p ~/.config/guix/current' example. * guix/scripts.scm (warn-about-old-distro): Check %PROFILE-DIRECTORY "/current-guix". --- doc/guix.texi | 2 +- guix/scripts.scm | 4 ++-- guix/scripts/pull.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 9b37270a83..5ae80917a9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2831,7 +2831,7 @@ generation---i.e., the previous Guix---and so on: $ guix package -p ~/.config/guix/current --roll-back switched from generation 3 to 2 $ guix package -p ~/.config/guix/current --delete-generations=1 -deleting /home/charlie/.config/guix/current-1-link +deleting /var/guix/profiles/per-user/charlie/current-guix-1-link @end example The @command{guix pull} command is usually invoked with no arguments, diff --git a/guix/scripts.scm b/guix/scripts.scm index 4cbbbeb96f..98751bc812 100644 --- a/guix/scripts.scm +++ b/guix/scripts.scm @@ -26,6 +26,7 @@ #:use-module (guix monads) #:use-module (guix packages) #:use-module (guix derivations) + #:use-module ((guix profiles) #:select (%profile-directory)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) #:use-module (srfi srfi-37) @@ -169,8 +170,7 @@ Show what and how will/would be built." (define age (match (false-if-not-found - (lstat (string-append (config-directory #:ensure? #f) - "/current"))) + (lstat (string-append %profile-directory "/current-guix"))) (#f #f) (stat (- (time-second (current-time time-utc)) (stat:mtime stat))))) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 0d65857beb..5fecc11de3 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -225,6 +225,53 @@ Download and deploy the latest version of Guix.\n")) (lambda (key err) (report-git-error err)))) + +;;; +;;; Profile. +;;; + +(define %current-profile + ;; The "real" profile under /var/guix. + (string-append %profile-directory "/current-guix")) + +(define %user-profile-directory + ;; The user-friendly name of %CURRENT-PROFILE. + (string-append (config-directory #:ensure? #f) "/current")) + +(define (migrate-generations profile directory) + "Migration the generations of PROFILE to DIRECTORY." + (format (current-error-port) + (G_ "Migrating profile generations to '~a'...~%") + %profile-directory) + (for-each (lambda (generation) + (let ((source (generation-file-name profile generation)) + (target (string-append directory "/current-guix-" + (number->string generation) + "-link"))) + (rename-file source target))) + (profile-generations profile))) + +(define (ensure-default-profile) + (ensure-profile-directory) + + ;; In 0.15.0+ we'd create ~/.config/guix/current-[0-9]*-link symlinks. Move + ;; them to %PROFILE-DIRECTORY. + (unless (string=? %profile-directory + (dirname (canonicalize-profile %user-profile-directory))) + (migrate-generations %user-profile-directory %profile-directory)) + + ;; Make sure ~/.config/guix/current points to /var/guix/profiles/…. + (let ((link %user-profile-directory)) + (unless (equal? (false-if-exception (readlink link)) + %current-profile) + (catch 'system-error + (lambda () + (false-if-exception (delete-file link)) + (symlink %current-profile link)) + (lambda args + (leave (G_ "while creating symlink '~a': ~a~%") + link (strerror (system-error-errno args)))))))) + ;;; ;;; Queries. @@ -438,9 +485,8 @@ Use '~/.config/guix/channels.scm' instead.")) (list %default-options))) (cache (string-append (cache-directory) "/pull")) (channels (channel-list opts)) - (profile (or (assoc-ref opts 'profile) - (string-append (config-directory) "/current")))) - + (profile (or (assoc-ref opts 'profile) %current-profile))) + (ensure-default-profile) (cond ((assoc-ref opts 'query) (process-query opts profile)) ((assoc-ref opts 'dry-run?) -- cgit v1.2.3 From ed9d7cb4d95f8f4776e6fee2778ab52bc2852969 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 11 Oct 2018 18:27:21 +0200 Subject: gnu: guix-daemon: Run 'guix' from /var/guix/profiles/per-user/root. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . Reported by Pjotr Prins and Konrad Hinsen . * gnu/packages/package-management.scm (guix-daemon)[arguments]: Execute /var/guix/profiles/per-user/root/current-guix/bin/guix instead of ~root/…. --- gnu/packages/package-management.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 500abd5125..9a0023233f 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -347,12 +347,14 @@ the Nix package manager.") "install-nodist_pkglibexecSCRIPTS") ;; We need to tell 'guix-daemon' which 'guix' command to use. - ;; Here we use a questionable hack where we hard-code - ;; "~root/.config", which could be wrong (XXX). + ;; Here we use a questionable hack where we hard-code root's + ;; current guix, which could be wrong (XXX). Note that scripts + ;; like 'guix perform-download' do not run as root so we assume + ;; that they have access to /var/guix/profiles/per-user/root. (let ((out (assoc-ref outputs "out"))) (substitute* (find-files (string-append out "/libexec")) (("exec \".*/bin/guix\"") - "exec ~root/.config/guix/current/bin/guix")) + "exec /var/guix/profiles/per-user/root/current-guix/bin/guix")) #t))) (delete 'wrap-program))))))) -- cgit v1.2.3 From 3bee949b032186cca4dbb5173f4f4fecd34da368 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 11 Oct 2018 13:03:58 -0400 Subject: gnu: Krita: Update to 4.1.5. * gnu/packages/kde.scm (krita): Update to 4.1.5. --- gnu/packages/kde.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 3dfba6d383..c2164250e9 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -317,7 +317,7 @@ plugins, as well as code to create plugins, or complete applications.") (define-public krita (package (name "krita") - (version "4.1.3") + (version "4.1.5") (source (origin (method url-fetch) (uri (string-append @@ -326,7 +326,7 @@ plugins, as well as code to create plugins, or complete applications.") "/" name "-" version ".tar.gz")) (sha256 (base32 - "0d546dxs552z0pxnaka1jm7ksravw17f777wf593z0pl4ds8dgdx")))) + "1by8p8ifdp03f05bhg8ygdd1j036anfpjjnzbx63l2fbmy9k6q10")))) (build-system cmake-build-system) (arguments `(#:tests? #f -- cgit v1.2.3 From fc346e30a0e266ee7e2edcc057a22fdac3c98124 Mon Sep 17 00:00:00 2001 From: Brett Gilio Date: Thu, 11 Oct 2018 16:31:08 -0400 Subject: gnu: godot: Update to 3.0.6. * gnu/packages/game-development.scm (godot): Update to 3.0.6. --- gnu/packages/game-development.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index bfebcc433e..6b7e71f6c0 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1080,7 +1080,7 @@ games.") (define-public godot (package (name "godot") - (version "3.0.4") + (version "3.0.6") (source (origin (method git-fetch) (uri (git-reference @@ -1089,7 +1089,7 @@ games.") (file-name (git-file-name name version)) (sha256 (base32 - "0i4ssfb6igga9zwvsmahrnasx9cyqrsd6mlmssjgc482fy9q2kz4")) + "0g64h0x8dlv6aa9ggfcidk2mknkfl5li7z1phcav8aqp9srj8avf")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From e1d1ec143569d35eb3e222e6f49d1db0e5423be9 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sun, 7 Oct 2018 20:16:47 -0700 Subject: gnu: u-boot: Update to 2018.09. * gnu/packages/bootloaders.scm (u-boot): Update to 2018.09. (u-boot-tools)[arguments]: Substitute "coverage" for "python-coverage". Update workaround for only 99% test coverage. Signed-off-by: Leo Famulari --- gnu/packages/bootloaders.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 4ba9d2e043..bce12d324d 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -360,7 +360,7 @@ tree binary files. These are board description files used by Linux and BSD.") (define u-boot (package (name "u-boot") - (version "2018.07") + (version "2018.09") (source (origin (method url-fetch) (uri (string-append @@ -368,7 +368,7 @@ tree binary files. These are board description files used by Linux and BSD.") "u-boot-" version ".tar.bz2")) (sha256 (base32 - "1m7nw64mxflpc6sqvnz2kb5fxfkb4mrpy8b1wi15dcwipj4dy44z")))) + "0s122kyz1svvs2yjzj4j9qravl3ra4vn0fjqgski7rlczqyg56w3")))) (native-inputs `(("bc" ,bc) ("bison" ,bison) @@ -403,6 +403,12 @@ also initializes the boards (RAM etc).") (("/bin/false") (which "false"))) (substitute* "tools/dtoc/fdt_util.py" (("'cc'") "'gcc'")) + (substitute* "tools/patman/test_util.py" + ;; python-coverage is simply called coverage in guix. + (("python-coverage") "coverage") + ;; XXX Allow for only 99% test coverage. + ;; TODO: Find out why that is needed. + (("if coverage != '100%':") "if not int(coverage.rstrip('%')) >= 99:")) (substitute* "test/run" ;; Make it easier to find test failures. (("#!/bin/bash") "#!/bin/bash -x") @@ -417,8 +423,6 @@ also initializes the boards (RAM etc).") (("def test_ctrl_c") "@pytest.mark.skip(reason='Guix has problems with SIGINT') def test_ctrl_c")) - (substitute* "tools/binman/binman.py" - (("100%") "99%")) ; TODO: Find out why that is needed. #t)) (replace 'configure (lambda* (#:key make-flags #:allow-other-keys) -- cgit v1.2.3 From 8155a209071f981fbf359975f463be4bcf8fa23e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 11 Oct 2018 23:53:18 +0200 Subject: pull: Create /var/guix/profiles/per-user/USER/current-guix. Previously the migration code would fail to create that file, so ~/.config/guix/current would be dangling. * guix/scripts/pull.scm (migrate-generations): Create /var/guix/profiles/per-user/USER/current-guix. --- guix/scripts/pull.scm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 5fecc11de3..8e0595076a 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -243,13 +243,17 @@ Download and deploy the latest version of Guix.\n")) (format (current-error-port) (G_ "Migrating profile generations to '~a'...~%") %profile-directory) - (for-each (lambda (generation) - (let ((source (generation-file-name profile generation)) - (target (string-append directory "/current-guix-" - (number->string generation) - "-link"))) - (rename-file source target))) - (profile-generations profile))) + (let ((current (basename + (generation-file-name profile + (generation-number profile))))) + (for-each (lambda (generation) + (let ((source (generation-file-name profile generation)) + (target (string-append directory "/current-guix-" + (number->string generation) + "-link"))) + (rename-file source target))) + (profile-generations profile)) + (symlink current (string-append directory "/current-guix")))) (define (ensure-default-profile) (ensure-profile-directory) -- cgit v1.2.3 From 1c795c4fd2c0f82892c5d1683de197868ecc5214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 Oct 2018 00:12:00 +0200 Subject: profiles: 'user-friendly-profile' now recognizes ~/.config/guix/current. * guix/profiles.scm (%known-shorthand-profiles): New variable. (user-friendly-profile): Use it. --- guix/profiles.scm | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 99e6fe7371..89e92ea2ba 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1665,13 +1665,20 @@ as if '-p' was omitted." ; see profile))) (const profile)))) +(define %known-shorthand-profiles + ;; Known shorthand forms for profiles that the user manipulates. + (list (string-append (config-directory #:ensure? #f) "/current") + %user-profile-directory)) + (define (user-friendly-profile profile) - "Return either ~/.guix-profile if that's what PROFILE refers to, directly or -indirectly, or PROFILE." - (if (and %user-profile-directory - (false-if-exception - (string=? (readlink %user-profile-directory) profile))) - %user-profile-directory + "Return either ~/.guix-profile or ~/.config/guix/current if that's what +PROFILE refers to, directly or indirectly, or PROFILE." + (or (find (lambda (shorthand) + (and shorthand + (let ((target (false-if-exception + (readlink shorthand)))) + (and target (string=? target profile))))) + %known-shorthand-profiles) profile)) ;;; profiles.scm ends here -- cgit v1.2.3 From e9ab649e1e6400cdbf5147144903c1212cba798a Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 7 Oct 2018 10:37:40 +0100 Subject: gnu: Remove duplicate ruby-concurrent package definition. * gnu/packages/ruby.scm (ruby-concurrent): Remove one of the two definitions for this variable. --- gnu/packages/ruby.scm | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 2080944cae..2c5777fdf8 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -194,25 +194,6 @@ a focus on simplicity and productivity.") (("/bin/sh") (which "sh"))) #t))))))) -(define-public ruby-concurrent - (package - (name "ruby-concurrent") - (version "1.0.5") - (source (origin - (method url-fetch) - (uri (rubygems-uri "concurrent-ruby" version)) - (sha256 - (base32 - "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf")))) - (build-system ruby-build-system) - (arguments `(#:tests? #f)); No rakefile - (home-page "https://github.com/ruby-concurrency/concurrent-ruby") - (synopsis "Concurrency tools for Ruby") - (description "This gem provides concurrency tools for Ruby. It provides -a library of common thread-safe types and data-structures as well as abstractions -for concurrency and communication between threads.") - (license license:expat))) - (define-public ruby-highline (package (name "ruby-highline") -- cgit v1.2.3 From 50135ff896441f6b9e10fbfc9bfd35bf06ff1c13 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 7 Oct 2018 10:38:26 +0100 Subject: gnu: Remove duplicate ruby-yard package definition. * gnu/packages/ruby.scm (ruby-yard): Remove one of the two package definitions, and update the other to the latest release. --- gnu/packages/ruby.scm | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 2c5777fdf8..7e8c8be290 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3766,7 +3766,7 @@ A modified copy of yajl is used, and included in the package.") (define-public ruby-yard (package (name "ruby-yard") - (version "0.9.6") + (version "0.9.16") (source (origin (method url-fetch) @@ -3776,7 +3776,7 @@ A modified copy of yajl is used, and included in the package.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0rsz4bghgx7fryzyhlz8wlnd2m9xgyvf1xhrq58mnzfrrfm41bdg")))) + "0sqpbayy9sb406jh0zqg6qha1xds863qz9531dh6vp58hc00clfq")))) (build-system ruby-build-system) (arguments `(#:phases @@ -5673,27 +5673,6 @@ support the tests found in Prawn, a pure Ruby PDF generation library.") functionality from Prawn.") (license license:gpl3+))) -(define-public ruby-yard - (package - (name "ruby-yard") - (version "0.9.16") - (source (origin - (method url-fetch) - (uri (rubygems-uri "yard" version)) - (sha256 - (base32 - "0lmmr1839qgbb3zxfa7jf5mzy17yjl1yirwlgzdhws4452gqhn67")))) - (build-system ruby-build-system) - (arguments `(#:test-target "spec")) - (home-page "https://yardoc.org/") - (synopsis "Ruby documentation tool") - (description "YARD is a documentation generation tool for the Ruby -programming language. It enables the user to generate consistent, usable -documentation that can be exported to a number of formats very easily, and -also supports extending for custom Ruby constructs such as custom class level -definitions.") - (license license:expat))) - (define-public ruby-prawn (package (name "ruby-prawn") -- cgit v1.2.3 From 28f436a904cbfc2d7bb6e5e8d91de23c03b134b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 Oct 2018 15:04:44 +0200 Subject: build: Remove obsolete reference to 'GUIX_ASSERT_LIBGCRYPT_USABLE'. Reported by Mark H Weaver . Fixes . * configure.ac: Remove use of 'GUIX_ASSERT_LIBGCRYPT_USABLE'. Add "^GUIX_" to the forbidden M4 patterns. --- configure.ac | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index c83d4d8a28..104a0e4b09 100644 --- a/configure.ac +++ b/configure.ac @@ -88,6 +88,7 @@ dnl Make sure they are available. m4_pattern_forbid([PKG_CHECK_MODULES]) m4_pattern_forbid([GUILE_MODULE_AVAILABLE]) m4_pattern_forbid([^GUILE_P$]) +m4_pattern_forbid([^GUIX_]) dnl Search for 'guile' and 'guild'. This macro defines dnl 'GUILE_EFFECTIVE_VERSION'. @@ -232,8 +233,6 @@ AC_SUBST([LIBGCRYPT]) AC_SUBST([LIBGCRYPT_PREFIX]) AC_SUBST([LIBGCRYPT_LIBDIR]) -GUIX_ASSERT_LIBGCRYPT_USABLE - dnl Library name of zlib suitable for 'dynamic-link'. GUIX_LIBZ_LIBDIR([libz_libdir]) if test "x$libz_libdir" = "x"; then -- cgit v1.2.3 From dde49cfe5312b95f44060155256036532f3cb22a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 Oct 2018 15:09:56 +0200 Subject: build: Fine-tune the forbidden M4 patterns. * configure.ac: Forbid "^GUILE_P", allow "^GUILE_PKG_ERRORS". --- configure.ac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 104a0e4b09..2a1edbc321 100644 --- a/configure.ac +++ b/configure.ac @@ -87,7 +87,8 @@ dnl We require pkg.m4 (from pkg-config) and guile.m4 (from Guile.) dnl Make sure they are available. m4_pattern_forbid([PKG_CHECK_MODULES]) m4_pattern_forbid([GUILE_MODULE_AVAILABLE]) -m4_pattern_forbid([^GUILE_P$]) +m4_pattern_forbid([^GUILE_P]) +m4_pattern_allow([^GUILE_PKG_ERRORS]) m4_pattern_forbid([^GUIX_]) dnl Search for 'guile' and 'guild'. This macro defines -- cgit v1.2.3 From 8036b0942b89022147aaf9cd9940988fdbcc19ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 Oct 2018 15:11:50 +0200 Subject: pull: Don't use rename(2) across potentially different devices. Reported by Formbi on #guix. * guix/scripts/pull.scm (migrate-generations): Use 'symlink' and 'delete-file' instead of 'rename-file'. The latter could lead to EXDEV when $HOME and /var were different partitions. --- guix/scripts/pull.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 8e0595076a..660a2b9110 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -239,7 +239,7 @@ Download and deploy the latest version of Guix.\n")) (string-append (config-directory #:ensure? #f) "/current")) (define (migrate-generations profile directory) - "Migration the generations of PROFILE to DIRECTORY." + "Migrate the generations of PROFILE to DIRECTORY." (format (current-error-port) (G_ "Migrating profile generations to '~a'...~%") %profile-directory) @@ -251,7 +251,10 @@ Download and deploy the latest version of Guix.\n")) (target (string-append directory "/current-guix-" (number->string generation) "-link"))) - (rename-file source target))) + ;; Note: Don't use 'rename-file' as SOURCE and TARGET might + ;; live on different file systems. + (symlink (readlink source) target) + (delete-file source))) (profile-generations profile)) (symlink current (string-append directory "/current-guix")))) -- cgit v1.2.3 From 6826f1e1ede0526dd1247546aa5ec195bacd5cc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Mon, 8 Oct 2018 21:42:28 +0800 Subject: gnu: Add libpd. * gnu/packages/music.scm (libpd): New variable. --- gnu/packages/music.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index e1bac6f51e..13a6ecc36f 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1777,6 +1777,42 @@ programming methods as well as for realizing complex systems for large-scale projects.") (license license:bsd-3))) +(define-public libpd + (package + (name "libpd") + (version "0.11.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libpd/libpd.git") + (commit version) + (recursive? #t))) ; for the 'pure-data' submodule + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1bcg1d9iyf9n37hwwphmih0c8rd1xcqykil5z1cax6xfs76552nk")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no tests + #:make-flags '("CC=gcc") + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (invoke "make" "install" + (string-append "prefix=" out) + ;; XXX: Fix the last 2 lines of 'install' target. + "LIBPD_IMPLIB=NO" + "LIBPD_DEF=NO"))))))) + (home-page "http://libpd.cc/") + (synopsis "Pure Data as an embeddable audio synthesis library") + (description + "Libpd provides Pure Data as an embeddable audio synthesis library. Its +main purpose is to liberate raw audio rendering from audio and MIDI drivers.") + (license license:bsd-3))) + (define-public portmidi (package (name "portmidi") -- cgit v1.2.3 From aa227b3be3d7728331a08dbd139c47c9b271dc23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 12 Oct 2018 16:43:18 +0200 Subject: pull: Fix target of /var/guix/profiles/per-user/USER/current-guix. This is a followup to 8155a209071f981fbf359975f463be4bcf8fa23e. * guix/scripts/pull.scm (migrate-generations): Compute the right target for /var/guix/profiles/per-user/USER/current-guix. Previously we'd return "current-N-link" instead of "current-guix-N-link'. --- guix/scripts/pull.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 660a2b9110..d3fd624228 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -243,9 +243,7 @@ Download and deploy the latest version of Guix.\n")) (format (current-error-port) (G_ "Migrating profile generations to '~a'...~%") %profile-directory) - (let ((current (basename - (generation-file-name profile - (generation-number profile))))) + (let ((current (generation-number profile))) (for-each (lambda (generation) (let ((source (generation-file-name profile generation)) (target (string-append directory "/current-guix-" @@ -256,7 +254,9 @@ Download and deploy the latest version of Guix.\n")) (symlink (readlink source) target) (delete-file source))) (profile-generations profile)) - (symlink current (string-append directory "/current-guix")))) + (symlink (string-append "current-guix-" + (number->string current) "-link") + (string-append directory "/current-guix")))) (define (ensure-default-profile) (ensure-profile-directory) -- cgit v1.2.3 From a60e868629cbc471a2d511aa8f1bcbbd18caea8f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 12 Oct 2018 22:16:54 -0400 Subject: gnu: Wireshark: Update to 2.6.4 [fixes CVE-2018-{12086,18225,18226,18227}]. * gnu/packages/networking.scm (wireshark): Update to 2.6.4. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index e3486ffadc..5a0c464252 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -581,7 +581,7 @@ of the same name.") (define-public wireshark (package (name "wireshark") - (version "2.6.3") + (version "2.6.4") (source (origin (method url-fetch) @@ -589,7 +589,7 @@ of the same name.") version ".tar.xz")) (sha256 (base32 - "1v538h02y8avwy3cr11xz6wkyf9xd8qva4ng4sl9f2fw4skahn6i")))) + "0qf81dk726sdsmjqa9nd251j1cwvzkyb4hrlp6w4iwa3cdz00sx0")))) (build-system gnu-build-system) (inputs `(("c-ares" ,c-ares) ("glib" ,glib) -- cgit v1.2.3 From 3584eeb9a17e873778c9b36ca7a691d45e364856 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 12 Oct 2018 22:42:21 -0400 Subject: gnu: ImageMagick: Update to 6.9.10-12. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.10-12. --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index ec2ac08909..e29ec6255b 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -47,14 +47,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.10-10") + (version "6.9.10-12") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0b0wwxm6mgaxq0i0hazxcpbk7xd5j1329r1vk9h07iz4v3k8i57h")))) + "0ri96yqihdk921k5qx23y2sbhraxbp2avdccxiy6m3srjkirym2l")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") -- cgit v1.2.3 From 3c4d307e8697c36ebb9df939a5d2f0d905cc5474 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 12 Oct 2018 23:19:20 -0400 Subject: gnu: python-icalendar: Update to 4.0.2. * gnu/packages/python.scm (python-icalendar: Update to 4.0.2. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6a2bd6e8f5..35262a2c77 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7576,13 +7576,13 @@ minimal and fast API targeting the following uses: (define-public python-icalendar (package (name "python-icalendar") - (version "4.0.1") + (version "4.0.2") (source (origin (method url-fetch) (uri (pypi-uri "icalendar" version)) (sha256 (base32 - "139y79y6ijl39m5bj771r43vpah9s4ly7d1k76la6hrx7l144ak8")))) + "13003kw2vbas1ha146vv3x2rdg9k7w38rdzxj63vi1i67jgjldl0")))) (build-system python-build-system) (propagated-inputs `(("python-dateutil" ,python-dateutil) -- cgit v1.2.3 From f1be3735db479157f3c83922a4e60608ebd7165a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 12 Oct 2018 23:19:42 -0400 Subject: gnu: khal: Update to 0.9.10. * gnu/packages/calendar.scm (khal): Update to 0.9.10. --- gnu/packages/calendar.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 79cef99826..c2bbf139c1 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -96,13 +96,13 @@ data units.") (define-public khal (package (name "khal") - (version "0.9.9") + (version "0.9.10") (source (origin (method url-fetch) (uri (pypi-uri "khal" version)) (sha256 (base32 - "0dq9aqb9pqjfqrnfg43mhpb7m0szmychxy1ydb3lwzf3500c9rsh")))) + "03h0j0d3xyqh98x5v2gv63wv3g91hip3vsaxvybsn5iz331d23h4")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From d7814696b884a7c5e4a58f539ece53f4998689a3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 12 Oct 2018 23:38:01 -0400 Subject: gnu: python-configargparse: Use pypi-uri. * gnu/packages/python.scm (python-configargparse, python2-configargparse)[source]: Use pypi-uri. --- gnu/packages/python.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 35262a2c77..29371d0494 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7353,9 +7353,7 @@ config files.") (version "0.12.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.io/packages/source/C/ConfigArgParse/" - "ConfigArgParse-" version ".tar.gz")) + (uri (pypi-uri "ConfigArgParse" version)) (sha256 (base32 "0fgkiqh6r3rbkdq3k8c48m85g52k96686rw3a6jg4lcncrkpvk98")))) -- cgit v1.2.3 From 40f856fae80ee8a274067fba0837cccb74d9642d Mon Sep 17 00:00:00 2001 From: Brett Gilio Date: Sun, 14 Oct 2018 09:37:34 +0800 Subject: gnu: csound: Update to 6.11.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/audio.scm (csound): Update to 6.11.0. [home-page]: Change to "https://csound.com/". Signed-off-by: 宋文武 --- gnu/packages/audio.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index d233940f23..6197f549dd 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2018 okapi ;;; Copyright © 2018 Maxim Cournoyer ;;; Copyright © 2018 Clément Lassieur +;;; Copyright © 2018 Brett Gilio ;;; ;;; This file is part of GNU Guix. ;;; @@ -650,7 +651,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") (define-public csound (package (name "csound") - (version "6.09.1") + (version "6.11.0") (source (origin (method url-fetch) (uri (string-append @@ -659,7 +660,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0xqpqws4jsv7fyawcjzwaw544qbfh29xq164kdf30a9v1n3yklp4")))) + "072pk5h9w0vhw0ncc9dn90haw1yv18v04iwwjn8nsp6930w7dvxd")))) (build-system cmake-build-system) (inputs `(("alsa-lib" ,alsa-lib) @@ -674,7 +675,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") `(("bison" ,bison) ("flex" ,flex) ("zlib" ,zlib))) - (home-page "http://csound.github.io/") + (home-page "https://csound.com/") (synopsis "Sound and music computing system") (description "Csound is a user-programmable and user-extensible sound processing -- cgit v1.2.3 From 89f9df6cfd75d5180bd135c2b14fbfdc0eb6171b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 25 Sep 2018 07:45:18 +0300 Subject: gnu: icecat: Build with rust-1.24. * gnu/packages/gnuzilla.scm (icecat)[native-inputs]: Use the oldest compatable rust over newer releases when building icecat. --- gnu/packages/gnuzilla.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index d2110f3290..39281b59e5 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver ;;; Copyright © 2015 Sou Bunnbu -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017 Nils Gillmann @@ -620,8 +620,9 @@ security standards.") ("zip" ,zip) ("zlib" ,zlib))) (native-inputs - `(("rust" ,rust) - ("cargo" ,rust "cargo") + ;; Icecat 60 checkes for rust>=1.24 + `(("rust" ,rust-1.24) + ("cargo" ,rust-1.24 "cargo") ("perl" ,perl) ("python" ,python-2) ; Python 3 not supported ("python2-pysqlite" ,python2-pysqlite) -- cgit v1.2.3 From e0caff9ed0c2238eafba63a65f01d96eeaf02fab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 14 Oct 2018 21:25:46 +0200 Subject: describe: Canonicalize the profile. Fixes a regression introduced in 795d430d90e41eb172315bfccf79c9f13fc0ebfa whereby 'guix describe' would no longer display the generation number of ~/.config/guix/current. * guix/scripts/describe.scm (guix-describe): Call 'canonicalize-profile'. --- guix/scripts/describe.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm index c1a20fe26c..e59502076c 100644 --- a/guix/scripts/describe.scm +++ b/guix/scripts/describe.scm @@ -158,4 +158,4 @@ in the format specified by FMT." (#f (display-checkout-info format)) (profile - (display-profile-info profile format)))))) + (display-profile-info (canonicalize-profile profile) format)))))) -- cgit v1.2.3 From 2510bd87562bfee9d82348f1c08dd78ccea12dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 14 Oct 2018 23:19:59 +0200 Subject: guix-install.sh: Recognize armhf-linux. * etc/guix-install.sh (chk_sys_arch): Add "armv7l" case. --- etc/guix-install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/etc/guix-install.sh b/etc/guix-install.sh index d9f1955098..ca6874ba0f 100755 --- a/etc/guix-install.sh +++ b/etc/guix-install.sh @@ -160,6 +160,9 @@ chk_sys_arch() aarch64) local arch=aarch64 ;; + armv7l) + local arch=armhf + ;; *) _err "${ERR}Unsupported CPU type: ${arch}" exit 1 -- cgit v1.2.3 From 38a2f5eafb43b6407f8d9755da31dcb50ce64167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 14 Oct 2018 23:46:42 +0200 Subject: status: Avoid "sucessfully built" messages when in quiet mode. * guix/status.scm (print-build-event): Print "successfully built" messages only when PRINT-LOG? is true, like we do for 'substituter-started' events. --- guix/status.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/status.scm b/guix/status.scm index 13537c70cd..d8d761dc23 100644 --- a/guix/status.scm +++ b/guix/status.scm @@ -319,8 +319,9 @@ addition to build events." (format port (info (G_ "building ~a...")) drv) (newline port)) (('build-succeeded drv . _) - (format port (success (G_ "successfully built ~a")) drv) - (newline port) + (when (or print-log? (not (extended-build-trace-supported?))) + (format port (success (G_ "successfully built ~a")) drv) + (newline port)) (match (build-status-building status) (() #t) (ongoing ;when max-jobs > 1 -- cgit v1.2.3 From 2dd1bfcb5800aad8f360c113cbd769019b5c9d84 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 14 Oct 2018 19:07:35 -0400 Subject: gnu: linux-libre@4.4: Update to 4.4.161. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.161. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8983ed35e4..08d1a813ca 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -452,8 +452,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.160" - "1337p94j1hyc2gaw51wvlv622wwj2af1y8rafyfgp1403cs7ghp4" + (make-linux-libre "4.4.161" + "1q6bsndpjgw72mybhl5l8vrxs4mimg6821bjgi1pjkxbc7nd921b" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From f266e82ad21eb7be963e7d70beaa2f503cfa4e78 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 14 Oct 2018 19:09:24 -0400 Subject: gnu: linux-libre@4.9: Update to 4.9.133. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.133. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 08d1a813ca..c1bd01055e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -446,8 +446,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.132" - "1s4zsv04bdafqqn8i6ab3lxjbh45v20dbm31mb52hfyzlfp4sjp5" + (make-linux-libre "4.9.133" + "1vr94czdv5alzsgm2k1r6wqm01r2zafrayjn10l6kdr4g7aga488" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From b0fe6b5785472895259c6d60f06024042450679b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 14 Oct 2018 19:13:56 -0400 Subject: gnu: linux-libre@4.14: Update to 4.14.76. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.76. (%linux-libre-4.14-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c1bd01055e..812da7ca3c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -436,8 +436,8 @@ It has been modified to remove all non-free binary blobs.") #:patches %linux-libre-4.18-patches #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.75") -(define %linux-libre-4.14-hash "0ljcjsc6lxq4q5dxy9kgnngasyqmv6rhl9yyqxrfzm41qbqfn64l") +(define %linux-libre-4.14-version "4.14.76") +(define %linux-libre-4.14-hash "1y5zqf84ngb6f5f85xpd4bdy6mlxr52x19bx3mdrp82awc9fvr7q") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version -- cgit v1.2.3 From 614f49c49aa751718978a3b9da8719609ec36922 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 14 Oct 2018 19:27:46 -0400 Subject: gnu: linux-libre: Update to 4.18.14. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.18.14. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 812da7ca3c..7aaa7fb644 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -405,8 +405,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.18.13") -(define %linux-libre-hash "0jqlmzml67dp5708d4giga48vv4npgs3mbnzdrigaxgca5c69qck") +(define %linux-libre-version "4.18.14") +(define %linux-libre-hash "1gwwx8l283w8v1zylw2haqahvjns5dzqxx9li2586nnl8cfmfnwc") (define %linux-libre-4.18-patches (list %boot-logo-patch -- cgit v1.2.3 From 0731fc1ce7f397724708f4956e6bdeb9c01c6762 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 29 Aug 2018 00:05:07 -0400 Subject: gnu: python-mimeparse: Update to 1.6.0. * gnu/packages/python.scm (python-mimeparse): Update to 1.6.0. [phases]: Enable tests with a custom check phase. --- gnu/packages/python.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 29371d0494..8261fefd93 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1699,7 +1699,7 @@ software.") (define-public python-mimeparse (package (name "python-mimeparse") - (version "0.1.4") + (version "1.6.0") (source (origin (method url-fetch) @@ -1708,10 +1708,14 @@ software.") version ".tar.gz")) (sha256 (base32 - "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w")))) + "0y2g6cl660bpz11srgqyvvm8gmywpgyx8g0xfvbiyr0af0yv1r3n")))) (build-system python-build-system) (arguments - '(#:tests? #f)) ; no setup.py test command + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "./mimeparse_test.py")))))) (home-page "https://github.com/dbtsai/python-mimeparse") (synopsis "Python library for parsing MIME types") -- cgit v1.2.3 From bb840999c8592b0077c78170e135b59bc79638ed Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 29 Aug 2018 00:06:28 -0400 Subject: gnu: Add python-falcon. * gnu/packages/python-web.scm (python-falcon): New variable. --- gnu/packages/python-web.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 2a7487202a..77fb99dc56 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2018 Tomáš Čech ;;; Copyright © 2018 Nicolas Goaziou ;;; Copyright © 2018 Mathieu Othacehe +;;; Copyright © 2018 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -127,6 +128,59 @@ asynchronous DNS resolutions with a synchronous looking interface by using @url{https://github.com/saghul/pycares,pycares}.") (license license:expat))) +(define-public python-falcon + (package + (name "python-falcon") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "falcon" version)) + (sha256 + (base32 + "1i0vmqsk24z4biirqhpvas9h28wy7nmpy3jvnb6rz2imq04zd09r")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest")))))) + (propagated-inputs + `(("python-mimeparse" ,python-mimeparse) + ("python-six" ,python-six))) + (native-inputs + `(("python-cython" ,python-cython) ;for faster binaries + ("python-pytest" ,python-pytest) + ("python-pyyaml" ,python-pyyaml) + ("python-requests" ,python-requests) + ("python-testtools" ,python-testtools) + ("python-jsonschema" ,python-jsonschema) + ("python-msgpack" ,python-msgpack))) + (home-page "https://falconframework.org") + (synopsis + "Web framework for building APIs and application backends") + (description + "Falcon is a web API framework for building microservices, application +backends and higher-level frameworks. Among its features are: +@itemize +@item Optimized and extensible code base +@item Routing via URI templates and REST-inspired resource +classes +@item Access to headers and bodies through request and response +classes +@item Request processing via middleware components and hooks +@item Idiomatic HTTP error responses +@item Straightforward exception handling +@item Unit testing support through WSGI helpers and mocks +@item Compatible with both CPython and PyPy +@item Cython support for better performance when used with CPython +@end itemize") + (license license:asl2.0))) + +(define-public python2-falcon + (package-with-python2 python-falcon)) + (define-public python-furl (package (name "python-furl") -- cgit v1.2.3 From 66a9f08bb9c9ba2d7cd4ee3c2d48ea9a8e41c2c4 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 29 Aug 2018 00:33:17 -0400 Subject: gnu: Add python-falcon-cors. * gnu/packages/python-web.scm (python-falcon-cors): New variable. --- gnu/packages/python-web.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 77fb99dc56..f8052458a1 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -181,6 +181,32 @@ classes (define-public python2-falcon (package-with-python2 python-falcon)) +(define-public python-falcon-cors + (package + (name "python-falcon-cors") + (version "1.1.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "falcon-cors" version)) + (sha256 + (base32 + "12pym7hwsbd8b0c1azn95nas8gm3f1qpr6lpyx0958xm65ffr20p")))) + (build-system python-build-system) + (native-inputs + `(("python-falcon" ,python-falcon))) + (home-page + "https://github.com/lwcolton/falcon-cors") + (synopsis "Falcon @dfn{cross-origin resource sharing} (CORS) library") + (description "This middleware provides @dfn{cross-origin resource +sharing} (CORS) support for Falcon. It allows applying a specially crafted +CORS object to the incoming requests, enabling the ability to serve resources +over a different origin than that of the web application.") + (license license:asl2.0))) + +(define-public python2-falcon-cors + (package-with-python2 python-falcon-cors)) + (define-public python-furl (package (name "python-furl") -- cgit v1.2.3 From 3a6e1fe8c8dc7bb556f81568fc878310a15e03e3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 14 Oct 2018 23:53:19 +0200 Subject: gnu: perl-xml-feed: Update to 0.55. * gnu/packages/xml.scm (perl-xml-feed): Update to 0.55. --- gnu/packages/xml.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index e14524a684..489541b4f5 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -770,14 +770,14 @@ server, collect the answer, and finally decoding the XML to Perl.") (define-public perl-xml-feed (package (name "perl-xml-feed") - (version "0.54") + (version "0.55") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/" "XML-Feed-" version ".tar.gz")) (sha256 (base32 - "0ydyi7wdhv8325h7j27vrlwiqxll56sn8zy5nbzhpma3nrf61bci")))) + "0am345qzy5rxxnzh13l6p18a7drgkzmmlkgrgl4cv3b2j1pwls3i")))) (build-system perl-build-system) (arguments `(#:tests? #f)) ; tests require internet connection -- cgit v1.2.3 From 9cac043cc02670fbec6964cc8f858c4b1e43dbfa Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 15 Oct 2018 03:42:42 +0200 Subject: gnu: restic: Update to 0.9.3. * gnu/packages/backup.scm (restic): Update to 0.9.3. [arguments]: Disable 'restic self-update'. --- gnu/packages/backup.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 408b64b48d..52afcbc676 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -862,7 +862,7 @@ is like a time machine for your data. ") (define-public restic (package (name "restic") - (version "0.9.2") + (version "0.9.3") ;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/' ;; directory. (source (origin @@ -873,7 +873,7 @@ is like a time machine for your data. ") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "15bwkydxcg4xhrnqxvxji8wacrsndb1a6frj98wggfaijqzfx3lg")))) + "1l1ddnf61pfsrry97qwhhdzywin2mgnbrkhcc9pabsdfk602anmr")))) (build-system go-build-system) (arguments `(#:import-path "github.com/restic/restic" @@ -887,6 +887,8 @@ is like a time machine for your data. ") (with-directory-excursion (string-append "src/github.com/restic/restic-" ,version) + ;; Disable 'restic self-update'. It makes little sense in Guix. + (substitute* "build.go" (("selfupdate") "")) (invoke "go" "run" "build.go")))) (replace 'check -- cgit v1.2.3 From 4702d45280425f69f70cfb891ccacaf94cbd2790 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 14 Oct 2018 22:02:50 +0200 Subject: gnu: opensm: Update to 3.3.21. * gnu/packages/fabric-management.scm (opensm): Update to 3.3.21. [source]: Update tarball URI. [native-inputs]: Add autoconf, automake, and libtool. [arguments]: Rename 'doc' phase to 'install-doc'. Omit AUTHORS and ChangeLog files. They are more than a decade old. --- gnu/packages/fabric-management.scm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/gnu/packages/fabric-management.scm b/gnu/packages/fabric-management.scm index 76ef9eef2e..ff6ad898b1 100644 --- a/gnu/packages/fabric-management.scm +++ b/gnu/packages/fabric-management.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Dave Love +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,33 +42,38 @@ (define-public opensm (package (name "opensm") - (version "3.3.20") + (version "3.3.21") (source (origin (method url-fetch) (uri - (string-append "https://www.openfabrics.org/downloads/management/opensm-" - version ".tar.gz")) - (sha256 (base32 "162sg1w7kgy8ayl8a4dcbrfacmnfy2lr9a2yjyq0k65rmd378zg1")))) + (string-append "https://github.com/linux-rdma/opensm/releases/download/" + version "/opensm-" version ".tar.gz")) + (sha256 + (base32 "0j4vp118w1l47vs4had46ynybklyacxjlya0r15jg0y01l4j9l2h")))) (build-system gnu-build-system) (native-inputs - `(("flex" ,flex) - ("bison" ,bison))) + `(("bison" ,bison) + ("flex" ,flex) + + ;; The 3.3.21 'release' tarball isn't properly bootstrapped. + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) (inputs `(("rdma-core" ,rdma-core))) (arguments `(#:configure-flags '("--disable-static") #:phases (modify-phases %standard-phases - (add-after 'install 'doc + (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((base (assoc-ref outputs "out")) (doc (string-append base "/share/doc/" ,name "-" ,version))) (for-each (lambda (file) (install-file file doc)) - (append (list "AUTHORS" "COPYING" "ChangeLog") - (find-files "doc"))) + (find-files "doc")) #t)))))) (home-page "https://www.openfabrics.org/") (synopsis "OpenIB InfiniBand Subnet Manager and management utilities") -- cgit v1.2.3 From dfe05297f3922a0403a9d788bc4d87502e148d87 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 15 Oct 2018 06:04:49 +0200 Subject: gnu: x265: Update to 2.9. * gnu/packages/video.scm (x265): Update to 2.9. [source]: Remove x265-fix-ppc64le-build.patch. * gnu/packages/patches/x265-fix-ppc64le-build.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/patches/x265-fix-ppc64le-build.patch | 25 ----------------------- gnu/packages/video.scm | 7 +++---- 3 files changed, 3 insertions(+), 30 deletions(-) delete mode 100644 gnu/packages/patches/x265-fix-ppc64le-build.patch diff --git a/gnu/local.mk b/gnu/local.mk index af3773c893..4c0485c04f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1228,7 +1228,6 @@ dist_patch_DATA = \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ %D%/packages/patches/x265-arm-asm-primitives.patch \ - %D%/packages/patches/x265-fix-ppc64le-build.patch \ %D%/packages/patches/xapian-revert-5489fb2f8.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ diff --git a/gnu/packages/patches/x265-fix-ppc64le-build.patch b/gnu/packages/patches/x265-fix-ppc64le-build.patch deleted file mode 100644 index f71d2436ab..0000000000 --- a/gnu/packages/patches/x265-fix-ppc64le-build.patch +++ /dev/null @@ -1,25 +0,0 @@ -https://sources.debian.org/data/main/x/x265/2.8-3/debian/patches/0003-Fix-build-error-on-on-ppc64le.patch - -This patch also fixes building on armhf-linux and aarch64-linux - -From: Jayashree -Date: Fri, 25 May 2018 10:26:05 +0530 -Subject: Fix build error on on ppc64le - ---- - source/common/param.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/source/common/param.cpp b/source/common/param.cpp -index 31bcbc7..4a6d0c8 100644 ---- a/source/common/param.cpp -+++ b/source/common/param.cpp -@@ -633,7 +633,7 @@ int x265_param_parse(x265_param* p, const char* name, const char* value) - if (bValueWasNull) - p->cpuid = atobool(value); - else -- p->cpuid = parseCpuName(value, bError); -+ p->cpuid = parseCpuName(value, bError, false); - #endif - } - OPT("fps") diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 3e191ef6da..e281bf8fff 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -392,7 +392,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (define-public x265 (package (name "x265") - (version "2.8") + (version "2.9") (source (origin (method url-fetch) @@ -400,9 +400,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).") "x265_" version ".tar.gz")) (sha256 (base32 - "0qx8mavwdzdpkkby7n29i9av7zsnklavacwfz537mf62q2pzjnbf")) - (patches (search-patches "x265-fix-ppc64le-build.patch" - "x265-arm-asm-primitives.patch")) + "090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb")) + (patches (search-patches "x265-arm-asm-primitives.patch")) (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "source/compat/getopt") -- cgit v1.2.3 From 4a147986a0839103a9c5bf1b5b74047c7d398349 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 11 Oct 2018 00:19:13 +0200 Subject: gnu: haveged: Teach the controversy. * gnu/packages/linux.scm (haveged)[description]: Suggest adding additional entropy sources. --- gnu/packages/linux.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7aaa7fb644..79a1b0b46a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3760,7 +3760,11 @@ systems with high needs or limited user interaction, such as headless servers. indirect effects of hardware events on hidden processor state using the HArdware Volatile Entropy Gathering and Expansion (@dfn{HAVEGE}) algorithm. It tunes itself to its environment and provides the same built-in test suite for the -output stream as used on certified hardware security devices.") +output stream as used on certified hardware security devices. + +The quality of the randomness produced by this algorithm has not been proven. +It is recommended to run it together with another entropy source like rngd, and +not as a replacement for it.") (license (list (license:non-copyleft "file://nist/mconf.h") (license:non-copyleft "file://nist/packtest.c") license:public-domain ; nist/dfft.c -- cgit v1.2.3 From e02013b7de5c9f30d6b451dcc1c00769992dc3a8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 10 Oct 2018 23:58:03 +0200 Subject: gnu: hexchat: Use HTTPS home page. * gnu/packages/messaging.scm (hexchat)[home-page]: Use HTTPS. --- gnu/packages/messaging.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index d2b61b9ec5..d50732dfc4 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -295,7 +295,7 @@ window shows the list of currently connected networks and their channels, the current conversation and the list of users. It uses colors to differentiate between users and to highlight messages. It checks spelling using available dictionaries. HexChat can be extended with multiple addons.") - (home-page "http://hexchat.net/") + (home-page "https://hexchat.net/") (license license:gpl2+))) (define-public ngircd -- cgit v1.2.3 From 2d5fa80e83190b6bdbeb8a45e68a885b283e2490 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 4 Oct 2018 22:32:14 +0200 Subject: gnu: audacity: Update home page. * gnu/packages/audio.scm (audacity)[home-page]: Update. --- gnu/packages/audio.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 6197f549dd..69b5d01d6f 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -418,7 +418,7 @@ engineers, musicians, soundtrack editors and composers.") ;; and fails with various errors. See ;; . #:tests? #f)) - (home-page "http://audacity.sourceforge.net/") + (home-page "https://www.audacityteam.org/") (synopsis "Software for recording and editing sounds") (description "Audacity is a multi-track audio editor designed for recording, playing -- cgit v1.2.3 From b7028a16e6fe4f9634cd7d550b3a79450fc4e0db Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 15 Oct 2018 11:33:51 +0300 Subject: gnu: x265: Fix building on armhf-linux and aarch64-linux. * gnu/packages/video.scm (x265)[source]: Update list of patches. [arguments]: Change configure flag to ensure PIC for all architectures. * gnu/packages/patches/x265-arm-asm-primitives.patch: Remove file. * gnu/packages/patches/x265-detect512-all-arches.patch: New file. * gnu/local.mk (dist_patch_DATA): Update patch registry. --- gnu/local.mk | 2 +- gnu/packages/patches/x265-arm-asm-primitives.patch | 360 --------------------- .../patches/x265-detect512-all-arches.patch | 37 +++ gnu/packages/video.scm | 10 +- 4 files changed, 41 insertions(+), 368 deletions(-) delete mode 100644 gnu/packages/patches/x265-arm-asm-primitives.patch create mode 100644 gnu/packages/patches/x265-detect512-all-arches.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4c0485c04f..1fa2eaba31 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1227,7 +1227,7 @@ dist_patch_DATA = \ %D%/packages/patches/wpa-supplicant-fix-nonce-reuse.patch \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ - %D%/packages/patches/x265-arm-asm-primitives.patch \ + %D%/packages/patches/x265-detect512-all-arches.patch \ %D%/packages/patches/xapian-revert-5489fb2f8.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ diff --git a/gnu/packages/patches/x265-arm-asm-primitives.patch b/gnu/packages/patches/x265-arm-asm-primitives.patch deleted file mode 100644 index f49aafe577..0000000000 --- a/gnu/packages/patches/x265-arm-asm-primitives.patch +++ /dev/null @@ -1,360 +0,0 @@ -From . -This fixes build errors like: - - cd /tmp/guix-build-x265-2.8.drv-0/x265_2.8/build/encoder && /gnu/store/cd5q2pni1d95fs3cdabbclyh9hqhw2nq-gcc-5.5.0/bin/c++ -DEXPORT_C_API=1 -DHAVE_ARMV6=1 -DHAVE_INT_TYPES_H=1 -DHAVE_NEON -DHIGH_BIT_DEPTH=0 -DX265_ARCH_ARM=1 -DX265_DEPTH=8 -DX265_NS=x265 -D__STDC_LIMIT_MACROS=1 -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/. -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/common -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/encoder -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/build -O2 -g -DNDEBUG -Wall -Wextra -Wshadow -std=gnu++98 -fPIC -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC -Wno-array-bounds -ffast-math -fno-exceptions -Wno-uninitialized -o CMakeFiles/encoder.dir/search.cpp.o -c /tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/encoder/search.cpp - /tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/common/arm/asm-primitives.cpp:437:38: error: incompatible types in assignment of ?void(const pixel*, intptr_t, int16_t*, intptr_t) {aka void(const unsigned char*, int, short int*, int)}? to ?void (* [2])(const pixel*, intptr_t, int16_t*, intptr_t) {aka void (* [2])(const unsigned char*, int, short int*, int)}? - p.pu[LUMA_64x48].convert_p2s = PFX(filterPixelToShort_64x48_neon); - ^ - -Downloaded from upstream bug report: -https://bitbucket.org/multicoreware/x265/issues/406 - -Signed-off-by: Bernd Kuhls - ---- ./source/common/arm/asm-primitives.cpp.orig 2018-05-21 02:33:10.000000000 -0600 -+++ ./source/common/arm/asm-primitives.cpp 2018-05-28 20:38:37.302378303 -0600 -@@ -48,77 +48,77 @@ void setupAssemblyPrimitives(EncoderPrim - p.ssim_4x4x2_core = PFX(ssim_4x4x2_core_neon); - - // addAvg -- p.pu[LUMA_4x4].addAvg = PFX(addAvg_4x4_neon); -- p.pu[LUMA_4x8].addAvg = PFX(addAvg_4x8_neon); -- p.pu[LUMA_4x16].addAvg = PFX(addAvg_4x16_neon); -- p.pu[LUMA_8x4].addAvg = PFX(addAvg_8x4_neon); -- p.pu[LUMA_8x8].addAvg = PFX(addAvg_8x8_neon); -- p.pu[LUMA_8x16].addAvg = PFX(addAvg_8x16_neon); -- p.pu[LUMA_8x32].addAvg = PFX(addAvg_8x32_neon); -- p.pu[LUMA_12x16].addAvg = PFX(addAvg_12x16_neon); -- p.pu[LUMA_16x4].addAvg = PFX(addAvg_16x4_neon); -- p.pu[LUMA_16x8].addAvg = PFX(addAvg_16x8_neon); -- p.pu[LUMA_16x12].addAvg = PFX(addAvg_16x12_neon); -- p.pu[LUMA_16x16].addAvg = PFX(addAvg_16x16_neon); -- p.pu[LUMA_16x32].addAvg = PFX(addAvg_16x32_neon); -- p.pu[LUMA_16x64].addAvg = PFX(addAvg_16x64_neon); -- p.pu[LUMA_24x32].addAvg = PFX(addAvg_24x32_neon); -- p.pu[LUMA_32x8].addAvg = PFX(addAvg_32x8_neon); -- p.pu[LUMA_32x16].addAvg = PFX(addAvg_32x16_neon); -- p.pu[LUMA_32x24].addAvg = PFX(addAvg_32x24_neon); -- p.pu[LUMA_32x32].addAvg = PFX(addAvg_32x32_neon); -- p.pu[LUMA_32x64].addAvg = PFX(addAvg_32x64_neon); -- p.pu[LUMA_48x64].addAvg = PFX(addAvg_48x64_neon); -- p.pu[LUMA_64x16].addAvg = PFX(addAvg_64x16_neon); -- p.pu[LUMA_64x32].addAvg = PFX(addAvg_64x32_neon); -- p.pu[LUMA_64x48].addAvg = PFX(addAvg_64x48_neon); -- p.pu[LUMA_64x64].addAvg = PFX(addAvg_64x64_neon); -+ p.pu[LUMA_4x4].addAvg[ALIGNED] = PFX(addAvg_4x4_neon); -+ p.pu[LUMA_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon); -+ p.pu[LUMA_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon); -+ p.pu[LUMA_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon); -+ p.pu[LUMA_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon); -+ p.pu[LUMA_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon); -+ p.pu[LUMA_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon); -+ p.pu[LUMA_12x16].addAvg[ALIGNED] = PFX(addAvg_12x16_neon); -+ p.pu[LUMA_16x4].addAvg[ALIGNED] = PFX(addAvg_16x4_neon); -+ p.pu[LUMA_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon); -+ p.pu[LUMA_16x12].addAvg[ALIGNED] = PFX(addAvg_16x12_neon); -+ p.pu[LUMA_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon); -+ p.pu[LUMA_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon); -+ p.pu[LUMA_16x64].addAvg[ALIGNED] = PFX(addAvg_16x64_neon); -+ p.pu[LUMA_24x32].addAvg[ALIGNED] = PFX(addAvg_24x32_neon); -+ p.pu[LUMA_32x8].addAvg[ALIGNED] = PFX(addAvg_32x8_neon); -+ p.pu[LUMA_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon); -+ p.pu[LUMA_32x24].addAvg[ALIGNED] = PFX(addAvg_32x24_neon); -+ p.pu[LUMA_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon); -+ p.pu[LUMA_32x64].addAvg[ALIGNED] = PFX(addAvg_32x64_neon); -+ p.pu[LUMA_48x64].addAvg[ALIGNED] = PFX(addAvg_48x64_neon); -+ p.pu[LUMA_64x16].addAvg[ALIGNED] = PFX(addAvg_64x16_neon); -+ p.pu[LUMA_64x32].addAvg[ALIGNED] = PFX(addAvg_64x32_neon); -+ p.pu[LUMA_64x48].addAvg[ALIGNED] = PFX(addAvg_64x48_neon); -+ p.pu[LUMA_64x64].addAvg[ALIGNED] = PFX(addAvg_64x64_neon); - - // chroma addAvg -- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].addAvg = PFX(addAvg_4x2_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x4].addAvg = PFX(addAvg_4x4_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].addAvg = PFX(addAvg_4x8_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].addAvg = PFX(addAvg_4x16_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].addAvg = PFX(addAvg_6x8_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg = PFX(addAvg_8x2_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg = PFX(addAvg_8x4_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg = PFX(addAvg_8x6_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].addAvg = PFX(addAvg_8x8_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].addAvg = PFX(addAvg_8x16_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].addAvg = PFX(addAvg_8x32_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg = PFX(addAvg_12x16_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].addAvg = PFX(addAvg_16x4_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].addAvg = PFX(addAvg_16x8_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].addAvg = PFX(addAvg_16x12_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].addAvg = PFX(addAvg_16x16_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x32].addAvg = PFX(addAvg_16x32_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_24x32].addAvg = PFX(addAvg_24x32_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x8].addAvg = PFX(addAvg_32x8_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x16].addAvg = PFX(addAvg_32x16_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x24].addAvg = PFX(addAvg_32x24_neon); -- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x32].addAvg = PFX(addAvg_32x32_neon); -- -- p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].addAvg = PFX(addAvg_4x8_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].addAvg = PFX(addAvg_4x16_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_4x32].addAvg = PFX(addAvg_4x32_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_6x16].addAvg = PFX(addAvg_6x16_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg = PFX(addAvg_8x4_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x8].addAvg = PFX(addAvg_8x8_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].addAvg = PFX(addAvg_8x12_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].addAvg = PFX(addAvg_8x16_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x32].addAvg = PFX(addAvg_8x32_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x64].addAvg = PFX(addAvg_8x64_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg = PFX(addAvg_12x32_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].addAvg = PFX(addAvg_16x8_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].addAvg = PFX(addAvg_16x16_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].addAvg = PFX(addAvg_16x24_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].addAvg = PFX(addAvg_16x32_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].addAvg = PFX(addAvg_16x64_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].addAvg = PFX(addAvg_24x64_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x16].addAvg = PFX(addAvg_32x16_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x32].addAvg = PFX(addAvg_32x32_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].addAvg = PFX(addAvg_32x48_neon); -- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x64].addAvg = PFX(addAvg_32x64_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].addAvg[ALIGNED] = PFX(addAvg_4x2_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x4].addAvg[ALIGNED] = PFX(addAvg_4x4_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].addAvg[ALIGNED] = PFX(addAvg_6x8_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg[ALIGNED] = PFX(addAvg_8x2_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg[ALIGNED] = PFX(addAvg_8x6_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg[ALIGNED] = PFX(addAvg_12x16_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].addAvg[ALIGNED] = PFX(addAvg_16x4_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].addAvg[ALIGNED] = PFX(addAvg_16x12_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_24x32].addAvg[ALIGNED] = PFX(addAvg_24x32_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x8].addAvg[ALIGNED] = PFX(addAvg_32x8_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x24].addAvg[ALIGNED] = PFX(addAvg_32x24_neon); -+ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon); -+ -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_4x32].addAvg[ALIGNED] = PFX(addAvg_4x32_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_6x16].addAvg[ALIGNED] = PFX(addAvg_6x16_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].addAvg[ALIGNED] = PFX(addAvg_8x12_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x64].addAvg[ALIGNED] = PFX(addAvg_8x64_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg[ALIGNED] = PFX(addAvg_12x32_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].addAvg[ALIGNED] = PFX(addAvg_16x24_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].addAvg[ALIGNED] = PFX(addAvg_16x64_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].addAvg[ALIGNED] = PFX(addAvg_24x64_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].addAvg[ALIGNED] = PFX(addAvg_32x48_neon); -+ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x64].addAvg[ALIGNED] = PFX(addAvg_32x64_neon); - - // quant - p.quant = PFX(quant_neon); -@@ -402,7 +402,7 @@ void setupAssemblyPrimitives(EncoderPrim - p.scale2D_64to32 = PFX(scale2D_64to32_neon); - - // scale1D_128to64 -- p.scale1D_128to64 = PFX(scale1D_128to64_neon); -+ p.scale1D_128to64[ALIGNED] = PFX(scale1D_128to64_neon); - - // copy_count - p.cu[BLOCK_4x4].copy_cnt = PFX(copy_cnt_4_neon); -@@ -411,37 +411,37 @@ void setupAssemblyPrimitives(EncoderPrim - p.cu[BLOCK_32x32].copy_cnt = PFX(copy_cnt_32_neon); - - // filterPixelToShort -- p.pu[LUMA_4x4].convert_p2s = PFX(filterPixelToShort_4x4_neon); -- p.pu[LUMA_4x8].convert_p2s = PFX(filterPixelToShort_4x8_neon); -- p.pu[LUMA_4x16].convert_p2s = PFX(filterPixelToShort_4x16_neon); -- p.pu[LUMA_8x4].convert_p2s = PFX(filterPixelToShort_8x4_neon); -- p.pu[LUMA_8x8].convert_p2s = PFX(filterPixelToShort_8x8_neon); -- p.pu[LUMA_8x16].convert_p2s = PFX(filterPixelToShort_8x16_neon); -- p.pu[LUMA_8x32].convert_p2s = PFX(filterPixelToShort_8x32_neon); -- p.pu[LUMA_12x16].convert_p2s = PFX(filterPixelToShort_12x16_neon); -- p.pu[LUMA_16x4].convert_p2s = PFX(filterPixelToShort_16x4_neon); -- p.pu[LUMA_16x8].convert_p2s = PFX(filterPixelToShort_16x8_neon); -- p.pu[LUMA_16x12].convert_p2s = PFX(filterPixelToShort_16x12_neon); -- p.pu[LUMA_16x16].convert_p2s = PFX(filterPixelToShort_16x16_neon); -- p.pu[LUMA_16x32].convert_p2s = PFX(filterPixelToShort_16x32_neon); -- p.pu[LUMA_16x64].convert_p2s = PFX(filterPixelToShort_16x64_neon); -- p.pu[LUMA_24x32].convert_p2s = PFX(filterPixelToShort_24x32_neon); -- p.pu[LUMA_32x8].convert_p2s = PFX(filterPixelToShort_32x8_neon); -- p.pu[LUMA_32x16].convert_p2s = PFX(filterPixelToShort_32x16_neon); -- p.pu[LUMA_32x24].convert_p2s = PFX(filterPixelToShort_32x24_neon); -- p.pu[LUMA_32x32].convert_p2s = PFX(filterPixelToShort_32x32_neon); -- p.pu[LUMA_32x64].convert_p2s = PFX(filterPixelToShort_32x64_neon); -- p.pu[LUMA_48x64].convert_p2s = PFX(filterPixelToShort_48x64_neon); -- p.pu[LUMA_64x16].convert_p2s = PFX(filterPixelToShort_64x16_neon); -- p.pu[LUMA_64x32].convert_p2s = PFX(filterPixelToShort_64x32_neon); -- p.pu[LUMA_64x48].convert_p2s = PFX(filterPixelToShort_64x48_neon); -- p.pu[LUMA_64x64].convert_p2s = PFX(filterPixelToShort_64x64_neon); -+ p.pu[LUMA_4x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x4_neon); -+ p.pu[LUMA_4x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x8_neon); -+ p.pu[LUMA_4x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x16_neon); -+ p.pu[LUMA_8x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x4_neon); -+ p.pu[LUMA_8x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x8_neon); -+ p.pu[LUMA_8x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x16_neon); -+ p.pu[LUMA_8x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x32_neon); -+ p.pu[LUMA_12x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_12x16_neon); -+ p.pu[LUMA_16x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x4_neon); -+ p.pu[LUMA_16x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x8_neon); -+ p.pu[LUMA_16x12].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x12_neon); -+ p.pu[LUMA_16x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x16_neon); -+ p.pu[LUMA_16x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x32_neon); -+ p.pu[LUMA_16x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x64_neon); -+ p.pu[LUMA_24x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_24x32_neon); -+ p.pu[LUMA_32x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x8_neon); -+ p.pu[LUMA_32x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x16_neon); -+ p.pu[LUMA_32x24].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x24_neon); -+ p.pu[LUMA_32x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x32_neon); -+ p.pu[LUMA_32x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x64_neon); -+ p.pu[LUMA_48x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_48x64_neon); -+ p.pu[LUMA_64x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x16_neon); -+ p.pu[LUMA_64x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x32_neon); -+ p.pu[LUMA_64x48].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x48_neon); -+ p.pu[LUMA_64x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x64_neon); - - // Block_fill -- p.cu[BLOCK_4x4].blockfill_s = PFX(blockfill_s_4x4_neon); -- p.cu[BLOCK_8x8].blockfill_s = PFX(blockfill_s_8x8_neon); -- p.cu[BLOCK_16x16].blockfill_s = PFX(blockfill_s_16x16_neon); -- p.cu[BLOCK_32x32].blockfill_s = PFX(blockfill_s_32x32_neon); -+ p.cu[BLOCK_4x4].blockfill_s[ALIGNED] = PFX(blockfill_s_4x4_neon); -+ p.cu[BLOCK_8x8].blockfill_s[ALIGNED] = PFX(blockfill_s_8x8_neon); -+ p.cu[BLOCK_16x16].blockfill_s[ALIGNED] = PFX(blockfill_s_16x16_neon); -+ p.cu[BLOCK_32x32].blockfill_s[ALIGNED] = PFX(blockfill_s_32x32_neon); - - // Blockcopy_ss - p.cu[BLOCK_4x4].copy_ss = PFX(blockcopy_ss_4x4_neon); -@@ -495,21 +495,21 @@ void setupAssemblyPrimitives(EncoderPrim - p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].copy_sp = PFX(blockcopy_sp_32x64_neon); - - // pixel_add_ps -- p.cu[BLOCK_4x4].add_ps = PFX(pixel_add_ps_4x4_neon); -- p.cu[BLOCK_8x8].add_ps = PFX(pixel_add_ps_8x8_neon); -- p.cu[BLOCK_16x16].add_ps = PFX(pixel_add_ps_16x16_neon); -- p.cu[BLOCK_32x32].add_ps = PFX(pixel_add_ps_32x32_neon); -- p.cu[BLOCK_64x64].add_ps = PFX(pixel_add_ps_64x64_neon); -+ p.cu[BLOCK_4x4].add_ps[ALIGNED] = PFX(pixel_add_ps_4x4_neon); -+ p.cu[BLOCK_8x8].add_ps[ALIGNED] = PFX(pixel_add_ps_8x8_neon); -+ p.cu[BLOCK_16x16].add_ps[ALIGNED] = PFX(pixel_add_ps_16x16_neon); -+ p.cu[BLOCK_32x32].add_ps[ALIGNED] = PFX(pixel_add_ps_32x32_neon); -+ p.cu[BLOCK_64x64].add_ps[ALIGNED] = PFX(pixel_add_ps_64x64_neon); - - // chroma add_ps -- p.chroma[X265_CSP_I420].cu[BLOCK_420_4x4].add_ps = PFX(pixel_add_ps_4x4_neon); -- p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].add_ps = PFX(pixel_add_ps_8x8_neon); -- p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].add_ps = PFX(pixel_add_ps_16x16_neon); -- p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].add_ps = PFX(pixel_add_ps_32x32_neon); -- p.chroma[X265_CSP_I422].cu[BLOCK_422_4x8].add_ps = PFX(pixel_add_ps_4x8_neon); -- p.chroma[X265_CSP_I422].cu[BLOCK_422_8x16].add_ps = PFX(pixel_add_ps_8x16_neon); -- p.chroma[X265_CSP_I422].cu[BLOCK_422_16x32].add_ps = PFX(pixel_add_ps_16x32_neon); -- p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].add_ps = PFX(pixel_add_ps_32x64_neon); -+ p.chroma[X265_CSP_I420].cu[BLOCK_420_4x4].add_ps[ALIGNED] = PFX(pixel_add_ps_4x4_neon); -+ p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].add_ps[ALIGNED] = PFX(pixel_add_ps_8x8_neon); -+ p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].add_ps[ALIGNED] = PFX(pixel_add_ps_16x16_neon); -+ p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].add_ps[ALIGNED] = PFX(pixel_add_ps_32x32_neon); -+ p.chroma[X265_CSP_I422].cu[BLOCK_422_4x8].add_ps[ALIGNED] = PFX(pixel_add_ps_4x8_neon); -+ p.chroma[X265_CSP_I422].cu[BLOCK_422_8x16].add_ps[ALIGNED] = PFX(pixel_add_ps_8x16_neon); -+ p.chroma[X265_CSP_I422].cu[BLOCK_422_16x32].add_ps[ALIGNED] = PFX(pixel_add_ps_16x32_neon); -+ p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].add_ps[ALIGNED] = PFX(pixel_add_ps_32x64_neon); - - // cpy2Dto1D_shr - p.cu[BLOCK_4x4].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_4x4_neon); -@@ -518,10 +518,10 @@ void setupAssemblyPrimitives(EncoderPrim - p.cu[BLOCK_32x32].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_32x32_neon); - - // ssd_s -- p.cu[BLOCK_4x4].ssd_s = PFX(pixel_ssd_s_4x4_neon); -- p.cu[BLOCK_8x8].ssd_s = PFX(pixel_ssd_s_8x8_neon); -- p.cu[BLOCK_16x16].ssd_s = PFX(pixel_ssd_s_16x16_neon); -- p.cu[BLOCK_32x32].ssd_s = PFX(pixel_ssd_s_32x32_neon); -+ p.cu[BLOCK_4x4].ssd_s[ALIGNED] = PFX(pixel_ssd_s_4x4_neon); -+ p.cu[BLOCK_8x8].ssd_s[ALIGNED] = PFX(pixel_ssd_s_8x8_neon); -+ p.cu[BLOCK_16x16].ssd_s[ALIGNED] = PFX(pixel_ssd_s_16x16_neon); -+ p.cu[BLOCK_32x32].ssd_s[ALIGNED] = PFX(pixel_ssd_s_32x32_neon); - - // sse_ss - p.cu[BLOCK_4x4].sse_ss = PFX(pixel_sse_ss_4x4_neon); -@@ -548,10 +548,10 @@ void setupAssemblyPrimitives(EncoderPrim - p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].sub_ps = PFX(pixel_sub_ps_32x64_neon); - - // calc_Residual -- p.cu[BLOCK_4x4].calcresidual = PFX(getResidual4_neon); -- p.cu[BLOCK_8x8].calcresidual = PFX(getResidual8_neon); -- p.cu[BLOCK_16x16].calcresidual = PFX(getResidual16_neon); -- p.cu[BLOCK_32x32].calcresidual = PFX(getResidual32_neon); -+ p.cu[BLOCK_4x4].calcresidual[ALIGNED] = PFX(getResidual4_neon); -+ p.cu[BLOCK_8x8].calcresidual[ALIGNED] = PFX(getResidual8_neon); -+ p.cu[BLOCK_16x16].calcresidual[ALIGNED] = PFX(getResidual16_neon); -+ p.cu[BLOCK_32x32].calcresidual[ALIGNED] = PFX(getResidual32_neon); - - // sse_pp - p.cu[BLOCK_4x4].sse_pp = PFX(pixel_sse_pp_4x4_neon); -@@ -722,31 +722,31 @@ void setupAssemblyPrimitives(EncoderPrim - p.pu[LUMA_64x64].sad_x4 = PFX(sad_x4_64x64_neon); - - // pixel_avg_pp -- p.pu[LUMA_4x4].pixelavg_pp = PFX(pixel_avg_pp_4x4_neon); -- p.pu[LUMA_4x8].pixelavg_pp = PFX(pixel_avg_pp_4x8_neon); -- p.pu[LUMA_4x16].pixelavg_pp = PFX(pixel_avg_pp_4x16_neon); -- p.pu[LUMA_8x4].pixelavg_pp = PFX(pixel_avg_pp_8x4_neon); -- p.pu[LUMA_8x8].pixelavg_pp = PFX(pixel_avg_pp_8x8_neon); -- p.pu[LUMA_8x16].pixelavg_pp = PFX(pixel_avg_pp_8x16_neon); -- p.pu[LUMA_8x32].pixelavg_pp = PFX(pixel_avg_pp_8x32_neon); -- p.pu[LUMA_12x16].pixelavg_pp = PFX(pixel_avg_pp_12x16_neon); -- p.pu[LUMA_16x4].pixelavg_pp = PFX(pixel_avg_pp_16x4_neon); -- p.pu[LUMA_16x8].pixelavg_pp = PFX(pixel_avg_pp_16x8_neon); -- p.pu[LUMA_16x12].pixelavg_pp = PFX(pixel_avg_pp_16x12_neon); -- p.pu[LUMA_16x16].pixelavg_pp = PFX(pixel_avg_pp_16x16_neon); -- p.pu[LUMA_16x32].pixelavg_pp = PFX(pixel_avg_pp_16x32_neon); -- p.pu[LUMA_16x64].pixelavg_pp = PFX(pixel_avg_pp_16x64_neon); -- p.pu[LUMA_24x32].pixelavg_pp = PFX(pixel_avg_pp_24x32_neon); -- p.pu[LUMA_32x8].pixelavg_pp = PFX(pixel_avg_pp_32x8_neon); -- p.pu[LUMA_32x16].pixelavg_pp = PFX(pixel_avg_pp_32x16_neon); -- p.pu[LUMA_32x24].pixelavg_pp = PFX(pixel_avg_pp_32x24_neon); -- p.pu[LUMA_32x32].pixelavg_pp = PFX(pixel_avg_pp_32x32_neon); -- p.pu[LUMA_32x64].pixelavg_pp = PFX(pixel_avg_pp_32x64_neon); -- p.pu[LUMA_48x64].pixelavg_pp = PFX(pixel_avg_pp_48x64_neon); -- p.pu[LUMA_64x16].pixelavg_pp = PFX(pixel_avg_pp_64x16_neon); -- p.pu[LUMA_64x32].pixelavg_pp = PFX(pixel_avg_pp_64x32_neon); -- p.pu[LUMA_64x48].pixelavg_pp = PFX(pixel_avg_pp_64x48_neon); -- p.pu[LUMA_64x64].pixelavg_pp = PFX(pixel_avg_pp_64x64_neon); -+ p.pu[LUMA_4x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x4_neon); -+ p.pu[LUMA_4x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x8_neon); -+ p.pu[LUMA_4x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x16_neon); -+ p.pu[LUMA_8x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x4_neon); -+ p.pu[LUMA_8x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x8_neon); -+ p.pu[LUMA_8x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x16_neon); -+ p.pu[LUMA_8x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x32_neon); -+ p.pu[LUMA_12x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_12x16_neon); -+ p.pu[LUMA_16x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x4_neon); -+ p.pu[LUMA_16x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x8_neon); -+ p.pu[LUMA_16x12].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x12_neon); -+ p.pu[LUMA_16x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x16_neon); -+ p.pu[LUMA_16x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x32_neon); -+ p.pu[LUMA_16x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x64_neon); -+ p.pu[LUMA_24x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_24x32_neon); -+ p.pu[LUMA_32x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x8_neon); -+ p.pu[LUMA_32x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x16_neon); -+ p.pu[LUMA_32x24].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x24_neon); -+ p.pu[LUMA_32x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x32_neon); -+ p.pu[LUMA_32x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x64_neon); -+ p.pu[LUMA_48x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_48x64_neon); -+ p.pu[LUMA_64x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x16_neon); -+ p.pu[LUMA_64x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x32_neon); -+ p.pu[LUMA_64x48].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x48_neon); -+ p.pu[LUMA_64x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x64_neon); - - // planecopy - p.planecopy_cp = PFX(pixel_planecopy_cp_neon); diff --git a/gnu/packages/patches/x265-detect512-all-arches.patch b/gnu/packages/patches/x265-detect512-all-arches.patch new file mode 100644 index 0000000000..4d39d868fd --- /dev/null +++ b/gnu/packages/patches/x265-detect512-all-arches.patch @@ -0,0 +1,37 @@ +https://sources.debian.org/data/main/x/x265/2.9-3/debian/patches/0003-detect512-is-needed-on-all-architectures.patch + +From: Adam Sampson +Date: Sun, 14 Oct 2018 14:04:18 +0200 +Subject: detect512 is needed on all architectures + +--- + source/common/cpu.cpp | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/source/common/cpu.cpp b/source/common/cpu.cpp +index 0681ff5..fa687da 100644 +--- a/source/common/cpu.cpp ++++ b/source/common/cpu.cpp +@@ -110,6 +110,11 @@ const cpu_name_t cpu_names[] = + { "", 0 }, + }; + ++bool detect512() ++{ ++ return(enable512); ++} ++ + #if X265_ARCH_X86 + + extern "C" { +@@ -123,10 +128,6 @@ uint64_t PFX(cpu_xgetbv)(int xcr); + #pragma warning(disable: 4309) // truncation of constant value + #endif + +-bool detect512() +-{ +- return(enable512); +-} + uint32_t cpu_detect(bool benableavx512 ) + { + diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e281bf8fff..88357dfb45 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -401,7 +401,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (sha256 (base32 "090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb")) - (patches (search-patches "x265-arm-asm-primitives.patch")) + (patches (search-patches "x265-detect512-all-arches.patch")) (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "source/compat/getopt") @@ -409,12 +409,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (build-system cmake-build-system) (arguments `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built - ;; Currently the source code doesn't check for aarch64. - ,@(if (any (cute string-prefix? <> (or (%current-system) - (%current-target-system))) - '("armhf" "aarch64")) - '(#:configure-flags '("-DENABLE_PIC=TRUE")) - '()) + ;; Ensure position independent code for everyone. + #:configure-flags '("-DENABLE_PIC=TRUE") #:phases (modify-phases %standard-phases (add-before 'configure 'prepare-build -- cgit v1.2.3 From 2c89b4b5500ab940411d43c97291c931c3f5b8d0 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 15 Oct 2018 10:03:34 +0200 Subject: gnu: wine-staging: Update to 3.18. * gnu/packages/wine.scm (wine-staging-patchset-data): Update to 3.18. * gnu/packages/wine.scm (wine-staging): Update to 3.18. --- gnu/packages/wine.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 68839038b7..169cc6e3c5 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -225,7 +225,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "3.17") + (version "3.18") (source (origin (method git-fetch) @@ -235,7 +235,7 @@ integrate Windows applications into your desktop.") (file-name (git-file-name name version)) (sha256 (base32 - "1ds9q90xjg59ikic98kqkhmijnqx4yplvwsm6rav4mx72yci7d4w")))) + "18g1lmqzkc7ngppynimfvza1gkdhqlnjbvnckmaws847ns4i0kzp")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) @@ -281,7 +281,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "08fcziadw40153a9rv630m7iz6ipfzylms5y191z4sj2vvhy5vac")))) + "0xqs76hxcym8nb95r7l72xx0msbscp7fhkr1wrv4r0923d5x9s4v")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("gtk+" ,gtk+) ("libva" ,libva) -- cgit v1.2.3 From 2ab321ca37d1c00c1540d78d587226d3d487b2d4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 15 Oct 2018 13:51:41 +0300 Subject: gnu: go@1.4: Add support for aarch64-linux. * gnu/packages/golang.scm (go@1.4)[arguments]: Build for armhf-linux when building for aarch64-linux. [supported-systems]: Add aarch64-linux. --- gnu/packages/golang.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7f26fbdab6..f14057417d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Matthew Jordan ;;; Copyright © 2016 Andy Wingo ;;; Copyright © 2016 Ludovic Courtès @@ -77,6 +77,10 @@ (guix build utils) (srfi srfi-1)) #:tests? #f ; Tests are run by the all.bash script. + ,@(if (string-prefix? "aarch64-linux" (or (%current-system) + (%current-target-system))) + '(#:system "armhf-linux") + '()) #:phases (modify-phases %standard-phases (delete 'configure) @@ -213,7 +217,7 @@ programming language designed primarily for systems programming. Go is a compiled, statically typed language in the tradition of C and C++, but adds garbage collection, various safety features, and concurrent programming features in the style of communicating sequential processes (@dfn{CSP}).") - (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) + (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")) (license license:bsd-3))) (define-public go-1.9 -- cgit v1.2.3 From 6ef61cc4c30e94acbd7437f19c893f63a7112267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 15 Oct 2018 22:40:35 +0200 Subject: daemon: Support multiplexed build output. This allows clients to tell whether output comes from the daemon or, if it comes from a builder, from which builder it comes. The latter is particularly useful when MAX-BUILD-JOBS > 1. * nix/libstore/build.cc (DerivationGoal::tryBuildHook) (DerivationGoal::startBuilder): Print the child's PID in "@ build-started" traces. (DerivationGoal::handleChildOutput): Define 'prefix', pass it to 'writeToStderr'. * nix/libstore/globals.cc (Settings:Settings): Initialize 'multiplexedBuildOutput'. (Settings::update): Likewise. * nix/libstore/globals.hh (Settings)[multiplexedBuildOutput]: New field. Update 'printBuildTrace' documentation. * nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump to 0.163. * nix/nix-daemon/nix-daemon.cc (performOp) : Special-case "multiplexed-build-output" and remove "use-ssh-substituter". * guix/store.scm (set-build-options): Add #:multiplexed-build-output? and honor it. (%protocol-version): Bump to #x163. * tests/store.scm ("multiplexed-build-output"): New test. fixlet --- guix/store.scm | 15 +++++++++- nix/libstore/build.cc | 25 ++++++++++++---- nix/libstore/globals.cc | 2 ++ nix/libstore/globals.hh | 9 +++++- nix/libstore/worker-protocol.hh | 2 +- nix/nix-daemon/nix-daemon.cc | 2 +- tests/store.scm | 63 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 108 insertions(+), 10 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index 8b35fc8d7a..b1bdbf3813 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -155,7 +155,7 @@ derivation-log-file log-file)) -(define %protocol-version #x162) +(define %protocol-version #x163) (define %worker-magic-1 #x6e697863) ; "nixc" (define %worker-magic-2 #x6478696f) ; "dxio" @@ -709,6 +709,15 @@ encoding conversion errors." ;; disabled by default. print-extended-build-trace? + ;; When true, the daemon prefixes builder output + ;; with "@ build-log" traces so we can + ;; distinguish it from daemon output, and we can + ;; distinguish each builder's output + ;; (PRINT-BUILD-TRACE must be true as well.) The + ;; latter is particularly useful when + ;; MAX-BUILD-JOBS > 1. + multiplexed-build-output? + build-cores (use-substitutes? #t) @@ -757,6 +766,10 @@ encoding conversion errors." `(("print-extended-build-trace" . ,(if print-extended-build-trace? "1" "0"))) '()) + ,@(if multiplexed-build-output? + `(("multiplexed-build-output" + . ,(if multiplexed-build-output? "true" "false"))) + '()) ,@(if timeout `(("build-timeout" . ,(number->string timeout))) '()) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index b2c319f00b..d7b8b0f0ca 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -1652,8 +1652,8 @@ HookReply DerivationGoal::tryBuildHook() worker.childStarted(shared_from_this(), hook->pid, fds, false, false); if (settings.printBuildTrace) - printMsg(lvlError, format("@ build-started %1% - %2% %3%") - % drvPath % drv.platform % logFile); + printMsg(lvlError, format("@ build-started %1% - %2% %3% %4%") + % drvPath % drv.platform % logFile % hook->pid); return rpAccept; } @@ -2038,8 +2038,8 @@ void DerivationGoal::startBuilder() if (!msg.empty()) throw Error(msg); if (settings.printBuildTrace) { - printMsg(lvlError, format("@ build-started %1% - %2% %3%") - % drvPath % drv.platform % logFile); + printMsg(lvlError, format("@ build-started %1% - %2% %3% %4%") + % drvPath % drv.platform % logFile % pid); } } @@ -2736,6 +2736,19 @@ void DerivationGoal::deleteTmpDir(bool force) void DerivationGoal::handleChildOutput(int fd, const string & data) { + string prefix; + + if (settings.multiplexedBuildOutput) { + /* Print a prefix that allows clients to determine whether a message + comes from the daemon or from a build process, and in the latter + case, which build process it comes from. The PID here matches the + one given in "@ build-started" traces; it's shorter that the + derivation file name, hence this choice. */ + prefix = "@ build-log " + + std::to_string(pid < 0 ? hook->pid : pid) + + " " + std::to_string(data.size()) + "\n"; + } + if ((hook && fd == hook->builderOut.readSide) || (!hook && fd == builderOut.readSide)) { @@ -2748,7 +2761,7 @@ void DerivationGoal::handleChildOutput(int fd, const string & data) return; } if (verbosity >= settings.buildVerbosity) - writeToStderr(data); + writeToStderr(prefix + data); if (gzLogFile) { if (data.size() > 0) { @@ -2767,7 +2780,7 @@ void DerivationGoal::handleChildOutput(int fd, const string & data) } if (hook && fd == hook->fromHook.readSide) - writeToStderr(data); + writeToStderr(prefix + data); } diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc index 94c2e516f8..4b5b485e65 100644 --- a/nix/libstore/globals.cc +++ b/nix/libstore/globals.cc @@ -36,6 +36,7 @@ Settings::Settings() buildTimeout = 0; useBuildHook = true; printBuildTrace = false; + multiplexedBuildOutput = false; reservedSize = 8 * 1024 * 1024; fsyncMetadata = true; useSQLiteWAL = true; @@ -120,6 +121,7 @@ void Settings::update() _get(maxBuildJobs, "build-max-jobs"); _get(buildCores, "build-cores"); _get(thisSystem, "system"); + _get(multiplexedBuildOutput, "multiplexed-build-output"); _get(maxSilentTime, "build-max-silent-time"); _get(buildTimeout, "build-timeout"); _get(reservedSize, "gc-reserved-space"); diff --git a/nix/libstore/globals.hh b/nix/libstore/globals.hh index 4c142e6933..a6935c3337 100644 --- a/nix/libstore/globals.hh +++ b/nix/libstore/globals.hh @@ -127,7 +127,7 @@ struct Settings { a fixed format to allow its progress to be monitored. Each line starts with a "@". The following are defined: - @ build-started + @ build-started @ build-failed @ build-succeeded @ substituter-started @@ -139,6 +139,13 @@ struct Settings { builders. */ bool printBuildTrace; + /* When true, 'buildDerivations' prefixes lines coming from builders so + that clients know exactly which line comes from which builder, and + which line comes from the daemon itself. The prefix for data coming + from builders is "log:PID:LEN:DATA" where PID uniquely identifies the + builder (PID is given in "build-started" traces.) */ + bool multiplexedBuildOutput; + /* Amount of reserved space for the garbage collector (/nix/var/nix/db/reserved). */ off_t reservedSize; diff --git a/nix/libstore/worker-protocol.hh b/nix/libstore/worker-protocol.hh index 103d60a8c2..ea67b10a5b 100644 --- a/nix/libstore/worker-protocol.hh +++ b/nix/libstore/worker-protocol.hh @@ -6,7 +6,7 @@ namespace nix { #define WORKER_MAGIC_1 0x6e697863 #define WORKER_MAGIC_2 0x6478696f -#define PROTOCOL_VERSION 0x162 +#define PROTOCOL_VERSION 0x163 #define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00) #define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff) diff --git a/nix/nix-daemon/nix-daemon.cc b/nix/nix-daemon/nix-daemon.cc index 782e4acfc5..2939422172 100644 --- a/nix/nix-daemon/nix-daemon.cc +++ b/nix/nix-daemon/nix-daemon.cc @@ -594,7 +594,7 @@ static void performOp(bool trusted, unsigned int clientVersion, if (name == "build-timeout" || name == "build-max-silent-time" || name == "build-max-jobs" || name == "build-cores" || name == "build-repeat" - || name == "use-ssh-substituter") + || name == "multiplexed-build-output") settings.set(name, value); else settings.set(trusted ? name : "untrusted-" + name, value); diff --git a/tests/store.scm b/tests/store.scm index 2858369706..3ff526cdcf 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -31,6 +31,7 @@ #:use-module (gnu packages) #:use-module (gnu packages bootstrap) #:use-module (ice-9 match) + #:use-module (ice-9 regex) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (web uri) @@ -1021,4 +1022,66 @@ (call-with-input-file (derivation->output-path drv2) read)))))) +(test-equal "multiplexed-build-output" + '("Hello from first." "Hello from second.") + (with-store store + (let* ((build (add-text-to-store store "build.sh" + "echo Hello from $NAME.; echo > $out")) + (bash (add-to-store store "bash" #t "sha256" + (search-bootstrap-binary "bash" + (%current-system)))) + (drv1 (derivation store "one" bash + `("-e" ,build) + #:inputs `((,bash) (,build)) + #:env-vars `(("NAME" . "first") + ("x" . ,(random-text))))) + (drv2 (derivation store "two" bash + `("-e" ,build) + #:inputs `((,bash) (,build)) + #:env-vars `(("NAME" . "second") + ("x" . ,(random-text)))))) + (set-build-options store + #:print-build-trace #t + #:multiplexed-build-output? #t + #:max-build-jobs 10) + (let ((port (open-output-string))) + ;; Send the build log to PORT. + (parameterize ((current-build-output-port port)) + (build-derivations store (list drv1 drv2))) + + ;; Retrieve the build log; make sure it contains valid "@ build-log" + ;; traces that allow us to retrieve each builder's output (we assume + ;; there's exactly one "build-output" trace for each builder, which is + ;; reasonable.) + (let* ((log (get-output-string port)) + (started (fold-matches + (make-regexp "@ build-started ([^ ]+) - ([^ ]+) ([^ ]+) ([0-9]+)") + log '() cons)) + (done (fold-matches + (make-regexp "@ build-succeeded (.*) - (.*) (.*) (.*)") + log '() cons)) + (output (fold-matches + (make-regexp "@ build-log ([[:digit:]]+) ([[:digit:]]+)\n([A-Za-z .*]+)\n") + log '() cons)) + (drv-pid (lambda (name) + (lambda (m) + (let ((drv (match:substring m 1)) + (pid (string->number + (match:substring m 4)))) + (and (string-suffix? name drv) pid))))) + (pid-log (lambda (pid) + (lambda (m) + (let ((n (string->number + (match:substring m 1))) + (len (string->number + (match:substring m 2))) + (str (match:substring m 3))) + (and (= pid n) + (= (string-length str) (- len 1)) + str))))) + (pid1 (any (drv-pid "one.drv") started)) + (pid2 (any (drv-pid "two.drv") started))) + (list (any (pid-log pid1) output) + (any (pid-log pid2) output))))))) + (test-end "store") -- cgit v1.2.3 From f9a8fce10f2d99efec7cb1dd0f6c5f0df9d1b2df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 15 Oct 2018 23:06:55 +0200 Subject: status: Build upon multiplexed build output. This allows for more accurate status tracking and parsing of extended build traces. * guix/status.scm (multiplexed-output-supported?): New procedure. (print-build-event): Don't print \r when PRINT-LOG? is true. Adjust 'build-log' handling for when 'multiplexed-output-supported?' returns true. (bytevector-index, split-lines): New procedures. (build-event-output-port)[%build-output-pid, %build-output] [%build-output-left]: New variables. [process-line]: Handle "@ build-output" traces. [process-build-output]: New procedure. [write!]: Add case for when %BUILD-OUTPUT-PID is true. Use 'bytevector-index' rather than 'string-index'. (compute-status): Add #:derivation-path->output-path. Use it. * tests/status.scm ("compute-status, multiplexed build output"): New test. ("build-output-port, UTF-8") ("current-build-output-port, UTF-8 + garbage"): Adjust to new 'build-log' output. * guix/scripts/build.scm (set-build-options-from-command-line): Pass #:multiplexed-build-output?. (%default-options): Add 'multiplexed-build-output?'. * guix/scripts/environment.scm (%default-options): Likewise. * guix/scripts/pack.scm (%default-options): Likewise. * guix/scripts/package.scm (%default-options): Likewise. * guix/scripts/pull.scm (%default-options): Likewise. * guix/scripts/system.scm (%default-options): Likewise. --- guix/scripts/build.scm | 3 + guix/scripts/environment.scm | 1 + guix/scripts/pack.scm | 1 + guix/scripts/package.scm | 3 +- guix/scripts/pull.scm | 1 + guix/scripts/system.scm | 1 + guix/status.scm | 169 ++++++++++++++++++++++++++++++++----------- tests/status.scm | 51 ++++++++++++- 8 files changed, 184 insertions(+), 46 deletions(-) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index f3aa5512d5..13978abb77 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -395,6 +395,8 @@ options handled by 'set-build-options-from-command-line', and listed in #:print-build-trace (assoc-ref opts 'print-build-trace?) #:print-extended-build-trace? (assoc-ref opts 'print-extended-build-trace?) + #:multiplexed-build-output? + (assoc-ref opts 'multiplexed-build-output?) #:verbosity (assoc-ref opts 'verbosity))) (define set-build-options-from-command-line* @@ -505,6 +507,7 @@ options handled by 'set-build-options-from-command-line', and listed in (build-hook? . #t) (print-build-trace? . #t) (print-extended-build-trace? . #t) + (multiplexed-build-output? . #t) (verbosity . 0))) (define (show-help) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 9fc7edcd36..5965e3426e 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -176,6 +176,7 @@ COMMAND or an interactive shell in that environment.\n")) (graft? . #t) (print-build-trace? . #t) (print-extended-build-trace? . #t) + (multiplexed-build-output? . #t) (verbosity . 0))) (define (tag-package-arg opts arg) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 163f5b1dc1..fb3c50521d 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -541,6 +541,7 @@ please email '~a'~%") (graft? . #t) (print-build-trace? . #t) (print-extended-build-trace? . #t) + (multiplexed-build-output? . #t) (verbosity . 0) (symlinks . ()) (compressor . ,(first %compressors)))) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index e588ff81ed..5d146b8427 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -296,7 +296,8 @@ ENTRIES, a list of manifest entries, in the context of PROFILE." (substitutes? . #t) (build-hook? . #t) (print-build-trace? . #t) - (print-extended-build-trace? . #t))) + (print-extended-build-trace? . #t) + (multiplexed-build-output? . #t))) (define (show-help) (display (G_ "Usage: guix package [OPTION]... diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index d3fd624228..188237aa90 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -64,6 +64,7 @@ (build-hook? . #t) (print-build-trace? . #t) (print-extended-build-trace? . #t) + (multiplexed-build-output? . #t) (graft? . #t) (verbosity . 0))) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index f9d6b9e5b6..f9af38b7c5 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -1082,6 +1082,7 @@ Some ACTIONS support additional ARGS.\n")) (build-hook? . #t) (print-build-trace? . #t) (print-extended-build-trace? . #t) + (multiplexed-build-output? . #t) (graft? . #t) (verbosity . 0) (file-system-type . "ext4") diff --git a/guix/status.scm b/guix/status.scm index d8d761dc23..8e05d4eb76 100644 --- a/guix/status.scm +++ b/guix/status.scm @@ -116,7 +116,10 @@ (string=? item (download-item download)))) (define* (compute-status event status - #:key (current-time current-time)) + #:key + (current-time current-time) + (derivation-path->output-path + derivation-path->output-path)) "Given EVENT, a tuple like (build-started \"/gnu/store/...-foo.drv\" ...), compute a new status based on STATUS." (match event @@ -142,8 +145,7 @@ compute a new status based on STATUS." (inherit status) (building (remove (lambda (drv) (equal? (false-if-exception - (derivation->output-path - (read-derivation-from-file drv))) + (derivation-path->output-path drv)) item)) (build-status-building status))) (downloading (cons (download item uri #:size size @@ -219,6 +221,12 @@ build traces\" such as \"@ download-progress\" traces." (and (current-store-protocol-version) (>= (current-store-protocol-version) #x162))) +(define (multiplexed-output-supported?) + "Return true if the daemon supports \"multiplexed output\"--i.e., \"@ +build-log\" traces." + (and (current-store-protocol-version) + (>= (current-store-protocol-version) #x163))) + (define spin! (let ((steps (circular-list "\\" "|" "/" "-"))) (lambda (port) @@ -313,7 +321,8 @@ addition to build events." (lambda (line) (spin! port)))) - (display "\r" port) ;erase the spinner + (unless print-log? + (display "\r" port)) ;erase the spinner (match event (('build-started drv . _) (format port (info (G_ "building ~a...")) drv) @@ -384,21 +393,28 @@ addition to build events." expected hash: ~a actual hash: ~a~%")) expected actual)) - (('build-log line) - ;; TODO: Better distinguish daemon messages and build log lines. - (cond ((string-prefix? "substitute: " line) - ;; The daemon prefixes early messages coming with 'guix - ;; substitute' with "substitute:". These are useful ("updating - ;; substitutes from URL"), so let them through. - (format port line) - (force-output port)) - ((string-prefix? "waiting for locks" line) - ;; This is when a derivation is already being built and we're just - ;; waiting for the build to complete. - (display (info (string-trim-right line)) port) - (newline)) - (else - (print-log-line line)))) + (('build-log pid line) + (if (multiplexed-output-supported?) + (if (not pid) + (begin + ;; LINE comes from the daemon, not from builders. Let it + ;; through. + (display line port) + (force-output port)) + (print-log-line line)) + (cond ((string-prefix? "substitute: " line) + ;; The daemon prefixes early messages coming with 'guix + ;; substitute' with "substitute:". These are useful ("updating + ;; substitutes from URL"), so let them through. + (display line port) + (force-output port)) + ((string-prefix? "waiting for locks" line) + ;; This is when a derivation is already being built and we're just + ;; waiting for the build to complete. + (display (info (string-trim-right line)) port) + (newline)) + (else + (print-log-line line))))) (_ event))) @@ -428,9 +444,6 @@ ON-CHANGE can display the build status, build events, etc." ;;; Build port. ;;; -(define %newline - (char-set #\return #\newline)) - (define (maybe-utf8->string bv) "Attempt to decode BV as UTF-8 string and return it. Gracefully handle the case where BV does not contain only valid UTF-8." @@ -447,6 +460,28 @@ case where BV does not contain only valid UTF-8." (close-port port) str))))) +(define (bytevector-index bv number offset count) + "Search for NUMBER in BV starting from OFFSET and reading up to COUNT bytes; +return the offset where NUMBER first occurs or #f if it could not be found." + (let loop ((offset offset) + (count count)) + (cond ((zero? count) #f) + ((= (bytevector-u8-ref bv offset) number) offset) + (else (loop (+ 1 offset) (- count 1)))))) + +(define (split-lines str) + "Split STR into lines in a way that preserves newline characters." + (let loop ((str str) + (result '())) + (if (string-null? str) + (reverse result) + (match (string-index str #\newline) + (#f + (loop "" (cons str result))) + (index + (loop (string-drop str (+ index 1)) + (cons (string-take str (+ index 1)) result))))))) + (define* (build-event-output-port proc #:optional (seed (build-status))) "Return an output port for use as 'current-build-output-port' that calls PROC with its current state value, initialized with SEED, on every build @@ -467,33 +502,83 @@ The second return value is a thunk to retrieve the current state." ;; Current state for PROC. seed) + ;; When true, this represents the current state while reading a + ;; "@ build-log" trace: the current builder PID, the previously-read + ;; bytevectors, and the number of bytes that remain to be read. + (define %build-output-pid #f) + (define %build-output '()) + (define %build-output-left #f) + (define (process-line line) - (if (string-prefix? "@ " line) - (match (string-tokenize (string-drop line 2)) - (((= string->symbol event-name) args ...) - (set! %state - (proc (cons event-name args) - %state)))) - (set! %state (proc (list 'build-log line) - %state)))) + (cond ((string-prefix? "@ " line) + (match (string-tokenize (string-drop line 2)) + (("build-log" (= string->number pid) (= string->number len)) + (set! %build-output-pid pid) + (set! %build-output '()) + (set! %build-output-left len)) + (((= string->symbol event-name) args ...) + (set! %state + (proc (cons event-name args) + %state))))) + (else + (set! %state (proc (list 'build-log #f line) + %state))))) + + (define (process-build-output pid output) + ;; Transform OUTPUT in 'build-log' events or download events as generated + ;; by extended build traces. + (define (line->event line) + (match (and (string-prefix? "@ " line) + (string-tokenize (string-drop line 2))) + ((type . args) + (if (or (string-prefix? "download-" type) + (string=? "build-remote" type)) + (cons (string->symbol type) args) + `(build-log ,pid ,line))) + (_ + `(build-log ,pid ,line)))) + + (let* ((lines (split-lines output)) + (events (map line->event lines))) + (set! %state (fold proc %state events)))) (define (bytevector-range bv offset count) (let ((ptr (bytevector->pointer bv offset))) (pointer->bytevector ptr count))) (define (write! bv offset count) - (let loop ((str (maybe-utf8->string (bytevector-range bv offset count)))) - (match (string-index str %newline) - ((? integer? cr) - (let ((tail (string-take str (+ 1 cr)))) - (process-line (string-concatenate-reverse - (cons tail %fragments))) - (set! %fragments '()) - (loop (string-drop str (+ 1 cr))))) - (#f - (unless (string-null? str) - (set! %fragments (cons str %fragments))) - count)))) + (if %build-output-pid + (let ((keep (min count %build-output-left))) + (set! %build-output + (let ((bv* (make-bytevector keep))) + (bytevector-copy! bv offset bv* 0 keep) + (cons bv* %build-output))) + (set! %build-output-left + (- %build-output-left keep)) + + (when (zero? %build-output-left) + (process-build-output %build-output-pid + (string-concatenate-reverse + (map maybe-utf8->string %build-output))) ;XXX + (set! %build-output '()) + (set! %build-output-pid #f)) + keep) + (match (bytevector-index bv (char->integer #\newline) + offset count) + ((? integer? cr) + (let* ((tail (maybe-utf8->string + (bytevector-range bv offset (- cr -1 offset)))) + (line (string-concatenate-reverse + (cons tail %fragments)))) + (process-line line) + (set! %fragments '()) + (- cr -1 offset))) + (#f + (unless (zero? count) + (let ((str (maybe-utf8->string + (bytevector-range bv offset count)))) + (set! %fragments (cons str %fragments)))) + count)))) (define port (make-custom-binary-output-port "filtering-input-port" diff --git a/tests/status.scm b/tests/status.scm index 486ad04dd2..3b74946673 100644 --- a/tests/status.scm +++ b/tests/status.scm @@ -22,7 +22,8 @@ #:use-module (srfi srfi-11) #:use-module (srfi srfi-64) #:use-module (rnrs bytevectors) - #:use-module (rnrs io ports)) + #:use-module (rnrs io ports) + #:use-module (ice-9 match)) (test-begin "status") @@ -115,7 +116,7 @@ (list first (get-status))))) (test-equal "build-output-port, UTF-8" - '((build-log "lambda is λ!\n")) + '((build-log #f "lambda is λ!\n")) (let-values (((port get-status) (build-event-output-port cons '())) ((bv) (string->utf8 "lambda is λ!\n"))) (put-bytevector port bv) @@ -124,7 +125,7 @@ (test-equal "current-build-output-port, UTF-8 + garbage" ;; What about a mixture of UTF-8 + garbage? - '((build-log "garbage: �lambda: λ\n")) + '((build-log #f "garbage: �lambda: λ\n")) (let-values (((port get-status) (build-event-output-port cons '()))) (display "garbage: " port) (put-bytevector port #vu8(128)) @@ -132,4 +133,48 @@ (force-output port) (get-status))) +(test-equal "compute-status, multiplexed build output" + (list (build-status + (building '("foo.drv")) + (downloading (list (download "bar" "http://example.org/bar" + #:size 999 + #:start 'now)))) + (build-status + (building '("foo.drv")) + (downloading (list (download "bar" "http://example.org/bar" + #:size 999 + #:transferred 42 + #:start 'now)))) + (build-status + ;; XXX: Should "bar.drv" be present twice? + (builds-completed '("bar.drv" "foo.drv")) + (downloads-completed (list (download "bar" "http://example.org/bar" + #:size 999 + #:transferred 999 + #:start 'now + #:end 'now))))) + (let-values (((port get-status) + (build-event-output-port (lambda (event status) + (compute-status event status + #:current-time + (const 'now) + #:derivation-path->output-path + (match-lambda + ("bar.drv" "bar"))))))) + (display "@ build-started foo.drv 121\n" port) + (display "@ build-started bar.drv 144\n" port) + (display "@ build-log 121 6\nHello!" port) + (display "@ build-log 144 50 +@ download-started bar http://example.org/bar 999\n" port) + (let ((first (get-status))) + (display "@ build-log 121 30\n@ build-started FAKE!.drv 555\n") + (display "@ build-log 144 54 +@ download-progress bar http://example.org/bar 999 42\n" + port) + (let ((second (get-status))) + (display "@ download-succeeded bar http://example.org/bar 999\n" port) + (display "@ build-succeeded foo.drv\n" port) + (display "@ build-succeeded bar.drv\n" port) + (list first second (get-status)))))) + (test-end "status") -- cgit v1.2.3 From 532f92c8f39ef8fa9441bf0840ae642016fac7a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 15 Oct 2018 23:54:20 +0200 Subject: gnu: guix: Update to f9a8fce. * gnu/packages/package-management.scm (guix): Update to f9a8fce. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 9a0023233f..fbbb4c3811 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -101,8 +101,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.15.0") - (commit "1d0be47ab680db938ac8da1ee65e1de91e198f67") - (revision 5)) + (commit "f9a8fce10f2d99efec7cb1dd0f6c5f0df9d1b2df") + (revision 6)) (package (name "guix") @@ -118,7 +118,7 @@ (commit commit))) (sha256 (base32 - "19cn4ndmr9cqd7qh6w3nchbmdpaawdl9kc6g0v6g680vzcja417k")) + "1733d5id0h44rrkyj9xw4fcqr1wawcfi8igpgk5wsn1iq4qqwv5f")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 503fe87098a23c0b7d848df5a926ebc22aba7fa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Tue, 16 Oct 2018 10:57:50 +0200 Subject: gnu: emacs-xelb: Update to 0.16. * gnu/packages/emacs.scm (emacs-xelb): Update to 0.16. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4b013eb292..fe9047691e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -6576,14 +6576,14 @@ which code derived from Kelvin H's org-page.") (define-public emacs-xelb (package (name "emacs-xelb") - (version "0.15") + (version "0.16") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/xelb-" version ".tar")) (sha256 (base32 - "031rvgprsqhf344p9wsczr50vj2qcpwdmhxi80jdbrsm7wyxf3qz")))) + "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8")))) (build-system emacs-build-system) ;; The following functions and variables needed by emacs-xelb are ;; not included in emacs-minimal: -- cgit v1.2.3 From f1376bfabe81608db85d439351f00505b97e944f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Tue, 16 Oct 2018 10:58:06 +0200 Subject: gnu: emacs-exwm: Update to 0.20. * gnu/packages/emacs.scm (emacs-exwm): Update to 0.20. [source]: Remove emacs-exwm-fix-fullscreen-issue.patch. * gnu/local.mk (dist_patch_DATA): Remove patch. * gnu/packages/patches/emacs-exwm-fix-fullscreen-issue.patch: Remove patch. --- gnu/local.mk | 1 - gnu/packages/emacs.scm | 5 ++-- .../patches/emacs-exwm-fix-fullscreen-issue.patch | 27 ---------------------- 3 files changed, 2 insertions(+), 31 deletions(-) delete mode 100644 gnu/packages/patches/emacs-exwm-fix-fullscreen-issue.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1fa2eaba31..b8248e8da0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -659,7 +659,6 @@ dist_patch_DATA = \ %D%/packages/patches/elogind-glibc-2.27.patch \ %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/emacs-exec-path.patch \ - %D%/packages/patches/emacs-exwm-fix-fullscreen-issue.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index fe9047691e..d30a4cc568 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -6615,7 +6615,7 @@ It should enable you to implement low-level X11 applications.") (define-public emacs-exwm (package (name "emacs-exwm") - (version "0.19") + (version "0.20") (synopsis "Emacs X window manager") (source (origin (method url-fetch) @@ -6623,8 +6623,7 @@ It should enable you to implement low-level X11 applications.") version ".tar")) (sha256 (base32 - "11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0")) - (patches (search-patches "emacs-exwm-fix-fullscreen-issue.patch")))) + "0nhhzbkm0mkj7sd1dy2c19cmn56gyaj9nl8kgy86h4fp63hjaz04")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-xelb" ,emacs-xelb))) diff --git a/gnu/packages/patches/emacs-exwm-fix-fullscreen-issue.patch b/gnu/packages/patches/emacs-exwm-fix-fullscreen-issue.patch deleted file mode 100644 index 5c9bd36598..0000000000 --- a/gnu/packages/patches/emacs-exwm-fix-fullscreen-issue.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 13a14579cc1bb772735f895dd5b4b90c6812f3ee Mon Sep 17 00:00:00 2001 -From: Chris Feng -Date: Sun, 29 Jul 2018 00:00:00 +0000 -Subject: [PATCH] Fix issues with destroying full screen X windows - -* exwm-manage.el (exwm-manage--unmanage-window): Set the Emacs window -of an full screen X window as non-dedicated before killing its buffer -so as not to cause other side effects. ---- - exwm-manage.el | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/exwm-manage.el b/exwm-manage.el -index a0a9e05..349157f 100644 ---- a/exwm-manage.el -+++ b/exwm-manage.el -@@ -392,6 +392,10 @@ manager is shutting down." - :window window :parent exwm--root :x 0 :y 0)) - (xcb:+request exwm--connection - (make-instance 'xcb:DestroyWindow :window container)))) -+ (when (exwm-layout--fullscreen-p) -+ (let ((window (get-buffer-window))) -+ (when window -+ (set-window-dedicated-p window nil)))) - (exwm-manage--set-client-list) - (xcb:flush exwm--connection)) - (let ((kill-buffer-func -- cgit v1.2.3 From 2d4a753a7cd38a3e7b95066bc92f1c0196737b70 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 16 Oct 2018 14:23:04 +0200 Subject: gnu: xpra: Update to 2.4. * gnu/packages/xorg.scm (xpra): Update to 2.4. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7c80e70dac..4cf8eb2de4 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5936,7 +5936,7 @@ basic eye-candy effects.") (define-public xpra (package (name "xpra") - (version "2.3.4") + (version "2.4") (source (origin (method url-fetch) @@ -5944,7 +5944,7 @@ basic eye-candy effects.") version ".tar.xz")) (sha256 (base32 - "0wa3kx54himy3i1b2801hlzfilh3cf4kjk40k1cjl0ds28m5hija")))) + "0blzx231sr1ri1zwzpwzf611sq9104bv3ccvnap9pbvfrc05sfwx")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg) ("flac" ,flac) -- cgit v1.2.3 From 02d5ed4a2700e8613aaf0642333734b60caff0f7 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 16 Oct 2018 12:54:17 -0400 Subject: gnu: GStreamer plugins: Update MP3 features for GStreamer 1.14. GStreamer moved all MPEG-1 audio (mp1, mp2, and mp3) decoders and encoders to the group of "good" plugins in GStreamer 1.14.0. See the 'NEWS' file for more information. * gnu/packages/gstreamer.scm (gst-plugins-ugly)[inputs]: Remove lame, mpg123, and twolame. (gst-plugins-bad): Remove mpg123. (gst-plugins-good): Add lame, mpg123, and twolame. --- gnu/packages/gstreamer.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index f556861857..435c3e5b3a 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -227,6 +227,7 @@ for the GStreamer multimedia library.") ("gdk-pixbuf" ,gdk-pixbuf) ("gst-plugins-base" ,gst-plugins-base) ("jack" ,jack-1) + ("lame" ,lame) ("libavc1394" ,libavc1394) ("libcaca" ,libcaca) ("libdv" ,libdv) @@ -236,10 +237,12 @@ for the GStreamer multimedia library.") ("libshout" ,libshout) ("libsoup" ,libsoup) ("libvpx" ,libvpx) + ("mpg123" ,mpg123) ("orc" ,orc) ("pulseaudio" ,pulseaudio) ("speex" ,speex) ("taglib" ,taglib) + ("twolame" ,twolame) ("wavpack" ,wavpack))) (native-inputs `(("glib:bin" ,glib "bin") @@ -320,7 +323,6 @@ developers consider to have good quality code and correct functionality.") ("libxml2" ,libxml2) ("lrdf" ,lrdf) ("mesa" ,mesa) - ("mpg123" ,mpg123) ("neon" ,neon) ("openal" ,openal) ("openexr" ,openexr) @@ -357,13 +359,10 @@ par compared to the rest.") (inputs `(("gst-plugins-base" ,gst-plugins-base) ("liba52" ,liba52) - ("lame" ,lame) ("libcdio" ,libcdio) - ("twolame" ,twolame) ("libmpeg2" ,libmpeg2) ("libdvdread" ,libdvdread) ("libx264" ,libx264) - ("mpg123" ,mpg123) ;; TODO: ;; * opencore-amr (for the AMR-NB decoder and encoder and the ;; AMR-WB decoder) -- cgit v1.2.3 From ad0082afe041af1a6e8e8f04415fdcae23e8fc0f Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 16 Oct 2018 14:35:41 +0200 Subject: import: json: Handle the error case. * guix/import/json.scm (json-fetch-alist): Handle the error case. --- guix/import/json.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/import/json.scm b/guix/import/json.scm index 4f96a513df..81ea5e7b31 100644 --- a/guix/import/json.scm +++ b/guix/import/json.scm @@ -47,4 +47,5 @@ the query." (define (json-fetch-alist url) "Return an alist representation of the JSON resource URL, or #f if URL returns 403 or 404." - (hash-table->alist (json-fetch url))) + (and=> (json-fetch url) + hash-table->alist)) -- cgit v1.2.3 From c8e3651a824bbc28915802265d9a5e7cc6405eea Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 10 Oct 2018 13:26:54 -0500 Subject: gnu: guile2.0-guix: Fix build. * gnu/packages/gnupg.scm (guile2.0-gcrypt): New variable. * gnu/packages/guile.scm (guile2.0-sqlite3): New variable. * gnu/packages/package-management.scm (guile2.0-guix)[propagated-inputs]: Use them. --- gnu/packages/gnupg.scm | 12 ++++++++++-- gnu/packages/guile.scm | 4 ++++ gnu/packages/package-management.scm | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 067a2338d4..c38fe64200 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2013, 2015, 2018 Andreas Enge -;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2014, 2018 Eric Bavier ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner @@ -67,7 +67,8 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) - #:use-module (guix build-system python)) + #:use-module (guix build-system python) + #:use-module (srfi srfi-1)) (define-public libgpg-error (package @@ -485,6 +486,13 @@ strong randomness, and more. It is implemented using the foreign function interface (FFI) of Guile.") (license license:gpl3+))) +(define-public guile2.0-gcrypt + (package (inherit guile-gcrypt) + (name "guile2.0-gcrypt") + (inputs + `(("guile" ,guile-2.0) + ,@(alist-delete "guile" (package-inputs guile-gcrypt)))))) + (define-public python-gpg (package (name "python-gpg") diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index e223edb9fc..912b0218ef 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2018 Maxim Cournoyer ;;; Copyright © 2018 Arun Isaac ;;; Copyright © 2018 Pierre-Antoine Rouby +;;; Copyright © 2018 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -1151,6 +1152,9 @@ Guile's foreign function interface.") "This package provides Guile bindings to the SQLite database system.") (license license:gpl3+))) +(define-public guile2.0-sqlite3 + (package-for-guile-2.0 guile-sqlite3)) + (define-public haunt (package (name "haunt") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index fbbb4c3811..f06a39ddd6 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -367,7 +367,9 @@ the Nix package manager.") ,@(alist-delete "guile" (package-inputs guix)))) (propagated-inputs `(("gnutls" ,gnutls/guile-2.0) + ("guile-gcrypt" ,guile2.0-gcrypt) ("guile-json" ,guile2.0-json) + ("guile-sqlite3" ,guile2.0-sqlite3) ("guile-ssh" ,guile2.0-ssh) ("guile-git" ,guile2.0-git))))) -- cgit v1.2.3 From 6f1ce09d79fa6148459c90120881e825551651b2 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 10 Oct 2018 13:33:15 -0500 Subject: gnu: Add guix-minimal. * gnu/packages/guile.scm (guile-2.0.13): New variable. * gnu/packages/package-management.scm (guix)[arguments]: Adjust 'wrap-program' phase to handle "missing" inputs. (guix-minimal): New variable. --- gnu/packages/guile.scm | 14 ++++++++++++++ gnu/packages/package-management.scm | 22 ++++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 912b0218ef..9e33003375 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -226,6 +226,20 @@ without requiring the source code to be rewritten.") (home-page "https://www.gnu.org/software/guile/") (license license:lgpl3+))) +(define-public guile-2.0.13 + ;; For testing a "minimal" Guix + (hidden-package + (package (inherit guile-2.0) + (name "guile") + (version "2.0.13") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/guile/guile-" version + ".tar.xz")) + (sha256 + (base32 + "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p"))))))) + (define-public guile-2.2 (package (inherit guile-2.0) (name "guile") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index f06a39ddd6..fd01545082 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2018 Julien Lepiller ;;; Copyright © 2018 Rutger Helling ;;; Copyright © 2018 Sou Bunnbu +;;; Copyright © 2018 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -232,13 +233,13 @@ (map (cut string-append <> "/share/guile/site/" effective) - deps) + (delete #f deps)) ":")) (gopath (string-join (map (cut string-append <> "/lib/guile/" effective "/site-ccache") - deps) + (delete #f deps)) ":"))) (wrap-program (string-append out "/bin/guix") @@ -373,6 +374,23 @@ the Nix package manager.") ("guile-ssh" ,guile2.0-ssh) ("guile-git" ,guile2.0-git))))) +(define-public guix-minimal + ;; A version of Guix which is built with the minimal set of dependencies, as + ;; outlined in the README "Requirements" section. Intended as a CI job, so + ;; marked as hidden. + (let ((guix guile2.0-guix)) + (hidden-package + (package + (inherit guix) + (name "guix-minimal") + (inputs + `(("guile" ,guile-2.0.13) + ,@(alist-delete "guile" (package-inputs guix)))) + (propagated-inputs + (fold alist-delete + (package-propagated-inputs guix) + '("guile-json" "guile-ssh"))))))) + (define (source-file? file stat) "Return true if FILE is likely a source file, false if it is a typical generated file." -- cgit v1.2.3 From 278f86a43f1561b1c064ce88da012db414ec7efc Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 10 Oct 2018 16:42:02 -0500 Subject: ui: Fix port-buffering with guile@2.0. * guix/status.scm (build-event-output-port)[guile@2.0]: Do not call 'setvbuf' on custom binary port. * tests/status.scm (current-build-output-port, UTF-8 + garbage)[guile@2.0]: Use "?" in place of REPLACEMENT CHARACTER. --- guix/status.scm | 5 +++-- tests/status.scm | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/guix/status.scm b/guix/status.scm index 8e05d4eb76..ffa9d9e93c 100644 --- a/guix/status.scm +++ b/guix/status.scm @@ -588,8 +588,9 @@ The second return value is a thunk to retrieve the current state." ;; The build port actually receives Unicode strings. (set-port-encoding! port "UTF-8") - (setvbuf port (cond-expand (guile-2.2 'line) (else _IOLBF))) - + (cond-expand + ((and guile-2 (not guile-2.2)) #t) + (else (setvbuf port 'line))) (values port (lambda () %state))) (define (call-with-status-report on-event thunk) diff --git a/tests/status.scm b/tests/status.scm index 3b74946673..99abb41c8b 100644 --- a/tests/status.scm +++ b/tests/status.scm @@ -125,7 +125,10 @@ (test-equal "current-build-output-port, UTF-8 + garbage" ;; What about a mixture of UTF-8 + garbage? - '((build-log #f "garbage: �lambda: λ\n")) + (let ((replacement (cond-expand + ((and guile-2 (not guile-2.2)) "?") + (else "�")))) + `((build-log #f ,(string-append "garbage: " replacement "lambda: λ\n")))) (let-values (((port get-status) (build-event-output-port cons '()))) (display "garbage: " port) (put-bytevector port #vu8(128)) -- cgit v1.2.3 From 24220e0f09592ae6a3991929a62f79eff2d1df44 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 16 Oct 2018 22:40:44 -0400 Subject: gnu: emacs-nodejs-repl: Update to 0.2.0. * gnu/packages/emacs.scm (emacs-nodejs-repl): Update to 0.2.0. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index d30a4cc568..f7ee26179a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4307,14 +4307,14 @@ strings, and code folding.") (define-public emacs-nodejs-repl (package (name "emacs-nodejs-repl") - (version "0.1.6") + (version "0.2.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/abicky/nodejs-repl.el" "/archive/" version ".tar.gz")) (sha256 (base32 - "0sphg1jxi3a5l0gqdp27d0qgyjaiq2p293av9zm8ksm0vwqp3fr9")) + "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz")) (file-name (string-append name "-" version ".tar.gz")))) (build-system emacs-build-system) (home-page "https://github.com/abicky/nodejs-repl.el") -- cgit v1.2.3 From 15b283e712a23cbffc9a50bebc8bca94283a3fe6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 17 Oct 2018 11:24:07 +0300 Subject: gnu: streamlink: Update to 0.14.2. * gnu/packages/video.scm (streamlink): Update to 0.14.2. [source]: Download from pypi. --- gnu/packages/video.scm | 63 +++++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 88357dfb45..ab57ee4b45 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1860,41 +1860,36 @@ and custom quantization matrices.") (license license:gpl2+))) (define-public streamlink - ;; Release tarball doesn't contain ‘tests/resources/dash/’ directory. - (let ((commit "2dca7930a938f60b48d8e23260963ea7c49d979f")) - (package - (name "streamlink") - (version (git-version "0.13.0" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/streamlink/streamlink.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0vq19aspshim63aj8yl2p64ykrbk2mwwlawdx427b3j2djlc5qhw")))) - (build-system python-build-system) - (home-page "https://github.com/streamlink/streamlink") - (native-inputs - `(("python-freezegun" ,python-freezegun) - ("python-pytest" ,python-pytest) - ("python-mock" ,python-mock) - ("python-requests-mock" ,python-requests-mock))) - (propagated-inputs - `(("python-pysocks" ,python-pysocks) - ("python-websocket-client" ,python-websocket-client) - ("python-iso3166" ,python-iso3166) - ("python-iso639" ,python-iso639) - ("python-isodate", python-isodate) - ("python-pycryptodome" ,python-pycryptodome) - ("python-requests" ,python-requests) - ("python-urllib3" ,python-urllib3))) - (synopsis "Extract streams from various services") - (description "Streamlink is command-line utility that extracts streams + (package + (name "streamlink") + (version "0.14.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "streamlink" version)) + (sha256 + (base32 + "0l2145fd60i76afjisfxd48cwhwyir07i7s3bnimdq5db2kzkix8")))) + (build-system python-build-system) + (home-page "https://github.com/streamlink/streamlink") + (native-inputs + `(("python-freezegun" ,python-freezegun) + ("python-pytest" ,python-pytest) + ("python-mock" ,python-mock) + ("python-requests-mock" ,python-requests-mock))) + (propagated-inputs + `(("python-pysocks" ,python-pysocks) + ("python-websocket-client" ,python-websocket-client) + ("python-iso3166" ,python-iso3166) + ("python-iso639" ,python-iso639) + ("python-isodate", python-isodate) + ("python-pycryptodome" ,python-pycryptodome) + ("python-requests" ,python-requests) + ("python-urllib3" ,python-urllib3))) + (synopsis "Extract streams from various services") + (description "Streamlink is command-line utility that extracts streams from sites like Twitch.tv and pipes them into a video player of choice.") - (license license:bsd-2)))) + (license license:bsd-2))) (define-public livestreamer (deprecated-package "livestreamer" streamlink)) -- cgit v1.2.3 From 05f8943f048c30920b0a6dd546400d7c19740d10 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 17 Oct 2018 10:35:40 +0200 Subject: gnu: emacs-helm-system-packages: Add recutils to inputs. * gnu/packages/emacs.scm (emacs-helm-system-packages)[inputs]: Use recutils. --- gnu/packages/emacs.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f7ee26179a..57841e86fa 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -5929,8 +5929,20 @@ Yasnippet.") (base32 "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f")))) (build-system emacs-build-system) + (inputs + `(("recutils" ,recutils))) (propagated-inputs `(("emacs-helm" ,emacs-helm))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((recutils (assoc-ref inputs "recutils"))) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (substitute* "helm-system-packages-guix.el" + (("recsel") (string-append recutils "/bin/recsel"))))))))) (home-page "https://github.com/emacs-helm/helm-system-packages") (synopsis "Helm System Packages is an interface to your package manager") (description "List all available packages in Helm (with installed -- cgit v1.2.3 From c4d62443eb50a615d47b590a7fedcc7f7f0ec100 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 17 Oct 2018 13:06:25 +0200 Subject: import cran: Document "recursive" option. * guix/scripts/import/cran.scm: (show-help): Document "recursive" option. --- guix/scripts/import/cran.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/guix/scripts/import/cran.scm b/guix/scripts/import/cran.scm index 30ae6d4342..794fb710cd 100644 --- a/guix/scripts/import/cran.scm +++ b/guix/scripts/import/cran.scm @@ -47,6 +47,8 @@ Import and convert the CRAN package for PACKAGE-NAME.\n")) (display (G_ " -h, --help display this help and exit")) (display (G_ " + -r, --recursive import packages recursively")) + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) -- cgit v1.2.3 From 82402f76bebfa3bb563a58227eb4081f9bdb6142 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 15 Oct 2018 20:00:03 -0400 Subject: gnu: hyperrogue: Update to 10.4t. * gnu/packages/games.scm (hyperrogue): Update to 10.4t. [arguments]: Modify 'make-flags'. Modify 'configure' and 'install' phases. --- gnu/packages/games.scm | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 2547c72c23..972dec3419 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3658,7 +3658,7 @@ throwing people around in pseudo-randomly generated buildings.") (define-public hyperrogue (package (name "hyperrogue") - (version "10.4j") + (version "10.4t") ;; When updating this package, be sure to update the "hyperrogue-data" ;; origin in native-inputs. (source (origin @@ -3669,11 +3669,12 @@ throwing people around in pseudo-randomly generated buildings.") "-src.tgz")) (sha256 (base32 - "0909p4xvbi1c2jc5rdgrf8b1c60fmsaapabsi6yyglh5znkf0k27")))) + "0phqhmnzmc16a23qb4fkil0flzb86kibdckf1r35nc3l0k4193nn")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target - #:make-flags '("CXXFLAGS=-std=c++11") + #:make-flags '("HYPERROGUE_USE_GLEW=1" + "HYPERROGUE_USE_PNG=1") #:phases (modify-phases %standard-phases (add-after 'set-paths 'set-sdl-paths @@ -3696,12 +3697,16 @@ throwing people around in pseudo-randomly generated buildings.") (string-append dejavu-dir "/" dejavu-font))) (substitute* music-file (("\\*/") - (string-append share-dir "/sounds/")))) - ;; Fix Makefile. - (substitute* "Makefile" - (("g\\+\\+ langen.cpp") - "g++ langen.cpp ${CXXFLAGS}") - (("savepng.c") "savepng.cpp")) + (string-append share-dir "/sounds/"))) + (substitute* "sound.cpp" + (("musicfile = \"\"") + (string-append "musicfile = \"" + share-dir "/" music-file "\""))) + ;; Disable build machine CPU optimizations and warnings treated + ;; as errors. + (substitute* "Makefile" + (("-march=native") "") + (("-Werror") ""))) #t)) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) @@ -3709,7 +3714,7 @@ throwing people around in pseudo-randomly generated buildings.") (bin (string-append out "/bin")) (share-dir (string-append out "/share/hyperrogue"))) (mkdir-p bin) - (copy-file "hyper" (string-append bin "/hyperrogue")) + (install-file "hyperrogue" bin) (install-file "hyperrogue-music.txt" share-dir)) #t)) (add-after 'install 'install-data @@ -3741,7 +3746,7 @@ throwing people around in pseudo-randomly generated buildings.") "-win.zip")) (sha256 (base32 - "0w61iv2rn93hi0q3hxyyyf9xcr8vi9zd7fjvpz5adpgf94jm3zsc")))) + "1xd9v8zzgi8m5ar8g4gy1xx5zqwidz3gn1knz0lwib3kbxx4drpg")))) ("unzip" ,unzip))) (inputs `(("font-dejavu" ,font-dejavu) -- cgit v1.2.3 From 1d43756107077797e0168190ac12ee2564c8e76d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 17 Oct 2018 21:10:19 +0300 Subject: gnu: strace: Check before enabling personalities. * gnu/packages/linux.scm (strace)[arguments]: Add configure flag to check for personality support. --- gnu/packages/linux.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 79a1b0b46a..cd4adf9b6f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -961,6 +961,8 @@ Zerofree requires the file system to be unmounted or mounted read-only.") (substitute* "strace.c" (("/bin/sh") (which "sh"))) #t))) + ;; Don't fail if the architecture doesn't support different personalities. + #:configure-flags '("--enable-mpers=check") ;; See . #:parallel-tests? #f)) ; undeterministic failures (native-inputs `(("perl" ,perl))) -- cgit v1.2.3 From 90aeaee861845142843a0f988fa4ff016c723cdb Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 6 Oct 2018 16:47:05 +0200 Subject: gnu: python: Fix CVE-2018-14647. * gnu/packages/patches/python-CVE-2018-14647.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/python.scm (python-3/fixed): New variable. (python-3.6)[replacement]: New field. (python-minimal, python-debug, wrap-python3): Use PACKAGE/INHERIT instead of standard inheritance. --- gnu/local.mk | 1 + gnu/packages/patches/python-CVE-2018-14647.patch | 61 ++++++++++++++++++++++++ gnu/packages/python.scm | 26 ++++++++-- 3 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/python-CVE-2018-14647.patch diff --git a/gnu/local.mk b/gnu/local.mk index b8248e8da0..d30bbedee6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1076,6 +1076,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-3-deterministic-build-info.patch \ %D%/packages/patches/python-3-search-paths.patch \ %D%/packages/patches/python-3-fix-tests.patch \ + %D%/packages/patches/python-CVE-2018-14647.patch \ %D%/packages/patches/python-axolotl-AES-fix.patch \ %D%/packages/patches/python-cairocffi-dlopen-path.patch \ %D%/packages/patches/python-fix-tests.patch \ diff --git a/gnu/packages/patches/python-CVE-2018-14647.patch b/gnu/packages/patches/python-CVE-2018-14647.patch new file mode 100644 index 0000000000..24f8d21820 --- /dev/null +++ b/gnu/packages/patches/python-CVE-2018-14647.patch @@ -0,0 +1,61 @@ +Fix CVE-2018-14647: +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14647 +https://bugs.python.org/issue34623 + +Taken from upstream: +https://github.com/python/cpython/commit/f7666e828cc3d5873136473ea36ba2013d624fa1 + +diff --git Include/pyexpat.h Include/pyexpat.h +index 44259bf6d7..07020b5dc9 100644 +--- Include/pyexpat.h ++++ Include/pyexpat.h +@@ -3,7 +3,7 @@ + + /* note: you must import expat.h before importing this module! */ + +-#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.0" ++#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1" + #define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI" + + struct PyExpat_CAPI +@@ -48,6 +48,8 @@ struct PyExpat_CAPI + enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding); + int (*DefaultUnknownEncodingHandler)( + void *encodingHandlerData, const XML_Char *name, XML_Encoding *info); ++ /* might be none for expat < 2.1.0 */ ++ int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt); + /* always add new stuff to the end! */ + }; + +diff --git Modules/_elementtree.c Modules/_elementtree.c +index 707ab2912b..53f05f937f 100644 +--- Modules/_elementtree.c ++++ Modules/_elementtree.c +@@ -3261,6 +3261,11 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html, + PyErr_NoMemory(); + return -1; + } ++ /* expat < 2.1.0 has no XML_SetHashSalt() */ ++ if (EXPAT(SetHashSalt) != NULL) { ++ EXPAT(SetHashSalt)(self->parser, ++ (unsigned long)_Py_HashSecret.expat.hashsalt); ++ } + + if (target) { + Py_INCREF(target); +diff --git Modules/pyexpat.c Modules/pyexpat.c +index 47c3e86c20..aa21d93c11 100644 +--- Modules/pyexpat.c ++++ Modules/pyexpat.c +@@ -1887,6 +1887,11 @@ MODULE_INITFUNC(void) + capi.SetStartDoctypeDeclHandler = XML_SetStartDoctypeDeclHandler; + capi.SetEncoding = XML_SetEncoding; + capi.DefaultUnknownEncodingHandler = PyUnknownEncodingHandler; ++#if XML_COMBINED_VERSION >= 20100 ++ capi.SetHashSalt = XML_SetHashSalt; ++#else ++ capi.SetHashSalt = NULL; ++#endif + + /* export using capsule */ + capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL); diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8261fefd93..3e39866087 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -357,6 +357,7 @@ data types.") (package (inherit python-2) (name "python") (version "3.6.5") + (replacement python-3/fixed) (source (origin (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" @@ -456,6 +457,24 @@ data types.") ;; Current 3.x version. (define-public python-3 python-3.6) +(define python-3/fixed + (package + (inherit python-3) + (source (origin + (inherit (package-source python-3)) + (patches (append (origin-patches (package-source python-3)) + (search-patches "python-CVE-2018-14647.patch"))))) + (arguments + (substitute-keyword-arguments (package-arguments python-3) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'delete-broken-test + (lambda _ + ;; Delete test which fails on recent kernels: + ;; . + (delete-file "Lib/test/test_socket.py") + #t)))))))) + ;; Current major version. (define-public python python-3) @@ -474,7 +493,7 @@ data types.") ("zlib" ,zlib))))) (define-public python-minimal - (package (inherit python) + (package/inherit python (name "python-minimal") (outputs '("out")) @@ -486,8 +505,7 @@ data types.") ("zlib" ,zlib))))) (define-public python-debug - (package - (inherit python) + (package/inherit python (name "python-debug") (outputs '("out" "debug")) (build-system gnu-build-system) @@ -506,7 +524,7 @@ for more information."))) (define* (wrap-python3 python #:optional (name (string-append (package-name python) "-wrapper"))) - (package (inherit python) + (package/inherit python (name name) (source #f) (build-system trivial-build-system) -- cgit v1.2.3 From a55ebe2e3a7b438b4eec06c594440d3a0fb06a25 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 6 Oct 2018 18:50:47 +0200 Subject: gnu: python2: Add upstream security fixes. This addresses CVE-2018-{1060,1061,14647,1000802}. * gnu/packages/patches/python2-CVE-2018-1000802.patch, gnu/packages/patches/python2-CVE-2018-1060.patch, gnu/packages/patches/python2-CVE-2018-1061.patch, gnu/packages/patches/python2-CVE-2018-14647.patch: New files. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/python.scm (python-2/fixed): New variable. (python-2.7)[replacement]: New field. (python2-minimal): Use PACKAGE/INHERIT. --- gnu/local.mk | 4 ++ .../patches/python2-CVE-2018-1000802.patch | 47 +++++++++++++++++ gnu/packages/patches/python2-CVE-2018-1060.patch | 20 +++++++ gnu/packages/patches/python2-CVE-2018-1061.patch | 20 +++++++ gnu/packages/patches/python2-CVE-2018-14647.patch | 61 ++++++++++++++++++++++ gnu/packages/python.scm | 15 +++++- 6 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/python2-CVE-2018-1000802.patch create mode 100644 gnu/packages/patches/python2-CVE-2018-1060.patch create mode 100644 gnu/packages/patches/python2-CVE-2018-1061.patch create mode 100644 gnu/packages/patches/python2-CVE-2018-14647.patch diff --git a/gnu/local.mk b/gnu/local.mk index d30bbedee6..402505e229 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1068,6 +1068,10 @@ dist_patch_DATA = \ %D%/packages/patches/pygpgme-disable-problematic-tests.patch \ %D%/packages/patches/pyqt-configure.patch \ %D%/packages/patches/pyqt-public-sip.patch \ + %D%/packages/patches/python2-CVE-2018-1060.patch \ + %D%/packages/patches/python2-CVE-2018-1061.patch \ + %D%/packages/patches/python2-CVE-2018-14647.patch \ + %D%/packages/patches/python2-CVE-2018-1000802.patch \ %D%/packages/patches/python-2-deterministic-build-info.patch \ %D%/packages/patches/python-2.7-adjust-tests.patch \ %D%/packages/patches/python-2.7-search-paths.patch \ diff --git a/gnu/packages/patches/python2-CVE-2018-1000802.patch b/gnu/packages/patches/python2-CVE-2018-1000802.patch new file mode 100644 index 0000000000..0d5bc77c84 --- /dev/null +++ b/gnu/packages/patches/python2-CVE-2018-1000802.patch @@ -0,0 +1,47 @@ +Fix CVE-2018-1000802: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000802 + +Taken from upstream commit (sans NEWS): +https://github.com/python/cpython/commit/d8b103b8b3ef9644805341216963a64098642435 + +diff --git a/Lib/shutil.py b/Lib/shutil.py +index 3462f7c5e9..0ab1a06f52 100644 +--- a/Lib/shutil.py ++++ b/Lib/shutil.py +@@ -413,17 +413,21 @@ def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0, + + return archive_name + +-def _call_external_zip(base_dir, zip_filename, verbose=False, dry_run=False): ++def _call_external_zip(base_dir, zip_filename, verbose, dry_run, logger): + # XXX see if we want to keep an external call here + if verbose: + zipoptions = "-r" + else: + zipoptions = "-rq" +- from distutils.errors import DistutilsExecError +- from distutils.spawn import spawn ++ cmd = ["zip", zipoptions, zip_filename, base_dir] ++ if logger is not None: ++ logger.info(' '.join(cmd)) ++ if dry_run: ++ return ++ import subprocess + try: +- spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run) +- except DistutilsExecError: ++ subprocess.check_call(cmd) ++ except subprocess.CalledProcessError: + # XXX really should distinguish between "couldn't find + # external 'zip' command" and "zip failed". + raise ExecError, \ +@@ -458,7 +462,7 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): + zipfile = None + + if zipfile is None: +- _call_external_zip(base_dir, zip_filename, verbose, dry_run) ++ _call_external_zip(base_dir, zip_filename, verbose, dry_run, logger) + else: + if logger is not None: + logger.info("creating '%s' and adding '%s' to it", diff --git a/gnu/packages/patches/python2-CVE-2018-1060.patch b/gnu/packages/patches/python2-CVE-2018-1060.patch new file mode 100644 index 0000000000..5eb7ccfbc9 --- /dev/null +++ b/gnu/packages/patches/python2-CVE-2018-1060.patch @@ -0,0 +1,20 @@ +Fix CVE-2018-1060: +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1060 + +Taken from upstream commit (sans test and NEWS): +https://github.com/python/cpython/commit/e052d40cea15f582b50947f7d906b39744dc62a2 + +diff --git a/Lib/poplib.py b/Lib/poplib.py +index b91e5f72d2ca..a238510b38fc 100644 +--- a/Lib/poplib.py ++++ b/Lib/poplib.py +@@ -274,7 +274,7 @@ def rpop(self, user): + return self._shortcmd('RPOP %s' % user) + + +- timestamp = re.compile(r'\+OK.*(<[^>]+>)') ++ timestamp = re.compile(br'\+OK.[^<]*(<.*>)') + + def apop(self, user, secret): + """Authorisation + diff --git a/gnu/packages/patches/python2-CVE-2018-1061.patch b/gnu/packages/patches/python2-CVE-2018-1061.patch new file mode 100644 index 0000000000..6caab24b4d --- /dev/null +++ b/gnu/packages/patches/python2-CVE-2018-1061.patch @@ -0,0 +1,20 @@ +Fix CVE-2018-1061: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1061 + +Taken from upstream commit (sans test and NEWS): +https://github.com/python/cpython/commit/e052d40cea15f582b50947f7d906b39744dc62a2 + +diff --git a/Lib/difflib.py b/Lib/difflib.py +index 1c6fbdbedcb7..788a92df3f89 100644 +--- a/Lib/difflib.py ++++ b/Lib/difflib.py +@@ -1103,7 +1103,7 @@ def _qformat(self, aline, bline, atags, btags): + + import re + +-def IS_LINE_JUNK(line, pat=re.compile(r"\s*#?\s*$").match): ++def IS_LINE_JUNK(line, pat=re.compile(r"\s*(?:#\s*)?$").match): + r""" + Return 1 for ignorable line: iff `line` is blank or contains a single '#'. + diff --git a/gnu/packages/patches/python2-CVE-2018-14647.patch b/gnu/packages/patches/python2-CVE-2018-14647.patch new file mode 100644 index 0000000000..6226b06aca --- /dev/null +++ b/gnu/packages/patches/python2-CVE-2018-14647.patch @@ -0,0 +1,61 @@ +Fix CVE-2018-14647: +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14647 +https://bugs.python.org/issue34623 + +Taken from upstream: +https://github.com/python/cpython/commit/18b20bad75b4ff0486940fba4ec680e96e70f3a2 + +diff --git a/Include/pyexpat.h b/Include/pyexpat.h +index 5340ef5fa3..3fc5fa54da 100644 +--- a/Include/pyexpat.h ++++ b/Include/pyexpat.h +@@ -3,7 +3,7 @@ + + /* note: you must import expat.h before importing this module! */ + +-#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.0" ++#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1" + #define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI" + + struct PyExpat_CAPI +@@ -43,6 +43,8 @@ struct PyExpat_CAPI + XML_Parser parser, XML_UnknownEncodingHandler handler, + void *encodingHandlerData); + void (*SetUserData)(XML_Parser parser, void *userData); ++ /* might be none for expat < 2.1.0 */ ++ int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt); + /* always add new stuff to the end! */ + }; + +diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c +index f7f992dd3a..b38e0ab329 100644 +--- a/Modules/_elementtree.c ++++ b/Modules/_elementtree.c +@@ -2574,6 +2574,11 @@ xmlparser(PyObject* self_, PyObject* args, PyObject* kw) + PyErr_NoMemory(); + return NULL; + } ++ /* expat < 2.1.0 has no XML_SetHashSalt() */ ++ if (EXPAT(SetHashSalt) != NULL) { ++ EXPAT(SetHashSalt)(self->parser, ++ (unsigned long)_Py_HashSecret.prefix); ++ } + + ALLOC(sizeof(XMLParserObject), "create expatparser"); + +diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c +index 2b4d31293c..1f8c0d70a5 100644 +--- a/Modules/pyexpat.c ++++ b/Modules/pyexpat.c +@@ -2042,6 +2042,11 @@ MODULE_INITFUNC(void) + capi.SetProcessingInstructionHandler = XML_SetProcessingInstructionHandler; + capi.SetUnknownEncodingHandler = XML_SetUnknownEncodingHandler; + capi.SetUserData = XML_SetUserData; ++#if XML_COMBINED_VERSION >= 20100 ++ capi.SetHashSalt = XML_SetHashSalt; ++#else ++ capi.SetHashSalt = NULL; ++#endif + + /* export using capsule */ + capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL); diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3e39866087..e3a04b0344 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -148,6 +148,7 @@ (package (name "python2") (version "2.7.14") + (replacement python-2/fixed) (source (origin (method url-fetch) @@ -344,6 +345,18 @@ data types.") ;; Current 2.x version. (define-public python-2 python-2.7) +(define python-2/fixed + (package + (inherit python-2) + (source (origin + (inherit (package-source python-2)) + (patches (append + (origin-patches (package-source python-2)) + (search-patches "python2-CVE-2018-1060.patch" + "python2-CVE-2018-1061.patch" + "python2-CVE-2018-14647.patch" + "python2-CVE-2018-1000802.patch"))))))) + (define-public python2-called-python ;; Both 2.x and 3.x used to be called "python". In commit ;; a7714d42de2c3082f3609d1e63c83d703fb39cf9 (March 2018), we renamed the @@ -482,7 +495,7 @@ data types.") ;; Python (Tk -> libxcb -> Python.) (define-public python2-minimal - (package (inherit python-2) + (package/inherit python-2 (name "python2-minimal") (outputs '("out")) -- cgit v1.2.3 From acce0a474c1493ab18912bc46285248e4ccb0314 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 9 Apr 2018 01:04:10 +0200 Subject: services: wpa-supplicant: Extend to support configuration parameters. This allows using WPA Supplicant "standalone" without an additional network manager. The default configuration is unchanged. * gnu/services/networking.scm (): New record type. (wpa-supplicant-shepherd-service): Pass configuration records to the daemon. (wpa-supplicant-service-type): Adjust accordingly. * doc/guix.texi (Networking Services): Document the new service type. --- doc/guix.texi | 35 +++++++++++++----- gnu/services/networking.scm | 86 ++++++++++++++++++++++++++++++++++----------- 2 files changed, 91 insertions(+), 30 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 5ae80917a9..2cea52f02b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11737,18 +11737,35 @@ When true, enable connman's vpn plugin. @defvr {Scheme Variable} wpa-supplicant-service-type This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA supplicant}, an authentication daemon required to authenticate against -encrypted WiFi or ethernet networks. It is configured to listen for -requests on D-Bus. +encrypted WiFi or ethernet networks. +@end defvr -The value of this service is the @code{wpa-supplicant} package to use. -Thus, it can be instantiated like this: +@deftp {Data Type} wpa-supplicant-configuration +Data type representing the configuration of WPA Supplicant. -@lisp -(use-modules (gnu services networking)) +It takes the following parameters: -(service wpa-supplicant-service-type) -@end lisp -@end defvr +@table @asis +@item @code{wpa-supplicant} (default: @code{wpa-supplicant}) +The WPA Supplicant package to use. + +@item @code{dbus?} (default: @code{#t}) +Whether to listen for requests on D-Bus. + +@item @code{pid-file} (default: @code{"/var/run/wpa_supplicant.pid"}) +Where to store the PID file. + +@item @code{interface} (default: @code{#f}) +If this is set, it must specify the name of a network interface that +WPA supplicant will control. + +@item @code{config-file} (default: @code{#f}) +Optional configuration file to use. + +@item @code{extra-options} (default: @code{'()}) +List of additional command-line arguments to pass to the daemon. +@end table +@end deftp @cindex iptables @defvr {Scheme Variable} iptables-service-type diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 3fdb2bb9f7..c809b4a4a4 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2016 John Darrington ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017 Thomas Danckaert -;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017, 2018 Marius Bakke ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Chris Marusich ;;; Copyright © 2018 Arun Isaac @@ -101,6 +101,16 @@ modem-manager-configuration modem-manager-configuration? modem-manager-service-type + + + wpa-supplicant-configuration + wpa-supplicant-configuration? + wpa-supplicant-configuration-wpa-supplicant + wpa-supplicant-configuration-pid-file + wpa-supplicant-configuration-dbus? + wpa-supplicant-configuration-interface + wpa-supplicant-configuration-config-file + wpa-supplicant-configuration-extra-options wpa-supplicant-service-type openvswitch-service-type @@ -1019,28 +1029,62 @@ networking.")))) ;;; WPA supplicant ;;; - -(define (wpa-supplicant-shepherd-service wpa-supplicant) - "Return a shepherd service for wpa_supplicant" - (list (shepherd-service - (documentation "Run WPA supplicant with dbus interface") - (provision '(wpa-supplicant)) - (requirement '(user-processes dbus-system loopback)) - (start #~(make-forkexec-constructor - (list (string-append #$wpa-supplicant - "/sbin/wpa_supplicant") - "-u" "-B" "-P/var/run/wpa_supplicant.pid") - #:pid-file "/var/run/wpa_supplicant.pid")) - (stop #~(make-kill-destructor))))) +(define-record-type* + wpa-supplicant-configuration make-wpa-supplicant-configuration + wpa-supplicant-configuration? + (wpa-supplicant wpa-supplicant-configuration-wpa-supplicant ; + (default wpa-supplicant)) + (pid-file wpa-supplicant-configuration-pid-file ;string + (default "/var/run/wpa_supplicant.pid")) + (dbus? wpa-supplicant-configuration-dbus? ;Boolean + (default #t)) + (interface wpa-supplicant-configuration-interface ;#f | string + (default #f)) + (config-file wpa-supplicant-configuration-config-file ;#f | + (default #f)) + (extra-options wpa-supplicant-configuration-extra-options ;list of strings + (default '()))) + +(define wpa-supplicant-shepherd-service + (match-lambda + (($ wpa-supplicant pid-file dbus? interface + config-file extra-options) + (list (shepherd-service + (documentation "Run the WPA supplicant daemon") + (provision '(wpa-supplicant)) + (requirement '(user-processes dbus-system loopback)) + (start #~(make-forkexec-constructor + (list (string-append #$wpa-supplicant + "/sbin/wpa_supplicant") + (string-append "-P" #$pid-file) + "-B" ;run in background + #$@(if dbus? + #~("-u") + #~()) + #$@(if interface + #~(string-append "-i" #$interface) + #~()) + #$@(if config-file + #~(string-append "-c" #$config-file) + #~()) + #$@extra-options) + #:pid-file #$pid-file)) + (stop #~(make-kill-destructor))))))) (define wpa-supplicant-service-type - (service-type (name 'wpa-supplicant) - (extensions - (list (service-extension shepherd-root-service-type - wpa-supplicant-shepherd-service) - (service-extension dbus-root-service-type list) - (service-extension profile-service-type list))) - (default-value wpa-supplicant))) + (let ((config->package + (match-lambda + (($ wpa-supplicant) + (list wpa-supplicant))))) + (service-type (name 'wpa-supplicant) + (extensions + (list (service-extension shepherd-root-service-type + wpa-supplicant-shepherd-service) + (service-extension dbus-root-service-type config->package) + (service-extension profile-service-type config->package))) + (description "Run the WPA Supplicant daemon, a service that +implements authentication, key negotiation and more for wireless networks.") + (default-value (wpa-supplicant-configuration))))) ;;; -- cgit v1.2.3