From 04d9cf943ad3d8776e2515fae812a1e466f4dc8e Mon Sep 17 00:00:00 2001 From: Vincent Legoll Date: Mon, 28 Dec 2020 15:44:00 +0100 Subject: gnu: apr: Update to 1.7.0. * gnu/packages/apr.scm (apr): Update to 1.7.0. Signed-off-by: Leo Famulari --- gnu/packages/apr.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/apr.scm b/gnu/packages/apr.scm index 1a4a1c6304..5ef1488218 100644 --- a/gnu/packages/apr.scm +++ b/gnu/packages/apr.scm @@ -30,14 +30,14 @@ (define-public apr (package (name "apr") - (version "1.6.5") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append "mirror://apache/apr/apr-" version ".tar.bz2")) (sha256 (base32 - "01d1n1ql66bxsjx0wyzazmkqdqdmr0is6a7lwyy5kzy4z7yajz56")) + "1spp6r2a3xcl5yajm9safhzyilsdzgagc2dadif8x6z9nbq4iqg2")) (patches (search-patches "apr-skip-getservbyname-test.patch")) (patch-flags '("-p0")))) -- cgit v1.2.3 From 5b8cb3e840f2d467e80ae84d56cf177a7c4725b7 Mon Sep 17 00:00:00 2001 From: Vincent Legoll Date: Thu, 21 Jan 2021 19:13:06 +0100 Subject: gnu: libcap: Update to 2.46. * gnu/packages/linux.scm (libcap): Update to 2.46. Signed-off-by: Leo Famulari --- 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 80b526d0b3..25e45ee9ca 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2487,7 +2487,7 @@ Linux-based operating systems.") (define-public libcap (package (inherit libcap-2.31) - (version "2.45") + (version "2.46") (source (origin (method url-fetch) (uri (string-append @@ -2495,7 +2495,7 @@ Linux-based operating systems.") "libcap2/libcap-" version ".tar.xz")) (sha256 (base32 - "11ijmi7jik9iw6pdszc6bylhggghr8cza03bcrbhbqf0cpvkjrnn")))) + "1d6q447wf0iagiyzhfdqcj4cv0dmzc49i0czwikrcv7s2cad3lsf")))) (arguments (substitute-keyword-arguments (package-arguments libcap-2.31) ((#:phases phases) -- cgit v1.2.3 From 2214b7b78d34a0e4d574b743dbeb8457356f6cff Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 25 Dec 2020 23:02:18 +0100 Subject: guix: qt-build-system, qt-utils: Unify wrapping of qt-programs. Unify (guix qt-build-system wrap-all-programs) and (guix qt-utils wrap-qt-program), so both behave the same. The functions now reside in qt-utils to make them easily available for packages not using the qt-build-system. * guix/build/qt-build-system.scm (variables-for-wrapping, wrap-all-programs): Move from here ... * guix/build/qt-utils.scm (variables-for-wrapping, wrap-all-qt-programs): ... to here. Base the later on (wrap-qt-program*): New function, carved out from old wrap-all-programs. (wrap-qt-program): Base on wrap-qt-program*, change arguments in an incompatible way. * gnu/packages/bittorrent.scm (qbittorrent)[arguments]{wrap-qt}: Adjust to new interface of wrap-qt-program. * gnu/packages/finance.scm (electron-cash): Likewise. * gnu/packages/geo.scm (qgis): Likewise. * gnu/packages/password-utils.scm (qtpass): Likewise. * gnu/packages/video.scm (openshot): Likewise. * gnu/packages/web-browsers.scm (kristall): Likewise. --- gnu/packages/bittorrent.scm | 6 ++- gnu/packages/finance.scm | 8 +-- gnu/packages/geo.scm | 7 +-- gnu/packages/password-utils.scm | 6 ++- gnu/packages/video.scm | 6 ++- gnu/packages/web-browsers.scm | 5 +- guix/build-system/qt.scm | 1 + guix/build/qt-build-system.scm | 68 ++------------------------ guix/build/qt-utils.scm | 105 ++++++++++++++++++++++++++++++++-------- 9 files changed, 113 insertions(+), 99 deletions(-) diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 08e61d7ba2..6967eccec4 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2018 Nam Nguyen ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2019, 2020 Brett Gilio +;;; Copyright © 2020 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -447,8 +448,9 @@ desktops.") #:phases (modify-phases %standard-phases (add-after 'install 'wrap-qt - (lambda* (#:key outputs #:allow-other-keys) - (wrap-qt-program (assoc-ref outputs "out") "qbittorrent") + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-qt-program "qbittorrent" #:output out #:inputs inputs)) #t))))) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index b6921d343f..bbc245e2da 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015, 2016 Andreas Enge ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Alex Griffin -;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2016, 2020 Hartmut Goebel ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Vasile Dumitrascu @@ -611,8 +611,10 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.") (assoc-ref inputs "libsecp256k1") "/lib/libsecp256k1.so.0'"))))) (add-after 'install 'wrap-qt - (lambda* (#:key outputs #:allow-other-keys) - (wrap-qt-program (assoc-ref outputs "out") "electron-cash")))))) + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-qt-program "electron-cash" #:output out #:inputs inputs)) + #t))))) (home-page "https://electroncash.org/") (synopsis "Bitcoin Cash wallet") (description diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index c0c1ef96c6..618e6f9e5f 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2019, 2020 Guillaume Le Vaillant ;;; Copyright © 2019, 2020 Efraim Flashner ;;; Copyright © 2019 Wiktor Żelazny -;;; Copyright © 2019 Hartmut Goebel +;;; Copyright © 2019, 2020 Hartmut Goebel ;;; Copyright © 2020 Marius Bakke ;;; Copyright © 2020 Christopher Baines ;;; Copyright © 2020 Felix Gruber @@ -2122,8 +2122,9 @@ growing set of geoscientific methods.") (add-after 'install 'wrap-python (assoc-ref python:%standard-phases 'wrap)) (add-after 'wrap-python 'wrap-qt - (lambda* (#:key outputs #:allow-other-keys) - (wrap-qt-program (assoc-ref outputs "out") "qgis") + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-qt-program "qgis" #:output out #:inputs inputs)) #t)) (add-after 'wrap-qt 'wrap-gis (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index bd411f59d0..9091010ed9 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2020 Jean-Baptiste Note ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Vinicius Monego +;;; Copyright © 2020 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -664,8 +665,9 @@ key URIs using the standard otpauth:// scheme.") (install-file "qtpass.1" man) #t))) (add-after 'install 'wrap-qt - (lambda* (#:key outputs #:allow-other-keys) - (wrap-qt-program (assoc-ref outputs "out") "qtpass") + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-qt-program "qtpass" #:output out #:inputs inputs)) #t)) (add-before 'check 'check-setup ;; Make Qt render "offscreen", required for tests. diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9edb6aff68..e01bbd4904 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -47,6 +47,7 @@ ;;; Copyright © 2020 Alexandru-Sergiu Marton ;;; Copyright © 2020 Ivan Kozlov ;;; Copyright © 2020 Antoine Côté +;;; Copyright © 2020 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -4441,9 +4442,10 @@ API. It includes bindings for Python, Ruby, and other languages.") (setenv "HOME" "/tmp") #t)) (add-after 'install 'wrap-program - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key outputs inputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (wrap-qt-program out "openshot-qt")) + (wrap-qt-program "openshot-qt" + #:output out #:inputs inputs)) #t))))) (home-page "https://www.openshot.org/") (synopsis "Video editor") diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index b134d29782..1040e79593 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Nicolò Balzarotti ;;; Copyright © 2020 Alexandru-Sergiu Marton +;;; Copyright © 2020 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -433,9 +434,9 @@ access.") "/share/fonts/truetype/NotoColorEmoji"))) #t)) (add-after 'install 'wrap-program - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key outputs inputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (wrap-qt-program out "kristall")) + (wrap-qt-program "kristall" #:output out #:inputs inputs)) #t))))) (native-inputs `(("breeze-stylesheet" diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm index 118022ec45..1bd89bfa4d 100644 --- a/guix/build-system/qt.scm +++ b/guix/build-system/qt.scm @@ -53,6 +53,7 @@ (define %qt-build-system-modules ;; Build-side modules imported and used by default. `((guix build qt-build-system) + (guix build qt-utils) ,@%cmake-build-system-modules)) (define (default-cmake) diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm index 005157b0a4..a6955ce4c2 100644 --- a/guix/build/qt-build-system.scm +++ b/guix/build/qt-build-system.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 Federico Beffa ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2018 Mark H Weaver -;;; Copyright © 2019, 2020 Hartmut Goebel +;;; Copyright © 2019, 2020, 2021 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +22,7 @@ (define-module (guix build qt-build-system) #:use-module ((guix build cmake-build-system) #:prefix cmake:) #:use-module (guix build utils) + #:use-module (guix build qt-utils) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 ftw) @@ -47,73 +48,10 @@ (setenv "CTEST_OUTPUT_ON_FAILURE" "1") #t) -(define (variables-for-wrapping base-directories) - - (define (collect-sub-dirs base-directories subdirectory) - (filter-map - (lambda (dir) - (let ((directory (string-append dir subdirectory))) - (if (directory-exists? directory) directory #f))) - base-directories)) - - (filter - (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) - (map - (lambda (var-spec) - `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec)))) - (list - ;; these shall match the search-path-specification for Qt and KDE - ;; libraries - '("XDG_DATA_DIRS" "/share") - '("XDG_CONFIG_DIRS" "/etc/xdg") - '("QT_PLUGIN_PATH" "/lib/qt5/plugins") - '("QML2_IMPORT_PATH" "/lib/qt5/qml"))))) - -(define* (wrap-all-programs #:key inputs outputs - (qt-wrap-excluded-outputs '()) - #:allow-other-keys) - "Implement phase \"qt-wrap\": look for GSettings schemas and -gtk+-v.0 libraries and create wrappers with suitably set environment variables -if found. - -Wrapping is not applied to outputs whose name is listed in -QT-WRAP-EXCLUDED-OUTPUTS. This is useful when an output is known not -to contain any Qt binaries, and where wrapping would gratuitously -add a dependency of that output on Qt." - (define (find-files-to-wrap directory) - (append-map - (lambda (dir) - (if (directory-exists? dir) (find-files dir ".*") (list))) - (list (string-append directory "/bin") - (string-append directory "/sbin") - (string-append directory "/libexec") - (string-append directory "/lib/libexec")))) - - (define input-directories - ;; FIXME: Filter out unwanted inputs, e.g. cmake - (match inputs - (((_ . dir) ...) - dir))) - - (define handle-output - (match-lambda - ((output . directory) - (unless (member output qt-wrap-excluded-outputs) - (let ((bin-list (find-files-to-wrap directory)) - (vars-to-wrap (variables-for-wrapping - (append (list directory) - input-directories)))) - (when (not (null? vars-to-wrap)) - (for-each (cut apply wrap-program <> vars-to-wrap) - bin-list))))))) - - (for-each handle-output outputs) - #t) - (define %standard-phases (modify-phases cmake:%standard-phases (add-before 'check 'check-setup check-setup) - (add-after 'install 'qt-wrap wrap-all-programs))) + (add-after 'install 'qt-wrap wrap-all-qt-programs))) (define* (qt-build #:key inputs (phases %standard-phases) #:allow-other-keys #:rest args) diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm index d2486ee86c..3fbdb6be61 100644 --- a/guix/build/qt-utils.scm +++ b/guix/build/qt-utils.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven +;;; Copyright © 2019, 2020, 2021 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,23 +19,87 @@ (define-module (guix build qt-utils) #:use-module (guix build utils) - #:export (wrap-qt-program)) - -(define (wrap-qt-program out program) - (define (suffix env-var path) - (let ((env-val (getenv env-var))) - (if env-val (string-append env-val ":" path) path))) - - (let ((qml-path (suffix "QML2_IMPORT_PATH" - (string-append out "/lib/qt5/qml"))) - (plugin-path (suffix "QT_PLUGIN_PATH" - (string-append out "/lib/qt5/plugins"))) - (xdg-data-path (suffix "XDG_DATA_DIRS" - (string-append out "/share"))) - (xdg-config-path (suffix "XDG_CONFIG_DIRS" - (string-append out "/etc/xdg")))) - (wrap-program (string-append out "/bin/" program) - `("QML2_IMPORT_PATH" = (,qml-path)) - `("QT_PLUGIN_PATH" = (,plugin-path)) - `("XDG_DATA_DIRS" = (,xdg-data-path)) - `("XDG_CONFIG_DIRS" = (,xdg-config-path))))) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (wrap-qt-program + wrap-all-qt-programs)) + + +(define (variables-for-wrapping base-directories) + + (define (collect-sub-dirs base-directories subdirectory) + (filter-map + (lambda (dir) + (let ((directory (string-append dir subdirectory))) + (if (directory-exists? directory) directory #f))) + base-directories)) + + (filter + (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) + (map + (lambda (var-spec) + `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec)))) + (list + ;; these shall match the search-path-specification for Qt and KDE + ;; libraries + '("XDG_DATA_DIRS" "/share") + '("XDG_CONFIG_DIRS" "/etc/xdg") + '("QT_PLUGIN_PATH" "/lib/qt5/plugins") + '("QML2_IMPORT_PATH" "/lib/qt5/qml"))))) + + +(define* (wrap-qt-program* program #:key inputs output-dir) + + (define input-directories + ;; FIXME: Filter out unwanted inputs, e.g. cmake + (match inputs + (((_ . dir) ...) + dir))) + + (let ((vars-to-wrap (variables-for-wrapping + (cons output-dir input-directories)))) + (when (not (null? vars-to-wrap)) + (apply wrap-program program vars-to-wrap)))) + + +(define* (wrap-qt-program program-name #:key inputs output) + "Wrap the specified programm (which must reside in the OUTPUT's \"/bin\" +directory) with suitably set environment variables. + +This is like qt-build-systems's phase \"qt-wrap\", but only the named program +is wrapped." + (wrap-qt-program* (string-append output "/bin/" program-name) + #:output-dir output #:inputs inputs)) + + +(define* (wrap-all-qt-programs #:key inputs outputs + (qt-wrap-excluded-outputs '()) + #:allow-other-keys) + "Implement qt-build-systems's phase \"qt-wrap\": look for executables in +\"bin\", \"sbin\" and \"libexec\" of all outputs and create wrappers with +suitably set environment variables if found. + +Wrapping is not applied to outputs whose name is listed in +QT-WRAP-EXCLUDED-OUTPUTS. This is useful when an output is known not +to contain any Qt binaries, and where wrapping would gratuitously +add a dependency of that output on Qt." + (define (find-files-to-wrap output-dir) + (append-map + (lambda (dir) + (if (directory-exists? dir) (find-files dir ".*") (list))) + (list (string-append output-dir "/bin") + (string-append output-dir "/sbin") + (string-append output-dir "/libexec") + (string-append output-dir "/lib/libexec")))) + + (define handle-output + (match-lambda + ((output . output-dir) + (unless (member output qt-wrap-excluded-outputs) + (for-each (cut wrap-qt-program* <> + #:output-dir output-dir #:inputs inputs) + (find-files-to-wrap output-dir)))))) + + (for-each handle-output outputs) + #t) -- cgit v1.2.3 From cdc8fe63d5db0a1c6c29ff29e13ed5849459fefe Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 19 Aug 2020 10:44:27 +0200 Subject: guix: qt-utils: Wrapped executables honor user's envvars. Prior to this change, wrappers did set the specified environment variables to a fixed value, overwriting any user settings. This inhibited propagating e.g. XDG_DATA_DIRS from a profile to the application. Now user environment variables are prefixed (if the variable defines some "binary" search path, e.g. QT_PLUGIN_PATH) or suffixed (if the variable defines some config or data search path, e.g. XDG_DATA_DIRS). The code could also allow to overwrite, anyhow currently no variable is defined like this. * guix/build/qt-utils.scm (variables-for-wrapping): For each env-var to be wrapped, specify whether it should prefix, suffix or overwrite the user's variable. --- guix/build/qt-utils.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm index 3fbdb6be61..030059522d 100644 --- a/guix/build/qt-utils.scm +++ b/guix/build/qt-utils.scm @@ -39,14 +39,15 @@ (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) (map (lambda (var-spec) - `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec)))) + (list (first var-spec) (second var-spec) + (collect-sub-dirs base-directories (third var-spec)))) (list ;; these shall match the search-path-specification for Qt and KDE ;; libraries - '("XDG_DATA_DIRS" "/share") - '("XDG_CONFIG_DIRS" "/etc/xdg") - '("QT_PLUGIN_PATH" "/lib/qt5/plugins") - '("QML2_IMPORT_PATH" "/lib/qt5/qml"))))) + '("XDG_DATA_DIRS" suffix "/share") + '("XDG_CONFIG_DIRS" suffix "/etc/xdg") + '("QT_PLUGIN_PATH" prefix "/lib/qt5/plugins") + '("QML2_IMPORT_PATH" prefix "/lib/qt5/qml"))))) (define* (wrap-qt-program* program #:key inputs output-dir) -- cgit v1.2.3 From b9142ab0e7644400b722902b56491c399bc9f58a Mon Sep 17 00:00:00 2001 From: Jakub Kądziołka Date: Sun, 10 Jan 2021 18:49:12 +0100 Subject: build-system: qt: Exclude useless inputs from wrapped variables. * guix/build-system/qt.scm (qt-build)[qt-wrap-excluded-inputs]: New argument. * guix/build/qt-utils.scm (%qt-wrap-excluded-inputs): New variable. (wrap-qt-program*)[qt-wrap-excluded-inputs]: New argument. Filter excluded inputs. (wrap-qt-program)[qt-wrap-excluded-inputs]: New argument. (wrap-all-qt-programs)[qt-wrap-excluded-inputs]: New argument. Co-authored-by: Hartmut Goebel --- guix/build-system/qt.scm | 5 +++++ guix/build/qt-utils.scm | 29 ++++++++++++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm index 1bd89bfa4d..e1368db1d9 100644 --- a/guix/build-system/qt.scm +++ b/guix/build-system/qt.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2019 Hartmut Goebel +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,8 @@ (define-module (guix build-system qt) #:use-module (guix store) #:use-module (guix utils) + #:use-module ((guix build qt-utils) + #:select (%qt-wrap-excluded-inputs)) #:use-module (guix derivations) #:use-module (guix search-paths) #:use-module (guix build-system) @@ -125,6 +128,7 @@ (phases '(@ (guix build qt-build-system) %standard-phases)) (qt-wrap-excluded-outputs ''()) + (qt-wrap-excluded-inputs %qt-wrap-excluded-inputs) (system (%current-system)) (imported-modules %qt-build-system-modules) (modules '((guix build qt-build-system) @@ -148,6 +152,7 @@ provides a 'CMakeLists.txt' file as its build system." search-paths) #:phases ,phases #:qt-wrap-excluded-outputs ,qt-wrap-excluded-outputs + #:qt-wrap-excluded-inputs ,qt-wrap-excluded-inputs #:configure-flags ,configure-flags #:make-flags ,make-flags #:out-of-source? ,out-of-source? diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm index 030059522d..a03b09f05e 100644 --- a/guix/build/qt-utils.scm +++ b/guix/build/qt-utils.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven ;;; Copyright © 2019, 2020, 2021 Hartmut Goebel +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,8 +24,11 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (wrap-qt-program - wrap-all-qt-programs)) + wrap-all-qt-programs + %qt-wrap-excluded-inputs)) +(define %qt-wrap-excluded-inputs + '(list "cmake" "extra-cmake-modules" "qttools")) (define (variables-for-wrapping base-directories) @@ -50,13 +54,16 @@ '("QML2_IMPORT_PATH" prefix "/lib/qt5/qml"))))) -(define* (wrap-qt-program* program #:key inputs output-dir) +(define* (wrap-qt-program* program #:key inputs output-dir + qt-wrap-excluded-inputs) (define input-directories - ;; FIXME: Filter out unwanted inputs, e.g. cmake - (match inputs - (((_ . dir) ...) - dir))) + (filter-map + (match-lambda + ((label . directory) + (and (not (member label qt-wrap-excluded-inputs)) + directory))) + inputs)) (let ((vars-to-wrap (variables-for-wrapping (cons output-dir input-directories)))) @@ -64,18 +71,21 @@ (apply wrap-program program vars-to-wrap)))) -(define* (wrap-qt-program program-name #:key inputs output) +(define* (wrap-qt-program program-name #:key inputs output + (qt-wrap-excluded-inputs %qt-wrap-excluded-inputs)) "Wrap the specified programm (which must reside in the OUTPUT's \"/bin\" directory) with suitably set environment variables. This is like qt-build-systems's phase \"qt-wrap\", but only the named program is wrapped." (wrap-qt-program* (string-append output "/bin/" program-name) - #:output-dir output #:inputs inputs)) + #:output-dir output #:inputs inputs + #:qt-wrap-excluded-inputs qt-wrap-excluded-inputs)) (define* (wrap-all-qt-programs #:key inputs outputs (qt-wrap-excluded-outputs '()) + (qt-wrap-excluded-inputs %qt-wrap-excluded-inputs) #:allow-other-keys) "Implement qt-build-systems's phase \"qt-wrap\": look for executables in \"bin\", \"sbin\" and \"libexec\" of all outputs and create wrappers with @@ -99,7 +109,8 @@ add a dependency of that output on Qt." ((output . output-dir) (unless (member output qt-wrap-excluded-outputs) (for-each (cut wrap-qt-program* <> - #:output-dir output-dir #:inputs inputs) + #:output-dir output-dir #:inputs inputs + #:qt-wrap-excluded-inputs qt-wrap-excluded-inputs) (find-files-to-wrap output-dir)))))) (for-each handle-output outputs) -- cgit v1.2.3 From ab572d8808c6546a80ae4ea1dd11e8c3075492c6 Mon Sep 17 00:00:00 2001 From: Jakub Kądziołka Date: Sun, 10 Jan 2021 21:28:36 +0100 Subject: guix: qt-utils: Don't include useless inputs in wrapped variables. Include only those inputs into XDG_DATA_DIRS having some subdirectory of /share which is typically used by Qt. * guix/build/qt-utils.scm (variables-for-wrapping): Take the output directory as an argument for special handling. Check for subdirectories of /share used by Qt before including inputs in XDG_DATA_DIRS. (wrap-qt-program*): Pass the output directory to variables-for-wrapping. Co-authored-by: Hartmut Goebel --- guix/build/qt-utils.scm | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm index a03b09f05e..8e6db10ca1 100644 --- a/guix/build/qt-utils.scm +++ b/guix/build/qt-utils.scm @@ -30,25 +30,42 @@ (define %qt-wrap-excluded-inputs '(list "cmake" "extra-cmake-modules" "qttools")) -(define (variables-for-wrapping base-directories) +;; NOTE: Apart from standard subdirectories of /share, Qt also provides +;; facilities for per-application data directories, such as +;; /share/quassel. Thus, we include the output directory even if it doesn't +;; contain any of the standard subdirectories. +(define (variables-for-wrapping base-directories output-directory) - (define (collect-sub-dirs base-directories subdirectory) + (define (collect-sub-dirs base-directories subdirectory-spec) (filter-map (lambda (dir) - (let ((directory (string-append dir subdirectory))) - (if (directory-exists? directory) directory #f))) + (match + subdirectory-spec + ((subdir) + (and (directory-exists? (string-append dir subdir)) + (string-append dir (car subdirectory-spec)))) + ((subdir children) + (and + (or + (and (string=? dir output-directory) + (directory-exists? (string-append dir subdir))) + (or-map + (lambda (kid) (directory-exists? (string-append dir subdir kid))) + children)) + (string-append dir subdir))))) base-directories)) (filter (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) (map - (lambda (var-spec) - (list (first var-spec) (second var-spec) - (collect-sub-dirs base-directories (third var-spec)))) + (match-lambda + ((var kind . subdir-spec) + `(,var ,kind ,(collect-sub-dirs base-directories subdir-spec)))) (list ;; these shall match the search-path-specification for Qt and KDE ;; libraries - '("XDG_DATA_DIRS" suffix "/share") + '("XDG_DATA_DIRS" suffix "/share" ("/applications" "/fonts" + "/icons" "/mime")) '("XDG_CONFIG_DIRS" suffix "/etc/xdg") '("QT_PLUGIN_PATH" prefix "/lib/qt5/plugins") '("QML2_IMPORT_PATH" prefix "/lib/qt5/qml"))))) @@ -66,7 +83,8 @@ inputs)) (let ((vars-to-wrap (variables-for-wrapping - (cons output-dir input-directories)))) + (cons output-dir input-directories) + output-dir))) (when (not (null? vars-to-wrap)) (apply wrap-program program vars-to-wrap)))) -- cgit v1.2.3 From f1c7c2f697877fcb68b53ea062ff8a88f274a2fe Mon Sep 17 00:00:00 2001 From: Michael Rohleder Date: Fri, 15 Jan 2021 05:35:59 +0100 Subject: gnu: wget: Update to 1.21.1. * gnu/packages/wget.scm (wget): Update to 1.21.1. Signed-off-by: Leo Famulari --- gnu/packages/wget.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index 1092237a03..5017fed895 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2021 Michael Rohleder ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,7 +45,7 @@ (define-public wget (package (name "wget") - (version "1.20.3") + (version "1.21.1") (source (origin (method url-fetch) @@ -52,7 +53,7 @@ version ".tar.lz")) (sha256 (base32 - "1frajd86ds8vz2hprq30wq8ya89z9dcxnwm8nwk12bbc47l7qq39")))) + "1bchzkacjsc5c0x01ngaana9fs5j12wfw1c8qxps1yp68x9vx6yv")))) (build-system gnu-build-system) (inputs `(("gnutls" ,gnutls) -- cgit v1.2.3 From 43fb46c831ff6d45c457314ce4bf680f753ff31f Mon Sep 17 00:00:00 2001 From: Vincent Legoll Date: Sun, 7 Feb 2021 13:11:47 +0100 Subject: gnu: tzdata: Update to 2021a. * gnu/packages/base.scm (tzdata): Update to 2021a. Signed-off-by: Leo Famulari --- gnu/packages/base.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 9aa69cfe77..5733edb8da 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1244,7 +1244,7 @@ command.") (define-public tzdata (package (name "tzdata") - (version "2020f") + (version "2021a") (source (origin (method url-fetch) (uri (string-append @@ -1252,7 +1252,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "10b8cr55x6ji14n3kqkn3avj1s9b79b8gszh81fxrrisij8k248j")))) + "022fn6gkmp7pamlgab04x0dm5hnyn2m2fcnyr3pvm36612xd5rrr")))) (build-system gnu-build-system) (arguments `(#:tests? #f @@ -1312,7 +1312,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "1i998crd9fxdfhv4jd241j1arx0ng7j7cvczpmj4y5j5fwmfmvng")))))) + "1l02b0jiwp3fl0xd6227i69d26rmx3yrnq0ssq9vvdmm4jhvyipb")))))) (home-page "https://www.iana.org/time-zones") (synopsis "Database of current and historical time zones") (description "The Time Zone Database (often called tz or zoneinfo) -- cgit v1.2.3 From ea73e829d7d061d9fd8e1f672926363fe8db2a1b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 10 Feb 2021 18:43:34 -0500 Subject: gnu: gst-plugins-base: Depend on Opus for all systems. * gnu/packages/gstreamer.scm (gst-plugins-base)[inputs]: Include opus unconditionally. --- gnu/packages/gstreamer.scm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index b582585d75..0921e9ac9f 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -553,11 +553,7 @@ This package provides the core library and elements.") ("libXext" ,libxext) ("libxv" ,libxv) ("alsa-lib" ,alsa-lib) - ;; XXX Don't build with opus on 32-bit systems: - ;; - ,@(if (target-64bit?) - `(("opus" ,opus)) - '()))) + ("opus" ,opus))) (native-inputs `(("pkg-config" ,pkg-config) ("glib:bin" ,glib "bin") -- cgit v1.2.3 From 3afcb87b0b1c8365aa4fa06df9731f069d99dcfe Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 7 Feb 2021 00:02:40 -0500 Subject: gnu: w3m: Update to 0.5.3+git20210102. * gnu/packages/w3m.scm (w3m): Update to 0.5.3+git20210102. [configure-flags]: Add the "--with-imagelib=imlib2" option. [inputs]: Add imlib2. --- gnu/packages/w3m.scm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm index 934a6d9e38..a14ca02e84 100644 --- a/gnu/packages/w3m.scm +++ b/gnu/packages/w3m.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016, 2019 Efraim Flashner ;;; Copyright © 2018 Rutger Helling ;;; Copyright © 2020 Tobias Geerinckx-Rice +;;; Copyright © 2021 Maxim Cournoyer > ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (gnu packages bdw-gc) #:use-module (gnu packages compression) #:use-module (gnu packages gtk) + #:use-module (gnu packages image) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -40,7 +42,7 @@ (define-public w3m (package (name "w3m") - (version "0.5.3+git20200502") + (version "0.5.3+git20210102") (source (origin (method git-fetch) ;; Debian's fork of w3m is the only one that is still maintained. @@ -50,21 +52,22 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0yyfhwcwy1dvdbirj6zqwk4gl8z9npfavs0k7ipcg5fd16vnx7mi")))) + "0amq1wfjp5mhqjmvrc0yhxjlx1335p78d7ap8iykfjn5h8yhmrg5")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no check target ;; Use $EDITOR instead of a hard-coded value. - #:configure-flags '("--with-editor=") + #:configure-flags (list "--with-editor=" + "--with-imagelib=imlib2") #:phases (modify-phases %standard-phases (add-before 'configure 'fix-perl (lambda _ (substitute* '("scripts/w3mmail.cgi.in" "scripts/dirlist.cgi.in") - (("@PERL@") (which "perl"))) - #t))))) + (("@PERL@") (which "perl")))))))) (inputs `(("gdk-pixbuf" ,gdk-pixbuf) + ("imlib2" ,imlib2) ("libgc" ,libgc) ("libx11" ,libx11) ("ncurses" ,ncurses) -- cgit v1.2.3 From b0c106ae4c145f17f681fdb2dc9cb09020b4ac83 Mon Sep 17 00:00:00 2001 From: Jakub Kądziołka Date: Sun, 14 Feb 2021 14:16:51 +0100 Subject: gnu: rust: Update to 1.50. * gnu/packages/rust.scm (rust): Change to 1.50. --- gnu/packages/rust.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 98a6bfffa5..f72f310169 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -1456,4 +1456,4 @@ move around." "0pjs7j62maiyvkmhp9zrxl528g2n0fphp4rq6ap7aqdv0a6qz5wm")) ;; TODO(staging): Bump this variable to the latest packaged rust. -(define-public rust rust-1.45) +(define-public rust rust-1.50) -- cgit v1.2.3 From 8fb26437048aed696d256501cf6009c0460bb5a5 Mon Sep 17 00:00:00 2001 From: Léo Le Bouter Date: Sat, 13 Feb 2021 08:56:04 +0100 Subject: gnu: postgresql-13: Update to 13.2. * gnu/packages/databases.scm (postgresql-13): Update to 13.2. Signed-off-by: Leo Famulari --- 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 e0577f1567..2f4de2c902 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1194,14 +1194,14 @@ developed in C/C++ to MariaDB and MySQL databases.") (define-public postgresql-13 (package (name "postgresql") - (version "13.1") + (version "13.2") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "07z6zwr58dckaa97yl9ml240z83d1lhgaxw9aq49i8lsp21mqd0j")) + "1z5d847jnajcfr3wa6jn52a8xjhamvwzmz18xlm5nvxqip8grmsz")) (patches (search-patches "postgresql-disable-resolve_symlinks.patch")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 36c1372d649e7f4f7039c070394b5b2d55e630c3 Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Fri, 5 Feb 2021 09:00:28 +0100 Subject: gnu: pulseaudio: Update to 14.2. * gnu/packages/pulseaudio.scm (pulseaudio): Update to 14.2. --- gnu/packages/pulseaudio.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index ea61dd807c..0589d86529 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Pierre Neidhardt ;;; Copyright © 2020 Marius Bakke +;;; Copyright © 2021 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -180,7 +181,7 @@ rates.") (define-public pulseaudio (package (name "pulseaudio") - (version "14.0") + (version "14.2") (source (origin (method url-fetch) (uri (string-append @@ -188,7 +189,7 @@ rates.") name "-" version ".tar.xz")) (sha256 (base32 - "0qf20rgg0ysrnvg3359j56ndls07qmfn5rsy9r85bc42jdfpfd58")) + "1wb6zyln49ca93rl9id8r873b2sb8l79122ck824kr0s5isgglvm")) (modules '((guix build utils))) (snippet ;; Disable console-kit support by default since it's deprecated -- cgit v1.2.3 From 0c25529c6c4d1da7483db3db8bdc4a10b580c85b Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Fri, 5 Feb 2021 09:00:29 +0100 Subject: gnu: pulseaudio: Use meson build system. * gnu/packages/pulseaudio.scm (pulseaudio)[build-system]: Switch from gnu to meson. [arguments]: Migrate configure flags for meson. [propagated-inputs]: Replace 'gdbm' with 'tdb', upstream default. --- gnu/packages/pulseaudio.scm | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 0589d86529..5ae30033e0 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -50,7 +50,7 @@ #:use-module (gnu packages avahi) #:use-module (gnu packages boost) #:use-module (gnu packages check) - #:use-module (gnu packages dbm) + #:use-module (gnu packages databases) #:use-module (gnu packages glib) #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) @@ -202,14 +202,20 @@ rates.") (patches (search-patches "pulseaudio-fix-mult-test.patch" "pulseaudio-longer-test-timeout.patch")))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:configure-flags (list "--localstatedir=/var" ;"--sysconfdir=/etc" - "--disable-oss-output" - "--enable-bluez5" - (string-append "--with-udev-rules-dir=" - (assoc-ref %outputs "out") - "/lib/udev/rules.d")) + `(#:configure-flags + (let ((out (assoc-ref %outputs "out"))) + (list "-Doss-output=disable" + "-Dbluez5=true" + "-Dlocalstatedir=/var" + (string-append "-Dudevrulesdir=" + out "/lib/udev/rules.d") + ;; Ensure the RUNPATH contains all installed library locations. + (string-append "-Dc_link_args=-Wl,-rpath=" + out "/lib/pulseaudio:" + out "/lib:" + out "/lib/pulse-" ,version "/modules"))) #:phases (modify-phases %standard-phases (add-before 'check 'pre-check (lambda _ @@ -221,7 +227,6 @@ rates.") (setenv "CK_DEFAULT_TIMEOUT" "120") #t))))) (inputs - ;; TODO: Add optional inputs (GTK+?). `(("alsa-lib" ,alsa-lib) ("bluez" ,bluez) ("sbc" ,sbc) @@ -250,9 +255,9 @@ rates.") ("perl-xml-parser" ,perl-xml-parser) ("pkg-config" ,pkg-config))) (propagated-inputs - ;; 'libpulse*.la' contain `-lgdbm' and `-lcap', so propagate them. + ;; 'libpulse*.la' contain `-ltdb' and `-lcap', so propagate them. `(("libcap" ,libcap) - ("gdbm" ,gdbm))) + ("tdb" ,tdb))) (home-page "http://www.pulseaudio.org/") (synopsis "Sound server") (description -- cgit v1.2.3 From 98a41305cca3413c6d0b98e9c02caddc9138353e Mon Sep 17 00:00:00 2001 From: Vincent Legoll Date: Tue, 16 Feb 2021 20:32:43 +0100 Subject: gnu: imagemagick: Update to 6.9.12-0. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.12-0. Signed-off-by: Leo Famulari --- 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 02a627f17e..2ca0cfc9ea 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -50,14 +50,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.11-48") + (version "6.9.12-0") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0m8nkmywkqwyrr01q7aiakj6mi4rb2psjgzv8n0x82x3s1rpfyql")))) + "0bdc6rn14xxlvylck9yzr0mgx5dps3pdyfsgy91wxs64ck0kaahf")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch" -- cgit v1.2.3 From b4c8855eaa5644b95f7d6053c099690a20ed1259 Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Sat, 7 Nov 2020 10:18:23 +0100 Subject: gnu: shadow: Set log in /var/log. Fixes lastlog and faillog commands which otherwise look for lastlog and faillog files in /etc. * gnu/packages/admin.scm (shadow)[arguments]: Add configure flag 'shadow_cv_logdir'. --- gnu/packages/admin.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 8dc6a4f303..a7502cf5db 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -702,6 +702,7 @@ hostname.") '(,@(if (hurd-target?) '() '("--with-libpam")) + "shadow_cv_logdir=/var/log" "ac_cv_func_setpgrp_void=yes") #:phases -- cgit v1.2.3 From 140c667cb6bd21022e8e3b02f8ee7e9df66d32b5 Mon Sep 17 00:00:00 2001 From: Vincent Legoll Date: Thu, 4 Feb 2021 00:37:33 +0100 Subject: gnu: sdl2: Update to 2.0.14. * gnu/packages/sdl.scm (sdl2): Update to 2.0.14. Signed-off-by: Leo Famulari --- gnu/packages/sdl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index e4e452fec5..80d72cd0a1 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -115,7 +115,7 @@ joystick, and graphics hardware.") (define-public sdl2 (package (inherit sdl) (name "sdl2") - (version "2.0.12") + (version "2.0.14") (source (origin (method url-fetch) (uri @@ -123,7 +123,7 @@ joystick, and graphics hardware.") version ".tar.gz")) (sha256 (base32 - "0qy8wbqvfkb5ps8kxgaaf2zzpkjqbsw712hlp74znbn0jpv6i4il")))) + "1g1jahknv5r4yhh1xq5sf0md20ybdw1zh1i15lry26sq39bmn8fq")))) (arguments (substitute-keyword-arguments (package-arguments sdl) ((#:configure-flags flags) -- cgit v1.2.3 From c6edab3232127d30b0ecd9365bf7ab4b1437846c Mon Sep 17 00:00:00 2001 From: Vincent Legoll Date: Sat, 6 Feb 2021 17:24:28 +0100 Subject: gnu: json-c: Update to 0.15. * gnu/packages/web.scm (json-c): Update to 0.15. [source]: Remove obsolete patch 'json-c-CVE-2020-12762.patch'. * gnu/packages/patches/json-c-CVE-2020-12762.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. Signed-off-by: Leo Famulari --- gnu/local.mk | 1 - gnu/packages/patches/json-c-CVE-2020-12762.patch | 193 ----------------------- gnu/packages/web.scm | 5 +- 3 files changed, 2 insertions(+), 197 deletions(-) delete mode 100644 gnu/packages/patches/json-c-CVE-2020-12762.patch diff --git a/gnu/local.mk b/gnu/local.mk index ad6e02116e..148e8153ef 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1189,7 +1189,6 @@ dist_patch_DATA = \ %D%/packages/patches/ipxe-reproducible-geniso.patch \ %D%/packages/patches/irrlicht-use-system-libs.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ - %D%/packages/patches/json-c-CVE-2020-12762.patch \ %D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \ %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \ diff --git a/gnu/packages/patches/json-c-CVE-2020-12762.patch b/gnu/packages/patches/json-c-CVE-2020-12762.patch deleted file mode 100644 index 80daa475e9..0000000000 --- a/gnu/packages/patches/json-c-CVE-2020-12762.patch +++ /dev/null @@ -1,193 +0,0 @@ -https://github.com/json-c/json-c/pull/608 -https://github.com/json-c/json-c/commit/5d6fa331418d49f1bd488553fd1cfa9ab023fabb.patch - -From 5d6fa331418d49f1bd488553fd1cfa9ab023fabb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= -Date: Thu, 14 May 2020 12:32:30 +0200 -Subject: [PATCH] Fix CVE-2020-12762. - -This commit is a squashed backport of the following commits -on the master branch: - - * 099016b7e8d70a6d5dd814e788bba08d33d48426 - * 77d935b7ae7871a1940cd827e850e6063044ec45 - * d07b91014986900a3a75f306d302e13e005e9d67 - * 519dfe1591d85432986f9762d41d1a883198c157 - * a59d5acfab4485d5133114df61785b1fc633e0c6 - * 26f080997d41cfdb17beab65e90c82217d0ac43b ---- - arraylist.c | 3 +++ - linkhash.c | 9 ++++++++- - printbuf.c | 18 ++++++++++++++++-- - tests/test4.c | 29 +++++++++++++++++++++++++++++ - tests/test4.expected | 1 + - 5 files changed, 57 insertions(+), 3 deletions(-) - -diff --git a/arraylist.c b/arraylist.c -index 12ad8af6d3..e5524aca75 100644 ---- a/arraylist.c -+++ b/arraylist.c -@@ -136,6 +136,9 @@ int array_list_del_idx(struct array_list *arr, size_t idx, size_t count) - { - size_t i, stop; - -+ /* Avoid overflow in calculation with large indices. */ -+ if (idx > SIZE_T_MAX - count) -+ return -1; - stop = idx + count; - if (idx >= arr->length || stop > arr->length) - return -1; -diff --git a/linkhash.c b/linkhash.c -index 7ea58c0abf..b021ef10b0 100644 ---- a/linkhash.c -+++ b/linkhash.c -@@ -12,6 +12,7 @@ - - #include "config.h" - -+#include - #include - #include - #include -@@ -499,6 +500,8 @@ struct lh_table *lh_table_new(int size, lh_entry_free_fn *free_fn, lh_hash_fn *h - int i; - struct lh_table *t; - -+ /* Allocate space for elements to avoid divisions by zero. */ -+ assert(size > 0); - t = (struct lh_table *)calloc(1, sizeof(struct lh_table)); - if (!t) - return NULL; -@@ -578,8 +581,12 @@ int lh_table_insert_w_hash(struct lh_table *t, const void *k, const void *v, con - unsigned long n; - - if (t->count >= t->size * LH_LOAD_FACTOR) -- if (lh_table_resize(t, t->size * 2) != 0) -+ { -+ /* Avoid signed integer overflow with large tables. */ -+ int new_size = (t->size > INT_MAX / 2) ? INT_MAX : (t->size * 2); -+ if (t->size == INT_MAX || lh_table_resize(t, new_size) != 0) - return -1; -+ } - - n = h % t->size; - -diff --git a/printbuf.c b/printbuf.c -index 976c12dde5..f9b15b1191 100644 ---- a/printbuf.c -+++ b/printbuf.c -@@ -15,6 +15,7 @@ - - #include "config.h" - -+#include - #include - #include - #include -@@ -66,9 +67,16 @@ static int printbuf_extend(struct printbuf *p, int min_size) - if (p->size >= min_size) - return 0; - -- new_size = p->size * 2; -- if (new_size < min_size + 8) -+ /* Prevent signed integer overflows with large buffers. */ -+ if (min_size > INT_MAX - 8) -+ return -1; -+ if (p->size > INT_MAX / 2) - new_size = min_size + 8; -+ else { -+ new_size = p->size * 2; -+ if (new_size < min_size + 8) -+ new_size = min_size + 8; -+ } - #ifdef PRINTBUF_DEBUG - MC_DEBUG("printbuf_memappend: realloc " - "bpos=%d min_size=%d old_size=%d new_size=%d\n", -@@ -83,6 +91,9 @@ static int printbuf_extend(struct printbuf *p, int min_size) - - int printbuf_memappend(struct printbuf *p, const char *buf, int size) - { -+ /* Prevent signed integer overflows with large buffers. */ -+ if (size > INT_MAX - p->bpos - 1) -+ return -1; - if (p->size <= p->bpos + size + 1) - { - if (printbuf_extend(p, p->bpos + size + 1) < 0) -@@ -100,6 +111,9 @@ int printbuf_memset(struct printbuf *pb, int offset, int charvalue, int len) - - if (offset == -1) - offset = pb->bpos; -+ /* Prevent signed integer overflows with large buffers. */ -+ if (len > INT_MAX - offset) -+ return -1; - size_needed = offset + len; - if (pb->size < size_needed) - { -diff --git a/tests/test4.c b/tests/test4.c -index bd964ec789..288cec1792 100644 ---- a/tests/test4.c -+++ b/tests/test4.c -@@ -3,12 +3,15 @@ - */ - - #include "config.h" -+#include - #include -+#include - #include - - #include "json_inttypes.h" - #include "json_object.h" - #include "json_tokener.h" -+#include "snprintf_compat.h" - - void print_hex(const char *s) - { -@@ -24,6 +27,29 @@ void print_hex(const char *s) - putchar('\n'); - } - -+static void test_lot_of_adds(void); -+static void test_lot_of_adds() -+{ -+ int ii; -+ char key[50]; -+ json_object *jobj = json_object_new_object(); -+ assert(jobj != NULL); -+ for (ii = 0; ii < 500; ii++) -+ { -+ snprintf(key, sizeof(key), "k%d", ii); -+ json_object *iobj = json_object_new_int(ii); -+ assert(iobj != NULL); -+ if (json_object_object_add(jobj, key, iobj)) -+ { -+ fprintf(stderr, "FAILED to add object #%d\n", ii); -+ abort(); -+ } -+ } -+ printf("%s\n", json_object_to_json_string(jobj)); -+ assert(json_object_object_length(jobj) == 500); -+ json_object_put(jobj); -+} -+ - int main(void) - { - const char *input = "\"\\ud840\\udd26,\\ud840\\udd27,\\ud800\\udd26,\\ud800\\udd27\""; -@@ -52,5 +78,8 @@ int main(void) - retval = 1; - } - json_object_put(parse_result); -+ -+ test_lot_of_adds(); -+ - return retval; - } -diff --git a/tests/test4.expected b/tests/test4.expected -index 68d4336d90..cb2744012b 100644 ---- a/tests/test4.expected -+++ b/tests/test4.expected -@@ -1,3 +1,4 @@ - input: "\ud840\udd26,\ud840\udd27,\ud800\udd26,\ud800\udd27" - JSON parse result is correct: 𠄦,𠄧,𐄦,𐄧 - PASS -+{ "k0": 0, "k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5, "k6": 6, "k7": 7, "k8": 8, "k9": 9, "k10": 10, "k11": 11, "k12": 12, "k13": 13, "k14": 14, "k15": 15, "k16": 16, "k17": 17, "k18": 18, "k19": 19, "k20": 20, "k21": 21, "k22": 22, "k23": 23, "k24": 24, "k25": 25, "k26": 26, "k27": 27, "k28": 28, "k29": 29, "k30": 30, "k31": 31, "k32": 32, "k33": 33, "k34": 34, "k35": 35, "k36": 36, "k37": 37, "k38": 38, "k39": 39, "k40": 40, "k41": 41, "k42": 42, "k43": 43, "k44": 44, "k45": 45, "k46": 46, "k47": 47, "k48": 48, "k49": 49, "k50": 50, "k51": 51, "k52": 52, "k53": 53, "k54": 54, "k55": 55, "k56": 56, "k57": 57, "k58": 58, "k59": 59, "k60": 60, "k61": 61, "k62": 62, "k63": 63, "k64": 64, "k65": 65, "k66": 66, "k67": 67, "k68": 68, "k69": 69, "k70": 70, "k71": 71, "k72": 72, "k73": 73, "k74": 74, "k75": 75, "k76": 76, "k77": 77, "k78": 78, "k79": 79, "k80": 80, "k81": 81, "k82": 82, "k83": 83, "k84": 84, "k85": 85, "k86": 86, "k87": 87, "k88": 88, "k89": 89, "k90": 90, "k91": 91, "k92": 92, "k93": 93, "k94": 94, "k95": 95, "k96": 96, "k97": 97, "k98": 98, "k99": 99, "k100": 100, "k101": 101, "k102": 102, "k103": 103, "k104": 104, "k105": 105, "k106": 106, "k107": 107, "k108": 108, "k109": 109, "k110": 110, "k111": 111, "k112": 112, "k113": 113, "k114": 114, "k115": 115, "k116": 116, "k117": 117, "k118": 118, "k119": 119, "k120": 120, "k121": 121, "k122": 122, "k123": 123, "k124": 124, "k125": 125, "k126": 126, "k127": 127, "k128": 128, "k129": 129, "k130": 130, "k131": 131, "k132": 132, "k133": 133, "k134": 134, "k135": 135, "k136": 136, "k137": 137, "k138": 138, "k139": 139, "k140": 140, "k141": 141, "k142": 142, "k143": 143, "k144": 144, "k145": 145, "k146": 146, "k147": 147, "k148": 148, "k149": 149, "k150": 150, "k151": 151, "k152": 152, "k153": 153, "k154": 154, "k155": 155, "k156": 156, "k157": 157, "k158": 158, "k159": 159, "k160": 160, "k161": 161, "k162": 162, "k163": 163, "k164": 164, "k165": 165, "k166": 166, "k167": 167, "k168": 168, "k169": 169, "k170": 170, "k171": 171, "k172": 172, "k173": 173, "k174": 174, "k175": 175, "k176": 176, "k177": 177, "k178": 178, "k179": 179, "k180": 180, "k181": 181, "k182": 182, "k183": 183, "k184": 184, "k185": 185, "k186": 186, "k187": 187, "k188": 188, "k189": 189, "k190": 190, "k191": 191, "k192": 192, "k193": 193, "k194": 194, "k195": 195, "k196": 196, "k197": 197, "k198": 198, "k199": 199, "k200": 200, "k201": 201, "k202": 202, "k203": 203, "k204": 204, "k205": 205, "k206": 206, "k207": 207, "k208": 208, "k209": 209, "k210": 210, "k211": 211, "k212": 212, "k213": 213, "k214": 214, "k215": 215, "k216": 216, "k217": 217, "k218": 218, "k219": 219, "k220": 220, "k221": 221, "k222": 222, "k223": 223, "k224": 224, "k225": 225, "k226": 226, "k227": 227, "k228": 228, "k229": 229, "k230": 230, "k231": 231, "k232": 232, "k233": 233, "k234": 234, "k235": 235, "k236": 236, "k237": 237, "k238": 238, "k239": 239, "k240": 240, "k241": 241, "k242": 242, "k243": 243, "k244": 244, "k245": 245, "k246": 246, "k247": 247, "k248": 248, "k249": 249, "k250": 250, "k251": 251, "k252": 252, "k253": 253, "k254": 254, "k255": 255, "k256": 256, "k257": 257, "k258": 258, "k259": 259, "k260": 260, "k261": 261, "k262": 262, "k263": 263, "k264": 264, "k265": 265, "k266": 266, "k267": 267, "k268": 268, "k269": 269, "k270": 270, "k271": 271, "k272": 272, "k273": 273, "k274": 274, "k275": 275, "k276": 276, "k277": 277, "k278": 278, "k279": 279, "k280": 280, "k281": 281, "k282": 282, "k283": 283, "k284": 284, "k285": 285, "k286": 286, "k287": 287, "k288": 288, "k289": 289, "k290": 290, "k291": 291, "k292": 292, "k293": 293, "k294": 294, "k295": 295, "k296": 296, "k297": 297, "k298": 298, "k299": 299, "k300": 300, "k301": 301, "k302": 302, "k303": 303, "k304": 304, "k305": 305, "k306": 306, "k307": 307, "k308": 308, "k309": 309, "k310": 310, "k311": 311, "k312": 312, "k313": 313, "k314": 314, "k315": 315, "k316": 316, "k317": 317, "k318": 318, "k319": 319, "k320": 320, "k321": 321, "k322": 322, "k323": 323, "k324": 324, "k325": 325, "k326": 326, "k327": 327, "k328": 328, "k329": 329, "k330": 330, "k331": 331, "k332": 332, "k333": 333, "k334": 334, "k335": 335, "k336": 336, "k337": 337, "k338": 338, "k339": 339, "k340": 340, "k341": 341, "k342": 342, "k343": 343, "k344": 344, "k345": 345, "k346": 346, "k347": 347, "k348": 348, "k349": 349, "k350": 350, "k351": 351, "k352": 352, "k353": 353, "k354": 354, "k355": 355, "k356": 356, "k357": 357, "k358": 358, "k359": 359, "k360": 360, "k361": 361, "k362": 362, "k363": 363, "k364": 364, "k365": 365, "k366": 366, "k367": 367, "k368": 368, "k369": 369, "k370": 370, "k371": 371, "k372": 372, "k373": 373, "k374": 374, "k375": 375, "k376": 376, "k377": 377, "k378": 378, "k379": 379, "k380": 380, "k381": 381, "k382": 382, "k383": 383, "k384": 384, "k385": 385, "k386": 386, "k387": 387, "k388": 388, "k389": 389, "k390": 390, "k391": 391, "k392": 392, "k393": 393, "k394": 394, "k395": 395, "k396": 396, "k397": 397, "k398": 398, "k399": 399, "k400": 400, "k401": 401, "k402": 402, "k403": 403, "k404": 404, "k405": 405, "k406": 406, "k407": 407, "k408": 408, "k409": 409, "k410": 410, "k411": 411, "k412": 412, "k413": 413, "k414": 414, "k415": 415, "k416": 416, "k417": 417, "k418": 418, "k419": 419, "k420": 420, "k421": 421, "k422": 422, "k423": 423, "k424": 424, "k425": 425, "k426": 426, "k427": 427, "k428": 428, "k429": 429, "k430": 430, "k431": 431, "k432": 432, "k433": 433, "k434": 434, "k435": 435, "k436": 436, "k437": 437, "k438": 438, "k439": 439, "k440": 440, "k441": 441, "k442": 442, "k443": 443, "k444": 444, "k445": 445, "k446": 446, "k447": 447, "k448": 448, "k449": 449, "k450": 450, "k451": 451, "k452": 452, "k453": 453, "k454": 454, "k455": 455, "k456": 456, "k457": 457, "k458": 458, "k459": 459, "k460": 460, "k461": 461, "k462": 462, "k463": 463, "k464": 464, "k465": 465, "k466": 466, "k467": 467, "k468": 468, "k469": 469, "k470": 470, "k471": 471, "k472": 472, "k473": 473, "k474": 474, "k475": 475, "k476": 476, "k477": 477, "k478": 478, "k479": 479, "k480": 480, "k481": 481, "k482": 482, "k483": 483, "k484": 484, "k485": 485, "k486": 486, "k487": 487, "k488": 488, "k489": 489, "k490": 490, "k491": 491, "k492": 492, "k493": 493, "k494": 494, "k495": 495, "k496": 496, "k497": 497, "k498": 498, "k499": 499 } diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 4345905f2e..de231c0ab0 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -903,7 +903,7 @@ data.") (define-public json-c (package (name "json-c") - (version "0.14") + (version "0.15") (source (origin (method url-fetch) (uri (string-append @@ -911,8 +911,7 @@ data.") version ".tar.gz")) (sha256 (base32 - "0w381krr99q5a2rypx4g437fa7gzgl82i64sgnrs6g5jr44dwxxk")) - (patches (search-patches "json-c-CVE-2020-12762.patch")))) + "1im484iz08j3gmzpw07v16brwq46pxxj65i996kkp2vivcfhmn5q")))) (build-system cmake-build-system) (home-page "https://github.com/json-c/json-c/wiki") (synopsis "JSON implementation in C") -- cgit v1.2.3 From 70dadda3aaa4114c9b18c9b03c9951f75ec8ceeb Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 10 Mar 2021 12:14:59 -0500 Subject: gnu: gtk+: Add a debug output. * gnu/packages/gtk.scm (gtk+-2)[outputs]{debug}: New output. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index c6b4b6197a..c58226c5fa 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -24,7 +24,7 @@ ;;; Copyright © 2019 Giacomo Leidi ;;; Copyright © 2020 Brendan Tildesley ;;; Copyright © 2020 Guillaume Le Vaillant -;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020, 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -785,7 +785,7 @@ is part of the GNOME accessibility project.") "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch" "gtk2-theme-paths.patch")))) (build-system gnu-build-system) - (outputs '("out" "bin" "doc")) + (outputs '("out" "bin" "doc" "debug")) (propagated-inputs `(("atk" ,atk) ("gdk-pixbuf" ,gdk-pixbuf+svg) -- cgit v1.2.3 From 5a9350ae124f23170998ab604dd3f5d90f77af7d Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 10 Mar 2021 08:48:19 +0100 Subject: ci: Remove hydra support. This removes hydra support to use Cuirass as the only continuous integration system. * build-aux/hydra/gnu-system.scm: Remove it. * build-aux/hydra/guix-modular.scm: Ditto. * build-aux/hydra/guix.scm: Ditto. * build-aux/cuirass/hydra-to-cuirass.scm: Ditto. * Makefile.am (EXTRA_DIST): Update it. (hydra-jobs.scm): Remove it. (cuirass-jobs.scm): Update it. * build-aux/hydra/evaluate.scm: Move it to ... * build-aux/cuirass/evaluate.scm: ... here. * build-aux/cuirass/guix-modular.scm: Remove it. * build-aux/cuirass/gnu-system.scm: Ditto. * guix/packages.scm (%hydra-supported-systems): Rename it to ... (%cuirass-supported-systems): ... this variable. * build-aux/check-final-inputs-self-contained: Adapt it. * etc/release-manifest.scm: Ditto. * gnu/ci.scm (package->alist): Remove it. (derivation->job): New procedure. (package-job, package-cross-job, cross-jobs, image-jobs, system-test-jobs, tarball-jobs): Use it. (guix-jobs): New procedure. (hydra-jobs): Rename it to ... (cuirass-jobs): ... this procedure. --- Makefile.am | 29 +- build-aux/check-final-inputs-self-contained.scm | 3 +- build-aux/cuirass/evaluate.scm | 105 ++++++ build-aux/cuirass/gnu-system.scm | 25 -- build-aux/cuirass/guix-modular.scm | 6 - build-aux/cuirass/hydra-to-cuirass.scm | 47 --- build-aux/hydra/evaluate.scm | 131 ------- build-aux/hydra/gnu-system.scm | 88 ----- build-aux/hydra/guix-modular.scm | 91 ----- build-aux/hydra/guix.scm | 106 ------ etc/release-manifest.scm | 2 +- gnu/ci.scm | 452 +++++++++++------------- guix/packages.scm | 4 +- 13 files changed, 320 insertions(+), 769 deletions(-) create mode 100644 build-aux/cuirass/evaluate.scm delete mode 100644 build-aux/cuirass/gnu-system.scm delete mode 100644 build-aux/cuirass/guix-modular.scm delete mode 100644 build-aux/cuirass/hydra-to-cuirass.scm delete mode 100644 build-aux/hydra/evaluate.scm delete mode 100644 build-aux/hydra/gnu-system.scm delete mode 100644 build-aux/hydra/guix-modular.scm delete mode 100644 build-aux/hydra/guix.scm diff --git a/Makefile.am b/Makefile.am index 52537fb53d..c6451a2493 100644 --- a/Makefile.am +++ b/Makefile.am @@ -603,14 +603,7 @@ EXTRA_DIST += \ etc/historical-authorizations \ build-aux/build-self.scm \ build-aux/compile-all.scm \ - build-aux/hydra/evaluate.scm \ - build-aux/hydra/gnu-system.scm \ - build-aux/hydra/guix.scm \ - build-aux/hydra/guix-modular.scm \ - build-aux/cuirass/gnu-system.scm \ - build-aux/cuirass/guix-modular.scm \ build-aux/cuirass/hurd-manifest.scm \ - build-aux/cuirass/hydra-to-cuirass.scm \ build-aux/check-final-inputs-self-contained.scm \ build-aux/check-channel-news.scm \ build-aux/compile-as-derivation.scm \ @@ -950,28 +943,18 @@ check-channel-news: $(GOBJECTS) $(AM_V_at)$(top_builddir)/pre-inst-env "$(GUILE)" \ "$(top_srcdir)/build-aux/check-channel-news.scm" -# Compute the Hydra jobs and write them in the target file. -hydra-jobs.scm: $(GOBJECTS) - $(AM_V_at)$(MKDIR_P) "`dirname "$@"`" +# Compute the Cuirass jobs. +cuirass-jobs: $(GOBJECTS) + rm -rf "$@" + $(AM_V_at)$(MKDIR_P) "$@" $(AM_V_GEN)$(top_builddir)/pre-inst-env "$(GUILE)" \ - "$(top_srcdir)/build-aux/hydra/evaluate.scm" \ - "$(top_srcdir)/build-aux/hydra/gnu-system.scm" > "$@.tmp" - $(AM_V_at)mv "$@.tmp" "$@" - -# Compute the Cuirass jobs and write them in the target file. -cuirass-jobs.scm: $(GOBJECTS) - $(AM_V_at)$(MKDIR_P) "`dirname "$@"`" - $(AM_V_GEN)$(top_builddir)/pre-inst-env "$(GUILE)" \ - "$(top_srcdir)/build-aux/hydra/evaluate.scm" \ - "$(top_srcdir)/build-aux/cuirass/gnu-system.scm" \ - cuirass > "$@.tmp" - $(AM_V_at)mv "$@.tmp" "$@" + "$(top_srcdir)/build-aux/cuirass/evaluate.scm" "$@" .PHONY: gen-ChangeLog gen-AUTHORS gen-tarball-version .PHONY: assert-no-store-file-names assert-binaries-available .PHONY: assert-final-inputs-self-contained check-channel-news .PHONY: clean-go make-go as-derivation authenticate -.PHONY: update-guix-package update-NEWS release +.PHONY: update-guix-package update-NEWS cuirass-jobs release # Downloading up-to-date PO files. diff --git a/build-aux/check-final-inputs-self-contained.scm b/build-aux/check-final-inputs-self-contained.scm index c819086508..a6148d12e3 100644 --- a/build-aux/check-final-inputs-self-contained.scm +++ b/build-aux/check-final-inputs-self-contained.scm @@ -83,5 +83,4 @@ refer to the bootstrap tools." (set-build-options store #:use-substitutes? #t) (for-each (cut test-final-inputs store <>) - %hydra-supported-systems))) - + %cuirass-supported-systems))) diff --git a/build-aux/cuirass/evaluate.scm b/build-aux/cuirass/evaluate.scm new file mode 100644 index 0000000000..fc0744ad2a --- /dev/null +++ b/build-aux/cuirass/evaluate.scm @@ -0,0 +1,105 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016, 2017, 2018, 2020 Ludovic Courtès +;;; Copyright © 2017 Jan Nieuwenhuizen +;;; Copyright © 2021 Mathieu Othacehe +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +;;; This program replicates the behavior of Cuirass's 'evaluate' process. +;;; It displays the evaluated jobs on the standard output. + +(use-modules (guix channels) + (guix derivations) + (guix git-download) + (guix inferior) + (guix packages) + (guix store) + (guix ui) + ((guix ui) #:select (build-notifier)) + (ice-9 match) + (ice-9 threads)) + +(define %top-srcdir + (and=> (assq-ref (current-source-location) 'filename) + (lambda (file) + (canonicalize-path + (string-append (dirname file) "/../.."))))) + +(match (command-line) + ((command directory) + (let ((real-build-things build-things)) + (with-store store + ;; Make sure we don't resort to substitutes. + (set-build-options store + #:use-substitutes? #f + #:substitute-urls '()) + + ;; The evaluation of Guix itself requires building a "trampoline" + ;; program, and possibly everything it depends on. Thus, allow builds + ;; but print a notification. + (with-build-handler (build-notifier #:use-substitutes? #f) + + ;; Add %TOP-SRCDIR to the store with a proper Git predicate so we + ;; work from a clean checkout. + (let ((source (add-to-store store "guix-source" #t + "sha256" %top-srcdir + #:select? (git-predicate %top-srcdir)))) + (define instances + (list (checkout->channel-instance source))) + + (define channels + (map channel-instance-channel instances)) + + (define derivation + ;; Compute the derivation of Guix for COMMIT. + (run-with-store store + (channel-instances->derivation instances))) + + ;; TODO: Remove 'show-what-to-build' call when Cuirass' 'evaluate' + ;; scripts uses 'with-build-handler'. + (show-what-to-build store (list derivation)) + (build-derivations store (list derivation)) + + + ;; Evaluate jobs on a per-system basis for two reasons. It speeds + ;; up the evaluation speed as the evaluations can be performed + ;; concurrently. It also decreases the amount of memory needed per + ;; evaluation process. + (n-par-for-each + (/ (current-processor-count) 2) + (lambda (system) + (with-store store + (let ((inferior + (open-inferior (derivation->output-path derivation))) + (channels (map channel-instance->sexp instances))) + (inferior-eval '(use-modules (gnu ci)) inferior) + (let ((jobs + (inferior-eval-with-store + inferior store + `(lambda (store) + (cuirass-jobs store + '((subset . all) + (systems . ,(list system)) + (channels . ,channels)))))) + (file + (string-append directory "/jobs-" system ".scm"))) + (call-with-output-file file + (lambda (port) + (write jobs port))))))) + %cuirass-supported-systems)))))) + (x + (format (current-error-port) "Wrong command: ~a~%." x) + (exit 1))) diff --git a/build-aux/cuirass/gnu-system.scm b/build-aux/cuirass/gnu-system.scm deleted file mode 100644 index 0eb834cfba..0000000000 --- a/build-aux/cuirass/gnu-system.scm +++ /dev/null @@ -1,25 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Jan Nieuwenhuizen -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -;;; -;;; This file defines build jobs for the Cuirass continuation integration -;;; tool. -;;; - -(include "../hydra/gnu-system.scm") -(include "hydra-to-cuirass.scm") diff --git a/build-aux/cuirass/guix-modular.scm b/build-aux/cuirass/guix-modular.scm deleted file mode 100644 index cbbdbf1133..0000000000 --- a/build-aux/cuirass/guix-modular.scm +++ /dev/null @@ -1,6 +0,0 @@ -;;; -;;; This file defines Cuirass build jobs to build Guix itself. -;;; - -(include "../hydra/guix-modular.scm") -(include "hydra-to-cuirass.scm") diff --git a/build-aux/cuirass/hydra-to-cuirass.scm b/build-aux/cuirass/hydra-to-cuirass.scm deleted file mode 100644 index 75c77ea35a..0000000000 --- a/build-aux/cuirass/hydra-to-cuirass.scm +++ /dev/null @@ -1,47 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Jan Nieuwenhuizen -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -;;; -;;; This file defines the conversion of Hydra build jobs to Cuirass build -;;; jobs. It is meant to be included in other files. -;;; - -(use-modules ((guix licenses) - #:select (license? license-name license-uri license-comment))) - -(define (cuirass-jobs store arguments) - "Return Cuirass jobs." - (map hydra-job->cuirass-job (hydra-jobs store arguments))) - -(define (hydra-job->cuirass-job hydra-job) - (let ((name (car hydra-job)) - (job ((cdr hydra-job)))) - (lambda _ (acons #:job-name (symbol->string name) - (map symbol-alist-entry->keyword-alist-entry job))))) - -(define (symbol-alist-entry->keyword-alist-entry entry) - (cons (symbol->keyword (car entry)) (entry->sexp-entry (cdr entry)))) - -(define (entry->sexp-entry o) - (match o - ((? license?) `((name . (license-name o)) - (uri . ,(license-uri o)) - (comment . ,(license-comment o)))) - ((lst ...) - (map entry->sexp-entry lst)) - (_ o))) diff --git a/build-aux/hydra/evaluate.scm b/build-aux/hydra/evaluate.scm deleted file mode 100644 index c74fcdb763..0000000000 --- a/build-aux/hydra/evaluate.scm +++ /dev/null @@ -1,131 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2018, 2020 Ludovic Courtès -;;; Copyright © 2017 Jan Nieuwenhuizen -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -;;; This program replicates the behavior of Hydra's 'hydra-eval-guile-job'. -;;; It evaluates the Hydra job defined by the program passed as its first -;;; arguments and outputs an sexp of the jobs on standard output. - -(use-modules (guix store) - (guix git-download) - ((guix build utils) #:select (with-directory-excursion)) - ((guix ui) #:select (build-notifier)) - (srfi srfi-19) - (ice-9 match) - (ice-9 pretty-print) - (ice-9 format)) - -(define %top-srcdir - (and=> (assq-ref (current-source-location) 'filename) - (lambda (file) - (canonicalize-path - (string-append (dirname file) "/../.."))))) - -(define %user-module - ;; Hydra user module. - (let ((m (make-module))) - (beautify-user-module! m) - m)) - -(define (call-with-time thunk kont) - "Call THUNK and pass KONT the elapsed time followed by THUNK's return -values." - (let* ((start (current-time time-monotonic)) - (result (call-with-values thunk list)) - (end (current-time time-monotonic))) - (apply kont (time-difference end start) result))) - -(define (call-with-time-display thunk) - "Call THUNK and write to the current output port its duration." - (call-with-time thunk - (lambda (time . results) - (format #t "~,3f seconds~%" - (+ (time-second time) - (/ (time-nanosecond time) 1e9))) - (apply values results)))) - -(define (assert-valid-job job thing) - "Raise an error if THING is not an alist with a valid 'derivation' entry. -Otherwise return THING." - (unless (and (list? thing) - (and=> (assoc-ref thing 'derivation) - (lambda (value) - (and (string? value) - (string-suffix? ".drv" value))))) - (error "job did not produce a valid alist" job thing)) - thing) - - -;; Without further ado... -(match (command-line) - ((command file cuirass? ...) - ;; Load FILE, a Scheme file that defines Hydra jobs. - (let ((port (current-output-port)) - (real-build-things build-things)) - (with-store store - ;; Make sure we don't resort to substitutes. - (set-build-options store - #:use-substitutes? #f - #:substitute-urls '()) - - ;; The evaluation of Guix itself requires building a "trampoline" - ;; program, and possibly everything it depends on. Thus, allow builds - ;; but print a notification. - (with-build-handler (build-notifier #:use-substitutes? #f) - - ;; Add %TOP-SRCDIR to the store with a proper Git predicate so we work - ;; from a clean checkout - (let ((source (add-to-store store "guix-source" #t - "sha256" %top-srcdir - #:select? (git-predicate %top-srcdir)))) - (with-directory-excursion source - (save-module-excursion - (lambda () - (set-current-module %user-module) - (format (current-error-port) - "loading '~a' relative to '~a'...~%" - file source) - (primitive-load file)))) - - ;; Call the entry point of FILE and print the resulting job sexp. - (pretty-print - (match ((module-ref %user-module - (if (equal? cuirass? "cuirass") - 'cuirass-jobs - 'hydra-jobs)) - store `((guix - . ((file-name . ,source))))) - (((names . thunks) ...) - (map (lambda (job thunk) - (format (current-error-port) "evaluating '~a'... " job) - (force-output (current-error-port)) - (cons job - (assert-valid-job job - (call-with-time-display thunk)))) - names thunks))) - port)))))) - ((command _ ...) - (format (current-error-port) "Usage: ~a FILE [cuirass] -Evaluate the Hydra or Cuirass jobs defined in FILE.~%" - command) - (exit 1))) - -;;; Local Variables: -;;; eval: (put 'call-with-time 'scheme-indent-function 1) -;;; End: - diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm deleted file mode 100644 index a03324daeb..0000000000 --- a/build-aux/hydra/gnu-system.scm +++ /dev/null @@ -1,88 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020 Ludovic Courtès -;;; Copyright © 2017 Jan Nieuwenhuizen -;;; Copyright © 2018, 2019 Clément Lassieur -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -;;; -;;; This file defines build jobs for the Hydra continuation integration -;;; tool. -;;; - -(use-modules (guix inferior) (guix channels) - (guix) - (guix ui) - (srfi srfi-1) - (ice-9 match)) - -;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output -;; port to the bit bucket, let us write to the error port instead. -(setvbuf (current-error-port) 'line) -(set-current-output-port (current-error-port)) - -(define (find-current-checkout arguments) - "Find the first checkout of ARGUMENTS that provided the current file. -Return #f if no such checkout is found." - (let ((current-root - (canonicalize-path - (string-append (dirname (current-filename)) "/../..")))) - (find (lambda (argument) - (and=> (assq-ref argument 'file-name) - (lambda (name) - (string=? name current-root)))) arguments))) - -(define (hydra-jobs store arguments) - "Return a list of jobs where each job is a NAME/THUNK pair." - - (define checkout - (find-current-checkout arguments)) - - (define commit - (assq-ref checkout 'revision)) - - (define source - (assq-ref checkout 'file-name)) - - (define instance - (checkout->channel-instance source #:commit commit)) - - (define derivation - ;; Compute the derivation of Guix for COMMIT. - (run-with-store store - (channel-instances->derivation (list instance)))) - - ;; TODO: Remove 'show-what-to-build' call when Cuirass' 'evaluate' scripts - ;; uses 'with-build-handler'. - (show-what-to-build store (list derivation)) - (build-derivations store (list derivation)) - - ;; Open an inferior for the just-built Guix. - (let ((inferior (open-inferior (derivation->output-path derivation)))) - (inferior-eval '(use-modules (gnu ci) (ice-9 match)) inferior) - - (map (match-lambda - ((name . fields) - ;; Hydra expects a thunk, so here it is. - (cons name (lambda () fields)))) - (inferior-eval-with-store - inferior store - `(lambda (store) - (map (match-lambda - ((name . thunk) - (cons name (thunk)))) - (hydra-jobs store '((superior-guix-checkout . ,checkout) - ,@arguments)))))))) diff --git a/build-aux/hydra/guix-modular.scm b/build-aux/hydra/guix-modular.scm deleted file mode 100644 index 060b84b8ef..0000000000 --- a/build-aux/hydra/guix-modular.scm +++ /dev/null @@ -1,91 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018, 2020 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -;;; -;;; This file defines a continuous integration job to build the same modular -;;; Guix as 'guix pull', which is defined in (guix self). -;;; - -(use-modules (guix store) - (guix config) - (guix utils) - ((guix packages) #:select (%hydra-supported-systems)) - (guix derivations) - (guix monads) - ((guix licenses) #:prefix license:) - (srfi srfi-1) - (ice-9 match)) - -;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output -;; port to the bit bucket, let us write to the error port instead. -(setvbuf (current-error-port) 'line) -(set-current-output-port (current-error-port)) - -(define* (build-job store source version system) - "Return a Hydra job a list building the modular Guix derivation from SOURCE -for SYSTEM. Use VERSION as the version identifier." - (lambda () - (define build - (primitive-load (string-append source "/build-aux/build-self.scm"))) - - (let ((drv (run-with-store store - (build source #:version version #:system system - #:pull-version 1 - #:guile-version "2.2")))) - `((derivation . ,(derivation-file-name drv)) ;the latest 2.2.x - (log . ,(log-file store (derivation-file-name drv))) - (outputs . ,(filter-map (lambda (res) - (match res - ((name . path) - `(,name . ,path)))) - (derivation->output-paths drv))) - (nix-name . ,(derivation-name drv)) - (system . ,(derivation-system drv)) - (description . "Modular Guix") - (long-description - . "This is the modular Guix package as produced by 'guix pull'.") - (license . ,license:gpl3+) - (home-page . ,%guix-home-page-url) - (maintainers . (,%guix-bug-report-address)))))) - -(define (hydra-jobs store arguments) - "Return Hydra jobs." - (define systems - (match (assoc-ref arguments 'systems) - (#f %hydra-supported-systems) - ((lst ...) lst) - ((? string? str) (call-with-input-string str read)))) - - (define guix-checkout - (or (assq-ref arguments 'guix) ;Hydra on hydra - (assq-ref arguments 'guix-modular))) ;Cuirass on berlin - - (define version - (or (assq-ref guix-checkout 'revision) - "0.unknown")) - - (let ((file (assq-ref guix-checkout 'file-name))) - (format (current-error-port) "using checkout ~s (~s; arguments: ~s)~%" - guix-checkout file arguments) - - (map (lambda (system) - (let ((name (string->symbol - (string-append "guix." system)))) - `(,name - . ,(build-job store file version system)))) - systems))) diff --git a/build-aux/hydra/guix.scm b/build-aux/hydra/guix.scm deleted file mode 100644 index 08193ec82e..0000000000 --- a/build-aux/hydra/guix.scm +++ /dev/null @@ -1,106 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -;;; -;;; This file defines build jobs of Guix itself for the Hydra continuation -;;; integration tool. -;;; - -;; Attempt to use our very own Guix modules. -(eval-when (expand load eval) - - ;; Ignore any available .go, and force recompilation. This is because our - ;; checkout in the store has mtime set to the epoch, and thus .go files look - ;; newer, even though they may not correspond. - (set! %fresh-auto-compile #t) - - ;; Display which files are loaded. - (set! %load-verbosely #t) - - (and=> (assoc-ref (current-source-location) 'filename) - (lambda (file) - (let ((dir (string-append (dirname file) "/../.."))) - (format (current-error-port) "prepending ~s to the load path~%" - dir) - (set! %load-path (cons dir %load-path)))))) - - -(use-modules (guix store) - (guix packages) - (guix utils) - (guix grafts) - (guix derivations) - (guix build-system gnu) - (gnu packages package-management) - (srfi srfi-1) - (srfi srfi-26) - (ice-9 match)) - -;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output -;; port to the bit bucket, let us write to the error port instead. -(setvbuf (current-error-port) _IOLBF) -(set-current-output-port (current-error-port)) - -(define* (package->alist store package system - #:optional (package-derivation package-derivation)) - "Convert PACKAGE to an alist suitable for Hydra." - `((derivation . ,(derivation-file-name - (parameterize ((%graft? #f)) - (package-derivation store package system - #:graft? #f)))) - (description . ,(package-synopsis package)) - (long-description . ,(package-description package)) - (license . ,(package-license package)) - (home-page . ,(package-home-page package)) - (maintainers . ("bug-guix@gnu.org")))) - -(define (hydra-jobs store arguments) - "Return Hydra jobs." - (define systems - (match (filter-map (match-lambda - (('system . value) - value) - (_ #f)) - arguments) - ((lst ..1) - lst) - (_ - (list (%current-system))))) - - (define guix-checkout - (assq-ref arguments 'guix)) - - (let ((file (assq-ref guix-checkout 'file-name))) - (format (current-error-port) "using checkout ~s (~s)~%" - guix-checkout file) - - `((tarball . ,(cute package->alist store - (dist-package guix file) - (%current-system))) - - ,@(map (lambda (system) - (let ((name (string->symbol - (string-append "guix." system)))) - `(,name - . ,(cute package->alist store - (package - (inherit guix) - (version "latest") - (source file)) - system)))) - %hydra-supported-systems)))) diff --git a/etc/release-manifest.scm b/etc/release-manifest.scm index da98d6e00b..a1f731a945 100644 --- a/etc/release-manifest.scm +++ b/etc/release-manifest.scm @@ -103,7 +103,7 @@ TARGET." (if (string=? system "i586-gnu") %base-packages/hurd %base-packages))) - %hydra-supported-systems))) + %cuirass-supported-systems))) (define %system-manifest (manifest diff --git a/gnu/ci.scm b/gnu/ci.scm index 96bff64875..6edcdd0e19 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2018, 2019 Clément Lassieur ;;; Copyright © 2020 Julien Lepiller -;;; Copyright © 2020 Mathieu Othacehe +;;; Copyright © 2020, 2021 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu ci) + #:use-module (guix channels) #:use-module (guix config) #:use-module (guix store) #:use-module (guix grafts) @@ -64,67 +65,69 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match) - #:export (%cross-targets + #:export (%core-packages + %cross-targets channel-source->package - hydra-jobs)) + cuirass-jobs)) ;;; Commentary: ;;; -;;; This file defines build jobs for the Hydra and Cuirass continuation -;;; integration tools. +;;; This file defines build jobs for Cuirass. ;;; ;;; Code: -(define* (package->alist store package system - #:optional (package-derivation package-derivation)) - "Convert PACKAGE to an alist suitable for Hydra." - (parameterize ((%graft? #f)) - (let ((drv (package-derivation store package system - #:graft? #f))) - `((derivation . ,(derivation-file-name drv)) - (log . ,(log-file store (derivation-file-name drv))) - (outputs . ,(filter-map (lambda (res) - (match res - ((name . path) - `(,name . ,path)))) - (derivation->output-paths drv))) - (nix-name . ,(derivation-name drv)) - (system . ,(derivation-system drv)) - (description . ,(package-synopsis package)) - (long-description . ,(package-description package)) - - ;; XXX: Hydra ignores licenses that are not a structure or a - ;; list thereof. - (license . ,(let loop ((license (package-license package))) - (match license - ((? license?) - (license-name license)) - ((lst ...) - (map loop license))))) - - (home-page . ,(package-home-page package)) - (maintainers . ("bug-guix@gnu.org")) - (max-silent-time . ,(or (assoc-ref (package-properties package) - 'max-silent-time) - 3600)) ;1 hour by default - (timeout . ,(or (assoc-ref (package-properties package) 'timeout) - 72000)))))) ;20 hours by default - -(define (package-job store job-name package system) +(define* (derivation->job name drv + #:key + period + (max-silent-time 3600) + (timeout 3600)) + "Return a Cuirass job called NAME and describing DRV. PERIOD is the minimal +duration that must separate two evaluations of the same job. If PERIOD is +false, then the job will be evaluated as soon as possible. + +MAX-SILENT-TIME and TIMEOUT are build options passed to the daemon when +building the derivation." + `((#:job-name . ,name) + (#:derivation . ,(derivation-file-name drv)) + (#:outputs . ,(filter-map + (lambda (res) + (match res + ((name . path) + `(,name . ,path)))) + (derivation->output-paths drv))) + (#:nix-name . ,(derivation-name drv)) + (#:system . ,(derivation-system drv)) + (#:period . ,period) + (#:max-silent-time . ,max-silent-time) + (#:timeout . ,timeout))) + +(define* (package-job store job-name package system + #:key cross? target) "Return a job called JOB-NAME that builds PACKAGE on SYSTEM." - (let ((job-name (symbol-append job-name (string->symbol ".") - (string->symbol system)))) - `(,job-name . ,(cut package->alist store package system)))) + (let ((job-name (string-append job-name "." system))) + (parameterize ((%graft? #f)) + (let* ((drv (if cross? + (package-cross-derivation store package target system + #:graft? #f) + (package-derivation store package system + #:graft? #f))) + (max-silent-time (or (assoc-ref (package-properties package) + 'max-silent-time) + 3600)) + (timeout (or (assoc-ref (package-properties package) + 'timeout) + 72000))) + (derivation->job job-name drv + #:max-silent-time max-silent-time + #:timeout timeout))))) (define (package-cross-job store job-name package target system) "Return a job called TARGET.JOB-NAME that cross-builds PACKAGE for TARGET on SYSTEM." - `(,(symbol-append (string->symbol target) (string->symbol ".") job-name - (string->symbol ".") (string->symbol system)) . - ,(cute package->alist store package system - (lambda* (store package system #:key graft?) - (package-cross-derivation store package target system - #:graft? graft?))))) + (let ((name (string-append target "." job-name "." system))) + (package-job store name package system + #:cross? #t + #:target target))) (define %core-packages ;; Note: Don't put the '-final' package variants because (1) that's @@ -200,6 +203,22 @@ SYSTEM." (remove (either from-32-to-64? same? pointless?) %cross-targets))) +(define* (guix-jobs store systems #:key source commit) + "Return a list of jobs for Guix itself." + (define build + (primitive-load (string-append source "/build-aux/build-self.scm"))) + + (map + (lambda (system) + (let ((name (string->symbol + (string-append "guix." system))) + (drv (run-with-store store + (build source #:version commit #:system system + #:pull-version 1 + #:guile-version "2.2")))) + (derivation->job name drv))) + systems)) + ;; Architectures that are able to build or cross-build Guix System images. ;; This does not mean that other architectures are not supported, only that ;; they are often not fast enough to support Guix System images building. @@ -219,32 +238,11 @@ SYSTEM." "Return a list of jobs that build images for SYSTEM. Those jobs are expensive in storage and I/O operations, hence their periodicity is limited by passing the PERIOD argument." - (define (->alist drv) - `((derivation . ,(derivation-file-name drv)) - (log . ,(log-file store (derivation-file-name drv))) - (outputs . ,(filter-map (lambda (res) - (match res - ((name . path) - `(,name . ,path)))) - (derivation->output-paths drv))) - (nix-name . ,(derivation-name drv)) - (system . ,(derivation-system drv)) - (description . "Stand-alone image of the GNU system") - (long-description . "This is a demo stand-alone image of the GNU -system.") - (license . ,(license-name gpl3+)) - (period . ,(hours 48)) - (max-silent-time . 3600) - (timeout . 3600) - (home-page . ,%guix-home-page-url) - (maintainers . ("bug-guix@gnu.org")))) - (define (->job name drv) - (let ((name (symbol-append name (string->symbol ".") - (string->symbol system)))) - `(,name . ,(lambda () - (parameterize ((%graft? #f)) - (->alist drv)))))) + (let ((name (string-append name "." system))) + (parameterize ((%graft? #f)) + (derivation->job name drv + #:period (hours 48))))) (define (build-image image) (run-with-store store @@ -256,25 +254,26 @@ system.") (expt 2 20)) (if (member system %guix-system-supported-systems) - `(,(->job 'usb-image + `(,(->job "usb-image" (build-image (image (inherit efi-disk-image) (operating-system installation-os)))) - ,(->job 'iso9660-image + ,(->job "iso9660-image" (build-image (image (inherit (image-with-label - iso9660-image - (string-append "GUIX_" system "_" - (if (> (string-length %guix-version) 7) - (substring %guix-version 0 7) - %guix-version)))) + iso9660-image + (string-append "GUIX_" system "_" + (if (> (string-length %guix-version) 7) + (substring %guix-version 0 7) + %guix-version)))) (operating-system installation-os)))) ;; Only cross-compile Guix System images from x86_64-linux for now. ,@(if (string=? system "x86_64-linux") (map (lambda (image) - (->job (image-name image) (build-image image))) + (->job (symbol->string (image-name image)) + (build-image image))) %guix-system-images) '())) '())) @@ -322,112 +321,72 @@ system.") (define* (system-test-jobs store system #:key source commit) "Return a list of jobs for the system tests." - (define (test->thunk test) - (lambda () - (define drv - (run-with-store store - (mbegin %store-monad - (set-current-system system) - (set-grafting #f) - (set-guile-for-build (default-guile)) - (system-test-value test)))) - - ;; Those tests are extremely expensive in I/O operations and storage - ;; size, use the "period" attribute to run them with a period of at - ;; least 48 hours. - `((derivation . ,(derivation-file-name drv)) - (log . ,(log-file store (derivation-file-name drv))) - (outputs . ,(filter-map (lambda (res) - (match res - ((name . path) - `(,name . ,path)))) - (derivation->output-paths drv))) - (nix-name . ,(derivation-name drv)) - (system . ,(derivation-system drv)) - (description . ,(format #f "Guix '~a' system test" - (system-test-name test))) - (long-description . ,(system-test-description test)) - (license . ,(license-name gpl3+)) - (period . ,(hours 48)) - (max-silent-time . 3600) - (timeout . 3600) - (home-page . ,%guix-home-page-url) - (maintainers . ("bug-guix@gnu.org"))))) - (define (->job test) - (let ((name (string->symbol - (string-append "test." (system-test-name test) - "." system)))) - (cons name (test->thunk test)))) + (parameterize ((current-guix-package + (channel-source->package source #:commit commit))) + (let ((name (string-append "test." (system-test-name test) + "." system)) + (drv (run-with-store store + (mbegin %store-monad + (set-current-system system) + (set-grafting #f) + (set-guile-for-build (default-guile)) + (system-test-value test))))) + + ;; Those tests are extremely expensive in I/O operations and storage + ;; size, use the "period" attribute to run them with a period of at + ;; least 48 hours. + (derivation->job name drv + #:period (hours 24))))) (if (member system %guix-system-supported-systems) ;; Override the value of 'current-guix' used by system tests. Using a ;; channel instance makes tests that rely on 'current-guix' less ;; expensive. It also makes sure we get a valid Guix package when this ;; code is not running from a checkout. - (parameterize ((current-guix-package - (channel-source->package source #:commit commit))) - (map ->job (all-system-tests))) + (map ->job (all-system-tests)) '())) (define (tarball-jobs store system) - "Return Hydra jobs to build the self-contained Guix binary tarball." - (define (->alist drv) - `((derivation . ,(derivation-file-name drv)) - (log . ,(log-file store (derivation-file-name drv))) - (outputs . ,(filter-map (lambda (res) - (match res - ((name . path) - `(,name . ,path)))) - (derivation->output-paths drv))) - (nix-name . ,(derivation-name drv)) - (system . ,(derivation-system drv)) - (description . "Stand-alone binary Guix tarball") - (long-description . "This is a tarball containing binaries of Guix and -all its dependencies, and ready to be installed on \"foreign\" distributions.") - (license . ,(license-name gpl3+)) - (home-page . ,%guix-home-page-url) - (maintainers . ("bug-guix@gnu.org")) - (period . ,(hours 24)))) - + "Return jobs to build the self-contained Guix binary tarball." (define (->job name drv) - (let ((name (symbol-append name (string->symbol ".") - (string->symbol system)))) - `(,name . ,(lambda () - (parameterize ((%graft? #f)) - (->alist drv)))))) + (let ((name (string-append name "." system))) + (parameterize ((%graft? #f)) + (derivation->job name drv + #:period (hours 24))))) ;; XXX: Add a job for the stable Guix? - (list (->job 'binary-tarball - (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (>>= (profile-derivation (packages->manifest (list guix))) - (lambda (profile) - (self-contained-tarball "guix-binary" profile - #:localstatedir? #t - #:compressor - (lookup-compressor "xz"))))) - #:system system)))) + (list + (->job "binary-tarball" + (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (>>= (profile-derivation (packages->manifest (list guix))) + (lambda (profile) + (self-contained-tarball "guix-binary" profile + #:localstatedir? #t + #:compressor + (lookup-compressor "xz"))))) + #:system system)))) (define job-name ;; Return the name of a package's job. - (compose string->symbol package-name)) + package-name) (define package->job (let ((base-packages (delete-duplicates (append-map (match-lambda - ((_ package _ ...) - (match (package-transitive-inputs package) - (((_ inputs _ ...) ...) - inputs)))) + ((_ package _ ...) + (match (package-transitive-inputs package) + (((_ inputs _ ...) ...) + inputs)))) (%final-inputs))))) (lambda (store package system) "Return a job for PACKAGE on SYSTEM, or #f if this combination is not valid." (cond ((member package base-packages) - (package-job store (symbol-append 'base. (job-name package)) + (package-job store (string-append "base." (job-name package)) package system)) ((supported-package? package system) (let ((drv (package-derivation store package system @@ -461,14 +420,19 @@ valid." packages))) #:select? (const #t))) ;include hidden packages -(define (arguments->manifests arguments) +(define (arguments->manifests arguments channels) "Return the list of manifests extracted from ARGUMENTS." + (define (channel-name->checkout name) + (let ((channel (find (lambda (channel) + (eq? (channel-name channel) name)) + channels))) + (channel-url channel))) + (map (match-lambda - ((input-name . relative-path) - (let* ((checkout (assq-ref arguments (string->symbol input-name))) - (base (assq-ref checkout 'file-name))) - (in-vicinity base relative-path)))) - (assq-ref arguments 'manifests))) + ((name . path) + (let ((checkout (channel-name->checkout name))) + (in-vicinity checkout path)))) + arguments)) (define (manifests->packages store manifests) "Return the list of packages found in MANIFESTS." @@ -484,100 +448,94 @@ valid." load-manifest) manifests)))) -(define (find-current-checkout arguments) - "Find the first checkout of ARGUMENTS that provided the current file. -Return #f if no such checkout is found." - (let ((current-root - (canonicalize-path - (string-append (dirname (current-filename)) "/..")))) - (find (lambda (argument) - (and=> (assq-ref argument 'file-name) - (lambda (name) - (string=? name current-root)))) arguments))) - ;;; -;;; Hydra entry point. +;;; Cuirass entry point. ;;; -(define (hydra-jobs store arguments) - "Return Hydra jobs." +(define (cuirass-jobs store arguments) + "Register Cuirass jobs." (define subset - (match (assoc-ref arguments 'subset) - ("core" 'core) ; only build core packages - ("hello" 'hello) ; only build hello - (((? string?) (? string?) ...) 'list) ; only build selected list of packages - ("manifests" 'manifests) ; only build packages in the list of manifests - (_ 'all))) ; build everything + (assoc-ref arguments 'subset)) (define systems (match (assoc-ref arguments 'systems) - (#f %hydra-supported-systems) + (#f %cuirass-supported-systems) ((lst ...) lst) ((? string? str) (call-with-input-string str read)))) - (define checkout - (or (find-current-checkout arguments) - (assq-ref arguments 'superior-guix-checkout))) + (define channels + (let ((channels (assq-ref arguments 'channels))) + (map sexp->channel channels))) + + (define guix + (find guix-channel? channels)) (define commit - (assq-ref checkout 'revision)) + (channel-commit guix)) (define source - (assq-ref checkout 'file-name)) + (channel-url guix)) ;; Turn off grafts. Grafting is meant to happen on the user's machines. (parameterize ((%graft? #f)) ;; Return one job for each package, except bootstrap packages. - (append-map (lambda (system) - (format (current-error-port) - "evaluating for '~a' (heap size: ~a MiB)...~%" - system - (round - (/ (assoc-ref (gc-stats) 'heap-size) - (expt 2. 20)))) - (invalidate-derivation-caches!) - (case subset - ((all) - ;; Build everything, including replacements. - (let ((all (all-packages)) - (job (lambda (package) - (package->job store package - system)))) - (append (filter-map job all) - (image-jobs store system) - (system-test-jobs store system - #:source source - #:commit commit) - (tarball-jobs store system) - (cross-jobs store system)))) - ((core) - ;; Build core packages only. - (append (map (lambda (package) - (package-job store (job-name package) - package system)) - %core-packages) - (cross-jobs store system))) - ((hello) - ;; Build hello package only. - (let ((hello (specification->package "hello"))) - (list (package-job store (job-name hello) hello system)))) - ((list) - ;; Build selected list of packages only. - (let* ((names (assoc-ref arguments 'subset)) - (packages (map specification->package names))) - (map (lambda (package) - (package-job store (job-name package) - package system)) - packages))) - ((manifests) - ;; Build packages in the list of manifests. - (let* ((manifests (arguments->manifests arguments)) - (packages (manifests->packages store manifests))) - (map (lambda (package) - (package-job store (job-name package) - package system)) - packages))) - (else - (error "unknown subset" subset)))) - systems))) + (append-map + (lambda (system) + (format (current-error-port) + "evaluating for '~a' (heap size: ~a MiB)...~%" + system + (round + (/ (assoc-ref (gc-stats) 'heap-size) + (expt 2. 20)))) + (invalidate-derivation-caches!) + (match subset + ('all + ;; Build everything, including replacements. + (let ((all (all-packages)) + (job (lambda (package) + (package->job store package system)))) + (append + (filter-map job all) + (image-jobs store system) + (system-test-jobs store system + #:source source + #:commit commit) + (tarball-jobs store system) + (cross-jobs store system)))) + ('core + ;; Build core packages only. + (append + (map (lambda (package) + (package-job store (job-name package) + package system)) + %core-packages) + (cross-jobs store system))) + ('guix + ;; Build Guix modules only. + (guix-jobs store systems + #:source source + #:commit commit)) + ('hello + ;; Build hello package only. + (let ((hello (specification->package "hello"))) + (list (package-job store (job-name hello) + hello system)))) + (('packages . rest) + ;; Build selected list of packages only. + (let ((packages (map specification->package rest))) + (map (lambda (package) + (package-job store (job-name package) + package system)) + packages))) + (('manifests . rest) + ;; Build packages in the list of manifests. + (let* ((manifests (arguments->manifests rest channels)) + (packages (manifests->packages store manifests))) + (map (lambda (package) + (package-job store (job-name package) + package system)) + packages))) + (else + (error "unknown subset" subset)))) + systems))) diff --git a/guix/packages.scm b/guix/packages.scm index 9305dabcec..1b76afd045 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -131,7 +131,7 @@ %supported-systems %hurd-systems - %hydra-supported-systems + %cuirass-supported-systems supported-package? &package-error @@ -351,7 +351,7 @@ name of its URI." ;; The GNU/Hurd systems for which support is being developed. '("i586-gnu" "i686-gnu")) -(define %hydra-supported-systems +(define %cuirass-supported-systems ;; This is the list of system types for which build machines are available. ;; ;; XXX: MIPS is unavailable in CI: -- cgit v1.2.3 From d2a97aa421e5501f3633bae490e4244680678612 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 06:55:07 -0500 Subject: gnu: gdk-pixbuf: Add a debug output. * gnu/packages/gtk.scm (gdk-pixbuf)[outputs]{debug}: New output. [arguments]{modules}: New argument. [phases]{shrink-runpath}: New phase. --- gnu/packages/gtk.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index c58226c5fa..096424e8e3 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -565,12 +565,15 @@ highlighting and other features typical of a source code editor.") (base32 "1rnlx9yfw970maxi2x6niaxmih5la11q1ilr7gzshz2kk585k0hm")))) (build-system meson-build-system) + (outputs '("out" "debug")) (arguments `(#:configure-flags '("-Dinstalled_tests=false") + #:modules ((guix build meson-build-system) + (guix build utils) + (srfi srfi-1)) #:phases (modify-phases %standard-phases - (add-after - 'unpack 'disable-failing-tests + (add-after 'unpack 'disable-failing-tests (lambda _ (substitute* "tests/meson.build" ;; XXX FIXME: This test fails on armhf machines with: @@ -581,8 +584,13 @@ highlighting and other features typical of a source code editor.") ;; ERROR:pixbuf-jpeg.c:74:test_type9_rotation_exif_tag: ;; assertion failed (error == NULL): Data differ ;; (gdk-pixbuf-error-quark, 0) - ((".*'pixbuf-jpeg'.*") "")) - #t)) + ((".*'pixbuf-jpeg'.*") "")))) + (replace 'shrink-runpath + ;; Workaround until core-updates is merged (this is fixed in commit + ;; ca080b3efb). + (lambda* (#:key outputs #:allow-other-keys #:rest args) + (apply (assoc-ref %standard-phases 'shrink-runpath) + `(,@args #:outputs ,(alist-delete "debug" outputs))))) ;; The slow tests take longer than the specified timeout. ,@(if (any (cute string=? <> (%current-system)) '("armhf-linux" "aarch64-linux")) -- cgit v1.2.3 From 47ee723731bccebd71008cdeb294ec6b02634575 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 06:57:04 -0500 Subject: gnu: gdk-pixbuf: Fix indentation. * gnu/packages/gtk.scm (gdk-pixbuf): Fix indentation. --- gnu/packages/gtk.scm | 120 +++++++++++++++++++++++++-------------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 096424e8e3..ddf8068cc2 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -554,71 +554,71 @@ highlighting and other features typical of a source code editor.") (define-public gdk-pixbuf (package - (name "gdk-pixbuf") - (version "2.40.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "1rnlx9yfw970maxi2x6niaxmih5la11q1ilr7gzshz2kk585k0hm")))) - (build-system meson-build-system) - (outputs '("out" "debug")) - (arguments - `(#:configure-flags '("-Dinstalled_tests=false") - #:modules ((guix build meson-build-system) - (guix build utils) - (srfi srfi-1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda _ - (substitute* "tests/meson.build" - ;; XXX FIXME: This test fails on armhf machines with: - ;; SKIP Not enough memory to load bitmap image - ;; ERROR: cve-2015-4491 - too few tests run (expected 4, got 2) - ((".*'cve-2015-4491'.*") "") - ;; XXX FIXME: This test fails with: - ;; ERROR:pixbuf-jpeg.c:74:test_type9_rotation_exif_tag: - ;; assertion failed (error == NULL): Data differ - ;; (gdk-pixbuf-error-quark, 0) - ((".*'pixbuf-jpeg'.*") "")))) - (replace 'shrink-runpath - ;; Workaround until core-updates is merged (this is fixed in commit - ;; ca080b3efb). - (lambda* (#:key outputs #:allow-other-keys #:rest args) - (apply (assoc-ref %standard-phases 'shrink-runpath) - `(,@args #:outputs ,(alist-delete "debug" outputs))))) - ;; The slow tests take longer than the specified timeout. - ,@(if (any (cute string=? <> (%current-system)) - '("armhf-linux" "aarch64-linux")) - '((replace 'check - (lambda _ - (invoke "meson" "test" "--timeout-multiplier" "5")))) - '())))) - (propagated-inputs - `(;; Required by gdk-pixbuf-2.0.pc - ("glib" ,glib) - ("libpng" ,libpng) - ;; Used for testing and required at runtime. - ("shared-mime-info" ,shared-mime-info))) - (inputs - `(("libjpeg" ,libjpeg-turbo) - ("libtiff" ,libtiff) - ("libx11" ,libx11))) - (native-inputs + (name "gdk-pixbuf") + (version "2.40.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1rnlx9yfw970maxi2x6niaxmih5la11q1ilr7gzshz2kk585k0hm")))) + (build-system meson-build-system) + (outputs '("out" "debug")) + (arguments + `(#:configure-flags '("-Dinstalled_tests=false") + #:modules ((guix build meson-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-tests + (lambda _ + (substitute* "tests/meson.build" + ;; XXX FIXME: This test fails on armhf machines with: + ;; SKIP Not enough memory to load bitmap image + ;; ERROR: cve-2015-4491 - too few tests run (expected 4, got 2) + ((".*'cve-2015-4491'.*") "") + ;; XXX FIXME: This test fails with: + ;; ERROR:pixbuf-jpeg.c:74:test_type9_rotation_exif_tag: + ;; assertion failed (error == NULL): Data differ + ;; (gdk-pixbuf-error-quark, 0) + ((".*'pixbuf-jpeg'.*") "")))) + (replace 'shrink-runpath + ;; Workaround until core-updates is merged (this is fixed in commit + ;; ca080b3efb). + (lambda* (#:key outputs #:allow-other-keys #:rest args) + (apply (assoc-ref %standard-phases 'shrink-runpath) + `(,@args #:outputs ,(alist-delete "debug" outputs))))) + ;; The slow tests take longer than the specified timeout. + ,@(if (any (cute string=? <> (%current-system)) + '("armhf-linux" "aarch64-linux")) + '((replace 'check + (lambda _ + (invoke "meson" "test" "--timeout-multiplier" "5")))) + '())))) + (propagated-inputs + `( ;; Required by gdk-pixbuf-2.0.pc + ("glib" ,glib) + ("libpng" ,libpng) + ;; Used for testing and required at runtime. + ("shared-mime-info" ,shared-mime-info))) + (inputs + `(("libjpeg" ,libjpeg-turbo) + ("libtiff" ,libtiff) + ("libx11" ,libx11))) + (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) ("glib" ,glib "bin") ; glib-mkenums, etc. ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc. - (synopsis "GNOME image loading and manipulation library") - (description - "GdkPixbuf is a library for image loading and manipulation developed + (synopsis "GNOME image loading and manipulation library") + (description + "GdkPixbuf is a library for image loading and manipulation developed in the GNOME project.") - (license license:lgpl2.0+) - (home-page "https://developer.gnome.org/gdk-pixbuf/"))) + (license license:lgpl2.0+) + (home-page "https://developer.gnome.org/gdk-pixbuf/"))) ;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends ;; on gdk-pixbuf, so this new varibale. Also, librsvg adds 90MiB to the -- cgit v1.2.3 From ca07cca4d85b213350e1a9c70d37558afb98be7b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 06:57:40 -0500 Subject: gnu: gdk-pixbuf+svg: Add a debug output. * gnu/packages/gtk.scm (gdk-pixbuf+svg): Fix typo in comment. [arguments]: Rewrite using 'substitute-keyword-arguments', so that all phases from the gdk-pixbuf package are reused. --- gnu/packages/gtk.scm | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index ddf8068cc2..8c23b41192 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -621,33 +621,31 @@ in the GNOME project.") (home-page "https://developer.gnome.org/gdk-pixbuf/"))) ;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends -;; on gdk-pixbuf, so this new varibale. Also, librsvg adds 90MiB to the +;; on gdk-pixbuf, so this new variable. Also, librsvg adds 90MiB to the ;; closure size. (define-public gdk-pixbuf+svg - (package (inherit gdk-pixbuf) + (package + (inherit gdk-pixbuf) (name "gdk-pixbuf+svg") (inputs `(("librsvg" ,librsvg) ,@(package-inputs gdk-pixbuf))) (arguments - '(#:configure-flags '("-Dinstalled-tests=false") - #:tests? #f ; tested by the gdk-pixbuf package already - #:phases - (modify-phases %standard-phases - (add-after 'install 'register-svg-loader - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (librsvg (assoc-ref inputs "librsvg")) - (loaders - (append - (find-files out "^libpixbufloader-.*\\.so$") - (find-files librsvg "^libpixbufloader-.*\\.so$"))) - (gdk-pixbuf-query-loaders - (string-append out "/bin/gdk-pixbuf-query-loaders"))) - (apply invoke - gdk-pixbuf-query-loaders - "--update-cache" - loaders))))))) + (substitute-keyword-arguments (package-arguments gdk-pixbuf) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'register-svg-loader + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (librsvg (assoc-ref inputs "librsvg")) + (loaders + (append + (find-files out "^libpixbufloader-.*\\.so$") + (find-files librsvg "^libpixbufloader-.*\\.so$"))) + (gdk-pixbuf-query-loaders + (string-append out "/bin/gdk-pixbuf-query-loaders"))) + (apply invoke gdk-pixbuf-query-loaders + "--update-cache" loaders)))))))) (synopsis "GNOME image loading and manipulation library, with SVG support"))) -- cgit v1.2.3 From 39cea33b3b0d7d234479c6defc95744559590e65 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 11:59:49 -0500 Subject: gnu: librsvg: Add a debug output. * gnu/packages/gnome.scm (librsvg): Add a debug output. (librsvg-next): Likewise. --- gnu/packages/gnome.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f7838f85a5..79172999c4 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3292,6 +3292,7 @@ dealing with different structured file formats.") (base32 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp")))) (build-system gnu-build-system) + (outputs '("out" "debug")) (arguments `(#:configure-flags (list "--disable-static" @@ -3364,7 +3365,7 @@ library.") '(begin (delete-file-recursively "vendor") #t)))) (build-system cargo-build-system) - (outputs '("out" "doc")) + (outputs '("out" "debug" "doc")) (arguments `(#:modules ((guix build cargo-build-system) -- cgit v1.2.3 From 95398c7139289607ffa91f630fd5f4d64984c1cf Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 12:37:22 -0500 Subject: gnu: librsvg-next: Have its name match its symbol. * gnu/packages/gnome.scm (librsvg-next)[name]: Change to librsvg-next. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 79172999c4..16723a29f2 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3350,7 +3350,7 @@ library.") (define-public librsvg-next (package - (name "librsvg") + (name "librsvg-next") (version "2.50.2") (source (origin (method url-fetch) -- cgit v1.2.3 From 4fb525dff294a7c5c81fcdefab60c38f719b6e95 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:31:22 -0500 Subject: gnu: weasyprint: Propagate gdk-pixbuf+svg rather than gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/pdf.scm (weasyprint)[propagated-inputs]: Replace gdk-pixbuf by gdk-pixbuf+svg. --- gnu/packages/pdf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index daea7ee8ad..2650d93b49 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -20,7 +20,7 @@ ;;; Copyright © 2020, 2021 Nicolas Goaziou ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Timotej Lazar -;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020, 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -1538,7 +1538,7 @@ manipulating PDF documents from the command line. It supports ("glib" ,glib) ("pango" ,pango))) (propagated-inputs - `(("gdk-pixbuf" ,gdk-pixbuf) + `(("gdk-pixbuf" ,gdk-pixbuf+svg) ("python-cairocffi" ,python-cairocffi) ("python-cairosvg" ,python-cairosvg) ("python-cffi" ,python-cffi) -- cgit v1.2.3 From fb6a1ff921199280e160e20966b665d2302497f1 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:33:07 -0500 Subject: gnu: appstream-glib: Propagate gdk-pixbuf+svg rather than gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/glib.scm (appstream-glib)[propagated-inputs]: Replace gdk-pixbuf by gdk-pixbuf+svg. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 9cc2b1b69e..8de6e198be 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2017 Petter ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Alex Vong -;;; Copyright © 2019 Maxim Cournoyer +;;; Copyright © 2019, 2021 Maxim Cournoyer ;;; Copyright © 2019 Giacomo Leidi ;;; Copyright © 2019, 2020 Marius Bakke ;;; Copyright © 2020 Nicolò Balzarotti @@ -1001,7 +1001,7 @@ Some codes examples can be find at: ("pkg-config" ,pkg-config))) (propagated-inputs `(("gcab" ,gcab) ; for .pc file - ("gdk-pixbuf" ,gdk-pixbuf) ; for .pc file + ("gdk-pixbuf" ,gdk-pixbuf+svg) ; for .pc file ("libuuid" ,util-linux "lib"))) ; for .pc file (inputs `(("glib" ,glib) -- cgit v1.2.3 From 099ca0e0b52bbb13b5e91a3526ae9285c49efeeb Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:34:33 -0500 Subject: gnu: libnotify: Propagate gdk-pixbuf+svg rather than gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/gnome.scm (libnotify)[propagated-inputs]: Replace gdk-pixbuf by gdk-pixbuf+svg. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 16723a29f2..e262f6cf2c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3042,7 +3042,7 @@ configuring CUPS.") #t))))) (propagated-inputs `(;; In Requires of libnotify.pc. - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("glib" ,glib))) (inputs `(("gtk+" ,gtk+) -- cgit v1.2.3 From 22476d37837207ca1fb68d077f4d3de0b531e56c Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:35:00 -0500 Subject: gnu: libgsf: Do not propagate gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/gnome.scm (libgsf)[propagated-inputs]{gdk-pixbuf}: Move to... [inputs] ... here. --- gnu/packages/gnome.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e262f6cf2c..c61b141eb6 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3264,11 +3264,11 @@ XML/CSS rendering engine.") ("perl" ,perl) ("perl-xml-parser" ,perl-xml-parser))) (inputs - `(("zlib" ,zlib) + `(("gdk-pixbuf" ,gdk-pixbuf) + ("zlib" ,zlib) ("bzip2" ,bzip2))) (propagated-inputs - `(("gdk-pixbuf" ,gdk-pixbuf) - ("glib" ,glib) + `(("glib" ,glib) ("libxml2" ,libxml2))) (home-page "https://www.gnome.org/projects/libgsf") (synopsis "GNOME's Structured File Library") -- cgit v1.2.3 From d8919224eda6fabc46dd8ea6dd3ac449eb61a7a8 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:35:32 -0500 Subject: gnu: librsvg: Do not propagate gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/gnome.scm (librsvg)[propagated-inputs]: Remove gdk-pixbuf. [inputs]: Add gdk-pixbuf+svg. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c61b141eb6..56de2e5881 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3335,11 +3335,11 @@ dealing with different structured file formats.") ("libcroco" ,libcroco) ("bzip2" ,bzip2) ("libgsf" ,libgsf) + ("gdk-pixbuf" ,gdk-pixbuf) ("libxml2" ,libxml2))) (propagated-inputs ;; librsvg-2.0.pc refers to all of that. `(("cairo" ,cairo) - ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib))) (home-page "https://wiki.gnome.org/LibRsvg") (synopsis "Render SVG files using Cairo") -- cgit v1.2.3 From 26487f6f8ab6cb3423a560f8dffe19a2708edbcc Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:36:45 -0500 Subject: gnu: librsvg-next: Do not propagate gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/gnome.scm (librsvg-next)[propagated-inputs]: Remove gdk-pixbuf. [inputs]: Add gdk-pixbuf+svg. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 56de2e5881..5620b32b11 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3513,6 +3513,7 @@ library.") `(("bzip2" ,bzip2) ("fontconfig" ,fontconfig) ("freetype" ,freetype) + ("gdk-pixbuf" ,gdk-pixbuf) ("harfbuzz" ,harfbuzz) ("libcroco" ,libcroco) ("libgsf" ,libgsf) @@ -3520,7 +3521,6 @@ library.") ("pango" ,pango))) (propagated-inputs `(("cairo" ,cairo) - ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib))) (synopsis "SVG rendering library") (description "Librsvg is a library to render SVG images to Cairo surfaces. -- cgit v1.2.3 From 5c467b2f222960563384bfbc9a5c320fd3e1e9c0 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:37:57 -0500 Subject: gnu: libgweather: Propagate gdk-pixbuf+svg rather than gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/gnome.scm (libgweather)[propagated-inputs]: Replace gdk-pixbuf by gdk-pixbuf+svg. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5620b32b11..5905e5da93 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5424,7 +5424,7 @@ service via the system message bus.") ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and ;; libsoup. `(("gtk+" ,gtk+) - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("libxml2" ,libxml2) ("libsoup" ,libsoup) ("geocode-glib" ,geocode-glib))) -- cgit v1.2.3 From 5e02d1a2b20e5ddaeb9d8b70735d0990bb05b691 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:38:27 -0500 Subject: gnu: cogl: Propagate gdk-pixbuf+svg rather than gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/gnome.scm (cogl)[propagated-inputs]: Replace gdk-pixbuf by gdk-pixbuf+svg. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5905e5da93..dd733bb79a 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5689,7 +5689,7 @@ throughout GNOME for API documentation).") ("pkg-config" ,pkg-config))) (propagated-inputs `(("glib" ,glib) - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("libx11" ,libx11) ("libxext" ,libxext) ("libxfixes" ,libxfixes) -- cgit v1.2.3 From ad6a9507c47ba2c69c12542d3597a268d078675d Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:38:55 -0500 Subject: gnu: mutter: Propagate gdk-pixbuf+svg rather than gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/gnome.scm (mutter)[propagated-inputs]: Replace gdk-pixbuf by gdk-pixbuf+svg. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index dd733bb79a..7a8ee103c1 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -7367,7 +7367,7 @@ to display dialog boxes from the commandline and shell scripts.") ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these: ("atk" ,atk) ("cairo" ,cairo) - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("glib" ,glib) ("json-glib" ,json-glib) ("libinput" ,libinput) -- cgit v1.2.3 From 42231bc15df441d6426dec57283aca9ae7a03fcf Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Mar 2021 17:39:13 -0500 Subject: gnu: cheese: Propagate gdk-pixbuf+svg rather than gdk-pixbuf. Propagating gdk-pixbuf rather than gdk-pixbuf+svg is dangerous as it clashes with GTK+'s own gdk-pixbuf+svg propagation. * gnu/packages/gnome.scm (cheese)[propagated-inputs]: Replace gdk-pixbuf by gdk-pixbuf+svg. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7a8ee103c1..f49808392c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -10394,7 +10394,7 @@ photo-booth-like software, such as Cheese.") ("clutter-gst" ,clutter-gst) ("clutter-gtk" ,clutter-gtk) ("libcanberra" ,libcanberra) - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("glib" ,glib) ("gstreamer" ,gstreamer))) (inputs -- cgit v1.2.3 From 465b27ebb083188437289b741719531c29263a03 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 14 Mar 2021 14:02:45 -0400 Subject: gnu: python-sphinx: Update to 3.5.2. * gnu/packages/sphinx.scm (python-sphinx): Update to 3.5.2. --- gnu/packages/sphinx.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index e046885a6b..557e4d5ac7 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -50,14 +50,14 @@ (define-public python-sphinx (package (name "python-sphinx") - (version "3.3.1") + (version "3.5.2") (source (origin (method url-fetch) (uri (pypi-uri "Sphinx" version)) (sha256 (base32 - "0023vc2i29pjxmvdqbz1wdbi7gbj56y1br1b2z8h8wa44li5k38y")))) + "1zx5ik3rqbawyz52lidljqkdgv2418cwnl67jxf26sbb9g1gqb37")))) (build-system python-build-system) (arguments `(#:phases -- cgit v1.2.3 From 8e14863e53e351a935912028ae5b5d36894727ab Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 18 Feb 2021 12:30:38 +0100 Subject: .guix-authorizations: Add lle_bout. * .guix-authorizations: Add lle_bout to the committers. (cherry picked from commit 65fb3a3eb9a759e3dba18e78113e80d7e5b353f4) Signed-off-by: Marius Bakke --- .guix-authorizations | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.guix-authorizations b/.guix-authorizations index 956bf351a7..023d39fc45 100644 --- a/.guix-authorizations +++ b/.guix-authorizations @@ -86,6 +86,8 @@ (;; primary: "4F71 6F9A 8FA2 C80E F1B5 E1BA 5E35 F231 DE1A C5E0" "B051 5948 F1E7 D3C1 B980 38A0 2646 FA30 BACA 7F08" (name "lfam")) + ("148B CB8B D80B FB16 B1DE 0E91 45A8 B1E8 6BCD 10A6" + (name "lle_bout")) ("2AE3 1395 932B E642 FC0E D99C 9BED 6EDA 32E5 B0BC" (name "lsl88")) ("8887 84C4 1459 ACCB 83E7 E84C 634C 6E89 79FA BEC2" -- cgit v1.2.3 From 6a2546f92d07df04e5d700924edd027ed1e2ef11 Mon Sep 17 00:00:00 2001 From: Léo Le Bouter Date: Wed, 24 Mar 2021 00:01:52 +0100 Subject: gnu: python-pygments: Update to 2.8.1 [security fixes]. Fixes at least CVE-2021-20270. * gnu/packages/python-xyz.scm (python-pygments): Update to 2.8.1. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index cc21caa721..b50683f943 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3619,14 +3619,14 @@ text styles of documentation.") (define-public python-pygments (package (name "python-pygments") - (version "2.7.3") + (version "2.8.1") (source (origin (method url-fetch) (uri (pypi-uri "Pygments" version)) (sha256 (base32 - "05mps9r966r3dpqw6zrs1nlwjdf5y4960hl9m7abwb3qyfnarwyc")))) + "153zyxigm879sk2n71lfv03y2pgxb7dl0dlsbwkz9aydxnkf2mi6")))) (build-system python-build-system) (arguments ;; FIXME: Tests require sphinx, which depends on this. -- cgit v1.2.3 From bb811a1b63b7c24b9b798616054dfc108fd87a9f Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 12 Apr 2021 11:36:06 +0200 Subject: gnu: gstreamer: Update to 1.18.4. * gnu/packages/gstreamer.scm (gstreamer)[version]: Update to 1.18.4. [propagated-inputs]: Add elfutils and libunwind. [synopsis]: Change to "Multimedia framework". [native-inputs]: Add bash-completion and gettext-minimal. [inputs]: Add gmp, libcap and gsl. Co-authored-by: Leo Prikler --- gnu/packages/gstreamer.scm | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 9ec737beb2..a13e7879dd 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -40,6 +40,7 @@ #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages cdrom) #:use-module (gnu packages curl) @@ -62,7 +63,9 @@ #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) + #:use-module (gnu packages maths) #:use-module (gnu packages mp3) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages ocr) @@ -461,16 +464,16 @@ the GStreamer multimedia framework.") (define-public gstreamer (package (name "gstreamer") - (version "1.18.2") + (version "1.18.4") (source (origin - (method url-fetch) - (uri (string-append - "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-" - version ".tar.xz")) - (sha256 - (base32 - "0ijlmvr660m8zn09xlmnq1ajrziqsivp2hig5a9mabhcjx7ypkb6")))) + (method url-fetch) + (uri (string-append + "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-" + version ".tar.xz")) + (sha256 + (base32 + "1igv9l4hm21kp1jmlwlagzs7ly1vaxv1sbda29q8247372dwkvls")))) (build-system meson-build-system) (arguments `(#:phases @@ -487,24 +490,37 @@ the GStreamer multimedia framework.") (("tcase_add_test \\(tc_chain, test_stress_cleanup_unschedule.*") "") (("tcase_add_test \\(tc_chain, test_stress_reschedule.*") - "")) + "")) #t))) '())))) - (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc. + (propagated-inputs + ;; In gstreamer-1.0.pc: + ;; Requires: glib-2.0, gobject-2.0 + ;; Requires.private: gmodule-no-export-2.0 libunwind libdw + `(("elfutils" ,elfutils) ; libdw + ("glib" ,glib) + ("libunwind" ,libunwind))) (native-inputs - `(("bison" ,bison) + `(("bash-completion" ,bash-completion) + ("bison" ,bison) ("flex" ,flex) + ("gettext" ,gettext-minimal) ("glib" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("perl" ,perl) ("pkg-config" ,pkg-config) ("python-wrapper" ,python-wrapper))) + (inputs + `(("gmp" ,gmp) + ("libcap" ,libcap) + ;; For tests. + ("gsl" ,gsl))) (native-search-paths (list (search-path-specification (variable "GST_PLUGIN_SYSTEM_PATH") (files '("lib/gstreamer-1.0"))))) (home-page "https://gstreamer.freedesktop.org/") - (synopsis "Multimedia library") + (synopsis "Multimedia framework") (description "GStreamer is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis -- cgit v1.2.3 From b8f5b74bdb7518c9996ffce852338ed0fc1a7c6d Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 12 Apr 2021 11:36:07 +0200 Subject: gnu: gst-plugins-base: Update to 1.18.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gstreamer.scm (gst-plugins-base): Update to 1.18.4. Co-authored-by: 宋文武 --- gnu/packages/gstreamer.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index a13e7879dd..cc8b29adcf 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -537,7 +537,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.18.2") + (version "1.18.4") (source (origin (method url-fetch) @@ -545,7 +545,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "1b05kg46azrxxvq42c71071lfsnc34pw4vynnkczdqi6g0gzn16x")))) + "08w3ivbc6n4vdds2ap6q7l8zdk9if8417nznyqidf0adm0lk5r99")))) (build-system meson-build-system) (propagated-inputs `(("glib" ,glib) ;required by gstreamer-sdp-1.0.pc -- cgit v1.2.3 From beab681b66017ca7ce71a9541021d240ee85398c Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 12 Apr 2021 11:36:08 +0200 Subject: gnu: gst-plugins-base: Enable more features. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gstreamer.scm (gst-plugins-base) [inputs]: Add graphene, iso-codes, libgudev, libjpeg-turbo, libpng, libvisual, mesa, wayland-protocols, wayland. [native-inputs]: Add gettext-minimal and xorg-server-for-test. [arguments]: Remove '-Dgl=disabled' from configure flags. Add pre-check phase. Co-authored-by: Leo Prikler Co-authored-by: 宋文武 --- gnu/packages/gstreamer.scm | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index cc8b29adcf..54bc5dfa22 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -559,6 +559,7 @@ This package provides the core library and elements.") '() `(("orc" ,orc))))) ;required by gstreamer-audio-1.0.pc (inputs + ;; TODO: Add libvorbisidec `(("cdparanoia" ,cdparanoia) ("pango" ,pango) ("libogg" ,libogg) @@ -569,21 +570,43 @@ This package provides the core library and elements.") ("libXext" ,libxext) ("libxv" ,libxv) ("alsa-lib" ,alsa-lib) - ("opus" ,opus))) + ("opus" ,opus) + ("graphene" ,graphene) + ("iso-codes" ,iso-codes) + ("libgudev" ,libgudev) + ("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libvisual" ,libvisual) + ("mesa" ,mesa) + ("wayland-protocols" ,wayland-protocols) + ("wayland" ,wayland))) (native-inputs - `(("pkg-config" ,pkg-config) - ("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("python-wrapper" ,python-wrapper))) + `(("pkg-config" ,pkg-config) + ("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("python-wrapper" ,python-wrapper) + ("gettext" ,gettext-minimal) + ("xorg-server" ,xorg-server-for-tests))) (arguments - `(#:configure-flags '("-Dgl=disabled") - #:phases + `(#:phases (modify-phases %standard-phases ,@%common-gstreamer-phases (add-before 'configure 'patch (lambda _ (substitute* "tests/check/libs/pbutils.c" (("/bin/sh") (which "sh"))) + #t)) + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 +extension GLX &") + (setenv "DISPLAY" ":1") + ;; Tests write to $HOME. + (setenv "HOME" (getcwd)) + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getcwd)) + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") #t))))) (home-page "https://gstreamer.freedesktop.org/") (synopsis -- cgit v1.2.3 From 8b83f1b4ea613576014d1a822d671e9a25e293ea Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 12 Apr 2021 11:36:09 +0200 Subject: gnu: gst-plugins-good: Update to 1.18.4. * gnu/packages/gstreamer.scm (gst-plugins-good)[version]: Update to 1.18.4. Co-authored-by: Leo Prikler --- gnu/packages/gstreamer.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 54bc5dfa22..bc07b664b2 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -618,7 +618,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.18.2") + (version "1.18.4") (source (origin (method url-fetch) @@ -628,7 +628,7 @@ for the GStreamer multimedia library.") name "-" version ".tar.xz")) (patches (search-patches "gst-plugins-good-fix-test.patch")) (sha256 - (base32 "1929nhjsvbl4bw37nfagnfsnxz737cm2x3ayz9ayrn9lwkfm45zp")))) + (base32 "1c1rpq709cy8maaykyn1n0kckj9c6fl3mhvixkk6xmdwkcx0xrdn")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas -- cgit v1.2.3 From f8899840f8a7f325c0db5f1f48f496a572908e1a Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 12 Apr 2021 11:36:10 +0200 Subject: gnu: gst-plugins-ugly: Update to 1.18.4. * gnu/packages/gstreamer.scm (gst-plugins-upgly)[version]: Update to 1.18.4. Co-authored-by: Leo Prikler --- gnu/packages/gstreamer.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index bc07b664b2..ab715e0f22 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -817,7 +817,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.18.2") + (version "1.18.4") (source (origin (method url-fetch) @@ -825,7 +825,7 @@ par compared to the rest.") (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1nwbcv5yaib3d8icvyja3zf6lyjf5zf1hndbijrhj8j7xlia0dx3")))) + (base32 "0g6i4db1883q3j0l2gdv46fcqwiiaw63n6mhvsfcms1i1p7g1391")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas -- cgit v1.2.3 From 30e08fa925783fd38b8e0c4e83351d3e1153ff82 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 12 Apr 2021 11:36:11 +0200 Subject: gnu: gst-libav: Update to 1.18.4. * gnu/packages/gstreamer.scm (gst-libav)[version]: Update to 1.18.4. Co-authored-by: Leo Prikler --- gnu/packages/gstreamer.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index ab715e0f22..1af9536001 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -876,7 +876,7 @@ think twice about shipping them.") (define-public gst-libav (package (name "gst-libav") - (version "1.18.2") + (version "1.18.4") (source (origin (method url-fetch) @@ -885,7 +885,7 @@ think twice about shipping them.") "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "0jbzams9ggk3sq9ywv4gsl9rghyn203l2582m6l5c1sz9ka9m5in")))) + (base32 "15n3x3vhshqa3icw93g4vqmqd46122anzqvfxwn6q8famlxlcjil")))) (build-system meson-build-system) (native-inputs `(("perl" ,perl) -- cgit v1.2.3 From 8050d5e4826d47c1c353d65065b3e5d5a180f569 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 12 Apr 2021 11:36:12 +0200 Subject: gnu: gst-plugins-bad: Update to 1.18.4. * gnu/packages/gstreamer.scm (gst-plugins-bad)[version]: Update to 1.18.4. [arguments](glib-or-gtk): New argument. [phases](adjust-tests): Disable line21. [phases](pre-check): New phase. [propagated-inputs]: Add gstreamer. [native-inputs]: Add gettext-minimal, gsettings-desktop-schemas, perl and xorg-server-for-tests. Replace python with python-wrapper. Co-authored-by: Leo Prikler --- gnu/packages/gstreamer.scm | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 1af9536001..008161abd6 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -709,17 +709,18 @@ model to base your own plug-in on, here it is.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.18.2") + (version "1.18.4") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "06ildd4rl6cynirv3p00d2ddf5is9svj4i7mkahldzhq24pq5mca")))) + "0py8k4pbalm9mxkpjbjxis0gp7g74wg5g4yax5q8rccmany0ds3l")))) (build-system meson-build-system) (arguments - `(#:phases + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases ,@(if (string-prefix? "arm" (or (%current-target-system) @@ -746,21 +747,39 @@ model to base your own plug-in on, here it is.") ;; FIXME: Why is this failing. ((".*elements/dash_mpd\\.c.*") "") + ((".*elements/line21\\.c.*") "") ;; These tests are flaky and occasionally time out: ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932 ((".*elements/curlhttpsrc\\.c.*") "") ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412 ((".*elements/dtls\\.c.*") "")) - #t)))))) + #t))) + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 +extension GLX &") + (setenv "DISPLAY" ":1") + ;; Tests write to $HOME. + (setenv "HOME" (getcwd)) + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getcwd)) + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) (propagated-inputs - `(("gst-plugins-base" ,gst-plugins-base))) + `(("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base))) (native-inputs - `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc. + `(("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") ; for glib-mkenums, etc. ("gobject-introspection" ,gobject-introspection) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gst-plugins-good" ,gst-plugins-good) ;for tests + ("perl" ,perl) ("pkg-config" ,pkg-config) - ("python" ,python))) + ("python" ,python-wrapper) + ("xorg-server" ,xorg-server-for-tests))) (inputs ;; XXX: The following dependencies are missing: ;; vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts, -- cgit v1.2.3 From ffc8b9e39e97a9b7e793dcf43d7758af7424ca22 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 12 Apr 2021 11:36:13 +0200 Subject: gnu: gst-plugins-bad: Add missing inputs to enable more features. * gnu/packages/gstreamer.scm (gst-plugins-bad)[inputs]: Add bzip2, cairo, chromaprint, directfb, faac, flite, glib, glib-networking, glu, gsm, iqa, lcms, libaom, libbs2b, libdc1394, libdca, libde265, libdrm, libexif, libfdk, libgme, libmfx, libmms, libmpcdec, libnice, libofa, libopenmpt, libtiff, libva, libx11, libxcb, libxext, libxshm, lilv, lv2, mjpegtools, nettle, openh264, opensles, pango, rtmpdump, sbc, sctp, spandsp, srt, svt-hevc, transcode, v4l-utils, vo-aacenc, vo-amrwbenc, vulkan-headers, vulkan-loader, webrtc-audio-processing, wildmidi, wpebackend-fdo, zbar and zxing-cpp. [phases](adjust-tests): Disable msdkh264enc and svthevcenc tests. Reenable line21. Co-authored-by: Leo Prikler --- gnu/packages/gstreamer.scm | 89 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 76 insertions(+), 13 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 008161abd6..e4d7376cc3 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -37,6 +37,7 @@ #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages aidc) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) @@ -50,6 +51,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -58,6 +60,7 @@ #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages image-processing) #:use-module (gnu packages iso-codes) #:use-module (gnu packages java) #:use-module (gnu packages libunwind) @@ -66,10 +69,13 @@ #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages music) #:use-module (gnu packages ncurses) + #:use-module (gnu packages nettle) #:use-module (gnu packages networking) #:use-module (gnu packages ocr) #:use-module (gnu packages perl) + #:use-module (gnu packages photo) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages qt) #:use-module (gnu packages rdf) @@ -87,6 +93,8 @@ #:use-module (gnu packages telephony) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) + #:use-module (gnu packages vulkan) + #:use-module (gnu packages webkit) #:use-module (gnu packages assembly) #:use-module (gnu packages xml)) @@ -745,9 +753,12 @@ model to base your own plug-in on, here it is.") (string-append "'GST_PLUGIN_SYSTEM_PATH_1_0', '" gst-plugins-good "/lib/gstreamer-1.0'")) + ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136 + ((".*elements/msdkh264enc\\.c.*") "") + ((".*elements/svthevcenc\\.c.*") "") + ;; FIXME: Why is this failing. ((".*elements/dash_mpd\\.c.*") "") - ((".*elements/line21\\.c.*") "") ;; These tests are flaky and occasionally time out: ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932 @@ -781,51 +792,103 @@ model to base your own plug-in on, here it is.") ("python" ,python-wrapper) ("xorg-server" ,xorg-server-for-tests))) (inputs - ;; XXX: The following dependencies are missing: - ;; vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts, - ;; faac, flite, libgsm, libde265, libmms, libmimic, mjpegtools, - ;; mpeg2enc, libofa, opencv, openh264, openni2, libtimemmgr, wildmidi, - ;; openspc, gme, sbc, schroedinger, zbar, librtmp, spandsp `(("bluez" ,bluez) + ("bzip2" ,bzip2) + ("cairo" ,cairo) + ;; ("ccextractor" ,ccextractor) + ("chromaprint" ,chromaprint) ("curl" ,curl) + ("directfb" ,directfb) + ;;("dssim" ,dssim) + ("faac" ,faac) ("faad2" ,faad2) + ("flite" ,flite) ("fluidsynth" ,fluidsynth) + ("glib" ,glib) + ("glib-networking" ,glib-networking) + ("glu" ,glu) + ("gsm" ,gsm) ("gtk+" ,gtk+) + ("iqa" ,iqa) ("ladspa" ,ladspa) + ("lcms" ,lcms) + ("libaom" ,libaom) ("libass" ,libass) + ("libbs2b" ,libbs2b) + ("libdc1394" ,libdc1394) + ("libdca" ,libdca) + ("libde265" ,libde265) + ("libdrm" ,libdrm) ("libdvdnav" ,libdvdnav) ("libdvdread" ,libdvdread) + ("libexif" ,libexif) + ("libfdk" ,libfdk) ("libgcrypt" ,libgcrypt) + ("libgme" ,libgme) ("libgudev" ,libgudev) ("libkate" ,libkate) + ("libmfx" ,mediasdk) + ("libmms" ,libmms) ("libmodplug" ,libmodplug) + ("libmpcdec" ,libmpcdec) ("libnice" ,libnice) + ("libofa" ,libofa) + ("libopenmpt" ,libopenmpt) ("librsvg" ,librsvg) ("libsndfile" ,libsndfile) ("libsrtp" ,libsrtp) ("libssh2" ,libssh2) + ("libtiff" ,libtiff) ("libusb" ,libusb) + ("libva" ,libva) ("libvdpau" ,libvdpau) ("libwebp" ,libwebp) + ("libx11" ,libx11) + ("libxcb" ,libxcb) + ("libxext" ,libxext) + ("libxkbcommon" ,libxkbcommon) ("libxml2" ,libxml2) + ("libxshm" ,libxshmfence) + ("lilv" ,lilv) ("lrdf" ,lrdf) + ("lv2" ,lv2) ("mesa" ,mesa) + ("mjpegtools" ,mjpegtools) ("neon" ,neon) + ("nettle" ,nettle) ("openal" ,openal) + ;; ("opencv" ,opencv) ("openexr" ,openexr) + ("openh264" ,openh264) ("openjpeg" ,openjpeg) + ;; ("openni2" ,openni2) + ("opensles" ,opensles) ("openssl" ,openssl) ("opus" ,opus) ("orc" ,orc) - ;("qtbase" ,qtbase) - ;("qtdeclarative" ,qtdeclarative) - ;("qtx11extras" ,qtx11extras) + ("pango" ,pango) + ("rtmp" ,rtmpdump) + ("sbc" ,sbc) + ("sctp" ,lksctp-tools) ("soundtouch" ,soundtouch) - ;; GStreamer is not yet compatible with srt > 1.4.1. - ("srt" ,srt-1.4.1) + ("spandsp" ,spandsp) + ("srt" ,srt) + ("svthevcenc" ,svt-hevc) + ("tinyalsa" ,tinyalsa) + ("transcode" ,transcode) + ("v4l" ,v4l-utils) + ("voaacenc", vo-aacenc) + ("voamrwbenc" ,vo-amrwbenc) + ("vulkan-headers" ,vulkan-headers) + ("vulkan-loader" ,vulkan-loader) ("x265" ,x265) - ("webrtc-audio-processing" ,webrtc-audio-processing) - ("wayland" ,wayland))) + ("wayland" ,wayland) + ("webrtcdsp" ,webrtc-audio-processing) + ("wildmidi" ,wildmidi) + ("wpebackend-fdo" ,wpebackend-fdo) + ;; ("wpewebkit" ,wpewebkit) + ("zbar" ,zbar) + ("zxing" ,zxing-cpp))) (home-page "https://gstreamer.freedesktop.org/") (synopsis "Plugins for the GStreamer multimedia library") (description -- cgit v1.2.3 From afa439ebf96c7694969da9840cd9688fcbb6d4f9 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 12 Apr 2021 11:36:14 +0200 Subject: gnu: gst-editing-services: Update to 1.18.4. * gnu/packages/gstreamer.scm (gst-editing-services)[version]: Update to 1.18.4. [arguments](glib-or-gtk): New argument. [inputs]: Add glib, glib-networking and gtk+. Move gst-plugins-base to ... [propagated-inputs]: ... here. Add gstreamer. [native-inputs]: Replace python with python-wrapper. Co-authored-by: Leo Prikler --- gnu/packages/gstreamer.scm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index e4d7376cc3..6f649238d2 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -988,7 +988,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") (define-public gst-editing-services (package (name "gst-editing-services") - (version "1.18.2") + (version "1.18.4") (source (origin (method url-fetch) (uri (string-append @@ -996,15 +996,21 @@ decoders, muxers, and demuxers provided by FFmpeg.") "gst-editing-services-" version ".tar.xz")) (sha256 (base32 - "0pv2k8zlpn3vv2sdlspi3m63ixcwzi90pjly2ypbkg59ab97rb15")))) + "010xg960qsh5dwmf0y9l1q13h0cymmrgapzla2zsw66ylxqbi1s6")))) (build-system meson-build-system) (arguments ;; FIXME: 16/22 failing tests. `(#:tests? #f + #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases))) + (propagated-inputs + `(("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base))) (inputs - `(("gst-plugins-base" ,gst-plugins-base) + `(("glib" ,glib) + ("glib-networking" ,glib-networking) + ("gtk+" ,gtk+) ("libxml2" ,libxml2))) (native-inputs `(("flex" ,flex) @@ -1014,7 +1020,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") ("gst-plugins-good" ,gst-plugins-good) ("perl" ,perl) ("pkg-config" ,pkg-config) - ("python" ,python))) + ("python" ,python-wrapper))) (home-page "https://gstreamer.freedesktop.org/") (synopsis "GStreamer library for non-linear editors") (description -- cgit v1.2.3 From aeb0ab30ba9fd2d935a8d877f5802f3c871805fa Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Tue, 27 Apr 2021 05:23:33 -0400 Subject: gnu: python-pycairo: Update to 1.20.0. * gnu/packages/gtk.scm (python-pycairo)[version]: Update to 1.20.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index dd92cd649c..55dd29a81f 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1479,7 +1479,7 @@ printing and other features typical of a source code editor.") (define-public python-pycairo (package (name "python-pycairo") - (version "1.19.1") + (version "1.20.0") (source (origin (method url-fetch) @@ -1487,7 +1487,7 @@ printing and other features typical of a source code editor.") version "/pycairo-" version ".tar.gz")) (sha256 (base32 - "111fav9m1iagw3nh2ws2vzkjh34r97yl7rdlpvsngsqg521k251c")))) + "1326aa2ybhhhrvz3n4p22z5sic25m016ddb5yq0hvbprnw6a35an")))) (build-system python-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From 13bd2db67c42ce3fed4b60b90e25b2facc476d32 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Tue, 27 Apr 2021 05:23:34 -0400 Subject: gnu: python-pygobject: Update to 3.40.1. * gnu/packages/glib.scm (python-pygobject)[version]: Update to 3.40.1. [native-inputs]: Add python-wrapper. --- gnu/packages/glib.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 88b5831a6d..527d049ca0 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -790,7 +790,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.34.0") + (version "3.40.1") (source (origin (method url-fetch) @@ -799,7 +799,7 @@ useful for C++.") "/pygobject-" version ".tar.xz")) (sha256 (base32 - "06i7ynnbvgpz0gw09zsjbvhgcp5qz4yzdifw27qjwdazg2mckql7")) + "0d80g5kgf2i9cginyhalvb7ibfk9g30yilqzmcsw6h6byj8xbih0")) (modules '((guix build utils))) (snippet '(begin @@ -814,7 +814,8 @@ useful for C++.") (native-inputs `(("glib-bin" ,glib "bin") ("pkg-config" ,pkg-config) - ("python-pytest" ,python-pytest))) + ("python-pytest" ,python-pytest) + ("python-wrapper" ,python-wrapper))) ; For patching shebangs (inputs `(("python" ,python) ("python-pycairo" ,python-pycairo) -- cgit v1.2.3 From 1ebb6d6735c13d164fc53c90c74412eb922d8907 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 22 May 2021 14:30:15 +0200 Subject: ci: Add derivation inputs. * gnu/ci.scm (derivation->job): Add the derivation inputs to the job association list. --- gnu/ci.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/ci.scm b/gnu/ci.scm index 5ab1b51d82..0c1387e98a 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -87,6 +87,9 @@ MAX-SILENT-TIME and TIMEOUT are build options passed to the daemon when building the derivation." `((#:job-name . ,name) (#:derivation . ,(derivation-file-name drv)) + (#:inputs . ,(map (compose derivation-file-name + derivation-input-derivation) + (derivation-inputs drv))) (#:outputs . ,(filter-map (lambda (res) (match res -- cgit v1.2.3 From 280535660c507db986f1d4ba8fb509f574119630 Mon Sep 17 00:00:00 2001 From: Solene Rapenne Date: Wed, 26 May 2021 23:47:24 +0200 Subject: gnu: e2fsprogs: Update to 1.46.2. * gnu/packages/linux.scm (e2fsprogs): Update to 1.46.2. Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 55ba22bd46..2475912796 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -53,6 +53,7 @@ ;;; Copyright © 2020 Zhu Zihao ;;; Copyright © 2020 David Dashyan ;;; Copyright © 2020 pukkamustard +;;; Copyright © 2021 Solene Rapenne ;;; ;;; This file is part of GNU Guix. ;;; @@ -1888,7 +1889,7 @@ slabtop, tload, top, vmstat, w, watch and sysctl.") (define-public e2fsprogs (package (name "e2fsprogs") - (version "1.45.6") + (version "1.46.2") (source (origin (method url-fetch) (uri (string-append @@ -1897,7 +1898,7 @@ slabtop, tload, top, vmstat, w, watch and sysctl.") "e2fsprogs-" version ".tar.xz")) (sha256 (base32 - "0mj2yizwygs7xww8jfy5mxjn8ww4pvc0b1hg1p2vsnirailsx9zz")))) + "0s216nn0lv7s278v933a44fv1ibi900c94743gpp2kn9jlr0kai3")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux "lib"))) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From d02c1d0f8382d14b0df3e3e4f4d5fe0a3956d89f Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 16 Jun 2021 21:56:14 -0400 Subject: gnu: farstream: Enable tests. This patch depends on gstreamer's update to 1.18.4. * gnu/packages/patches/farstream-gupnp.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/freedesktop.scm (farstream)[patches]: Use it. [arguments](tests?): Remove argument. [phases](disable-timeout-tests): New phase. --- gnu/local.mk | 1 + gnu/packages/freedesktop.scm | 16 +++- gnu/packages/patches/farstream-gupnp.patch | 140 +++++++++++++++++++++++++++++ 3 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/farstream-gupnp.patch diff --git a/gnu/local.mk b/gnu/local.mk index b69be3a179..21d1f66413 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -990,6 +990,7 @@ dist_patch_DATA = \ %D%/packages/patches/exercism-disable-self-update.patch \ %D%/packages/patches/extempore-unbundle-external-dependencies.patch \ %D%/packages/patches/extundelete-e2fsprogs-1.44.patch \ + %D%/packages/patches/farstream-gupnp.patch \ %D%/packages/patches/farstream-make.patch \ %D%/packages/patches/fastcap-mulGlobal.patch \ %D%/packages/patches/fastcap-mulSetup.patch \ diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 40d41350ac..fdb046a5f3 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -215,12 +215,13 @@ application-centers for distributions.") (sha256 (base32 "1sd8syldyq6bphfdm129s3gq554vfv7vh1vcwzk48gjryf101awk")) (patches - (search-patches "farstream-make.patch")))) + (search-patches + "farstream-gupnp.patch" ;for test 'transmitter/rawudp' + "farstream-make.patch")))) (build-system glib-or-gtk-build-system) (outputs '("out" "doc")) (arguments - `(#:tests? #f ; https://gitlab.freedesktop.org/farstream/farstream/-/issues/18 - #:configure-flags + `(#:configure-flags (list "--enable-gtk-doc" "--enable-glib-asserts" @@ -236,6 +237,15 @@ application-centers for distributions.") (assoc-ref %build-inputs "common") "common") #t)) + (add-after 'unpack 'disable-timeout-tests + (lambda _ + (substitute* "tests/check/Makefile.am" + ;; This test timeouts despite changing + ;; the value of 'CK_DEFAULT_TIMEOUT' to 600, + ;; as per %common-gstreamer-phases. + ;; Reported to upstream: + ;; https://gitlab.freedesktop.org/farstream/farstream/-/issues/20 + (("[ \t]*transmitter/nice.*$") "")))) (add-after 'unpack 'patch-docbook-xml (lambda* (#:key inputs #:allow-other-keys) (with-directory-excursion "docs" diff --git a/gnu/packages/patches/farstream-gupnp.patch b/gnu/packages/patches/farstream-gupnp.patch new file mode 100644 index 0000000000..f46170ab26 --- /dev/null +++ b/gnu/packages/patches/farstream-gupnp.patch @@ -0,0 +1,140 @@ +From e70dcd0a9f89efbdaa011c20737ad550635ea580 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= +Date: Tue, 20 Oct 2020 19:51:22 -0400 +Subject: [PATCH] rawudp-upnp test: Also build against new GUPnP 1.2 library if + present + +Update the configure test to match +--- + configure.ac | 17 +++++++++++++++++ + tests/check/Makefile.am | 7 +++---- + tests/check/transmitter/rawudp-upnp.c | 16 ++++++++++++++-- + tests/check/transmitter/rawudp.c | 4 ++-- + 4 files changed, 36 insertions(+), 8 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 03afc96b..1efed132 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -370,8 +370,25 @@ fi + + if test "x$HAVE_GUPNP" = "xyes"; then + AC_DEFINE(HAVE_GUPNP,,[Have the GUPnP IGD library]) ++ ++ PKG_CHECK_MODULES(GUPNP_CORE, [ gupnp-1.2 ], ++ [ HAVE_GUPNP_CORE_12=yes ], ++ [ HAVE_GUPNP_CORE_12=no ++ PKG_CHECK_MODULES(GUPNP_CORE, [ gupnp-1.0 ], ++ [ HAVE_GUPNP_CORE_10=yes ], ++ [ HAVE_GUPNP_CORE_10=no ]) ++ ]) ++ ++ if test "x$HAVE_GUPNP_CORE_10" = "xyes"; then ++ AC_DEFINE(HAVE_GUPNP_CORE_10,,[Have the GUPnP 1.0 library]) ++ fi ++ ++ if test "x$HAVE_GUPNP_CORE_12" = "xyes"; then ++ AC_DEFINE(HAVE_GUPNP_CORE_12,,[Have the GUPnP 1.2 library]) ++ fi + fi + ++ + dnl build static plugins or not + AC_MSG_CHECKING([whether to build static plugins or not]) + AC_ARG_ENABLE( +diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am +index d50fc264..d21687d7 100644 +--- a/tests/check/Makefile.am ++++ b/tests/check/Makefile.am +@@ -76,9 +76,9 @@ base_fscodec_SOURCES = \ + + + transmitter_rawudp_CFLAGS = $(AM_CFLAGS) \ +- $(GUPNP_CFLAGS) $(GIO_CFLAGS) $(NICE_CFLAGS) ++ $(GUPNP_CORE_CFLAGS) $(GIO_CFLAGS) $(NICE_CFLAGS) + transmitter_rawudp_LDADD = $(LDADD) \ +- $(GUPNP_LIBS) \ ++ $(GUPNP_CORE_LIBS) \ + $(GIO_LIBS) \ + $(NICE_LIBS) + transmitter_rawudp_SOURCES = \ +@@ -113,9 +113,8 @@ transmitter_nice_SOURCES = \ + transmitter_nice_LDADD = $(LDADD) $(GST_BASE_LIBS) + + +-transmitter_shm_CFLAGS = $(AM_CFLAGS) $(GUPNP_CFLAGS) $(NICE_CFLAGS) ++transmitter_shm_CFLAGS = $(AM_CFLAGS) $(NICE_CFLAGS) + transmitter_shm_LDADD = $(LDADD) \ +- $(GUPNP_LIBS) \ + $(NICE_LIBS) + transmitter_shm_SOURCES = \ + check-threadsafe.h \ +diff --git a/tests/check/transmitter/rawudp-upnp.c b/tests/check/transmitter/rawudp-upnp.c +index 4818cd28..9ccf85d8 100644 +--- a/tests/check/transmitter/rawudp-upnp.c ++++ b/tests/check/transmitter/rawudp-upnp.c +@@ -37,7 +37,7 @@ get_vars (gboolean *out_got_address, + } + + +-#ifdef HAVE_GUPNP ++#if defined(HAVE_GUPNP_CORE_10) || defined(HAVE_GUPNP_CORE_12) + + #include + +@@ -126,8 +126,14 @@ start_upnp_server (void) + GUPnPDeviceInfo *subdev1; + GUPnPDeviceInfo *subdev2; + const gchar *upnp_xml_path; ++ GError *gerr = NULL; + +- context = gupnp_context_new (NULL, NULL, 0, NULL); ++#ifdef HAVE_GUPNP_CORE_12 ++ context = gupnp_context_new (NULL, 0, &gerr); ++#else ++ context = gupnp_context_new (NULL, NULL, 0, &gerr); ++#endif ++ g_assert_no_error (gerr); + ts_fail_if (context == NULL, "Can't get gupnp context"); + + if (g_getenv ("UPNP_XML_PATH")) +@@ -137,8 +143,14 @@ start_upnp_server (void) + + gupnp_context_host_path (context, upnp_xml_path, ""); + ++#ifdef HAVE_GUPNP_CORE_12 ++ dev = gupnp_root_device_new (context, "InternetGatewayDevice.xml", ++ upnp_xml_path, &gerr); ++ g_assert_no_error (gerr); ++#else + dev = gupnp_root_device_new (context, "InternetGatewayDevice.xml", + upnp_xml_path); ++#endif + ts_fail_if (dev == NULL, "could not get root dev"); + + subdev1 = gupnp_device_info_get_device (GUPNP_DEVICE_INFO (dev), +diff --git a/tests/check/transmitter/rawudp.c b/tests/check/transmitter/rawudp.c +index e1936ac0..d803f347 100644 +--- a/tests/check/transmitter/rawudp.c ++++ b/tests/check/transmitter/rawudp.c +@@ -637,7 +637,7 @@ GST_START_TEST (test_rawudptransmitter_stop_stream) + } + GST_END_TEST; + +-#ifdef HAVE_GUPNP ++#if defined(HAVE_GUPNP_CORE_10) || defined (HAVE_GUPNP_CORE_12) + + GST_START_TEST (test_rawudptransmitter_run_upnp_discovery) + { +@@ -967,7 +967,7 @@ rawudptransmitter_suite (void) + tcase_add_test (tc_chain, test_rawudptransmitter_stop_stream); + suite_add_tcase (s, tc_chain); + +-#ifdef HAVE_GUPNP ++#if defined(HAVE_GUPNP_CORE_10) || defined (HAVE_GUPNP_CORE_12) + if (g_getenv ("UPNP")) { + gchar *multicast_addr; + +-- +GitLab + -- cgit v1.2.3 From d7d1d8bd8a233ff61489e88b16527a99b8f32f12 Mon Sep 17 00:00:00 2001 From: Matthew James Kraai Date: Sun, 6 Jun 2021 22:29:52 -0700 Subject: gnu: libevdev: Update to 1.11.0. * gnu/packages/xorg.scm (libevdev): Update to 1.11.0. Signed-off-by: Brice Waegeneire --- gnu/packages/xorg.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 97ff8ab92b..5635498552 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2020, 2021 Michael Rohleder ;;; Copyright © 2020 Maxim Cournoyer ;;; Copyright © 2020 Jean-Baptiste Note +;;; Copyright © 2021 Matthew James Kraai ;;; ;;; This file is part of GNU Guix. ;;; @@ -2466,7 +2467,7 @@ XC-APPGROUP, XTEST.") (define-public libevdev (package (name "libevdev") - (version "1.9.1") + (version "1.11.0") (source (origin (method url-fetch) @@ -2474,7 +2475,7 @@ XC-APPGROUP, XTEST.") name "-" version ".tar.xz")) (sha256 (base32 - "1jvsphdrs1i54ccjcn6ll26jy42am7h28lbsvwa6pmxgqm43qq7m")))) + "1l628xblk36vh7aqia1fw6hh62af7va0pd70h28112l5i4afmx33")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-static"))) -- cgit v1.2.3 From 87046172175ac624802ac06f48273858c103eca6 Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Sun, 16 May 2021 15:39:30 +0200 Subject: gnu: python-docutils: Update to 0.17.1. * gnu/packages/python-xyz.scm (python-docutils): Update to 0.17.1. Signed-off-by: Efraim Flashner --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 39ec05cbbf..6b1ce2c9a3 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3572,14 +3572,14 @@ structure for Python.") (define-public python-docutils (package (name "python-docutils") - (version "0.16") + (version "0.17.1") (source (origin (method url-fetch) (uri (pypi-uri "docutils" version)) (sha256 (base32 - "1z3qliszqca9m719q3qhdkh0ghh90g500avzdgi7pl77x5h3mpn2")))) + "09gii36lp1bs26cpxqyfd20xahnpbrbjzcnba2xq08y3wk97frb8")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From a288c93e3fd657dc5dad32dd5f25cdc5301e9a0a Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Sat, 3 Jul 2021 17:29:18 +0200 Subject: gnu: bluez: Update to 5.59. * gnu/packages/linux.scm (bluez): Update to 5.59. [native-inputs]: Add python-docutils. --- gnu/packages/linux.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2475912796..d234a86184 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4894,7 +4894,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (define-public bluez (package (name "bluez") - (version "5.55") + (version "5.59") (source (origin (method url-fetch) (uri (string-append @@ -4902,7 +4902,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") version ".tar.xz")) (sha256 (base32 - "124v9s4y1s7s6klx5vlmzpk1jlr4x84ch7r7scm7x2f42dqp2qw8")))) + "05kk8zdh3msf5j88jbai8m877rvya6fpkzhicfhv5gyhhsrrasq4")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -4947,6 +4947,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") #t)))))) (native-inputs `(("pkg-config" ,pkg-config) + ("rst2man" ,python-docutils) ("gettext" ,gettext-minimal))) (inputs `(("glib" ,glib) -- cgit v1.2.3 From 598f93a4ce8d6ba4823f9cc8fb52b852209c53cf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 4 Jul 2021 18:45:49 +0200 Subject: gnu: gnupg: Update to 2.2.29. * gnu/packages/gnupg.scm (gnupg): Update to 2.2.29. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index bb611bdb89..76f5f3edbf 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -257,7 +257,7 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.2.27") + (version "2.2.29") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version @@ -265,7 +265,7 @@ compatible to GNU Pth.") (patches (search-patches "gnupg-default-pinentry.patch")) (sha256 (base32 - "1693s2rp9sjwvdslj94n03wnb6rxysjy0dli0q1698af044h1ril")))) + "1j8cpp08zlz9a9n4g9z6352m1bvl369r94p4pjg8z0948pdprl1r")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From e0e572df5adbbd6333c8ce7b19926a27354867b5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 4 Jul 2021 18:46:33 +0200 Subject: gnu: gnupg: Don't explicitly return #t from phases. * gnu/packages/gnupg.scm (gnupg)[arguments]: Don't explicitly return #t from phases. --- gnu/packages/gnupg.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 76f5f3edbf..92ea43e965 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -294,14 +294,12 @@ compatible to GNU Pth.") (substitute* "scd/scdaemon.c" (("\"(libpcsclite\\.so[^\"]*)\"" _ name) (string-append "\"" (assoc-ref inputs "pcsc-lite") - "/lib/" name "\""))) - #t)) + "/lib/" name "\""))))) (add-after 'build 'patch-scheme-tests (lambda _ (substitute* (find-files "tests" ".\\.scm$") (("/usr/bin/env gpgscm") - (string-append (getcwd) "/tests/gpgscm/gpgscm"))) - #t)) + (string-append (getcwd) "/tests/gpgscm/gpgscm"))))) (add-before 'build 'patch-test-paths (lambda _ (substitute* '("tests/inittests" @@ -313,8 +311,7 @@ compatible to GNU Pth.") (substitute* "common/t-exectool.c" (("/bin/cat") (which "cat")) (("/bin/true") (which "true")) - (("/bin/false") (which "false"))) - #t))))) + (("/bin/false") (which "false")))))))) (home-page "https://gnupg.org/") (synopsis "GNU Privacy Guard") (description -- cgit v1.2.3 From 9c68ecb24dd1660ce736cdcdea0422a73ec318a2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 27 Aug 2021 18:22:33 +0200 Subject: gnu: gnupg: Update to 2.2.30. * gnu/packages/gnupg.scm (gnupg): Update to 2.2.30. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 92ea43e965..402d13a309 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -257,7 +257,7 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.2.29") + (version "2.2.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version @@ -265,7 +265,7 @@ compatible to GNU Pth.") (patches (search-patches "gnupg-default-pinentry.patch")) (sha256 (base32 - "1j8cpp08zlz9a9n4g9z6352m1bvl369r94p4pjg8z0948pdprl1r")))) + "1111ry31gaxv76miqsy6l0kwxwlx8sz0jk41jhyrjwx649p6sqyc")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 3687c8371a22bc9b61c3d372c477e474da32c0b6 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Oct 2021 21:09:05 -0400 Subject: gnu: python-sphinxcontrib-htmlhelp: Update to 2.0.0. * gnu/packages/sphinx.scm (python-sphinxcontrib-htmlhelp): Update to 2.0.0. --- gnu/packages/sphinx.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 27415c4431..00a5400f1a 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -245,13 +245,13 @@ users from Sphinx docs.") (define-public python-sphinxcontrib-htmlhelp (package (name "python-sphinxcontrib-htmlhelp") - (version "1.0.3") + (version "2.0.0") (source (origin (method url-fetch) (uri (pypi-uri "sphinxcontrib-htmlhelp" version)) (sha256 (base32 - "16v5jdnibwrqjdr5aqchgyzpwy3rgamwhdf4kidv5nxj65zbpxg8")))) + "1ckd5xx4ngd6f4prxbc1bbvnafy1gg06j3bxyj5kk7v21lnvpy7m")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;XXX: circular dependency on Sphinx -- cgit v1.2.3 From 70dbdbe39b8b3aa4d6c6fe4919568e6f68f721e2 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Oct 2021 21:09:14 -0400 Subject: gnu: python-sphinxcontrib-serializinghtml: Update to 1.1.5. * gnu/packages/sphinx.scm (python-sphinxcontrib-serializinghtml): Update to 1.1.5. --- gnu/packages/sphinx.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 00a5400f1a..8e7b67fd0d 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -350,13 +350,13 @@ documents.") (define-public python-sphinxcontrib-serializinghtml (package (name "python-sphinxcontrib-serializinghtml") - (version "1.1.4") + (version "1.1.5") (source (origin (method url-fetch) (uri (pypi-uri "sphinxcontrib-serializinghtml" version)) (sha256 (base32 - "1g3pbx0g88zd9xzcrbaypa2k60axrh92vf5j76wsk0p9hv6fr87a")))) + "0lk91cl9bi4ynhz971zjs0bsr7jwxx8mx2f40psrx06zvzjnspxa")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;XXX: circular dependency on Sphinx -- cgit v1.2.3 From 15916cf40033023b035e7b6a0ad91d39520a2e6a Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Oct 2021 21:09:23 -0400 Subject: gnu: python-sphinx: Update to 4.2.0. * gnu/packages/sphinx.scm (python-sphinx): Update to 4.2.0. --- gnu/packages/sphinx.scm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 8e7b67fd0d..5fd63a617c 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2021 Eric Bavier ;;; Copyright © 2021 Vinicius Monego ;;; Copyright © 2021 Hugo Lecomte +;;; Copyright © 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,26 +57,27 @@ (define-public python-sphinx (package (name "python-sphinx") - (version "3.5.2") + (version "4.2.0") (source (origin (method url-fetch) (uri (pypi-uri "Sphinx" version)) (sha256 (base32 - "1zx5ik3rqbawyz52lidljqkdgv2418cwnl67jxf26sbb9g1gqb37")))) + "19jq21py7m061v8142y2dbqrbv0adqcdjmharrdy34a432wqs1wl")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ - ;; Requires Internet access. - (delete-file "tests/test_build_linkcheck.py") - (substitute* "tests/test_build_latex.py" - (("@pytest.mark.sphinx\\('latex', testroot='images'\\)") - "@pytest.mark.skip()")) - (invoke "make" "test")))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Requires Internet access. + (delete-file "tests/test_build_linkcheck.py") + (substitute* "tests/test_build_latex.py" + (("@pytest.mark.sphinx\\('latex', testroot='images'\\)") + "@pytest.mark.skip()")) + (invoke "make" "test"))))))) (propagated-inputs `(("python-babel" ,python-babel) ("python-docutils" ,python-docutils) -- cgit v1.2.3 From e49190cf2befec56246c2baa8697e30c7ba491ac Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Oct 2021 21:49:17 -0400 Subject: gnu: gstreamer-docs: Update to 1.19.2. * gnu/packages/gstreamer.scm (gstreamer-docs): Update to 1.19.2. Remove trailing #t. --- gnu/packages/gstreamer.scm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 1b3e114f4b..6bc792a26f 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -409,7 +409,7 @@ arrays of data.") (define-public gstreamer-docs (package (name "gstreamer-docs") - (version "1.18.2") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append @@ -417,7 +417,7 @@ arrays of data.") "/gstreamer-docs-" version ".tar.xz")) (sha256 (base32 - "07hrgn11ll16yahyyh5684k8ms1j9npsyb8lj0skwbapin4czshm")))) + "1isrp3c9gm59br9vbidd1sgqdjgl1ka2p269bqxmh5dcn4f2gz6a")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -435,8 +435,7 @@ arrays of data.") (invoke (string-append tar "/bin/tar") "-xvf" source "--strip-components=3" (string-append ,name "-" ,version - "/devhelp/books/GStreamer"))) - #t)))) + "/devhelp/books/GStreamer"))))))) (native-inputs `(("tar" ,tar) ("xz" ,xz))) @@ -466,13 +465,12 @@ the GStreamer multimedia framework.") (("'CK_DEFAULT_TIMEOUT', '[0-9]*'") "'CK_DEFAULT_TIMEOUT', '600'") (("timeout ?: .*\\)") - "timeout: 90 * 60)")) - #t)))) + "timeout: 90 * 60)")))))) (define-public gstreamer (package (name "gstreamer") - (version "1.18.4") + (version "1.19.2") (source (origin (method url-fetch) -- cgit v1.2.3 From 9411eeab574b5afa0911c337aba6b34f6bee418f Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Oct 2021 21:50:00 -0400 Subject: gnu: gstreamer: Update to 1.19.2. * gnu/packages/gstreamer.scm (gstreamer): Update to 1.19.2. [meson]: Use meson-0.55. [phases]{disable-some-tests}: Delete phase. --- gnu/packages/gstreamer.scm | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 6bc792a26f..fc6efcf349 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2019, 2020 Marius Bakke ;;; Copyright © 2020 Liliana Marie Prikler ;;; Copyright © 2020 Michael Rohleder +;;; Copyright © 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) + #:use-module (gnu packages build-tools) #:use-module (gnu packages cdrom) #:use-module (gnu packages curl) #:use-module (gnu packages compression) @@ -479,26 +481,13 @@ the GStreamer multimedia framework.") version ".tar.xz")) (sha256 (base32 - "1igv9l4hm21kp1jmlwlagzs7ly1vaxv1sbda29q8247372dwkvls")))) + "03bfgsxd3njkaa5vm99hi36b4n98ywand60h3p18jlqyjfjpnnvf")))) (build-system meson-build-system) (arguments - `(#:phases + `(#:meson ,meson-0.55 + #:phases (modify-phases %standard-phases - ,@%common-gstreamer-phases - ;; FIXME: Since switching to the meson-build-system, two tests - ;; started failing on i686. See - ;; . - ,@(if (string-prefix? "i686" (or (%current-target-system) - (%current-system))) - `((add-after 'unpack 'disable-some-tests - (lambda _ - (substitute* "tests/check/gst/gstsystemclock.c" - (("tcase_add_test \\(tc_chain, test_stress_cleanup_unschedule.*") - "") - (("tcase_add_test \\(tc_chain, test_stress_reschedule.*") - "")) - #t))) - '())))) + ,@%common-gstreamer-phases))) (propagated-inputs ;; In gstreamer-1.0.pc: ;; Requires: glib-2.0, gobject-2.0 -- cgit v1.2.3 From e50ac909435a3c683bafe6b3317da8b751e9cdc2 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Oct 2021 21:51:31 -0400 Subject: gnu: gst-plugins-base: Update to 1.19.2. * gnu/packages/gstreamer.scm (gst-plugins-base): Update to 1.19.2 [origin]: Delete patches field. Remove trailing #t. [meson]: Use meson-0.55. * gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch: Delete. * gnu/local.mk (dist_patch_DATA): De-register. --- gnu/local.mk | 1 - gnu/packages/gstreamer.scm | 14 ++++---- .../gst-plugins-base-fix-id3v2-invalid-read.patch | 40 ---------------------- 3 files changed, 6 insertions(+), 49 deletions(-) delete mode 100644 gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5f19ead240..7974f86d88 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1214,7 +1214,6 @@ dist_patch_DATA = \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ %D%/packages/patches/gst-plugins-bad-fix-overflow.patch \ - %D%/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch \ %D%/packages/patches/gst-plugins-good-fix-test.patch \ %D%/packages/patches/gst-plugins-good-CVE-2021-3497.patch \ %D%/packages/patches/gst-plugins-good-CVE-2021-3498.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index fc6efcf349..97df2483c6 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -532,16 +532,15 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.18.4") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) - (patches (search-patches "gst-plugins-base-fix-id3v2-invalid-read.patch")) (sha256 (base32 - "08w3ivbc6n4vdds2ap6q7l8zdk9if8417nznyqidf0adm0lk5r99")))) + "04x5666vgg89dd9psxmnr99dszk8ykkc9dclg2ln2sq07kyh9qyd")))) (build-system meson-build-system) (propagated-inputs `(("glib" ,glib) ;required by gstreamer-sdp-1.0.pc @@ -584,14 +583,14 @@ This package provides the core library and elements.") ("gettext" ,gettext-minimal) ("xorg-server" ,xorg-server-for-tests))) (arguments - `(#:phases + `(#:meson ,meson-0.55 + #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases (add-before 'configure 'patch (lambda _ (substitute* "tests/check/libs/pbutils.c" - (("/bin/sh") (which "sh"))) - #t)) + (("/bin/sh") (which "sh"))))) (add-before 'check 'pre-check (lambda _ ;; Tests require a running X server. @@ -602,8 +601,7 @@ This package provides the core library and elements.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t))))) + (setenv "DBUS_FATAL_WARNINGS" "0")))))) (home-page "https://gstreamer.freedesktop.org/") (synopsis "Plugins for the GStreamer multimedia library") diff --git a/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch b/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch deleted file mode 100644 index b2dfef0118..0000000000 --- a/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch +++ /dev/null @@ -1,40 +0,0 @@ -Fix an "invalid read during ID3v2 tag parsing". - -https://security-tracker.debian.org/tracker/TEMP-0000000-57E7C1 -https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876 - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/commit/f4a1428a6997658625d529b9db60fde812fbf1ee - -From f4a1428a6997658625d529b9db60fde812fbf1ee Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= -Date: Wed, 3 Mar 2021 01:08:25 +0000 -Subject: [PATCH] tag: id3v2: fix frame size check and potential invalid reads - -Check the right variable when checking if there's -enough data left to read the frame size. - -Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876 - -Part-of: ---- - gst-libs/gst/tag/id3v2frames.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c -index 8e9f78254..f39659bf7 100644 ---- a/gst-libs/gst/tag/id3v2frames.c -+++ b/gst-libs/gst/tag/id3v2frames.c -@@ -109,7 +109,7 @@ id3v2_parse_frame (ID3TagsWorking * work) - - if (work->frame_flags & (ID3V2_FRAME_FORMAT_COMPRESSION | - ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR)) { -- if (work->hdr.frame_data_size <= 4) -+ if (frame_data_size <= 4) - return FALSE; - if (ID3V2_VER_MAJOR (work->hdr.version) == 3) { - work->parse_size = GST_READ_UINT32_BE (frame_data); --- -2.31.1 - -- cgit v1.2.3 From b828bbaf620c6e7e883527670ac0c18a8b9fe552 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Oct 2021 23:03:30 -0400 Subject: gnu: gst-plugins-good: Update to 1.19.2. * gnu/packages/gstreamer.scm (gst-plugins-good): Update to 1.19.2. Remove trailing #t. [patches]: Remove. [meson]: Use meson-0.55. * gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch: Delete file. * gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch: Likewise. * gnu/packages/patches/gst-plugins-good-fix-test.patch: Likewise. * gnu/local.mk: De-register them. --- gnu/local.mk | 3 - gnu/packages/gstreamer.scm | 13 +- .../patches/gst-plugins-good-CVE-2021-3497.patch | 174 --------------------- .../patches/gst-plugins-good-CVE-2021-3498.patch | 22 --- .../patches/gst-plugins-good-fix-test.patch | 94 ----------- 5 files changed, 5 insertions(+), 301 deletions(-) delete mode 100644 gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch delete mode 100644 gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch delete mode 100644 gnu/packages/patches/gst-plugins-good-fix-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7974f86d88..084930b3c4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1214,9 +1214,6 @@ dist_patch_DATA = \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ %D%/packages/patches/gst-plugins-bad-fix-overflow.patch \ - %D%/packages/patches/gst-plugins-good-fix-test.patch \ - %D%/packages/patches/gst-plugins-good-CVE-2021-3497.patch \ - %D%/packages/patches/gst-plugins-good-CVE-2021-3498.patch \ %D%/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-skip-oom-test.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 97df2483c6..5a95aefecd 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -612,7 +612,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.18.4") + (version "1.19.2") (source (origin (method url-fetch) @@ -620,14 +620,12 @@ for the GStreamer multimedia library.") (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) - (patches (search-patches "gst-plugins-good-fix-test.patch" - "gst-plugins-good-CVE-2021-3497.patch" - "gst-plugins-good-CVE-2021-3498.patch")) (sha256 - (base32 "1c1rpq709cy8maaykyn1n0kckj9c6fl3mhvixkk6xmdwkcx0xrdn")))) + (base32 "0bjfipap6wc3w28hgf817hc6jvjbblkjil42a356vg242412xsab")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + `(#:meson ,meson-0.55 + #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases @@ -641,8 +639,7 @@ for the GStreamer multimedia library.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t))))) + (setenv "DBUS_FATAL_WARNINGS" "0")))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") diff --git a/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch b/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch deleted file mode 100644 index c8c3ee6cf1..0000000000 --- a/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch +++ /dev/null @@ -1,174 +0,0 @@ -Fix CVE-2021-3497: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3497 -https://gstreamer.freedesktop.org/security/sa-2021-0002.html - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/9181191511f9c0be6a89c98b311f49d66bd46dc3?merge_request_iid=903 - -diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c -index 467815986c8c3d86fd8906a0d539b34f67d6693e..0e47ee7b5e25ac3331f30439710ae755235f2a22 100644 ---- a/gst/matroska/matroska-demux.c -+++ b/gst/matroska/matroska-demux.c -@@ -3851,6 +3851,12 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - guint32 block_samples, tmp; - gsize size = gst_buffer_get_size (*buf); - -+ if (size < 4) { -+ GST_ERROR_OBJECT (element, "Too small wavpack buffer"); -+ gst_buffer_unmap (*buf, &map); -+ return GST_FLOW_ERROR; -+ } -+ - gst_buffer_extract (*buf, 0, &tmp, sizeof (guint32)); - block_samples = GUINT32_FROM_LE (tmp); - /* we need to reconstruct the header of the wavpack block */ -@@ -3858,10 +3864,10 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - /* -20 because ck_size is the size of the wavpack block -8 - * and lace_size is the size of the wavpack block + 12 - * (the three guint32 of the header that already are in the buffer) */ -- wvh.ck_size = size + sizeof (Wavpack4Header) - 20; -+ wvh.ck_size = size + WAVPACK4_HEADER_SIZE - 20; - - /* block_samples, flags and crc are already in the buffer */ -- newbuf = gst_buffer_new_allocate (NULL, sizeof (Wavpack4Header) - 12, NULL); -+ newbuf = gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE - 12, NULL); - - gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); - data = outmap.data; -@@ -3886,9 +3892,11 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - audiocontext->wvpk_block_index += block_samples; - } else { - guint8 *outdata = NULL; -- guint outpos = 0; -- gsize buf_size, size, out_size = 0; -+ gsize buf_size, size; - guint32 block_samples, flags, crc, blocksize; -+ GstAdapter *adapter; -+ -+ adapter = gst_adapter_new (); - - gst_buffer_map (*buf, &map, GST_MAP_READ); - buf_data = map.data; -@@ -3897,6 +3905,7 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - if (buf_size < 4) { - GST_ERROR_OBJECT (element, "Too small wavpack buffer"); - gst_buffer_unmap (*buf, &map); -+ g_object_unref (adapter); - return GST_FLOW_ERROR; - } - -@@ -3918,59 +3927,57 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - data += 4; - size -= 4; - -- if (blocksize == 0 || size < blocksize) -- break; -- -- g_assert ((newbuf == NULL) == (outdata == NULL)); -+ if (blocksize == 0 || size < blocksize) { -+ GST_ERROR_OBJECT (element, "Too small wavpack buffer"); -+ gst_buffer_unmap (*buf, &map); -+ g_object_unref (adapter); -+ return GST_FLOW_ERROR; -+ } - -- if (newbuf == NULL) { -- out_size = sizeof (Wavpack4Header) + blocksize; -- newbuf = gst_buffer_new_allocate (NULL, out_size, NULL); -+ g_assert (newbuf == NULL); - -- gst_buffer_copy_into (newbuf, *buf, -- GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1); -+ newbuf = -+ gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE + blocksize, -+ NULL); -+ gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); -+ outdata = outmap.data; -+ -+ outdata[0] = 'w'; -+ outdata[1] = 'v'; -+ outdata[2] = 'p'; -+ outdata[3] = 'k'; -+ outdata += 4; -+ -+ GST_WRITE_UINT32_LE (outdata, blocksize + WAVPACK4_HEADER_SIZE - 8); -+ GST_WRITE_UINT16_LE (outdata + 4, wvh.version); -+ GST_WRITE_UINT8 (outdata + 6, wvh.track_no); -+ GST_WRITE_UINT8 (outdata + 7, wvh.index_no); -+ GST_WRITE_UINT32_LE (outdata + 8, wvh.total_samples); -+ GST_WRITE_UINT32_LE (outdata + 12, wvh.block_index); -+ GST_WRITE_UINT32_LE (outdata + 16, block_samples); -+ GST_WRITE_UINT32_LE (outdata + 20, flags); -+ GST_WRITE_UINT32_LE (outdata + 24, crc); -+ outdata += 28; -+ -+ memcpy (outdata, data, blocksize); - -- outpos = 0; -- gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); -- outdata = outmap.data; -- } else { -- gst_buffer_unmap (newbuf, &outmap); -- out_size += sizeof (Wavpack4Header) + blocksize; -- gst_buffer_set_size (newbuf, out_size); -- gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); -- outdata = outmap.data; -- } -+ gst_buffer_unmap (newbuf, &outmap); -+ gst_adapter_push (adapter, newbuf); -+ newbuf = NULL; - -- outdata[outpos] = 'w'; -- outdata[outpos + 1] = 'v'; -- outdata[outpos + 2] = 'p'; -- outdata[outpos + 3] = 'k'; -- outpos += 4; -- -- GST_WRITE_UINT32_LE (outdata + outpos, -- blocksize + sizeof (Wavpack4Header) - 8); -- GST_WRITE_UINT16_LE (outdata + outpos + 4, wvh.version); -- GST_WRITE_UINT8 (outdata + outpos + 6, wvh.track_no); -- GST_WRITE_UINT8 (outdata + outpos + 7, wvh.index_no); -- GST_WRITE_UINT32_LE (outdata + outpos + 8, wvh.total_samples); -- GST_WRITE_UINT32_LE (outdata + outpos + 12, wvh.block_index); -- GST_WRITE_UINT32_LE (outdata + outpos + 16, block_samples); -- GST_WRITE_UINT32_LE (outdata + outpos + 20, flags); -- GST_WRITE_UINT32_LE (outdata + outpos + 24, crc); -- outpos += 28; -- -- memmove (outdata + outpos, data, blocksize); -- outpos += blocksize; - data += blocksize; - size -= blocksize; - } - gst_buffer_unmap (*buf, &map); -- gst_buffer_unref (*buf); - -- if (newbuf) -- gst_buffer_unmap (newbuf, &outmap); -+ newbuf = gst_adapter_take_buffer (adapter, gst_adapter_available (adapter)); -+ g_object_unref (adapter); - -+ gst_buffer_copy_into (newbuf, *buf, -+ GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1); -+ gst_buffer_unref (*buf); - *buf = newbuf; -+ - audiocontext->wvpk_block_index += block_samples; - } - -diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h -index 429213f778063ba0063944ab64ad60373bbce5ee..8d4a685a910ec13100a3c3d156b2412d28ec0522 100644 ---- a/gst/matroska/matroska-ids.h -+++ b/gst/matroska/matroska-ids.h -@@ -688,6 +688,8 @@ typedef struct _Wavpack4Header { - guint32 crc; /* crc for actual decoded data */ - } Wavpack4Header; - -+#define WAVPACK4_HEADER_SIZE (32) -+ - typedef enum { - GST_MATROSKA_TRACK_ENCODING_SCOPE_FRAME = (1<<0), - GST_MATROSKA_TRACK_ENCODING_SCOPE_CODEC_DATA = (1<<1), diff --git a/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch b/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch deleted file mode 100644 index 50eb42f126..0000000000 --- a/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch +++ /dev/null @@ -1,22 +0,0 @@ -Fix CVE-2021-3498: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3498 -https://gstreamer.freedesktop.org/security/sa-2021-0003.html - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/02174790726dd20a5c73ce2002189bf240ad4fe0?merge_request_iid=903 - -diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c -index 4d0234743b8cf243b4521e56ef9027ba23b1b5d0..467815986c8c3d86fd8906a0d539b34f67d6693e 100644 ---- a/gst/matroska/matroska-demux.c -+++ b/gst/matroska/matroska-demux.c -@@ -692,6 +692,8 @@ gst_matroska_demux_parse_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml, - - DEBUG_ELEMENT_START (demux, ebml, "TrackEntry"); - -+ *dest_context = NULL; -+ - /* start with the master */ - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret); diff --git a/gnu/packages/patches/gst-plugins-good-fix-test.patch b/gnu/packages/patches/gst-plugins-good-fix-test.patch deleted file mode 100644 index 38ec0ba802..0000000000 --- a/gnu/packages/patches/gst-plugins-good-fix-test.patch +++ /dev/null @@ -1,94 +0,0 @@ -Fix a broken test: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/803 - -Patches copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/2ce5909f3a0b0da3abb7b794215d6b8b72a3b7fa -https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/f5310ce346180a717f091f2f09bcbb3ddfb15436 - -From 2ce5909f3a0b0da3abb7b794215d6b8b72a3b7fa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= -Date: Thu, 12 Nov 2020 23:38:21 +0000 -Subject: [PATCH 1/2] tests: qtdemux: fix crash on 32-bit architectures - -Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/803 - -Part-of: ---- - tests/check/elements/qtdemux.c | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -diff --git a/tests/check/elements/qtdemux.c b/tests/check/elements/qtdemux.c -index 5271c6576..0c748278b 100644 ---- a/tests/check/elements/qtdemux.c -+++ b/tests/check/elements/qtdemux.c -@@ -797,9 +797,10 @@ GST_START_TEST (test_qtdemux_pad_names) - "protection-system", G_TYPE_STRING, - "9a04f079-9840-4286-ab92-e65be0885f95", NULL); - caps = -- gst_caps_new_simple ("video/quicktime", "variant", G_TYPE_STRING, -- "mss-fragmented", "timesacle", G_TYPE_UINT64, 10000000, "media-caps", -- GST_TYPE_CAPS, mediacaps, NULL); -+ gst_caps_new_simple ("video/quicktime", -+ "variant", G_TYPE_STRING, "mss-fragmented", -+ "timesacle", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), -+ "media-caps", GST_TYPE_CAPS, mediacaps, NULL); - - /* Send segment event* */ - event = gst_event_new_caps (caps); -@@ -852,9 +853,10 @@ GST_START_TEST (test_qtdemux_pad_names) - "protection-system", G_TYPE_STRING, - "9a04f079-9840-4286-ab92-e65be0885f95", NULL); - caps = -- gst_caps_new_simple ("video/quicktime", "variant", G_TYPE_STRING, -- "mss-fragmented", "timesacle", G_TYPE_UINT64, 10000000, "media-caps", -- GST_TYPE_CAPS, mediacaps, NULL); -+ gst_caps_new_simple ("video/quicktime", -+ "variant", G_TYPE_STRING, "mss-fragmented", -+ "timesacle", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), -+ "media-caps", GST_TYPE_CAPS, mediacaps, NULL); - - /* Send segment event* */ - event = gst_event_new_caps (caps); --- -2.30.0 - - -From f5310ce346180a717f091f2f09bcbb3ddfb15436 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= -Date: Thu, 12 Nov 2020 23:39:21 +0000 -Subject: [PATCH 2/2] tests: qtdemux: fix typo in caps field - -timesacle -> timescale - -Part-of: ---- - tests/check/elements/qtdemux.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/check/elements/qtdemux.c b/tests/check/elements/qtdemux.c -index 0c748278b..4a14c45c0 100644 ---- a/tests/check/elements/qtdemux.c -+++ b/tests/check/elements/qtdemux.c -@@ -799,7 +799,7 @@ GST_START_TEST (test_qtdemux_pad_names) - caps = - gst_caps_new_simple ("video/quicktime", - "variant", G_TYPE_STRING, "mss-fragmented", -- "timesacle", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), -+ "timescale", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), - "media-caps", GST_TYPE_CAPS, mediacaps, NULL); - - /* Send segment event* */ -@@ -855,7 +855,7 @@ GST_START_TEST (test_qtdemux_pad_names) - caps = - gst_caps_new_simple ("video/quicktime", - "variant", G_TYPE_STRING, "mss-fragmented", -- "timesacle", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), -+ "timescale", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), - "media-caps", GST_TYPE_CAPS, mediacaps, NULL); - - /* Send segment event* */ --- -2.30.0 - -- cgit v1.2.3 From 35aaabe594c71c8ef3bd1893bba1edfe84804f1a Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Oct 2021 23:34:47 -0400 Subject: gnu: zxing-cpp: Update to 1.2.0. * gnu/packages/aidc.scm (zxing-cpp): Update to 1.2.0. Remove trailing #t. [native-inputs]: Remove field. [out-of-source?]: Remove argument. [tests?]: Set to #f. [configure-flags]: New argument. [phases]: Remove argument. --- gnu/packages/aidc.scm | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index 3db631d92e..c9a70c9d9b 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Guillaume Le Vaillant ;;; Copyright © 2020 Leo Famulari +;;; Copyright © 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,7 +45,7 @@ (define-public zxing-cpp (package (name "zxing-cpp") - (version "1.0.8") + (version "1.2.0") (source (origin (method git-fetch) @@ -54,32 +55,14 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "011sq8wcjfxbnd8sj6bf2fgkamlp8gj6q835g61c952npvwsnl71")))) - (native-inputs - `(("googletest-source" ,(package-source googletest)))) + (base32 "1gjj9c7h634rrmmgzbc7cxjqsxdq0paj6113k02ncjm1s9abk7ik")))) (build-system cmake-build-system) (arguments - `(#:out-of-source? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-googletest - ;; Copy the googletest sources to where the CMake build expects them. - (lambda* (#:key inputs #:allow-other-keys) - (let ((source (assoc-ref inputs "googletest-source")) - (target "test/unit/googletest-src")) - (mkdir-p target) - (copy-recursively source target) - ;; Disable downloading via ExternalProject. - (substitute* "test/unit/CMakeLists.txt.in" - (("ExternalProject_Add\\(") "message(")) - #t))) - (replace 'check - (lambda _ - (with-directory-excursion "test/unit" - (invoke "cmake" ".") - (invoke "make") - (invoke "./ZXingUnitTest")) - #t))))) + ;; The test suite build system is written in a way that required external + ;; libraries such as googletest, fmt and others are to be fetched from + ;; the network (see: https://github.com/nu-book/zxing-cpp/issues/260). + `(#:tests? #f + #:configure-flags '("-DBUILD_BLACKBOX_TESTS=OFF"))) (synopsis "C++ port of ZXing") (description "ZXing-CPP is a barcode scanning library.") (home-page "https://github.com/nu-book/zxing-cpp") -- cgit v1.2.3 From 2435766eaac593ce1d409e6145de8815b5d98559 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 2 Oct 2021 00:10:49 -0400 Subject: gnu: gst-plugins-bad: Update to 1.19.2. * gnu/packages/gstreamer.scm (gst-plugins-bad): Update to 1.19.2. * gnu/packages/patches/gst-plugins-bad-fix-overflow.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. --- gnu/local.mk | 1 - gnu/packages/gstreamer.scm | 14 +- .../patches/gst-plugins-bad-fix-overflow.patch | 263 --------------------- 3 files changed, 6 insertions(+), 272 deletions(-) delete mode 100644 gnu/packages/patches/gst-plugins-bad-fix-overflow.patch diff --git a/gnu/local.mk b/gnu/local.mk index 084930b3c4..5cc69c8059 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1213,7 +1213,6 @@ dist_patch_DATA = \ %D%/packages/patches/grub-setup-root.patch \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ - %D%/packages/patches/gst-plugins-bad-fix-overflow.patch \ %D%/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-skip-oom-test.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 5a95aefecd..bde12509a9 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -702,18 +702,18 @@ model to base your own plug-in on, here it is.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.18.4") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) - (patches (search-patches "gst-plugins-bad-fix-overflow.patch")) (sha256 (base32 - "0py8k4pbalm9mxkpjbjxis0gp7g74wg5g4yax5q8rccmany0ds3l")))) + "0y895s0jpfdpdqh2n55ki6gzvji5228v7z541if2xjgjka5gk0jk")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + `(#:meson ,meson-0.55 + #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases @@ -750,8 +750,7 @@ model to base your own plug-in on, here it is.") ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932 ((".*elements/curlhttpsrc\\.c.*") "") ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412 - ((".*elements/dtls\\.c.*") "")) - #t))) + ((".*elements/dtls\\.c.*") ""))))) (add-before 'check 'pre-check (lambda _ ;; Tests require a running X server. @@ -762,8 +761,7 @@ model to base your own plug-in on, here it is.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t))))) + (setenv "DBUS_FATAL_WARNINGS" "0")))))) (propagated-inputs `(("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base))) diff --git a/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch b/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch deleted file mode 100644 index 95ab13db51..0000000000 --- a/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch +++ /dev/null @@ -1,263 +0,0 @@ -Fix an overflow when calculating something for AVC/HEVC videos: - -https://security-tracker.debian.org/tracker/TEMP-0000000-C6AAE1 - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/0cfbf7ad91c7f121192c8ce135769f8eb276c41d -From 0cfbf7ad91c7f121192c8ce135769f8eb276c41d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= -Date: Tue, 23 Mar 2021 19:19:14 +0200 -Subject: [PATCH] h2645parser: Catch overflows in AVC/HEVC NAL unit length - calculations - -Offset and size are stored as 32 bit guint and might overflow when -adding the nal_length_size, so let's avoid that. - -For the size this would happen if the AVC/HEVC NAL unit size happens to -be stored in 4 bytes and is 4294967292 or higher, which is likely -corrupted data anyway. - -For the offset this is something for the caller of these functions to -take care of but is unlikely to happen as it would require parsing on a ->4GB buffer. - -Allowing these overflows causes all kinds of follow-up bugs in the -h2645parse elements, ranging from infinite loops and memory leaks to -potential memory corruptions. - -Part-of: ---- - gst-libs/gst/codecparsers/gsth264parser.c | 16 +++++- - gst-libs/gst/codecparsers/gsth265parser.c | 16 +++++- - tests/check/libs/h264parser.c | 60 +++++++++++++++++++++++ - tests/check/libs/h265parser.c | 60 +++++++++++++++++++++++ - 4 files changed, 150 insertions(+), 2 deletions(-) - -diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c -index 012f1d0d7..68aa25068 100644 ---- a/gst-libs/gst/codecparsers/gsth264parser.c -+++ b/gst-libs/gst/codecparsers/gsth264parser.c -@@ -1556,6 +1556,14 @@ gst_h264_parser_identify_nalu_avc (GstH264NalParser * nalparser, - - memset (nalu, 0, sizeof (*nalu)); - -+ /* Would overflow guint below otherwise: the callers needs to ensure that -+ * this never happens */ -+ if (offset > G_MAXUINT32 - nal_length_size) { -+ GST_WARNING ("offset + nal_length_size overflow"); -+ nalu->size = 0; -+ return GST_H264_PARSER_BROKEN_DATA; -+ } -+ - if (size < offset + nal_length_size) { - GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT - ", offset %u", size, offset); -@@ -1570,7 +1578,13 @@ gst_h264_parser_identify_nalu_avc (GstH264NalParser * nalparser, - nalu->sc_offset = offset; - nalu->offset = offset + nal_length_size; - -- if (size < nalu->size + nal_length_size) { -+ if (nalu->size > G_MAXUINT32 - nal_length_size) { -+ GST_WARNING ("NALU size + nal_length_size overflow"); -+ nalu->size = 0; -+ return GST_H264_PARSER_BROKEN_DATA; -+ } -+ -+ if (size < (gsize) nalu->size + nal_length_size) { - nalu->size = 0; - - return GST_H264_PARSER_NO_NAL_END; -diff --git a/gst-libs/gst/codecparsers/gsth265parser.c b/gst-libs/gst/codecparsers/gsth265parser.c -index 26e68b276..dc7f27aa9 100644 ---- a/gst-libs/gst/codecparsers/gsth265parser.c -+++ b/gst-libs/gst/codecparsers/gsth265parser.c -@@ -1531,6 +1531,14 @@ gst_h265_parser_identify_nalu_hevc (GstH265Parser * parser, - - memset (nalu, 0, sizeof (*nalu)); - -+ /* Would overflow guint below otherwise: the callers needs to ensure that -+ * this never happens */ -+ if (offset > G_MAXUINT32 - nal_length_size) { -+ GST_WARNING ("offset + nal_length_size overflow"); -+ nalu->size = 0; -+ return GST_H265_PARSER_BROKEN_DATA; -+ } -+ - if (size < offset + nal_length_size) { - GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT - ", offset %u", size, offset); -@@ -1545,7 +1553,13 @@ gst_h265_parser_identify_nalu_hevc (GstH265Parser * parser, - nalu->sc_offset = offset; - nalu->offset = offset + nal_length_size; - -- if (size < nalu->size + nal_length_size) { -+ if (nalu->size > G_MAXUINT32 - nal_length_size) { -+ GST_WARNING ("NALU size + nal_length_size overflow"); -+ nalu->size = 0; -+ return GST_H265_PARSER_BROKEN_DATA; -+ } -+ -+ if (size < (gsize) nalu->size + nal_length_size) { - nalu->size = 0; - - return GST_H265_PARSER_NO_NAL_END; -diff --git a/tests/check/libs/h264parser.c b/tests/check/libs/h264parser.c -index c7c46d9a2..d322dd8db 100644 ---- a/tests/check/libs/h264parser.c -+++ b/tests/check/libs/h264parser.c -@@ -229,6 +229,65 @@ GST_START_TEST (test_h264_parse_slice_5bytes) - - GST_END_TEST; - -+GST_START_TEST (test_h264_parse_identify_nalu_avc) -+{ -+ GstH264ParserResult res; -+ GstH264NalUnit nalu; -+ GstH264NalParser *const parser = gst_h264_nal_parser_new (); -+ /* Skip 3 bytes for the start code */ -+ const gsize nal_size = sizeof (slice_dpa) - 3; -+ const gsize buf_size = 4 + nal_size; -+ guint8 *buf = g_new (guint8, buf_size); -+ -+ memcpy (buf + 4, slice_dpa + 3, nal_size); -+ -+ GST_WRITE_UINT16_BE (buf + 2, nal_size); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 2, buf_size, 2, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_OK); -+ assert_equals_int (nalu.type, GST_H264_NAL_SLICE_DPA); -+ assert_equals_int (nalu.offset, 4); -+ assert_equals_int (nalu.size, nal_size); -+ -+ GST_WRITE_UINT32_BE (buf, nal_size); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_OK); -+ assert_equals_int (nalu.type, GST_H264_NAL_SLICE_DPA); -+ assert_equals_int (nalu.offset, 4); -+ assert_equals_int (nalu.size, nal_size); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 2); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 3); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 4); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_NO_NAL_END); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 6); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_NO_NAL_END); -+ -+ g_free (buf); -+ gst_h264_nal_parser_free (parser); -+} -+ -+GST_END_TEST; -+ - static guint8 nalu_sps_with_vui[] = { - 0x00, 0x00, 0x00, 0x01, 0x67, 0x64, 0x00, 0x28, - 0xac, 0xd9, 0x40, 0x78, 0x04, 0x4f, 0xde, 0x03, -@@ -666,6 +725,7 @@ h264parser_suite (void) - tcase_add_test (tc_chain, test_h264_parse_slice_dpa); - tcase_add_test (tc_chain, test_h264_parse_slice_eoseq_slice); - tcase_add_test (tc_chain, test_h264_parse_slice_5bytes); -+ tcase_add_test (tc_chain, test_h264_parse_identify_nalu_avc); - tcase_add_test (tc_chain, test_h264_parse_invalid_sei); - tcase_add_test (tc_chain, test_h264_create_sei); - -diff --git a/tests/check/libs/h265parser.c b/tests/check/libs/h265parser.c -index 0a0e4db97..5b6a215ec 100644 ---- a/tests/check/libs/h265parser.c -+++ b/tests/check/libs/h265parser.c -@@ -255,6 +255,65 @@ GST_START_TEST (test_h265_parse_slice_6bytes) - - GST_END_TEST; - -+GST_START_TEST (test_h265_parse_identify_nalu_hevc) -+{ -+ GstH265ParserResult res; -+ GstH265NalUnit nalu; -+ GstH265Parser *parser = gst_h265_parser_new (); -+ /* Skip 4 bytes for the start code */ -+ const gsize nal_size = sizeof (slice_eos_slice_eob) - 4; -+ const gsize buf_size = 4 + nal_size; -+ guint8 *buf = g_new (guint8, buf_size); -+ -+ memcpy (buf + 4, slice_eos_slice_eob + 4, nal_size); -+ -+ GST_WRITE_UINT16_BE (buf + 2, nal_size); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 2, buf_size, 2, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_OK); -+ assert_equals_int (nalu.type, GST_H265_NAL_SLICE_IDR_W_RADL); -+ assert_equals_int (nalu.offset, 4); -+ assert_equals_int (nalu.size, nal_size); -+ -+ GST_WRITE_UINT32_BE (buf, nal_size); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_OK); -+ assert_equals_int (nalu.type, GST_H265_NAL_SLICE_IDR_W_RADL); -+ assert_equals_int (nalu.offset, 4); -+ assert_equals_int (nalu.size, nal_size); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 2); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 3); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 4); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_NO_NAL_END); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 6); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_NO_NAL_END); -+ -+ g_free (buf); -+ gst_h265_parser_free (parser); -+} -+ -+GST_END_TEST; -+ - GST_START_TEST (test_h265_base_profiles) - { - GstH265ProfileTierLevel ptl; -@@ -1101,6 +1160,7 @@ h265parser_suite (void) - tcase_add_test (tc_chain, test_h265_parse_slice_eos_slice_eob); - tcase_add_test (tc_chain, test_h265_parse_pic_timing); - tcase_add_test (tc_chain, test_h265_parse_slice_6bytes); -+ tcase_add_test (tc_chain, test_h265_parse_identify_nalu_hevc); - tcase_add_test (tc_chain, test_h265_base_profiles); - tcase_add_test (tc_chain, test_h265_base_profiles_compat); - tcase_add_test (tc_chain, test_h265_format_range_profiles_exact_match); --- -2.31.1 - -- cgit v1.2.3 From d0e53556bb43fe77295e47a5a47ea4f446b96b90 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 2 Oct 2021 00:25:19 -0400 Subject: gnu: gst-plugins-ugly: Update to 1.19.2. * gnu/packages/gstreamer.scm (gst-plugins-ugly): Update to 1.19.2. Delete trailing #t. [patches]: Delete field. [meson]: Use meson-0.55. * gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. --- gnu/local.mk | 1 - gnu/packages/gstreamer.scm | 11 +- .../gst-plugins-ugly-fix-out-of-bound-reads.patch | 119 --------------------- 3 files changed, 5 insertions(+), 126 deletions(-) delete mode 100644 gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5cc69c8059..ddb2da13db 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1213,7 +1213,6 @@ dist_patch_DATA = \ %D%/packages/patches/grub-setup-root.patch \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ - %D%/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-skip-oom-test.patch \ %D%/packages/patches/guile-2.2-skip-so-test.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index bde12509a9..37a9b7291c 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -883,19 +883,19 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.18.4") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) - (patches (search-patches "gst-plugins-ugly-fix-out-of-bound-reads.patch")) (sha256 - (base32 "0g6i4db1883q3j0l2gdv46fcqwiiaw63n6mhvsfcms1i1p7g1391")))) + (base32 "1pwz68qg40018ai655fdrjn5clmn0gp2b7dik0jzwx0fzbwzr87j")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + `(#:meson ,meson-0.55 + #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases @@ -909,8 +909,7 @@ par compared to the rest.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t))))) + (setenv "DBUS_FATAL_WARNINGS" "0")))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") diff --git a/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch b/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch deleted file mode 100644 index 3c6a96f45d..0000000000 --- a/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch +++ /dev/null @@ -1,119 +0,0 @@ -Fix out of bounds reads when parsing audio and video packets: - -https://security-tracker.debian.org/tracker/TEMP-0000000-4DAA44 -https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues/37 - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/commit/3aba7d1e625554b2407bc77b3d09b4928b937d5f -From 3aba7d1e625554b2407bc77b3d09b4928b937d5f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= -Date: Wed, 3 Mar 2021 11:05:14 +0200 -Subject: [PATCH] rmdemux: Make sure we have enough data available when parsing - audio/video packets - -Otherwise there will be out-of-bounds reads and potential crashes. - -Thanks to Natalie Silvanovich for reporting. - -Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues/37 - -Part-of: ---- - gst/realmedia/rmdemux.c | 35 +++++++++++++++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - -diff --git a/gst/realmedia/rmdemux.c b/gst/realmedia/rmdemux.c -index 6cc659a1..68b0736b 100644 ---- a/gst/realmedia/rmdemux.c -+++ b/gst/realmedia/rmdemux.c -@@ -2223,6 +2223,9 @@ gst_rmdemux_parse_video_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, - - gst_buffer_map (in, &map, GST_MAP_READ); - -+ if (map.size < offset) -+ goto not_enough_data; -+ - data = map.data + offset; - size = map.size - offset; - -@@ -2289,6 +2292,9 @@ gst_rmdemux_parse_video_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, - } - GST_DEBUG_OBJECT (rmdemux, "fragment size %d", fragment_size); - -+ if (map.size < (data - map.data) + fragment_size) -+ goto not_enough_data; -+ - /* get the fragment */ - fragment = - gst_buffer_copy_region (in, GST_BUFFER_COPY_ALL, data - map.data, -@@ -2437,6 +2443,9 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, - GstFlowReturn ret; - GstBuffer *buffer; - -+ if (gst_buffer_get_size (in) < offset) -+ goto not_enough_data; -+ - buffer = gst_buffer_copy_region (in, GST_BUFFER_COPY_MEMORY, offset, -1); - - if (rmdemux->first_ts != -1 && timestamp > rmdemux->first_ts) -@@ -2467,9 +2476,19 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, - ret = gst_pad_push (stream->pad, buffer); - } - -+done: - gst_buffer_unref (in); - - return ret; -+ -+ /* ERRORS */ -+not_enough_data: -+ { -+ GST_ELEMENT_WARNING (rmdemux, STREAM, DECODE, ("Skipping bad packet."), -+ (NULL)); -+ ret = GST_FLOW_OK; -+ goto done; -+ } - } - - static GstFlowReturn -@@ -2490,6 +2509,9 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version) - data = map.data; - size = map.size; - -+ if (size < 4 + 6 + 1 + 2) -+ goto not_enough_data; -+ - /* stream number */ - id = RMDEMUX_GUINT16_GET (data); - -@@ -2525,6 +2547,9 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version) - - /* version 1 has an extra byte */ - if (version == 1) { -+ if (size < 1) -+ goto not_enough_data; -+ - data += 1; - size -= 1; - } -@@ -2596,6 +2621,16 @@ unknown_stream: - gst_buffer_unref (in); - return GST_FLOW_OK; - } -+ -+ /* ERRORS */ -+not_enough_data: -+ { -+ GST_ELEMENT_WARNING (rmdemux, STREAM, DECODE, ("Skipping bad packet."), -+ (NULL)); -+ gst_buffer_unmap (in, &map); -+ gst_buffer_unref (in); -+ return GST_FLOW_OK; -+ } - } - - gboolean --- -2.31.1 - -- cgit v1.2.3 From 2be0527df27158648e37d2b231398cc7af24f105 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 2 Oct 2021 00:29:20 -0400 Subject: gnu: gst-libav: Update to 1.19.2. * gnu/packages/gstreamer.scm (gst-libav): Update to 1.19.2. [source]: Re-indent origin. Delete patches field. [meson]: Use meson-0.55. * gnu/packages/patches/gst-libav-64channels-stack-corruption.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. --- gnu/local.mk | 1 - gnu/packages/gstreamer.scm | 21 +++++++-------- .../gst-libav-64channels-stack-corruption.patch | 31 ---------------------- 3 files changed, 10 insertions(+), 43 deletions(-) delete mode 100644 gnu/packages/patches/gst-libav-64channels-stack-corruption.patch diff --git a/gnu/local.mk b/gnu/local.mk index ddb2da13db..da73c0e6a7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1212,7 +1212,6 @@ dist_patch_DATA = \ %D%/packages/patches/grub-efi-fat-serial-number.patch \ %D%/packages/patches/grub-setup-root.patch \ %D%/packages/patches/gspell-dash-test.patch \ - %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-skip-oom-test.patch \ %D%/packages/patches/guile-2.2-skip-so-test.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 37a9b7291c..5d77d47e43 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -942,18 +942,17 @@ think twice about shipping them.") (define-public gst-libav (package (name "gst-libav") - (version "1.18.4") - (source - (origin - (method url-fetch) - (uri - (string-append - "https://gstreamer.freedesktop.org/src/" name "/" - name "-" version ".tar.xz")) - (patches (search-patches "gst-libav-64channels-stack-corruption.patch")) - (sha256 - (base32 "15n3x3vhshqa3icw93g4vqmqd46122anzqvfxwn6q8famlxlcjil")))) + (version "1.19.2") + (source (origin + (method url-fetch) + (uri(string-append + "https://gstreamer.freedesktop.org/src/" name "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "0rv4vxrqvlc8lm1afcg934k961gysx94xshmb5jv4xpwjkl8akzw")))) (build-system meson-build-system) + (arguments + `(#:meson ,meson-0.55)) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) diff --git a/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch b/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch deleted file mode 100644 index cc174e618d..0000000000 --- a/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch +++ /dev/null @@ -1,31 +0,0 @@ -Fix a stack corruption when handling files with more than 64 audio -channels: - -https://gstreamer.freedesktop.org/security/sa-2021-0005.html - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-libav/-/commit/dcea8baa14a5fc3b796d876baaf2f238546ba2b1 - -diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c -index b5be4bb7a5f2712f78383da9319754a8849e3307..be22f22cf5c7c7b22b13e44b10999adaacbcca2b 100644 ---- a/ext/libav/gstavcodecmap.c -+++ b/ext/libav/gstavcodecmap.c -@@ -102,7 +102,7 @@ gst_ffmpeg_channel_layout_to_gst (guint64 channel_layout, gint channels, - guint nchannels = 0; - gboolean none_layout = FALSE; - -- if (channel_layout == 0) { -+ if (channel_layout == 0 || channels > 64) { - nchannels = channels; - none_layout = TRUE; - } else { -@@ -163,7 +163,7 @@ gst_ffmpeg_channel_layout_to_gst (guint64 channel_layout, gint channels, - } else { - guint i; - -- for (i = 0; i < nchannels; i++) -+ for (i = 0; i < nchannels && i < 64; i++) - pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE; - } - } -- cgit v1.2.3 From f4d4ebfbe4c48e5c533ba1608e42d10c43e83207 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 2 Oct 2021 00:36:23 -0400 Subject: gnu: gst-editing-services: Update to 1.19.2. * gnu/packages/gstreamer.scm (gst-editing-services): Update to 1.19.2. [meson]: Use meson-0.55. --- gnu/packages/gstreamer.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 5d77d47e43..45648bf46e 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -972,7 +972,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") (define-public gst-editing-services (package (name "gst-editing-services") - (version "1.18.4") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append @@ -980,11 +980,12 @@ decoders, muxers, and demuxers provided by FFmpeg.") "gst-editing-services-" version ".tar.xz")) (sha256 (base32 - "010xg960qsh5dwmf0y9l1q13h0cymmrgapzla2zsw66ylxqbi1s6")))) + "007rd6vn9ly6djzgb8hilgj8rgdy2530w72vps0d0631fxckxh4g")))) (build-system meson-build-system) (arguments ;; FIXME: 16/22 failing tests. - `(#:tests? #f + `(#:meson ,meson-0.55 + #:tests? #f #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases))) -- cgit v1.2.3 From b2fe4c44e39f66d203d99b16aeed3bb69ccca6c8 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 2 Oct 2021 00:42:40 -0400 Subject: gnu: python-gst: Update to 1.19.2. * gnu/packages/gstreamer.scm (python-gst): Update to 1.19.2. [meson]: Use meson-0.55. --- gnu/packages/gstreamer.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 45648bf46e..63bbe7e434 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -1045,7 +1045,7 @@ given, also pass them to the build system instead of the ones used by PKG." (define-public python-gst (package (name "python-gst") - (version "1.18.2") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append @@ -1053,10 +1053,11 @@ given, also pass them to the build system instead of the ones used by PKG." "gst-python-" version ".tar.xz")) (sha256 (base32 - "171qxzndii7ynn9ag3a12h9vyydxzwy1j4ip3cb8hgim1dv0z7g1")))) + "1y5wkp0nzqks8q5dbqi0491yv2yia4jz3bwh7sa2v8whkg46v3c7")))) (build-system meson-build-system) (arguments - `(#:modules ((guix build meson-build-system) + `(#:meson ,meson-0.55 + #:modules ((guix build meson-build-system) (guix build utils) ((guix build python-build-system) #:prefix python:)) #:imported-modules (,@%meson-build-system-modules -- cgit v1.2.3 From 80ded5b280df348cba18a7f56601a96f56578632 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 5 Oct 2021 21:31:13 -0400 Subject: gnu: e2fsprogs: Update to 1.46.4. This resolves a test failure on armhf-linux (when building on a aarch64-linux system). * gnu/packages/linux.scm (e2fsprogs): Update to 1.46.4. Remove trailing #t. --- gnu/packages/linux.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5bb9bc9004..43b69133c7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2176,7 +2176,7 @@ module.") (define-public e2fsprogs (package (name "e2fsprogs") - (version "1.46.2") + (version "1.46.4") (source (origin (method url-fetch) (uri (string-append @@ -2185,7 +2185,7 @@ module.") "e2fsprogs-" version ".tar.xz")) (sha256 (base32 - "0s216nn0lv7s278v933a44fv1ibi900c94743gpp2kn9jlr0kai3")))) + "04wp77fg842dhribgn0xvbd77idh0n7a839ga4bwy78v7i9l445i")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux "lib"))) (native-inputs `(("pkg-config" ,pkg-config) @@ -2227,8 +2227,7 @@ module.") "INSTALL_SYMLINK = sh")) (substitute* (find-files "." "^Makefile.in$") (("#!/bin/sh") - (string-append "#!" (which "sh")))) - #t)) + (string-append "#!" (which "sh")))))) (add-after 'install 'install-libs (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -2243,8 +2242,7 @@ module.") (let ((archives (find-files lib "\\.a$"))) (for-each (lambda (file) (chmod file #o666)) - archives)) - #t)))))) + archives)))))))) (home-page "http://e2fsprogs.sourceforge.net/") (synopsis "Creating and checking ext2/ext3/ext4 file systems") (description -- cgit v1.2.3 From d2e85332dcc1e2d0ea440991a44a2b9b0d39745e Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 5 Oct 2021 22:51:47 -0400 Subject: gnu: lib2geom: Update to 1.1. * gnu/packages/graphics.scm (lib2geom): Update to 1.1. [source]: Remove patches, modules and snippet fields. [phases]: Remove trailing #t. * gnu/packages/patches/lib2geom-fix-tests.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. --- gnu/local.mk | 1 - gnu/packages/graphics.scm | 126 ++++++++--------- gnu/packages/patches/lib2geom-fix-tests.patch | 192 -------------------------- 3 files changed, 55 insertions(+), 264 deletions(-) delete mode 100644 gnu/packages/patches/lib2geom-fix-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index da73c0e6a7..30c62ba6aa 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1350,7 +1350,6 @@ dist_patch_DATA = \ %D%/packages/patches/ldns-drill-examples.patch \ %D%/packages/patches/leela-zero-gtest.patch \ %D%/packages/patches/less-hurd-path-max.patch \ - %D%/packages/patches/lib2geom-fix-tests.patch \ %D%/packages/patches/liba52-enable-pic.patch \ %D%/packages/patches/liba52-link-with-libm.patch \ %D%/packages/patches/liba52-set-soname.patch \ diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 3f2be5766c..de7cdc2232 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -21,7 +21,7 @@ ;;; Copyright © 2020 Jakub Kądziołka ;;; Copyright © 2020, 2021 Nicolas Goaziou ;;; Copyright © 2020 Raghav Gururajan -;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020, 2021 Maxim Cournoyer ;;; Copyright © 2020 Gabriel Arazas ;;; Copyright © 2021 Antoine Côté ;;; Copyright © 2021 Andy Tai @@ -828,79 +828,63 @@ exception-handling library.") (license license:bsd-3))) (define-public lib2geom - ;; Use the latest master commit, as the 1.0 release suffer build problems. - (let ((revision "4") - (commit "b29d60e49a58f4e8069544b44863b1a623e4ee59")) - (package - (name "lib2geom") - (version (git-version "1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/inkscape/lib2geom.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0xd8f3cgfnipdav4w8j54r7hzy9f3m7xk42ppcfhdjz2hriggyk6")) - (patches - ;; Patch submitted to upstream (see: - ;; https://gitlab.com/inkscape/lib2geom/-/merge_requests/32). - (search-patches "lib2geom-fix-tests.patch")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Fix py2geom module initialization (see: - ;; https://gitlab.com/inkscape/lib2geom/merge_requests/18). - (substitute* "src/py2geom/__init__.py" - (("_py2geom") "py2geom._py2geom")) - #t)))) - (build-system cmake-build-system) - (arguments - `(#:imported-modules ((guix build python-build-system) - ,@%cmake-build-system-modules) - #:configure-flags '("-D2GEOM_BUILD_SHARED=ON" - "-D2GEOM_BOOST_PYTHON=ON" - ;; Compiling the Cython bindings fail (see: - ;; https://gitlab.com/inkscape/lib2geom/issues/21). - "-D2GEOM_CYTHON_BINDINGS=OFF") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-python-lib-install-path - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((python-version (@ (guix build python-build-system) - python-version)) - (python-maj-min-version (python-version - (assoc-ref inputs "python"))) - (site-package (string-append - (assoc-ref outputs "out") - "/lib/python" python-maj-min-version - "/site-packages"))) - (substitute* '("src/cython/CMakeLists.txt" - "src/py2geom/CMakeLists.txt") - (("PYTHON_LIB_INSTALL \"[^\"]*\"") - (format #f "PYTHON_LIB_INSTALL ~s" site-package)))) - #t))))) - (native-inputs `(("python" ,python-wrapper) - ("googletest" ,googletest) - ("pkg-config" ,pkg-config))) - (inputs `(("cairo" ,cairo) - ("pycairo" ,python-pycairo) - ("double-conversion" ,double-conversion) - ("glib" ,glib) - ("gsl" ,gsl))) - (propagated-inputs - `(("boost" ,boost))) ;referred to in 2geom/pathvector.h. - (home-page "https://gitlab.com/inkscape/lib2geom/") - (synopsis "C++ 2D graphics library") - (description "2geom is a C++ library of mathematics for paths, curves, + (package + (name "lib2geom") + (version "1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/inkscape/lib2geom.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03bx9k1m4bfhmx0ldsg0bks6i8h7fmvl5vbg6gmpq0bk0nkmpnmv")))) + (build-system cmake-build-system) + (arguments + `(#:imported-modules ((guix build python-build-system) + ,@%cmake-build-system-modules) + #:configure-flags '("-D2GEOM_BUILD_SHARED=ON" + "-D2GEOM_BOOST_PYTHON=ON" + ;; Compiling the Cython bindings fail (see: + ;; https://gitlab.com/inkscape/lib2geom/issues/21). + "-D2GEOM_CYTHON_BINDINGS=OFF") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-python-lib-install-path + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((python-version (@ (guix build python-build-system) + python-version)) + (python-maj-min-version (python-version + (assoc-ref inputs "python"))) + (site-package (string-append + (assoc-ref outputs "out") + "/lib/python" python-maj-min-version + "/site-packages"))) + (substitute* '("src/cython/CMakeLists.txt" + "src/py2geom/CMakeLists.txt") + (("PYTHON_LIB_INSTALL \"[^\"]*\"") + (format #f "PYTHON_LIB_INSTALL ~s" site-package))))))))) + (native-inputs `(("python" ,python-wrapper) + ("googletest" ,googletest) + ("pkg-config" ,pkg-config))) + (inputs `(("cairo" ,cairo) + ("pycairo" ,python-pycairo) + ("double-conversion" ,double-conversion) + ("glib" ,glib) + ("gsl" ,gsl))) + (propagated-inputs + `(("boost" ,boost))) ;referred to in 2geom/pathvector.h. + (home-page "https://gitlab.com/inkscape/lib2geom/") + (synopsis "C++ 2D graphics library") + (description "2geom is a C++ library of mathematics for paths, curves, and other geometric calculations. Designed for vector graphics, it tackles Bézier curves, conic sections, paths, intersections, transformations, and basic geometries.") - ;; Because the library is linked with the GNU Scientific Library - ;; (GPLv3+), the combined work must be licensed as GPLv3+ (see: - ;; https://gitlab.com/inkscape/inkscape/issues/784). - (license license:gpl3+)))) + ;; Because the library is linked with the GNU Scientific Library + ;; (GPLv3+), the combined work must be licensed as GPLv3+ (see: + ;; https://gitlab.com/inkscape/inkscape/issues/784). + (license license:gpl3+))) (define-public pstoedit (package diff --git a/gnu/packages/patches/lib2geom-fix-tests.patch b/gnu/packages/patches/lib2geom-fix-tests.patch deleted file mode 100644 index 47e8f6e2ec..0000000000 --- a/gnu/packages/patches/lib2geom-fix-tests.patch +++ /dev/null @@ -1,192 +0,0 @@ -From 3e858cc87f2f8b7dc514a8ad7709c1f47f1f4cde Mon Sep 17 00:00:00 2001 -From: Maxim Cournoyer -Date: Wed, 17 Jun 2020 23:20:53 -0400 -Subject: [PATCH] tests: Fix tests on non-x86_64 platforms. - -On platform other than x86_64 such as aarch64-linux or i686-linux, -some double comparisons would fail. - -See . - -* tests/bezier-test.cpp: (Casteljau): Replace EXPECT_EQ by -EXPECT_near. -(Subdivide): Replace EXPECT_EQ by EXPECT_DOUBLE_EQ. -(Portion): Replace EXPECT_EQ by EXPECT_near. -* tests/ellipse-test.cpp (BezierIntersection): Lower error tolerance -from 6e-13 to 6e-12. -(LineIntersection): Replace EXPECT_DOUBLE_EQ by EXPECT_NEAR. -* tests/line-test.cpp (Reflection): Replace EXPECT_FLOAT_EQ BY -EXPECT_near. -(Coefficients): Skip test. -* tests/parallelogram-test.cpp (area): Replace EXPECT_EQ by -EXPECT_DOUBLE_EQ. ---- - tests/bezier-test.cpp | 31 +++++++++++++++++-------------- - tests/ellipse-test.cpp | 11 ++++++----- - tests/line-test.cpp | 11 +++++++---- - tests/parallelogram-test.cpp | 8 ++++---- - 4 files changed, 34 insertions(+), 27 deletions(-) - -diff --git a/tests/bezier-test.cpp b/tests/bezier-test.cpp -index 4054a654..46209f40 100644 ---- a/tests/bezier-test.cpp -+++ b/tests/bezier-test.cpp -@@ -152,11 +152,13 @@ TEST_F(BezierTest, Casteljau) { - EXPECT_vector_equal(right2, right); - - double vnone = casteljau_subdivision(t, &wiggle[0], NULL, NULL, wiggle.order()); -- EXPECT_EQ(vnone, vok); -+ EXPECT_near(vnone, vok, 1e-12); - } - } - - TEST_F(BezierTest, Portion) { -+ constexpr Coord eps{1e-12}; -+ - for (unsigned i = 0; i < 10000; ++i) { - double from = g_random_double_range(0, 1); - double to = g_random_double_range(0, 1); -@@ -165,8 +167,8 @@ TEST_F(BezierTest, Portion) { - Bezier result = portion(input, from, to); - - // the endpoints must correspond exactly -- EXPECT_EQ(result.at0(), input.valueAt(from)); -- EXPECT_EQ(result.at1(), input.valueAt(to)); -+ EXPECT_near(result.at0(), input.valueAt(from), eps); -+ EXPECT_near(result.at1(), input.valueAt(to), eps); - } - } - } -@@ -181,16 +183,16 @@ TEST_F(BezierTest, Subdivide) { - - // the endpoints must correspond exactly - // moreover, the subdivision point must be exactly equal to valueAt(t) -- EXPECT_EQ(result.first.at0(), input.at0()); -- EXPECT_EQ(result.first.at1(), result.second.at0()); -- EXPECT_EQ(result.second.at0(), input.valueAt(t)); -- EXPECT_EQ(result.second.at1(), input.at1()); -+ EXPECT_DOUBLE_EQ(result.first.at0(), input.at0()); -+ EXPECT_DOUBLE_EQ(result.first.at1(), result.second.at0()); -+ EXPECT_DOUBLE_EQ(result.second.at0(), input.valueAt(t)); -+ EXPECT_DOUBLE_EQ(result.second.at1(), input.at1()); - - // ditto for valueAt -- EXPECT_EQ(result.first.valueAt(0), input.valueAt(0)); -- EXPECT_EQ(result.first.valueAt(1), result.second.valueAt(0)); -- EXPECT_EQ(result.second.valueAt(0), input.valueAt(t)); -- EXPECT_EQ(result.second.valueAt(1), input.valueAt(1)); -+ EXPECT_DOUBLE_EQ(result.first.valueAt(0), input.valueAt(0)); -+ EXPECT_DOUBLE_EQ(result.first.valueAt(1), result.second.valueAt(0)); -+ EXPECT_DOUBLE_EQ(result.second.valueAt(0), input.valueAt(t)); -+ EXPECT_DOUBLE_EQ(result.second.valueAt(1), input.valueAt(1)); - - if (result.first.at1() != result.second.at0()) { - errors.push_back(std::pair(input, t)); -@@ -271,9 +273,10 @@ TEST_F(BezierTest, Deflate) { - EXPECT_FLOAT_EQ(0, b.at0()); - b = b.deflate(); - const double rootposition = (0.5-0.25) / (1-0.25); -- EXPECT_FLOAT_EQ(0, b.valueAt(rootposition)); -+ constexpr Coord eps{1e-12}; -+ EXPECT_near(0.0, b.valueAt(rootposition), eps); - b = b.subdivide(rootposition).second; -- EXPECT_FLOAT_EQ(0, b.at0()); -+ EXPECT_near(0.0, b.at0(), eps); - } - - TEST_F(BezierTest, Roots) { -@@ -364,7 +367,7 @@ TEST_F(BezierTest, Operators) { - for(int i = 0; i <= 16; i++) { - double t = i/16.0; - double b = B.valueAt(t); -- EXPECT_FLOAT_EQ(b*b, product.valueAt(t)); -+ EXPECT_near(b*b, product.valueAt(t), 1e-12); - } - } - } -diff --git a/tests/ellipse-test.cpp b/tests/ellipse-test.cpp -index 561c285a..8e4de12c 100644 ---- a/tests/ellipse-test.cpp -+++ b/tests/ellipse-test.cpp -@@ -158,13 +158,14 @@ TEST(EllipseTest, LineIntersection) { - std::vector xs = e.intersect(l); - - ASSERT_EQ(xs.size(), 2ul); -- EXPECT_FLOAT_EQ(xs[0].point()[X], 0); -- EXPECT_FLOAT_EQ(xs[0].point()[Y], -2); -- EXPECT_FLOAT_EQ(xs[1].point()[X], 9./5); -- EXPECT_FLOAT_EQ(xs[1].point()[Y], 8./5); - - // due to numeric imprecision when evaluating Ellipse, - // the points may deviate by around 2e-16 -+ EXPECT_NEAR(xs[0].point()[X], 0, 1e-15); -+ EXPECT_NEAR(xs[0].point()[Y], -2, 1e-15); -+ EXPECT_NEAR(xs[1].point()[X], 9./5, 1e-15); -+ EXPECT_NEAR(xs[1].point()[Y], 8./5, 1e-15); -+ - EXPECT_intersections_valid(e, l, xs, 1e-15); - } - -@@ -199,7 +200,7 @@ TEST(EllipseTest, BezierIntersection) { - std::vector xs = e.intersect(b); - - EXPECT_EQ(xs.size(), 2ul); -- EXPECT_intersections_valid(e, b, xs, 6e-13); -+ EXPECT_intersections_valid(e, b, xs, 6e-12); - } - - TEST(EllipseTest, Coefficients) { -diff --git a/tests/line-test.cpp b/tests/line-test.cpp -index 99546ddc..23991300 100644 ---- a/tests/line-test.cpp -+++ b/tests/line-test.cpp -@@ -91,10 +91,12 @@ TEST(LineTest, Reflection) { - - Point testra = pa * reflecta; - Point testrb = pb * reflectb; -- EXPECT_FLOAT_EQ(testra[X], ra[X]); -- EXPECT_FLOAT_EQ(testra[Y], ra[Y]); -- EXPECT_FLOAT_EQ(testrb[X], rb[X]); -- EXPECT_FLOAT_EQ(testrb[Y], rb[Y]); -+ -+ constexpr Coord eps{1e-12}; -+ EXPECT_near(testra[X], ra[X], eps); -+ EXPECT_near(testra[Y], ra[Y], eps); -+ EXPECT_near(testrb[X], rb[X], eps); -+ EXPECT_near(testrb[Y], rb[Y], eps); - } - - TEST(LineTest, RotationToZero) { -@@ -115,6 +117,7 @@ TEST(LineTest, RotationToZero) { - } - - TEST(LineTest, Coefficients) { -+ GTEST_SKIP() << "This test fails on i686-linux and aarch64-linux"; - std::vector lines; - lines.push_back(Line(Point(1e9,1e9), Point(1,1))); - //the case below will never work without normalizing the line -diff --git a/tests/parallelogram-test.cpp b/tests/parallelogram-test.cpp -index 8109eadd..70ccea13 100644 ---- a/tests/parallelogram-test.cpp -+++ b/tests/parallelogram-test.cpp -@@ -106,13 +106,13 @@ TEST(ParallelogramTest, area) - { - Rect r(2, 4, 7, 8); - Parallelogram p(r); -- EXPECT_EQ(p.area(), r.area()); -+ EXPECT_DOUBLE_EQ(p.area(), r.area()); - p *= Rotate(M_PI / 4.0); // 45° -- EXPECT_EQ(p.area(), r.area()); -+ EXPECT_DOUBLE_EQ(p.area(), r.area()); - p *= HShear(2); -- EXPECT_EQ(p.area(), r.area()); -+ EXPECT_DOUBLE_EQ(p.area(), r.area()); - p *= Scale(2); -- EXPECT_EQ(p.area(), r.area() * 4); -+ EXPECT_DOUBLE_EQ(p.area(), r.area() * 4); - } - - class ParallelogramTest --- -2.27.0 - -- cgit v1.2.3 From 431e641b83a7b3371e38c949095de448db576f22 Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Sat, 7 Aug 2021 10:35:34 +0200 Subject: gnu: pulseaudio: Update to 15.0. The 'bluez5' configuration options is removed to ease transformation of the package by users. It is auto-enabled by Meson based on the inputs available, so it's still enabled in this package. * gnu/packages/pulseaudio.scm (pulseaudio): Update to 15.0. [arguments]: Fix the 'oss-output' value and remove the 'bluez5' option. [inputs]: Add 'elogind'. Signed-off-by: Maxim Cournoyer --- gnu/packages/pulseaudio.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 62207822ea..191920e64a 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -51,6 +51,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages databases) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) @@ -192,7 +193,7 @@ rates.") (define-public pulseaudio (package (name "pulseaudio") - (version "14.2") + (version "15.0") (source (origin (method url-fetch) (uri (string-append @@ -200,7 +201,7 @@ rates.") name "-" version ".tar.xz")) (sha256 (base32 - "1wb6zyln49ca93rl9id8r873b2sb8l79122ck824kr0s5isgglvm")) + "1851rg4h6sjwanvd294hn52z321rc6vbs4gbfrlw53597dx8h2x4")) (modules '((guix build utils))) (snippet ;; Disable console-kit support by default since it's deprecated @@ -217,8 +218,7 @@ rates.") (arguments `(#:configure-flags (let ((out (assoc-ref %outputs "out"))) - (list "-Doss-output=disable" - "-Dbluez5=true" + (list "-Doss-output=disabled" "-Dlocalstatedir=/var" (string-append "-Dudevrulesdir=" out "/lib/udev/rules.d") @@ -256,6 +256,7 @@ rates.") ("libxcb" ,libxcb) ("libxtst" ,libxtst) + ("elogind" ,elogind) ("eudev" ,eudev))) ;for the detection of hardware audio devices (native-inputs `(("check" ,check) -- cgit v1.2.3 From f4271bbd79e5a85cdb32f4d79d6bb4d8c4739c69 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 2 Oct 2021 21:46:20 -0400 Subject: Revert commits made to resolve a gdk-pixbuf+svg propagation issue. Fixes . This reverts the following commits: - 42231bc (gnu: cheese: Propagate gdk-pixbuf+svg rather than gdk-pixbuf) - ad6a950 (gnu: mutter: Propagate gdk-pixbuf+svg rather than gdk-pixbuf) - 5e02d1a (gnu: cogl: Propagate gdk-pixbuf+svg rather than gdk-pixbuf) - 5c467b2 (gnu: libgweather: Propagate gdk-pixbuf+svg rather than gdk-pixbuf) - 26487f6 (gnu: librsvg-next: Do not propagate gdk-pixbuf) - d891922 (gnu: librsvg: Do not propagate gdk-pixbuf) - 22476d3 (gnu: libgsf: Do not propagate gdk-pixbuf) - 099ca0e (gnu: libnotify: Propagate gdk-pixbuf+svg rather than gdk-pixbuf) - fb6a1ff (gnu: appstream-glib: Propagate gdk-pixbuf+svg rather than gdk-pixbuf) - 4fb525d (gnu: weasyprint: Propagate gdk-pixbuf+svg rather than gdk-pixbuf) These commits were made to resolve a gdk-pixbuf loaders clash that could occur in a profile when both gdk-pixbuf and gdk-pixbuf+svg were propagated. Unfortunately, librsvg really needs to propagate gdk-pixbuf itself, which would introduce a cycle. Packages such as 'efl' were broken as a result of not propagating gdk-pixbuf. A more definitive fix will be proposed for core-updates, which includes a profile hook to generate the gdk-pixbuf loaders.cache file, as well as a build phase and search path specification, that should resolve the issue for good. --- gnu/packages/glib.scm | 4 ++-- gnu/packages/gnome.scm | 20 ++++++++++---------- gnu/packages/pdf.scm | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 79d2930101..d264d66b92 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2017 Petter ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Alex Vong -;;; Copyright © 2019, 2021 Maxim Cournoyer +;;; Copyright © 2019 Maxim Cournoyer ;;; Copyright © 2019 Giacomo Leidi ;;; Copyright © 2019, 2020 Marius Bakke ;;; Copyright © 2020 Nicolò Balzarotti @@ -1087,7 +1087,7 @@ Some codes examples can be find at: ("pkg-config" ,pkg-config))) (propagated-inputs `(("gcab" ,gcab) ; for .pc file - ("gdk-pixbuf" ,gdk-pixbuf+svg) ; for .pc file + ("gdk-pixbuf" ,gdk-pixbuf) ; for .pc file ("libuuid" ,util-linux "lib"))) ; for .pc file (inputs `(("glib" ,glib) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4df79bb442..a71e7f86dd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3063,7 +3063,7 @@ configuring CUPS.") #t))))) (propagated-inputs `(;; In Requires of libnotify.pc. - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib))) (inputs `(("gtk+" ,gtk+) @@ -3286,11 +3286,11 @@ XML/CSS rendering engine.") ("perl" ,perl) ("perl-xml-parser" ,perl-xml-parser))) (inputs - `(("gdk-pixbuf" ,gdk-pixbuf) - ("zlib" ,zlib) + `(("zlib" ,zlib) ("bzip2" ,bzip2))) (propagated-inputs - `(("glib" ,glib) + `(("gdk-pixbuf" ,gdk-pixbuf) + ("glib" ,glib) ("libxml2" ,libxml2))) (home-page "https://www.gnome.org/projects/libgsf") (synopsis "GNOME's Structured File Library") @@ -3357,11 +3357,11 @@ dealing with different structured file formats.") ("libcroco" ,libcroco) ("bzip2" ,bzip2) ("libgsf" ,libgsf) - ("gdk-pixbuf" ,gdk-pixbuf) ("libxml2" ,libxml2))) (propagated-inputs ;; librsvg-2.0.pc refers to all of that. `(("cairo" ,cairo) + ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib))) (home-page "https://wiki.gnome.org/LibRsvg") (synopsis "Render SVG files using Cairo") @@ -3536,7 +3536,6 @@ library.") `(("bzip2" ,bzip2) ("fontconfig" ,fontconfig) ("freetype" ,freetype) - ("gdk-pixbuf" ,gdk-pixbuf) ("harfbuzz" ,harfbuzz) ("libcroco" ,libcroco) ("libgsf" ,libgsf) @@ -3544,6 +3543,7 @@ library.") ("pango" ,pango))) (propagated-inputs `(("cairo" ,cairo) + ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib))) (synopsis "SVG rendering library") (description "Librsvg is a library to render SVG images to Cairo surfaces. @@ -5446,7 +5446,7 @@ service via the system message bus.") ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and ;; libsoup. `(("gtk+" ,gtk+) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("gdk-pixbuf" ,gdk-pixbuf) ("libxml2" ,libxml2) ("libsoup" ,libsoup) ("geocode-glib" ,geocode-glib))) @@ -5711,7 +5711,7 @@ throughout GNOME for API documentation).") ("pkg-config" ,pkg-config))) (propagated-inputs `(("glib" ,glib) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("gdk-pixbuf" ,gdk-pixbuf) ("libx11" ,libx11) ("libxext" ,libxext) ("libxfixes" ,libxfixes) @@ -7384,7 +7384,7 @@ to display dialog boxes from the commandline and shell scripts.") ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these: ("atk" ,atk) ("cairo" ,cairo) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib) ("json-glib" ,json-glib) ("libinput" ,libinput) @@ -10484,7 +10484,7 @@ photo-booth-like software, such as Cheese.") ("clutter-gst" ,clutter-gst) ("clutter-gtk" ,clutter-gtk) ("libcanberra" ,libcanberra) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib) ("gstreamer" ,gstreamer))) (inputs diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 78b52a44f8..a5b5442f29 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -20,7 +20,7 @@ ;;; Copyright © 2020, 2021 Nicolas Goaziou ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Timotej Lazar -;;; Copyright © 2020, 2021 Maxim Cournoyer +;;; Copyright © 2020 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -1525,7 +1525,7 @@ manipulating PDF documents from the command line. It supports ("glib" ,glib) ("pango" ,pango))) (propagated-inputs - `(("gdk-pixbuf" ,gdk-pixbuf+svg) + `(("gdk-pixbuf" ,gdk-pixbuf) ("python-cairocffi" ,python-cairocffi) ("python-cairosvg" ,python-cairosvg) ("python-cffi" ,python-cffi) -- cgit v1.2.3 From fd980bbf2f554bbc2bdc1404498c62b8a846cbb0 Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Tue, 14 Sep 2021 13:19:29 +0000 Subject: gnu: googletest: Update to 1.11.0. * gnu/packages/check.scm (googletest): Update to 1.11.0. --- gnu/packages/check.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 4701d61a9e..0bedd8b97d 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -676,7 +676,7 @@ test coverage and has a web user interface that will refresh automatically.") (define-public googletest (package (name "googletest") - (version "1.10.0") + (version "1.11.0") (source (origin (method git-fetch) @@ -685,7 +685,7 @@ test coverage and has a web user interface that will refresh automatically.") (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1zbmab9295scgg4z2vclgfgjchfjailjnvzc6f5x9jvlsdi3dpwz")))) + (base32 "0pd4y1gpx1z8fiyarkvqlmk6hbv0lc8fr00ivnsvqzi1xg34jfaa")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) -- cgit v1.2.3 From ce92aba5c762d6d5557c36eea93fefd25de5756c Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 22:40:30 -0400 Subject: gnu: abseil-cpp: Remove googletest patch. * gnu/packages/patches/abseil-cpp-fix-gtest.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. * gnu/packages/cpp.scm (abseil-cpp)[source]: Remove patch. Co-authored-by: Greg Hogan --- gnu/local.mk | 1 - gnu/packages/cpp.scm | 5 +---- gnu/packages/patches/abseil-cpp-fix-gtest.patch | 16 ---------------- 3 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 gnu/packages/patches/abseil-cpp-fix-gtest.patch diff --git a/gnu/local.mk b/gnu/local.mk index 30c62ba6aa..5f18b3e8c5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -817,7 +817,6 @@ dist_patch_DATA = \ %D%/packages/patches/abcl-fix-build-xml.patch \ %D%/packages/patches/ableton-link-system-libraries-debian.patch \ %D%/packages/patches/abiword-explictly-cast-bools.patch \ - %D%/packages/patches/abseil-cpp-fix-gtest.patch \ %D%/packages/patches/abseil-cpp-fix-strerror_test.patch \ %D%/packages/patches/adb-add-libraries.patch \ %D%/packages/patches/adb-libssl_11-compatibility.patch \ diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 4af71ba93a..207129cbf8 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -754,11 +754,8 @@ point and then, after each tween step, plugging back the result.") (sha256 (base32 "1p4djhm1f011ficbjjxx3n8428p8481p20j4glpaawnpsi362hkl")) - ;; Remove after next googletest release and update. (patches - (search-patches - "abseil-cpp-fix-gtest.patch" - "abseil-cpp-fix-strerror_test.patch")))) + (search-patches "abseil-cpp-fix-strerror_test.patch")))) (build-system cmake-build-system) (arguments `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON" diff --git a/gnu/packages/patches/abseil-cpp-fix-gtest.patch b/gnu/packages/patches/abseil-cpp-fix-gtest.patch deleted file mode 100644 index 38971448f3..0000000000 --- a/gnu/packages/patches/abseil-cpp-fix-gtest.patch +++ /dev/null @@ -1,16 +0,0 @@ -The GTEST_ALLOW_UNINSTANTIATED_PARAMTERIZED_TEST macro was added to googletest -in commit 0b024bd9 on master. It has been used in an abseil-cpp release before -a googletest release. - ---- a/absl/container/internal/unordered_map_modifiers_test.h -+++ b/absl/container/internal/unordered_map_modifiers_test.h -@@ -286,7 +286,9 @@ class UniquePtrModifiersTest : public ::testing::Test { - } - }; - -+#ifdef GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST - GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(UniquePtrModifiersTest); -+#endif - - TYPED_TEST_SUITE_P(UniquePtrModifiersTest); - -- cgit v1.2.3 From 302a9111df6bfbe39d6687f1d428dc9028675d80 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 22:44:39 -0400 Subject: gnu: abseil-cpp: Update to 20210324.2. But keep the older variant for Tensorflow. * gnu/packages/cpp.scm (abseil-cpp-20200923.3): Renamed older variant. (abseil-cpp): New variable. * gnu/packages/machine-learning.scm (tensorflow-lite) [inputs]: Adjust to use the older abseil-cpp-20200923.3. * gnu/packages/rpc.scm (grpc-1.16.1)[native-inputs]: Likewise. Co-authored-by: Greg Hogan --- gnu/packages/cpp.scm | 23 ++++++++++++++++++++++- gnu/packages/machine-learning.scm | 2 +- gnu/packages/rpc.scm | 10 ++++++---- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 207129cbf8..dce137aca9 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -741,7 +741,8 @@ other values of screen objects, by setting their values as the tween starting point and then, after each tween step, plugging back the result.") (license license:expat))) -(define-public abseil-cpp +;;; This older LTS release is kept for tensorflow. +(define-public abseil-cpp-20200923.3 (package (name "abseil-cpp") (version "20200923.3") @@ -788,6 +789,26 @@ augment the C++ standard library. The Abseil library code is collected from Google's C++ code base.") (license license:asl2.0))) +(define-public abseil-cpp + (let ((base abseil-cpp-20200923.3)) + (package/inherit base + (name "abseil-cpp") + (version "20210324.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abseil/abseil-cpp") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g9rbhk3mwjdfxk7cscd04vm8fphd5flz9yykpgvyy1nwa34zk3x")))) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:configure-flags flags) + `(cons* "-DBUILD_TESTING=ON" + (delete "-DABSL_RUN_TESTS=ON" ,flags)))))))) + (define-public pegtl (package (name "pegtl") diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 029422677a..d709120f91 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -2239,7 +2239,7 @@ advanced research.") (install-file file target-dir))) (find-files "." "\\.h$"))))))))) (inputs - `(("abseil-cpp" ,abseil-cpp) + `(("abseil-cpp" ,abseil-cpp-20200923.3) ("eigen" ,eigen-for-tensorflow-lite) ("flatbuffers" ,flatbuffers) ("python" ,python))) diff --git a/gnu/packages/rpc.scm b/gnu/packages/rpc.scm index f02fa66f6c..0ff8363047 100644 --- a/gnu/packages/rpc.scm +++ b/gnu/packages/rpc.scm @@ -152,11 +152,13 @@ browsers to backend services.") "src/core/lib/gpr/log_posix.cc" "src/core/lib/iomgr/ev_epollex_linux.cc") (("gettid\\(") - "sys_gettid(")) - #t)))))) + "sys_gettid(")))))))) (native-inputs - `(("protobuf" ,protobuf-3.6) - ,@(alist-delete "protobuf" (package-native-inputs grpc)))))) + `(("abseil-cpp" ,abseil-cpp-20200923.3) + ("protobuf" ,protobuf-3.6) + ,@(fold alist-delete (package-native-inputs grpc) + '("abseil-cpp" + "protobuf")))))) (define-public python-grpcio (package -- cgit v1.2.3 From 7aba66f76f4f45bdd0388a38e364a65f668fa091 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 3 Sep 2021 10:32:38 -0400 Subject: gnu: mozjs-78: Update to 78.13.0. * gnu/packages/gnuzilla.scm (mozjs-78): Update to 78.13.0. --- gnu/packages/gnuzilla.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 9f6e1f24e1..de53d4ef30 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -418,7 +418,7 @@ in C/C++.") (define-public mozjs-78 (package (inherit mozjs-60) - (version "78.5.0") + (version "78.13.0") (source (origin (method url-fetch) ;; TODO: Switch to IceCat source once available on ftp.gnu.org. @@ -427,7 +427,7 @@ in C/C++.") version "esr.source.tar.xz")) (sha256 (base32 - "1442yjmwz69hkfcvh8kkb60jf4c9ms0pac04nc3xw2da13v4zxai")))) + "0v2g5clp9qlsbqfjb6yz614nq8x8c4k1p6m4axyv6g27qbiaky8r")))) (arguments `(#:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums' #:modules ((guix build cargo-utils) -- cgit v1.2.3 From 9dbfd4ab086d9a2e4b510d88ca2d3e5c4937971b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 9 Oct 2021 22:35:19 -0400 Subject: gnu: Add a missing copyright. This adjustment is made considering the contributions to the (gnu packages polkit) module in commits cb151c68bf and 222e3319bd. Suggested-by: Morgan Smith --- gnu/packages/polkit.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index f495d51c83..0ce7747eb1 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Andreas Enge ;;; Copyright © 2015 Andy Wingo +;;; Copyright © 2015 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Huang Ying -- cgit v1.2.3 From 9c0c07e4af05fead9da94e381ade296f1daf0d05 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 11:56:47 -0400 Subject: gnu: polkit: Update to 0.120 and ungraft. * gnu/packages/polkit.scm (polkit): Update to 0.120. [origin]: Update URL and remove libsystemd-login substitution. Remove replacement. [inputs]: Update mozjs-60 to mozjs-78. [native-inputs]: Add libxslt and docbook-xsl for manpage generation. [phases]{fix-manpage-generation}: New phase. (polkit/fixed): Delete package. * gnu/packages/patches/polkit-CVE-2021-3560.patch: Delete file. * gnu/local.mk: De-register it. Co-authored-by: Morgan Smith --- gnu/local.mk | 1 - gnu/packages/patches/polkit-CVE-2021-3560.patch | 21 ---------- gnu/packages/polkit.scm | 51 +++++++++---------------- 3 files changed, 19 insertions(+), 54 deletions(-) delete mode 100644 gnu/packages/patches/polkit-CVE-2021-3560.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5f18b3e8c5..f3d86f284a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1601,7 +1601,6 @@ dist_patch_DATA = \ %D%/packages/patches/plib-CVE-2011-4620.patch \ %D%/packages/patches/plib-CVE-2012-4552.patch \ %D%/packages/patches/plotutils-spline-test.patch \ - %D%/packages/patches/polkit-CVE-2021-3560.patch \ %D%/packages/patches/portaudio-audacity-compat.patch \ %D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/postgresql-disable-resolve_symlinks.patch \ diff --git a/gnu/packages/patches/polkit-CVE-2021-3560.patch b/gnu/packages/patches/polkit-CVE-2021-3560.patch deleted file mode 100644 index 9aa0373fda..0000000000 --- a/gnu/packages/patches/polkit-CVE-2021-3560.patch +++ /dev/null @@ -1,21 +0,0 @@ -This patch fixes CVE-2021-3560, "local privilege escalation using -polkit_system_bus_name_get_creds_sync()": - - https://www.openwall.com/lists/oss-security/2021/06/03/1 - -Patch from . - -diff --git a/src/polkit/polkitsystembusname.c b/src/polkit/polkitsystembusname.c -index 8daa12cb9093c1d765c7b83654a2b8d0d382378e..8ed13631508dd96624898df90ee2ece4dcf3e1e5 100644 ---- a/src/polkit/polkitsystembusname.c -+++ b/src/polkit/polkitsystembusname.c -@@ -435,6 +435,9 @@ polkit_system_bus_name_get_creds_sync (PolkitSystemBusName *system_bus - while (!((data.retrieved_uid && data.retrieved_pid) || data.caught_error)) - g_main_context_iteration (tmp_context, TRUE); - -+ if (data.caught_error) -+ goto out; -+ - if (out_uid) - *out_uid = data.uid; - if (out_pid) diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index 0ce7747eb1..0f89bd051c 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Huang Ying ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ricardo Wurmus +;;; Copyright © 2021 Morgan Smith ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) + #:use-module (gnu packages docbook) #:use-module (gnu packages gnuzilla) #:use-module (gnu packages linux) #:use-module (gnu packages nss) @@ -44,8 +46,7 @@ (define-public polkit (package (name "polkit") - (version "0.116") - (replacement polkit/fixed) + (version "0.120") (source (origin (method url-fetch) (uri (string-append @@ -53,7 +54,7 @@ name "-" version ".tar.gz")) (sha256 (base32 - "1c9lbpndh5zis22f154vjrhnqw65z8s85nrgl42v738yf6g0q5w8")) + "00zfg9b9ivkcj2jcf5b92cpvvyljz8cmfwj86lkvy5rihnd5jypf")) (modules '((guix build utils))) (snippet '(begin @@ -62,36 +63,21 @@ (substitute* "test/Makefile.in" (("SUBDIRS = mocklibc . polkit polkitbackend") "SUBDIRS = mocklibc . polkit")) - (substitute* "configure" - ;; Replace libsystemd-login with libelogind. - (("libsystemd-login") "libelogind") - ;; Skip the sanity check that the current system runs - ;; systemd. - (("test ! -d /sys/fs/cgroup/systemd/") "false")) - (substitute* "src/polkit/polkitunixsession-systemd.c" - (("systemd") "elogind")) - (substitute* "src/polkitbackend/polkitbackendsessionmonitor-systemd.c" - (("systemd") "elogind")) - (substitute* "src/polkitbackend/polkitbackendjsauthority.cpp" - (("systemd") "elogind")) - ;; Guix System's polkit service stores actions under ;; /etc/polkit-1/actions. (substitute* "src/polkitbackend/polkitbackendinteractiveauthority.c" (("PACKAGE_DATA_DIR \"/polkit-1/actions\"") "PACKAGE_SYSCONF_DIR \"/polkit-1/actions\"")) - ;; Set the setuid helper's real location. (substitute* "src/polkitagent/polkitagentsession.c" (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"") - "\"/run/setuid-programs/polkit-agent-helper-1\"")) - #t)))) + "\"/run/setuid-programs/polkit-agent-helper-1\"")))))) (build-system gnu-build-system) (inputs `(("expat" ,expat) ("linux-pam" ,linux-pam) ("elogind" ,elogind) - ("mozjs" ,mozjs-60) + ("mozjs" ,mozjs-78) ("nspr" ,nspr))) (propagated-inputs `(("glib" ,glib))) ; required by polkit-gobject-1.pc @@ -99,7 +85,9 @@ `(("pkg-config" ,pkg-config) ("glib:bin" ,glib "bin") ; for glib-mkenums ("intltool" ,intltool) - ("gobject-introspection" ,gobject-introspection))) + ("gobject-introspection" ,gobject-introspection) + ("libxslt" ,libxslt) ; for man page generation + ("docbook-xsl" ,docbook-xsl))) ; for man page generation (arguments `(#:configure-flags '("--sysconfdir=/etc" "--enable-man-pages") @@ -113,8 +101,15 @@ (("@INTROSPECTION_GIRDIR@") (string-append out "/share/gir-1.0/")) (("@INTROSPECTION_TYPELIBDIR@") - (string-append out "/lib/girepository-1.0/"))) - #t))) + (string-append out "/lib/girepository-1.0/")))))) + (add-after 'unpack 'fix-manpage-generation + (lambda* (#:key inputs #:allow-other-keys) + (let ((xsldoc (string-append (assoc-ref inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl)))) + (substitute* '("docs/man/Makefile.am" "docs/man/Makefile.in") + (("http://docbook.sourceforge.net/release/xsl/current") + xsldoc))))) (replace 'install (lambda* (#:key outputs (make-flags '()) #:allow-other-keys) @@ -126,8 +121,7 @@ (string-append "sysconfdir=" out "/etc") (string-append "polkit_actiondir=" out "/share/polkit-1/actions") - make-flags) - #t)))))) + make-flags))))))) (home-page "https://www.freedesktop.org/wiki/Software/polkit/") (synopsis "Authorization API for privilege management") (description "Polkit is an application-level toolkit for defining and @@ -137,13 +131,6 @@ making process with respect to granting access to privileged operations for unprivileged applications.") (license lgpl2.0+))) -(define polkit/fixed - (package - (inherit polkit) - (source (origin - (inherit (package-source polkit)) - (patches (search-patches "polkit-CVE-2021-3560.patch")))))) - (define-public polkit-qt (package (name "polkit-qt") -- cgit v1.2.3 From 0973e2af49c12adc31a761b7c38400c748cc4c9a Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 14:31:54 -0400 Subject: Revert gstreamer update to 1.19.2. This reverts commits from e49190cf2befec56246c2baa8697e30c7ba491ac to b2fe4c44e39f66d203d99b16aeed3bb69ccca6c8. Reason: 1.19 is an unstable (development) release rather than a stable one. --- gnu/local.mk | 7 + gnu/packages/aidc.scm | 33 ++- gnu/packages/gstreamer.scm | 122 ++++++---- .../gst-libav-64channels-stack-corruption.patch | 31 +++ .../patches/gst-plugins-bad-fix-overflow.patch | 263 +++++++++++++++++++++ .../gst-plugins-base-fix-id3v2-invalid-read.patch | 40 ++++ .../patches/gst-plugins-good-CVE-2021-3497.patch | 174 ++++++++++++++ .../patches/gst-plugins-good-CVE-2021-3498.patch | 22 ++ .../patches/gst-plugins-good-fix-test.patch | 94 ++++++++ .../gst-plugins-ugly-fix-out-of-bound-reads.patch | 119 ++++++++++ 10 files changed, 846 insertions(+), 59 deletions(-) create mode 100644 gnu/packages/patches/gst-libav-64channels-stack-corruption.patch create mode 100644 gnu/packages/patches/gst-plugins-bad-fix-overflow.patch create mode 100644 gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch create mode 100644 gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch create mode 100644 gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch create mode 100644 gnu/packages/patches/gst-plugins-good-fix-test.patch create mode 100644 gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch diff --git a/gnu/local.mk b/gnu/local.mk index f3d86f284a..1cb00f696a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1211,6 +1211,13 @@ dist_patch_DATA = \ %D%/packages/patches/grub-efi-fat-serial-number.patch \ %D%/packages/patches/grub-setup-root.patch \ %D%/packages/patches/gspell-dash-test.patch \ + %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ + %D%/packages/patches/gst-plugins-bad-fix-overflow.patch \ + %D%/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch \ + %D%/packages/patches/gst-plugins-good-fix-test.patch \ + %D%/packages/patches/gst-plugins-good-CVE-2021-3497.patch \ + %D%/packages/patches/gst-plugins-good-CVE-2021-3498.patch \ + %D%/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-skip-oom-test.patch \ %D%/packages/patches/guile-2.2-skip-so-test.patch \ diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index c9a70c9d9b..3db631d92e 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -5,7 +5,6 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Guillaume Le Vaillant ;;; Copyright © 2020 Leo Famulari -;;; Copyright © 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,7 +44,7 @@ (define-public zxing-cpp (package (name "zxing-cpp") - (version "1.2.0") + (version "1.0.8") (source (origin (method git-fetch) @@ -55,14 +54,32 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1gjj9c7h634rrmmgzbc7cxjqsxdq0paj6113k02ncjm1s9abk7ik")))) + (base32 "011sq8wcjfxbnd8sj6bf2fgkamlp8gj6q835g61c952npvwsnl71")))) + (native-inputs + `(("googletest-source" ,(package-source googletest)))) (build-system cmake-build-system) (arguments - ;; The test suite build system is written in a way that required external - ;; libraries such as googletest, fmt and others are to be fetched from - ;; the network (see: https://github.com/nu-book/zxing-cpp/issues/260). - `(#:tests? #f - #:configure-flags '("-DBUILD_BLACKBOX_TESTS=OFF"))) + `(#:out-of-source? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-googletest + ;; Copy the googletest sources to where the CMake build expects them. + (lambda* (#:key inputs #:allow-other-keys) + (let ((source (assoc-ref inputs "googletest-source")) + (target "test/unit/googletest-src")) + (mkdir-p target) + (copy-recursively source target) + ;; Disable downloading via ExternalProject. + (substitute* "test/unit/CMakeLists.txt.in" + (("ExternalProject_Add\\(") "message(")) + #t))) + (replace 'check + (lambda _ + (with-directory-excursion "test/unit" + (invoke "cmake" ".") + (invoke "make") + (invoke "./ZXingUnitTest")) + #t))))) (synopsis "C++ port of ZXing") (description "ZXing-CPP is a barcode scanning library.") (home-page "https://github.com/nu-book/zxing-cpp") diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 63bbe7e434..1b3e114f4b 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -10,7 +10,6 @@ ;;; Copyright © 2019, 2020 Marius Bakke ;;; Copyright © 2020 Liliana Marie Prikler ;;; Copyright © 2020 Michael Rohleder -;;; Copyright © 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,7 +43,6 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) - #:use-module (gnu packages build-tools) #:use-module (gnu packages cdrom) #:use-module (gnu packages curl) #:use-module (gnu packages compression) @@ -411,7 +409,7 @@ arrays of data.") (define-public gstreamer-docs (package (name "gstreamer-docs") - (version "1.19.2") + (version "1.18.2") (source (origin (method url-fetch) (uri (string-append @@ -419,7 +417,7 @@ arrays of data.") "/gstreamer-docs-" version ".tar.xz")) (sha256 (base32 - "1isrp3c9gm59br9vbidd1sgqdjgl1ka2p269bqxmh5dcn4f2gz6a")))) + "07hrgn11ll16yahyyh5684k8ms1j9npsyb8lj0skwbapin4czshm")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -437,7 +435,8 @@ arrays of data.") (invoke (string-append tar "/bin/tar") "-xvf" source "--strip-components=3" (string-append ,name "-" ,version - "/devhelp/books/GStreamer"))))))) + "/devhelp/books/GStreamer"))) + #t)))) (native-inputs `(("tar" ,tar) ("xz" ,xz))) @@ -467,12 +466,13 @@ the GStreamer multimedia framework.") (("'CK_DEFAULT_TIMEOUT', '[0-9]*'") "'CK_DEFAULT_TIMEOUT', '600'") (("timeout ?: .*\\)") - "timeout: 90 * 60)")))))) + "timeout: 90 * 60)")) + #t)))) (define-public gstreamer (package (name "gstreamer") - (version "1.19.2") + (version "1.18.4") (source (origin (method url-fetch) @@ -481,13 +481,26 @@ the GStreamer multimedia framework.") version ".tar.xz")) (sha256 (base32 - "03bfgsxd3njkaa5vm99hi36b4n98ywand60h3p18jlqyjfjpnnvf")))) + "1igv9l4hm21kp1jmlwlagzs7ly1vaxv1sbda29q8247372dwkvls")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.55 - #:phases + `(#:phases (modify-phases %standard-phases - ,@%common-gstreamer-phases))) + ,@%common-gstreamer-phases + ;; FIXME: Since switching to the meson-build-system, two tests + ;; started failing on i686. See + ;; . + ,@(if (string-prefix? "i686" (or (%current-target-system) + (%current-system))) + `((add-after 'unpack 'disable-some-tests + (lambda _ + (substitute* "tests/check/gst/gstsystemclock.c" + (("tcase_add_test \\(tc_chain, test_stress_cleanup_unschedule.*") + "") + (("tcase_add_test \\(tc_chain, test_stress_reschedule.*") + "")) + #t))) + '())))) (propagated-inputs ;; In gstreamer-1.0.pc: ;; Requires: glib-2.0, gobject-2.0 @@ -532,15 +545,16 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.19.2") + (version "1.18.4") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) + (patches (search-patches "gst-plugins-base-fix-id3v2-invalid-read.patch")) (sha256 (base32 - "04x5666vgg89dd9psxmnr99dszk8ykkc9dclg2ln2sq07kyh9qyd")))) + "08w3ivbc6n4vdds2ap6q7l8zdk9if8417nznyqidf0adm0lk5r99")))) (build-system meson-build-system) (propagated-inputs `(("glib" ,glib) ;required by gstreamer-sdp-1.0.pc @@ -583,14 +597,14 @@ This package provides the core library and elements.") ("gettext" ,gettext-minimal) ("xorg-server" ,xorg-server-for-tests))) (arguments - `(#:meson ,meson-0.55 - #:phases + `(#:phases (modify-phases %standard-phases ,@%common-gstreamer-phases (add-before 'configure 'patch (lambda _ (substitute* "tests/check/libs/pbutils.c" - (("/bin/sh") (which "sh"))))) + (("/bin/sh") (which "sh"))) + #t)) (add-before 'check 'pre-check (lambda _ ;; Tests require a running X server. @@ -601,7 +615,8 @@ This package provides the core library and elements.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0")))))) + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) (home-page "https://gstreamer.freedesktop.org/") (synopsis "Plugins for the GStreamer multimedia library") @@ -612,7 +627,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.19.2") + (version "1.18.4") (source (origin (method url-fetch) @@ -620,12 +635,14 @@ for the GStreamer multimedia library.") (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) + (patches (search-patches "gst-plugins-good-fix-test.patch" + "gst-plugins-good-CVE-2021-3497.patch" + "gst-plugins-good-CVE-2021-3498.patch")) (sha256 - (base32 "0bjfipap6wc3w28hgf817hc6jvjbblkjil42a356vg242412xsab")))) + (base32 "1c1rpq709cy8maaykyn1n0kckj9c6fl3mhvixkk6xmdwkcx0xrdn")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.55 - #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases @@ -639,7 +656,8 @@ for the GStreamer multimedia library.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0")))))) + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") @@ -702,18 +720,18 @@ model to base your own plug-in on, here it is.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.19.2") + (version "1.18.4") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) + (patches (search-patches "gst-plugins-bad-fix-overflow.patch")) (sha256 (base32 - "0y895s0jpfdpdqh2n55ki6gzvji5228v7z541if2xjgjka5gk0jk")))) + "0py8k4pbalm9mxkpjbjxis0gp7g74wg5g4yax5q8rccmany0ds3l")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.55 - #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases @@ -750,7 +768,8 @@ model to base your own plug-in on, here it is.") ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932 ((".*elements/curlhttpsrc\\.c.*") "") ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412 - ((".*elements/dtls\\.c.*") ""))))) + ((".*elements/dtls\\.c.*") "")) + #t))) (add-before 'check 'pre-check (lambda _ ;; Tests require a running X server. @@ -761,7 +780,8 @@ model to base your own plug-in on, here it is.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0")))))) + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) (propagated-inputs `(("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base))) @@ -883,19 +903,19 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.19.2") + (version "1.18.4") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) + (patches (search-patches "gst-plugins-ugly-fix-out-of-bound-reads.patch")) (sha256 - (base32 "1pwz68qg40018ai655fdrjn5clmn0gp2b7dik0jzwx0fzbwzr87j")))) + (base32 "0g6i4db1883q3j0l2gdv46fcqwiiaw63n6mhvsfcms1i1p7g1391")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.55 - #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases @@ -909,7 +929,8 @@ par compared to the rest.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0")))))) + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") @@ -942,17 +963,18 @@ think twice about shipping them.") (define-public gst-libav (package (name "gst-libav") - (version "1.19.2") - (source (origin - (method url-fetch) - (uri(string-append - "https://gstreamer.freedesktop.org/src/" name "/" - name "-" version ".tar.xz")) - (sha256 - (base32 "0rv4vxrqvlc8lm1afcg934k961gysx94xshmb5jv4xpwjkl8akzw")))) + (version "1.18.4") + (source + (origin + (method url-fetch) + (uri + (string-append + "https://gstreamer.freedesktop.org/src/" name "/" + name "-" version ".tar.xz")) + (patches (search-patches "gst-libav-64channels-stack-corruption.patch")) + (sha256 + (base32 "15n3x3vhshqa3icw93g4vqmqd46122anzqvfxwn6q8famlxlcjil")))) (build-system meson-build-system) - (arguments - `(#:meson ,meson-0.55)) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -972,7 +994,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") (define-public gst-editing-services (package (name "gst-editing-services") - (version "1.19.2") + (version "1.18.4") (source (origin (method url-fetch) (uri (string-append @@ -980,12 +1002,11 @@ decoders, muxers, and demuxers provided by FFmpeg.") "gst-editing-services-" version ".tar.xz")) (sha256 (base32 - "007rd6vn9ly6djzgb8hilgj8rgdy2530w72vps0d0631fxckxh4g")))) + "010xg960qsh5dwmf0y9l1q13h0cymmrgapzla2zsw66ylxqbi1s6")))) (build-system meson-build-system) (arguments ;; FIXME: 16/22 failing tests. - `(#:meson ,meson-0.55 - #:tests? #f + `(#:tests? #f #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:phases (modify-phases %standard-phases ,@%common-gstreamer-phases))) @@ -1045,7 +1066,7 @@ given, also pass them to the build system instead of the ones used by PKG." (define-public python-gst (package (name "python-gst") - (version "1.19.2") + (version "1.18.2") (source (origin (method url-fetch) (uri (string-append @@ -1053,11 +1074,10 @@ given, also pass them to the build system instead of the ones used by PKG." "gst-python-" version ".tar.xz")) (sha256 (base32 - "1y5wkp0nzqks8q5dbqi0491yv2yia4jz3bwh7sa2v8whkg46v3c7")))) + "171qxzndii7ynn9ag3a12h9vyydxzwy1j4ip3cb8hgim1dv0z7g1")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.55 - #:modules ((guix build meson-build-system) + `(#:modules ((guix build meson-build-system) (guix build utils) ((guix build python-build-system) #:prefix python:)) #:imported-modules (,@%meson-build-system-modules diff --git a/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch b/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch new file mode 100644 index 0000000000..cc174e618d --- /dev/null +++ b/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch @@ -0,0 +1,31 @@ +Fix a stack corruption when handling files with more than 64 audio +channels: + +https://gstreamer.freedesktop.org/security/sa-2021-0005.html + +Patch copied from upstream source repository: + +https://gitlab.freedesktop.org/gstreamer/gst-libav/-/commit/dcea8baa14a5fc3b796d876baaf2f238546ba2b1 + +diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c +index b5be4bb7a5f2712f78383da9319754a8849e3307..be22f22cf5c7c7b22b13e44b10999adaacbcca2b 100644 +--- a/ext/libav/gstavcodecmap.c ++++ b/ext/libav/gstavcodecmap.c +@@ -102,7 +102,7 @@ gst_ffmpeg_channel_layout_to_gst (guint64 channel_layout, gint channels, + guint nchannels = 0; + gboolean none_layout = FALSE; + +- if (channel_layout == 0) { ++ if (channel_layout == 0 || channels > 64) { + nchannels = channels; + none_layout = TRUE; + } else { +@@ -163,7 +163,7 @@ gst_ffmpeg_channel_layout_to_gst (guint64 channel_layout, gint channels, + } else { + guint i; + +- for (i = 0; i < nchannels; i++) ++ for (i = 0; i < nchannels && i < 64; i++) + pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE; + } + } diff --git a/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch b/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch new file mode 100644 index 0000000000..95ab13db51 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch @@ -0,0 +1,263 @@ +Fix an overflow when calculating something for AVC/HEVC videos: + +https://security-tracker.debian.org/tracker/TEMP-0000000-C6AAE1 + +Patch copied from upstream source repository: + +https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/0cfbf7ad91c7f121192c8ce135769f8eb276c41d +From 0cfbf7ad91c7f121192c8ce135769f8eb276c41d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= +Date: Tue, 23 Mar 2021 19:19:14 +0200 +Subject: [PATCH] h2645parser: Catch overflows in AVC/HEVC NAL unit length + calculations + +Offset and size are stored as 32 bit guint and might overflow when +adding the nal_length_size, so let's avoid that. + +For the size this would happen if the AVC/HEVC NAL unit size happens to +be stored in 4 bytes and is 4294967292 or higher, which is likely +corrupted data anyway. + +For the offset this is something for the caller of these functions to +take care of but is unlikely to happen as it would require parsing on a +>4GB buffer. + +Allowing these overflows causes all kinds of follow-up bugs in the +h2645parse elements, ranging from infinite loops and memory leaks to +potential memory corruptions. + +Part-of: +--- + gst-libs/gst/codecparsers/gsth264parser.c | 16 +++++- + gst-libs/gst/codecparsers/gsth265parser.c | 16 +++++- + tests/check/libs/h264parser.c | 60 +++++++++++++++++++++++ + tests/check/libs/h265parser.c | 60 +++++++++++++++++++++++ + 4 files changed, 150 insertions(+), 2 deletions(-) + +diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c +index 012f1d0d7..68aa25068 100644 +--- a/gst-libs/gst/codecparsers/gsth264parser.c ++++ b/gst-libs/gst/codecparsers/gsth264parser.c +@@ -1556,6 +1556,14 @@ gst_h264_parser_identify_nalu_avc (GstH264NalParser * nalparser, + + memset (nalu, 0, sizeof (*nalu)); + ++ /* Would overflow guint below otherwise: the callers needs to ensure that ++ * this never happens */ ++ if (offset > G_MAXUINT32 - nal_length_size) { ++ GST_WARNING ("offset + nal_length_size overflow"); ++ nalu->size = 0; ++ return GST_H264_PARSER_BROKEN_DATA; ++ } ++ + if (size < offset + nal_length_size) { + GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT + ", offset %u", size, offset); +@@ -1570,7 +1578,13 @@ gst_h264_parser_identify_nalu_avc (GstH264NalParser * nalparser, + nalu->sc_offset = offset; + nalu->offset = offset + nal_length_size; + +- if (size < nalu->size + nal_length_size) { ++ if (nalu->size > G_MAXUINT32 - nal_length_size) { ++ GST_WARNING ("NALU size + nal_length_size overflow"); ++ nalu->size = 0; ++ return GST_H264_PARSER_BROKEN_DATA; ++ } ++ ++ if (size < (gsize) nalu->size + nal_length_size) { + nalu->size = 0; + + return GST_H264_PARSER_NO_NAL_END; +diff --git a/gst-libs/gst/codecparsers/gsth265parser.c b/gst-libs/gst/codecparsers/gsth265parser.c +index 26e68b276..dc7f27aa9 100644 +--- a/gst-libs/gst/codecparsers/gsth265parser.c ++++ b/gst-libs/gst/codecparsers/gsth265parser.c +@@ -1531,6 +1531,14 @@ gst_h265_parser_identify_nalu_hevc (GstH265Parser * parser, + + memset (nalu, 0, sizeof (*nalu)); + ++ /* Would overflow guint below otherwise: the callers needs to ensure that ++ * this never happens */ ++ if (offset > G_MAXUINT32 - nal_length_size) { ++ GST_WARNING ("offset + nal_length_size overflow"); ++ nalu->size = 0; ++ return GST_H265_PARSER_BROKEN_DATA; ++ } ++ + if (size < offset + nal_length_size) { + GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT + ", offset %u", size, offset); +@@ -1545,7 +1553,13 @@ gst_h265_parser_identify_nalu_hevc (GstH265Parser * parser, + nalu->sc_offset = offset; + nalu->offset = offset + nal_length_size; + +- if (size < nalu->size + nal_length_size) { ++ if (nalu->size > G_MAXUINT32 - nal_length_size) { ++ GST_WARNING ("NALU size + nal_length_size overflow"); ++ nalu->size = 0; ++ return GST_H265_PARSER_BROKEN_DATA; ++ } ++ ++ if (size < (gsize) nalu->size + nal_length_size) { + nalu->size = 0; + + return GST_H265_PARSER_NO_NAL_END; +diff --git a/tests/check/libs/h264parser.c b/tests/check/libs/h264parser.c +index c7c46d9a2..d322dd8db 100644 +--- a/tests/check/libs/h264parser.c ++++ b/tests/check/libs/h264parser.c +@@ -229,6 +229,65 @@ GST_START_TEST (test_h264_parse_slice_5bytes) + + GST_END_TEST; + ++GST_START_TEST (test_h264_parse_identify_nalu_avc) ++{ ++ GstH264ParserResult res; ++ GstH264NalUnit nalu; ++ GstH264NalParser *const parser = gst_h264_nal_parser_new (); ++ /* Skip 3 bytes for the start code */ ++ const gsize nal_size = sizeof (slice_dpa) - 3; ++ const gsize buf_size = 4 + nal_size; ++ guint8 *buf = g_new (guint8, buf_size); ++ ++ memcpy (buf + 4, slice_dpa + 3, nal_size); ++ ++ GST_WRITE_UINT16_BE (buf + 2, nal_size); ++ res = gst_h264_parser_identify_nalu_avc (parser, buf, 2, buf_size, 2, &nalu); ++ ++ assert_equals_int (res, GST_H264_PARSER_OK); ++ assert_equals_int (nalu.type, GST_H264_NAL_SLICE_DPA); ++ assert_equals_int (nalu.offset, 4); ++ assert_equals_int (nalu.size, nal_size); ++ ++ GST_WRITE_UINT32_BE (buf, nal_size); ++ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H264_PARSER_OK); ++ assert_equals_int (nalu.type, GST_H264_NAL_SLICE_DPA); ++ assert_equals_int (nalu.offset, 4); ++ assert_equals_int (nalu.size, nal_size); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32); ++ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 2); ++ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 3); ++ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 4); ++ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H264_PARSER_NO_NAL_END); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 6); ++ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H264_PARSER_NO_NAL_END); ++ ++ g_free (buf); ++ gst_h264_nal_parser_free (parser); ++} ++ ++GST_END_TEST; ++ + static guint8 nalu_sps_with_vui[] = { + 0x00, 0x00, 0x00, 0x01, 0x67, 0x64, 0x00, 0x28, + 0xac, 0xd9, 0x40, 0x78, 0x04, 0x4f, 0xde, 0x03, +@@ -666,6 +725,7 @@ h264parser_suite (void) + tcase_add_test (tc_chain, test_h264_parse_slice_dpa); + tcase_add_test (tc_chain, test_h264_parse_slice_eoseq_slice); + tcase_add_test (tc_chain, test_h264_parse_slice_5bytes); ++ tcase_add_test (tc_chain, test_h264_parse_identify_nalu_avc); + tcase_add_test (tc_chain, test_h264_parse_invalid_sei); + tcase_add_test (tc_chain, test_h264_create_sei); + +diff --git a/tests/check/libs/h265parser.c b/tests/check/libs/h265parser.c +index 0a0e4db97..5b6a215ec 100644 +--- a/tests/check/libs/h265parser.c ++++ b/tests/check/libs/h265parser.c +@@ -255,6 +255,65 @@ GST_START_TEST (test_h265_parse_slice_6bytes) + + GST_END_TEST; + ++GST_START_TEST (test_h265_parse_identify_nalu_hevc) ++{ ++ GstH265ParserResult res; ++ GstH265NalUnit nalu; ++ GstH265Parser *parser = gst_h265_parser_new (); ++ /* Skip 4 bytes for the start code */ ++ const gsize nal_size = sizeof (slice_eos_slice_eob) - 4; ++ const gsize buf_size = 4 + nal_size; ++ guint8 *buf = g_new (guint8, buf_size); ++ ++ memcpy (buf + 4, slice_eos_slice_eob + 4, nal_size); ++ ++ GST_WRITE_UINT16_BE (buf + 2, nal_size); ++ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 2, buf_size, 2, &nalu); ++ ++ assert_equals_int (res, GST_H265_PARSER_OK); ++ assert_equals_int (nalu.type, GST_H265_NAL_SLICE_IDR_W_RADL); ++ assert_equals_int (nalu.offset, 4); ++ assert_equals_int (nalu.size, nal_size); ++ ++ GST_WRITE_UINT32_BE (buf, nal_size); ++ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H265_PARSER_OK); ++ assert_equals_int (nalu.type, GST_H265_NAL_SLICE_IDR_W_RADL); ++ assert_equals_int (nalu.offset, 4); ++ assert_equals_int (nalu.size, nal_size); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32); ++ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 2); ++ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 3); ++ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 4); ++ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H265_PARSER_NO_NAL_END); ++ ++ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 6); ++ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); ++ ++ assert_equals_int (res, GST_H265_PARSER_NO_NAL_END); ++ ++ g_free (buf); ++ gst_h265_parser_free (parser); ++} ++ ++GST_END_TEST; ++ + GST_START_TEST (test_h265_base_profiles) + { + GstH265ProfileTierLevel ptl; +@@ -1101,6 +1160,7 @@ h265parser_suite (void) + tcase_add_test (tc_chain, test_h265_parse_slice_eos_slice_eob); + tcase_add_test (tc_chain, test_h265_parse_pic_timing); + tcase_add_test (tc_chain, test_h265_parse_slice_6bytes); ++ tcase_add_test (tc_chain, test_h265_parse_identify_nalu_hevc); + tcase_add_test (tc_chain, test_h265_base_profiles); + tcase_add_test (tc_chain, test_h265_base_profiles_compat); + tcase_add_test (tc_chain, test_h265_format_range_profiles_exact_match); +-- +2.31.1 + diff --git a/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch b/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch new file mode 100644 index 0000000000..b2dfef0118 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch @@ -0,0 +1,40 @@ +Fix an "invalid read during ID3v2 tag parsing". + +https://security-tracker.debian.org/tracker/TEMP-0000000-57E7C1 +https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876 + +Patch copied from upstream source repository: + +https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/commit/f4a1428a6997658625d529b9db60fde812fbf1ee + +From f4a1428a6997658625d529b9db60fde812fbf1ee Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= +Date: Wed, 3 Mar 2021 01:08:25 +0000 +Subject: [PATCH] tag: id3v2: fix frame size check and potential invalid reads + +Check the right variable when checking if there's +enough data left to read the frame size. + +Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876 + +Part-of: +--- + gst-libs/gst/tag/id3v2frames.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c +index 8e9f78254..f39659bf7 100644 +--- a/gst-libs/gst/tag/id3v2frames.c ++++ b/gst-libs/gst/tag/id3v2frames.c +@@ -109,7 +109,7 @@ id3v2_parse_frame (ID3TagsWorking * work) + + if (work->frame_flags & (ID3V2_FRAME_FORMAT_COMPRESSION | + ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR)) { +- if (work->hdr.frame_data_size <= 4) ++ if (frame_data_size <= 4) + return FALSE; + if (ID3V2_VER_MAJOR (work->hdr.version) == 3) { + work->parse_size = GST_READ_UINT32_BE (frame_data); +-- +2.31.1 + diff --git a/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch b/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch new file mode 100644 index 0000000000..c8c3ee6cf1 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch @@ -0,0 +1,174 @@ +Fix CVE-2021-3497: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3497 +https://gstreamer.freedesktop.org/security/sa-2021-0002.html + +Patch copied from upstream source repository: + +https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/9181191511f9c0be6a89c98b311f49d66bd46dc3?merge_request_iid=903 + +diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c +index 467815986c8c3d86fd8906a0d539b34f67d6693e..0e47ee7b5e25ac3331f30439710ae755235f2a22 100644 +--- a/gst/matroska/matroska-demux.c ++++ b/gst/matroska/matroska-demux.c +@@ -3851,6 +3851,12 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, + guint32 block_samples, tmp; + gsize size = gst_buffer_get_size (*buf); + ++ if (size < 4) { ++ GST_ERROR_OBJECT (element, "Too small wavpack buffer"); ++ gst_buffer_unmap (*buf, &map); ++ return GST_FLOW_ERROR; ++ } ++ + gst_buffer_extract (*buf, 0, &tmp, sizeof (guint32)); + block_samples = GUINT32_FROM_LE (tmp); + /* we need to reconstruct the header of the wavpack block */ +@@ -3858,10 +3864,10 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, + /* -20 because ck_size is the size of the wavpack block -8 + * and lace_size is the size of the wavpack block + 12 + * (the three guint32 of the header that already are in the buffer) */ +- wvh.ck_size = size + sizeof (Wavpack4Header) - 20; ++ wvh.ck_size = size + WAVPACK4_HEADER_SIZE - 20; + + /* block_samples, flags and crc are already in the buffer */ +- newbuf = gst_buffer_new_allocate (NULL, sizeof (Wavpack4Header) - 12, NULL); ++ newbuf = gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE - 12, NULL); + + gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); + data = outmap.data; +@@ -3886,9 +3892,11 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, + audiocontext->wvpk_block_index += block_samples; + } else { + guint8 *outdata = NULL; +- guint outpos = 0; +- gsize buf_size, size, out_size = 0; ++ gsize buf_size, size; + guint32 block_samples, flags, crc, blocksize; ++ GstAdapter *adapter; ++ ++ adapter = gst_adapter_new (); + + gst_buffer_map (*buf, &map, GST_MAP_READ); + buf_data = map.data; +@@ -3897,6 +3905,7 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, + if (buf_size < 4) { + GST_ERROR_OBJECT (element, "Too small wavpack buffer"); + gst_buffer_unmap (*buf, &map); ++ g_object_unref (adapter); + return GST_FLOW_ERROR; + } + +@@ -3918,59 +3927,57 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, + data += 4; + size -= 4; + +- if (blocksize == 0 || size < blocksize) +- break; +- +- g_assert ((newbuf == NULL) == (outdata == NULL)); ++ if (blocksize == 0 || size < blocksize) { ++ GST_ERROR_OBJECT (element, "Too small wavpack buffer"); ++ gst_buffer_unmap (*buf, &map); ++ g_object_unref (adapter); ++ return GST_FLOW_ERROR; ++ } + +- if (newbuf == NULL) { +- out_size = sizeof (Wavpack4Header) + blocksize; +- newbuf = gst_buffer_new_allocate (NULL, out_size, NULL); ++ g_assert (newbuf == NULL); + +- gst_buffer_copy_into (newbuf, *buf, +- GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1); ++ newbuf = ++ gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE + blocksize, ++ NULL); ++ gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); ++ outdata = outmap.data; ++ ++ outdata[0] = 'w'; ++ outdata[1] = 'v'; ++ outdata[2] = 'p'; ++ outdata[3] = 'k'; ++ outdata += 4; ++ ++ GST_WRITE_UINT32_LE (outdata, blocksize + WAVPACK4_HEADER_SIZE - 8); ++ GST_WRITE_UINT16_LE (outdata + 4, wvh.version); ++ GST_WRITE_UINT8 (outdata + 6, wvh.track_no); ++ GST_WRITE_UINT8 (outdata + 7, wvh.index_no); ++ GST_WRITE_UINT32_LE (outdata + 8, wvh.total_samples); ++ GST_WRITE_UINT32_LE (outdata + 12, wvh.block_index); ++ GST_WRITE_UINT32_LE (outdata + 16, block_samples); ++ GST_WRITE_UINT32_LE (outdata + 20, flags); ++ GST_WRITE_UINT32_LE (outdata + 24, crc); ++ outdata += 28; ++ ++ memcpy (outdata, data, blocksize); + +- outpos = 0; +- gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); +- outdata = outmap.data; +- } else { +- gst_buffer_unmap (newbuf, &outmap); +- out_size += sizeof (Wavpack4Header) + blocksize; +- gst_buffer_set_size (newbuf, out_size); +- gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); +- outdata = outmap.data; +- } ++ gst_buffer_unmap (newbuf, &outmap); ++ gst_adapter_push (adapter, newbuf); ++ newbuf = NULL; + +- outdata[outpos] = 'w'; +- outdata[outpos + 1] = 'v'; +- outdata[outpos + 2] = 'p'; +- outdata[outpos + 3] = 'k'; +- outpos += 4; +- +- GST_WRITE_UINT32_LE (outdata + outpos, +- blocksize + sizeof (Wavpack4Header) - 8); +- GST_WRITE_UINT16_LE (outdata + outpos + 4, wvh.version); +- GST_WRITE_UINT8 (outdata + outpos + 6, wvh.track_no); +- GST_WRITE_UINT8 (outdata + outpos + 7, wvh.index_no); +- GST_WRITE_UINT32_LE (outdata + outpos + 8, wvh.total_samples); +- GST_WRITE_UINT32_LE (outdata + outpos + 12, wvh.block_index); +- GST_WRITE_UINT32_LE (outdata + outpos + 16, block_samples); +- GST_WRITE_UINT32_LE (outdata + outpos + 20, flags); +- GST_WRITE_UINT32_LE (outdata + outpos + 24, crc); +- outpos += 28; +- +- memmove (outdata + outpos, data, blocksize); +- outpos += blocksize; + data += blocksize; + size -= blocksize; + } + gst_buffer_unmap (*buf, &map); +- gst_buffer_unref (*buf); + +- if (newbuf) +- gst_buffer_unmap (newbuf, &outmap); ++ newbuf = gst_adapter_take_buffer (adapter, gst_adapter_available (adapter)); ++ g_object_unref (adapter); + ++ gst_buffer_copy_into (newbuf, *buf, ++ GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1); ++ gst_buffer_unref (*buf); + *buf = newbuf; ++ + audiocontext->wvpk_block_index += block_samples; + } + +diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h +index 429213f778063ba0063944ab64ad60373bbce5ee..8d4a685a910ec13100a3c3d156b2412d28ec0522 100644 +--- a/gst/matroska/matroska-ids.h ++++ b/gst/matroska/matroska-ids.h +@@ -688,6 +688,8 @@ typedef struct _Wavpack4Header { + guint32 crc; /* crc for actual decoded data */ + } Wavpack4Header; + ++#define WAVPACK4_HEADER_SIZE (32) ++ + typedef enum { + GST_MATROSKA_TRACK_ENCODING_SCOPE_FRAME = (1<<0), + GST_MATROSKA_TRACK_ENCODING_SCOPE_CODEC_DATA = (1<<1), diff --git a/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch b/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch new file mode 100644 index 0000000000..50eb42f126 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch @@ -0,0 +1,22 @@ +Fix CVE-2021-3498: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3498 +https://gstreamer.freedesktop.org/security/sa-2021-0003.html + +Patch copied from upstream source repository: + +https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/02174790726dd20a5c73ce2002189bf240ad4fe0?merge_request_iid=903 + +diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c +index 4d0234743b8cf243b4521e56ef9027ba23b1b5d0..467815986c8c3d86fd8906a0d539b34f67d6693e 100644 +--- a/gst/matroska/matroska-demux.c ++++ b/gst/matroska/matroska-demux.c +@@ -692,6 +692,8 @@ gst_matroska_demux_parse_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml, + + DEBUG_ELEMENT_START (demux, ebml, "TrackEntry"); + ++ *dest_context = NULL; ++ + /* start with the master */ + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret); diff --git a/gnu/packages/patches/gst-plugins-good-fix-test.patch b/gnu/packages/patches/gst-plugins-good-fix-test.patch new file mode 100644 index 0000000000..38ec0ba802 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-good-fix-test.patch @@ -0,0 +1,94 @@ +Fix a broken test: + +https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/803 + +Patches copied from upstream source repository: + +https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/2ce5909f3a0b0da3abb7b794215d6b8b72a3b7fa +https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/f5310ce346180a717f091f2f09bcbb3ddfb15436 + +From 2ce5909f3a0b0da3abb7b794215d6b8b72a3b7fa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= +Date: Thu, 12 Nov 2020 23:38:21 +0000 +Subject: [PATCH 1/2] tests: qtdemux: fix crash on 32-bit architectures + +Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/803 + +Part-of: +--- + tests/check/elements/qtdemux.c | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/tests/check/elements/qtdemux.c b/tests/check/elements/qtdemux.c +index 5271c6576..0c748278b 100644 +--- a/tests/check/elements/qtdemux.c ++++ b/tests/check/elements/qtdemux.c +@@ -797,9 +797,10 @@ GST_START_TEST (test_qtdemux_pad_names) + "protection-system", G_TYPE_STRING, + "9a04f079-9840-4286-ab92-e65be0885f95", NULL); + caps = +- gst_caps_new_simple ("video/quicktime", "variant", G_TYPE_STRING, +- "mss-fragmented", "timesacle", G_TYPE_UINT64, 10000000, "media-caps", +- GST_TYPE_CAPS, mediacaps, NULL); ++ gst_caps_new_simple ("video/quicktime", ++ "variant", G_TYPE_STRING, "mss-fragmented", ++ "timesacle", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), ++ "media-caps", GST_TYPE_CAPS, mediacaps, NULL); + + /* Send segment event* */ + event = gst_event_new_caps (caps); +@@ -852,9 +853,10 @@ GST_START_TEST (test_qtdemux_pad_names) + "protection-system", G_TYPE_STRING, + "9a04f079-9840-4286-ab92-e65be0885f95", NULL); + caps = +- gst_caps_new_simple ("video/quicktime", "variant", G_TYPE_STRING, +- "mss-fragmented", "timesacle", G_TYPE_UINT64, 10000000, "media-caps", +- GST_TYPE_CAPS, mediacaps, NULL); ++ gst_caps_new_simple ("video/quicktime", ++ "variant", G_TYPE_STRING, "mss-fragmented", ++ "timesacle", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), ++ "media-caps", GST_TYPE_CAPS, mediacaps, NULL); + + /* Send segment event* */ + event = gst_event_new_caps (caps); +-- +2.30.0 + + +From f5310ce346180a717f091f2f09bcbb3ddfb15436 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= +Date: Thu, 12 Nov 2020 23:39:21 +0000 +Subject: [PATCH 2/2] tests: qtdemux: fix typo in caps field + +timesacle -> timescale + +Part-of: +--- + tests/check/elements/qtdemux.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/check/elements/qtdemux.c b/tests/check/elements/qtdemux.c +index 0c748278b..4a14c45c0 100644 +--- a/tests/check/elements/qtdemux.c ++++ b/tests/check/elements/qtdemux.c +@@ -799,7 +799,7 @@ GST_START_TEST (test_qtdemux_pad_names) + caps = + gst_caps_new_simple ("video/quicktime", + "variant", G_TYPE_STRING, "mss-fragmented", +- "timesacle", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), ++ "timescale", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), + "media-caps", GST_TYPE_CAPS, mediacaps, NULL); + + /* Send segment event* */ +@@ -855,7 +855,7 @@ GST_START_TEST (test_qtdemux_pad_names) + caps = + gst_caps_new_simple ("video/quicktime", + "variant", G_TYPE_STRING, "mss-fragmented", +- "timesacle", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), ++ "timescale", G_TYPE_UINT64, G_GUINT64_CONSTANT (10000000), + "media-caps", GST_TYPE_CAPS, mediacaps, NULL); + + /* Send segment event* */ +-- +2.30.0 + diff --git a/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch b/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch new file mode 100644 index 0000000000..3c6a96f45d --- /dev/null +++ b/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch @@ -0,0 +1,119 @@ +Fix out of bounds reads when parsing audio and video packets: + +https://security-tracker.debian.org/tracker/TEMP-0000000-4DAA44 +https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues/37 + +Patch copied from upstream source repository: + +https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/commit/3aba7d1e625554b2407bc77b3d09b4928b937d5f +From 3aba7d1e625554b2407bc77b3d09b4928b937d5f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= +Date: Wed, 3 Mar 2021 11:05:14 +0200 +Subject: [PATCH] rmdemux: Make sure we have enough data available when parsing + audio/video packets + +Otherwise there will be out-of-bounds reads and potential crashes. + +Thanks to Natalie Silvanovich for reporting. + +Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues/37 + +Part-of: +--- + gst/realmedia/rmdemux.c | 35 +++++++++++++++++++++++++++++++++++ + 1 file changed, 35 insertions(+) + +diff --git a/gst/realmedia/rmdemux.c b/gst/realmedia/rmdemux.c +index 6cc659a1..68b0736b 100644 +--- a/gst/realmedia/rmdemux.c ++++ b/gst/realmedia/rmdemux.c +@@ -2223,6 +2223,9 @@ gst_rmdemux_parse_video_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, + + gst_buffer_map (in, &map, GST_MAP_READ); + ++ if (map.size < offset) ++ goto not_enough_data; ++ + data = map.data + offset; + size = map.size - offset; + +@@ -2289,6 +2292,9 @@ gst_rmdemux_parse_video_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, + } + GST_DEBUG_OBJECT (rmdemux, "fragment size %d", fragment_size); + ++ if (map.size < (data - map.data) + fragment_size) ++ goto not_enough_data; ++ + /* get the fragment */ + fragment = + gst_buffer_copy_region (in, GST_BUFFER_COPY_ALL, data - map.data, +@@ -2437,6 +2443,9 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, + GstFlowReturn ret; + GstBuffer *buffer; + ++ if (gst_buffer_get_size (in) < offset) ++ goto not_enough_data; ++ + buffer = gst_buffer_copy_region (in, GST_BUFFER_COPY_MEMORY, offset, -1); + + if (rmdemux->first_ts != -1 && timestamp > rmdemux->first_ts) +@@ -2467,9 +2476,19 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, + ret = gst_pad_push (stream->pad, buffer); + } + ++done: + gst_buffer_unref (in); + + return ret; ++ ++ /* ERRORS */ ++not_enough_data: ++ { ++ GST_ELEMENT_WARNING (rmdemux, STREAM, DECODE, ("Skipping bad packet."), ++ (NULL)); ++ ret = GST_FLOW_OK; ++ goto done; ++ } + } + + static GstFlowReturn +@@ -2490,6 +2509,9 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version) + data = map.data; + size = map.size; + ++ if (size < 4 + 6 + 1 + 2) ++ goto not_enough_data; ++ + /* stream number */ + id = RMDEMUX_GUINT16_GET (data); + +@@ -2525,6 +2547,9 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version) + + /* version 1 has an extra byte */ + if (version == 1) { ++ if (size < 1) ++ goto not_enough_data; ++ + data += 1; + size -= 1; + } +@@ -2596,6 +2621,16 @@ unknown_stream: + gst_buffer_unref (in); + return GST_FLOW_OK; + } ++ ++ /* ERRORS */ ++not_enough_data: ++ { ++ GST_ELEMENT_WARNING (rmdemux, STREAM, DECODE, ("Skipping bad packet."), ++ (NULL)); ++ gst_buffer_unmap (in, &map); ++ gst_buffer_unref (in); ++ return GST_FLOW_OK; ++ } + } + + gboolean +-- +2.31.1 + -- cgit v1.2.3 From dd6e07ac46d9872abcddada9f97d324f70ee12e6 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 14:42:08 -0400 Subject: gnu: gstreamer: Update to 1.18.5. * gnu/packages/gstreamer.scm (gstreamer): Update to 1.18.5. Remove trailing #t. (%common-gstreamer-phases): Remove trailing #t. --- gnu/packages/gstreamer.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 1b3e114f4b..5396e8f3ee 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -466,13 +466,12 @@ the GStreamer multimedia framework.") (("'CK_DEFAULT_TIMEOUT', '[0-9]*'") "'CK_DEFAULT_TIMEOUT', '600'") (("timeout ?: .*\\)") - "timeout: 90 * 60)")) - #t)))) + "timeout: 90 * 60)")))))) (define-public gstreamer (package (name "gstreamer") - (version "1.18.4") + (version "1.18.5") (source (origin (method url-fetch) @@ -481,7 +480,7 @@ the GStreamer multimedia framework.") version ".tar.xz")) (sha256 (base32 - "1igv9l4hm21kp1jmlwlagzs7ly1vaxv1sbda29q8247372dwkvls")))) + "02p8my6dzmm4rvd93s3qnh8w5bm9bh4f7gdydbsvnn9llqr251jm")))) (build-system meson-build-system) (arguments `(#:phases @@ -498,8 +497,7 @@ the GStreamer multimedia framework.") (("tcase_add_test \\(tc_chain, test_stress_cleanup_unschedule.*") "") (("tcase_add_test \\(tc_chain, test_stress_reschedule.*") - "")) - #t))) + ""))))) '())))) (propagated-inputs ;; In gstreamer-1.0.pc: -- cgit v1.2.3 From 471a3402d811703af4bf958cc5a00dac8cb5a531 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 14:46:42 -0400 Subject: gnu: gst-plugins-base: Update to 1.18.5. * gnu/packages/gstreamer.scm (gst-plugins-base): Update to 1.18.5. [source]: Remove patches. [inputs]: Move wayland... [propagated-inputs]: here. * gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch: Delete file. * gnu/local.mk: De-register it. --- gnu/local.mk | 1 - gnu/packages/gstreamer.scm | 12 +++---- .../gst-plugins-base-fix-id3v2-invalid-read.patch | 40 ---------------------- 3 files changed, 6 insertions(+), 47 deletions(-) delete mode 100644 gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1cb00f696a..f10ac45a69 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1213,7 +1213,6 @@ dist_patch_DATA = \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ %D%/packages/patches/gst-plugins-bad-fix-overflow.patch \ - %D%/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch \ %D%/packages/patches/gst-plugins-good-fix-test.patch \ %D%/packages/patches/gst-plugins-good-CVE-2021-3497.patch \ %D%/packages/patches/gst-plugins-good-CVE-2021-3498.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 5396e8f3ee..f0ef21bf62 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -543,21 +543,22 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.18.4") + (version "1.18.5") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) - (patches (search-patches "gst-plugins-base-fix-id3v2-invalid-read.patch")) (sha256 (base32 - "08w3ivbc6n4vdds2ap6q7l8zdk9if8417nznyqidf0adm0lk5r99")))) + "18vg8kk7p2p8za8zaqg0v7z6898yw5a3b12vvl7xn02pb3s7l2wn")))) (build-system meson-build-system) (propagated-inputs `(("glib" ,glib) ;required by gstreamer-sdp-1.0.pc ("gstreamer" ,gstreamer) ;required by gstreamer-plugins-base-1.0.pc - + ;; wayland-client.h is referred to in + ;; include/gstreamer-1.0/gst/gl/wayland/gstgldisplay_wayland.h + ("wayland" ,wayland) ;; XXX: Do not enable Orc optimizations on ARM systems because ;; it leads to two test failures. ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/683 @@ -585,8 +586,7 @@ This package provides the core library and elements.") ("libpng" ,libpng) ("libvisual" ,libvisual) ("mesa" ,mesa) - ("wayland-protocols" ,wayland-protocols) - ("wayland" ,wayland))) + ("wayland-protocols" ,wayland-protocols))) (native-inputs `(("pkg-config" ,pkg-config) ("glib:bin" ,glib "bin") diff --git a/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch b/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch deleted file mode 100644 index b2dfef0118..0000000000 --- a/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch +++ /dev/null @@ -1,40 +0,0 @@ -Fix an "invalid read during ID3v2 tag parsing". - -https://security-tracker.debian.org/tracker/TEMP-0000000-57E7C1 -https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876 - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/commit/f4a1428a6997658625d529b9db60fde812fbf1ee - -From f4a1428a6997658625d529b9db60fde812fbf1ee Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= -Date: Wed, 3 Mar 2021 01:08:25 +0000 -Subject: [PATCH] tag: id3v2: fix frame size check and potential invalid reads - -Check the right variable when checking if there's -enough data left to read the frame size. - -Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876 - -Part-of: ---- - gst-libs/gst/tag/id3v2frames.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c -index 8e9f78254..f39659bf7 100644 ---- a/gst-libs/gst/tag/id3v2frames.c -+++ b/gst-libs/gst/tag/id3v2frames.c -@@ -109,7 +109,7 @@ id3v2_parse_frame (ID3TagsWorking * work) - - if (work->frame_flags & (ID3V2_FRAME_FORMAT_COMPRESSION | - ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR)) { -- if (work->hdr.frame_data_size <= 4) -+ if (frame_data_size <= 4) - return FALSE; - if (ID3V2_VER_MAJOR (work->hdr.version) == 3) { - work->parse_size = GST_READ_UINT32_BE (frame_data); --- -2.31.1 - -- cgit v1.2.3 From ee0c7a47f0a34cab9b4b5cdc7a5e8495f6ba3067 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 14:55:27 -0400 Subject: gnu: gst-plugins-good: Update to 1.18.5. * gnu/packages/gstreamer.scm (gst-plugins-good): Update to 1.18.5. [source]: Remove the CVE patches, included in the release. * gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch: Delete file. * gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch: Likewise. * gnu/local.mk: De-register them. --- gnu/local.mk | 2 - gnu/packages/gstreamer.scm | 8 +- .../patches/gst-plugins-good-CVE-2021-3497.patch | 174 --------------------- .../patches/gst-plugins-good-CVE-2021-3498.patch | 22 --- 4 files changed, 3 insertions(+), 203 deletions(-) delete mode 100644 gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch delete mode 100644 gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch diff --git a/gnu/local.mk b/gnu/local.mk index f10ac45a69..318c1e7371 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1214,8 +1214,6 @@ dist_patch_DATA = \ %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ %D%/packages/patches/gst-plugins-bad-fix-overflow.patch \ %D%/packages/patches/gst-plugins-good-fix-test.patch \ - %D%/packages/patches/gst-plugins-good-CVE-2021-3497.patch \ - %D%/packages/patches/gst-plugins-good-CVE-2021-3498.patch \ %D%/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-skip-oom-test.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index f0ef21bf62..c433269ac0 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -625,7 +625,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.18.4") + (version "1.18.5") (source (origin (method url-fetch) @@ -633,11 +633,9 @@ for the GStreamer multimedia library.") (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) - (patches (search-patches "gst-plugins-good-fix-test.patch" - "gst-plugins-good-CVE-2021-3497.patch" - "gst-plugins-good-CVE-2021-3498.patch")) + (patches (search-patches "gst-plugins-good-fix-test.patch")) (sha256 - (base32 "1c1rpq709cy8maaykyn1n0kckj9c6fl3mhvixkk6xmdwkcx0xrdn")))) + (base32 "0svrapawych2s3lm4lx3x023zxq5kcx50jnfmh0qigszfskyxbis")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas diff --git a/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch b/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch deleted file mode 100644 index c8c3ee6cf1..0000000000 --- a/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch +++ /dev/null @@ -1,174 +0,0 @@ -Fix CVE-2021-3497: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3497 -https://gstreamer.freedesktop.org/security/sa-2021-0002.html - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/9181191511f9c0be6a89c98b311f49d66bd46dc3?merge_request_iid=903 - -diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c -index 467815986c8c3d86fd8906a0d539b34f67d6693e..0e47ee7b5e25ac3331f30439710ae755235f2a22 100644 ---- a/gst/matroska/matroska-demux.c -+++ b/gst/matroska/matroska-demux.c -@@ -3851,6 +3851,12 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - guint32 block_samples, tmp; - gsize size = gst_buffer_get_size (*buf); - -+ if (size < 4) { -+ GST_ERROR_OBJECT (element, "Too small wavpack buffer"); -+ gst_buffer_unmap (*buf, &map); -+ return GST_FLOW_ERROR; -+ } -+ - gst_buffer_extract (*buf, 0, &tmp, sizeof (guint32)); - block_samples = GUINT32_FROM_LE (tmp); - /* we need to reconstruct the header of the wavpack block */ -@@ -3858,10 +3864,10 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - /* -20 because ck_size is the size of the wavpack block -8 - * and lace_size is the size of the wavpack block + 12 - * (the three guint32 of the header that already are in the buffer) */ -- wvh.ck_size = size + sizeof (Wavpack4Header) - 20; -+ wvh.ck_size = size + WAVPACK4_HEADER_SIZE - 20; - - /* block_samples, flags and crc are already in the buffer */ -- newbuf = gst_buffer_new_allocate (NULL, sizeof (Wavpack4Header) - 12, NULL); -+ newbuf = gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE - 12, NULL); - - gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); - data = outmap.data; -@@ -3886,9 +3892,11 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - audiocontext->wvpk_block_index += block_samples; - } else { - guint8 *outdata = NULL; -- guint outpos = 0; -- gsize buf_size, size, out_size = 0; -+ gsize buf_size, size; - guint32 block_samples, flags, crc, blocksize; -+ GstAdapter *adapter; -+ -+ adapter = gst_adapter_new (); - - gst_buffer_map (*buf, &map, GST_MAP_READ); - buf_data = map.data; -@@ -3897,6 +3905,7 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - if (buf_size < 4) { - GST_ERROR_OBJECT (element, "Too small wavpack buffer"); - gst_buffer_unmap (*buf, &map); -+ g_object_unref (adapter); - return GST_FLOW_ERROR; - } - -@@ -3918,59 +3927,57 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, - data += 4; - size -= 4; - -- if (blocksize == 0 || size < blocksize) -- break; -- -- g_assert ((newbuf == NULL) == (outdata == NULL)); -+ if (blocksize == 0 || size < blocksize) { -+ GST_ERROR_OBJECT (element, "Too small wavpack buffer"); -+ gst_buffer_unmap (*buf, &map); -+ g_object_unref (adapter); -+ return GST_FLOW_ERROR; -+ } - -- if (newbuf == NULL) { -- out_size = sizeof (Wavpack4Header) + blocksize; -- newbuf = gst_buffer_new_allocate (NULL, out_size, NULL); -+ g_assert (newbuf == NULL); - -- gst_buffer_copy_into (newbuf, *buf, -- GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1); -+ newbuf = -+ gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE + blocksize, -+ NULL); -+ gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); -+ outdata = outmap.data; -+ -+ outdata[0] = 'w'; -+ outdata[1] = 'v'; -+ outdata[2] = 'p'; -+ outdata[3] = 'k'; -+ outdata += 4; -+ -+ GST_WRITE_UINT32_LE (outdata, blocksize + WAVPACK4_HEADER_SIZE - 8); -+ GST_WRITE_UINT16_LE (outdata + 4, wvh.version); -+ GST_WRITE_UINT8 (outdata + 6, wvh.track_no); -+ GST_WRITE_UINT8 (outdata + 7, wvh.index_no); -+ GST_WRITE_UINT32_LE (outdata + 8, wvh.total_samples); -+ GST_WRITE_UINT32_LE (outdata + 12, wvh.block_index); -+ GST_WRITE_UINT32_LE (outdata + 16, block_samples); -+ GST_WRITE_UINT32_LE (outdata + 20, flags); -+ GST_WRITE_UINT32_LE (outdata + 24, crc); -+ outdata += 28; -+ -+ memcpy (outdata, data, blocksize); - -- outpos = 0; -- gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); -- outdata = outmap.data; -- } else { -- gst_buffer_unmap (newbuf, &outmap); -- out_size += sizeof (Wavpack4Header) + blocksize; -- gst_buffer_set_size (newbuf, out_size); -- gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE); -- outdata = outmap.data; -- } -+ gst_buffer_unmap (newbuf, &outmap); -+ gst_adapter_push (adapter, newbuf); -+ newbuf = NULL; - -- outdata[outpos] = 'w'; -- outdata[outpos + 1] = 'v'; -- outdata[outpos + 2] = 'p'; -- outdata[outpos + 3] = 'k'; -- outpos += 4; -- -- GST_WRITE_UINT32_LE (outdata + outpos, -- blocksize + sizeof (Wavpack4Header) - 8); -- GST_WRITE_UINT16_LE (outdata + outpos + 4, wvh.version); -- GST_WRITE_UINT8 (outdata + outpos + 6, wvh.track_no); -- GST_WRITE_UINT8 (outdata + outpos + 7, wvh.index_no); -- GST_WRITE_UINT32_LE (outdata + outpos + 8, wvh.total_samples); -- GST_WRITE_UINT32_LE (outdata + outpos + 12, wvh.block_index); -- GST_WRITE_UINT32_LE (outdata + outpos + 16, block_samples); -- GST_WRITE_UINT32_LE (outdata + outpos + 20, flags); -- GST_WRITE_UINT32_LE (outdata + outpos + 24, crc); -- outpos += 28; -- -- memmove (outdata + outpos, data, blocksize); -- outpos += blocksize; - data += blocksize; - size -= blocksize; - } - gst_buffer_unmap (*buf, &map); -- gst_buffer_unref (*buf); - -- if (newbuf) -- gst_buffer_unmap (newbuf, &outmap); -+ newbuf = gst_adapter_take_buffer (adapter, gst_adapter_available (adapter)); -+ g_object_unref (adapter); - -+ gst_buffer_copy_into (newbuf, *buf, -+ GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1); -+ gst_buffer_unref (*buf); - *buf = newbuf; -+ - audiocontext->wvpk_block_index += block_samples; - } - -diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h -index 429213f778063ba0063944ab64ad60373bbce5ee..8d4a685a910ec13100a3c3d156b2412d28ec0522 100644 ---- a/gst/matroska/matroska-ids.h -+++ b/gst/matroska/matroska-ids.h -@@ -688,6 +688,8 @@ typedef struct _Wavpack4Header { - guint32 crc; /* crc for actual decoded data */ - } Wavpack4Header; - -+#define WAVPACK4_HEADER_SIZE (32) -+ - typedef enum { - GST_MATROSKA_TRACK_ENCODING_SCOPE_FRAME = (1<<0), - GST_MATROSKA_TRACK_ENCODING_SCOPE_CODEC_DATA = (1<<1), diff --git a/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch b/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch deleted file mode 100644 index 50eb42f126..0000000000 --- a/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch +++ /dev/null @@ -1,22 +0,0 @@ -Fix CVE-2021-3498: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3498 -https://gstreamer.freedesktop.org/security/sa-2021-0003.html - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/02174790726dd20a5c73ce2002189bf240ad4fe0?merge_request_iid=903 - -diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c -index 4d0234743b8cf243b4521e56ef9027ba23b1b5d0..467815986c8c3d86fd8906a0d539b34f67d6693e 100644 ---- a/gst/matroska/matroska-demux.c -+++ b/gst/matroska/matroska-demux.c -@@ -692,6 +692,8 @@ gst_matroska_demux_parse_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml, - - DEBUG_ELEMENT_START (demux, ebml, "TrackEntry"); - -+ *dest_context = NULL; -+ - /* start with the master */ - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret); -- cgit v1.2.3 From 71b1c429ea0899ad9dd7494df3817139bfaab6ed Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 15:02:05 -0400 Subject: gnu: gst-plugins-bad: Update to 1.18.5. * gnu/packages/gstreamer.scm (gst-plugins-bad): Update to 1.18.5. [source]: Remove patches. Delete trailing #t. * gnu/packages/patches/gst-plugins-bad-fix-overflow.patch: Delete file. * gnu/local.mk: De-register it. --- gnu/local.mk | 1 - gnu/packages/gstreamer.scm | 14 +- .../patches/gst-plugins-bad-fix-overflow.patch | 263 --------------------- 3 files changed, 5 insertions(+), 273 deletions(-) delete mode 100644 gnu/packages/patches/gst-plugins-bad-fix-overflow.patch diff --git a/gnu/local.mk b/gnu/local.mk index 318c1e7371..3c9aee40d4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1212,7 +1212,6 @@ dist_patch_DATA = \ %D%/packages/patches/grub-setup-root.patch \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ - %D%/packages/patches/gst-plugins-bad-fix-overflow.patch \ %D%/packages/patches/gst-plugins-good-fix-test.patch \ %D%/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index c433269ac0..cbf1845360 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -716,15 +716,14 @@ model to base your own plug-in on, here it is.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.18.4") + (version "1.18.5") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) - (patches (search-patches "gst-plugins-bad-fix-overflow.patch")) (sha256 (base32 - "0py8k4pbalm9mxkpjbjxis0gp7g74wg5g4yax5q8rccmany0ds3l")))) + "13k7mm2wmsbhd04a20v9lj4afpf0w33ambpwlrw8bl7hjhxr4r51")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas @@ -739,8 +738,7 @@ model to base your own plug-in on, here it is.") (lambda _ (substitute* "tests/check/meson.build" (("\\[\\['elements/asfmux\\.c'\\]\\],") - "")) - #t))) + ""))))) '()) (add-after 'unpack 'adjust-tests (lambda* (#:key native-inputs inputs #:allow-other-keys) @@ -764,8 +762,7 @@ model to base your own plug-in on, here it is.") ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932 ((".*elements/curlhttpsrc\\.c.*") "") ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412 - ((".*elements/dtls\\.c.*") "")) - #t))) + ((".*elements/dtls\\.c.*") ""))))) (add-before 'check 'pre-check (lambda _ ;; Tests require a running X server. @@ -776,8 +773,7 @@ model to base your own plug-in on, here it is.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t))))) + (setenv "DBUS_FATAL_WARNINGS" "0")))))) (propagated-inputs `(("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base))) diff --git a/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch b/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch deleted file mode 100644 index 95ab13db51..0000000000 --- a/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch +++ /dev/null @@ -1,263 +0,0 @@ -Fix an overflow when calculating something for AVC/HEVC videos: - -https://security-tracker.debian.org/tracker/TEMP-0000000-C6AAE1 - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/0cfbf7ad91c7f121192c8ce135769f8eb276c41d -From 0cfbf7ad91c7f121192c8ce135769f8eb276c41d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= -Date: Tue, 23 Mar 2021 19:19:14 +0200 -Subject: [PATCH] h2645parser: Catch overflows in AVC/HEVC NAL unit length - calculations - -Offset and size are stored as 32 bit guint and might overflow when -adding the nal_length_size, so let's avoid that. - -For the size this would happen if the AVC/HEVC NAL unit size happens to -be stored in 4 bytes and is 4294967292 or higher, which is likely -corrupted data anyway. - -For the offset this is something for the caller of these functions to -take care of but is unlikely to happen as it would require parsing on a ->4GB buffer. - -Allowing these overflows causes all kinds of follow-up bugs in the -h2645parse elements, ranging from infinite loops and memory leaks to -potential memory corruptions. - -Part-of: ---- - gst-libs/gst/codecparsers/gsth264parser.c | 16 +++++- - gst-libs/gst/codecparsers/gsth265parser.c | 16 +++++- - tests/check/libs/h264parser.c | 60 +++++++++++++++++++++++ - tests/check/libs/h265parser.c | 60 +++++++++++++++++++++++ - 4 files changed, 150 insertions(+), 2 deletions(-) - -diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c -index 012f1d0d7..68aa25068 100644 ---- a/gst-libs/gst/codecparsers/gsth264parser.c -+++ b/gst-libs/gst/codecparsers/gsth264parser.c -@@ -1556,6 +1556,14 @@ gst_h264_parser_identify_nalu_avc (GstH264NalParser * nalparser, - - memset (nalu, 0, sizeof (*nalu)); - -+ /* Would overflow guint below otherwise: the callers needs to ensure that -+ * this never happens */ -+ if (offset > G_MAXUINT32 - nal_length_size) { -+ GST_WARNING ("offset + nal_length_size overflow"); -+ nalu->size = 0; -+ return GST_H264_PARSER_BROKEN_DATA; -+ } -+ - if (size < offset + nal_length_size) { - GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT - ", offset %u", size, offset); -@@ -1570,7 +1578,13 @@ gst_h264_parser_identify_nalu_avc (GstH264NalParser * nalparser, - nalu->sc_offset = offset; - nalu->offset = offset + nal_length_size; - -- if (size < nalu->size + nal_length_size) { -+ if (nalu->size > G_MAXUINT32 - nal_length_size) { -+ GST_WARNING ("NALU size + nal_length_size overflow"); -+ nalu->size = 0; -+ return GST_H264_PARSER_BROKEN_DATA; -+ } -+ -+ if (size < (gsize) nalu->size + nal_length_size) { - nalu->size = 0; - - return GST_H264_PARSER_NO_NAL_END; -diff --git a/gst-libs/gst/codecparsers/gsth265parser.c b/gst-libs/gst/codecparsers/gsth265parser.c -index 26e68b276..dc7f27aa9 100644 ---- a/gst-libs/gst/codecparsers/gsth265parser.c -+++ b/gst-libs/gst/codecparsers/gsth265parser.c -@@ -1531,6 +1531,14 @@ gst_h265_parser_identify_nalu_hevc (GstH265Parser * parser, - - memset (nalu, 0, sizeof (*nalu)); - -+ /* Would overflow guint below otherwise: the callers needs to ensure that -+ * this never happens */ -+ if (offset > G_MAXUINT32 - nal_length_size) { -+ GST_WARNING ("offset + nal_length_size overflow"); -+ nalu->size = 0; -+ return GST_H265_PARSER_BROKEN_DATA; -+ } -+ - if (size < offset + nal_length_size) { - GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT - ", offset %u", size, offset); -@@ -1545,7 +1553,13 @@ gst_h265_parser_identify_nalu_hevc (GstH265Parser * parser, - nalu->sc_offset = offset; - nalu->offset = offset + nal_length_size; - -- if (size < nalu->size + nal_length_size) { -+ if (nalu->size > G_MAXUINT32 - nal_length_size) { -+ GST_WARNING ("NALU size + nal_length_size overflow"); -+ nalu->size = 0; -+ return GST_H265_PARSER_BROKEN_DATA; -+ } -+ -+ if (size < (gsize) nalu->size + nal_length_size) { - nalu->size = 0; - - return GST_H265_PARSER_NO_NAL_END; -diff --git a/tests/check/libs/h264parser.c b/tests/check/libs/h264parser.c -index c7c46d9a2..d322dd8db 100644 ---- a/tests/check/libs/h264parser.c -+++ b/tests/check/libs/h264parser.c -@@ -229,6 +229,65 @@ GST_START_TEST (test_h264_parse_slice_5bytes) - - GST_END_TEST; - -+GST_START_TEST (test_h264_parse_identify_nalu_avc) -+{ -+ GstH264ParserResult res; -+ GstH264NalUnit nalu; -+ GstH264NalParser *const parser = gst_h264_nal_parser_new (); -+ /* Skip 3 bytes for the start code */ -+ const gsize nal_size = sizeof (slice_dpa) - 3; -+ const gsize buf_size = 4 + nal_size; -+ guint8 *buf = g_new (guint8, buf_size); -+ -+ memcpy (buf + 4, slice_dpa + 3, nal_size); -+ -+ GST_WRITE_UINT16_BE (buf + 2, nal_size); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 2, buf_size, 2, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_OK); -+ assert_equals_int (nalu.type, GST_H264_NAL_SLICE_DPA); -+ assert_equals_int (nalu.offset, 4); -+ assert_equals_int (nalu.size, nal_size); -+ -+ GST_WRITE_UINT32_BE (buf, nal_size); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_OK); -+ assert_equals_int (nalu.type, GST_H264_NAL_SLICE_DPA); -+ assert_equals_int (nalu.offset, 4); -+ assert_equals_int (nalu.size, nal_size); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 2); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 3); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 4); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_NO_NAL_END); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 6); -+ res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H264_PARSER_NO_NAL_END); -+ -+ g_free (buf); -+ gst_h264_nal_parser_free (parser); -+} -+ -+GST_END_TEST; -+ - static guint8 nalu_sps_with_vui[] = { - 0x00, 0x00, 0x00, 0x01, 0x67, 0x64, 0x00, 0x28, - 0xac, 0xd9, 0x40, 0x78, 0x04, 0x4f, 0xde, 0x03, -@@ -666,6 +725,7 @@ h264parser_suite (void) - tcase_add_test (tc_chain, test_h264_parse_slice_dpa); - tcase_add_test (tc_chain, test_h264_parse_slice_eoseq_slice); - tcase_add_test (tc_chain, test_h264_parse_slice_5bytes); -+ tcase_add_test (tc_chain, test_h264_parse_identify_nalu_avc); - tcase_add_test (tc_chain, test_h264_parse_invalid_sei); - tcase_add_test (tc_chain, test_h264_create_sei); - -diff --git a/tests/check/libs/h265parser.c b/tests/check/libs/h265parser.c -index 0a0e4db97..5b6a215ec 100644 ---- a/tests/check/libs/h265parser.c -+++ b/tests/check/libs/h265parser.c -@@ -255,6 +255,65 @@ GST_START_TEST (test_h265_parse_slice_6bytes) - - GST_END_TEST; - -+GST_START_TEST (test_h265_parse_identify_nalu_hevc) -+{ -+ GstH265ParserResult res; -+ GstH265NalUnit nalu; -+ GstH265Parser *parser = gst_h265_parser_new (); -+ /* Skip 4 bytes for the start code */ -+ const gsize nal_size = sizeof (slice_eos_slice_eob) - 4; -+ const gsize buf_size = 4 + nal_size; -+ guint8 *buf = g_new (guint8, buf_size); -+ -+ memcpy (buf + 4, slice_eos_slice_eob + 4, nal_size); -+ -+ GST_WRITE_UINT16_BE (buf + 2, nal_size); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 2, buf_size, 2, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_OK); -+ assert_equals_int (nalu.type, GST_H265_NAL_SLICE_IDR_W_RADL); -+ assert_equals_int (nalu.offset, 4); -+ assert_equals_int (nalu.size, nal_size); -+ -+ GST_WRITE_UINT32_BE (buf, nal_size); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_OK); -+ assert_equals_int (nalu.type, GST_H265_NAL_SLICE_IDR_W_RADL); -+ assert_equals_int (nalu.offset, 4); -+ assert_equals_int (nalu.size, nal_size); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 2); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 3); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 4); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_NO_NAL_END); -+ -+ GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 6); -+ res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu); -+ -+ assert_equals_int (res, GST_H265_PARSER_NO_NAL_END); -+ -+ g_free (buf); -+ gst_h265_parser_free (parser); -+} -+ -+GST_END_TEST; -+ - GST_START_TEST (test_h265_base_profiles) - { - GstH265ProfileTierLevel ptl; -@@ -1101,6 +1160,7 @@ h265parser_suite (void) - tcase_add_test (tc_chain, test_h265_parse_slice_eos_slice_eob); - tcase_add_test (tc_chain, test_h265_parse_pic_timing); - tcase_add_test (tc_chain, test_h265_parse_slice_6bytes); -+ tcase_add_test (tc_chain, test_h265_parse_identify_nalu_hevc); - tcase_add_test (tc_chain, test_h265_base_profiles); - tcase_add_test (tc_chain, test_h265_base_profiles_compat); - tcase_add_test (tc_chain, test_h265_format_range_profiles_exact_match); --- -2.31.1 - -- cgit v1.2.3 From 630ff4535e2e7cf473969fc893b093c028590670 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 15:08:30 -0400 Subject: gnu: gst-plugins-ugly: Update to 1.18.5. * gnu/packages/gstreamer.scm (gst-plugins-ugly): Update to 1.18.5. [source]: Remove patches. * gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch: Delete file. * gnu/local.mk: De-register it. --- gnu/local.mk | 1 - gnu/packages/gstreamer.scm | 8 +- .../gst-plugins-ugly-fix-out-of-bound-reads.patch | 119 --------------------- 3 files changed, 3 insertions(+), 125 deletions(-) delete mode 100644 gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3c9aee40d4..c17ef152e8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1213,7 +1213,6 @@ dist_patch_DATA = \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ %D%/packages/patches/gst-plugins-good-fix-test.patch \ - %D%/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-skip-oom-test.patch \ %D%/packages/patches/guile-2.2-skip-so-test.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index cbf1845360..2377b66067 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -895,16 +895,15 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.18.4") + (version "1.18.5") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) - (patches (search-patches "gst-plugins-ugly-fix-out-of-bound-reads.patch")) (sha256 - (base32 "0g6i4db1883q3j0l2gdv46fcqwiiaw63n6mhvsfcms1i1p7g1391")))) + (base32 "1nb6kz3gbn8r0sld6xkm16qpgyb2bvhafb7sff9rgagqk0z80cnz")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas @@ -921,8 +920,7 @@ par compared to the rest.") ;; Tests look for $XDG_RUNTIME_DIR. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t))))) + (setenv "DBUS_FATAL_WARNINGS" "0")))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") diff --git a/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch b/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch deleted file mode 100644 index 3c6a96f45d..0000000000 --- a/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch +++ /dev/null @@ -1,119 +0,0 @@ -Fix out of bounds reads when parsing audio and video packets: - -https://security-tracker.debian.org/tracker/TEMP-0000000-4DAA44 -https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues/37 - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/commit/3aba7d1e625554b2407bc77b3d09b4928b937d5f -From 3aba7d1e625554b2407bc77b3d09b4928b937d5f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= -Date: Wed, 3 Mar 2021 11:05:14 +0200 -Subject: [PATCH] rmdemux: Make sure we have enough data available when parsing - audio/video packets - -Otherwise there will be out-of-bounds reads and potential crashes. - -Thanks to Natalie Silvanovich for reporting. - -Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues/37 - -Part-of: ---- - gst/realmedia/rmdemux.c | 35 +++++++++++++++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - -diff --git a/gst/realmedia/rmdemux.c b/gst/realmedia/rmdemux.c -index 6cc659a1..68b0736b 100644 ---- a/gst/realmedia/rmdemux.c -+++ b/gst/realmedia/rmdemux.c -@@ -2223,6 +2223,9 @@ gst_rmdemux_parse_video_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, - - gst_buffer_map (in, &map, GST_MAP_READ); - -+ if (map.size < offset) -+ goto not_enough_data; -+ - data = map.data + offset; - size = map.size - offset; - -@@ -2289,6 +2292,9 @@ gst_rmdemux_parse_video_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, - } - GST_DEBUG_OBJECT (rmdemux, "fragment size %d", fragment_size); - -+ if (map.size < (data - map.data) + fragment_size) -+ goto not_enough_data; -+ - /* get the fragment */ - fragment = - gst_buffer_copy_region (in, GST_BUFFER_COPY_ALL, data - map.data, -@@ -2437,6 +2443,9 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, - GstFlowReturn ret; - GstBuffer *buffer; - -+ if (gst_buffer_get_size (in) < offset) -+ goto not_enough_data; -+ - buffer = gst_buffer_copy_region (in, GST_BUFFER_COPY_MEMORY, offset, -1); - - if (rmdemux->first_ts != -1 && timestamp > rmdemux->first_ts) -@@ -2467,9 +2476,19 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream, - ret = gst_pad_push (stream->pad, buffer); - } - -+done: - gst_buffer_unref (in); - - return ret; -+ -+ /* ERRORS */ -+not_enough_data: -+ { -+ GST_ELEMENT_WARNING (rmdemux, STREAM, DECODE, ("Skipping bad packet."), -+ (NULL)); -+ ret = GST_FLOW_OK; -+ goto done; -+ } - } - - static GstFlowReturn -@@ -2490,6 +2509,9 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version) - data = map.data; - size = map.size; - -+ if (size < 4 + 6 + 1 + 2) -+ goto not_enough_data; -+ - /* stream number */ - id = RMDEMUX_GUINT16_GET (data); - -@@ -2525,6 +2547,9 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version) - - /* version 1 has an extra byte */ - if (version == 1) { -+ if (size < 1) -+ goto not_enough_data; -+ - data += 1; - size -= 1; - } -@@ -2596,6 +2621,16 @@ unknown_stream: - gst_buffer_unref (in); - return GST_FLOW_OK; - } -+ -+ /* ERRORS */ -+not_enough_data: -+ { -+ GST_ELEMENT_WARNING (rmdemux, STREAM, DECODE, ("Skipping bad packet."), -+ (NULL)); -+ gst_buffer_unmap (in, &map); -+ gst_buffer_unref (in); -+ return GST_FLOW_OK; -+ } - } - - gboolean --- -2.31.1 - -- cgit v1.2.3 From c4924a9d23087679f5122d3160b6a1705be9bf81 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 15:12:46 -0400 Subject: gnu: gst-libav: Update to 1.18.5. * gnu/packages/gstreamer.scm (gst-libav): Update to 1.18.5. [source]: Remove patch, now integrated upstream. * gnu/packages/patches/gst-libav-64channels-stack-corruption.patch: Delete file. * gnu/local.mk: De-register it. --- gnu/local.mk | 1 - gnu/packages/gstreamer.scm | 5 ++-- .../gst-libav-64channels-stack-corruption.patch | 31 ---------------------- 3 files changed, 2 insertions(+), 35 deletions(-) delete mode 100644 gnu/packages/patches/gst-libav-64channels-stack-corruption.patch diff --git a/gnu/local.mk b/gnu/local.mk index c17ef152e8..9d82fe0d3d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1211,7 +1211,6 @@ dist_patch_DATA = \ %D%/packages/patches/grub-efi-fat-serial-number.patch \ %D%/packages/patches/grub-setup-root.patch \ %D%/packages/patches/gspell-dash-test.patch \ - %D%/packages/patches/gst-libav-64channels-stack-corruption.patch \ %D%/packages/patches/gst-plugins-good-fix-test.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-skip-oom-test.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 2377b66067..34adb0c7e5 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -953,7 +953,7 @@ think twice about shipping them.") (define-public gst-libav (package (name "gst-libav") - (version "1.18.4") + (version "1.18.5") (source (origin (method url-fetch) @@ -961,9 +961,8 @@ think twice about shipping them.") (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) - (patches (search-patches "gst-libav-64channels-stack-corruption.patch")) (sha256 - (base32 "15n3x3vhshqa3icw93g4vqmqd46122anzqvfxwn6q8famlxlcjil")))) + (base32 "0j55jgk9sbhinfx2gsg21q609x6yzrixrn5xxlxd378fj6500bl2")))) (build-system meson-build-system) (native-inputs `(("perl" ,perl) diff --git a/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch b/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch deleted file mode 100644 index cc174e618d..0000000000 --- a/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch +++ /dev/null @@ -1,31 +0,0 @@ -Fix a stack corruption when handling files with more than 64 audio -channels: - -https://gstreamer.freedesktop.org/security/sa-2021-0005.html - -Patch copied from upstream source repository: - -https://gitlab.freedesktop.org/gstreamer/gst-libav/-/commit/dcea8baa14a5fc3b796d876baaf2f238546ba2b1 - -diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c -index b5be4bb7a5f2712f78383da9319754a8849e3307..be22f22cf5c7c7b22b13e44b10999adaacbcca2b 100644 ---- a/ext/libav/gstavcodecmap.c -+++ b/ext/libav/gstavcodecmap.c -@@ -102,7 +102,7 @@ gst_ffmpeg_channel_layout_to_gst (guint64 channel_layout, gint channels, - guint nchannels = 0; - gboolean none_layout = FALSE; - -- if (channel_layout == 0) { -+ if (channel_layout == 0 || channels > 64) { - nchannels = channels; - none_layout = TRUE; - } else { -@@ -163,7 +163,7 @@ gst_ffmpeg_channel_layout_to_gst (guint64 channel_layout, gint channels, - } else { - guint i; - -- for (i = 0; i < nchannels; i++) -+ for (i = 0; i < nchannels && i < 64; i++) - pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE; - } - } -- cgit v1.2.3 From bd5b51e951d84554a5472479bb130d183a998c27 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 15:15:47 -0400 Subject: gnu: gst-editing-services: Update to 1.18.5. * gnu/packages/gstreamer.scm (gst-editing-services): Update to 1.18.5. --- gnu/packages/gstreamer.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 34adb0c7e5..0618716c7c 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -983,7 +983,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") (define-public gst-editing-services (package (name "gst-editing-services") - (version "1.18.4") + (version "1.18.5") (source (origin (method url-fetch) (uri (string-append @@ -991,7 +991,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") "gst-editing-services-" version ".tar.xz")) (sha256 (base32 - "010xg960qsh5dwmf0y9l1q13h0cymmrgapzla2zsw66ylxqbi1s6")))) + "1x8db4021qv4ypq1g6n5q2awrb7glr4xp1h650c3w7q59lwsix4a")))) (build-system meson-build-system) (arguments ;; FIXME: 16/22 failing tests. -- cgit v1.2.3 From e030df6e097c970c424547ff0e5e8272bded802f Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 15:17:06 -0400 Subject: gnu: python-gst: Update to 1.18.5. * gnu/packages/gstreamer.scm (python-gst): Update to 1.18.5. --- gnu/packages/gstreamer.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 0618716c7c..feb11c882b 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -1055,7 +1055,7 @@ given, also pass them to the build system instead of the ones used by PKG." (define-public python-gst (package (name "python-gst") - (version "1.18.2") + (version "1.18.5") (source (origin (method url-fetch) (uri (string-append @@ -1063,7 +1063,7 @@ given, also pass them to the build system instead of the ones used by PKG." "gst-python-" version ".tar.xz")) (sha256 (base32 - "171qxzndii7ynn9ag3a12h9vyydxzwy1j4ip3cb8hgim1dv0z7g1")))) + "0lmwwmr3wm56qlrdrb0d5cpmqxkcmarz61wmp1nrv5852f3qadjk")))) (build-system meson-build-system) (arguments `(#:modules ((guix build meson-build-system) -- cgit v1.2.3 From 7b6280c980f416ebd6b0f80086a8a248ca520f04 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 15:18:48 -0400 Subject: gnu: gstreamer-docs: Update to 1.18.5. * gnu/packages/gstreamer.scm (gstreamer-docs): Update to 1.18.5. Delete trailing #t. --- 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 feb11c882b..86ff9eb552 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -409,7 +409,7 @@ arrays of data.") (define-public gstreamer-docs (package (name "gstreamer-docs") - (version "1.18.2") + (version "1.18.5") (source (origin (method url-fetch) (uri (string-append @@ -417,7 +417,7 @@ arrays of data.") "/gstreamer-docs-" version ".tar.xz")) (sha256 (base32 - "07hrgn11ll16yahyyh5684k8ms1j9npsyb8lj0skwbapin4czshm")))) + "1xvqrqv1zxqdpvd02dvr0xspk30c8b940vvnr9x75a08nx0x75xh")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -435,8 +435,7 @@ arrays of data.") (invoke (string-append tar "/bin/tar") "-xvf" source "--strip-components=3" (string-append ,name "-" ,version - "/devhelp/books/GStreamer"))) - #t)))) + "/devhelp/books/GStreamer"))))))) (native-inputs `(("tar" ,tar) ("xz" ,xz))) -- cgit v1.2.3 From b33dc57d3e37ceebd347a35435ef663537b15a8c Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 9 Oct 2021 00:19:56 -0400 Subject: gnu: tensorflow: Enable parallel build (at least partially). There are still many parts of the build that happen sequentially, but at least this hastens the long build somewhat. * gnu/packages/machine-learning.scm (tensorflow)[phases]: Remove trailing #t. {build-pip-package}: Honor the PARALLEL-BUILD? argument. --- gnu/packages/machine-learning.scm | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index d709120f91..9a8d1d5e7d 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1745,7 +1745,7 @@ Python.") ((guix build python-build-system) #:select (python-version))) #:imported-modules (,@%cmake-build-system-modules - (guix build python-build-system)) + (guix build python-build-system)) #:phases (modify-phases %standard-phases (add-after 'unpack 'set-source-file-times-to-1980 @@ -1775,8 +1775,7 @@ Python.") ;; https://github.com/tensorflow/tensorflow/issues/34197 (substitute* (find-files "tensorflow/python" ".*\\.cc$") (("(nullptr,)(\\ +/. tp_print)" _ _ tp_print) - (string-append "NULL, " tp_print))) - #t)) + (string-append "NULL, " tp_print))))) (add-after 'python3.7-compatibility 'chdir (lambda _ (chdir "tensorflow/contrib/cmake") #t)) (add-after 'chdir 'disable-downloads @@ -1874,8 +1873,7 @@ set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/external/eigen_archive " (("tf_core_cpu grpc") "tf_core_cpu")) ;; This directory is a dependency of many targets. - (mkdir-p "protobuf") - #t)) + (mkdir-p "protobuf"))) (add-after 'configure 'unpack-third-party-sources (lambda* (#:key inputs #:allow-other-keys) ;; This is needed to configure bundled packages properly. @@ -1915,8 +1913,7 @@ set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/external/eigen_archive " "re2")) (rename-file "../build/cub/src/cub/cub-1.8.0/" - "../build/cub/src/cub/cub/") - #t)) + "../build/cub/src/cub/cub/"))) (add-after 'unpack 'fix-python-build (lambda* (#:key inputs outputs #:allow-other-keys) (mkdir-p "protobuf-src") @@ -1955,21 +1952,22 @@ set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/external/eigen_archive " (string-append "set_target_properties(${_AT_TARGET} PROPERTIES \ COMPILE_FLAGS ${target_compile_flags} \ INSTALL_RPATH_USE_LINK_PATH TRUE \ -INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n"))) - #t)) +INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n"))))) (add-after 'build 'build-pip-package - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key outputs parallel-build? #:allow-other-keys) (setenv "LDFLAGS" (string-append "-Wl,-rpath=" (assoc-ref outputs "out") "/lib")) - (invoke "make" "tf_python_build_pip_package") - #t)) + (invoke "make" "-j" (if parallel-build? + (number->string (parallel-job-count)) + "1") + "tf_python_build_pip_package"))) (add-after 'build-pip-package 'install-python (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (wheel (car (find-files "../build/tf_python/dist/" "\\.whl$"))) (python-version (python-version - (assoc-ref inputs "python")))) + (assoc-ref inputs "python")))) (invoke "python" "-m" "pip" "install" wheel (string-append "--prefix=" out)) @@ -1978,8 +1976,7 @@ INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n"))) (string-append out "/lib/python" python-version "/site-packages/tensorflow/contrib/" - "seq2seq/python/ops/lib_beam_search_ops.so")) - #t)))))) + "seq2seq/python/ops/lib_beam_search_ops.so")))))))) (native-inputs `(("pkg-config" ,pkg-config) ("protobuf:native" ,protobuf-3.6) ; protoc -- cgit v1.2.3 From f98306ad287a22342453209a8b842f4172e95497 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 8 Oct 2021 22:34:32 -0400 Subject: gnu: python-keras: Enable parallel tests. * (python-keras)[phases]: Delete trailing #t. {check}: Honor TESTS?. Run the tests in parallel. Disable PEP8 lint. --- gnu/packages/machine-learning.scm | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 9a8d1d5e7d..a2b5283900 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -2544,24 +2544,26 @@ with image data, text data, and sequence data.") (delete-file "keras/backend/theano_backend.py") (delete-file "keras/backend/cntk_backend.py") (delete-file "tests/keras/backend/backend_test.py") - ;; FIXME: This doesn't work because Tensorflow is missing the ;; coder ops library. - (delete-file "tests/keras/test_callbacks.py") - #t)) + (delete-file "tests/keras/test_callbacks.py"))) (replace 'check - (lambda _ - ;; These tests attempt to download data files from the internet. - (delete-file "tests/integration_tests/test_datasets.py") - (delete-file "tests/integration_tests/imagenet_utils_test.py") - ;; Backport https://github.com/keras-team/keras/pull/12479. - (substitute* "tests/keras/engine/test_topology.py" - (("np.ones\\(\\(3, 2\\)\\)") - "1.")) - (invoke "python" "-m" "pytest" - ;; The following test fail only in the build container; - ;; skip it. - "-k" "not test_selu")))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; These tests attempt to download data files from the internet. + (delete-file "tests/integration_tests/test_datasets.py") + (delete-file "tests/integration_tests/imagenet_utils_test.py") + ;; Backport https://github.com/keras-team/keras/pull/12479. + (substitute* "tests/keras/engine/test_topology.py" + (("np.ones\\(\\(3, 2\\)\\)") + "1.")) + (invoke "python" "-m" "pytest" "tests" + "-p" "no:pep8" + ;; FIXME: python-build-system lacks PARALLEL-TESTS? + "-n" (number->string (parallel-job-count)) + ;; The following test fail only in the build container; + ;; skip it. + "-k" "not test_selu"))))))) (propagated-inputs `(("python-h5py" ,python-h5py) ("python-keras-applications" ,python-keras-applications) @@ -2588,7 +2590,6 @@ with image data, text data, and sequence data.") and capable of running on top of TensorFlow. It was developed with a focus on enabling fast experimentation. Use Keras if you need a deep learning library that: - @itemize @item Allows for easy and fast prototyping (through user friendliness, modularity, and extensibility). -- cgit v1.2.3 From 597ae30dc3de5ebe17301318da8a5abb23c30013 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 9 Oct 2021 00:44:08 -0400 Subject: gnu: dbus-c++: Fix build. * gnu/packages/glib.scm (dbus-c++)[inputs]: Add libunwind. --- gnu/packages/glib.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index d264d66b92..1a94113fe7 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -47,6 +47,7 @@ #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) #:use-module (gnu packages libffi) + #:use-module (gnu packages libunwind) #:use-module (gnu packages linux) #:use-module (gnu packages m4) #:use-module (gnu packages nettle) @@ -1007,7 +1008,8 @@ This package provides the library for GLib applications.") (inputs `(("efl" ,efl) ("expat" ,expat) - ("glib" ,glib))) + ("glib" ,glib) + ("libunwind" ,libunwind))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments -- cgit v1.2.3 From 42b0d904d0e52901362a95b22e1fa6a572282b48 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 9 Oct 2021 23:40:59 -0400 Subject: gnu: libnice: Update to 0.1.18-0.47a9633. This resolves a build failure following the GStreamer update to 1.18.5. * gnu/packages/networking.scm (libnice): Update to 0.1.18-0.47a9633. --- gnu/packages/networking.scm | 119 +++++++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 57 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index c6788e8d86..e029a5c7ec 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -264,65 +264,70 @@ Android, and ChromeOS.") (license license:lgpl2.1+))) (define-public libnice - (package - (name "libnice") - (version "0.1.18") - (source - (origin - (method url-fetch) - (uri - (string-append "https://libnice.freedesktop.org/releases/" - name "-" version ".tar.gz")) - (sha256 - (base32 "1x3kj9b3dy9m2h6j96wgywfamas1j8k2ca43k5v82kmml9dx5asy")))) - (build-system meson-build-system) - (outputs '("out" "doc")) - (arguments - `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas - #:configure-flags - (list - "-Dgtk_doc=enabled") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-failing-test - (lambda _ - (substitute* "tests/meson.build" - ;; ‘test-set-port-range.c:66:main: assertion failed: - ;; (nice_agent_gather_candidates (agent, stream1))’ - (("'test-set-port-range'") "#")) - #t)) - (add-after 'install 'move-docs - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (mkdir-p (string-append doc "/share")) - (rename-file - (string-append out "/share/gtk-doc") - (string-append doc "/share/gtk-doc")) - #t)))))) - (native-inputs - `(("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc/stable) - ("pkg-config" ,pkg-config))) - (inputs - `(("gstreamer" ,gstreamer) - ("gst-plugins-base" ,gst-plugins-base) - ("libnsl" ,libnsl))) - (propagated-inputs - `(("glib" ,glib) - ("glib-networking" ,glib-networking) - ("gnutls" ,gnutls))) - (synopsis "GLib ICE implementation") - (description "LibNice is a library that implements the Interactive + ;; The latest release is old and randomly fails tests with GStreamer 1.18.5, + ;; such as: "test-bind: ../libnice-0.1.18/stun/tests/test-bind.c:234: + ;; bad_responses: Assertion `len >= 20' failed" + (let ((revision "0") + (commit "47a96334448838c43d7e72f4ef51b317befbfae1")) + (package + (name "libnice") + (version (git-version "0.1.18" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/libnice/libnice") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19ypjazslmsb9vqs2wyyzvi72h5jbn16dbng7pxh485djdrmgcg4")))) + (build-system meson-build-system) + (outputs '("out" "doc")) + (arguments + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:configure-flags + (list + "-Dgtk_doc=enabled") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-test + (lambda _ + (substitute* "tests/meson.build" + ;; ‘test-set-port-range.c:66:main: assertion failed: + ;; (nice_agent_gather_candidates (agent, stream1))’ + (("'test-set-port-range'") "#")))) + (add-after 'install 'move-docs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out "/share/gtk-doc") + (string-append doc "/share/gtk-doc")))))))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc/stable) + ("pkg-config" ,pkg-config))) + (inputs + `(("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("libnsl" ,libnsl))) + (propagated-inputs + `(("glib" ,glib) + ("glib-networking" ,glib-networking) + ("gnutls" ,gnutls))) + (synopsis "GLib ICE implementation") + (description "LibNice is a library that implements the Interactive Connectivity Establishment (ICE) standard (RFC 5245 & RFC 8445). It provides a GLib-based library, libnice, as well as GStreamer elements to use it.") - (home-page "https://libnice.freedesktop.org/") - (license - ;; This project is dual-licensed. - (list - license:lgpl2.1+ - license:mpl1.1)))) + (home-page "https://libnice.freedesktop.org/") + (license + ;; This project is dual-licensed. + (list + license:lgpl2.1+ + license:mpl1.1))))) (define-public rtmpdump ;; There are no tags in the repository, and the project is unlikely to -- cgit v1.2.3 From 62b44b0b4e69b7fd1b9c1994d0e58af1214c820d Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Sun, 10 Oct 2021 09:03:23 +0200 Subject: bluez: Update to 5.61. * gnu/packages/linux.scm (bluez): Update to 5.61. --- 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 43b69133c7..2bda02ff81 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -5186,7 +5186,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (define-public bluez (package (name "bluez") - (version "5.59") + (version "5.61") (source (origin (method url-fetch) (uri (string-append @@ -5194,7 +5194,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") version ".tar.xz")) (sha256 (base32 - "05kk8zdh3msf5j88jbai8m877rvya6fpkzhicfhv5gyhhsrrasq4")))) + "0fs2kjsdhylxniqhii63i85fjszbqbz3iddwmgz4nmbr472xdbw3")))) (build-system gnu-build-system) (arguments `(#:configure-flags -- cgit v1.2.3 From 8e0a8819b7836e844c1bca500a0c4d03a97cf3a0 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 11 Oct 2021 23:42:40 -0400 Subject: gnu: python-keras: Skip a flaky test. * gnu/packages/machine-learning.scm (python-keras) [phases]{check}: Also skip the test_stateful_metrics test. --- gnu/packages/machine-learning.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index a2b5283900..1a17c73eea 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -16,7 +16,7 @@ ;;; Copyright © 2020 Konrad Hinsen ;;; Copyright © 2020 Edouard Klein ;;; Copyright © 2020, 2021 Vinicius Monego -;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020, 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -2561,9 +2561,14 @@ with image data, text data, and sequence data.") "-p" "no:pep8" ;; FIXME: python-build-system lacks PARALLEL-TESTS? "-n" (number->string (parallel-job-count)) - ;; The following test fail only in the build container; - ;; skip it. - "-k" "not test_selu"))))))) + "-k" + (string-append + ;; The following test fails only in the build + ;; container; skip it. + "not test_selu " + ;; The following test was found flaky and removed in + ;; recent versions. + "and not test_stateful_metrics")))))))) (propagated-inputs `(("python-h5py" ,python-h5py) ("python-keras-applications" ,python-keras-applications) -- cgit v1.2.3 From 8b96c0ad0156cd07a792d25c0ba8233a133a332c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 26 Nov 2021 10:24:43 +0100 Subject: gnu: git: Update to 2.34.1. * gnu/packages/version-control.scm (git): Update to 2.34.1. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index ead33ad10e..7d4e245969 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -178,14 +178,14 @@ as well as the classic centralized workflow.") (define-public git (package (name "git") - (version "2.33.0") + (version "2.34.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0kqcs8nj5h7rh3q86pw5777awq7gn77lgxk88ynjl1rfz2snlg5z")))) + "0b40vf315s1kz65x1wq47g8srl4wqac39pwnvlj1mdzs3kfma1rs")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -205,7 +205,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "0cdwqhj6yx3rlzvvfh0jamzjva9svd8kxmb5kqsp8nz47yz8mlyn")))) + "1f3y7hxvs9p00wwwi8zdn0sgn6nh1pgg1fdsnz2bq8gzfbbmsqww")))) ;; For subtree documentation. ("asciidoc" ,asciidoc) ("docbook-xsl" ,docbook-xsl) -- cgit v1.2.3 From 01faf2c1bbefe4bbf5926fccca336268d93547a7 Mon Sep 17 00:00:00 2001 From: Ryan Prior via Guix-patches via Date: Thu, 16 Sep 2021 01:29:32 +0000 Subject: gnu: go-golang-x-sys: Update to 0.0.0-8.ed5796b. * gnu/packages/golang.scm (go-golang-x-sys): Update to 0.0.0-8.ed5796b. Signed-off-by: Nicolas Goaziou --- gnu/packages/golang.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a96f743f68..3a088be095 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2531,8 +2531,8 @@ packages.") (license license:bsd-3)))) (define-public go-golang-org-x-sys - (let ((commit "05986578812163b26672dabd9b425240ae2bb0ad") - (revision "7")) + (let ((commit "ed5796bab16455f104b6a384d51b7f9990cb9806") + (revision "8")) (package (name "go-golang-org-x-sys") (version (git-version "0.0.0" revision commit)) @@ -2544,7 +2544,7 @@ packages.") (file-name (git-file-name name version)) (sha256 (base32 - "1q2rxb6z5l6pmlckjsz2l0b8lw7bqgk6frhzbmi1dv0y5irb2ka7")))) + "081vs5bg91mwg5bdmlcvy2qyrvg766aicj47smcwfk4bbh0nc0qa")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/sys" -- cgit v1.2.3 From eec94982b1e66291fa0ce8ac11f5bf3ae2088133 Mon Sep 17 00:00:00 2001 From: Ryan Prior via Guix-patches via Date: Thu, 16 Sep 2021 01:29:36 +0000 Subject: gnu: esbuild: Update to 0.14.0. * gnu/packages/web.scm (esbuild): Update to 0.14.0. Signed-off-by: Nicolas Goaziou --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index a0a512ca94..4beeaf8d7d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1653,7 +1653,7 @@ used to validate and fix HTML data.") (define-public esbuild (package (name "esbuild") - (version "0.12.9") + (version "0.14.0") (source (origin (method git-fetch) @@ -1662,7 +1662,7 @@ used to validate and fix HTML data.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "10bz1xq2frdja7mbx04m009svg8b5rj7vfq3sc2gc88n31v21b1j")) + (base32 "09r1xy0kk6c9cpz6q0mxr4why373pwxbm439z2ihq3k1d5kk7x4w")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 3ff2ac4980dacf10087e4b42bd9fbc490591900c Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Tue, 28 Dec 2021 15:15:45 +0100 Subject: gnu: ucd: Update to 14.0.0. * gnu/packages/unicode.scm (ucd): Update to 14.0.0. Signed-off-by: Nicolas Goaziou --- gnu/packages/unicode.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm index 806fe05fb6..ef68a27b2b 100644 --- a/gnu/packages/unicode.scm +++ b/gnu/packages/unicode.scm @@ -28,15 +28,14 @@ (define-public ucd (package (name "ucd") - (version "12.0.0") + (version "14.0.0") (source (origin (method url-fetch/zipbomb) (uri (string-append "https://www.unicode.org/Public/zipped/" version "/UCD.zip")) (sha256 - (base32 - "1ighy39cjkmqnv1797wrxjz76mv1fdw7zp5j04q55bkwxsdkvrmh")))) + (base32 "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3")))) (build-system copy-build-system) (arguments '(#:install-plan -- cgit v1.2.3 From 4e1c5cf8b1f38cb4b52ebc5bac5e115e3ed693eb Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 7 Dec 2021 20:58:17 +0100 Subject: gnu: python-flaky: Update to 3.7.0. * gnu/packages/check.scm (python-flaky): Update to 3.7.0. --- gnu/packages/check.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 06adf20c36..fec817c4f4 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -2736,13 +2736,13 @@ mocks, stubs and fakes.") (define-public python-flaky (package (name "python-flaky") - (version "3.5.3") + (version "3.7.0") (source (origin (method url-fetch) (uri (pypi-uri "flaky" version)) (sha256 (base32 - "1nm1kjf857z5aw7v642ffsy1vwf255c6wjvmil71kckjyd0mxg8j")))) + "03daz352021211kvdb056f3afrd2gsdq0rd1awgr38910xw01l9s")))) (build-system python-build-system) (arguments ;; TODO: Tests require 'coveralls' and 'genty' which are not in Guix yet. -- cgit v1.2.3 From f3803b7c201f42c8508b1b2ea3dd90463e06d75a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 22 Jan 2022 15:42:18 +0100 Subject: gnu: python-idna: Update to 3.3. * gnu/packages/python-xyz.scm (python-idna): Update to 3.3. [properties]: New field. (python2-idna): Stick with version 2.10. --- gnu/packages/python-xyz.scm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 41b60325d2..b002b60e3b 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -12038,14 +12038,14 @@ versions of Python.") (define-public python-idna (package (name "python-idna") - (version "2.10") + (version "3.3") (source (origin (method url-fetch) (uri (pypi-uri "idna" version)) (sha256 (base32 - "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk")))) + "0v8f6qjfi5i7qc5icsbv2pi24qy6k6m8wjqjvdf2sxjvlpq3yr4x")))) (build-system python-build-system) (home-page "https://github.com/kjd/idna") (synopsis "Internationalized domain names in applications") @@ -12057,10 +12057,20 @@ from the earlier standard from 2003. The library is also intended to act as a suitable drop-in replacement for the “encodings.idna” module that comes with the Python standard library but currently only supports the older 2003 specification.") + (properties `((python2-variant . ,(delay python2-idna)))) (license license:bsd-4))) (define-public python2-idna - (package-with-python2 python-idna)) + (let ((base (package-with-python2 (strip-python2-variant python-idna)))) + (package + (inherit base) + (version "2.10") + (source (origin + (method url-fetch) + (uri (pypi-uri "idna" version)) + (sha256 + (base32 + "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk"))))))) (define-public python-libsass (package -- cgit v1.2.3 From 4a739062f7b7a36b874b79fddd4d5dc972df8d5b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 22 Jan 2022 15:50:09 +0100 Subject: gnu: python-certifi: Update to 2021.10.8. * gnu/packages/python-crypto.scm (python-certifi): Update to 2021.10.8. --- gnu/packages/python-crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index e49ccdf1f2..3ff96e0ce1 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -459,13 +459,13 @@ for example, for recording or replaying web content.") (define-public python-certifi (package (name "python-certifi") - (version "2020.12.5") + (version "2021.10.8") (source (origin (method url-fetch) (uri (pypi-uri "certifi" version)) (sha256 (base32 - "177mdbw0livdjvp17sz6wsfrc32838m9y59v871gpgv2888raj8s")))) + "0wl8ln7acd797i1q7mmb430l6hqwhmk4bd37x8ycw02b3my4x23q")))) (build-system python-build-system) (arguments '(#:tests? #f)) ;no tests (home-page "https://certifi.io/") -- cgit v1.2.3 From 4ec10765f235ec9a461f544c4c81de46d0f93927 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 22 Jan 2022 15:59:40 +0100 Subject: gnu: python-requests: Update to 2.27.1. * gnu/packages/python-web.scm (python-requests): Update to 2.27.1. --- gnu/packages/python-web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 8c638ce439..8b959993b0 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -2532,13 +2532,13 @@ APIs.") (define-public python-requests (package (name "python-requests") - (version "2.26.0") + (version "2.27.1") (source (origin (method url-fetch) (uri (pypi-uri "requests" version)) (sha256 (base32 - "19q73fq7hip7b74fwls3p9x6zwvfwqcwpn6kha3zsgvrrzw5iamq")))) + "0qcsbi919d689xqlgyhw9zkppp1fs6k09wwffa3ri6d8smpwbmv8")))) (build-system python-build-system) (propagated-inputs (list python-certifi python-chardet python-charset-normalizer -- cgit v1.2.3 From f0b4c042ffe5f6c2bb5e891ca7f8c3a8db7eacdc Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 22 Jan 2022 16:00:01 +0100 Subject: gnu: python-urllib3: Update to 1.26.8. * gnu/packages/python-web.scm (python-urllib3): Update to 1.26.8. --- gnu/packages/python-web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 8b959993b0..1fef103ffe 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -2781,14 +2781,14 @@ authenticated session objects providing things like keep-alive.") (define-public python-urllib3 (package (name "python-urllib3") - (version "1.26.7") + (version "1.26.8") (source (origin (method url-fetch) (uri (pypi-uri "urllib3" version)) (sha256 (base32 - "1kkf6gi8a1fs0dqkf6kpmdpsy97iirvliz8q1krxp8ppaiawd1s9")))) + "0g18xk7gfm88gr4bp3f58vgvsbzwps3sq2kqhv5xyz9ylvck6z0f")))) (build-system python-build-system) (arguments `(#:tests? #f)) (propagated-inputs -- cgit v1.2.3 From 3f571aa4e496acbe221907d837dabf8e1c55d4c2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 23 Jan 2022 18:15:46 +0100 Subject: gnu: python-requests: Remove unnecessary input. * gnu/packages/python-web.scm (python-requests)[propagated-inputs]: Remove PYTHON-CHARDET. (python2-requests)[propagated-inputs]: Add PYTHON2-CHARDET. --- gnu/packages/python-web.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 1fef103ffe..ffb899ccd2 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -2541,8 +2541,10 @@ APIs.") "0qcsbi919d689xqlgyhw9zkppp1fs6k09wwffa3ri6d8smpwbmv8")))) (build-system python-build-system) (propagated-inputs - (list python-certifi python-chardet python-charset-normalizer - python-idna python-urllib3)) + (list python-certifi + python-charset-normalizer + python-idna + python-urllib3)) (arguments ;; FIXME: Some tests require network access. '(#:tests? #f)) @@ -2561,6 +2563,7 @@ than Python’s urllib2 library.") ;; The python-charset-normalizer dependency is necessary on Python 3 ;; only. (propagated-inputs (modify-inputs (package-propagated-inputs base) + (append python2-chardet) (delete "python-charset-normalizer")))))) (define-public python-requests-unixsocket -- cgit v1.2.3 From 55d5368b4f4b215112a950ed1d5d8f3576dec3b8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 2 Feb 2022 13:11:27 +0100 Subject: gnu: python-charset-normalizer: Update to 2.0.11. * gnu/packages/python-xyz.scm (python-charset-normalizer): Update to 2.0.11. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index b002b60e3b..88f7af2c1b 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -13096,13 +13096,13 @@ automatically detect a wide range of file encodings.") (define-public python-charset-normalizer (package (name "python-charset-normalizer") - (version "2.0.5") + (version "2.0.11") (source (origin (method url-fetch) (uri (pypi-uri "charset-normalizer" version)) (sha256 - (base32 "0rr3iv2xw4rz5ijnfqk229fw85cq6p6rhqqsilm0ldzncblfg63h")))) + (base32 "071pi2kd222rjjrjdllffqv3iz4bfaj93a9bfs65907fd6fqlfcq")))) (build-system python-build-system) (native-inputs (list python-pytest)) -- cgit v1.2.3 From 6ec96228baf96edc20f93a56566a5e0c7890d081 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 2 Feb 2022 14:49:30 +0100 Subject: gnu: python-cryptography: Remove 3.3.1. * gnu/packages/python-crypto.scm (python-cryptography-vectors-next, python-cryptography-next): Merge with ... (python-cryptography-vectors, python-cryptography): ... these variables. (python2-cryptography-vectors, python2-cryptography): Stick with version 3.3.1. Remove labels while at it. --- gnu/packages/python-crypto.scm | 129 ++++++++++++++++++----------------------- 1 file changed, 58 insertions(+), 71 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 3ff96e0ce1..d92d113929 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -481,14 +481,14 @@ is used by the Requests library to verify HTTPS requests.") (define-public python-cryptography-vectors (package (name "python-cryptography-vectors") - (version "3.3.1") + (version "36.0.1") (source (origin (method url-fetch) (uri (pypi-uri "cryptography_vectors" version)) (sha256 (base32 - "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03")))) + "166mvhhmgglqai1sjkkb76mpdkad2yykam11d2w44hs2snpr117w")))) (build-system python-build-system) (home-page "https://github.com/pyca/cryptography") (synopsis "Test vectors for the cryptography package") @@ -497,75 +497,9 @@ is used by the Requests library to verify HTTPS requests.") ;; Distributed under either BSD-3 or ASL2.0 (license (list license:bsd-3 license:asl2.0)))) -(define-public python2-cryptography-vectors - (package-with-python2 python-cryptography-vectors)) - (define-public python-cryptography (package (name "python-cryptography") - (version "3.3.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cryptography" version)) - (sha256 - (base32 - "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy")))) - (build-system python-build-system) - (inputs - (list openssl)) - (propagated-inputs - (list python-asn1crypto python-cffi python-six python-idna - python-iso8601)) - (native-inputs - (list python-cryptography-vectors python-hypothesis python-pretend - python-pytz python-pytest)) - (home-page "https://github.com/pyca/cryptography") - (synopsis "Cryptographic recipes and primitives for Python") - (description - "cryptography is a package which provides cryptographic recipes and -primitives to Python developers. It aims to be the “cryptographic standard -library” for Python. The package includes both high level recipes, and low -level interfaces to common cryptographic algorithms such as symmetric ciphers, -message digests and key derivation functions.") - ;; Distributed under either BSD-3 or ASL2.0 - (license (list license:bsd-3 license:asl2.0)) - (properties `((python2-variant . ,(delay python2-cryptography)))))) - -(define-public python2-cryptography - (let ((crypto (package-with-python2 - (strip-python2-variant python-cryptography)))) - (package/inherit crypto - (arguments - `(#:python ,python-2 - #:phases - (modify-phases %standard-phases - ;; The sanity-check attempts attempts to import the non-existent - ;; modules "_openssl" and "_padding". - (delete 'sanity-check)))) - (propagated-inputs - `(("python2-ipaddress" ,python2-ipaddress) - ("python2-backport-ssl-match-hostname" - ,python2-backport-ssl-match-hostname) - ("python2-enum34" ,python2-enum34) - ,@(package-propagated-inputs crypto)))))) - -;; TODO: Make this the default in the next staging cycle. -(define-public python-cryptography-vectors-next - (package - (inherit python-cryptography-vectors) - (version "36.0.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cryptography_vectors" version)) - (sha256 - (base32 - "166mvhhmgglqai1sjkkb76mpdkad2yykam11d2w44hs2snpr117w")))))) - -(define-public python-cryptography-next - (package - (inherit python-cryptography) (version "36.0.1") (source (origin @@ -663,15 +597,68 @@ message digests and key derivation functions.") (list python-asn1crypto python-cffi python-six python-idna python-iso8601)) (native-inputs - (list python-cryptography-vectors-next + (list python-cryptography-vectors python-hypothesis python-pretend python-pytz python-pytest python-pytest-subtests python-setuptools-rust - rust `(,rust "cargo"))) - (properties '()))) + rust + `(,rust "cargo"))) + (home-page "https://github.com/pyca/cryptography") + (synopsis "Cryptographic recipes and primitives for Python") + (description + "cryptography is a package which provides cryptographic recipes and +primitives to Python developers. It aims to be the “cryptographic standard +library” for Python. The package includes both high level recipes, and low +level interfaces to common cryptographic algorithms such as symmetric ciphers, +message digests and key derivation functions.") + ;; Distributed under either BSD-3 or ASL2.0 + (license (list license:bsd-3 license:asl2.0)) + (properties `((python2-variant . ,(delay python2-cryptography)))))) + +(define-public python2-cryptography-vectors + (package + (inherit python-cryptography-vectors) + (version "3.3.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "cryptography_vectors" version)) + (sha256 + (base32 + "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03")))) + (arguments + (list #:python python-2)))) + +(define-public python2-cryptography + (let ((crypto (package-with-python2 + (strip-python2-variant python-cryptography)))) + (package + (inherit crypto) + (version "3.3.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "cryptography" version)) + (sha256 + (base32 + "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy")))) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + ;; The sanity-check attempts attempts to import the non-existent + ;; modules "_openssl" and "_padding". + (delete 'sanity-check)))) + (native-inputs + (list python2-cryptography-vectors python2-hypothesis python2-pretend + python2-pytz python2-pytest)) + (inputs (list openssl)) + (propagated-inputs + (modify-inputs (package-propagated-inputs crypto) + (prepend python2-ipaddress + python2-backport-ssl-match-hostname + python2-enum34)))))) (define-public python-pyopenssl (package -- cgit v1.2.3 From aad0b91c370e2159e2c23d34950cdd5b40ae1636 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 4 Feb 2022 10:21:40 +0100 Subject: gnu: python-chardet: Trim closure size. * gnu/packages/python-xyz.scm (python-chardet)[arguments]: Override wrap phase. --- gnu/packages/python-xyz.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 88f7af2c1b..88edd7de3e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -13082,7 +13082,27 @@ simulation, statistical modeling, machine learning and much more.") (list python-hypothesis python-pytest python-pytest-runner)) (build-system python-build-system) ;; XXX: Incompatible with Pytest 4: . - (arguments `(#:tests? #f)) + (arguments + (list #:tests? #f + #:phases + #~(modify-phases %standard-phases + ;; This package provides a 'chardetect' executable that only + ;; depends on Python, so customize the wrap phase to avoid + ;; adding pytest and friends in order to save size. + ;; (See also .) + (replace 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((sitedir (site-packages inputs outputs)) + (python (dirname (dirname + (search-input-file + inputs "bin/python")))) + (python-sitedir + (string-append python "/lib/python" + (python-version python) + "/site-packages"))) + (wrap-program (string-append #$output "/bin/chardetect") + `("GUIX_PYTHONPATH" ":" suffix + ,(list sitedir python-sitedir))))))))) (home-page "https://github.com/chardet/chardet") (synopsis "Universal encoding detector for Python 2 and 3") (description -- cgit v1.2.3 From 662d1229677b70428d4630c3b417ee2fce97ed67 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 4 Feb 2022 10:22:17 +0100 Subject: gnu: python-charset-normalizer: Trim closure size. * gnu/packages/python-xyz.scm (python-charset-normalizer)[arguments]: Override wrap phase. --- gnu/packages/python-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 88edd7de3e..1b23f46f4c 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -13124,6 +13124,26 @@ automatically detect a wide range of file encodings.") (sha256 (base32 "071pi2kd222rjjrjdllffqv3iz4bfaj93a9bfs65907fd6fqlfcq")))) (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + ;; This package provides a 'normalizer' executable that only + ;; depends on Python, so customize the wrap phase to avoid + ;; adding pytest and friends in order to save size. + ;; (See also .) + (replace 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((sitedir (site-packages inputs outputs)) + (python (dirname (dirname + (search-input-file + inputs "bin/python")))) + (python-sitedir + (string-append python "/lib/python" + (python-version python) + "/site-packages"))) + (wrap-program (string-append #$output "/bin/normalizer") + `("GUIX_PYTHONPATH" ":" suffix + ,(list sitedir python-sitedir))))))))) (native-inputs (list python-pytest)) (home-page "https://github.com/ousret/charset_normalizer") -- cgit v1.2.3 From 447e438aa69dbd9207c90bf68f71e42384a09f73 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 4 Feb 2022 10:48:03 +0100 Subject: gnu: python-chardet: Update to 4.0.0. * gnu/packages/python-xyz.scm (python-chardet): Update to 4.0.0. [arguments]: Enable tests. Override check phase. [native-inputs]: Remove PYTHON-HYPOTHESIS and PYTHON-PYTEST-RUNNER. --- gnu/packages/python-xyz.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 1b23f46f4c..09197bdaa1 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -13070,22 +13070,23 @@ simulation, statistical modeling, machine learning and much more.") (define-public python-chardet (package (name "python-chardet") - (version "3.0.4") + (version "4.0.0") (source (origin (method url-fetch) (uri (pypi-uri "chardet" version)) (sha256 (base32 - "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4")))) + "1ykr04qyhgpc0h5b7dhqw4g92b1xv7ki2ky910mhy4mlbnhm6vqd")))) (native-inputs - (list python-hypothesis python-pytest python-pytest-runner)) + (list python-pytest)) (build-system python-build-system) - ;; XXX: Incompatible with Pytest 4: . (arguments - (list #:tests? #f - #:phases + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest" "-vv"))) ;; This package provides a 'chardetect' executable that only ;; depends on Python, so customize the wrap phase to avoid ;; adding pytest and friends in order to save size. -- cgit v1.2.3 From cc8d4fa5abd40ed4465dd6173924802d7c81bb26 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 4 Feb 2022 11:02:23 +0100 Subject: gnu: python-iso8601: Update to 1.0.2. * gnu/packages/time.scm (python-iso8601): Update to 1.0.2. [native-inputs]: Add PYTHON-PYTZ. [home-page]: Update to current. [properties]: New field. * gnu/packages/time.scm (python2-iso8601): Update to 0.1.16. --- gnu/packages/time.scm | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 9b57fe41fb..1b94632c09 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -353,14 +353,14 @@ ISO 8601 dates, time and duration.") (define-public python-iso8601 (package (name "python-iso8601") - (version "0.1.13") + (version "1.0.2") (source (origin (method url-fetch) (uri (pypi-uri "iso8601" version)) (sha256 (base32 - "1cgfj91khil4ii5gb8s6nxwm73vx7hqc2k79dd9d8990ylmc5ppp")))) + "1ccl6plks706hxm35cn1wsvxhqh3bfwi5cjgjpdxjib81qi07x97")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -368,16 +368,27 @@ ISO 8601 dates, time and duration.") (lambda _ (invoke "pytest" "-vv" "iso8601")))))) (native-inputs - (list python-pytest)) - (home-page "https://bitbucket.org/micktwomey/pyiso8601") + (list python-pytest python-pytz)) + (home-page "https://github.com/micktwomey/pyiso8601") (synopsis "Module to parse ISO 8601 dates") (description "This module parses the most common forms of ISO 8601 date strings (e.g. @code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.") + (properties `((python2-variant . ,(delay python2-iso8601)))) (license expat))) (define-public python2-iso8601 - (package-with-python2 python-iso8601)) + (let ((base (package-with-python2 (strip-python2-variant python-iso8601)))) + (package + (inherit base) + (version "0.1.16") + (source + (origin + (method url-fetch) + (uri (pypi-uri "iso8601" version)) + (sha256 + (base32 + "0ny8dlycapxr8n2m13jxy0r7kbqvgypfshb6y7l981c0rivjylrn"))))))) (define-public python-monotonic (package -- cgit v1.2.3 From 7d3a1545f8d0a873807d1c0afed0268b3e3f3acf Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 4 Feb 2022 11:06:44 +0100 Subject: gnu: python-pycparser: Update to 2.21. * gnu/packages/python-xyz.scm (python-pycparser): Update to 2.21. [arguments]: Adjust check phase. Remove trailing #t's. [native-inputs]: Remove. --- gnu/packages/python-xyz.scm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 09197bdaa1..de2fecd0fc 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -7427,26 +7427,22 @@ data, and scientific formats.") (define-public python-pycparser (package (name "python-pycparser") - (version "2.20") + (version "2.21") (source (origin (method url-fetch) (uri (pypi-uri "pycparser" version)) (sha256 (base32 - "1w0m3xvlrzq4lkbvd1ngfm8mdw64r1yxy6n7djlw6qj5d0km6ird")))) + "01kjlyn5w2nn2saj8w1rhq7v26328pd91xwgqn32z1zp2bngsi76")))) (outputs '("out" "doc")) (build-system python-build-system) - (native-inputs - (list pkg-config)) (arguments `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (with-directory-excursion "tests" - (invoke "python" "all_tests.py")) - #t)) + (invoke "python" "-m" "unittest" "discover"))) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((data (string-append (assoc-ref outputs "doc") "/share")) @@ -7457,8 +7453,7 @@ data, and scientific formats.") (copy-file (string-append "." file) (string-append doc file))) '("/README.rst" "/CHANGES" "/LICENSE")) - (copy-recursively "examples" examples) - #t)))))) + (copy-recursively "examples" examples))))))) (home-page "https://github.com/eliben/pycparser") (synopsis "C parser in Python") (description -- cgit v1.2.3 From d94de62f1c692674558ee6907c45a0682abbea75 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 5 Feb 2022 12:38:48 +0100 Subject: gnu: librsvg: Remove unused inputs. * gnu/packages/gnome.scm (librsvg)[native-inputs]: Remove PYTHON-WRAPPER and RUBY. [inputs]: Remove BZIP2, FONTCONFIG, LIBCROCO, and LIBGSF. (librsvg-2.40)[inputs]: Remove BZIP2 and LIBGSF. --- gnu/packages/gnome.scm | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index bb5b037736..e653e6e0c1 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3508,18 +3508,9 @@ for dealing with different structured file formats.") `(,glib "bin") gobject-introspection pkg-config - python-wrapper - ruby vala)) (inputs - (list bzip2 - fontconfig - freetype - harfbuzz - libcroco - libgsf - libxml2 - pango)) + (list freetype harfbuzz libxml2 pango)) (propagated-inputs (list cairo gdk-pixbuf glib)) (synopsis "SVG rendering library") @@ -3610,7 +3601,7 @@ diagrams.") `(,glib "bin") ; glib-mkenums, etc. gobject-introspection)) ; g-ir-compiler, etc. (inputs - (list pango libcroco bzip2 libgsf libxml2)) + (list pango libcroco libxml2)) (propagated-inputs ;; librsvg-2.0.pc refers to all of that. (list cairo gdk-pixbuf glib)) -- cgit v1.2.3 From 6f22596b1c440caca31fb2ba3c250bb7476ad794 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 13 Feb 2022 15:14:04 +0100 Subject: gnu: python-pyopenssl: Update to 22.0.0. * gnu/packages/python-crypto.scm (python-pyopenssl): Update to 22.0.0. [arguments]: Respect TESTS? in check phase and rewrite in gexp style. (python2-pyopenssl): Update to 21.0.0. [source](patches): New field. * gnu/packages/patches/python2-pyopenssl-openssl-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 1 + .../patches/python2-pyopenssl-openssl-compat.patch | 51 ++++++++++++++++++ gnu/packages/python-crypto.scm | 60 +++++++++++++--------- 3 files changed, 88 insertions(+), 24 deletions(-) create mode 100644 gnu/packages/patches/python2-pyopenssl-openssl-compat.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1b08b40b9c..5780cb9034 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1721,6 +1721,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \ %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \ %D%/packages/patches/python-pyflakes-test-location.patch \ + %D%/packages/patches/python2-pyopenssl-openssl-compat.patch \ %D%/packages/patches/python-flint-includes.patch \ %D%/packages/patches/python-libxml2-utf8.patch \ %D%/packages/patches/python-magic-python-bytecode.patch \ diff --git a/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch b/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch new file mode 100644 index 0000000000..a185f4172d --- /dev/null +++ b/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch @@ -0,0 +1,51 @@ +Adjust for OpenSSL 1.1.1: + + https://github.com/pyca/pyopenssl/issues/1043 + +Taken from upstream: + + https://github.com/pyca/pyopenssl/commit/cc5c00ae5fd3c19d07fff79b5c4a08f5e58697ad + +diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py +index 59f21cec..fcdee047 100644 +--- a/src/OpenSSL/SSL.py ++++ b/src/OpenSSL/SSL.py +@@ -1421,6 +1421,12 @@ def set_alpn_protos(self, protos): + This list should be a Python list of bytestrings representing the + protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``. + """ ++ # Different versions of OpenSSL are inconsistent about how they handle empty ++ # proto lists (see #1043), so we avoid the problem entirely by rejecting them ++ # ourselves. ++ if not protos: ++ raise ValueError("at least one protocol must be specified") ++ + # Take the list of protocols and join them together, prefixing them + # with their lengths. + protostr = b"".join( +@@ -2449,6 +2455,12 @@ def set_alpn_protos(self, protos): + This list should be a Python list of bytestrings representing the + protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``. + """ ++ # Different versions of OpenSSL are inconsistent about how they handle empty ++ # proto lists (see #1043), so we avoid the problem entirely by rejecting them ++ # ourselves. ++ if not protos: ++ raise ValueError("at least one protocol must be specified") ++ + # Take the list of protocols and join them together, prefixing them + # with their lengths. + protostr = b"".join( +diff --git a/tests/test_ssl.py b/tests/test_ssl.py +index ffc505d8..ca363b45 100644 +--- a/tests/test_ssl.py ++++ b/tests/test_ssl.py +@@ -1928,7 +1928,7 @@ def test_alpn_call_failure(self): + protocols list. Ensure that we produce a user-visible error. + """ + context = Context(SSLv23_METHOD) +- with pytest.raises(Error): ++ with pytest.raises(ValueError): + context.set_alpn_protos([]) + + def test_alpn_set_on_connection(self): diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index d92d113929..103a0c7eae 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -663,37 +663,37 @@ message digests and key derivation functions.") (define-public python-pyopenssl (package (name "python-pyopenssl") - (version "20.0.1") + (version "22.0.0") (source (origin (method url-fetch) (uri (pypi-uri "pyOpenSSL" version)) (sha256 (base32 - "0labcbh2g0jhgisd79wx9kixmi6fip28096d1xb05fj3jmsiq8sc")))) + "1gzihw09sqi71lwx97c69hab7w4rbnl6hhfrl6za3i5a4la1n2v6")))) (build-system python-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (delete 'check) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - ;; PyOpenSSL runs tests against a certificate with a fixed - ;; expiry time. To ensure successful builds in the future, - ;; set the time to roughly the release date. - (invoke "faketime" "2021-05-01" "py.test" "-v" "-k" - (string-append - ;; This test tries to look up certificates from - ;; the compiled-in default path in OpenSSL, which - ;; does not exist in the build environment. - "not test_fallback_default_verify_paths " - ;; This test attempts to make a connection to - ;; an external web service. - "and not test_set_default_verify_paths " - ;; Fails on i686-linux and possibly other 32-bit platforms - ;; https://github.com/pyca/pyopenssl/issues/974 - "and not test_verify_with_time"))))))) + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; PyOpenSSL runs tests against a certificate with a fixed + ;; expiry time. To ensure successful builds in the future, + ;; set the time to roughly the release date. + (invoke "faketime" "2022-02-01" "py.test" "-v" "-k" + (string-append + ;; This test tries to look up certificates from + ;; the compiled-in default path in OpenSSL, which + ;; does not exist in the build environment. + "not test_fallback_default_verify_paths " + ;; This test attempts to make a connection to + ;; an external web service. + "and not test_set_default_verify_paths " + ;; Fails on i686-linux and possibly other 32-bit platforms + ;; https://github.com/pyca/pyopenssl/issues/974 + "and not test_verify_with_time")))))))) (propagated-inputs (list python-cryptography python-six)) (inputs @@ -705,10 +705,22 @@ message digests and key derivation functions.") (description "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL library.") + (properties `((python2-variant . ,(delay python2-pyopenssl)))) (license license:asl2.0))) (define-public python2-pyopenssl - (package-with-python2 python-pyopenssl)) + (let ((base (package-with-python2 (strip-python2-variant python-pyopenssl)))) + (package + (inherit base) + (version "21.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyOpenSSL" version)) + (patches (search-patches "python2-pyopenssl-openssl-compat.patch")) + (sha256 + (base32 + "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay"))))))) (define-public python-ed25519 (package -- cgit v1.2.3 From f0227a18c2394d3403d0265f3c700cfd9d1ee5b4 Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Sun, 12 Dec 2021 19:31:34 +0100 Subject: gnu: postgresql: Install manpages and info manual. Fixes . * gnu/packages/databases.scm (postgresql)[arguments]: Use gexps and remove trailing #t. [configure-flags]: Add '--mandir'. [phases]{install-manuals}: New phase. [native-inputs]: New field. [inputs]: Use new style. Co-authored-by: Maxim Cournoyer --- gnu/packages/databases.scm | 73 +++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index f6c1046a51..2e5d49bc12 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -32,7 +32,7 @@ ;;; Copyright © 2017 Kristofer Buffington ;;; Copyright © 2018 Amirouche Boubekki ;;; Copyright © 2018 Joshua Sierles, Nextjournal -;;; Copyright © 2018, 2021 Maxim Cournoyer +;;; Copyright © 2018, 2021, 2022 Maxim Cournoyer ;;; Copyright © 2019 Jack Hill ;;; Copyright © 2019 Alex Griffin ;;; Copyright © 2019 Gábor Boskovits @@ -56,6 +56,7 @@ ;;; Copyright © 2021 jgart ;;; Copyright © 2021 Foo Chuan Wei ;;; Copyright © 2022 Zhu Zihao +;;; Copyright © 2021 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,6 +91,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages dbm) + #:use-module (gnu packages docbook) #:use-module (gnu packages emacs) #:use-module (gnu packages flex) #:use-module (gnu packages freedesktop) @@ -1225,38 +1227,43 @@ and high-availability (HA).") (patches (search-patches "postgresql-disable-resolve_symlinks.patch")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--with-uuid=e2fs" "--with-openssl" - ;; PostgreSQL installs its own Makefile (should it?). - ;; Prevent it from retaining needless references to - ;; the build tools in order to save size. - "MKDIR_P=mkdir -p" "INSTALL_BIN=install -c" - "LD=ld" "TAR=tar") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-/bin/sh - (lambda _ - ;; Refer to the actual shell. - (substitute* '("src/bin/pg_ctl/pg_ctl.c" - "src/bin/psql/command.c") - (("/bin/sh") (which "sh"))) - #t)) - (add-before 'configure 'set-socket-dir - (lambda _ - (substitute* '("src/include/pg_config_manual.h") - (("DEFAULT_PGSOCKET_DIR[^\n]*") - "DEFAULT_PGSOCKET_DIR \"/var/run/postgresql\"")) - #t)) - (add-after 'build 'build-contrib - (lambda _ - (invoke "make" "-C" "contrib"))) - (add-after 'install 'install-contrib - (lambda _ - (invoke "make" "-C" "contrib" "install")))))) - (inputs - `(("readline" ,readline) - ("libuuid" ,util-linux "lib") - ("openssl" ,openssl) - ("zlib" ,zlib))) + (list + #:configure-flags + #~(list "--with-uuid=e2fs" "--with-openssl" + (string-append "--mandir=" #$output "/share/man") + ;; PostgreSQL installs its own Makefile (should it?). + ;; Prevent it from retaining needless references to + ;; the build tools in order to save size. + "MKDIR_P=mkdir -p" "INSTALL_BIN=install -c" + "LD=ld" "TAR=tar") + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'patch-/bin/sh + (lambda _ + ;; Refer to the actual shell. + (substitute* '("src/bin/pg_ctl/pg_ctl.c" + "src/bin/psql/command.c") + (("/bin/sh") (which "sh"))))) + (add-before 'configure 'set-socket-dir + (lambda _ + (substitute* '("src/include/pg_config_manual.h") + (("DEFAULT_PGSOCKET_DIR[^\n]*") + "DEFAULT_PGSOCKET_DIR \"/var/run/postgresql\"")))) + (add-after 'build 'build-contrib + (lambda _ + (invoke "make" "-C" "contrib"))) + (add-after 'install 'install-contrib + (lambda _ + (invoke "make" "-C" "contrib" "install"))) + (add-after 'install 'install-manuals + (lambda _ + (with-directory-excursion "doc/src/sgml" + (invoke "make" "install-man") + (invoke "make" "postgres.info") + (install-file "postgres.info" + (string-append #$output "/share/info")))))))) + (native-inputs (list docbook-xml docbook2x libxml2 perl texinfo)) + (inputs (list readline `(,util-linux "lib") openssl zlib)) (home-page "https://www.postgresql.org/") (synopsis "Powerful object-relational database system") (description -- cgit v1.2.3 From e2264e6328c3cb9853187826506d8e17c54b7151 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 18 Mar 2022 00:43:51 -0400 Subject: gnu: postgresql-13: Update to 13.6. * gnu/packages/databases.scm (postgresql-13): Update to 13.6. --- 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 2e5d49bc12..408dcb2582 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1278,14 +1278,14 @@ pictures, sounds, or video.") (define-public postgresql-13 (package (inherit postgresql-14) - (version "13.4") + (version "13.6") (source (origin (inherit (package-source postgresql-14)) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "1kf0gcsrl5n25rjlvkh87aywmn28kbwvakm5c7j1qpr4j01y34za")))))) + "1z37ix80hb2bqa2smh1hbj9r507ypnl3pil43gkqznnlv6ipzz5s")))))) (define-public postgresql-11 (package -- cgit v1.2.3 From 03b5668a035ba96c9690476078c5ee1d5793f3e2 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 21 Mar 2022 16:15:29 -0400 Subject: gnu: man-db: Update to 2.10.2, enable support for zstd and libseccomp. * gnu/packages/man.scm (man-db): Update to 2.10.2. [configure-flags]: Use search-input-file. Add '--with-zstd' flag. [phases]: Delete trailing #t. [native-inputs]: Adjust comment. [inputs]{libseccomp, zstd}: New inputs. Remove FIXME comment. --- gnu/packages/man.scm | 92 ++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 50 deletions(-) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index a434c70576..14aaa36ea1 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2021 Guillaume Le Vaillant ;;; Copyright © 2021 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2022 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -125,14 +126,14 @@ a flexible and convenient way.") (define-public man-db (package (name "man-db") - (version "2.9.4") + (version "2.10.2") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/man-db/man-db-" version ".tar.xz")) (sha256 (base32 - "0mk7n7yn6scy785jhg1j14b3q9l0cgvpry49r0ldjsnizbnrjv5n")))) + "0kaiymd5lh4dnp6z15fnvfg0ir81kdxp5l690ccp64ra956rb5zf")))) (build-system gnu-build-system) (arguments (list #:phases @@ -146,8 +147,7 @@ a flexible and convenient way.") (("#! /bin/sh") (string-append "#!" (which "sh"))))) (remove file-is-directory? - (find-files "src/tests" ".*"))) - #t))) + (find-files "src/tests" ".*")))))) (add-after 'unpack 'patch-absolute-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/man.c" @@ -160,64 +160,56 @@ a flexible and convenient way.") (("groff_preconv = NULL") (string-append "groff_preconv = \"" (assoc-ref inputs "groff-minimal") - "/bin/preconv\""))) - #t))) + "/bin/preconv\"")))))) #:configure-flags - #~(let ((groff (assoc-ref %build-inputs "groff")) - (groff-minimal (assoc-ref %build-inputs "groff-minimal")) - (less (assoc-ref %build-inputs "less")) - (gzip (assoc-ref %build-inputs "gzip")) - (bzip2 (assoc-ref %build-inputs "bzip2")) - (xz (assoc-ref %build-inputs "xz")) - (util (assoc-ref %build-inputs "util-linux"))) - ;; Invoke groff, less, gzip, bzip2, & xz directly from the store. - (append (list ;; Disable setuid man user. - "--disable-setuid" - ;; Don't constrain ownership of system-wide cache files. - ;; Otherwise creating the manpage database fails with - ;; man-db > 2.7.5. - "--disable-cache-owner" - (string-append "--with-pager=" less "/bin/less") - (string-append "--with-gzip=" gzip "/bin/gzip") - (string-append "--with-bzip2=" bzip2 "/bin/gzip") - (string-append "--with-xz=" xz "/bin/xz") - (string-append "--with-col=" util "/bin/col") - ;; The default systemd directories ignore --prefix. - ;; XXX TODO: Replace with simply #$OUTPUT on staging. - (string-append "--with-systemdsystemunitdir=" - #$(if (%current-target-system) - #~#$output - #~%output) - "/lib/systemd/system") - (string-append "--with-systemdtmpfilesdir=" - #$(if (%current-target-system) - #~#$output - #~%output) - "/lib/tmpfiles.d")) - (map (lambda (prog) - (string-append "--with-" prog "=" groff-minimal - "/bin/" prog)) - '("nroff" "eqn" "neqn" "tbl" "refer" "pic")))) - + #~(cons* + ;; Disable setuid man user. + "--disable-setuid" + ;; Don't constrain ownership of system-wide cache files. + ;; Otherwise creating the manpage database fails with + ;; man-db > 2.7.5. + "--disable-cache-owner" + (string-append "--with-pager=" + (search-input-file %build-inputs "bin/less")) + (string-append "--with-gzip=" + (search-input-file %build-inputs "bin/gzip")) + (string-append "--with-bzip2=" + (search-input-file %build-inputs "bin/bzip2")) + (string-append "--with-xz=" + (search-input-file %build-inputs "bin/xz")) + (string-append "--with-zstd=" + (search-input-file %build-inputs "bin/zstd")) + (string-append "--with-col=" + (search-input-file %build-inputs "bin/col")) + ;; The default systemd directories ignore --prefix. + (string-append "--with-systemdsystemunitdir=" + #$output "/lib/systemd/system") + (string-append "--with-systemdtmpfilesdir=" + #$output "/lib/tmpfiles.d") + (map (lambda (prog) + (string-append + "--with-" prog "=" + #$(this-package-input "groff-minimal") + (string-append "/bin/" prog))) + '("nroff" "eqn" "neqn" "tbl" "refer" "pic"))) ;; At run time we should refer to GROFF-MINIMAL, not GROFF (the latter ;; pulls in Perl.) - #:disallowed-references - (list groff) - + #:disallowed-references (list groff) #:modules '((guix build gnu-build-system) (guix build utils) (srfi srfi-1)))) (native-inputs - (list pkg-config flex groff)) ;needed at build time (troff, grops, soelim, etc.) + (list pkg-config flex + ;; Groff is needed at build time for troff, grops, soelim, etc. + groff)) (inputs (list gdbm groff-minimal less libpipeline - ;; FIXME: 4.8 and later can use libseccomp, but it causes test - ;; failures in the build chroot. - ;;("libseccomp" ,libseccomp) - util-linux)) + libseccomp + util-linux + zstd)) (native-search-paths (list (search-path-specification (variable "MANPATH") -- cgit v1.2.3 From 15d1d23dbbd1f2f45820c205c38bf666382bc211 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 22 Mar 2022 11:29:25 -0400 Subject: gnu: man-db: Simplify 'patch-test-shebangs' phase. * gnu/packages/man.scm (man-db)[phases]{patch-test-shebangs}: Do not filter nonexistent directories from find-files. [modules]: Delete field. --- gnu/packages/man.scm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 14aaa36ea1..1c1d82758b 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -146,8 +146,7 @@ a flexible and convenient way.") (substitute* file (("#! /bin/sh") (string-append "#!" (which "sh"))))) - (remove file-is-directory? - (find-files "src/tests" ".*")))))) + (find-files "src/tests"))))) (add-after 'unpack 'patch-absolute-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/man.c" @@ -194,10 +193,7 @@ a flexible and convenient way.") '("nroff" "eqn" "neqn" "tbl" "refer" "pic"))) ;; At run time we should refer to GROFF-MINIMAL, not GROFF (the latter ;; pulls in Perl.) - #:disallowed-references (list groff) - #:modules '((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)))) + #:disallowed-references (list groff))) (native-inputs (list pkg-config flex ;; Groff is needed at build time for troff, grops, soelim, etc. -- cgit v1.2.3 From 12c9da35389dfba86ae0d863132a6b2c4374205a Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Sun, 13 Mar 2022 02:04:14 +0100 Subject: gnu: python-pytest-cov: Update to 3.0.0. * gnu/packages/pdf.scm (python-pytest-cov): Update to 3.0.0. Signed-off-by: Mathieu Othacehe --- gnu/packages/check.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 32aedf5b6b..1171d1c28b 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -1150,13 +1150,13 @@ following improvements: (define-public python-pytest-cov (package (name "python-pytest-cov") - (version "2.8.1") + (version "3.0.0") (source (origin (method url-fetch) (uri (pypi-uri "pytest-cov" version)) (sha256 - (base32 "0avzlk9p4nc44k7lpx9109dybq71xqnggxb9f4hp0l64pbc44ryc")))) + (base32 "0w6lfv8gc1lxmnvsz7mq5z9shxac5zz6s9mwrai108kxc6qzbw77")))) (build-system python-build-system) (arguments `(#:phases -- cgit v1.2.3 From 53c061955956bc52d33fe5029ee5b34b937fe610 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 28 Apr 2022 23:32:04 +0300 Subject: gnu: imlib2: Update to 1.9.0. * gnu/packages/image.scm (imlib2): Update to 1.9.0. --- gnu/packages/image.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index d45a14ec14..ace023464e 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1003,15 +1003,15 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.") (define-public imlib2 (package (name "imlib2") - (version "1.7.1") + (version "1.9.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/enlightenment/imlib2-src/" version - "/imlib2-" version ".tar.bz2")) + "/imlib2-" version ".tar.xz")) (sha256 (base32 - "01y45cdml2dr9cqgybrgxr86sd77d1qfa1gzclzy1j6bkminlfh3")))) + "0l662h74i3mzl5ligj1352rf8bf48drasj97wygr2037gk5fijas")))) (build-system gnu-build-system) (arguments '(#:configure-flags (list "--disable-static"))) -- cgit v1.2.3 From d57ec0a3037a00cb8a9fe456ea1dc026f9718d70 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 28 Apr 2022 23:33:44 +0300 Subject: gnu: imlib2: Remove input labels. * gnu/packages/image.scm (imlib2)[native-inputs]: Remove input labels. [inputs]: Same. --- gnu/packages/image.scm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index ace023464e..ec6793aa9a 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1016,18 +1016,18 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.") (arguments '(#:configure-flags (list "--disable-static"))) (native-inputs - `(("pkgconfig" ,pkg-config))) + (list pkg-config)) (inputs - `(("bzip2" ,bzip2) - ("freetype" ,freetype) - ("giflib" ,giflib) - ("libid3tag" ,libid3tag) - ("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("libtiff" ,libtiff) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libwebp" ,libwebp))) + (list bzip2 + freetype + giflib + libid3tag + libjpeg-turbo + libpng + libtiff + libx11 + libxext + libwebp)) (home-page "https://sourceforge.net/projects/enlightenment/") (synopsis "Loading, saving, rendering and manipulating image files") -- cgit v1.2.3 From 10ff74d3974f517890ef74650d0031722c971cf4 Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Thu, 21 Apr 2022 18:48:51 +0800 Subject: gnu: bubblewrap: Update to 0.6.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/virtualization.scm (bubblewrap): Update to 0.6.1. Signed-off-by: Ludovic Courtès --- gnu/packages/virtualization.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index f3396e7c94..3f7c6312f2 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -27,6 +27,7 @@ ;;; Copyright © 2022 Oleg Pykhalov ;;; Copyright © 2022 Ekaitz Zarraga ;;; Copyright © 2022 Arun Isaac +;;; Copyright © 2022 Zhu Zihao ;;; ;;; This file is part of GNU Guix. ;;; @@ -1950,7 +1951,7 @@ virtual machines.") (define-public bubblewrap (package (name "bubblewrap") - (version "0.5.0") + (version "0.6.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/containers/bubblewrap/" @@ -1958,7 +1959,7 @@ virtual machines.") version ".tar.xz")) (sha256 (base32 - "0608l2sjwhnb1c0mslah1h6yjvqr17wk60by6i710qwxg4rszz8n")) + "10ij62jg7p2scwdx0pm141ss7p2gjdkbbymb56y8miib2vfcf2cn")) (patches (search-patches "bubblewrap-fix-locale-in-tests.patch")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 391dc965299de6b2313e0f2c6c52ceef3294e55f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 28 Apr 2022 23:54:59 +0200 Subject: gnu: rust-pyo3: Allow compilation with Criterion 0.3.5. Fixes a regression introduced in 2703daf6eb0098ad064a9b6ec64a9ae7b5b35343. * gnu/packages/crates-io.scm (rust-pyo3-0.15)[modules, snippet]: New fields. --- gnu/packages/crates-io.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index bebc1fce8d..c8ce72b129 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -45716,7 +45716,14 @@ ecosystem.") (uri (crate-uri "pyo3" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "082p014xd8ipwnfsq1ln871wkslxmbrxd7kpqwa0mbq53jzivw3w")))) + (base32 "082p014xd8ipwnfsq1ln871wkslxmbrxd7kpqwa0mbq53jzivw3w")) + (modules '((guix build utils))) + (snippet + ;; XXX: Relax "dev-dependencies.criterion"; this must match the + ;; version of RUST-CRITERION-0.3. + '(substitute* "Cargo.toml" + (("\"=0\\.3\\.4\"") + "\"=0.3.5\""))))) (build-system cargo-build-system) (arguments `(#:cargo-inputs -- cgit v1.2.3 From 65e3de5cce7b921f07515b633ab9ac7199a2598f Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Sun, 17 Apr 2022 08:31:26 -0400 Subject: gnu: go: Update to 1.17.9. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit go 1.17.9 (released 2022-04-12) includes security fixes to the crypto/elliptic and encoding/pem packages, as well as bug fixes to the linker and runtime. * gnu/packages/golang.scm (go-1.17): Update to 1.17.9. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 60ba76b2ea..5cf925f199 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -626,7 +626,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.16) (name "go") - (version "1.17.8") + (version "1.17.9") (source (origin (method git-fetch) @@ -636,7 +636,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (file-name (git-file-name name version)) (sha256 (base32 - "05qfs17wddxmmi349g9ci12w9fjb5vbss6qpjc4qzgqzznqf0ycy")))) + "02l6gxn738kam1niy2nl2wpsbzl4x87h2wik6hd3py19kq4z2flw")))) (outputs '("out" "tests")) ; 'tests' contains distribution tests. (arguments `(#:modules ((ice-9 match) -- cgit v1.2.3 From 555ddf0dd7e9715d9683b62ec8560735416d2c0d Mon Sep 17 00:00:00 2001 From: Brian Kubisiak Date: Sat, 2 Apr 2022 17:49:15 -0700 Subject: gnu: nss-certs: Use G-Expression. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/certs.scm (nss-certs)[arguments]: Use a gexp. Co-authored-by: Ludovic Courtès --- gnu/packages/certs.scm | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index d410b05860..53fb027563 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -28,6 +28,7 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) @@ -159,31 +160,27 @@ that was originally contributed to Debian.") (inputs '()) (propagated-inputs '()) (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (rnrs io ports) - (srfi srfi-26)) - #:phases - (modify-phases - (map (cut assq <> %standard-phases) - '(set-paths install-locale unpack)) - (add-after 'unpack 'install - (lambda _ - ;; TODO: On the next rebuild cycle, remove references to - ;; '%output' and '%outputs'. - (let ((certsdir (string-append ,(if (%current-target-system) - '(assoc-ref %outputs "out") - '%output) - "/etc/ssl/certs/"))) - (with-directory-excursion "nss/lib/ckfw/builtins/" - (unless (file-exists? "blacklist.txt") - (call-with-output-file "blacklist.txt" (const #t))) - ;; Extract selected single certificates from blob. - (invoke "certdata2pem") - ;; Copy .pem files into the output. - (for-each (cut install-file <> certsdir) - (find-files "." ".*\\.pem$"))) - (invoke "openssl" "rehash" certsdir))))))) + (list #:modules '((guix build gnu-build-system) + (guix build utils) + (rnrs io ports) + (srfi srfi-26)) + #:phases + #~(modify-phases + (map (cut assq <> %standard-phases) + '(set-paths install-locale unpack)) + (add-after 'unpack 'install + (lambda _ + (let ((certsdir (string-append #$output + "/etc/ssl/certs/"))) + (with-directory-excursion "nss/lib/ckfw/builtins/" + (unless (file-exists? "blacklist.txt") + (call-with-output-file "blacklist.txt" (const #t))) + ;; Extract selected single certificates from blob. + (invoke "certdata2pem") + ;; Copy .pem files into the output. + (for-each (cut install-file <> certsdir) + (find-files "." ".*\\.pem$"))) + (invoke "openssl" "rehash" certsdir))))))) (synopsis "CA certificates from Mozilla") (description "This package provides certificates for Certification Authorities (CA) -- cgit v1.2.3 From 68db3efbe1877c5f096a0afb7edd7e2681b3ea33 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 May 2022 00:08:45 -0400 Subject: gnu: tzdata: Update to 2022a. * gnu/packages/base.scm (tzdata): Update to 2022a. --- gnu/packages/base.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index c3b33e3751..5d9db0746d 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1241,7 +1241,7 @@ command.") (name "tzdata") ;; This package should be kept in sync with python-pytz in (gnu packages ;; time). - (version "2021e") + (version "2022a") (source (origin (method url-fetch) (uri (string-append @@ -1249,7 +1249,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07")))) + "0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg")))) (build-system gnu-build-system) (arguments (list #:tests? #f @@ -1317,7 +1317,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "0x8pcfmjvxk29yfh8bklchv2f0vpl4yih0gc4wyx292l78wncijq"))))) + "1iysv8fdkm79k8wh8jizmjmq075q4qjhk090vxjy57my6dz5wmzq"))))) (home-page "https://www.iana.org/time-zones") (synopsis "Database of current and historical time zones") (description "The Time Zone Database (often called tz or zoneinfo) -- cgit v1.2.3 From 466e12c18bfb2afc9be947c19babf9e19d31c3ab Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 8 May 2022 00:09:00 -0400 Subject: gnu: python-pytz: Update to 2022.1. * gnu/packages/time.scm (python-pytz): Update to 2022.1. --- gnu/packages/time.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 1b94632c09..bdaa9c9a25 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -126,14 +126,14 @@ expressions.") (package (name "python-pytz") ;; This package should be kept in sync with tzdata in (gnu packages base). - (version "2021.1") + (version "2022.1") (source (origin (method url-fetch) (uri (pypi-uri "pytz" version)) (sha256 (base32 - "1nn459q7zg20n75akxl3ljkykgw1ydc8nb05rx1y4f5zjh4ak943")))) + "19ya5sh7if819flgmszz585glailhi7rr8frng03n5m8wqphwxhy")))) (build-system python-build-system) (home-page "http://pythonhosted.org/pytz") (synopsis "Python timezone library") -- cgit v1.2.3 From d08921addeb4b432205af6260c9a2ebd7d611989 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 May 2022 11:48:40 +0200 Subject: gnu: texlive-amsfonts: Promote replacement. * gnu/packages/tex.scm (texlive-amsfonts): Remove. (texlive-amsfonts-fixed): Rename to... (texlive-amsfonts): ... this. --- gnu/packages/tex.scm | 133 --------------------------------------------------- 1 file changed, 133 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 34e9aa1e06..f6716c38b8 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1306,139 +1306,6 @@ Taco Hoekwater.") (define-public texlive-amsfonts (let ((template (simple-texlive-package "texlive-amsfonts" - (list "/source/latex/amsfonts/" - "/fonts/source/public/amsfonts/" - "/fonts/type1/public/amsfonts/" - "/fonts/afm/public/amsfonts/" - "/fonts/map/dvips/amsfonts/" - "/tex/plain/amsfonts/" - "/doc/fonts/amsfonts/") - (base32 - "15q70nkjf8wqzbd5ivcdx3i2sdgqxjb38q0qn9a2qw9i0qcnx6zw")))) - (package - (inherit template) - ;; TODO: This package is missing files. - (replacement texlive-amsfonts/fixed) - (arguments - (substitute-keyword-arguments (package-arguments template) - ((#:build-targets _ #t) - '(list "amsfonts.ins")) - ((#:tex-directory _ #t) - "latex/amsfonts") - ((#:modules modules '()) - `((guix build texlive-build-system) - (guix build utils) - (ice-9 match) - (srfi srfi-1) - (srfi srfi-26))) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'build 'build-fonts - (lambda* (#:key inputs #:allow-other-keys) - ;; Allow self fonts sources and other resources to be - ;; discovered. - (setenv "GUIX_TEXMF" (string-append (getenv "GUIX_TEXMF") - ":" (getcwd))) - - (let ((build (string-append (getcwd) "/build-fonts"))) - (mkdir-p build) - (with-directory-excursion "fonts/source/public/amsfonts" - (for-each (lambda (font) - (format #t "building font ~a\n" (basename font ".mf")) - (with-directory-excursion (dirname font) - (invoke "mf" "-progname=mf" - (string-append "-output-directory=" build) - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "nonstopmode; " - "input " - (getcwd) "/" - (basename font ".mf"))))) - (find-files "." "[0-9]+\\.mf$")))) - - ;; There are no metafont sources for the Euler fonts, so we - ;; convert the afm files instead. - (let ((build (string-append (getcwd) "/build-fonts/euler"))) - (mkdir build) - (with-directory-excursion "fonts/afm/public/amsfonts/euler" - (for-each (lambda (font) - (format #t "converting afm font ~a\n" (basename font ".afm")) - (invoke "afm2tfm" font - (string-append build "/" - (basename font ".tfm")))) - (find-files "(cmextra|cyrillic|dummy|euler|symbols)" - "\\.afm$"))) - - ;; Frustratingly, not all fonts can be created this way. To - ;; generate eufm8.tfm, for example, we first scale down - ;; eufm10.afm to eufm8.pl, and then generate the tfm file from - ;; the pl file. - (setenv "TEXINPUTS" - (string-append ":" build "//:" - (getcwd) "/fonts/afm/public/amsfonts//:" - (getcwd) "/source/latex/amsfonts//:")) - (with-directory-excursion build - (for-each (match-lambda - (((target-base target-size) - (source-base source-size)) - (let ((factor (number->string - (truncate/ (* 1000 target-size) - source-size)))) - (invoke "tex" - "-interaction=scrollmode" - (string-append "\\input fontinst.sty " - "\\transformfont{" target-base "}" - "{\\scalefont{" factor "}" - "{\\fromafm{" source-base "}}} " - "\\bye"))) - (invoke "pltotf" - (string-append target-base ".pl") - (string-append target-base ".tfm")) - (delete-file (string-append target-base ".pl")))) - - '((("eufm8" 8) ("eufm10" 10)) - - (("eufb6" 6) ("eufb7" 7)) - (("eufb8" 8) ("eufb10" 10)) - (("eufb9" 9) ("eufb10" 10)) - - (("eufm6" 6) ("eufb7" 7)) - (("eufm9" 9) ("eufb10" 10)) - - (("eurb6" 6) ("eurb7" 7)) - (("eurb8" 8) ("eurb10" 10)) - (("eurb9" 9) ("eurb10" 10)) - - (("eurm6" 6) ("eurm7" 7)) - (("eurm8" 8) ("eurm10" 10)) - (("eurm9" 9) ("eurm10" 10)))))))) - (add-after 'install 'install-generated-fonts - (lambda* (#:key inputs outputs #:allow-other-keys) - (copy-recursively "build-fonts" - (string-append - (assoc-ref outputs "out") - "/share/texmf-dist/fonts/tfm/public/amsfonts")))))))) - (native-inputs - (list (texlive-updmap.cfg (list texlive-fontinst)))) - (home-page "https://www.ctan.org/pkg/amsfonts") - (synopsis "TeX fonts from the American Mathematical Society") - (description - "This package provides an extended set of fonts for use in mathematics, -including: extra mathematical symbols; blackboard bold letters (uppercase -only); fraktur letters; subscript sizes of bold math italic and bold Greek -letters; subscript sizes of large symbols such as sum and product; added sizes -of the Computer Modern small caps font; cyrillic fonts (from the University of -Washington); Euler mathematical fonts. All fonts are provided as Adobe Type 1 -files, and all except the Euler fonts are provided as Metafont source. The -distribution also includes the canonical Type 1 versions of the Computer -Modern family of fonts. The Euler fonts are supported by separate packages; -details can be found in the documentation.") - (license license:silofl1.1)))) - -(define-public texlive-amsfonts/fixed - (let ((template (simple-texlive-package - "texlive-amsfonts-fixed" (list "/source/latex/amsfonts/" "/fonts/source/public/amsfonts/" "/fonts/type1/public/amsfonts/" -- cgit v1.2.3 From 3aafcdbd8ba2fdec961fd8e7d7c892e20caf4787 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 May 2022 11:53:10 +0200 Subject: gnu: texlive-amsmath: Supersed 'texlive-latex-amsmath'. * gnu/packages/tex.scm (texlive-latex-amsmath): Redefine as a deprecated alias for 'texlive-amsmath'. (texlive-base): Use 'texlive-amsmath' instead of 'texlive-latex-amsmath'. * gnu/packages/python-xyz.scm (python-matplotlib-documentation)[native-inputs]: Use 'texlive-amsmath instead of 'texlive-latex-amsmath'. (python-nbconvert)[native-inputs]: Likewise. * gnu/packages/radio.scm (gnuradio)[native-inputs]: Likewise. (libosmo-dsp)[native-inputs]: Likewise. --- gnu/packages/python-xyz.scm | 4 ++-- gnu/packages/radio.scm | 4 ++-- gnu/packages/tex.scm | 35 +++-------------------------------- 3 files changed, 7 insertions(+), 36 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index a1e7ca1c0c..7c19d2409b 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -6719,7 +6719,7 @@ toolkits.") ("graphviz" ,graphviz) ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts texlive-enumitem - texlive-latex-amsmath + texlive-amsmath texlive-latex-expdlist texlive-latex-geometry texlive-latex-preview @@ -13053,7 +13053,7 @@ time.") texlive-fonts-rsfs texlive-generic-iftex texlive-jknappen - texlive-latex-amsmath + texlive-amsmath texlive-latex-fancyvrb texlive-latex-float texlive-fontspec diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index aa0406b324..9c6db4d93f 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -554,7 +554,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") ("python-scipy" ,python-scipy) ("python-sphinx" ,python-sphinx) ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts - texlive-latex-amsmath + texlive-amsmath ;; TODO: Add newunicodechar. texlive-latex-graphics))) ("xorg-server" ,xorg-server-for-tests))) @@ -762,7 +762,7 @@ to access different radio hardware.") ("libtool" ,libtool) ("pkg-config" ,pkg-config) ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts - texlive-latex-amsmath + texlive-amsmath ;; TODO: Add newunicodechar. texlive-latex-graphics))))) (inputs diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index f6716c38b8..76cc0f7119 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3768,37 +3768,6 @@ loading fonts by their proper names instead of file names.") (define-deprecated-package texlive-luatex-luaotfload texlive-luaotfload) -(define-public texlive-latex-amsmath - (package - (name "texlive-latex-amsmath") - (version (number->string %texlive-revision)) - (source (origin - (method svn-fetch) - (uri (texlive-ref "latex" "amsmath")) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "172zybw7rp05jca8wl6x0mh6z6gncdyi1j9wdfyjnhbvqw0z4wi4")))) - ;; This package misses important files - (replacement texlive-amsmath) - (build-system texlive-build-system) - (arguments '(#:tex-directory "latex/amsmath")) - (home-page "https://www.ctan.org/pkg/amsmath") - (synopsis "AMS mathematical facilities for LaTeX") - (description - "This is the principal package in the AMS-LaTeX distribution. It adapts -for use in LaTeX most of the mathematical features found in AMS-TeX; it is -highly recommended as an adjunct to serious mathematical typesetting in LaTeX. -When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold -symbols), @code{amsopnamsopn} (for operator names) and -@code{amstextamstext} (for text embedded in mathematics) are also loaded. -This package is part of the LaTeX required distribution; however, several -contributed packages add still further to its appeal; examples are -@code{empheqempheq}, which provides functions for decorating and highlighting -mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar) -definitions.") - (license license:lppl1.3c+))) - (define-public texlive-amsmath (let ((template (simple-texlive-package "texlive-amsmath" @@ -3844,6 +3813,8 @@ mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar) definitions.") (license license:lppl1.3c+)))) +(define-deprecated-package texlive-latex-amsmath texlive-amsmath) + (define-public texlive-amscls (let ((template (simple-texlive-package "texlive-amscls" @@ -4241,7 +4212,7 @@ part of the LaTeX required set of packages.") texlive-latex-base texlive-kpathsea ;for mktex.opt ;; LaTeX packages from the "required" set. - texlive-latex-amsmath + texlive-amsmath texlive-amscls texlive-babel texlive-generic-babel-english -- cgit v1.2.3 From cf14b81b7e79a96862702d97b82409096a675b0b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 May 2022 12:02:30 +0200 Subject: gnu: texlive-babel: Incorporate and remove replacement. * gnu/packages/tex.scm (texlive-babel)[replacement]: Remove. [arguments]: Add 'unchdir' and 'delete-extra-files' phases. (texlive-babel/fixed): Remove. --- gnu/packages/tex.scm | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 76cc0f7119..647229bdb8 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3855,8 +3855,6 @@ distribution.") "0qr5vjp79g1c1l6k173qhfdfabgbky73wymzhm56pazx4a8r08wz")))) (package (inherit template) - ;; TODO: This package is missing files. - (replacement texlive-babel/fixed) (arguments (substitute-keyword-arguments (package-arguments template) ((#:tex-directory _ #t) @@ -3872,6 +3870,20 @@ distribution.") (substitute* "babel.ins" (("askonceonly") "askforoverwritefalse")) #t)) + (add-before 'copy-files 'unchdir + (lambda _ + (chdir "../../.."))) + (add-after 'copy-files 'delete-extra-files + (lambda* (#:key outputs #:allow-other-keys) + (delete-file-recursively + (string-append (assoc-ref outputs "out") + "/share/texmf-dist/source/latex/babel/build")) + (delete-file + (string-append (assoc-ref outputs "out") + "/share/texmf-dist/tex/generic/babel/bbind.ist")) + (delete-file + (string-append (assoc-ref outputs "out") + "/share/texmf-dist/tex/generic/babel/bbglo.ist")))) (add-after 'install 'install-locales (lambda* (#:key outputs #:allow-other-keys) (let ((locale-directory @@ -3894,29 +3906,6 @@ what has to be done for each language. Users of XeTeX are advised to use the polyglossia package rather than Babel.") (license license:lppl1.3+)))) -(define-public texlive-babel/fixed - (package - (inherit texlive-babel) - (name "texlive-babel-fixed") - (arguments - (substitute-keyword-arguments (package-arguments texlive-babel) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'copy-files 'unchdir - (lambda _ - (chdir "../../.."))) - (add-after 'copy-files 'delete-extra-files - (lambda* (#:key outputs #:allow-other-keys) - (delete-file-recursively - (string-append (assoc-ref outputs "out") - "/share/texmf-dist/source/latex/babel/build")) - (delete-file - (string-append (assoc-ref outputs "out") - "/share/texmf-dist/tex/generic/babel/bbind.ist")) - (delete-file - (string-append (assoc-ref outputs "out") - "/share/texmf-dist/tex/generic/babel/bbglo.ist")))))))))) - (define-deprecated-package texlive-latex-babel texlive-babel) (define-public texlive-generic-babel-english -- cgit v1.2.3 From 5c03615700ee7b4c47a463d24c910f34f109a732 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 May 2022 12:04:05 +0200 Subject: gnu: texlive-babel: Remove trailing #t. * gnu/packages/tex.scm (texlive-babel)[arguments]: Remove trailing #t. --- gnu/packages/tex.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 647229bdb8..65a3f29a7f 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3862,14 +3862,13 @@ distribution.") ((#:phases phases) `(modify-phases ,phases (add-after 'unpack 'chdir - (lambda _ (chdir "source/latex/babel/") #t)) + (lambda _ (chdir "source/latex/babel/"))) ;; This package tries to produce babel.aux twice but refuses to ;; overwrite the first one. (add-before 'build 'fix-ins (lambda _ (substitute* "babel.ins" - (("askonceonly") "askforoverwritefalse")) - #t)) + (("askonceonly") "askforoverwritefalse")))) (add-before 'copy-files 'unchdir (lambda _ (chdir "../../.."))) -- cgit v1.2.3 From 0f9d02f1685c1fdc654a52c544ca6d9b44cd2118 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 May 2022 12:05:37 +0200 Subject: gnu: texlive-psnfss: Incorporate and remove replacement. * gnu/packages/tex.scm (texlive-psnfss)[replacement]: Remove. [arguments]: Add 'unchdir' and 'delete-extra-files' phases. (texlive-psnfss/fixed): Remove. --- gnu/packages/tex.scm | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 65a3f29a7f..96449a7492 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -4139,8 +4139,6 @@ language that is written in a Cyrillic alphabet.") "11f14dzhwsy4pli21acccip43d36nf3pac33ihjffnps1i2mhqkd")))) (package (inherit template) - ;; TODO: This package is missing files. - (replacement texlive-psnfss/fixed) (arguments (substitute-keyword-arguments (package-arguments template) ((#:tex-directory _ #t) @@ -4149,7 +4147,15 @@ language that is written in a Cyrillic alphabet.") `(modify-phases ,phases (add-after 'unpack 'chdir (lambda _ - (chdir "source/latex/psnfss") #t)))))) + (chdir "source/latex/psnfss"))) + (add-before 'copy-files 'unchdir + (lambda _ + (chdir "../../.."))) + (add-after 'copy-files 'delete-extra-files + (lambda* (#:key outputs #:allow-other-keys) + (delete-file-recursively + (string-append (assoc-ref outputs "out") + "/share/texmf-dist/source/latex/psnfss/build")))))))) (native-inputs (list texlive-cm)) (home-page "https://www.ctan.org/pkg/psnfss") @@ -4168,23 +4174,6 @@ means to select single glyphs from symbol fonts. The bundle as a whole is part of the LaTeX required set of packages.") (license license:lppl1.2+)))) -(define-public texlive-psnfss/fixed - (package - (inherit texlive-psnfss) - (name "texlive-psnfss-fixed") - (arguments - (substitute-keyword-arguments (package-arguments texlive-psnfss) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'copy-files 'unchdir - (lambda _ - (chdir "../../.."))) - (add-after 'copy-files 'delete-extra-files - (lambda* (#:key outputs #:allow-other-keys) - (delete-file-recursively - (string-append (assoc-ref outputs "out") - "/share/texmf-dist/source/latex/psnfss/build")))))))))) - (define-deprecated-package texlive-latex-psnfss texlive-psnfss) ;; For user profiles -- cgit v1.2.3 From 8a340e032a9b04d2518b458c93e8569263267913 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 May 2022 12:11:38 +0200 Subject: gnu: texlive-stmaryrd: Incorporate and remove replacement. * gnu/packages/tex.scm (texlive-stmaryrd)[replacement]: Remove. [arguments]: Add 'unchdir' and 'delete-extra-files' phases. (texlive-stmaryrd/fixed): Remove. --- gnu/packages/tex.scm | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 96449a7492..b214344667 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -6229,8 +6229,6 @@ use this package to insert PostScript files, in addition to PDF files.") "0yn0yl6x1z9ab5gb56lhvkqabd2agz3ggxifwxkiysrj5780j29z")))) (package (inherit template) - ;; TODO: This package is missing files. - (replacement texlive-stmaryrd/fixed) (arguments (substitute-keyword-arguments (package-arguments template) ((#:tex-directory _ #t) "latex/stmaryrd") @@ -6246,7 +6244,15 @@ use this package to insert PostScript files, in addition to PDF files.") (("^%% LaTeX2e.*") "\\input docstrip\n") (("fontdef\\}\\}" line) (string-append line "\n\\endbatchfile"))) - #t)))))) + #t)) + (add-before 'copy-files 'unchdir + (lambda _ + (chdir "../../.."))) + (add-after 'copy-files 'delete-extra-files + (lambda* (#:key outputs #:allow-other-keys) + (delete-file-recursively + (string-append (assoc-ref outputs "out") + "/share/texmf-dist/source/fonts/stmaryrd/build")))))))) (home-page "https://www.ctan.org/pkg/stmaryrd") (synopsis "St Mary Road symbols for theoretical computer science") (description @@ -6257,25 +6263,6 @@ use under LaTeX; the package supports the @code{only} option (provided by the the whole font.") (license license:lppl)))) -(define-public texlive-stmaryrd/fixed - (package - (inherit texlive-stmaryrd) - (name "texlive-stmaryrd-fixed") - (arguments - (substitute-keyword-arguments (package-arguments texlive-stmaryrd) - ((#:tex-directory _ #t) - "latex/stmaryrd") - ((#:phases phases) - `(modify-phases ,phases - (add-before 'copy-files 'unchdir - (lambda _ - (chdir "../../.."))) - (add-after 'copy-files 'delete-extra-files - (lambda* (#:key outputs #:allow-other-keys) - (delete-file-recursively - (string-append (assoc-ref outputs "out") - "/share/texmf-dist/source/fonts/stmaryrd/build")))))))))) - (define-deprecated-package texlive-fonts-stmaryrd texlive-stmaryrd) (define-public texlive-latex-subfigure -- cgit v1.2.3 From f5fe0082abe4547f3fb9f29d8351473cfb3a387b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 8 May 2022 23:12:02 +0200 Subject: gnu: libgit2: Work around time-dependent unit test. Fixes . * gnu/packages/version-control.scm (libgit2)[source]: Augment 'snippet' to modify "tests/refs/revparse.c". --- gnu/packages/version-control.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 7574afda86..ca339b9285 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -802,7 +802,16 @@ to GitHub contributions calendar.") (base32 "0vgpb2175a5dhqiy1iwywwppahgqhi340i8bsvafjpvkw284vazd")) (modules '((guix build utils))) - (snippet '(delete-file-recursively "deps")))) + (snippet + '(begin + (delete-file-recursively "deps") + + ;; The "refs:revparse::date" test is time-dependent: it + ;; assumes "HEAD@{10 years ago}" doesn't match anything, + ;; which is no longer true. Adjust that test. + (substitute* "tests/refs/revparse.c" + (("10 years ago") + "100 years ago")))))) (build-system cmake-build-system) (outputs '("out" "debug")) (arguments -- cgit v1.2.3 From 32a87714f4507f853824d82d9c6ca10e1405c8eb Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Sat, 26 Mar 2022 13:21:17 +0000 Subject: gnu: mrustc: Update to 0.10. And enable rust for aarch64-linux! * gnu/packages/rust.scm (%mrustc-commit): Update hash. (%mrustc-source): Update to 0.10. (rust-1.39)[arguments]: Move and adapt the substitute* that prevent fetching sources. Patch /bin/sh in run_rustc/rustc_proxy.sh. [supported-systems]: Add aarch64-linux. Signed-off-by: Efraim Flashner --- gnu/packages/rust.scm | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 26d6df7a94..67dc5cdaf3 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -121,12 +121,10 @@ (package-native-inputs base-rust)))))) ;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed -;;; to be used in source form. The latest support for bootstrapping from -;;; 1.39.0 is not yet released so use the latest commit (see: -;;; https://github.com/thepowersgang/mrustc/issues/185). -(define %mrustc-commit "c7066542f8e93d320323749216bf3c82aecb67c2") +;;; to be used in source form. +(define %mrustc-commit "b364724f15fd6fce8234ad8add68107c23a22151") (define %mrustc-source - (let* ((version "0.9") + (let* ((version "0.10") (commit %mrustc-commit) (revision "1") (name "mrustc")) @@ -138,7 +136,7 @@ (file-name (git-file-name name (git-version version revision commit))) (sha256 (base32 - "0zv1x6601s5fnnkcdlqkc4bknisqz569qb0iyb9rjsmaf1kh0na3"))))) + "0f7kh4n2663sn0z3xib8gzw0s97qpvwag40g2vs3bfjlrbpgi9z0"))))) ;;; Rust 1.39 is special in that it is built with mrustc, which shortens the ;;; bootstrap path. @@ -237,10 +235,11 @@ ,(string-take %mrustc-commit 7) "\\\"" " -D VERSION_BUILDTIME=" "\"\\\"Thu, 01 Jan 1970 00:00:01 +0000\\\"\"" - " -D VERSION_GIT_ISDIRTY=0\n")) + " -D VERSION_GIT_ISDIRTY=0\n"))) + (substitute* "minicargo.mk" ;; Do not try to fetch sources from the Internet. - ((": \\$\\(RUSTC_SRC_DL\\)") - ":")) + (("\\$\\(MINICARGO\\) \\$\\(RUSTC_SRC_DL\\)") + "$(MINICARGO)")) (substitute* "run_rustc/Makefile" (("[$]Vtime ") "$V ") @@ -248,6 +247,9 @@ (("-j [[:digit:]]+ ") "") ;; Patch the shebang of a generated wrapper for rustc + (("#!/bin/sh") + (string-append "#!" (which "sh")))) + (substitute* "run_rustc/rustc_proxy.sh" (("#!/bin/sh") (string-append "#!" (which "sh")))))))) (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums @@ -322,9 +324,9 @@ safety and thread safety guarantees.") (home-page "https://github.com/thepowersgang/mrustc") - ;; So far mrustc is x86_64-only. It may support i686 soon: + ;; So far mrustc is (x86_64|aarch64)-only. It may support i686 soon: ;; . - (supported-systems '("x86_64-linux")) + (supported-systems '("x86_64-linux" "aarch64-linux")) ;; Dual licensed. (license (list license:asl2.0 license:expat)))) -- cgit v1.2.3 From 69095cde82b2930ec9450f06aefcc7415524a615 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 9 May 2022 15:16:03 +0200 Subject: gnu: polkit: Incorporate security fix and remove replacement. * gnu/packages/polkit.scm (polkit-mozjs)[replacement]: Remove. [source]: Add "polkit-CVE-2021-4034.patch". (polkit-mozjs/fixed): Remove. --- gnu/packages/polkit.scm | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index 1ae94be751..a544439fae 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -54,7 +54,6 @@ (package (name "polkit") (version "0.120") - (replacement polkit-mozjs/fixed) (source (origin (method url-fetch) (uri (string-append @@ -63,7 +62,8 @@ (sha256 (base32 "00zfg9b9ivkcj2jcf5b92cpvvyljz8cmfwj86lkvy5rihnd5jypf")) - (patches (search-patches "polkit-configure-elogind.patch")) + (patches (search-patches "polkit-configure-elogind.patch" + "polkit-CVE-2021-4034.patch")) (modules '((guix build utils))) (snippet '(begin @@ -147,16 +147,6 @@ making process with respect to granting access to privileged operations for unprivileged applications.") (license lgpl2.0+))) -(define-public polkit-mozjs/fixed - (package - (inherit polkit-mozjs) - (version "0.121") - (source (origin - (inherit (package-source polkit-mozjs)) - (patches (cons (search-patch "polkit-CVE-2021-4034.patch") - (origin-patches - (package-source polkit-mozjs)))))))) - ;;; Variant of polkit built with Duktape, a lighter JavaScript engine compared ;;; to mozjs. (define-public polkit-duktape -- cgit v1.2.3 From c9fcfef3d4b843f2e0e15030f839cc894510b6ef Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 9 May 2022 15:19:45 +0200 Subject: gnu: polkit: Remove input labels. * gnu/packages/polkit.scm (polkit-mozjs)[native-inputs]: Remove labels. (polkit-duktape)[native-inputs, inputs]: Use 'modify-inputs'. --- gnu/packages/polkit.scm | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index a544439fae..1e2f7cc0d4 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -93,12 +93,12 @@ (propagated-inputs (list glib)) ; required by polkit-gobject-1.pc (native-inputs - `(("pkg-config" ,pkg-config) - ("glib:bin" ,glib "bin") ; for glib-mkenums - ("intltool" ,intltool) - ("gobject-introspection" ,gobject-introspection) - ("libxslt" ,libxslt) ; for man page generation - ("docbook-xsl" ,docbook-xsl))) ; for man page generation + (list pkg-config + `(,glib "bin") ;for glib-mkenums + intltool + gobject-introspection + libxslt ;for man page generation + docbook-xsl)) ;for man page generation (arguments `(#:configure-flags '("--sysconfdir=/etc" "--enable-man-pages" @@ -170,13 +170,11 @@ for unprivileged applications.") (lambda _ (delete-file "configure"))))))) (native-inputs - (append `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config)) - (package-native-inputs base))) - (inputs (alist-replace "mozjs" `(,duktape) - (package-inputs base)))))) + (modify-inputs (package-native-inputs base) + (prepend autoconf automake libtool))) + (inputs + (modify-inputs (package-inputs base) + (replace "mozjs" duktape)))))) (define polkit-for-system (mlambda (system) -- cgit v1.2.3 From fabcbb5ff469ea0ebcabeda412008676dca7aa87 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 9 May 2022 15:56:44 +0200 Subject: gnu: rust-instant: Fix dependencies. Fixes a build failure introduced in bec6bf64bcbcf559eb0b91abcb7f3b2488916797. * gnu/packages/crates-io.scm (rust-instant-0.1)[arguments]: Adjust inputs as per "guix import crate rust@0.1.9". --- gnu/packages/crates-io.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 0449e4f3fe..54dfda90fa 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -29089,13 +29089,14 @@ data efficiently.") (arguments `(#:tests? #f ; Issue during the wasm test. #:cargo-inputs - (("rust-js-sys" ,rust-js-sys-0.3) + (("rust-cfg-if" ,rust-cfg-if-1) + ("rust-js-sys" ,rust-js-sys-0.3) ("rust-stdweb" ,rust-stdweb-0.4) - ("rust-time" ,rust-time-0.1) + ("rust-time" ,rust-time-0.2) ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) ("rust-web-sys" ,rust-web-sys-0.3)) #:cargo-development-inputs - (("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.2)))) + (("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)))) (home-page "https://github.com/sebcrozet/instant") (synopsis "Partial replacement for std::time::Instant that works on WASM too") -- cgit v1.2.3 From 069733a848957de2917fe342ffecf93035fc1f4f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 May 2022 00:18:31 +0200 Subject: gnu: rust-thread-id: Add 4.0.0. * gnu/packages/crates-io.scm (rust-thread-id-4): New variable. (rust-thread-id-3): Inherit from it. --- gnu/packages/crates-io.scm | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 54dfda90fa..c5e02aa0ec 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -62368,24 +62368,23 @@ handle Unicode characters correctly.") @code{thiserror} crate.") (license (list license:expat license:asl2.0)))) -(define-public rust-thread-id-3 +(define-public rust-thread-id-4 (package (name "rust-thread-id") - (version "3.3.0") + (version "4.0.0") (source (origin (method url-fetch) (uri (crate-uri "thread-id" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "1h90v19fjz3x9b25ywh68z5yf2zsmm6h5zb4rl302ckbsp4z9yy7")))) + (base32 "0zvikdngp0950hi0jgiipr8l36rskk1wk7pc8cd43xr3g5if1psz")))) (build-system cargo-build-system) (arguments - `(#:cargo-inputs - (("rust-libc" ,rust-libc-0.2) - ("rust-redox-syscall" ,rust-redox-syscall-0.1) - ("rust-winapi" ,rust-winapi-0.3)))) + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-redox-syscall" ,rust-redox-syscall-0.2) + ("rust-winapi" ,rust-winapi-0.3)))) (home-page "https://github.com/ruuda/thread-id") (synopsis "Get a unique ID for the current thread in Rust") (description @@ -62394,6 +62393,25 @@ different for every thread.") (license (list license:asl2.0 license:expat)))) +(define-public rust-thread-id-3 + (package + (inherit rust-thread-id-4) + (name "rust-thread-id") + (version "3.3.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "thread-id" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1h90v19fjz3x9b25ywh68z5yf2zsmm6h5zb4rl302ckbsp4z9yy7")))) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-redox-syscall" ,rust-redox-syscall-0.1) + ("rust-winapi" ,rust-winapi-0.3)))))) + (define-public rust-thread-id-2 (package (inherit rust-thread-id-3) -- cgit v1.2.3 From b36ce0275644055c2ee9cb2aa90a0253dd108633 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 May 2022 00:20:18 +0200 Subject: gnu: rust-parking-lot-core@0.8: Fix compilation. Fixes a build failure introduced in d16298196c23cf4d05c4010af399270a2dbbd831. * gnu/packages/crates-io.scm (rust-parking-lot-core-0.8): Update dependencies as reported by "guix import crate parking-lot-core@0.8.4". Add 'relax-dependencies' phase. --- gnu/packages/crates-io.scm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index c5e02aa0ec..0893f28c0c 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -40651,15 +40651,22 @@ synchronization primitives.") (arguments `(#:cargo-inputs (("rust-backtrace" ,rust-backtrace-0.3) - ("rust-cfg-if" ,rust-cfg-if-0.1) - ("rust-cloudabi" ,rust-cloudabi-0.1) + ("rust-cfg-if" ,rust-cfg-if-1) ("rust-instant" ,rust-instant-0.1) ("rust-libc" ,rust-libc-0.2) ("rust-petgraph" ,rust-petgraph-0.5) - ("rust-redox-syscall" ,rust-redox-syscall-0.1) + ("rust-redox-syscall" ,rust-redox-syscall-0.2) ("rust-smallvec" ,rust-smallvec-1) - ("rust-thread-id" ,rust-thread-id-3) - ("rust-winapi" ,rust-winapi-0.3)))) + ("rust-thread-id" ,rust-thread-id-4) + ("rust-winapi" ,rust-winapi-0.3)) + #:phases (modify-phases %standard-phases + (add-after 'unpack 'relax-dependencies + (lambda _ + ;; XXX: The file demands 0.3.60; we have 0.3.56, but + ;; that works well, really. + (substitute* "Cargo.toml" + (("0\\.3\\.60") + ,(package-version rust-backtrace-0.3)))))))) (home-page "https://github.com/Amanieu/parking_lot") (synopsis "API for creating custom synchronization primitives") (description "This package provides an advanced API for creating custom -- cgit v1.2.3 From 666b29e729c12465eb8329130960118dff92a5bf Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 11 May 2022 00:22:15 +0200 Subject: gnu: python-cryptography: Bump 'rust-redox-syscall' dependency. Fixes a build failure. * gnu/packages/python-crypto.scm (python-cryptography): Replace 'rust-redox-syscall-0.1' with 'rust-redox-syscall-0.2'. --- gnu/packages/python-crypto.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index d331601c66..bdaee71eb9 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -584,7 +584,7 @@ is used by the Requests library to verify HTTPS requests.") rust-pyo3-macros-0.15 rust-pyo3-macros-backend-0.15 rust-quote-1 - rust-redox-syscall-0.1 + rust-redox-syscall-0.2 rust-scopeguard-1 rust-smallvec-1 rust-stable-deref-trait-1 -- cgit v1.2.3 From 6c777feb3eb9fb594fe731b3da081faea28cf31c Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Mon, 2 May 2022 22:25:01 +0800 Subject: gnu: extra-cmake-modules: Update to 5.91.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/kde-frameworks.scm (extra-cmake-modules): Update to 5.91.0. Fix the indentation. [native-inputs]: Use label-less input style. [arguments]: Use G-expresssions. : In phase 'fix-lib-path', use QT_MAJOR_VERSION to determine the installation path, Fix the compatibility with different Qt version. Add phase 'fix-test' to workaround with the broken KDEFetchTranslations test. Signed-off-by: Ludovic Courtès --- gnu/packages/kde-frameworks.scm | 84 ++++++++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 34 deletions(-) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index e914499541..9f957692cb 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -87,7 +87,7 @@ (define-public extra-cmake-modules (package (name "extra-cmake-modules") - (version "5.70.0") + (version "5.91.0") (source (origin (method url-fetch) (uri (string-append @@ -96,7 +96,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "10c5xs5shk0dcshpdxg564ay5y8hgmvfvmlhmhjf0dy79kcah3c3")))) + "0k65rvxh926ya6qahzk2ns7g1fya1429648mlx7iipxa61g8h5wp")))) (build-system cmake-build-system) (native-inputs ;; Add test dependency, except on armhf where building it is too @@ -104,39 +104,55 @@ (if (and (not (%current-target-system)) (string=? (%current-system) "armhf-linux")) '() - `(("qtbase" ,qtbase-5)))) ;for tests (needs qmake) + (list qtbase-5))) ;for tests (needs qmake) (arguments - `(#:tests? ,(and (not (%current-target-system)) - (not (null? (package-native-inputs this-package)))) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-lib-path - (lambda _ - ;; Always install into /lib and not into /lib64. - (substitute* "kde-modules/KDEInstallDirs.cmake" - (("\"lib64\"") "\"lib\"") - ;; TODO: Base the following on values taken from Qt - ;; Install plugins into lib/qt5/plugins - ;; TODO: Check if this is okay for Android, too - ;; (see comment in KDEInstallDirs.cmake) - (("_define_relative\\(QTPLUGINDIR \"\\$\\{_pluginsDirParent}\" \"plugins\"") - "_define_relative(QTPLUGINDIR \"${_pluginsDirParent}\" \"qt5/plugins\"") - ;; Install imports into lib/qt5/imports - (("_define_relative\\(QTQUICKIMPORTSDIR QTPLUGINDIR \"imports\"") - "_define_relative(QTQUICKIMPORTSDIR LIBDIR \"qt5/imports\"") - ;; Install qml-files into lib/qt5/qml - (("_define_relative\\(QMLDIR LIBDIR \"qml\"") - "_define_relative(QMLDIR LIBDIR \"qt5/qml\"")) - (substitute* "modules/ECMGeneratePriFile.cmake" - ;; Install pri-files into lib/qt5/mkspecs - (("set\\(ECM_MKSPECS_INSTALL_DIR mkspecs/modules") - "set(ECM_MKSPECS_INSTALL_DIR lib/qt5/mkspecs/modules")) - #t)) - ;; install and check phase are swapped to prevent install from failing - ;; after testsuire has run - (add-after 'install 'check-post-install - (assoc-ref %standard-phases 'check)) - (delete 'check)))) + (list + #:tests? (and (not (%current-target-system)) + (not (null? (package-native-inputs this-package)))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-lib-path + (lambda _ + ;; Always install into /lib and not into /lib64. + (substitute* "kde-modules/KDEInstallDirsCommon.cmake" + (("\"lib64\"") "\"lib\"")) + + ;; Determine the install path by the major version of Qt. + ;; TODO: Base the following on values taken from Qt + ;; Install plugins into lib/qt5/plugins + ;; TODO: Check if this is okay for Android, too + ;; (see comment in KDEInstallDirs.cmake) + (substitute* '("kde-modules/KDEInstallDirs5.cmake" + "kde-modules/KDEInstallDirs6.cmake") + ;; Fix the installation path of Qt plugins. + (("_define_relative\\(QTPLUGINDIR \"\\$\\{_pluginsDirParent}\" \"plugins\"") + "_define_relative(QTPLUGINDIR \"${_pluginsDirParent}\" \"qt${QT_MAJOR_VERSION}/plugins\"") + ;; Fix the installation path of QML files. + (("_define_relative\\(QMLDIR LIBDIR \"qml\"") + "_define_relative(QMLDIR LIBDIR \"qt${QT_MAJOR_VERSION}/qml\"")) + + ;; Qt Quick Control 1 is no longer available in Qt 6. + (substitute* '("kde-modules/KDEInstallDirs5.cmake") + (("_define_relative\\(QTQUICKIMPORTSDIR QTPLUGINDIR \"imports\"") + "_define_relative(QTQUICKIMPORTSDIR LIBDIR \"qt5/imports\"")) + + (substitute* "modules/ECMGeneratePriFile.cmake" + ;; Install pri-files into lib/qt${QT_MAJOR_VERSION}/mkspecs + (("set\\(ECM_MKSPECS_INSTALL_DIR mkspecs/modules") + "set(ECM_MKSPECS_INSTALL_DIR lib/qt${QT_MAJOR_VERSION}/mkspecs/modules")))) + ;; Work around for the failed test KDEFetchTranslations. + ;; It complains that the cmake project name is not + ;; "frameworks/extra-cmake-modules". + ;; TODO: Fix it upstream. + (add-after 'unpack 'fix-test + (lambda _ + (substitute* "tests/KDEFetchTranslations/CMakeLists.txt" + (("frameworks/extra-cmake-modules") "extra-cmake-modules")))) + ;; install and check phase are swapped to prevent install from failing + ;; after testsuire has run + (add-after 'install 'check-post-install + (assoc-ref %standard-phases 'check)) + (delete 'check)))) ;; optional dependencies - to save space, we do not add these inputs. ;; Sphinx > 1.2: ;; Required to build Extra CMake Modules documentation in Qt Help format. -- cgit v1.2.3 From 99ec6b8e409cec93735e00dbea772fa848f43687 Mon Sep 17 00:00:00 2001 From: "Wamm K. D" Date: Mon, 9 May 2022 22:25:14 -0500 Subject: gnu: wayland: Update to 1.20.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (wayland): Update to 1.20.0. Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index f4b63cefe6..d1e10973f8 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -965,14 +965,14 @@ Python.") (define-public wayland (package (name "wayland") - (version "1.19.0") + (version "1.20.0") (source (origin (method url-fetch) (uri (string-append "https://wayland.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "05bd2vphyx8qwa1mhsj1zdaiv4m4v94wrlssrn0lad8d601dkk5s")))) + "09c7rpbwavjg4y16mrfa57gk5ix6rnzpvlnv1wp7fnbh9hak985q")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments -- cgit v1.2.3 From d0951c288b97db42c470506ec62f4e14a76774b1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 15 May 2022 15:33:22 +0200 Subject: gnu: mesa: Update to 21.3.8. * gnu/packages/gl.scm (mesa): Update to 21.3.8. --- gnu/packages/gl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 0ff39dc24d..1d39f1839d 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -260,7 +260,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "21.3.2") + (version "21.3.8") (source (origin (method url-fetch) @@ -272,7 +272,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "1g96y59bw10ml8h4jl259g41jdmf5ww3jbwqpz1sprq7hgxvmrz2")) + "19wx5plk6z0hhi0zdzxjx8ynl3lhlc5mbd8vhwqyk92kvhxjf3g7")) (patches (search-patches "mesa-skip-tests.patch")))) (build-system meson-build-system) -- cgit v1.2.3 From 0310517e6cf1de12ac39ec5ff92251146eb5da67 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 15 May 2022 15:52:24 +0200 Subject: gnu: mesa: Remove input labels. * gnu/packages/gl.scm (mesa)[inputs, native-inputs]: Remove labels. (mesa-opencl)[inputs-, native-inputs]: Likewise, and use 'modify-inputs'. --- gnu/packages/gl.scm | 64 ++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 1d39f1839d..ad0c1a20e3 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -287,36 +287,34 @@ also known as DXTn or DXTC) for Mesa.") libxxf86vm xorgproto)) (inputs - `(("expat" ,expat) - ("libelf" ,elfutils) ;required for r600 when using llvm - ("libva" ,(force libva-without-mesa)) - ("libxml2" ,libxml2) - ("libxrandr" ,libxrandr) - ("libxvmc" ,libxvmc) - ,@(match (%current-system) - ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" - "powerpc-linux" "riscv64-linux") - ;; Note: update the 'clang' input of mesa-opencl when bumping this. - `(("llvm" ,llvm-11))) - (_ - `())) - ("wayland" ,wayland) - ("wayland-protocols" ,wayland-protocols))) + (append (list expat + elfutils ;libelf required for r600 when using llvm + (force libva-without-mesa) + libxml2 + libxrandr + libxvmc + wayland + wayland-protocols) + (if (member (%current-system) + '("x86_64-linux" "i686-linux" "powerpc64le-linux" + "aarch64-linux" "powerpc-linux" "riscv64-linux")) + ;; Note: update the 'clang' input of mesa-opencl when bumping this. + (list llvm-11) + '()))) (native-inputs - `(("bison" ,bison) - ("flex" ,flex) - ("gettext" ,gettext-minimal) - ,@(match (%current-system) - ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" - "powerpc-linux" "riscv64-linux") - `(("glslang" ,glslang))) - (_ - `())) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper) - ("python-libxml2", python-libxml2) ;for OpenGL ES 1.1 and 2.0 support - ("python-mako" ,python-mako) - ("which" ,(@ (gnu packages base) which)))) + (append (list bison + flex + gettext-minimal + pkg-config + python-wrapper + python-libxml2 ;for OpenGL ES 1.1 and 2.0 support + python-mako + (@ (gnu packages base) which)) + (if (member (%current-system) + '("x86_64-linux" "i686-linux" "powerpc64le-linux" + "aarch64-linux" "powerpc-linux" "riscv64-linux")) + (list glslang) + '()))) (outputs '("out" "bin")) (arguments `(#:configure-flags @@ -519,11 +517,11 @@ from software emulation to complete hardware acceleration for modern GPUs.") ((#:configure-flags flags) `(cons "-Dgallium-opencl=standalone" ,flags)))) (inputs - `(("libclc" ,libclc) - ,@(package-inputs mesa))) + (modify-inputs (package-inputs mesa) + (prepend libclc))) (native-inputs - `(("clang" ,clang-11) - ,@(package-native-inputs mesa))))) + (modify-inputs (package-native-inputs mesa) + (prepend clang-11))))) (define-public mesa-opencl-icd (package/inherit mesa-opencl -- cgit v1.2.3 From c591bb681911a437e295e93f1d77ebcaa014a5bd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 May 2022 22:10:38 +0300 Subject: gnu: perl-net-ssleay: Update to 1.92. * gnu/packages/tls.scm (perl-net-ssleay): Update to 1.92. --- gnu/packages/tls.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 84ed0caa5d..80ad077598 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari -;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner +;;; Copyright © 2016, 2017, 2019, 2021, 2022 Efraim Flashner ;;; Copyright © 2016, 2017, 2018 Nikita ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Ricardo Wurmus @@ -762,14 +762,14 @@ certificates for free.") (define-public perl-net-ssleay (package (name "perl-net-ssleay") - (version "1.88") + (version "1.92") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/C/CH/CHRISN/" "Net-SSLeay-" version ".tar.gz")) (sha256 (base32 - "1pfgh4h3szcpvqlcimc60pjbk9zwls99x5863sva0wc47i4dl010")))) + "1acnjd5180dca26dmjq0b9ib0dbavlrzd6fnf4nidrzj02rz5hj7")))) (build-system perl-build-system) (inputs (list openssl)) (arguments -- cgit v1.2.3 From 20eadd425e7d80dac73e54b33e41643942048aa8 Mon Sep 17 00:00:00 2001 From: Aurora Date: Mon, 21 Mar 2022 17:32:14 +0000 Subject: gnu: openblas: Update to 0.3.20 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (openblas): Update to 0.3.20. Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 98e239d5bd..9bcf788c3c 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -4465,7 +4465,7 @@ parts of it.") (define-public openblas (package (name "openblas") - (version "0.3.18") + (version "0.3.20") (source (origin (method git-fetch) @@ -4475,7 +4475,7 @@ parts of it.") (file-name (git-file-name name version)) (sha256 (base32 - "17zdd8asylz2w71hczrz5y344p6d5ds1jn4901maw7zcp3dbk63g")))) + "0r4sz3rn68fyc2paq0a04pgfi7iszpm95f6ggbzxpvjzx9qxbcql")))) (build-system gnu-build-system) (arguments `(#:test-target "test" -- cgit v1.2.3 From 1038f7d6812dc4b70958dc89dafa65ebdbbe0f68 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 15 May 2022 22:22:42 +0200 Subject: gnu: openblas: Remove input labels. * gnu/packages/maths.scm (openblas)[inputs, native-inputs]: Remove labels. [arguments]: In 'set-extralib' phase, use 'search-input-file'. --- gnu/packages/maths.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 9bcf788c3c..732a7c0020 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -4534,14 +4534,14 @@ parts of it.") (lambda* (#:key inputs #:allow-other-keys) ;; Get libgfortran found when building in utest. (setenv "FEXTRALIB" - (string-append "-L" (assoc-ref inputs "fortran-lib") - "/lib"))))))) + (string-append + "-L" + (dirname + (search-input-file inputs "/lib/libgfortran.so"))))))))) (inputs - `(("fortran-lib" ,gfortran "lib"))) + (list `(,gfortran "lib"))) (native-inputs - `(("cunit" ,cunit) - ("fortran" ,gfortran) - ("perl" ,perl))) + (list cunit gfortran perl)) (home-page "https://www.openblas.net/") (synopsis "Optimized BLAS library based on GotoBLAS") (description -- cgit v1.2.3 From 8c7e4a969822af265d62c27c5f68050d06637563 Mon Sep 17 00:00:00 2001 From: Aurora Date: Thu, 24 Mar 2022 19:59:31 +0000 Subject: gnu: openfst: Add 1.7.3 for kaldi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kaldi is currently broken with openfst versions newer than 1.7.3 as it changed some of its function signatures. Once Kaldi is patched/fixed, this should be removed. Reference Issues: - https://github.com/kaldi-asr/kaldi/issues/4131 - https://github.com/kaldi-asr/kaldi/issues/4393 * gnu/packages/machine-learning.scm (openfst-1.7.3): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/machine-learning.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 7f082ee677..0adf971e20 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -585,6 +585,19 @@ sample proximities between pairs of cases.") optimizing, and searching weighted finite-state transducers (FSTs).") (license license:asl2.0))) +;; This is a temporary addition to bypass upstream issues with the kaldi +;; package. +(define-public openfst-1.7.3 + (package (inherit openfst) + (version "1.7.3") + (source (origin + (method url-fetch) + (uri (string-append "http://www.openfst.org/twiki/pub/FST/" + "FstDownload/openfst-" version ".tar.gz")) + (sha256 + (base32 + "038a60w7y8qnbxmcrsim9rafz9mihsny8xv50jpzlr7rl166pp5q")))))) + (define-public shogun (package (name "shogun") -- cgit v1.2.3 From d57a2c2b33f36df0582d306236fad3ce0768c346 Mon Sep 17 00:00:00 2001 From: Aurora Date: Thu, 24 Mar 2022 19:59:32 +0000 Subject: gnu: kaldi: Update to dd107fd, bypass tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Either kaldi's tests are broken or openblas has reintroduced a bug: - https://github.com/kaldi-asr/kaldi/pull/4421 More testing & fixes required upstream to re-enable the tests later. For now they'll just have to be ignored. * gnu/packages/machine-learning.scm (kaldi): Update to dd107fd. [arguments]: In 'configure' phase, modify "matrix/Makefile". Signed-off-by: Ludovic Courtès --- gnu/packages/machine-learning.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 0adf971e20..4c049d51f8 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1549,8 +1549,9 @@ discrete, and conditional dimensions.") ;; There have been no proper releases yet. (define-public kaldi - (let ((commit "d4791c0f3fc1a09c042dac365e120899ee2ad21e") - (revision "2")) + (let ((commit "dd107fd594ac58af962031c1689abfdc10f84452") + (revision "0") + (openfst openfst-1.7.3)) ;; Temporary bypass for upstream issues (package (name "kaldi") (version (git-version "0" revision commit)) @@ -1562,7 +1563,7 @@ discrete, and conditional dimensions.") (file-name (git-file-name name version)) (sha256 (base32 - "07k80my6f19mhrkwbzhjsnpf9871wmrwkl0ym468i830w67qyjrz")))) + "0iqbzgn7gzmgwvjfzifpbwwidxx887qmlgmsjkg7b1yzyfv00l21")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -1586,6 +1587,8 @@ discrete, and conditional dimensions.") "gst-plugin/Makefile") (("../../tools/portaudio/install") (assoc-ref inputs "portaudio"))) + (substitute* "matrix/Makefile" ;temporary test bypass + (("matrix-lib-test sparse-matrix-test") "")) ;; This `configure' script doesn't support variables passed as ;; arguments, nor does it support "prefix". -- cgit v1.2.3 From d60b9f8d0ffd19ab5c1da465eb332d299cf7a81b Mon Sep 17 00:00:00 2001 From: Aurora Date: Thu, 24 Mar 2022 19:59:33 +0000 Subject: gnu: openfst-1.7.3: Enable ngram-fst extension & C++14 build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The extension doesn't build in old versions of openfst such as 1.7.3 without manually setting CXXFLAGS. This package definition, including this workaround to build extensions successfully, will need to be removed once kaldi is fixed upstream and can be used with up-to-date versions of openfst. * gnu/packages/machine-learning.scm (openfst-1.7.3)[arguments]: New field. Signed-off-by: Ludovic Courtès --- gnu/packages/machine-learning.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 4c049d51f8..5ca70bd3d5 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -596,7 +596,9 @@ optimizing, and searching weighted finite-state transducers (FSTs).") "FstDownload/openfst-" version ".tar.gz")) (sha256 (base32 - "038a60w7y8qnbxmcrsim9rafz9mihsny8xv50jpzlr7rl166pp5q")))))) + "038a60w7y8qnbxmcrsim9rafz9mihsny8xv50jpzlr7rl166pp5q")))) + (arguments '(#:configure-flags '("--enable-ngram-fsts" "CXXFLAGS=-std=c++14") + #:make-flags '("CXXFLAGS=-std=c++14"))))) (define-public shogun (package -- cgit v1.2.3 From 7c204281ff0b57de59261cd7b68fab3df1c0f49c Mon Sep 17 00:00:00 2001 From: Aurora Date: Wed, 23 Mar 2022 15:53:43 +0000 Subject: gnu: openfst: Update to 1.8.2, enable ngram extension MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This extension is required by some programs that depend on openfst that aren't yet packaged. * gnu/packages/machine-learning.scm (openfst): Update to 1.8.2. [arguments]: New field. Signed-off-by: Ludovic Courtès --- gnu/packages/machine-learning.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 5ca70bd3d5..9a3073d3dc 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -570,15 +570,16 @@ sample proximities between pairs of cases.") (define-public openfst (package (name "openfst") - (version "1.7.9") + (version "1.8.2") (source (origin (method url-fetch) (uri (string-append "http://www.openfst.org/twiki/pub/FST/" "FstDownload/openfst-" version ".tar.gz")) (sha256 (base32 - "1pmx1yhn2gknj0an0zwqmzgwjaycapi896244np50a8y3nrsw6ck")))) + "0hlbdmjjf1jgsvi3d2hwni5lz3l9a5bzj6ijpbawa8a7cbrpp66y")))) (build-system gnu-build-system) + (arguments '(#:configure-flags '("--enable-ngram-fsts"))) (home-page "http://www.openfst.org") (synopsis "Library for weighted finite-state transducers") (description "OpenFst is a library for constructing, combining, -- cgit v1.2.3 From fd5b7393a0d889836794b71e5b834884c00315b6 Mon Sep 17 00:00:00 2001 From: wednesday Date: Fri, 20 May 2022 21:46:37 -0400 Subject: gnu: emacs: Add lcms to inputs. * gnu/packages/emacs.scm (emacs)[inputs]: Add lcms. Signed-off-by: Maxim Cournoyer --- gnu/packages/emacs.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index a5d246f7a5..63d574d8ea 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -272,6 +272,7 @@ libxft libtiff giflib + lcms libjpeg-turbo acl jansson -- cgit v1.2.3 From 15870cc08d20501e3526fa892111a43ae9e3e02f Mon Sep 17 00:00:00 2001 From: wednesday Date: Tue, 30 Apr 2019 23:06:56 +0100 Subject: gnu: emacs: Add libselinux to inputs. * gnu/packages/emacs.scm (emacs)[inputs]: Add libselinux to support extended attributes. Signed-off-by: Maxim Cournoyer --- gnu/packages/emacs.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 63d574d8ea..1badb07392 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -68,6 +68,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages selinux) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages web) ; for jansson @@ -262,7 +263,6 @@ ;; This is not needed for (modern) IMAP. mailutils - ;; TODO: Add the optional dependencies. gpm libx11 gtk+ @@ -274,6 +274,7 @@ giflib lcms libjpeg-turbo + libselinux acl jansson gmp -- cgit v1.2.3 From 048e05b7ef568dc5e29df774baaf69f7cc5ddaaa Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2022 17:56:05 +0300 Subject: gnu: python-cryptography: Downgrade to 3.4.8. Skip dealing with the rust version for now. * gnu/packages/python-crypto.scm (python-cryptography): Rename to python-cryptography-next. Replace with python-cryptography@3.4.8. (python-cryptography-vectors): Rename to python-cryptography-vectors-next. Replace with python-cryptography-vectors@3.4.8. --- gnu/packages/python-crypto.scm | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index c9bc19fbc9..c01692dfce 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -452,7 +452,7 @@ is used by the Requests library to verify HTTPS requests.") (define-public python2-certifi (package-with-python2 python-certifi)) -(define-public python-cryptography-vectors +(define-public python-cryptography-vectors-next (package (name "python-cryptography-vectors") (version "36.0.1") @@ -471,7 +471,17 @@ is used by the Requests library to verify HTTPS requests.") ;; Distributed under either BSD-3 or ASL2.0 (license (list license:bsd-3 license:asl2.0)))) -(define-public python-cryptography +(define-public python-cryptography-vectors + (package + (inherit python-cryptography-vectors-next) + (version "3.4.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "cryptography_vectors" version)) + (sha256 + (base32 "1wl0ynh3lzhc6q59g8mybvijmnp195x7fjxlb3h3sgcraw14312c")))))) + +(define-public python-cryptography-next (package (name "python-cryptography") (version "36.0.1") @@ -571,7 +581,7 @@ is used by the Requests library to verify HTTPS requests.") (list python-asn1crypto python-cffi python-six python-idna python-iso8601)) (native-inputs - (list python-cryptography-vectors + (list python-cryptography-vectors-next python-hypothesis python-pretend python-pytz @@ -592,6 +602,30 @@ message digests and key derivation functions.") (license (list license:bsd-3 license:asl2.0)) (properties `((python2-variant . ,(delay python2-cryptography)))))) +(define-public python-cryptography + (package + (inherit python-cryptography-next) + (version "3.4.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "cryptography" version)) + (sha256 + (base32 "072awar70cwfd2hnx0pvp1dkc7gw45mbm3wcyddvxz5frva5xk4l")))) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-no-rust + (lambda _ + (setenv "CRYPTOGRAPHY_DONT_BUILD_RUST" "1")))))) + (inputs (list openssl)) + (native-inputs + (list python-cryptography-vectors + python-hypothesis + python-pretend + python-pytz + python-pytest + python-setuptools-rust)))) + (define-public python2-cryptography-vectors (package (inherit python-cryptography-vectors) -- cgit v1.2.3 From d500a58b42581bf803b3d58468ba2026a991046f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2022 18:15:26 +0300 Subject: gnu: python2-cryptography: Update to 3.3.2. * gnu/packages/python-crypto.scm (python2-cryptography-vectors, python2-cryptography): Update to 3.3.2. --- gnu/packages/python-crypto.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index c01692dfce..625dc7a8fa 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -629,13 +629,14 @@ message digests and key derivation functions.") (define-public python2-cryptography-vectors (package (inherit python-cryptography-vectors) - (version "3.3.1") + (name "python2-cryptography-vectors") + (version "3.3.2") (source (origin (method url-fetch) (uri (pypi-uri "cryptography_vectors" version)) (sha256 (base32 - "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03")))) + "1yhaps0f3h2yjb6lmz953z1l1d84y9swk4k3gj9nqyk4vbx5m7cc")))) (arguments (list #:python python-2)))) @@ -644,13 +645,13 @@ message digests and key derivation functions.") (strip-python2-variant python-cryptography)))) (package (inherit crypto) - (version "3.3.1") + (version "3.3.2") (source (origin (method url-fetch) (uri (pypi-uri "cryptography" version)) (sha256 (base32 - "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy")))) + "1vcvw4lkw1spiq322pm1256kail8nck6bbgpdxx3pqa905wd6q2s")))) (arguments `(#:python ,python-2 #:phases -- cgit v1.2.3 From b1f763de54dc2b8e240d0f01f7948ce76f67243e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2022 19:35:13 +0300 Subject: gnu: python-pyopenssl: Downgrade to 21.0.0. This is a follow-up to 048e05b7ef568dc5e29df774baaf69f7cc5ddaaa. * gnu/packages/python-crypto.scm (python-pyopenssl): Downgrade to 21.0.0. [source]: Add patch used by python2-pyopenssl. [properties]: Remove field. (python2-pyopenssl): Inherit from python-pyopenssl regularly. --- gnu/packages/python-crypto.scm | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 625dc7a8fa..6427dc7868 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -669,17 +669,19 @@ message digests and key derivation functions.") python2-backport-ssl-match-hostname python2-enum34)))))) +;; This is the last version which is compatable with python-cryptography < 35. (define-public python-pyopenssl (package (name "python-pyopenssl") - (version "22.0.0") + (version "21.0.0") (source (origin (method url-fetch) (uri (pypi-uri "pyOpenSSL" version)) (sha256 (base32 - "1gzihw09sqi71lwx97c69hab7w4rbnl6hhfrl6za3i5a4la1n2v6")))) + "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay")) + (patches (search-patches "python2-pyopenssl-openssl-compat.patch")))) (build-system python-build-system) (arguments (list @@ -714,22 +716,10 @@ message digests and key derivation functions.") (description "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL library.") - (properties `((python2-variant . ,(delay python2-pyopenssl)))) (license license:asl2.0))) (define-public python2-pyopenssl - (let ((base (package-with-python2 (strip-python2-variant python-pyopenssl)))) - (package - (inherit base) - (version "21.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pyOpenSSL" version)) - (patches (search-patches "python2-pyopenssl-openssl-compat.patch")) - (sha256 - (base32 - "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay"))))))) + (package-with-python2 python-pyopenssl)) (define-public python-ed25519 (package -- cgit v1.2.3 From 405019f590255da5138b9666339787e41d4c1d39 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 2 Jun 2022 13:02:47 +0200 Subject: gnu: imlib2: Reintroduce 1.7.1. * gnu/packages/image.scm (imlib2-1.7): New variable. --- gnu/packages/image.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 27cb74d2a3..b3b211a856 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2017, 2019, 2021 Ludovic Courtès +;;; Copyright © 2013, 2017, 2019, 2021-2022 Ludovic Courtès ;;; Copyright © 2013, 2015, 2016 Andreas Enge ;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver ;;; Copyright © 2014, 2015 Alex Kost @@ -1024,6 +1024,19 @@ This is a complete rewrite over the Imlib 1.x series. The architecture is more modular, simple, and flexible.") (license license:imlib2))) +(define-public imlib2-1.7 + (package + (inherit imlib2) + (version "1.7.1") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/enlightenment/imlib2-src/" version + "/imlib2-" version ".tar.bz2")) + (sha256 + (base32 + "01y45cdml2dr9cqgybrgxr86sd77d1qfa1gzclzy1j6bkminlfh3")))))) + (define-public giblib (package (name "giblib") -- cgit v1.2.3 From 355a08b999abe8aaff2c31590105da409e3400b5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 2 Jun 2022 13:03:07 +0200 Subject: gnu: giblib: Depend on imlib2@1.7. * gnu/packages/image.scm (giblib)[inputs]: Depend on IMLIB2-1.7 instead of IMLIB2. --- gnu/packages/image.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index b3b211a856..2f82524afd 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1059,7 +1059,9 @@ more modular, simple, and flexible.") "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp")))) (build-system gnu-build-system) (inputs - (list libx11 imlib2)) + (list libx11 + ;; Needs an old imlib2 with the 'imlib2-config' program. + imlib2-1.7)) (home-page ;; This vanished page is universally accepted as giblib's home despite not ;; mentioning the package once. -- cgit v1.2.3 From d776899e18a49a967f0cce6912754c8bb3968ea2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 2 Jun 2022 13:04:59 +0200 Subject: gnu: idesk: Depend on imlib2@1.7. * gnu/packages/wm.scm (idesk)[inputs]: Depend on IMLIB2-1.7 instead of IMLIB2. --- gnu/packages/wm.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 123e6ca7e7..acef5c5836 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2016, 2019, 2020 Efraim Flashner ;;; Copyright © 2016 Al McElrath ;;; Copyright © 2016 Carlo Zancanaro -;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès +;;; Copyright © 2016 2019, 2021-2022 Ludovic Courtès ;;; Copyright © 2016, 2017, 2018, 2020 Nikita ;;; Copyright © 2016 doncatnip ;;; Copyright © 2016 Ivan Vilata i Balaguer @@ -2441,7 +2441,7 @@ selected to stdout. It can be controlled both via mouse and via keyboard.") libxpm libpng freetype - imlib2 + imlib2-1.7 sed)) (native-inputs (list pkg-config)) -- cgit v1.2.3 From 0602444b7995358c404a2ff51a80f9f9a444e99a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 2 Jun 2022 13:27:54 +0200 Subject: gnu: setroot: Depend on imlib2@1.7. * gnu/packages/xorg.scm (setroot)[inputs]: Use IMLIB2-1.7 instead of IMLIB2. --- 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 ee3e0b81d3..daf253a30f 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2014, 2015, 2017, 2018, 2020 Mark H Weaver ;;; Copyright © 2014, 2015 Eric Bavier -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès +;;; Copyright © 2015-2022 Ludovic Courtès ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2016 Mathieu Lirzin ;;; Copyright © 2015 Cyrill Schenkel @@ -6948,7 +6948,7 @@ the server and cleaning up before returning the exit status of the command.") (modify-phases %standard-phases (delete 'configure)))) (inputs - (list imlib2 libx11 libxinerama)) + (list imlib2-1.7 libx11 libxinerama)) (home-page "https://github.com/ttzhou/setroot") (synopsis "Simple X background setter inspired by imlibsetroot and feh") (description "Setroot is a lightweight X background setter with feh's -- cgit v1.2.3 From 3fce3c2c7a24c387b3a2f05347b515d4933a21e4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 2 Jun 2022 13:32:31 +0200 Subject: gnu: postgresql@11: Depend on docbook-xml@4.2. * gnu/packages/databases.scm (postgresql-11)[native-inputs]: New field. --- gnu/packages/databases.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 4f2d7ef11c..2134a2c643 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès +;;; Copyright © 2012-2016, 2018, 2022 Ludovic Courtès ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2013, 2017 Cyril Roelandt ;;; Copyright © 2014, 2016 David Thompson @@ -1273,7 +1273,10 @@ pictures, sounds, or video.") version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "1qvrm0vhwnc5nijfbqybhwfjbq4r7vmk445sz7s6fiagpn78xxf8")))))) + "1qvrm0vhwnc5nijfbqybhwfjbq4r7vmk445sz7s6fiagpn78xxf8")))) + (native-inputs + (modify-inputs (package-native-inputs postgresql-13) + (replace "docbook-xml" docbook-xml-4.2))))) (define-public postgresql-10 (package -- cgit v1.2.3 From 502e43aa45ddbce6504208ff70536e2e5dc88069 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 2 Jun 2022 15:29:39 +0300 Subject: gnu: ruby-rails-dom-testing: Fix build. * gnu/packages/rails.scm (ruby-rails-dom-testing)[arguments]: Add phase to delete the Gemfile.lock. --- gnu/packages/rails.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm index 45fa5d8606..8f5bda4638 100644 --- a/gnu/packages/rails.scm +++ b/gnu/packages/rails.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Matthew Jordan ;;; Copyright © 2018 Tobias Geerinckx-Rice -;;; Copyright © 2019, 2021 Efraim Flashner +;;; Copyright © 2019, 2021, 2022 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +20,7 @@ (define-module (gnu packages rails) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) @@ -291,6 +292,13 @@ directly.") (base32 "17vdh273cmmfpzy5m546dd13zqmimv54jjx0f7sl0zi5lwz0gnck")))) (build-system ruby-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'delete-gemfile.lock + (lambda _ + (delete-file "Gemfile.lock")))))) (native-inputs (list bundler)) (propagated-inputs -- cgit v1.2.3 From fb21085d25f6f4f97a17f86a5af392581cd900bd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 2 Jun 2022 14:32:24 +0200 Subject: gnu: go-std: Make public. * gnu/packages/golang.scm (go-std-1.14, go-std-1.16, go-std-1.17): New variables. --- gnu/packages/golang.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 5cf925f199..b274e5f838 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -870,6 +870,11 @@ in the style of communicating sequential processes (@dfn{CSP}).") (description (package-description go)) (license (package-license go)))) +;; Make those public so they have a corresponding Cuirass job. +(define-public go-std-1.14 (make-go-std go-1.14)) +(define-public go-std-1.16 (make-go-std go-1.16)) +(define-public go-std-1.17 (make-go-std go-1.17)) + (define-public go-0xacab-org-leap-shapeshifter (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") (revision "12")) -- cgit v1.2.3 From 5b6b4ade7c48ced765a7b91bfbe07dfafcb5e702 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 2 Jun 2022 14:40:57 +0200 Subject: gnu: go: Make 'make-go-std' memoizing. * gnu/packages/golang.scm (make-go-std): Use 'mlambdaq'. --- gnu/packages/golang.scm | 62 ++++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b274e5f838..cac4b7316a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -53,6 +53,7 @@ (define-module (gnu packages golang) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) + #:use-module (guix memoization) #:use-module ((guix build utils) #:select (alist-replace)) #:use-module (guix download) #:use-module (guix git-download) @@ -840,35 +841,38 @@ in the style of communicating sequential processes (@dfn{CSP}).") (define-public go go-1.17) -(define-public (make-go-std go) - "Return a package which builds the standard library for Go compiler GO." - (package - (name (string-append (package-name go) "-std")) - (version (package-version go)) - (source #f) - (build-system go-build-system) - (arguments - `(#:import-path "std" - #:build-flags `("-pkgdir" "pkg") ; "Install" to build directory. - #:allow-go-reference? #t - #:substitutable? #f ; Faster to build than download. - #:tests? #f ; Already tested in the main Go build. - #:go ,go - #:phases - (modify-phases %standard-phases - (delete 'unpack) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (out-cache (string-append out "/var/cache/go/build"))) - (copy-recursively (getenv "GOCACHE") out-cache) - (delete-file (string-append out-cache "/trim.txt")) - (delete-file (string-append out-cache "/README"))))) - (delete 'install-license-files)))) - (home-page (package-home-page go)) - (synopsis "Cached standard library build for Go") - (description (package-description go)) - (license (package-license go)))) +(define make-go-std + (mlambdaq (go) + "Return a package which builds the standard library for Go compiler GO." + (package + (name (string-append (package-name go) "-std")) + (version (package-version go)) + (source #f) + (build-system go-build-system) + (arguments + `(#:import-path "std" + #:build-flags `("-pkgdir" "pkg") ; "Install" to build directory. + #:allow-go-reference? #t + #:substitutable? #f ; Faster to build than download. + #:tests? #f ; Already tested in the main Go build. + #:go ,go + #:phases + (modify-phases %standard-phases + (delete 'unpack) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-cache (string-append out "/var/cache/go/build"))) + (copy-recursively (getenv "GOCACHE") out-cache) + (delete-file (string-append out-cache "/trim.txt")) + (delete-file (string-append out-cache "/README"))))) + (delete 'install-license-files)))) + (home-page (package-home-page go)) + (synopsis "Cached standard library build for Go") + (description (package-description go)) + (license (package-license go))))) + +(export make-go-std) ;; Make those public so they have a corresponding Cuirass job. (define-public go-std-1.14 (make-go-std go-1.14)) -- cgit v1.2.3 From 5035be651ae20717bfb73a59c37c255a30b3f400 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 5 Jun 2022 16:26:01 +0200 Subject: gnu: docbook-sgml: Add 4.2. * gnu/packages/docbook.scm (docbook-sgml-4.2, docbook-sgml-4.1): New variables. (docbook-sgml): Make an alias to 'docbook-sgml-4.1'. --- gnu/packages/docbook.scm | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 6575bf2d75..dcaac3b8d2 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -362,17 +362,18 @@ for DocBook.") (description "Documentation for the DocBook DSSSL style sheets.") (license (license:non-copyleft "file://doc/LEGALNOTICE.htm")))) -(define-public docbook-sgml +(define-public docbook-sgml-4.2 (package (name "docbook-sgml") - (version "4.1") + (version "4.2") (source (origin (method url-fetch) - (uri (string-append "https://www.oasis-open.org/docbook/sgml/" - version "/docbk41.zip")) + (uri (string-append + "https://www.oasis-open.org/docbook/sgml/4.2/docbook-" + version ".zip")) (sha256 (base32 - "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany")))) + "1hrm4qmmzi285bkxkc74lxvjvw2gbl7ycbaxhv31h9rl9g4x5sv7")))) (build-system trivial-build-system) (arguments '(#:modules ((guix build utils)) @@ -393,8 +394,8 @@ for DocBook.") ;; Reference the ISO 8879 character entities. ;; e.g. "iso-lat1.gml" --> "/ISOlat1" (substitute* "docbook.cat" - (("(.*ISO 8879.*)\"iso-(.*)\\.gml\"" _ head name) - (string-append head "\"" iso-entities-dir "/ISO" name "\""))))))) + (("\"iso-(.*)\\.gml\"" _ name) + (string-append "\"" iso-entities-dir "/ISO" name "\""))))))) (native-inputs (list unzip)) (inputs @@ -404,6 +405,20 @@ for DocBook.") (description "This package provides SGML style sheets for DocBook.") (license (license:x11-style "" "See file headers.")))) +(define-public docbook-sgml-4.1 + (package + (inherit docbook-sgml-4.2) + (version "4.1") + (source (origin + (method url-fetch) + (uri (string-append "https://www.oasis-open.org/docbook/sgml/" + version "/docbk41.zip")) + (sha256 + (base32 + "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany")))))) + +(define-public docbook-sgml docbook-sgml-4.1) + (define-public docbook-sgml-3.1 (package (inherit docbook-sgml) -- cgit v1.2.3 From b422687cbd29652d21ffcb7b5b202ab9b37dd5d3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 5 Jun 2022 16:27:15 +0200 Subject: gnu: postgresql@10: Fix manual compilation. This is a followup to f0227a18c2394d3403d0265f3c700cfd9d1ee5b4. * gnu/packages/databases.scm (postgresql-10)[native-inputs]: New field. --- gnu/packages/databases.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 2134a2c643..df0532a0ea 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1288,7 +1288,11 @@ pictures, sounds, or video.") version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "17v51a9vnz6lgbfmbdmcwsiyi572wndwa4n30nk2zr6gkgaidpl7")))))) + "17v51a9vnz6lgbfmbdmcwsiyi572wndwa4n30nk2zr6gkgaidpl7")))) + (native-inputs + (modify-inputs (package-native-inputs postgresql-11) + (append opensp docbook-sgml-4.2) + (delete "docbook-xml"))))) (define-public postgresql postgresql-13) -- cgit v1.2.3 From 05fef7bfc60058763f5a64ec0feaf3876b56281d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 7 Jun 2022 23:58:16 +0200 Subject: gnu: timescaledb: Adjust test preparation to PostgreSQL 13.6. The previous method of making a union with symlinks would work with 13.4 but not with 13.6, which has an extra 'canonicalize_path' call in 'find_my_exec'. * gnu/packages/databases.scm (timescaledb)[arguments]: In 'prepare-tests', pass #:symlink argument to 'union-build'. --- gnu/packages/databases.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index df0532a0ea..4556ef4590 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1353,12 +1353,26 @@ pictures, sounds, or video.") (pg-union (string-append (getcwd) "/../pg-union"))) (match inputs (((names . directories) ...) - (union-build pg-union (cons #$output directories)))) + ;; PG will only load extensions from its own $libdir, + ;; which it calculates based on argv[0]. As of + ;; PostgreSQL 13.6, it calls 'canonicalize_path' on + ;; argv[0] so a merge symlink is not enough to trick + ;; it; thus, the code below makes a full copy of PG + ;; and friends such that 'pg_config --libdir', for + ;; instance, points to PG-UNION, allowing it to load + ;; the timescaledb extension. + (union-build pg-union (cons #$output directories) + #:symlink + (lambda (old new) + (if (file-is-directory? old) + (copy-recursively old new) + (copy-file old new)))))) (setenv "PATH" (string-append pg-union "/bin:" (getenv "PATH"))) (invoke "initdb" "-D" pg-data) (copy-file "test/postgresql.conf" (string-append pg-data "/postgresql.conf")) + (invoke "pg_ctl" "-D" pg-data "-o" (string-append "-k " pg-data) "-l" (string-append pg-data "/db.log") -- cgit v1.2.3