From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id aGDEHYkx+F4RYQAA0tVLHw (envelope-from ) for ; Sun, 28 Jun 2020 05:58:33 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id +F2aGYkx+F6WZAAA1q6Kng (envelope-from ) for ; Sun, 28 Jun 2020 05:58:33 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 47681940224 for ; Sun, 28 Jun 2020 05:58:32 +0000 (UTC) Received: from localhost ([::1]:42744 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jpQKl-0006Gr-7I for larch@yhetil.org; Sun, 28 Jun 2020 01:58:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59938) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jpQKZ-0006ED-LL for guix-devel@gnu.org; Sun, 28 Jun 2020 01:58:19 -0400 Received: from knopi.disroot.org ([178.21.23.139]:47214) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jpQKT-0002Go-Rr for guix-devel@gnu.org; Sun, 28 Jun 2020 01:58:19 -0400 Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 6B5C055E05; Sun, 28 Jun 2020 07:58:11 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at disroot.org Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9sG-bPEEGN5l; Sun, 28 Jun 2020 07:58:07 +0200 (CEST) Subject: Re: [OUTREACHY]: Integration of desktop environments into GNU Guix DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1593323887; bh=reOWjOEZrNvxGpX3KKkraH9CQm9RTTWRDiATdGjRnrA=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=NQqGl3Alidza75IxkiK09FmqwcVPb4jtQNZDm0r8QRssTHXl4j3ekr1HAdTwcMd6L rlv47O778TkyK6b1GBdT4M7dm6xUP4sXhLd+j8fxUMmQhsUZryiscMfVe1GZQZRxmx Vjx75+9aB2XiGiRGZHhvRaik/XKk5bON0wq7BpsHI+7/7sQ2iVm2HAfajrm0T1deUx DU4nxAoOOo2z2MDdSUb+oBlNwkV+5Ub26CbvzQfxZ7KIwaALJ6iz89ALfHlbKy85CN PIwtXq0X+fbl8AQbZnRz8e1tJP40wzH94RoAI1sCu3AXuW6D/R6z6HPtPoX2wUNeR+ h4m6aaUOFrPYA== To: Danny Milosavljevic References: <20200506051334.4558e7b3.raghavgururajan@disroot.org> <8c56bfdd-4080-9444-d3c2-7bd962c4c687@disroot.org> <49cc7f39-7bce-f5a1-55da-5f9bca203627@disroot.org> <7fc9e1ff-de86-56e0-386b-8e1eb9d54585@disroot.org> <1742d1f9-43ed-83a5-1354-bf1c94c2f679@disroot.org> <30888750-2c5b-d94f-6199-f8539b2d0de0@disroot.org> <73cb94f7-d7b4-ec0a-5942-e701a18bdf5c@disroot.org> <20200624133717.3a9fbcb2@scratchpost.org> <20200625134723.53d2a216@scratchpost.org> From: Raghav Gururajan Autocrypt: addr=raghavgururajan@disroot.org; keydata= mQENBF6yxWcBCAClEApjrOYs8fSzDl8GBwMFtUzF6VCOVrWaGun1vvPDvk4AFzbB3ZV6+Jn8 VfEuqh3OOvSJGHL2cJoR28Q5gVqeOwupyaMWVdEt6TmDrHISyxriF426KVaJnklfMjYwIi0l /7j8bs3pDRyyR6uFrY6sYL9t6HFvevtt7NwgWL1MAEVy6txKkriyrK1h+qc13wRRgVx3tzl7 dNwYEDWd3yUDn+LESoDOlawJ7TQbO8d1K4FFHaqwyQ/SyaIfLBnMAz9Qd18MUWpDkktLh/9u jRfctouFx5BUr+uGgCHAWcII5D60lt867y5m6vp3Ua75TkVQrYTt7KSF/wm7NZ7L02fTABEB AAG0M1JhZ2hhdiBHdXJ1cmFqYW4gKFJHKSA8cmFnaGF2Z3VydXJhamFuQGRpc3Jvb3Qub3Jn PokBTgQTAQgAOBYhBCdBLzSqkY3qQNKUKK5u8wRtb3tXBQJetePbAhsDBQsJCAcCBhUKCQgL AgQWAgMBAh4BAheAAAoJEK5u8wRtb3tXvWIH/3NiwaJfcrOoO/r4/reE0PmfgVWRpWP8uhdy ZiuBmcnyltxSmxZ1drlWpnbap5P7ssVyIlY6SrLTAeN7R0S70HAINkn7XvKpWajHShX0MR4b NeqjETNZg7gh2PTg6zfTnYD1UQqdNxnPMiJTSBZBLCAm/LhdEuigt559uoDA9ZEVLR5ycKh+ ny94NLUhmuRXpH/sb6Ey0FKmdMc47KNnkGQaySeGY88RwONgfv3/rriNbOJ1t12d2qsqkiOo znuxg5O3nT6obd7hCuq+EYwjzwSVrUZuMelO32UE4d2iePhiPBfiprVCNDGPFztJTe0Y+OQA ajj23CBgGIap/L1CpZ25AQ0EXrLFZwEIANGMTVaAiSGtpAbxRo9AHOc2kgatkAsH/ejtzNH0 mtGwtE0g5Gh0OKTI678KItanztmukKcZmBngPCwvUGGNQYzWWwsS+kBti5wJ3OForg+JtYuf /n9DjSAhnb7h1piL9Xi0drULl5ovVFRp/IPldkbT3R8pgc9VwAa0VVRP59dsgF6nPhoHjxfB p/XcA2QRnRfB2bN4BVCValJelPGYR0pSwkftFpmha4FRa0LrJtcMeh+PG20asPiKcE4sNGZT mH3keHkTfk5Tuds3ly5vlqmEKg7qY/zoS1yWQJj0j36JoX1/ravo+gUxszig80140a5bF2VU ERLcKO+Cp0lI4/8AEQEAAYkBNgQYAQgAIBYhBCdBLzSqkY3qQNKUKK5u8wRtb3tXBQJessVn AhsMAAoJEK5u8wRtb3tXqTIH/A9z70HLCZcAfnpluGj4APfi3haqdU7xvtrkN9eHJoPV7pwx y1luNRR8xg7YHkwcQ/9qEcvSicNIvhjRw5cSpyW9HGmOFyiZ7+KLf3XPUjC7pC5pIM+AAWyy D5GlyqakH1wBe8RC9/8vNyfZnmbV4PUvHoHvY/xZH+D/Afg1J2igdIebkQzzhFBC65TAKFeM NIWQkYIMKjq4u+nmv3sreqvRvlt8VYq0VSq24SFs0JJ+dEmuO3/s72122JIL0XEUS3ooGb/p 678RM2OpelLZcZSPG6vIIrQFKw6/NVjDtOY3DrNPtQ+h84UnFPUtaZyvQQwpGNjvtNzU/Ym+ NwsFm0Q= Message-ID: Date: Sun, 28 Jun 2020 01:56:35 -0400 Mime-Version: 1.0 In-Reply-To: <20200625134723.53d2a216@scratchpost.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="Ed1oyO9MaA3l0eSo42qH1MHk00ZeIB81Z" Received-SPF: pass client-ip=178.21.23.139; envelope-from=raghavgururajan@disroot.org; helo=knopi.disroot.org X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/28 01:58:11 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=disroot.org header.s=mail header.b=NQqGl3Al; dmarc=fail reason="SPF not aligned (relaxed)" header.from=disroot.org (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Spam-Score: -1.51 X-TUID: pcouclkB7n/0 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --Ed1oyO9MaA3l0eSo42qH1MHk00ZeIB81Z Content-Type: multipart/mixed; boundary="Ga2Xl4ZUs2TsqEJL9JWisUgESZJnxzT82"; protected-headers="v1" From: Raghav Gururajan To: Danny Milosavljevic Cc: guix-devel@gnu.org, =?UTF-8?Q?G=c3=a1bor_Boskovits?= , Tobias Geerinckx-Rice Message-ID: Subject: Re: [OUTREACHY]: Integration of desktop environments into GNU Guix References: <20200506051334.4558e7b3.raghavgururajan@disroot.org> <8c56bfdd-4080-9444-d3c2-7bd962c4c687@disroot.org> <49cc7f39-7bce-f5a1-55da-5f9bca203627@disroot.org> <7fc9e1ff-de86-56e0-386b-8e1eb9d54585@disroot.org> <1742d1f9-43ed-83a5-1354-bf1c94c2f679@disroot.org> <30888750-2c5b-d94f-6199-f8539b2d0de0@disroot.org> <73cb94f7-d7b4-ec0a-5942-e701a18bdf5c@disroot.org> <20200624133717.3a9fbcb2@scratchpost.org> <20200625134723.53d2a216@scratchpost.org> In-Reply-To: <20200625134723.53d2a216@scratchpost.org> --Ga2Xl4ZUs2TsqEJL9JWisUgESZJnxzT82 Content-Type: multipart/mixed; boundary="------------69B46253E6AA6AE03EE13814" Content-Language: en-US This is a multi-part message in MIME format. --------------69B46253E6AA6AE03EE13814 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Hi Danny! >>> * gstreamer >=20 > Please add a comment on why this is here: >=20 >> + (search-paths native-search-paths) >=20 >>> * libvisual >=20 >> + (search-paths native-search-paths) >=20 > Same >=20 >>> * libvisual-plugins >=20 >> + (search-paths native-search-paths) >=20 > Same >=20 >>> * gst-plugins-base >=20 > I didn't apply it because I didn't apply gstreamer. >=20 >>> * gst-plugins-good =20 >=20 > I didn't apply it because I didn't apply gstreamer. Please find the revised patches attached. Regards, RG. --------------69B46253E6AA6AE03EE13814 Content-Type: text/x-patch; charset=UTF-8; name="0001-gnu-glib-Update-package-definition.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-gnu-glib-Update-package-definition.patch" =46rom 8a829c439290d7e5f52f09e4d895729592c50393 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan 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][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.") =20 (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/gdatet= ime.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 =3D g_strdup_printf \\(\"dbus-launch") - (string-append "command_line =3D 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 - ;; 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 statem= ents. - (format #f "g_test_add_func.*\"~a\".*" te= st-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-xe= n-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" cann= ot be - ;; found. - ("glib/tests/spawn-singlethread.c" - ("/gthread/spawn-script")) - - ("glib/tests/timer.c" - (;; fails if compiler optimizations are enabled, w= hich they - ;; are by default. - "/timer/stop")) - - ("gio/tests/gapplication.c" - (;; XXX: proven to be unreliable. See: - ;; - ;; - "/gapplication/quit" - - ;; XXX: fails randomly for unknown reason. See: - ;; - "/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/delay= ed")) - - ))) - (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 prefi= x. - ;; 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 . - (mkdir (string-append out "/libexec")) - (rename-file (string-append bin "/bin/gio-launch-desktop")= - (string-append out "/libexec/gio-launch-deskt= op")) - ;; Do not refer to "bindir", which points to "${prefix}/bi= n". - ;; We don't patch "bindir" to point to "$bin/bin", because= that - ;; would create a reference cycle between the "out" and "b= in" - ;; outputs. - (substitute* (list (string-append out "/lib/pkgconfig/gio-= 2.0.pc") - (string-append out "/lib/pkgconfig/glib= -2.0.pc")) - (("bindir=3D\\$\\{prefix\\}/bin") "") - (("=3D\\$\\{bindir\\}/") "=3D")) - #t)))))) - ;; TODO: see above for explanation. - ;; #:configure-flags (list (string-append "--bindir=3D" - ;; (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 s= earch - ;; path for .gir files, and it's also a search path for schemas prod= uced - ;; 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 GNO= ME") - (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 bu= ild, + ;; despite using python-wrapper as input. So we patch them manu= ally. + (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}/b= in". + ;; We don't patch "bindir" to point to "$bin/bin", becaus= e 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=3D\\$\\{prefix\\}/bin") "") + (("=3D\\$\\{bindir\\}/") "=3D")) + #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 pro= duced + ;; 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, portabili= ty +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+))) =20 (define-public glib-with-documentation ;; glib's doc must be built in a separate package since it requires gt= k-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 +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 =3D { + 'buffered-output-stream' : {}, + 'cancellable' : {}, + 'contexts' : {}, +- 'contenttype' : {}, + 'converter-stream' : {}, + 'credentials' : {}, + 'data-input-stream' : {}, +@@ -78,7 +77,6 @@ gio_tests =3D { + 'tls-certificate' : {'extra_sources' : ['gtesttlsbackend.c']}, + 'tls-interaction' : {'extra_sources' : ['gtesttlsbackend.c']}, + 'tls-database' : {'extra_sources' : ['gtesttlsbackend.c']}, +- 'gdbus-address-get-session' : {}, + 'win32-appinfo' : {}, + } +=20 +@@ -135,10 +133,6 @@ endif + if host_machine.system() !=3D 'windows' + gio_tests +=3D { + '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() !=3D 'windows' + } + endif +=20 +- # Uninstalled because of the check-for-executable logic in DesktopApp= Info +- # unable to find the installed executable +- if not glib_have_cocoa +- gio_tests +=3D { +- 'appinfo' : { +- 'install' : false, +- }, +- 'desktop-app-info' : { +- 'install' : false, +- }, +- } +- endif +- + test_extra_programs +=3D { + '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 =3D { + 'utf8-pointer' : {}, + 'utf8-validate' : {}, + 'utf8-misc' : {}, +- 'utils' : {}, + 'unicode' : {}, + 'uri' : {}, + '1bit-mutex' : {}, +@@ -151,7 +150,6 @@ if host_machine.system() =3D=3D 'windows' + else + glib_tests +=3D { + 'include' : {}, +- 'unix' : {}, + } + if have_rtld_next + glib_tests +=3D { +--=20 +2.26.2 + --=20 2.26.2 --------------69B46253E6AA6AE03EE13814 Content-Type: text/x-patch; charset=UTF-8; name="0002-gnu-glib-with-documentation-Update-package-definitio.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename*0="0002-gnu-glib-with-documentation-Update-package-definitio.pa"; filename*1="tch" =46rom e644692b46700402bec0b2b342da67f8bc02375b Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 24 Jun 2020 22:15:44 -0400 Subject: [PATCH 2/9] gnu: glib-with-documentation: Update package definit= ion. * 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 re= ference (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=3Dtrue" ,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/.*\\.x= ml" + "gio/.*\\.xml" "glib/.*\\.xml" "gobject/= =2E*\\.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))))))))) =20 (define gobject-introspection --=20 2.26.2 --------------69B46253E6AA6AE03EE13814 Content-Type: text/x-patch; charset=UTF-8; name="0003-gnu-glib-networking-Update-to-2.64.3.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0003-gnu-glib-networking-Update-to-2.64.3.patch" =46rom 8e88d6d12ff0a2e7cddf3bfa107912ebbdcbb6a3 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan 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 --=20 2.26.2 --------------69B46253E6AA6AE03EE13814 Content-Type: text/x-patch; charset=UTF-8; name="0004-gnu-gobject-introspection-Update-package-definition.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename*0="0004-gnu-gobject-introspection-Update-package-definition.pat"; filename*1="ch" =46rom 92187e2422b833b167e521904408d92a9fea40fd Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Wed, 24 Jun 2020 22:27:11 -0400 Subject: [PATCH 4/9] gnu: gobject-introspection: Update package definitio= n. * 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))))))))) =20 -(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 "18lhglg9v6y83lhqzyifc1z0wrlawzrhzzxx0a3h1g7xaz97x= vmi")) - (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 librari= es") - (description - "GObject introspection is a middleware layer between C libraries (u= sing -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= =2E Then -at runtime, language bindings can read this metadata and automatically p= rovide -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 n= ative +C library. Then language bindings can read this metadata and automatica= lly +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+)))) =20 (define intltool (package --=20 2.26.2 --------------69B46253E6AA6AE03EE13814 Content-Type: text/x-patch; charset=UTF-8; name="0005-gnu-gstreamer-Update-package-definition.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0005-gnu-gstreamer-Update-package-definition.patch" =46rom 1a3b1be1d36b45845912b1e6169537fc84dd9d30 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan 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 - ;; . - ,@(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_cleanu= p_unschedule.*") - "") - (("tcase_add_test \\(tc_chain, test_stress_resche= dule.*") - "")) - #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-d= oc")) - #t)))))) - (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc= =2E - (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 technolo= gy -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 simp= le +Ogg/Vorbis playback, audio/video streaming to complex audio and video +processing.") + (home-page "https://gstreamer.freedesktop.org/") + (license license:lgpl2.0+))) =20 (define-public gst-plugins-base (package --=20 2.26.2 --------------69B46253E6AA6AE03EE13814 Content-Type: text/x-patch; charset=UTF-8; name="0006-gnu-Add-libvisual.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0006-gnu-Add-libvisual.patch" =46rom aed6ec7672efca9f307c41ce610080073f403e39 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan 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)) =20 +(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 bet= ween +applications that want audio visualisation and audio visualisation plugi= ns.") + (home-page "http://libvisual.org/") + (license + (list + ;; Libraries. + license:lgpl2.1+ + ;; Examples and Tests. + license:gpl2+)))) + (define-public esound (package (name "esound") --=20 2.26.2 --------------69B46253E6AA6AE03EE13814 Content-Type: text/x-patch; charset=UTF-8; name="0007-gnu-Add-libvisual-plugins.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0007-gnu-Add-libvisual-plugins.patch" =46rom 4c497148e0898c208a1f2014334ff12a3a85a508 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan 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+)))) =20 +(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=3D" (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 bet= ween +applications that want audio visualisation and audio visualisation plugi= ns.") + (home-page "http://libvisual.org/") + (license license:gpl2+))) + (define-public esound (package (name "esound") --=20 2.26.2 --------------69B46253E6AA6AE03EE13814 Content-Type: text/x-patch; charset=UTF-8; name="0008-gnu-gst-plugins-base-Update-package-definition.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename*0="0008-gnu-gst-plugins-base-Update-package-definition.patch" =46rom 9d118e1dbafeb9bebd782bbb526a50efd7ca65ab Mon Sep 17 00:00:00 2001 From: Raghav Gururajan 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 definitio= n. [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-des= ktop- schemas, perl, libxml2 and xorg-server-for-tests. [inputs]: Add gdk-pixbuf+svg, glu, graphene, gtk+, iso-codes, libgudev, l= ibjpeg- turbo, libvisual, libxshmfence, mesa, sdl and wayland. Remove arguments f= or 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= =2E0.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/issu= es/683 - ,@(if (string-prefix? "arm" (or (%current-target-system) - (%current-system))) - '() - `(("orc" ,orc))))) ;required by gstreamer-audio-1.0= =2Epc + (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: - ;; - ,@(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=3Ddisabled" - ;; FIXME: Documentation fails to build withou= t - ;; enabling GL above, which causes other prob= lems. - "-Ddoc=3Dfalse") - #: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 pl= ug-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 pos= sible +types of elements one would want to write for GStreamer.") + (home-page "https://gstreamer.freedesktop.org/") + (license license:lgpl2.0+))) =20 (define-public gst-plugins-good (package --=20 2.26.2 --------------69B46253E6AA6AE03EE13814 Content-Type: text/x-patch; charset=UTF-8; name="0009-gnu-gst-plugins-good-Update-package-definition.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename*0="0009-gnu-gst-plugins-good-Update-package-definition.patch" =46rom 0f2e43235c994ef456e187727b4754cb0ce182c1 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan 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 definitio= n. [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 GStre= amer.") (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 swit= ching to Meson. - ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-g= ood/issues/689 - `((add-after 'unpack 'disable-tests-for-armhf - (lambda _ - (substitute* "tests/check/elements/rtpbin_buffer_li= st.c" - (("tcase_add_test \\(tc_chain, test_bufferlist\\)= ;") - "")) - (substitute* "tests/check/elements/rtpulpfec.c" - (("tcase_add_loop_test.*rtpulpfecdec_recovered_fr= om_many.*") - "") - (("tcase_add.*rtpulpfecdec_recovered_using_recove= red_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 th= e -developers consider to have good quality code and correct functionality.= ") (license license:lgpl2.0+))) =20 (define-public gst-plugins-bad --=20 2.26.2 --------------69B46253E6AA6AE03EE13814-- --Ga2Xl4ZUs2TsqEJL9JWisUgESZJnxzT82-- --Ed1oyO9MaA3l0eSo42qH1MHk00ZeIB81Z Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEJ0EvNKqRjepA0pQorm7zBG1ve1cFAl74MRQACgkQrm7zBG1v e1fWKgf/VIXEYMnW3IF4rIsNGOfP/bGtaMQ3qpMvnnBChZ16e6wRtikIfcM6iZ/7 SuSU93IX8dyWz1J52lRVJl3O1AGUcJADR1zBFglsZ1aoDlU8rpEXe7gfXP03BBT7 +V81lvPjcc1Rz+ttliGXFfp/2+22d7bbutCaLSI72sKvg4LUUQfHYRxXnuP/7IJr Hr7t9FchW2+ez2OVPzuymjM5hIfYwlQ54x/a2wsEnmcolIcyQVLREIskbAwa50UJ mieKe6mog8Y/IqXoJnFWeB+0ccZm/5B8OMtj/VQaDNUEAIwgSvr7B0Wq/xs9Sj6l 9mfivnjEUu5jH+4WKg181AIFmIWQxg== =0Gcx -----END PGP SIGNATURE----- --Ed1oyO9MaA3l0eSo42qH1MHk00ZeIB81Z--