unofficial mirror of guix-devel@gnu.org 
 help / color / Atom feed
* [OUTREACHY]: Integration of desktop environments into GNU Guix
@ 2020-05-06  9:13 Raghav Gururajan
  2020-05-06 14:19 ` Ludovic Courtès
                   ` (4 more replies)
  0 siblings, 5 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-06  9:13 UTC (permalink / raw)
  To: guix-devel

Hello Guix!

I would like to thank Guix Maintainers, Gábor Boskovits and Danny
Milosavljevic; for selecting me as an intern for this project. I am gald to be
part of Guix and excited to get started. :-)

I am opening this email thread for communication, discussion and progression
regarding this project. I request everyone participating in this thread to
always CC: Gábor Boskovits (Co-Ordinator), Danny Milosavljevic (Mentor), Tobias
Geerinckx-Rice (Co-Mentor) and myself (Intern).

Thank you!

Regards,
Raghav (RG) Gururajan.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-06  9:13 [OUTREACHY]: Integration of desktop environments into GNU Guix Raghav Gururajan
@ 2020-05-06 14:19 ` Ludovic Courtès
  2020-05-06 15:05   ` Gábor Boskovits
  2020-05-06 15:49 ` Ricardo Wurmus
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 49+ messages in thread
From: Ludovic Courtès @ 2020-05-06 14:19 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

Hi!

Raghav Gururajan <raghavgururajan@disroot.org> skribis:

> I would like to thank Guix Maintainers, Gábor Boskovits and Danny
> Milosavljevic; for selecting me as an intern for this project. I am gald to be
> part of Guix and excited to get started. :-)

Yay, great that you made it!  Welcome again!  :-)

> I am opening this email thread for communication, discussion and progression
> regarding this project. I request everyone participating in this thread to
> always CC: Gábor Boskovits (Co-Ordinator), Danny Milosavljevic (Mentor), Tobias
> Geerinckx-Rice (Co-Mentor) and myself (Intern).

Thanks a lot to Gábor, Danny, and Tobias for coordinating and mentoring.

We could publish a blog post in the coming days to introduce the
Outreachy (and GSoC?) interns and what they’ll be working on.

I guess you’re used to it now, but don’t hesitate to ask for guidance
and feedback on IRC and the mailing lists in addition to/instead of
bugging your mentors!

Ludo’.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-06 14:19 ` Ludovic Courtès
@ 2020-05-06 15:05   ` Gábor Boskovits
  0 siblings, 0 replies; 49+ messages in thread
From: Gábor Boskovits @ 2020-05-06 15:05 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel, Raghav Gururajan

[-- Attachment #1: Type: text/plain, Size: 1269 bytes --]

Hello,

Ludovic Courtès <ludo@gnu.org> ezt írta (időpont: 2020. máj. 6., Sze 16:19):

> Hi!
>
> Raghav Gururajan <raghavgururajan@disroot.org> skribis:
>
> > I would like to thank Guix Maintainers, Gábor Boskovits and Danny
> > Milosavljevic; for selecting me as an intern for this project. I am gald
> to be
> > part of Guix and excited to get started. :-)
>
> Yay, great that you made it!  Welcome again!  :-)
>
> > I am opening this email thread for communication, discussion and
> progression
> > regarding this project. I request everyone participating in this thread
> to
> > always CC: Gábor Boskovits (Co-Ordinator), Danny Milosavljevic (Mentor),
> Tobias
> > Geerinckx-Rice (Co-Mentor) and myself (Intern).
>
> Thanks a lot to Gábor, Danny, and Tobias for coordinating and mentoring.
>
> We could publish a blog post in the coming days to introduce the
> Outreachy (and GSoC?) interns and what they’ll be working on.
>

I have already created a draft, and sent it to the blog alias for review.


> I guess you’re used to it now, but don’t hesitate to ask for guidance
> and feedback on IRC and the mailing lists in addition to/instead of
> bugging your mentors!
>
> Ludo’.
>

Best regards,
g_bor

>
>

[-- Attachment #2: Type: text/html, Size: 2152 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-06  9:13 [OUTREACHY]: Integration of desktop environments into GNU Guix Raghav Gururajan
  2020-05-06 14:19 ` Ludovic Courtès
@ 2020-05-06 15:49 ` Ricardo Wurmus
  2020-05-06 16:03   ` Raghav Gururajan
  2020-05-06 15:52 ` sirgazil
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 49+ messages in thread
From: Ricardo Wurmus @ 2020-05-06 15:49 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel


Raghav Gururajan <raghavgururajan@disroot.org> writes:

> I would like to thank Guix Maintainers, Gábor Boskovits and Danny
> Milosavljevic; for selecting me as an intern for this project. I am gald to be
> part of Guix and excited to get started. :-)

Congratulations!

You’ve already done a lot of great work in the past weeks, so I’m
looking forward to seeing your project results.

--
Ricardo


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-06  9:13 [OUTREACHY]: Integration of desktop environments into GNU Guix Raghav Gururajan
  2020-05-06 14:19 ` Ludovic Courtès
  2020-05-06 15:49 ` Ricardo Wurmus
@ 2020-05-06 15:52 ` sirgazil
  2020-05-06 16:04   ` Raghav Gururajan
  2020-05-06 17:22 ` Jan Nieuwenhuizen
  2020-05-20 13:34 ` Raghav Gururajan
  4 siblings, 1 reply; 49+ messages in thread
From: sirgazil @ 2020-05-06 15:52 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

 ---- On Wed, 06 May 2020 09:13:34 +0000 Raghav Gururajan <raghavgururajan@disroot.org> wrote ----
 > Hello Guix!
 > 
 > I would like to thank Guix Maintainers, Gábor Boskovits and Danny
 > Milosavljevic; for selecting me as an intern for this project. I am gald to be
 > part of Guix and excited to get started. :-)

Nice, Raghav.  I wish you success :)


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-06 15:49 ` Ricardo Wurmus
@ 2020-05-06 16:03   ` Raghav Gururajan
  0 siblings, 0 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-06 16:03 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Hello Ricardo!

> Congratulations!
> 
> You’ve already done a lot of great work in the past weeks, so I’m
> looking forward to seeing your project results.

Thank you!

Regards,
RG.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-06 15:52 ` sirgazil
@ 2020-05-06 16:04   ` Raghav Gururajan
  0 siblings, 0 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-06 16:04 UTC (permalink / raw)
  To: sirgazil; +Cc: guix-devel

Hello Sirgazil!

> Nice, Raghav.  I wish you success :)

Thank you!

Regards,
RG.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-06  9:13 [OUTREACHY]: Integration of desktop environments into GNU Guix Raghav Gururajan
                   ` (2 preceding siblings ...)
  2020-05-06 15:52 ` sirgazil
@ 2020-05-06 17:22 ` Jan Nieuwenhuizen
  2020-05-06 17:23   ` Raghav Gururajan
  2020-05-20 13:34 ` Raghav Gururajan
  4 siblings, 1 reply; 49+ messages in thread
From: Jan Nieuwenhuizen @ 2020-05-06 17:22 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

Raghav Gururajan writes:

> I would like to thank Guix Maintainers, Gábor Boskovits and Danny
> Milosavljevic; for selecting me as an intern for this project. I am gald to be
> part of Guix and excited to get started. :-)

Well, done; congratulations!

Greetings,
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-06 17:22 ` Jan Nieuwenhuizen
@ 2020-05-06 17:23   ` Raghav Gururajan
  0 siblings, 0 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-06 17:23 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 81 bytes --]

Hello Jan!

> Well, done; congratulations!

Thank you! :-)

Regards,
RG.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-06  9:13 [OUTREACHY]: Integration of desktop environments into GNU Guix Raghav Gururajan
                   ` (3 preceding siblings ...)
  2020-05-06 17:22 ` Jan Nieuwenhuizen
@ 2020-05-20 13:34 ` Raghav Gururajan
  2020-05-20 13:51   ` Pierre Neidhardt
                     ` (2 more replies)
  4 siblings, 3 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-20 13:34 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 2781 bytes --]

Hello Guix!

As a part of outreachy internship program, I have to create a blog and
make posts every two weeks. The following are the blog information:
BLOG: https://hub.disroot.org/channel/raghavgururajan?f=&cat=outreachy
FEED: https://hub.disroot.org/feed/raghavgururajan?f=&cat=outreachy

The following will be the outline of this project:

PART 1: GNOME
(a) Revise Package(s): Add missing packages, remove deprecated packages
and fix erroneous packages.
(b) Revise Meta-Package(s): Clean-up gnome and create gnome-minimal.
(c) Revise Package Module(s): Rebase gnome.scm and gnome-xyz-.scm into
gnome-core.scm, gnome-deps.scm, gnome-sdk.scm and gnome-world.scm.
(d) Revise Service(s): Add missing services, remove deprecated services
and fix erroneous services.
(e) Revise Service Module(s): Rebase gnome-dektop-service-type and
%desktop-services into gnome-desktop-service-type and
gnome-minimal-desktop-service-type.

PART 2: Xfce
(a) Revise Package(s): Add missing packages, remove deprecated packages
and fix erroneous packages.
(b) Revise Meta-Package(s): Clean-up xfce and create xfce-minimal.
(c) Revise Package Module(s): Rebase xfce.scm into xfce-core.scm,
xfce-apps.scm, xfce-plugins.scm and xfce-bindings.scm.
(d) Revise Service(s): Add missing services, remove deprecated services
and fix erroneous services.
(e) Revise Service Module(s): Rebase xfce-dektop-service-type and
%desktop-services into xfce-desktop-service-type and
xfce-minimal-desktop-service-type.

PART 3: MATE
(a) Revise Package(s): Add missing packages, remove deprecated packages
and fix erroneous packages.
(b) Revise Meta-Package(s): Clean-up mate and create mate-minimal.
(c) Revise Package Module(s): Rebase mate.scm into mate-core.scm and
mate-extra.scm.
(d) Revise Service(s): Add missing services, remove deprecated services
and fix erroneous services.
(e) Revise Service Module(s): Rebase mate-dektop-service-type and
%desktop-services into mate-desktop-service-type and
mate-minimal-desktop-service-type.

PART 4: Enlightenment
(a) Revise Package(s): Add missing packages, remove deprecated packages
and fix erroneous packages.
(b) Revise Meta-Package(s): Clean-up enlightenment and create
enlightenment-minimal.
(c) Revise Package Module(s): Rebase enlightenment.scm into
enlightenment-core.scm, enlightenment-apps.scm,
enlightenment-modules.scm, enlightenment-bindings.scm,
enlightenment-tools.scm and enlightenment-games.scm.
(d) Revise Service(s): Add missing services, remove deprecated services
and fix erroneous services.
(e) Revise Service Module(s): Rebase enlightenment-dektop-service-type
and %desktop-services into enlightenment-desktop-service-type and
enlightenment-minimal-desktop-service-type.

Regards,
RG.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-20 13:34 ` Raghav Gururajan
@ 2020-05-20 13:51   ` Pierre Neidhardt
  2020-05-20 13:57     ` Raghav Gururajan
  2020-05-21  9:08   ` Efraim Flashner
  2020-05-22 11:25   ` Raghav Gururajan
  2 siblings, 1 reply; 49+ messages in thread
From: Pierre Neidhardt @ 2020-05-20 13:51 UTC (permalink / raw)
  To: Raghav Gururajan, guix-devel

[-- Attachment #1: Type: text/plain, Size: 791 bytes --]

Hi Raghav!

Congrats on the project!

Here are some links related to the broken bits of GNOME and Libreoffice in Guix:

- Nautilus thumbnails: https://issues.guix.gnu.org/issue/39117
- GNOME Music: https://issues.guix.info/issue/38931
- GNOME Photos: https://issues.guix.info/issue/38953
- GDM autologging does not work: https://issues.guix.info/issue/35674
- GNOME Weather does not seem to work completely:
  https://issues.guix.gnu.org/issue/39324
- Fonts don't show up after install:
  https://issues.guix.gnu.org/issue/30435 (+ other links)

- Most Hunspell dictionaries are missing + they don't show up in Libreoffice:
  https://issues.guix.info/issue/41390

I'd be happy to help / test any of the above! :)

Cheers!

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-20 13:51   ` Pierre Neidhardt
@ 2020-05-20 13:57     ` Raghav Gururajan
  2020-05-20 14:06       ` Pierre Neidhardt
  0 siblings, 1 reply; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-20 13:57 UTC (permalink / raw)
  To: Pierre Neidhardt, guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 840 bytes --]

Hi Pierre!

> Congrats on the project!

Thank you!

> Here are some links related to the broken bits of GNOME and Libreoffice in Guix:
> 
> - Nautilus thumbnails: https://issues.guix.gnu.org/issue/39117
> - GNOME Music: https://issues.guix.info/issue/38931
> - GNOME Photos: https://issues.guix.info/issue/38953
> - GDM autologging does not work: https://issues.guix.info/issue/35674
> - GNOME Weather does not seem to work completely:
>   https://issues.guix.gnu.org/issue/39324
> - Fonts don't show up after install:
>   https://issues.guix.gnu.org/issue/30435 (+ other links)
> 
> - Most Hunspell dictionaries are missing + they don't show up in Libreoffice:
>   https://issues.guix.info/issue/41390
> 
> I'd be happy to help / test any of the above! :)

This is so helpful. Thanks so much! :-)

Regards,
RG.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-20 13:57     ` Raghav Gururajan
@ 2020-05-20 14:06       ` Pierre Neidhardt
  0 siblings, 0 replies; 49+ messages in thread
From: Pierre Neidhardt @ 2020-05-20 14:06 UTC (permalink / raw)
  To: Raghav Gururajan, guix-devel

[-- Attachment #1: Type: text/plain, Size: 372 bytes --]

Raghav Gururajan <raghavgururajan@disroot.org> writes:

>> - Fonts don't show up after install:
>>   https://issues.guix.gnu.org/issue/30435 (+ other links)

About this one, let me know if you want to work on it, there's been a
couple of discussions already that I can forward you if you haven't
found them already.

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-20 13:34 ` Raghav Gururajan
  2020-05-20 13:51   ` Pierre Neidhardt
@ 2020-05-21  9:08   ` Efraim Flashner
  2020-05-22 11:18     ` Raghav Gururajan
  2020-05-22 11:25   ` Raghav Gururajan
  2 siblings, 1 reply; 49+ messages in thread
From: Efraim Flashner @ 2020-05-21  9:08 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2217 bytes --]

On Wed, May 20, 2020 at 09:34:01AM -0400, Raghav Gururajan wrote:
> Hello Guix!
> 
> As a part of outreachy internship program, I have to create a blog and
> make posts every two weeks. The following are the blog information:
> BLOG: https://hub.disroot.org/channel/raghavgururajan?f=&cat=outreachy
> FEED: https://hub.disroot.org/feed/raghavgururajan?f=&cat=outreachy
> 
> The following will be the outline of this project:

< snip >

> PART 4: Enlightenment
> (a) Revise Package(s): Add missing packages, remove deprecated packages
> and fix erroneous packages.
> (b) Revise Meta-Package(s): Clean-up enlightenment and create
> enlightenment-minimal.
> (c) Revise Package Module(s): Rebase enlightenment.scm into
> enlightenment-core.scm, enlightenment-apps.scm,
> enlightenment-modules.scm, enlightenment-bindings.scm,
> enlightenment-tools.scm and enlightenment-games.scm.
> (d) Revise Service(s): Add missing services, remove deprecated services
> and fix erroneous services.
> (e) Revise Service Module(s): Rebase enlightenment-dektop-service-type
> and %desktop-services into enlightenment-desktop-service-type and
> enlightenment-minimal-desktop-service-type.

Congrats again! As the unofficial Enlightenment maintainer I'm happy to
work with you and to try to not grumble too much about changes.

I currently have efl-1.24.1 and enlightenment-0.24 sitting in a separate
branch waiting for our heatwave to break so I can go back to my normal
machine and test them out in person. In addition, I have a couple of EFL
apps which I haven't pushed to Guix yet. Some of them I haven't gotten
around to, some of them need more work. I've also previously tracked
down some of the Moksha apps (enlightenment 0.17 fork) for consideration
for packaging.

I see Enlightenment is 4 of 4 in the desktop list and I certainly won't
be offended if it receives less attention than the other desktop
environments and services. It has fewer moving parts than the others.



-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-21  9:08   ` Efraim Flashner
@ 2020-05-22 11:18     ` Raghav Gururajan
  0 siblings, 0 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-22 11:18 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: guix-devel

Hello Efraim!

> Congrats again! As the unofficial Enlightenment maintainer I'm happy to
> work with you and to try to not grumble too much about changes.

Thank you! I am happy to work with you too. :-)

> I currently have efl-1.24.1 and enlightenment-0.24 sitting in a separate
> branch waiting for our heatwave to break so I can go back to my normal
> machine and test them out in person. In addition, I have a couple of EFL
> apps which I haven't pushed to Guix yet. Some of them I haven't gotten
> around to, some of them need more work. I've also previously tracked
> down some of the Moksha apps (enlightenment 0.17 fork) for consideration
> for packaging.

That's nice. We can work together to merge our works. Anyway, we have
some time to get there.

> I see Enlightenment is 4 of 4 in the desktop list and I certainly won't
> be offended if it receives less attention than the other desktop
> environments and services. It has fewer moving parts than the others.

I ordered the DE's based on shared dependencies. I personally like EFL.
It seems to be better in performance than gtk+ and qt. I am trying to
give my best to all the mentioned DE's. :-)

Regards,
RG.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-20 13:34 ` Raghav Gururajan
  2020-05-20 13:51   ` Pierre Neidhardt
  2020-05-21  9:08   ` Efraim Flashner
@ 2020-05-22 11:25   ` Raghav Gururajan
  2020-05-23 14:26     ` Raghav Gururajan
                       ` (2 more replies)
  2 siblings, 3 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-22 11:25 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 392 bytes --]

Hello Guix!

The work chart for GNOME will be
https://calc.disroot.org/2nu6mpf88ynq.html

I am in the process of updating it. I have also packaged some missing
packages, which I attached them with this email. They will be reviewed
and merged by Danny.

There will be a dedicated branch created on guix's git for this project.
Most probably, the branch name will be wip-desktop.

Regards,
RG.

[-- Attachment #2: 0001-gnu-Add-krb5-auth-dialog.patch --]
[-- Type: text/x-patch, Size: 2001 bytes --]

From 1032894b14ca67079365f8749206158629fe8cca Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 21 May 2020 05:26:27 -0400
Subject: [PATCH 1/6] gnu: Add krb5-auth-dialog.

* gnu/packages/gnome.scm (krb5-auth-dialog): New variable.
---
 gnu/packages/gnome.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 092f9fcb00..9c329e1a33 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -253,6 +253,39 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public krb5-auth-dialog
+  (package
+    (name "krb5-auth-dialog")
+    (version "3.26.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("libxml2" ,libxml2)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libnotify" ,libnotify)
+       ("mit-krb5" ,mit-krb5)
+       ("network-manager" ,network-manager)))
+    (synopsis "Popup dialogs for krb5")
+    (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
+tickets, and pops up a dialog when they are about to expire.")
+    (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
+    (license license:gpl2+)))
+
 (define-public notification-daemon
   (package
     (name "notification-daemon")
-- 
2.26.2


[-- Attachment #3: 0002-gnu-Add-tepl.patch --]
[-- Type: text/x-patch, Size: 1932 bytes --]

From b9c62cf44444a650d4f39ba8eb0dae04c71d1b65 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 21 May 2020 07:20:47 -0400
Subject: [PATCH 2/6] gnu: Add tepl.

* gnu/packages/gnome.scm (tepl): New variable.
---
 gnu/packages/gnome.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9c329e1a33..3dcd45fb43 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -253,6 +253,39 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public tepl
+  (package
+    (name "tepl")
+    (version "4.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:tests? #f))                    ; FIX-ME: Requires gvfs
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("amtk" ,amtk)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gtksourceview" ,gtksourceview)
+       ("libxml2" ,libxml2)
+       ("uchardet" ,uchardet)))
+    (synopsis "Text editor product line")
+    (description "Tepl is a library that eases the development of
+GtkSourceView-based text editors and IDEs.")
+    (home-page "https://wiki.gnome.org/Projects/Tepl")
+    (license license:lgpl2.1+)))
+
 (define-public krb5-auth-dialog
   (package
     (name "krb5-auth-dialog")
-- 
2.26.2


[-- Attachment #4: 0003-gnu-Add-libglib-testing.patch --]
[-- Type: text/x-patch, Size: 2601 bytes --]

From df250f5ca0cc957549147e00d9e57ca521e5e1c4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 21 May 2020 11:31:31 -0400
Subject: [PATCH 3/6] gnu: Add libglib-testing.

* gnu/packages/freedesktop.scm (libglib-testing): New variable.
---
 gnu/packages/freedesktop.scm | 43 ++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index f00cb1e076..36d0db4fc1 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -77,6 +77,7 @@
   #:use-module (gnu packages man)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages nss)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
@@ -94,6 +95,48 @@
   #:use-module (gnu packages xorg)
   #:use-module (srfi srfi-1))
 
+(define-public libglib-testing
+  (package
+    (name "libglib-testing")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.gnome.org/pwithnall/libglib-testing.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xmycsrlqyji6sc2i4wvp2gxf3897z65a57ygihfnpjpyl7zlwkr"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-before
+             'check 'pre-check
+           (lambda _
+             ;; The test suite requires a running dbus-daemon.
+             (system "dbus-daemon &")
+             ;; Don't fail on missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t)))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("gtk-doc" ,gtk-doc)))
+    (inputs
+     `(("dbus" ,dbus)
+       ("glib" ,glib)))
+    (synopsis "Glib testing library")
+    (description "Libglib-testing is a test library providing test harnesses and
+mock classes which complement the classes provided by GLib.  It is intended to
+be used by any project which uses GLib and which wants to write internal unit
+tests.")
+    (home-page "https://gitlab.gnome.org/pwithnall/libglib-testing")
+    (license license:lgpl2.1+)))
+
 (define-public xdg-utils
   (package
     (name "xdg-utils")
-- 
2.26.2


[-- Attachment #5: 0004-gnu-Add-malcontent.patch --]
[-- Type: text/x-patch, Size: 2795 bytes --]

From 01d5fc4718436538f935740f33622072bba5903f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 21 May 2020 11:35:25 -0400
Subject: [PATCH 4/6] gnu: Add malcontent.

* gnu/packages/freedesktop.scm (malcontent): New variable.
---
 gnu/packages/freedesktop.scm | 55 ++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 36d0db4fc1..714684e33f 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -137,6 +137,61 @@ tests.")
     (home-page "https://gitlab.gnome.org/pwithnall/libglib-testing")
     (license license:lgpl2.1+)))
 
+(define-public malcontent
+  (package
+    (name "malcontent")
+    (version "0.8.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.freedesktop.org/pwithnall/malcontent.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vnf0pk516fwwh41v96c29l2i7h1pnwhivlkbf53kkx1q35g7lb3"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         ;; AppInfo not available inside build environment.
+         (add-after 'unpack 'fix-tests
+           (lambda _
+             (substitute* "libmalcontent/tests/app-filter.c"
+               (((string-append "g_test_add_func \\(\"/app-filter/appinfo\","
+                                " test_app_filter_appinfo\\);")) ""))
+             #t)))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("itstool" ,itstool)
+       ("libglib-testing" ,libglib-testing)
+       ("libxml2" ,libxml2)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("accountsservice" ,accountsservice)
+       ("appstream-glib" ,appstream-glib)
+       ("dbus" ,dbus)
+       ("flatpak" ,flatpak)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libostree" ,libostree)
+       ("linux-pam" ,linux-pam)
+       ("polkit" ,polkit)))
+    (synopsis "Parental controls support")
+    (description "MalContent implements parental controls support which can
+be used by applications to filter or limit the access of child accounts to
+inappropriate content.")
+    (home-page "https://gitlab.freedesktop.org/pwithnall/malcontent")
+    (license
+     (list
+      license:gpl2+
+      license:lgpl2.1+))))
+
 (define-public xdg-utils
   (package
     (name "xdg-utils")
-- 
2.26.2


[-- Attachment #6: 0005-gnu-Add-portablexdr.patch --]
[-- Type: text/x-patch, Size: 2022 bytes --]

From a75b7b64dd078da651b38c88e76d6efb48620b9c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 22 May 2020 06:22:10 -0400
Subject: [PATCH 5/6] gnu: Add portablexdr.

* gnu/packages/gnome.scm (portablexdr): New variable.
---
 gnu/packages/gnome.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3dcd45fb43..a330b3d37c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -137,6 +137,7 @@
   #:use-module (gnu packages ninja)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pdf)
@@ -253,6 +254,31 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public portablexdr
+  (package
+    (name "portablexdr")
+    (version "4.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://people.redhat.com/~rjones/" name "/files/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
+    (build-system gnu-build-system)
+    (synopsis "External Data Representation Library")
+    (description "PortableXDR is an implementation of External Data
+Representation (XDR) Library.  It is a standard data serialization format, for
+uses such as computer network protocols.  It allows data to be transferred
+between different kinds of computer systems.")
+    (home-page "https://people.redhat.com/~rjones/portablexdr/")
+    (license
+     (list
+      license:gpl2+
+      license:lgpl2.1+))))
+
 (define-public tepl
   (package
     (name "tepl")
-- 
2.26.2


[-- Attachment #7: 0006-gnu-Add-libxmlb.patch --]
[-- Type: text/x-patch, Size: 2577 bytes --]

From 5b974cef5460d18f61e6cbd0dfc0bd229398d1ad Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 22 May 2020 07:06:27 -0400
Subject: [PATCH 6/6] gnu: Add libxmlb.

* gnu/packages/xml.scm (libxmlb): New variable.
---
 gnu/packages/xml.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 51ac6d44d1..ee63153f84 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -44,7 +44,10 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages java)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
@@ -59,11 +62,45 @@
   #:use-module (guix build-system ant)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config))
 
+(define-public libxmlb
+  (package
+    (name "libxmlb")
+    (version "0.1.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hughsie/libxmlb.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1mb73pnfwqc4mm0lm16yfn0lj495h8hcciprb2v6wgy3ifnnjxib"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("appstream-glib" ,appstream-glib)
+       ("glib" ,glib)))
+    (synopsis "Library to help create and query binary XML blobs")
+    (description "Libxmlb library takes XML source, and converts it to a
+structured binary representation with a deduplicated string table; where the
+strings have the NULs included.  This allows an application to mmap the binary
+XML file, do an XPath query and return some strings without actually parsing
+the entire document.")
+    (home-page "https://github.com/hughsie/libxmlb")
+    (license license:lgpl2.1+)))
+
 (define-public expat
   (package
     (name "expat")
-- 
2.26.2


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-22 11:25   ` Raghav Gururajan
@ 2020-05-23 14:26     ` Raghav Gururajan
  2020-05-25 20:08       ` Danny Milosavljevic
  2020-05-28 17:10       ` Raghav Gururajan
  2020-05-25 19:58     ` Danny Milosavljevic
  2020-05-25 20:00     ` Danny Milosavljevic
  2 siblings, 2 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-23 14:26 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 491 bytes --]

@Danny

Please find the attached patches to add gnome-music and gnome-photos.

gnome-music will not start, as there is an open bug in upstream.
https://gitlab.gnome.org/GNOME/gnome-music/-/issues/260

gnome-photos requires gegl to be built with introspection.

As of now, all necessary missing packages are now packaged. I will be
starting the debug and fix process for whole gnome-stack, one-by-one. In
this course, I will eventually fix gegl and gnome-photos.

Regards,
RG.

[-- Attachment #1.1.2: 0007-gnu-Add-gnome-music.patch --]
[-- Type: text/x-patch, Size: 3400 bytes --]

From 614c11621fb88650764e5557c8aee1a039844a88 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 22 May 2020 14:50:21 -0400
Subject: [PATCH 7/8] gnu: Add gnome-music.

* gnu/packages/gnome.scm (gnome-music): New variable.
---
 gnu/packages/gnome.scm | 62 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a330b3d37c..a84de98014 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -254,6 +254,68 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public gnome-music
+  (package
+    (name "gnome-music")
+    (version "3.34.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-gnome-music
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let*
+                 ((out (assoc-ref outputs "out"))
+                  (pylib (string-append out "/lib/python"
+                                        ,(version-major+minor
+                                          (package-version python))
+                                        "/site-packages")))
+               (wrap-program (string-append out "/bin/gnome-music")
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
+                 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
+                 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
+             #t)))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("itstools" ,itstool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+       ("grilo" ,grilo)
+       ("grilo-plugins" ,grilo-plugins)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gstreamer" ,gstreamer)
+       ("gvfs" ,gvfs)
+       ("libdazzle" ,libdazzle)
+       ("libmediaart" ,libmediaart)
+       ("libsoup" ,libsoup)
+       ("pycairo" ,python-pycairo)
+       ("pygobject" ,python-pygobject)
+       ("tracker" ,tracker)
+       ("tracker-miners" ,tracker-miners)))
+    (synopsis "Simple music player for GNOME desktop")
+    (description "GNOME Music is the new GNOME music playing application that
+aims to combine an elegant and immersive browsing experience with simple
+and straightforward controls.")
+    (home-page "https://wiki.gnome.org/Apps/Music")
+    (license license:gpl2+)))
+
 (define-public portablexdr
   (package
     (name "portablexdr")
-- 
2.26.2


[-- Attachment #1.1.3: 0008-gnu-Add-gnome-photos.patch --]
[-- Type: text/x-patch, Size: 3865 bytes --]

From 56d0c2690a6938d3be37a8861b24873ee68f5cc5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 23 May 2020 10:09:29 -0400
Subject: [PATCH 8/8] gnu: Add gnome-photos.

* gnu/packages/gnome.scm (gnome-photos): New variable.
---
 gnu/packages/gnome.scm | 71 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a84de98014..558e5e4904 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -103,6 +103,7 @@
   #:use-module (gnu packages game-development)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gimp)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
@@ -254,6 +255,76 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public gnome-photos
+  (package
+    (name "gnome-photos")
+    (version "3.34.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:configure-flags
+       (list "-Ddogtail=false"     ; Not available
+             ;; Required for RUNPATH validation.
+             (string-append "-Dc_link_args=-Wl,-rpath="
+                            (assoc-ref %outputs "out") "/lib/gnome-photos"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-gnome-photos
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let*
+                 ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/gnome-photos")
+                 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
+             #t)))))
+    (native-inputs
+     `(("dbus" ,dbus)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("git" ,git-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("babl" ,babl)
+       ("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gegl" ,gegl)
+       ("geocode-glib" ,geocode-glib)
+       ("gexiv2" ,gexiv2)
+       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gnome-online-miners" ,gnome-online-miners)
+       ("grilo" ,grilo)
+       ("grilo-plugins" ,grilo-plugins)
+       ("gtk+" ,gtk+)
+       ("libdazzle" ,libdazzle)
+       ("libgdata" ,libgdata)
+       ("libgfbgraph" ,gfbgraph)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("librest" ,rest)
+       ("pygobject" ,python-pygobject)
+       ("tracker" ,tracker)
+       ("tracker-miners" ,tracker-miners)))
+    (synopsis "Access, organize and share your photos on GNOME desktop")
+    (description "GNOME Photos is a simple and elegant replacement for using a
+file manager to deal with photos.  Enhance, crop and edit in a snap.  Seamless
+cloud integration is offered through GNOME Online Accounts.")
+    (home-page "https://wiki.gnome.org/Apps/Photos")
+    (license license:gpl3+)))
+
 (define-public gnome-music
   (package
     (name "gnome-music")
-- 
2.26.2


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-22 11:25   ` Raghav Gururajan
  2020-05-23 14:26     ` Raghav Gururajan
@ 2020-05-25 19:58     ` Danny Milosavljevic
  2020-05-25 20:00     ` Danny Milosavljevic
  2 siblings, 0 replies; 49+ messages in thread
From: Danny Milosavljevic @ 2020-05-25 19:58 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 716 bytes --]

Hi Raghav,

in malcontent, please don't do 

+             (substitute* "libmalcontent/tests/app-filter.c"
+               (((string-append "g_test_add_func \\(\"/app-filter/appinfo\","
+                                " test_app_filter_appinfo\\);")) ""))

Rather do it without string-append.  If the line is too long, that's too bad, just have it too long instead of that crazy opaque stuff.

Also, don't stick the "" back there--better in a new line.

I've pushed it to wip-desktop with those changes.

If there are multiple licenses in a package, please elaborate which parts are
under which licenses and whether it's the user that can choose one of those
licenses or whether all of them apply.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-22 11:25   ` Raghav Gururajan
  2020-05-23 14:26     ` Raghav Gururajan
  2020-05-25 19:58     ` Danny Milosavljevic
@ 2020-05-25 20:00     ` Danny Milosavljevic
  2 siblings, 0 replies; 49+ messages in thread
From: Danny Milosavljevic @ 2020-05-25 20:00 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 41 bytes --]

Pushed all those to wip-desktop branch.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-23 14:26     ` Raghav Gururajan
@ 2020-05-25 20:08       ` Danny Milosavljevic
  2020-05-28 17:11         ` Raghav Gururajan
  2020-05-28 17:10       ` Raghav Gururajan
  1 sibling, 1 reply; 49+ messages in thread
From: Danny Milosavljevic @ 2020-05-25 20:08 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 161 bytes --]

Also, gnome-photos doesn't set PYTHONPATH, so it won't be able to use pygobject,
right?

Pushed both gnome-music and gnome-photos to wip-desktop regardless.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-23 14:26     ` Raghav Gururajan
  2020-05-25 20:08       ` Danny Milosavljevic
@ 2020-05-28 17:10       ` Raghav Gururajan
  2020-05-28 18:23         ` Danny Milosavljevic
  2020-05-29 20:54         ` Raghav Gururajan
  1 sibling, 2 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-28 17:10 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 384 bytes --]

@Danny

I am in the process of updating/debugging gnome packages one-by-one. I
have started with gnome-sdk packages. I initially thought I could finish
up all gnome-sdk and send patches at once. But it will not be efficient
use of your time, while I am generating patches. So I have attached a
few with this email. I'll send patches in few sets.

Thank you!

Regards,
RG.

[-- Attachment #1.1.2: 0001-gnu-adwaita-icon-theme-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2977 bytes --]

From eaed1a7ea50235d5fc2d08f55fb1cf042dfbdc79 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 28 May 2020 09:10:39 -0400
Subject: [PATCH 1/7] gnu: adwaita-icon-theme: Update package definition.

* gnu/packages/gnome.scm (adwaita-icon-theme): Remove inheritance
from gnome-icon-theme.
[build-system]: Change from gnu to glib-or-gtk.
[native-inputs]: Add python-wrapper.
[description]: Rewrite.
[license]: List the licenses.
---
 gnu/packages/gnome.scm | 46 +++++++++++++++++++++++++++++++-----------
 1 file changed, 34 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5c769b2b9c..df29ba0000 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2011,21 +2011,43 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
     (description "Icons for the GNOME desktop.")
     (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
 
-;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
 (define-public adwaita-icon-theme
-  (package (inherit gnome-icon-theme)
+  (package
     (name "adwaita-icon-theme")
-    (version "3.34.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
+    (version "3.36.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0kgiq712lfidd81yzx0yk7qwlj3q8cymp6npnxyzsk844y353674"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     '(#:configure-flags
+       ;; Don't create 'icon-theme.cache'.
+       (let*
+           ((coreutils (assoc-ref %build-inputs "coreutils"))
+            (true (string-append coreutils "/bin/true")))
+         (list
+          (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
     (native-inputs
-     `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
+     `(("gtk+:bin" ,gtk+ "bin")
+       ("icon-naming-utils" ,icon-naming-utils)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
+    (synopsis "GNOME icon theme")
+    (description "The standard icon theme for GNOME desktop environment.")
+    (home-page "https://wiki.gnome.org/Personalization")
+    (license
+     ;; Any one of the following licenses can be chosen.
+     (list
+      license:cc-by-sa3.0
+      license:lgpl3+))))
 
 (define-public tango-icon-theme
   (package
-- 
2.26.2


[-- Attachment #1.1.3: 0002-gnu-appstream-glib-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6123 bytes --]

From c3a126bd464b01c49551e07aa09e3a10d912100c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 28 May 2020 10:08:58 -0400
Subject: [PATCH 2/7] gnu: appstream-glib: Update package definition.

* gnu/packages/glib.scm (appstream-glib): Update package definition.
[outputs]: New output 'doc'.
[arguments]<#:glib-or-gtk?>: New argument.
[arguments]<#:configure-flags>[-Dgtk-doc]: New flag.
[-Dintrospection]: Remove flag.
[arguments]<#:phases>['move-doc]: New phase.
['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl, gobject-introspection
and gtk-doc.
[inputs]: Add fontconfig, freetype and libxslt. Remove glib and
libarchive.
[propagated-inputs]: Add glib and libarchive. Remove gcab.
[description]: Rewrite.
[home-page]: Update.
---
 gnu/packages/glib.scm | 98 ++++++++++++++++++++++++++++---------------
 1 file changed, 65 insertions(+), 33 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 12ba6e939b..2ae57d4dbb 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -41,6 +41,7 @@
   #:use-module (gnu packages enlightenment)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
@@ -908,48 +909,79 @@ programming language.  It also contains the utility
   (package
     (name "appstream-glib")
     (version "0.7.17")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://people.freedesktop.org/~hughsient/"
-                                  "appstream-glib/releases/"
-                                  "appstream-glib-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0jg58m1p5xfrh8zkpqhhg00nqs727z5i1qy6sb0a3vyc98fyk9vw"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://people.freedesktop.org/~hughsient/"
+                       "appstream-glib/releases/"
+                       "appstream-glib-" version ".tar.xz"))
+       (sha256
+        (base32 "0jg58m1p5xfrh8zkpqhhg00nqs727z5i1qy6sb0a3vyc98fyk9vw"))))
     (build-system meson-build-system)
-    (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")         ; for glib-compile-resources
-       ("pkg-config" ,pkg-config)))
-    (propagated-inputs
-     `(("gcab" ,gcab) ; for .pc file
-       ("gdk-pixbuf" ,gdk-pixbuf) ; for .pc file
-       ("libuuid" ,util-linux "lib"))) ; for .pc file
-    (inputs
-     `(("glib" ,glib)
-       ("gperf" ,gperf)
-       ("gtk+" ,gtk+)
-       ("json-glib" ,json-glib)
-       ("libarchive" ,libarchive)
-       ("libsoup" ,libsoup)))
+    (outputs '("out" "doc"))
     (arguments
-     `(#:configure-flags
-       (list "-Ddep11=false"
-             "-Dintrospection=false"    ; avoid g-ir-scanner dependency
-             "-Drpm=false"
-             "-Dstemmer=false")
+     `(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas.
+       #:configure-flags
+       (list
+        "-Dgtk-doc=true"
+        "-Ddep11=false"
+        "-Drpm=false"
+        "-Dstemmer=false")
        #:phases
        (modify-phases %standard-phases
+         (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"))
+               (copy-recursively
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
+               (delete-file-recursively
+                (string-append out "/share/gtk-doc"))
+               #t)))
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                           "/xml/dtd/docbook")))
+               (substitute* "docs/api/appstream-glib-docs.xml"
+                 (("http://.*/docbookx\\.dtd")
+                  (string-append xmldoc "/docbookx.dtd")))
+               #t)))
          (add-after 'unpack 'patch-tests
            (lambda _
              (substitute* "libappstream-glib/as-self-test.c"
-               (("g_test_add_func.*as_test_store_local_appdata_func);") ""))
+               (("g_test_add_func.*as_test_store_local_appdata_func);")
+                ""))
              #t)))))
-    (home-page "https://github.com/hughsie/appstream-glib")
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("gperf" ,gperf)
+       ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
+       ("libsoup" ,libsoup)
+       ("libxslt" ,libxslt)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("libarchive" ,libarchive)
+       ("libuuid" ,util-linux "lib")))
     (synopsis "Library for reading and writing AppStream metadata")
-    (description "This library provides objects and helper methods to help
-reading and writing @uref{https://www.freedesktop.org/wiki/Distributions/AppStream,AppStream}
-metadata.")
+    (description "AppStream-Glib provides objects and helper methods to help
+reading and writing AppStream metadata.  It also provides a simple DOM
+implementation that makes it easy to edit nodes and convert to and from the
+standardized XML representation.")
+    (home-page "https://people.freedesktop.org/~hughsient/appstream-glib/")
     (license license:lgpl2.1+)))
 
 (define perl-net-dbus
-- 
2.26.2


[-- Attachment #1.1.4: 0003-gnu-at-spi2-core-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7486 bytes --]

From 9e782e9033a688c8e4725eab8e10dcc6044ef277 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 28 May 2020 10:46:33 -0400
Subject: [PATCH 3/7] gnu: at-spi2-core: Update package definition.

* gnu/packages/gtk.scm (at-spi2-core): Update package definition.
[version]: Update to 2.36.0.
[arguments]<#:glib-or-gtk?>: New argument.
[arguments]<#:phases>['patch-docbook-sgml]: New phase.
[native-inputs]: Add docbook-xml and python-wrapper.
[propagated-inputs]: Add libx11.
[home-page]: Update.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gtk.scm | 144 ++++++++++++++++++++++++-------------------
 1 file changed, 79 insertions(+), 65 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 385e4e97e4..32d62bc120 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -582,72 +582,86 @@ in the GNOME project.")
 
 (define-public at-spi2-core
   (package
-   (name "at-spi2-core")
-   (version "2.34.0")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version)  "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1ihixwhh3c16q6253qj9gf69741rb2pi51822a4rylsfcyywsafn"))))
-   (build-system meson-build-system)
-   (outputs '("out" "doc"))
-   (arguments
-    '(#:configure-flags
-      (list "-Ddocs=true")
-      #:phases
-      (modify-phases %standard-phases
-        (add-after 'unpack 'set-documentation-path
-          (lambda* (#:key outputs #:allow-other-keys)
-            ;; Ensure that the cross-references point to the "doc" output.
-            (substitute* "doc/libatspi/meson.build"
-              (("docpath =.*")
-               (string-append "docpath = '" (assoc-ref outputs "doc") "/share/gtk-doc/html'\n")))
-            #t))
-        (add-before 'install 'prepare-doc-directory
-          (lambda* (#:key outputs #:allow-other-keys)
-            (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))
-            #t))
-        (add-after 'install 'move-documentation
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out"))
-                  (doc (assoc-ref outputs "doc")))
-              (copy-recursively
-               (string-append out "/share/gtk-doc")
-               (string-append doc "/share/gtk-doc"))
-              (delete-file-recursively
-               (string-append out "/share/gtk-doc")))
-            #t))
-        (add-after 'install 'check
-          (lambda _
-            (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
-            ;; Run test-suite under a dbus session.
-            (setenv "XDG_DATA_DIRS"     ; for finding org.xfce.Xfconf.service
-                    (string-append %output "/share"))
-            ;; Don't fail on missing  '/etc/machine-id'.
-            (setenv "DBUS_FATAL_WARNINGS" "0") ;
-            (invoke "dbus-launch" "ninja" "test")))
+    (name "at-spi2-core")
+    (version "2.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0nn0lnf07ayysq8c8irmvc91c2dszn04m5qs6jy60g3y1bg5gnl8"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     '(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas.
+       #:configure-flags
+       (list
+        "-Ddocs=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-documentation-path
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Ensure that the cross-references point to the "doc" output.
+             (substitute* "doc/libatspi/meson.build"
+               (("docpath =.*")
+                (string-append "docpath = '" (assoc-ref outputs "doc")
+                               "/share/gtk-doc/html'\n")))
+             #t))
+         (add-before 'install 'prepare-doc-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p (string-append (assoc-ref outputs "doc")
+                                     "/share"))
+             #t))
+         (add-after 'unpack 'patch-docbook-sgml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                           "/xml/dtd/docbook")))
+               (substitute* "doc/libatspi/libatspi-docs.sgml"
+                 (("http://.*/docbookx\\.dtd")
+                  (string-append xmldoc "/docbookx.dtd")))
+               #t)))
+         (add-after 'install 'move-documentation
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
+               (copy-recursively
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
+               (delete-file-recursively
+                (string-append out "/share/gtk-doc")))
+             #t))
+         (add-after 'install 'check
+           (lambda _
+             (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
+             ;; Run test-suite under a dbus session.
+             (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
+                     (string-append %output "/share"))
+             ;; Don't fail on missing  '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0") ;
+             (invoke "dbus-launch" "ninja" "test")))
          (delete 'check))))
-   (propagated-inputs
-    ;; atspi-2.pc refers to all these.
-    `(("dbus" ,dbus)
-      ("glib" ,glib)
-      ("libxi" ,libxi)
-      ("libxtst" ,libxtst)))
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk-doc" ,gtk-doc)
-      ("glib" ,glib "bin")
-      ("pkg-config" ,pkg-config)))
-   (synopsis "Assistive Technology Service Provider Interface, core components")
-   (description
-    "The Assistive Technology Service Provider Interface, core components,
-is part of the GNOME accessibility project.")
-   (license license:lgpl2.0+)
-   (home-page "https://projects.gnome.org/accessibility/")))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("glib" ,glib "bin")
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
+    (propagated-inputs
+     `(("dbus" ,dbus)
+       ("glib" ,glib)
+       ("libx11" ,libx11)
+       ("libxi" ,libxi)
+       ("libxtst" ,libxtst)))
+    (synopsis "Assistive Technology Service Provider Interface, core components")
+    (description "The Assistive Technology Service Provider Interface,
+core components, is part of the GNOME accessibility project.")
+    (home-page "https://wiki.gnome.org/Accessibility/")
+    (license license:lgpl2.1+)))
 
 (define-public at-spi2-atk
   (package
-- 
2.26.2


[-- Attachment #1.1.5: 0004-gnu-at-spi2-atk-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3716 bytes --]

From d8c0a625b5b85bb41c2b467411529cbbf4fcc95d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 28 May 2020 11:05:17 -0400
Subject: [PATCH 4/7] gnu: at-spi2-atk: Update package definition.

* gnu/packages/gtk.scm (at-spi2-atk): Update package definition.
[version]: Update to 2.34.2.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add gobject-introspection. Remove dbus.
[inputs]: Add dbus and glib.
[home-page]: Update.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gtk.scm | 71 +++++++++++++++++++++++---------------------
 1 file changed, 37 insertions(+), 34 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 32d62bc120..565eb9b525 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -665,40 +665,43 @@ core components, is part of the GNOME accessibility project.")
 
 (define-public at-spi2-atk
   (package
-   (name "at-spi2-atk")
-   (version "2.34.1")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version)  "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "05ncp7s5nddjinffs26mcvpbd63vk1m3cv5y530p3plgfhqgjvbp"))))
-   (build-system meson-build-system)
-   (arguments
-    '(#:phases
-      (modify-phases %standard-phases
-        (replace 'check
-                 ;; Run test-suite under a dbus session.
-                 (lambda _
-                   (setenv "DBUS_FATAL_WARNINGS" "0")
-                   (invoke "dbus-launch" "meson" "test"))))))
-   (propagated-inputs
-    `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
-   (inputs
-    `(("atk" ,atk)))
-   (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ;; For tests.
-      ("dbus" ,dbus)
-      ("libxml2" ,libxml2)))
-   (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
-   (description
-    "The Assistive Technology Service Provider Interface
-is part of the GNOME accessibility project.")
-   (license license:lgpl2.0+)
-   (home-page "https://projects.gnome.org/accessibility/")))
+    (name "at-spi2-atk")
+    (version "2.34.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1w7l4xg00qx3dwhn0zaa64daiv5f073hdvjdxh0mrw7fw37264wh"))))
+    (build-system meson-build-system)
+    (arguments
+     '(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas.
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           ;; Run test-suite under a dbus session.
+           (lambda _
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             (invoke "dbus-launch" "meson" "test"))))))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("libxml2" ,libxml2)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("atk" ,atk)
+       ("dbus" ,dbus)
+       ("glib" ,glib)))
+    (propagated-inputs
+     `(("at-spi2-core" ,at-spi2-core)))
+    (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
+    (description "The Assistive Technology Service Provider Interface is part of
+the GNOME accessibility project.")
+    (home-page "https://wiki.gnome.org/Accessibility/")
+    (license license:lgpl2.1+)))
 
 (define-public gtk+-2
   (package
-- 
2.26.2


[-- Attachment #1.1.6: 0005-gnu-atk-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3081 bytes --]

From 48190760d645bc6143a02dacd2b30ed6dd437e52 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 28 May 2020 11:22:17 -0400
Subject: [PATCH 5/7] gnu: atk: Update package definition.

* gnu/packages/gtk.scm (atk): Update package definition.
[version]: Update to 2.36.0.
[arguments]<#:glib-or-gtk?>: New argument.
[home-page]: Update.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gtk.scm | 51 +++++++++++++++++++++++---------------------
 1 file changed, 27 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 565eb9b525..fb67508b09 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -91,30 +91,33 @@
 
 (define-public atk
   (package
-   (name "atk")
-   (version "2.34.1")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version)  "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1jwp16r6p5z66k4b2v8zlzhyshhwlmyi27ippkrgqr8jsary7w6l"))))
-   (build-system meson-build-system)
-   (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
-   (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("gettext" ,gettext-minimal)
-      ("glib" ,glib "bin")                               ; glib-mkenums, etc.
-      ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
-   (synopsis "GNOME accessibility toolkit")
-   (description
-    "ATK provides the set of accessibility interfaces that are implemented
-by other toolkits and applications.  Using the ATK interfaces, accessibility
-tools have full access to view and control running applications.")
-   (license license:lgpl2.0+)
-   (home-page "https://developer.gnome.org/atk/")))
+    (name "atk")
+    (version "2.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1217cmmykjgkkim0zr1lv5j13733m4w5vipmy4ivw0ll6rz28xpv"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))  ; To wrap binaries and/or compile schemas.
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "GNOME accessibility toolkit")
+    (description "ATK provides the set of accessibility interfaces that are
+implemented by other toolkits and applications.  Using the ATK interfaces,
+accessibility tools have full access to view and control running applications.")
+    (home-page "https://wiki.gnome.org/Accessibility")
+    (license license:lgpl2.1+)))
 
 (define-public cairo
   (package
-- 
2.26.2


[-- Attachment #1.1.7: 0006-gnu-google-brotli-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3572 bytes --]

From cb95f360b20c1214455ae0878e755dd1db4ba315 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 28 May 2020 11:36:23 -0400
Subject: [PATCH 6/7] gnu: google-brotli: Update package definition.

* gnu/packages/compression.scm (google-brotli): Cosmetic changes.
[home-page]: Update.
---
 gnu/packages/compression.scm | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index d21d79962a..b1ac51778e 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1814,9 +1814,10 @@ non-Windows systems without running the actual installer using wine.")
     (source
      (origin
        (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/google/brotli.git")
-             (commit (string-append "v" version))))
+       (uri
+        (git-reference
+         (url "https://github.com/google/brotli.git")
+         (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1811b55wdfg4kbsjcgh1kc938g118jpvif97ilgrmbls25dfpvvw"))))
@@ -1828,7 +1829,8 @@ non-Windows systems without running the actual installer using wine.")
            ;; The build tools put a 'static' suffix on the static libraries, but
            ;; other applications don't know how to find these.
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((lib (string-append (assoc-ref %outputs "out") "/lib/")))
+             (let* ((lib (string-append (assoc-ref %outputs "out")
+                                        "/lib/")))
                (rename-file (string-append lib "libbrotlicommon-static.a")
                             (string-append lib "libbrotlicommon.a"))
                (rename-file (string-append lib "libbrotlidec-static.a")
@@ -1837,19 +1839,19 @@ non-Windows systems without running the actual installer using wine.")
                             (string-append lib "libbrotlienc.a"))
                #t))))
        #:configure-flags
-       (list ;; Defaults to "lib64" on 64-bit archs.
-             (string-append "-DCMAKE_INSTALL_LIBDIR="
-                            (assoc-ref %outputs "out") "/lib"))))
-    (home-page "https://github.com/google/brotli")
+       (list
+        ;; Defaults to "lib64" on 64-bit archs.
+        (string-append "-DCMAKE_INSTALL_LIBDIR=" (assoc-ref %outputs "out")
+                       "/lib"))))
     (synopsis "General-purpose lossless compression")
-    (description "This package provides the reference implementation of Brotli,
-a generic-purpose lossless compression algorithm that compresses data using a
+    (description "Google-Brotli is a reference implementation of Brotli, a
+generic-purpose lossless compression algorithm that compresses data using a
 combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd
 order context modeling, with a compression ratio comparable to the best
 currently available general-purpose compression methods.  It is similar in speed
-with @code{deflate} but offers more dense compression.
-
-The specification of the Brotli Compressed Data Format is defined in RFC 7932.")
+with @code{deflate} but offers more dense compression.  The specification of the
+Brotli Compressed Data Format is defined in RFC 7932.")
+    (home-page "https://brotli.org/")
     (license license:expat)))
 
 (define-public brotli
-- 
2.26.2


[-- Attachment #1.1.8: 0007-gnu-font-cantarell-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2412 bytes --]

From be6bf3afea3211b0db1ad54091b584e72f7f2516 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 28 May 2020 11:52:12 -0400
Subject: [PATCH 7/7] gnu: font-cantarell: Update package definition.

* gnu/packages/fonts.scm (font-cantarell): Rename package.
[name]: Change from font-abattis-cantarell to font-cantarell.
* gnu/packages/fonts.scm (font-abattis-cantarell): New variable for
deprecated-package name font-abattis-cantarell.
---
 gnu/packages/fonts.scm | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 9284609373..bb39da1f23 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -195,25 +195,30 @@ itself."))))
 
 (define-public font-cantarell
   (package
-    (name "font-abattis-cantarell")
+    (name "font-cantarell")
     (version "0.201")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/cantarell-fonts/"
-                                  (version-major+minor version)
-                                  "/cantarell-fonts-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0qwqmkczqy09fdj8l11nr841ks0dwsydqg55qyms12m4yvjn87xn"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/cantarell-fonts/"
+                       (version-major+minor version)
+                       "/cantarell-fonts-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0qwqmkczqy09fdj8l11nr841ks0dwsydqg55qyms12m4yvjn87xn"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)))   ; for msgfmt
-    (home-page "https://wiki.gnome.org/Projects/CantarellFonts")
+     `(("gettext" ,gettext-minimal)))
     (synopsis "Cantarell sans-serif typeface")
     (description "The Cantarell font family is a contemporary Humanist
 sans-serif designed for on-screen reading.  It is used by GNOME@tie{}3.")
+    (home-page "https://wiki.gnome.org/Projects/CantarellFonts")
     (license license:silofl1.1)))
 
+(define-public font-abattis-cantarell
+  (deprecated-package "font-abattis-cantarell" font-cantarell))
+
 (define-public font-lato
   (package
     (name "font-lato")
-- 
2.26.2


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-25 20:08       ` Danny Milosavljevic
@ 2020-05-28 17:11         ` Raghav Gururajan
  0 siblings, 0 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-28 17:11 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 197 bytes --]

Hi Danny!

> Also, gnome-photos doesn't set PYTHONPATH, so it won't be able to use pygobject,
> right?

Ah, thanks for the catch. I will fix it when I get to that package.

Regards,
RG.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-28 17:10       ` Raghav Gururajan
@ 2020-05-28 18:23         ` Danny Milosavljevic
  2020-05-29 21:01           ` Raghav Gururajan
  2020-05-29 20:54         ` Raghav Gururajan
  1 sibling, 1 reply; 49+ messages in thread
From: Danny Milosavljevic @ 2020-05-28 18:23 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 842 bytes --]

Hi RG,

thanks for the patches!

In my opinion, in patch 1 you are goading Guix to keep a reference to
.../bin/true .

coreutils is an implicit build input anyway, so no need to do that stuff.

And if you do it, it looks as if you want it to keep a reference to coreutils
at runtime (it doesn't, but just saying).  It looks more complicated, too.

Please if you update the actual package from upstream, mention that fact in
the commit log.  If the actual upstream package changes, that's a serious
change, right?  People might wanna know where that happens.

In patch 2 could have used rename-file instead of (copy; delete).

What use is having a thing both propagated-input and regular input?
(genuinely asking)

Pushed to wip-desktop with minor changes (almost none of the above except
for the (copy; delete) thing).

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-28 17:10       ` Raghav Gururajan
  2020-05-28 18:23         ` Danny Milosavljevic
@ 2020-05-29 20:54         ` Raghav Gururajan
  2020-05-29 21:08           ` Raghav Gururajan
  1 sibling, 1 reply; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-29 20:54 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 62 bytes --]

@Danny

Please find the attached patches.

Regards,
RG.

[-- Attachment #1.1.2: 0001-gnu-clutter-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6771 bytes --]

From daaf04cbc2a1c9ad894fbe788e4089593d287c84 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 29 May 2020 05:33:21 -0400
Subject: [PATCH 1/4] gnu: clutter: Update package definition.

* gnu/packages/gnome.scm (clutter) [version]: Update to 1.26.4.
[build-system]: Change from gnu to meson.
[arguments]<#:glib-or-gtk?>: New argument.
<#:tests?>: Remove argument.
<#:configure-flags>[-Dwayland_compositor]: New flag.
[--with-html-dir]: Remove flag.
<#:phases>['patch-docbook-xml]: New phase.
['patch-docbook-examples]: New phase.
['move-doc]: New phase.
['pre-check]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl, gtk-doc, perl, ruby and
xorg-server.
[inputs]: Remove eudev and libxkbcommon.
[propagated-inputs]: Add gdk-pixbuf+svg, eudev, libgudev, libinput,
libx11, libxi, libxkbcommon, pango and wayland. Remove xinput.
[home-page]: Change from http to https.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gnome.scm | 108 ++++++++++++++++++++++++++++-------------
 1 file changed, 74 insertions(+), 34 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index df29ba0000..6608f8228b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4779,57 +4779,97 @@ without stepping on each others toes.")
 (define-public clutter
   (package
     (name "clutter")
-    (version "1.26.2")
+    (version "1.26.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
+        (base32 "1rn4cd1an6a9dfda884aqpcwcgq8dgydpqvb19nmagw4b70zlj4b"))))
     ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
     ;; to clutter, corresponding changes may be appropriate in mutter as well.
-    (build-system gnu-build-system)
-    (outputs '("out"
-               "doc"))                            ;9 MiB of gtk-doc HTML pages
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas.
+       #:configure-flags
+       (list
+        "-Dwayland_compositor=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                           "/xml/dtd/docbook")))
+               (substitute* "doc/reference/clutter-docs.xml"
+                 (("http://.*/docbookx\\.dtd")
+                  (string-append xmldoc "/docbookx.dtd")))
+               #t)))
+         (add-after 'unpack 'patch-cookbook-examples
+           (lambda _
+             (substitute* "doc/cookbook/meson.build"
+               (("subdir\\('examples'\\)")
+                ""))
+             #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)))
+         (add-before 'check 'pre-check
+           (lambda* (#:key tests? inputs #:allow-other-keys)
+             (if tests?
+                 (begin
+                   ;; The test suite requires a running X server.
+                   (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
+                                   (assoc-ref inputs "xorg-server")))
+                   (setenv "DISPLAY" ":1")
+                   #t)
+                 (format #t "test suite not run~%"))
+             #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")     ; for glib-genmarshal
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("libxslt" ,libxslt)
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("xsltproc" ,libxslt)))
+       ("ruby" ,ruby)
+       ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
-     `(("cogl" ,cogl)
+     `(("atk" ,atk)
+       ("cogl" ,cogl)
        ("cairo" ,cairo)
-       ("atk" ,atk)
+       ("eudev" ,eudev)
+       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
        ("gtk+" ,gtk+)
        ("json-glib" ,json-glib)
-       ("glib" ,glib)
+       ("libgudev" ,libgudev)
+       ("libinput" ,libinput)
+       ("libx11" ,libx11)
        ("libxcomposite" ,libxcomposite)
        ("libxdamage" ,libxdamage)
        ("libxext" ,libxext)
-       ("xinput" ,xinput)))
-    (inputs
-     `(("libxkbcommon" ,libxkbcommon)
-       ("udev" ,eudev)))
-    (arguments
-     `(#:configure-flags (list "--enable-x11-backend=yes"
-
-                               ;; This produces share/doc/{clutter,cally}.
-                               (string-append "--with-html-dir="
-                                              (assoc-ref %outputs "doc")
-                                              "/share/doc"))
-       ;; XXX FIXME: Get test suite working.  It would probably fail in the
-       ;; same way the cogl tests fail, since clutter is based on cogl.
-       #:tests? #f))
-    (home-page "http://www.clutter-project.org")
+       ("libxi" ,libxi)
+       ("libxkbcommon" ,libxkbcommon)
+       ("pango" ,pango)
+       ("wayland" ,wayland)))
     (synopsis "OpenGL-based interactive canvas library")
-    (description
-     "Clutter is an OpenGL-based interactive canvas library, designed for
-creating fast, mainly 2D single window applications such as media box UIs,
-presentations, kiosk style applications and so on.")
-    (license license:lgpl2.0+)))
+    (description "Clutter is an OpenGL-based interactive canvas library,
+designed for creating fast, mainly 2D single window applications such as media
+box UIs, presentations, kiosk style applications and so on.")
+    (home-page "https://www.clutter-project.org")
+    (license license:lgpl2.1+)))
 
 (define-public clutter-gtk
   (package
-- 
2.26.2


[-- Attachment #1.1.3: 0002-gnu-clutter-gtk-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4161 bytes --]

From d9ea6caf006819bc89b778a071b0ca46ea4b6d5e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 29 May 2020 10:01:08 -0400
Subject: [PATCH 2/4] gnu: clutter-gtk: Update package definition.

* gnu/packages/gnome.scm (clutter-gtk): Update package definition.
[build-system]: Change from gnu to meson.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Denable_docs]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gettext and gtk-doc.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Change from http to https.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gnome.scm | 57 +++++++++++++++++++++++++++++++-----------
 1 file changed, 43 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6608f8228b..d2454901e2 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4878,27 +4878,56 @@ box UIs, presentations, kiosk style applications and so on.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
        (sha256
         (base32
          "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas.
+       #:configure-flags
+       (list
+        "-Denable_docs=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                           "/xml/dtd/docbook")))
+               (substitute* "doc/clutter-gtk-1.0-docs.xml"
+                 (("http://.*/docbookx\\.dtd")
+                  (string-append xmldoc "/docbookx.dtd")))
+               #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
-     `(("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)))
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     ;; clutter-gtk.pc refers to all these.
      `(("clutter" ,clutter)
        ("gtk+" ,gtk+)))
-    (home-page "http://www.clutter-project.org")
-    (synopsis "OpenGL-based interactive canvas library GTK+ widget")
-    (description
-     "Clutter is an OpenGL-based interactive canvas library, designed for
-creating fast, mainly 2D single window applications such as media box UIs,
-presentations, kiosk style applications and so on.")
-    (license license:lgpl2.0+)))
+    (synopsis "GTK+ integration library for Clutter")
+    (description "Clutter-GTK is a library providing facilities to integrate
+Clutter into GTK+ applications and vice versa.  It provides a GTK+ widget,
+GtkClutterEmbed, for embedding the a Clutter stage into any GtkContainer; and
+GtkClutterActor, a Clutter actor for embedding any GtkWidget inside a Clutter
+stage.")
+    (home-page "https://www.clutter-project.org")
+    (license license:lgpl2.1+)))
 
 (define-public clutter-gst
   (package
-- 
2.26.2


[-- Attachment #1.1.4: 0003-gnu-clutter-gst-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4216 bytes --]

From f8b35fa9f6e21a2d04f3449762fe9fd5a8fbc180 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 29 May 2020 10:51:27 -0400
Subject: [PATCH 3/4] gnu: clutter-gst: Update package definition.

* gnu/packages/gnome.scm (clutter-gst): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output 'doc'.
[arguments]<#:configure-flags>[--enable-gtk-doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gtk-doc and python-wrapper.
[propagated-inputs]: Add cogl and glib.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Change from http to https.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gnome.scm | 58 +++++++++++++++++++++++++++++++-----------
 1 file changed, 43 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d2454901e2..54e1c940c6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4936,28 +4936,56 @@ stage.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/clutter-gst/"
-                           (version-major+minor version) "/"
-                           "clutter-gst-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/clutter-gst/"
+                       (version-major+minor version) "/"
+                       "clutter-gst-" version ".tar.xz"))
        (sha256
         (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                           "/xml/dtd/docbook")))
+               (substitute* "doc/reference/clutter-gst-docs.xml"
+                 (("http://.*/docbookx\\.dtd")
+                  (string-append xmldoc "/docbookx.dtd")))
+               #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
-     `(("glib:bin" ,glib "bin")         ; for glib-mkenums
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)))
-    (inputs
+       ("python-wrapper" ,python-wrapper)))
+    (propagated-inputs
      `(("clutter" ,clutter)
+       ("cogl" ,cogl)
+       ("glib" ,glib)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)))
-    (home-page "http://www.clutter-project.org")
-    (synopsis "Integration library for using GStreamer with Clutter")
-    (description
-     "Clutter-Gst is an integration library for using GStreamer with Clutter.
-It provides a GStreamer sink to upload frames to GL and an actor that
-implements the ClutterGstPlayer interface using playbin.  Clutter is an
-OpenGL-based interactive canvas library.")
-    (license license:lgpl2.0+)))
+    (synopsis "GStreamer integration library for Clutter")
+    (description "Clutter-Gst is an integration library for using GStreamer with
+Clutter.  It provides a GStreamer sink to upload frames to GL and an actor that
+implements the ClutterGstPlayer interface using playbin.")
+    (home-page "https://www.clutter-project.org")
+    (license license:lgpl2.1+)))
 
 (define-public libchamplain
   (package
-- 
2.26.2


[-- Attachment #1.1.5: 0004-gnu-cogl-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 8045 bytes --]

From 475694aadd6cf2b6d1c4cbb058784e79ee9fb8eb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 29 May 2020 16:43:44 -0400
Subject: [PATCH 4/4] gnu: cogl: Update package definition.

* gnu/packages/gnome.scm (cogl): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output 'doc'.
[arguments]<#:configure-flags>[--enable-sdl2]: New flag.
[--enable-gtk-doc]: New flag.
[--with-html-dir]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, gettext, gtk-doc and  python-wrapper.
[inputs]: Add libdrm and sdl2. Remove mesa, cairo, pango, gstreamer,
gst-plugins-base and wayland.
[propagated-inputs]: Add cairo, gstreamer, gst-plugins-base, mesa
and wayland.
[synopsis]: Modify.
---
 gnu/packages/gnome.scm | 124 +++++++++++++++++++++++++----------------
 1 file changed, 76 insertions(+), 48 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 54e1c940c6..93b3d64052 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -161,6 +161,7 @@
   #:use-module (gnu packages rust)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages scanner)
+  #:use-module (gnu packages sdl)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages slang)
   #:use-module (gnu packages speech)
@@ -4711,70 +4712,97 @@ throughout GNOME for API documentation).")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/cogl/"
-                           (version-major+minor version) "/"
-                           "cogl-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/cogl/"
+                       (version-major+minor version) "/"
+                       "cogl-" version ".tar.xz"))
        (sha256
         (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
     ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
     ;; cogl, corresponding changes may be appropriate in mutter as well.
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:disallowed-references (,xorg-server-for-tests)
+       #:configure-flags
+       (list
+        "--enable-cogl-gst"
+        "--enable-sdl2"
+        "--enable-wayland-egl-platform"
+        "--enable-wayland-egl-server"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
+        (string-append "--with-gl-libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGL.so"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                           "/xml/dtd/docbook")))
+               (with-directory-excursion "doc/reference"
+                 (substitute*
+                     '("cogl/cogl-docs.xml.in"
+                       "cogl/blend-strings.xml"
+                       "cogl-gst/cogl-gst-docs.xml.in"
+                       "cogl-2.0-experimental/cogl-2.0-experimental-docs.xml.in"
+                       "cogl-2.0-experimental/blend-strings.xml")
+                   (("http://.*/docbookx\\.dtd")
+                    (string-append xmldoc "/docbookx.dtd"))))
+               #t)))
+         (add-before 'check 'start-xorg-server
+           (lambda* (#:key tests? inputs #:allow-other-keys)
+             (if tests?
+                 (begin
+                   ;; The test suite requires a running X server.
+                   (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
+                                   (assoc-ref inputs "xorg-server")))
+                   (setenv "DISPLAY" ":1")
+                   #t)
+                 (format #t "test suite not run~%"))
+             #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")     ; for glib-mkenums
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("xorg-server" ,xorg-server-for-tests)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
+    (inputs
+     `(("libdrm" ,libdrm)
+       ("sdl2" ,sdl2)))
     (propagated-inputs
-     `(("glib" ,glib)
-       ("gdk-pixbuf" ,gdk-pixbuf)
+     `(("cairo" ,cairo)
+       ("glib" ,glib)
+       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
        ("libx11" ,libx11)
        ("libxext" ,libxext)
        ("libxfixes" ,libxfixes)
        ("libxdamage" ,libxdamage)
        ("libxcomposite" ,libxcomposite)
-       ("libxrandr" ,libxrandr)))
-    (inputs
-     `(("mesa" ,mesa)
-       ("cairo" ,cairo)
+       ("libxrandr" ,libxrandr)
+       ("mesa" ,mesa)
        ("pango" ,pango)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
        ("wayland" ,wayland)))
-    (arguments
-     `(#:disallowed-references (,xorg-server-for-tests)
-       #:configure-flags (list "--enable-cogl-gst"
-                               "--enable-wayland-egl-platform"
-                               "--enable-wayland-egl-server"
-
-                               ;; Arrange to pass an absolute file name to
-                               ;; dlopen for libGL.so.
-                               (string-append "--with-gl-libname="
-                                              (assoc-ref %build-inputs "mesa")
-                                              "/lib/libGL.so"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'start-xorg-server
-                     (lambda* (#:key tests? inputs #:allow-other-keys)
-                       (if tests?
-                           (begin
-                             ;; The test suite requires a running X server.
-                             (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
-                                             (assoc-ref inputs "xorg-server")))
-                             (setenv "DISPLAY" ":1")
-                             #t)
-                           (format #t "test suite not run~%"))
-                       #t)))))
+    (synopsis "Hardware accelerated 3D graphics API")
+    (description "Cogl is a small library for using 3D graphics hardware for
+rendering.  The API departs from the flat state machine style of OpenGL and is
+designed to make it easy to write orthogonal components that can render without
+stepping on each others toes.")
     (home-page "https://www.cogl3d.org")
-    (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
-    (description
-     "Cogl is a small library for using 3D graphics hardware to draw pretty
-pictures.  The API departs from the flat state machine style of OpenGL and is
-designed to make it easy to write orthogonal components that can render
-without stepping on each others toes.")
-    (license (list license:expat       ; most of the code
-                   license:bsd-3       ; cogl/cogl-point-in-poly.c
-                   license:sgifreeb2.0 ; cogl-path/tesselator/
-                   license:asl2.0))))  ; examples/android/
+    (license
+     (list
+      license:expat                     ; most of the code
+      license:bsd-3                     ; cogl/cogl-point-in-poly.c
+      license:sgifreeb2.0               ; cogl-path/tesselator/
+      license:asl2.0))))  ; examples/android/
 
 (define-public clutter
   (package
-- 
2.26.2


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-28 18:23         ` Danny Milosavljevic
@ 2020-05-29 21:01           ` Raghav Gururajan
  2020-05-29 23:02             ` Danny Milosavljevic
  0 siblings, 1 reply; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-29 21:01 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 1340 bytes --]

Hi Danny!

> thanks for the patches!

:-)

> In my opinion, in patch 1 you are goading Guix to keep a reference to
> .../bin/true .
> 
> coreutils is an implicit build input anyway, so no need to do that stuff.
> 
> And if you do it, it looks as if you want it to keep a reference to coreutils
> at runtime (it doesn't, but just saying).  It looks more complicated, too.

Thanks for the tip. I will keep this mind moving forward.

> Please if you update the actual package from upstream, mention that fact in
> the commit log.  If the actual upstream package changes, that's a serious
> change, right?  People might wanna know where that happens.

Sure! I usually mention the version update as a part of * gnu/packages
[...]. Should that be enough or do I also mention as a part of gnu: [...]?

> In patch 2 could have used rename-file instead of (copy; delete).

Thanks for the tip. I will keep this mind moving forward.

> What use is having a thing both propagated-input and regular input?
> (genuinely asking)

IIRC, propagated-inputs are installed along-side the package, whereas,
inputs are not. But I do not see any use of mentioning something in both.

> Pushed to wip-desktop with minor changes (almost none of the above except
> for the (copy; delete) thing).

Thank you!

Regards,
RG.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-29 20:54         ` Raghav Gururajan
@ 2020-05-29 21:08           ` Raghav Gururajan
  2020-05-30 20:30             ` Raghav Gururajan
  0 siblings, 1 reply; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-29 21:08 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 157 bytes --]

@Danny

> Please find the attached patches.

Please ignore the cogl patch in previous email and use the one attached
with this email.

Regards,
RG.

[-- Attachment #1.1.2: 0004-gnu-cogl-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 8015 bytes --]

From a3639116f5912fb957041c844050f1e4f3adeb45 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 29 May 2020 17:05:50 -0400
Subject: [PATCH 4/4] gnu: cogl: Update package definition.

* gnu/packages/gnome.scm (cogl): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output 'doc'.
[arguments]<#:configure-flags>[--enable-gtk-doc]: New flag.
[--with-html-dir]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, gettext, gtk-doc and  python-wrapper.
[inputs]: Add libdrm and sdl2. Remove mesa, cairo, pango, gstreamer,
gst-plugins-base and wayland.
[propagated-inputs]: Add cairo, gstreamer, gst-plugins-base, mesa
and wayland.
[synopsis]: Modify.
---
 gnu/packages/gnome.scm | 124 +++++++++++++++++++++++++----------------
 1 file changed, 75 insertions(+), 49 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 54e1c940c6..a741a6a284 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -161,6 +161,7 @@
   #:use-module (gnu packages rust)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages scanner)
+  #:use-module (gnu packages sdl)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages slang)
   #:use-module (gnu packages speech)
@@ -4711,70 +4712,95 @@ throughout GNOME for API documentation).")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/cogl/"
-                           (version-major+minor version) "/"
-                           "cogl-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/cogl/"
+                       (version-major+minor version) "/"
+                       "cogl-" version ".tar.xz"))
        (sha256
         (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
     ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
     ;; cogl, corresponding changes may be appropriate in mutter as well.
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:disallowed-references (,xorg-server-for-tests)
+       #:configure-flags
+       (list
+        "--enable-cogl-gst"
+        "--enable-wayland-egl-platform"
+        "--enable-wayland-egl-server"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
+        (string-append "--with-gl-libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGL.so"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                           "/xml/dtd/docbook")))
+               (with-directory-excursion "doc/reference"
+                 (substitute*
+                     '("cogl/cogl-docs.xml.in"
+                       "cogl/blend-strings.xml"
+                       "cogl-gst/cogl-gst-docs.xml.in"
+                       "cogl-2.0-experimental/cogl-2.0-experimental-docs.xml.in"
+                       "cogl-2.0-experimental/blend-strings.xml")
+                   (("http://.*/docbookx\\.dtd")
+                    (string-append xmldoc "/docbookx.dtd"))))
+               #t)))
+         (add-before 'check 'start-xorg-server
+           (lambda* (#:key tests? inputs #:allow-other-keys)
+             (if tests?
+                 (begin
+                   ;; The test suite requires a running X server.
+                   (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
+                                   (assoc-ref inputs "xorg-server")))
+                   (setenv "DISPLAY" ":1")
+                   #t)
+                 (format #t "test suite not run~%"))
+             #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")     ; for glib-mkenums
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("xorg-server" ,xorg-server-for-tests)
-       ("pkg-config" ,pkg-config)))
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("libdrm" ,libdrm)))
     (propagated-inputs
-     `(("glib" ,glib)
-       ("gdk-pixbuf" ,gdk-pixbuf)
+     `(("cairo" ,cairo)
+       ("glib" ,glib)
+       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
        ("libx11" ,libx11)
        ("libxext" ,libxext)
        ("libxfixes" ,libxfixes)
        ("libxdamage" ,libxdamage)
        ("libxcomposite" ,libxcomposite)
-       ("libxrandr" ,libxrandr)))
-    (inputs
-     `(("mesa" ,mesa)
-       ("cairo" ,cairo)
+       ("libxrandr" ,libxrandr)
+       ("mesa" ,mesa)
        ("pango" ,pango)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
        ("wayland" ,wayland)))
-    (arguments
-     `(#:disallowed-references (,xorg-server-for-tests)
-       #:configure-flags (list "--enable-cogl-gst"
-                               "--enable-wayland-egl-platform"
-                               "--enable-wayland-egl-server"
-
-                               ;; Arrange to pass an absolute file name to
-                               ;; dlopen for libGL.so.
-                               (string-append "--with-gl-libname="
-                                              (assoc-ref %build-inputs "mesa")
-                                              "/lib/libGL.so"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'start-xorg-server
-                     (lambda* (#:key tests? inputs #:allow-other-keys)
-                       (if tests?
-                           (begin
-                             ;; The test suite requires a running X server.
-                             (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
-                                             (assoc-ref inputs "xorg-server")))
-                             (setenv "DISPLAY" ":1")
-                             #t)
-                           (format #t "test suite not run~%"))
-                       #t)))))
+    (synopsis "Hardware accelerated 3D graphics API")
+    (description "Cogl is a small library for using 3D graphics hardware for
+rendering.  The API departs from the flat state machine style of OpenGL and is
+designed to make it easy to write orthogonal components that can render without
+stepping on each others toes.")
     (home-page "https://www.cogl3d.org")
-    (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
-    (description
-     "Cogl is a small library for using 3D graphics hardware to draw pretty
-pictures.  The API departs from the flat state machine style of OpenGL and is
-designed to make it easy to write orthogonal components that can render
-without stepping on each others toes.")
-    (license (list license:expat       ; most of the code
-                   license:bsd-3       ; cogl/cogl-point-in-poly.c
-                   license:sgifreeb2.0 ; cogl-path/tesselator/
-                   license:asl2.0))))  ; examples/android/
+    (license
+     (list
+      license:expat                     ; most of the code
+      license:bsd-3                     ; cogl/cogl-point-in-poly.c
+      license:sgifreeb2.0               ; cogl-path/tesselator/
+      license:asl2.0))))  ; examples/android/
 
 (define-public clutter
   (package
-- 
2.26.2


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-29 21:01           ` Raghav Gururajan
@ 2020-05-29 23:02             ` Danny Milosavljevic
  0 siblings, 0 replies; 49+ messages in thread
From: Danny Milosavljevic @ 2020-05-29 23:02 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 917 bytes --]

Hi Raghav,

On Fri, 29 May 2020 17:01:26 -0400
Raghav Gururajan <raghavgururajan@disroot.org> wrote:

> > Please if you update the actual package from upstream, mention that fact in
> > the commit log.  If the actual upstream package changes, that's a serious
> > change, right?  People might wanna know where that happens.  
> 
> Sure! I usually mention the version update as a part of * gnu/packages
> [...]. Should that be enough or do I also mention as a part of gnu: [...]?

Also right in front, like "gnu: xxx: Update to 1.2.3.".  For better or for
worse that's what the majority of our git log looks--nobody does
"[version]: Update to 1.2.3.", although it would be technically correct.

> IIRC, propagated-inputs are installed along-side the package, whereas,
> inputs are not. But I do not see any use of mentioning something in both.

I think you did that in one of the packages, though.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-29 21:08           ` Raghav Gururajan
@ 2020-05-30 20:30             ` Raghav Gururajan
  2020-05-31 13:31               ` Danny Milosavljevic
  2020-06-04 18:31               ` Raghav Gururajan
  0 siblings, 2 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-05-30 20:30 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 58 bytes --]

@Danny

Please find attached patches.

Regards,
RG.

[-- Attachment #1.1.2: 0005-gnu-dconf-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4060 bytes --]

From ab08598eb7183cae716b86cee5107646a555dc9a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 29 May 2020 18:29:17 -0400
Subject: [PATCH 05/10] gnu: dconf: Update package definition.

* gnu/packages/gnome.scm (dconf) [version]: Update to 0.36.0.
[patches]: Remove dconf-meson-0.52.patch.
[outputs]: New output 'doc'.
[arguments]<#:phases>['patch-timeout-tests]: New phase.
['move-doc]: New phase.
[native-inputs]: Add python-wrapper.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 69 +++++++++++++++++++++++++++---------------
 1 file changed, 44 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a741a6a284..d935eda499 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3651,44 +3651,63 @@ and RDP protocols.")
 (define-public dconf
   (package
     (name "dconf")
-    (version "0.34.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnome/sources/" name "/"
-                    (version-major+minor version) "/"
-                    name "-" version ".tar.xz"))
-              (patches (search-patches "dconf-meson-0.52.patch"))
-              (sha256
-               (base32
-                "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
+    (version "0.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://gnome/sources/" name "/"
+         (version-major+minor version) "/"
+         name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
     (build-system meson-build-system)
-    (propagated-inputs
-     ;; In Requires of dconf.pc.
-     `(("glib" ,glib)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("dbus" ,dbus)))
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:configure-flags
+       (list
+        "-Dgtk_doc=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-timeout-tests
+           (lambda _
+             (substitute* "tests/meson.build"
+               (("^  \\['engine', .*$")
+                ""))
+             #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
      `(("bash-completion" ,bash-completion)
-       ("libxslt" ,libxslt)                     ;for xsltproc
-       ("libxml2" ,libxml2)                     ;for XML_CATALOG_FILES
        ("docbook-xml" ,docbook-xml-4.2)
        ("docbook-xsl" ,docbook-xsl)
        ("glib:bin" ,glib "bin")
        ("gtk-doc" ,gtk-doc)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
        ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)
        ("vala" ,vala)))
-    (arguments
-     `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
-                   ; or /etc/machine-id.
-       #:glib-or-gtk? #t
-       #:configure-flags '("-Denable-gtk-doc=true")))
-    (home-page "https://developer.gnome.org/dconf/")
+    (inputs
+     `(("dbus" ,dbus)
+       ("gtk+" ,gtk+)))
+    (propagated-inputs
+     `(("glib" ,glib)))
     (synopsis "Low-level GNOME configuration system")
     (description "Dconf is a low-level configuration system.  Its main purpose
 is to provide a backend to GSettings on platforms that don't already have
 configuration storage systems.")
+    (home-page "https://wiki.gnome.org/Projects/dconf")
     (license license:lgpl2.1+)))
 
 (define-public json-glib
-- 
2.26.2


[-- Attachment #1.1.3: 0006-gnu-catch-framework2-Update-to-2.3.0.patch --]
[-- Type: text/x-patch, Size: 1378 bytes --]

From 8312e0fd2c607939a813bbdcdcf515fe42b54822 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 30 May 2020 14:41:17 -0400
Subject: [PATCH 06/10] gnu: catch-framework2: Update to 2.3.0.

* gnu/packages/check.scm (catch-framework2) [version]: Update to
2.3.0.
[source]<origin>[sha256]: Modify base32 hash.
---
 gnu/packages/check.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 7d7fd189bc..4e50bf70d5 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -236,7 +236,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
 (define-public catch-framework2
   (package
     (name "catch2")
-    (version "2.1.2")
+    (version "2.3.0")
     (home-page "https://github.com/catchorg/Catch2")
     (source (origin
               (method git-fetch)
@@ -246,7 +246,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "14vcckqmbydjsg40ngi6iv999zimysh2l7fmrqj1d7xl990qz233"))))
+                "1akcgx3a3f3ql69lsaf1jdp8br2irm50mkv5zv3v3ri055ln9bc8"))))
     (build-system cmake-build-system)
     (inputs
      `(("python" ,python-wrapper)))
-- 
2.26.2


[-- Attachment #1.1.4: 0007-gnu-Add-ronn.patch --]
[-- Type: text/x-patch, Size: 1782 bytes --]

From 085bd32a75691967e7e64eaec260b8765a5217d6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 30 May 2020 15:05:13 -0400
Subject: [PATCH 07/10] gnu: Add ronn.

* gnu/packages/man.scm (ronn): New variable.
---
 gnu/packages/man.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index 4dfac4f87b..c2ad98aa8f 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -30,6 +30,7 @@
   #:use-module (guix download)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system ruby)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gawk)
@@ -39,6 +40,30 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages linux))
 
+(define-public ronn
+  (package
+    (name "ronn")
+    (version "0.7.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/rtomayko/ronn.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0fkniz7j1jp8v3i05m6hks3nsh6rzvjfi0ichpi7h4gwk5byxb94"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:tests? #f))                   ; Library hpricot not available
+    (synopsis "Manual authoring tool")
+    (description "Ronn builds manuals.  It converts simple, human readable
+textfiles to roff for terminal display, and also to HTML for the web.")
+    (home-page "https://rtomayko.github.io/ronn/")
+    (license expat)))
+
 (define-public libpipeline
   (package
     (name "libpipeline")
-- 
2.26.2


[-- Attachment #1.1.5: 0008-gnu-Add-nuspell.patch --]
[-- Type: text/x-patch, Size: 2599 bytes --]

From 563281dd116c08385d6bd4ada159a2896ffabeb3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 30 May 2020 15:28:31 -0400
Subject: [PATCH 08/10] gnu: Add nuspell.

* gnu/packages/enchant.scm (nuspell): New variable.
---
 gnu/packages/enchant.scm | 43 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm
index ff4fc03363..4f582f1bff 100644
--- a/gnu/packages/enchant.scm
+++ b/gnu/packages/enchant.scm
@@ -22,17 +22,60 @@
 (define-module (gnu packages enchant)
   #:use-module (gnu packages)
   #:use-module (gnu packages aspell)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages libreoffice)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages version-control)
   #:use-module (guix packages)
+  #:use-module (guix git-download)
   #:use-module (guix download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix licenses)
   #:use-module (srfi srfi-1))
 
+(define-public nuspell
+  (package
+    (name "nuspell")
+    (version "3.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nuspell/nuspell.git")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "18zz3rdzlb3knzsd98vw8cfyb3iq0ilipnlz7rz10zgb5ail73s2"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("catch" ,catch-framework2)
+       ("git" ,git-minimal)
+       ("perl" ,perl)
+       ;;FIX-ME: Building with ronn fails.
+       ;;("ronn" ,ronn)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("boost" ,boost)))
+    (propagated-inputs
+     `(("icu4c" ,icu4c)))
+    (synopsis "Fast and safe spellchecking C++ library")
+    (description "Nuspell is a fast and safe spelling checker software
+program.  It is designed for languages with rich morphology and complex word
+compounding.  Nuspell is written in modern C++ and it supports Hunspell
+dictionaries.")
+    (home-page "https://nuspell.github.io/")
+    (license lgpl3+)))
+
 (define-public enchant
   (package
     (name "enchant")
-- 
2.26.2


[-- Attachment #1.1.6: 0009-gnu-enchant-1.6-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3000 bytes --]

From 90936e9bb7e7c033bf8cbe7013da3771878c509e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 30 May 2020 15:51:17 -0400
Subject: [PATCH 09/10] gnu: enchant-1.6: Update package definition.

* gnu/packages/enchant.scm (enchant-1.6): Remove inheritance from
enchant.
[build-system]: Change from gnu to glib-or-gtk.
[arguments]: Remove.
[inputs]: Add hunspell and nuspell.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/enchant.scm | 40 +++++++++++++++++++++++++++++-----------
 1 file changed, 29 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm
index 4f582f1bff..64eaa37cff 100644
--- a/gnu/packages/enchant.scm
+++ b/gnu/packages/enchant.scm
@@ -35,6 +35,7 @@
   #:use-module (guix git-download)
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix licenses)
@@ -120,18 +121,35 @@ working\".")
 ;; conflict with 1.x, so it's OK if both end up in the same profile.
 (define-public enchant-1.6
   (package
-    (inherit enchant)
+    (name "enchant")
     (version "1.6.0")
-    (arguments '(#:configure-flags '("--disable-static")))
-    (native-inputs (alist-delete "unittest-cpp"
-                                 (package-native-inputs enchant)))
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://www.abisource.com/downloads/enchant/"
-                                  version "/enchant-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0zq9yw1xzk8k9s6x83n1f9srzcwdavzazn3haln4nhp9wxxrxb1g"))))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://www.abisource.com/downloads/enchant/"
+                       version "/enchant-" version ".tar.gz"))
+       (sha256
+        (base32 "0zq9yw1xzk8k9s6x83n1f9srzcwdavzazn3haln4nhp9wxxrxb1g"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("pkg-config" ,pkg-config)
+       ("unittest-cpp" ,unittest-cpp)))
+    (inputs
+     `(("aspell" ,aspell)
+       ("hunspell" ,hunspell)
+       ("nuspell" ,nuspell)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "Generic spell checking library and program")
+    (description "Enchant is a library and command-line program, that wraps a
+number of different spelling libraries and programs with a consistent
+interface.  By using Enchant, you can use a wide range of spelling libraries,
+including some specialised for particular languages, without needing to program
+to each library's interface.")
+    (home-page "https://abiword.github.io/enchant/")
+    (license lgpl2.1+)))
 
 (define-public python-pyenchant
   (package
-- 
2.26.2


[-- Attachment #1.1.7: 0010-gnu-enchant-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3508 bytes --]

From bd695b64ff7214d0b494d70d96ba0df659c31f4c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 30 May 2020 16:28:25 -0400
Subject: [PATCH 10/10] gnu: enchant: Update package definition.

* gnu/packages/enchant.scm (enchant): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[inputs]: Add hunspell.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/enchant.scm | 53 ++++++++++++++++++++--------------------
 1 file changed, 26 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm
index 64eaa37cff..a91ace8c29 100644
--- a/gnu/packages/enchant.scm
+++ b/gnu/packages/enchant.scm
@@ -81,38 +81,37 @@ dictionaries.")
   (package
     (name "enchant")
     (version "2.2.8")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/AbiWord/enchant/releases"
-                                  "/download/v" version "/enchant-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "0m9m564qqwbssvvf7y3dlz1yxzqsjiqy1yd2zsmb3l0d7y2y5df7"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://github.com/AbiWord/enchant/releases"
+                       "/download/v" version "/enchant-"
+                       version ".tar.gz"))
+       (sha256
+        (base32 "0m9m564qqwbssvvf7y3dlz1yxzqsjiqy1yd2zsmb3l0d7y2y5df7"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static"
-                           ;; Tests require a relocatable build.
-                           "--enable-relocatable")))
-    (inputs
-     `(("aspell" ,aspell)))   ;; Currently, the only supported backend in Guix
-    (propagated-inputs        ;; is aspell. (This information might be old)
-     ;; Required by enchant.pc.
-     `(("glib" ,glib)))
+     '(#:configure-flags
+       (list
+        "--disable-static"
+        ;; Tests require a relocatable build.
+        "--enable-relocatable")))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)
        ("unittest-cpp" ,unittest-cpp)))
-    (synopsis "Multi-backend spell-checking library wrapper")
-    (description
-      "On the surface, Enchant appears to be a generic spell checking library.
-Looking closer, you'll see the Enchant is more-or-less a fancy wrapper around
-the dlopen() system call.
-
-Enchant steps in to provide uniformity and conformity on top of these libraries,
-and implement certain features that may be lacking in any individual provider
-library.  Everything should \"just work\" for any and every definition of \"just
-working\".")
+    (inputs
+     `(("aspell" ,aspell)
+       ("hunspell" ,hunspell)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "Generic spell checking library and program")
+    (description "Enchant is a library and command-line program, that wraps a
+number of different spelling libraries and programs with a consistent
+interface.  By using Enchant, you can use a wide range of spelling libraries,
+including some specialised for particular languages, without needing to program
+to each library's interface.")
     (home-page "https://abiword.github.io/enchant/")
     (license lgpl2.1+)))
 
-- 
2.26.2


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-30 20:30             ` Raghav Gururajan
@ 2020-05-31 13:31               ` Danny Milosavljevic
  2020-06-10 13:12                 ` Raghav Gururajan
  2020-06-04 18:31               ` Raghav Gururajan
  1 sibling, 1 reply; 49+ messages in thread
From: Danny Milosavljevic @ 2020-05-31 13:31 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

Hi Raghav,

for dconf:

* What does patch-timeout-tests do and why?

For nuspell:

* Why doesn't ronn work?  Is it also because of hpricot being missing?

For enchant-1.6:

* I've re-added disable-static.  We generally don't use static libraries in Guix.

Pushed these to guix wip-desktop.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-30 20:30             ` Raghav Gururajan
  2020-05-31 13:31               ` Danny Milosavljevic
@ 2020-06-04 18:31               ` Raghav Gururajan
  2020-06-04 18:52                 ` Vincent Legoll
                                   ` (2 more replies)
  1 sibling, 3 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-06-04 18:31 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 58 bytes --]

@Danny

Please find attached patches.

Regards,
RG.

[-- Attachment #1.1.2: 0011-gnu-Add-presage.patch --]
[-- Type: text/x-patch, Size: 3441 bytes --]

From efe996a0c53ac90522498a980bd6a40beb1d9a56 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 2 Jun 2020 19:41:00 -0400
Subject: [PATCH 11/16] gnu: Add presage.

* gnu/packages/fcitx.scm (presage): New variable.
---
 gnu/packages/fcitx.scm | 60 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm
index e699d7d59d..61bf36cd83 100644
--- a/gnu/packages/fcitx.scm
+++ b/gnu/packages/fcitx.scm
@@ -22,18 +22,78 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system glib-or-gtk)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages iso-codes)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public presage
+  (package
+    (name "presage")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/presage/files/presage/"
+                       version "/presage-" version ".tar.gz"))
+       (sha256
+        (base32 "0rm3b3zaf6bd7hia0lr1wyvi1rrvxkn7hg05r5r1saj0a3ingmay"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "CFLAGS=-Wno-narrowing"
+        "CXXFLAGS=-Wno-narrowing")
+       #:phases
+       (modify-phases %standard-phases
+         (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/presage"))
+               (rename-file
+                (string-append out "/share/presage/html")
+                (string-append doc "/share/presage/html"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gtk+:bin" ,gtk+ "bin")
+       ("help2man" ,help2man)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libx11" ,libx11)
+       ("sqlite" ,sqlite)
+       ("tinyxml" ,tinyxml)))
+    (synopsis "Intelligent Predictive Text Entry System")
+    (description "Presage generates predictions by modelling natural language as
+a combination of redundant information sources.  It computes probabilities for
+words which are most likely to be entered next by merging predictions generated
+by the different predictive algorithms.")
+    (home-page "https://presage.sourceforge.io/")
+    (license gpl2+)))
+
 (define-public fcitx
   (package
     (name "fcitx")
-- 
2.26.2


[-- Attachment #1.1.3: 0012-gnu-fcitx-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6851 bytes --]

From e9121dabc1de6cdd748a8ce2258d3cd2bb1233f9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 2 Jun 2020 20:42:46 -0400
Subject: [PATCH 12/16] gnu: fcitx: Update package definition.

* gnu/packages/fcitx.scm (fcitx): Update packages definition.
[arguments]<#:configure-flags>[-DENABLE_QT_GUI]: New flag.
[-DGOBJECT_INTROSPECTION_GIRDIR]: New flag.
[-DGOBJECT_INTROSPECTION_TYPELIBDIR]: New flag.
[-DENABLE_GIR]: Remove flag.
[native-inputs]: Add dot, gettext, gobject-introspection, intltool,
libxml2 and python-wrapper.
[inputs]: Add cairo, ecm, fontconfig, libx11, libxkbcommon, opencc,
pango and presage. Remove glib and libxml2.
[propagated-inputs]: Add glib.
---
 gnu/packages/fcitx.scm | 106 +++++++++++++++++++++++++----------------
 1 file changed, 65 insertions(+), 41 deletions(-)

diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm
index 61bf36cd83..da9eabeced 100644
--- a/gnu/packages/fcitx.scm
+++ b/gnu/packages/fcitx.scm
@@ -24,8 +24,10 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages enchant)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages graphviz)
@@ -37,9 +39,11 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg))
 
 (define-public presage
   (package
@@ -98,60 +102,80 @@ by the different predictive algorithms.")
   (package
     (name "fcitx")
     (version "4.2.9.7")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://download.fcitx-im.org/fcitx/"
-                                  "fcitx-" version "_dict.tar.xz"))
-              (sha256
-               (base32
-                "13vg7yzfq0vj2r8zdf9ly3n243nwwggkhd5qv3z6yqdyj0m3ncyg"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://download.fcitx-im.org/fcitx/"
+                       "fcitx-" version "_dict.tar.xz"))
+       (sha256
+        (base32 "13vg7yzfq0vj2r8zdf9ly3n243nwwggkhd5qv3z6yqdyj0m3ncyg"))))
     (build-system cmake-build-system)
     (outputs '("out" "gtk2" "gtk3"))
     (arguments
      `(#:configure-flags
-       (list "-DENABLE_TEST=ON"
-             (string-append "-DXKB_RULES_XML_FILE="
-                            (assoc-ref %build-inputs "xkeyboard-config")
-                            "/share/X11/xkb/rules/evdev.xml")
-             "-DENABLE_GTK2_IM_MODULE=ON"
-             "-DENABLE_GTK3_IM_MODULE=ON"
-             (string-append "-DGTK2_IM_MODULEDIR="
-                            (assoc-ref %outputs "gtk2")
-                            "/lib/gtk-2.0/2.10.0/immodules")
-             (string-append "-DGTK3_IM_MODULEDIR="
-                            (assoc-ref %outputs "gtk3")
-                            "/lib/gtk-3.0/3.0.0/immodules")
-             ;; XXX: Enable GObject Introspection and Qt4 support.
-             "-DENABLE_GIR=OFF"
-             "-DENABLE_QT=OFF"
-             "-DENABLE_QT_IM_MODULE=OFF")))
+       (list
+        "-DENABLE_GTK2_IM_MODULE=ON"
+        "-DENABLE_GTK3_IM_MODULE=ON"
+        "-DENABLE_QT=OFF"
+        "-DENABLE_QT_IM_MODULE=OFF"
+        "-DENABLE_QT_GUI=OFF"
+        "-DENABLE_TEST=ON"
+        (string-append "-DGOBJECT_INTROSPECTION_GIRDIR="
+                       (assoc-ref %outputs "out")
+                       "/share/gir-1.0")
+        (string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR="
+                       (assoc-ref %outputs "out")
+                       "/lib/girepository-1.0")
+        (string-append "-DXKB_RULES_XML_FILE="
+                       (assoc-ref %build-inputs "xkeyboard-config")
+                       "/share/X11/xkb/rules/evdev.xml")
+        (string-append "-DGTK2_IM_MODULEDIR="
+                       (assoc-ref %outputs "gtk2")
+                       "/lib/gtk-2.0/2.10.0/immodules")
+        (string-append "-DGTK3_IM_MODULEDIR="
+                       (assoc-ref %outputs "gtk3")
+                       "/lib/gtk-3.0/3.0.0/immodules"))))
     (native-inputs
-     `(("doxygen"    ,doxygen)
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
        ("extra-cmake-modules"
         ;; XXX: We can't simply #:use-module due to a cycle somewhere.
         ,(module-ref
           (resolve-interface '(gnu packages kde-frameworks))
           'extra-cmake-modules))
-       ("glib:bin"   ,glib "bin")       ; for glib-genmarshal
-       ("pkg-config" ,pkg-config)))
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("libxml2" ,libxml2)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
     (inputs
-     `(("dbus"             ,dbus)
-       ("enchant"          ,enchant-1.6)
-       ("gettext"          ,gettext-minimal)
-       ("gtk2"             ,gtk+-2)
-       ("gtk3"             ,gtk+)
-       ("icu4c"            ,icu4c)
-       ("iso-codes"        ,iso-codes)
-       ("json-c"           ,json-c)
-       ("libxkbfile"       ,libxkbfile)
-       ("libxml2"          ,libxml2)
+     `(("cairo" ,cairo)
+       ("dbus" ,dbus)
+       ("ecm" ,ecm)
+       ("enchant" ,enchant-1.6)
+       ("fontconfig" ,fontconfig)
+       ("gtk2" ,gtk+-2)
+       ("gtk3" ,gtk+)
+       ("icu4c" ,icu4c)
+       ("iso-codes" ,iso-codes)
+       ("json-c" ,json-c)
+       ("libx11" ,libx11)
+       ("libxkbcommon" ,libxkbcommon)
+       ("libxkbfile" ,libxkbfile)
+       ("opencc" ,opencc)
+       ("pango" ,pango)
+       ("presage" ,presage)
        ("xkeyboard-config" ,xkeyboard-config)))
-    (home-page "https://fcitx-im.org")
+    (propagated-inputs
+     `(("glib" ,glib)))
     (synopsis "Input method framework")
-    (description
-     "Fcitx is an input method framework with extension support.  It has
-Pinyin, Quwei and some table-based (Wubi, Cangjie, Erbi, etc.) input methods
+    (description "Fcitx is an input method framework with extension support.  It
+has Pinyin, Quwei and some table-based (Wubi, Cangjie, Erbi, etc.) input methods
 built-in.")
+    (home-page "https://fcitx-im.org")
     (license gpl2+)))
 
 (define-public fcitx-configtool
-- 
2.26.2


[-- Attachment #1.1.4: 0013-gnu-gcab-Update-to-1.4.patch --]
[-- Type: text/x-patch, Size: 3816 bytes --]

From b139186350acdf7c0bf030af1a24a8289adc2ca9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 3 Jun 2020 17:13:28 -0400
Subject: [PATCH 13/16] gnu: gcab: Update to 1.4.

* gnu/packages/package-management.scm (gcab): Update package
definition.
[version]: Update to 1.4.
[source]<origin>[sha256]: Modify base32 hash.
[outputs]: New output 'doc'.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Ddocs]: Remove flag.
[-Dintrospection]: Remove flag.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add gettext, gobject-introspection and gtk-doc.
Remove inttool.
[inputs]: Remove glib.
[propagated-inputs]: Add glib.
[license]: Remove gpl2+.
---
 gnu/packages/package-management.scm | 53 +++++++++++++++++------------
 1 file changed, 32 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 3fc6fc404a..e117a0b6b2 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -997,36 +997,47 @@ in an isolated environment, in separate namespaces.")
 (define-public gcab
   (package
     (name "gcab")
-    (version "1.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/gcab/"
-                                  version "/gcab-" version ".tar.xz"))
-              (sha256
-               (base32
-                "038h5kk41si2hc9d9169rrlvp8xgsxq27kri7hv2vr39gvz9cbas"))))
+    (version "1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gcab/"
+                       version "/gcab-" version ".tar.xz"))
+       (sha256
+        (base32 "13q43iqld4l50yra45lhvkd376pn6qpk7rkx374zn8y9wsdzm9b7"))))
     (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 '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
-     `(("glib:bin" ,glib "bin")         ; for glib-mkenums
-       ("intltool" ,intltool)
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
-     `(("glib" ,glib)
-       ("zlib" ,zlib)))
-    (arguments
-     `(#:configure-flags
-       ;; XXX This ‘documentation’ is for developers, and fails informatively:
-       ;; Error in gtkdoc helper script: 'gtkdoc-mkhtml' failed with status 5
-       (list "-Ddocs=false"
-             "-Dintrospection=false")))
-    (home-page "https://wiki.gnome.org/msitools") ; no dedicated home page
+     `(("zlib" ,zlib)))
+    (propagated-inputs
+     `(("glib" ,glib)))
     (synopsis "Microsoft Cabinet file manipulation library")
     (description
      "The libgcab library provides GObject functions to read, write, and modify
 Microsoft cabinet (.@dfn{CAB}) files.")
-    (license (list license:gpl2+        ; tests/testsuite.at
-                   license:lgpl2.1+)))) ; the rest
+    (home-page "https://wiki.gnome.org/msitools") ; no dedicated home page
+    (license license:lgpl2.1+)))
 
 (define-public msitools
   (package
-- 
2.26.2


[-- Attachment #1.1.5: 0014-gnu-gcr-Update-to-3.36.0.patch --]
[-- Type: text/x-patch, Size: 5879 bytes --]

From 0defd48a4b7c6c62371f8f0be74c098e502b1bf5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 3 Jun 2020 18:34:29 -0400
Subject: [PATCH 14/16] gnu: gcr: Update to 3.36.0.

* gnu/packages/gnome.scm (gcr): Update package definition.
[version]: Update to 3.36.0.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to meson.
[outputs]: New output 'doc'.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xml]: New phase.
['disable-failing-tests]: Modify phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gtk-doc and gtk+:bin.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 88 ++++++++++++++++++++++++++++--------------
 1 file changed, 58 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d935eda499..ca66818de2 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1672,56 +1672,84 @@ the font would look under various sizes.")
 (define-public gcr
   (package
     (name "gcr")
-    (version "3.34.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
-    (build-system gnu-build-system)
+    (version "3.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "00b6bzpr8rj8mvj66r2273r417wg2y21m6n88mhkq9m22z8bxyda"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:phases
+     '(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas.
+       #:phases
        (modify-phases %standard-phases
-         ;; These fail because /var/lib/dbus/machine-id is not present in the
-         ;; build environment.
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "gcr/gcr-visual-index.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.3")
+                                 "/xml/dtd/docbook/")))
+               (substitute* '("gcr/gcr-docs.sgml" "gck/gck-docs.sgml"
+                              "gck/gck-pkcs11-links.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.1.2")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         ;; Some tests fail due to missing /etc/machine-id.
          (add-after 'unpack 'disable-failing-tests
            (lambda _
-             (substitute* "Makefile.in"
-               (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
+             (substitute* "gcr/meson.build"
+               (("'system-prompt',")
                 ""))
              #t))
+         ;; Some tests expect to write to $HOME.
          (add-before 'check 'pre-check
            (lambda _
-             ;; Some tests expect to write to $HOME.
              (setenv "HOME" "/tmp")
-             #t)))))
-    (inputs
-     `(("dbus" ,dbus)
-       ("gnupg" ,gnupg)                ;called as a child process during tests
-       ("libgcrypt" ,libgcrypt)))
+             #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
-     `(("python" ,python-wrapper)       ;for tests
-       ("pkg-config" ,pkg-config)
+     `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
+       ("docbook-xml-4.3" ,docbook-xml-4.3)
        ("gettext" ,gettext-minimal)
        ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("gtk+bin" ,gtk+ "bin")
        ("libxml2" ,libxml2)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
        ("vala" ,vala)
        ("xsltproc" ,libxslt)))
-    ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
+    (inputs
+     `(("dbus" ,dbus)
+       ("gnupg" ,gnupg)
+       ("gnupg2" ,gnupg-2.0)
+       ("libgcrypt" ,libgcrypt)))
     (propagated-inputs
      `(("p11-kit" ,p11-kit)
        ("glib" ,glib)
        ("gtk+" ,gtk+)))
-    (home-page "https://www.gnome.org")
-    (synopsis "Libraries for displaying certificates and accessing key stores")
-    (description
-     "The GCR package contains libraries used for displaying certificates and
-accessing key stores.  It also provides the viewer for crypto files on the
-GNOME Desktop.")
+    (synopsis "GCR and GCK libraries for GNOME")
+    (description "GCR is a library for displaying certificates, and crypto UI,
+accessing key stores.  It also provides the viewer for crypto files on the GNOME
+desktop.  GCK is a library for accessing PKCS#11 modules like smart cards, in a
+GObject oriented way.")
+    (home-page "https://www.gnome.org") ; No dedicated home-page
     (license license:lgpl2.1+)))
 
 (define-public libgnome-keyring
-- 
2.26.2


[-- Attachment #1.1.6: 0015-gnu-gdk-pixbuf-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6242 bytes --]

From c91b7f70e856915460caa85de1a6479ed5a4dc87 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 4 Jun 2020 12:49:51 -0400
Subject: [PATCH 15/16] gnu: gdk-pixbuf: Update package definition.

* gnu/packages/gtk.scm (gdk-pixbuf): Update package definition.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Djasper]: New flag.
<#:phases>['patch-docbook]: New phase.
['disable-failing-tests]: Remove phase.
[native-inputs]: Add docbook-xml, docbook-xsl, perl and libxslt.
[inputs]: Add jasper and libpng. Remove libx11.
[propagated-inputs]: Add libx11. Remove libpng.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gtk.scm | 114 ++++++++++++++++++++++---------------------
 1 file changed, 58 insertions(+), 56 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index fb67508b09..25be5c6b7d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -494,63 +494,65 @@ highlighting and other features typical of a source code editor.")
 
 (define-public gdk-pixbuf
   (package
-   (name "gdk-pixbuf")
-   (version "2.40.0")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version)  "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1rnlx9yfw970maxi2x6niaxmih5la11q1ilr7gzshz2kk585k0hm"))))
-   (build-system meson-build-system)
-   (arguments
-    `(#:configure-flags '("-Dinstalled_tests=false")
-      #:phases
-      (modify-phases %standard-phases
-        (add-after
-         'unpack 'disable-failing-tests
-         (lambda _
-           (substitute* "tests/meson.build"
-             ;; XXX FIXME: This test fails on armhf machines with:
-             ;; SKIP Not enough memory to load bitmap image
-             ;; ERROR: cve-2015-4491 - too few tests run (expected 4, got 2)
-             ((".*'cve-2015-4491'.*") "")
-             ;; XXX FIXME: This test fails with:
-             ;; ERROR:pixbuf-jpeg.c:74:test_type9_rotation_exif_tag:
-             ;; assertion failed (error == NULL): Data differ
-             ;; (gdk-pixbuf-error-quark, 0)
-             ((".*'pixbuf-jpeg'.*") ""))
-           #t))
-        ;; The slow tests take longer than the specified timeout.
-        ,@(if (any (cute string=? <> (%current-system))
-                   '("armhf-linux" "aarch64-linux"))
-            '((replace 'check
-              (lambda _
-                (invoke "meson" "test" "--timeout-multiplier" "5"))))
-            '()))))
-   (propagated-inputs
-    `(;; Required by gdk-pixbuf-2.0.pc
-      ("glib" ,glib)
-      ("libpng" ,libpng)
-      ;; Used for testing and required at runtime.
-      ("shared-mime-info" ,shared-mime-info)))
-   (inputs
-    `(("libjpeg" ,libjpeg-turbo)
-      ("libtiff" ,libtiff)
-      ("libx11"  ,libx11)))
-   (native-inputs
-     `(("pkg-config" ,pkg-config)
+    (name "gdk-pixbuf")
+    (version "2.40.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1rnlx9yfw970maxi2x6niaxmih5la11q1ilr7gzshz2kk585k0hm"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Djasper=true"
+        "-Dinstalled_tests=false")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "meson.build"
+                 (("http://docbook.sourceforge.net/release/xsl/current/")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-1.79.1/")))
+               (substitute* '("gdk-pixbuf-csource.xml"
+                              "gdk-pixbuf-from-drawables.xml"
+                              "gdk-pixbuf-query-loaders.xml"
+                              "gdk-pixbuf-rendering.xml" "gdk-pixbuf.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
        ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")                               ; glib-mkenums, etc.
-       ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
-   (synopsis "GNOME image loading and manipulation library")
-   (description
-    "GdkPixbuf is a library for image loading and manipulation developed
-in the GNOME project.")
-   (license license:lgpl2.0+)
-   (home-page "https://developer.gnome.org/gdk-pixbuf/")))
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("jasper" ,jasper)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("libx11"  ,libx11)
+       ("shared-mime-info" ,shared-mime-info)))
+    (synopsis "Image loading library")
+    (description "GdkPixbuf is a library that loads image data in various
+formats and stores it as linear buffers in memory.  The buffers can then be
+scaled, composited, modified, saved, or rendered.")
+    (home-page "https://wiki.gnome.org/Projects/GdkPixbuf")
+    (license license:lgpl2.1+)))
 
 ;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
 ;; on gdk-pixbuf, so this new varibale.  Also, librsvg adds 90MiB to the
-- 
2.26.2


[-- Attachment #1.1.7: 0016-gnu-gdk-pixbuf-svg-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 1733 bytes --]

From 0ea983b4f4da35f9961d9b96bc6e929317216a13 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 4 Jun 2020 14:25:23 -0400
Subject: [PATCH 16/16] gnu: gdk-pixbuf+svg: Update package definition.

* gnu/packages/gtk.scm (gdk-pixbuf+svg): Update package definition.
[arguments]: Modify.
[synopsis]: Modify.
---
 gnu/packages/gtk.scm | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 25be5c6b7d..ea60a3c80d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -564,10 +564,9 @@ scaled, composited, modified, saved, or rendered.")
      `(("librsvg" ,librsvg)
        ,@(package-inputs gdk-pixbuf)))
     (arguments
-     '(#:configure-flags '("-Dinstalled-tests=false")
-       #:tests? #f ; tested by the gdk-pixbuf package already
-       #:phases
-       (modify-phases %standard-phases
+     (substitute-keyword-arguments (package-arguments gdk-pixbuf)
+        ((#:phases phases)
+          `(modify-phases ,phases
          (add-after 'install 'register-svg-loader
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out     (assoc-ref outputs "out"))
@@ -581,9 +580,8 @@ scaled, composited, modified, saved, or rendered.")
                (apply invoke
                       gdk-pixbuf-query-loaders
                       "--update-cache"
-                      loaders)))))))
-    (synopsis
-     "GNOME image loading and manipulation library, with SVG support")))
+                      loaders))))))))
+    (synopsis "Image loading library, with SVG support")))
 
 (define-public at-spi2-core
   (package
-- 
2.26.2


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-04 18:31               ` Raghav Gururajan
@ 2020-06-04 18:52                 ` Vincent Legoll
  2020-06-10 13:06                   ` Raghav Gururajan
  2020-06-04 18:57                 ` Danny Milosavljevic
  2020-06-14 13:31                 ` Raghav Gururajan
  2 siblings, 1 reply; 49+ messages in thread
From: Vincent Legoll @ 2020-06-04 18:52 UTC (permalink / raw)
  To: Raghav Gururajan, guix-devel

Hello Raghav,

On 04/06/2020 20:31, Raghav Gururajan wrote:
> Please find attached patches.

Could you add a simple / small description of the patch set each time
you send one ?

The bare email with only attached files is not directly useful to us
mere bystanders, without opening each file which is tedious.

So with maybe the `git log --oneline' or something like that we can 
quickly see if there is something of direct interest and then dig in.

Or you can do the usual full dance with an introductory message to
guix-patches@gnu.org, then followed by each patch in a single email
(easy to do with `git send-email'). Dunno if that is useful in that
case.

I hope not to have stepped on mentor's toes with this inquiry ;-)

Happy contributing !

-- 
Vincent Legoll


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-04 18:31               ` Raghav Gururajan
  2020-06-04 18:52                 ` Vincent Legoll
@ 2020-06-04 18:57                 ` Danny Milosavljevic
  2020-06-14 13:31                 ` Raghav Gururajan
  2 siblings, 0 replies; 49+ messages in thread
From: Danny Milosavljevic @ 2020-06-04 18:57 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 250 bytes --]

Thanks!

Changes sourceforge URL in presage to use mirrors.

This set of packages causes rebuild of 2400 other packages.

(Leaving gdk-pixbuf and gdk-pixbuf+svg off for testing purposes would drop it to 388 packages)

Pushed to wip-desktop.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-04 18:52                 ` Vincent Legoll
@ 2020-06-10 13:06                   ` Raghav Gururajan
  0 siblings, 0 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-06-10 13:06 UTC (permalink / raw)
  To: Vincent Legoll, guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 763 bytes --]

Hi Vincent!

> Could you add a simple / small description of the patch set each time
> you send one ?
> 
> The bare email with only attached files is not directly useful to us
> mere bystanders, without opening each file which is tedious.
> 
> So with maybe the `git log --oneline' or something like that we can
> quickly see if there is something of direct interest and then dig in.
> 
> Or you can do the usual full dance with an introductory message to
> guix-patches@gnu.org, then followed by each patch in a single email
> (easy to do with `git send-email'). Dunno if that is useful in that
> case.

Sure thing! Sorry about that, I was somehow thinking of
issues.guix.gnu.org, where the attachments are directly shown.

Regards,
RG.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-05-31 13:31               ` Danny Milosavljevic
@ 2020-06-10 13:12                 ` Raghav Gururajan
  0 siblings, 0 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-06-10 13:12 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 606 bytes --]

Hi Danny!

> for dconf:
> 
> * What does patch-timeout-tests do and why?

It disables couple of tests. Because it timeouts during check phase.

> For nuspell:
> 
> * Why doesn't ronn work?  Is it also because of hpricot being missing?

I think so. I did not package hrpicot for ronn, because the project has
ended. https://github.com/hpricot/hpricot

I presume ronn project is or will-be working on a replacement dependency.

> For enchant-1.6:
> 
> * I've re-added disable-static.  We generally don't use static libraries in Guix.

Ah yes! Thanks for spotting it.

Regards,
RG.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-04 18:31               ` Raghav Gururajan
  2020-06-04 18:52                 ` Vincent Legoll
  2020-06-04 18:57                 ` Danny Milosavljevic
@ 2020-06-14 13:31                 ` Raghav Gururajan
  2020-06-19 23:37                   ` Raghav Gururajan
  2020-06-24 11:37                   ` Danny Milosavljevic
  2 siblings, 2 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-06-14 13:31 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 10051 bytes --]

@Danny

Please find the attached patches.

Corrections:
1) I accidentally left out a patch for glib. I have attached as separate
file. Could you please merge with glib patch while pushing to
wip-desktop? Thanks.
2) There are two two patches named gst-plugins-base. One of them is
gst-plugins-good.

Blog Update:
https://hub.disroot.org/channel/raghavgururajan?f=&cat=outreachy

@Others

Please find the following git log.

commit 1a7ac994f1c75879adaed986d3ee9a580e1dbae8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 11:30:26 2020 -0400

    gnu: gst-plugins-base: Update package definition.

    * gnu/packages/gstreamer.scm (gst-plugins-base): 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.

commit 5ab9cf514339d644b1aa2620196ddc08159e29d4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 08:40:14 2020 -0400

    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.

commit fe25f5ecac3e725e1738a082aab5353643d9f990
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 08:12:25 2020 -0400

    gnu: Add libvisual-plugins.

    * gnu/packages/gstreamer.scm (libvisual-plugins): New variable.

commit 1cec6d61ea70139390b9298e69daa960bc5d1fd4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 06:31:26 2020 -0400

    gnu: Add esound.

    * gnu/packages/gstreamer.scm (esound): New variable.

commit 7a6456c0c2203e43797f02a8198817de6739903f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 04:13:59 2020 -0400

    gnu: Add libvisual.

    * gnu/packages/gstreamer.scm (libvisual): New variable.

commit 47525c79723b9556ac4044b26405291405a67a64
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jun 10 10:32:15 2020 -0400

    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.
    [synopsis]: Modify.
    [description]: Modify.

commit d7152fbbd88c298109dc25bdc58d7b08d531b93f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 10:14:45 2020 -0400

    gnu: gsettings-desktop-schemas: Update package definition.

    * gnu/packages/gnome.scm (gsettings-desktop-schemas) [version]:
    Update to 3.37.1.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-schemas]: Remove phase.
    [native-inputs]: Add gettext-minimal. Remove intltool.
    [inputs]: Remove gnome-backgrounds.
    [synopsis]: Modify.

commit 718f5ee403075e20dc9f9c25a0ea8e8d9a92bb13
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 09:44:44 2020 -0400

    gnu: graphene: Update package definition.

    * gnu/packages/gtk.scm (graphene): Update package definition.
    [source]<origin>[method]: Change from url-fetch to git-fetch.
    [uri]: Add git-reference.
    [sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    [native-inputs]: Add git-minimal and mutest.

commit ee1ee05ae094010a41ca44bc15761bd8e0f54438
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 09:43:01 2020 -0400

    gnu: Add mutest.

    * gnu/packages/check.scm (mutest): New variable.

commit 1e72d7b4078c86b268ed913ce635849f6e291dd5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 09:07:54 2020 -0400

    gnu: gobject-introspection: Update package definition.

    * gnu/packages/glib.scm (gobject-introspection) [version]: Update
    to 1.64.1.
    [source]<origin>[sha256]: Modify base32.
    [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.

commit 6c524cb1fdfaf23a5402c9b48559f58ba9fef5d6
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 07:36:50 2020 -0400

    gnu: glib-networking: Update to 2.64.3.

    * gnu/packages/gnome.scm (glib-networking) [version]: Update to
    2.64.3.
    [source]<origin>[sha256]: Modify base32.

commit 53e25ebe6777afb6fa47a5abf9a4de044c1350c9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 07:29:17 2020 -0400

    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.

commit 6c4c1a25fec971dc3d121212c4f116889a4d7af1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 05:49:46 2020 -0400

    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+.

commit 24c4a8a9d4a5ba30b630ccaebd25c069ba6bc533
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 6 16:10:05 2020 -0400

    gnu: glib-networking: Update to 2.62.4.

    * gnu/packages/gnome.scm (glib-networking): Update package definition.
    [version]: Update to 2.62.4.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#glib-or-gtk?>: New argument.
    <#configure-flags>[-Dopenssl]: New flag.
    [-Dlibproxy_support]: Remove flag.
    [native-inputs]: Add glib:bin and gobject-introspection.
    [inputs]: Add libproxy and openssl.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Update to lgpl2.1+.

commit b1da3aae5d880ef5dfda3fc044f57bbae9a8e604
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 6 00:05:37 2020 -0400

    gnu: gjs: Update to 1.58.8.

    * gnu/packages/gnome.scm (gjs): Update package definition.
    [version]: Update to 1.58.8.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to glib-or-gtk.
    [arguments]<#:configure-flags>[--enable-code-coverage]: New flag.
    [--enable-asan]: New flag.
    [--enable-ubsan]: New flag.
    [native-inputs]: Add gobject-introspection and lcov.
    [inputs]: Add ncurses and sysprof.
    [propagated-inputs]: Add glib and libffi.
    [home-page]: Modify.
    [license]: Add expat and lgpl2.0+. Remove gpl2+.

commit aa67f71920673e5d1267e222d93cd2b3f441d2a1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 5 22:22:56 2020 -0400

    gnu: Add sysprof.

    * gnu/packages/gnome.scm (sysprof): New variable.

commit 85eaa9727a5af735f398e8b571a47325c99ce88a
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 5 01:48:07 2020 -0400

    gnu: geoclue: Update to 2.5.6.

    * gnu/packages/gnome.scm (geoclue): Update package definition.
    [version]: Update to 2.5.6.
    [source]<origin>[method]: Change from url-fetch to git-fetch.
    [outputs]: New output 'doc'.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, glib:bin and vala. Remove libnotify
    and modem-manager.
    [inputs]: Add libnotify and modem-manager.
    [propagated-inputs]: Add glib.
    [synopsis]: Modify.
    [description]: Modify.

Regards,
RG.

[-- Attachment #1.1.2: 0017-gnu-geoclue-Update-to-2.5.6.patch --]
[-- Type: text/x-patch, Size: 4598 bytes --]

From 85eaa9727a5af735f398e8b571a47325c99ce88a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 5 Jun 2020 01:48:07 -0400
Subject: [PATCH 17/54] gnu: geoclue: Update to 2.5.6.

* gnu/packages/gnome.scm (geoclue): Update package definition.
[version]: Update to 2.5.6.
[source]<origin>[method]: Change from url-fetch to git-fetch.
[outputs]: New output 'doc'.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, glib:bin and vala. Remove libnotify
and modem-manager.
[inputs]: Add libnotify and modem-manager.
[propagated-inputs]: Add glib.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 65 +++++++++++++++++++++++++++++-------------
 1 file changed, 45 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ca66818de2..ba01928aa8 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4345,40 +4345,65 @@ output devices.")
 (define-public geoclue
   (package
     (name "geoclue")
-    (version "2.5.5")
+    (version "2.5.6")
     (source
      (origin
-       (method url-fetch)
+       (method git-fetch)
        (uri
-        (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
-                       version "/geoclue-" version ".tar.bz2"))
+        (git-reference
+         (url "https://gitlab.freedesktop.org/geoclue/geoclue.git")
+         (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
-       (patches (search-patches "geoclue-config.patch"))))
+        (base32 "13fk6n4j74lvcsrg3kwbw1mkxgcr3iy9dnysmy0pclfsym8z5m5m"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Ddbus-srv-user=geoclue")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* '("geoclue-docs.xml" "lib/libgeoclue-docs.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/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")))
+               (mkdir-p (string-append doc "/share"))
+               (rename-file
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
+               #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("modem-manager" ,modem-manager)
-       ("libnotify" ,libnotify)
        ("gtk-doc", gtk-doc)
-       ("intltool" ,intltool)))
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
     (inputs
      `(("avahi" ,avahi)
-       ("glib:bin" ,glib "bin")
        ("glib-networking" ,glib-networking)
        ("json-glib" ,json-glib)
-       ("libsoup" ,libsoup)))
+       ("libnotify" ,libnotify)
+       ("libsoup" ,libsoup)
+       ("modem-manager" ,modem-manager)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "Geoinformation Service")
+    (description "Geoclue is a D-Bus geoinformation service.  The goal of the
+Geoclue project is to make creating location-aware applications as simple as
+possible.")
     (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
-    (synopsis "Geolocation service")
-    (description "Geoclue is a D-Bus service that provides location
-information.  The primary goal of the Geoclue project is to make creating
-location-aware applications as simple as possible, while the secondary goal is
-to ensure that no application can access location information without explicit
-permission from user.")
     (license license:gpl2+)))
 
 (define-public geocode-glib
-- 
2.26.2


[-- Attachment #1.1.3: 0018-gnu-Add-sysprof.patch --]
[-- Type: text/x-patch, Size: 2448 bytes --]

From aa67f71920673e5d1267e222d93cd2b3f441d2a1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 5 Jun 2020 22:22:56 -0400
Subject: [PATCH 18/54] gnu: Add sysprof.

* gnu/packages/gnome.scm (sysprof): New variable.
---
 gnu/packages/gnome.scm | 49 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ba01928aa8..91774faf7a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -258,6 +258,55 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public sysprof
+  (package
+    (name "sysprof")
+    (version "3.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas.
+       #:configure-flags
+       (list
+        ;; SystemD not required.
+        "-Dsystemdunitdir=/tmp")))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (inputs
+     `(("libdazzle" ,libdazzle)
+       ("libunwind" ,libunwind)
+       ("pango" ,pango)
+       ("polkit" ,polkit)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)))
+    (synopsis "Kernel based performance profiler")
+    (description "Sysprof is a sampling profiler that uses a kernel module to
+generate stacktraces which are then interpreted by the userspace program
+sysprof.")
+    (home-page "https://wiki.gnome.org/Apps/Sysprof")
+    (license
+     (list
+      ;; For newer codes.
+      license:gpl3+
+      ;; For older codes.
+      license:gpl2+))))
+
 (define-public gnome-photos
   (package
     (name "gnome-photos")
-- 
2.26.2


[-- Attachment #1.1.4: 0019-gnu-gjs-Update-to-1.58.8.patch --]
[-- Type: text/x-patch, Size: 6044 bytes --]

From b1da3aae5d880ef5dfda3fc044f57bbae9a8e604 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 6 Jun 2020 00:05:37 -0400
Subject: [PATCH 19/54] gnu: gjs: Update to 1.58.8.

* gnu/packages/gnome.scm (gjs): Update package definition.
[version]: Update to 1.58.8.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[arguments]<#:configure-flags>[--enable-code-coverage]: New flag.
[--enable-asan]: New flag.
[--enable-ubsan]: New flag.
[native-inputs]: Add gobject-introspection and lcov.
[inputs]: Add ncurses and sysprof.
[propagated-inputs]: Add glib and libffi.
[home-page]: Modify.
[license]: Add expat and lgpl2.0+. Remove gpl2+.
---
 gnu/packages/gnome.scm | 100 +++++++++++++++++++++++------------------
 1 file changed, 56 insertions(+), 44 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 91774faf7a..4145c7b57a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -85,6 +85,7 @@
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
+  #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages cups)
@@ -124,6 +125,7 @@
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
@@ -6369,61 +6371,71 @@ configuration program to choose applications starting on login.")
 (define-public gjs
   (package
     (name "gjs")
-    (version "1.58.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
-    (build-system gnu-build-system)
+    (version "1.58.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "10gkmxbhwpnq27db0gkn25b0gw28n05msjkzwjg3sdhpdisfpcvz"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:phases
+     '(#:configure-flags
+       (list
+        "--enable-code-coverage"
+        "--enable-asan"
+        "--enable-ubsan")
+       #:phases
        (modify-phases %standard-phases
          (add-before
-          'check 'pre-check
-          (lambda _
-            ;; The test suite requires a running X server.
-            (system "Xvfb :1 &")
-            (setenv "DISPLAY" ":1")
-
-            ;; For the missing /etc/machine-id.
-            (setenv "DBUS_FATAL_WARNINGS" "0")
-
-            ;; Our mozjs-38 package does not compile the required Intl API
-            ;; support for these failing tests.
-            (substitute* "installed-tests/js/testLocale.js"
-              ((".*toBeDefined.*") "")
-              ((".*expect\\(datestr\\).*") ""))
-            (substitute* "installed-tests/scripts/testCommandLine.sh"
-              (("Valentín") "")
-              (("☭") ""))
-            #t)))))
+             'check 'pre-check
+           (lambda _
+             ;; The test suite requires a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             ;; For the missing /etc/machine-id.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             ;; Our mozjs package does not compile the required Intl API
+             ;; support for these failing tests.
+             (substitute* "installed-tests/js/testLocale.js"
+               ((".*toBeDefined.*") "")
+               ((".*expect\\(datestr\\).*") ""))
+             (substitute* "installed-tests/scripts/testCommandLine.sh"
+               (("Valentín") "")
+               (("☭") ""))
+             #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")       ; for glib-compile-resources
+     `(("dbus-launch" ,dbus)
+       ("dconf" ,dconf)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("lcov" ,lcov)
        ("pkg-config" ,pkg-config)
-       ("xmllint" ,libxml2)
-       ;; For testing
-       ("dbus-launch" ,dbus)
-       ("dconf" ,dconf) ; required to properly store settings
        ("uuidgen" ,util-linux)
+       ("xmllint" ,libxml2)
        ("xvfb" ,xorg-server-for-tests)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("ncurses" ,ncurses)
+       ("readline" ,readline)
+       ("sysprof" ,sysprof)))
     (propagated-inputs
-     ;; These are all in the Requires.private field of gjs-1.0.pc.
      `(("cairo" ,cairo)
-       ("gobject-introspection" ,gobject-introspection)
+       ("glib" ,glib)
+       ("libffi" ,libffi)
        ("mozjs" ,mozjs-60)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("readline" ,readline)))
     (synopsis "Javascript bindings for GNOME")
-    (home-page "https://live.gnome.org/Gjs")
-    (description
-     "Gjs is a javascript binding for GNOME.  It's mainly based on spidermonkey
-javascript engine and the GObject introspection framework.")
-    (license license:gpl2+)))
+    (description "Gjs is a javascript binding for GNOME.  It's mainly based on
+spidermonkey javascript engine and the GObject introspection framework.")
+    (home-page "https://wiki.gnome.org/Projects/Gjs")
+    (license
+     ;; The project is dual-licensed.
+     (list
+      license:expat
+      license:lgpl2.0+))))
 
 (define-public gedit
   (package
-- 
2.26.2


[-- Attachment #1.1.5: 0020-gnu-glib-networking-Update-to-2.62.4.patch --]
[-- Type: text/x-patch, Size: 3568 bytes --]

From 24c4a8a9d4a5ba30b630ccaebd25c069ba6bc533 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 6 Jun 2020 16:10:05 -0400
Subject: [PATCH 20/54] gnu: glib-networking: Update to 2.62.4.

* gnu/packages/gnome.scm (glib-networking): Update package definition.
[version]: Update to 2.62.4.
[source]<origin>[sha256]: Modify base32.
[arguments]<#glib-or-gtk?>: New argument.
<#configure-flags>[-Dopenssl]: New flag.
[-Dlibproxy_support]: Remove flag.
[native-inputs]: Add glib:bin and gobject-introspection.
[inputs]: Add libproxy and openssl.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gnome.scm | 49 ++++++++++++++++++++++++++----------------
 1 file changed, 30 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 4145c7b57a..e7c83bf3eb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3903,31 +3903,42 @@ library.")
 (define-public glib-networking
   (package
     (name "glib-networking")
-    (version "2.62.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/glib-networking/"
-                                  (version-major+minor version) "/"
-                                  "glib-networking-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
+    (version "2.62.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/glib-networking/"
+                       (version-major+minor version) "/"
+                       "glib-networking-" version ".tar.xz"))
+       (sha256
+        (base32 "1kwlnaiz4qfy2d1as5hd8sgxy7jjfxps1h2443hxq3s8xjg2i3y1"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags '("-Dlibproxy_support=false")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dopenssl=auto")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("glib" ,glib)
        ("gnutls" ,gnutls)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
-    (home-page "https://www.gnome.org")
-    (synopsis "Network-related GIO modules")
-    (description
-     "This package contains various network related extensions for the GIO
-library.")
-    (license license:lgpl2.0+)))
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("libproxy" ,libproxy)
+       ("openssl" ,openssl)))
+    (synopsis "Network extensions for GLib")
+    (description "Glib-networking contains the implementations of certain GLib
+networking features that cannot be implemented directly in GLib itself because
+of their dependencies.  Currently it contains GnuTLS and OpenSSL-based
+implementations of GTlsBackend, a libproxy-based implementation of
+GProxyResolver, GLibproxyResolver, and a GNOME GProxyResolver that uses the
+proxy information from the GSettings schemas in gsettings-desktop-schemas.")
+    (home-page "https://wiki.gnome.org/Projects/GLib")
+    (license license:lgpl2.1+)))
 
 (define-public rest
   (package
-- 
2.26.2


[-- Attachment #1.1.6: 0021-gnu-glib-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 16751 bytes --]

From 6c4c1a25fec971dc3d121212c4f116889a4d7af1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 05:49:46 -0400
Subject: [PATCH 21/54] 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 | 318 +++++++++++++++---------------------------
 1 file changed, 110 insertions(+), 208 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 367179aacf..a4060e3d12 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)
@@ -165,215 +166,116 @@ or through unencrypted TCP/IP suitable for use behind a firewall with
 shared NFS home directories.")
     (license license:gpl2+)))                     ; or Academic Free License 2.1
 
-(define glib
+(define-public 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,
-- 
2.26.2


[-- Attachment #1.1.7: 0022-gnu-glib-with-documentation-Update-package-definitio.patch --]
[-- Type: text/x-patch, Size: 3165 bytes --]

From 53e25ebe6777afb6fa47a5abf9a4de044c1350c9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 07:29:17 -0400
Subject: [PATCH 22/54] 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 a4060e3d12..a3cf9d7cdd 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -282,27 +282,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


[-- Attachment #1.1.8: 0023-gnu-glib-networking-Update-to-2.64.3.patch --]
[-- Type: text/x-patch, Size: 1287 bytes --]

From 6c524cb1fdfaf23a5402c9b48559f58ba9fef5d6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 07:36:50 -0400
Subject: [PATCH 23/54] gnu: glib-networking: Update to 2.64.3.

* gnu/packages/gnome.scm (glib-networking) [version]: Update to
2.64.3.
[source]<origin>[sha256]: Modify base32.
---
 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 e7c83bf3eb..9e63347ed4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3903,7 +3903,7 @@ library.")
 (define-public glib-networking
   (package
     (name "glib-networking")
-    (version "2.62.4")
+    (version "2.64.3")
     (source
      (origin
        (method url-fetch)
@@ -3912,7 +3912,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


[-- Attachment #1.1.9: 0024-gnu-gobject-introspection-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4695 bytes --]

From 1e72d7b4078c86b268ed913ce635849f6e291dd5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 09:07:54 -0400
Subject: [PATCH 24/54] gnu: gobject-introspection: Update package definition.

* gnu/packages/glib.scm (gobject-introspection) [version]: Update
to 1.64.1.
[source]<origin>[sha256]: Modify base32.
[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 a3cf9d7cdd..7533d2c302 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -318,59 +318,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


[-- Attachment #1.1.10: 0025-gnu-Add-mutest.patch --]
[-- Type: text/x-patch, Size: 1654 bytes --]

From ee1ee05ae094010a41ca44bc15761bd8e0f54438 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 09:43:01 -0400
Subject: [PATCH 25/54] gnu: Add mutest.

* gnu/packages/check.scm (mutest): New variable.
---
 gnu/packages/check.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 4e50bf70d5..a53ef86c97 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -76,9 +76,32 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial))
 
+(define-public mutest
+  (package
+    (name "mutest")
+    (version "0.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/ebassi/mutest.git")
+         (commit "e6246c9")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gdqwq6fvk06wld4rhnw5752hahrvhd69zrci045x25rwx90x26q"))))
+    (build-system meson-build-system)
+    (synopsis "Small C testing library")
+    (description "Mutest aims to be a small unit testing library for C projects,
+with an API heavily modelled on high level Behavior-Driver Development frameworks
+like Jasmine or Mocha.")
+    (home-page "https://ebassi.github.io/mutest/mutest.md.html")
+    (license license:expat)))
+
 (define-public check
   (package
     (name "check")
-- 
2.26.2


[-- Attachment #1.1.11: 0026-gnu-graphene-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3111 bytes --]

From 718f5ee403075e20dc9f9c25a0ea8e8d9a92bb13 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 09:44:44 -0400
Subject: [PATCH 26/54] gnu: graphene: Update package definition.

* gnu/packages/gtk.scm (graphene): Update package definition.
[source]<origin>[method]: Change from url-fetch to git-fetch.
[uri]: Add git-reference.
[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add git-minimal and mutest.
---
 gnu/packages/gtk.scm | 38 +++++++++++++++++++++++---------------
 1 file changed, 23 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ea60a3c80d..6056422b69 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -82,6 +82,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages cups)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
@@ -1783,27 +1784,34 @@ Parcellite and adds bugfixes and features.")
   (package
     (name "graphene")
     (version "1.10.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ebassi/graphene/releases/"
-                                  "download/" version
-                                  "/graphene-" version ".tar.xz"))
-              (sha256
-               (base32 "16b4hz73bnrgv5v8n96dczkd6xp9qc06lrl43zln3jnl3psrfva0"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/ebassi/graphene.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14a0j1rvjlc7yhfdmhmckdmkzy4ch61qbzywdlw1xv58h23wx29p"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags '("-Dinstalled_tests=false")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dinstalled_tests=false")))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
+     `(("git" ,git-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("mutest" ,mutest)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("python" ,python)
-       ("glib" ,glib)))
-    (home-page "https://ebassi.github.io/graphene/")
+     `(("glib" ,glib)
+       ("python" ,python)))
     (synopsis "Thin layer of graphic data types")
-    (description "This library provides graphic types and their relative API;
-it does not deal with windowing system surfaces, drawing, scene graphs, or
-input.")
+    (description "Graphene provides graphic types and their relative API; it
+does not deal with windowing system surfaces, drawing, scene graphs, or input.")
+    (home-page "https://ebassi.github.io/graphene/")
     (license license:expat)))
 
 (define-public spread-sheet-widget
-- 
2.26.2


[-- Attachment #1.1.12: 0027-gnu-gsettings-desktop-schemas-Update-package-definit.patch --]
[-- Type: text/x-patch, Size: 3776 bytes --]

From d7152fbbd88c298109dc25bdc58d7b08d531b93f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 10:14:45 -0400
Subject: [PATCH 27/54] gnu: gsettings-desktop-schemas: Update package
 definition.

* gnu/packages/gnome.scm (gsettings-desktop-schemas) [version]:
Update to 3.37.1.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-schemas]: Remove phase.
[native-inputs]: Add gettext-minimal. Remove intltool.
[inputs]: Remove gnome-backgrounds.
[synopsis]: Modify.
---
 gnu/packages/gnome.scm | 47 ++++++++++++++----------------------------
 1 file changed, 16 insertions(+), 31 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9e63347ed4..e84402eb17 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1984,45 +1984,30 @@ on the GNOME Desktop with a single simple application.")
 (define-public gsettings-desktop-schemas
   (package
     (name "gsettings-desktop-schemas")
-    (version "3.34.0")
+    (version "3.37.1")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/" name "/"
-                          (version-major+minor version)  "/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0fvnchxvvx7d00ffn7cx007ahgfpwa0aw5jhspl22kd9prrazi8p"))))
     (build-system meson-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'patch-schemas
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((theme (assoc-ref inputs "gnome-backgrounds")))
-                        (substitute* (find-files "schemas"
-                                                 "\\.gschema\\.xml\\.in$")
-                          ;; Provide the correct file name of the default GNOME
-                          ;; background, 'adwaita-timed.xml'.
-                          (("@datadir@/backgrounds/gnome")
-                           (string-append theme "/share/backgrounds/gnome"))
-                          ;; Do not reference fonts, that may not exist.
-                          (("'Source Code Pro 10'") "'Monospace 11'"))
-                        #t))))))
-    (inputs
-     `(("glib" ,glib)
-       ("gnome-backgrounds" ,gnome-backgrounds)))
+     '(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin")                       ; glib-compile-schemas, etc.
+     `(("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)))
+    (synopsis "Shared GSettings schemas for the GNOME desktop")
+    (description "Gsettings-desktop-schemas contains a collection of GSettings
+schemas for settings shared by various components of the GNOME desktop.")
     (home-page "https://launchpad.net/gsettings-desktop-schemas")
-    (synopsis
-     "GNOME settings for various desktop components")
-    (description
-     "Gsettings-desktop-schemas contains a collection of GSettings schemas
-for settings shared by various components of the GNOME desktop.")
     (license license:lgpl2.1+)))
 
 (define-public icon-naming-utils
-- 
2.26.2


[-- Attachment #1.1.13: 0028-gnu-gstreamer-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7529 bytes --]

From 47525c79723b9556ac4044b26405291405a67a64 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 10 Jun 2020 10:32:15 -0400
Subject: [PATCH 28/54] 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.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gstreamer.scm | 105 +++++++++++++++++++++----------------
 1 file changed, 61 insertions(+), 44 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 7596796d68..6b78fc8d28 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -34,12 +34,17 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages autotools)
+  #: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)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -47,9 +52,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 perl)
   #:use-module (gnu packages pulseaudio)
@@ -110,68 +118,77 @@ arrays of data.")
     (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"))))
+       (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
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
        (modify-phases %standard-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 '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")))
+             (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"))
+               (rename-file
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
                #t))))))
-    (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc.
     (native-inputs
-     `(("bison" ,bison)
+     `(("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")))))
+     (list
+      (search-path-specification
+       (variable "GST_PLUGIN_SYSTEM_PATH")
+       (files '("lib/gstreamer-1.0")))))
+    (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/")
-    (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+)))
 
 (define-public gst-plugins-base
-- 
2.26.2


[-- Attachment #1.1.14: 0029-gnu-Add-libvisual.patch --]
[-- Type: text/x-patch, Size: 4775 bytes --]

From 7a6456c0c2203e43797f02a8198817de6739903f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 04:13:59 -0400
Subject: [PATCH 29/54] gnu: Add libvisual.

* gnu/packages/gstreamer.scm (libvisual): New variable.
---
 gnu/packages/gstreamer.scm | 68 ++++++++++++++++++++++++++++++--------
 1 file changed, 55 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 6b78fc8d28..3d4b3bc7fb 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -29,6 +29,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix utils)
@@ -63,6 +64,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 video)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xiph)
@@ -75,6 +77,46 @@
   #: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)
+       ("sdl" ,sdl)))          ; To compile some examples and/or tests
+    (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 orc
   (package
     (name "orc")
@@ -197,16 +239,16 @@ processing.")
     (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"))))
+       (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
+     `(("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.
@@ -214,7 +256,7 @@ processing.")
        ,@(if (string-prefix? "arm" (or (%current-target-system)
                                        (%current-system)))
              '()
-             `(("orc" ,orc)))))         ;required by gstreamer-audio-1.0.pc
+             `(("orc" ,orc)))))    ;required by gstreamer-audio-1.0.pc
     (inputs
      `(("cdparanoia" ,cdparanoia)
        ("pango" ,pango)
@@ -232,10 +274,10 @@ processing.")
              `(("opus" ,opus))
              '())))
     (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("glib:bin" ,glib "bin")
-        ("gobject-introspection" ,gobject-introspection)
-        ("python-wrapper" ,python-wrapper)))
+     `(("pkg-config" ,pkg-config)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("python-wrapper" ,python-wrapper)))
     (arguments
      '(#:configure-flags '("-Dgl=disabled"
                            ;; FIXME: Documentation fails to build without
-- 
2.26.2


[-- Attachment #1.1.15: 0030-gnu-Add-esound.patch --]
[-- Type: text/x-patch, Size: 3091 bytes --]

From 1cec6d61ea70139390b9298e69daa960bc5d1fd4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 06:31:26 -0400
Subject: [PATCH 30/54] gnu: Add esound.

* gnu/packages/gstreamer.scm (esound): New variable.
---
 gnu/packages/gstreamer.scm | 48 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 3d4b3bc7fb..9e566b2764 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -36,6 +36,7 @@
   #:use-module (gnu packages)
   #: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)
@@ -60,10 +61,12 @@
   #: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)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
+  #:use-module (gnu packages shells)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xorg)
@@ -117,6 +120,51 @@ applications that want audio visualisation and audio visualisation plugins.")
       ;; Examples and Tests.
       license:gpl2+))))
 
+(define-public esound
+  (package
+    (name "esound")
+    (version "0.2.41")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://gitlab.gnome.org/Archive/esound.git")
+         (commit "ESOUND_0_2_41")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "141jg70fim276i8k2kyypm84gy89i1k9mm4yf68mfwnybvjw1d6n"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ("gnome-common" ,gnome-common)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("tcp-wrappers" ,tcp-wrappers)
+       ("tcsh" ,tcsh)
+       ("which" ,which)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("pcaudiolib" ,pcaudiolib)))
+    (propagated-inputs
+     `(("audiofile" ,audiofile)))
+    (synopsis "Enlightened Sound Daemon")
+    (description "The Enlightened Sound Daemon mixes several audio streams for
+playback by a single audio device.  You can also pre-load samples, and play them
+back without having to send all the data for the sound.  Network transparency is
+also built in, so you can play sounds on one machine, and listen to them on
+another.")
+    (home-page "https://web.archive.org/web/20160528230227/
+http://www.tux.org/~ricdude/overview.html")
+    (license
+     (list
+      ;; Libraries.
+      license:lgpl2.0+
+      ;; Others.
+      license:gpl2+))))
+
 (define-public orc
   (package
     (name "orc")
-- 
2.26.2


[-- Attachment #1.1.16: 0031-gnu-Add-libvisual-plugins.patch --]
[-- Type: text/x-patch, Size: 2766 bytes --]

From fe25f5ecac3e725e1738a082aab5353643d9f990 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 08:12:25 -0400
Subject: [PATCH 31/54] gnu: Add libvisual-plugins.

* gnu/packages/gstreamer.scm (libvisual-plugins): New variable.
---
 gnu/packages/gstreamer.scm | 59 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 9e566b2764..2c6f478316 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -165,6 +165,65 @@ http://www.tux.org/~ricdude/overview.html")
       ;; Others.
       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)))
+    (native-search-paths
+     (list
+      (search-path-specification
+       (variable "LIBVISUAL_PLUGINS_BASE_DIR")
+       (files '("lib/libvisual-0.4")))))
+    (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 license:gpl2+)))
+
 (define-public orc
   (package
     (name "orc")
-- 
2.26.2


[-- Attachment #1.1.17: 0032-gnu-gst-plugins-base-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7556 bytes --]

From 5ab9cf514339d644b1aa2620196ddc08159e29d4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 08:40:14 -0400
Subject: [PATCH 32/54] 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 | 131 ++++++++++++++++++++++++-------------
 1 file changed, 85 insertions(+), 46 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 2c6f478316..5d08a423d3 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)
@@ -347,61 +348,99 @@ processing.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
-                           name "-" version ".tar.xz"))
+       (uri
+        (string-append "https://gstreamer.freedesktop.org/src/" name "/"
+                       name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"))))
+        (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
-    (inputs
-     `(("cdparanoia" ,cdparanoia)
-       ("pango" ,pango)
-       ("libogg" ,libogg)
-       ("libtheora" ,libtheora)
-       ("libvorbis" ,libvorbis)
-       ("libx11" ,libx11)
-       ("zlib" ,zlib)
-       ("libXext" ,libxext)
-       ("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)))
+    (outputs '("out" "doc"))
     (arguments
-     '(#:configure-flags '("-Dgl=disabled"
-                           ;; FIXME: Documentation fails to build without
-                           ;; enabling GL above, which causes other problems.
-                           "-Ddoc=false")
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'patch
+         (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)))))
+             #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
+     `(("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)
+       ("libxext" ,libxext)
+       ("libxshm" ,libxshmfence)
+       ("libxv" ,libxv)
+       ("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/")
-    (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+)))
 
 (define-public gst-plugins-good
-- 
2.26.2


[-- Attachment #1.1.18: 0033-gnu-gst-plugins-base-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7267 bytes --]

From 1a7ac994f1c75879adaed986d3ee9a580e1dbae8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 11:30:26 -0400
Subject: [PATCH 33/54] gnu: gst-plugins-base: Update package definition.

* gnu/packages/gstreamer.scm (gst-plugins-base): 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 | 116 ++++++++++++++++++++++---------------
 1 file changed, 68 insertions(+), 48 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 5d08a423d3..111d812c14 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -449,77 +449,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
-         ,@(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


[-- Attachment #1.1.19: glib-disable-failing-tests.patch --]
[-- Type: text/x-patch, Size: 2389 bytes --]

From a2e6783f2278ed32b1e552691ec5d67d6940757e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-14 13:31                 ` Raghav Gururajan
@ 2020-06-19 23:37                   ` Raghav Gururajan
  2020-06-24 22:40                     ` Danny Milosavljevic
  2020-06-24 11:37                   ` Danny Milosavljevic
  1 sibling, 1 reply; 49+ messages in thread
From: Raghav Gururajan @ 2020-06-19 23:37 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 11880 bytes --]

@Danny

Please find the attached patches.

@Others

Please find the following git log.

commit a412459054b7ad00738dc66cb2035638f9c11b3c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 19 19:11:28 2020 -0400

    gnu: gst-libav: Update package definition.

    * gnu/packages/gstreamer.scm (gst-libav): Update package definition.
    [arguments]<#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml, perl and ruby.
    [inputs]: Remove gst-plugins-base, orc and zlib.
    [propagated-inputs]: Add gstreamer and gst-plugins-base.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Change from gpl2+ to lgpl2.0+.

commit 0109580032805d61700513aa5aee0891fed96b3c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 19 18:53:51 2020 -0400

    gnu: gst-plugins-ugly: Update package definition.

    * gnu/packages/gstreamer.scm (gst-plugins-ugly): Update package
definition.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-docbook-xml]: New phase.
    ['pre-check]: New phase.
    [native-inputs]: Add docbook-xml, gettext-minimal,
gsettings-desktop-schemas,
    perl and xorg-server-for-tests.
    [inputs]: Add glib, glib-networking and opencore-amr. Remove
gst-plugins-base.
    [propagated-inputs]: Add gstreamer and gst-plugins-base.
    [synopsis]: Modify.
    [description]: Modify.

commit 8d47e7bc65fa241e761e8a723a147f9c097f66d2
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 19 18:48:19 2020 -0400

    gnu: gst-plugins-bad: Update package definition.

    * gnu/packages/gstreamer.scm (gst-plugins-base): Update package
definition.
    [outputs]: New output 'doc'.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-docbook-xml]: New phase.
    ['pre-check]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, gettext-minimal,
gsettings-desktop-schemas,
    perl, libxml2 and xorg-server-for-tests.
    [inputs]: Add bzip2, cairo, ccextractor, chromaprint, directfb, faac,
    flite, glib, glib-networking, glu, gsm, iqa, lcms, libaom, libbs2b,
libdc1394,
    libdca, libde265, libdrm, libexif, libfdk, libgme, libmfx, libmms,
libmpcdec,
    libnice, libofa, libopenmpt, libtiff, libva, libx11, libxcb,
libxext, libxshm, lilv,
    lv2, mjpegtools, nettle, opencv, openh264, openni2, pango, rtmpdump,
    sbc, sctp, spandsp, srt, svt-hevc, transcode, v4l-utils, vo-aacenc,
vo-amrwbenc,
    vulkan-headers, vulkan-loader, webrtc-audio-processing, wildmidi,
    wpebackend-fdo, zbar and zxing-cpp.
    [propagated-inputs]: Add gstreamer and gst-plugins-base.
    [synopsis]: Modify.
    [description]: Modify.

commit 5970d09c8db16c565ccdf9e3964829affdab2f6c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 18 21:05:20 2020 -0400

    gnu: Add openni2.

    * gnu/packages/gstreamer.scm (openni2): New variable.

commit f16e64e5afee6d70814cbf9b5730cb1b00f7589f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 18 20:38:35 2020 -0400

    gnu: Add libnice.

    * gnu/packages/networking.scm (libnice): New variable.

commit 3e032569d0dfe0b2f5b184b65f5534532abda5f3
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 18 12:33:53 2020 -0400

    gnu: Add rtmpdump.

    * gnu/packages/networking.scm (rtmpdump): New variable.

commit 4fdfc0999a8f16d563a6651875859973af798b1c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 18 12:29:16 2020 -0400

    gnu: Add iqa.

    * gnu/packages/image.scm (iqa): New variable.

commit bf481717c8a0b306c532eb5d3cc170c1581f4324
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 18 10:04:15 2020 -0400

    gnu: Add zxing-cpp.

    * gnu/packages/aidc.scm (zxing-cpp): New variable.

commit b34d5c89db9df4b63906e6b716610de4d423efe1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 18 09:25:50 2020 -0400

    gnu: Add wildmidi.

    * gnu/packages/audio.scm (wildmidi): New variable.

commit 6dc93ef31c2ecca66182222638a1d92c790c3bf9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 18 06:55:01 2020 -0400

    gnu: Add webrtc-audio-processing.

    * gnu/packages/audio.scm (webrtc-audio-processing): New variable.

commit 3f49b0393cb26eb88fe9efc0f25853a3a62de36b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 18 06:14:20 2020 -0400

    gnu: Add vo-aacenc.

    * gnu/packages/audio.scm (vo-aacenc): New variable.

commit 9244d35ef12b4bd975f2bcd3a5e485aaa8bf7d20
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jun 17 16:50:58 2020 -0400

    gnu: Add transcode.

    * gnu/packages/video.scm (transcode): New variable.

commit fca9377762504f4fb70bc1427335dafbed4b0fe5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jun 17 15:07:02 2020 -0400

    gnu: Add tinyalsa.

    * gnu/packages/audio.scm (tinyalsa): New variable.

commit 01e1f8eeb2688c960dfa861945bd4691e598f8b0
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jun 17 13:22:49 2020 -0400

    gnu: Add svt-hevc.

    * gnu/packages/video.scm (svt-hevc): New variable.

commit 3ba833d7d6bbed44cfb44429da56f84f6ba36cdf
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jun 17 13:00:23 2020 -0400

    gnu: Add srt.

    * gnu/packages/networking.scm (srt): New variable.

commit a24c295775edcf71916f7c6d987c74abcf9e3fd3
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jun 17 09:58:49 2020 -0400

    gnu: Add lksctp-tools.

    * gnu/packages/networking.scm (lksctp-tools): New variable.

commit 950e20952825170d3d24fae976d99d9bbe06dd6b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jun 17 08:03:35 2020 -0400

    gnu: Add opensles.

    * gnu/packages/audio.scm (opensles): New variable.

commit 46e168f1399884358d355e5bf6f1fd51f8b87c70
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 16 13:51:51 2020 -0400

    gnu: Add libopenmpt.

    * gnu/packages/audio.scm (libopenmpt): New variable.

commit 9fd0ab99df6a385e337cf29e06f9727ba3d335af
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 16 12:21:56 2020 -0400

    gnu: Add libofa.

    * gnu/packages/audio.scm (libofa): New variable.

commit 35f22cc61fe57399bcb8ebadf68e6e82e6e83916
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jun 15 02:19:52 2020 -0400

    gnu: Add mediasdk.

    * gnu/packages/video.scm (mediasdk): New variable.

commit ae87e89c55247e874eafbf27d2b60a4b5328eee2
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jun 14 06:51:43 2020 -0400

    gnu: Add mjpegtools.

    * gnu/packages/video.scm (mjpegtools): New variable.

commit 6a404e468476632362c60c5ef2e7a2a943d03c79
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jun 14 06:46:31 2020 -0400

    gnu: Add libquicktime.

    * gnu/packages/video.scm (libquicktime): New variable.

commit 8017e0ff6b62d38fa2fa5d1079c7109bb1f7b73e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jun 14 06:30:17 2020 -0400

    gnu: Add schroedinger.

    * gnu/packages/video.scm (schroedinger): New variable.

commit 2f10cf64ba03189e3a0deac94cd171b951a0838c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jun 14 05:29:52 2020 -0400

    gnu: Add libmms.

    * gnu/packages/video.scm (libmms): New variable.

commit 60148b1ebfeebe0776a5c49d32a47aba5f038848
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jun 14 05:14:58 2020 -0400

    gnu: Add libde265.

    * gnu/packages/video.scm (libde265): New variable.

commit e77c1722dd4f69f9743ebd1d5c25f76cfc5aad5f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jun 14 05:03:08 2020 -0400

    gnu: Add libvideogfx.

    * gnu/packages/video.scm (libvideogfx): New variable.

commit 74c3d4dbc13b8b014991578f08d1b62cc43c2b66
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jun 14 02:39:41 2020 -0400

    gnu: Add flite.

    * gnu/packages/speech.scm (flite): New variable.

commit d258adea8766a7b2c5670b73cf3f70aa4599876e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jun 14 01:39:05 2020 -0400

    gnu: faad2: Update to 2.8.8.

    * gnu/packages/audio.scm (faad2): Update package definition.
    [version]: Update to 2.8.8.
    [source]<origin>[sha256]: Modify base32.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Update to gpl2+.

commit ee070b29cea93c7ec4640353af173521f5f9998b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jun 14 01:31:46 2020 -0400

    gnu: Add faac.

    * gnu/packages/audio.scm (faac): New variable.

commit 286f4117f2802dccd5fc13158365fca88de8724a
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 13 10:45:16 2020 -0400

    gnu: Add directfb.

    * gnu/packages/graphics.scm (directfb): New variable.

commit b7e2cd73adc1a1719c1d8034174b064c1811aac7
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 13 09:39:04 2020 -0400

    gnu: Add libtimidity.

    * gnu/packages/audio.scm (libtimidity): New variable.

commit ac054a47a0d8cee58fd4d459de200b89bea82c0d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 13 09:02:06 2020 -0400

    gnu: Add flux.

    * gnu/packages/graphics.scm (flux): New variable.

commit 5a66322fea248f4f73b0b0e2f47d0a6dea446560
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 13 09:00:10 2020 -0400

    gnu: Add tslib.

    * gnu/packages/video.scm (tslib): New variable.

commit 62f92baef8eee07452d83cd30cd8a65a2048cb8e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 13 08:01:01 2020 -0400

    gnu: Add libmpeg3.

    * gnu/packages/video.scm (libmpeg3): New variable.

commit a5201677879767e998b1fd80b284b64b9510d9d2
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 13 04:21:31 2020 -0400

    gnu: Add libdc1394.

    * gnu/packages/gstreamer.scm (libdc1394): New variable.

commit 9cabd4e0c17539573739a23c25ebcd7cb2e0e896
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 12 13:52:39 2020 -0400

    gnu: Add ccextractor.

    * gnu/packages/gstreamer.scm (ccextractor): New variable.

commit 7f949ab2cbbbbad2f4173c92064b4e723a22af75
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 12 12:37:16 2020 -0400

    gnu: tesseract-ocr: Propagate leptonica.

    * gnu/packages/ocr.scm (tesseract-ocr) [inputs]: Move leptonica to ...
    [propagated-inputs]: ... here.

commit 93cb7646698469e9f71efaf6036eaf1a0590a212
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 12 10:00:06 2020 -0400

    gnu: Add nng.

    * gnu/packages/networking.scm (nng): New variable.

commit 5415678834da13a496c96bc777fd624f48293a0b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 12 09:10:24 2020 -0400

    gnu: Add nanomsg.

    * gnu/packages/networking.scm (nanomsg): New variable.

commit f2619dde702d145ec64c77a2064080ccfedff570
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 12 08:58:06 2020 -0400

    gnu: Add asciidoctor.

    * gnu/packages/documentation.scm (asciidoctor): New variable.

commit 30c58daadf94d37760c07963eb6e4791dc02b7be
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 12 08:36:11 2020 -0400

    gnu: Add ruby-slim.

    * gnu/packages/ruby.scm (ruby-slim): New variable.

[-- Attachment #1.1.2: 0018-gnu-Add-ruby-slim.patch --]
[-- Type: text/x-patch, Size: 1689 bytes --]

From 30c58daadf94d37760c07963eb6e4791dc02b7be Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 12 Jun 2020 08:36:11 -0400
Subject: [PATCH 18/58] gnu: Add ruby-slim.

* gnu/packages/ruby.scm (ruby-slim): New variable.
---
 gnu/packages/ruby.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 94b16957e0..b02e24d930 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9579,3 +9579,29 @@ which snapshots to consider and what files to include.")
 defined in @file{.travis.yml} on your local machine, using @code{rvm},
 @code{rbenv}, or @code{chruby} to test different versions of Ruby.")
     (license license:expat)))
+
+(define-public ruby-slim
+  (package
+    (name "ruby-slim")
+    (version "4.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/slim-template/slim.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "19118dddf6n6vwzl130qgqj61wr280qrh5y9hjhmym2da3q7m90c"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:tests? #f))                    ; No target
+    (inputs
+     `(("temple" ,ruby-temple)
+       ("tilt" ,ruby-tilt)))
+    (synopsis "Lightweight templating engine for Ruby")
+    (description "Slim is a Ruby template language whose goal is reduce the
+syntax to the essential parts without becoming cryptic.")
+    (home-page "http://slim-lang.com/")
+    (license license:expat)))
-- 
2.26.2


[-- Attachment #1.1.3: 0019-gnu-Add-asciidoctor.patch --]
[-- Type: text/x-patch, Size: 11272 bytes --]

From f2619dde702d145ec64c77a2064080ccfedff570 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 12 Jun 2020 08:58:06 -0400
Subject: [PATCH 19/58] gnu: Add asciidoctor.

* gnu/packages/documentation.scm (asciidoctor): New variable.
---
 gnu/packages/documentation.scm | 177 +++++++++++++++++++++------------
 1 file changed, 114 insertions(+), 63 deletions(-)

diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index dcacdb456f..bc9f5838dc 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -27,11 +27,13 @@
 
 (define-module (gnu packages documentation)
   #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system ruby)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -43,9 +45,58 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages xml))
 
+(define-public asciidoctor
+  (package
+    (name "asciidoctor")
+    (version "2.0.10")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/asciidoctor/asciidoctor.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0jaxpnsdnx3qyjw5p2lsx1swny12q1i2vxw2kgdp4vlsyjv95z95"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-failing-tests
+           (lambda _
+             (with-directory-excursion "test"
+               ;; These tests require network access.
+               (for-each delete-file
+                         (list
+                          "blocks_test.rb"
+                          "substitutions_test.rb")))
+             #t)))))
+    (inputs
+     `(("asciimath" ,ruby-asciimath)
+       ("coderay" ,ruby-coderay)
+       ("concurrent" ,ruby-concurrent)
+       ("cucumber" ,ruby-cucumber)
+       ("erubis" ,ruby-erubis)
+       ("haml" ,ruby-haml)
+       ("minitest" ,ruby-minitest)
+       ("nokogiri" ,ruby-nokogiri)
+       ("rake" ,ruby-rake)
+       ("rouge" ,ruby-rouge)
+       ("rspec-expectations" ,ruby-rspec-expectations)
+       ("slim" ,ruby-slim)
+       ("tilt" ,ruby-tilt)))
+    (synopsis "Text processor and publishing toolchain")
+    (description "Asciidoctor is a fast text processor and publishing toolchain
+for converting AsciiDoc content to HTML5, DocBook, PDF, and other formats.")
+    (home-page "https://asciidoctor.org/")
+    (license license:expat)))
+
 (define-public asciidoc
   (package
     (name "asciidoc")
@@ -72,38 +123,38 @@
          ;; "--no-xmllint" option, a missing "xsltproc" binary.
          ;; The following phase enables asciidoc to find some of them.
          (add-before 'configure 'set-xml-binary-paths
-                     (lambda* (#:key inputs #:allow-other-keys)
-                       (let* ((libxml2 (assoc-ref inputs "libxml2"))
-                              (xmllint (string-append libxml2 "/bin/xmllint"))
-                              (libxslt (assoc-ref inputs "libxslt"))
-                              (xsltproc (string-append libxslt "/bin/xsltproc")))
-                         (substitute* "a2x.py"
-                           (("XMLLINT = 'xmllint'")
-                            (string-append "XMLLINT = '" xmllint "'"))
-                           (("XSLTPROC = 'xsltproc'")
-                            (string-append "XSLTPROC = '" xsltproc "'")))
-                         #t)))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((libxml2 (assoc-ref inputs "libxml2"))
+                    (xmllint (string-append libxml2 "/bin/xmllint"))
+                    (libxslt (assoc-ref inputs "libxslt"))
+                    (xsltproc (string-append libxslt "/bin/xsltproc")))
+               (substitute* "a2x.py"
+                 (("XMLLINT = 'xmllint'")
+                  (string-append "XMLLINT = '" xmllint "'"))
+                 (("XSLTPROC = 'xsltproc'")
+                  (string-append "XSLTPROC = '" xsltproc "'")))
+               #t)))
          ;; Make asciidoc use the local docbook-xsl package instead of fetching
          ;; it from the internet at run-time.
          (add-before 'install 'make-local-docbook-xsl
-                     (lambda* (#:key inputs #:allow-other-keys)
-                       (substitute* (find-files "docbook-xsl" ".*\\.xsl$")
-                         (("xsl:import href=\"http://docbook.sourceforge.net/\
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (find-files "docbook-xsl" ".*\\.xsl$")
+               (("xsl:import href=\"http://docbook.sourceforge.net/\
 release/xsl/current")
-                          (string-append
-                           "xsl:import href=\""
-                           (string-append (assoc-ref inputs "docbook-xsl")
-                                          "/xml/xsl/docbook-xsl-"
-                                          ,(package-version docbook-xsl)))))
-                       #t))
+                (string-append
+                 "xsl:import href=\""
+                 (string-append (assoc-ref inputs "docbook-xsl")
+                                "/xml/xsl/docbook-xsl-"
+                                ,(package-version docbook-xsl)))))
+             #t))
          ;; Do the same for docbook-xml.
          (add-before 'install 'make-local-docbook-xml
-                     (lambda* (#:key inputs #:allow-other-keys)
-                       (substitute* "docbook45.conf"
-                         (("http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd")
-                          (string-append (assoc-ref inputs "docbook-xml")
-                                         "/xml/dtd/docbook/docbookx.dtd")))
-                       #t)))))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "docbook45.conf"
+               (("http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd")
+                (string-append (assoc-ref inputs "docbook-xml")
+                               "/xml/dtd/docbook/docbookx.dtd")))
+             #t)))))
     (native-inputs
      `(("autoconf" ,autoconf)))
     (inputs `(("python" ,python-2)
@@ -126,26 +177,26 @@ markup) can be customized and extended by the user.")
 
 (define-public asciidoc-py3
   (package (inherit asciidoc)
-    (name "asciidoc-py3")
-    (version "9.0.0rc1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/asciidoc/asciidoc-py3/")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1v815dgab62970m9cr2crwbh4kvlzk6pv3hk4bzv6gfa4lbwfkfl"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("autoconf" ,autoconf)))
-    (inputs
-     `(("python" ,python)
-       ("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))))
+           (name "asciidoc-py3")
+           (version "9.0.0rc1")
+           (source (origin
+                     (method git-fetch)
+                     (uri (git-reference
+                           (url "https://github.com/asciidoc/asciidoc-py3/")
+                           (commit version)))
+                     (file-name (git-file-name name version))
+                     (sha256
+                      (base32
+                       "1v815dgab62970m9cr2crwbh4kvlzk6pv3hk4bzv6gfa4lbwfkfl"))))
+           (build-system gnu-build-system)
+           (native-inputs
+            `(("autoconf" ,autoconf)))
+           (inputs
+            `(("python" ,python)
+              ("docbook-xml" ,docbook-xml)
+              ("docbook-xsl" ,docbook-xsl)
+              ("libxml2" ,libxml2)
+              ("libxslt" ,libxslt)))))
 
 (define-public doxygen
   (package
@@ -153,17 +204,17 @@ markup) can be customized and extended by the user.")
     (version "1.8.17")
     (home-page "http://www.doxygen.nl/")
     (source (origin
-             (method url-fetch)
-             (uri (list (string-append home-page "files/doxygen-"
-                                       version ".src.tar.gz")
-                        (string-append "mirror://sourceforge/doxygen/rel-"
-                                       version "/doxygen-" version
-                                       ".src.tar.gz")))
-             (sha256
-              (base32
-               "16dmv0gm1x8rvbm82fmjvi213q8fxqxinm75pcf595flya59ific"))
-             (patches (search-patches "doxygen-test.patch"
-                                      "doxygen-1.8.17-runtests.patch"))))
+              (method url-fetch)
+              (uri (list (string-append home-page "files/doxygen-"
+                                        version ".src.tar.gz")
+                         (string-append "mirror://sourceforge/doxygen/rel-"
+                                        version "/doxygen-" version
+                                        ".src.tar.gz")))
+              (sha256
+               (base32
+                "16dmv0gm1x8rvbm82fmjvi213q8fxqxinm75pcf595flya59ific"))
+              (patches (search-patches "doxygen-test.patch"
+                                       "doxygen-1.8.17-runtests.patch"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("bison" ,bison)
@@ -184,12 +235,12 @@ markup) can be customized and extended by the user.")
        #:test-target "tests"
        #:phases (modify-phases %standard-phases
                   (add-before 'configure 'patch-sh
-                              (lambda* (#:key inputs #:allow-other-keys)
-                                (substitute* "src/portable.cpp"
-                                  (("/bin/sh")
-                                   (string-append
-                                    (assoc-ref inputs "bash") "/bin/sh")))
-                                #t)))))
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (substitute* "src/portable.cpp"
+                        (("/bin/sh")
+                         (string-append
+                          (assoc-ref inputs "bash") "/bin/sh")))
+                      #t)))))
     (synopsis "Generate documentation from annotated sources")
     (description "Doxygen is the de facto standard tool for generating
 documentation from annotated C++ sources, but it also supports other popular
-- 
2.26.2


[-- Attachment #1.1.4: 0020-gnu-Add-nanomsg.patch --]
[-- Type: text/x-patch, Size: 1789 bytes --]

From 5415678834da13a496c96bc777fd624f48293a0b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 12 Jun 2020 09:10:24 -0400
Subject: [PATCH 20/58] gnu: Add nanomsg.

* gnu/packages/networking.scm (nanomsg): New variable.
---
 gnu/packages/networking.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index f106d2bf72..6ebd7f44ed 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -128,6 +128,36 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public nanomsg
+  (package
+    (name "nanomsg")
+    (version "1.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nanomsg/nanomsg.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01ddfzjlkf2dgijrmm3j3j8irccsnbgfvjcnwslsfaxnrmrq5s64"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DNN_ENABLE_COVERAGE=ON")))
+    (native-inputs
+     `(("asciidoctor" ,asciidoctor)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Scalable socket library")
+    (description "Nanomsg is a socket library that provides several common
+communication patterns.  It aims to make the networking layer fast, scalable,
+and easy to use.  Implemented in C, it works on a wide range of operating
+systems with no further dependencies.")
+    (home-page "https://nanomsg.org/")
+    (license (license:non-copyleft "file://COPYING"))))
+
 (define-public blueman
   (package
     (name "blueman")
-- 
2.26.2


[-- Attachment #1.1.5: 0021-gnu-Add-nng.patch --]
[-- Type: text/x-patch, Size: 2851 bytes --]

From 93cb7646698469e9f71efaf6036eaf1a0590a212 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 12 Jun 2020 10:00:06 -0400
Subject: [PATCH 21/58] gnu: Add nng.

* gnu/packages/networking.scm (nng): New variable.
---
 gnu/packages/networking.scm | 46 +++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 6ebd7f44ed..339aa9ab38 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -118,6 +118,7 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages shells)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages textutils)
@@ -158,6 +159,51 @@ systems with no further dependencies.")
     (home-page "https://nanomsg.org/")
     (license (license:non-copyleft "file://COPYING"))))
 
+(define-public nng
+  (package
+    (name "nng")
+    (version "1.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nanomsg/nng.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "042kmqzvdhv8fqmjr9kyi7rirm6akmpidfav6j14zhrab221n06j"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DNNG_ENABLE_COVERAGE=ON"
+        "-DNNG_ENABLE_TLS=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             ;; These tests require network access.
+             (substitute* "tests/CMakeLists.txt"
+               (("add_nng_test1\\(httpclient 60 NNG_SUPP_HTTP\\)") "")
+               (("add_nng_test1\\(resolv 10 NNG_STATIC_LIB\\)") "")
+               (("add_nng_test\\(tls 60\\)") ""))
+             #t)))))
+    (native-inputs
+     `(("ksh" ,oksh)))
+    (inputs
+     `(("mbedtls" ,mbedtls-apache)))
+    (propagated-inputs
+     `(("nanomsg" ,nanomsg)))           ; For backward compatibility
+    (synopsis "Lightweight messaging library")
+    (description "NNG project is a rewrite of the scalability protocols library
+known as libnanomsg, and adds significant new capabilities, while retaining
+compatibility with the original.  It is a lightweight, broker-less library,
+offering a simple API to solve common recurring messaging problems, such as
+publish/subscribe, RPC-style request/reply, or service discovery.")
+    (home-page "https://nng.nanomsg.org/")
+    (license license:expat)))
+
 (define-public blueman
   (package
     (name "blueman")
-- 
2.26.2


[-- Attachment #1.1.6: 0022-gnu-tesseract-ocr-Propagate-leptonica.patch --]
[-- Type: text/x-patch, Size: 903 bytes --]

From 7f949ab2cbbbbad2f4173c92064b4e723a22af75 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 12 Jun 2020 12:37:16 -0400
Subject: [PATCH 22/58] gnu: tesseract-ocr: Propagate leptonica.

* gnu/packages/ocr.scm (tesseract-ocr) [inputs]: Move leptonica to ...
[propagated-inputs]: ... here.
---
 gnu/packages/ocr.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm
index dc690f3cef..b4bdb99a72 100644
--- a/gnu/packages/ocr.scm
+++ b/gnu/packages/ocr.scm
@@ -65,7 +65,7 @@ it produces text in 8-bit or UTF-8 formats.")
        (sha256
         (base32 "0h1x4z1h86n2gwknd0wck6gykkp99bmm02lg4a47a698g4az6ybv"))))
     (build-system gnu-build-system)
-    (inputs
+    (propagated-inputs
      `(("leptonica" ,leptonica)))
     (arguments
      '(#:configure-flags
-- 
2.26.2


[-- Attachment #1.1.7: 0023-gnu-Add-ccextractor.patch --]
[-- Type: text/x-patch, Size: 2959 bytes --]

From 9cabd4e0c17539573739a23c25ebcd7cb2e0e896 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 12 Jun 2020 13:52:39 -0400
Subject: [PATCH 23/58] gnu: Add ccextractor.

* gnu/packages/gstreamer.scm (ccextractor): New variable.
---
 gnu/packages/gstreamer.scm | 50 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 111d812c14..629136d916 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -30,6 +30,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix utils)
@@ -63,6 +64,7 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages ocr)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
@@ -81,6 +83,54 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
+(define-public ccextractor
+  (package
+    (name "ccextractor")
+    (version "0.88")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/CCExtractor/ccextractor.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sya45hvv4d46bk7541yimmafgvgyhkpsvwfz9kv6pm4yi1lz6nb"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        "-DWITH_FFMPEG=ON"
+        "-DWITH_OCR=ON"
+        ;; XXX: NanoMsg libraries are not being detected.
+        ;; "-DWITH_SHARING=ON"
+        "-DWITH_HARDSUBX=ON")
+       #:phases
+       (modify-phases %standard-phases
+         ;; The package is in a sub-dir of this repo.
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "src")
+             #t)))))
+    (native-inputs
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("ffmeg" ,ffmpeg-3.4)
+       ;; XXX: NanoMsg libraries are not being detected.
+       ;; ("libnanomsg" ,nanomsg)
+       ("ocr" ,tesseract-ocr)
+       ("zlib" ,zlib)))
+    (synopsis "Closed Caption Extractor")
+    (description "CCExtractor is a tool that analyzes video files and produces
+independent subtitle files from the closed captions data.  It is portable, small,
+and very fast.")
+    (home-page "https://www.ccextractor.org/")
+    (license license:gpl2+)))
+
 (define-public libvisual
   (package
     (name "libvisual")
-- 
2.26.2


[-- Attachment #1.1.8: 0024-gnu-Add-libdc1394.patch --]
[-- Type: text/x-patch, Size: 2437 bytes --]

From a5201677879767e998b1fd80b284b64b9510d9d2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 13 Jun 2020 04:21:31 -0400
Subject: [PATCH 24/58] gnu: Add libdc1394.

* gnu/packages/gstreamer.scm (libdc1394): New variable.
---
 gnu/packages/gstreamer.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 629136d916..3c79f9bf16 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -44,6 +44,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
@@ -83,6 +84,40 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
+(define-public libdc1394
+  (package
+    (name "libdc1394")
+    (version "2.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://sourceforge.net/projects/" name "/files/"
+                              name "-2" "/" version "/" name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1v8gq54n1pg8izn7s15yylwjf8r1l1dmzbm2yvf6pv2fmb4mz41b"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glu" ,glu)
+       ("libraw1394" ,libraw1394)
+       ("libusb" ,libusb)
+       ("libxv" ,libxv)
+       ("linux-headers" ,linux-libre-headers)
+       ("mesa" ,mesa)
+       ("sdl" ,sdl)
+       ("v4l" ,v4l-utils)))
+    (synopsis "1394-Based Digital Camera Control Library")
+    (description "LibDC1394 is a library that provides functionality to control
+any camera that conforms to the 1394-Based Digital Camera Specification written
+by the 1394 Trade Association.  It utilizes the lowlevel functionality provided
+by libraw1394 to communicate with the camera.  It also uses the video1394 kernel
+module for the DMA capture of the video flow.")
+    (home-page "https://damien.douxchamps.net/ieee1394/libdc1394/")
+    (license license:lgpl2.0+)))
+
 (define-public ccextractor
   (package
     (name "ccextractor")
-- 
2.26.2


[-- Attachment #1.1.9: 0025-gnu-Add-libmpeg3.patch --]
[-- Type: text/x-patch, Size: 2082 bytes --]

From 62f92baef8eee07452d83cd30cd8a65a2048cb8e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 13 Jun 2020 08:01:01 -0400
Subject: [PATCH 25/58] gnu: Add libmpeg3.

* gnu/packages/video.scm (libmpeg3): New variable.
---
 gnu/packages/video.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 152f356914..ae2fbcf12b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -167,6 +167,39 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public libmpeg3
+  (package
+    (name "libmpeg3")
+    (version "1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/heroines/files/"
+                       "releases/081108/" name "-" version "-src.tar.bz2"))
+       (sha256
+        (base32 "1i53vv0wm5qfwgg1z7j9g14s6c7gxxkiy4vbdkq3lijjyyz50vv5"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-install-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (string-append (assoc-ref outputs "out"))))
+               (mkdir-p (string-append out "/bin"))
+               (substitute* "Makefile"
+                 (("DST=/usr/bin")
+                  (string-append "DST=" out "/bin")))
+               #t))))))
+    (synopsis "Advanced MPEG editing and manipulation library")
+    (description "Libmpeg3 decodes MP2, MP3, AC3, MPEG-1 video, MPEG-2 video,
+and DVD footage in a single library.  It supports many esoteric features like
+parallel video decoding, frame-accurate editing, YUV 4:2:2, and ATSC transport
+stream decoding")
+    (home-page "http://heroinewarrior.com/libmpeg3.php")
+    (license license:gpl2+)))
+
 (define-public aalib
   (package
     (name "aalib")
-- 
2.26.2


[-- Attachment #1.1.10: 0026-gnu-Add-tslib.patch --]
[-- Type: text/x-patch, Size: 1732 bytes --]

From 5a66322fea248f4f73b0b0e2f47d0a6dea446560 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 13 Jun 2020 09:00:10 -0400
Subject: [PATCH 26/58] gnu: Add tslib.

* gnu/packages/video.scm (tslib): New variable.
---
 gnu/packages/video.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index ae2fbcf12b..1fd4e2c010 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -167,6 +167,37 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public tslib
+  (package
+    (name "tslib")
+    (version "1.21")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/libts/tslib.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ph51vpfp92rpa2vs6wkz1b1pcs3z334p1i33sprsi8mjlwvkbzc"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f))                    ; No target
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("linux-headers" ,linux-libre-headers)
+       ("sdl" ,sdl)))
+    (synopsis "Touchscreen access library")
+    (description "TSLib is a cross-platform library that provides access to
+touchscreen devices and the ability to apply filters to their input events.")
+    (home-page "http://www.tslib.org/")
+    (license license:lgpl2.1+)))
+
 (define-public libmpeg3
   (package
     (name "libmpeg3")
-- 
2.26.2


[-- Attachment #1.1.11: 0027-gnu-Add-flux.patch --]
[-- Type: text/x-patch, Size: 2487 bytes --]

From ac054a47a0d8cee58fd4d459de200b89bea82c0d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 13 Jun 2020 09:02:06 -0400
Subject: [PATCH 27/58] gnu: Add flux.

* gnu/packages/graphics.scm (flux): New variable.
---
 gnu/packages/graphics.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 664e3fab45..e1fb49d611 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -49,6 +49,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages ghostscript)
@@ -61,6 +62,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -78,6 +80,7 @@
   #:use-module (gnu packages video)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
@@ -88,6 +91,32 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public flux
+  (package
+    (name "flux")
+    (version "0.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/deniskropp/flux.git")
+         (commit "e45758a")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11f3ypg0sdq5kj69zgz6kih1yrzgm48r16spyvzwvlswng147410"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Interface description language")
+    (description "Flux is an interface description language used by DirectFB.
+Fluxcomp compiles .flux files to .cpp or .c files.")
+    (home-page "http://www.directfb.org/")
+    (license license:lgpl2.1+))) ; Same as DirectFB
+
 (define-public fox
   (package
     (name "fox")
-- 
2.26.2


[-- Attachment #1.1.12: 0028-gnu-Add-libtimidity.patch --]
[-- Type: text/x-patch, Size: 1775 bytes --]

From b7e2cd73adc1a1719c1d8034174b064c1811aac7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 13 Jun 2020 09:39:04 -0400
Subject: [PATCH 28/58] gnu: Add libtimidity.

* gnu/packages/audio.scm (libtimidity): New variable.
---
 gnu/packages/audio.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 4f1667b9d5..783196061e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -126,6 +126,35 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public libtimidity
+  (package
+    (name "libtimidity")
+    (version "0.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0p2px0m907gi1zpdr0l9adq25jl89j85c11ag9s2g4yc6n1nhgfm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f))   ; Tests require the package's own 'play' binary
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (synopsis "MIDI to WAVE converter library")
+    (description "LibTiMidity is a MIDI to WAVE converter library that uses
+Gravis Ultrasound-compatible patch files to generate digital audio data from
+General MIDI files.")
+    (home-page "http://libtimidity.sourceforge.net/")
+    (license
+     ;; This project is dual-licensed.
+     ;; Either of the following licenses can be exercised.
+     (list
+      license:lgpl2.1+
+      license:artistic2.0))))
+
 (define-public vo-amrwbenc
   (package
     (name "vo-amrwbenc")
-- 
2.26.2


[-- Attachment #1.1.13: 0029-gnu-Add-directfb.patch --]
[-- Type: text/x-patch, Size: 4172 bytes --]

From 286f4117f2802dccd5fc13158365fca88de8724a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 13 Jun 2020 10:45:16 -0400
Subject: [PATCH 29/58] gnu: Add directfb.

* gnu/packages/graphics.scm (directfb): New variable.
---
 gnu/packages/graphics.scm | 74 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index e1fb49d611..69eb7b00a7 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -45,6 +45,7 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
@@ -57,12 +58,14 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -78,6 +81,7 @@
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
@@ -117,6 +121,76 @@ Fluxcomp compiles .flux files to .cpp or .c files.")
     (home-page "http://www.directfb.org/")
     (license license:lgpl2.1+))) ; Same as DirectFB
 
+(define-public directfb
+  (package
+    (name "directfb")
+    (version "1.7.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/deniskropp/DirectFB.git")
+         (commit "DIRECTFB_1_7_7")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0bs3yzb7hy3mgydrj8ycg7pllrd2b6j0gxj596inyr7ihssr3i0y"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-configure-during-bootstrap
+           (lambda _
+             (substitute* "autogen.sh"
+               (("^.*\\$srcdir/configure.*") ""))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("ffmpeg" ,ffmpeg)
+       ("freetype" ,freetype)
+       ("glu" ,glu)
+       ("gstreamer" ,gstreamer)
+       ("imlib2" ,imlib2)
+       ("jasper" ,jasper)
+       ("jpeg" ,libjpeg-turbo)
+       ("libcddb" ,libcddb)
+       ("libdrm" ,libdrm)
+       ("libtimidity" ,libtimidity)
+       ("linux-headers" ,linux-libre-headers)
+       ("mad" ,libmad)
+       ("mng" ,libmng)
+       ("mpeg2" ,libmpeg2)
+       ("mpeg3" ,libmpeg3)
+       ("opengl" ,mesa)
+       ("png" ,libpng)
+       ("sdl" ,sdl)
+       ("svg" ,librsvg)
+       ("tiff" ,libtiff)
+       ("tslib" ,tslib)
+       ("vdpau" ,libvdpau)
+       ("vorbisfile" ,libvorbis)
+       ("wayland" ,wayland)
+       ("webp" ,libwebp)
+       ("x11" ,libx11)
+       ("xcomposite" ,libxcomposite)
+       ("xext" ,libxext)
+       ("xproto" ,xorgproto)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("flux" ,flux)))
+    (synopsis "DFB Graphics Library")
+    (description "DirectFB is a graphics library which was designed with embedded
+systems in mind.  It offers maximum hardware accelerated performance at a
+minimum of resource usage and overhead.")
+    (home-page "http://www.directfb.org/")
+    (license license:lgpl2.1+)))
+
 (define-public fox
   (package
     (name "fox")
-- 
2.26.2


[-- Attachment #1.1.14: 0030-gnu-Add-faac.patch --]
[-- Type: text/x-patch, Size: 1566 bytes --]

From ee070b29cea93c7ec4640353af173521f5f9998b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 14 Jun 2020 01:31:46 -0400
Subject: [PATCH 30/58] gnu: Add faac.

* gnu/packages/audio.scm (faac): New variable.
---
 gnu/packages/audio.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 783196061e..304cc15165 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -126,6 +126,34 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public faac
+  (package
+    (name "faac")
+    (version "1.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/faac/files/faac-src/"
+                       "faac-1.30/faac-1_30.tar.gz/download"))
+       (sha256
+        (base32 "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Freeware Advanced Audio Coder")
+    (description "FAAC is an MPEG-4 and MPEG-2 AAC encoder.")
+    (home-page "https://www.audiocoding.com/faac.html")
+    (license
+     (list
+      ;; Newer code.
+      license:lgpl2.0+
+      ;; Older code.
+      license:gpl2+))))
+
 (define-public libtimidity
   (package
     (name "libtimidity")
-- 
2.26.2


[-- Attachment #1.1.15: 0031-gnu-faad2-Update-to-2.8.8.patch --]
[-- Type: text/x-patch, Size: 2121 bytes --]

From d258adea8766a7b2c5670b73cf3f70aa4599876e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 14 Jun 2020 01:39:05 -0400
Subject: [PATCH 31/58] gnu: faad2: Update to 2.8.8.

* gnu/packages/audio.scm (faad2): Update package definition.
[version]: Update to 2.8.8.
[source]<origin>[sha256]: Modify base32.
[synopsis]: Modify.
[description]: Modify.
[license]: Update to gpl2+.
---
 gnu/packages/audio.scm | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 304cc15165..50f6c44290 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -1359,22 +1359,21 @@ also play midifiles using a Soundfont.")
 (define-public faad2
   (package
     (name "faad2")
-    (version "2.8.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
-                                  (version-major+minor version) ".0/"
-                                  "faad2-" version ".tar.gz"))
-              (sha256
-               (base32
-                "089zqykqgmmysznvk0bi2pfvdqwclnn540d0zks83sv2pynpfjb5"))))
+    (version "2.8.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
+                       (version-major+minor version) ".0/"
+                       "faad2-" version ".tar.gz"))
+       (sha256
+        (base32 "0va284hndhn0ynm4lyn219qw4y8wa4agfkqgwlaji7bqp6nkyp4q"))))
     (build-system gnu-build-system)
+    (synopsis "Freeware Advanced Audio Decoder")
+    (description "FAAD2 is a MPEG-4 and MPEG-2 AAC decoder.")
     (home-page "https://www.audiocoding.com/faad2.html")
-    (synopsis "MPEG-4 and MPEG-2 AAC decoder")
-    (description
-     "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
-PS, and DAB+.")
-    (license license:gpl2)))
+    (license license:gpl2+)))
 
 (define-public faust
   (package
-- 
2.26.2


[-- Attachment #1.1.16: 0032-gnu-Add-flite.patch --]
[-- Type: text/x-patch, Size: 1805 bytes --]

From 74c3d4dbc13b8b014991578f08d1b62cc43c2b66 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 14 Jun 2020 02:39:41 -0400
Subject: [PATCH 32/58] gnu: Add flite.

* gnu/packages/speech.scm (flite): New variable.
---
 gnu/packages/speech.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index c9c1eaa8d9..78a13df9f2 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -50,6 +50,34 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils))
 
+(define-public flite
+  (package
+    (name "flite")
+    (version "2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://www.festvox.org/" name "/packed/" name
+                       "-" version "/" name "-" version "-release.tar.bz2"))
+       (sha256
+        (base32 "119b7l7pjb1l5raqq24p8rmhdqni49vjh2mgdryrfr575rm3yg67"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f))                    ; No target
+    (native-inputs
+     `(("perl" ,perl)))
+    (inputs
+     `(("alsa" ,alsa-lib)))
+    (synopsis "Speech synthesis system")
+    (description "Flite (festival-lite) is a small, fast run-time text to speech
+synthesis engine developed at CMU and primarily designed for small embedded
+machines and/or large servers.  It is designed as an alternative text to speech
+synthesis engine to Festival for voices built using the FestVox suite of voice
+building tools.")
+    (home-page "http://www.festvox.org/flite/index.html")
+    (license (license:non-copyleft "file://COPYING"))))
+
 (define-public espeak
   (package
     (name "espeak")
-- 
2.26.2


[-- Attachment #1.1.17: 0033-gnu-Add-libvideogfx.patch --]
[-- Type: text/x-patch, Size: 1927 bytes --]

From e77c1722dd4f69f9743ebd1d5c25f76cfc5aad5f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 14 Jun 2020 05:03:08 -0400
Subject: [PATCH 33/58] gnu: Add libvideogfx.

* gnu/packages/video.scm (libvideogfx): New variable.
---
 gnu/packages/video.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 1fd4e2c010..abeea4c5a5 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -167,6 +167,40 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public libvideogfx
+  (package
+    (name "libvideogfx")
+    (version "1.0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/farindk/libvideogfx.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "154b0j8cfg879pg08xcbwvbz8z9nrfnyj31i48vxir1psas70ynq"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (inputs
+     `( ;; XXX: Build fails with ffmpeg.
+       ;;("ffmpeg" ,ffmpeg)
+       ("jpeg" ,libjpeg-turbo)
+       ;; XXX: Build fails with libpng.
+       ;;("png" libpng)
+       ("x11" ,libx11)
+       ("xext" ,libxext)))
+    (synopsis "Video processing library")
+    (description "LibVideoGfx is a C++ library for low-level video processing.
+It aims at speeding up the development process for image and video processing
+applications by providing high-level classes for commonly required tasks.")
+    (home-page "https://github.com/farindk/libvideogfx")
+    (license license:lgpl2.1+)))
+
 (define-public tslib
   (package
     (name "tslib")
-- 
2.26.2


[-- Attachment #1.1.18: 0034-gnu-Add-libde265.patch --]
[-- Type: text/x-patch, Size: 2052 bytes --]

From 60148b1ebfeebe0776a5c49d32a47aba5f038848 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 14 Jun 2020 05:14:58 -0400
Subject: [PATCH 34/58] gnu: Add libde265.

* gnu/packages/video.scm (libde265): New variable.
---
 gnu/packages/video.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index abeea4c5a5..aee032bd4c 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -201,6 +201,45 @@ applications by providing high-level classes for commonly required tasks.")
     (home-page "https://github.com/farindk/libvideogfx")
     (license license:lgpl2.1+)))
 
+(define-public libde265
+  (package
+    (name "libde265")
+    (version "1.0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/strukturag/libde265.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qisj8ryzbknam3hk81rq70fsd9mcpxm898bqygvbsmbwyvmz3pg"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `( ;; XXX: Build fails with libvideogfx.
+       ;;("libvideogfx" ,libvideogfx)
+       ("qt" ,qtbase)
+       ("sdl" ,sdl)
+       ("swscale" ,ffmpeg)))
+    (synopsis "H.265 video codec implementation")
+    (description "Libde265 is an implementation of the h.265 video codec.  It is
+written from scratch and has a plain C API to enable a simple integration into
+other software.")
+    (home-page "https://www.libde265.org/")
+    (license
+     (list
+      ;; Applications.
+      license:expat
+      ;; Library.
+      license:lgpl3+))))
+
 (define-public tslib
   (package
     (name "tslib")
-- 
2.26.2


[-- Attachment #1.1.19: 0035-gnu-Add-libmms.patch --]
[-- Type: text/x-patch, Size: 1380 bytes --]

From 2f10cf64ba03189e3a0deac94cd171b951a0838c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 14 Jun 2020 05:29:52 -0400
Subject: [PATCH 35/58] gnu: Add libmms.

* gnu/packages/video.scm (libmms): New variable.
---
 gnu/packages/video.scm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index aee032bd4c..d20d2e1105 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -167,6 +167,25 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public libmms
+  (package
+    (name "libmms")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kvhxr5hkabj9v7ah2rzkbirndfqdijd9hp8v52c1z6bxddf019w"))))
+    (build-system gnu-build-system)
+    (synopsis "MMS stream protocol library")
+    (description "Libmms is a library for streaming media files using the mmst
+and mmsh protocols.")
+    (home-page "https://sourceforge.net/projects/libmms/")
+    (license license:lgpl2.1+)))
+
 (define-public libvideogfx
   (package
     (name "libvideogfx")
-- 
2.26.2


[-- Attachment #1.1.20: 0036-gnu-Add-schroedinger.patch --]
[-- Type: text/x-patch, Size: 2497 bytes --]

From 8017e0ff6b62d38fa2fa5d1079c7109bb1f7b73e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 14 Jun 2020 06:30:17 -0400
Subject: [PATCH 36/58] gnu: Add schroedinger.

* gnu/packages/video.scm (schroedinger): New variable.
---
 gnu/packages/video.scm | 49 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d20d2e1105..bdba104c05 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -167,6 +167,55 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public schroedinger
+  (package
+    (name "schroedinger")
+    (version "1.0.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://launchpad.net/" name "/trunk/" version
+                       "/+download/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04prr667l4sn4zx256v1z36a0nnkxfdqyln48rbwlamr6l3jlmqy"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (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
+     `(("dash" ,dash)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glew" ,glew)
+       ("opengl" ,mesa)))
+    (propagated-inputs
+     `(("orc" ,orc)))
+    (synopsis "Dirac video codec")
+    (description "Schroedinger is a project implementing the Dirac video codec in
+ANSI C code.  It is meant to be highly optimized and portable.  It is developed
+as a joint effort between the BBC and Fluendo.")
+    (home-page "https://launchpad.net/schroedinger")
+    (license
+     ;; This library is licensed under 4 different licenses,
+     ;; and you can choose to use it under the terms of any one of them.
+     (list
+      license:gpl2+
+      license:lgpl2.0+
+      license:expat
+      license:mpl1.1))))
+
 (define-public libmms
   (package
     (name "libmms")
-- 
2.26.2


[-- Attachment #1.1.21: 0037-gnu-Add-libquicktime.patch --]
[-- Type: text/x-patch, Size: 1997 bytes --]

From 6a404e468476632362c60c5ef2e7a2a943d03c79 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 14 Jun 2020 06:46:31 -0400
Subject: [PATCH 37/58] gnu: Add libquicktime.

* gnu/packages/video.scm (libquicktime): New variable.
---
 gnu/packages/video.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index bdba104c05..d9c6b4ef93 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -216,6 +216,45 @@ as a joint effort between the BBC and Fluendo.")
       license:expat
       license:mpl1.1))))
 
+(define-public libquicktime
+  (package
+    (name "libquicktime")
+    (version "1.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0s3kshzl3zfjw3phzv73r91fkr9z8q8kc3dhsys4f4xk6ff3alqw"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ;; XXX: Build fails with ffmpeg.
+       ;;("ffmpeg" ,ffmpeg)
+       ("gtk+-2" ,gtk+-2)
+       ("lame" ,lame)
+       ("libdv" ,libdv)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("libvorbis" ,libvorbis)
+       ("opengl" ,mesa)
+       ("schroedinger" ,schroedinger)
+       ("x11" ,libx11)
+       ("x264" ,libx264)
+       ("xaw" ,libxaw)
+       ("xv" ,libxv)))
+    (synopsis "Quick Time Library")
+    (description "The goal of this project is to enhance the quicktime4linux
+library.")
+    (home-page "http://libquicktime.sourceforge.net/")
+    (license license:lgpl2.1+)))
+
 (define-public libmms
   (package
     (name "libmms")
-- 
2.26.2


[-- Attachment #1.1.22: 0038-gnu-Add-mjpegtools.patch --]
[-- Type: text/x-patch, Size: 1670 bytes --]

From ae87e89c55247e874eafbf27d2b60a4b5328eee2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 14 Jun 2020 06:51:43 -0400
Subject: [PATCH 38/58] gnu: Add mjpegtools.

* gnu/packages/video.scm (mjpegtools): New variable.
---
 gnu/packages/video.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d9c6b4ef93..ad34a4a310 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -255,6 +255,32 @@ library.")
     (home-page "http://libquicktime.sourceforge.net/")
     (license license:lgpl2.1+)))
 
+(define-public mjpegtools
+  (package
+    (name "mjpegtools")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kvhxr5hkabj9v7ah2rzkbirndfqdijd9hp8v52c1z6bxddf019w"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gtk+-2" ,gtk+-2)
+       ("libdv" ,libdv)
+       ("libpng" ,libpng)
+       ("libquicktime" ,libquicktime)
+       ("sdl" ,sdl)))
+    (synopsis "Tools for handling MPEG")
+    (description "Mjpeg tools is a suite of programs which support video capture,
+editing, playback, and compression to MPEG of MJPEG video.  Edit, play and
+compression software is hardware independent.")
+    (home-page "http://mjpeg.sourceforge.net/")
+    (license license:gpl2+)))
+
 (define-public libmms
   (package
     (name "libmms")
-- 
2.26.2


[-- Attachment #1.1.23: 0039-gnu-Add-mediasdk.patch --]
[-- Type: text/x-patch, Size: 2151 bytes --]

From 35f22cc61fe57399bcb8ebadf68e6e82e6e83916 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 15 Jun 2020 02:19:52 -0400
Subject: [PATCH 39/58] gnu: Add mediasdk.

* gnu/packages/video.scm (mediasdk): New variable.
---
 gnu/packages/video.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index ad34a4a310..fd688b0906 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -167,6 +167,48 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public mediasdk
+  (package
+    (name "mediasdk")
+    (version "20.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Intel-Media-SDK/MediaSDK.git")
+         (commit (string-append "intel-" name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0blwcxr5j8762nylx2cxrq0h53bpgnk859dbs6crq4wr9fcxlx9z"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DENABLE_X11=ON"
+        "-DENABLE_X11_DRI3=ON"
+        "-DENABLE_WAYLAND=ON"
+        "-DENABLE_TEXTLOG=ON"
+        "-DENABLE_STAT=ON"
+        "-DBUILD_TESTS=ON"
+        "-DBUILD_TOOLS=ON")
+       ;; XXX: RUNPATH lacks entries for some libraries.
+       #:validate-runpath? #f))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("libdrm" ,libdrm)
+       ("libva" ,libva)
+       ("pciaccess" ,libpciaccess)
+       ("wayland" ,wayland)
+       ("x11" ,libx11)))
+    (synopsis "Intel Media SDK")
+    (description "MediaSDK provides a plain C API to access hardware-accelerated
+video decode, encode and filtering on Intel's Gen graphics hardware platforms.")
+    (home-page "http://mediasdk.intel.com/")
+    (license (license:non-copyleft "file://LICENSE"))))
+
 (define-public schroedinger
   (package
     (name "schroedinger")
-- 
2.26.2


[-- Attachment #1.1.24: 0040-gnu-Add-libofa.patch --]
[-- Type: text/x-patch, Size: 11738 bytes --]

From 9fd0ab99df6a385e337cf29e06f9727ba3d335af Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 16 Jun 2020 12:21:56 -0400
Subject: [PATCH 40/58] gnu: Add libofa.

* gnu/packages/audio.scm (libofa): New variable.
---
 gnu/packages/audio.scm             | 31 ++++++++++++++++++++
 gnu/packages/patches/libofa-1.diff | 39 ++++++++++++++++++++++++++
 gnu/packages/patches/libofa-2.diff | 20 +++++++++++++
 gnu/packages/patches/libofa-3.diff | 16 +++++++++++
 gnu/packages/patches/libofa-4.diff | 14 ++++++++++
 gnu/packages/patches/libofa-5.diff | 45 ++++++++++++++++++++++++++++++
 gnu/packages/patches/libofa-6.diff | 20 +++++++++++++
 gnu/packages/patches/libofa-7.diff | 15 ++++++++++
 gnu/packages/patches/libofa-8.diff | 27 ++++++++++++++++++
 gnu/packages/patches/libofa-9.diff | 18 ++++++++++++
 10 files changed, 245 insertions(+)
 create mode 100644 gnu/packages/patches/libofa-1.diff
 create mode 100644 gnu/packages/patches/libofa-2.diff
 create mode 100644 gnu/packages/patches/libofa-3.diff
 create mode 100644 gnu/packages/patches/libofa-4.diff
 create mode 100644 gnu/packages/patches/libofa-5.diff
 create mode 100644 gnu/packages/patches/libofa-6.diff
 create mode 100644 gnu/packages/patches/libofa-7.diff
 create mode 100644 gnu/packages/patches/libofa-8.diff
 create mode 100644 gnu/packages/patches/libofa-9.diff

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 50f6c44290..df1f071925 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -126,6 +126,37 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public libofa
+  (package
+    (name "libofa")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://storage.googleapis.com/"
+                       "google-code-archive-downloads/v2/code.google.com/"
+                       "musicip-libofa/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "184ham039l7lwhfgg0xr2vch2xnw1lwh7sid432mh879adhlc5h2"))
+       (patches
+        (search-patches "libofa-1.diff" "libofa-2.diff" "libofa-3.diff"
+                        "libofa-4.diff" "libofa-5.diff" "libofa-6.diff"
+                        "libofa-7.diff" "libofa-8.diff" "libofa-9.diff"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("expat" ,expat)))
+    (propagated-inputs
+     `(("fftw" ,fftw)))
+    (synopsis "Open Fingerprint Architecture")
+    (description "LibOFA is an audio fingerprint library, created and provided
+by MusicIP.")
+    (home-page "https://code.google.com/archive/p/musicip-libofa/")
+    (license license:gpl2+)))
+
 (define-public faac
   (package
     (name "faac")
diff --git a/gnu/packages/patches/libofa-1.diff b/gnu/packages/patches/libofa-1.diff
new file mode 100644
index 0000000000..85646fbcee
--- /dev/null
+++ b/gnu/packages/patches/libofa-1.diff
@@ -0,0 +1,39 @@
+Description: fix building over GCC 4.1.
+Author: Lukáš Lalinský <lalinsky@gmail.com>
+Last-Update: 2006-07-23
+Index: libofa-0.9.3/lib/JAMA/tnt_math_utils.h
+===================================================================
+--- libofa-0.9.3.orig/lib/JAMA/tnt_math_utils.h
++++ libofa-0.9.3/lib/JAMA/tnt_math_utils.h
+@@ -20,6 +20,15 @@ inline const _Tp& max(const _Tp& __a, co
+ namespace TNT
+ {
+ /**
++	@returns the absolute value of a real (no-complex) scalar.
++*/
++template <class Real>
++Real abs(const Real &a)
++{
++	return  (a > 0 ? a : -a);
++}
++
++/**
+ 	@returns hypotenuse of real (non-complex) scalars a and b by 
+ 	avoiding underflow/overflow
+ 	using (a * sqrt( 1 + (b/a) * (b/a))), rather than
+@@ -56,15 +65,6 @@ Scalar max(const Scalar &a, const Scalar
+ }
+ */
+ 
+-/**
+-	@returns the absolute value of a real (no-complex) scalar.
+-*/
+-template <class Real>
+-Real abs(const Real &a)
+-{
+-	return  (a > 0 ? a : -a);
+-}
+-
+ }
+ #endif
+ /* MATH_UTILS_H */
diff --git a/gnu/packages/patches/libofa-2.diff b/gnu/packages/patches/libofa-2.diff
new file mode 100644
index 0000000000..43e23c7015
--- /dev/null
+++ b/gnu/packages/patches/libofa-2.diff
@@ -0,0 +1,20 @@
+Description: fix an issue.
+Author: Lukáš Lalinský <lalinsky@gmail.com>
+Last-Update: 2006-08-22
+Index: libofa-0.9.3/examples/wavefile.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/wavefile.cpp
++++ libofa-0.9.3/examples/wavefile.cpp
+@@ -42,7 +42,11 @@ AudioData* loadWaveFile(char *file) {
+     int srate = 0;
+     int channels = 0;
+ 
+-    int fd = open(file, O_RDONLY | 0x8000);
++#ifdef WIN32
++    int fd = open(file, O_RDONLY | O_BINARY);
++#else
++    int fd = open(file, O_RDONLY);
++#endif
+     if (fd == -1)
+ 	return 0;
+ 
diff --git a/gnu/packages/patches/libofa-3.diff b/gnu/packages/patches/libofa-3.diff
new file mode 100644
index 0000000000..9a0efde52f
--- /dev/null
+++ b/gnu/packages/patches/libofa-3.diff
@@ -0,0 +1,16 @@
+Description: fix an issue.
+Author: Lukáš Lalinský <lalinsky@gmail.com>
+Last-Update: 2006-08-27
+Index: libofa-0.9.3/examples/protocol.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/protocol.cpp
++++ libofa-0.9.3/examples/protocol.cpp
+@@ -258,7 +258,7 @@ bool retrieve_metadata(string client_key
+     }
+     // printf("response: %s\n\n", response.c_str());
+ 
+-    unsigned int q = response.find("<?xml");
++    string::size_type q = response.find("<?xml");
+     if (q != string::npos) {
+         response = response.substr(q);
+     }
diff --git a/gnu/packages/patches/libofa-4.diff b/gnu/packages/patches/libofa-4.diff
new file mode 100644
index 0000000000..18a28df7ef
--- /dev/null
+++ b/gnu/packages/patches/libofa-4.diff
@@ -0,0 +1,14 @@
+Description: remove -lexpat from libofa.pc. (Closes: #417389)
+Author: Lukáš Lalinský <lalinsky@gmail.com>
+Last-Update: 2007-05-19
+Index: libofa-0.9.3/libofa.pc.in
+===================================================================
+--- libofa-0.9.3.orig/libofa.pc.in
++++ libofa-0.9.3/libofa.pc.in
+@@ -8,5 +8,5 @@ Description: The Open Fingerprint Archit
+ URL: http://www.musicdns.org/
+ Version: @VERSION@
+ Requires: fftw3
+-Libs: -L${libdir} -lofa -lexpat -lm
++Libs: -L${libdir} -lofa -lm
+ Cflags: -I${includedir}
diff --git a/gnu/packages/patches/libofa-5.diff b/gnu/packages/patches/libofa-5.diff
new file mode 100644
index 0000000000..4aa712320c
--- /dev/null
+++ b/gnu/packages/patches/libofa-5.diff
@@ -0,0 +1,45 @@
+Description: fix FTBFS with GCC 4.3. (Closes: #417355)
+Author: Martin Michlmayr <tbm@cyrius.com>
+Last-Update: 2007-04-02
+
+Description: add a missing include. (Closes: #441557)
+Author: Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
+Last-Update: 2007-12-29
+
+Index: libofa-0.9.3/lib/signal_op.cpp
+===================================================================
+--- libofa-0.9.3.orig/lib/signal_op.cpp
++++ libofa-0.9.3/lib/signal_op.cpp
+@@ -12,6 +12,7 @@
+ // DATE CREATED: 1/12/06
+ 
+ 
++#include <cstdlib>
+ #include <math.h>
+ #include "signal_op.h"
+ #include "AFLIB/aflibConverter.h"
+Index: libofa-0.9.3/examples/example.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/example.cpp
++++ libofa-0.9.3/examples/example.cpp
+@@ -8,6 +8,8 @@
+ -------------------------------------------------------------------*/
+ 
+ #include "protocol.h"
++#include <cctype>
++#include <string.h>
+ 
+ AudioData* loadWaveFile(char *file);
+ AudioData* loadDataUsingLAME(char *file);
+Index: libofa-0.9.3/examples/protocol.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/protocol.cpp
++++ libofa-0.9.3/examples/protocol.cpp
+@@ -8,6 +8,7 @@
+ -------------------------------------------------------------------*/
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <cstring>
+ #include <string>
+ #include <map>
+ #include <expat.h>
diff --git a/gnu/packages/patches/libofa-6.diff b/gnu/packages/patches/libofa-6.diff
new file mode 100644
index 0000000000..473750bc3c
--- /dev/null
+++ b/gnu/packages/patches/libofa-6.diff
@@ -0,0 +1,20 @@
+From: Martin Michlmayr <tbm@cyrius.com>
+Subject: FTBFS with GCC 4.4: missing #include
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504902
+Forwarded: no
+---
+ examples/example.cpp |    1 +
+ 1 file changed, 1 insertion(+)
+
+Index: libofa-0.9.3/examples/example.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/example.cpp
++++ libofa-0.9.3/examples/example.cpp
+@@ -8,6 +8,7 @@
+ -------------------------------------------------------------------*/
+ 
+ #include "protocol.h"
++#include <cstdio>
+ #include <cctype>
+ #include <string.h>
+ 
diff --git a/gnu/packages/patches/libofa-7.diff b/gnu/packages/patches/libofa-7.diff
new file mode 100644
index 0000000000..6b1e824fad
--- /dev/null
+++ b/gnu/packages/patches/libofa-7.diff
@@ -0,0 +1,15 @@
+Description: Fix FTBFS due to unexisting and useless include. (Closes: #637896)
+Author: Regis Boudin <regis@debian.org>
+Last-Update: 2011-10-03
+Index: libofa-0.9.3/examples/protocol.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/protocol.cpp
++++ libofa-0.9.3/examples/protocol.cpp
+@@ -13,7 +13,6 @@
+ #include <map>
+ #include <expat.h>
+ #include <curl/curl.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+ 
+ using namespace std;
diff --git a/gnu/packages/patches/libofa-8.diff b/gnu/packages/patches/libofa-8.diff
new file mode 100644
index 0000000000..ad61573578
--- /dev/null
+++ b/gnu/packages/patches/libofa-8.diff
@@ -0,0 +1,27 @@
+Description: ftbfs with GCC-4.7. (Closes: #667250)
+Author: Matthias Klose <doko@debian.org>
+Last-Update: 2012-04-17
+Index: libofa-0.9.3/examples/uselame.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/uselame.cpp
++++ libofa-0.9.3/examples/uselame.cpp
+@@ -11,6 +11,7 @@
+ #include "windows.h"
+ #else
+ #include <sys/wait.h>
++#include <unistd.h>
+ #endif
+ 
+ AudioData *loadWaveFile(char *file);
+Index: libofa-0.9.3/examples/wavefile.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/wavefile.cpp
++++ libofa-0.9.3/examples/wavefile.cpp
+@@ -11,6 +11,7 @@
+ #include "io.h"
+ #endif
+ #include <fcntl.h>
++#include <unistd.h>
+ 
+ static bool readBytes(int fd, unsigned char *buf, int size) {
+     int ct = 0;
diff --git a/gnu/packages/patches/libofa-9.diff b/gnu/packages/patches/libofa-9.diff
new file mode 100644
index 0000000000..738597b519
--- /dev/null
+++ b/gnu/packages/patches/libofa-9.diff
@@ -0,0 +1,18 @@
+Description: use new macro for initializing libltdl
+ Use LTDL_INIT([convenience]) instead of AC_LIBLTDL_CONVENIENCE to fix FTBFS
+ while autoreconfing.
+Author: Logan Rosen <logan@ubuntu.com>
+Last-Update: <2014-01-04>
+Index: libofa-0.9.3/configure.in
+===================================================================
+--- libofa-0.9.3.orig/configure.in
++++ libofa-0.9.3/configure.in
+@@ -28,7 +28,7 @@ dnl Checks for programs.
+ AC_PREREQ(2.52)
+ AC_PROG_AWK
+ AC_PROG_CC
+-AC_LIBLTDL_CONVENIENCE
++LTDL_INIT([convenience])
+ AM_PROG_LIBTOOL
+ AC_SUBST(LIBTOOL_DEPS)  
+ AC_PROG_CXX
-- 
2.26.2


[-- Attachment #1.1.25: 0041-gnu-Add-libopenmpt.patch --]
[-- Type: text/x-patch, Size: 1860 bytes --]

From 46e168f1399884358d355e5bf6f1fd51f8b87c70 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 16 Jun 2020 13:51:51 -0400
Subject: [PATCH 41/58] gnu: Add libopenmpt.

* gnu/packages/audio.scm (libopenmpt): New variable.
---
 gnu/packages/audio.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index df1f071925..8beb4a8398 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -126,6 +126,40 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public libopenmpt
+  (package
+    (name "libopenmpt")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://download.openmpt.org/archive/" name "/src/"
+                       name "-" version "+release.autotools.tar.gz"))
+       (sha256
+        (base32 "0zl3djy9z7cpqk8g8pxrzmmikxsskb0y5qdabg6c683j7x5abjs3"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("flac" ,flac)
+       ("portaudio" ,portaudio)
+       ("pulseaudio" ,pulseaudio)
+       ("sdl2" ,sdl2)
+       ("sndfile" ,libsndfile)))
+    (propagated-inputs
+     `(("vorbis" ,libvorbis)
+       ("mpg123" ,mpg123)
+       ("zlib" ,zlib)))
+    (synopsis "Audio tracking library")
+    (description "LibOpenMPT is a cross-platform C++ and C module playback
+library.  It is based on the player code of the Open ModPlug Tracker project.")
+    (home-page "https://openmpt.org/")
+    (license (license:non-copyleft "file://LICENSE"))))
+
 (define-public libofa
   (package
     (name "libofa")
-- 
2.26.2


[-- Attachment #1.1.26: 0042-gnu-Add-opensles.patch --]
[-- Type: text/x-patch, Size: 2129 bytes --]

From 950e20952825170d3d24fae976d99d9bbe06dd6b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 17 Jun 2020 08:03:35 -0400
Subject: [PATCH 42/58] gnu: Add opensles.

* gnu/packages/audio.scm (opensles): New variable.
---
 gnu/packages/audio.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8beb4a8398..993ee64455 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -112,6 +112,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -126,6 +127,32 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public opensles
+  (package
+    (name "opensles")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git")
+         (commit "ea5104b")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0j5bm7h3ahz66f23i9abwc0y10agfkpksnj6y078x2nichq66h4f"))))
+    (build-system copy-build-system)
+    (synopsis "Embedded Audio Acceleration")
+    (description "OpenSLES is a royalty-free, cross-platform,
+hardware-accelerated audio API tuned for embedded systems.  It provides a
+standardized, high-performance, low-latency method to access audio
+functionality for developers of native applications on embedded mobile
+multimedia devices, enabling straightforward cross-platform deployment of
+hardware and software audio capabilities, reducing implementation effort, and
+promoting the market for advanced audio.")
+    (home-page "https://www.khronos.org/opensles/")
+    (license (license:non-copyleft "Refer individual files"))))
+
 (define-public libopenmpt
   (package
     (name "libopenmpt")
-- 
2.26.2


[-- Attachment #1.1.27: 0043-gnu-Add-lksctp-tools.patch --]
[-- Type: text/x-patch, Size: 1948 bytes --]

From a24c295775edcf71916f7c6d987c74abcf9e3fd3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 17 Jun 2020 09:58:49 -0400
Subject: [PATCH 43/58] gnu: Add lksctp-tools.

* gnu/packages/networking.scm (lksctp-tools): New variable.
---
 gnu/packages/networking.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 339aa9ab38..c11e3a5bba 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -129,6 +129,41 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public lksctp-tools
+  (package
+    (name "lksctp-tools")
+    (version "1.0.18")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/sctp/lksctp-tools.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1x4fwzrlzvfa3vcpja97m8w5g9ir2zrh4zs7zksminrnmdrs0dsr"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("linux-headers" ,linux-libre-headers)))
+    (synopsis "Linux SCTP helper library")
+    (description "Lksctp-tools project provides a user space library for SCTP
+(libsctp) including C language header files (netinet/sctp.h) for accessing SCTP
+specific application programming interfaces not provided by the standard
+sockets, and also some helper utilities around SCTP.")
+    (home-page "http://lksctp.sourceforge.net/")
+    (license
+     (list
+      ;; Library.
+      license:lgpl2.1+
+      ;; Others.
+      license:gpl2+))))
+
 (define-public nanomsg
   (package
     (name "nanomsg")
-- 
2.26.2


[-- Attachment #1.1.28: 0044-gnu-Add-srt.patch --]
[-- Type: text/x-patch, Size: 2648 bytes --]

From 3ba833d7d6bbed44cfb44429da56f84f6ba36cdf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 17 Jun 2020 13:00:23 -0400
Subject: [PATCH 44/58] gnu: Add srt.

* gnu/packages/networking.scm (srt): New variable.
---
 gnu/packages/networking.scm | 43 +++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index c11e3a5bba..fffcf4f1a5 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -121,14 +121,57 @@
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public srt
+  (package
+    (name "srt")
+    (version "1.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Haivision/srt.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01xaq44j95kbgqfl41pnybvqy0yq6wd4wdw88ckylzf0nzp977xz"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "-DCMAKE_INSTALL_BINDIR="
+                       (assoc-ref %outputs "out") "/bin")
+        (string-append "-DCMAKE_INSTALL_LIBDIR="
+                       (assoc-ref %outputs "out") "/lib")
+        (string-append "-DINSTALL_SHARED_DIR="
+                       (assoc-ref %outputs "out") "/lib")
+        (string-append "-DCMAKE_INSTALL_INCLUDEDIR="
+                       (assoc-ref %outputs "out") "/include")
+        "-DENABLE_UNITTESTS=ON"
+        "-DENABLE_CODE_COVERAGE=ON")))
+    (native-inputs
+     `(("git" ,git-minimal)
+       ("gtest" ,googletest)
+       ("pkg-config" ,pkg-config)
+       ("tclsh" ,tcl)))
+    (propagated-inputs
+     `(("openssl" ,openssl)))
+    (synopsis "Secure Reliable Transport")
+    (description "SRT is a transport technology that optimizes streaming
+performance across unpredictable networks, such as the Internet.")
+    (home-page "https://www.srtalliance.org/")
+    (license license:mpl2.0)))
+
 (define-public lksctp-tools
   (package
     (name "lksctp-tools")
-- 
2.26.2


[-- Attachment #1.1.29: 0045-gnu-Add-svt-hevc.patch --]
[-- Type: text/x-patch, Size: 1774 bytes --]

From 01e1f8eeb2688c960dfa861945bd4691e598f8b0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 17 Jun 2020 13:22:49 -0400
Subject: [PATCH 45/58] gnu: Add svt-hevc.

* gnu/packages/video.scm (svt-hevc): New variable.
---
 gnu/packages/video.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index fd688b0906..2bb4c77f39 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -167,6 +167,34 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public svt-hevc
+  (package
+    (name "svt-hevc")
+    (version "1.4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/OpenVisualCloud/SVT-HEVC.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sqh3dciqm2p1b66kngcpxqy5fx3ramxlxy8gfcbdwn2i3rsqhs7"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f))                    ; No target
+    (native-inputs
+     `(("yasm" ,yasm)))
+    (synopsis "SVT HEVC encoder")
+    (description "Scalable Video Technology (SVT) is a software-based video
+coding technology that is highly optimized for Intel's Xeon processors.  Using
+the SVT-HEVC encoder, it is possible to spread video encoding processing across
+multiple Intel's Xeon processors to achieve a real advantage of processing
+efficiency.")
+    (home-page "https://01.org/svt")
+    (license (license:non-copyleft "file://LICENSE.md"))))
+
 (define-public mediasdk
   (package
     (name "mediasdk")
-- 
2.26.2


[-- Attachment #1.1.30: 0046-gnu-Add-tinyalsa.patch --]
[-- Type: text/x-patch, Size: 2617 bytes --]

From fca9377762504f4fb70bc1427335dafbed4b0fe5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 17 Jun 2020 15:07:02 -0400
Subject: [PATCH 46/58] gnu: Add tinyalsa.

* gnu/packages/audio.scm (tinyalsa): New variable.
---
 gnu/packages/audio.scm | 37 ++++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 993ee64455..17991c43b7 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,31 +127,34 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
-(define-public opensles
+(define-public tinyalsa
   (package
-    (name "opensles")
-    (version "1.1.0")
+    (name "tinyalsa")
+    (version "1.1.1")
     (source
      (origin
        (method git-fetch)
        (uri
         (git-reference
-         (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git")
-         (commit "ea5104b")))
+         (url "https://github.com/tinyalsa/tinyalsa.git")
+         (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0j5bm7h3ahz66f23i9abwc0y10agfkpksnj6y078x2nichq66h4f"))))
-    (build-system copy-build-system)
-    (synopsis "Embedded Audio Acceleration")
-    (description "OpenSLES is a royalty-free, cross-platform,
-hardware-accelerated audio API tuned for embedded systems.  It provides a
-standardized, high-performance, low-latency method to access audio
-functionality for developers of native applications on embedded mobile
-multimedia devices, enabling straightforward cross-platform deployment of
-hardware and software audio capabilities, reducing implementation effort, and
-promoting the market for advanced audio.")
-    (home-page "https://www.khronos.org/opensles/")
-    (license (license:non-copyleft "Refer individual files"))))
+        (base32 "0ajyvml5bnzvhiyyrn42gqwgg23ssxkfh09rvsnywhzxhd0xai4h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))
+       #:make-flags
+       (list
+        (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+    (synopsis "ALSA interfacing library")
+    (description "TinyALSA is a small library to interface with ALSA in the
+Linux kernel.")
+    (home-page "https://github.com/tinyalsa/tinyalsa")
+    (license (license:non-copyleft "file://NOTICE"))))
 
 (define-public libopenmpt
   (package
-- 
2.26.2


[-- Attachment #1.1.31: 0047-gnu-Add-transcode.patch --]
[-- Type: text/x-patch, Size: 3896 bytes --]

From 9244d35ef12b4bd975f2bcd3a5e485aaa8bf7d20 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 17 Jun 2020 16:50:58 -0400
Subject: [PATCH 47/58] gnu: Add transcode.

* gnu/packages/video.scm (transcode): New variable.
---
 gnu/packages/video.scm | 102 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 102 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 2bb4c77f39..e4cfcdfe74 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -167,6 +167,108 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public transcode
+  (package
+    (name "transcode")
+    (version "1.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sources.archlinux.org/other/community/"
+                       name "/" name "-" version ".tar.bz2"))
+       (sha256
+        (base32 "14ha9xjsjrj131f35jd56z5v1jb4rbsrj1nril5shqnxw3c74khy"))
+       (patches
+        (search-patches "transcode-ffmpeg.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-libv4l2"
+        "--enable-libmpeg2"
+        "--enable-libmpeg2convert"
+        "--enable-v4l"
+        ;; XXX: Not available.
+        ;;"--enable-bktr"
+        ;;"--enable-sunau"
+        "--enable-oss"
+        "--enable-alsa"
+        ;; XXX: Not available.
+        ;;"--enable-libpostproc"
+        "--enable-freetype2"
+        "--enable-xvid"
+        "--enable-x264"
+        "--enable-ogg"
+        "--enable-vorbis"
+        "--enable-theora"
+        ;; XXX: Not available.
+        ;;"--enable-pvm3"
+        "--enable-libdv"
+        "--enable-libquicktime"
+        "--enable-lzo"
+        "--enable-a52"
+        "--enable-faac"
+        "--enable-libxml2"
+        ;; XXX: Not available.
+        ;;"--enable-ibp"
+        ;;"--enable-mjpegtools"
+        "--enable-sdl"
+        "--enable-imagemagick"
+        ;; XXX: Not available.
+        ;;"--enable-libjpegmmx"
+        "--enable-libjpeg"
+        ;; XXX: Not available.
+        ;;"--enable-bsdav"
+        ;;"--enable-pv3"
+        ;;"--enable-nuv"
+        )))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("iconv" ,libiconv)
+       ("libtool" ,libtool)
+       ("libxml2" ,libxml2)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("faac" ,faac)
+       ("ffmpeg" ,ffmpeg)
+       ("freetype" ,freetype)
+       ("imagemagick" ,imagemagick)
+       ("lame" ,lame)
+       ("liba52" ,liba52)
+       ("libdv" ,libdv)
+       ("libdvdread" ,libdvdread)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libmpeg2" ,libmpeg2)
+       ("libogg" ,libogg)
+       ("libquicktime" ,libquicktime)
+       ("libtheora" ,libtheora)
+       ("libvorbis" ,libvorbis)
+       ("lzo" ,lzo)
+       ("mjepgtools" ,mjpegtools)
+       ("sdl" ,sdl)
+       ("v4l-utils" ,v4l-utils)
+       ("x11" ,libx11)
+       ("x264" ,libx264)
+       ("xaw" ,libxaw)
+       ("xext" ,libxext)
+       ("xpm" ,libxpm)
+       ("xv" ,libxv)
+       ("xvid" ,xvid)
+       ("zlib" ,zlib)))
+    (synopsis "Audio/Video Transcoder")
+    (description "Transcode is a fast, versatile and command-line based
+audio/video everything to everything converter primarily focussed on producing
+AVI video files with MP3 audio, but also including a program to read all the
+video and audio streams from a DVD.")
+    (home-page
+     "http://linuxfromscratch.org/blfs/view/svn/multimedia/transcode.html")
+    (license license:gpl2+)))
+
 (define-public svt-hevc
   (package
     (name "svt-hevc")
-- 
2.26.2


[-- Attachment #1.1.32: 0048-gnu-Add-vo-aacenc.patch --]
[-- Type: text/x-patch, Size: 1365 bytes --]

From 3f49b0393cb26eb88fe9efc0f25853a3a62de36b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 18 Jun 2020 06:14:20 -0400
Subject: [PATCH 48/58] gnu: Add vo-aacenc.

* gnu/packages/audio.scm (vo-aacenc): New variable.
---
 gnu/packages/audio.scm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 17991c43b7..caeaffff55 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,6 +127,25 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public vo-aacenc
+  (package
+    (name "vo-aacenc")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/opencore-amr/files/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dhghm3c8pqrriwwyj5x9i0yf52fmdfijbgqqkvqvwarldvp86p5"))))
+    (build-system gnu-build-system)
+    (synopsis "VisualOn AAC Encoder")
+    (description "VO-AACENC is the VisualOn implementation of Advanced Audio
+Coding (AAC) encoder.")
+    (home-page "https://sourceforge.net/projects/opencore-amr/")
+    (license license:asl2.0)))
+
 (define-public tinyalsa
   (package
     (name "tinyalsa")
-- 
2.26.2


[-- Attachment #1.1.33: 0049-gnu-Add-webrtc-audio-processing.patch --]
[-- Type: text/x-patch, Size: 1477 bytes --]

From 6dc93ef31c2ecca66182222638a1d92c790c3bf9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 18 Jun 2020 06:55:01 -0400
Subject: [PATCH 49/58] gnu: Add webrtc-audio-processing.

* gnu/packages/audio.scm (webrtc-audio-processing): New variable.
---
 gnu/packages/audio.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index caeaffff55..b63279f8a6 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,6 +127,26 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public webrtc-audio-processing
+  (package
+    (name "webrtc-audio-processing")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://freedesktop.org/software/pulseaudio/"
+                       name "/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
+    (build-system gnu-build-system)
+    (synopsis "WebRTC's Audio Processing Library")
+    (description "WebRTC-Audio-Processing library based on Google's
+implementation of WebRTC.")
+    (home-page
+     "https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/")
+    (license (license:non-copyleft "file://COPYING"))))
+
 (define-public vo-aacenc
   (package
     (name "vo-aacenc")
-- 
2.26.2


[-- Attachment #1.1.34: 0050-gnu-Add-wildmidi.patch --]
[-- Type: text/x-patch, Size: 1877 bytes --]

From b34d5c89db9df4b63906e6b716610de4d423efe1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 18 Jun 2020 09:25:50 -0400
Subject: [PATCH 50/58] gnu: Add wildmidi.

* gnu/packages/audio.scm (wildmidi): New variable.
---
 gnu/packages/audio.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index b63279f8a6..5490e66288 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,6 +127,43 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public wildmidi
+  (package
+    (name "wildmidi")
+    (version "0.4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Mindwerks/wildmidi.git")
+         (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01f4a9c5xlap5a4pkfnlgkzk5pjlk43zkq6fnw615ghya04g6hrl"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        "-DWANT_ALSA=ON"
+        "-DWANT_OSS=ON"
+        "-DWANT_OPENAL=ON"
+        "-DWANT_DEVTEST=ON")))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("openal" ,openal)))
+    (synopsis "Software Synthesizer")
+    (description "WildMIDI is a simple software midi player which has a core
+softsynth library that can be use with other applications.")
+    (home-page "https://www.mindwerks.net/projects/wildmidi/")
+    (license
+     (list
+      ;; Library.
+      license:lgpl3+
+      ;; Player.
+      license:gpl3+))))
+
 (define-public webrtc-audio-processing
   (package
     (name "webrtc-audio-processing")
-- 
2.26.2


[-- Attachment #1.1.35: 0051-gnu-Add-zxing-cpp.patch --]
[-- Type: text/x-patch, Size: 1532 bytes --]

From bf481717c8a0b306c532eb5d3cc170c1581f4324 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 18 Jun 2020 10:04:15 -0400
Subject: [PATCH 51/58] gnu: Add zxing-cpp.

* gnu/packages/aidc.scm (zxing-cpp): New variable.
---
 gnu/packages/aidc.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 5648f5a9ec..4921ae03a1 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -37,8 +37,30 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages video)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu))
 
+(define-public zxing-cpp
+  (package
+    (name "zxing-cpp")
+    (version "1.0.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nu-book/zxing-cpp.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "011sq8wcjfxbnd8sj6bf2fgkamlp8gj6q835g61c952npvwsnl71"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f))                    ; No target
+    (synopsis "C++ port of ZXing")
+    (description "ZXing-CPP is a barcode scanning library.")
+    (home-page "https://github.com/nu-book/zxing-cpp")
+    (license license:asl2.0)))
 
 (define-public barcode
   (package
-- 
2.26.2


[-- Attachment #1.1.36: 0052-gnu-Add-iqa.patch --]
[-- Type: text/x-patch, Size: 1964 bytes --]

From 4fdfc0999a8f16d563a6651875859973af798b1c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 18 Jun 2020 12:29:16 -0400
Subject: [PATCH 52/58] gnu: Add iqa.

* gnu/packages/image.scm (iqa): New variable.
---
 gnu/packages/image.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 24f1b1570c..a7b3bf6d31 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -91,6 +91,38 @@
   #:use-module (guix deprecation)
   #:use-module (srfi srfi-1))
 
+(define-public iqa
+  (package
+    (name "iqa")
+    (version "1.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/iqa/files/"
+                       "1.1.2%20Release/iqa_1.1.2_src.tar.gz/download"))
+       (sha256
+        (base32 "00mgwy031ammab6bwmd1whhvqv3fxy1cs1igabq0n3ag12zhjs77"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib")))
+               (install-file "build/debug/libiqa.a" lib)
+               #t))))))
+    (synopsis "Image Quality Assessment")
+    (description "IQA is a C library for objectively measuring image/video
+quality.  It implements many popular algorithms, such as MS-SSIM, MS-SSIM*,
+SIMM, MSE, and PSNR.  It is designed to be fast, accurate, and reliable.  All
+code is Valgrind-clean and unit tested.")
+    (home-page "https://sourceforge.net/projects/iqa/")
+    (license license:bsd-4)))
+
 (define-public libpng
   (package
    (name "libpng")
-- 
2.26.2


[-- Attachment #1.1.37: 0053-gnu-Add-rtmpdump.patch --]
[-- Type: text/x-patch, Size: 1862 bytes --]

From 3e032569d0dfe0b2f5b184b65f5534532abda5f3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 18 Jun 2020 12:33:53 -0400
Subject: [PATCH 53/58] gnu: Add rtmpdump.

* gnu/packages/networking.scm (rtmpdump): New variable.
---
 gnu/packages/networking.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index fffcf4f1a5..14c98ab1b5 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -131,6 +131,41 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public rtmpdump
+  (package
+    (name "rtmpdump")
+    (version "2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://rtmpdump.mplayerhq.hu/download/"
+                       name "-" version ".tgz"))
+       (sha256
+        (base32 "0b2b49a57kpz9gi8dx1x3cs8b0gjx8x0c89x0q96kkl2knlvff7g"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:make-flags
+       (list
+        (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (inputs
+     `(("openssl" ,openssl-1.0)
+       ("zlib" ,zlib)))
+    (synopsis "Tools and library for handling RTMP streams")
+    (description "RTMPdump is a toolkit for RTMP streams.  All forms of RTMP are
+supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://.")
+    (home-page "https://rtmpdump.mplayerhq.hu/")
+    (license
+     (list
+      ;; Library.
+      license:lgpl2.1+
+      ;; Others.
+      license:gpl2+))))
+
 (define-public srt
   (package
     (name "srt")
-- 
2.26.2


[-- Attachment #1.1.38: 0054-gnu-Add-libnice.patch --]
[-- Type: text/x-patch, Size: 3623 bytes --]

From f16e64e5afee6d70814cbf9b5730cb1b00f7589f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 18 Jun 2020 20:38:35 -0400
Subject: [PATCH 54/58] gnu: Add libnice.

* gnu/packages/networking.scm (libnice): New variable.
---
 gnu/packages/networking.scm | 57 +++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 14c98ab1b5..dd1a65430d 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -63,6 +63,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
@@ -92,6 +93,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libevent)
@@ -103,6 +105,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -131,6 +134,60 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public libnice
+  (package
+    (name "libnice")
+    (version "0.1.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://libnice.freedesktop.org/releases/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09lm0rxwvbr53svi3inaharlq96iwbs3s6957z69qp4bqpga0lhr"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dgtk_doc=enabled")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'move-docs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
+               (mkdir-p (string-append doc "/share"))
+               (rename-file
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
+               #t))))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("libnsl" ,libnsl)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gnutls" ,gnutls)))
+    (synopsis "GLib ICE implementation")
+    (description "LibNice is a library that implements the Interactive
+Connectivity Establishment (ICE) standard (RFC 5245 & RFC 8445).  It provides a
+GLib-based library, libnice, as well as GStreamer elements to use it.")
+    (home-page "https://libnice.freedesktop.org/")
+    (license
+     ;; This project is dual-licensed.
+     (list
+      license:lgpl2.1+
+      license:mpl1.1))))
+
 (define-public rtmpdump
   (package
     (name "rtmpdump")
-- 
2.26.2


[-- Attachment #1.1.39: 0055-gnu-Add-openni2.patch --]
[-- Type: text/x-patch, Size: 2551 bytes --]

From 5970d09c8db16c565ccdf9e3964829affdab2f6c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 18 Jun 2020 21:05:20 -0400
Subject: [PATCH 55/58] gnu: Add openni2.

* gnu/packages/gstreamer.scm (openni2): New variable.
---
 gnu/packages/gstreamer.scm | 40 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 3c79f9bf16..4974ad9485 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -54,9 +54,11 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages graphics)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages iso-codes)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
@@ -84,6 +86,44 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
+(define-public openni2
+  (package
+    (name "openni2")
+    (version "2.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/occipital/OpenNI2.git")
+         (commit (string-append "v" version "-debian"))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0mfnyzpq53wnzgjfx91xcbx0nrl0lp1vrk1rk20a3gb3kshsr675"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (native-inputs
+     `(("graphviz" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("freeglut3" ,freeglut)
+       ("libudev" ,eudev)
+       ("libusb" ,libusb)
+       ("openjdk" ,openjdk14)
+       ("openjdk:jdk" ,openjdk14 "jdk")))
+    (synopsis "Framework for sensor-based 'Natural Interaction")
+    (description "OpenNI is a framework for getting data to support
+'Natural Interaction', i.e. skeleton tracking, gesture tracking, and similar
+ways of getting data from humans.  It provides the interface for physical devices
+and for middleware components.")
+    (home-page "https://structure.io/openni")
+    (license license:asl2.0)))
+
 (define-public libdc1394
   (package
     (name "libdc1394")
-- 
2.26.2


[-- Attachment #1.1.40: 0056-gnu-gst-plugins-bad-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 11903 bytes --]

From 8d47e7bc65fa241e761e8a723a147f9c097f66d2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 19 Jun 2020 18:48:19 -0400
Subject: [PATCH 56/58] gnu: gst-plugins-bad: Update package definition.

* gnu/packages/gstreamer.scm (gst-plugins-base): Update package definition.
[outputs]: New output 'doc'.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xml]: New phase.
['pre-check]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal, gsettings-desktop-schemas,
perl, libxml2 and xorg-server-for-tests.
[inputs]: Add bzip2, cairo, ccextractor, chromaprint, directfb, faac,
flite, glib, glib-networking, glu, gsm, iqa, lcms, libaom, libbs2b, libdc1394,
libdca, libde265, libdrm, libexif, libfdk, libgme, libmfx, libmms, libmpcdec,
libnice, libofa, libopenmpt, libtiff, libva, libx11, libxcb, libxext, libxshm, lilv,
lv2, mjpegtools, nettle, opencv, openh264, openni2, pango, rtmpdump,
sbc, sctp, spandsp, srt, svt-hevc, transcode, v4l-utils, vo-aacenc, vo-amrwbenc,
vulkan-headers, vulkan-loader, webrtc-audio-processing, wildmidi,
wpebackend-fdo, zbar and zxing-cpp.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gstreamer.scm | 171 ++++++++++++++++++++++++++++---------
 1 file changed, 130 insertions(+), 41 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 4974ad9485..2465e97ae8 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -35,6 +35,7 @@
   #:use-module (guix build-system meson)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -49,6 +50,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -57,6 +59,7 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages image-processing)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages java)
   #:use-module (gnu packages libunwind)
@@ -65,10 +68,13 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages music)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ocr)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
@@ -76,13 +82,17 @@
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages speech)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
@@ -671,91 +681,170 @@ model to base your own plug-in on, here it is.")
   (package
     (name "gst-plugins-bad")
     (version "1.16.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://gstreamer.freedesktop.org/src/"
-                                  name "/" name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://gstreamer.freedesktop.org/src/"
+                       name "/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
        (modify-phases %standard-phases
-         ,@(if (string-prefix? "arm" (or (%current-target-system)
-                                         (%current-system)))
-               ;; Disable test that fails on ARMv7.
-               ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1188
-               `((add-after 'unpack 'disable-asfmux-test
-                   (lambda _
-                     (substitute* "tests/check/meson.build"
-                       (("\\[\\['elements/asfmux\\.c'\\]\\],")
-                        ""))
-                     #t)))
-               '())
-         (add-after 'unpack 'disable-failing-test
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* '("libs/compiling.sgml"
+                              "libs/gst-plugins-bad-libs-docs.sgml"
+                              "plugins/gst-plugins-bad-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-after 'unpack 'disable-failing-tests
            (lambda _
-             ;; FIXME: Why is this failing.
              (substitute* "tests/check/meson.build"
-               ((".*elements/dash_mpd\\.c.*")
+               (("\\[\\['elements/msdkh264enc.c'\\], not have_msdk, \\[msdk_dep\\]\\],")
+                "")
+               (("\\[\\['elements/dash_mpd.c'\\], not xml2_dep.found\\(\\), \\[xml2_dep\\]\\],")
+                "")
+               (("\\[\\['elements/webrtcbin.c'\\], not libnice_dep.found\\(\\), \\[gstwebrtc_dep\\]\\],")
                 ""))
+             #t))
+         (add-before
+             'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             ;; Tests look for $XDG_RUNTIME_DIR.
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
              #t)))))
-    (propagated-inputs
-     `(("gst-plugins-base" ,gst-plugins-base)))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ;; TODO: Enable documentation for 1.18.
-       ;;("gtk-doc" ,gtk-doc)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)))
+       ("python-wrapper" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     ;; XXX: The following dependencies are missing:
-     ;;  vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts,
-     ;;  faac, flite, libgsm, libde265, libmms, libmimic, mjpegtools,
-     ;;  mpeg2enc, libofa, opencv, openh264, openni2, libtimemmgr, wildmidi,
-     ;;  openspc, gme, sbc, schroedinger, zbar, librtmp, spandsp
      `(("bluez" ,bluez)
+       ("bzip2" ,bzip2)
+       ("cairo" ,cairo)
+       ("ccextractor" ,ccextractor)
+       ("chromaprint" ,chromaprint)
        ("curl" ,curl)
+       ("directfb" ,directfb)
+       ;; TODO: Package dssim.
+       ;;("dssim" ,dssim)
+       ("faac" ,faac)
        ("faad2" ,faad2)
+       ;; XXX: Build fails with flite.
+       ;;("flite" ,flite)
        ("fluidsynth" ,fluidsynth)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("glu" ,glu)
+       ("gsm" ,gsm)
        ("gtk+" ,gtk+)
+       ("iqa" ,iqa)
        ("ladspa" ,ladspa)
+       ("lcms" ,lcms)
+       ("libaom" ,libaom)
        ("libass" ,libass)
+       ("libbs2b" ,libbs2b)
+       ("libdc1394" ,libdc1394)
+       ("libdca" ,libdca)
+       ("libde265" ,libde265)
+       ("libdrm" ,libdrm)
        ("libdvdnav" ,libdvdnav)
        ("libdvdread" ,libdvdread)
+       ("libexif" ,libexif)
+       ("libfdk" ,libfdk)
        ("libgcrypt" ,libgcrypt)
+       ("libgme" ,libgme)
        ("libgudev" ,libgudev)
        ("libkate" ,libkate)
+       ("libmfx" ,mediasdk)
+       ("libmms" ,libmms)
        ("libmodplug" ,libmodplug)
+       ("libmpcdec" ,libmpcdec)
+       ("libnice" ,libnice)
+       ("libofa" ,libofa)
+       ("libopenmpt" ,libopenmpt)
        ("librsvg" ,librsvg)
        ("libsndfile" ,libsndfile)
        ("libsrtp" ,libsrtp)
        ("libssh2" ,libssh2)
+       ("libtiff" ,libtiff)
        ("libusb" ,libusb)
+       ("libva" ,libva)
        ("libvdpau" ,libvdpau)
        ("libwebp" ,libwebp)
+       ("libx11" ,libx11)
+       ("libxcb" ,libxcb)
+       ("libxext" ,libxext)
+       ("libxkbcommon" ,libxkbcommon)
        ("libxml2" ,libxml2)
+       ("libxshm" ,libxshmfence)
+       ("lilv" ,lilv)
        ("lrdf" ,lrdf)
+       ("lv2" ,lv2)	
        ("mesa" ,mesa)
+       ("mjpegtools" ,mjpegtools)
        ("neon" ,neon)
+       ("nettle" ,nettle)
        ("openal" ,openal)
+       ("opencv" ,opencv)
        ("openexr" ,openexr)
+       ("openh264" ,openh264)
        ("openjpeg" ,openjpeg)
+       ("openni2" ,openni2)
        ("openssl" ,openssl)
        ("opus" ,opus)
        ("orc" ,orc)
-       ;("qtbase" ,qtbase)
-       ;("qtdeclarative" ,qtdeclarative)
-       ;("qtx11extras" ,qtx11extras)
+       ("pango" ,pango)
+       ("rtmp" ,rtmpdump)
+       ("sbc" ,sbc)
+       ("sctp" ,lksctp-tools)
        ("soundtouch" ,soundtouch)
+       ("spandsp" ,spandsp)
+       ("srt" ,srt)
+       ("svthevcenc" ,svt-hevc)
+       ("tinyalsa" ,tinyalsa)
+       ("transcode" ,transcode)
+       ("v4l" ,v4l-utils)
+       ("voaacenc", vo-aacenc)
+       ("voamrwbenc" ,vo-amrwbenc)
+       ("vulkan-headers" ,vulkan-headers)
+       ("vulkan-loader" ,vulkan-loader)
        ("x265" ,x265)
-       ("wayland" ,wayland)))
+       ("wayland" ,wayland)
+       ("webrtcdsp" ,webrtc-audio-processing)
+       ("wildmidi" ,wildmidi)
+       ("wpebackend-fdo" ,wpebackend-fdo)
+       ;;("wpewebkit" ,wpewebkit)
+       ("zbar" ,zbar)
+       ("zxing" ,zxing-cpp)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (synopsis "GStreamer plugins and helper libraries")
+    (description "Gst-Plugins-Bad are Bad with a capital B.  They look fine on
+the outside, and might even appear to get the job done, but at the end of the
+day they're a black sheep.  Without a golden-haired angel to watch over them,
+they'll probably land in an unmarked grave at the final showdown.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "Plugins for the GStreamer multimedia library")
-    (description
-     "GStreamer Bad Plug-ins is a set of plug-ins whose quality aren't up to
-par compared to the rest.")
     (license license:lgpl2.0+)))
 
 (define-public gst-plugins-ugly
-- 
2.26.2


[-- Attachment #1.1.41: 0057-gnu-gst-plugins-ugly-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4701 bytes --]

From 0109580032805d61700513aa5aee0891fed96b3c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 19 Jun 2020 18:53:51 -0400
Subject: [PATCH 57/58] gnu: gst-plugins-ugly: Update package definition.

* gnu/packages/gstreamer.scm (gst-plugins-ugly): Update package definition.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xml]: New phase.
['pre-check]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal, gsettings-desktop-schemas,
perl and xorg-server-for-tests.
[inputs]: Add glib, glib-networking and opencore-amr. Remove gst-plugins-base.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gstreamer.scm | 66 +++++++++++++++++++++++++++++---------
 1 file changed, 50 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 2465e97ae8..fab789d571 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -854,32 +854,66 @@ they'll probably land in an unmarked grave at the final showdown.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://gstreamer.freedesktop.org/src/"
-                           name "/" name "-" version ".tar.xz"))
+       (uri
+        (string-append "https://gstreamer.freedesktop.org/src/"
+                       name "/" name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"))))
+        (base32 "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"))))
     (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-ugly-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)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
        ("liba52" ,liba52)
        ("libcdio" ,libcdio)
+       ("libdvdread" ,libdvdread)
        ("libmpeg2" ,libmpeg2)
        ("libdvdread" ,libdvdread)
        ("libx264" ,libx264)
-       ;; TODO:
-       ;; * opencore-amr (for the AMR-NB decoder and encoder and the
-       ;;   AMR-WB decoder) <http://sourceforge.net/projects/opencore-amr/>
+       ("opencore-amr" ,opencore-amr)
        ("orc" ,orc)))
-    (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (synopsis "GStreamer plugins and helper libraries")
+    (description "Gst-Plugins-Ugly are the ones that might have a patent noose
+around their neck, or a lock-up license, or any other problem that makes you
+think twice about shipping them.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "GStreamer plugins from the \"ugly\" set")
-    (description "GStreamer Ugly Plug-ins.  This set contains those plug-ins
-which the developers consider to have good quality code but that might pose
-distribution problems in some jurisdictions, e.g. due to patent threats.")
     (license license:lgpl2.0+)))
 
 (define-public gst-libav
-- 
2.26.2


[-- Attachment #1.1.42: 0058-gnu-gst-libav-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4389 bytes --]

From a412459054b7ad00738dc66cb2035638f9c11b3c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 19 Jun 2020 19:11:28 -0400
Subject: [PATCH 58/58] gnu: gst-libav: Update package definition.

* gnu/packages/gstreamer.scm (gst-libav): Update package definition.
[arguments]<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, perl and ruby.
[inputs]: Remove gst-plugins-base, orc and zlib.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.
[license]: Change from gpl2+ to lgpl2.0+.
---
 gnu/packages/gstreamer.scm | 66 +++++++++++++++++++++++---------------
 1 file changed, 40 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index fab789d571..a166c90f10 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -85,6 +85,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages speech)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
@@ -902,7 +903,6 @@ they'll probably land in an unmarked grave at the final showdown.")
        ("libcdio" ,libcdio)
        ("libdvdread" ,libdvdread)
        ("libmpeg2" ,libmpeg2)
-       ("libdvdread" ,libdvdread)
        ("libx264" ,libx264)
        ("opencore-amr" ,opencore-amr)
        ("orc" ,orc)))
@@ -920,35 +920,49 @@ think twice about shipping them.")
   (package
     (name "gst-libav")
     (version "1.16.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://gstreamer.freedesktop.org/src/" name "/"
-                    name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Drop bundled ffmpeg.
-                  (delete-file-recursively "gst-libs/ext/libav")
-                  #t))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://gstreamer.freedesktop.org/src/" name "/"
+         name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Drop bundled ffmpeg.
+           (delete-file-recursively "gst-libs/ext/libav")
+           #t))))
     (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "plugins/gst-libav-plugins-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)))
     (inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
-       ("ffmpeg" ,ffmpeg)
-       ("orc" ,orc)
-       ("zlib" ,zlib)))
+     `(("ffmpeg" ,ffmpeg)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (synopsis "GStreamer plugins and helper libraries")
+    (description "Gst-Libav contains a GStreamer plugin for using the encoders,
+decoders, muxers, and demuxers provided by FFmpeg.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "Plugins for the GStreamer multimedia library")
-    (description
-     "This GStreamer plugin supports a large number of audio and video
-compression formats through the use of the libav library.")
-    (license license:gpl2+)))
+    (license license:lgpl2.0+)))
 
 (define-public gst-editing-services
   (package
-- 
2.26.2


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-14 13:31                 ` Raghav Gururajan
  2020-06-19 23:37                   ` Raghav Gururajan
@ 2020-06-24 11:37                   ` Danny Milosavljevic
  2020-06-25  4:04                     ` Raghav Gururajan
  1 sibling, 1 reply; 49+ messages in thread
From: Danny Milosavljevic @ 2020-06-24 11:37 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1776 bytes --]

Hi RG,

I've changed guix wip-desktop to use guix master
commit c03cefc3d8dd826c4a74abbfe2b235525dca50fb as base (made a rebase).

Then I tested and applied the patches from your E-Mail this is an answer to.

That means a few of your patches didn't apply--which is not your fault.

Could you please clone wip-desktop anew and rebase the patches that didn't
apply on top manually and then re-send those?

The ones that didn't apply are:

glib: Patch doesn't apply.  Also: Why define-public now?
glib-networking 2.64.3 doesn't apply because of missing glib (because above didn't apply).
gobject-introspection: Patch didn't apply.
gstreamer: Patch didn't apply.
libvisual: Patch didn't apply.
libvisual-plugins: Didn't try, dependency now missing.
gst-plugins-base: Patch didn't apply.
gst-plugins-good: Didn't try, dependency now missing.

Some comments on the ones that did apply:

at-spi2-atk:

  * I've not applied the move of dbus to regular inputs.
    Was it accidential or does it actually use dbus after it is installed?

cogl:

  I've had some merging trouble, so just FYI:

  * Phase 'fix-build-with-mesa-20 is now gone
  * Phase 'patch-docbook-xml is now new
  * arguments were in another spot than before--which confused git very much

geoclue:

  I've had some merging trouble, so did the following:

  * Kept geoclue-config.patch as before. Should I delete it for real?

esound:

  * tcp-wrappers' libwrap is not referenced for some reason.
  * Moved tcp-wrappers to regular inputs.

Please thus resend patches on top of wip-desktop for

* glib
* glib-networking 2.64.3 (which is the second update)
* gobject-introspection
* gstreamer
* libvisual
* libvisual-plugins
* gst-plugins-base
* gst-plugins-good

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-19 23:37                   ` Raghav Gururajan
@ 2020-06-24 22:40                     ` Danny Milosavljevic
  2020-07-04 10:37                       ` Raghav Gururajan
  0 siblings, 1 reply; 49+ messages in thread
From: Danny Milosavljevic @ 2020-06-24 22:40 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1346 bytes --]

Hi RG,

* In ruby-slim: Why are tests disabled?  There are tests.
* In libmpeg3: Could you unbundle a52dec-0.7.3?  It's bundled right now.
* In flux, a git commit is used.  We usually don't package non-releases.
  Is there a good reason?

* 0019-gnu-Add-asciidoctor.patch does some other stuff to other packages, and that
fact isn't mentioned in the commit log in the patch.  Why not?

* If nng is compatible with nanomsg, why do we need the "nanomsg" package at all?

* In tesseract-ocr you propagate leptonica.  Why?
  If we did that, users that would install tesseract for the "tesseract" binary
  would get leptonica in their profile.
  Is it necessary?

* ccextractor still has a XXX.  Does it work?

* In libtimidity, what's the problem with libtimidity using its own "play"
binary?  I would expect the package to test itself like that...

* In faac, what do the comments "Newer code" and "Older code" mean?

* In flite, there are tests, but they fail.

* In libopenmpt, why does it propagate zlib?  That sounds wrong.

For ruby-slim there IS a "test" subdirectory--so why are they disabled?

For the time being I've not applied any of those patches since it's difficult
to leave some off and still be able to apply the others.

I have applied most of the patches in your patchset of your previous E-Mail.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-24 11:37                   ` Danny Milosavljevic
@ 2020-06-25  4:04                     ` Raghav Gururajan
  2020-06-25 11:47                       ` Danny Milosavljevic
  2020-06-25 11:52                       ` Danny Milosavljevic
  0 siblings, 2 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-06-25  4:04 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 320 bytes --]

Hi Danny!

> Please thus resend patches on top of wip-desktop for
> 
> * glib
> * glib-networking 2.64.3 (which is the second update)
> * gobject-introspection
> * gstreamer
> * libvisual
> * libvisual-plugins
> * gst-plugins-base
> * gst-plugins-good

Please find the attached patches.

Regards,
RG.


[-- Attachment #1.1.2: 0001-gnu-glib-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 19452 bytes --]

From 8a829c439290d7e5f52f09e4d895729592c50393 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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 <raghavgururajan@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


[-- Attachment #1.1.3: 0002-gnu-glib-with-documentation-Update-package-definitio.patch --]
[-- Type: text/x-patch, Size: 3162 bytes --]

From e644692b46700402bec0b2b342da67f8bc02375b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.4: 0003-gnu-glib-networking-Update-to-2.64.3.patch --]
[-- Type: text/x-patch, Size: 1244 bytes --]

From 8e88d6d12ff0a2e7cddf3bfa107912ebbdcbb6a3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.5: 0004-gnu-gobject-introspection-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4652 bytes --]

From 92187e2422b833b167e521904408d92a9fea40fd Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.6: 0005-gnu-gstreamer-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 8350 bytes --]

From b3d518d8bb52016331eab17643666358c11bfa72 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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 | 149 ++++++++++++++++++++-----------------
 1 file changed, 82 insertions(+), 67 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 6381d426ba..3eb88ee1ef 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,82 @@ 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")))))
+     (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


[-- Attachment #1.1.7: 0006-gnu-Add-libvisual.patch --]
[-- Type: text/x-patch, Size: 2535 bytes --]

From e625ef4945b97da6205b420d42ce5d3e98a4d505 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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 | 48 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 3eb88ee1ef..756a991d88 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,53 @@
   #: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")))))
+    (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


[-- Attachment #1.1.8: 0007-gnu-Add-libvisual-plugins.patch --]
[-- Type: text/x-patch, Size: 2649 bytes --]

From 6401385cbe925ca416f29f440a3528b604d6d6aa Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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 | 54 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 756a991d88..d33ba5ae3f 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -127,6 +127,60 @@ 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)))
+    (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 license:gpl2+)))
+
 (define-public esound
   (package
     (name "esound")
-- 
2.26.2


[-- Attachment #1.1.9: 0008-gnu-gst-plugins-base-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7939 bytes --]

From 9738b7ab688edc633bec6c4273c1ccdf91b0c642 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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 d33ba5ae3f..eb822a8bb7 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)
@@ -358,66 +359,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


[-- Attachment #1.1.10: 0009-gnu-gst-plugins-good-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7303 bytes --]

From 9a3bc9d2d75613345b19b713c08dd0e201a5d704 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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 eb822a8bb7..2cc0d40e56 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -463,78 +463,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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-25  4:04                     ` Raghav Gururajan
@ 2020-06-25 11:47                       ` Danny Milosavljevic
  2020-06-28  5:56                         ` Raghav Gururajan
  2020-06-25 11:52                       ` Danny Milosavljevic
  1 sibling, 1 reply; 49+ messages in thread
From: Danny Milosavljevic @ 2020-06-25 11:47 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 617 bytes --]

Hi RG,

On Thu, 25 Jun 2020 00:04:50 -0400
Raghav Gururajan <raghavgururajan@disroot.org> wrote:

> Please find the attached patches.

Thanks.

> > * 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.

I've applied the rest to wip-desktop.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-25  4:04                     ` Raghav Gururajan
  2020-06-25 11:47                       ` Danny Milosavljevic
@ 2020-06-25 11:52                       ` Danny Milosavljevic
  1 sibling, 0 replies; 49+ messages in thread
From: Danny Milosavljevic @ 2020-06-25 11:52 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 341 bytes --]

Please, when you remove patch references from (gnu packages ...), also remove
the actual patch files using "git rm -f" and also remove the reference to
the actual patch files from gnu/local.mk .

Likewise, when you are adding patch references to (gnu packages ...), also
add the reference to the actual patch files to gnu/local.mk .


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-25 11:47                       ` Danny Milosavljevic
@ 2020-06-28  5:56                         ` Raghav Gururajan
  0 siblings, 0 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-06-28  5:56 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 540 bytes --]

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.


[-- Attachment #1.1.2: 0001-gnu-glib-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 19452 bytes --]

From 8a829c439290d7e5f52f09e4d895729592c50393 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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 <raghavgururajan@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


[-- Attachment #1.1.3: 0002-gnu-glib-with-documentation-Update-package-definitio.patch --]
[-- Type: text/x-patch, Size: 3162 bytes --]

From e644692b46700402bec0b2b342da67f8bc02375b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.4: 0003-gnu-glib-networking-Update-to-2.64.3.patch --]
[-- Type: text/x-patch, Size: 1244 bytes --]

From 8e88d6d12ff0a2e7cddf3bfa107912ebbdcbb6a3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.5: 0004-gnu-gobject-introspection-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4652 bytes --]

From 92187e2422b833b167e521904408d92a9fea40fd Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.6: 0005-gnu-gstreamer-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 8381 bytes --]

From 1a3b1be1d36b45845912b1e6169537fc84dd9d30 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.7: 0006-gnu-Add-libvisual.patch --]
[-- Type: text/x-patch, Size: 2571 bytes --]

From aed6ec7672efca9f307c41ce610080073f403e39 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.8: 0007-gnu-Add-libvisual-plugins.patch --]
[-- Type: text/x-patch, Size: 2608 bytes --]

From 4c497148e0898c208a1f2014334ff12a3a85a508 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.9: 0008-gnu-gst-plugins-base-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7939 bytes --]

From 9d118e1dbafeb9bebd782bbb526a50efd7ca65ab Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #1.1.10: 0009-gnu-gst-plugins-good-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7303 bytes --]

From 0f2e43235c994ef456e187727b4754cb0ce182c1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-24 22:40                     ` Danny Milosavljevic
@ 2020-07-04 10:37                       ` Raghav Gururajan
  2020-07-04 11:14                         ` Raghav Gururajan
  2020-07-05 19:25                         ` Danny Milosavljevic
  0 siblings, 2 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-07-04 10:37 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 14393 bytes --]

@Danny

> * In ruby-slim: Why are tests disabled?  There are tests.

Ah yes! I have not disabled the tests with correct comment.

> * In libmpeg3: Could you unbundle a52dec-0.7.3?  It's bundled right now.

Done!

> * In flux, a git commit is used.  We usually don't package non-releases.
>   Is there a good reason?

Fixed now. The version is 1.1.0. I over-looked as there were no tags.

> * 0019-gnu-Add-asciidoctor.patch does some other stuff to other packages, and that
> fact isn't mentioned in the commit log in the patch.  Why not?

This patch has been removed from the patch-set now, as the package
already exist in the name of ruby-asciidoctor.

> * If nng is compatible with nanomsg, why do we need the "nanomsg" package at all?

It appears they have different library and header files.

> * In tesseract-ocr you propagate leptonica.  Why?
>   If we did that, users that would install tesseract for the "tesseract" binary
>   would get leptonica in their profile.
>   Is it necessary?

It is required as per .pc file. lpt --> leptonica.

> * ccextractor still has a XXX.  Does it work?

Fixed now.

> * In libtimidity, what's the problem with libtimidity using its own "play"
> binary?  I would expect the package to test itself like that...

Fixed now.

I initially thought the binary was distributed in binary-only form.
Turns out it is built from source. Also, it required package 'ao'.

> * In faac, what do the comments "Newer code" and "Older code" mean?

Fixed now.

The older meant original base code, on which the project was forked
upon. The newer meant changes made by the project.

> * In flite, there are tests, but they fail.

Now diabled with comments.

> * In libopenmpt, why does it propagate zlib?  That sounds wrong.

Fixed now.

Please find the attached patches.


@Others

Please find the following git log:

*** START ***

commit 21061a651f516d4df94f8a6a65775f4c41d92d76
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 05:21:57 2020 -0400

    gnu: gst-libav: Update package definition.

    * gnu/packages/gstreamer.scm (gst-libav): Update package definition.
    [arguments]<#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml, perl and ruby.
    [inputs]: Remove gst-plugins-base, orc and zlib.
    [propagated-inputs]: Add gstreamer and gst-plugins-base.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Change from gpl2+ to lgpl2.0+.

commit 1b41ffd6da8efe18e8790bfe4d84a9e05b7bd0e8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 05:20:50 2020 -0400

    gnu: gst-plugins-ugly: Update package definition.

    * gnu/packages/gstreamer.scm (gst-plugins-ugly): Update package
definition.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-docbook-xml]: New phase.
    ['pre-check]: New phase.
    [native-inputs]: Add docbook-xml, gettext-minimal,
gsettings-desktop-schemas,
    perl and xorg-server-for-tests.
    [inputs]: Add glib, glib-networking and opencore-amr. Remove
gst-plugins-base.
    [propagated-inputs]: Add gstreamer and gst-plugins-base.
    [synopsis]: Modify.
    [description]: Modify.

commit 4889d6baeadf35269edc702b9dfad7c0c8bea317
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 05:13:42 2020 -0400

    gnu: gst-plugins-bad: Update package definition.

    * gnu/packages/gstreamer.scm (gst-plugins-base): Update package
definition.
    [outputs]: New output 'doc'.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['fix-build-errors]: New phase.
    ['patch-docbook-xml]: New phase.
    ['pre-check]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, gettext-minimal,
gsettings-desktop-schemas,
    perl, libxml2 and xorg-server-for-tests.
    [inputs]: Add bzip2, cairo, ccextractor, chromaprint, directfb, faac,
    flite, glib, glib-networking, glu, gsm, iqa, lcms, libaom, libbs2b,
libdc1394,
    libdca, libde265, libdrm, libexif, libfdk, libgme, libmfx, libmms,
libmpcdec,
    libnice, libofa, libopenmpt, libtiff, libva, libx11, libxcb,
libxext, libxshm, lilv,
    lv2, mjpegtools, nettle, opencv, openh264, openni2, opensles, pango,
rtmpdump,
    sbc, sctp, spandsp, srt, svt-hevc, transcode, v4l-utils, vo-aacenc,
vo-amrwbenc,
    vulkan-headers, vulkan-loader, webrtc-audio-processing, wildmidi,
    wpebackend-fdo, zbar and zxing-cpp.
    [propagated-inputs]: Add gstreamer and gst-plugins-base.
    [synopsis]: Modify.
    [description]: Modify.

commit 05e54fa894e5998b65ccce87467ca160a1ec5731
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 03:11:51 2020 -0400

    gnu: Add opensles.

    * gnu/packages/audio.scm (opensles): New variable.

commit e812fd130dabda501d5508b2ba781a4e787f8c66
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 13:02:22 2020 -0400

    gnu: Add rust-imgref.

    * gnu/packages/crates-io.scm (rust-imgref): New variable.

commit 160fa94f7ffe1c54915106506b366251f4fcd62c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 12:14:25 2020 -0400

    gnu: Add openni2.

    * gnu/packages/gstreamer.scm (openni2): New variable.

commit 593388c5a11b993699b63993db99d138cbca35b5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 12:12:59 2020 -0400

    gnu: Add libnice.

    * gnu/packages/networking.scm (libnice): New variable.

commit e9701a31ff8213ae2b2caba0f1756bfaf01888a3
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 12:10:10 2020 -0400

    gnu: Add rtmpdump.

    * gnu/packages/networking.scm (rtmpdump): New variable.

commit f805f26f03c812658e0ed0606b47a78208d5856f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 12:08:33 2020 -0400

    gnu: Add iqa.

    * gnu/packages/image.scm (iqa): New variable.

commit 3004121e24d5732caa93e6260cc5605ea8deda40
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 12:06:23 2020 -0400

    gnu: Add zxing-cpp.

    * gnu/packages/aidc.scm (zxing-cpp): New variable.

commit b5a86585954259fbf20722079c7a5fa384b5b2d4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 11:49:36 2020 -0400

    gnu: Add wildmidi.

    * gnu/packages/audio.scm (wildmidi): New variable.

commit e258e023bf246ea961b6be46bff7808b5f029883
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 11:25:10 2020 -0400

    gnu: Add webrtc-audio-processing.

    * gnu/packages/audio.scm (webrtc-audio-processing): New variable.

commit 330d27978badff5c3a88e15cd8068e20d0a26b5c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 11:23:48 2020 -0400

    gnu: Add vo-aacenc.

    * gnu/packages/audio.scm (vo-aacenc): New variable.

commit 680003a107d7e64cee7e3a6c4283e5a67a61de98
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 11:22:08 2020 -0400

    gnu: Add transcode.

    * gnu/packages/video.scm (transcode): New variable.
    * gnu/packages/patches/transcode-ffmpeg.patch: New file.
    * gnu/local.mk (transcode-ffmpeg.patch): New reference.

commit 0854bf5a69af3af1a4a3784acebcd8e77dad70a0
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 11:18:19 2020 -0400

    gnu: Add tinyalsa.

    * gnu/packages/audio.scm (tinyalsa): New variable.

commit 13dcaf86065d3ce9d84ef4776f137050f3f627d2
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 11:16:21 2020 -0400

    gnu: Add svt-hevc.

    * gnu/packages/video.scm (svt-hevc): New variable.

commit e397b83cf9d21afa37977c8c854dadbc78302516
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 10:59:03 2020 -0400

    gnu: Add mediasdk.

    * gnu/packages/video.scm (mediasdk): New variable.

commit f8f6c6502e1853ecfcbc25768156d2fd6dfc0d1c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 09:44:14 2020 -0400

    gnu: Add srt.

    * gnu/packages/networking.scm (srt): New variable.

commit 39885fcfa5fe43f4bea6932c45f6be49b3459716
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 09:43:19 2020 -0400

    gnu: Add lksctp-tools.

    * gnu/packages/networking.scm (lksctp-tools): New variable.

commit 4663dc3351eb9c4512c32a4df98ba57351c7b01a
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 09:41:39 2020 -0400

    gnu: Add opensles.

    * gnu/packages/audio.scm (opensles): New variable.

commit 196951ed551b199f0f4233389cc836cf40182092
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 09:40:24 2020 -0400

    gnu: Add libopenmpt.

    * gnu/packages/audio.scm (libopenmpt): New variable.

commit 99bb9b203f253ac46bf9b055aa7287cdc744bf44
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 09:16:01 2020 -0400

    gnu: Add libofa.

    * gnu/packages/audio.scm (libofa): New variable.
    * gnu/packages/patches/libofa-ftbfs-1.diff: New file.
    * gnu/packages/patches/libofa-curl.diff: New file.
    * gnu/packages/patches/libofa-ftbfs-2.diff: New file.
    * gnu/local.mk (libofa-ftbfs-1.diff): New reference.
    * gnu/local.mk (libofa-curl.diff): New reference.
    * gnu/local.mk (libofa-ftbfs-2.diff): New reference.

commit ac7243f1d5832d37f7edffd3281094300b833788
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 08:07:02 2020 -0400

    gnu: Add mjpegtools.

    * gnu/packages/video.scm (mjpegtools): New variable.

commit 36d39908f4c608b6ed13593cbb434ed667d4db52
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 08:03:40 2020 -0400

    gnu: Add libquicktime.

    * gnu/packages/video.scm (libquicktime): New variable.
    * gnu/packages/patches/libquicktime-ffmpeg.patch: New file.
    * gnu/local.mk (libquicktime-ffmpeg.patch): New reference.

commit 91f31378141ad994884d3a83db30deb07d7b7dea
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 07:14:26 2020 -0400

    gnu: Add schroedinger.

    * gnu/packages/video.scm (schroedinger): New variable.

commit 78c129ac8656540ec8599c68157dae5f82eba647
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 3 07:12:48 2020 -0400

    gnu: Add libmms.

    * gnu/packages/video.scm (libmms): New variable.

commit aa366534f7fecda57d18b4e9162ee6f1a1235dd4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 2 09:56:33 2020 -0400

    gnu: Add libde265.

    * gnu/packages/video.scm (libde265): New variable.

commit 71b7882404917563398e0fb54274b0a83ca25db1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 2 09:10:19 2020 -0400

    gnu: Add libvideogfx.

    * gnu/packages/video.scm (libvideogfx): New variable.

commit b038f8f315c6dc1015794f950512ab80f7cfaa20
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 2 05:52:47 2020 -0400

    gnu: Add ffmpeg-2.8.

    * gnu/packages/video.scm (ffmpeg-2.8): New variable.

commit 5ea62c03c490f798e1478d5a27ea2733b6472ddf
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 2 01:55:56 2020 -0400

    gnu: Add flite.

    * gnu/packages/speech.scm (flite): New variable.

commit ca172dd43ec32775f12f4f0ee7ec59f628548f2c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 1 06:06:41 2020 -0400

    gnu: Add faac.

    * gnu/packages/audio.scm (faac): New variable.

commit bd77133228c63547998aa7cf7e90776bc0e8c0a4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 1 06:00:23 2020 -0400

    gnu: Add directfb.

    * gnu/packages/graphics.scm (directfb): New variable.

commit ccc04df59b953e993bfba18ee8692e396f4393b6
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 1 05:55:02 2020 -0400

    gnu: Add libtimidity.

    * gnu/packages/audio.scm (libtimidity): New variable.

commit ec9f500fdb5f45ded1d7f066bf9b845d630358a9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 1 01:04:20 2020 -0400

    gnu: Add flux.

    * gnu/packages/graphics.scm (flux): New variable.

commit c84083b0c0f3952f82e041b3f50ffa3cb4ae6ca4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 1 00:45:50 2020 -0400

    gnu: Add tslib.

    * gnu/packages/video.scm (tslib): New variable.

commit 8d9e10ef1ded6f81da4efc2de79986928ad00f99
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 1 00:24:40 2020 -0400

    gnu: Add libmpeg3.

    * gnu/packages/video.scm (libmpeg3): New variable.

commit e3979c9fa51ed95753d06484f772d068aecaf996
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 30 06:54:00 2020 -0400

    gnu: Add ruby-slim.

    * gnu/packages/ruby.scm (ruby-slim): New variable.

commit 194cc4cce3ca0d2678b8a3bc0f08e8a2764699cd
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jun 29 03:05:39 2020 -0400

    gnu: Add libdc1394.

    * gnu/packages/gstreamer.scm (libdc1394): New variable.

commit 4886ac01b8c62c4d51f2501a778f69da2eaf7954
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jun 29 01:58:27 2020 -0400

    gnu: Add ccextractor.

    * gnu/packages/gstreamer.scm (ccextractor): New variable.

commit 5140dbf01a6fac4d8827cf173d2445d97e7fe798
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jun 29 01:53:03 2020 -0400

    gnu: tesseract-ocr: Propagate leptonica.

    * gnu/packages/ocr.scm (tesseract-ocr) [inputs]: Move leptonica to ...
    [propagated-inputs]: ... here.

commit e7f8c22e007a8ca64a93cbef53cee7fe1a30b1d6
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jun 29 01:48:27 2020 -0400

    gnu: Add nng.

    * gnu/packages/networking.scm (nng): New variable.

commit b3148ad0efcc3e5304061a5ca10a2026687af20a
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jun 29 01:39:30 2020 -0400

    gnu: Add nanomsg.

    * gnu/packages/networking.scm (nanomsg): New variable.

*** END ***

Regards,
RG.

[-- Attachment #1.1.2: 0010-gnu-Add-nanomsg.patch --]
[-- Type: text/x-patch, Size: 2633 bytes --]

From b3148ad0efcc3e5304061a5ca10a2026687af20a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 29 Jun 2020 01:39:30 -0400
Subject: [PATCH 10/51] gnu: Add nanomsg.

* gnu/packages/networking.scm (nanomsg): New variable.
---
 gnu/packages/networking.scm | 43 +++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 1e6f70e1ff..692ba7f841 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -119,6 +119,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
@@ -131,6 +132,48 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public nanomsg
+  (package
+    (name "nanomsg")
+    (version "1.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nanomsg/nanomsg.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01ddfzjlkf2dgijrmm3j3j8irccsnbgfvjcnwslsfaxnrmrq5s64"))))
+    (build-system cmake-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DNN_ENABLE_COVERAGE=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (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/doc"))
+               (rename-file
+                (string-append out "/share/doc/nanomsg")
+                (string-append doc "/share/doc/nanomsg"))
+               #t))))))
+    (native-inputs
+     `(("asciidoctor" ,ruby-asciidoctor)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Scalable socket library")
+    (description "Nanomsg is a socket library that provides several common
+communication patterns.  It aims to make the networking layer fast, scalable,
+and easy to use.  Implemented in C, it works on a wide range of operating
+systems with no further dependencies.")
+    (home-page "https://nanomsg.org/")
+    (license (license:non-copyleft "file:///COPYING"))))
+
 (define-public blueman
   (package
     (name "blueman")
-- 
2.26.2


[-- Attachment #1.1.3: 0011-gnu-Add-nng.patch --]
[-- Type: text/x-patch, Size: 2680 bytes --]

From e7f8c22e007a8ca64a93cbef53cee7fe1a30b1d6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 29 Jun 2020 01:48:27 -0400
Subject: [PATCH 11/51] gnu: Add nng.

* gnu/packages/networking.scm (nng): New variable.
---
 gnu/packages/networking.scm | 44 +++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 692ba7f841..1f185cad7c 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -122,6 +122,7 @@
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages shells)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages textutils)
@@ -132,6 +133,49 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public nng
+  (package
+    (name "nng")
+    (version "1.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nanomsg/nng.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "042kmqzvdhv8fqmjr9kyi7rirm6akmpidfav6j14zhrab221n06j"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DNNG_ENABLE_COVERAGE=ON"
+        "-DNNG_ENABLE_TLS=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             ;; These tests require network access.
+             (substitute* "tests/CMakeLists.txt"
+               (("add_nng_test1\\(httpclient 60 NNG_SUPP_HTTP\\)") "")
+               (("add_nng_test1\\(resolv 10 NNG_STATIC_LIB\\)") "")
+               (("add_nng_test\\(tls 60\\)") ""))
+             #t)))))
+    (native-inputs
+     `(("ksh" ,oksh)))
+    (inputs
+     `(("mbedtls" ,mbedtls-apache)))
+    (synopsis "Lightweight messaging library")
+    (description "NNG project is a rewrite of the scalability protocols library
+known as libnanomsg, and adds significant new capabilities, while retaining
+compatibility with the original.  It is a lightweight, broker-less library,
+offering a simple API to solve common recurring messaging problems, such as
+publish/subscribe, RPC-style request/reply, or service discovery.")
+    (home-page "https://nng.nanomsg.org/")
+    (license license:expat)))
+
 (define-public nanomsg
   (package
     (name "nanomsg")
-- 
2.26.2


[-- Attachment #1.1.4: 0012-gnu-tesseract-ocr-Propagate-leptonica.patch --]
[-- Type: text/x-patch, Size: 1031 bytes --]

From 5140dbf01a6fac4d8827cf173d2445d97e7fe798 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 29 Jun 2020 01:53:03 -0400
Subject: [PATCH 12/51] gnu: tesseract-ocr: Propagate leptonica.

* gnu/packages/ocr.scm (tesseract-ocr) [inputs]: Move leptonica to ...
[propagated-inputs]: ... here.
---
 gnu/packages/ocr.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm
index dc690f3cef..23cb86449e 100644
--- a/gnu/packages/ocr.scm
+++ b/gnu/packages/ocr.scm
@@ -65,8 +65,8 @@ it produces text in 8-bit or UTF-8 formats.")
        (sha256
         (base32 "0h1x4z1h86n2gwknd0wck6gykkp99bmm02lg4a47a698g4az6ybv"))))
     (build-system gnu-build-system)
-    (inputs
-     `(("leptonica" ,leptonica)))
+    (propagated-inputs
+     `(("leptonica" ,leptonica))) ; Refered by .pc file
     (arguments
      '(#:configure-flags
        (let ((leptonica (assoc-ref %build-inputs "leptonica")))
-- 
2.26.2


[-- Attachment #1.1.5: 0013-gnu-Add-ccextractor.patch --]
[-- Type: text/x-patch, Size: 3029 bytes --]

From 4886ac01b8c62c4d51f2501a778f69da2eaf7954 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 29 Jun 2020 01:58:27 -0400
Subject: [PATCH 13/51] gnu: Add ccextractor.

* gnu/packages/gstreamer.scm (ccextractor): New variable.
---
 gnu/packages/gstreamer.scm | 54 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 8b62894210..b06dcbd528 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -30,6 +30,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix utils)
@@ -63,6 +64,7 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages ocr)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
@@ -81,6 +83,58 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
+(define-public ccextractor
+  (package
+    (name "ccextractor")
+    (version "0.88")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/CCExtractor/ccextractor.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sya45hvv4d46bk7541yimmafgvgyhkpsvwfz9kv6pm4yi1lz6nb"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        "-DWITH_FFMPEG=ON"
+        "-DWITH_OCR=ON"
+        "-DWITH_SHARING=ON"
+        "-DWITH_HARDSUBX=ON")
+       #:phases
+       (modify-phases %standard-phases
+         ;; The package is in a sub-dir of this repo.
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "src")
+             #t))
+         (add-after 'chdir 'fix-build-errors
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("libnanomsg")
+                "nanomsg"))
+             #t)))))
+    (native-inputs
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("ffmeg" ,ffmpeg-3.4)
+       ("nanomsg" ,nanomsg)
+       ("ocr" ,tesseract-ocr)
+       ("zlib" ,zlib)))
+    (synopsis "Closed Caption Extractor")
+    (description "CCExtractor is a tool that analyzes video files and produces
+independent subtitle files from the closed captions data.  It is portable, small,
+and very fast.")
+    (home-page "https://www.ccextractor.org/")
+    (license license:gpl2+)))
+
 (define-public libvisual
   (package
     (name "libvisual")
-- 
2.26.2


[-- Attachment #1.1.6: 0014-gnu-Add-libdc1394.patch --]
[-- Type: text/x-patch, Size: 2437 bytes --]

From 194cc4cce3ca0d2678b8a3bc0f08e8a2764699cd Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 29 Jun 2020 03:05:39 -0400
Subject: [PATCH 14/51] gnu: Add libdc1394.

* gnu/packages/gstreamer.scm (libdc1394): New variable.
---
 gnu/packages/gstreamer.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index b06dcbd528..57593c860e 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -44,6 +44,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
@@ -83,6 +84,40 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
+(define-public libdc1394
+  (package
+    (name "libdc1394")
+    (version "2.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://sourceforge.net/projects/" name "/files/"
+                              name "-2" "/" version "/" name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1v8gq54n1pg8izn7s15yylwjf8r1l1dmzbm2yvf6pv2fmb4mz41b"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glu" ,glu)
+       ("libraw1394" ,libraw1394)
+       ("libusb" ,libusb)
+       ("libxv" ,libxv)
+       ("linux-headers" ,linux-libre-headers)
+       ("mesa" ,mesa)
+       ("sdl" ,sdl)
+       ("v4l" ,v4l-utils)))
+    (synopsis "1394-Based Digital Camera Control Library")
+    (description "LibDC1394 is a library that provides functionality to control
+any camera that conforms to the 1394-Based Digital Camera Specification written
+by the 1394 Trade Association.  It utilizes the lowlevel functionality provided
+by libraw1394 to communicate with the camera.  It also uses the video1394 kernel
+module for the DMA capture of the video flow.")
+    (home-page "https://damien.douxchamps.net/ieee1394/libdc1394/")
+    (license license:lgpl2.0+)))
+
 (define-public ccextractor
   (package
     (name "ccextractor")
-- 
2.26.2


[-- Attachment #1.1.7: 0015-gnu-Add-ruby-slim.patch --]
[-- Type: text/x-patch, Size: 1793 bytes --]

From e3979c9fa51ed95753d06484f772d068aecaf996 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 30 Jun 2020 06:54:00 -0400
Subject: [PATCH 15/51] gnu: Add ruby-slim.

* gnu/packages/ruby.scm (ruby-slim): New variable.
---
 gnu/packages/ruby.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 08c55e4e3c..eba447c160 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9684,3 +9684,32 @@ which snapshots to consider and what files to include.")
 defined in @file{.travis.yml} on your local machine, using @code{rvm},
 @code{rbenv}, or @code{chruby} to test different versions of Ruby.")
     (license license:expat)))
+
+(define-public ruby-slim
+  (package
+    (name "ruby-slim")
+    (version "4.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/slim-template/slim.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "19118dddf6n6vwzl130qgqj61wr280qrh5y9hjhmym2da3q7m90c"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:tests? #f))           ; XXX: rake/testtask not being detected
+    (native-inputs
+     `(("git" ,git-minimal)
+       ("rake" ,ruby-rake)))
+    (inputs
+     `(("temple" ,ruby-temple)
+       ("tilt" ,ruby-tilt)))
+    (synopsis "Lightweight templating engine for Ruby")
+    (description "Slim is a Ruby template language whose goal is reduce the
+syntax to the essential parts without becoming cryptic.")
+    (home-page "http://slim-lang.com/")
+    (license license:expat)))
-- 
2.26.2


[-- Attachment #1.1.8: 0016-gnu-Add-libmpeg3.patch --]
[-- Type: text/x-patch, Size: 2593 bytes --]

From 8d9e10ef1ded6f81da4efc2de79986928ad00f99 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 1 Jul 2020 00:24:40 -0400
Subject: [PATCH 16/51] gnu: Add libmpeg3.

* gnu/packages/video.scm (libmpeg3): New variable.
---
 gnu/packages/video.scm | 49 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 84d6b59534..d698678e49 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -170,6 +170,55 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public libmpeg3
+  (package
+    (name "libmpeg3")
+    (version "1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/heroines/files/"
+                       "releases/081108/" name "-" version "-src.tar.bz2"))
+       (sha256
+        (base32 "1i53vv0wm5qfwgg1z7j9g14s6c7gxxkiy4vbdkq3lijjyyz50vv5"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags
+       (list
+        (string-append "A52DIR=" (assoc-ref %build-inputs "liba52"))
+        (string-append "DST=" (assoc-ref %outputs "out") "/bin"))
+     #:phases
+     (modify-phases %standard-phases
+       (add-after 'unpack 'delete-bundled-a52dec
+         (lambda _
+           (delete-file-recursively "a52dec-0.7.3")
+           (substitute* "Makefile"
+             (("include Makefile\\.a52")
+              "")
+             (("\\(A52DIR\\)/include")
+              "(A52DIR)/include/a52dec")
+             (("LIBS = " match)
+              (string-append match "-la52 ")))
+           #t))
+       (add-before 'install 'create-destination-directory
+         (lambda* (#:key outputs #:allow-other-keys)
+           (let* ((out (string-append (assoc-ref outputs "out"))))
+             (mkdir-p (string-append out "/bin"))
+             #t))))))
+  (native-inputs
+   `(("nasm" ,nasm)))
+  (inputs
+   `(("liba52" ,liba52)))
+  (synopsis "Advanced MPEG editing and manipulation library")
+  (description "Libmpeg3 decodes MP2, MP3, AC3, MPEG-1 video, MPEG-2 video,
+and DVD footage in a single library.  It supports many esoteric features like
+parallel video decoding, frame-accurate editing, YUV 4:2:2, and ATSC transport
+stream decoding")
+  (home-page "http://heroinewarrior.com/libmpeg3.php")
+  (license license:gpl2+)))
+
 (define-public aalib
   (package
     (name "aalib")
-- 
2.26.2


[-- Attachment #1.1.9: 0017-gnu-Add-tslib.patch --]
[-- Type: text/x-patch, Size: 1782 bytes --]

From c84083b0c0f3952f82e041b3f50ffa3cb4ae6ca4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 1 Jul 2020 00:45:50 -0400
Subject: [PATCH 17/51] gnu: Add tslib.

* gnu/packages/video.scm (tslib): New variable.
---
 gnu/packages/video.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d698678e49..d14e5962e7 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -170,6 +170,40 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public tslib
+  (package
+    (name "tslib")
+    (version "1.21")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/libts/tslib.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ph51vpfp92rpa2vs6wkz1b1pcs3z334p1i33sprsi8mjlwvkbzc"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "tests"
+       #:configure-flags
+       (list
+        "--with-sdl2")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("linux-headers" ,linux-libre-headers)
+       ("sdl2" ,sdl2)))
+    (synopsis "Touchscreen access library")
+    (description "TSLib is a cross-platform library that provides access to
+touchscreen devices and the ability to apply filters to their input events.")
+    (home-page "http://www.tslib.org/")
+    (license license:lgpl2.1+)))
+
 (define-public libmpeg3
   (package
     (name "libmpeg3")
-- 
2.26.2


[-- Attachment #1.1.10: 0018-gnu-Add-flux.patch --]
[-- Type: text/x-patch, Size: 1571 bytes --]

From ec9f500fdb5f45ded1d7f066bf9b845d630358a9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 1 Jul 2020 01:04:20 -0400
Subject: [PATCH 18/51] gnu: Add flux.

* gnu/packages/graphics.scm (flux): New variable.
---
 gnu/packages/graphics.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 0d768b8a0e..bd346699c2 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -93,6 +93,32 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public flux
+  (package
+    (name "flux")
+    (version "1.4.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/deniskropp/flux.git")
+         (commit "e45758a")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11f3ypg0sdq5kj69zgz6kih1yrzgm48r16spyvzwvlswng147410"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Interface description language")
+    (description "Flux is an interface description language used by DirectFB.
+Fluxcomp compiles .flux files to .cpp or .c files.")
+    (home-page "http://www.directfb.org/")
+    (license license:lgpl2.1+))) ; Same as DirectFB
+
 (define-public fox
   (package
     (name "fox")
-- 
2.26.2


[-- Attachment #1.1.11: 0019-gnu-Add-libtimidity.patch --]
[-- Type: text/x-patch, Size: 1812 bytes --]

From ccc04df59b953e993bfba18ee8692e396f4393b6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 1 Jul 2020 05:55:02 -0400
Subject: [PATCH 19/51] gnu: Add libtimidity.

* gnu/packages/audio.scm (libtimidity): New variable.
---
 gnu/packages/audio.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 74ef7111c3..60ebbe5e89 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -126,6 +126,37 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public libtimidity
+  (package
+    (name "libtimidity")
+    (version "0.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0p2px0m907gi1zpdr0l9adq25jl89j85c11ag9s2g4yc6n1nhgfm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f))       ; XXX: LibTiMidity could not be initialised
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("ao" ,ao)))
+    (synopsis "MIDI to WAVE converter library")
+    (description "LibTiMidity is a MIDI to WAVE converter library that uses
+Gravis Ultrasound-compatible patch files to generate digital audio data from
+General MIDI files.")
+    (home-page "http://libtimidity.sourceforge.net/")
+    (license
+     ;; This project is dual-licensed.
+     ;; Either of the following licenses can be exercised.
+     (list
+      license:lgpl2.1+
+      license:artistic2.0))))
+
 (define-public vo-amrwbenc
   (package
     (name "vo-amrwbenc")
-- 
2.26.2


[-- Attachment #1.1.12: 0020-gnu-Add-directfb.patch --]
[-- Type: text/x-patch, Size: 4512 bytes --]

From bd77133228c63547998aa7cf7e90776bc0e8c0a4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 1 Jul 2020 06:00:23 -0400
Subject: [PATCH 20/51] gnu: Add directfb.

* gnu/packages/graphics.scm (directfb): New variable.
---
 gnu/packages/graphics.scm | 77 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index bd346699c2..073404673c 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -47,24 +47,29 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -81,8 +86,10 @@
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
@@ -93,6 +100,76 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public directfb
+  (package
+    (name "directfb")
+    (version "1.7.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/deniskropp/DirectFB.git")
+         (commit "DIRECTFB_1_7_7")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0bs3yzb7hy3mgydrj8ycg7pllrd2b6j0gxj596inyr7ihssr3i0y"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-configure-during-bootstrap
+           (lambda _
+             (substitute* "autogen.sh"
+               (("^.*\\$srcdir/configure.*") ""))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("ffmpeg" ,ffmpeg)
+       ("freetype" ,freetype)
+       ("glu" ,glu)
+       ("gstreamer" ,gstreamer)
+       ("imlib2" ,imlib2)
+       ("jasper" ,jasper)
+       ("jpeg" ,libjpeg-turbo)
+       ("libcddb" ,libcddb)
+       ("libdrm" ,libdrm)
+       ("libtimidity" ,libtimidity)
+       ("linux-headers" ,linux-libre-headers)
+       ("mad" ,libmad)
+       ("mng" ,libmng)
+       ("mpeg2" ,libmpeg2)
+       ("mpeg3" ,libmpeg3)
+       ("opengl" ,mesa)
+       ("png" ,libpng)
+       ("sdl" ,sdl)
+       ("svg" ,librsvg)
+       ("tiff" ,libtiff)
+       ("tslib" ,tslib)
+       ("vdpau" ,libvdpau)
+       ("vorbisfile" ,libvorbis)
+       ("wayland" ,wayland)
+       ("webp" ,libwebp)
+       ("x11" ,libx11)
+       ("xcomposite" ,libxcomposite)
+       ("xext" ,libxext)
+       ("xproto" ,xorgproto)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("flux" ,flux)))
+    (synopsis "DFB Graphics Library")
+    (description "DirectFB is a graphics library which was designed with embedded
+systems in mind.  It offers maximum hardware accelerated performance at a
+minimum of resource usage and overhead.")
+    (home-page "http://www.directfb.org/")
+    (license license:lgpl2.1+)))
+
 (define-public flux
   (package
     (name "flux")
-- 
2.26.2


[-- Attachment #1.1.13: 0021-gnu-Add-faac.patch --]
[-- Type: text/x-patch, Size: 1576 bytes --]

From ca172dd43ec32775f12f4f0ee7ec59f628548f2c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 1 Jul 2020 06:06:41 -0400
Subject: [PATCH 21/51] gnu: Add faac.

* gnu/packages/audio.scm (faac): New variable.
---
 gnu/packages/audio.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 60ebbe5e89..3823115f24 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -126,6 +126,34 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public faac
+  (package
+    (name "faac")
+    (version "1.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/faac/files/faac-src/"
+                       "faac-1.30/faac-1_30.tar.gz/download"))
+       (sha256
+        (base32 "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Freeware Advanced Audio Coder")
+    (description "FAAC is an MPEG-4 and MPEG-2 AAC encoder.")
+    (home-page "https://www.audiocoding.com/faac.html")
+    (license
+     (list
+      ;; ISO MPEG-4 reference code.
+      license:gpl2+
+      ;; Others.
+      license:lgpl2.0+))))
+
 (define-public libtimidity
   (package
     (name "libtimidity")
-- 
2.26.2


[-- Attachment #1.1.14: 0022-gnu-Add-flite.patch --]
[-- Type: text/x-patch, Size: 3439 bytes --]

From 5ea62c03c490f798e1478d5a27ea2733b6472ddf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 2 Jul 2020 01:55:56 -0400
Subject: [PATCH 22/51] gnu: Add flite.

* gnu/packages/speech.scm (flite): New variable.
---
 gnu/packages/speech.scm | 58 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index c9c1eaa8d9..0968b015be 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -50,6 +50,64 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils))
 
+(define-public flite
+  (package
+    (name "flite")
+    (version "2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://www.festvox.org/" name "/packed/" name
+                       "-" version "/" name "-" version "-release.tar.bz2"))
+       (sha256
+        (base32 "119b7l7pjb1l5raqq24p8rmhdqni49vjh2mgdryrfr575rm3yg67"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; XXX:
+     ;; There numerous issues with the testsuite.
+     ;; Enable them once they are fixed in upstream.
+     `(#:tests? #f
+       #:configure-flags
+       (list
+        "--enable-shared"
+        (string-append "LDFLAGS=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'remove-static-libs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (for-each delete-file
+                         (list
+                          (string-append out "/lib/libflite.a")
+                          (string-append out "/lib/libflite_cmu_grapheme_lang.a")
+                          (string-append out "/lib/libflite_cmu_grapheme_lex.a")
+                          (string-append out "/lib/libflite_cmu_indic_lang.a")
+                          (string-append out "/lib/libflite_cmu_indic_lex.a")
+                          (string-append out "/lib/libflite_cmulex.a")
+                          (string-append out "/lib/libflite_cmu_time_awb.a")
+                          (string-append out "/lib/libflite_cmu_us_awb.a")
+                          (string-append out "/lib/libflite_cmu_us_kal16.a")
+                          (string-append out "/lib/libflite_cmu_us_kal.a")
+                          (string-append out "/lib/libflite_cmu_us_rms.a")
+                          (string-append out "/lib/libflite_cmu_us_slt.a")
+                          (string-append out "/lib/libflite_usenglish.a"))))
+             #t)))))
+    (native-inputs
+     `(("perl" ,perl)))
+    (inputs
+     `(("alsa" ,alsa-lib)))
+    (synopsis "Speech synthesis system")
+    (description "Flite (festival-lite) is a small, fast run-time text to speech
+synthesis engine developed at CMU and primarily designed for small embedded
+machines and/or large servers.  It is designed as an alternative text to speech
+synthesis engine to Festival for voices built using the FestVox suite of voice
+building tools.")
+    (home-page "http://www.festvox.org/flite/index.html")
+    (license (license:non-copyleft "file:///COPYING"))))
+
 (define-public espeak
   (package
     (name "espeak")
-- 
2.26.2


[-- Attachment #1.1.15: 0023-gnu-Add-ffmpeg-2.8.patch --]
[-- Type: text/x-patch, Size: 2913 bytes --]

From b038f8f315c6dc1015794f950512ab80f7cfaa20 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 2 Jul 2020 05:52:47 -0400
Subject: [PATCH 23/51] gnu: Add ffmpeg-2.8.

* gnu/packages/video.scm (ffmpeg-2.8): New variable.
---
 gnu/packages/video.scm | 48 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d14e5962e7..aaf3471a62 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1247,6 +1247,54 @@ audio/video codec library.")
     (inputs (alist-delete "dav1d" (alist-delete "libaom" (alist-delete "rav1e"
                            (package-inputs ffmpeg)))))))
 
+(define-public ffmpeg-2.8
+  (package
+    (inherit ffmpeg)
+    (version "2.8.16")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "14n0xg22yz1r4apif2idm91s3avcmkz4sl8gyj5763gcy415k2bb"))))
+    (arguments
+     `(#:tests? #f               ; XXX: Enable them later, if required
+       #:configure-flags
+       (list
+        "--disable-static"
+        "--enable-shared"
+        "--extra-cflags=-DFF_API_OLD_ENCODE_VIDEO -DFF_API_OLD_ENCODE_AUDIO")
+       #:phases
+       (modify-phases %standard-phases
+         (replace
+             'configure
+           ;; configure does not work followed by "SHELL=..." and
+           ;; "CONFIG_SHELL=..."; set environment variables instead
+           (lambda* (#:key outputs configure-flags #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "configure"
+                 (("#! /bin/sh") (string-append "#!" (which "sh"))))
+               (setenv "SHELL" (which "bash"))
+               (setenv "CONFIG_SHELL" (which "bash"))
+               (apply invoke
+                      "./configure"
+                      (string-append "--prefix=" out)
+                      ;; Add $libdir to the RUNPATH of all the binaries.
+                      (string-append "--extra-ldflags=-Wl,-rpath="
+                                     out "/lib")
+                      configure-flags))))
+         (add-before
+             'check 'set-ld-library-path
+           (lambda _
+             ;; Allow $(top_builddir)/ffmpeg to find its dependencies when
+             ;; running tests.
+             (let* ((dso  (find-files "." "\\.so$"))
+                    (path (string-join (map dirname dso) ":")))
+               (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
+               (setenv "LD_LIBRARY_PATH" path)
+               #t))))))))
+
 (define-public ffmpeg-for-stepmania
   (hidden-package
    (package
-- 
2.26.2


[-- Attachment #1.1.16: 0024-gnu-Add-libvideogfx.patch --]
[-- Type: text/x-patch, Size: 2342 bytes --]

From 71b7882404917563398e0fb54274b0a83ca25db1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 2 Jul 2020 09:10:19 -0400
Subject: [PATCH 24/51] gnu: Add libvideogfx.

* gnu/packages/video.scm (libvideogfx): New variable.
---
 gnu/packages/video.scm | 44 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index aaf3471a62..d335ca626f 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -170,6 +170,50 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public libvideogfx
+  (package
+    (name "libvideogfx")
+    (version "1.0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/farindk/libvideogfx.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "154b0j8cfg879pg08xcbwvbz8z9nrfnyj31i48vxir1psas70ynq"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build-errors
+           (lambda _
+             (substitute* "libvideogfx/graphics/fileio/ffmpeg.cc"
+               (("av_close_input_file\\(")
+                "avformat_close_input(&"))
+             (substitute* "libvideogfx/graphics/fileio/png.cc"
+               (("is != NULL") "is.good()"))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("ffmpeg" ,ffmpeg-2.8)
+       ("jpeg" ,libjpeg-turbo)
+       ("png" ,libpng)
+       ("x11" ,libx11)
+       ("xext" ,libxext)))
+    (synopsis "Video processing library")
+    (description "LibVideoGfx is a C++ library for low-level video processing.
+It aims at speeding up the development process for image and video processing
+applications by providing high-level classes for commonly required tasks.")
+    (home-page "https://dirk-farin.net/software/libvideogfx/index.html")
+    (license license:lgpl2.1+)))
+
 (define-public tslib
   (package
     (name "tslib")
-- 
2.26.2


[-- Attachment #1.1.17: 0025-gnu-Add-libde265.patch --]
[-- Type: text/x-patch, Size: 2037 bytes --]

From aa366534f7fecda57d18b4e9162ee6f1a1235dd4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 2 Jul 2020 09:56:33 -0400
Subject: [PATCH 25/51] gnu: Add libde265.

* gnu/packages/video.scm (libde265): New variable.
---
 gnu/packages/video.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d335ca626f..b25a8d1af8 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -214,6 +214,44 @@ applications by providing high-level classes for commonly required tasks.")
     (home-page "https://dirk-farin.net/software/libvideogfx/index.html")
     (license license:lgpl2.1+)))
 
+(define-public libde265
+  (package
+    (name "libde265")
+    (version "1.0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/strukturag/libde265.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qisj8ryzbknam3hk81rq70fsd9mcpxm898bqygvbsmbwyvmz3pg"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(;; XXX: Build fails with libvideogfx.
+       ;; ("libvideogfx" ,libvideogfx)
+       ("qt" ,qtbase)
+       ("sdl" ,sdl)))
+    (synopsis "H.265 video codec implementation")
+    (description "Libde265 is an implementation of the h.265 video codec.  It is
+written from scratch and has a plain C API to enable a simple integration into
+other software.")
+    (home-page "https://www.libde265.org/")
+    (license
+     (list
+      ;; Applications.
+      license:expat
+      ;; Library.
+      license:lgpl3+))))
+
 (define-public tslib
   (package
     (name "tslib")
-- 
2.26.2


[-- Attachment #1.1.18: 0026-gnu-Add-libmms.patch --]
[-- Type: text/x-patch, Size: 1379 bytes --]

From 78c129ac8656540ec8599c68157dae5f82eba647 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 07:12:48 -0400
Subject: [PATCH 26/51] gnu: Add libmms.

* gnu/packages/video.scm (libmms): New variable.
---
 gnu/packages/video.scm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index b25a8d1af8..d2194717a1 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -170,6 +170,25 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public libmms
+  (package
+    (name "libmms")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kvhxr5hkabj9v7ah2rzkbirndfqdijd9hp8v52c1z6bxddf019w"))))
+    (build-system gnu-build-system)
+    (synopsis "MMS stream protocol library")
+    (description "Libmms is a library for streaming media files using the mmst
+and mmsh protocols.")
+    (home-page "https://sourceforge.net/projects/libmms/")
+    (license license:lgpl2.1+)))
+
 (define-public libvideogfx
   (package
     (name "libvideogfx")
-- 
2.26.2


[-- Attachment #1.1.19: 0027-gnu-Add-schroedinger.patch --]
[-- Type: text/x-patch, Size: 2496 bytes --]

From 91f31378141ad994884d3a83db30deb07d7b7dea Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 07:14:26 -0400
Subject: [PATCH 27/51] gnu: Add schroedinger.

* gnu/packages/video.scm (schroedinger): New variable.
---
 gnu/packages/video.scm | 49 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d2194717a1..3764e14552 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -170,6 +170,55 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public schroedinger
+  (package
+    (name "schroedinger")
+    (version "1.0.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://launchpad.net/" name "/trunk/" version
+                       "/+download/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04prr667l4sn4zx256v1z36a0nnkxfdqyln48rbwlamr6l3jlmqy"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (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
+     `(("dash" ,dash)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glew" ,glew)
+       ("opengl" ,mesa)))
+    (propagated-inputs
+     `(("orc" ,orc)))
+    (synopsis "Dirac video codec")
+    (description "Schroedinger is a project implementing the Dirac video codec in
+ANSI C code.  It is meant to be highly optimized and portable.  It is developed
+as a joint effort between the BBC and Fluendo.")
+    (home-page "https://launchpad.net/schroedinger")
+    (license
+     ;; This library is licensed under 4 different licenses,
+     ;; and you can choose to use it under the terms of any one of them.
+     (list
+      license:gpl2+
+      license:lgpl2.0+
+      license:expat
+      license:mpl1.1))))
+
 (define-public libmms
   (package
     (name "libmms")
-- 
2.26.2


[-- Attachment #1.1.20: 0028-gnu-Add-libquicktime.patch --]
[-- Type: text/x-patch, Size: 52241 bytes --]

From 36d39908f4c608b6ed13593cbb434ed667d4db52 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 08:03:40 -0400
Subject: [PATCH 28/51] gnu: Add libquicktime.

* gnu/packages/video.scm (libquicktime): New variable.
* gnu/packages/patches/libquicktime-ffmpeg.patch: New file.
* gnu/local.mk (libquicktime-ffmpeg.patch): New reference.
---
 gnu/local.mk                                  |    1 +
 .../patches/libquicktime-ffmpeg.patch         | 1309 +++++++++++++++++
 gnu/packages/video.scm                        |   40 +
 3 files changed, 1350 insertions(+)
 create mode 100644 gnu/packages/patches/libquicktime-ffmpeg.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 1b9fabd2ad..ecc6bf8bb0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1194,6 +1194,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch		\
   %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
   %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch	\
+  %D%/packages/patches/libquicktime-ffmpeg.patch 		\
   %D%/packages/patches/libreoffice-poppler-compat.patch		\
   %D%/packages/patches/libsndfile-armhf-type-checks.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch	\
diff --git a/gnu/packages/patches/libquicktime-ffmpeg.patch b/gnu/packages/patches/libquicktime-ffmpeg.patch
new file mode 100644
index 0000000000..48c595fba9
--- /dev/null
+++ b/gnu/packages/patches/libquicktime-ffmpeg.patch
@@ -0,0 +1,1309 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2018-05-12
+Initial Package Version: 1.2.4
+Upstream Status: Defunct
+Origin: Gentoo
+Description: Accumulated fixes up to and including building with ffmpeg-4
+
+From gentoo, their libav-9.patch, ffmpeg2.patch, CVE-2016-2399.patch,
+ffmpeg29.patch, ffmpeg4.patch, and seds to files lqt_ffmpeg.c, video.c,
+audio.c in plugins/ffmpeg/ to change CODEC_ID to AV_CODEC_ID.
+
+Build-tested only.
+
+diff -Naur a/plugins/ffmpeg/audio.c b/plugins/ffmpeg/audio.c
+--- a/plugins/ffmpeg/audio.c	2012-03-29 20:44:28.000000000 +0100
++++ b/plugins/ffmpeg/audio.c	2018-05-11 23:15:21.057985300 +0100
+@@ -45,6 +45,11 @@
+ #define ENCODE_AUDIO 1
+ #endif
+ 
++#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
++/* from libavcodec/avcodec.h dated Dec 23 2012 */
++#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
++#endif
++
+ /* The following code was ported from gmerlin_avdecoder (http://gmerlin.sourceforge.net) */
+ 
+ /* MPEG Audio header parsing code */
+@@ -540,7 +545,7 @@
+ 
+ #if DECODE_AUDIO3 || DECODE_AUDIO4
+     codec->pkt.data = codec->chunk_buffer;
+-    codec->pkt.size = packet_size + FF_INPUT_BUFFER_PADDING_SIZE;
++    codec->pkt.size = packet_size + AV_INPUT_BUFFER_PADDING_SIZE;
+ 
+ #if DECODE_AUDIO4
+     frame_bytes = avcodec_decode_audio4(codec->avctx, &f,
+@@ -578,7 +583,7 @@
+                                          (codec->sample_buffer_end - codec->sample_buffer_start)],
+                   &bytes_decoded,
+                   codec->chunk_buffer,
+-                  packet_size + FF_INPUT_BUFFER_PADDING_SIZE);
++                  packet_size + AV_INPUT_BUFFER_PADDING_SIZE);
+     if(frame_bytes < 0)
+       {
+       lqt_log(file, LQT_LOG_ERROR, LOG_DOMAIN, "avcodec_decode_audio2 error");
+@@ -626,7 +631,7 @@
+     {
+     /* If the codec is mp3, make sure to decode the very last frame */
+ 
+-    if((codec->avctx->codec_id == CODEC_ID_MP3) &&
++    if((codec->avctx->codec_id == AV_CODEC_ID_MP3) &&
+        (codec->bytes_in_chunk_buffer >= 4))
+       {
+       if(!mpa_decode_header(&mph, codec->chunk_buffer, (const mpa_header*)0))
+@@ -640,13 +645,13 @@
+         return 0;
+         }
+ 
+-      if(codec->chunk_buffer_alloc < mph.frame_bytes + FF_INPUT_BUFFER_PADDING_SIZE)
++      if(codec->chunk_buffer_alloc < mph.frame_bytes + AV_INPUT_BUFFER_PADDING_SIZE)
+         {
+-        codec->chunk_buffer_alloc = mph.frame_bytes + FF_INPUT_BUFFER_PADDING_SIZE;
++        codec->chunk_buffer_alloc = mph.frame_bytes + AV_INPUT_BUFFER_PADDING_SIZE;
+         codec->chunk_buffer = realloc(codec->chunk_buffer, codec->chunk_buffer_alloc);
+         }
+       memset(codec->chunk_buffer + codec->bytes_in_chunk_buffer, 0,
+-             mph.frame_bytes - codec->bytes_in_chunk_buffer + FF_INPUT_BUFFER_PADDING_SIZE);
++             mph.frame_bytes - codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE);
+       num_samples = mph.samples_per_frame;
+       codec->bytes_in_chunk_buffer = mph.frame_bytes;
+       }
+@@ -690,12 +695,12 @@
+     {
+ 
+         
+-    /* BIG NOTE: We pass extra FF_INPUT_BUFFER_PADDING_SIZE for the buffer size
++    /* BIG NOTE: We pass extra AV_INPUT_BUFFER_PADDING_SIZE for the buffer size
+        because we know, that lqt_read_audio_chunk allocates 16 extra bytes for us */
+     
+     /* Some really broken mp3 files have the header bytes split across 2 chunks */
+ 
+-    if(codec->avctx->codec_id == CODEC_ID_MP3)
++    if(codec->avctx->codec_id == AV_CODEC_ID_MP3)
+       {
+       if(codec->bytes_in_chunk_buffer < 4)
+         {
+@@ -756,7 +761,7 @@
+ 
+ #if DECODE_AUDIO3 || DECODE_AUDIO4
+     codec->pkt.data = &codec->chunk_buffer[bytes_used];
+-    codec->pkt.size = codec->bytes_in_chunk_buffer + FF_INPUT_BUFFER_PADDING_SIZE;
++    codec->pkt.size = codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE;
+ 
+ #if DECODE_AUDIO4
+     
+@@ -793,7 +798,7 @@
+                                                   (codec->sample_buffer_end - codec->sample_buffer_start)],
+                             &bytes_decoded,
+                             &codec->chunk_buffer[bytes_used],
+-                            codec->bytes_in_chunk_buffer + FF_INPUT_BUFFER_PADDING_SIZE);
++                            codec->bytes_in_chunk_buffer + AV_INPUT_BUFFER_PADDING_SIZE);
+ #endif
+     if(frame_bytes < 0)
+       {
+@@ -806,7 +811,7 @@
+     
+     if(bytes_decoded < 0)
+       {
+-      if(codec->avctx->codec_id == CODEC_ID_MP3)
++      if(codec->avctx->codec_id == AV_CODEC_ID_MP3)
+         {
+         /* For mp3, bytes_decoded < 0 means, that the frame should be muted */
+         memset(&codec->sample_buffer[track_map->channels * (codec->sample_buffer_end -
+@@ -833,7 +838,7 @@
+         }
+       }
+     
+-    /* This happens because ffmpeg adds FF_INPUT_BUFFER_PADDING_SIZE to the bytes returned */
++    /* This happens because ffmpeg adds AV_INPUT_BUFFER_PADDING_SIZE to the bytes returned */
+     
+     if(codec->bytes_in_chunk_buffer < 0)
+       codec->bytes_in_chunk_buffer = 0;
+@@ -866,8 +871,8 @@
+   quicktime_audio_map_t *track_map = &file->atracks[track];
+   quicktime_ffmpeg_audio_codec_t *codec = track_map->codec->priv;
+ 
+-  if((codec->decoder->id == CODEC_ID_MP2) ||
+-     (codec->decoder->id == CODEC_ID_MP3))
++  if((codec->decoder->id == AV_CODEC_ID_MP2) ||
++     (codec->decoder->id == AV_CODEC_ID_MP3))
+     {
+     mpa_header h;
+     uint32_t header;
+@@ -909,7 +914,7 @@
+     else
+       track_map->ci.bitrate = h.bitrate;
+     }
+-  else if(codec->decoder->id == CODEC_ID_AC3)
++  else if(codec->decoder->id == AV_CODEC_ID_AC3)
+     {
+     a52_header h;
+     uint8_t * ptr;
+@@ -986,7 +991,7 @@
+ #endif
+     /* Some codecs need extra stuff */
+ 
+-    if(codec->decoder->id == CODEC_ID_ALAC)
++    if(codec->decoder->id == AV_CODEC_ID_ALAC)
+       {
+       header = quicktime_wave_get_user_atom(track_map->track, "alac", &header_len);
+       if(header)
+@@ -995,7 +1000,7 @@
+         codec->avctx->extradata_size = header_len;
+         }
+       }
+-    if(codec->decoder->id == CODEC_ID_QDM2)
++    if(codec->decoder->id == AV_CODEC_ID_QDM2)
+       {
+       header = quicktime_wave_get_user_atom(track_map->track, "QDCA", &header_len);
+       if(header)
+@@ -1261,7 +1266,7 @@
+     pkt.data = codec->chunk_buffer;
+     pkt.size = codec->chunk_buffer_alloc;
+ 
+-    avcodec_get_frame_defaults(&f);
++    av_frame_unref(&f);
+     f.nb_samples = codec->avctx->frame_size;
+     
+     avcodec_fill_audio_frame(&f, channels, codec->avctx->sample_fmt,
+@@ -1495,9 +1500,9 @@
+     codec_base->decode_audio = lqt_ffmpeg_decode_audio;
+   codec_base->set_parameter = set_parameter;
+ 
+-  if((decoder->id == CODEC_ID_MP3) || (decoder->id == CODEC_ID_MP2))
++  if((decoder->id == AV_CODEC_ID_MP3) || (decoder->id == AV_CODEC_ID_MP2))
+     codec_base->read_packet = read_packet_mpa;
+-  else if(decoder->id == CODEC_ID_AC3)
++  else if(decoder->id == AV_CODEC_ID_AC3)
+     {
+     codec_base->write_packet = write_packet_ac3;
+     codec_base->read_packet = read_packet_ac3;
+diff -Naur a/plugins/ffmpeg/ffmpeg.h b/plugins/ffmpeg/ffmpeg.h
+--- a/plugins/ffmpeg/ffmpeg.h	2012-02-15 19:48:30.000000000 +0000
++++ b/plugins/ffmpeg/ffmpeg.h	2018-05-11 23:10:24.204992468 +0100
+@@ -27,6 +27,7 @@
+ 
+ #include <quicktime/qtprivate.h>
+ #include AVCODEC_HEADER
++#include <libavutil/mem.h>
+ 
+ void quicktime_init_video_codec_ffmpeg(quicktime_codec_t * codec,
+                                        quicktime_video_map_t *vtrack,
+diff -Naur a/plugins/ffmpeg/lqt_ffmpeg.c b/plugins/ffmpeg/lqt_ffmpeg.c
+--- a/plugins/ffmpeg/lqt_ffmpeg.c	2012-02-15 19:48:30.000000000 +0000
++++ b/plugins/ffmpeg/lqt_ffmpeg.c	2018-05-11 23:15:07.583985628 +0100
+@@ -386,7 +386,7 @@
+ struct CODECIDMAP codecidmap_v[] =
+   {
+     {
+-      .id = CODEC_ID_MPEG1VIDEO,
++      .id = AV_CODEC_ID_MPEG1VIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -397,7 +397,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE }
+     },
+     {
+-      .id = CODEC_ID_MPEG4,
++      .id = AV_CODEC_ID_MPEG4,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -415,7 +415,7 @@
+       .compression_id = LQT_COMPRESSION_MPEG4_ASP,
+     },
+     {
+-      .id = CODEC_ID_MSMPEG4V1,
++      .id = AV_CODEC_ID_MSMPEG4V1,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -426,7 +426,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_MSMPEG4V2,
++      .id = AV_CODEC_ID_MSMPEG4V2,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -437,7 +437,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_MSMPEG4V3,
++      .id = AV_CODEC_ID_MSMPEG4V3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -453,7 +453,7 @@
+       .do_encode = 1,
+     },
+     {
+-      .id = CODEC_ID_MSMPEG4V3,
++      .id = AV_CODEC_ID_MSMPEG4V3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -468,7 +468,7 @@
+     },
+ #if 0
+     {
+-      .id = CODEC_ID_WMV1,
++      .id = AV_CODEC_ID_WMV1,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -481,7 +481,7 @@
+     },
+ #endif
+     {
+-      .id = CODEC_ID_H263,
++      .id = AV_CODEC_ID_H263,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -493,7 +493,7 @@
+       .compatibility_flags = LQT_FILE_QT_OLD | LQT_FILE_QT | LQT_FILE_MP4 | LQT_FILE_3GP,
+     },
+     {
+-      .id = CODEC_ID_H263,
++      .id = AV_CODEC_ID_H263,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -508,7 +508,7 @@
+       .do_encode = 1,
+     },
+     {
+-      .id = CODEC_ID_H264,
++      .id = AV_CODEC_ID_H264,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -519,7 +519,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_H263P,
++      .id = AV_CODEC_ID_H263P,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -533,7 +533,7 @@
+       .do_encode = 1,
+     },
+     {
+-      .id = CODEC_ID_H263I,
++      .id = AV_CODEC_ID_H263I,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -544,7 +544,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_SVQ1,
++      .id = AV_CODEC_ID_SVQ1,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -555,7 +555,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_SVQ3,
++      .id = AV_CODEC_ID_SVQ3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -566,7 +566,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_MJPEG,
++      .id = AV_CODEC_ID_MJPEG,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -580,7 +580,7 @@
+       .do_encode = 1,
+     },
+     {
+-      .id = CODEC_ID_MJPEGB,
++      .id = AV_CODEC_ID_MJPEGB,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -594,7 +594,7 @@
+     },
+ #if LIBAVCODEC_BUILD >= 3346688
+     {
+-      .id = CODEC_ID_TARGA,
++      .id = AV_CODEC_ID_TARGA,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -606,7 +606,7 @@
+ #endif
+ #if LIBAVCODEC_BUILD >= 3347456
+     {
+-      .id = CODEC_ID_TIFF,
++      .id = AV_CODEC_ID_TIFF,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -617,7 +617,7 @@
+     },
+ #endif
+     {
+-      .id = CODEC_ID_8BPS,
++      .id = AV_CODEC_ID_8BPS,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -627,7 +627,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_INDEO3,
++      .id = AV_CODEC_ID_INDEO3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -638,7 +638,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_RPZA,
++      .id = AV_CODEC_ID_RPZA,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -648,7 +648,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_SMC,
++      .id = AV_CODEC_ID_SMC,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -658,7 +658,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_CINEPAK,
++      .id = AV_CODEC_ID_CINEPAK,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -669,7 +669,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_CYUV,
++      .id = AV_CODEC_ID_CYUV,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -680,7 +680,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_QTRLE,
++      .id = AV_CODEC_ID_QTRLE,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -693,7 +693,7 @@
+       .encoding_colormodels = (int[]){ BC_RGB888, BC_RGBA8888, LQT_COLORMODEL_NONE },
+     },
+     {
+-      .id = CODEC_ID_MSRLE,
++      .id = AV_CODEC_ID_MSRLE,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -703,7 +703,7 @@
+       .wav_ids = { LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_DVVIDEO,
++      .id = AV_CODEC_ID_DVVIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -719,7 +719,7 @@
+       .image_sizes = image_sizes_dv,
+     },
+     {
+-      .id = CODEC_ID_DVVIDEO,
++      .id = AV_CODEC_ID_DVVIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -735,7 +735,7 @@
+       .image_sizes = image_sizes_dv,
+     },
+     {
+-      .id = CODEC_ID_DVVIDEO,
++      .id = AV_CODEC_ID_DVVIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -751,7 +751,7 @@
+     },
+     /* DVCPRO HD (decoding only for now) */
+     {
+-      .id = CODEC_ID_DVVIDEO,
++      .id = AV_CODEC_ID_DVVIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -772,7 +772,7 @@
+       // .do_encode = 1
+     },
+     {
+-      .id = CODEC_ID_FFVHUFF,
++      .id = AV_CODEC_ID_FFVHUFF,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -785,7 +785,7 @@
+       .do_encode = 1
+     },
+     {
+-      .id = CODEC_ID_FFV1,
++      .id = AV_CODEC_ID_FFV1,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -801,7 +801,7 @@
+     },
+ #if LIBAVCODEC_BUILD >= 3352576
+     {
+-      .id = CODEC_ID_DNXHD,
++      .id = AV_CODEC_ID_DNXHD,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -817,7 +817,7 @@
+     },
+ #endif
+     {
+-      .id = CODEC_ID_MPEG2VIDEO,
++      .id = AV_CODEC_ID_MPEG2VIDEO,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -839,7 +839,7 @@
+ struct CODECIDMAP codecidmap_a[] =
+   {
+     {
+-      .id = CODEC_ID_MP3,
++      .id = AV_CODEC_ID_MP3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -851,7 +851,7 @@
+       .wav_ids = { 0x50, 0x55, LQT_WAV_ID_NONE },
+     },
+     {
+-      .id = CODEC_ID_MP2,
++      .id = AV_CODEC_ID_MP2,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -866,7 +866,7 @@
+       .compression_id = LQT_COMPRESSION_MP2,
+     },
+     {
+-      .id = CODEC_ID_AC3,
++      .id = AV_CODEC_ID_AC3,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -881,7 +881,7 @@
+       .compression_id = LQT_COMPRESSION_AC3,
+     },
+     {
+-      .id = CODEC_ID_QDM2,
++      .id = AV_CODEC_ID_QDM2,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -896,7 +896,7 @@
+ #if 1
+     /* Doesn't work as long as audio chunks are not split into VBR "Samples" */
+     {
+-      .id = CODEC_ID_ALAC,
++      .id = AV_CODEC_ID_ALAC,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -909,7 +909,7 @@
+ #if 1
+     /* Sounds ugly */
+     {
+-      .id = CODEC_ID_ADPCM_MS,
++      .id = AV_CODEC_ID_ADPCM_MS,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+@@ -922,7 +922,7 @@
+ #if 1
+     /* Sounds ugly */
+     {
+-      .id = CODEC_ID_ADPCM_IMA_WAV,
++      .id = AV_CODEC_ID_ADPCM_IMA_WAV,
+       .index = -1,
+       .encoder = NULL,
+       .decoder = NULL,
+diff -Naur a/plugins/ffmpeg/params.c b/plugins/ffmpeg/params.c
+--- a/plugins/ffmpeg/params.c	2012-03-07 14:10:41.000000000 +0000
++++ b/plugins/ffmpeg/params.c	2018-05-11 23:11:59.803990160 +0100
+@@ -101,6 +101,17 @@
+     }                                           \
+   }
+ 
++#define PARAM_DICT_INT(name, dict_name)             \
++  {                                                 \
++  if(!strcasecmp(name, key))                        \
++    {                                               \
++    char buf[128];                                  \
++    snprintf(buf, sizeof(buf), "%d", *(int*)value); \
++    av_dict_set(options, dict_name, buf, 0);        \
++    found = 1;                                      \
++    }                                               \
++  }
++
+ #define PARAM_DICT_FLAG(name, dict_name)        \
+   {                                             \
+   if(!strcasecmp(name, key))                    \
+@@ -113,16 +124,6 @@
+   }
+ 
+ 
+-enum_t me_method[] =
+-  {
+-    { "Zero",  ME_ZERO },
+-    { "Phods", ME_PHODS },
+-    { "Log",   ME_LOG },
+-    { "X1",    ME_X1 },
+-    { "Epzs",  ME_EPZS },
+-    { "Full",  ME_FULL }
+-  };
+-
+ enum_t prediction_method[] =
+   {
+     { "Left",   FF_PRED_LEFT },
+@@ -152,15 +153,6 @@
+     { "Rate distoration",     FF_MB_DECISION_RD }
+   };
+ 
+-enum_t coder_type[] =
+-  {
+-    { "VLC",                  FF_CODER_TYPE_VLC },
+-    { "Arithmetic",           FF_CODER_TYPE_AC },
+-    { "Raw",                  FF_CODER_TYPE_RAW },
+-    { "RLE",                  FF_CODER_TYPE_RLE },
+-    { "Deflate",              FF_CODER_TYPE_DEFLATE },
+-  };
+-
+ #define PARAM_ENUM(name, var, arr) \
+   if(!strcasecmp(key, name)) \
+     { \
+@@ -192,7 +184,7 @@
+   PARAM_INT_SCALE("ff_bit_rate_audio",bit_rate,1000);
+   PARAM_INT_SCALE("ff_bit_rate_video",bit_rate,1000);
+   PARAM_INT_SCALE("ff_bit_rate_tolerance",bit_rate_tolerance,1000);
+-  PARAM_ENUM("ff_me_method",me_method,me_method);
++  PARAM_DICT_INT("ff_me_method","motion-est");
+   PARAM_INT("ff_gop_size",gop_size);
+   PARAM_FLOAT("ff_qcompress",qcompress);
+   PARAM_FLOAT("ff_qblur",qblur);
+@@ -202,17 +194,23 @@
+   PARAM_INT("ff_max_b_frames",max_b_frames);
+   PARAM_FLOAT("ff_b_quant_factor",b_quant_factor);
+   PARAM_INT("ff_b_frame_strategy",b_frame_strategy);
++
++#if LIBAVCODEC_VERSION_MAJOR >= 55
++  PARAM_DICT_INT("ff_luma_elim_threshold","luma_elim_threshold");
++  PARAM_DICT_INT("ff_chroma_elim_threshold","chroma_elim_threshold");
++#else
+   PARAM_INT("ff_luma_elim_threshold",luma_elim_threshold);
+   PARAM_INT("ff_chroma_elim_threshold",chroma_elim_threshold);
++#endif
++
+   PARAM_INT("ff_strict_std_compliance",strict_std_compliance);
+   PARAM_QP2LAMBDA("ff_b_quant_offset",b_quant_offset);
+   PARAM_INT("ff_rc_min_rate",rc_min_rate);
+   PARAM_INT("ff_rc_max_rate",rc_max_rate);
+   PARAM_INT_SCALE("ff_rc_buffer_size",rc_buffer_size,1000);
+-  PARAM_FLOAT("ff_rc_buffer_aggressivity",rc_buffer_aggressivity);
+   PARAM_FLOAT("ff_i_quant_factor",i_quant_factor);
+   PARAM_QP2LAMBDA("ff_i_quant_offset",i_quant_offset);
+-  PARAM_FLOAT("ff_rc_initial_cplx",rc_initial_cplx);
++  PARAM_DICT_INT("ff_rc_initial_cplx","rc_init_cplx");
+   PARAM_FLOAT("ff_lumi_masking",lumi_masking);
+   PARAM_FLOAT("ff_temporal_cplx_masking",temporal_cplx_masking);
+   PARAM_FLOAT("ff_spatial_cplx_masking",spatial_cplx_masking);
+@@ -237,58 +235,68 @@
+   PARAM_INT("ff_me_range",me_range);
+   PARAM_ENUM("ff_mb_decision",mb_decision,mb_decision);
+   PARAM_INT("ff_scenechange_threshold",scenechange_threshold);
+-  PARAM_QP2LAMBDA("ff_lmin", lmin);
+-  PARAM_QP2LAMBDA("ff_lmax", lmax);
++  PARAM_DICT_INT("ff_lmin", "lmin");
++  PARAM_DICT_INT("ff_lmax", "lmax");
+   PARAM_INT("ff_noise_reduction",noise_reduction);
+   PARAM_INT_SCALE("ff_rc_initial_buffer_occupancy",rc_initial_buffer_occupancy,1000);
++
++#if LIBAVCODEC_VERSION_MAJOR >= 55
++  PARAM_DICT_INT("ff_inter_threshold","inter_threshold");
++  PARAM_DICT_INT("ff_quantizer_noise_shaping","quantizer_noise_shaping");
++#else
+   PARAM_INT("ff_inter_threshold",inter_threshold);
+   PARAM_INT("ff_quantizer_noise_shaping",quantizer_noise_shaping);
++#endif
++
+   PARAM_INT("ff_thread_count",thread_count);
+-  PARAM_INT("ff_me_threshold",me_threshold);
+-  PARAM_INT("ff_mb_threshold",mb_threshold);
+   PARAM_INT("ff_nsse_weight",nsse_weight);
+-  PARAM_FLOAT("ff_border_masking",border_masking);
++  PARAM_DICT_INT("ff_border_masking","border_mask");
+   PARAM_QP2LAMBDA("ff_mb_lmin", mb_lmin);
+   PARAM_QP2LAMBDA("ff_mb_lmax", mb_lmax);
+   PARAM_INT("ff_me_penalty_compensation",me_penalty_compensation);
+   PARAM_INT("ff_bidir_refine",bidir_refine);
+   PARAM_INT("ff_brd_scale",brd_scale);
+-  PARAM_INT("ff_scenechange_factor",scenechange_factor);
+-  PARAM_FLAG("ff_flag_qscale",CODEC_FLAG_QSCALE);
+-  PARAM_FLAG("ff_flag_4mv",CODEC_FLAG_4MV);
+-  PARAM_FLAG("ff_flag_qpel",CODEC_FLAG_QPEL);
+-  PARAM_FLAG("ff_flag_gmc",CODEC_FLAG_GMC);
+-  PARAM_FLAG("ff_flag_mv0",CODEC_FLAG_MV0);
++  PARAM_FLAG("ff_flag_qscale",AV_CODEC_FLAG_QSCALE);
++  PARAM_FLAG("ff_flag_4mv",AV_CODEC_FLAG_4MV);
++  PARAM_FLAG("ff_flag_qpel",AV_CODEC_FLAG_QPEL);
++  PARAM_DICT_FLAG("ff_flag_gmc","gmc");
++  PARAM_DICT_FLAG("ff_flag_mv0","mpv_flags");
+   //  PARAM_FLAG("ff_flag_part",CODEC_FLAG_PART); // Unused
+-  PARAM_FLAG("ff_flag_gray",CODEC_FLAG_GRAY);
+-  PARAM_FLAG("ff_flag_emu_edge",CODEC_FLAG_EMU_EDGE);
+-  PARAM_FLAG("ff_flag_normalize_aqp",CODEC_FLAG_NORMALIZE_AQP);
++  PARAM_FLAG("ff_flag_gray",AV_CODEC_FLAG_GRAY);
++  PARAM_DICT_FLAG("ff_flag_normalize_aqp","naq");
+   //  PARAM_FLAG("ff_flag_alt_scan",CODEC_FLAG_ALT_SCAN); // Unused
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+   PARAM_FLAG("ff_flag_trellis_quant",CODEC_FLAG_TRELLIS_QUANT);
+ #else
+   PARAM_INT("ff_trellis",trellis);
+ #endif
+-  PARAM_FLAG("ff_flag_bitexact",CODEC_FLAG_BITEXACT);
+-  PARAM_FLAG("ff_flag_ac_pred",CODEC_FLAG_AC_PRED);
++  PARAM_FLAG("ff_flag_bitexact",AV_CODEC_FLAG_BITEXACT);
++  PARAM_FLAG("ff_flag_ac_pred",AV_CODEC_FLAG_AC_PRED);
+   //  PARAM_FLAG("ff_flag_h263p_umv",CODEC_FLAG_H263P_UMV); // Unused
+-  PARAM_FLAG("ff_flag_cbp_rd",CODEC_FLAG_CBP_RD);
+-  PARAM_FLAG("ff_flag_qp_rd",CODEC_FLAG_QP_RD);
++
++#if LIBAVCODEC_VERSION_MAJOR >= 55
++  PARAM_DICT_FLAG("ff_flag_cbp_rd","cbp_rd");
++  PARAM_DICT_FLAG("ff_flag_qp_rd","qp_rd");
++  PARAM_DICT_FLAG("ff_flag2_strict_gop","strict_gop");
++#else
++  PARAM_FLAG("ff_flag_cbp_rd",AV_CODEC_FLAG_CBP_RD);
++  PARAM_FLAG("ff_flag_qp_rd",AV_CODEC_FLAG_QP_RD);
++  PARAM_FLAG2("ff_flag2_strict_gop",AV_CODEC_FLAG2_STRICT_GOP);
++#endif
+ 
+ #if LIBAVCODEC_VERSION_MAJOR >= 54
+   PARAM_DICT_FLAG("ff_flag_h263p_aiv", "aiv");
+   PARAM_DICT_FLAG("ff_flag_obmc","obmc");
+   PARAM_DICT_FLAG("ff_flag_h263p_slice_struct","structured_slices");
+ #else
+-  PARAM_FLAG("ff_flag_h263p_aiv",CODEC_FLAG_H263P_AIV);
+-  PARAM_FLAG("ff_flag_obmc",CODEC_FLAG_OBMC);
+-  PARAM_FLAG("ff_flag_h263p_slice_struct",CODEC_FLAG_H263P_SLICE_STRUCT);
++  PARAM_FLAG("ff_flag_h263p_aiv",AV_CODEC_FLAG_H263P_AIV);
++  PARAM_FLAG("ff_flag_obmc",AV_CODEC_FLAG_OBMC);
++  PARAM_FLAG("ff_flag_h263p_slice_struct",AV_CODEC_FLAG_H263P_SLICE_STRUCT);
+ #endif
+ 
+-  PARAM_FLAG("ff_flag_loop_filter",CODEC_FLAG_LOOP_FILTER);
+-  PARAM_FLAG("ff_flag_closed_gop",CODEC_FLAG_CLOSED_GOP);
+-  PARAM_FLAG2("ff_flag2_fast",CODEC_FLAG2_FAST);
+-  PARAM_FLAG2("ff_flag2_strict_gop",CODEC_FLAG2_STRICT_GOP);
+-  PARAM_ENUM("ff_coder_type",coder_type,coder_type);
++  PARAM_FLAG("ff_flag_loop_filter",AV_CODEC_FLAG_LOOP_FILTER);
++  PARAM_FLAG("ff_flag_closed_gop",AV_CODEC_FLAG_CLOSED_GOP);
++  PARAM_FLAG2("ff_flag2_fast",AV_CODEC_FLAG2_FAST);
++  PARAM_DICT_INT("ff_coder_type","coder");
+   
+   }
+diff -Naur a/plugins/ffmpeg/params.h b/plugins/ffmpeg/params.h
+--- a/plugins/ffmpeg/params.h	2011-05-11 16:13:39.000000000 +0100
++++ b/plugins/ffmpeg/params.h	2018-05-11 23:11:59.803990160 +0100
+@@ -149,7 +149,7 @@
+     .type =        LQT_PARAMETER_INT, \
+     .val_default = { .val_int = 0 }, \
+     .val_min =     { .val_int = 0 }, \
+-    .val_max =     { .val_int = FF_MAX_B_FRAMES }, \
++    .val_max =     { .val_int = 16 }, \
+     .help_string = TRS("Maximum number of B-frames between non B-frames") \
+   }
+ 
+diff -Naur a/plugins/ffmpeg/video.c b/plugins/ffmpeg/video.c
+--- a/plugins/ffmpeg/video.c	2012-02-25 19:46:56.000000000 +0000
++++ b/plugins/ffmpeg/video.c	2018-05-11 23:15:15.697985432 +0100
+@@ -37,10 +37,10 @@
+ #endif
+ 
+ 
+-#ifdef  PIX_FMT_YUV422P10
+-#define PIX_FMT_YUV422P10_OR_DUMMY PIX_FMT_YUV422P10
++#ifdef  AV_PIX_FMT_YUV422P10
++#define AV_PIX_FMT_YUV422P10_OR_DUMMY AV_PIX_FMT_YUV422P10
+ #else
+-#define PIX_FMT_YUV422P10_OR_DUMMY -1234
++#define AV_PIX_FMT_YUV422P10_OR_DUMMY -1234
+ #endif
+ 
+ #if LIBAVCODEC_VERSION_INT >= ((54<<16)|(1<<8)|0)
+@@ -90,9 +90,9 @@
+   int imx_bitrate;
+   int imx_strip_vbi;
+ 
+-  /* In some cases FFMpeg would report something like PIX_FMT_YUV422P, while
+-     we would like to treat it as PIX_FMT_YUVJ422P. It's only used for decoding */
+-  enum PixelFormat reinterpret_pix_fmt;
++  /* In some cases FFMpeg would report something like AV_PIX_FMT_YUV422P, while
++     we would like to treat it as AV_PIX_FMT_YUVJ422P. It's only used for decoding */
++  enum AVPixelFormat reinterpret_pix_fmt;
+   
+   int is_imx;
+   int y_offset;
+@@ -137,42 +137,42 @@
+ 
+ static const struct
+   {
+-  enum PixelFormat ffmpeg_id;
++  enum AVPixelFormat ffmpeg_id;
+   int              lqt_id;
+   int              exact;
+   }
+ colormodels[] =
+   {
+-    { PIX_FMT_YUV420P,   BC_YUV420P,   1 }, ///< Planar YUV 4:2:0 (1 Cr & Cb sample per 2x2 Y samples)
++    { AV_PIX_FMT_YUV420P,   BC_YUV420P,   1 }, ///< Planar YUV 4:2:0 (1 Cr & Cb sample per 2x2 Y samples)
+ #if LIBAVUTIL_VERSION_INT < (50<<16)
+-    { PIX_FMT_YUV422,    BC_YUV422,    1 },
++    { AV_PIX_FMT_YUV422,    BC_YUV422,    1 },
+ #else
+-    { PIX_FMT_YUYV422,   BC_YUV422,    1 },
++    { AV_PIX_FMT_YUYV422,   BC_YUV422,    1 },
+ #endif
+-    { PIX_FMT_RGB24,     BC_RGB888,    1 }, ///< Packed pixel, 3 bytes per pixel, RGBRGB...
+-    { PIX_FMT_BGR24,     BC_BGR888,    1 }, ///< Packed pixel, 3 bytes per pixel, BGRBGR...
+-    { PIX_FMT_YUV422P,   BC_YUV422P,   1 }, ///< Planar YUV 4:2:2 (1 Cr & Cb sample per 2x1 Y samples)
+-    { PIX_FMT_YUV444P,   BC_YUV444P,   1 }, ///< Planar YUV 4:4:4 (1 Cr & Cb sample per 1x1 Y samples)
+-    { PIX_FMT_YUV411P,   BC_YUV411P,   1 }, ///< Planar YUV 4:1:1 (1 Cr & Cb sample per 4x1 Y samples)
+-    { PIX_FMT_YUV422P16, BC_YUV422P16, 1 }, ///< Planar 16 bit YUV 4:2:2 (1 Cr & Cb sample per 2x1 Y samples)
+-#ifdef PIX_FMT_YUV422P10
+-    { PIX_FMT_YUV422P10, BC_YUV422P10, 1 }, ///< 10 bit samples in uint16_t containers, planar 4:2:2
+-#endif
+-    { PIX_FMT_RGB565,    BC_RGB565,    1 }, ///< always stored in cpu endianness
+-    { PIX_FMT_YUVJ420P,  BC_YUVJ420P,  1 }, ///< Planar YUV 4:2:0 full scale (jpeg)
+-    { PIX_FMT_YUVJ422P,  BC_YUVJ422P,  1 }, ///< Planar YUV 4:2:2 full scale (jpeg)
+-    { PIX_FMT_YUVJ444P,  BC_YUVJ444P,  1 }, ///< Planar YUV 4:4:4 full scale (jpeg)
++    { AV_PIX_FMT_RGB24,     BC_RGB888,    1 }, ///< Packed pixel, 3 bytes per pixel, RGBRGB...
++    { AV_PIX_FMT_BGR24,     BC_BGR888,    1 }, ///< Packed pixel, 3 bytes per pixel, BGRBGR...
++    { AV_PIX_FMT_YUV422P,   BC_YUV422P,   1 }, ///< Planar YUV 4:2:2 (1 Cr & Cb sample per 2x1 Y samples)
++    { AV_PIX_FMT_YUV444P,   BC_YUV444P,   1 }, ///< Planar YUV 4:4:4 (1 Cr & Cb sample per 1x1 Y samples)
++    { AV_PIX_FMT_YUV411P,   BC_YUV411P,   1 }, ///< Planar YUV 4:1:1 (1 Cr & Cb sample per 4x1 Y samples)
++    { AV_PIX_FMT_YUV422P16, BC_YUV422P16, 1 }, ///< Planar 16 bit YUV 4:2:2 (1 Cr & Cb sample per 2x1 Y samples)
++#ifdef AV_PIX_FMT_YUV422P10
++    { AV_PIX_FMT_YUV422P10, BC_YUV422P10, 1 }, ///< 10 bit samples in uint16_t containers, planar 4:2:2
++#endif
++    { AV_PIX_FMT_RGB565,    BC_RGB565,    1 }, ///< always stored in cpu endianness
++    { AV_PIX_FMT_YUVJ420P,  BC_YUVJ420P,  1 }, ///< Planar YUV 4:2:0 full scale (jpeg)
++    { AV_PIX_FMT_YUVJ422P,  BC_YUVJ422P,  1 }, ///< Planar YUV 4:2:2 full scale (jpeg)
++    { AV_PIX_FMT_YUVJ444P,  BC_YUVJ444P,  1 }, ///< Planar YUV 4:4:4 full scale (jpeg)
+ #if LIBAVUTIL_VERSION_INT < (50<<16)
+-    { PIX_FMT_RGBA32,    BC_RGBA8888,  0 }, ///< Packed pixel, 4 bytes per pixel, BGRABGRA...
++    { AV_PIX_FMT_RGBA32,    BC_RGBA8888,  0 }, ///< Packed pixel, 4 bytes per pixel, BGRABGRA...
+ #else
+-    { PIX_FMT_RGB32,     BC_RGBA8888,  0 }, ///< Packed pixel, 4 bytes per pixel, BGRABGRA...
++    { AV_PIX_FMT_RGB32,     BC_RGBA8888,  0 }, ///< Packed pixel, 4 bytes per pixel, BGRABGRA...
+ #endif
+-    { PIX_FMT_RGB555,    BC_RGB888,    0 }, ///< always stored in cpu endianness, most significant bit to 1
+-    { PIX_FMT_GRAY8,     BC_RGB888,    0 },
+-    { PIX_FMT_MONOWHITE, BC_RGB888,    0 }, ///< 0 is white
+-    { PIX_FMT_MONOBLACK, BC_RGB888,    0 }, ///< 0 is black
+-    { PIX_FMT_PAL8,      BC_RGB888,    0 }, ///< 8 bit with RGBA palette
+-    { PIX_FMT_YUV410P,   BC_YUV420P,   0 }, ///< Planar YUV 4:1:0 (1 Cr & Cb sample per 4x4 Y samples)
++    { AV_PIX_FMT_RGB555,    BC_RGB888,    0 }, ///< always stored in cpu endianness, most significant bit to 1
++    { AV_PIX_FMT_GRAY8,     BC_RGB888,    0 },
++    { AV_PIX_FMT_MONOWHITE, BC_RGB888,    0 }, ///< 0 is white
++    { AV_PIX_FMT_MONOBLACK, BC_RGB888,    0 }, ///< 0 is black
++    { AV_PIX_FMT_PAL8,      BC_RGB888,    0 }, ///< 8 bit with RGBA palette
++    { AV_PIX_FMT_YUV410P,   BC_YUV420P,   0 }, ///< Planar YUV 4:1:0 (1 Cr & Cb sample per 4x4 Y samples)
+   };
+ 
+ static const struct
+@@ -343,16 +343,16 @@
+   if (!codec->pix_fmts)
+     return 0;
+ 
+-  for (i = 0; codec->pix_fmts[i] != PIX_FMT_NONE; ++i)
++  for (i = 0; codec->pix_fmts[i] != AV_PIX_FMT_NONE; ++i)
+     {
+-    if (codec->pix_fmts[i] == PIX_FMT_YUV422P10_OR_DUMMY)
++    if (codec->pix_fmts[i] == AV_PIX_FMT_YUV422P10_OR_DUMMY)
+       return 1;
+     }
+ 
+   return 0;
+   }
+ 
+-static enum PixelFormat lqt_ffmpeg_get_ffmpeg_colormodel(int id)
++static enum AVPixelFormat lqt_ffmpeg_get_ffmpeg_colormodel(int id)
+   {
+   int i;
+ 
+@@ -361,10 +361,10 @@
+     if(colormodels[i].lqt_id == id)
+       return colormodels[i].ffmpeg_id;
+     }
+-  return PIX_FMT_NB;
++  return AV_PIX_FMT_NB;
+   }
+ 
+-static int lqt_ffmpeg_get_lqt_colormodel(enum PixelFormat id, int * exact)
++static int lqt_ffmpeg_get_lqt_colormodel(enum AVPixelFormat id, int * exact)
+   {
+   int i;
+ 
+@@ -400,26 +400,26 @@
+   codec->reinterpret_pix_fmt = codec->avctx->pix_fmt;
+ 
+   /* First we try codec-specific colormodel matching. */
+-  if(codec->decoder->id == CODEC_ID_DNXHD)
++  if(codec->decoder->id == AV_CODEC_ID_DNXHD)
+     {
+-    /* FFMpeg supports PIX_FMT_YUV422P and PIX_FMT_YUV422P10 for DNxHD, which
+-       we sometimes interpret as PIX_FMT_YUVJ422P and PIX_FMT_YUVJ422P10. */
+-    if (codec->avctx->pix_fmt == PIX_FMT_YUV422P || codec->avctx->pix_fmt == PIX_FMT_YUV422P10_OR_DUMMY)
++    /* FFMpeg supports AV_PIX_FMT_YUV422P and AV_PIX_FMT_YUV422P10 for DNxHD, which
++       we sometimes interpret as AV_PIX_FMT_YUVJ422P and AV_PIX_FMT_YUVJ422P10. */
++    if (codec->avctx->pix_fmt == AV_PIX_FMT_YUV422P || codec->avctx->pix_fmt == AV_PIX_FMT_YUV422P10_OR_DUMMY)
+       {
+-      int p10 = (codec->avctx->pix_fmt == PIX_FMT_YUV422P10_OR_DUMMY);
++      int p10 = (codec->avctx->pix_fmt == AV_PIX_FMT_YUV422P10_OR_DUMMY);
+       *exact = 1;
+       if (lqt_ffmpeg_get_avid_yuv_range(vtrack->track) == AVID_FULL_YUV_RANGE)
+         {
+         vtrack->stream_cmodel = p10 ? BC_YUVJ422P10 : BC_YUVJ422P;
+-        codec->reinterpret_pix_fmt = p10 ? PIX_FMT_YUV422P10_OR_DUMMY : PIX_FMT_YUVJ422P;
+-        // Note: reinterpret_pix_fmt should really be PIX_FMT_YUVJ422P10, except
++        codec->reinterpret_pix_fmt = p10 ? AV_PIX_FMT_YUV422P10_OR_DUMMY : AV_PIX_FMT_YUVJ422P;
++        // Note: reinterpret_pix_fmt should really be AV_PIX_FMT_YUVJ422P10, except
+         // there is no such colormodel in FFMpeg. Fortunately, it's not a problem
+         // in this case, as reinterpret_pix_fmt is only used when *exact == 0.
+         }
+       else
+         {
+         vtrack->stream_cmodel = p10 ? BC_YUV422P10 : BC_YUV422P;
+-        codec->reinterpret_pix_fmt = p10 ? PIX_FMT_YUV422P10_OR_DUMMY : PIX_FMT_YUV422P;
++        codec->reinterpret_pix_fmt = p10 ? AV_PIX_FMT_YUV422P10_OR_DUMMY : AV_PIX_FMT_YUV422P;
+         }
+       return;
+       }
+@@ -438,16 +438,16 @@
+   quicktime_ffmpeg_video_codec_t *codec = vtrack->codec->priv;
+   codec->avctx->pix_fmt = lqt_ffmpeg_get_ffmpeg_colormodel(vtrack->stream_cmodel);
+ 
+-  if (codec->encoder->id == CODEC_ID_DNXHD)
++  if (codec->encoder->id == AV_CODEC_ID_DNXHD)
+     {
+-    /* FFMpeg's DNxHD encoder only supports PIX_FMT_YUV422P and PIX_FMT_YUV422P10
+-       and doesn't know anything about PIX_FMT_YUVJ422P and PIX_FMT_YUVJ422P10
++    /* FFMpeg's DNxHD encoder only supports AV_PIX_FMT_YUV422P and AV_PIX_FMT_YUV422P10
++       and doesn't know anything about AV_PIX_FMT_YUVJ422P and AV_PIX_FMT_YUVJ422P10
+        (in fact, the latter doesn't even exist) */
+-    codec->avctx->pix_fmt = PIX_FMT_YUV422P;
++    codec->avctx->pix_fmt = AV_PIX_FMT_YUV422P;
+     if (vtrack->stream_cmodel == BC_YUV422P10 || vtrack->stream_cmodel == BC_YUVJ422P10)
+       {
+       if (lqt_tenbit_dnxhd_supported(codec->encoder))
+-        codec->avctx->pix_fmt = PIX_FMT_YUV422P10_OR_DUMMY;
++        codec->avctx->pix_fmt = AV_PIX_FMT_YUV422P10_OR_DUMMY;
+       }
+     }
+   }
+@@ -458,7 +458,7 @@
+ /* From avcodec.h: */
+ 
+ /*
+- * PIX_FMT_RGBA32 is handled in an endian-specific manner. A RGBA
++ * AV_PIX_FMT_RGBA32 is handled in an endian-specific manner. A RGBA
+  * color is put together as:
+  *  (A << 24) | (R << 16) | (G << 8) | B
+  * This is stored as BGRA on little endian CPU architectures and ARGB on
+@@ -530,7 +530,7 @@
+  */
+ 
+ static void convert_image_decode(quicktime_ffmpeg_video_codec_t *codec,
+-                                 AVFrame * in_frame, enum PixelFormat in_format,
++                                 AVFrame * in_frame, enum AVPixelFormat in_format,
+                                  unsigned char ** out_frame, int out_format,
+                                  int width, int height, int row_span, int row_span_uv)
+   {
+@@ -547,9 +547,9 @@
+    *  RGBA format like in ffmpeg??
+    */
+ #if LIBAVUTIL_VERSION_INT < (50<<16)
+-  if((in_format == PIX_FMT_RGBA32) && (out_format == BC_RGBA8888))
++  if((in_format == AV_PIX_FMT_RGBA32) && (out_format == BC_RGBA8888))
+ #else
+-    if((in_format == PIX_FMT_RGB32) && (out_format == BC_RGBA8888))
++    if((in_format == AV_PIX_FMT_RGB32) && (out_format == BC_RGBA8888))
+ #endif
+       {
+       convert_image_decode_rgba(in_frame, out_frame, width, height, codec->y_offset);
+@@ -728,13 +728,13 @@
+ 
+     /* Set extradata: It's done differently for each codec */
+ 
+-    if(codec->decoder->id == CODEC_ID_SVQ3)
++    if(codec->decoder->id == AV_CODEC_ID_SVQ3)
+       {
+       extradata       = trak->mdia.minf.stbl.stsd.table[0].table_raw + 4;
+       extradata_size  = trak->mdia.minf.stbl.stsd.table[0].table_raw_size - 4;
+       
+       }
+-    else if(codec->decoder->id == CODEC_ID_H264)
++    else if(codec->decoder->id == AV_CODEC_ID_H264)
+       {
+       user_atom = quicktime_stsd_get_user_atom(trak, "avcC", &user_atom_len);
+ 
+@@ -753,7 +753,7 @@
+         }
+       
+       }
+-    else if(codec->decoder->id == CODEC_ID_MPEG4)
++    else if(codec->decoder->id == AV_CODEC_ID_MPEG4)
+       {
+       if(trak->mdia.minf.stbl.stsd.table[0].has_esds)
+         {
+@@ -781,7 +781,7 @@
+     if(extradata)
+       {
+       codec->extradata =
+-        calloc(1, extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
++        calloc(1, extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
+       memcpy(codec->extradata, extradata, extradata_size);
+       codec->avctx->extradata_size = extradata_size;
+       codec->avctx->extradata = codec->extradata;
+@@ -829,7 +829,7 @@
+     if(avcodec_open2(codec->avctx, codec->decoder, NULL) != 0)
+       return -1;
+ #endif
+-    codec->frame = avcodec_alloc_frame();
++    codec->frame = av_frame_alloc();
+     vtrack->stream_cmodel = LQT_COLORMODEL_NONE;
+     codec->initialized = 1;
+     }
+@@ -929,10 +929,10 @@
+ #ifdef HAVE_LIBSWSCALE
+ 
+ #if LIBAVUTIL_VERSION_INT < (50<<16)
+-      if(!((codec->avctx->pix_fmt == PIX_FMT_RGBA32) &&
++      if(!((codec->avctx->pix_fmt == AV_PIX_FMT_RGBA32) &&
+            (vtrack->stream_cmodel == BC_RGBA8888)))
+ #else
+-        if(!((codec->avctx->pix_fmt == PIX_FMT_RGB32) &&
++        if(!((codec->avctx->pix_fmt == AV_PIX_FMT_RGB32) &&
+              (vtrack->stream_cmodel == BC_RGBA8888)))
+ #endif
+           {
+@@ -947,15 +947,15 @@
+           }
+ #endif
+       }
+-    if(codec->decoder->id == CODEC_ID_DVVIDEO)
++    if(codec->decoder->id == AV_CODEC_ID_DVVIDEO)
+       {
+       if(vtrack->stream_cmodel == BC_YUV420P)
+         vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_DVPAL;
+       vtrack->interlace_mode = LQT_INTERLACE_BOTTOM_FIRST;
+       vtrack->ci.id = LQT_COMPRESSION_DV;
+       }
+-    else if((codec->decoder->id == CODEC_ID_MPEG4) ||
+-            (codec->decoder->id == CODEC_ID_H264))
++    else if((codec->decoder->id == AV_CODEC_ID_MPEG4) ||
++            (codec->decoder->id == AV_CODEC_ID_H264))
+       {
+       if(vtrack->stream_cmodel == BC_YUV420P)
+         vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_MPEG2;
+@@ -1140,8 +1140,8 @@
+   codec->avctx->qmin = 1;
+   codec->avctx->qmax = 3;
+   codec->avctx->rtp_payload_size = 1; // ??
+-  codec->avctx->rc_buffer_aggressivity = 0.25;
+-  codec->avctx->flags |= CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_LOW_DELAY;
++  av_dict_set(&codec->options, "rc_buf_aggressivity", "0.25", 0);
++  codec->avctx->flags |= AV_CODEC_FLAG_INTERLACED_DCT|AV_CODEC_FLAG_LOW_DELAY;
+ 
+ #if (LIBAVCODEC_VERSION_MAJOR < 54)
+   codec->avctx->flags2 |= CODEC_FLAG2_INTRA_VLC|CODEC_FLAG2_NON_LINEAR_QUANT;
+@@ -1299,13 +1299,13 @@
+     {
+     if(vtrack->stream_cmodel == BC_YUV420P)
+       {
+-      if(codec->encoder->id == CODEC_ID_MPEG4)
++      if(codec->encoder->id == AV_CODEC_ID_MPEG4)
+         {
+         vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_MPEG2;
+         /* enable interlaced encoding */
+         vtrack->interlace_mode = LQT_INTERLACE_NONE;
+         }
+-      else if(codec->encoder->id == CODEC_ID_DVVIDEO)
++      else if(codec->encoder->id == AV_CODEC_ID_DVVIDEO)
+         {
+         vtrack->chroma_placement = LQT_CHROMA_PLACEMENT_DVPAL;
+         }
+@@ -1318,7 +1318,7 @@
+         
+   if(!codec->initialized)
+     {
+-    codec->frame = avcodec_alloc_frame();
++    codec->frame = av_frame_alloc();
+ 
+     /* time_base is 1/framerate for constant framerate */
+           
+@@ -1328,7 +1328,7 @@
+     //          codec->avctx->time_base.den = 1;
+     //          codec->avctx->time_base.num = lqt_video_time_scale(file, track);
+ 
+-    if(codec->avctx->flags & CODEC_FLAG_QSCALE)
++    if(codec->avctx->flags & AV_CODEC_FLAG_QSCALE)
+       codec->avctx->global_quality = codec->qscale;
+                               
+     codec->avctx->width = width;
+@@ -1340,11 +1340,11 @@
+     codec->avctx->sample_aspect_ratio.num = pixel_width;
+     codec->avctx->sample_aspect_ratio.den = pixel_height;
+     /* Use global headers for mp4v */
+-    if(codec->encoder->id == CODEC_ID_MPEG4)
++    if(codec->encoder->id == AV_CODEC_ID_MPEG4)
+       {
+       if(!(file->file_type & (LQT_FILE_AVI|LQT_FILE_AVI_ODML)))
+         {
+-        codec->avctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
++        codec->avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+         codec->write_global_header = 1;
+         }
+             
+@@ -1360,16 +1360,16 @@
+         {
+         lqt_log(file, LQT_LOG_INFO, LOG_DOMAIN, "Enabling interlaced encoding");
+         codec->avctx->flags |=
+-          (CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_INTERLACED_ME|CODEC_FLAG_ALT_SCAN);
++          (AV_CODEC_FLAG_INTERLACED_DCT|AV_CODEC_FLAG_INTERLACED_ME|AV_CODEC_FLAG_ALT_SCAN);
+         }
+ #endif
+       }
+-    else if((codec->encoder->id == CODEC_ID_MSMPEG4V3) && (trak->strl) &&
++    else if((codec->encoder->id == AV_CODEC_ID_MSMPEG4V3) && (trak->strl) &&
+             !strncmp(trak->strl->strf.bh.biCompression, "DIV3", 4))
+       {
+       strncpy(trak->strl->strh.fccHandler, "div3", 4);
+       }
+-    else if((codec->encoder->id == CODEC_ID_H263) &&
++    else if((codec->encoder->id == AV_CODEC_ID_H263) &&
+             (file->file_type & (LQT_FILE_MP4|LQT_FILE_3GP)))
+       {
+       uint8_t d263_data[] =
+@@ -1383,34 +1383,34 @@
+       strncpy(trak->mdia.minf.stbl.stsd.table[0].format,
+               "s263", 4);
+       }
+-    else if(codec->encoder->id == CODEC_ID_FFVHUFF)
++    else if(codec->encoder->id == AV_CODEC_ID_FFVHUFF)
+       {
+       if(!(file->file_type & (LQT_FILE_AVI|LQT_FILE_AVI_ODML)))
+         {
+-        codec->avctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
++        codec->avctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+         codec->write_global_header = 1;
+         }
+       }
+-    else if(codec->encoder->id == CODEC_ID_QTRLE)
++    else if(codec->encoder->id == AV_CODEC_ID_QTRLE)
+       {
+       if(vtrack->stream_cmodel == BC_RGBA8888)
+         {
+         /* Libquicktime doesn't natively support a color model equivalent
+-           to PIX_FMT_ARGB, which is required for QTRLE with alpha channel.
++           to AV_PIX_FMT_ARGB, which is required for QTRLE with alpha channel.
+            So, we use BC_RGBA8888 and do ad hoc conversion below. */
+-        codec->avctx->pix_fmt = PIX_FMT_ARGB;
++        codec->avctx->pix_fmt = AV_PIX_FMT_ARGB;
+         vtrack->track->mdia.minf.stbl.stsd.table[0].depth = 32;
+         }
+       }
+-    else if(codec->encoder->id == CODEC_ID_DVVIDEO)
++    else if(codec->encoder->id == AV_CODEC_ID_DVVIDEO)
+       {
+       set_dv_fourcc(width, height, vtrack->stream_cmodel, trak);
+       }
+-    else if(codec->encoder->id == CODEC_ID_DNXHD)
++    else if(codec->encoder->id == AV_CODEC_ID_DNXHD)
+       {
+       if(vtrack->interlace_mode != LQT_INTERLACE_NONE)
+         {
+-        codec->avctx->flags |= CODEC_FLAG_INTERLACED_DCT;
++        codec->avctx->flags |= AV_CODEC_FLAG_INTERLACED_DCT;
+         }
+       }
+     else if(codec->is_imx)
+@@ -1422,7 +1422,7 @@
+       if(codec->pass == 1)
+         {
+         codec->stats_file = fopen(codec->stats_filename, "w");
+-        codec->avctx->flags |= CODEC_FLAG_PASS1;
++        codec->avctx->flags |= AV_CODEC_FLAG_PASS1;
+         }
+       else if(codec->pass == codec->total_passes)
+         {
+@@ -1438,7 +1438,7 @@
+         fclose(codec->stats_file);
+         codec->stats_file = (FILE*)0;
+               
+-        codec->avctx->flags |= CODEC_FLAG_PASS2;
++        codec->avctx->flags |= AV_CODEC_FLAG_PASS2;
+         }
+       }
+     /* Open codec */
+@@ -1467,7 +1467,7 @@
+     }
+   //        codec->lqt_colormodel = ffmepg_2_lqt(codec->com.ffcodec_enc);
+ 
+-  if(codec->y_offset != 0 || codec->avctx->pix_fmt == PIX_FMT_ARGB)
++  if(codec->y_offset != 0 || codec->avctx->pix_fmt == AV_PIX_FMT_ARGB)
+     {
+     if(!codec->tmp_rows)
+       {
+@@ -1492,7 +1492,7 @@
+                         vtrack->stream_cmodel,
+                         0, 0, 0, codec->y_offset);
+       }
+-    else if(codec->avctx->pix_fmt == PIX_FMT_ARGB)
++    else if(codec->avctx->pix_fmt == AV_PIX_FMT_ARGB)
+       {
+       convert_rgba_to_argb(row_pointers[0], vtrack->stream_row_span,
+                            codec->tmp_rows[0], codec->tmp_row_span,
+@@ -1516,7 +1516,7 @@
+     }
+   
+   codec->frame->pts = vtrack->timestamp;
+-  if(codec->avctx->flags & CODEC_FLAG_QSCALE)
++  if(codec->avctx->flags & AV_CODEC_FLAG_QSCALE)
+     codec->frame->quality = codec->qscale;
+ #ifdef DO_INTERLACE
+   if(vtrack->interlace_mode != LQT_INTERLACE_NONE)
+@@ -1558,12 +1558,12 @@
+   
+ #endif
+   
+-  if(!was_initialized && codec->encoder->id == CODEC_ID_DNXHD)
++  if(!was_initialized && codec->encoder->id == AV_CODEC_ID_DNXHD)
+     setup_avid_atoms(file, vtrack, codec->buffer, bytes_encoded);
+   
+   if(bytes_encoded)
+     {
+-    if (pts == AV_NOPTS_VALUE || (codec->encoder->id == CODEC_ID_DNXHD && pts == 0))
++    if (pts == AV_NOPTS_VALUE || (codec->encoder->id == AV_CODEC_ID_DNXHD && pts == 0))
+       {
+       /* Some codecs don't bother generating presentation timestamps.
+          FFMpeg's DNxHD encoder doesn't even bother to set it to AV_NOPTS_VALUE. */
+@@ -1590,17 +1590,16 @@
+ 
+   if(codec->write_global_header && !codec->global_header_written)
+     {
+-    if(codec->encoder->id == CODEC_ID_FFVHUFF)
++    if(codec->encoder->id == AV_CODEC_ID_FFVHUFF)
+       {
+       quicktime_user_atoms_add_atom(&trak->mdia.minf.stbl.stsd.table[0].user_atoms,
+                                     "glbl",
+                                     codec->avctx->extradata, codec->avctx->extradata_size );
+       }
+-    else if(codec->encoder->id == CODEC_ID_MPEG4)
++    else if(codec->encoder->id == AV_CODEC_ID_MPEG4)
+       {
+       int advanced = 0;
+-      if(codec->avctx->max_b_frames ||
+-         (codec->avctx->flags & (CODEC_FLAG_QPEL|CODEC_FLAG_GMC)))
++      if(codec->avctx->max_b_frames)
+         advanced = 1;
+ 
+       setup_header_mpeg4(file, track, codec->avctx->extradata,
+@@ -1903,18 +1902,18 @@
+     codec_base->encode_video = lqt_ffmpeg_encode_video;
+     codec_base->set_pass = set_pass_ffmpeg;
+ 
+-    if(encoder->id == CODEC_ID_MPEG4)
++    if(encoder->id == AV_CODEC_ID_MPEG4)
+       {
+       codec_base->writes_compressed = writes_compressed_mpeg4;
+       codec_base->init_compressed   = init_compressed_mpeg4;
+       codec_base->write_packet = write_packet_mpeg4;
+       }
+-    else if(encoder->id == CODEC_ID_MPEG2VIDEO)
++    else if(encoder->id == AV_CODEC_ID_MPEG2VIDEO)
+       {
+       codec_base->writes_compressed = writes_compressed_imx;
+       codec_base->init_compressed   = init_compressed_imx;
+       }
+-    else if(encoder->id == CODEC_ID_DVVIDEO)
++    else if(encoder->id == AV_CODEC_ID_DVVIDEO)
+       {
+       codec_base->init_compressed = init_compressed_dv;
+       }
+@@ -1922,7 +1921,7 @@
+     }
+   if(decoder)
+     {
+-    if(decoder->id == CODEC_ID_H264)
++    if(decoder->id == AV_CODEC_ID_H264)
+       codec_base->read_packet = read_packet_h264;
+     codec_base->decode_video = lqt_ffmpeg_decode_video;
+     }
+diff -Naur a/src/util.c b/src/util.c
+--- a/src/util.c	2011-01-07 14:40:47.000000000 +0000
++++ b/src/util.c	2018-05-11 23:11:04.367991499 +0100
+@@ -340,9 +340,14 @@
+ 
+ void quicktime_read_pascal(quicktime_t *file, char *data)
+ {
+-	char len = quicktime_read_char(file);
+-	quicktime_read_data(file, (uint8_t*)data, len);
+-	data[(int)len] = 0;
++	int len = quicktime_read_char(file);
++	if ((len > 0) && (len < 256)) {
++          /* data[] is expected to be 256 bytes long */
++          quicktime_read_data(file, (uint8_t*)data, len);
++          data[len] = 0;
++        } else {
++          data[0] = 0;
++        }
+ }
+ 
+ void quicktime_write_pascal(quicktime_t *file, char *data)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 3764e14552..6a900eceee 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -219,6 +219,46 @@ as a joint effort between the BBC and Fluendo.")
       license:expat
       license:mpl1.1))))
 
+(define-public libquicktime
+  (package
+    (name "libquicktime")
+    (version "1.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0s3kshzl3zfjw3phzv73r91fkr9z8q8kc3dhsys4f4xk6ff3alqw"))
+       (patches
+        (search-patches "libquicktime-ffmpeg.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("ffmpeg" ,ffmpeg)
+       ("gtk+-2" ,gtk+-2)
+       ("lame" ,lame)
+       ("libdv" ,libdv)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("libvorbis" ,libvorbis)
+       ("opengl" ,mesa)
+       ("schroedinger" ,schroedinger)
+       ("x11" ,libx11)
+       ("x264" ,libx264)
+       ("xaw" ,libxaw)
+       ("xv" ,libxv)))
+    (synopsis "Quick Time Library")
+    (description "The goal of this project is to enhance the quicktime4linux
+library.")
+    (home-page "http://libquicktime.sourceforge.net/")
+    (license license:lgpl2.1+)))
+
 (define-public libmms
   (package
     (name "libmms")
-- 
2.26.2


[-- Attachment #1.1.21: 0029-gnu-Add-mjpegtools.patch --]
[-- Type: text/x-patch, Size: 1669 bytes --]

From ac7243f1d5832d37f7edffd3281094300b833788 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 08:07:02 -0400
Subject: [PATCH 29/51] gnu: Add mjpegtools.

* gnu/packages/video.scm (mjpegtools): New variable.
---
 gnu/packages/video.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 6a900eceee..932e6dae33 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -259,6 +259,32 @@ library.")
     (home-page "http://libquicktime.sourceforge.net/")
     (license license:lgpl2.1+)))
 
+(define-public mjpegtools
+  (package
+    (name "mjpegtools")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/"
+                       name "/" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kvhxr5hkabj9v7ah2rzkbirndfqdijd9hp8v52c1z6bxddf019w"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gtk+-2" ,gtk+-2)
+       ("libdv" ,libdv)
+       ("libpng" ,libpng)
+       ("libquicktime" ,libquicktime)
+       ("sdl" ,sdl)))
+    (synopsis "Tools for handling MPEG")
+    (description "Mjpeg tools is a suite of programs which support video capture,
+editing, playback, and compression to MPEG of MJPEG video.  Edit, play and
+compression software is hardware independent.")
+    (home-page "http://mjpeg.sourceforge.net/")
+    (license license:gpl2+)))
+
 (define-public libmms
   (package
     (name "libmms")
-- 
2.26.2


[-- Attachment #1.1.22: 0030-gnu-Add-libofa.patch --]
[-- Type: text/x-patch, Size: 6710 bytes --]

From 99bb9b203f253ac46bf9b055aa7287cdc744bf44 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 09:16:01 -0400
Subject: [PATCH 30/51] gnu: Add libofa.

* gnu/packages/audio.scm (libofa): New variable.
* gnu/packages/patches/libofa-ftbfs-1.diff: New file.
* gnu/packages/patches/libofa-curl.diff: New file.
* gnu/packages/patches/libofa-ftbfs-2.diff: New file.
* gnu/local.mk (libofa-ftbfs-1.diff): New reference.
* gnu/local.mk (libofa-curl.diff): New reference.
* gnu/local.mk (libofa-ftbfs-2.diff): New reference.
---
 gnu/local.mk                             |  3 ++
 gnu/packages/audio.scm                   | 32 +++++++++++++++++
 gnu/packages/patches/libofa-curl.diff    | 15 ++++++++
 gnu/packages/patches/libofa-ftbfs-1.diff | 45 ++++++++++++++++++++++++
 gnu/packages/patches/libofa-ftbfs-2.diff | 27 ++++++++++++++
 5 files changed, 122 insertions(+)
 create mode 100644 gnu/packages/patches/libofa-curl.diff
 create mode 100644 gnu/packages/patches/libofa-ftbfs-1.diff
 create mode 100644 gnu/packages/patches/libofa-ftbfs-2.diff

diff --git a/gnu/local.mk b/gnu/local.mk
index ecc6bf8bb0..9385c2a985 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1181,6 +1181,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/libgnomeui-utf8.patch			\
   %D%/packages/patches/libjxr-fix-function-signature.patch	\
   %D%/packages/patches/libjxr-fix-typos.patch			\
+  %D%/packages/patches/libofa-ftbfs-1.diff		\
+  %D%/packages/patches/libofa-curl.diff		\
+  %D%/packages/patches/libofa-ftbfs-2.diff		\
   %D%/packages/patches/libotr-test-auth-fix.patch		\
   %D%/packages/patches/libksieve-Fix-missing-link-libraries.patch \
   %D%/packages/patches/libmad-armv7-thumb-pt1.patch		\
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 3823115f24..83113b00a5 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -126,6 +126,38 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public libofa
+  (package
+    (name "libofa")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://storage.googleapis.com/"
+                       "google-code-archive-downloads/v2/code.google.com/"
+                       "musicip-libofa/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "184ham039l7lwhfgg0xr2vch2xnw1lwh7sid432mh879adhlc5h2"))
+       (patches
+        (search-patches
+         "libofa-ftbfs-1.diff"
+         "libofa-curl.diff"
+         "libofa-ftbfs-2.diff"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("expat" ,expat)))
+    (propagated-inputs
+     `(("fftw" ,fftw)))
+    (synopsis "Open Fingerprint Architecture")
+    (description "LibOFA is an audio fingerprint library, created and provided
+by MusicIP.")
+    (home-page "https://code.google.com/archive/p/musicip-libofa/")
+    (license license:gpl2+)))
+
 (define-public faac
   (package
     (name "faac")
diff --git a/gnu/packages/patches/libofa-curl.diff b/gnu/packages/patches/libofa-curl.diff
new file mode 100644
index 0000000000..6b1e824fad
--- /dev/null
+++ b/gnu/packages/patches/libofa-curl.diff
@@ -0,0 +1,15 @@
+Description: Fix FTBFS due to unexisting and useless include. (Closes: #637896)
+Author: Regis Boudin <regis@debian.org>
+Last-Update: 2011-10-03
+Index: libofa-0.9.3/examples/protocol.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/protocol.cpp
++++ libofa-0.9.3/examples/protocol.cpp
+@@ -13,7 +13,6 @@
+ #include <map>
+ #include <expat.h>
+ #include <curl/curl.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+ 
+ using namespace std;
diff --git a/gnu/packages/patches/libofa-ftbfs-1.diff b/gnu/packages/patches/libofa-ftbfs-1.diff
new file mode 100644
index 0000000000..4aa712320c
--- /dev/null
+++ b/gnu/packages/patches/libofa-ftbfs-1.diff
@@ -0,0 +1,45 @@
+Description: fix FTBFS with GCC 4.3. (Closes: #417355)
+Author: Martin Michlmayr <tbm@cyrius.com>
+Last-Update: 2007-04-02
+
+Description: add a missing include. (Closes: #441557)
+Author: Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
+Last-Update: 2007-12-29
+
+Index: libofa-0.9.3/lib/signal_op.cpp
+===================================================================
+--- libofa-0.9.3.orig/lib/signal_op.cpp
++++ libofa-0.9.3/lib/signal_op.cpp
+@@ -12,6 +12,7 @@
+ // DATE CREATED: 1/12/06
+ 
+ 
++#include <cstdlib>
+ #include <math.h>
+ #include "signal_op.h"
+ #include "AFLIB/aflibConverter.h"
+Index: libofa-0.9.3/examples/example.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/example.cpp
++++ libofa-0.9.3/examples/example.cpp
+@@ -8,6 +8,8 @@
+ -------------------------------------------------------------------*/
+ 
+ #include "protocol.h"
++#include <cctype>
++#include <string.h>
+ 
+ AudioData* loadWaveFile(char *file);
+ AudioData* loadDataUsingLAME(char *file);
+Index: libofa-0.9.3/examples/protocol.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/protocol.cpp
++++ libofa-0.9.3/examples/protocol.cpp
+@@ -8,6 +8,7 @@
+ -------------------------------------------------------------------*/
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <cstring>
+ #include <string>
+ #include <map>
+ #include <expat.h>
diff --git a/gnu/packages/patches/libofa-ftbfs-2.diff b/gnu/packages/patches/libofa-ftbfs-2.diff
new file mode 100644
index 0000000000..ad61573578
--- /dev/null
+++ b/gnu/packages/patches/libofa-ftbfs-2.diff
@@ -0,0 +1,27 @@
+Description: ftbfs with GCC-4.7. (Closes: #667250)
+Author: Matthias Klose <doko@debian.org>
+Last-Update: 2012-04-17
+Index: libofa-0.9.3/examples/uselame.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/uselame.cpp
++++ libofa-0.9.3/examples/uselame.cpp
+@@ -11,6 +11,7 @@
+ #include "windows.h"
+ #else
+ #include <sys/wait.h>
++#include <unistd.h>
+ #endif
+ 
+ AudioData *loadWaveFile(char *file);
+Index: libofa-0.9.3/examples/wavefile.cpp
+===================================================================
+--- libofa-0.9.3.orig/examples/wavefile.cpp
++++ libofa-0.9.3/examples/wavefile.cpp
+@@ -11,6 +11,7 @@
+ #include "io.h"
+ #endif
+ #include <fcntl.h>
++#include <unistd.h>
+ 
+ static bool readBytes(int fd, unsigned char *buf, int size) {
+     int ct = 0;
-- 
2.26.2


[-- Attachment #1.1.23: 0031-gnu-Add-libopenmpt.patch --]
[-- Type: text/x-patch, Size: 1860 bytes --]

From 196951ed551b199f0f4233389cc836cf40182092 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 09:40:24 -0400
Subject: [PATCH 31/51] gnu: Add libopenmpt.

* gnu/packages/audio.scm (libopenmpt): New variable.
---
 gnu/packages/audio.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 83113b00a5..e8a283d809 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -126,6 +126,40 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public libopenmpt
+  (package
+    (name "libopenmpt")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://download.openmpt.org/archive/" name "/src/"
+                       name "-" version "+release.autotools.tar.gz"))
+       (sha256
+        (base32 "0zl3djy9z7cpqk8g8pxrzmmikxsskb0y5qdabg6c683j7x5abjs3"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("flac" ,flac)
+       ("portaudio" ,portaudio)
+       ("pulseaudio" ,pulseaudio)
+       ("sdl2" ,sdl2)
+       ("sndfile" ,libsndfile)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("vorbis" ,libvorbis)
+       ("mpg123" ,mpg123)))
+    (synopsis "Audio tracking library")
+    (description "LibOpenMPT is a cross-platform C++ and C module playback
+library.  It is based on the player code of the Open ModPlug Tracker project.")
+    (home-page "https://openmpt.org/")
+    (license (license:non-copyleft "file:///LICENSE"))))
+
 (define-public libofa
   (package
     (name "libofa")
-- 
2.26.2


[-- Attachment #1.1.24: 0032-gnu-Add-opensles.patch --]
[-- Type: text/x-patch, Size: 2128 bytes --]

From 4663dc3351eb9c4512c32a4df98ba57351c7b01a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 09:41:39 -0400
Subject: [PATCH 32/51] gnu: Add opensles.

* gnu/packages/audio.scm (opensles): New variable.
---
 gnu/packages/audio.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index e8a283d809..9e65a285d6 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -112,6 +112,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -126,6 +127,32 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public opensles
+  (package
+    (name "opensles")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git")
+         (commit "ea5104b")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0j5bm7h3ahz66f23i9abwc0y10agfkpksnj6y078x2nichq66h4f"))))
+    (build-system copy-build-system)
+    (synopsis "Embedded Audio Acceleration")
+    (description "OpenSLES is a royalty-free, cross-platform,
+hardware-accelerated audio API tuned for embedded systems.  It provides a
+standardized, high-performance, low-latency method to access audio
+functionality for developers of native applications on embedded mobile
+multimedia devices, enabling straightforward cross-platform deployment of
+hardware and software audio capabilities, reducing implementation effort, and
+promoting the market for advanced audio.")
+    (home-page "https://www.khronos.org/opensles/")
+    (license (license:non-copyleft "Refer individual files"))))
+
 (define-public libopenmpt
   (package
     (name "libopenmpt")
-- 
2.26.2


[-- Attachment #1.1.25: 0033-gnu-Add-lksctp-tools.patch --]
[-- Type: text/x-patch, Size: 1939 bytes --]

From 39885fcfa5fe43f4bea6932c45f6be49b3459716 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 09:43:19 -0400
Subject: [PATCH 33/51] gnu: Add lksctp-tools.

* gnu/packages/networking.scm (lksctp-tools): New variable.
---
 gnu/packages/networking.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 1f185cad7c..1c731231db 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -133,6 +133,41 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public lksctp-tools
+  (package
+    (name "lksctp-tools")
+    (version "1.0.18")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/sctp/lksctp-tools.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1x4fwzrlzvfa3vcpja97m8w5g9ir2zrh4zs7zksminrnmdrs0dsr"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("linux-headers" ,linux-libre-headers)))
+    (synopsis "Linux SCTP helper library")
+    (description "Lksctp-tools project provides a user space library for SCTP
+(libsctp) including C language header files (netinet/sctp.h) for accessing SCTP
+specific application programming interfaces not provided by the standard
+sockets, and also some helper utilities around SCTP.")
+    (home-page "http://lksctp.sourceforge.net/")
+    (license
+     (list
+      ;; Library.
+      license:lgpl2.1+
+      ;; Others.
+      license:gpl2+))))
+
 (define-public nng
   (package
     (name "nng")
-- 
2.26.2


[-- Attachment #1.1.26: 0034-gnu-Add-srt.patch --]
[-- Type: text/x-patch, Size: 2647 bytes --]

From f8f6c6502e1853ecfcbc25768156d2fd6dfc0d1c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 09:44:14 -0400
Subject: [PATCH 34/51] gnu: Add srt.

* gnu/packages/networking.scm (srt): New variable.
---
 gnu/packages/networking.scm | 43 +++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 1c731231db..66798bd2d2 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -125,14 +125,57 @@
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public srt
+  (package
+    (name "srt")
+    (version "1.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Haivision/srt.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01xaq44j95kbgqfl41pnybvqy0yq6wd4wdw88ckylzf0nzp977xz"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "-DCMAKE_INSTALL_BINDIR="
+                       (assoc-ref %outputs "out") "/bin")
+        (string-append "-DCMAKE_INSTALL_LIBDIR="
+                       (assoc-ref %outputs "out") "/lib")
+        (string-append "-DINSTALL_SHARED_DIR="
+                       (assoc-ref %outputs "out") "/lib")
+        (string-append "-DCMAKE_INSTALL_INCLUDEDIR="
+                       (assoc-ref %outputs "out") "/include")
+        "-DENABLE_UNITTESTS=ON"
+        "-DENABLE_CODE_COVERAGE=ON")))
+    (native-inputs
+     `(("git" ,git-minimal)
+       ("gtest" ,googletest)
+       ("pkg-config" ,pkg-config)
+       ("tclsh" ,tcl)))
+    (propagated-inputs
+     `(("openssl" ,openssl)))
+    (synopsis "Secure Reliable Transport")
+    (description "SRT is a transport technology that optimizes streaming
+performance across unpredictable networks, such as the Internet.")
+    (home-page "https://www.srtalliance.org/")
+    (license license:mpl2.0)))
+
 (define-public lksctp-tools
   (package
     (name "lksctp-tools")
-- 
2.26.2


[-- Attachment #1.1.27: 0035-gnu-Add-mediasdk.patch --]
[-- Type: text/x-patch, Size: 2184 bytes --]

From e397b83cf9d21afa37977c8c854dadbc78302516 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 10:59:03 -0400
Subject: [PATCH 35/51] gnu: Add mediasdk.

* gnu/packages/video.scm (mediasdk): New variable.
---
 gnu/packages/video.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 932e6dae33..82a3ffb6ed 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -170,6 +170,48 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public mediasdk
+  (package
+    (name "mediasdk")
+    (version "20.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Intel-Media-SDK/MediaSDK.git")
+         (commit (string-append "intel-" name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0blwcxr5j8762nylx2cxrq0h53bpgnk859dbs6crq4wr9fcxlx9z"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DENABLE_X11=ON"
+        "-DENABLE_X11_DRI3=ON"
+        "-DENABLE_WAYLAND=ON"
+        "-DENABLE_TEXTLOG=ON"
+        "-DENABLE_STAT=ON"
+        "-DBUILD_TESTS=ON"
+        "-DBUILD_TOOLS=ON"
+        (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
+                       (assoc-ref %outputs "out") "/lib"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("libdrm" ,libdrm)
+       ("libva" ,libva)
+       ("pciaccess" ,libpciaccess)
+       ("wayland" ,wayland)
+       ("x11" ,libx11)))
+    (synopsis "Intel Media SDK")
+    (description "MediaSDK provides a plain C API to access hardware-accelerated
+video decode, encode and filtering on Intel's Gen graphics hardware platforms.")
+    (home-page "http://mediasdk.intel.com/")
+    (license (license:non-copyleft "file:///LICENSE"))))
+
 (define-public schroedinger
   (package
     (name "schroedinger")
-- 
2.26.2


[-- Attachment #1.1.28: 0036-gnu-Add-svt-hevc.patch --]
[-- Type: text/x-patch, Size: 1771 bytes --]

From 13dcaf86065d3ce9d84ef4776f137050f3f627d2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 11:16:21 -0400
Subject: [PATCH 36/51] gnu: Add svt-hevc.

* gnu/packages/video.scm (svt-hevc): New variable.
---
 gnu/packages/video.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 82a3ffb6ed..abfcf6d73d 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -170,6 +170,34 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public svt-hevc
+  (package
+    (name "svt-hevc")
+    (version "1.4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/OpenVisualCloud/SVT-HEVC.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sqh3dciqm2p1b66kngcpxqy5fx3ramxlxy8gfcbdwn2i3rsqhs7"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ; Test script is stand-alone
+    (native-inputs
+     `(("yasm" ,yasm)))
+    (synopsis "SVT HEVC encoder")
+    (description "Scalable Video Technology (SVT) is a software-based video
+coding technology that is highly optimized for Intel's Xeon processors.  Using
+the SVT-HEVC encoder, it is possible to spread video encoding processing across
+multiple Intel's Xeon processors to achieve a real advantage of processing
+efficiency.")
+    (home-page "https://01.org/svt")
+    (license (license:non-copyleft "file://LICENSE.md"))))
+
 (define-public mediasdk
   (package
     (name "mediasdk")
-- 
2.26.2


[-- Attachment #1.1.29: 0037-gnu-Add-tinyalsa.patch --]
[-- Type: text/x-patch, Size: 2617 bytes --]

From 0854bf5a69af3af1a4a3784acebcd8e77dad70a0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 11:18:19 -0400
Subject: [PATCH 37/51] gnu: Add tinyalsa.

* gnu/packages/audio.scm (tinyalsa): New variable.
---
 gnu/packages/audio.scm | 37 ++++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 9e65a285d6..0d67508c7f 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,31 +127,34 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
-(define-public opensles
+(define-public tinyalsa
   (package
-    (name "opensles")
-    (version "1.1.0")
+    (name "tinyalsa")
+    (version "1.1.1")
     (source
      (origin
        (method git-fetch)
        (uri
         (git-reference
-         (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git")
-         (commit "ea5104b")))
+         (url "https://github.com/tinyalsa/tinyalsa.git")
+         (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0j5bm7h3ahz66f23i9abwc0y10agfkpksnj6y078x2nichq66h4f"))))
-    (build-system copy-build-system)
-    (synopsis "Embedded Audio Acceleration")
-    (description "OpenSLES is a royalty-free, cross-platform,
-hardware-accelerated audio API tuned for embedded systems.  It provides a
-standardized, high-performance, low-latency method to access audio
-functionality for developers of native applications on embedded mobile
-multimedia devices, enabling straightforward cross-platform deployment of
-hardware and software audio capabilities, reducing implementation effort, and
-promoting the market for advanced audio.")
-    (home-page "https://www.khronos.org/opensles/")
-    (license (license:non-copyleft "Refer individual files"))))
+        (base32 "0ajyvml5bnzvhiyyrn42gqwgg23ssxkfh09rvsnywhzxhd0xai4h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))
+       #:make-flags
+       (list
+        (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+    (synopsis "ALSA interfacing library")
+    (description "TinyALSA is a small library to interface with ALSA in the
+Linux kernel.")
+    (home-page "https://github.com/tinyalsa/tinyalsa")
+    (license (license:non-copyleft "file:///NOTICE"))))
 
 (define-public libopenmpt
   (package
-- 
2.26.2


[-- Attachment #1.1.30: 0038-gnu-Add-transcode.patch --]
[-- Type: text/x-patch, Size: 68411 bytes --]

From 680003a107d7e64cee7e3a6c4283e5a67a61de98 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 11:22:08 -0400
Subject: [PATCH 38/51] gnu: Add transcode.

* gnu/packages/video.scm (transcode): New variable.
* gnu/packages/patches/transcode-ffmpeg.patch: New file.
* gnu/local.mk (transcode-ffmpeg.patch): New reference.
---
 gnu/local.mk                                |    1 +
 gnu/packages/patches/transcode-ffmpeg.patch | 1408 +++++++++++++++++++
 gnu/packages/video.scm                      |  101 ++
 3 files changed, 1510 insertions(+)
 create mode 100644 gnu/packages/patches/transcode-ffmpeg.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 9385c2a985..78058e4653 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1545,6 +1545,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/tipp10-fix-compiling.patch		\
   %D%/packages/patches/tipp10-remove-license-code.patch		\
   %D%/packages/patches/tk-find-library.patch			\
+  %D%/packages/patches/transcode-ffmpeg.patch	\
   %D%/packages/patches/transmission-CVE-2018-10756.patch	\
   %D%/packages/patches/ttf2eot-cstddef.patch			\
   %D%/packages/patches/ttfautohint-source-date-epoch.patch	\
diff --git a/gnu/packages/patches/transcode-ffmpeg.patch b/gnu/packages/patches/transcode-ffmpeg.patch
new file mode 100644
index 0000000000..c547cbad2b
--- /dev/null
+++ b/gnu/packages/patches/transcode-ffmpeg.patch
@@ -0,0 +1,1408 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2018-05-14
+Initial Package Version: 1.1.7
+Upstream Status: Defunct
+Origin: From gentoo.
+Description: Accumulated fixes to build with ffmpeg-4.0 (but only
+with the limited functionality we had before).
+
+diff -Naur a/encode/encode_lavc.c b/encode/encode_lavc.c
+--- a/encode/encode_lavc.c	2011-11-19 16:50:27.000000000 +0000
++++ b/encode/encode_lavc.c	2018-05-14 01:58:58.346408791 +0100
+@@ -74,6 +74,16 @@
+     int lmin;
+     int lmax;
+     int me_method;
++    int luma_elim_threshold;
++    int chroma_elim_threshold;
++    int quantizer_noise_shaping;
++    int inter_quant_bias;
++    int intra_quant_bias;
++    int scenechange_factor;
++    int rc_strategy;
++    float rc_initial_cplx;
++    float rc_qsquish;
++    float border_masking;
+ 
+     /* same as above for flags */
+     struct {
+@@ -114,6 +124,7 @@
+ 
+     AVFrame ff_venc_frame;
+     AVCodecContext ff_vcontext;
++    AVDictionary * ff_opts;
+ 
+     AVCodec *ff_vcodec;
+ 
+@@ -164,6 +175,7 @@
+     TC_CODEC_ERROR
+ };
+ 
++#if LIBAVCODEC_VERSION_MAJOR < 55
+ static const enum CodecID tc_lavc_internal_codecs[] = {
+     CODEC_ID_MPEG1VIDEO, CODEC_ID_MPEG2VIDEO, CODEC_ID_MPEG4,
+     CODEC_ID_H263I, CODEC_ID_H263P,
+@@ -176,6 +188,20 @@
+     CODEC_ID_MSMPEG4V2, CODEC_ID_MSMPEG4V3,
+     CODEC_ID_NONE
+ };
++#else
++static const enum AVCodecID tc_lavc_internal_codecs[] = {
++    AV_CODEC_ID_MPEG1VIDEO, AV_CODEC_ID_MPEG2VIDEO, AV_CODEC_ID_MPEG4,
++    AV_CODEC_ID_H263I, AV_CODEC_ID_H263P,
++    AV_CODEC_ID_H264,
++    AV_CODEC_ID_WMV1, AV_CODEC_ID_WMV2,
++    AV_CODEC_ID_RV10,
++    AV_CODEC_ID_HUFFYUV, AV_CODEC_ID_FFV1,
++    AV_CODEC_ID_DVVIDEO,
++    AV_CODEC_ID_MJPEG, AV_CODEC_ID_LJPEG,
++    AV_CODEC_ID_MSMPEG4V2, AV_CODEC_ID_MSMPEG4V3,
++    AV_CODEC_ID_NONE
++};
++#endif
+ 
+ static const TCFormatID tc_lavc_formats[] = { TC_FORMAT_ERROR };
+ 
+@@ -214,7 +240,7 @@
+                                      vframe_list_t *vframe)
+ {
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, vframe->video_buf,
+-                    PIX_FMT_YUV420P,
++                    AV_PIX_FMT_YUV420P,
+                     pd->ff_vcontext.width, pd->ff_vcontext.height);
+ }
+ 
+@@ -228,7 +254,7 @@
+                     IMG_YUV_DEFAULT,
+                     pd->ff_vcontext.width, pd->ff_vcontext.height);
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, pd->vframe_buf->video_buf,
+-                   PIX_FMT_YUV422P,
++                   AV_PIX_FMT_YUV422P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+     ac_imgconvert(src, IMG_YUV_DEFAULT,
+                   pd->ff_venc_frame.data, IMG_YUV422P,
+@@ -244,7 +270,7 @@
+                     IMG_YUV422P,
+                     pd->ff_vcontext.width, pd->ff_vcontext.height);
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, pd->vframe_buf->video_buf,
+-                   PIX_FMT_YUV420P,
++                   AV_PIX_FMT_YUV420P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+     ac_imgconvert(src, IMG_YUV422P,
+                   pd->ff_venc_frame.data, IMG_YUV420P,
+@@ -266,7 +292,7 @@
+                                    vframe_list_t *vframe)
+ {
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, pd->vframe_buf->video_buf,
+-                   PIX_FMT_YUV420P,
++                   AV_PIX_FMT_YUV420P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+     ac_imgconvert(&vframe->video_buf, IMG_RGB_DEFAULT,
+                   pd->ff_venc_frame.data, IMG_YUV420P,
+@@ -596,15 +622,15 @@
+         } else {
+             pd->tc_pix_fmt = TC_CODEC_YUV420P;
+             pd->ff_vcontext.pix_fmt = (TC_VCODEC_ID(pd) == TC_CODEC_MJPEG) 
+-                                       ? PIX_FMT_YUVJ420P
+-                                       : PIX_FMT_YUV420P;
++                                       ? AV_PIX_FMT_YUVJ420P
++                                       : AV_PIX_FMT_YUV420P;
+             pd->pre_encode_video = pre_encode_video_yuv420p;
+         }
+         break;
+       case CODEC_YUV422:
+         pd->tc_pix_fmt = TC_CODEC_YUV422P;
+         pd->ff_vcontext.pix_fmt = (TC_VCODEC_ID(pd) == TC_CODEC_MJPEG) 
+-                                   ? PIX_FMT_YUVJ422P
++                                   ? AV_PIX_FMT_YUVJ422P
+                                    : PIX_FMT_YUV422P;
+         if (TC_VCODEC_ID(pd) == TC_CODEC_HUFFYUV) {
+             pd->pre_encode_video = pre_encode_video_yuv422p_huffyuv;
+@@ -617,8 +643,8 @@
+         pd->ff_vcontext.pix_fmt = (TC_VCODEC_ID(pd) == TC_CODEC_HUFFYUV)
+                                         ? PIX_FMT_YUV422P
+                                         : (TC_VCODEC_ID(pd) == TC_CODEC_MJPEG) 
+-                                           ? PIX_FMT_YUVJ420P
+-                                           : PIX_FMT_YUV420P;
++                                           ? AV_PIX_FMT_YUVJ420P
++                                           : AV_PIX_FMT_YUV420P;
+         pd->pre_encode_video = pre_encode_video_rgb24;
+         break;
+       default:
+@@ -665,7 +691,7 @@
+     switch (vob->divxmultipass) {
+       case 1:
+         CAN_DO_MULTIPASS(multipass_flag);
+-        pd->ff_vcontext.flags |= CODEC_FLAG_PASS1;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_PASS1;
+         pd->stats_file = fopen(vob->divxlogfile, "w");
+         if (pd->stats_file == NULL) {
+             tc_log_error(MOD_NAME, "could not create 2pass log file"
+@@ -675,7 +701,7 @@
+         break;
+       case 2:
+         CAN_DO_MULTIPASS(multipass_flag);
+-        pd->ff_vcontext.flags |= CODEC_FLAG_PASS2;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_PASS2;
+         pd->stats_file = fopen(vob->divxlogfile, "r");
+         if (pd->stats_file == NULL){
+             tc_log_error(MOD_NAME, "could not open 2pass log file \"%s\""
+@@ -704,7 +730,7 @@
+         break;
+       case 3:
+         /* fixed qscale :p */
+-        pd->ff_vcontext.flags |= CODEC_FLAG_QSCALE;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_QSCALE;
+         pd->ff_venc_frame.quality = vob->divxbitrate;
+         break;
+     }
+@@ -937,7 +963,11 @@
+ static void tc_lavc_config_defaults(TCLavcPrivateData *pd)
+ {
+     /* first of all reinitialize lavc data */
++#if LIBAVCODEC_VERSION_MAJOR < 55
+     avcodec_get_context_defaults(&pd->ff_vcontext);
++#else
++    avcodec_get_context_defaults3(&pd->ff_vcontext, NULL);
++#endif
+ 
+     pd->confdata.thread_count = 1;
+ 
+@@ -947,7 +977,7 @@
+     pd->confdata.rc_buffer_size  = 0;
+     pd->confdata.lmin            = 2;
+     pd->confdata.lmax            = 31;
+-    pd->confdata.me_method       = ME_EPZS;
++    pd->confdata.me_method       = 0;
+ 
+     memset(&pd->confdata.flags, 0, sizeof(pd->confdata.flags));
+     pd->confdata.turbo_setup = 0;
+@@ -962,12 +992,12 @@
+     pd->ff_vcontext.me_range                = 0;
+     pd->ff_vcontext.mb_decision             = 0;
+     pd->ff_vcontext.scenechange_threshold   = 0;
+-    pd->ff_vcontext.scenechange_factor      = 1;
++    pd->confdata.scenechange_factor         = 1;
+     pd->ff_vcontext.b_frame_strategy        = 0;
+     pd->ff_vcontext.b_sensitivity           = 40;
+     pd->ff_vcontext.brd_scale               = 0;
+     pd->ff_vcontext.bidir_refine            = 0;
+-    pd->ff_vcontext.rc_strategy             = 2;
++    pd->confdata.rc_strategy                = 2;
+     pd->ff_vcontext.b_quant_factor          = 1.25;
+     pd->ff_vcontext.i_quant_factor          = 0.8;
+     pd->ff_vcontext.b_quant_offset          = 1.25;
+@@ -975,10 +1005,10 @@
+     pd->ff_vcontext.qblur                   = 0.5;
+     pd->ff_vcontext.qcompress               = 0.5;
+     pd->ff_vcontext.mpeg_quant              = 0;
+-    pd->ff_vcontext.rc_initial_cplx         = 0.0;
+-    pd->ff_vcontext.rc_qsquish              = 1.0;
+-    pd->ff_vcontext.luma_elim_threshold     = 0;
+-    pd->ff_vcontext.chroma_elim_threshold   = 0;
++    pd->confdata.rc_initial_cplx            = 0.0;
++    pd->confdata.rc_qsquish              = 1.0;
++    pd->confdata.luma_elim_threshold     = 0;
++    pd->confdata.chroma_elim_threshold   = 0;
+     pd->ff_vcontext.strict_std_compliance   = 0;
+     pd->ff_vcontext.dct_algo                = FF_DCT_AUTO;
+     pd->ff_vcontext.idct_algo               = FF_IDCT_AUTO;
+@@ -987,7 +1017,7 @@
+     pd->ff_vcontext.temporal_cplx_masking   = 0.0;
+     pd->ff_vcontext.spatial_cplx_masking    = 0.0;
+     pd->ff_vcontext.p_masking               = 0.0;
+-    pd->ff_vcontext.border_masking          = 0.0;
++    pd->confdata.border_masking          = 0.0;
+     pd->ff_vcontext.me_pre_cmp              = 0;
+     pd->ff_vcontext.me_cmp                  = 0;
+     pd->ff_vcontext.me_sub_cmp              = 0;
+@@ -999,10 +1029,8 @@
+     pd->ff_vcontext.pre_me                  = 1;
+     pd->ff_vcontext.me_subpel_quality       = 8;
+     pd->ff_vcontext.refs                    = 1;
+-    pd->ff_vcontext.intra_quant_bias        = FF_DEFAULT_QUANT_BIAS;
+-    pd->ff_vcontext.inter_quant_bias        = FF_DEFAULT_QUANT_BIAS;
+     pd->ff_vcontext.noise_reduction         = 0;
+-    pd->ff_vcontext.quantizer_noise_shaping = 0;
++    pd->confdata.quantizer_noise_shaping = 0;
+     pd->ff_vcontext.flags                   = 0;
+ }
+ 
+@@ -1023,27 +1051,22 @@
+  */
+ static void tc_lavc_dispatch_settings(TCLavcPrivateData *pd)
+ {
++    char buf[1024];
+     /* some translation... */
+     pd->ff_vcontext.bit_rate_tolerance = pd->confdata.vrate_tolerance * 1000;
+     pd->ff_vcontext.rc_min_rate = pd->confdata.rc_min_rate * 1000;
+     pd->ff_vcontext.rc_max_rate = pd->confdata.rc_max_rate * 1000;
+     pd->ff_vcontext.rc_buffer_size = pd->confdata.rc_buffer_size * 1024;
+-    pd->ff_vcontext.lmin = (int)(FF_QP2LAMBDA * pd->confdata.lmin + 0.5);
+-    pd->ff_vcontext.lmax = (int)(FF_QP2LAMBDA * pd->confdata.lmax + 0.5);
+-    pd->ff_vcontext.me_method = ME_ZERO + pd->confdata.me_method;
++    snprintf(buf, sizeof(buf), "%i", (int)(FF_QP2LAMBDA * pd->confdata.lmin + 0.5));
++    av_dict_set(&(pd->ff_opts), "lmin", buf, 0);
++    snprintf(buf, sizeof(buf), "%i", (int)(FF_QP2LAMBDA * pd->confdata.lmax + 0.5));
++    av_dict_set(&(pd->ff_opts), "lmax", buf, 0);
+ 
+     pd->ff_vcontext.flags = 0;
+-    SET_FLAG(pd, mv0);
+-    SET_FLAG(pd, cbp);
+     SET_FLAG(pd, qpel);
+-    SET_FLAG(pd, alt);
+-    SET_FLAG(pd, vdpart);
+-    SET_FLAG(pd, naq);
+     SET_FLAG(pd, ilme);
+     SET_FLAG(pd, ildct);
+     SET_FLAG(pd, aic);
+-    SET_FLAG(pd, aiv);
+-    SET_FLAG(pd, umv);
+     SET_FLAG(pd, psnr);
+     SET_FLAG(pd, trell);
+     SET_FLAG(pd, gray);
+@@ -1061,9 +1084,49 @@
+     }
+     if (pd->interlacing.active) {
+         /* enforce interlacing */
+-        pd->ff_vcontext.flags |= CODEC_FLAG_INTERLACED_DCT;
+-        pd->ff_vcontext.flags |= CODEC_FLAG_INTERLACED_ME;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_INTERLACED_DCT;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_INTERLACED_ME;
++    }
++    if (pd->confdata.flags.alt) {
++        av_dict_set(&(pd->ff_opts), "alternate_scan", "1", 0);
+     }
++    if (pd->confdata.flags.vdpart) {
++        av_dict_set(&(pd->ff_opts), "data_partitioning", "1", 0);
++    }
++    if (pd->confdata.flags.umv) {
++        av_dict_set(&(pd->ff_opts), "umv", "1", 0);
++    }
++    if (pd->confdata.flags.aiv) {
++        av_dict_set(&(pd->ff_opts), "aiv", "1", 0);
++    }
++    if (pd->confdata.flags.cbp) {
++    	av_dict_set(&(pd->ff_opts), "mpv_flags", "+cbp_rd", 0);
++    }
++    if (pd->confdata.flags.mv0) {
++    	av_dict_set(&(pd->ff_opts), "mpv_flags", "+mv0", 0);
++    }
++    if (pd->confdata.flags.naq) {
++    	av_dict_set(&(pd->ff_opts), "mpv_flags", "+naq", 0);
++    }
++
++#define set_dict_opt(val, opt) \
++    snprintf(buf, sizeof(buf), "%i", pd->confdata.val);\
++    av_dict_set(&(pd->ff_opts), opt, buf, 0)
++#define set_dict_float_opt(val, opt) \
++    snprintf(buf, sizeof(buf), "%f", pd->confdata.val);\
++    av_dict_set(&(pd->ff_opts), opt, buf, 0)
++
++    set_dict_opt(luma_elim_threshold, "luma_elim_threshold");
++    set_dict_opt(chroma_elim_threshold, "chroma_elim_threshold");
++    set_dict_opt(quantizer_noise_shaping, "quantizer_noise_shaping");
++    set_dict_opt(inter_quant_bias, "pbias");
++    set_dict_opt(intra_quant_bias, "ibias");
++    set_dict_opt(me_method, "me_method");
++    set_dict_opt(scenechange_factor, "sc_factor");
++    set_dict_opt(rc_strategy, "rc_strategy");
++    set_dict_float_opt(rc_initial_cplx, "rc_init_cplx");
++    set_dict_float_opt(rc_qsquish, "qsquish");
++    set_dict_float_opt(border_masking, "border_mask");
+ }
+ 
+ #undef SET_FLAG
+@@ -1121,12 +1184,12 @@
+         { "lmin", PAUX(lmin), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.01, 255.0 },
+         { "lmax", PAUX(lmax), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.01, 255.0 },
+         { "vqdiff", PCTX(max_qdiff), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 31 },
+-        { "vmax_b_frames", PCTX(max_b_frames), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, FF_MAX_B_FRAMES },
++        { "vmax_b_frames", PCTX(max_b_frames), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, INT_MAX },
+         { "vme", PAUX(me_method), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 16, },
+         { "me_range", PCTX(me_range), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 16000 },
+         { "mbd", PCTX(mb_decision), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 3 },
+         { "sc_threshold", PCTX(scenechange_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000 },
+-        { "sc_factor", PCTX(scenechange_factor), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 16 },
++        { "sc_factor", PAUX(scenechange_factor), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 16 },
+         { "vb_strategy", PCTX(b_frame_strategy), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10 },
+         { "b_sensitivity", PCTX(b_sensitivity), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 100 },
+         { "brd_scale", PCTX(brd_scale), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10 },
+@@ -1137,7 +1200,7 @@
+         { "vrc_maxrate", PAUX(rc_max_rate), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 24000000 },
+         { "vrc_minrate", PAUX(rc_min_rate), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 24000000 },
+         { "vrc_buf_size", PAUX(rc_buffer_size), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 4, 24000000 },
+-        { "vrc_strategy", PCTX(rc_strategy), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2 },
++        { "vrc_strategy", PAUX(rc_strategy), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2 },
+         { "vb_qfactor", PCTX(b_quant_factor), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0 },
+         { "vi_qfactor", PCTX(i_quant_factor), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0 },
+         { "vb_qoffset", PCTX(b_quant_offset), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 31.0 },
+@@ -1147,11 +1210,11 @@
+         { "mpeg_quant", PCTX(mpeg_quant), TCCONF_TYPE_FLAG, 0, 0, 1 },
+         //  { "vrc_eq",     }, // not yet supported
+         { "vrc_override", rc_override_buf, TCCONF_TYPE_STRING, 0, 0, 0 },
+-        { "vrc_init_cplx", PCTX(rc_initial_cplx), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 9999999.0 },
++        { "vrc_init_cplx", PAUX(rc_initial_cplx), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 9999999.0 },
+         //  { "vrc_init_occupancy",   }, // not yet supported
+-        { "vqsquish", PCTX(rc_qsquish), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 99.0 },
+-        { "vlelim", PCTX(luma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
+-        { "vcelim", PCTX(chroma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
++        { "vqsquish", PAUX(rc_qsquish), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 99.0 },
++        { "vlelim", PAUX(luma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
++        { "vcelim", PAUX(chroma_elim_threshold), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
+         { "vstrict", PCTX(strict_std_compliance), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99 },
+         { "vpsize", PCTX(rtp_payload_size), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 100000000 },
+         { "dct", PCTX(dct_algo), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10 },
+@@ -1161,7 +1224,7 @@
+         { "tcplx_mask", PCTX(temporal_cplx_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
+         { "scplx_mask", PCTX(spatial_cplx_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
+         { "p_mask", PCTX(p_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
+-        { "border_mask", PCTX(border_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
++        { "border_mask", PAUX(border_masking), TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0 },
+         { "pred", PCTX(prediction_method), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 4 },
+         { "precmp", PCTX(me_pre_cmp), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000 },
+         { "cmp", PCTX(me_cmp), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000 },
+@@ -1174,37 +1237,37 @@
+         { "pre_me", PCTX(pre_me), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+         { "subq", PCTX(me_subpel_quality), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 8 },
+         { "refs", PCTX(refs), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 8 },
+-        { "ibias", PCTX(intra_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 },
+-        { "pbias", PCTX(inter_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 },
++        { "ibias", PAUX(intra_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 },
++        { "pbias", PAUX(inter_quant_bias), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512 },
+         { "nr", PCTX(noise_reduction), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000000},
+-        { "qns", PCTX(quantizer_noise_shaping), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 3 },
++        { "qns", PAUX(quantizer_noise_shaping), TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 3 },
+         { "inter_matrix_file", inter_matrix_file, TCCONF_TYPE_STRING, 0, 0, 0 },
+         { "intra_matrix_file", intra_matrix_file, TCCONF_TYPE_STRING, 0, 0, 0 },
+     
+-        { "mv0", PAUX(flags.mv0), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_MV0 },
+-        { "cbp", PAUX(flags.cbp), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CBP_RD },
+-        { "qpel", PAUX(flags.qpel), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QPEL },
+-        { "alt", PAUX(flags.alt), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_ALT_SCAN },
+-        { "ilme", PAUX(flags.ilme), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_ME },
+-        { "ildct", PAUX(flags.ildct), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_DCT },
+-        { "naq", PAUX(flags.naq), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_NORMALIZE_AQP },
+-        { "vdpart", PAUX(flags.vdpart), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART },
++        { "mv0", PAUX(flags.mv0), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "cbp", PAUX(flags.cbp), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "qpel", PAUX(flags.qpel), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_QPEL },
++        { "alt", PAUX(flags.alt), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "ilme", PAUX(flags.ilme), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_INTERLACED_ME },
++        { "ildct", PAUX(flags.ildct), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_INTERLACED_DCT },
++        { "naq", PAUX(flags.naq), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "vdpart", PAUX(flags.vdpart), TCCONF_TYPE_FLAG, 0, 0, 1 },
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+         { "aic", PAUX(flags.aic), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_AIC },
+ #else        
+-        { "aic", PAUX(flags.aic), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_AC_PRED },
++        { "aic", PAUX(flags.aic), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_AC_PRED },
+ #endif
+-        { "aiv", PAUX(flags.aiv), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_AIV },
+-        { "umv", PAUX(flags.umv), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_UMV },
+-        { "psnr", PAUX(flags.psnr), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PSNR },
++        { "aiv", PAUX(flags.aiv), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "umv", PAUX(flags.umv), TCCONF_TYPE_FLAG, 0, 0, 1 },
++        { "psnr", PAUX(flags.psnr), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_PSNR },
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+         { "trell", PAUX(flags.trell), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_TRELLIS_QUANT },
+ #else
+         { "trell", PCTX(trellis), TCCONF_TYPE_FLAG, 0, 0, 1 },
+ #endif
+-        { "gray", PAUX(flags.gray), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_GRAY },
+-        { "v4mv", PAUX(flags.v4mv), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_4MV },
+-        { "closedgop", PAUX(flags.closedgop), TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CLOSED_GOP },
++        { "gray", PAUX(flags.gray), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_GRAY },
++        { "v4mv", PAUX(flags.v4mv), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_4MV },
++        { "closedgop", PAUX(flags.closedgop), TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_CLOSED_GOP },
+     
+         //  { "turbo", PAUX(turbo_setup), TCCONF_TYPE_FLAG, 0, 0, 1 }, // not yet  supported
+         /* End of the config file */
+@@ -1345,6 +1408,8 @@
+ 
+     pd = self->userdata;
+ 
++    pd->ff_opts = NULL;
++
+     pd->flush_flag = vob->encoder_flush;
+     
+     /* FIXME: move into core? */
+@@ -1387,7 +1452,7 @@
+                     pd->confdata.thread_count,
+                     (pd->confdata.thread_count > 1) ?"s" :"");
+     }
+-    avcodec_thread_init(&pd->ff_vcontext, pd->confdata.thread_count);
++    pd->ff_vcontext.thread_count = pd->confdata.thread_count;
+ 
+     pd->ff_vcodec = avcodec_find_encoder(FF_VCODEC_ID(pd));
+     if (pd->ff_vcodec == NULL) {
+@@ -1397,11 +1462,11 @@
+     }
+ 
+     TC_LOCK_LIBAVCODEC;
+-    ret = avcodec_open(&pd->ff_vcontext, pd->ff_vcodec);
++    ret = avcodec_open2(&pd->ff_vcontext, pd->ff_vcodec, &(pd->ff_opts));
+     TC_UNLOCK_LIBAVCODEC;
+ 
+     if (ret < 0) {
+-        tc_log_error(MOD_NAME, "avcodec_open() failed");
++        tc_log_error(MOD_NAME, "avcodec_open2() failed");
+         goto failed;
+     }
+     /* finally, pass up the extradata, if any */
+diff -Naur a/export/aud_aux.c b/export/aud_aux.c
+--- a/export/aud_aux.c	2011-11-19 16:50:27.000000000 +0000
++++ b/export/aud_aux.c	2018-05-14 01:58:58.346408791 +0100
+@@ -326,10 +326,18 @@
+ 
+     switch (o_codec) {
+       case   0x50:
++#if LIBAVCODEC_VERSION_MAJOR < 55
+         codeid = CODEC_ID_MP2;
++#else
++        codeid = AV_CODEC_ID_MP2;
++#endif
+         break;
+       case 0x2000:
++#if LIBAVCODEC_VERSION_MAJOR < 55
+         codeid = CODEC_ID_AC3;
++#else
++        codeid = AV_CODEC_ID_AC3;
++#endif
+         break;
+       default:
+         tc_warn("cannot init ffmpeg with %x", o_codec);
+@@ -346,7 +354,7 @@
+ 
+     //-- set parameters (bitrate, channels and sample-rate) --
+     //--------------------------------------------------------
+-    avcodec_get_context_defaults(&mpa_ctx);
++    avcodec_get_context_defaults3(&mpa_ctx, mpa_codec);
+ #if LIBAVCODEC_VERSION_MAJOR < 53
+     mpa_ctx.codec_type  = CODEC_TYPE_AUDIO;
+ #else
+@@ -359,11 +367,16 @@
+     //-- open codec --
+     //----------------
+     TC_LOCK_LIBAVCODEC;
+-    ret = avcodec_open(&mpa_ctx, mpa_codec);
++    ret = avcodec_open2(&mpa_ctx, mpa_codec, NULL);
+     TC_UNLOCK_LIBAVCODEC;
+     if (ret < 0) {
+         tc_warn("tc_audio_init_ffmpeg: could not open %s codec !",
+-                (codeid == CODEC_ID_MP2) ?"mpa" :"ac3");
++#if LIBAVCODEC_VERSION_MAJOR < 55
++                (codeid == CODEC_ID_MP2)
++#else
++                (codeid == AV_CODEC_ID_MP2)
++#endif
++                ?"mpa" :"ac3");
+         return(TC_EXPORT_ERROR);
+     }
+ 
+diff -Naur a/export/export_ffmpeg.c b/export/export_ffmpeg.c
+--- a/export/export_ffmpeg.c	2011-11-19 16:50:27.000000000 +0000
++++ b/export/export_ffmpeg.c	2018-05-14 01:58:58.346408791 +0100
+@@ -122,6 +122,7 @@
+ static AVFrame             *lavc_convert_frame = NULL;
+ 
+ static AVCodec             *lavc_venc_codec = NULL;
++static AVDictionary        *lavc_venc_opts = NULL;
+ static AVFrame             *lavc_venc_frame = NULL;
+ static AVCodecContext      *lavc_venc_context;
+ static avi_t               *avifile = NULL;
+@@ -180,7 +181,7 @@
+ 
+ 
+ /* START: COPIED FROM ffmpeg-0.5_p22846(ffmpeg.c, cmdutils.c) */
+-#include <libavcodec/opt.h>
++#include <libavutil/opt.h>
+ #include <libavutil/avstring.h>
+ #include <libswscale/swscale.h>
+ 
+@@ -321,7 +322,7 @@
+     }
+ 
+     if(!f){
+-        fprintf(stderr, "File for preset '%s' not found\n", arg);
++        tc_log_error(MOD_NAME, "File for preset '%s' not found", arg);
+         av_exit(1);
+     }
+ 
+@@ -470,7 +471,6 @@
+     }
+ 
+     TC_LOCK_LIBAVCODEC;
+-    avcodec_init();
+     avcodec_register_all();
+     TC_UNLOCK_LIBAVCODEC;
+ 
+@@ -486,11 +486,11 @@
+ 		            codec->name, codec->fourCC, codec->comments);
+     }
+ 
+-    lavc_venc_context = avcodec_alloc_context();
++    lavc_venc_context = avcodec_alloc_context3(lavc_venc_codec);
+     lavc_venc_frame   = avcodec_alloc_frame();
+ 
+     lavc_convert_frame= avcodec_alloc_frame();
+-    size = avpicture_get_size(PIX_FMT_RGB24, vob->ex_v_width, vob->ex_v_height);
++    size = avpicture_get_size(AV_PIX_FMT_RGB24, vob->ex_v_width, vob->ex_v_height);
+     enc_buffer = tc_malloc(size);
+ 
+     if (lavc_venc_context == NULL || !enc_buffer || !lavc_convert_frame) {
+@@ -634,7 +634,7 @@
+         lavc_param_rc_max_rate = 2516;
+         lavc_param_rc_buffer_size = 224 * 8;
+         lavc_param_rc_buffer_aggressivity = 99;
+-        lavc_param_scan_offset = CODEC_FLAG_SVCD_SCAN_OFFSET;
++        lavc_param_scan_offset = 1;
+ 
+         break;
+ 
+@@ -674,7 +674,7 @@
+ 
+         lavc_param_rc_buffer_size = 224 * 8;
+         lavc_param_rc_buffer_aggressivity = 99;
+-        lavc_param_scan_offset = CODEC_FLAG_SVCD_SCAN_OFFSET;
++        lavc_param_scan_offset = 1;
+ 
+         break;
+ 
+@@ -828,18 +828,35 @@
+ 
+     lavc_venc_context->bit_rate           = vob->divxbitrate * 1000;
+     lavc_venc_context->bit_rate_tolerance = lavc_param_vrate_tolerance * 1000;
+-    lavc_venc_context->lmin= (int)(FF_QP2LAMBDA * lavc_param_lmin + 0.5);
+-    lavc_venc_context->lmax= (int)(FF_QP2LAMBDA * lavc_param_lmax + 0.5);
+     lavc_venc_context->max_qdiff          = lavc_param_vqdiff;
+     lavc_venc_context->qcompress          = lavc_param_vqcompress;
+     lavc_venc_context->qblur              = lavc_param_vqblur;
+     lavc_venc_context->max_b_frames       = lavc_param_vmax_b_frames;
+     lavc_venc_context->b_quant_factor     = lavc_param_vb_qfactor;
+-    lavc_venc_context->rc_strategy        = lavc_param_vrc_strategy;
+     lavc_venc_context->b_frame_strategy   = lavc_param_vb_strategy;
+     lavc_venc_context->b_quant_offset     = lavc_param_vb_qoffset;
+-    lavc_venc_context->luma_elim_threshold= lavc_param_luma_elim_threshold;
+-    lavc_venc_context->chroma_elim_threshold= lavc_param_chroma_elim_threshold;
++
++    char buf[1024];
++#define set_dict_opt(val, opt) \
++	snprintf(buf, sizeof(buf), "%i", val); \
++	av_dict_set(&lavc_venc_opts, opt, buf, 0)
++#define set_dict_float_opt(val, opt) \
++	snprintf(buf, sizeof(buf), "%f", val); \
++	av_dict_set(&lavc_venc_opts, opt, buf, 0)
++    set_dict_opt(lavc_param_luma_elim_threshold, "luma_elim_threshold");
++    set_dict_opt(lavc_param_chroma_elim_threshold, "chroma_elim_threshold");
++    set_dict_opt((int)(FF_QP2LAMBDA * lavc_param_lmin + 0.5), "lmin");
++    set_dict_opt((int)(FF_QP2LAMBDA * lavc_param_lmax + 0.5), "lmax");
++    set_dict_opt(lavc_param_vrc_strategy, "rc_strategy");
++    set_dict_float_opt(lavc_param_rc_qsquish, "qsquish");
++    set_dict_float_opt(lavc_param_rc_qmod_amp, "rc_qmod_amp");
++    set_dict_opt(lavc_param_rc_qmod_freq, "rc_qmod_freq");
++    set_dict_opt(lavc_param_rc_eq, "rc_eq");
++    set_dict_opt(lavc_param_vme, "me_method");
++    set_dict_opt(lavc_param_ibias, "ibias");
++    set_dict_opt(lavc_param_pbias, "pbias");
++    set_dict_float_opt(lavc_param_rc_buffer_aggressivity, "rc_buf_aggressivity");
++    set_dict_float_opt(lavc_param_rc_initial_cplx, "rc_init_cplx");
+     lavc_venc_context->rtp_payload_size   = lavc_param_packet_size;
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)   
+     if (lavc_param_packet_size)
+@@ -848,15 +865,9 @@
+     lavc_venc_context->strict_std_compliance= lavc_param_strict;
+     lavc_venc_context->i_quant_factor     = lavc_param_vi_qfactor;
+     lavc_venc_context->i_quant_offset     = lavc_param_vi_qoffset;
+-    lavc_venc_context->rc_qsquish         = lavc_param_rc_qsquish;
+-    lavc_venc_context->rc_qmod_amp        = lavc_param_rc_qmod_amp;
+-    lavc_venc_context->rc_qmod_freq       = lavc_param_rc_qmod_freq;
+-    lavc_venc_context->rc_eq              = lavc_param_rc_eq;
+     lavc_venc_context->rc_max_rate        = lavc_param_rc_max_rate * 1000;
+     lavc_venc_context->rc_min_rate        = lavc_param_rc_min_rate * 1000;
+     lavc_venc_context->rc_buffer_size     = lavc_param_rc_buffer_size * 1024;
+-    lavc_venc_context->rc_buffer_aggressivity= lavc_param_rc_buffer_aggressivity;
+-    lavc_venc_context->rc_initial_cplx    = lavc_param_rc_initial_cplx;
+     lavc_venc_context->debug              = lavc_param_debug;
+     lavc_venc_context->last_predictor_count= lavc_param_last_pred;
+     lavc_venc_context->pre_me             = lavc_param_pre_me;
+@@ -864,13 +875,11 @@
+     lavc_venc_context->pre_dia_size       = lavc_param_pre_dia_size;
+     lavc_venc_context->me_subpel_quality  = lavc_param_me_subpel_quality;
+     lavc_venc_context->me_range           = lavc_param_me_range;
+-    lavc_venc_context->intra_quant_bias   = lavc_param_ibias;
+-    lavc_venc_context->inter_quant_bias   = lavc_param_pbias;
+     lavc_venc_context->coder_type         = lavc_param_coder;
+     lavc_venc_context->context_model      = lavc_param_context;
+     lavc_venc_context->scenechange_threshold= lavc_param_sc_threshold;
+     lavc_venc_context->noise_reduction    = lavc_param_noise_reduction;
+-    lavc_venc_context->inter_threshold    = lavc_param_inter_threshold;
++    set_dict_opt(lavc_param_inter_threshold, "inter_threshold");
+     lavc_venc_context->intra_dc_precision = lavc_param_intra_dc_precision;
+     lavc_venc_context->skip_top           = lavc_param_skip_top;
+     lavc_venc_context->skip_bottom        = lavc_param_skip_bottom;
+@@ -887,7 +896,7 @@
+ 		    lavc_venc_context->thread_count);
+     }
+ 
+-    avcodec_thread_init(lavc_venc_context, lavc_param_threads);
++    lavc_venc_context->thread_count = lavc_param_threads;
+ 
+     if (lavc_param_intra_matrix) {
+         char *tmp;
+@@ -1065,15 +1074,14 @@
+     lavc_venc_context->flags |= lavc_param_closedgop;
+     lavc_venc_context->flags |= lavc_param_trunc;
+     lavc_venc_context->flags |= lavc_param_aic;
+-    lavc_venc_context->flags |= lavc_param_umv;
+     lavc_venc_context->flags |= lavc_param_v4mv;
+-    lavc_venc_context->flags |= lavc_param_data_partitioning;
+-    lavc_venc_context->flags |= lavc_param_cbp;
++    if(lavc_param_cbp)
++    	av_dict_set(&lavc_venc_opts, "mpv_flags", "+cbp_rd", 0);
+     lavc_venc_context->flags |= lavc_param_mv0;
+-    lavc_venc_context->flags |= lavc_param_qp_rd;
+-    lavc_venc_context->flags |= lavc_param_scan_offset;
+-    lavc_venc_context->flags |= lavc_param_ss;
+-    lavc_venc_context->flags |= lavc_param_alt;
++    if(lavc_param_qp_rd)
++    	av_dict_set(&lavc_venc_opts, "mpv_flags", "+qp_rd", 0);
++    if (lavc_param_normalize_aqp)
++    	av_dict_set(&lavc_venc_opts, "mpv_flags", "+naq", 0);
+     lavc_venc_context->flags |= lavc_param_ilme;
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)   
+     lavc_venc_context->flags |= lavc_param_trell;
+@@ -1082,9 +1090,7 @@
+ #endif
+ 
+     if (lavc_param_gray)
+-        lavc_venc_context->flags |= CODEC_FLAG_GRAY;
+-    if (lavc_param_normalize_aqp)
+-        lavc_venc_context->flags |= CODEC_FLAG_NORMALIZE_AQP;
++        lavc_venc_context->flags |= AV_CODEC_FLAG_GRAY;
+ 
+     switch(vob->encode_fields) {
+     case TC_ENCODE_FIELDS_TOP_FIRST:
+@@ -1102,9 +1108,9 @@
+     }
+ 
+     lavc_venc_context->flags |= interlacing_active ?
+-        CODEC_FLAG_INTERLACED_DCT : 0;
++        AV_CODEC_FLAG_INTERLACED_DCT : 0;
+     lavc_venc_context->flags |= interlacing_active ?
+-        CODEC_FLAG_INTERLACED_ME : 0;
++        AV_CODEC_FLAG_INTERLACED_ME : 0;
+ 
+     lavc_venc_context->flags |= lavc_param_psnr;
+     do_psnr = lavc_param_psnr;
+@@ -1112,7 +1118,7 @@
+     lavc_venc_context->prediction_method = lavc_param_prediction_method;
+ 
+     if(is_huffyuv)
+-        lavc_venc_context->pix_fmt = PIX_FMT_YUV422P;
++        lavc_venc_context->pix_fmt = AV_PIX_FMT_YUV422P;
+     else
+     {
+         switch(pix_fmt)
+@@ -1121,18 +1127,18 @@
+             case CODEC_RGB:
+             {
+                 if(is_mjpeg)
+-                    lavc_venc_context->pix_fmt = PIX_FMT_YUVJ420P;
++                    lavc_venc_context->pix_fmt = AV_PIX_FMT_YUVJ420P;
+                 else
+-                    lavc_venc_context->pix_fmt = PIX_FMT_YUV420P;
++                    lavc_venc_context->pix_fmt = AV_PIX_FMT_YUV420P;
+                 break;
+             }
+ 
+             case CODEC_YUV422:
+             {
+                 if(is_mjpeg)
+-                    lavc_venc_context->pix_fmt = PIX_FMT_YUVJ422P;
++                    lavc_venc_context->pix_fmt = AV_PIX_FMT_YUVJ422P;
+                 else
+-                    lavc_venc_context->pix_fmt = PIX_FMT_YUV422P;
++                    lavc_venc_context->pix_fmt = AV_PIX_FMT_YUV422P;
+                 break;
+             }
+ 
+@@ -1151,7 +1157,7 @@
+                   "encoding.");
+           return TC_EXPORT_ERROR;
+         }
+-        lavc_venc_context->flags |= CODEC_FLAG_PASS1;
++        lavc_venc_context->flags |= AV_CODEC_FLAG_PASS1;
+         stats_file = fopen(vob->divxlogfile, "w");
+         if (stats_file == NULL){
+           tc_log_warn(MOD_NAME, "Could not create 2pass log file \"%s\".",
+@@ -1165,7 +1171,7 @@
+                   "encoding.");
+           return TC_EXPORT_ERROR;
+         }
+-        lavc_venc_context->flags |= CODEC_FLAG_PASS2;
++        lavc_venc_context->flags |= AV_CODEC_FLAG_PASS2;
+         stats_file= fopen(vob->divxlogfile, "r");
+         if (stats_file==NULL){
+           tc_log_warn(MOD_NAME, "Could not open 2pass log file \"%s\" for "
+@@ -1196,18 +1202,16 @@
+         break;
+       case 3:
+         /* fixed qscale :p */
+-        lavc_venc_context->flags   |= CODEC_FLAG_QSCALE;
++        lavc_venc_context->flags   |= AV_CODEC_FLAG_QSCALE;
+         lavc_venc_frame->quality  = vob->divxbitrate;
+         break;
+     }
+ 
+-    lavc_venc_context->me_method = ME_ZERO + lavc_param_vme;
+-
+ 
+ 	/* FIXME: transcode itself contains "broken ffmpeg default settings", thus we need to override them! */
+-	if (lavc_param_video_preset) {
++	if (lavc_param_video_preset && strcmp(lavc_param_video_preset, "none")) {
+ 		avcodec_opts[AVMEDIA_TYPE_VIDEO] = lavc_venc_context;
+-		video_codec_name = ffmpeg_codec_name(codec->name);
++		video_codec_name = av_strdup(ffmpeg_codec_name(codec->name));
+ 
+ 		const char *preset_start = lavc_param_video_preset;
+ 		while (preset_start) {
+@@ -1225,6 +1229,8 @@
+ 			if (opt_preset("vpre", preset_name) != 0) {
+ 				tc_log_warn(MOD_NAME, "Parsing ffmpeg preset '%s' failed", preset_name);
+ 			}
++      av_free(video_codec_name);
++      video_codec_name = NULL;
+ 			if (verbose) {
+ 				int i;
+ 				tc_log_info(MOD_NAME, "After parsing preset '%s', %i options are overridden:", preset_name, opt_name_count);
+@@ -1241,20 +1247,39 @@
+ 		}
+ 	}
+ 
++    if (lavc_param_scan_offset) {
++      av_dict_set(&lavc_venc_opts, "scan_offset", "1", 0);
++    }
++
++    if (lavc_param_ss) {
++      av_dict_set(&lavc_venc_opts, "structured_slices", "1", 0);
++    }
++
++    if (lavc_param_alt) {
++      av_dict_set(&lavc_venc_opts, "alternate_scan", "1", 0);
++    }
++
++    if (lavc_param_umv) {
++      av_dict_set(&lavc_venc_opts, "umv", "1", 0);
++    }
++
++    if (lavc_param_data_partitioning) {
++      av_dict_set(&lavc_venc_opts, "vdpart", "1", 0);
++    }
+ 
+     //-- open codec --
+     //----------------
+     TC_LOCK_LIBAVCODEC;
+-    ret = avcodec_open(lavc_venc_context, lavc_venc_codec);
++    ret = avcodec_open2(lavc_venc_context, lavc_venc_codec, &lavc_venc_opts);
+     TC_UNLOCK_LIBAVCODEC;
+     if (ret < 0) {
+       tc_log_warn(MOD_NAME, "could not open FFMPEG codec");
+       return TC_EXPORT_ERROR;
+     }
+ 
+-    if (lavc_venc_context->codec->encode == NULL) {
++    if (av_codec_is_encoder(lavc_venc_context->codec) == 0) {
+       tc_log_warn(MOD_NAME, "could not open FFMPEG codec "
+-              "(lavc_venc_context->codec->encode == NULL)");
++              "(av_codec_is_encoder(lavc_venc_context->codec) == 0)");
+       return TC_EXPORT_ERROR;
+     }
+ 
+@@ -1598,7 +1623,7 @@
+ 	        	YUV_INIT_PLANES(src, param->buffer, IMG_YUV_DEFAULT,
+ 			                	lavc_venc_context->width, lavc_venc_context->height);
+                 avpicture_fill((AVPicture *)lavc_venc_frame, img_buffer,
+-                               PIX_FMT_YUV422P, lavc_venc_context->width,
++                               AV_PIX_FMT_YUV422P, lavc_venc_context->width,
+                                lavc_venc_context->height);
+         		/* FIXME: can't use tcv_convert (see decode_lavc.c) */
+                 ac_imgconvert(src, IMG_YUV_DEFAULT,
+@@ -1628,7 +1653,7 @@
+ 		                		lavc_venc_context->width,
+                                 lavc_venc_context->height);
+                 avpicture_fill((AVPicture *)lavc_venc_frame, img_buffer,
+-                               PIX_FMT_YUV420P, lavc_venc_context->width,
++                               AV_PIX_FMT_YUV420P, lavc_venc_context->width,
+                                lavc_venc_context->height);
+                 ac_imgconvert(src, IMG_YUV422P,
+                               lavc_venc_frame->data, IMG_YUV420P,
+@@ -1639,7 +1664,7 @@
+ 
+         case CODEC_RGB:
+             avpicture_fill((AVPicture *)lavc_venc_frame, img_buffer,
+-                           PIX_FMT_YUV420P, lavc_venc_context->width,
++                           AV_PIX_FMT_YUV420P, lavc_venc_context->width,
+                            lavc_venc_context->height);
+     	    ac_imgconvert(&param->buffer, IMG_RGB_DEFAULT,
+                               lavc_venc_frame->data, IMG_YUV420P,
+diff -Naur a/export/ffmpeg_cfg.c b/export/ffmpeg_cfg.c
+--- a/export/ffmpeg_cfg.c	2011-11-19 16:50:27.000000000 +0000
++++ b/export/ffmpeg_cfg.c	2018-05-14 01:58:58.346408791 +0100
+@@ -95,8 +95,8 @@
+ int lavc_param_pre_me= 1;
+ int lavc_param_me_subpel_quality= 8;
+ int lavc_param_me_range=0;
+-int lavc_param_ibias=FF_DEFAULT_QUANT_BIAS;
+-int lavc_param_pbias=FF_DEFAULT_QUANT_BIAS;
++int lavc_param_ibias=0;
++int lavc_param_pbias=0;
+ int lavc_param_coder=0;
+ int lavc_param_context=0;
+ char *lavc_param_intra_matrix = NULL;
+@@ -126,7 +126,7 @@
+ //int lavc_param_atag = 0;
+ //int lavc_param_abitrate = 224;
+ 
+-char *lavc_param_video_preset = "medium";
++char *lavc_param_video_preset = "none";
+ char *lavc_param_ffmpeg_datadir = "/usr/share/ffmpeg";
+ 
+ TCConfigEntry lavcopts_conf[]={
+@@ -138,7 +138,7 @@
+     {"vratetol", &lavc_param_vrate_tolerance, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 4, 24000000},
+     {"vhq", &lavc_param_mb_decision, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"mbd", &lavc_param_mb_decision, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 9},
+-    {"v4mv", &lavc_param_v4mv, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_4MV},
++    {"v4mv", &lavc_param_v4mv, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_4MV},
+     {"vme", &lavc_param_vme, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 5},
+ //    {"vqscale", &lavc_param_vqscale, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 31},
+ //    {"vqmin", &lavc_param_vqmin, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 31},
+@@ -151,7 +151,7 @@
+     {"vqcomp", &lavc_param_vqcompress, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0},
+     {"vqblur", &lavc_param_vqblur, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 1.0},
+     {"vb_qfactor", &lavc_param_vb_qfactor, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0},
+-    {"vmax_b_frames", &lavc_param_vmax_b_frames, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, FF_MAX_B_FRAMES},
++    {"vmax_b_frames", &lavc_param_vmax_b_frames, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, INT_MAX},
+ //    {"vpass", &lavc_param_vpass, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2},
+     {"vrc_strategy", &lavc_param_vrc_strategy, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2},
+     {"vb_strategy", &lavc_param_vb_strategy, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10},
+@@ -160,9 +160,9 @@
+     {"vcelim", &lavc_param_chroma_elim_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99},
+     {"vpsize", &lavc_param_packet_size, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 100000000},
+     {"vstrict", &lavc_param_strict, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -99, 99},
+-    {"vdpart", &lavc_param_data_partitioning, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART},
++    {"vdpart", &lavc_param_data_partitioning, TCCONF_TYPE_FLAG, 0, 0, 1},
+ //    {"keyint", &lavc_param_keyint, TCCONF_TYPE_INT, 0, 0, 0},
+-    {"gray", &lavc_param_gray, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART},
++    {"gray", &lavc_param_gray, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_GRAY},
+     {"mpeg_quant", &lavc_param_mpeg_quant, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"vi_qfactor", &lavc_param_vi_qfactor, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, -31.0, 31.0},
+     {"vi_qoffset", &lavc_param_vi_qoffset, TCCONF_TYPE_FLOAT, TCCONF_FLAG_RANGE, 0.0, 31.0},
+@@ -188,7 +188,7 @@
+     {"pred", &lavc_param_prediction_method, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 20},
+     {"format", &lavc_param_format, TCCONF_TYPE_STRING, 0, 0, 0},
+     {"debug", &lavc_param_debug, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 100000000},
+-    {"psnr", &lavc_param_psnr, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PSNR},
++    {"psnr", &lavc_param_psnr, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_PSNR},
+     {"precmp", &lavc_param_me_pre_cmp, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+     {"cmp", &lavc_param_me_cmp, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+     {"subcmp", &lavc_param_me_sub_cmp, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+@@ -196,9 +196,9 @@
+     {"ildctcmp", &lavc_param_ildct_cmp, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 2000},
+     {"predia", &lavc_param_pre_dia_size, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -2000, 2000},
+     {"dia", &lavc_param_dia_size, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -2000, 2000},
+-    {"qpel", &lavc_param_qpel, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QPEL},
++    {"qpel", &lavc_param_qpel, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_QPEL},
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)   
+-    {"trell", &lavc_param_trell, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_TRELLIS_QUANT},
++    {"trell", &lavc_param_trell, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_TRELLIS_QUANT},
+ #else
+     {"trell", &lavc_param_trell, TCCONF_TYPE_FLAG, 0, 0, 1},
+ #endif
+@@ -207,32 +207,32 @@
+     {"subq", &lavc_param_me_subpel_quality, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 8},
+     {"me_range", &lavc_param_me_range, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 16000},
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)   
+-    {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_AIC},
++    {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_H263P_AIC},
+ #else
+-    {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_AC_PRED},
++    {"aic", &lavc_param_aic, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_AC_PRED},
+ #endif    
+-    {"umv", &lavc_param_umv, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_UMV},
++    {"umv", &lavc_param_umv, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"ibias", &lavc_param_ibias, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512},
+     {"pbias", &lavc_param_pbias, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -512, 512},
+     {"coder", &lavc_param_coder, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10},
+     {"context", &lavc_param_context, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 10},
+     {"intra_matrix", &lavc_param_intra_matrix, TCCONF_TYPE_STRING, 0, 0, 0},
+     {"inter_matrix", &lavc_param_inter_matrix, TCCONF_TYPE_STRING, 0, 0, 0},
+-    {"cbp", &lavc_param_cbp, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CBP_RD},
+-    {"mv0", &lavc_param_mv0, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_MV0},
++    {"cbp", &lavc_param_cbp, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"mv0", &lavc_param_mv0, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"nr", &lavc_param_noise_reduction, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000000},
+-    {"qprd", &lavc_param_qp_rd, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_QP_RD},
++    {"qprd", &lavc_param_qp_rd, TCCONF_TYPE_FLAG, 0, 0, 1},
+     {"threads", &lavc_param_threads, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 1, 16},
+-    {"ss", &lavc_param_ss, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_H263P_SLICE_STRUCT},
+-    {"svcd_sof", &lavc_param_scan_offset, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_SVCD_SCAN_OFFSET},
+-    {"alt", &lavc_param_alt, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_ALT_SCAN},
+-    {"ilme", &lavc_param_ilme, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_INTERLACED_ME},
++    {"ss", &lavc_param_ss, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"svcd_sof", &lavc_param_scan_offset, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"alt", &lavc_param_alt, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"ilme", &lavc_param_ilme, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_INTERLACED_ME},
+     {"inter_threshold", &lavc_param_inter_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000},
+     {"sc_threshold", &lavc_param_sc_threshold, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1000000, 1000000},
+     {"top", &lavc_param_top, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, -1, 1},
+-    {"gmc", &lavc_param_gmc, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_GMC},
+-    {"trunc", &lavc_param_trunc, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_TRUNCATED},
+-    {"closedgop", &lavc_param_closedgop, TCCONF_TYPE_FLAG, 0, 0, CODEC_FLAG_CLOSED_GOP},
++    {"gmc", &lavc_param_gmc, TCCONF_TYPE_FLAG, 0, 0, 1},
++    {"trunc", &lavc_param_trunc, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_TRUNCATED},
++    {"closedgop", &lavc_param_closedgop, TCCONF_TYPE_FLAG, 0, 0, AV_CODEC_FLAG_CLOSED_GOP},
+     {"intra_dc_precision", &lavc_param_intra_dc_precision, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 16},
+     {"skip_top", &lavc_param_skip_top, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000},
+     {"skip_bottom", &lavc_param_skip_bottom, TCCONF_TYPE_INT, TCCONF_FLAG_RANGE, 0, 1000},
+diff -Naur a/filter/filter_pp.c b/filter/filter_pp.c
+--- a/filter/filter_pp.c	2011-11-19 16:50:27.000000000 +0000
++++ b/filter/filter_pp.c	2018-05-14 01:58:58.347408780 +0100
+@@ -38,8 +38,8 @@
+ 
+ /* FIXME: these use the filter ID as an index--the ID can grow
+  * arbitrarily large, so this needs to be fixed */
+-static pp_mode_t *mode[100];
+-static pp_context_t *context[100];
++static pp_mode *mode[100];
++static pp_context *context[100];
+ static int width[100], height[100];
+ static int pre[100];
+ 
+diff -Naur a/filter/filter_resample.c b/filter/filter_resample.c
+--- a/filter/filter_resample.c	2011-11-19 16:50:27.000000000 +0000
++++ b/filter/filter_resample.c	2018-05-14 01:58:58.347408780 +0100
+@@ -37,6 +37,7 @@
+ #include "libtc/optstr.h"
+ #include "libtc/tcavcodec.h"
+ #include "libtc/tcmodule-plugin.h"
++#include <libavresample/avresample.h>
+ 
+ 
+ typedef struct {
+@@ -45,7 +46,7 @@
+ 
+     int bytes_per_sample;
+ 
+-    ReSampleContext *resample_ctx;
++    AVAudioResampleContext *resample_ctx;
+ } ResamplePrivateData;
+ 
+ static const char resample_help[] = ""
+diff -Naur a/filter/subtitler/load_font.c b/filter/subtitler/load_font.c
+--- a/filter/subtitler/load_font.c	2011-11-19 16:50:27.000000000 +0000
++++ b/filter/subtitler/load_font.c	2018-05-14 01:58:58.347408780 +0100
+@@ -47,8 +47,8 @@
+ // FreeType specific includes
+ #include <ft2build.h>
+ #include FT_FREETYPE_H
++#include FT_GLYPH_H
+ 
+-#include <freetype/ftglyph.h>
+ 
+ /**
+  * @file bswap.h
+diff -Naur a/import/decode_lavc.c b/import/decode_lavc.c
+--- a/import/decode_lavc.c	2011-11-19 16:50:27.000000000 +0000
++++ b/import/decode_lavc.c	2018-05-14 01:58:58.347408780 +0100
+@@ -57,6 +57,7 @@
+ };
+ 
+ // fourCC to ID mapping taken from MPlayer's codecs.conf
++#if LIBAVCODEC_VERSION_MAJOR < 55
+ static struct ffmpeg_codec ffmpeg_codecs[] = {
+   {CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
+     {"MP41", "DIV1", ""}},
+@@ -91,6 +92,42 @@
+   {CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG2, "mpeg2video",
+     {"MPG2", ""}},
+   {0, TC_CODEC_UNKNOWN, NULL, {""}}};
++#else
++static struct ffmpeg_codec ffmpeg_codecs[] = {
++  {AV_CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
++    {"MP41", "DIV1", ""}},
++  {AV_CODEC_ID_MSMPEG4V2, TC_CODEC_MP42, "mp42",
++    {"MP42", "DIV2", ""}},
++  {AV_CODEC_ID_MSMPEG4V3, TC_CODEC_DIVX3, "msmpeg4",
++    {"DIV3", "DIV5", "AP41", "MPG3", "MP43", ""}},
++  {AV_CODEC_ID_MPEG4, TC_CODEC_DIVX4, "mpeg4",
++    {"DIVX", "XVID", "MP4S", "M4S2", "MP4V", "UMP4", "DX50", ""}},
++  {AV_CODEC_ID_MJPEG, TC_CODEC_MJPEG, "mjpeg",
++    {"MJPG", "AVRN", "AVDJ", "JPEG", "MJPA", "JFIF", ""}},
++  {AV_CODEC_ID_MPEG1VIDEO, TC_CODEC_MPEG1VIDEO, "mpeg1video",
++    {"MPG1", ""}},
++  {AV_CODEC_ID_DVVIDEO, TC_CODEC_DV, "dvvideo",
++    {"DVSD", ""}},
++  {AV_CODEC_ID_WMV1, TC_CODEC_WMV1, "wmv1",
++    {"WMV1", ""}},
++  {AV_CODEC_ID_WMV2, TC_CODEC_WMV2, "wmv2",
++    {"WMV2", ""}},
++  {AV_CODEC_ID_HUFFYUV, TC_CODEC_HUFFYUV, "hfyu",
++    {"HFYU", ""}},
++  {AV_CODEC_ID_H263I, TC_CODEC_H263I, "h263i",
++    {"I263", ""}},
++  {AV_CODEC_ID_H263P, TC_CODEC_H263P, "h263p",
++    {"H263", "U263", "VIV1", ""}},
++  {AV_CODEC_ID_RV10, TC_CODEC_RV10, "rv10",
++    {"RV10", "RV13", ""}},
++  {AV_CODEC_ID_SVQ1, TC_CODEC_SVQ1, "svq1",
++    {"SVQ1", ""}},
++  {AV_CODEC_ID_SVQ3, TC_CODEC_SVQ3, "svq3",
++    {"SVQ3", ""}},
++  {AV_CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG2, "mpeg2video",
++    {"MPG2", ""}},
++  {0, TC_CODEC_UNKNOWN, NULL, {""}}};
++#endif
+ 
+ 
+ static struct ffmpeg_codec *find_ffmpeg_codec_id(unsigned int transcode_id)
+@@ -170,7 +207,7 @@
+ 
+   // Set these to the expected values so that ffmpeg's decoder can
+   // properly detect interlaced input.
+-  lavc_dec_context = avcodec_alloc_context();
++  lavc_dec_context = avcodec_alloc_context3(NULL);
+   if (lavc_dec_context == NULL) {
+       tc_log_error(__FILE__, "Could not allocate enough memory.");
+       goto decoder_error;
+@@ -181,12 +218,12 @@
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+   lavc_dec_context->error_resilience  = 2;
+ #else
+-  lavc_dec_context->error_recognition = 2;
++  lavc_dec_context->err_recognition = 2;
+ #endif
+   lavc_dec_context->error_concealment = 3;
+   lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT;
+ 
+-  if (avcodec_open(lavc_dec_context, lavc_dec_codec) < 0) {
++  if (avcodec_open2(lavc_dec_context, lavc_dec_codec, NULL) < 0) {
+       tc_log_error(__FILE__, "Could not initialize the '%s' codec.",
+ 		   codec->name);
+       goto decoder_error;
+@@ -290,8 +327,8 @@
+ 
+       // Convert avcodec image to the requested YUV or RGB format
+       switch (lavc_dec_context->pix_fmt) {
+-	case PIX_FMT_YUVJ420P:
+-	case PIX_FMT_YUV420P:
++	case AV_PIX_FMT_YUVJ420P:
++	case AV_PIX_FMT_YUV420P:
+ 	    // Remove "dead space" at right edge of planes, if any
+ 	    if (picture.linesize[0] != lavc_dec_context->width) {
+ 		int y;
+@@ -315,7 +352,7 @@
+ 			  pix_fmt==TC_CODEC_YUV420P ? IMG_YUV420P : IMG_RGB_DEFAULT,
+ 			  lavc_dec_context->width, lavc_dec_context->height);
+ 	    break;
+-	case PIX_FMT_YUV411P:
++	case AV_PIX_FMT_YUV411P:
+ 	    if (picture.linesize[0] != lavc_dec_context->width) {
+ 		int y;
+ 		for (y = 0; y < lavc_dec_context->height; y++) {
+@@ -334,8 +371,8 @@
+ 			  pix_fmt==TC_CODEC_YUV420P ? IMG_YUV420P : IMG_RGB_DEFAULT,
+ 			  lavc_dec_context->width, lavc_dec_context->height);
+ 	    break;
+-	case PIX_FMT_YUVJ422P:
+-	case PIX_FMT_YUV422P:
++	case AV_PIX_FMT_YUVJ422P:
++	case AV_PIX_FMT_YUV422P:
+ 	    if (picture.linesize[0] != lavc_dec_context->width) {
+ 		int y;
+ 		for (y = 0; y < lavc_dec_context->height; y++) {
+@@ -354,8 +391,8 @@
+ 			  pix_fmt==TC_CODEC_YUV420P ? IMG_YUV420P : IMG_RGB_DEFAULT,
+ 			  lavc_dec_context->width, lavc_dec_context->height);
+ 	    break;
+-	case PIX_FMT_YUVJ444P:
+-	case PIX_FMT_YUV444P:
++	case AV_PIX_FMT_YUVJ444P:
++	case AV_PIX_FMT_YUV444P:
+ 	    if (picture.linesize[0] != lavc_dec_context->width) {
+ 		int y;
+ 		for (y = 0; y < lavc_dec_context->height; y++) {
+diff -Naur a/import/import_ffmpeg.c b/import/import_ffmpeg.c
+--- a/import/import_ffmpeg.c	2011-11-19 16:50:27.000000000 +0000
++++ b/import/import_ffmpeg.c	2018-05-14 01:58:58.347408780 +0100
+@@ -58,6 +58,7 @@
+ };
+ 
+ // fourCC to ID mapping taken from MPlayer's codecs.conf
++#if LIBAVCODEC_VERSION_MAJOR < 55
+ static struct ffmpeg_codec ffmpeg_codecs[] = {
+   {CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
+     {"MP41", "DIV1", ""}},
+@@ -106,6 +107,56 @@
+   {CODEC_ID_RAWVIDEO, TC_CODEC_YUV422P, "raw",
+     {"Y42B", ""}},
+   {0, TC_CODEC_UNKNOWN, NULL, {""}}};
++#else
++static struct ffmpeg_codec ffmpeg_codecs[] = {
++  {AV_CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
++    {"MP41", "DIV1", ""}},
++  {AV_CODEC_ID_MSMPEG4V2, TC_CODEC_MP42, "mp42",
++    {"MP42", "DIV2", ""}},
++  {AV_CODEC_ID_MSMPEG4V3, TC_CODEC_DIVX3, "msmpeg4",
++    {"DIV3", "DIV5", "AP41", "MPG3", "MP43", ""}},
++  {AV_CODEC_ID_MPEG4, TC_CODEC_DIVX4, "mpeg4",
++    {"DIVX", "XVID", "MP4S", "M4S2", "MP4V", "UMP4", "DX50", ""}},
++  {AV_CODEC_ID_MJPEG, TC_CODEC_MJPEG, "mjpeg",
++    {"MJPG", "AVRN", "AVDJ", "JPEG", "MJPA", "JFIF", ""}},
++  {AV_CODEC_ID_MPEG1VIDEO, TC_CODEC_MPG1, "mpeg1video",
++    {"MPG1", ""}},
++  {AV_CODEC_ID_DVVIDEO, TC_CODEC_DV, "dvvideo",
++    {"DVSD", ""}},
++  {AV_CODEC_ID_WMV1, TC_CODEC_WMV1, "wmv1",
++    {"WMV1", ""}},
++  {AV_CODEC_ID_WMV2, TC_CODEC_WMV2, "wmv2",
++    {"WMV2", ""}},
++  {AV_CODEC_ID_HUFFYUV, TC_CODEC_HUFFYUV, "hfyu",
++    {"HFYU", ""}},
++  {AV_CODEC_ID_H263I, TC_CODEC_H263I, "h263i",
++    {"I263", ""}},
++  {AV_CODEC_ID_H263P, TC_CODEC_H263P, "h263p",
++    {"H263", "U263", "VIV1", ""}},
++  {AV_CODEC_ID_H264, TC_CODEC_H264, "h264",
++    {"H264", "h264", "X264", "x264", "avc1", ""}},
++  {AV_CODEC_ID_RV10, TC_CODEC_RV10, "rv10",
++    {"RV10", "RV13", ""}},
++  {AV_CODEC_ID_SVQ1, TC_CODEC_SVQ1, "svq1",
++    {"SVQ1", ""}},
++  {AV_CODEC_ID_SVQ3, TC_CODEC_SVQ3, "svq3",
++    {"SVQ3", ""}},
++  {AV_CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG2, "mpeg2video",
++    {"MPG2", ""}},
++  {AV_CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG, "mpeg2video",
++    {"MPG2", ""}},
++  {AV_CODEC_ID_ASV1, TC_CODEC_ASV1, "asv1",
++    {"ASV1", ""}},
++  {AV_CODEC_ID_ASV2, TC_CODEC_ASV2, "asv2",
++    {"ASV2", ""}},
++  {AV_CODEC_ID_FFV1, TC_CODEC_FFV1, "ffv1",
++    {"FFV1", ""}},
++  {AV_CODEC_ID_RAWVIDEO, TC_CODEC_YUV420P, "raw",
++    {"I420", "IYUV", ""}},
++  {AV_CODEC_ID_RAWVIDEO, TC_CODEC_YUV422P, "raw",
++    {"Y42B", ""}},
++  {0, TC_CODEC_UNKNOWN, NULL, {""}}};
++#endif
+ 
+ #define BUFFER_SIZE SIZE_RGB_FRAME
+ 
+@@ -302,7 +353,7 @@
+ 
+     // Set these to the expected values so that ffmpeg's decoder can
+     // properly detect interlaced input.
+-    lavc_dec_context = avcodec_alloc_context();
++    lavc_dec_context = avcodec_alloc_context3(lavc_dec_codec);
+     if (lavc_dec_context == NULL) {
+       tc_log_error(MOD_NAME, "Could not allocate enough memory.");
+       return TC_IMPORT_ERROR;
+@@ -310,11 +361,11 @@
+     lavc_dec_context->width  = x_dim;
+     lavc_dec_context->height = y_dim;
+ 
+-    if (vob->decolor) lavc_dec_context->flags |= CODEC_FLAG_GRAY;
++    if (vob->decolor) lavc_dec_context->flags |= AV_CODEC_FLAG_GRAY;
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+     lavc_dec_context->error_resilience  = 2;
+ #else
+-    lavc_dec_context->error_recognition = 2;
++    lavc_dec_context->err_recognition = 2;
+ #endif
+     lavc_dec_context->error_concealment = 3;
+     lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT;
+@@ -324,6 +375,7 @@
+     // XXX: some codecs need extra data
+     switch (codec->id)
+     {
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       case CODEC_ID_MJPEG: extra_data_size  = 28; break;
+       case CODEC_ID_LJPEG: extra_data_size  = 28; break;
+       case CODEC_ID_HUFFYUV: extra_data_size = 1000; break;
+@@ -331,6 +383,15 @@
+       case CODEC_ID_ASV2: extra_data_size = 8; break;
+       case CODEC_ID_WMV1: extra_data_size = 4; break;
+       case CODEC_ID_WMV2: extra_data_size = 4; break;
++#else
++      case AV_CODEC_ID_MJPEG: extra_data_size  = 28; break;
++      case AV_CODEC_ID_LJPEG: extra_data_size  = 28; break;
++      case AV_CODEC_ID_HUFFYUV: extra_data_size = 1000; break;
++      case AV_CODEC_ID_ASV1: extra_data_size = 8; break;
++      case AV_CODEC_ID_ASV2: extra_data_size = 8; break;
++      case AV_CODEC_ID_WMV1: extra_data_size = 4; break;
++      case AV_CODEC_ID_WMV2: extra_data_size = 4; break;
++#endif
+       default: extra_data_size = 0; break;
+     }
+ 
+@@ -344,7 +405,7 @@
+     }
+ 
+     TC_LOCK_LIBAVCODEC;
+-    ret = avcodec_open(lavc_dec_context, lavc_dec_codec);
++    ret = avcodec_open2(lavc_dec_context, lavc_dec_codec, NULL);
+     TC_UNLOCK_LIBAVCODEC;
+     if (ret < 0) {
+       tc_log_warn(MOD_NAME, "Could not initialize the '%s' codec.",
+@@ -360,7 +421,11 @@
+         frame_size = x_dim*y_dim + 2*UV_PLANE_SIZE(IMG_YUV_DEFAULT,x_dim,y_dim);
+ 
+ 	// we adapt the color space
++#if LIBAVCODEC_VERSION_MAJOR < 55
+         if(codec->id == CODEC_ID_MJPEG) {
++#else
++        if(codec->id == AV_CODEC_ID_MJPEG) {
++#endif
+ 	  enable_levels_filter();
+         }
+         break;
+@@ -434,7 +499,11 @@
+       }
+ 
+       // we adapt the color space
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       if(codec->id == CODEC_ID_MJPEG) {
++#else
++      if(codec->id == AV_CODEC_ID_MJPEG) {
++#endif
+         enable_levels_filter();
+       }
+ 
+@@ -504,13 +573,25 @@
+       int bkey = 0;
+ 
+       // check for keyframes
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       if (codec->id == CODEC_ID_MSMPEG4V3) {
++#else
++      if (codec->id == AV_CODEC_ID_MSMPEG4V3) {
++#endif
+ 	if (divx3_is_key(buffer)) bkey = 1;
+       }
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       else if (codec->id == CODEC_ID_MPEG4) {
++#else
++      else if (codec->id == AV_CODEC_ID_MPEG4) {
++#endif
+ 	if (mpeg4_is_key(buffer, bytes_read)) bkey = 1;
+       }
++#if LIBAVCODEC_VERSION_MAJOR < 55
+       else if (codec->id == CODEC_ID_MJPEG) {
++#else
++      else if (codec->id == AV_CODEC_ID_MJPEG) {
++#endif
+ 	bkey = 1;
+       }
+ 
+@@ -580,8 +661,8 @@
+ 
+     // Convert avcodec image to our internal YUV or RGB format
+     switch (lavc_dec_context->pix_fmt) {
+-      case PIX_FMT_YUVJ420P:
+-      case PIX_FMT_YUV420P:
++      case AV_PIX_FMT_YUVJ420P:
++      case AV_PIX_FMT_YUV420P:
+         src_fmt = IMG_YUV420P;
+         YUV_INIT_PLANES(src_planes, frame, src_fmt,
+                         lavc_dec_context->width, lavc_dec_context->height);
+@@ -612,7 +693,7 @@
+ 	}
+         break;
+ 
+-      case PIX_FMT_YUV411P:
++      case AV_PIX_FMT_YUV411P:
+         src_fmt = IMG_YUV411P;
+         YUV_INIT_PLANES(src_planes, frame, src_fmt,
+                         lavc_dec_context->width, lavc_dec_context->height);
+@@ -640,8 +721,8 @@
+         }
+         break;
+ 
+-      case PIX_FMT_YUVJ422P:
+-      case PIX_FMT_YUV422P:
++      case AV_PIX_FMT_YUVJ422P:
++      case AV_PIX_FMT_YUV422P:
+         src_fmt = IMG_YUV422P;
+         YUV_INIT_PLANES(src_planes, frame, src_fmt,
+                         lavc_dec_context->width, lavc_dec_context->height);
+@@ -669,8 +750,8 @@
+         }
+ 	break;
+ 
+-      case PIX_FMT_YUVJ444P:
+-      case PIX_FMT_YUV444P:
++      case AV_PIX_FMT_YUVJ444P:
++      case AV_PIX_FMT_YUV444P:
+         src_fmt = IMG_YUV444P;
+         YUV_INIT_PLANES(src_planes, frame, src_fmt,
+                         lavc_dec_context->width, lavc_dec_context->height);
+diff -Naur a/import/probe_ffmpeg.c b/import/probe_ffmpeg.c
+--- a/import/probe_ffmpeg.c	2011-11-19 16:50:27.000000000 +0000
++++ b/import/probe_ffmpeg.c	2018-05-14 01:58:58.347408780 +0100
+@@ -51,8 +51,8 @@
+             info->bitrate = st->codec->bit_rate / 1000;
+             info->width = st->codec->width;
+             info->height = st->codec->height;
+-            if (st->r_frame_rate.num > 0 && st->r_frame_rate.den > 0) {
+-                info->fps = av_q2d(st->r_frame_rate);
++            if (st->avg_frame_rate.num > 0 && st->avg_frame_rate.den > 0) {
++                info->fps = av_q2d(st->avg_frame_rate);
+             } else {
+                 /* watch out here */
+                 info->fps = 1.0/av_q2d(st->codec->time_base);
+@@ -99,8 +99,8 @@
+ 
+     TC_INIT_LIBAVCODEC;
+ 
+-    ret = av_open_input_file(&lavf_dmx_context, ipipe->name,
+-                             NULL, 0, NULL);
++    ret = avformat_open_input(&lavf_dmx_context, ipipe->name,
++                             NULL, NULL);
+     if (ret != 0) {
+         tc_log_error(__FILE__, "unable to open '%s'"
+                                " (libavformat failure)",
+@@ -109,7 +109,7 @@
+         return;
+     }
+ 
+-    ret = av_find_stream_info(lavf_dmx_context);
++    ret = avformat_find_stream_info(lavf_dmx_context, NULL);
+     if (ret < 0) {
+         tc_log_error(__FILE__, "unable to fetch informations from '%s'"
+                                " (libavformat failure)",
+@@ -120,7 +120,11 @@
+ 
+     translate_info(lavf_dmx_context, ipipe->probe_info);
+ 
++#if LIBAVFORMAT_VERSION_INT > AV_VERSION_INT(53,25,0)
++    avformat_close_input(&lavf_dmx_context);
++#else
+     av_close_input_file(lavf_dmx_context);
++#endif
+     return;
+ }
+ 
+diff -Naur a/libtc/tcavcodec.h b/libtc/tcavcodec.h
+--- a/libtc/tcavcodec.h	2011-11-19 16:50:27.000000000 +0000
++++ b/libtc/tcavcodec.h	2018-05-14 01:58:58.347408780 +0100
+@@ -53,7 +53,6 @@
+ 
+ #define TC_INIT_LIBAVCODEC do { \
+     TC_LOCK_LIBAVCODEC; \
+-    avcodec_init(); \
+     avcodec_register_all(); \
+     TC_UNLOCK_LIBAVCODEC; \
+ } while (0)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index abfcf6d73d..e57f503d13 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -170,6 +170,107 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public transcode
+  (package
+    (name "transcode")
+    (version "1.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sources.archlinux.org/other/community/"
+                       name "/" name "-" version ".tar.bz2"))
+       (sha256
+        (base32 "14ha9xjsjrj131f35jd56z5v1jb4rbsrj1nril5shqnxw3c74khy"))
+       (patches
+        (search-patches "transcode-ffmpeg.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-libv4l2"
+        "--enable-libmpeg2"
+        "--enable-libmpeg2convert"
+        "--enable-v4l"
+        ;; XXX: Not available.
+        ;;"--enable-bktr"
+        ;;"--enable-sunau"
+        "--enable-oss"
+        "--enable-alsa"
+        ;; XXX: Not available.
+        ;;"--enable-libpostproc"
+        "--enable-freetype2"
+        "--enable-xvid"
+        "--enable-x264"
+        "--enable-ogg"
+        "--enable-vorbis"
+        "--enable-theora"
+        ;; XXX: Not available.
+        ;;"--enable-pvm3"
+        "--enable-libdv"
+        "--enable-libquicktime"
+        "--enable-lzo"
+        "--enable-a52"
+        "--enable-faac"
+        "--enable-libxml2"
+        ;; XXX: Not available.
+        ;;"--enable-ibp"
+        ;;"--enable-mjpegtools"
+        "--enable-sdl"
+        "--enable-imagemagick"
+        ;; XXX: Not available.
+        ;;"--enable-libjpegmmx"
+        "--enable-libjpeg")))
+        ;; XXX: Not available.
+        ;;"--enable-bsdav"
+        ;;"--enable-pv3"
+        ;;"--enable-nuv"
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("iconv" ,libiconv)
+       ("libtool" ,libtool)
+       ("libxml2" ,libxml2)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("faac" ,faac)
+       ("ffmpeg" ,ffmpeg)
+       ("freetype" ,freetype)
+       ("imagemagick" ,imagemagick)
+       ("lame" ,lame)
+       ("liba52" ,liba52)
+       ("libdv" ,libdv)
+       ("libdvdread" ,libdvdread)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libmpeg2" ,libmpeg2)
+       ("libogg" ,libogg)
+       ("libquicktime" ,libquicktime)
+       ("libtheora" ,libtheora)
+       ("libvorbis" ,libvorbis)
+       ("lzo" ,lzo)
+       ("mjepgtools" ,mjpegtools)
+       ("sdl" ,sdl)
+       ("v4l-utils" ,v4l-utils)
+       ("x11" ,libx11)
+       ("x264" ,libx264)
+       ("xaw" ,libxaw)
+       ("xext" ,libxext)
+       ("xpm" ,libxpm)
+       ("xv" ,libxv)
+       ("xvid" ,xvid)
+       ("zlib" ,zlib)))
+    (synopsis "Audio/Video Transcoder")
+    (description "Transcode is a fast, versatile and command-line based
+audio/video everything to everything converter primarily focussed on producing
+AVI video files with MP3 audio, but also including a program to read all the
+video and audio streams from a DVD.")
+    (home-page
+     "http://linuxfromscratch.org/blfs/view/svn/multimedia/transcode.html")
+    (license license:gpl2+)))
+
 (define-public svt-hevc
   (package
     (name "svt-hevc")
-- 
2.26.2


[-- Attachment #1.1.31: 0039-gnu-Add-vo-aacenc.patch --]
[-- Type: text/x-patch, Size: 1364 bytes --]

From 330d27978badff5c3a88e15cd8068e20d0a26b5c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 11:23:48 -0400
Subject: [PATCH 39/51] gnu: Add vo-aacenc.

* gnu/packages/audio.scm (vo-aacenc): New variable.
---
 gnu/packages/audio.scm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 0d67508c7f..0d4fe01eb9 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,6 +127,25 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public vo-aacenc
+  (package
+    (name "vo-aacenc")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/opencore-amr/files/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dhghm3c8pqrriwwyj5x9i0yf52fmdfijbgqqkvqvwarldvp86p5"))))
+    (build-system gnu-build-system)
+    (synopsis "VisualOn AAC Encoder")
+    (description "VO-AACENC is the VisualOn implementation of Advanced Audio
+Coding (AAC) encoder.")
+    (home-page "https://sourceforge.net/projects/opencore-amr/")
+    (license license:asl2.0)))
+
 (define-public tinyalsa
   (package
     (name "tinyalsa")
-- 
2.26.2


[-- Attachment #1.1.32: 0040-gnu-Add-webrtc-audio-processing.patch --]
[-- Type: text/x-patch, Size: 1477 bytes --]

From e258e023bf246ea961b6be46bff7808b5f029883 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 11:25:10 -0400
Subject: [PATCH 40/51] gnu: Add webrtc-audio-processing.

* gnu/packages/audio.scm (webrtc-audio-processing): New variable.
---
 gnu/packages/audio.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 0d4fe01eb9..f99972e038 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,6 +127,26 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public webrtc-audio-processing
+  (package
+    (name "webrtc-audio-processing")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://freedesktop.org/software/pulseaudio/"
+                       name "/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
+    (build-system gnu-build-system)
+    (synopsis "WebRTC's Audio Processing Library")
+    (description "WebRTC-Audio-Processing library based on Google's
+implementation of WebRTC.")
+    (home-page
+     "https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/")
+    (license (license:non-copyleft "file:///COPYING"))))
+
 (define-public vo-aacenc
   (package
     (name "vo-aacenc")
-- 
2.26.2


[-- Attachment #1.1.33: 0041-gnu-Add-wildmidi.patch --]
[-- Type: text/x-patch, Size: 1824 bytes --]

From b5a86585954259fbf20722079c7a5fa384b5b2d4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 11:49:36 -0400
Subject: [PATCH 41/51] gnu: Add wildmidi.

* gnu/packages/audio.scm (wildmidi): New variable.
---
 gnu/packages/audio.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index f99972e038..91d85082db 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,6 +127,42 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public wildmidi
+  (package
+    (name "wildmidi")
+    (version "0.4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Mindwerks/wildmidi.git")
+         (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01f4a9c5xlap5a4pkfnlgkzk5pjlk43zkq6fnw615ghya04g6hrl"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; No target
+       #:configure-flags
+       (list
+        "-DWANT_ALSA=ON"
+        "-DWANT_OSS=ON"
+        "-DWANT_OPENAL=ON")))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("openal" ,openal)))
+    (synopsis "Software Synthesizer")
+    (description "WildMIDI is a simple software midi player which has a core
+softsynth library that can be use with other applications.")
+    (home-page "https://www.mindwerks.net/projects/wildmidi/")
+    (license
+     (list
+      ;; Library.
+      license:lgpl3+
+      ;; Player.
+      license:gpl3+))))
+
 (define-public webrtc-audio-processing
   (package
     (name "webrtc-audio-processing")
-- 
2.26.2


[-- Attachment #1.1.34: 0042-gnu-Add-zxing-cpp.patch --]
[-- Type: text/x-patch, Size: 1531 bytes --]

From 3004121e24d5732caa93e6260cc5605ea8deda40 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 12:06:23 -0400
Subject: [PATCH 42/51] gnu: Add zxing-cpp.

* gnu/packages/aidc.scm (zxing-cpp): New variable.
---
 gnu/packages/aidc.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 5648f5a9ec..4921ae03a1 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -37,8 +37,30 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages video)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu))
 
+(define-public zxing-cpp
+  (package
+    (name "zxing-cpp")
+    (version "1.0.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nu-book/zxing-cpp.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "011sq8wcjfxbnd8sj6bf2fgkamlp8gj6q835g61c952npvwsnl71"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f))                    ; No target
+    (synopsis "C++ port of ZXing")
+    (description "ZXing-CPP is a barcode scanning library.")
+    (home-page "https://github.com/nu-book/zxing-cpp")
+    (license license:asl2.0)))
 
 (define-public barcode
   (package
-- 
2.26.2


[-- Attachment #1.1.35: 0043-gnu-Add-iqa.patch --]
[-- Type: text/x-patch, Size: 1963 bytes --]

From f805f26f03c812658e0ed0606b47a78208d5856f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 12:08:33 -0400
Subject: [PATCH 43/51] gnu: Add iqa.

* gnu/packages/image.scm (iqa): New variable.
---
 gnu/packages/image.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 393ee7e08b..5d01f04383 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -93,6 +93,38 @@
   #:use-module (guix deprecation)
   #:use-module (srfi srfi-1))
 
+(define-public iqa
+  (package
+    (name "iqa")
+    (version "1.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/iqa/files/"
+                       "1.1.2%20Release/iqa_1.1.2_src.tar.gz/download"))
+       (sha256
+        (base32 "00mgwy031ammab6bwmd1whhvqv3fxy1cs1igabq0n3ag12zhjs77"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib")))
+               (install-file "build/debug/libiqa.a" lib)
+               #t))))))
+    (synopsis "Image Quality Assessment")
+    (description "IQA is a C library for objectively measuring image/video
+quality.  It implements many popular algorithms, such as MS-SSIM, MS-SSIM*,
+SIMM, MSE, and PSNR.  It is designed to be fast, accurate, and reliable.  All
+code is Valgrind-clean and unit tested.")
+    (home-page "https://sourceforge.net/projects/iqa/")
+    (license license:bsd-4)))
+
 (define-public libpng
   (package
    (name "libpng")
-- 
2.26.2


[-- Attachment #1.1.36: 0044-gnu-Add-rtmpdump.patch --]
[-- Type: text/x-patch, Size: 1861 bytes --]

From e9701a31ff8213ae2b2caba0f1756bfaf01888a3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 12:10:10 -0400
Subject: [PATCH 44/51] gnu: Add rtmpdump.

* gnu/packages/networking.scm (rtmpdump): New variable.
---
 gnu/packages/networking.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 66798bd2d2..c4357b093f 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -135,6 +135,41 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public rtmpdump
+  (package
+    (name "rtmpdump")
+    (version "2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://rtmpdump.mplayerhq.hu/download/"
+                       name "-" version ".tgz"))
+       (sha256
+        (base32 "0b2b49a57kpz9gi8dx1x3cs8b0gjx8x0c89x0q96kkl2knlvff7g"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:make-flags
+       (list
+        (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (inputs
+     `(("openssl" ,openssl-1.0)
+       ("zlib" ,zlib)))
+    (synopsis "Tools and library for handling RTMP streams")
+    (description "RTMPdump is a toolkit for RTMP streams.  All forms of RTMP are
+supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://.")
+    (home-page "https://rtmpdump.mplayerhq.hu/")
+    (license
+     (list
+      ;; Library.
+      license:lgpl2.1+
+      ;; Others.
+      license:gpl2+))))
+
 (define-public srt
   (package
     (name "srt")
-- 
2.26.2


[-- Attachment #1.1.37: 0045-gnu-Add-libnice.patch --]
[-- Type: text/x-patch, Size: 3299 bytes --]

From 593388c5a11b993699b63993db99d138cbca35b5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 12:12:59 -0400
Subject: [PATCH 45/51] gnu: Add libnice.

* gnu/packages/networking.scm (libnice): New variable.
---
 gnu/packages/networking.scm | 56 +++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index c4357b093f..46911c50e0 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -95,6 +95,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libevent)
@@ -106,6 +107,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -135,6 +137,60 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+(define-public libnice
+  (package
+    (name "libnice")
+    (version "0.1.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://libnice.freedesktop.org/releases/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09lm0rxwvbr53svi3inaharlq96iwbs3s6957z69qp4bqpga0lhr"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dgtk_doc=enabled")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'move-docs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
+               (mkdir-p (string-append doc "/share"))
+               (rename-file
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
+               #t))))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("libnsl" ,libnsl)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gnutls" ,gnutls)))
+    (synopsis "GLib ICE implementation")
+    (description "LibNice is a library that implements the Interactive
+Connectivity Establishment (ICE) standard (RFC 5245 & RFC 8445).  It provides a
+GLib-based library, libnice, as well as GStreamer elements to use it.")
+    (home-page "https://libnice.freedesktop.org/")
+    (license
+     ;; This project is dual-licensed.
+     (list
+      license:lgpl2.1+
+      license:mpl1.1))))
+
 (define-public rtmpdump
   (package
     (name "rtmpdump")
-- 
2.26.2


[-- Attachment #1.1.38: 0046-gnu-Add-openni2.patch --]
[-- Type: text/x-patch, Size: 2550 bytes --]

From 160fa94f7ffe1c54915106506b366251f4fcd62c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 12:14:25 -0400
Subject: [PATCH 46/51] gnu: Add openni2.

* gnu/packages/gstreamer.scm (openni2): New variable.
---
 gnu/packages/gstreamer.scm | 40 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 57593c860e..05b0d9042f 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -54,9 +54,11 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages graphics)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages iso-codes)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
@@ -84,6 +86,44 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
+(define-public openni2
+  (package
+    (name "openni2")
+    (version "2.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/occipital/OpenNI2.git")
+         (commit (string-append "v" version "-debian"))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0mfnyzpq53wnzgjfx91xcbx0nrl0lp1vrk1rk20a3gb3kshsr675"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (native-inputs
+     `(("graphviz" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("freeglut3" ,freeglut)
+       ("libudev" ,eudev)
+       ("libusb" ,libusb)
+       ("openjdk" ,openjdk14)
+       ("openjdk:jdk" ,openjdk14 "jdk")))
+    (synopsis "Framework for sensor-based 'Natural Interaction")
+    (description "OpenNI is a framework for getting data to support
+'Natural Interaction', i.e. skeleton tracking, gesture tracking, and similar
+ways of getting data from humans.  It provides the interface for physical devices
+and for middleware components.")
+    (home-page "https://structure.io/openni")
+    (license license:asl2.0)))
+
 (define-public libdc1394
   (package
     (name "libdc1394")
-- 
2.26.2


[-- Attachment #1.1.39: 0047-gnu-Add-rust-imgref.patch --]
[-- Type: text/x-patch, Size: 1483 bytes --]

From e812fd130dabda501d5508b2ba781a4e787f8c66 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 3 Jul 2020 13:02:22 -0400
Subject: [PATCH 47/51] gnu: Add rust-imgref.

* gnu/packages/crates-io.scm (rust-imgref): New variable.
---
 gnu/packages/crates-io.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a2d82c466e..08f6c6b249 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -10319,6 +10319,27 @@ for the most common image formats.")
         ("rust-num-complex" ,rust-num-complex-0.2)
         ("rust-quickcheck" ,rust-quickcheck-0.6))))))
 
+(define-public rust-imgref
+  (package
+    (name "rust-imgref")
+    (version "1.6.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "imgref" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1f2m9lq769248bwbyzda714a8xcgk5bdpdsi20xcnavikiw449g8"))))
+    (build-system cargo-build-system)
+    (home-page "https://lib.rs/crates/imgref")
+    (synopsis "Image processing library")
+    (description
+     "A trivial struct for interchange of 2d-dimensional pixel buffers
+with width, height & stride.")
+    (license license:cc0)))
+
 (define-public rust-indexmap-1.3
   (package
     (name "rust-indexmap")
-- 
2.26.2


[-- Attachment #1.1.40: 0048-gnu-Add-opensles.patch --]
[-- Type: text/x-patch, Size: 3333 bytes --]

From 05e54fa894e5998b65ccce87467ca160a1ec5731 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 03:11:51 -0400
Subject: [PATCH 48/51] gnu: Add opensles.

* gnu/packages/audio.scm (opensles): New variable.
---
 gnu/packages/audio.scm | 57 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 91d85082db..3fa5e381b2 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,6 +127,63 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public opensles
+  (package
+    (name "opensles")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git")
+         (commit "ea5104b")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0j5bm7h3ahz66f23i9abwc0y10agfkpksnj6y078x2nichq66h4f"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'clean
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/etc"))
+               (mkdir-p (string-append out "/include"))
+               (mkdir-p (string-append out "/share"))
+               (rename-file
+                (string-append out "/api/1.1/OpenSLES_IID.c")
+                (string-append out "/etc/OpenSLES_IID.c"))
+               (rename-file
+                (string-append out "/api/1.1/OpenSLES.h")
+                (string-append out "/include/OpenSLES.h"))
+               (rename-file
+                (string-append out "/api/1.1/OpenSLES_Platform.h")
+                (string-append out "/include/OpenSLES_Platform.h"))
+               (rename-file
+                (string-append out "/api/1.1/README.txt")
+                (string-append out "/share/README.txt"))
+               (for-each delete-file-recursively
+                         (list
+                          (string-append out "/api")
+                          (string-append out "/specs")))
+               (for-each delete-file
+                         (list
+                          (string-append out "/CODE_OF_CONDUCT.md")
+                          (string-append out "/index.php")
+                          (string-append out "/README.md"))))
+             #t)))))
+    (synopsis "Embedded Audio Acceleration")
+    (description "OpenSLES is a royalty-free, cross-platform,
+hardware-accelerated audio API tuned for embedded systems.  It provides a
+standardized, high-performance, low-latency method to access audio
+functionality for developers of native applications on embedded mobile
+multimedia devices, enabling straightforward cross-platform deployment of
+hardware and software audio capabilities, reducing implementation effort, and
+promoting the market for advanced audio.")
+    (home-page "https://www.khronos.org/opensles/")
+    (license (license:non-copyleft "Refer individual files"))))
+
 (define-public wildmidi
   (package
     (name "wildmidi")
-- 
2.26.2


[-- Attachment #1.1.41: 0049-gnu-gst-plugins-bad-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 12269 bytes --]

From 4889d6baeadf35269edc702b9dfad7c0c8bea317 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 05:13:42 -0400
Subject: [PATCH 49/51] gnu: gst-plugins-bad: Update package definition.

* gnu/packages/gstreamer.scm (gst-plugins-base): Update package definition.
[outputs]: New output 'doc'.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['fix-build-errors]: New phase.
['patch-docbook-xml]: New phase.
['pre-check]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal, gsettings-desktop-schemas,
perl, libxml2 and xorg-server-for-tests.
[inputs]: Add bzip2, cairo, ccextractor, chromaprint, directfb, faac,
flite, glib, glib-networking, glu, gsm, iqa, lcms, libaom, libbs2b, libdc1394,
libdca, libde265, libdrm, libexif, libfdk, libgme, libmfx, libmms, libmpcdec,
libnice, libofa, libopenmpt, libtiff, libva, libx11, libxcb, libxext, libxshm, lilv,
lv2, mjpegtools, nettle, opencv, openh264, openni2, opensles, pango, rtmpdump,
sbc, sctp, spandsp, srt, svt-hevc, transcode, v4l-utils, vo-aacenc, vo-amrwbenc,
vulkan-headers, vulkan-loader, webrtc-audio-processing, wildmidi,
wpebackend-fdo, zbar and zxing-cpp.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gstreamer.scm | 179 ++++++++++++++++++++++++++++---------
 1 file changed, 137 insertions(+), 42 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 05b0d9042f..d63873ec65 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -35,6 +35,7 @@
   #:use-module (guix build-system meson)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -49,6 +50,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -57,6 +59,7 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages image-processing)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages java)
   #:use-module (gnu packages libunwind)
@@ -65,10 +68,13 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages music)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ocr)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
@@ -76,13 +82,17 @@
   #:use-module (gnu packages shells)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages speech)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
@@ -690,92 +700,177 @@ model to base your own plug-in on, here it is.")
   (package
     (name "gst-plugins-bad")
     (version "1.16.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://gstreamer.freedesktop.org/src/"
-                                  name "/" name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://gstreamer.freedesktop.org/src/"
+                       name "/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
        (modify-phases %standard-phases
-         ,@%common-gstreamer-phases
-         ,@(if (string-prefix? "arm" (or (%current-target-system)
-                                         (%current-system)))
-               ;; Disable test that fails on ARMv7.
-               ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1188
-               `((add-after 'unpack 'disable-asfmux-test
-                   (lambda _
-                     (substitute* "tests/check/meson.build"
-                       (("\\[\\['elements/asfmux\\.c'\\]\\],")
-                        ""))
-                     #t)))
-               '())
-         (add-after 'unpack 'disable-failing-test
+         (add-after 'unpack 'fix-build-errors
+           (lambda _
+             (substitute* "ext/vulkan/vkerror.c"
+               (("VK_RESULT_BEGIN_RANGE")
+                "VK_RESULT_MAX_ENUM"))
+             #t))
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* '("libs/compiling.sgml"
+                              "libs/gst-plugins-bad-libs-docs.sgml"
+                              "plugins/gst-plugins-bad-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-after 'unpack 'disable-failing-tests
            (lambda _
-             ;; FIXME: Why is this failing.
              (substitute* "tests/check/meson.build"
-               ((".*elements/dash_mpd\\.c.*")
+               (("\\[\\['elements/msdkh264enc.c'\\], not have_msdk, \\[msdk_dep\\]\\],")
+                "")
+               (("\\[\\['elements/dash_mpd.c'\\], not xml2_dep.found\\(\\), \\[xml2_dep\\]\\],")
+                "")
+               (("\\[\\['elements/shm.c'\\], not shm_enabled, shm_deps\\],")
+                "")
+               (("\\[\\['elements/webrtcbin.c'\\], not libnice_dep.found\\(\\), \\[gstwebrtc_dep\\]\\],")
                 ""))
+             #t))
+         (add-before
+             'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             ;; Tests look for $XDG_RUNTIME_DIR.
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
              #t)))))
-    (propagated-inputs
-     `(("gst-plugins-base" ,gst-plugins-base)))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ;; TODO: Enable documentation for 1.18.
-       ;;("gtk-doc" ,gtk-doc)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)))
+       ("python-wrapper" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     ;; XXX: The following dependencies are missing:
-     ;;  vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts,
-     ;;  faac, flite, libgsm, libde265, libmms, libmimic, mjpegtools,
-     ;;  mpeg2enc, libofa, opencv, openh264, openni2, libtimemmgr, wildmidi,
-     ;;  openspc, gme, sbc, schroedinger, zbar, librtmp, spandsp
      `(("bluez" ,bluez)
+       ("bzip2" ,bzip2)
+       ("cairo" ,cairo)
+       ("ccextractor" ,ccextractor)
+       ("chromaprint" ,chromaprint)
        ("curl" ,curl)
+       ("directfb" ,directfb)
+       ;;("dssim" ,dssim)
+       ("faac" ,faac)
        ("faad2" ,faad2)
+       ("flite" ,flite)
        ("fluidsynth" ,fluidsynth)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("glu" ,glu)
+       ("gsm" ,gsm)
        ("gtk+" ,gtk+)
+       ("iqa" ,iqa)
        ("ladspa" ,ladspa)
+       ("lcms" ,lcms)
+       ("libaom" ,libaom)
        ("libass" ,libass)
+       ("libbs2b" ,libbs2b)
+       ("libdc1394" ,libdc1394)
+       ("libdca" ,libdca)
+       ("libde265" ,libde265)
+       ("libdrm" ,libdrm)
        ("libdvdnav" ,libdvdnav)
        ("libdvdread" ,libdvdread)
+       ("libexif" ,libexif)
+       ("libfdk" ,libfdk)
        ("libgcrypt" ,libgcrypt)
+       ("libgme" ,libgme)
        ("libgudev" ,libgudev)
        ("libkate" ,libkate)
+       ("libmfx" ,mediasdk)
+       ("libmms" ,libmms)
        ("libmodplug" ,libmodplug)
+       ("libmpcdec" ,libmpcdec)
+       ("libnice" ,libnice)
+       ("libofa" ,libofa)
+       ("libopenmpt" ,libopenmpt)
        ("librsvg" ,librsvg)
        ("libsndfile" ,libsndfile)
        ("libsrtp" ,libsrtp)
        ("libssh2" ,libssh2)
+       ("libtiff" ,libtiff)
        ("libusb" ,libusb)
+       ("libva" ,libva)
        ("libvdpau" ,libvdpau)
        ("libwebp" ,libwebp)
+       ("libx11" ,libx11)
+       ("libxcb" ,libxcb)
+       ("libxext" ,libxext)
+       ("libxkbcommon" ,libxkbcommon)
        ("libxml2" ,libxml2)
+       ("libxshm" ,libxshmfence)
+       ("lilv" ,lilv)
        ("lrdf" ,lrdf)
+       ("lv2" ,lv2)
        ("mesa" ,mesa)
+       ("mjpegtools" ,mjpegtools)
        ("neon" ,neon)
+       ("nettle" ,nettle)
        ("openal" ,openal)
+       ("opencv" ,opencv)
        ("openexr" ,openexr)
+       ("openh264" ,openh264)
        ("openjpeg" ,openjpeg)
+       ("openni2" ,openni2)
+       ("opensles" ,opensles)
        ("openssl" ,openssl)
        ("opus" ,opus)
        ("orc" ,orc)
-       ;("qtbase" ,qtbase)
-       ;("qtdeclarative" ,qtdeclarative)
-       ;("qtx11extras" ,qtx11extras)
+       ("pango" ,pango)
+       ("rtmp" ,rtmpdump)
+       ("sbc" ,sbc)
+       ("sctp" ,lksctp-tools)
        ("soundtouch" ,soundtouch)
+       ("spandsp" ,spandsp)
+       ("srt" ,srt)
+       ("svthevcenc" ,svt-hevc)
+       ("tinyalsa" ,tinyalsa)
+       ("transcode" ,transcode)
+       ("v4l" ,v4l-utils)
+       ("voaacenc", vo-aacenc)
+       ("voamrwbenc" ,vo-amrwbenc)
+       ("vulkan-headers" ,vulkan-headers)
+       ("vulkan-loader" ,vulkan-loader)
        ("x265" ,x265)
-       ("wayland" ,wayland)))
+       ("wayland" ,wayland)
+       ("webrtcdsp" ,webrtc-audio-processing)
+       ("wildmidi" ,wildmidi)
+       ("wpebackend-fdo" ,wpebackend-fdo)
+       ;;("wpewebkit" ,wpewebkit)
+       ("zbar" ,zbar)
+       ("zxing" ,zxing-cpp)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (synopsis "GStreamer plugins and helper libraries")
+    (description "Gst-Plugins-Bad are Bad with a capital B.  They look fine on
+the outside, and might even appear to get the job done, but at the end of the
+day they're a black sheep.  Without a golden-haired angel to watch over them,
+they'll probably land in an unmarked grave at the final showdown.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "Plugins for the GStreamer multimedia library")
-    (description
-     "GStreamer Bad Plug-ins is a set of plug-ins whose quality aren't up to
-par compared to the rest.")
     (license license:lgpl2.0+)))
 
 (define-public gst-plugins-ugly
-- 
2.26.2


[-- Attachment #1.1.42: 0050-gnu-gst-plugins-ugly-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4800 bytes --]

From 1b41ffd6da8efe18e8790bfe4d84a9e05b7bd0e8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 05:20:50 -0400
Subject: [PATCH 50/51] gnu: gst-plugins-ugly: Update package definition.

* gnu/packages/gstreamer.scm (gst-plugins-ugly): Update package definition.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xml]: New phase.
['pre-check]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal, gsettings-desktop-schemas,
perl and xorg-server-for-tests.
[inputs]: Add glib, glib-networking and opencore-amr. Remove gst-plugins-base.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gstreamer.scm | 67 ++++++++++++++++++++++++++++----------
 1 file changed, 49 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index d63873ec65..858dbe2d5a 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -880,35 +880,66 @@ they'll probably land in an unmarked grave at the final showdown.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://gstreamer.freedesktop.org/src/"
-                           name "/" name "-" version ".tar.xz"))
+       (uri
+        (string-append "https://gstreamer.freedesktop.org/src/"
+                       name "/" name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"))))
+        (base32 "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  ,@%common-gstreamer-phases)))
+     `(#: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-ugly-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)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
        ("liba52" ,liba52)
        ("libcdio" ,libcdio)
+       ("libdvdread" ,libdvdread)
        ("libmpeg2" ,libmpeg2)
        ("libdvdread" ,libdvdread)
        ("libx264" ,libx264)
-       ;; TODO:
-       ;; * opencore-amr (for the AMR-NB decoder and encoder and the
-       ;;   AMR-WB decoder) <http://sourceforge.net/projects/opencore-amr/>
+       ("opencore-amr" ,opencore-amr)
        ("orc" ,orc)))
-    (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (synopsis "GStreamer plugins and helper libraries")
+    (description "Gst-Plugins-Ugly are the ones that might have a patent noose
+around their neck, or a lock-up license, or any other problem that makes you
+think twice about shipping them.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "GStreamer plugins from the \"ugly\" set")
-    (description "GStreamer Ugly Plug-ins.  This set contains those plug-ins
-which the developers consider to have good quality code but that might pose
-distribution problems in some jurisdictions, e.g. due to patent threats.")
     (license license:lgpl2.0+)))
 
 (define-public gst-libav
-- 
2.26.2


[-- Attachment #1.1.43: 0051-gnu-gst-libav-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4388 bytes --]

From 21061a651f516d4df94f8a6a65775f4c41d92d76 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 05:21:57 -0400
Subject: [PATCH 51/51] gnu: gst-libav: Update package definition.

* gnu/packages/gstreamer.scm (gst-libav): Update package definition.
[arguments]<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, perl and ruby.
[inputs]: Remove gst-plugins-base, orc and zlib.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.
[license]: Change from gpl2+ to lgpl2.0+.
---
 gnu/packages/gstreamer.scm | 66 +++++++++++++++++++++++---------------
 1 file changed, 40 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 858dbe2d5a..2d2e9c7995 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -85,6 +85,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages speech)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
@@ -928,7 +929,6 @@ they'll probably land in an unmarked grave at the final showdown.")
        ("libcdio" ,libcdio)
        ("libdvdread" ,libdvdread)
        ("libmpeg2" ,libmpeg2)
-       ("libdvdread" ,libdvdread)
        ("libx264" ,libx264)
        ("opencore-amr" ,opencore-amr)
        ("orc" ,orc)))
@@ -946,35 +946,49 @@ think twice about shipping them.")
   (package
     (name "gst-libav")
     (version "1.16.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://gstreamer.freedesktop.org/src/" name "/"
-                    name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Drop bundled ffmpeg.
-                  (delete-file-recursively "gst-libs/ext/libav")
-                  #t))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://gstreamer.freedesktop.org/src/" name "/"
+         name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Drop bundled ffmpeg.
+           (delete-file-recursively "gst-libs/ext/libav")
+           #t))))
     (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "plugins/gst-libav-plugins-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)))
     (inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
-       ("ffmpeg" ,ffmpeg)
-       ("orc" ,orc)
-       ("zlib" ,zlib)))
+     `(("ffmpeg" ,ffmpeg)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (synopsis "GStreamer plugins and helper libraries")
+    (description "Gst-Libav contains a GStreamer plugin for using the encoders,
+decoders, muxers, and demuxers provided by FFmpeg.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "Plugins for the GStreamer multimedia library")
-    (description
-     "This GStreamer plugin supports a large number of audio and video
-compression formats through the use of the libav library.")
-    (license license:gpl2+)))
+    (license license:lgpl2.0+)))
 
 (define-public gst-editing-services
   (package
-- 
2.26.2


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-04 10:37                       ` Raghav Gururajan
@ 2020-07-04 11:14                         ` Raghav Gururajan
  2020-07-06  1:36                           ` Raghav Gururajan
  2020-07-06 19:24                           ` Danny Milosavljevic
  2020-07-05 19:25                         ` Danny Milosavljevic
  1 sibling, 2 replies; 49+ messages in thread
From: Raghav Gururajan @ 2020-07-04 11:14 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 5746 bytes --]

@Danny

Please find the attached patches.

@Others

Please find the following git log.

*** START ***

commit b9b918f4addca5b5f17e1002b5769a6a5e99fa91
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 07:06:43 2020 -0400

    gnu: gvfs: Update package definition.

    * gnu/packages/gnome.scm (gvfs) [version]: Update to 1.44.1.
    [native-inputs]:  Add docbook-xml and docbook-xsl.
    [inputs]: Remove docbook-xml and docbook-xsl.  Add libplist and libusb.
    [synopsis]: Modify.
    [description]: Modify.

commit 22a222359461fda738b3b7e72312f01125381a9c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 07:05:52 2020 -0400

    gnu: fuse: Update package definition.

    * gnu/packages/linux.scm (fuse) [version]: Update to 3.9.2.
    [source]<origin>[method]: Change from url-fetch to git-fetch.
    [build-system]: Change from gnu to meson.
    [arguments]: Modify inaccordance with build-system.
    [native-inputs]: Add pkg-config.
    [inputs]: Add bash, eudev and libiconv.
    [synopsis]: Modify.
    [description]: Modify.

commit 2463234416baa0ee82daaa49401e1bcb123a37f0
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 07:04:51 2020 -0400

    gnu: gtksourceview-2: Update package definition.

    * gnu/packages/gtk.scm (gtksourceview-2): Inherit from gtksourceview.
    [inherit]: New field.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output 'doc'.
    [arguments]<#:configure-flags>[--with-html-dir]: New flag.

commit 5a18af17481f52576681f6f81d0343eac4fe63e9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 06:58:44 2020 -0400

    gnu: gtksourceview-3: Update package definition.

    * gnu/packages/gtk.scm (gtksourceview-3) [version]: Update to 3.24.11.
    [build-system]: Change from gnu to glib-or-gtk.
    [arguments]<#:configure-flags>[--enable-glade-catalog]: New flag.
    [--enable-gtk-doc]: New flag.
    [--with-html-dir]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-glade]: New phase.

commit 474550331394ba6c008df08951b2ec6a389eacf4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 06:58:09 2020 -0400

    gnu: gtksourceview: Update package definition.

    * gnu/packages/gtk.scm (gtksourceview) [version]: Update to 4.6.0.
    [build-system]: Change from gnu to meson.
    [outputs]: New outputs 'doc' and 'glade'.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dglade-catalog]: New flag.
    [-Dgtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    ['move-glade]: New phase.
    [native-inputs]: Add docbook-xml, gettext-minimal, groovy, gtk-doc,
    and ruby.
    [inputs]: Add glade.
    [propagated-inputs]: Add fribidi.
    [synopsis]: Modify.
    [description]: Modify.

commit e9b2c518390c5f6aeaebb0b5789f097909ed06fd
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 06:57:20 2020 -0400

    gnu: gtk+: Propagate libcloudproviders.

    * gnu/packages/gtk.scm (gtk+) [inputs]: Move libcloudproviders to ...
    [propagated-inputs]: ... here.

commit 7a3879883fca4ed31a813098f958860a9c44c612
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 06:56:11 2020 -0400

    gnu: gtk-doc: Update package definition.

    * gnu/packages/gtk.scm (gtk-doc) [version]: Update to 1.32.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output 'help'.
    [arguments]<#:configure-flags>[--with-help-dir]: New flag.
    <#:phases>['patch-test-out]: Remove phase.
    ['disable-failing-tests]: New phase.
    [native-inputs]: Add glib:bin, perl and python-wrapper.
    [inputs]: Add python-anytree, python-lxml, python-parameterized,
    python-pygments, python-unittest2 and yelp-tools.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Add fdl1.1+.

commit eef37a91621dda1c178317fedce1f81d71482421
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 06:55:04 2020 -0400

    gnu: gtk+: Update package definition.

    * gnu/packages/gtk.scm (gtk+): Remove inheritance from gtk+-2.
    [version]: Update to 3.24.20.
    [source]<sha256>: Modify base32.
    [arguments]<#:configure-flags>[--enable-cloudproviders]: New flag.
    <#:phases>['pre-configure]: Remove phase.
    ['pre-check]: New phase.
    ['disable-failing-tests]: New phase.
    [native-inputs]: Add docbook-xml, intltool, sassc and libxslt.
    [inputs]: Add graphene, harfbuzz, iso-codes, libcloudproviders and papi.
    [propagated-inputs]: Add cairo, fribidi, fontconfig, freetype, glib,
    libx11, libxcomposite, libxext, libxfixes and libxrender.

commit 3ce004cec2767aa70891c0403cec94efa83da3a1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 06:49:44 2020 -0400

    gnu: Add libcloudproviders.

    * gnu/packages/gnome.scm (libcloudproviders): New variable.

commit 240062e81a990a882b779dcd7d27ecd1d492469d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 4 06:48:39 2020 -0400

    gnu: gtk+-2: Update package definition.

    * gnu/packages/gtk.scm (gtk+-2): Update package definition.
    [arguments]<#:phases>['disable-tests]: Remove phase.
    ['disable-failing-tests]: New phase.
    ['pre-check]: New phase.
    [native-inputs]: Add intltool and xorg-server-for-tests.
    [inputs]: Add libx11, libxext, libxkbcommon, libxrender and
    libxshmfence.
    [propagated-inputs]: Add cairo and glib.
    [search-paths]: New field.

*** END ***

Regards,
RG.

[-- Attachment #1.1.2: 0052-gnu-gtk-2-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7905 bytes --]

From 240062e81a990a882b779dcd7d27ecd1d492469d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 06:48:39 -0400
Subject: [PATCH 52/61] gnu: gtk+-2: Update package definition.

* gnu/packages/gtk.scm (gtk+-2): Update package definition.
[arguments]<#:phases>['disable-tests]: Remove phase.
['disable-failing-tests]: New phase.
['pre-check]: New phase.
[native-inputs]: Add intltool and xorg-server-for-tests.
[inputs]: Add libx11, libxext, libxkbcommon, libxrender and
libxshmfence.
[propagated-inputs]: Add cairo and glib.
[search-paths]: New field.
---
 gnu/packages/gtk.scm | 159 +++++++++++++++++++++++++------------------
 1 file changed, 94 insertions(+), 65 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index bff7da27a8..d3d707188c 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -70,6 +70,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libffi)
@@ -370,8 +371,8 @@ diagrams.")
                (base32
                 "07hrabhpl6n8ajz10s0d960jdwndxs87szxyn428mpxi8cvpg1f5"))
               (patches
-                (search-patches
-                  "gtksourceview-2-add-default-directory.patch"))))
+               (search-patches
+                "gtksourceview-2-add-default-directory.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -712,72 +713,100 @@ the GNOME accessibility project.")
 
 (define-public gtk+-2
   (package
-   (name "gtk+")
-   (version "2.24.32")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version)  "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "0bjq7ja9gwcv6n5q4qkvdjjx40wsdiikksz1zqxvxsm5vlyskj5n"))
-            (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
-                                     "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
-                                     "gtk2-theme-paths.patch"))))
-   (build-system gnu-build-system)
-   (outputs '("out" "bin" "doc"))
-   (propagated-inputs
-    `(("atk" ,atk)
-      ("gdk-pixbuf" ,gdk-pixbuf+svg)
-      ("pango" ,pango)))
-   (inputs
-    `(("cups" ,cups)
-      ("libxcomposite" ,libxcomposite)
-      ("libxcursor" ,libxcursor)
-      ("libxdamage" ,libxdamage)
-      ("libxi" ,libxi)
-      ("libxinerama" ,libxinerama)
-      ("libxrandr" ,libxrandr)))
-   (native-inputs
-    `(("perl" ,perl)
-      ("gettext" ,gettext-minimal)
-      ("glib" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("pkg-config" ,pkg-config)
-      ("python-wrapper" ,python-wrapper)))
-   (arguments
-    `(#:configure-flags
-      (list "--with-xinput=yes"
-            (string-append "--with-html-dir="
-                           (assoc-ref %outputs "doc")
-                           "/share/gtk-doc/html"))
-      #:phases
-      (modify-phases %standard-phases
-        (add-before 'configure 'disable-tests
-          (lambda _
-            ;; FIXME: re-enable tests requiring an X server
-            (substitute* "gtk/Makefile.in"
-              (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits ."))
-            #t))
-        (add-after 'install 'remove-cache
-          (lambda* (#:key outputs #:allow-other-keys)
-	    (for-each
-	      delete-file
-	      (find-files (assoc-ref outputs "out") "immodules.cache"))
-            #t)))))
-   (native-search-paths
-    (list (search-path-specification
-           (variable "GUIX_GTK2_PATH")
-           (files '("lib/gtk-2.0")))))
-   (synopsis "Cross-platform toolkit for creating graphical user interfaces")
-   (description
-    "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating
+    (name "gtk+")
+    (version "2.24.32")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0bjq7ja9gwcv6n5q4qkvdjjx40wsdiikksz1zqxvxsm5vlyskj5n"))
+       (patches
+        (search-patches
+         "gtk2-respect-GUIX_GTK2_PATH.patch"
+         "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
+         "gtk2-theme-paths.patch"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "bin" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--with-xinput=yes"
+        (string-append "--with-html-dir=" (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "gtk/tests/recentmanager.c"
+               (("g_test_add_func \\(\"/recent-manager/add-many\", recent_manager_add_many\\);")
+                ""))
+             (substitute* "gtk/tests/defaultvalue.c"
+               (("return g_test_run\\(\\);")
+                ""))
+             #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 'remove-cache
+           (lambda* (#:key outputs #:allow-other-keys)
+             (for-each
+              delete-file
+              (find-files (assoc-ref outputs "out") "immodules.cache"))
+             #t)))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("cups" ,cups)
+       ("libx11" ,libx11)
+       ("libxcomposite" ,libxcomposite)
+       ("libxcursor" ,libxcursor)
+       ("libxext" ,libxext)
+       ("libxdamage" ,libxdamage)
+       ("libxi" ,libxi)
+       ("libxinerama" ,libxinerama)
+       ("libxkbcommon" ,libxkbcommon)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("libxshmfence" ,libxshmfence)))
+    (propagated-inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("pango" ,pango)))
+    (native-search-paths
+     (list
+      (search-path-specification
+       (variable "GUIX_GTK2_PATH")
+       (files '("lib/gtk-2.0")))))
+    (search-paths native-search-paths)
+    (synopsis "Cross-platform toolkit for creating graphical user interfaces")
+    (description "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating
 graphical user interfaces.  Offering a complete set of widgets, GTK+ is
 suitable for projects ranging from small one-off tools to complete
 application suites.")
-   (license license:lgpl2.0+)
-   (home-page "https://www.gtk.org/")))
+    (home-page "https://www.gtk.org/")
+    (license license:lgpl2.0+)))
 
 (define-public gtk+
   (package (inherit gtk+-2)
-- 
2.26.2


[-- Attachment #1.1.3: 0053-gnu-Add-libcloudproviders.patch --]
[-- Type: text/x-patch, Size: 2710 bytes --]

From 3ce004cec2767aa70891c0403cec94efa83da3a1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 06:49:44 -0400
Subject: [PATCH 53/61] gnu: Add libcloudproviders.

* gnu/packages/gnome.scm (libcloudproviders): New variable.
---
 gnu/packages/gnome.scm | 48 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f6a530a9fc..2fbd7e8f67 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -263,6 +263,54 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public libcloudproviders
+  (package
+    (name "libcloudproviders")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Denable-gtk-doc=true")
+       #:phases
+       (modify-phases %standard-phases
+         (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
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)))
+    (synopsis "Cloudproviders Integration API")
+    (description "Libcloudproviders is a DBus API that allows cloud storage sync
+clients to expose their services.  Clients such as file managers and desktop
+environments can then provide integrated access to the cloud providers
+services.")
+    (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
+    (license license:lgpl3+)))
+
 (define-public sysprof
   (package
     (name "sysprof")
-- 
2.26.2


[-- Attachment #1.1.4: 0054-gnu-gtk-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 11286 bytes --]

From eef37a91621dda1c178317fedce1f81d71482421 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 06:55:04 -0400
Subject: [PATCH 54/61] gnu: gtk+: Update package definition.

* gnu/packages/gtk.scm (gtk+): Remove inheritance from gtk+-2.
[version]: Update to 3.24.20.
[source]<sha256>: Modify base32.
[arguments]<#:configure-flags>[--enable-cloudproviders]: New flag.
<#:phases>['pre-configure]: Remove phase.
['pre-check]: New phase.
['disable-failing-tests]: New phase.
[native-inputs]: Add docbook-xml, intltool, sassc and libxslt.
[inputs]: Add graphene, harfbuzz, iso-codes, libcloudproviders and papi.
[propagated-inputs]: Add cairo, fribidi, fontconfig, freetype, glib,
libx11, libxcomposite, libxext, libxfixes and libxrender.
---
 gnu/packages/gtk.scm | 217 ++++++++++++++++++++++++++-----------------
 1 file changed, 131 insertions(+), 86 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index d3d707188c..05c7d81104 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -73,18 +73,21 @@
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages profiling)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
@@ -809,92 +812,134 @@ application suites.")
     (license license:lgpl2.0+)))
 
 (define-public gtk+
-  (package (inherit gtk+-2)
-   (name "gtk+")
-   (version "3.24.20")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version)  "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1wqxkd3xnqwihcawncp9mkf9bv5a5fg5i4ahm6klpl782vvnkb1d"))
-            (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
-                                     "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
-   (propagated-inputs
-    `(("at-spi2-atk" ,at-spi2-atk)
-      ("atk" ,atk)
-      ("gdk-pixbuf" ,gdk-pixbuf+svg)
-      ("libepoxy" ,libepoxy)
-      ("libxcursor" ,libxcursor)
-      ("libxi" ,libxi)
-      ("libxinerama" ,libxinerama)
-      ("libxkbcommon" ,libxkbcommon)
-      ("libxdamage" ,libxdamage)
-      ("libxrandr" ,libxrandr)
-      ("mesa" ,mesa)
-      ("pango" ,pango)
-      ("wayland" ,wayland)
-      ("wayland-protocols" ,wayland-protocols)))
-   (inputs
-    `(("libxml2" ,libxml2)
-      ;; XXX: colord depends on mozjs (through polkit), which fails on
-      ;;      on non-intel systems now.
-      ;;("colord" ,colord)
-      ("cups" ,cups)                            ;for printing support
-      ;; XXX: rest depends on p11-kit, which fails on mips64el now.
-      ;;("rest" ,rest)
-      ("json-glib" ,json-glib)))
-   (native-inputs
-    `(("perl" ,perl)
-      ("glib" ,glib "bin")
-      ("gettext" ,gettext-minimal)
-      ("pkg-config" ,pkg-config)
-      ("gobject-introspection" ,gobject-introspection)
-      ("python-wrapper" ,python-wrapper)
-      ;; By using a special xorg-server for GTK+'s tests, we reduce the impact
-      ;; of updating xorg-server directly on the master branch.
-      ("xorg-server" ,xorg-server-for-tests)))
-   (arguments
-    `(#:disallowed-references (,xorg-server-for-tests)
-      ;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes
-      ;; to "doc".
-      #:configure-flags (list (string-append "--with-html-dir="
-                                             (assoc-ref %outputs "doc")
-                                             "/share/gtk-doc/html")
-                              ;; The header file <gdk/gdkwayland.h> is required
-                              ;; by gnome-control-center
-                              "--enable-wayland-backend"
-                              ;; This is necessary to build both backends.
-                              "--enable-x11-backend"
-                              ;; This enables the HTML5 websocket backend.
-                              "--enable-broadway-backend")
-      #:phases (modify-phases %standard-phases
-        (add-before 'configure 'pre-configure
-          (lambda _
-            ;; Disable most tests, failing in the chroot with the message:
-            ;; D-Bus library appears to be incorrectly set up; failed to read
-            ;; machine uuid: Failed to open "/etc/machine-id": No such file or
-            ;; directory.
-            ;; See the manual page for dbus-uuidgen to correct this issue.
-            (substitute* "testsuite/Makefile.in"
-              (("SUBDIRS = gdk gtk a11y css reftests")
-               "SUBDIRS = gdk"))
-            #t))
-        (add-after 'install 'move-desktop-files
-          ;; Move desktop files into 'bin' to avoid cycle references.
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out"))
-                  (bin (assoc-ref outputs "bin")))
-              (mkdir-p (string-append bin "/share"))
-              (rename-file (string-append out "/share/applications")
-                           (string-append bin "/share/applications"))
-              #t))))))
-   (native-search-paths
-    (list (search-path-specification
-           (variable "GUIX_GTK3_PATH")
-           (files '("lib/gtk-3.0")))))))
+  (package
+    (name "gtk+")
+    (version "3.24.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1wqxkd3xnqwihcawncp9mkf9bv5a5fg5i4ahm6klpl782vvnkb1d"))
+       (patches
+        (search-patches
+         "gtk3-respect-GUIX_GTK3_PATH.patch"
+         "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "bin" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-x11-backend"
+        "--enable-broadway-backend"
+        "--enable-wayland-backend"
+        "--enable-cloudproviders"
+        (string-append "--with-html-dir=" (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (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 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "testsuite/gtk/Makefile.in"
+               (("builderparser cellarea check-icon-names check-cursor-names")
+                "builderparser cellarea check-cursor-names")
+               (("notify no-gtk-init object objects-finalize papersize rbtree")
+                "no-gtk-init papersize rbtree")
+               (("stylecontext templates textbuffer textiter treemodel treepath")
+                "stylecontext textbuffer textiter treemodel treepath"))
+             (substitute* "testsuite/a11y/Makefile.in"
+               (("accessibility-dump tree-performance text children derive")
+                "tree-performance text children derive"))
+             (substitute* "testsuite/reftests/Makefile.in"
+               (("TEST_PROGS = gtk-reftest")
+                "TEST_PROGS = "))
+             #t))
+         ;; Move desktop files into 'bin' to avoid cycle references.
+         (add-after 'install 'move-desktop-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (assoc-ref outputs "bin")))
+               (mkdir-p (string-append bin "/share"))
+               (rename-file
+                (string-append out "/share/applications")
+                (string-append bin "/share/applications"))
+               #t))))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)
+       ("sassc" ,sassc)
+       ("xorg-server" ,xorg-server-for-tests)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("colord" ,colord)
+       ("cups" ,cups)
+       ("graphene" ,graphene)
+       ("harfbuzz" ,harfbuzz)
+       ("iso-codes" ,iso-codes)
+       ("json-glib" ,json-glib)
+       ("libcloudproviders" ,libcloudproviders)
+       ("libxml2" ,libxml2)
+       ("papi" ,papi)
+       ("rest" ,rest)))
+    (propagated-inputs
+     `(("atk" ,atk)
+       ("at-spi2-atk" ,at-spi2-atk)
+       ("cairo" ,cairo)
+       ("fribidi" ,fribidi)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("libepoxy" ,libepoxy)
+       ("libx11" ,libx11)
+       ("libxcomposite" ,libxcomposite)
+       ("libxcursor" ,libxcursor)
+       ("libxdamage" ,libxdamage)
+       ("libxext" ,libxext)
+       ("libxfixes" ,libxfixes)
+       ("libxi" ,libxi)
+       ("libxinerama" ,libxinerama)
+       ("libxkbcommon" ,libxkbcommon)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("mesa" ,mesa)
+       ("pango" ,pango)
+       ("wayland" ,wayland)
+       ("wayland-protocols" ,wayland-protocols)))
+    (native-search-paths
+     (list
+      (search-path-specification
+       (variable "GUIX_GTK3_PATH")
+       (files '("lib/gtk-3.0")))))
+    (search-paths native-search-paths)
+    (synopsis "Cross-platform toolkit for creating graphical user interfaces")
+    (description "GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating