Hi Danny! >>> * gstreamer > > Please add a comment on why this is here: > >> + (search-paths native-search-paths) > >>> * libvisual > >> + (search-paths native-search-paths) > > Same > >>> * libvisual-plugins > >> + (search-paths native-search-paths) > > Same > >>> * gst-plugins-base > > I didn't apply it because I didn't apply gstreamer. > >>> * gst-plugins-good > > I didn't apply it because I didn't apply gstreamer.
Please find the revised patches attached. Regards, RG.
From 8a829c439290d7e5f52f09e4d895729592c50393 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Wed, 24 Jun 2020 22:13:27 -0400 Subject: [PATCH 1/9] gnu: glib: Update package definition. * gnu/packages/glib.scm (glib) [version]: Update to 2.64.3. [source]<origin>[sha256]: Modify base32. [patches]: Add glib-disable-failing-tests.patch. Remove glib-tests-timer.patch. [arguments]<#:disallowed-references>: Remove argument. <#:phases>['patch-python-references]: New phase. ['pre-check]: New phase. ['move-bin]: New phase. ['patch-dbus-launch-path]: Remove phase. ['patch-gio-launch-desktop]: Remove phase. ['pre-build]: Remove phase. ['disable-failing-tests]: Remove phase. ['check]: Remove phase. ['move-executables]: Remove phase. [native-inputs]: Add intltool, python, libxml2 and libxslt. Remove dbus. [inputs]: Add dbus and libelf. [synopsis]: Modify. [description]: Modify. [home-page]: Modify. [license]: Update to lgpl2.1+. --- gnu/packages/glib.scm | 316 ++++++------------ .../patches/glib-disable-failing-tests.patch | 84 +++++ 2 files changed, 193 insertions(+), 207 deletions(-) create mode 100644 gnu/packages/patches/glib-disable-failing-tests.patch diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index e6e9d00cf4..a1b7125a1b 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -38,6 +38,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) + #:use-module (gnu packages elf) #:use-module (gnu packages enlightenment) #:use-module (gnu packages file) #:use-module (gnu packages flex) @@ -177,213 +178,114 @@ shared NFS home directories.") (define glib (package - (name "glib") - (version "2.62.6") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" - name "/" (string-take version 4) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "174bsmbmcvaw69ff9g60q5sx0fn23rkhqcwqz17h5s7sprps4kqh")) - (patches (search-patches "glib-tests-timer.patch")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "tests/spawn-test.c" - (("/bin/sh") "sh")) - #t)))) - (build-system meson-build-system) - (outputs '("out" ; everything - "bin")) ; glib-mkenums, gtester, etc.; depends on Python - (propagated-inputs - `(("pcre" ,pcre) ; in the Requires.private field of glib-2.0.pc - ("libffi" ,libffi) ; in the Requires.private field of gobject-2.0.pc - ;; These are in the Requires.private field of gio-2.0.pc - ("util-linux" ,util-linux "lib") ;for libmount - ("libselinux" ,libselinux) - ("zlib" ,zlib))) - (native-inputs - `(("gettext" ,gettext-minimal) - ("m4" ,m4) ; for installing m4 macros - ("dbus" ,dbus) ; for GDBus tests - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper) - ("perl" ,perl) ; needed by GIO tests - ("tzdata" ,tzdata-for-tests))) ; for tests/gdatetime.c - (arguments - `(#:disallowed-references (,tzdata-for-tests) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-dbus-launch-path - (lambda* (#:key inputs #:allow-other-keys) - (let ((dbus (assoc-ref inputs "dbus"))) - (substitute* "gio/gdbusaddress.c" - (("command_line = g_strdup_printf \\(\"dbus-launch") - (string-append "command_line = g_strdup_printf (\"" - dbus "/bin/dbus-launch"))) - #t))) - (add-after 'unpack 'patch-gio-launch-desktop - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; See also <https://gitlab.gnome.org/GNOME/glib/issues/1633> - ;; for another future fix. - (substitute* "gio/gdesktopappinfo.c" - (("gio-launch-desktop") - (string-append out "/libexec/gio-launch-desktop"))) - #t))) - (add-before 'build 'pre-build - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; For tests/gdatetime.c. - (setenv "TZDIR" - (string-append (assoc-ref inputs "tzdata") - "/share/zoneinfo")) - - ;; Some tests want write access there. - (setenv "HOME" (getcwd)) - (setenv "XDG_CACHE_HOME" (getcwd)) - #t)) - (add-after 'unpack 'disable-failing-tests - (lambda _ - (let ((disable - (lambda (test-file test-paths) - (define pattern+procs - (map (lambda (test-path) - (cons - ;; XXX: only works for single line statements. - (format #f "g_test_add_func.*\"~a\".*" test-path) - (const ""))) - test-paths)) - (substitute test-file pattern+procs))) - (failing-tests - '(("glib/tests/thread.c" - (;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 - ;; as found on hydra.gnu.org, and strace(1) doesn't - ;; recognize it. - "/thread/thread4")) - - ;; This tries to find programs in FHS directories. - ("glib/tests/utils.c" - ("/utils/find-program")) - - ;; This fails because "glib/tests/echo-script" cannot be - ;; found. - ("glib/tests/spawn-singlethread.c" - ("/gthread/spawn-script")) - - ("glib/tests/timer.c" - (;; fails if compiler optimizations are enabled, which they - ;; are by default. - "/timer/stop")) - - ("gio/tests/gapplication.c" - (;; XXX: proven to be unreliable. See: - ;; <https://bugs.debian.org/756273> - ;; <http://bugs.gnu.org/18445> - "/gapplication/quit" - - ;; XXX: fails randomly for unknown reason. See: - ;; <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00215.html> - "/gapplication/local-actions")) - - ("gio/tests/contenttype.c" - (;; XXX: requires shared-mime-info. - "/contenttype/guess" - "/contenttype/guess_svg_from_data" - "/contenttype/subtype" - "/contenttype/list" - "/contenttype/icon" - "/contenttype/symbolic-icon" - "/contenttype/tree")) - - ("gio/tests/appinfo.c" - (;; XXX: requires update-desktop-database. - "/appinfo/associations")) - - ("gio/tests/desktop-app-info.c" - (;; XXX: requires update-desktop-database. - "/desktop-app-info/delete" - "/desktop-app-info/default" - "/desktop-app-info/fallback" - "/desktop-app-info/lastused" - "/desktop-app-info/search")) - - ("gio/tests/gdbus-peer.c" - (;; Requires /etc/machine-id. - "/gdbus/codegen-peer-to-peer")) - - ("gio/tests/gdbus-address-get-session.c" - (;; Requires /etc/machine-id. - "/gdbus/x11-autolaunch")) - - ("gio/tests/gsocketclient-slow.c" - (;; These tests tries to resolve "localhost", and fails. - "/socket-client/happy-eyeballs/slow" - "/socket-client/happy-eyeballs/cancellation/delayed")) - - ))) - (for-each (lambda (x) (apply disable x)) failing-tests) - #t))) - (replace 'check - (lambda _ - (setenv "MESON_TESTTHREADS" - (number->string (parallel-job-count))) - ;; Do not run tests marked as "flaky". - (invoke "meson" "test" "--no-suite" "flaky"))) - ;; TODO: meson does not permit the bindir to be outside of prefix. - ;; See https://github.com/mesonbuild/meson/issues/2561 - ;; We can remove this once meson is patched. - (add-after 'install 'move-executables - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (bin (assoc-ref outputs "bin"))) - (mkdir-p bin) - (rename-file (string-append out "/bin") - (string-append bin "/bin")) - ;; This one is an implementation detail of glib. - ;; It is wrong that that's in "/bin" in the first place, - ;; but that's what upstream is doing right now. - ;; See <https://gitlab.gnome.org/GNOME/glib/issues/1633>. - (mkdir (string-append out "/libexec")) - (rename-file (string-append bin "/bin/gio-launch-desktop") - (string-append out "/libexec/gio-launch-desktop")) - ;; Do not refer to "bindir", which points to "${prefix}/bin". - ;; We don't patch "bindir" to point to "$bin/bin", because that - ;; would create a reference cycle between the "out" and "bin" - ;; outputs. - (substitute* (list (string-append out "/lib/pkgconfig/gio-2.0.pc") - (string-append out "/lib/pkgconfig/glib-2.0.pc")) - (("bindir=\\$\\{prefix\\}/bin") "") - (("=\\$\\{bindir\\}/") "=")) - #t)))))) - ;; TODO: see above for explanation. - ;; #:configure-flags (list (string-append "--bindir=" - ;; (assoc-ref %outputs "bin") - ;; "/bin")) - - (native-search-paths - ;; This variable is not really "owned" by GLib, but several related - ;; packages refer to it: gobject-introspection's tools use it as a search - ;; path for .gir files, and it's also a search path for schemas produced - ;; by 'glib-compile-schemas'. - (list (search-path-specification - (variable "XDG_DATA_DIRS") - (files '("share"))) - ;; To load extra gio modules from glib-networking, etc. - (search-path-specification - (variable "GIO_EXTRA_MODULES") - (files '("lib/gio/modules"))))) - (search-paths native-search-paths) - (properties '((hidden? . #t))) - - (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME") - (description - "GLib provides data structure handling for C, portability wrappers, -and interfaces for such runtime functionality as an event loop, threads, -dynamic loading, and an object system.") - (home-page "https://developer.gnome.org/glib/") - (license license:lgpl2.1+))) + (name "glib") + (version "2.64.3") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://gnome/sources/" + name "/" (string-take version 4) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "08pbgiv5m3rica4ydvwvpq5mrxbyswx7l1jzjc2ch52xjabvr77y")) + (patches + (search-patches "glib-disable-failing-tests.patch")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "tests/spawn-test.c" + (("/bin/sh") "sh")) + #t)))) + (build-system meson-build-system) + (outputs '("out" "bin")) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Python references are not being patched in patch-phase of build, + ;; despite using python-wrapper as input. So we patch them manually. + (add-after 'unpack 'patch-python-references + (lambda* (#:key inputs #:allow-other-keys) + (substitute* '("gio/gdbus-2.0/codegen/gdbus-codegen.in" + "glib/gtester-report.in" + "gobject/glib-genmarshal.in" + "gobject/glib-mkenums.in") + (("@PYTHON@") + (string-append (assoc-ref inputs "python") + "/bin/python" + ,(version-major+minor + (package-version python))))) + #t)) + (add-before 'check 'pre-check + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; For tests/gdatetime.c. + (setenv "TZDIR" + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo")) + ;; Some tests want write access there. + (setenv "HOME" (getcwd)) + (setenv "XDG_CACHE_HOME" (getcwd)) + #t)) + ;; Meson does not permit the bindir to be outside of prefix. + (add-after 'install 'move-bin + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (assoc-ref outputs "bin"))) + (mkdir-p bin) + (rename-file + (string-append out "/bin") + (string-append bin "/bin")) + ;; Do not refer to "bindir", which points to "${prefix}/bin". + ;; We don't patch "bindir" to point to "$bin/bin", because that + ;; would create a reference cycle between the "out" and "bin" + ;; outputs. + (substitute* + (list + (string-append out "/lib/pkgconfig/gio-2.0.pc") + (string-append out "/lib/pkgconfig/glib-2.0.pc")) + (("bindir=\\$\\{prefix\\}/bin") "") + (("=\\$\\{bindir\\}/") "=")) + #t)))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("libintl" ,intltool) + ("m4" ,m4) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python-wrapper" ,python-wrapper) + ("python" ,python) ; For 'patch-python-references + ("tzdata" ,tzdata-for-tests) + ("xmllint" ,libxml2) + ("xsltproc" ,libxslt))) + (inputs + `(("dbus" ,dbus) + ("libelf" ,libelf))) + (propagated-inputs + `(("libffi" ,libffi) + ("libselinux" ,libselinux) + ("pcre" ,pcre) + ("util-linux" ,util-linux "lib") + ("zlib" ,zlib))) + (native-search-paths + ;; This variable is not really "owned" by GLib, but several related + ;; packages refer to it: gobject-introspection's tools use it as a search + ;; path for .gir files, and it's also a search path for schemas produced + ;; by 'glib-compile-schemas'. + (list + (search-path-specification + (variable "XDG_DATA_DIRS") + (files '("share"))) + ;; To load extra gio modules from glib-networking, etc. + (search-path-specification + (variable "GIO_EXTRA_MODULES") + (files '("lib/gio/modules"))))) + (search-paths native-search-paths) + (synopsis "Low-level core library for GNOME projects") + (description "GLib provides data structure handling for C, portability +wrappers, and interfaces for such runtime functionality as an event loop, +threads, dynamic loading, and an object system.") + (home-page "https://wiki.gnome.org/Projects/GLib") + (license license:lgpl2.1+))) (define-public glib-with-documentation ;; glib's doc must be built in a separate package since it requires gtk-doc, diff --git a/gnu/packages/patches/glib-disable-failing-tests.patch b/gnu/packages/patches/glib-disable-failing-tests.patch new file mode 100644 index 0000000000..3601c42030 --- /dev/null +++ b/gnu/packages/patches/glib-disable-failing-tests.patch @@ -0,0 +1,84 @@ +From a2e6783f2278ed32b1e552691ec5d67d6940757e Mon Sep 17 00:00:00 2001 +From: Raghav Gururajan <raghavgurura...@disroot.org> +Date: Tue, 9 Jun 2020 05:17:53 -0400 +Subject: [PATCH] PATCH: Disable failing tests. + +--- + gio/tests/meson.build | 19 ------------------- + glib/tests/meson.build | 2 -- + 2 files changed, 21 deletions(-) + +diff --git a/gio/tests/meson.build b/gio/tests/meson.build +index c7c3e3035..6e38eb39e 100644 +--- a/gio/tests/meson.build ++++ b/gio/tests/meson.build +@@ -34,7 +34,6 @@ gio_tests = { + 'buffered-output-stream' : {}, + 'cancellable' : {}, + 'contexts' : {}, +- 'contenttype' : {}, + 'converter-stream' : {}, + 'credentials' : {}, + 'data-input-stream' : {}, +@@ -78,7 +77,6 @@ gio_tests = { + 'tls-certificate' : {'extra_sources' : ['gtesttlsbackend.c']}, + 'tls-interaction' : {'extra_sources' : ['gtesttlsbackend.c']}, + 'tls-database' : {'extra_sources' : ['gtesttlsbackend.c']}, +- 'gdbus-address-get-session' : {}, + 'win32-appinfo' : {}, + } + +@@ -135,10 +133,6 @@ endif + if host_machine.system() != 'windows' + gio_tests += { + 'file' : {}, +- 'gdbus-peer' : { +- 'dependencies' : [libgdbus_example_objectmanager_dep], +- 'install_rpath' : installed_tests_execdir +- }, + 'gdbus-peer-object-manager' : {}, + 'live-g-file' : {}, + 'socket-address' : {}, +@@ -173,19 +167,6 @@ if host_machine.system() != 'windows' + } + endif + +- # Uninstalled because of the check-for-executable logic in DesktopAppInfo +- # unable to find the installed executable +- if not glib_have_cocoa +- gio_tests += { +- 'appinfo' : { +- 'install' : false, +- }, +- 'desktop-app-info' : { +- 'install' : false, +- }, +- } +- endif +- + test_extra_programs += { + 'basic-application' : {}, + 'dbus-launch' : {}, +diff --git a/glib/tests/meson.build b/glib/tests/meson.build +index 8da477d19..9fa24dd49 100644 +--- a/glib/tests/meson.build ++++ b/glib/tests/meson.build +@@ -103,7 +103,6 @@ glib_tests = { + 'utf8-pointer' : {}, + 'utf8-validate' : {}, + 'utf8-misc' : {}, +- 'utils' : {}, + 'unicode' : {}, + 'uri' : {}, + '1bit-mutex' : {}, +@@ -151,7 +150,6 @@ if host_machine.system() == 'windows' + else + glib_tests += { + 'include' : {}, +- 'unix' : {}, + } + if have_rtld_next + glib_tests += { +-- +2.26.2 + -- 2.26.2
From e644692b46700402bec0b2b342da67f8bc02375b Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Wed, 24 Jun 2020 22:15:44 -0400 Subject: [PATCH 2/9] gnu: glib-with-documentation: Update package definition. * gnu/packages/glib.scm (glib-with-documentation): Update package definition. [properties]: Remove field. [native-inputs]: Remove libxml2. [arguments]<#:phases>['patch-docbook-xml]: New phase. ['move-doc]: Modify phase. --- gnu/packages/glib.scm | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index a1b7125a1b..271b8a0293 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -292,27 +292,40 @@ threads, dynamic loading, and an object system.") ;; which in turn depends on glib. (package (inherit glib) - (properties (alist-delete 'hidden? (package-properties glib))) - (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference (native-inputs - `(("gtk-doc" ,gtk-doc) ; for the doc - ("docbook-xml" ,docbook-xml) - ("libxml2" ,libxml2) + `(("gtk-doc" ,gtk-doc) + ("docbook-xml-4.2" ,docbook-xml-4.2) + ("docbook-xml-4.5" ,docbook-xml) ,@(package-native-inputs glib))) + (outputs (cons "doc" (package-outputs glib))) (arguments (substitute-keyword-arguments (package-arguments glib) ((#:configure-flags flags ''()) `(cons "-Dgtk_doc=true" ,flags)) ((#:phases phases) `(modify-phases ,phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs/reference" + (substitute* '("gio/gdbus-object-manager-example/.*\\.xml" + "gio/.*\\.xml" "glib/.*\\.xml" "gobject/.*\\.xml") + (("http://www.oasis-open.org/docbook/xml/4.5/") + (string-append (assoc-ref inputs "docbook-xml-4.5") + "/xml/dtd/docbook/"))) + (substitute* "gio/gio.xml" + (("http://www.oasis-open.org/docbook/xml/4.2/") + (string-append (assoc-ref inputs "docbook-xml-4.2") + "/xml/dtd/docbook/")))) + #t)) (add-after 'install 'move-doc (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (doc (assoc-ref outputs "doc")) (html (string-append "/share/gtk-doc"))) - (copy-recursively (string-append out html) - (string-append doc html)) - (delete-file-recursively (string-append out html)) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out html) + (string-append doc html)) #t))))))))) (define gobject-introspection -- 2.26.2
From 8e88d6d12ff0a2e7cddf3bfa107912ebbdcbb6a3 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Wed, 24 Jun 2020 22:25:10 -0400 Subject: [PATCH 3/9] gnu: glib-networking: Update to 2.64.3. * gnu/packages/gnome.scm (glib-networking) [version]: Update to 2.64.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 491ff7fb51..f6a530a9fc 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3982,7 +3982,7 @@ library.") (define-public glib-networking (package (name "glib-networking") - (version "2.62.4") + (version "2.64.3") (source (origin (method url-fetch) @@ -3991,7 +3991,7 @@ library.") (version-major+minor version) "/" "glib-networking-" version ".tar.xz")) (sha256 - (base32 "1kwlnaiz4qfy2d1as5hd8sgxy7jjfxps1h2443hxq3s8xjg2i3y1")))) + (base32 "0s518l4bwvdvcp51lbjqcw8g0vq18bznpf5hq2zi6a054jqhcylk")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas -- 2.26.2
From 92187e2422b833b167e521904408d92a9fea40fd Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Wed, 24 Jun 2020 22:27:11 -0400 Subject: [PATCH 4/9] gnu: gobject-introspection: Update package definition. * gnu/packages/glib.scm (gobject-introspection) [version]: Update to 1.64.1. [patches]: Remove all patches. [arguments]<#:glib-or-gtk?>: New argument. <#:phases>: Remove all phases. [native-inputs]: Add bison and flex. [inputs]: Remove bison, flex and zlib. [synopsis]: Modify. [description]: Modify. [home-page]: Modify. [license]: Modify. --- gnu/packages/glib.scm | 71 +++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 40 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 271b8a0293..a0ddffeb4a 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -328,59 +328,50 @@ threads, dynamic loading, and an object system.") (string-append doc html)) #t))))))))) -(define gobject-introspection +(define-public gobject-introspection (package (name "gobject-introspection") - (version "1.62.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" - "gobject-introspection/" (version-major+minor version) - "/gobject-introspection-" version ".tar.xz")) - (sha256 - (base32 "18lhglg9v6y83lhqzyifc1z0wrlawzrhzzxx0a3h1g7xaz97xvmi")) - (patches (search-patches - "gobject-introspection-cc.patch" - "gobject-introspection-girepository.patch" - "gobject-introspection-absolute-shlib-path.patch")))) + (version "1.64.1") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://gnome/sources/" + name "/" (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "19vz7vp10h0zj3f491yk72dp89bix6rgkzxg4qcm4d6151ksxgl0")))) (build-system meson-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'do-not-use-/usr/bin/env - (lambda _ - (substitute* "tools/g-ir-tool-template.in" - (("#!@PYTHON_CMD@") - (string-append "#!" (which "python3")))) - #t))))) - (inputs + `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas + (native-inputs `(("bison" ,bison) ("flex" ,flex) - ("glib" ,glib) - ("python" ,python-wrapper) - ("zlib" ,zlib))) - (native-inputs - `(("glib" ,glib "bin") + ("glib" ,glib "bin") ("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib) + ("python" ,python-wrapper))) (propagated-inputs - `(;; In practice, GIR users will need libffi when using - ;; gobject-introspection. - ("libffi" ,libffi))) + `(("libffi" ,libffi))) (native-search-paths (list (search-path-specification (variable "GI_TYPELIB_PATH") (files '("lib/girepository-1.0"))))) (search-paths native-search-paths) - (home-page "https://wiki.gnome.org/GObjectIntrospection") - (synopsis "Generate interface introspection data for GObject libraries") - (description - "GObject introspection is a middleware layer between C libraries (using -GObject) and language bindings. The C library can be scanned at compile time -and generate a metadata file, in addition to the actual native C library. Then -at runtime, language bindings can read this metadata and automatically provide -bindings to call into the C library.") - ; Some bits are distributed under the LGPL2+, others under the GPL2+ - (license license:gpl2+))) + (synopsis "GObject introspection tools and libraries") + (description "GObject introspection is a middleware layer between +C libraries (using GObject) and language bindings. The C library can be scanned +at compile time and generate metadata files, in addition to the actual native +C library. Then language bindings can read this metadata and automatically +provide bindings to call into the C library.") + (home-page "https://wiki.gnome.org/Projects/GObjectIntrospection") + (license + (list + ;; For library. + license:lgpl2.0+ + ;; For tools. + license:gpl2+)))) (define intltool (package -- 2.26.2
From 1a3b1be1d36b45845912b1e6169537fc84dd9d30 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Wed, 24 Jun 2020 23:28:32 -0400 Subject: [PATCH 5/9] gnu: gstreamer: Update package definition. * gnu/packages/gstreamer.scm (gstreamer): Update package definition. [arguments]<#:glib-or-gtk?>: New argument. <#:phases>['patch-dockbook-xml]: New phase. ['disable-failing-tests]: Remove phase. [native-inputs]: Add bash-completion, docbook-xml, docbook-xsl, gettext-minimal and libxml2. [inputs]: Add gmp, gsl, gtk+ and libcap. [propagated-inputs]: Add glib-networking, elfutils and libunwind. [search-paths]: New field. [synopsis]: Modify. [description]: Modify. --- gnu/packages/gstreamer.scm | 150 ++++++++++++++++++++----------------- 1 file changed, 83 insertions(+), 67 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 6381d426ba..7a134b8c57 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -37,10 +37,13 @@ #: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) #:use-module (gnu packages compression) + #:use-module (gnu packages docbook) + #:use-module (gnu packages elf) #:use-module (gnu packages flex) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) @@ -51,9 +54,12 @@ #:use-module (gnu packages graphics) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #: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 perl) @@ -169,73 +175,83 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.16.2") - (source - (origin - (method url-fetch) - (uri (string-append - "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-" - version ".tar.xz")) - (sha256 - (base32 - "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73")))) - (build-system meson-build-system) - (outputs '("out" "doc")) - (arguments - `(#:phases - (modify-phases %standard-phases - ,@%common-gstreamer-phases - ;; FIXME: Since switching to the meson-build-system, two tests - ;; started failing on i686. See - ;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/499>. - ,@(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))) - '()) - (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")) - (copy-recursively (string-append out "/share/gtk-doc") - (string-append doc "/share/gtk-doc")) - (delete-file-recursively (string-append out "/share/gtk-doc")) - #t)))))) - (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc. - (native-inputs - `(("bison" ,bison) - ("flex" ,flex) - ("glib" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python-wrapper" ,python-wrapper))) - (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") - (description - "GStreamer is a library for constructing graphs of media-handling -components. The applications it supports range from simple Ogg/Vorbis -playback, audio/video streaming to complex audio mixing and video -non-linear editing. - -Applications can take advantage of advances in codec and filter technology -transparently. Developers can add new codecs and filters by writing a -simple plugin with a clean, generic interface. - -This package provides the core library and elements.") - (license license:lgpl2.0+))) + (version "1.16.2") + (source + (origin + (method url-fetch) + (uri + (string-append + "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-" + version ".tar.xz")) + (sha256 + (base32 "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73")))) + (build-system meson-build-system) + (outputs '("out" "doc")) + (arguments + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs" + (substitute* '("gst/building.xml" "gst/running.xml") + (("http://www.oasis-open.org/docbook/xml/4.3/") + (string-append (assoc-ref inputs "docbook-xml-4.3") + "/xml/dtd/docbook/"))) + (substitute* '("libs/gstreamer-libs-docs.sgml" + "plugins/gstreamer-plugins-docs.sgml") + (("http://www.oasis-open.org/docbook/xml/4.1.2/") + (string-append (assoc-ref inputs "docbook-xml-4.1.2") + "/xml/dtd/docbook/")))) + #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 + `(("bash-completion" ,bash-completion) + ("bison" ,bison) + ("docbook-xml-4.1.2" ,docbook-xml-4.1.2) + ("docbook-xml-4.3" ,docbook-xml-4.3) + ("docbook-xsl" ,docbook-xsl) + ("flex" ,flex) + ("gettext" ,gettext-minimal) + ("glib" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc) + ("libxml2" ,libxml2) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python-wrapper" ,python-wrapper))) + (inputs + `(("gmp" ,gmp) + ("gsl" ,gsl) + ("gtk+" ,gtk+) + ("setcap" ,libcap))) + (propagated-inputs + `(("glib" ,glib) + ("glib-networking" ,glib-networking) + ("libdw" ,elfutils) + ("libunwind" ,libunwind))) + (native-search-paths + (list + (search-path-specification + (variable "GST_PLUGIN_SYSTEM_PATH") + (files '("lib/gstreamer-1.0"))))) + ;; To load gst-plugins. + (search-paths native-search-paths) + (synopsis "Multimedia framework core library") + (description "GStreamer is a library for constructing graphs of +media-handling components. The applications it supports range from simple +Ogg/Vorbis playback, audio/video streaming to complex audio and video +processing.") + (home-page "https://gstreamer.freedesktop.org/") + (license license:lgpl2.0+))) (define-public gst-plugins-base (package -- 2.26.2
From aed6ec7672efca9f307c41ce610080073f403e39 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Wed, 24 Jun 2020 23:38:53 -0400 Subject: [PATCH 6/9] gnu: Add libvisual. * gnu/packages/gstreamer.scm (libvisual): New variable. --- gnu/packages/gstreamer.scm | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 7a134b8c57..3b0bfad1a1 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -66,6 +66,7 @@ #:use-module (gnu packages pulseaudio) #:use-module (gnu packages qt) #:use-module (gnu packages rdf) + #:use-module (gnu packages sdl) #:use-module (gnu packages shells) #:use-module (gnu packages video) #:use-module (gnu packages xorg) @@ -79,6 +80,54 @@ #:use-module (gnu packages assembly) #:use-module (gnu packages xml)) +(define-public libvisual + (package + (name "libvisual") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/Libvisual/libvisual.git") + (commit (string-append name "-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02xwakwkqjsznc03pjlb6hcv1li1gw3r8xvyswqsm4msix5xq18a")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; The package is in a sub-dir of this repo. + (add-after 'unpack 'chdir + (lambda _ + (chdir "libvisual") + #t))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("libintl" ,intltool) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("sdl" ,sdl))) + (native-search-paths + (list + (search-path-specification + (variable "LIBVISUAL_PLUGINS_BASE_DIR") + (files '("lib/libvisual-0.4"))))) + ;; To load libvisual-plugins. + (search-paths native-search-paths) + (synopsis "Audio visualisation library") + (description "Libvisual is a library that acts as a middle layer between +applications that want audio visualisation and audio visualisation plugins.") + (home-page "http://libvisual.org/") + (license + (list + ;; Libraries. + license:lgpl2.1+ + ;; Examples and Tests. + license:gpl2+)))) + (define-public esound (package (name "esound") -- 2.26.2
From 4c497148e0898c208a1f2014334ff12a3a85a508 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Wed, 24 Jun 2020 23:44:23 -0400 Subject: [PATCH 7/9] gnu: Add libvisual-plugins. * gnu/packages/gstreamer.scm (libvisual-plugins): New variable. --- gnu/packages/gstreamer.scm | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 3b0bfad1a1..3ffc7a2b70 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -128,6 +128,59 @@ applications that want audio visualisation and audio visualisation plugins.") ;; Examples and Tests. license:gpl2+)))) +(define-public libvisual-plugins + (package + (name "libvisual-plugins") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/Libvisual/libvisual.git") + (commit (string-append name "-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02xwakwkqjsznc03pjlb6hcv1li1gw3r8xvyswqsm4msix5xq18a")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list + "--disable-gstreamer-plugin" + "--disable-corona" + "--disable-gforce" + (string-append "--with-plugins-base-dir=" (assoc-ref %outputs "out") + "/lib/libvisual-0.4")) + #:phases + (modify-phases %standard-phases + ;; The package is in a sub-dir of this repo. + (add-after 'unpack 'chdir + (lambda _ + (chdir "libvisual-plugins") + #t))))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("gettext" ,gettext-minimal) + ("libintl" ,intltool) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("esound" ,esound) + ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("gtk+" ,gtk+-2) + ("jack" ,jack-2) + ("libx11" ,libx11) + ("libxext" ,libxext))) + (propagated-inputs + `(("libvisual" ,libvisual))) + (synopsis "Audio visualisation library") + (description "Libvisual is a library that acts as a middle layer between +applications that want audio visualisation and audio visualisation plugins.") + (home-page "http://libvisual.org/") + (license license:gpl2+))) + (define-public esound (package (name "esound") -- 2.26.2
From 9d118e1dbafeb9bebd782bbb526a50efd7ca65ab Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Wed, 24 Jun 2020 23:50:40 -0400 Subject: [PATCH 8/9] gnu: gst-plugins-base: Update package definition. * gnu/packages/gstreamer.scm (gst-plugins-base): Update package definition. [outputs]: New output 'doc'. [arguments]<#:glib-or-gtk?>: New argument. <#:configure-flags>[-Dgl]: Remove flag. [-Ddoc]: Remove flag. <#:phases>['patch]: Remove phase. ['patch-docbook-xml]: New phase. ['patch-tests]: New phase. ['pre-check]: New phase. ['move-doc]: New phase. [native-inputs]: Add docbook-xml, gettext-minimal, gtk-doc, gsettings-desktop- schemas, perl, libxml2 and xorg-server-for-tests. [inputs]: Add gdk-pixbuf+svg, glu, graphene, gtk+, iso-codes, libgudev, libjpeg- turbo, libvisual, libxshmfence, mesa, sdl and wayland. Remove arguments for opus. [propagated-inputs]: Add glib-networking. Remove arguments for orc. [synopsis]: Modify. [description]: Modify. --- gnu/packages/gstreamer.scm | 146 +++++++++++++++++++++++-------------- 1 file changed, 92 insertions(+), 54 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 3ffc7a2b70..0d7d5d4382 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -54,6 +54,7 @@ #:use-module (gnu packages graphics) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages iso-codes) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) @@ -359,66 +360,103 @@ processing.") (package (name "gst-plugins-base") (version "1.16.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi")))) - (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 - - ;; 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 - ,@(if (string-prefix? "arm" (or (%current-target-system) - (%current-system))) - '() - `(("orc" ,orc))))) ;required by gstreamer-audio-1.0.pc + (source + (origin + (method url-fetch) + (uri + (string-append "https://gstreamer.freedesktop.org/src/" name "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi")))) + (build-system meson-build-system) + (outputs '("out" "doc")) + (arguments + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs" + (substitute* '("libs/compiling.sgml" + "libs/gst-plugins-base-libs-docs.sgml") + (("http://www.oasis-open.org/docbook/xml/4.1.2/") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/")))) + #t)) + (add-after 'unpack 'patch-tests + (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)) + (add-after 'install 'move-doc + (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 + `(("docbook-xml" ,docbook-xml-4.1.2) + ("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python-wrapper" ,python-wrapper) + ("xmllint" ,libxml2) + ("xorg-server" ,xorg-server-for-tests))) (inputs - `(("cdparanoia" ,cdparanoia) - ("pango" ,pango) + `(("alsa-lib" ,alsa-lib) + ("cdparanoia" ,cdparanoia) + ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("glu" ,glu) + ("graphene" ,graphene) + ("gtk+" ,gtk+) + ("iso-codes" ,iso-codes) + ("libgudev" ,libgudev) + ("libjpeg" ,libjpeg-turbo) ("libogg" ,libogg) ("libtheora" ,libtheora) + ("libvisual" ,libvisual) ("libvorbis" ,libvorbis) ("libx11" ,libx11) - ("zlib" ,zlib) - ("libXext" ,libxext) + ("libxext" ,libxext) + ("libxshm" ,libxshmfence) ("libxv" ,libxv) - ("alsa-lib" ,alsa-lib) - ;; XXX Don't build with opus on 32-bit systems: - ;; <https://bugs.gnu.org/32360> - ,@(if (target-64bit?) - `(("opus" ,opus)) - '()))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("python-wrapper" ,python-wrapper))) - (arguments - `(#:configure-flags '("-Dgl=disabled" - ;; FIXME: Documentation fails to build without - ;; enabling GL above, which causes other problems. - "-Ddoc=false") - #:phases - (modify-phases %standard-phases - ,@%common-gstreamer-phases - (add-before 'configure 'patch - (lambda _ - (substitute* "tests/check/libs/pbutils.c" - (("/bin/sh") (which "sh"))) - #t))))) - (home-page "https://gstreamer.freedesktop.org/") - (synopsis - "Plugins for the GStreamer multimedia library") - (description "This package provides an essential exemplary set of plug-ins -for the GStreamer multimedia library.") - (license license:lgpl2.0+))) + ("mesa" ,mesa) + ("opus" ,opus) + ("pango" ,pango) + ("sdl" ,sdl) + ("wayland" ,wayland) + ("zlib" ,zlib))) + (propagated-inputs + `(("glib" ,glib) + ("glib-networking" ,glib-networking) + ("gstreamer" ,gstreamer) + ("orc" ,orc))) + (synopsis "GStreamer plugins and helper libraries") + (description "Gst-Plugins-Base is a well-groomed and well-maintained +collection of GStreamer plug-ins and elements, spanning the range of possible +types of elements one would want to write for GStreamer.") + (home-page "https://gstreamer.freedesktop.org/") + (license license:lgpl2.0+))) (define-public gst-plugins-good (package -- 2.26.2
From 0f2e43235c994ef456e187727b4754cb0ce182c1 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Wed, 24 Jun 2020 23:58:52 -0400 Subject: [PATCH 9/9] gnu: gst-plugins-good: Update package definition. * gnu/packages/gstreamer.scm (gst-plugins-good): Update package definition. [arguments]<#:glib-or-gtk?>: New argument. <#:phases>['disable-tests-for-armhf]: Remove phase. ['disable-failing-tests]: Remove phase. ['patch-docbook-xml]: New phase. ['pre-check]: New phase. [native-inputs]: Add docbook-xml, gettext-minimal, gobject-introspection, gsettings-desktop-schemas, perl, libxml2 and xorg-server-for-tests. [inputs]: Add bzip2, glib, glib-networking, glu, libgudev, libx11, libxdamage, libxfixes, libxext, libxshmfence, mesa and v4l-utils. Remove gst-plugins-base. [propagated-inputs]: Add gstreamer and gst-plugins-base. [synopsis]: Modify. [description]: Modify. --- gnu/packages/gstreamer.scm | 117 +++++++++++++++++++++---------------- 1 file changed, 68 insertions(+), 49 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 0d7d5d4382..8b62894210 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -464,78 +464,97 @@ types of elements one would want to write for GStreamer.") (version "1.16.2") (source (origin - (method url-fetch) - (uri (string-append - "https://gstreamer.freedesktop.org/src/" name "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0")))) + (method url-fetch) + (uri + (string-append + "https://gstreamer.freedesktop.org/src/" name "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0")))) (build-system meson-build-system) + (arguments + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs" + (substitute* "plugins/gst-plugins-good-plugins-docs.sgml" + (("http://www.oasis-open.org/docbook/xml/4.1.2/") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/")))) + #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))))) + (native-inputs + `(("docbook-xml" ,docbook-xml-4.1.2) + ("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python-wrapper" ,python-wrapper) + ("xmllint" ,libxml2) + ("xorg-server" ,xorg-server-for-tests))) (inputs `(("aalib" ,aalib) + ("bzip2" ,bzip2) ("cairo" ,cairo) ("flac" ,flac) - ("gdk-pixbuf" ,gdk-pixbuf) - ("gst-plugins-base" ,gst-plugins-base) + ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("glib" ,glib) + ("glib-networking" ,glib-networking) + ("glu" ,glu) ("gtk+" ,gtk+) - ("jack" ,jack-1) + ("jack" ,jack-2) ("lame" ,lame) ("libavc1394" ,libavc1394) ("libcaca" ,libcaca) ("libdv" ,libdv) + ("libgudev" ,libgudev) ("libiec61883" ,libiec61883) ("libjpeg" ,libjpeg-turbo) ("libpng" ,libpng) ("libshout" ,libshout) ("libsoup" ,libsoup) ("libvpx" ,libvpx) + ("libx11" ,libx11) + ("libxdamage" ,libxdamage) + ("libxfixes" ,libxfixes) + ("libxext" ,libxext) + ("libxshm" ,libxshmfence) + ("mesa" ,mesa) ("mpg123" ,mpg123) ("orc" ,orc) ("pulseaudio" ,pulseaudio) ("speex" ,speex) ("taglib" ,taglib) ("twolame" ,twolame) - ("wavpack" ,wavpack))) - (native-inputs - `(("glib:bin" ,glib "bin") - ("pkg-config" ,pkg-config) - ("python-wrapper" ,python-wrapper))) - (arguments - `(#:phases - (modify-phases %standard-phases - ,@%common-gstreamer-phases - ,@(if (string-prefix? "arm" (or (%current-target-system) - (%current-system))) - ;; FIXME: These tests started failing on armhf after switching to Meson. - ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/689 - `((add-after 'unpack 'disable-tests-for-armhf - (lambda _ - (substitute* "tests/check/elements/rtpbin_buffer_list.c" - (("tcase_add_test \\(tc_chain, test_bufferlist\\);") - "")) - (substitute* "tests/check/elements/rtpulpfec.c" - (("tcase_add_loop_test.*rtpulpfecdec_recovered_from_many.*") - "") - (("tcase_add.*rtpulpfecdec_recovered_using_recovered_packet.*") - "")) - #t))) - '()) - (add-after - 'unpack 'disable-failing-tests - (lambda _ - ;; Disable tests that fail non-deterministically. - ;; This test fails on aarch64 on 1.12.x. - (substitute* "tests/check/elements/alpha.c" - (("tcase_add_test \\(tc_chain, test_chromakeying\\);" all) - (string-append "/* " all " */"))) - #t))))) + ("v4l-utils" ,v4l-utils) + ("wavpack" ,wavpack) + ("zlib" ,zlib))) + (propagated-inputs + `(("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base))) + (synopsis "GStreamer plugins and helper libraries") + (description "GStreamer-Plugins-Good is a collection of plug-ins you'd want +to have right next to you on the battlefield. Shooting sharp and making no +mistakes, these plug-ins have it all: good looks, good code, and good +licensing. Documented and dressed up in tests. If you're looking for a role +model to base your own plug-in on, here it is.") (home-page "https://gstreamer.freedesktop.org/") - (synopsis - "Plugins for the GStreamer multimedia library") - (description "GStreamer Good Plug-ins is a set of plug-ins for the -GStreamer multimedia library. This set contains those plug-ins which the -developers consider to have good quality code and correct functionality.") (license license:lgpl2.0+))) (define-public gst-plugins-bad -- 2.26.2
signature.asc
Description: OpenPGP digital signature