unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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] 84+ 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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] 84+ 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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] 84+ 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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                   ` [OUTREACHY]: Integration of desktop environments into GNU Guix Danny Milosavljevic
  2 siblings, 2 replies; 84+ 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 related	[flat|nested] 84+ 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                   ` [OUTREACHY]: Integration of desktop environments into GNU Guix Danny Milosavljevic
  1 sibling, 1 reply; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-06-24 11:37                   ` [OUTREACHY]: Integration of desktop environments into GNU Guix 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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] 84+ 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; 84+ 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] 84+ 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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 related	[flat|nested] 84+ 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; 84+ 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
+graphical user interfaces.  Offering a complete set of widgets, GTK+ is
+suitable for projects ranging from small one-off tools to complete
+application suites.")
+    (home-page "https://www.gtk.org/")
+    (license license:lgpl2.0+)))
 
 ;;;
 ;;; Guile bindings.
-- 
2.26.2


[-- Attachment #1.1.5: 0055-gnu-gtk-doc-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 8306 bytes --]

From 7a3879883fca4ed31a813098f958860a9c44c612 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 06:56:11 -0400
Subject: [PATCH 55/61] 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+.
---
 gnu/packages/gtk.scm | 124 ++++++++++++++++++++++++-------------------
 1 file changed, 70 insertions(+), 54 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 05c7d81104..d50ed70819 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1646,48 +1646,48 @@ information.")
 (define-public gtk-doc
   (package
     (name "gtk-doc")
-    (version "1.28")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "05apmwibkmn1icx05l8aw241lhymcx01zvk5i499cb150bijj7li"))))
-    (build-system gnu-build-system)
+    (version "1.32")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0z4h1dggpimygdp719l457jvqilps4qcfpk31jmj3jqpzcsg03ny"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "help"))
     (arguments
-     `(#:parallel-tests? #f
+     `(#:configure-flags
+       (list
+        (string-append "--with-xml-catalog="
+                       (assoc-ref %build-inputs "docbook-xml")
+                       "/xml/dtd/docbook/catalog.xml")
+        (string-append "--with-help-dir="
+                       (assoc-ref %outputs "help")
+                       "/share/help"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-gtk-doc-scan
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "gtk-doc.xsl"
-              (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
-               (string-append (assoc-ref inputs "docbook-xsl")
-                              "/xml/xsl/docbook-xsl-"
-                              ,(package-version docbook-xsl)
-                              "/html/chunk.xsl"))
-              (("http://docbook.sourceforge.net/release/xsl/current/common/en.xml")
-               (string-append (assoc-ref inputs "docbook-xsl")
-                              "/xml/xsl/docbook-xsl-"
-                              ,(package-version docbook-xsl)
-                              "/common/en.xml")))
+               (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)
+                               "/html/chunk.xsl"))
+               (("http://docbook.sourceforge.net/release/xsl/current/common/en.xml")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)
+                               "/common/en.xml")))
              #t))
-         (add-after 'patch-gtk-doc-scan 'patch-test-out
+         (add-after 'unpack 'disable-failing-tests
            (lambda _
-             ;; sanity.sh counts the number of status lines.  Since our
-             ;; texlive regenerates the fonts every time and the font
-             ;; generator metafont outputs a lot of extra lines, this
-             ;; test would always fail.  Disable it for now.
              (substitute* "tests/Makefile.in"
-              (("empty.sh sanity.sh") "empty.sh"))
-             #t))
-         (add-before 'build 'set-HOME
-           (lambda _
-             ;; FIXME: dblatex with texlive-union does not find the built
-             ;; metafonts, so it tries to generate them in HOME.
-             (setenv "HOME" "/tmp")
+               (("annotations.sh bugs.sh empty.sh fail.sh gobject.sh program.sh")
+                ""))
              #t))
          (add-before 'configure 'fix-docbook
            (lambda* (#:key inputs #:allow-other-keys)
@@ -1704,6 +1704,12 @@ information.")
                                                 "^catalog.xml$"))
                                " \"http://docbook.sourceforge.net/release/xsl/")))
              #t))
+         (add-before 'build 'set-HOME
+           (lambda _
+             ;; FIXME: dblatex with texlive-union does not find the built
+             ;; metafonts, so it tries to generate them in HOME.
+             (setenv "HOME" "/tmp")
+             #t))
          (add-after 'install 'wrap-executables
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -1711,34 +1717,44 @@ information.")
                            (wrap-program prog
                              `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))
                          (find-files (string-append out "/bin")))
-               #t))))
-       #:configure-flags
-       (list (string-append "--with-xml-catalog="
-                            (assoc-ref %build-inputs "docbook-xml")
-                            "/xml/dtd/docbook/catalog.xml"))))
+               #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("itstool" ,itstool)
-       ("libxml" ,libxml2)
-       ("gettext" ,gettext-minimal)
-       ("bc" ,bc)))
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
     (inputs
-     `(("perl" ,perl)
-       ("python" ,python)
-       ("xsltproc" ,libxslt)
+     `(("bc" ,bc)
        ("dblatex" ,dblatex)
        ("docbook-xml" ,docbook-xml-4.3)
        ("docbook-xsl" ,docbook-xsl)
-       ("source-highlight" ,source-highlight)
        ("glib" ,glib)
-       ("python-six" ,python-six)))
-    (home-page "https://www.gtk.org/gtk-doc/")
-    (synopsis "Documentation generator from C source code")
-    (description
-     "GTK-Doc generates API documentation from comments added to C code.  It is
-typically used to document the public API of GTK+ and GNOME libraries, but it
-can also be used to document application code.")
-    (license license:gpl2+)))
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ("python" ,python)
+       ("python-anytree" ,python-anytree)
+       ("python-lxml" ,python-lxml)
+       ("python-parameterized" ,python-parameterized)
+       ("python-pygments" ,python-pygments)
+       ("python-unittest2" ,python-unittest2)
+       ("source-highlight" ,source-highlight)
+       ("yelp-tools" ,yelp-tools)))
+    (synopsis "GTK+ DocBook Documentation Generator")
+    (description "GtkDoc is a tool used to extract API documentation from C-code
+like Doxygen, but handles documentation of GObject (including signals and
+properties) that makes it very suitable for GTK+ apps and libraries.  It uses
+docbook for intermediate files and can produce html by default and pdf/man-pages
+with some extra work.")
+    (home-page "https://wiki.gnome.org/DocumentationProject/GtkDoc")
+    (license
+     (list
+      ;; Docs.
+      license:fdl1.1+
+      ;; Others.
+      license:gpl2+))))
 
 (define-public gtk-engines
   (package
-- 
2.26.2


[-- Attachment #1.1.6: 0056-gnu-gtk-Propagate-libcloudproviders.patch --]
[-- Type: text/x-patch, Size: 1148 bytes --]

From e9b2c518390c5f6aeaebb0b5789f097909ed06fd Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 06:57:20 -0400
Subject: [PATCH 56/61] gnu: gtk+: Propagate libcloudproviders.

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

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index d50ed70819..98d967d74a 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -898,7 +898,6 @@ application suites.")
        ("harfbuzz" ,harfbuzz)
        ("iso-codes" ,iso-codes)
        ("json-glib" ,json-glib)
-       ("libcloudproviders" ,libcloudproviders)
        ("libxml2" ,libxml2)
        ("papi" ,papi)
        ("rest" ,rest)))
@@ -911,6 +910,7 @@ application suites.")
        ("freetype" ,freetype)
        ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("glib" ,glib)
+       ("libcloudproviders" ,libcloudproviders)
        ("libepoxy" ,libepoxy)
        ("libx11" ,libx11)
        ("libxcomposite" ,libxcomposite)
-- 
2.26.2


[-- Attachment #1.1.7: 0057-gnu-gtksourceview-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7605 bytes --]

From 474550331394ba6c008df08951b2ec6a389eacf4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 06:58:09 -0400
Subject: [PATCH 57/61] 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.
---
 gnu/packages/gtk.scm | 133 +++++++++++++++++++++++++++++--------------
 1 file changed, 90 insertions(+), 43 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 98d967d74a..23eede063c 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -71,6 +71,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graphics)
+  #:use-module (gnu packages groovy)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages iso-codes)
@@ -83,6 +84,7 @@
   #:use-module (gnu packages profiling)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages cups)
@@ -420,52 +422,97 @@ printing and other features typical of a source code editor.")
     (home-page "https://developer.gnome.org/gtksourceview/")))
 
 (define-public gtksourceview
- (package
-   (name "gtksourceview")
-   (version "4.2.0")
-   (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/gtksourceview/"
-                                 (version-major+minor version) "/"
-                                 "gtksourceview-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0xgnjj7jd56wbl99s76sa1vjq9bkz4mdsxwgwlcphg689liyncf4"))))
-   (build-system gnu-build-system)
-   (arguments
-    '(#:phases
-      (modify-phases %standard-phases
-        (add-before
-         'check 'pre-check
-         (lambda* (#:key inputs #:allow-other-keys)
-           (let ((xorg-server (assoc-ref inputs "xorg-server")))
+  (package
+    (name "gtksourceview")
+    (version "4.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gtksourceview/"
+                       (version-major+minor version) "/"
+                       "gtksourceview-" version ".tar.xz"))
+       (sha256
+        (base32 "11csdnb5xj1gkn1shynp3jdsfhhi7ks3apgmavfan0p6n85f64sc"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc" "glade"))
+    (arguments
+     `(#:glib-or-gtk? #t ;To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dglade_catalog=true"
+        "-Dgtk_doc=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '("gtksourceview-docs.xml.in" "intro.xml.in"
+                              "lang-reference.xml.in" "lang-tutorial.xml"
+                              "porting-guide-3-to-4.xml" "style-reference.xml.in")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
              ;; Tests require a running X server.
-             (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
+             (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
-             ;; For the missing /etc/machine-id.
+             ;; 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
-    `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
-      ("intltool" ,intltool)
-      ("itstool" ,itstool)
-      ("gobject-introspection" ,gobject-introspection)
-      ("pkg-config" ,pkg-config)
-      ("vala" ,vala)
-      ;; For testing.
-      ("xorg-server" ,xorg-server-for-tests)
-      ("shared-mime-info" ,shared-mime-info)))
-   (propagated-inputs
-    ;; gtksourceview-3.0.pc refers to all these.
-    `(("glib" ,glib)
-      ("gtk+" ,gtk+)
-      ("libxml2" ,libxml2)))
-   (home-page "https://wiki.gnome.org/Projects/GtkSourceView")
-   (synopsis "GNOME source code widget")
-   (description "GtkSourceView is a text widget that extends the standard
-GTK+ text widget GtkTextView.  It improves GtkTextView by implementing syntax
-highlighting and other features typical of a source code editor.")
-   (license license:lgpl2.1+)))
+             #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-after 'install 'move-glade
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (glade (assoc-ref outputs "glade")))
+               (mkdir-p (string-append glade "/share"))
+               (rename-file
+                (string-append out "/share/glade")
+                (string-append glade "/share/glade")))
+             #t)))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("groovy" ,groovy)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("ruby" ,ruby)
+       ("shared-mime-info" ,shared-mime-info)
+       ("vala" ,vala)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("glade" ,glade3)))
+    (propagated-inputs
+     `(("fribidi" ,fribidi)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libxml2" ,libxml2)))
+    (synopsis "GNOME source code widget")
+    (description "GtkSourceView is a GNOME library that extends GtkTextView, the
+standard GTK+ widget for multiline text editing.  GtkSourceView adds support for
+syntax highlighting, undo/redo, file loading and saving, search and replace, a
+completion system, printing, displaying line numbers, and other features typical
+of a source code editor.")
+    (home-page "https://wiki.gnome.org/Projects/GtkSourceView")
+    (license license:lgpl2.1+)))
 
 (define-public gtksourceview-3
  (package (inherit gtksourceview)
-- 
2.26.2


[-- Attachment #1.1.8: 0058-gnu-gtksourceview-3-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3831 bytes --]

From 5a18af17481f52576681f6f81d0343eac4fe63e9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 06:58:44 -0400
Subject: [PATCH 58/61] 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.
---
 gnu/packages/gtk.scm | 66 ++++++++++++++++++++++++++++++++++++--------
 1 file changed, 55 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 23eede063c..1452d8779a 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -515,17 +515,61 @@ of a source code editor.")
     (license license:lgpl2.1+)))
 
 (define-public gtksourceview-3
- (package (inherit gtksourceview)
-   (name "gtksourceview")
-   (version "3.24.10")
-   (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major+minor version) "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "16ym7jwiki4s1pilwr4incx0yg7ll94f1cajrnpndkxxs36hcm5b"))))))
+  (package
+    (inherit gtksourceview)
+    (name "gtksourceview")
+    (version "3.24.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32"1zbpj283b5ycz767hqz5kdq02wzsga65pp4fykvhg8xj6x50f6v9"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-glade-catalog"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '("gtksourceview-docs.xml.in" "intro.xml.in"
+                              "lang-reference.xml.in" "lang-tutorial.xml"
+                              "style-reference.xml.in")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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))
+         (add-after 'install 'move-glade
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (glade (assoc-ref outputs "glade")))
+               (mkdir-p (string-append glade "/share"))
+               (rename-file
+                (string-append out "/share/glade")
+                (string-append glade "/share/glade")))
+             #t)))))))
 
 (define-public gdk-pixbuf
   (package
-- 
2.26.2


[-- Attachment #1.1.9: 0059-gnu-gtksourceview-2-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5791 bytes --]

From 2463234416baa0ee82daaa49401e1bcb123a37f0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 07:04:51 -0400
Subject: [PATCH 59/61] 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.
---
 gnu/packages/gtk.scm | 103 +++++++++++++++++++------------------------
 1 file changed, 45 insertions(+), 58 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 1452d8779a..9365864ab5 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -363,64 +363,6 @@ graph-like environments, e.g. modular synths or finite state machine
 diagrams.")
     (license license:gpl3+)))
 
-(define-public gtksourceview-2
-  (package
-    (name "gtksourceview")
-    (version "2.10.5") ; This is the last version which builds against gtk+2
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "07hrabhpl6n8ajz10s0d960jdwndxs87szxyn428mpxi8cvpg1f5"))
-              (patches
-               (search-patches
-                "gtksourceview-2-add-default-directory.patch"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("pkg-config" ,pkg-config)
-       ;; For testing.
-       ("xorg-server" ,xorg-server-for-tests)
-       ("shared-mime-info" ,shared-mime-info)))
-    (propagated-inputs
-     ;; As per the pkg-config file.
-     `(("gtk" ,gtk+-2)
-       ("libxml2" ,libxml2)))
-    (arguments
-     `(#:phases
-       ;; Unfortunately, some of the tests in "make check" are highly dependent
-       ;; on the environment therefore, some black magic is required.
-       (modify-phases %standard-phases
-         (add-before 'check 'start-xserver
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((xorg-server (assoc-ref inputs "xorg-server"))
-                   (mime (assoc-ref inputs "shared-mime-info")))
-
-               ;; There must be a running X server and make check doesn't start one.
-               ;; Therefore we must do it.
-               (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
-               (setenv "DISPLAY" ":1")
-
-               ;; The .lang files must be found in $XDG_DATA_HOME/gtksourceview-2.0
-               (system "ln -s gtksourceview gtksourceview-2.0")
-               (setenv "XDG_DATA_HOME" (getcwd))
-
-               ;; Finally, the mimetypes must be available.
-               (setenv "XDG_DATA_DIRS" (string-append mime "/share/")))
-             #t)))))
-    (synopsis "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget")
-    (description
-     "GtkSourceView is a portable C library that extends the standard GTK+
-framework for multiline text editing with support for configurable syntax
-highlighting, unlimited undo/redo, search and replace, a completion framework,
-printing and other features typical of a source code editor.")
-    (license license:lgpl2.0+)
-    (home-page "https://developer.gnome.org/gtksourceview/")))
-
 (define-public gtksourceview
   (package
     (name "gtksourceview")
@@ -571,6 +513,51 @@ of a source code editor.")
                 (string-append glade "/share/glade")))
              #t)))))))
 
+(define-public gtksourceview-2
+  (package
+    (inherit gtksourceview)
+    (name "gtksourceview")
+    (version "2.10.5") ; This is the last version which builds against gtk+2
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.bz2"))
+       (sha256
+        (base32 "07hrabhpl6n8ajz10s0d960jdwndxs87szxyn428mpxi8cvpg1f5"))
+       (patches
+        (search-patches
+         "gtksourceview-2-add-default-directory.patch"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((xorg-server (assoc-ref inputs "xorg-server"))
+                    (mime (assoc-ref inputs "shared-mime-info")))
+               ;; There must be a running X server and make check doesn't start one.
+               ;; Therefore we must do it.
+               (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
+               (setenv "DISPLAY" ":1")
+               ;; The .lang files must be found in $XDG_DATA_HOME/gtksourceview-2.0
+               (system "ln -s gtksourceview gtksourceview-2.0")
+               (setenv "XDG_DATA_HOME" (getcwd))
+               ;; Finally, the mimetypes must be available.
+               (setenv "XDG_DATA_DIRS" (string-append mime "/share/")))
+             #t)))))
+    (propagated-inputs
+     `(("gtk+-2" ,gtk+-2)
+       ,@(package-propagated-inputs gtksourceview)))))
+
 (define-public gdk-pixbuf
   (package
     (name "gdk-pixbuf")
-- 
2.26.2


[-- Attachment #1.1.10: 0060-gnu-fuse-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6373 bytes --]

From 22a222359461fda738b3b7e72312f01125381a9c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 07:05:52 -0400
Subject: [PATCH 60/61] 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.
---
 gnu/packages/linux.scm | 103 +++++++++++++++++++++--------------------
 1 file changed, 52 insertions(+), 51 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1c34c5a2e1..6de94349e1 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2606,64 +2606,65 @@ processes currently causing I/O.")
 (define-public fuse
   (package
     (name "fuse")
-    (version "2.9.9")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/libfuse/libfuse/releases/"
-                                  "download/fuse-" version
-                                  "/fuse-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1ddlq6kzxilccgbvxjfx80jx6kamgw4sv49phks2zhlcc1frvrnh"))
-              (patches (search-patches "fuse-overlapping-headers.patch"))))
-    (build-system gnu-build-system)
-    (inputs `(("util-linux" ,util-linux)))
+    (version "3.9.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/libfuse/libfuse.git")
+         (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "10xsbly7rv895c9zv4fqmnrxbdc0kd1qhlk75x4m9cv95f93k843"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:configure-flags (list (string-append "MOUNT_FUSE_PATH="
-                                              (assoc-ref %outputs "out")
-                                              "/sbin")
-                               (string-append "INIT_D_PATH="
-                                              (assoc-ref %outputs "out")
-                                              "/etc/init.d")
-
-                               ;; The rule makes /dev/fuse 666.
-                               (string-append "UDEV_RULES_PATH="
-                                              (assoc-ref %outputs "out")
-                                              "/lib/udev/rules.d"))
+     `(#:tests? #f                 ; FIX-ME: Fails with wrong commands
+       #:configure-flags
+       (list
+        (string-append "-Dudevrulesdir="
+                       (assoc-ref %outputs "out")
+                       "/lib/udev/rules.d")
+        "-Duseroot=false")
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'set-file-names
+         (add-after 'unpack 'patch-program-references
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; libfuse calls out to mount(8) and umount(8).  Make sure
-             ;; it refers to the right ones.
-             (substitute* '("lib/mount_util.c" "util/mount_util.c")
-               (("/bin/(u?)mount" _ maybe-u)
-                (string-append (assoc-ref inputs "util-linux")
-                               "/bin/" maybe-u "mount")))
-             (substitute* '("util/mount.fuse.c")
+             (substitute* "lib/mount.c"
+               (("/bin/mount")
+                (string-append (assoc-ref inputs "util-linux") "/bin/mount"))
+               (("/bin/umount")
+                (string-append (assoc-ref inputs "util-linux") "/bin/umount")))
+             (substitute* "util/mount.fuse.c"
                (("/bin/sh")
-                (which "sh")))
-
-             ;; This hack leads libfuse to search for 'fusermount' in
-             ;; $PATH, where it may find a setuid-root binary, instead of
-             ;; trying solely $out/sbin/fusermount and failing because
-             ;; it's not setuid.
-             (substitute* "lib/Makefile"
-               (("-DFUSERMOUNT_DIR=[[:graph:]]+")
-                "-DFUSERMOUNT_DIR=\\\"/var/empty\\\""))
+                (string-append (assoc-ref inputs "bash") "/bin/sh")))
+             #t))
+         (add-after 'unpack 'patch-install-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "util/install_helper.sh"
+               (("\\$\\{DESTDIR\\}/etc/init.d/fuse3")
+                (string-append (assoc-ref outputs "out") "/etc/init.d/fuse3")))
              #t)))))
-    (supported-systems (delete "i586-gnu" %supported-systems))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("bash" ,bash)
+       ("eudev" ,eudev)
+       ("libiconv" ,libiconv)
+       ("util-linux" ,util-linux)))
+    (synopsis "Filesystem in Userspace")
+    (description "FUSE is an interface for userspace programs to export a
+filesystem to the Linux kernel.  The FUSE project consists of two components:
+the fuse kernel module (maintained in the regular kernel repositories) and the
+libfuse userspace library (maintained in this repository).  Libfuse provides the
+reference implementation for communicating with the FUSE kernel module.")
     (home-page "https://github.com/libfuse/libfuse")
-    (synopsis "Support file systems implemented in user space")
-    (description
-     "As a consequence of its monolithic design, file system code for Linux
-normally goes into the kernel itself---which is not only a robustness issue,
-but also an impediment to system extensibility.  FUSE, for \"file systems in
-user space\", is a kernel module and user-space library that tries to address
-part of this problem by allowing users to run file system implementations as
-user-space processes.")
-    (license (list license:lgpl2.1                ;library
-                   license:gpl2+))))              ;command-line utilities
+    (license
+     (list
+      ;; Headers and Libraries.
+      license:lgpl2.1
+      ;; Others.
+      license:gpl2+))))
 
 (define-public unionfs-fuse
   (package
-- 
2.26.2


[-- Attachment #1.1.11: 0061-gnu-gvfs-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4793 bytes --]

From b9b918f4addca5b5f17e1002b5769a6a5e99fa91 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 4 Jul 2020 07:06:43 -0400
Subject: [PATCH 61/61] 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.
---
 gnu/packages/gnome.scm | 57 +++++++++++++++++++++++-------------------
 1 file changed, 31 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 2fbd7e8f67..1230983f69 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5861,40 +5861,45 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
 (define-public gvfs
   (package
     (name "gvfs")
-    (version "1.40.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/gvfs/"
-                                  (version-major+minor version) "/"
-                                  "gvfs-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
+    (version "1.44.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gvfs/"
+                       (version-major+minor version) "/"
+                       "gvfs-" version ".tar.xz"))
+       (sha256
+        (base32 "0ipv0jgzim6glsgizmfjkx0m3gd1l9lr242m0jj6cdmhs52k5vsh"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
        #:configure-flags
-       (list "-Dsystemduserunitdir=no"
-             "-Dtmpfilesdir=no"
-             ;; Otherwise, the RUNPATH will lack the final path component.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib/gvfs"))))
+       (list
+        "-Dsystemduserunitdir=no"
+        "-Dtmpfilesdir=no"
+        "-Dman=true"
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out") "/lib/gvfs"))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
+     `(("docbook-xml" ,docbook-xml-4.2)
+       ("docbook-xsl" ,docbook-xsl)
        ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
        ("gtk-doc" ,gtk-doc)
+       ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
     (inputs
      `(("avahi" ,avahi)
-       ("docbook-xml" ,docbook-xml-4.2)
-       ("docbook-xsl" ,docbook-xsl)
        ("dbus" ,dbus)
        ("elogind" ,elogind)
        ("fuse" ,fuse)
        ("gcr" ,gcr)
        ("glib" ,glib)
        ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("libarchive" ,libarchive)
        ("libbluray" ,libbluray)
        ("libcap" ,libcap)
@@ -5906,23 +5911,23 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
        ("libimobiledevice" ,libimobiledevice)
        ("libmtp" ,libmtp)
        ("libnfs" ,libnfs)
+       ("libplist" ,libplist)
        ("libsecret" ,libsecret)
        ("libsmbclient" ,samba)
        ("libsoup" ,libsoup)
+       ("libusb" ,libusb)
        ("libxml2" ,libxml2)
        ("openssh" ,openssh)
        ("polkit" ,polkit)
        ("udisks" ,udisks)))
+    (synopsis "Virtual filesystem implementation for GIO")
+    (description "GVfs is a userspace virtual filesystem implementation for GIO
+(a library available in GLib).  GVfs comes with a set of backends, including
+trash support, SFTP, SMB, HTTP, DAV, and many others.  GVfs also contains
+modules for GIO that implement volume monitors and persistent metadata storage.
+There is also FUSE support that provides limited access to the GVfs filesystems
+for applications not using GIO.")
     (home-page "https://wiki.gnome.org/gvfs/")
-    (synopsis "Userspace virtual file system for GIO")
-    (description
-     "GVFS is a userspace virtual file system designed to work with the I/O
-abstraction of GIO.  It contains a GIO module that seamlessly adds GVFS support
-to all applications using the GIO API.  It also supports exposing the GVFS
-mounts to non-GIO applications using FUSE.
-
-GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
-DAV, and others.")
     (license license:lgpl2.0+)))
 
 (define-public gusb
-- 
2.26.2


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

^ permalink raw reply related	[flat|nested] 84+ 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-05 19:25                         ` Danny Milosavljevic
  2020-07-06  5:05                           ` Raghav Gururajan
  1 sibling, 1 reply; 84+ messages in thread
From: Danny Milosavljevic @ 2020-07-05 19:25 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

I've applied most to wip-desktop, with the following changes/comments:

nanomsg: not reproducible
nng: not reproducible
libmpeg3 lots of "undeclared" warnings
libtimidity test failed "Could not initialise libTiMidity" in playmidi

directfb not reproducible
│ │ │ -DirectFB/Core: %s Application Core. (2020-07-05 00:00) %s%s
│ │ │ +DirectFB/Core: %s Application Core. (2020-07-04 23:57) %s%s

libde265 misses dependency to libvideogfx

mjpegtools:

>From https://sourceforge.net/projects/mjpegtools/files/mjpegtools/2.1.0/mjpegtools-2.1.0.tar.gz...
>download failed "https://sourceforge.net/projects/mjpegtools/files/mjpegtools/2.1.0/mjpegtools-2.1.0.tar.gz" 404 "Not Found"
Fallback works, though.

libopenmpt: It is not required to propagate mpg123 or vorbis (see .pc file).

srt: not reproducible; massive diff

flite: Applied with the following changes

diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index 0968b015be..c7fbb986ac 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -66,7 +66,7 @@
     (arguments
      ;; XXX:
      ;; There numerous issues with the testsuite.
-     ;; Enable them once they are fixed in upstream.
+     ;; Enable all of them once they are fixed in upstream.
      `(#:tests? #f
        #:configure-flags
        (list
@@ -76,25 +76,35 @@
                        "/lib"))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-rpath
+           (lambda _
+             (substitute* "main/Makefile"
+              (("flite_LIBS_flags \\+= -Wl,-rpath [^ ]*")
+               "flite_LIBS_flags +="))
+             #t))
+         (delete 'check)
+         ;; Modifying testsuite/Makefile is not done in favor of
+         ;; overriding 'check.
+         ;; The path not taken would be:
+         ;; test:\n\t$(foreach x,$(subst tris1,,$(subst dcoffset_wave,,$(subst flite_test,,$(subst by_word,,$(subst bin2ascii,,$(subst lpc_resynth,,$(subst rfc,,$(subst compare_wave,,$(subst record_in_noise,,$(subst combine_waves,,$(patsubst play_%,,$(subst record_wave,,$(subst lex_lookup,,$(patsubst lpc_test%,,$(patsubst asciiS2U%,,$(patsubst asciiU2S%,,$(ALL))))))))))))))))),echo TEST $x && ./$x data.one && ) true
+         (add-after 'install 'check
+           (lambda _
+             (invoke "make" "-C" "testsuite")
+             (with-directory-excursion "testsuite"
+               (invoke "./token_test")
+               (invoke "./hrg_test")
+               (invoke "./regex_test")
+               (invoke "./nums_test")
+               (invoke "./lex_test")
+               (invoke "./utt_test")
+               (invoke "./multi_thread"))
+             #t))
          (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)))))
+                         (find-files out "\\.a$"))
+               #t))))))
     (native-inputs
      `(("perl" ,perl)))
     (inputs

zxing-cpp: Applied with the following changes

diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 4921ae03a1..2c3df8f42b 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -28,6 +28,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -54,9 +55,31 @@
        (file-name (git-file-name name version))
        (sha256
         (base32 "011sq8wcjfxbnd8sj6bf2fgkamlp8gj6q835g61c952npvwsnl71"))))
+    (native-inputs
+     `(("googletest-source" ,(package-source googletest))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f))                    ; No target
+     `(#:out-of-source? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-googletest
+           ;; Copy the googletest sources to where the CMake build expects them.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((source (assoc-ref inputs "googletest-source"))
+                   (target "test/unit/googletest-src"))
+               (mkdir-p target)
+               (copy-recursively source target)
+               ;; Disable downloading via ExternalProject.
+               (substitute* "test/unit/CMakeLists.txt.in"
+                (("ExternalProject_Add\\(") "message("))
+               #t)))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "test/unit"
+               (invoke "cmake" ".")
+               (invoke "make")
+               (invoke "./ZXingUnitTest"))
+             #t)))))
     (synopsis "C++ port of ZXing")
     (description "ZXing-CPP is a barcode scanning library.")
     (home-page "https://github.com/nu-book/zxing-cpp")

iqa: Applied with the following changes:

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 96fb8147a3..9754de03b7 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -107,7 +107,7 @@
         (base32 "00mgwy031ammab6bwmd1whhvqv3fxy1cs1igabq0n3ag12zhjs77"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; No target
+     `(#:test-target "test"
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)

libnice: Moved gnutls to regular inputs because it's Requires.private in the .pc file.

gst-plugins-bad: Patch does not apply
gst-plugins-ugly: Patch does not apply
gst-libav: Patch does not apply

tesseract-ocr: Is it really necessary to propagate leptonica?
openni2: Is it really necessary to have JRE and the JDK as REGULAR inputs?  Why?
opesles: Did not review yet.  Do we need that random commit ea5104b?  Is there a release to use instead?
  >+    (license (license:non-copyleft "Refer individual files"))))
  I don't think that's acceptable.  If it were, we could just remove the "license" field of all packages--because that's always true.


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

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

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


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

@Danny

Please insert the attached patch between fuse and gvfs in the previous
patch-set.

Regards,
RG.

[-- Attachment #1.1.2: 0069-gnu-libgdata-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5781 bytes --]

From f90d3700bd53c5a6d5f69687a340cd780fa2098f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 5 Jul 2020 21:27:40 -0400
Subject: [PATCH 69/71] gnu: libgdata: Update package definition.

* gnu/packages/gnome.scm (libgdata) [version]: Update to 0.17.12.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to meson.
[outputs]: New output "doc".
[arguments]<#glib-or-gtk?>: New argument.
<#:configure-flags>[-Doauth1]: New flag.
[-Dman]: New flag.
[-Dgtk_doc]: New flag.
<#:phases>['disable-failing-tests]: Remove phase.
['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gobject-introspection, gtk-doc,
gtk+:bin and vala.
[inputs]: Remove cyrus-sasl and glib-networking. Add gtk+ and
gdk-pixbuf+svg.
[propagated-inputs]: Add glib-networking.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 85 +++++++++++++++++++++++++++---------------
 1 file changed, 54 insertions(+), 31 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 079682f27f..74f51b3a06 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1377,54 +1377,77 @@ relationship modeling, and network diagrams.  The program supports various file
 formats like PNG, SVG, PDF and EPS.")
       (license license:gpl2+))))
 
-;; This is the unstable release, but it is required for the current stable
-;; release of gvfs (1.38.1).
 (define-public libgdata
   (package
     (name "libgdata")
-    (version "0.17.9")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
-    (build-system gnu-build-system)
+    (version "0.17.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0613nihsvwvdnmlbjnwi8zqxgmpwyxdapzznq4cy1fp84246zzd0"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:phases
+     '(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Doauth1=enabled"
+        "-Dman=true"
+        "-Dgtk_doc=true")
+       #:phases
        (modify-phases %standard-phases
-         (add-before 'check 'disable-failing-tests
-           (lambda _
-             ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
-             ;; They have been removed in libgdata 0.17.6, so just do the same.
-             (substitute* "gdata/tests/Makefile"
-               (("picasaweb\\$\\(EXEEXT\\) ") ""))
-             #t)))))
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '("gdata-docs.xml"
+                              "gdata-overview.xml"
+                              "gdata-running.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/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
-     `(("glib:bin" ,glib "bin")
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk-doc" ,gtk-doc)
+       ("gtk+:bin" ,gtk+ "bin")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("uhttpmock" ,uhttpmock)))
+       ("uhttpmock" ,uhttpmock)
+       ("vala" ,vala)))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("glib-networking" ,glib-networking)))
+     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gtk+" ,gtk+)))
     (propagated-inputs
      `(("gcr" ,gcr)
        ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("json-glib" ,json-glib)
-       ("liboauth" ,liboauth)
        ("libsoup" ,libsoup)
-       ("libxml2" ,libxml2)))
+       ("libxml2" ,libxml2)
+       ("oauth" ,liboauth)))
+    (synopsis "Google Data APIs")
+    (description "LibGData is a GLib-based library for accessing online service
+APIs using the GData protocol.  It provides APIs to access the common Google
+services, and has full asynchronous support.")
     (home-page "https://wiki.gnome.org/Projects/libgdata")
-    (synopsis "Library for accessing online service APIs")
-    (description
-     "libgdata is a GLib-based library for accessing online service APIs using
-the GData protocol — most notably, Google's services.  It provides APIs to
-access the common Google services, and has full asynchronous support.")
     (license license:lgpl2.1+)))
 
 (define-public libgxps
-- 
2.26.2


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-05 19:25                         ` Danny Milosavljevic
@ 2020-07-06  5:05                           ` Raghav Gururajan
  2020-07-13 13:45                             ` Ludovic Courtès
  2020-07-16  1:21                             ` Raghav Gururajan
  0 siblings, 2 replies; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-06  5:05 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

I reply to your other comments soon.

> openni2: Is it really necessary to have JRE and the JDK as REGULAR inputs?  Why?

Ah, thanks for spotting that. It is only required during build. I have
moved them to native-inputs now.

> opesles: Did not review yet.  Do we need that random commit ea5104b?  Is there a release to use instead?

Unfortunately, this project neither does releases nor tags. They just
bundle things in versioned folders.

>   >+    (license (license:non-copyleft "Refer individual files"))))
>   I don't think that's acceptable.  If it were, we could just remove the "license" field of all packages--because that's always true.

Makes sense! Fixed it now.

Please find the attached patches that are to be applied between
rust-imgref and gtk+-2 commits.

Regards,
RG.




[-- Attachment #1.1.2: 0001-gnu-Add-openni2.patch --]
[-- Type: text/x-patch, Size: 2548 bytes --]

From 22d7b000cffa8a433ecf818858f591f90d69c93b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 6 Jul 2020 00:13:23 -0400
Subject: [PATCH 1/7] 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..774137340d 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)
+       ("openjdk" ,openjdk14)
+       ("openjdk:jdk" ,openjdk14 "jdk")
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("freeglut3" ,freeglut)
+       ("libudev" ,eudev)
+       ("libusb" ,libusb)))
+    (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.3: 0002-gnu-Add-opensles.patch --]
[-- Type: text/x-patch, Size: 6515 bytes --]

From bd946952cf81ddcbb7418a285b5d6cb89860fc8b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 6 Jul 2020 00:45:47 -0400
Subject: [PATCH 2/7] gnu: Add opensles.

* gnu/packages/audio.scm (opensles): New variable.
* gnu/packages/patches/opensles-add-license-file.patch: New file.
* gnu/local.mk (opensles-add-license-file.patch): New reference.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/audio.scm                        | 62 +++++++++++++++++++
 .../patches/opensles-add-license-file.patch   | 45 ++++++++++++++
 3 files changed, 108 insertions(+)
 create mode 100644 gnu/packages/patches/opensles-add-license-file.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 5c203f67d0..5c1eb7224f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1335,6 +1335,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/openssh-hurd.patch			\
   %D%/packages/patches/openresolv-restartcmd-guix.patch	\
   %D%/packages/patches/openscad-parser-boost-1.72.patch	\
+  %D%/packages/patches/opensles-add-license-file.patch			\
   %D%/packages/patches/openssl-runpath.patch			\
   %D%/packages/patches/openssl-1.1-c-rehash-in.patch		\
   %D%/packages/patches/openssl-c-rehash-in.patch		\
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 6be39e9445..166a0d5fe1 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -127,6 +127,68 @@
   #: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"))
+       (patches
+        (search-patches "opensles-add-license-file.patch"))))
+    (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"))
+               (rename-file
+                (string-append out "/LICENSE.txt")
+                (string-append out "/share/LICENSE.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 "file:///LICENSE.txt"))))
+
 (define-public wildmidi
   (package
     (name "wildmidi")
diff --git a/gnu/packages/patches/opensles-add-license-file.patch b/gnu/packages/patches/opensles-add-license-file.patch
new file mode 100644
index 0000000000..c638b3886a
--- /dev/null
+++ b/gnu/packages/patches/opensles-add-license-file.patch
@@ -0,0 +1,45 @@
+From 3a78134a35b448d9d4136ffbc55175be7fab6644 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <raghavgururajan@disroot.org>
+Date: Mon, 6 Jul 2020 00:34:20 -0400
+Subject: [PATCH] [PATCH]: Add license file.
+
+---
+ LICENSE.txt | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+ create mode 100644 LICENSE.txt
+
+diff --git a/LICENSE.txt b/LICENSE.txt
+new file mode 100644
+index 0000000..0fce823
+--- /dev/null
++++ b/LICENSE.txt
+@@ -0,0 +1,25 @@
++/*
++ * Copyright (c) 2007-2011 The Khronos Group Inc.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy of
++ * this software and /or associated documentation files (the "Materials "), to
++ * deal in the Materials without restriction, including without limitation the
++ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Materials, and to permit persons to whom the Materials are
++ * furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included
++ * in all copies or substantial portions of the Materials.
++ *
++ * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ * OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE
++ * MATERIALS.
++ *
++ * OpenSLES_IID.c - OpenSL ES version 1.1
++ *
++ */
+\ No newline at end of file
+-- 
+2.26.2
+
-- 
2.26.2


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

From 92a47107253338aa2a75aae535a84f7d57a96fca Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 6 Jul 2020 00:49:41 -0400
Subject: [PATCH 3/7] 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 774137340d..925e4fcbb0 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.5: 0004-gnu-gst-plugins-ugly-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4798 bytes --]

From a3f1b80a855a6d4d9a532314761ced0b9441c997 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 6 Jul 2020 00:50:22 -0400
Subject: [PATCH 4/7] 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 925e4fcbb0..e47b73bc87 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.6: 0005-gnu-gst-libav-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4386 bytes --]

From d28eb942c492db20db9cdfa2f38afd58246727f0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 6 Jul 2020 00:51:06 -0400
Subject: [PATCH 5/7] 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 e47b73bc87..b39113bea2 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 related	[flat|nested] 84+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-04 11:14                         ` Raghav Gururajan
  2020-07-06  1:36                           ` Raghav Gururajan
@ 2020-07-06 19:24                           ` Danny Milosavljevic
  2020-07-06 19:56                             ` Efraim Flashner
  1 sibling, 1 reply; 84+ messages in thread
From: Danny Milosavljevic @ 2020-07-06 19:24 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

When trying to build gtk+ I get:

/tmp/guix-build-libsoup-2.70.0.drv-0 
--- stderr ---
**
ERROR:../libsoup-2.70.0/tests/ssl-test.c:394:do_tls_interaction_test: Unexpected status 7 Connection terminated unexpectedly (expected 6 SSL handshake failed)
-------

Full log written to /tmp/guix-build-libsoup-2.70.0.drv-0/build/meson-logs/testlog.txt
FAILED: meson-test 
/gnu/store/9m03qg3zrcfr3sxmr5592vkaa4p33sci-meson-for-build-0.53.2/bin/meson test --no-rebuild --print-errorlogs
ninja: build stopped: subcommand failed.
command "ninja" "test" failed with status 1

gtk+ had a problem:

TEST: tree-relationships... (pid=9358)
  /a11y/tree/focus:                                                    
(/tmp/guix-build-gtk+-3.24.20.drv-0/gtk+-3.24.20/testsuite/a11y/.libs/tree-relationships:9358): Gtk-WARNING **: 00:15:13.927: Could not find the icon 'pan-down-symbolic'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
        http://icon-theme.freedesktop.org/releases
FAIL
GTester: last random seed: R02S4bb1d91fca6f2b72aa71362d1367bf22
(pid=9372)
  /a11y/tree/relations:                                                OK
FAIL: tree-relationships

That's because hicolor-icon-theme was not found.  Adding it to native-inputs helped, so I did.

Pushed to wip-desktop with slight changes to mend these problems.

Would it be possible to remove the dependency on Java?
Java is not reproducible right now which makes building gtksourceview (any version) difficult for me.

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-06 19:24                           ` Danny Milosavljevic
@ 2020-07-06 19:56                             ` Efraim Flashner
  0 siblings, 0 replies; 84+ messages in thread
From: Efraim Flashner @ 2020-07-06 19:56 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel, Raghav Gururajan

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

On Mon, Jul 06, 2020 at 09:24:07PM +0200, Danny Milosavljevic wrote:
> When trying to build gtk+ I get:
> 
> /tmp/guix-build-libsoup-2.70.0.drv-0 
> --- stderr ---
> **
> ERROR:../libsoup-2.70.0/tests/ssl-test.c:394:do_tls_interaction_test: Unexpected status 7 Connection terminated unexpectedly (expected 6 SSL handshake failed)
> -------
> 
> Full log written to /tmp/guix-build-libsoup-2.70.0.drv-0/build/meson-logs/testlog.txt
> FAILED: meson-test 
> /gnu/store/9m03qg3zrcfr3sxmr5592vkaa4p33sci-meson-for-build-0.53.2/bin/meson test --no-rebuild --print-errorlogs
> ninja: build stopped: subcommand failed.
> command "ninja" "test" failed with status 1
> 
> gtk+ had a problem:
> 
> TEST: tree-relationships... (pid=9358)
>   /a11y/tree/focus:                                                    
> (/tmp/guix-build-gtk+-3.24.20.drv-0/gtk+-3.24.20/testsuite/a11y/.libs/tree-relationships:9358): Gtk-WARNING **: 00:15:13.927: Could not find the icon 'pan-down-symbolic'. The 'hicolor' theme
> was not found either, perhaps you need to install it.
> You can get a copy from:
>         http://icon-theme.freedesktop.org/releases
> FAIL
> GTester: last random seed: R02S4bb1d91fca6f2b72aa71362d1367bf22
> (pid=9372)
>   /a11y/tree/relations:                                                OK
> FAIL: tree-relationships
> 
> That's because hicolor-icon-theme was not found.  Adding it to native-inputs helped, so I did.
> 
> Pushed to wip-desktop with slight changes to mend these problems.
> 
> Would it be possible to remove the dependency on Java?
> Java is not reproducible right now which makes building gtksourceview (any version) difficult for me.

The other part of java is that it currently only builds on x86_64-linux,
so we really don't want it as a general dependency.


-- 
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] 84+ messages in thread

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-06  5:05                           ` Raghav Gururajan
@ 2020-07-13 13:45                             ` Ludovic Courtès
  2020-07-13 13:50                               ` Raghav Gururajan
  2020-07-16  1:21                             ` Raghav Gururajan
  1 sibling, 1 reply; 84+ messages in thread
From: Ludovic Courtès @ 2020-07-13 13:45 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

Hey Raghav,

Great job on all these packages, and great review by Danny, too!

Danny, what’s your plan wrt. merging ‘wip-desktop’ in ‘master’ or
‘staging’?  It looks like there are loads of good stuff in there.

Thanks,
Ludo’.


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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-13 13:45                             ` Ludovic Courtès
@ 2020-07-13 13:50                               ` Raghav Gururajan
  0 siblings, 0 replies; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-13 13:50 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel


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

Hey Ludo!

> Great job on all these packages, and great review by Danny, too!

Thank you!

> Danny, what’s your plan wrt. merging ‘wip-desktop’ in ‘master’ or
> ‘staging’?  It looks like there are loads of good stuff in there.

Btw, I initially planned to work on four DEs, but practically only one
was feasible. I am planning to finish-up gnome at the end of this month.
So starting August, I could start testing the wip-desktop branch
as-a-whole, in a VM and then work with Danny to merge it to master.

Regards,
RG.



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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-06  5:05                           ` Raghav Gururajan
  2020-07-13 13:45                             ` Ludovic Courtès
@ 2020-07-16  1:21                             ` Raghav Gururajan
  2020-07-17 12:38                               ` Danny Milosavljevic
  1 sibling, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-16  1:21 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

Please find the attached patches.

@Others

Please find the following git log.

*** START ***

commit 11245d7d1c0bcad5a08d08980871646bf50bd2f0
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 15 21:11:06 2020 -0400

    gnu: zenity: Update package definition.

    * gnu/packages/gnome.scm (zenity): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "help".
    [arguments]<#:configure-flags>[--enable-libnotify]: New flag.
    [--enable-webkitgtk]: New flag.
    [--with-help-dir=]: New flag.
    [native-inputs]: Add glib:bin, gtk+:bin, perl and libxml2.
    [inputs]: Add glib, gtk+ and libx11.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit c97586fad6d9329513e6ee1c665c53b7e6855cdd
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 15 21:05:47 2020 -0400

    gnu: yelp: Update package definition.

    * gnu/packages/gnome.scm (yelp) [version]: Update to 3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [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, gtk+:bin, gtk-doc and python-wrapper.
    [inputs]: Add glib and gtk+.
    [home-page]: Modify.

commit 9a4fd7c36c49cada1374ce83941efd3789a8bff6
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 15 17:36:28 2020 -0400

    gnu: yelp-tools: Update package definition.

    * gnu/packages/gnome.scm (yelp-tools): Update package definition.
    [propagated-inputs]: Move itstool, libxml2 and libxslt to ...
    [native-inputs]: ... here.
    [synopsis]: Modify.
    [description]: Modify.

commit f08f1af84dba99afe351c29e4df5669b23467ec5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 15 17:22:32 2020 -0400

    gnu: yelp-xsl: Update package definition.

    * gnu/packages/gnome.scm (yelp-xsl) [version]: Update to 3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:configure-flag>[--enable-doc]: New flag.
    [native-inputs]: Add mallard-ducktype, intltool and libxslt.
    [description]: Modify.
    [license]: Add lgpl2.1+ and expat.

commit 13925ff5981504ba811f2965ddbb2511431148c8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 14 21:51:58 2020 -0400

    gnu: webkitgtk: Update package definition.

    * gnu/packages/webkit.scm (webkitgtk) [version]: Update to 2.28.3.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:configure-flags>[-DENABLE_GLES2]: New flag.
    [-DENABLE_MINIBROWSER]: New flag.
    [-DLIB_INSTALL_DIR]: Remove flag.
    [-DUSE_GSTREAMER_GL]: Remove flag.
    [-DUSE_WOFF2]: Remove flag.
    <#:phases>['configure-bubblewrap-store-directory]: Remove phase.
    ['embed-absolute-wpebackend-reference]: Remove phase.
    [native-inputs]: Add docbook-xsl and gtk-doc and python-2.7.
    [inputs]: Add atk, gstreamer, wayland and woff2.
    [propagated-inputs]: Add glib.
    [synopsis]: Modify.
    [license]: Modify.

commit e843dbb5c02ffb739c1c222a737e7b7dbbed24b5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 14 19:06:41 2020 -0400

    gnu: pipewire: Update package definition.

    * gnu/packages/linux.scm (pipewire) [version]: Update to 0.3.6.
    [source]<origin>[uri]: Modify url.
    [sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Ddocs]: New flag.
    [-Daudiotestsrc]: New flag.
    [-Dffmpeg]: New flag.
    [-Dtest]: New flag.
    [-Dlibcamera]: New flag.
    [-Dvideotestsrc]: New flag.
    [-Dvolume]: New flag.
    [-Dc_link_args]: New flag.
    <#:phases>['move-doc]: New phase.
    [native-inputs]: Add graphviz, doxygen and xmltoman.
    [inputs]: Add bluez, libcamera, glib, jack-2, pulseaudio, libsndfile,
    vulkan-headers and vulkan-loader.
    [synopsis]: Modify.
    [description]: Modify.

commit 2eb7c10dbf7ce06d5270199892234a06797c0888
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 14 22:05:34 2020 -0400

    gnu: tesseract-ocr: Propagate leptonica.

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

commit faf98a15c6f6db821c6190fdc0e27cbdbc13580f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 14 17:21:08 2020 -0400

    gnu: Add xmltoman.

    * gnu/packages/man.scm (xmltoman): New variable.

commit 39dfc4e931930bdfb8c259b4ee5838b832dd9fc8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 14 16:26:28 2020 -0400

    gnu: Add libcamera.

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

commit 1b4d807e0dff5ac9f4032d3c11a7b8a0696eccb2
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 14 13:32:10 2020 -0400

    gnu: hplip: Update hash.

commit a303d53f5f7946ec1b013d4b574fc9575761c001
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 13 03:44:32 2020 -0400

    gnu: Add wpewebkit.

    * gnu/packages/webkit.scm (wpewebkit): New variable.

commit a1cbbf446de3607c10d281b865cf15ae77b7d91d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 13 03:16:47 2020 -0400

    gnu: woff2: Update package definition.

    * gnu/packages/fontutils.scm (woff2): Update package definition.
    [source]: Modify.
    [outputs]: New output "bin".
    [arguments]<#:configure-flags>[-DCMAKE_INSTALL_BINDIR]: New flag.
    [-DCMAKE_INSTALL_INCLUDEDIR]: New flag.
    [-DCMAKE_INSTALL_LIBDIR]: New flag.
    [-DBUILD_SHARED_LIBS]: Remove flag.
    <#:phases>['patch-installation]: New phase.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Change to expat.

commit 8853a749cc54af887284fec83bddc5838986694d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 13 02:00:12 2020 -0400

    gnu: wpebackend-fdo: Update package definition.

    * gnu/packages/webkit.scm (wpebackend-fdo): Update package definition.
    [inputs]: Remove libwpe.
    [propagated-inputs]: Add libwpe.
    [synopsis]: Modify.

commit e90a5e0db901d54ad81ccc85249c628f83bf1a98
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 13 01:48:50 2020 -0400

    gnu: libwpe: Update package definition.

    * gnu/packages/webkit.scm (libwpe): Update package definition.
    [native-inputs]: Add python-wrapper.
    [synopsis]: Modify.
    [description]: Modify.

commit 7a6ff3b48ee3ac2a789ce0fac3d6c2227199e685
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 13 00:45:13 2020 -0400

    gnu: vala: Update package definition.

    * gnu/packages/gnome.scm (vala) [version]: Update to 0.48.7.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to glib-or-gtk.
    [arguments]<#:configure-flags>["--enable-coverage]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml, docbook-xsl, help2man and perl.
    [inputs]: Remove graphviz.
    [propagated-inputs]: Add libgvc.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit 1e9b2acee02c03b0b57b8dc8579ac8482dcb87d3
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 12 20:31:48 2020 -0400

    gnu: gtk+: Add missing input.

    * gnu/package/gtk.scm (gtk+) [native-inputs]: Add hicolor-icon-theme.

commit a0134df6fe09f0a5ee7d1930d8336b8055108b3d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 11 18:36:12 2020 -0400

    gnu: pango: Update package definition.

    * gnu/packages/gtk.scm (pango): Update package definition.
    [arguments]<#:glib-or-gtk?>: New argument.
    [native-inputs]: Add help2man, perl and python-wrapper.
    [propagated-inputs]: Add libthai and libxrender.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

    * gnu/packages/patches/pango-skip-libthai-test.patch: Delete file.

    * gnu/local.mk (pango-skip-libthai-test.patch): Remove reference.

commit 8fdc1ae1c66c9d08f5842962964fffdeeaea9d28
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 11 12:29:32 2020 -0400

    gnu: Add libthai.

    * gnu/packages/gtk.scm (libthai): New variable.

commit d994a6a1511d2840b46ce6121e96bb31787b24a2
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 11 12:20:05 2020 -0400

    gnu: Add libdatrie.

    * gnu/packages/gtk.scm (libdatrie): New variable.

commit 2b979582344e137d22f32a8f943c347ec9a88e16
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 10 21:52:18 2020 -0400

    gnu: openjpeg: Update package definition.

    * gnu/packages/image.scm (openjpeg): Update package definition.
    [outputs]: New output "doc".
    [arguments]<#:tests?>: Remove argument.
    <#:configure-flags>[-DBUILD_DOC]: New flag.
    [-DBUILD_LUTS_GENERATOR]: New flag.
    [-DBUILD_UNIT_TESTS]: New flag.
    [-DBUILD_MJ2]: New flag.
    [-DBUILD_JPWL]: New flag.
    [-DBUILD_JP3D]: New flag.
    [-DBUILD_TESTING]: New flag.
    [-DOPJ_DATA_ROOT]: New flag.
    <#:phases>['disable-failing-tests]: New phase.
    ['move-docs]: New phase.
    [native-inputs]: Add doxygen, openjpeg-data and python-wrapper.
    [inputs]: Add curl and fcgi.
    [synopsis]: Modify.
    [description]: Modify.

commit 3b0c5eb403f37e34d1eaea81ec772ff0d2e9cff1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 10 15:57:04 2020 -0400

    gnu: Add openjpeg-data.

    * gnu/packages/image.scm (openjpeg-data): New variable.

commit e62c2d2a03b8c80325a5123ff17e6a01200adbd2
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 10 10:56:58 2020 -0400

    gnu: libsoup: Update package definition.

    * gnu/packages/gnome.scm (libsoup): Update package definition.
    [arguments]<#:modules>: Remove argument.
    <#:glib-or-gtk?>: New argument.
    <#:phases>['adjust-tests]: Remove phase.
    ['patch-docbook-xml]: New phase.
    ['disable-failing-tests]: New phase.
    ['move-doc]: Modify phase.
    [native-inputs]: Remove gnutls. Add docbook-xml.
    [inputs]: Remove glib-networking. Add samba.
    [propagated-inputs]: Add glib-networking.
    [home-page]: Modify.

commit ac6be0a068ab5e064e3d2ca621cd06fc29428831
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 18:34:16 2020 -0400

    gnu: libsecret: Update package definition.

    * gnu/packages/gnome.scm (libsecret): Update package definition.
    [build-system]: Change from gnu to meson.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:tests?>: Remove argument.
    <#:configure-flags>[--with-html-dir]: Remove flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['check]: New phase.
    ['move-docs]: New phase.
    [native-inputs]: Add dbus, docbook-xml, docbook-xsl, gtk-doc,
    python-wrapper, python-dbus and python-pygobject.
    [inputs]: Remove docbook-xsl and libgcrypt.
    [propagated-inputs]: Add libgcrypt.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Add asl2.0 and gpl2+.

commit ccf88caec4ea397e3be75fed52ab4217123e2a0e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 15:32:05 2020 -0400

    gnu: librsvg-next: Update package definition.

    * gnu/packages/gnome.scm (librsvg-next): Remove inheritance from
librsvg.
    [version]: Update to 2.48.8.
    [source]<origin>[sha256]: Modify base32.
    [modules]: Remove modules.
    [snippet]: Remove snippet.
    [arguments]<#:cargo-inputs>: Add rust-alga, rust-approx, rust-atty,
    rust-autocfg, rust-block, rust-bstr, rust-bumpalo, rust-byteorder,
    rust-cast, rust-cfg-if, rust-clap, rust-criterion, rust-criterion-plot,
    rust-crossbeam-deque, rust-crossbeam-epoch, rust-crossbeam-queue,
    rust-crossbeam-utils, rust-cssparser-macros, rust-csv, rust-csv-core,
    rust-derive-more, rust-dtoa, rust-dtoa-short, rust-either,
    rust-encoding-index-japanese, rust-encoding-index-korean,
    rust-encoding-index-simpchinese, rust-encoding-index-singlebyte,
    rust-encoding-index-tradchinese, rust-encoding-index-tests,
    rust-futf, rust-futures-channel, rust-futures-core,
rust-futures-executor,
    rust-futures-io, rust-futures-macro, rust-futures-task,
rust-futures-util,
    rust-fxhash, rust-generic-array, rust-getrandom, rust-half,
    rust-hermit-abi, rust-idna, rust-itoa, rust-js-sys, rust-libm, rust-log,
    rust-mac, rust-malloc-buf, rust-matches, rust-matrixmultiply,
    rust-maybe-uninit, rust-memchr, rust-memoffset,
rust-new-debug-unreachable,
    rust-nodrop, rust-num-complex, rust-num-integer, rust-num-rational,
    rust-num-cpus, rust-objc, rust-objc-foundation, rust-objc-id,
rust-once-cell,
    rust-oorandom, rust-pangocairo-sys, rust-percent-encoding,
rust-phf-codegen,
    rust-phf-generator, rust-phf-macros, rust-phf-shared, rust-pin-project,
    rust-pin-project-internal, rust-pin-utils, rust-pkg-config,
rust-plotters,
    rust-ppv-lite86, rust-precomputed-hash, rust-proc-macro-hack,
    rust-proc-macro-nested, rust-proc-macro2, rust-quote, rust-rand,
    rust-rand-chacha, rust-rand-core, rust-rand-distr, rust-rand-hc,
    rust-rand-pcg, rust-rawpointer, rust-regex-automata, rust-regex-syntax,
    rust-rgb, rust-rustc-version, rust-ryu, rust-same-file, rust-scopeguard,
    rust-selectors, rust-semver, rust-semver-parser, rust-serde,
    rust-serde-cbor, rust-serde-derive, rust-serde-json, rust-servo-arc,
    rust-siphasher, rust-slab, rust-smallvec, rust-stable-deref-trait,
    rust-string-cache-codegen, rust-syn, rust-tendril, rust-textwrap,
    rust-thin-slice, rust-thread-local, rust-time, rust-tinytemplate,
rust-tinyvec,
    rust-typenum, rust-unicode-bidi, rust-unicode-normalization,
rust-unicode-width,
    rust-unicode-xid, rust-utf, rust-walkdir, rust-wasi, rust-wasm-bindgen,
    rust-wasm-bindgen-backend, rust-wasm-bindgen-macro,
rust-wasm-bindgen-macro-support,
    rust-wasm-bindgen-shared, rust-web-sys, rust-winapi,
rust-winapi-i686-pc-windows-gnu,
    rust-winapi-util, rust-winapi-x86-64-pc-windows-gnu, rust-xml5ever.
    <#:phases>['patch-docbook]: New phase.
    ['prepare-for-build]: Modify phase.
    ['gnu-configure]: Modify.
    ['remove-failing-tests]: Remove phase.
    [native-inputs]: Add docbook-xml, python-wrapper and ruby.
    [inputs]: Add fontconfig, freetype and harfbuzz.
    [synopsis]: Modify.
    [description]: Modify.

commit 47ceef6764ce44b52badbaa10275abbc21ab752b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 10:05:40 2020 -0400

    gnu: Add rust-nalgebra-0.19.

    * gnu/packages/crates-io.scm (rust-nalgebra-0.19): New variable.

commit 60174915d2478f0d23fcd59e18029f7dd37220c8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 09:57:47 2020 -0400

    gnu: Add rust-xml5ever-0.16.

    * gnu/packages/crates-io.scm (rust-xml5ever-0.16): New Variable.

commit 4d6bde65bc13ee142c5ba490fb1727372b339070
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 09:36:50 2020 -0400

    gnu: Add rust-tinyvec-0.3.

    * gnu/packages/crates-io.scm (rust-tinyvec-0.3): New variable.

commit 4aba7254add4df3b608b5745f354e41e505b9e81
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 09:21:14 2020 -0400

    gnu: Add rust-selectors-0.22.

    * gnu/packages/crates-io.scm (rust-selectors-0.22): New variable.

commit 887779c517f0dc7b10fcd05974dc09e79d491d4b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 09:03:34 2020 -0400

    gnu: Add rust-thin-slice-0.1.

    * gnu/packages/crates-io.scm (rust-thin-slice-0.1): New variable.

commit 71e18e69f09c46632e91413bf2f1936a6c526020
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 08:58:21 2020 -0400

    gnu: Add rust-servo-arc-0.1.

    * gnu/packages/crates-io.scm (rust-servo-arc-0.1): New variable.

commit a745441f602f2b30ce19599886f064c778bfe511
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 08:02:04 2020 -0400

    git: Add rust-rgb-0.8.

    * gnu/packages/crates-io.scm (rust-rgb-0.8): New variable.

commit 0e49975422adc4b97c72b9f9b74729ab60b26e6e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 07:54:46 2020 -0400

    gnu: Add rust-bytemuck-1.2.

    * gnu/packages/crates-io.scm (rust-bytemuck-1.2): New variable.

commit 5eae01e8267d13f2b204b31b91047003a6e36c82
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 07:47:50 2020 -0400

    gnu: Add rust-rand-distr-0.2.

    * gnu/packages/crates-io.scm (rust-rand-distr-0.2): New variable.

commit 4dcf62989da3166ca40fa4f3c5c551888087512f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 07:20:20 2020 -0400

    gnu: Add rust-pin-project-0.4.

    * gnu/packages/crates-io.scm (rust-pin-project-0.4): New variable.

commit aa55a904828da2177dc1af513b9e02c93e1f04d9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 07:10:34 2020 -0400

    gnu: Add rust-pin-project-internal-0.4.

    * gnu/packages/crates-io.scm (rust-pin-project-internal-0.4): New
variable.

commit ed44c254b8fb635f1393d59ab5b4726214102029
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 06:57:37 2020 -0400

    gnu: Add rust-itertools-0.9.

    * gnu/packages/crates-io.scm (rust-itertools-0.9): New variable.

commit b3384295a3bc06e3dfcd7fe2e2720e1138ff91b3
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 06:24:38 2020 -0400

    gnu: Add rust-derive-more-0.99.

    * gnu/packages/crates-io.scm (rust-derive-more-0.99): New variable.

commit b88d76191d6ccc6b3fee1e3a5fac87214bd33921
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 06:11:09 2020 -0400

    gnu: Add rust-peg-0.5.

    * gnu/packages/crates-io.scm (rust-peg-0.5): New variable.

commit 781f11b7111641ba828db6578708f38830406442
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 05:56:20 2020 -0400

    gnu: Add rust-peg-0.6.

    * gnu/packages/crates-io.scm (rust-peg-0.6): New variable.

commit 6a528d68fd127ee1d28b335d7e9fdf5789b3abae
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 05:35:36 2020 -0400

    gnu: Add rust-peg-macros-0.6.

    * gnu/packages/crates-io.scm (rust-peg-macros-0.6): New variable.

commit dc076128b1023ef9b3a124033b27de1204b437a1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 05:28:52 2020 -0400

    gnu: Add rust-peg-runtime-0.6.

    * gnu/packages/crates-io.scm (rust-peg-runtime-0.6): New variable.

commit 2bb07bd0288b0b24b61a39c856e88575d657edaf
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 9 05:16:02 2020 -0400

    gnu: Add rust-pangocairo-0.9.

    * gnu/packages/crates-io.scm (rust-pangocairo-0.9): New variable.

commit 9d7906a55f1cf71ba415130adde3213453ee014d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:53:21 2020 -0400

    gnu: Add rust-pango-0.8.

    * gnu/packages/crates-io.scm (rust-pango-0.8): New variable.

commit e4d5578699e49f481a9d9cb92bc8772b459a0c78
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:53:03 2020 -0400

    gnu: Add rust-markup5ever-0.10.

    * gnu/packages/crates-io.scm (rust-markup5ever-0.10): New variable.

commit 18b4927d7ac981cec981719b9da252c88c26d3bb
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:52:26 2020 -0400

    gnu: Add rust-string-cache-codegen-0.5.

    * gnu/packages/crates-io.scm (rust-string-cache-codegen-0.5): New
variable.

commit 08d4259b593d29735ae892d1340896a9d13bd554
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:52:04 2020 -0400

    gnu: Add rust-string-cache-0.8.

    * gnu/packages/crates-io.scm (rust-string-cache-0.8): New variable.

commit 845c8f24b851366eda195f946fddc4d46c95f5e6
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:51:28 2020 -0400

    gnu: Add rust-gdk-pixbuf-0.8.

    * gnu/packages/crates-io.scm (rust-gdk-pixbuf-0.8): New variable.

commit 4a5a15d0702cfb6724d96ee7cf3232e2c3aada27
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:50:51 2020 -0400

    gnu: Add rust-gio-0.8.

    * gnu/packages/crates-io.scm (rust-gio-0.8): New variable.

commit e9731ea683856c84f6527f681418ad93a0796ea6
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:48:59 2020 -0400

    gnu: Add rust-serial-test-derive-0.1.

    * gnu/packages/crates-io.scm (rust-serial-test-derive-0.1): New
variable.

commit fed457440890662c10efe3fceb1026deebd1c6e5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:48:28 2020 -0400

    gnu: Add rust-serial-test-0.1.

    * gnu/packages/crates-io.scm (rust-serial-test-0.1): New variable.

commit 80c4c7b042554e69c65dff0cb65c2edb880f29b4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:48:03 2020 -0400

    gnu: Add rust-serial-test-0.4.

    * gnu/packages/crates-io.scm (rust-serial-test-0.4): New variable.

commit 8d65543c7ab73f8584b46f62c7676ce35b7f0d6c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:47:02 2020 -0400

    gnu : Add rust-serial-test-derive-0.4.

    * gnu/packages/crates-io.scm (rust-serial-test-derive-0.4): New
variable.

commit 23980cab980c49a732181b3464f05c9dfef29650
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:46:42 2020 -0400

    gnu: Add rust-float-cmp-0.6.

    * gnu/packages/crates-io.scm (rust-float-cmp-0.6): New variable.

commit c3df5d13eda86deea0f43a28bb78edca68a94540
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:44:49 2020 -0400

    gnu: Add rust-downcast-rs-1.2.

    * gnu/packages/crates-io.scm (rust-downcast-rs-1.2): New variable.

commit 21450c93bd6bafda55ab0dfeb762ce16819f7521
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:44:20 2020 -0400

    gnu: Add rust-cssparser-0.27.

    * gnu/packages/crates-io.scm (rust-cssparser-0.27): New variable.

commit cb19410f00429d63aa3bc982534b73f1799549bf
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 14:43:51 2020 -0400

    gnu: Add rust-cssparser-macros-0.6.

    * gnu/packages/crates-io.scm (rust-cssparser-macros-0.6): New variable.

commit c63227858d1e9c7563a192af82cbf9fcd5394664
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 13:47:34 2020 -0400

    gnu: librsvg: Update package definition.

    * gnu/packages/gnome.scm (librsvg): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--with-html-dir]: New flag.
    <#:phases>['patch-docbook]: New phase.
    ['remove-failing-tests]: Modify phase.
    [native-inputs]: Add docbook-xml and python-wrapper.
    [inputs]: Add fontconfig, freetype and  harfbuzz.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Update to lgpl2.1+.

commit 2875ac51195fa7944c7791df0ce1a497a5d76e45
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 13:46:52 2020 -0400

    gnu: libnotify: Update package definition.

    * gnu/packages/gnome.scm (libnotify) [version]: Update to 0.7.9.
    [build-system]: Change from gnu to meson.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure>[-Dman]: New flag.
    <#:phases>['patch-docbook]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, gtk-doc and python-wrapper.
    [inputs]: Remove libpng.
    [home-page]: Modify.

commit 6300619139d1a18b5a948aec96dd0b9b83b6fb5c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 13:46:05 2020 -0400

    gnu: libgee: Update package definition.

    * gnu/packages/gnome.scm (libgee): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [native-inputs]: Add gobject-introspection and perl.
    [inputs]: Remove glib and gobject-introspection.
    [propagated-inputs]: Add glib.

commit 321791ac488ff6026ae6d2a79044d926a5faf00f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 13:45:25 2020 -0400

    gnu: libcanberra: Update package definition.

    * gnu/packages/libcanberra.scm (libcanberra): Update package definition.
    [source]<origin>[method]: Change from url-fetch to git-fetch.
    [uri]: Change from fedora to debian.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [inputs]: Add glib and tdb. Remove gtk+.
    [propagated-inputs]: Add gtk+-2 and gtk+.
    [synopsis]: Modify.

commit c282146c9f24ef5cc1926099c60df08fc4d9daa5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 13:44:36 2020 -0400

    gnu: json-glib: Update package definition.

    * gnu/packages/gnome.scm (json-glib): Update package definition.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Ddocs]: New flag.
    [-Dman]: New flag.
    <#:phases>['patch-docbook]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, docbook-xsl, gtk-doc and libxslt.
    [synopsis]: Modify.
    [description]: Modify.

commit fa60ad8e79034bfd415cb8e443e355b51846c6c8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 8 12:57:45 2020 -0400

    gnu: ibus: Update package definition.

    * gnu/packages/ibus.scm (ibus): Update package definition.
    [source]<origin>[method]: Change from url-fetch to git-fetch.
    [uri]: Add git-reference, url and commit.
    [file-name]: Add git-file-name.
    [sha256]: Modify base32.
    [patches]: Add ibus-disable-failing-tests.patch.
    [outputs]: New output 'doc'.
    [arguments]<#:tests?>: Remove argument.
    <#:parallel-build?>: Remove argument.
    <#:configure-flags>[--enable-appindicator]: New flag.
    [--enable-gtk-doc]: New flag.
    [--enable-memconf]: New flag.
    <#:phases>['delete-generated-files]: Remove phase.
    ['patch-docbook-xml]: New phase.
    ['pre-check]: New phase.
    ['move-docs]: New phase.
    [native-inputs]: Remove ucd, unicode-emoji and unicode-cldr-common.
    Add autoconf, automake, docbook-xml, gnome-common, gtk+:bin, gtk-doc,
    libtool, perl, which and xorg-server-for-tests.
    [inputs]: Add python-dbus, python2-dbus, glib, python-pygobject,
    python-wrapper, python-2, python-3, ucd, unicode-cldr-common,
    unicode-emoji, libxkbcommon and libxtst.
    [search-paths]: New field.
    [synopsis]: Modify.

    * gnu/packages/patches/ibus-disable-failing-tests.patch: New file.

    * gnu/local.mk (ibus-disable-failing-tests.patch): New reference.

*** END ***

Regards,
RG.

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

From fa60ad8e79034bfd415cb8e443e355b51846c6c8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 12:57:45 -0400
Subject: [PATCH 01/62] gnu: ibus: Update package definition.

* gnu/packages/ibus.scm (ibus): Update package definition.
[source]<origin>[method]: Change from url-fetch to git-fetch.
[uri]: Add git-reference, url and commit.
[file-name]: Add git-file-name.
[sha256]: Modify base32.
[patches]: Add ibus-disable-failing-tests.patch.
[outputs]: New output 'doc'.
[arguments]<#:tests?>: Remove argument.
<#:parallel-build?>: Remove argument.
<#:configure-flags>[--enable-appindicator]: New flag.
[--enable-gtk-doc]: New flag.
[--enable-memconf]: New flag.
<#:phases>['delete-generated-files]: Remove phase.
['patch-docbook-xml]: New phase.
['pre-check]: New phase.
['move-docs]: New phase.
[native-inputs]: Remove ucd, unicode-emoji and unicode-cldr-common.
Add autoconf, automake, docbook-xml, gnome-common, gtk+:bin, gtk-doc,
libtool, perl, which and xorg-server-for-tests.
[inputs]: Add python-dbus, python2-dbus, glib, python-pygobject,
python-wrapper, python-2, python-3, ucd, unicode-cldr-common,
unicode-emoji, libxkbcommon and libxtst.
[search-paths]: New field.
[synopsis]: Modify.

* gnu/packages/patches/ibus-disable-failing-tests.patch: New file.

* gnu/local.mk (ibus-disable-failing-tests.patch): New reference.
---
 gnu/local.mk                                  |   1 +
 gnu/packages/ibus.scm                         | 193 +++++++++++-------
 .../patches/ibus-disable-failing-tests.patch  |  75 +++++++
 3 files changed, 197 insertions(+), 72 deletions(-)
 create mode 100644 gnu/packages/patches/ibus-disable-failing-tests.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 5c1eb7224f..b36b91ce74 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1093,6 +1093,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/hurd-xattr.patch				\
   %D%/packages/patches/hplip-remove-imageprocessor.patch	\
   %D%/packages/patches/hydra-disable-darcs-test.patch		\
+  %D%/packages/patches/ibus-disable-failing-tests.patch			\
   %D%/packages/patches/icecat-makeicecat.patch			\
   %D%/packages/patches/icecat-avoid-bundled-libraries.patch	\
   %D%/packages/patches/icecat-use-older-reveal-hidden-html.patch	\
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 0793635b7d..2d430f2f3c 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -42,6 +42,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -49,70 +50,64 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages logging)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages unicode)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg))
 
 (define-public ibus
   (package
     (name "ibus")
     (version "1.5.22")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ibus/ibus/"
-                                  "releases/download/"
-                                  version "/ibus-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0jmy2w01phpmqnjnfnak7nvfna57mpgfnl87jwc4iai8ijjynw41"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/ibus/ibus.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "09ynn7gq84q18hhbg6wq2yrliwil42qbzxbwbpggry1s955jg5xb"))
+       (patches
+        (search-patches "ibus-disable-failing-tests.patch"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f  ; tests fail because there's no connection to dbus
-       #:parallel-build? #f ; race condition discovered with emoji support
-       #:configure-flags (list "--enable-python-library"
-                               (string-append
-                                "--with-unicode-emoji-dir="
-                                (assoc-ref %build-inputs "unicode-emoji")
-                                "/share/unicode/emoji")
-                               (string-append
-                                "--with-emoji-annotation-dir="
-                                (assoc-ref %build-inputs "unicode-cldr-common")
-                                "/share/unicode/cldr/common/annotations")
-                               (string-append "--with-ucd-dir="
-                                              (assoc-ref %build-inputs "ucd")
-                                              "/share/ucd")
-                               "--enable-wayland")
+     `(#:configure-flags
+       (list
+        "--enable-wayland"
+        "--enable-appindicator"
+        "--enable-gtk-doc"
+        "--enable-memconf"
+        "--enable-python-library"
+        (string-append
+         "--with-unicode-emoji-dir="
+         (assoc-ref %build-inputs "unicode-emoji")
+         "/share/unicode/emoji")
+        (string-append
+         "--with-emoji-annotation-dir="
+         (assoc-ref %build-inputs "unicode-cldr-common")
+         "/share/unicode/cldr/common/annotations")
+        (string-append "--with-ucd-dir="
+                       (assoc-ref %build-inputs "ucd")
+                       "/share/ucd"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-python-target-directories
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((root (string-append (assoc-ref outputs "out")
-                                        "/lib/python"
-                                        ,(version-major+minor (package-version python))
-                                        "/site-packages")))
-               (substitute* "configure"
-                 (("(py2?overridesdir)=.*" _ var)
-                  (string-append var "=" root "/gi/overrides/"))
-                 (("(pkgpython2dir=).*" _ var)
-                  (string-append var root "/ibus"))))
-             #t))
-         (add-before 'configure 'disable-dconf-update
-           (lambda _
-             (substitute* "data/dconf/Makefile.in"
-               (("dconf update") "echo dconf update"))
-             #t))
-         (add-after 'unpack 'delete-generated-files
-           (lambda _
-             (for-each (lambda (file)
-                         (let ((c (string-append (string-drop-right file 4) "c")))
-                           (when (file-exists? c)
-                             (format #t "deleting ~a\n" c)
-                             (delete-file c))))
-                       (find-files "." "\\.vala"))
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference/ibus"
+               (substitute* "ibus-docs.sgml.in"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
              #t))
          (add-after 'unpack 'fix-paths
            (lambda* (#:key inputs #:allow-other-keys)
@@ -124,50 +119,104 @@
                (("\"(setxkbmap|xmodmap)\"" _ prog)
                 (string-append "\"" (assoc-ref inputs prog) "/bin/" prog "\"")))
              #t))
+         (add-after 'unpack 'disable-dconf-update
+           (lambda _
+             (substitute* "data/dconf/Makefile.am"
+               (("dconf update")
+                "echo dconf update"))
+             #t))
+         (add-before 'configure 'patch-python-target-directories
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((root (string-append (assoc-ref outputs "out")
+                                         "/lib/python"
+                                         ,(version-major+minor (package-version python))
+                                         "/site-packages")))
+               (substitute* "configure"
+                 (("(py2?overridesdir)=.*" _ var)
+                  (string-append var "=" root "/gi/overrides/"))
+                 (("(pkgpython2dir=).*" _ var)
+                  (string-append var root "/ibus"))))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             ;; Tests require running iBus daemon.
+             (system "./bus/ibus-daemon --daemonize")
+             #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)))
          (add-after 'wrap-program 'wrap-with-additional-paths
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Make sure 'ibus-setup' runs with the correct PYTHONPATH and
              ;; GI_TYPELIB_PATH.
-             (let ((out (assoc-ref outputs "out")))
+             (let* ((out (assoc-ref outputs "out")))
                (wrap-program (string-append out "/bin/ibus-setup")
                  `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
                  `("GI_TYPELIB_PATH" ":" prefix
                    (,(getenv "GI_TYPELIB_PATH")
                     ,(string-append out "/lib/girepository-1.0")))))
              #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")
+       ("gnome-common" ,gnome-common)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("which" ,which)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("dbus" ,dbus)
+       ("dbus-python" ,python-dbus)
+       ("dbus-python2" ,python2-dbus)
        ("dconf" ,dconf)
        ("gconf" ,gconf)
+       ("glib" ,glib)
        ("gtk2" ,gtk+-2)
-       ("gtk+" ,gtk+)
+       ("gtk3" ,gtk+)
+       ("iso-codes" ,iso-codes)
        ("json-glib" ,json-glib)
        ("libnotify" ,libnotify)
-       ("libx11" ,libx11)
+       ("pygobject" ,python-pygobject)
+       ("pygobject2" ,python2-pygobject)
+       ("python" ,python-wrapper)
+       ("python2" ,python-2)
+       ("python3" ,python-3)
        ("setxkbmap" ,setxkbmap)
-       ("wayland" ,wayland)
-       ("xmodmap" ,xmodmap)
-       ("iso-codes" ,iso-codes)
-       ("pygobject2" ,python-pygobject)
-       ("python" ,python)))
-    (native-inputs
-     `(("glib" ,glib "bin") ; for glib-genmarshal
-       ("gettext" ,gettext-minimal)
-       ("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler
        ("ucd" ,ucd)
-       ("unicode-emoji" ,unicode-emoji)
        ("unicode-cldr-common" ,unicode-cldr-common)
-       ("vala" ,vala)
-       ("pkg-config" ,pkg-config)))
+       ("unicode-emoji" ,unicode-emoji)
+       ("wayland" ,wayland)
+       ("x11" ,libx11)
+       ("xkbcommon" ,libxkbcommon)
+       ("xmodmap" ,xmodmap)
+       ("xtst" ,libxtst)))
     (native-search-paths
-     (list (search-path-specification
-            (variable "IBUS_COMPONENT_PATH")
-            (files '("share/ibus/component")))))
-    (synopsis "Input method framework")
-    (description
-     "IBus is an input framework providing a full-featured and user-friendly
-input method user interface.  It comes with multilingual input support.  It
-may also simplify input method development.")
+     (list
+      (search-path-specification
+       (variable "IBUS_COMPONENT_PATH")
+       (files '("share/ibus/component")))))
+    ;; To load iBus components.
+    (search-paths native-search-paths)
+    (synopsis "Intelligent Input Bus")
+    (description "IBus is an input framework providing a full-featured and
+user-friendly input method user interface.  It comes with multilingual input
+support.  It may also simplify input method development.")
     (home-page "https://github.com/ibus/ibus/wiki")
     (license lgpl2.1+)))
 
diff --git a/gnu/packages/patches/ibus-disable-failing-tests.patch b/gnu/packages/patches/ibus-disable-failing-tests.patch
new file mode 100644
index 0000000000..6c55550d7a
--- /dev/null
+++ b/gnu/packages/patches/ibus-disable-failing-tests.patch
@@ -0,0 +1,75 @@
+From 402e545ee411f9ef758636a6ac12b4741476b7e0 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <raghavgururajan@disroot.org>
+Date: Sun, 5 Jul 2020 09:44:03 -0400
+Subject: [PATCH] [PATCH]: Disable failing tests.
+
+---
+ bindings/pygobject/Makefile.am | 5 -----
+ bus/Makefile.am                | 1 -
+ src/tests/Makefile.am          | 8 --------
+ 3 files changed, 14 deletions(-)
+
+diff --git a/bindings/pygobject/Makefile.am b/bindings/pygobject/Makefile.am
+index 84bd37cb..16ae0591 100644
+--- a/bindings/pygobject/Makefile.am
++++ b/bindings/pygobject/Makefile.am
+@@ -39,10 +39,6 @@ overrides_PYTHON =				\
+ 
+ TESTS =
+ 
+-if ENABLE_TESTS
+-TESTS += test-override-ibus.py
+-endif
+-
+ # IBus.Keymap() accesses keymap files
+ TESTS_ENVIRONMENT = \
+ 	PYTHONPATH=$(top_srcdir)/tests:$${PYTHONPATH:+:$$PYTHONPATH} \
+@@ -56,7 +52,6 @@ LOG_COMPILER = $(PYTHON) -B
+ EXTRA_DIST =					\
+ 	gi/__init__.py				\
+ 	gi/overrides/__init__.py		\
+-	test-override-ibus.py                   \
+ 	$(NULL)
+ 
+ install-data-hook:
+diff --git a/bus/Makefile.am b/bus/Makefile.am
+index 4383a874..610b0ebc 100644
+--- a/bus/Makefile.am
++++ b/bus/Makefile.am
+@@ -113,7 +113,6 @@ endif
+ if ENABLE_TESTS
+ TESTS = \
+ 	test-matchrule \
+-	test-stress	\
+ 	$(NULL)
+ endif
+ 
+diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
+index 0a2e523c..7e3a2ef9 100644
+--- a/src/tests/Makefile.am
++++ b/src/tests/Makefile.am
+@@ -51,7 +51,6 @@ TESTS = \
+     ibus-keynames                   \
+     ibus-registry                   \
+     ibus-serializable               \
+-    ibus-share                      \
+     ibus-util                       \
+     $(NULL)
+ 
+@@ -61,13 +60,6 @@ if ENABLE_ENGINE
+ TESTS += ibus-engine-switch
+ endif
+ 
+-if ENABLE_GTK3
+-TESTS += ibus-compose
+-if ENABLE_XTEST
+-TESTS += ibus-keypress
+-endif
+-endif
+-
+ TESTS_ENVIRONMENT = \
+     top_builddir=$(top_builddir) \
+     top_srcdir=$(top_srcdir) \
+-- 
+2.26.2
+
-- 
2.27.0


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

From c282146c9f24ef5cc1926099c60df08fc4d9daa5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 13:44:36 -0400
Subject: [PATCH 02/62] gnu: json-glib: Update package definition.

* gnu/packages/gnome.scm (json-glib): Update package definition.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Ddocs]: New flag.
[-Dman]: New flag.
<#:phases>['patch-docbook]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl, gtk-doc and libxslt.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 71 +++++++++++++++++++++++++++++++-----------
 1 file changed, 52 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a739225e4a..f0982b2ed6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3943,30 +3943,63 @@ configuration storage systems.")
   (package
     (name "json-glib")
     (version "1.4.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
     (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"
+        "-Dman=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "json-glib-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/")))
+               (substitute* "meson.build"
+                 (("http://docbook.sourceforge.net/release/xsl/current/")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-1.79.1/"))))
+             #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
-     `(("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")              ;for glib-mkenums and glib-genmarshal
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("glib" ,glib)))                         ;according to json-glib-1.0.pc
-    (home-page "https://wiki.gnome.org/Projects/JsonGlib")
-    (synopsis "Compiler for the GObject type system")
-    (description
-     "JSON-GLib is a C library based on GLib providing serialization and
+     `(("glib" ,glib)))
+    (synopsis "Glib and GObject implementation of JSON")
+    (description "JSON-GLib is a library providing serialization and
 deserialization support for the JavaScript Object Notation (JSON) format
-described by RFC 4627.  It provides parser and generator GObject classes and
-various wrappers for the complex data types employed by JSON, such as arrays
-and objects.")
+described by RFC 4627.  It implements a full JSON parser and generator using
+GLib and GObject, and integrates JSON with GLib data types.")
+    (home-page "https://wiki.gnome.org/Projects/JsonGlib")
     (license license:lgpl2.1+)))
 
 (define-public libxklavier
-- 
2.27.0


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

From 321791ac488ff6026ae6d2a79044d926a5faf00f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 13:45:25 -0400
Subject: [PATCH 03/62] gnu: libcanberra: Update package definition.

* gnu/packages/libcanberra.scm (libcanberra): Update package definition.
[source]<origin>[method]: Change from url-fetch to git-fetch.
[uri]: Change from fedora to debian.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[inputs]: Add glib and tdb. Remove gtk+.
[propagated-inputs]: Add gtk+-2 and gtk+.
[synopsis]: Modify.
---
 gnu/packages/libcanberra.scm | 99 ++++++++++++++++++++----------------
 1 file changed, 55 insertions(+), 44 deletions(-)

diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm
index 32d1cd3605..61d88d5e01 100644
--- a/gnu/packages/libcanberra.scm
+++ b/gnu/packages/libcanberra.scm
@@ -26,10 +26,12 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix utils)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages glib)
@@ -46,44 +48,40 @@
     (version "0.30")
     (source
      (origin
-      (method url-fetch)
-
-      ;; This used to be at 0pointer.de but it vanished.
-      (uri (string-append
-            "http://pkgs.fedoraproject.org/repo/pkgs/libcanberra/libcanberra-"
-            version ".tar.xz/34cb7e4430afaf6f447c4ebdb9b42072/libcanberra-"
-            version ".tar.xz"))
-      (sha256
-       (base32
-        "0wps39h8rx2b00vyvkia5j40fkak3dpipp1kzilqla0cgvk73dn2"))
-      ;; "sound-theme-freedesktop" is the default and fall-back sound theme for
-      ;; XDG desktops and should always be present.
-      ;; http://www.freedesktop.org/wiki/Specifications/sound-theme-spec/
-      ;; We make sure libcanberra will find it.
-      ;;
-      ;; We add the default sounds store directory to the code dealing with
-      ;; XDG_DATA_DIRS and not XDG_DATA_HOME. This is because XDG_DATA_HOME
-      ;; can only be a single directory and is inspected first.  XDG_DATA_DIRS
-      ;; can list an arbitrary number of directories and is only inspected
-      ;; later.  This is designed to allows the user to modify any theme at
-      ;; his pleasure.
-      (patch-flags '("-p0"))
-      (patches
-       (search-patches "libcanberra-sound-theme-freedesktop.patch"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("gstreamer" ,gstreamer)
-       ("gtk+" ,gtk+)
-       ("libltdl" ,libltdl)
-       ("libvorbis" ,libvorbis)
-       ("pulseaudio" ,pulseaudio)
-       ("udev" ,eudev)
-       ("sound-theme-freedesktop" ,sound-theme-freedesktop)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+       (method git-fetch)
+       ;; The original source is no longer available.
+       (uri
+        (git-reference
+         (url "https://salsa.debian.org/gnome-team/libcanberra.git")
+         (commit
+          (string-append "upstream/" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "14bsgi9pf9hbscsg4ad7pzv9k9iyb5nkns474syx9sw8kfgzx6cc"))
+       ;; "sound-theme-freedesktop" is the default and fall-back sound theme for
+       ;; XDG desktops and should always be present.
+       ;; http://www.freedesktop.org/wiki/Specifications/sound-theme-spec/
+       ;; We make sure libcanberra will find it.
+       ;;
+       ;; We add the default sounds store directory to the code dealing with
+       ;; XDG_DATA_DIRS and not XDG_DATA_HOME. This is because XDG_DATA_HOME
+       ;; can only be a single directory and is inspected first.  XDG_DATA_DIRS
+       ;; can list an arbitrary number of directories and is only inspected
+       ;; later.  This is designed to allows the user to modify any theme at
+       ;; his pleasure.
+       (patch-flags '("-p0"))
+       (patches
+        (search-patches "libcanberra-sound-theme-freedesktop.patch"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
        (modify-phases %standard-phases
          (add-before 'build 'patch-default-sounds-directory
            (lambda* (#:key inputs #:allow-other-keys)
@@ -93,14 +91,27 @@
                  (assoc-ref inputs "sound-theme-freedesktop")
                  "/share")))
              #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("glib" ,glib)
+       ("gstreamer" ,gstreamer)
+       ("libltdl" ,libltdl)
+       ("libvorbis" ,libvorbis)
+       ("pulseaudio" ,pulseaudio)
+       ("tdb" ,tdb)
+       ("udev" ,eudev)
+       ("sound-theme-freedesktop" ,sound-theme-freedesktop)))
+    (propagated-inputs
+     `(("gtk+2" ,gtk+-2)
+       ("gtk+3" ,gtk+)))
+    (synopsis "FreeDeskop.org Sound Theme and Name Specifications")
+    (description "Libcanberra is an implementation of the XDG Sound Theme and
+Name Specifications, for generating event sounds on free desktops, such as
+GNOME.  It comes with several backends (ALSA, PulseAudio, OSS, GStreamer, null)
+and is designed to be portable.")
     (home-page "http://0pointer.de/lennart/projects/libcanberra/")
-    (synopsis
-     "Implementation of the XDG Sound Theme and Name Specifications")
-    (description
-     "Libcanberra is an implementation of the XDG Sound Theme and Name
-Specifications, for generating event sounds on free desktops, such as
-GNOME.  It comes with several backends (ALSA, PulseAudio, OSS, GStreamer,
-null) and is designed to be portable.")
     (license lgpl2.1+)))
 
 (define-public libcanberra/gtk+-2
-- 
2.27.0


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

From 6300619139d1a18b5a948aec96dd0b9b83b6fb5c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 13:46:05 -0400
Subject: [PATCH 04/62] gnu: libgee: Update package definition.

* gnu/packages/gnome.scm (libgee): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[native-inputs]: Add gobject-introspection and perl.
[inputs]: Remove glib and gobject-introspection.
[propagated-inputs]: Add glib.
---
 gnu/packages/gnome.scm | 48 ++++++++++++++++++++++--------------------
 1 file changed, 25 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f0982b2ed6..13dc8a7af4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6356,37 +6356,39 @@ wraps things up in a developer-friendly way.")
   (package
     (name "libgee")
     (version "0.20.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/libgee/"
-                                  (version-major+minor version) "/"
-                                  "libgee-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/libgee/"
+                       (version-major+minor version) "/"
+                       "libgee-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-introspection-install-dir
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out")))
-              (substitute* "gee/Makefile.in"
-                (("@INTROSPECTION_GIRDIR@")
-                 (string-append out "/share/gir-1.0/"))
-                (("@INTROSPECTION_TYPELIBDIR@")
-                 (string-append out "/lib/girepository-1.0/")))))))))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (substitute* "gee/Makefile.in"
+                 (("@INTROSPECTION_GIRDIR@")
+                  (string-append out "/share/gir-1.0/"))
+                 (("@INTROSPECTION_TYPELIBDIR@")
+                  (string-append out "/lib/girepository-1.0/")))))))))
     (native-inputs
      `(("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)))
-    (home-page "https://wiki.gnome.org/Projects/Libgee")
+    (propagated-inputs
+     `(("glib" ,glib)))
     (synopsis "GObject collection library")
-    (description
-     "Libgee is a utility library providing GObject-based interfaces and
-classes for commonly used data structures.")
+    (description "Libgee is a utility library providing GObject-based interfaces
+and classes for commonly used data structures.")
+    (home-page "https://wiki.gnome.org/Projects/Libgee")
     (license license:lgpl2.1+)))
 
 (define-public gexiv2
-- 
2.27.0


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

From 2875ac51195fa7944c7791df0ce1a497a5d76e45 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 13:46:52 -0400
Subject: [PATCH 05/62] gnu: libnotify: Update package definition.

* gnu/packages/gnome.scm (libnotify) [version]: Update to 0.7.9.
[build-system]: Change from gnu to meson.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure>[-Dman]: New flag.
<#:phases>['patch-docbook]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gtk-doc and python-wrapper.
[inputs]: Remove libpng.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 78 ++++++++++++++++++++++++++++--------------
 1 file changed, 52 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 13dc8a7af4..713734318f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2422,38 +2422,64 @@ configuring CUPS.")
 (define-public libnotify
   (package
     (name "libnotify")
-    (version "0.7.7")
+    (version "0.7.9")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/" name "/"
-                          (version-major+minor version)  "/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
-    (build-system gnu-build-system)
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:configure-flags '("--disable-static")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dman=false")                  ; XXX: docbook-xsl-ns not available
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute*
+                   (append
+                    (list
+                     "notification-spec.xml"
+                     "reference/libnotify-docs.sgml")
+                    (find-files "releases" "\\.xml$"))
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))))
+         (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
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("gtk+" ,gtk+)))
     (propagated-inputs
-     `(;; In Requires of libnotify.pc.
-       ("gdk-pixbuf" ,gdk-pixbuf)
+     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("glib" ,glib)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("libpng" ,libpng)))
-    (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("glib" ,glib "bin")
-        ("gobject-introspection" ,gobject-introspection)))
-    (home-page "https://developer-next.gnome.org/libnotify/")
-    (synopsis
-     "GNOME desktop notification library")
-    (description
-     "Libnotify is a library that sends desktop notifications to a
+    (synopsis "GNOME desktop notification library")
+    (description "Libnotify is a library that sends desktop notifications to a
 notification daemon, as defined in the Desktop Notifications spec.  These
-notifications can be used to inform the user about an event or display
-some form of information without getting in the user's way.")
+notifications can be used to inform the user about an event or display some
+form of information without getting in the user's way.")
+    (home-page "https://developer.gnome.org/libnotify/")
     (license license:lgpl2.1+)))
 
 (define-public libpeas
-- 
2.27.0


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

From c63227858d1e9c7563a192af82cbf9fcd5394664 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 13:47:34 -0400
Subject: [PATCH 06/62] gnu: librsvg: Update package definition.

* gnu/packages/gnome.scm (librsvg): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--with-html-dir]: New flag.
<#:phases>['patch-docbook]: New phase.
['remove-failing-tests]: Modify phase.
[native-inputs]: Add docbook-xml and python-wrapper.
[inputs]: Add fontconfig, freetype and  harfbuzz.
[synopsis]: Modify.
[description]: Modify.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gnome.scm | 79 +++++++++++++++++++++++++-----------------
 1 file changed, 47 insertions(+), 32 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 713734318f..9dc88c611e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2693,21 +2693,35 @@ dealing with different structured file formats.")
   (package
     (name "librsvg")
     (version "2.40.21")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:configure-flags
-       (list "--disable-static"
-             "--enable-vala") ; needed for e.g. gnome-mines
+       (list
+        "--disable-static"
+        "--enable-vala"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "rsvg-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
          (add-before 'configure 'pre-configure
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "gdk-pixbuf-loader/Makefile.in"
@@ -2716,7 +2730,7 @@ dealing with different structured file formats.")
                (("gdk_pixbuf_moduledir = .*$")
                 (string-append "gdk_pixbuf_moduledir = "
                                "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
-                                "loaders\n"))
+                               "loaders\n"))
                ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
                (("gdk_pixbuf_cache_file = .*$")
                 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
@@ -2725,37 +2739,38 @@ dealing with different structured file formats.")
            (lambda _
              (with-directory-excursion "tests/fixtures/reftests"
                (for-each delete-file
-                         '(;; This test fails on i686:
-                           "svg1.1/masking-path-04-b.svg"
-                           ;; This test fails on armhf:
-                           "svg1.1/masking-mask-01-b.svg"
-                           ;; This test fails on aarch64:
+                         '("bugs/340047.svg"
+                           "bugs/587721-text-transform.svg"
+                           "bugs/749415.svg"
                            "bugs/777834-empty-text-children.svg")))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("vala" ,vala)
-       ("glib" ,glib "bin")                               ; glib-mkenums, etc.
-       ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("vala" ,vala)))
     (inputs
-     `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
-       ;; this ancient version of librsvg.
-       ("pango" ,pango-1.42)
+     `(("bzip2" ,bzip2)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("harfbuzz" ,harfbuzz)
        ("libcroco" ,libcroco)
-       ("bzip2" ,bzip2)
        ("libgsf" ,libgsf)
-       ("libxml2" ,libxml2)))
+       ("libxml2" ,libxml2)
+       ("pango" ,pango)))
     (propagated-inputs
-     ;; librsvg-2.0.pc refers to all of that.
      `(("cairo" ,cairo)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)))
+    (synopsis "SVG rendering library")
+    (description "Librsvg is a library to render SVG images to Cairo surfaces.
+GNOME uses this to render SVG icons.  Outside of GNOME, other desktop
+environments use it for similar purposes.  Wikimedia uses it for Wikipedia's SVG
+diagrams.")
     (home-page "https://wiki.gnome.org/LibRsvg")
-    (synopsis "Render SVG files using Cairo")
-    (description
-     "Librsvg is a C library to render SVG files using the Cairo 2D graphics
-library.")
-    (license license:lgpl2.0+)))
+    (license license:lgpl2.1+)))
 
 (define-public librsvg-next
   (package
-- 
2.27.0


[-- Attachment #1.1.8: 0007-gnu-Add-rust-cssparser-macros-0.6.patch --]
[-- Type: text/x-patch, Size: 1816 bytes --]

From cb19410f00429d63aa3bc982534b73f1799549bf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:43:51 -0400
Subject: [PATCH 07/62] gnu: Add rust-cssparser-macros-0.6.

* gnu/packages/crates-io.scm (rust-cssparser-macros-0.6): New variable.
---
 gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a48b0522db..6306219c01 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -4544,6 +4544,33 @@ Code} (MAC) algorithms.")
      "This package provides the procedural macros for rust-cssparser.")
     (license license:mpl2.0)))
 
+(define-public rust-cssparser-macros-0.6
+  (package
+    (name "rust-cssparser-macros")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cssparser-macros" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0vp13g4blyjvhg3j4r9b7vrwhnfi1y2fmhv8hxgficpjazg7bbnz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-phf-codegen" ,rust-phf-codegen-0.7)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-procedural-masquerade" ,rust-procedural-masquerade-0.1)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-syn" ,rust-syn-1.0))))
+    (home-page "https://github.com/servo/rust-cssparser")
+    (synopsis "Procedural macros for cssparser")
+    (description
+     "This package provides the procedural macros for rust-cssparser.")
+    (license license:mpl2.0)))
+
 (define-public rust-csv-1.1
   (package
     (name "rust-csv")
-- 
2.27.0


[-- Attachment #1.1.9: 0008-gnu-Add-rust-cssparser-0.27.patch --]
[-- Type: text/x-patch, Size: 2445 bytes --]

From 21450c93bd6bafda55ab0dfeb762ce16819f7521 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:44:20 -0400
Subject: [PATCH 08/62] gnu: Add rust-cssparser-0.27.

* gnu/packages/crates-io.scm (rust-cssparser-0.27): New variable.
---
 gnu/packages/crates-io.scm | 40 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 6306219c01..98498b93be 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -4517,6 +4517,46 @@ Code} (MAC) algorithms.")
      "This package contains a Rust implementation of CSS Syntax Level 3.")
     (license license:mpl2.0)))
 
+(define-public rust-cssparser-0.27
+  (package
+    (name "rust-cssparser")
+    (version "0.27.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cssparser" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "02nbm690rmkaz1ca0383qq7mc1g066w3s85f17pdihnda79njjvm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Some test files missing.
+       #:cargo-inputs
+       (("rust-cssparser-macros" ,rust-cssparser-macros-0.6)
+        ("rust-dtoa-short" ,rust-dtoa-short-0.3)
+        ("rust-heapsize" ,rust-heapsize-0.4)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-matches" ,rust-matches-0.1)
+        ("rust-phf" ,rust-phf-0.8)
+        ("rust-procedural-masquerade" ,rust-procedural-masquerade-0.1)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-smallvec" ,rust-smallvec-0.6)
+        ("rust-autocfg" ,rust-autocfg-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-syn" ,rust-syn-1.0))
+       #:cargo-development-inputs
+       (("rust-difference" ,rust-difference-2.0)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-serde-json" ,rust-serde-json-1.0))))
+    (home-page "https://github.com/servo/rust-cssparser")
+    (synopsis "Rust implementation of CSS Syntax Level 3")
+    (description
+     "This package contains a Rust implementation of CSS Syntax Level 3.")
+    (license license:mpl2.0)))
+
 (define-public rust-cssparser-macros-0.3
   (package
     (name "rust-cssparser-macros")
-- 
2.27.0


[-- Attachment #1.1.10: 0009-gnu-Add-rust-downcast-rs-1.2.patch --]
[-- Type: text/x-patch, Size: 1580 bytes --]

From c3df5d13eda86deea0f43a28bb78edca68a94540 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:44:49 -0400
Subject: [PATCH 09/62] gnu: Add rust-downcast-rs-1.2.

* gnu/packages/crates-io.scm (rust-downcast-rs-1.2): 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 98498b93be..46f0d32f5d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -5594,6 +5594,27 @@ from macros.")
 parameters, associated types, and type constraints.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-downcast-rs-1.2
+  (package
+    (name "rust-downcast-rs")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "downcast-rs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0l36kgxqd5djhqwf5abxjmgasdw8n0qsjvw3jdvhi91nj393ba4y"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/marcianx/downcast-rs")
+    (synopsis "Trait object downcasting support using only safe Rust")
+    (description
+     "Trait object downcasting support using only safe Rust.  It supports type
+parameters, associated types, and type constraints.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dogged-0.2
   (package
     (name "rust-dogged")
-- 
2.27.0


[-- Attachment #1.1.11: 0010-gnu-Add-rust-float-cmp-0.6.patch --]
[-- Type: text/x-patch, Size: 1585 bytes --]

From 23980cab980c49a732181b3464f05c9dfef29650 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:46:42 -0400
Subject: [PATCH 10/62] gnu: Add rust-float-cmp-0.6.

* gnu/packages/crates-io.scm (rust-float-cmp-0.6): New variable.
---
 gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 46f0d32f5d..247cd2f09c 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -6868,6 +6868,28 @@ Reader/Writer streams.  Contains bindings for zlib, deflate, and gzip-based
 streams.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-float-cmp-0.6
+  (package
+    (name "rust-float-cmp")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "float-cmp" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0zb1lv3ga18vsnpjjdg87yazbzvmfwwllj3aiid8660rp3qw8qns"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://github.com/mikedilger/float-cmp")
+    (synopsis "Floating point approximate comparison traits")
+    (description
+     "Floating point approximate comparison traits in Rust.")
+    (license license:expat)))
+
 (define-public rust-float-cmp-0.5
   (package
     (name "rust-float-cmp")
-- 
2.27.0


[-- Attachment #1.1.12: 0011-gnu-Add-rust-serial-test-derive-0.4.patch --]
[-- Type: text/x-patch, Size: 1721 bytes --]

From 8d65543c7ab73f8584b46f62c7676ce35b7f0d6c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:47:02 -0400
Subject: [PATCH 11/62] gnu : Add rust-serial-test-derive-0.4.

* gnu/packages/crates-io.scm (rust-serial-test-derive-0.4): New variable.
---
 gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 247cd2f09c..a96754b413 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21401,6 +21401,32 @@ for the serde framework.")
     (description "YAML support for Serde.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-serial-test-derive-0.4
+  (package
+    (name "rust-serial-test-derive")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial_test_derive" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05b5xr36zi8damfg3bmbh1kwdxc3k1y2r8b8pmi7q8jb0bc3i0yh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-syn" ,rust-syn-1.0))))
+    (home-page
+     "https://github.com/palfrey/serial_test_derive/")
+    (synopsis "Serialising Rust tests")
+    (description "Serialising Rust tests")
+    (license license:expat)))
+
 (define-public rust-servo-fontconfig-0.4
   (package
     (name "rust-servo-fontconfig")
-- 
2.27.0


[-- Attachment #1.1.13: 0012-gnu-Add-rust-serial-test-0.4.patch --]
[-- Type: text/x-patch, Size: 1629 bytes --]

From 80c4c7b042554e69c65dff0cb65c2edb880f29b4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:48:03 -0400
Subject: [PATCH 12/62] gnu: Add rust-serial-test-0.4.

* gnu/packages/crates-io.scm (rust-serial-test-0.4): New variable.
---
 gnu/packages/crates-io.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a96754b413..777d00fb35 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21427,6 +21427,31 @@ for the serde framework.")
     (description "Serialising Rust tests")
     (license license:expat)))
 
+(define-public rust-serial-test-0.4
+  (package
+    (name "rust-serial-test")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial_test" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1mkz246ax07nar0bmh3m98kl27lacja98vywi9cjqbsb8g3zgxgy"))))	
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+("rust-parking-lot" ,rust-parking-lot-0.10)
+("rust-serial-test-derive" ,rust-serial-test-derive-0.4))))
+    (home-page
+     "https://github.com/palfrey/serial_test/")
+    (synopsis "Serialising Rust tests")
+    (description "Serialising Rust tests")
+    (license license:expat)))
+
 (define-public rust-servo-fontconfig-0.4
   (package
     (name "rust-servo-fontconfig")
-- 
2.27.0


[-- Attachment #1.1.14: 0013-gnu-Add-rust-serial-test-0.1.patch --]
[-- Type: text/x-patch, Size: 1629 bytes --]

From fed457440890662c10efe3fceb1026deebd1c6e5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:48:28 -0400
Subject: [PATCH 13/62] gnu: Add rust-serial-test-0.1.

* gnu/packages/crates-io.scm (rust-serial-test-0.1): New variable.
---
 gnu/packages/crates-io.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 777d00fb35..3cadde498f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21452,6 +21452,31 @@ for the serde framework.")
     (description "Serialising Rust tests")
     (license license:expat)))
 
+(define-public rust-serial-test-0.1
+  (package
+    (name "rust-serial-test")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial_test" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0qywhzjc4jh6dqqng90maai0mjlmafk9aa5rrl9g3d2g01wdn8ms"))))	
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+("rust-parking-lot" ,rust-parking-lot-0.10)
+("rust-serial-test-derive" ,rust-serial-test-derive-0.4))))
+    (home-page
+     "https://github.com/palfrey/serial_test/")
+    (synopsis "Serialising Rust tests")
+    (description "Serialising Rust tests")
+    (license license:expat)))
+
 (define-public rust-servo-fontconfig-0.4
   (package
     (name "rust-servo-fontconfig")
-- 
2.27.0


[-- Attachment #1.1.15: 0014-gnu-Add-rust-serial-test-derive-0.1.patch --]
[-- Type: text/x-patch, Size: 1688 bytes --]

From e9731ea683856c84f6527f681418ad93a0796ea6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:48:59 -0400
Subject: [PATCH 14/62] gnu: Add rust-serial-test-derive-0.1.

* gnu/packages/crates-io.scm (rust-serial-test-derive-0.1): New variable.
---
 gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 3cadde498f..24a12c022e 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21427,6 +21427,32 @@ for the serde framework.")
     (description "Serialising Rust tests")
     (license license:expat)))
 
+(define-public rust-serial-test-derive-0.1
+  (package
+    (name "rust-serial-test-derive")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial_test_derive" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "17fkqrba233sjhdak986y4w3z4yjxa4idjkh46l7zxgcgjlvrnic"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15))))
+    (home-page
+     "https://github.com/palfrey/serial_test_derive/")
+    (synopsis "Serialising Rust tests")
+    (description "Serialising Rust tests")
+    (license license:expat)))
+
 (define-public rust-serial-test-0.4
   (package
     (name "rust-serial-test")
-- 
2.27.0


[-- Attachment #1.1.16: 0015-gnu-Add-rust-gio-0.8.patch --]
[-- Type: text/x-patch, Size: 2391 bytes --]

From 4a5a15d0702cfb6724d96ee7cf3232e2c3aada27 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:50:51 -0400
Subject: [PATCH 15/62] gnu: Add rust-gio-0.8.

* gnu/packages/crates-io.scm (rust-gio-0.8): New variable.
---
 gnu/packages/crates-io.scm | 41 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 24a12c022e..b6f98b60bd 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -8621,6 +8621,47 @@ DWARF debugging format.")
     (description "Rust bindings for the Gio library.")
     (license license:expat)))
 
+(define-public rust-gio-0.8
+  (package
+    (name "rust-gio")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gio" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0662dc6a0ja97rzr8l2xd5laxhc7nm7i0sc6cnfq28qnm6qmx6l7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ; XXX: Fix-me.
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-fragile" ,rust-fragile-0.3)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
+        ("rust-serial-test" ,rust-serial-test-0.1)
+        ("rust-serial-test-derive" ,rust-serial-test-derive-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     `(("glib" ,glib)))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the Gio library")
+    (description "Rust bindings for the Gio library.")
+    (license license:expat)))
+
 (define-public rust-gio-sys-0.9
   (package
     (name "rust-gio-sys")
-- 
2.27.0


[-- Attachment #1.1.17: 0016-gnu-Add-rust-gdk-pixbuf-0.8.patch --]
[-- Type: text/x-patch, Size: 2142 bytes --]

From 845c8f24b851366eda195f946fddc4d46c95f5e6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:51:28 -0400
Subject: [PATCH 16/62] gnu: Add rust-gdk-pixbuf-0.8.

* gnu/packages/crates-io.scm (rust-gdk-pixbuf-0.8): New variable.
---
 gnu/packages/crates-io.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b6f98b60bd..e208e4a29e 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -8114,6 +8114,42 @@ API library @code{gdi32}.")
      "Rust bindings for the GdkPixbuf library.")
     (license license:expat)))
 
+(define-public rust-gdk-pixbuf-0.8
+  (package
+    (name "rust-gdk-pixbuf")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gdk-pixbuf" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1mxxca0fkcw2rsd3kl3nvlb8ys4cgxqx4n5isjbv0adk8q624j72"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fragile" ,rust-fragile-0.3)
+        ("rust-futures-preview" ,rust-futures-preview-0.3)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
+        ("rust-gio" ,rust-gio-0.8)
+        ("rust-gio-sys" ,rust-gio-sys-0.9)
+        ("rust-glib" ,rust-glib-0.8)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf)))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the GdkPixbuf library")
+    (description
+     "Rust bindings for the GdkPixbuf library.")
+    (license license:expat)))
+
 (define-public rust-gdk-pixbuf-sys-0.9
   (package
     (name "rust-gdk-pixbuf-sys")
-- 
2.27.0


[-- Attachment #1.1.18: 0017-gnu-Add-rust-string-cache-0.8.patch --]
[-- Type: text/x-patch, Size: 2131 bytes --]

From 08d4259b593d29735ae892d1340896a9d13bd554 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:52:04 -0400
Subject: [PATCH 17/62] gnu: Add rust-string-cache-0.8.

* gnu/packages/crates-io.scm (rust-string-cache-0.8): New variable.
---
 gnu/packages/crates-io.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e208e4a29e..01c48640eb 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -23019,6 +23019,39 @@ configurable byte storage.")
 developed as part of the Servo project.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-string-cache-0.8
+  (package
+    (name "rust-string-cache")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "string_cache" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "12i0synp8l0qpnzi5qki4pjq3jx28ykikyffjjjg6fsfxddwfh19"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-new-debug-unreachable"
+         ,rust-new-debug-unreachable-1.0)
+        ("rust-phf-shared" ,rust-phf-shared-0.8)
+        ("rust-precomputed-hash" ,rust-precomputed-hash-0.1)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.4)
+        ("rust-string-cache-shared" ,rust-string-cache-shared-0.3))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.4))))
+    (home-page "https://github.com/servo/string-cache")
+    (synopsis "String interning library for Rust")
+    (description
+     "This package provides a string interning library for Rust,
+developed as part of the Servo project.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-string-cache-codegen-0.4
   (package
     (name "rust-string-cache-codegen")
-- 
2.27.0


[-- Attachment #1.1.19: 0018-gnu-Add-rust-string-cache-codegen-0.5.patch --]
[-- Type: text/x-patch, Size: 1954 bytes --]

From 18b4927d7ac981cec981719b9da252c88c26d3bb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:52:26 -0400
Subject: [PATCH 18/62] gnu: Add rust-string-cache-codegen-0.5.

* gnu/packages/crates-io.scm (rust-string-cache-codegen-0.5): New variable.
---
 gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 01c48640eb..b6891c895d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -23052,6 +23052,35 @@ developed as part of the Servo project.")
 developed as part of the Servo project.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-string-cache-codegen-0.5
+  (package
+    (name "rust-string-cache-codegen")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "string-cache-codegen" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "15vbk5i7kkj5bbx7f0fi477js4svw5py39gi4rk74anj35g8wk7j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-phf-generator" ,rust-phf-generator-0.8)
+        ("rust-phf-shared" ,rust-phf-shared-0.8)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-string-cache-shared"
+         ,rust-string-cache-shared-0.3))))
+    (home-page "https://github.com/servo/string-cache")
+    (synopsis "Codegen library for string-cache")
+    (description
+     "This package provides a codegen library for string-cache,
+developed as part of the Servo project.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-string-cache-codegen-0.4
   (package
     (name "rust-string-cache-codegen")
-- 
2.27.0


[-- Attachment #1.1.20: 0019-gnu-Add-rust-markup5ever-0.10.patch --]
[-- Type: text/x-patch, Size: 1976 bytes --]

From e4d5578699e49f481a9d9cb92bc8772b459a0c78 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:53:03 -0400
Subject: [PATCH 19/62] gnu: Add rust-markup5ever-0.10.

* gnu/packages/crates-io.scm (rust-markup5ever-0.10): New variable.
---
 gnu/packages/crates-io.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b6891c895d..65db59b221 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -12702,6 +12702,37 @@ platform-independently.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-markup5ever-0.10
+  (package
+    (name "rust-markup5ever")
+    (version "0.10.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "markup5ever" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1aqxl1lsc8s6ycsw5ibwynadnb9qpiab4ggwgdq9pjlnjdk8vqxa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-phf" ,rust-phf-0.8)
+        ("rust-string-cache" ,rust-string-cache-0.8)
+        ("rust-tendril" ,rust-tendril-0.4)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.7)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0)
+        ("rust-serde-json" ,rust-serde-json-1.0)
+        ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.5))))
+    (home-page "https://github.com/servo/html5ever")
+    (synopsis "Common code for xml5ever and html5ever")
+    (description
+     "Common code for xml5ever and html5ever.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-markup5ever-0.9
   (package
     (name "rust-markup5ever")
-- 
2.27.0


[-- Attachment #1.1.21: 0020-gnu-Add-rust-pango-0.8.patch --]
[-- Type: text/x-patch, Size: 2049 bytes --]

From 9d7906a55f1cf71ba415130adde3213453ee014d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 8 Jul 2020 14:53:21 -0400
Subject: [PATCH 20/62] gnu: Add rust-pango-0.8.

* gnu/packages/crates-io.scm (rust-pango-0.8): New variable.
---
 gnu/packages/crates-io.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 65db59b221..5c2b87e752 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -15516,6 +15516,40 @@ normally prevent moving a type that has been borrowed from.")
      "Automatically implement traits from the palette crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-pango-0.8
+  (package
+    (name "rust-pango")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pango" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0xq50950il3228grzs4xvc5s6phxcl5l50grz6syvs0vixr6p70y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     `(("pango" ,pango)))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the Pango library")
+    (description
+     "Rust bindings for the Pango library.")
+    (license license:expat)))
+
 (define-public rust-pango-0.7
   (package
     (name "rust-pango")
-- 
2.27.0


[-- Attachment #1.1.22: 0021-gnu-Add-rust-pangocairo-0.9.patch --]
[-- Type: text/x-patch, Size: 2240 bytes --]

From 2bb07bd0288b0b24b61a39c856e88575d657edaf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 05:16:02 -0400
Subject: [PATCH 21/62] gnu: Add rust-pangocairo-0.9.

* gnu/packages/crates-io.scm (rust-pangocairo-0.9): New variable.
---
 gnu/packages/crates-io.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5c2b87e752..76e7ee4980 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -15615,6 +15615,43 @@ normally prevent moving a type that has been borrowed from.")
     (description "This package provides FFI bindings to @code{libpango-1.0}.")
     (license license:expat)))
 
+(define-public rust-pangocairo-0.9
+  (package
+    (name "rust-pangocairo")
+    (version "0.9.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pangocairo" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0bap3h78hdqdyln58349qjjbcv45m8a0a16c4n9fprdj1my0gldx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.8)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-glib" ,rust-glib-0.9)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango" ,rust-pango-0.8)
+        ("rust-pango-sys" ,rust-pango-sys-0.9)
+        ("rust-pangocairo-sys" ,rust-pangocairo-sys-0.10)
+        ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (home-page "http://gtk-rs.org/")
+    (synopsis "Rust bindings for the PangoCairo library")
+    (description
+     "Rust bindings for the PangoCairo library.")
+    (license license:expat)))
+
 (define-public rust-pangocairo-0.8
   (package
     (name "rust-pangocairo")
-- 
2.27.0


[-- Attachment #1.1.23: 0022-gnu-Add-rust-peg-runtime-0.6.patch --]
[-- Type: text/x-patch, Size: 1490 bytes --]

From dc076128b1023ef9b3a124033b27de1204b437a1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 05:28:52 -0400
Subject: [PATCH 22/62] gnu: Add rust-peg-runtime-0.6.

* gnu/packages/crates-io.scm (rust-peg-runtime-0.6): New variable.
---
 gnu/packages/crates-io.scm | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 76e7ee4980..cc28d817d6 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -16222,6 +16222,24 @@ the @code{take_while} predicate returned false after dropping the @code{by_ref}.
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-peg-runtime-0.6
+  (package
+    (name "rust-peg-runtime")
+    (version "0.6.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "peg-runtime" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "0r583cq923v0narrpq73qmp780yg4pablzklhrwnr64xwsbjh6hc"))))
+    (build-system cargo-build-system)
+    (home-page "https://crates.io/crates/peg-runtime")
+    (synopsis "Runtime support for rust-peg grammars")
+    (description "Runtime support for rust-peg grammars.")
+    (license license:expat)))
+
 (define-public rust-percent-encoding-2.1
   (package
     (name "rust-percent-encoding")
-- 
2.27.0


[-- Attachment #1.1.24: 0023-gnu-Add-rust-peg-macros-0.6.patch --]
[-- Type: text/x-patch, Size: 1656 bytes --]

From 6a528d68fd127ee1d28b335d7e9fdf5789b3abae Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 05:35:36 -0400
Subject: [PATCH 23/62] gnu: Add rust-peg-macros-0.6.

* gnu/packages/crates-io.scm (rust-peg-macros-0.6): New variable.
---
 gnu/packages/crates-io.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index cc28d817d6..fd407b9681 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -16222,6 +16222,29 @@ the @code{take_while} predicate returned false after dropping the @code{by_ref}.
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-peg-macros-0.6
+  (package
+    (name "rust-peg-macros")
+    (version "0.6.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "peg-macros" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "0li8qrb8hyqr7v5mhrkym0xp7ijnbksqviqc2i3556cysdgick62"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-peg-runtime" ,rust-peg-runtime-0.6)
+        ("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
+    (home-page "https://crates.io/crates/peg-macros")
+    (synopsis "Procedural macros for rust-peg")
+    (description "Procedural macros for rust-peg.")
+    (license license:expat)))
+
 (define-public rust-peg-runtime-0.6
   (package
     (name "rust-peg-runtime")
-- 
2.27.0


[-- Attachment #1.1.25: 0024-gnu-Add-rust-peg-0.6.patch --]
[-- Type: text/x-patch, Size: 2034 bytes --]

From 781f11b7111641ba828db6578708f38830406442 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 05:56:20 -0400
Subject: [PATCH 24/62] gnu: Add rust-peg-0.6.

* gnu/packages/crates-io.scm (rust-peg-0.6): New variable.
---
 gnu/packages/crates-io.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index fd407b9681..ea1f505e7e 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -16222,6 +16222,37 @@ the @code{take_while} predicate returned false after dropping the @code{by_ref}.
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-peg-0.6
+  (package
+    (name "rust-peg")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "peg" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "15rfp12dgsynplphp443zfw47m2d5snvdm6a25gz48dv2if8fxch"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-failing-tests
+           (lambda _
+             (delete-file "tests/compile-fail/rust_action_type_error.rs")
+             #t)))
+       #:cargo-inputs
+       (("rust-peg-macros" ,rust-peg-macros-0.6)
+        ("rust-peg-runtime" ,rust-peg-runtime-0.6)
+        ("rust-trybuild" ,rust-trybuild-1.0))))
+    (home-page "https://crates.io/crates/peg")
+    (synopsis "Parsing Expression Grammars in Rust")
+    (description "Rust-peg is a simple yet flexible parser generator based on
+the Parsing Expression Grammar formalism.  It provides a Rust macro that builds
+a recursive descent parser from a concise definition of the grammar.")
+    (license license:expat)))
+
 (define-public rust-peg-macros-0.6
   (package
     (name "rust-peg-macros")
-- 
2.27.0


[-- Attachment #1.1.26: 0025-gnu-Add-rust-peg-0.5.patch --]
[-- Type: text/x-patch, Size: 1825 bytes --]

From b88d76191d6ccc6b3fee1e3a5fac87214bd33921 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 06:11:09 -0400
Subject: [PATCH 25/62] gnu: Add rust-peg-0.5.

* gnu/packages/crates-io.scm (rust-peg-0.5): New variable.
---
 gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index ea1f505e7e..1831477dc1 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -16222,6 +16222,32 @@ the @code{take_while} predicate returned false after dropping the @code{by_ref}.
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-peg-0.5
+  (package
+    (name "rust-peg")
+    (version "0.5.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "peg" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "11az3bs3ngvfip920xfr0zwblfkyg6cjgz1v9hmfsdnqw7fi5ps0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-peg-macros" ,rust-peg-macros-0.6)
+        ("rust-quote" ,rust-quote-0.3)
+        ("rust-peg-runtime" ,rust-peg-runtime-0.6)
+        ("rust-trybuild" ,rust-trybuild-1.0))))
+    (home-page "https://crates.io/crates/peg")
+    (synopsis "Parsing Expression Grammars in Rust")
+    (description "Rust-peg is a simple yet flexible parser generator based on
+the Parsing Expression Grammar formalism.  It provides a Rust macro that builds
+a recursive descent parser from a concise definition of the grammar.")
+    (license license:expat)))
+
 (define-public rust-peg-0.6
   (package
     (name "rust-peg")
-- 
2.27.0


[-- Attachment #1.1.27: 0026-gnu-Add-rust-derive-more-0.99.patch --]
[-- Type: text/x-patch, Size: 1698 bytes --]

From b3384295a3bc06e3dfcd7fe2e2720e1138ff91b3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 06:24:38 -0400
Subject: [PATCH 26/62] gnu: Add rust-derive-more-0.99.

* gnu/packages/crates-io.scm (rust-derive-more-0.99): New variable.
---
 gnu/packages/crates-io.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 1831477dc1..dc52d7e870 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -5144,6 +5144,30 @@ for arbitrary structs.")
     (description "Internal helper library for the derive_builder crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-derive-more-0.99
+  (package
+    (name "rust-derive-more")
+    (version "0.99.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "derive_more" version))
+      (file-name (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32 "0xizcpj39rx0474mbbx8m0xww98qh92zsg82gf52qnvbryqri299"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ; XXX: Fix-me.
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-peg" ,rust-peg-0.5)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-syn" ,rust-syn-1.0))))
+    (home-page "https://crates.io/crates/derive_more")
+    (synopsis "Some more derive(Trait) options")
+    (description "Some more derive(Trait) options")
+  (license license:expat)))
+
 (define-public rust-derive-new-0.5
   (package
     (name "rust-derive-new")
-- 
2.27.0


[-- Attachment #1.1.28: 0027-gnu-Add-rust-itertools-0.9.patch --]
[-- Type: text/x-patch, Size: 2137 bytes --]

From ed44c254b8fb635f1393d59ab5b4726214102029 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 06:57:37 -0400
Subject: [PATCH 27/62] gnu: Add rust-itertools-0.9.

* gnu/packages/crates-io.scm (rust-itertools-0.9): New variable.
---
 gnu/packages/crates-io.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index dc52d7e870..c1768f66ab 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -11057,6 +11057,44 @@ immutable interval tree.")
     (description "Parsing ISO8601 dates using nom.")
     (license license:expat)))
 
+(define-public rust-itertools-0.9
+  (package
+    (name "rust-itertools")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "itertools" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jyml7ygr7kijkcjdl3fk5f34y5h5jsavclim7l13zjiavw1hkr8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-criterion-version
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("0.3.0")
+                "0.3.1"))
+             #t)))
+       #:cargo-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-either" ,rust-either-1.5))
+       #:cargo-development-inputs
+       (("rust-permutohedron" ,rust-permutohedron-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.6))))
+    (home-page
+     "https://github.com/rust-itertools/itertools")
+    (synopsis
+     "Extra iterator adaptors, iterator methods, free functions, and macros")
+    (description
+     "Extra iterator adaptors, iterator methods, free functions, and macros.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-itertools-0.8
   (package
     (name "rust-itertools")
-- 
2.27.0


[-- Attachment #1.1.29: 0028-gnu-Add-rust-pin-project-internal-0.4.patch --]
[-- Type: text/x-patch, Size: 1741 bytes --]

From aa55a904828da2177dc1af513b9e02c93e1f04d9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 07:10:34 -0400
Subject: [PATCH 28/62] gnu: Add rust-pin-project-internal-0.4.

* gnu/packages/crates-io.scm (rust-pin-project-internal-0.4): New variable.
---
 gnu/packages/crates-io.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c1768f66ab..e12cd95716 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -17232,6 +17232,29 @@ interactive applications.")
      "This package provides a library for window abstraction.")
     (license license:expat)))
 
+(define-public rust-pin-project-internal-0.4
+  (package
+    (name "rust-pin-project-internal")
+    (version "0.4.22")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pin-project-internal" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xxac6f3ip45zqbfcmmk748ywjw9sbavz1fcswvqgn3rrx2zs3va"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ; XXX: Fix-me.
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-syn" ,rust-syn-1.0))))
+    (home-page "https://crates.io/crates/pin-project-internal")
+    (synopsis "An internal crate to support pin_project")
+    (description "An internal crate to support pin_project")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-pin-project-lite-0.1
   (package
     (name "rust-pin-project-lite")
-- 
2.27.0


[-- Attachment #1.1.30: 0029-gnu-Add-rust-pin-project-0.4.patch --]
[-- Type: text/x-patch, Size: 1644 bytes --]

From 4dcf62989da3166ca40fa4f3c5c551888087512f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 07:20:20 -0400
Subject: [PATCH 29/62] gnu: Add rust-pin-project-0.4.

* gnu/packages/crates-io.scm (rust-pin-project-0.4): 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 e12cd95716..bd6eeb9f5e 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -17232,6 +17232,27 @@ interactive applications.")
      "This package provides a library for window abstraction.")
     (license license:expat)))
 
+(define-public rust-pin-project-0.4
+  (package
+    (name "rust-pin-project")
+    (version "0.4.22")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pin-project" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05wwxy46j9z27ibbiisjqk0rivf0z00h4al1f92mwjp9pz6sdqqj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ; XXX: Fix-me.
+       #:cargo-inputs
+       (("rust-pin-project-internal" ,rust-pin-project-internal-0.4))))
+    (home-page "https://crates.io/crates/pin-project")
+    (synopsis "A crate for safe and ergonomic pin-projection")
+    (description "A crate for safe and ergonomic pin-projection.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-pin-project-internal-0.4
   (package
     (name "rust-pin-project-internal")
-- 
2.27.0


[-- Attachment #1.1.31: 0030-gnu-Add-rust-rand-distr-0.2.patch --]
[-- Type: text/x-patch, Size: 2127 bytes --]

From 5eae01e8267d13f2b204b31b91047003a6e36c82 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 07:47:50 -0400
Subject: [PATCH 30/62] gnu: Add rust-rand-distr-0.2.

* gnu/packages/crates-io.scm (rust-rand-distr-0.2): New variable.
---
 gnu/packages/crates-io.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index bd6eeb9f5e..136a253728 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -18800,6 +18800,42 @@ useful types and distributions, and some randomness-related algorithms.")
        #:cargo-inputs
        (("rust-rand-core" ,rust-rand-core-0.3))))))
 
+(define-public rust-rand-distr-0.2
+  (package
+    (name "rust-rand-distr")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand_distr" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "1cpz577qid09lirjjhhn98yqdwsv0c01jf973pxpcr9svp5pm5wn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ; Requires rust-average
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-rust-average
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("\\[dev-dependencies.average\\]")
+                "")
+               (("version = \"0.10.3\"")
+                ""))
+             #t)))
+       #:cargo-inputs
+       (("rust-rand" ,rust-rand-0.7))
+       #:cargo-development-inputs
+       (("rust-rand-pcg" ,rust-rand-pcg-0.2))))
+    (home-page "https://crates.io/crates/rand_distr")
+    (synopsis "Super-set of the rand::distributions module")
+    (description "Implements a full suite of random number distributions
+sampling routines.")
+    (license (list license:asl2.0
+                   license:expat))))
+
 (define-public rust-rand-hc-0.2
   (package
     (name "rust-rand-hc")
-- 
2.27.0


[-- Attachment #1.1.32: 0031-gnu-Add-rust-bytemuck-1.2.patch --]
[-- Type: text/x-patch, Size: 1466 bytes --]

From 0e49975422adc4b97c72b9f9b74729ab60b26e6e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 07:54:46 -0400
Subject: [PATCH 31/62] gnu: Add rust-bytemuck-1.2.

* gnu/packages/crates-io.scm (rust-bytemuck-1.2): New variable.
---
 gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 136a253728..6a99143b95 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -2116,6 +2116,28 @@ in a byte slice, fast.")
         ("rust-quickcheck" ,rust-quickcheck-0.6)
         ("rust-rand" ,rust-rand-0.4))))))
 
+(define-public rust-bytemuck-1.2
+  (package
+    (name "rust-bytemuck")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bytemuck" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cclc9v10hc1abqrxgirg3qbwa3ra3s0dai3xiwv9v4j4bgi7yip"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://crates.io/crates/bytemuck")
+    (synopsis
+     "A crate for mucking around with piles of bytes")
+    (description
+     "A crate for mucking around with piles of bytes.")
+    (license license:zlib)))
+
 (define-public rust-byteorder-1.3
   (package
     (name "rust-byteorder")
-- 
2.27.0


[-- Attachment #1.1.33: 0032-git-Add-rust-rgb-0.8.patch --]
[-- Type: text/x-patch, Size: 1619 bytes --]

From a745441f602f2b30ce19599886f064c778bfe511 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 08:02:04 -0400
Subject: [PATCH 32/62] git: Add rust-rgb-0.8.

* gnu/packages/crates-io.scm (rust-rgb-0.8): New variable.
---
 gnu/packages/crates-io.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 6a99143b95..2ce55534b3 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -19892,6 +19892,31 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-rgb-0.8
+  (package
+    (name "rust-rgb")
+    (version "0.8.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rgb" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "1620mn5dp1rr9fpvd9wbr3b8l2g4zrij8zjri1x34cg1bas59vwh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1.2)
+        ("rust-serde", rust-serde-1.0))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1.0))))
+    (home-page "https://crates.io/crates/bytemuck")
+    (synopsis "Struct RGB for Rust")
+    (description
+     "RGB and RGBA structs for Rust.")
+    (license license:expat)))
+
 (define-public rust-ring-0.16
   (package
     (name "rust-ring")
-- 
2.27.0


[-- Attachment #1.1.34: 0033-gnu-Add-rust-servo-arc-0.1.patch --]
[-- Type: text/x-patch, Size: 1997 bytes --]

From 71e18e69f09c46632e91413bf2f1936a6c526020 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 08:58:21 -0400
Subject: [PATCH 33/62] gnu: Add rust-servo-arc-0.1.

* gnu/packages/crates-io.scm (rust-servo-arc-0.1): New variable.
---
 gnu/packages/crates-io.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2ce55534b3..d0afd99707 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21969,6 +21969,41 @@ for the serde framework.")
     (description "Serialising Rust tests")
     (license license:expat)))
 
+(define-public rust-servo-arc-0.1
+  (package
+    (name "rust-servo-arc")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "servo-arc" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cjljr9znwahry6p95xvd3p4pmy24wlf6gbfidnmglg002w3i0nr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-versions
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("0\\.1\\.8")
+                "0.1.14")
+               (("1\\.0\\.0")
+                "1.1.1"))
+             #t)))
+       #:cargo-inputs
+       (("rust-nodrop" ,rust-nodrop-0.1)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1.1))))
+    (home-page "https://crates.io/crates/servo_arc")
+    (synopsis "Servo in Rust")
+    (description "A fork of std::sync::Arc with some extra functionality and
+without weak references.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-servo-fontconfig-0.4
   (package
     (name "rust-servo-fontconfig")
-- 
2.27.0


[-- Attachment #1.1.35: 0034-gnu-Add-rust-thin-slice-0.1.patch --]
[-- Type: text/x-patch, Size: 1454 bytes --]

From 887779c517f0dc7b10fcd05974dc09e79d491d4b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 09:03:34 -0400
Subject: [PATCH 34/62] gnu: Add rust-thin-slice-0.1.

* gnu/packages/crates-io.scm (rust-thin-slice-0.1): New variable.
---
 gnu/packages/crates-io.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index d0afd99707..4b68b6c68b 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -24797,6 +24797,26 @@ handle Unicode characters correctly.")
     (properties '((hidden? . #t)))
     (license license:expat)))
 
+(define-public rust-thin-slice-0.1
+  (package
+    (name "rust-thin-slice")
+    (version "0.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "thin-slice" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "0g4z51g3yarah89ijpakbwhrrknw6d7k3ry0m1zqcn3hbhiq3alf"))))
+    (build-system cargo-build-system)
+    (home-page "https://crates.io/crates/thin-slice")
+    (synopsis "Thin slice for Rust")
+    (description
+     "An owned slice that packs the slice storage into a single word when
+possible.")
+    (license license:expat)))
+
 (define-public rust-thiserror-1.0
   (package
     (name "rust-thiserror")
-- 
2.27.0


[-- Attachment #1.1.36: 0035-gnu-Add-rust-selectors-0.22.patch --]
[-- Type: text/x-patch, Size: 2103 bytes --]

From 4aba7254add4df3b608b5745f354e41e505b9e81 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 09:21:14 -0400
Subject: [PATCH 35/62] gnu: Add rust-selectors-0.22.

* gnu/packages/crates-io.scm (rust-selectors-0.22): New variable.
---
 gnu/packages/crates-io.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 4b68b6c68b..874614baea 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21276,6 +21276,40 @@ proven statistical guarantees.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-selectors-0.22
+  (package
+    (name "rust-selectors")
+    (version "0.22.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "selectors" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32
+         "1zhjpvww238lh4nz7kdw4ywlpmjbmzvrm76w1jyacjxci4c0ycnz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cssparser" ,rust-cssparser-0.27)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-matches" ,rust-matches-0.1)
+        ("rust-phf" ,rust-phf-0.8)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.8)
+        ("rust-precomputed-hash" ,rust-precomputed-hash-0.1)
+        ("rust-servo-arc" ,rust-servo-arc-0.1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-thin-slice" ,rust-thin-slice-0.1))))
+    (home-page "https://crates.io/crates/selectors")
+    (synopsis "CSS Selectors library for Rust")
+    (description
+     "Includes parsing and serilization of selectors, as well as matching
+against a generic tree of elements.")
+    (license license:mpl2.0)))
+
 (define-public rust-sema-0.1
   (package
     (name "rust-sema")
-- 
2.27.0


[-- Attachment #1.1.37: 0036-gnu-Add-rust-tinyvec-0.3.patch --]
[-- Type: text/x-patch, Size: 1509 bytes --]

From 4d6bde65bc13ee142c5ba490fb1727372b339070 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 09:36:50 -0400
Subject: [PATCH 36/62] gnu: Add rust-tinyvec-0.3.

* gnu/packages/crates-io.scm (rust-tinyvec-0.3): New variable.
---
 gnu/packages/crates-io.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 874614baea..dd2269ec45 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -25141,6 +25141,29 @@ in Rust.")
      "Simple, lightweight template engine.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-tinyvec-0.3
+  (package
+    (name "rust-tinyvec")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tinyvec" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1vgg2z317kq75bpd0nfda2v507qjpd7g2cjahjgivn2s78nkv5ak"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://crates.io/crates/tinyvec")
+    (synopsis "Tiny vec-like types for Rust")
+    (description
+     "A 100% safe crate of vec-like types.")
+    (license license:zlib)))
+
 (define-public rust-tokio-0.2
   (package
     (name "rust-tokio")
-- 
2.27.0


[-- Attachment #1.1.38: 0037-gnu-Add-rust-xml5ever-0.16.patch --]
[-- Type: text/x-patch, Size: 1865 bytes --]

From 60174915d2478f0d23fcd59e18029f7dd37220c8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 09:57:47 -0400
Subject: [PATCH 37/62] gnu: Add rust-xml5ever-0.16.

* gnu/packages/crates-io.scm (rust-xml5ever-0.16): New Variable.
---
 gnu/packages/crates-io.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index dd2269ec45..5fde6aaefe 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -28846,6 +28846,36 @@ to XDG Base Directory specification")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-xml5ever-0.16
+  (package
+    (name "rust-xml5ever")
+    (version "0.16.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xml5ever" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nbapmdrn4zqry5p01l2mmbb48fcq0gga377p1c4lkb1x3k546qb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-mac" ,rust-mac-0.1)
+        ("rust-markup5ever" ,rust-markup5ever-0.10)
+        ("rust-time" ,rust-time-0.1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rustc-test" ,rust-rustc-test-0.3))))
+    (home-page "https://crates.io/crates/xml5ever")
+    (synopsis "XML parser for Rust")
+    (description "This crate provides a push based XML parser library that
+trades well-formedness for error recovery.")
+    (license (list license:asl2.0
+                   license:expat))))
+
 (define-public rust-xml-rs-0.8
   (package
     (name "rust-xml-rs")
-- 
2.27.0


[-- Attachment #1.1.39: 0038-gnu-Add-rust-nalgebra-0.19.patch --]
[-- Type: text/x-patch, Size: 2568 bytes --]

From 47ceef6764ce44b52badbaa10275abbc21ab752b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 10:05:40 -0400
Subject: [PATCH 38/62] gnu: Add rust-nalgebra-0.19.

* gnu/packages/crates-io.scm (rust-nalgebra-0.19): New variable.
---
 gnu/packages/crates-io.scm | 44 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5fde6aaefe..c24cb0a01f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13712,6 +13712,50 @@ checking.")
     (description "Run NASM during your Cargo build.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-nalgebra-0.19
+  (package
+    (name "rust-nalgebra")
+    (version "0.19.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "nalgebra" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0i87k57nav221lnr9z7ljlwxh8073qsx33bajdm146y00q805fqa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ; XXX: Fix-me.
+       #:cargo-inputs
+       (("rust-abomonation" ,rust-abomonation-0.7)
+        ("rust-alga" ,rust-alga-0.9)
+        ("rust-approx" ,rust-approx-0.3)
+        ("rust-generic-array" ,rust-generic-array-0.12)
+        ("rust-matrixmultiply" ,rust-matrixmultiply-0.2)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-num-rational" ,rust-num-rational-0.2)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-pest" ,rust-pest-2.1)
+        ("rust-pest-derive" ,rust-pest-derive-2.1)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-rand-distr" ,rust-rand-distr-0.2)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0)
+        ("rust-typenum" ,rust-typenum-1))
+       #:cargo-development-inputs
+       (("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
+        ("rust-serde-json" ,rust-serde-json-1.0))))
+    (home-page "https://nalgebra.org")
+    (synopsis "Linear algebra library")
+    (description
+     "This package provides a linear algebra library with transformations and
+statically-sized or dynamically-sized matrices.")
+    (license license:bsd-3)))
+
 (define-public rust-nalgebra-0.18
   (package
     (name "rust-nalgebra")
-- 
2.27.0


[-- Attachment #1.1.40: 0039-gnu-librsvg-next-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 20862 bytes --]

From ccf88caec4ea397e3be75fed52ab4217123e2a0e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 15:32:05 -0400
Subject: [PATCH 39/62] gnu: librsvg-next: Update package definition.

* gnu/packages/gnome.scm (librsvg-next): Remove inheritance from librsvg.
[version]: Update to 2.48.8.
[source]<origin>[sha256]: Modify base32.
[modules]: Remove modules.
[snippet]: Remove snippet.
[arguments]<#:cargo-inputs>: Add rust-alga, rust-approx, rust-atty,
rust-autocfg, rust-block, rust-bstr, rust-bumpalo, rust-byteorder,
rust-cast, rust-cfg-if, rust-clap, rust-criterion, rust-criterion-plot,
rust-crossbeam-deque, rust-crossbeam-epoch, rust-crossbeam-queue,
rust-crossbeam-utils, rust-cssparser-macros, rust-csv, rust-csv-core,
rust-derive-more, rust-dtoa, rust-dtoa-short, rust-either,
rust-encoding-index-japanese, rust-encoding-index-korean,
rust-encoding-index-simpchinese, rust-encoding-index-singlebyte,
rust-encoding-index-tradchinese, rust-encoding-index-tests,
rust-futf, rust-futures-channel, rust-futures-core, rust-futures-executor,
rust-futures-io, rust-futures-macro, rust-futures-task, rust-futures-util,
rust-fxhash, rust-generic-array, rust-getrandom, rust-half,
rust-hermit-abi, rust-idna, rust-itoa, rust-js-sys, rust-libm, rust-log,
rust-mac, rust-malloc-buf, rust-matches, rust-matrixmultiply,
rust-maybe-uninit, rust-memchr, rust-memoffset, rust-new-debug-unreachable,
rust-nodrop, rust-num-complex, rust-num-integer, rust-num-rational,
rust-num-cpus, rust-objc, rust-objc-foundation, rust-objc-id, rust-once-cell,
rust-oorandom, rust-pangocairo-sys, rust-percent-encoding, rust-phf-codegen,
rust-phf-generator, rust-phf-macros, rust-phf-shared, rust-pin-project,
rust-pin-project-internal, rust-pin-utils, rust-pkg-config, rust-plotters,
rust-ppv-lite86, rust-precomputed-hash, rust-proc-macro-hack,
rust-proc-macro-nested, rust-proc-macro2, rust-quote, rust-rand,
rust-rand-chacha, rust-rand-core, rust-rand-distr, rust-rand-hc,
rust-rand-pcg, rust-rawpointer, rust-regex-automata, rust-regex-syntax,
rust-rgb, rust-rustc-version, rust-ryu, rust-same-file, rust-scopeguard,
rust-selectors, rust-semver, rust-semver-parser, rust-serde,
rust-serde-cbor, rust-serde-derive, rust-serde-json, rust-servo-arc,
rust-siphasher, rust-slab, rust-smallvec, rust-stable-deref-trait,
rust-string-cache-codegen, rust-syn, rust-tendril, rust-textwrap,
rust-thin-slice, rust-thread-local, rust-time, rust-tinytemplate, rust-tinyvec,
rust-typenum, rust-unicode-bidi, rust-unicode-normalization, rust-unicode-width,
rust-unicode-xid, rust-utf, rust-walkdir, rust-wasi, rust-wasm-bindgen,
rust-wasm-bindgen-backend, rust-wasm-bindgen-macro, rust-wasm-bindgen-macro-support,
rust-wasm-bindgen-shared, rust-web-sys, rust-winapi, rust-winapi-i686-pc-windows-gnu,
rust-winapi-util, rust-winapi-x86-64-pc-windows-gnu, rust-xml5ever.
<#:phases>['patch-docbook]: New phase.
['prepare-for-build]: Modify phase.
['gnu-configure]: Modify.
['remove-failing-tests]: Remove phase.
[native-inputs]: Add docbook-xml, python-wrapper and ruby.
[inputs]: Add fontconfig, freetype and harfbuzz.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 334 ++++++++++++++++++++++++++++++-----------
 1 file changed, 245 insertions(+), 89 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9dc88c611e..2ac98a5d6d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2774,78 +2774,222 @@ diagrams.")
 
 (define-public librsvg-next
   (package
-    (inherit librsvg)
     (name "librsvg")
-    (version "2.46.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/librsvg/"
-                                  (version-major+minor version)  "/"
-                                  "librsvg-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin (delete-file-recursively "vendor")
-                       ;; Don't demand an exact version for string_cache
-                       (substitute* "rsvg_internals/Cargo.toml"
-                         (("\"=") "\""))
-                       #t))))
+    (version "2.48.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))))
     (build-system cargo-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:modules ((guix build cargo-build-system)
-                  (guix build utils)
-                  ((guix build gnu-build-system) #:prefix gnu:))
-       #:vendor-dir "vendor"
+     `(#:modules
+       ((guix build cargo-build-system)
+        (guix build utils)
+        ((guix build gnu-build-system) #:prefix gnu:))
        #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cairo-rs" ,rust-cairo-rs-0.7)
-        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
-        ("rust-cssparser" ,rust-cssparser-0.25)
-        ("rust-data-url" ,rust-data-url-0.1)
-        ("rust-downcast-rs" ,rust-downcast-rs-1.1)
-        ("rust-encoding" ,rust-encoding-0.2)
-        ("rust-float-cmp" ,rust-float-cmp-0.5)
-        ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
-        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
-        ("rust-gio" ,rust-gio-0.7)
-        ("rust-gio-sys" ,rust-gio-sys-0.9)
-        ("rust-glib" ,rust-glib-0.8)
-        ("rust-glib-sys" ,rust-glib-sys-0.9)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.9)
-        ("rust-itertools" ,rust-itertools-0.8)
-        ("rust-language-tags" ,rust-language-tags-0.2)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-locale-config" ,rust-locale-config-0.3)
-        ("rust-markup5ever" ,rust-markup5ever-0.9)
-        ("rust-nalgebra" ,rust-nalgebra-0.18)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-pango" ,rust-pango-0.7)
-        ("rust-pango-sys" ,rust-pango-sys-0.9)
-        ("rust-pangocairo" ,rust-pangocairo-0.8)
-        ("rust-phf" ,rust-phf-0.7)
-        ("rust-rayon" ,rust-rayon-1)
-        ("rust-rctree" ,rust-rctree-0.3)
-        ("rust-string-cache" ,rust-string-cache-0.7)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-url" ,rust-url-2.1)
-        ("rust-xml-rs" ,rust-xml-rs-0.8))
+       ( ;; Keep this list updated in accordance with Cargo.lock.
+        ("aho-corasick" ,rust-aho-corasick-0.7)
+        ("alga" ,rust-alga-0.9)
+        ("approx" ,rust-approx-0.3)
+        ("atty" ,rust-atty-0.2)
+        ("autocfg" ,rust-autocfg-1.0)
+        ("bitflags" ,rust-bitflags-1)
+        ("block" ,rust-block-0.1)
+        ("bstr" ,rust-bstr-0.2)
+        ("bumpalo" ,rust-bumpalo-3)
+        ("byteorder" ,rust-byteorder-1.3)
+        ("cairo-rs" ,rust-cairo-rs-0.8)
+        ("cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("cast" ,rust-cast-0.2)
+        ("cfg-if" ,rust-cfg-if-0.1)
+        ("clap" ,rust-clap-2)
+        ("criterion" ,rust-criterion-0.3)
+        ("criterion-plot" ,rust-criterion-plot-0.4)
+        ("crossbeam-deque" ,rust-crossbeam-deque-0.7)
+        ("crossbeam-epoch" ,rust-crossbeam-epoch-0.8)
+        ("crossbeam-queue" ,rust-crossbeam-queue-0.2)
+        ("crossbeam-utils" ,rust-crossbeam-utils-0.7)
+        ("cssparser" ,rust-cssparser-0.27)
+        ("cssparser-macros" ,rust-cssparser-macros-0.6)
+        ("csv" ,rust-csv-1.1)
+        ("csv-core" ,rust-csv-core-0.1)
+        ("data-url" ,rust-data-url-0.1)
+        ("derive_more" ,rust-derive-more-0.99)
+        ("downcast-rs" ,rust-downcast-rs-1.2)
+        ("dtoa" ,rust-dtoa-0.4)
+        ("dtoa-short" ,rust-dtoa-short-0.3)
+        ("either" ,rust-either-1.5)
+        ("encoding" ,rust-encoding-0.2)
+        ("encoding-index-japanese" ,rust-encoding-index-japanese-1.20141219)
+        ("encoding-index-korean" ,rust-encoding-index-korean-1.20141219)
+        ("encoding-index-simpchinese" ,rust-encoding-index-simpchinese-1.20141219)
+        ("encoding-index-singlebyte" ,rust-encoding-index-singlebyte-1.20141219)
+        ("encoding-index-tradchinese" ,rust-encoding-index-tradchinese-1.20141219)
+        ("encoding_index_tests" ,rust-encoding-index-tests-0.1)
+        ("float-cmp" ,rust-float-cmp-0.6)
+        ("futf" ,rust-futf-0.1)
+        ("futures-channel" ,rust-futures-channel-0.3)
+        ("futures-core" ,rust-futures-core-0.3)
+        ("futures-executor" ,rust-futures-executor-0.3)
+        ("futures-io" ,rust-futures-io-0.3)
+        ("futures-macro" ,rust-futures-macro-0.3)
+        ("futures-task" ,rust-futures-task-0.3)
+        ("futures-util" ,rust-futures-util-0.3)
+        ("fxhash" ,rust-fxhash-0.2)
+        ("gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
+        ("gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
+        ("generic-array" ,rust-generic-array-0.13)
+        ("getrandom" ,rust-getrandom-0.1)
+        ("gio" ,rust-gio-0.8)
+        ("gio-sys" ,rust-gio-sys-0.9)
+        ("glib" ,rust-glib-0.9)
+        ("glib-sys" ,rust-glib-sys-0.9)
+        ("gobject-sys" ,rust-gobject-sys-0.9)
+        ("half" ,rust-half-1.3)
+        ("hermit-abi" ,rust-hermit-abi-0.1)
+        ("idna" ,rust-idna-0.2)
+        ("itertools-0.8" ,rust-itertools-0.8)
+        ("itertools-0.9" ,rust-itertools-0.9)
+        ("itoa" ,rust-itoa-0.4)
+        ("js-sys" ,rust-js-sys-0.3)
+        ("language-tags" ,rust-language-tags-0.2)
+        ("lazy-static" ,rust-lazy-static-1)
+        ("libc" ,rust-libc-0.2)
+        ("libm" ,rust-libm-0.2)
+        ("locale-config" ,rust-locale-config-0.3)
+        ("log" ,rust-log-0.4)
+        ("mac" ,rust-mac-0.1)
+        ("malloc_buf" ,rust-malloc-buf-0.0)
+        ("markup5ever" ,rust-markup5ever-0.10)
+        ("matches" ,rust-matches-0.1)
+        ("matrixmultiply" ,rust-matrixmultiply-0.2)
+        ("maybe-uninit" ,rust-maybe-uninit-2.0)
+        ("memchr" ,rust-memchr-2)
+        ("memoffset" ,rust-memoffset-0.5)
+        ("nalgebra" ,rust-nalgebra-0.19)
+        ("new_debug_unreachable" ,rust-new-debug-unreachable-1.0)
+        ("nodrop" ,rust-nodrop-0.1)
+        ("num-complex" ,rust-num-complex-0.2)
+        ("num-integer" ,rust-num-integer-0.1)
+        ("num-rational" ,rust-num-rational-0.2)
+        ("num-traits" ,rust-num-traits-0.2)
+        ("num_cpus" ,rust-num-cpus-1)
+        ("objc" ,rust-objc-0.2)
+        ("objc-foundation" ,rust-objc-foundation-0.1)
+        ("objc_id" ,rust-objc-id-0.1)
+        ("once_cell" ,rust-once-cell-1.2)
+        ("oorandom" ,rust-oorandom-11.1)
+        ("pango" ,rust-pango-0.8)
+        ("pango-sys" ,rust-pango-sys-0.9)
+        ("pangocairo" ,rust-pangocairo-0.9)
+        ("pangocairo-sys" ,rust-pangocairo-sys-0.10)
+        ("percent-encoding" ,rust-percent-encoding-2.1)
+        ("phf" ,rust-phf-0.8)
+        ("phf_codegen" ,rust-phf-codegen-0.8)
+        ("phf_generator" ,rust-phf-generator-0.8)
+        ("phf_macros" ,rust-phf-macros-0.8)
+        ("phf_shared" ,rust-phf-shared-0.8)
+        ("pin-project" ,rust-pin-project-0.4)
+        ("pin-project-internal" ,rust-pin-project-internal-0.4)
+        ("pin-utils" ,rust-pin-utils-0.1)
+        ("pkg-config" ,rust-pkg-config-0.3)
+        ("plotters" ,rust-plotters-0.2)
+        ("ppv-lite86" ,rust-ppv-lite86-0.2)
+        ("precomputed-hash" ,rust-precomputed-hash-0.1)
+        ("proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("proc-macro-nested" ,rust-proc-macro-nested-0.1)
+        ("proc-macro2" ,rust-proc-macro2-1.0)
+        ("quote" ,rust-quote-1.0)
+        ("rand" ,rust-rand-0.7)
+        ("rand_chacha" ,rust-rand-chacha-0.2)
+        ("rand_core" ,rust-rand-core-0.5)
+        ("rand_distr" ,rust-rand-distr-0.2)
+        ("rand_hc" ,rust-rand-hc-0.2)
+        ("rand_pcg" ,rust-rand-pcg-0.2)
+        ("rawpointer" ,rust-rawpointer-0.2)
+        ("rayon" ,rust-rayon-1)
+        ("rayon-core" ,rust-rayon-core-1)
+        ("rctree" ,rust-rctree-0.3)
+        ("regex" ,rust-regex-1)
+        ("regex-automata" ,rust-regex-automata-0.1)
+        ("regex-syntax" ,rust-regex-syntax-0.6)
+        ("rgb" ,rust-rgb-0.8)
+        ("rustc_version" ,rust-rustc-version-0.2)
+        ("ryu" ,rust-ryu-1.0)
+        ("same-file" ,rust-same-file-1.0)
+        ("scopeguard" ,rust-scopeguard-1.0)
+        ("selectors" ,rust-selectors-0.22)
+        ("semver" ,rust-semver-0.9)
+        ("semver-parser" ,rust-semver-parser-0.7)
+        ("serde" ,rust-serde-1.0)
+        ("serde_cbor" ,rust-serde-cbor-0.11)
+        ("serde_derive" ,rust-serde-derive-1.0)
+        ("serde_json" ,rust-serde-json-1.0)
+        ("servo_arc" ,rust-servo-arc-0.1)
+        ("siphasher" ,rust-siphasher-0.3)
+        ("slab" ,rust-slab-0.4)
+        ("smallvec" ,rust-smallvec-1)
+        ("stable_deref_trait" ,rust-stable-deref-trait-1.1)
+        ("string-cache" ,rust-string-cache-0.8)
+        ("string_cache_codegen" ,rust-string-cache-codegen-0.5)
+        ("syn" ,rust-syn-1.0)
+        ("tendril" ,rust-tendril-0.4)
+        ("textwrap" ,rust-textwrap-0.11)
+        ("thin-slice" ,rust-thin-slice-0.1)
+        ("thread_local" ,rust-thread-local-1.0)
+        ("time" ,rust-time-0.1)
+        ("tinytemplate" ,rust-tinytemplate-1.0)
+        ("tinyvec" ,rust-tinyvec-0.3)
+        ("typenum" ,rust-typenum-1)
+        ("unicode-bidi" ,rust-unicode-bidi-0.3)
+        ("unicode-normalization" ,rust-unicode-normalization-0.1)
+        ("unicode-width" ,rust-unicode-width-0.1)
+        ("unicode-xid" ,rust-unicode-xid-0.2)
+        ("url" ,rust-url-2.1)
+        ("utf-8" ,rust-utf-8-0.7)
+        ("walkdir" ,rust-walkdir-2.3)
+        ("wasi" ,rust-wasi-0.9)
+        ("wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("wasm-bindgen-backend" ,rust-wasm-bindgen-backend-0.2)
+        ("wasm-bindgen-macro" ,rust-wasm-bindgen-macro-0.2)
+        ("wasm-bindgen-macro-support" ,rust-wasm-bindgen-macro-support-0.2)
+        ("wasm-bindgen-shared" ,rust-wasm-bindgen-shared-0.2)
+        ("web-sys" ,rust-web-sys-0.3)
+        ("winapi" ,rust-winapi-0.3)
+        ("winapi-i686-pc-windows-gnu" ,rust-winapi-i686-pc-windows-gnu-0.4)
+        ("winapi-util" ,rust-winapi-util-0.1)
+        ("winapi-x86_64-pc-windows-gnu" ,rust-winapi-x86-64-pc-windows-gnu-0.4)
+        ("xml5ever" ,rust-xml5ever-0.16))
        #:cargo-development-inputs
-       (("rust-cairo-rs" ,rust-cairo-rs-0.7)
-        ("rust-criterion" ,rust-criterion-0.2))
+       (("rust-cairo-rs" ,rust-cairo-rs-0.8)
+        ("rust-criterion" ,rust-criterion-0.3))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "rsvg-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
          (add-after 'unpack 'prepare-for-build
            (lambda _
+             (delete-file-recursively "vendor")
+             ;; Don't demand an exact version for string_cache
+             (substitute* "rsvg_internals/Cargo.toml"
+               (("\"=") "\""))
              ;; In lieu of #:make-flags
              (setenv "CC" "gcc")
              ;; Something about the build environment resists building
              ;; successfully with the '--locked' flag.
-             (substitute* '("Makefile.am"
-                            "Makefile.in")
+             (substitute* '("Makefile.am" "Makefile.in")
                (("--locked") ""))
              #t))
          (add-before 'configure 'pre-configure
@@ -2856,23 +3000,29 @@ diagrams.")
                (("gdk_pixbuf_moduledir = .*$")
                 (string-append "gdk_pixbuf_moduledir = "
                                "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
-                                "loaders\n"))
+                               "loaders\n"))
                ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
                (("gdk_pixbuf_cache_file = .*$")
                 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
              #t))
          (add-after 'configure 'gnu-configure
-           (assoc-ref gnu:%standard-phases 'configure))
-           ;(lambda* (#:key outputs #:allow-other-keys)
-           ;  ((assoc-ref gnu:%standard-phases 'configure)
-           ;   #:outputs outputs
-           ;   #:configure-flags ("--disable-static"
-           ;                      "--enable-vala"))))
+           (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
+             ((assoc-ref gnu:%standard-phases 'configure)
+              #:native-inputs native-inputs
+              #:inputs inputs
+              #:outputs outputs
+              #:configure-flags
+              (list
+               "--disable-static"
+               "--enable-vala"
+               (string-append "--with-html-dir="
+                              (assoc-ref %outputs "doc")
+                              "/share/gtk-doc/html")))))
          (add-after 'configure 'dont-vendor-self
            (lambda* (#:key vendor-dir #:allow-other-keys)
              ;; Don't keep the whole tarball in the vendor directory
              (delete-file-recursively
-               (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
+              (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
              #t))
          (replace 'build
            (assoc-ref gnu:%standard-phases 'build))
@@ -2881,28 +3031,34 @@ diagrams.")
              ((assoc-ref gnu:%standard-phases 'check)
               #:test-target "check")))
          (replace 'install
-           (assoc-ref gnu:%standard-phases 'install))
-         (add-before 'check 'remove-failing-tests
-           (lambda _
-             (with-directory-excursion "tests/fixtures/reftests"
-               (for-each delete-file
-                         '(;; The images produced by these tests differ slightly
-                           ;; from their reference counterparts due to differences
-                           ;; in the build environment (missing fonts, etc).  See
-                           ;; <tests/README.md> for details.
-                           ;; These fail on x86_64.
-                           "svg1.1/coords-viewattr-02-b.svg"
-                           "svg1.1/filters-composite-04-f.svg"
-                           "svg1.1/filters-image-01-b.svg"
-                           "svg1.1/filters-conv-02-f.svg"
-                           "svg1.1/filters-conv-04-f.svg"
-                           ;; This test fails on i686:
-                           "svg1.1/masking-path-04-b.svg"
-                           ;; This test fails on armhf:
-                           "svg1.1/masking-mask-01-b.svg"
-                           ;; This test fails on aarch64:
-                           "bugs/777834-empty-text-children.svg")))
-             #t)))))
+           (assoc-ref gnu:%standard-phases 'install)))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)
+       ("vala" ,vala)))
+    (inputs
+     `(("bzip2" ,bzip2)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("harfbuzz" ,harfbuzz)
+       ("libcroco" ,libcroco)
+       ("libgsf" ,libgsf)
+       ("libxml2" ,libxml2)
+       ("pango" ,pango)))
+    (propagated-inputs
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)))
+    (synopsis "SVG rendering library")
+    (description "Librsvg is a library to render SVG images to Cairo surfaces.
+GNOME uses this to render SVG icons.  Outside of GNOME, other desktop
+environments use it for similar purposes.  Wikimedia uses it for Wikipedia's SVG
+diagrams.")
+    (home-page "https://wiki.gnome.org/LibRsvg")
     (license license:lgpl2.1+)))
 
 (define-public libidl
-- 
2.27.0


[-- Attachment #1.1.41: 0040-gnu-libsecret-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6064 bytes --]

From ac6be0a068ab5e064e3d2ca621cd06fc29428831 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 9 Jul 2020 18:34:16 -0400
Subject: [PATCH 40/62] gnu: libsecret: Update package definition.

* gnu/packages/gnome.scm (libsecret): Update package definition.
[build-system]: Change from gnu to meson.
[arguments]<#:glib-or-gtk?>: New argument.
<#:tests?>: Remove argument.
<#:configure-flags>[--with-html-dir]: Remove flag.
<#:phases>['patch-docbook-xml]: New phase.
['check]: New phase.
['move-docs]: New phase.
[native-inputs]: Add dbus, docbook-xml, docbook-xsl, gtk-doc,
python-wrapper, python-dbus and python-pygobject.
[inputs]: Remove docbook-xsl and libgcrypt.
[propagated-inputs]: Add libgcrypt.
[synopsis]: Modify.
[description]: Modify.
[license]: Add asl2.0 and gpl2+.
---
 gnu/packages/gnome.scm | 100 +++++++++++++++++++++++++++--------------
 1 file changed, 66 insertions(+), 34 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 2ac98a5d6d..12721b71fa 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4496,49 +4496,81 @@ and the GLib main loop, to integrate well with GNOME applications.")
   (package
     (name "libsecret")
     (version "0.20.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnome/sources/libsecret/"
-                    (version-major+minor version) "/"
-                    "libsecret-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
+    (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f ; FIXME: Testing hangs.
-       #:configure-flags
-       (list (string-append "--with-html-dir="
-                            (assoc-ref %outputs "doc")
-                            "/share/gtk-doc/html"))))
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "man/secret-tool.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.2/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.2")
+                                 "/xml/dtd/docbook/")))
+               (substitute* '("reference/libsecret/libsecret-docs.sgml"
+                              "reference/libsecret/libsecret-examples.sgml"
+                              "reference/libsecret/libsecret-using.sgml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.1.2")
+                                 "/xml/dtd/docbook/"))))))
+         (replace 'check
+           (lambda _
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             (invoke "dbus-launch" "meson" "test")
+             #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
-     `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
+     `(("dbus" ,dbus)
+       ("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
+       ("docbook-xml-4.2" ,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)
+       ("python" ,python-wrapper)
+       ("python-dbus" ,python-dbus)
+       ("python-pygobject" ,python-pygobject)
        ("vala" ,vala)
        ("xsltproc" ,libxslt)))
-       ;; These are needed for the tests.
-       ;; FIXME: Add gjs once available.
-       ;("dbus" ,dbus)
-       ;("python2" ,python-2)
-       ;("python2-dbus" ,python2-dbus)
-       ;("python2-pygobject" ,python2-pygobject)
-       ;("python2-pygobject-2" ,python2-pygobject-2)))
-    (propagated-inputs
-     `(("glib" ,glib))) ; required by libsecret-1.pc
     (inputs
-     `(("docbook-xsl" ,docbook-xsl)
-       ("libgcrypt" ,libgcrypt)
-       ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
+     `(("libxml2" ,libxml2)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("libgcrypt" ,libgcrypt)))
+    (synopsis "GObject bindings for Secret Service API")
+    (description "Libsecret is a library for storing and retrieving passwords
+and other secrets.  It communicates with the Secret Service, using D-Bus.
+Gnome-Keyring and Ksecretservice are both implementations of a Secret Service.")
     (home-page "https://wiki.gnome.org/Projects/Libsecret/")
-    (synopsis "GObject bindings for \"Secret Service\" API")
-    (description
-     "Libsecret is a GObject based library for storing and retrieving passwords
-and other secrets.  It communicates with the \"Secret Service\" using DBus.")
-    (license license:lgpl2.1+)))
+    (license
+     (list
+      ;; Tests
+      license:asl2.0
+      license:gpl2+
+      ;; Others
+      license:lgpl2.1+))))
 
 (define-public five-or-more
   (package
-- 
2.27.0


[-- Attachment #1.1.42: 0041-gnu-libsoup-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 9420 bytes --]

From e62c2d2a03b8c80325a5123ff17e6a01200adbd2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 10 Jul 2020 10:56:58 -0400
Subject: [PATCH 41/62] gnu: libsoup: Update package definition.

* gnu/packages/gnome.scm (libsoup): Update package definition.
[arguments]<#:modules>: Remove argument.
<#:glib-or-gtk?>: New argument.
<#:phases>['adjust-tests]: Remove phase.
['patch-docbook-xml]: New phase.
['disable-failing-tests]: New phase.
['move-doc]: Modify phase.
[native-inputs]: Remove gnutls. Add docbook-xml.
[inputs]: Remove glib-networking. Add samba.
[propagated-inputs]: Add glib-networking.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 140 ++++++++++++++---------------------------
 1 file changed, 48 insertions(+), 92 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 12721b71fa..10a69ded3b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -115,6 +115,7 @@
   #:use-module (gnu packages geo)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
@@ -4358,125 +4359,80 @@ libxml to ease remote use of the RESTful API.")
   (package
     (name "libsoup")
     (version "2.70.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/libsoup/"
-                                  (version-major+minor version) "/"
-                                  "libsoup-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/libsoup/"
+                       (version-major+minor version) "/"
+                       "libsoup-" version ".tar.xz"))
+       (sha256
+        (base32 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
-     `(#:modules ((guix build utils)
-                  (guix build meson-build-system)
-                  (ice-9 popen))
-
-       #:configure-flags '("-Dgtk_doc=true")
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dgtk_doc=true")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'adjust-tests
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '("libsoup-2.4-docs.sgml"
+                              "build-howto.xml" "client-howto.xml"
+                              "request-howto.xml" "server-howto.xml"
+                              "session-porting.xml")
+                 (("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
+           ;; These tests require network services.
            (lambda _
-             ;; This test fails due to missing /etc/nsswitch.conf
-             ;; in the build environment.
-             (substitute* "tests/socket-test.c"
-               ((".*/sockets/unconnected.*") ""))
-
-             ;; These fail because "subdomain.localhost" does not resolve in
-             ;; the build environment.
-             (substitute* "tests/hsts-test.c"
-               ((".*/hsts/basic.*") "")
-               ((".*/hsts/subdomains.*") "")
-               ((".*/hsts/superdomain.*") "")
-               ((".*/hsts/utf8-address.*") ""))
-             (substitute* "tests/hsts-db-test.c"
-               ((".*/hsts-db/subdomains.*") ""))
-
-             ;; Generate a self-signed certificate that has "localhost" as its
-             ;; 'dnsName'.  Failing to do that, and starting with GnuTLS
-             ;; 3.5.12, tests such as "ssl-tests" fail:
-             ;;
-             ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
-             ;;
-             ;; 'certtool' is interactive so we have to pipe it the answers.
-             ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
-             (let ((pipe (open-output-pipe "certtool --generate-self-signed \
- --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
-               (for-each (lambda (line)
-                           (display line pipe)
-                           (newline pipe))
-                         '(""               ;Common name
-                           ""               ;UID
-                           "Guix"           ;Organizational unit name
-                           "GNU"            ;Organization name
-                           ""               ;Locality name
-                           ""               ;State or province
-                           ""               ;Country
-                           ""               ;subject's domain component (DC)
-                           ""               ;E-mail
-                           ""               ;serial number
-                           "-1"             ;expiration time
-                           "N"              ;belong to authority?
-                           "N"              ;web client certificate?
-                           "N"              ;IPsec IKE?
-                           "Y"              ;web server certificate?
-                           "localhost"      ;dnsName of subject
-                           ""               ;dnsName of subject (end)
-                           ""               ;URI of subject
-                           "127.0.0.1"      ;IP address of subject
-                           ""               ;signing?
-                           ""               ;encryption (RSA)?
-                           ""               ;data encryption?
-                           ""               ;sign OCSP requests?
-                           ""               ;sign code?
-                           ""               ;time stamping?
-                           ""               ;email protection?
-                           ""               ;URI of the CRL distribution point
-                           "y"              ;above info OK?
-                           ))
-               (close-pipe pipe))
+             (substitute* "tests/meson.build"
+               (("\\['socket', true, \\[\\]\\],")
+                ""))
              #t))
          (add-after 'install 'move-doc
            (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))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")                   ; for glib-mkenums
+     `(("curl" ,curl)
+       ("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
+       ("httpd" ,httpd)
        ("intltool" ,intltool)
+       ("php" ,php)
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)
-       ("vala" ,vala)
-       ("php" ,php)
-       ("curl" ,curl)
-       ("gnutls" ,gnutls)                         ;for 'certtool'
-       ("httpd" ,httpd)))
+       ("vala" ,vala)))
+    (inputs
+     `(("krb5_config" ,mit-krb5)
+       ("ntlm_auth" ,samba)))
     (propagated-inputs
-     ;; libsoup-2.4.pc refers to all these.
      `(("brotli" ,google-brotli)
        ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
        ("libpsl" ,libpsl)
        ("libxml2" ,libxml2)
        ("sqlite" ,sqlite)
        ("zlib" ,zlib)))
-    (inputs
-     `(("glib-networking" ,glib-networking)
-       ("mit-krb5" ,mit-krb5)))
-    (home-page "https://live.gnome.org/LibSoup/")
     (synopsis "GLib-based HTTP Library")
-    (description
-     "LibSoup is an HTTP client/server library for GNOME.  It uses GObjects
-and the GLib main loop, to integrate well with GNOME applications.")
+    (description "LibSoup is an HTTP client/server library for GNOME.  It uses
+GObjects and the GLib main loop, to integrate well with GNOME applications.")
+    (home-page "https://wiki.gnome.org/Projects/libsoup")
     (license license:lgpl2.0+)))
 
-
 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
 (define-public libsoup-minimal
   (package
-- 
2.27.0


[-- Attachment #1.1.43: 0042-gnu-Add-openjpeg-data.patch --]
[-- Type: text/x-patch, Size: 1929 bytes --]

From 3b0c5eb403f37e34d1eaea81ec772ff0d2e9cff1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 10 Jul 2020 15:57:04 -0400
Subject: [PATCH 42/62] gnu: Add openjpeg-data.

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

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 9754de03b7..8788de5038 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -87,6 +87,7 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system scons)
@@ -790,6 +791,28 @@ images of initially unknown height.")
     (license (list license:isc          ; pbmtools/p?m.5
                    license:gpl2+))))    ; the rest
 
+(define-public openjpeg-data
+  (package
+    (name "openjpeg-data")
+    (version "2020.05.19")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/uclouvain/openjpeg-data.git")
+         (commit "c5c4a8c")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jp84gbhw8q5b8mhc322ql9410hjf32w9hg10x4isfa9j59mnncb"))))
+    (build-system copy-build-system)
+    (synopsis "Test files for OpenJPEG")
+    (description "OpenJPEG-Data contains all files required to run the openjpeg
+test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
+15444-4 procedures), non-regression tests and unit tests.")
+    (home-page "https://github.com/uclouvain/openjpeg-data")
+    (license license:bsd-2)))
+
 (define-public openjpeg
   (package
     (name "openjpeg")
-- 
2.27.0


[-- Attachment #1.1.44: 0043-gnu-openjpeg-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5191 bytes --]

From 2b979582344e137d22f32a8f943c347ec9a88e16 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 10 Jul 2020 21:52:18 -0400
Subject: [PATCH 43/62] gnu: openjpeg: Update package definition.

* gnu/packages/image.scm (openjpeg): Update package definition.
[outputs]: New output "doc".
[arguments]<#:tests?>: Remove argument.
<#:configure-flags>[-DBUILD_DOC]: New flag.
[-DBUILD_LUTS_GENERATOR]: New flag.
[-DBUILD_UNIT_TESTS]: New flag.
[-DBUILD_MJ2]: New flag.
[-DBUILD_JPWL]: New flag.
[-DBUILD_JP3D]: New flag.
[-DBUILD_TESTING]: New flag.
[-DOPJ_DATA_ROOT]: New flag.
<#:phases>['disable-failing-tests]: New phase.
['move-docs]: New phase.
[native-inputs]: Add doxygen, openjpeg-data and python-wrapper.
[inputs]: Add curl and fcgi.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/image.scm | 88 +++++++++++++++++++++++++++++-------------
 1 file changed, 62 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 8788de5038..d5946faea1 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -817,35 +817,71 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
   (package
     (name "openjpeg")
     (version "2.3.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/uclouvain/openjpeg")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name "openjpeg" version))
-              (sha256
-               (base32
-                "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/uclouvain/openjpeg.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dn98d2dfa1lqyxxmab6rrcv52dyhjr4g7i4xf2w54fqsx14ynrb"))))
     (build-system cmake-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:tests? #f                   ;TODO: requires a 1.1 GiB data repository
-       #:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
+     '(#:configure-flags
+       (list
+        "-DBUILD_DOC=ON"
+        "-DBUILD_STATIC_LIBS=OFF"
+        "-DBUILD_LUTS_GENERATOR=ON"
+        "-DBUILD_UNIT_TESTS=ON"
+        "-DBUILD_MJ2=ON"
+        "-DBUILD_JPWL=ON"
+        ;; To be enabled after Java becomes reproducible.
+        ;; "-DBUILD_JPIP=ON"
+        ;; "-DBUILD_JPIP_SERVER=ON"
+        ;; "-DBUILD_JAVA=ON"
+        "-DBUILD_JP3D=ON"
+        "-DBUILD_TESTING=ON"
+        (string-append "-DOPJ_DATA_ROOT="
+                       (assoc-ref %build-inputs "openjpeg-data")))
+       #:phases
+       (modify-phases %standard-phases
+         ;; To be re-enabled after upstream fixes the bug,
+         ;; https://github.com/uclouvain/openjpeg/issues/1264
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/CMakeLists.txt"
+               (("add_subdirectory\\(nonregression\\)")
+                ""))
+             #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/doc"))
+               (rename-file
+                (string-append out "/share/doc/html")
+                (string-append doc "/share/doc/html"))
+               #t))))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("openjpeg-data" ,openjpeg-data) ; Files for test-suite
+       ("python" ,python-wrapper)))
     (inputs
-      `(("lcms" ,lcms)
-        ("libpng" ,libpng)
-        ("libtiff" ,libtiff)
-        ("zlib" ,zlib)))
-    (synopsis "JPEG 2000 codec")
-    (description
-      "The OpenJPEG library is a JPEG 2000 codec written in C.  It has
-been developed in order to promote the use of JPEG 2000, the new
-still-image compression standard from the Joint Photographic Experts
-Group (JPEG).
-
-In addition to the basic codec, various other features are under
-development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,
-an indexing tool useful for the JPIP protocol, JPWL-tools for
-error-resilience, a Java-viewer for j2k-images, ...")
+     `(("curl" ,curl)
+       ("fcgi" ,fcgi)
+       ("lcms" ,lcms)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("zlib" ,zlib)))
+    (synopsis "OPENJPEG Library and Applications")
+    (description "OpenJPEG is an implementation of JPEG 2000 codec written in C
+language.  It has been developed in order to promote the use of JPEG 2000, a
+still-image compression standard from the Joint Photographic Experts Group
+(JPEG).  Since April 2015, it is officially recognized by ISO/IEC and ITU-T as a
+JPEG 2000 Reference Software.")
     (home-page "https://github.com/uclouvain/openjpeg")
     (license license:bsd-2)))
 
-- 
2.27.0


[-- Attachment #1.1.45: 0044-gnu-Add-libdatrie.patch --]
[-- Type: text/x-patch, Size: 2176 bytes --]

From d994a6a1511d2840b46ce6121e96bb31787b24a2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 11 Jul 2020 12:20:05 -0400
Subject: [PATCH 44/62] gnu: Add libdatrie.

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

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 2623dd9256..49f2f15aac 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -61,6 +61,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -234,6 +235,35 @@ affine transformation (scale, rotation, shear, etc.).")
                        "See 'COPYING' in the distribution."))
    (home-page "https://www.freedesktop.org/wiki/Software/HarfBuzz/")))
 
+(define-public libdatrie
+  (package
+    (name "libdatrie")
+    (version "0.2.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://linux.thai.net/pub/ThaiLinux/software/"
+                       "libthai/libdatrie-" version ".tar.xz"))
+       (sha256
+        (base32 "0jz9k0dd8jim4iyk5xrhkkdm4zq2ly6aw317ydjss44ymg97nz2l"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "--with-html-docdir="
+                       (assoc-ref %outputs "doc")
+                       "/share/doc/datrie/html"))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Double-Array Trie Library")
+    (description "Libdatrie is an implementation of double-array structure for
+representing trie.  Trie is a kind of digital search tree.")
+    (home-page "https://linux.thai.net/~thep/datrie/datrie.html")
+    (license license:lgpl2.1+)))
+
 (define-public pango
   (package
    (name "pango")
-- 
2.27.0


[-- Attachment #1.1.46: 0045-gnu-Add-libthai.patch --]
[-- Type: text/x-patch, Size: 1908 bytes --]

From 8fdc1ae1c66c9d08f5842962964fffdeeaea9d28 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 11 Jul 2020 12:29:32 -0400
Subject: [PATCH 45/62] gnu: Add libthai.

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

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 49f2f15aac..ad5db049d8 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -264,6 +264,38 @@ representing trie.  Trie is a kind of digital search tree.")
     (home-page "https://linux.thai.net/~thep/datrie/datrie.html")
     (license license:lgpl2.1+)))
 
+(define-public libthai
+  (package
+    (name "libthai")
+    (version "0.1.28")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://linux.thai.net/pub/thailinux/software/"
+                       "libthai/libthai-" version ".tar.xz"))
+       (sha256
+        (base32 "04g93bgxrcnay9fglpq2lj9nr7x1xh06i60m7haip8as9dxs3q7z"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "--with-html-docdir="
+                       (assoc-ref %outputs "doc")
+                       "/share/doc/libthai/html"))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("datrie" ,libdatrie)))
+    (synopsis "Thai language support library")
+    (description "LibThai is a set of Thai language support routines aimed to
+ease developers’ tasks to incorporate Thai language support in their
+applications.")
+    (home-page "https://linux.thai.net/projects/libthai")
+    (license license:lgpl2.1+)))
+
 (define-public pango
   (package
    (name "pango")
-- 
2.27.0


[-- Attachment #1.1.47: 0046-gnu-pango-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7363 bytes --]

From a0134df6fe09f0a5ee7d1930d8336b8055108b3d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 11 Jul 2020 18:36:12 -0400
Subject: [PATCH 46/62] gnu: pango: Update package definition.

* gnu/packages/gtk.scm (pango): Update package definition.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add help2man, perl and python-wrapper.
[propagated-inputs]: Add libthai and libxrender.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.

* gnu/packages/patches/pango-skip-libthai-test.patch: Delete file.

* gnu/local.mk (pango-skip-libthai-test.patch): Remove reference.
---
 gnu/local.mk                                  |  1 -
 gnu/packages/gtk.scm                          | 99 ++++++++++---------
 .../patches/pango-skip-libthai-test.patch     | 23 -----
 3 files changed, 51 insertions(+), 72 deletions(-)
 delete mode 100644 gnu/packages/patches/pango-skip-libthai-test.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index b36b91ce74..0786fa426b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1351,7 +1351,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/p7zip-remove-unused-code.patch		\
   %D%/packages/patches/pam-krb5-CVE-2020-10595.patch		\
   %D%/packages/patches/pam-mount-luks2-support.patch		\
-  %D%/packages/patches/pango-skip-libthai-test.patch		\
   %D%/packages/patches/pciutils-hurd-configure.patch		\
   %D%/packages/patches/sdl-pango-api_additions.patch		\
   %D%/packages/patches/sdl-pango-blit_overflow.patch		\
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ad5db049d8..c51089be38 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -78,6 +78,7 @@
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -298,54 +299,56 @@ applications.")
 
 (define-public pango
   (package
-   (name "pango")
-   (version "1.44.7")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/pango/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (patches (search-patches "pango-skip-libthai-test.patch"))
-            (sha256
-             (base32
-              "07qvxa2sk90chp1l12han6vxvy098mc37sdqcznyywyv2g6bd9b6"))))
-   (build-system meson-build-system)
-   (arguments
-    '(#:phases (modify-phases %standard-phases
-                 (add-after 'unpack 'disable-cantarell-tests
-                   (lambda _
-                     (substitute* "tests/meson.build"
-                       ;; XXX FIXME: These tests require "font-cantarell", but
-                       ;; adding it here would introduce a circular dependency.
-                       (("\\[ 'test-harfbuzz'.*") "")
-                       (("\\[ 'test-itemize'.*") "")
-                       (("\\[ 'test-layout'.*") ""))
-                     #t)))))
-   (propagated-inputs
-    ;; These are all in Requires or Requires.private of the '.pc' files.
-    `(("cairo" ,cairo)
-      ("fribidi" ,fribidi)
-      ("fontconfig" ,fontconfig)
-      ("freetype" ,freetype)
-      ("glib" ,glib)
-      ("harfbuzz" ,harfbuzz)
-
-      ;; Some packages, such as Openbox, expect Pango to be built with the
-      ;; optional libxft support.
-      ("libxft" ,libxft)))
-   (inputs
-    `(("zlib" ,zlib)))
-   (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("glib" ,glib "bin")                               ; glib-mkenums, etc.
-      ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
-   (synopsis "GNOME text and font handling library")
-   (description
-    "Pango is the core text and font handling library used in GNOME
-applications.  It has extensive support for the different writing systems
-used throughout the world.")
-   (license license:lgpl2.0+)
-   (home-page "https://developer.gnome.org/pango/")))
+    (name "pango")
+    (version "1.44.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/pango/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "07qvxa2sk90chp1l12han6vxvy098mc37sdqcznyywyv2g6bd9b6"))))
+    (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 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/meson.build"
+               (("\\[ 'test-harfbuzz'.*") "")
+               (("\\[ 'test-itemize'.*") "")
+               (("\\[ 'test-layout'.*") ""))
+             #t)))))
+    (native-inputs
+     `(("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("help2man" ,help2man)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("zlib" ,zlib)))
+    (propagated-inputs
+     `(("cairo" ,cairo)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("fribidi" ,fribidi)
+       ("glib" ,glib)
+       ("harfbuzz" ,harfbuzz)
+       ("libthai" ,libthai)
+       ("libxft" ,libxft)
+       ("libxrender" ,libxrender)))
+    (synopsis "Text and font handling library")
+    (description "Pango is a library for laying out and rendering of text, with
+an emphasis on internationalization.  Pango can be used anywhere that text
+layout is needed, though most of the work on Pango so far has been done in the
+context of the GTK+ widget toolkit.  Pango forms the core of text and font
+handling for GTK+-2.x.")
+    (home-page "https://pango.gnome.org/")
+    (license license:lgpl2.0+)))
 
 (define-public pango-1.42
   (package
diff --git a/gnu/packages/patches/pango-skip-libthai-test.patch b/gnu/packages/patches/pango-skip-libthai-test.patch
deleted file mode 100644
index 98732b5391..0000000000
--- a/gnu/packages/patches/pango-skip-libthai-test.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Skip Thai character test when libthai is unavailable.
-
-Taken from upstream bug tracker:
-https://gitlab.gnome.org/GNOME/pango/merge_requests/161
-https://gitlab.gnome.org/GNOME/pango/commit/b73284747ac937e31dc9191f84ed6e24284c88ee
-
-diff --git a/tests/test-break.c b/tests/test-break.c
-index 8549b678bba69360d07dce3af21d915412f20d51..47fa3009165e19a331aa04a0df4351ae2323933b 100644
---- a/tests/test-break.c
-+++ b/tests/test-break.c
-@@ -305,6 +305,12 @@ main (int argc, char *argv[])
-       if (!strstr (name, "break"))
-         continue;
- 
-+#ifndef HAVE_LIBTHAI
-+      /* four.break involves Thai, so only test it when we have libthai */
-+      if (strstr (name, "four.break"))
-+        continue;
-+#endif
-+
-       path = g_strdup_printf ("/break/%s", name);
-       g_test_add_data_func_full (path, g_test_build_filename (G_TEST_DIST, "breaks", name, NULL),
-                                  test_break, g_free);
-- 
2.27.0


[-- Attachment #1.1.48: 0047-gnu-gtk-Add-missing-input.patch --]
[-- Type: text/x-patch, Size: 842 bytes --]

From 1e9b2acee02c03b0b57b8dc8579ac8482dcb87d3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 12 Jul 2020 20:31:48 -0400
Subject: [PATCH 47/62] gnu: gtk+: Add missing input.

* gnu/package/gtk.scm (gtk+) [native-inputs]: Add hicolor-icon-theme.
---
 gnu/packages/gtk.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index c51089be38..50827320ee 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1027,6 +1027,7 @@ application suites.")
        ("gettext" ,gettext-minimal)
        ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
        ("intltool" ,intltool)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-- 
2.27.0


[-- Attachment #1.1.49: 0048-gnu-vala-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5380 bytes --]

From 7a6ff3b48ee3ac2a789ce0fac3d6c2227199e685 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 13 Jul 2020 00:45:13 -0400
Subject: [PATCH 48/62] gnu: vala: Update package definition.

* gnu/packages/gnome.scm (vala) [version]: Update to 0.48.7.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[arguments]<#:configure-flags>["--enable-coverage]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl, help2man and perl.
[inputs]: Remove graphviz.
[propagated-inputs]: Add libgvc.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 84 +++++++++++++++++++++++++-----------------
 1 file changed, 50 insertions(+), 34 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 10a69ded3b..ba125db3f7 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -135,6 +135,7 @@
   #:use-module (gnu packages lirc)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages mail)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages music)
@@ -3856,46 +3857,61 @@ passwords in the GNOME keyring.")
 (define-public vala
   (package
     (name "vala")
-    (version "0.46.5")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
-    (build-system gnu-build-system)
+    (version "0.48.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0lswkb7gj0chas9n3l3dbrm9l71hs77adhvm2v600id2ipi37pi8"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:phases
+     `(#:configure-flags
+       (list
+        "--enable-coverage")
+       #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/manual"
+               (substitute* '("manual.xml" "version.xml.in")
+                 (("http://www.oasis-open.org/docbook/xml/4.4/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
          (add-before 'check 'pre-check
-                     (lambda _
-                       (setenv "CC" "gcc")
-                       (substitute* "valadoc/tests/testrunner.sh"
-                         (("export PKG_CONFIG_PATH=" m)
-                          (string-append m "$PKG_CONFIG_PATH:")))
-                       ;; For missing '/etc/machine-id'.
-                       (setenv "DBUS_FATAL_WARNINGS" "0")
-                       #t)))))
+           (lambda _
+             (setenv "CC" "gcc")
+             (substitute* "valadoc/tests/testrunner.sh"
+               (("export PKG_CONFIG_PATH=" m)
+                (string-append m "$PKG_CONFIG_PATH:")))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("bison" ,bison)
+       ("dbus" ,dbus)
+       ("docbook-xml" ,docbook-xml-4.4)
+       ("docbook-xsl" ,docbook-xsl)
        ("flex" ,flex)
-       ("bison" ,bison)
-       ("xsltproc" ,libxslt)
-       ("dbus" ,dbus)                                     ; for dbus tests
-       ("gobject-introspection" ,gobject-introspection))) ; for gir tests
-    (inputs
-     `(("graphviz" ,graphviz)))
+       ("gobject-introspection" ,gobject-introspection)
+       ("help2man" ,help2man)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by libvala-0.40.pc
-    (home-page "https://live.gnome.org/Vala/")
-    (synopsis "Compiler for the GObject type system")
-    (description
-     "Vala is a programming language that aims to bring modern programming
-language features to GNOME developers without imposing any additional runtime
-requirements and without using a different ABI compared to applications and
-libraries written in C.")
+     `(("glib" ,glib)
+       ("libgvc" ,graphviz)))
+    (synopsis "Compiler using the GObject type system")
+    (description "Vala is a programming language using modern high level
+abstractions without imposing additional runtime requirements and without using
+a different ABI compared to applications and libraries written in C.  Vala uses
+the GObject type system and has additional code generation routines that make
+targeting the GNOME stack simple.")
+    (home-page "https://wiki.gnome.org/Projects/Vala/")
     (license license:lgpl2.1+)))
 
 (define-public vala-0.48
-- 
2.27.0


[-- Attachment #1.1.50: 0049-gnu-libwpe-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2377 bytes --]

From e90a5e0db901d54ad81ccc85249c628f83bf1a98 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 13 Jul 2020 01:48:50 -0400
Subject: [PATCH 49/62] gnu: libwpe: Update package definition.

* gnu/packages/webkit.scm (libwpe): Update package definition.
[native-inputs]: Add python-wrapper.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/webkit.scm | 31 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 3804209841..06eab4a206 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -65,29 +65,28 @@
   (package
     (name "libwpe")
     (version "1.6.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://wpewebkit.org/releases/libwpe-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "141w35b488jjhanl3nrm0awrbcy6hb579fk8n9vbpx07m2wcd1rm"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://wpewebkit.org/releases/libwpe-"
+                       version ".tar.xz"))
+       (sha256
+        (base32 "141w35b488jjhanl3nrm0awrbcy6hb579fk8n9vbpx07m2wcd1rm"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f))                    ;no tests
+     `(#:tests? #f))                    ; No target
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
     (inputs
      `(("mesa" ,mesa)))
     (propagated-inputs
-     `(;; In Requires of wpe-1.0.pc.
-       ("libxkbcommon" ,libxkbcommon)))
+     `(("libxkbcommon" ,libxkbcommon)))
+    (synopsis "General-purpose library for WPE")
+    (description "LibWPE is general-purpose library specifically developed for
+the WPE-flavored port of WebKit.")
     (home-page "https://wpewebkit.org/")
-    (synopsis "Platform agnostic WebKit interfaces")
-    (description
-     "@code{libwpe} is a small library that defines programming interfaces
-for use by WebKit, and provides a mechanism for loading a platform-specific
-backend which implements them.")
     (license license:bsd-2)))
 
 (define-public wpebackend-fdo
-- 
2.27.0


[-- Attachment #1.1.51: 0050-gnu-wpebackend-fdo-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2301 bytes --]

From 8853a749cc54af887284fec83bddc5838986694d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 13 Jul 2020 02:00:12 -0400
Subject: [PATCH 50/62] gnu: wpebackend-fdo: Update package definition.

* gnu/packages/webkit.scm (wpebackend-fdo): Update package definition.
[inputs]: Remove libwpe.
[propagated-inputs]: Add libwpe.
[synopsis]: Modify.
---
 gnu/packages/webkit.scm | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 06eab4a206..8568dd2ff1 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -93,28 +93,29 @@ the WPE-flavored port of WebKit.")
   (package
     (name "wpebackend-fdo")
     (version "1.6.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://wpewebkit.org/releases/"
-                                  "wpebackend-fdo-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1jdi43gciqjgvhnqxs160f3hmp1hkqhrllb0hhmldyxc4wryw3kl"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://wpewebkit.org/releases/"
+                       "wpebackend-fdo-" version ".tar.xz"))
+       (sha256
+        (base32 "1jdi43gciqjgvhnqxs160f3hmp1hkqhrllb0hhmldyxc4wryw3kl"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f))                    ;no tests
+     `(#:tests? #f))                    ; No target
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("glib" ,glib)
-       ("libwpe" ,libwpe)
        ("mesa" ,mesa)
        ("wayland" ,wayland)))
+    (propagated-inputs
+     `(("libwpe" ,libwpe)))
+    (synopsis "A FreeDesktop.org backend for WPE.")
+    (description "This package provides a backend implementation for the WPE
+WebKit engine that uses Wayland for graphics output.")
     (home-page "https://wpewebkit.org/")
-    (synopsis "Wayland WPE backend")
-    (description
-     "This package provides a backend implementation for the WPE WebKit
-engine that uses Wayland for graphics output.")
     (license license:bsd-2)))
 
 (define-public webkitgtk
-- 
2.27.0


[-- Attachment #1.1.52: 0051-gnu-woff2-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3778 bytes --]

From a1cbbf446de3607c10d281b865cf15ae77b7d91d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 13 Jul 2020 03:16:47 -0400
Subject: [PATCH 51/62] gnu: woff2: Update package definition.

* gnu/packages/fontutils.scm (woff2): Update package definition.
[source]: Modify.
[outputs]: New output "bin".
[arguments]<#:configure-flags>[-DCMAKE_INSTALL_BINDIR]: New flag.
[-DCMAKE_INSTALL_INCLUDEDIR]: New flag.
[-DCMAKE_INSTALL_LIBDIR]: New flag.
[-DBUILD_SHARED_LIBS]: Remove flag.
<#:phases>['patch-installation]: New phase.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Change to expat.
---
 gnu/packages/fontutils.scm | 62 ++++++++++++++++++++++++--------------
 1 file changed, 40 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 3336a84001..7553c35028 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -263,32 +263,50 @@ work with most software requiring Type 1 fonts.")
   (package
     (name "woff2")
     (version "1.0.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/google/woff2.git")
-                    (commit (string-append "v" version))))
-              (file-name (string-append name "-" version ".git"))
-              (sha256
-               (base32
-                "13l4g536h0pr84ww4wxs2za439s0xp1va55g6l478rfbb1spp44y"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/google/woff2.git")
+         (commit (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "13l4g536h0pr84ww4wxs2za439s0xp1va55g6l478rfbb1spp44y"))))
     (build-system cmake-build-system)
+    (outputs '("out" "bin"))
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        (string-append "-DCMAKE_INSTALL_BINDIR="
+                       (assoc-ref %outputs "bin")
+                       "/bin")
+        (string-append "-DCMAKE_INSTALL_INCLUDEDIR="
+                       (assoc-ref %outputs "out")
+                       "/include")
+        (string-append "-DCMAKE_INSTALL_LIBDIR="
+                       (assoc-ref %outputs "out")
+                       "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         ;; To install both binaries and libraries.
+         (add-after 'unpack 'patch-installation
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("NOT BUILD_SHARED_LIBS")
+                "BUILD_SHARED_LIBS"))
+             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("google-brotli" ,google-brotli)))
-    (arguments
-     ;; package has no tests
-     `(#:tests? #f
-       ;; we can’t have both, shared libraries and binaries, so turn off the
-       ;; former
-       #:configure-flags (list "-DBUILD_SHARED_LIBS=OFF")))
-    (synopsis "Compress TrueType fonts to WOFF2")
-    (description
-     "This package provides utilities for compressing/decompressing TrueType
-fonts to/from the WOFF2 format.")
-    (license license:asl2.0)
-    (home-page "https://github.com/google/woff2")))
+     `(("brotli" ,google-brotli)))
+    (synopsis "Libraries and tools for WOFF2 font format")
+    (description "WOFF2 provides libraires and tools to handle the Web Open
+Font Format (WOFF).")
+    (home-page "https://w3c.github.io/woff/woff2/")
+    (license license:expat)))
 
 (define-public fontconfig
   (package
-- 
2.27.0


[-- Attachment #1.1.53: 0052-gnu-Add-wpewebkit.patch --]
[-- Type: text/x-patch, Size: 4879 bytes --]

From a303d53f5f7946ec1b013d4b574fc9575761c001 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 13 Jul 2020 03:44:32 -0400
Subject: [PATCH 52/62] gnu: Add wpewebkit.

* gnu/packages/webkit.scm (wpewebkit): New variable.
---
 gnu/packages/webkit.scm | 104 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)

diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 8568dd2ff1..bf705b2b7d 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -32,9 +32,11 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
@@ -118,6 +120,108 @@ WebKit engine that uses Wayland for graphics output.")
     (home-page "https://wpewebkit.org/")
     (license license:bsd-2)))
 
+(define-public wpewebkit
+  (package
+    (name "wpewebkit")
+    (version "2.28.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://wpewebkit.org/releases/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "12z9457ja1xm93kl3gpd6nvd5xn11mvm8pr0w2zhmh3k9lx2cf95"))))
+    (build-system cmake-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:tests? #f                      ; XXX: To be enabled
+       #:configure-flags
+       (list
+        "-DPORT=WPE"
+        ;; XXX: To be enabled.
+        ;; "-DENABLE_ACCELERATED_2D_CANVAS=ON"
+        "-DENABLE_ENCRYPTED_MEDIA=ON"
+        "-DENABLE_GTKDOC=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'setenv
+           (lambda _
+             (setenv "HOME" "/tmp")
+             #t))
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (for-each
+              (lambda (file)
+                (substitute* file
+                  (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
+                   (string-append (assoc-ref inputs "docbook-xml")
+                                  "/xml/dtd/docbook/docbookx.dtd"))))
+              (find-files "Source" "\\.sgml$"))
+             #t))
+         (add-after 'install 'move-doc-files
+           (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)
+       ("docbook-xsl" ,docbook-xsl)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("python2" ,python-2.7)
+       ("ruby" ,ruby)))
+    (inputs
+     `(("atk" ,atk)
+       ("atk-bridge" ,at-spi2-atk)
+       ("bubblewrap" ,bubblewrap)
+       ("cairo" ,cairo)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("gperf" ,gperf)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("harfbuzz" ,harfbuzz)
+       ("icu" ,icu4c)
+       ("libepoxy" ,libepoxy)
+       ("libgcrypt" ,libgcrypt)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("libseccomp" ,libseccomp)
+       ("libtasn1" ,libtasn1)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ("mesa" ,mesa)
+       ("openjpeg" ,openjpeg)
+       ("sqlite" ,sqlite)
+       ("webp" ,libwebp)
+       ("woff2" ,woff2)
+       ("xdg-dbus-proxy" ,xdg-dbus-proxy)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("libsoup" ,libsoup)
+       ("wpe" ,libwpe)))
+    (synopsis "WebKit port optimized for embedded devices")
+    (description "WPE WebKit allows embedders to create simple and performant
+systems based on Web platform technologies.  It is designed with hardware
+acceleration in mind, leveraging common 3D graphics APIs for best performance.")
+    (home-page "https://wpewebkit.org/")
+    (license
+     (list
+      ;; Rendering and JavaScript Engines.
+      license:lgpl2.1+
+      ;; Others
+      license:bsd-2))))
+
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-- 
2.27.0


[-- Attachment #1.1.54: 0053-gnu-hplip-Update-hash.patch --]
[-- Type: text/x-patch, Size: 976 bytes --]

From 1b4d807e0dff5ac9f4032d3c11a7b8a0696eccb2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 14 Jul 2020 13:32:10 -0400
Subject: [PATCH 53/62] gnu: hplip: Update hash.

---
 gnu/packages/cups.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 8bfe96079c..281c2718e8 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -422,7 +422,7 @@ should only be used as part of the Guix cups-pk-helper service.")
                                   "/hplip-" version ".tar.gz"))
               (sha256
                (base32
-                "0rmk7i28mb0q66i5l9d0fq2j23dkhz5gx5g2xvi16ga0dnprcilp"))
+                "083w58wpvvm6sir6rf5dwx3r0rman9sv1zpl26chl0a88crjsjy6"))
               (modules '((guix build utils)))
               (patches (search-patches "hplip-remove-imageprocessor.patch"))
               (snippet
-- 
2.27.0


[-- Attachment #1.1.55: 0054-gnu-Add-libcamera.patch --]
[-- Type: text/x-patch, Size: 3535 bytes --]

From 39dfc4e931930bdfb8c259b4ee5838b832dd9fc8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 14 Jul 2020 16:26:28 -0400
Subject: [PATCH 54/62] gnu: Add libcamera.

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

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index c6bcd39d52..675c9c8d1e 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 graphviz)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
@@ -125,6 +126,7 @@
   #:use-module (gnu packages samba)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tcl)
@@ -137,6 +139,69 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
+;; This package does not have a release yet.
+;; But this is required to provide a feature in PipeWire.
+(define-public libcamera
+  (package
+    (name "libcamera")
+    (version "0.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "git://linuxtv.org/libcamera.git")
+         (commit "74c8b508338ccdd0780aa1e067a1e8fcb9ee326b")))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0d9lp8b9gyxh4jwfh55kp8zl1xyyg32z684v3y29378zpksncss1"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dv4l2=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "test/meson.build"
+               (("\\['list-cameras',                    'list-cameras.cpp'\\],")
+                ""))
+             #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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("sphinx" ,python-sphinx)
+       ("yaml" ,python-pyyaml)))
+    (inputs
+     `(("boost" ,boost)
+       ("glib" ,glib)
+       ("gstreamer" ,gst-plugins-base)
+       ("gnutls" ,gnutls)
+       ("libtiff" ,libtiff)
+       ("openssl" ,openssl)
+       ("qt5" ,qtbase)
+       ("udev" ,eudev)))
+    (synopsis "Camera stack and framework")
+    (description "LibCamera is a complex camera support library for GNU+Linux,
+Android, and ChromeOS.")
+    (home-page "https://libcamera.org/")
+    (license license:lgpl2.1+)))
+
 (define-public libnice
   (package
     (name "libnice")
-- 
2.27.0


[-- Attachment #1.1.56: 0055-gnu-Add-xmltoman.patch --]
[-- Type: text/x-patch, Size: 2046 bytes --]

From faf98a15c6f6db821c6190fdc0e27cbdbc13580f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 14 Jul 2020 17:21:08 -0400
Subject: [PATCH 55/62] gnu: Add xmltoman.

* gnu/packages/man.scm (xmltoman): New variable.
---
 gnu/packages/man.scm | 36 +++++++++++++++++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index 356d520f07..63a1227655 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -38,7 +38,41 @@
   #:use-module (gnu packages less)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages linux))
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages xml))
+
+(define-public xmltoman
+  (package
+    (name "xmltoman")
+    (version "0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/xmltoman/files/"
+                       "xmltoman/xmltoman-" version ".tar.gz/xmltoman-"
+                       version ".tar.gz/download"))
+       (sha256
+        (base32 "1c0lvzr7kdy63wbn1jv6s126ds7add3pxqb0vlxd3v5a2sir91wl"))))
+    (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))))
+    (propagated-inputs
+     `(("perl" ,perl)
+       ("perl-xml-parser" ,perl-xml-parser)))
+    (synopsis "XML to Man converter")
+    (description "XMLtoMan and XMLMantoHTML are two small scripts to convert xml
+to man pages in groff format or html.  It features the usual man page items such
+as description, options, see also, etc.")
+    (home-page "http://xmltoman.sourceforge.net/")
+    (license gpl2+)))
 
 (define-public ronn
   (package
-- 
2.27.0


[-- Attachment #1.1.57: 0056-gnu-tesseract-ocr-Propagate-leptonica.patch --]
[-- Type: text/x-patch, Size: 1031 bytes --]

From 2eb7c10dbf7ce06d5270199892234a06797c0888 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 14 Jul 2020 22:05:34 -0400
Subject: [PATCH 56/62] 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.27.0


[-- Attachment #1.1.58: 0057-gnu-pipewire-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6055 bytes --]

From e843dbb5c02ffb739c1c222a737e7b7dbbed24b5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 14 Jul 2020 19:06:41 -0400
Subject: [PATCH 57/62] gnu: pipewire: Update package definition.

* gnu/packages/linux.scm (pipewire) [version]: Update to 0.3.6.
[source]<origin>[uri]: Modify url.
[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Ddocs]: New flag.
[-Daudiotestsrc]: New flag.
[-Dffmpeg]: New flag.
[-Dtest]: New flag.
[-Dlibcamera]: New flag.
[-Dvideotestsrc]: New flag.
[-Dvolume]: New flag.
[-Dc_link_args]: New flag.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen and xmltoman.
[inputs]: Add bluez, libcamera, glib, jack-2, pulseaudio, libsndfile,
vulkan-headers and vulkan-loader.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/linux.scm | 91 ++++++++++++++++++++++++++++++------------
 1 file changed, 66 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 21d0e552ab..4357ed8f87 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -90,6 +90,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages haskell-apps)
@@ -130,6 +131,7 @@
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages vulkan)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
@@ -6982,42 +6984,81 @@ types and interfaces and translates so that the X server can use them.")
 (define-public pipewire
   (package
     (name "pipewire")
-    (version "0.2.7")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/PipeWire/pipewire")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1q5wrqnhhs6r49p8yvkw1pl0cnsd4rndxy4h5lvdydwgf1civcwc"))))
+    (version "0.3.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://gitlab.freedesktop.org/pipewire/pipewire.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0g149vyaigf4gzm764fcgxxci9niw19z0af9afs4diwq5xzr1qd3"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:configure-flags '("-Dsystemd=false")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Ddocs=true"
+        "-Dsystemd=false"
+        "-Daudiotestsrc=true"
+        "-Dffmpeg=true"
+        ;; XXX: EVL not available.
+        ;; https://evlproject.org/
+        ;; "-Devl=true"
+        "-Dtest=true"
+        "-Dlibcamera=true"
+        "-Dvideotestsrc=true"
+        "-Dvolume=true"
+        ;; Required for RUNPATH validation.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out") "/lib"
+                       ":"
+                       (assoc-ref %outputs "out") "/lib/pipewire-0.3"))
+       #: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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("xmltoman" ,xmltoman)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
+     `(("alsa" ,alsa-lib)
+       ("bluez" ,bluez)
+       ("camera" ,libcamera)
        ("dbus" ,dbus)
-       ("eudev" ,eudev)
        ("ffmpeg" ,ffmpeg)
+       ("glib" ,glib)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
+       ("jack" ,jack-2)
        ("libva" ,libva)
+       ("pulseaudio" ,pulseaudio)
        ("sbc" ,sbc)
-       ("sdl2" ,sdl2)))
+       ("sdl2" ,sdl2)
+       ("sndfile" ,libsndfile)
+       ("udev" ,eudev)
+       ("vulkan-headers" ,vulkan-headers)
+       ("vulkan-loader" ,vulkan-loader)))
+    (synopsis "Multimedia processing graphs")
+    (description "PipeWire is a server and user space API to deal with
+multimedia pipelines.  It provides a low-latency, graph based processing engine
+on top of audio and video devices that can be used to support the use cases
+currently handled by both pulseaudio and JACK.")
     (home-page "https://pipewire.org/")
-    (synopsis "Server and user space API to deal with multimedia pipelines")
-    (description
-     "PipeWire is a project that aims to greatly improve handling of audio and
-video under Linux.  It aims to support the usecases currently handled by both
-PulseAudio and Jack and at the same time provide same level of powerful handling
-of Video input and output.  It also introduces a security model that makes
-interacting with audio and video devices from containerized applications easy,
-with supporting Flatpak applications being the primary goal.  Alongside Wayland
-and Flatpak we expect PipeWire to provide a core building block for the future
-of Linux application development.")
     (license license:lgpl2.0+)))
 
 (define-public ell
-- 
2.27.0


[-- Attachment #1.1.59: 0058-gnu-webkitgtk-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 8944 bytes --]

From 13925ff5981504ba811f2965ddbb2511431148c8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 14 Jul 2020 21:51:58 -0400
Subject: [PATCH 58/62] gnu: webkitgtk: Update package definition.

* gnu/packages/webkit.scm (webkitgtk) [version]: Update to 2.28.3.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:configure-flags>[-DENABLE_GLES2]: New flag.
[-DENABLE_MINIBROWSER]: New flag.
[-DLIB_INSTALL_DIR]: Remove flag.
[-DUSE_GSTREAMER_GL]: Remove flag.
[-DUSE_WOFF2]: Remove flag.
<#:phases>['configure-bubblewrap-store-directory]: Remove phase.
['embed-absolute-wpebackend-reference]: Remove phase.
[native-inputs]: Add docbook-xsl and gtk-doc and python-2.7.
[inputs]: Add atk, gstreamer, wayland and woff2.
[propagated-inputs]: Add glib.
[synopsis]: Modify.
[license]: Modify.
---
 gnu/packages/webkit.scm | 132 +++++++++++++++++-----------------------
 1 file changed, 56 insertions(+), 76 deletions(-)

diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index bf705b2b7d..c6e27e4d52 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -225,95 +225,69 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.28.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://www.webkitgtk.org/releases/"
-                                  "webkitgtk-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1g9hik3bprki5s9d7y5288q5irwckbzajr6rnlvjrlnqrwjkblmr"))
-              (patches (search-patches "webkitgtk-share-store.patch"))))
+    (version "2.28.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.webkitgtk.org/releases/"
+                       "webkitgtk-" version ".tar.xz"))
+       (sha256
+        (base32 "08imj2q6h975mz7714dqdrmbav0s884990gf98xf2862fb08m2gh"))))
     (build-system cmake-build-system)
     (outputs '("out" "doc"))
     (arguments
-     '(#:tests? #f ; no tests
-       #:build-type "Release" ; turn off debugging symbols to save space
-       #:configure-flags (list
-                          "-DPORT=GTK"
-                          "-DENABLE_GTKDOC=ON" ; No doc by default
-                          (string-append ; uses lib64 by default
-                           "-DLIB_INSTALL_DIR="
-                           (assoc-ref %outputs "out") "/lib")
-
-                          ;; XXX Adding GStreamer GL support would apparently
-                          ;; require adding gst-plugins-bad to the inputs,
-                          ;; which might entail a security risk as a result of
-                          ;; the plugins of dubious code quality that are
-                          ;; included.  More investigation is needed.  For
-                          ;; now, we explicitly disable it to prevent an error
-                          ;; at configuration time.
-                          "-DUSE_GSTREAMER_GL=OFF"
-
-                          ;; XXX Disable WOFF2 ‘web fonts’.  These were never
-                          ;; supported in our previous builds.  Enabling them
-                          ;; requires building libwoff2 and possibly woff2dec.
-                          "-DUSE_WOFF2=OFF")
+     `(#:tests? #f                      ; XXX: To be enabled
+       #:configure-flags
+       (list
+        "-DPORT=GTK"
+        ;; XXX: To be enabled.
+        ;; "-DENABLE_ACCELERATED_2D_CANVAS=ON"
+        "-DENABLE_GLES2=ON"
+        "-DENABLE_GTKDOC=ON"
+        "-DENABLE_MINIBROWSER=ON")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'configure-bubblewrap-store-directory
-           (lambda _
-             ;; This phase is a corollary to 'webkitgtk-share-store.patch' to
-             ;; avoid hard coding /gnu/store, for users with other prefixes.
-             (let ((store-directory (%store-directory)))
-               (substitute*
-                   "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
-                 (("@storedir@") store-directory))
-               #t)))
-         (add-after 'unpack 'patch-gtk-doc-scan
+         (add-after 'unpack 'patch-docbook-xml
            (lambda* (#:key inputs #:allow-other-keys)
-             (for-each (lambda (file)
-                         (substitute* file
-                           (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
-                            (string-append (assoc-ref inputs "docbook-xml")
-                                           "/xml/dtd/docbook/docbookx.dtd"))))
-                       (find-files "Source" "\\.sgml$"))
+             (for-each
+              (lambda (file)
+                (substitute* file
+                  (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
+                   (string-append (assoc-ref inputs "docbook-xml")
+                                  "/xml/dtd/docbook/docbookx.dtd"))))
+              (find-files "Source" "\\.sgml$"))
              #t))
-         (add-after 'unpack 'embed-absolute-wpebackend-reference
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
-               (substitute* "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
-                 (("libWPEBackend-fdo-([\\.0-9]+)\\.so" all version)
-                  (string-append wpebackend-fdo "/lib/" all)))
-               #t)))
          (add-after 'install 'move-doc-files
            (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"))
-               (rename-file (string-append out "/share/gtk-doc")
-                            (string-append doc "/share/gtk-doc"))
+               (rename-file
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
                #t))))))
     (native-inputs
      `(("bison" ,bison)
+       ("docbook-xml" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
        ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("gperf" ,gperf)
+       ("gtk-doc" ,gtk-doc)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)
-       ("gtk-doc" ,gtk-doc) ; For documentation generation
-       ("docbook-xml" ,docbook-xml) ; For documentation generation
+       ("python2" ,python-2.7)
        ("ruby" ,ruby)))
-    (propagated-inputs
-     `(("gtk+" ,gtk+)
-       ("libsoup" ,libsoup)))
     (inputs
-     `(("at-spi2-core" ,at-spi2-core)
+     `(("atk" ,atk)
+       ("at-spi2-core" ,at-spi2-core)
        ("bubblewrap" ,bubblewrap)
        ("enchant" ,enchant)
        ("geoclue" ,geoclue)
+       ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
        ("gtk+-2" ,gtk+-2)
        ("harfbuzz" ,harfbuzz)
@@ -335,17 +309,23 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
        ("mesa" ,mesa)
        ("openjpeg" ,openjpeg)
        ("sqlite" ,sqlite)
+       ("wayland" ,wayland)
+       ("woff2" ,woff2)
        ("wpebackend-fdo" ,wpebackend-fdo)
+       ("x11" ,libx11)
        ("xdg-dbus-proxy" ,xdg-dbus-proxy)))
-    (home-page "https://www.webkitgtk.org/")
-    (synopsis "Web content engine for GTK+")
-    (description
-     "WebKitGTK+ is a full-featured port of the WebKit rendering engine,
-suitable for projects requiring any kind of web integration, from hybrid
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libsoup" ,libsoup)))
+    (synopsis "WebKit port for GTK+")
+    (description "WebKitGTK+ is a full-featured port of the WebKit rendering
+engine, suitable for projects requiring any kind of web integration, from hybrid
 HTML/CSS applications to full-fledged web browsers.")
-    ;; WebKit's JavaScriptCore and WebCore components are available under
-    ;; the GNU LGPL, while the rest is available under a BSD-style license.
-    (license (list license:lgpl2.0
-                   license:lgpl2.1+
-                   license:bsd-2
-                   license:bsd-3))))
+    (home-page "https://www.webkitgtk.org/")
+    (license
+     (list
+      ;; Rendering and JavaScript Engines.
+      license:lgpl2.1+
+      ;; Others
+      license:bsd-2))))
-- 
2.27.0


[-- Attachment #1.1.60: 0059-gnu-yelp-xsl-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3118 bytes --]

From f08f1af84dba99afe351c29e4df5669b23467ec5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 15 Jul 2020 17:22:32 -0400
Subject: [PATCH 59/62] gnu: yelp-xsl: Update package definition.

* gnu/packages/gnome.scm (yelp-xsl) [version]: Update to 3.36.0.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:configure-flag>[--enable-doc]: New flag.
[native-inputs]: Add mallard-ducktype, intltool and libxslt.
[description]: Modify.
[license]: Add lgpl2.1+ and expat.
---
 gnu/packages/gnome.scm | 50 ++++++++++++++++++++++++++++--------------
 1 file changed, 34 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ba125db3f7..7cd480ee83 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6467,26 +6467,44 @@ of running programs and invoke methods on those interfaces.")
 (define-public yelp-xsl
   (package
     (name "yelp-xsl")
-    (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
-                "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
+    (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 "1hsfj3q3a3kca0cf9i02xlq2qd4vy12qsjb89hh4r6mp6c11rrag"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-doc")))
     (native-inputs
-     `(("gettext-minimal" ,gettext-minimal)
+     `(("ducktype" ,mallard-ducktype)
+       ("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
        ("itstool" ,itstool)
-       ("xmllint" ,libxml2)))
-    (home-page "https://wiki.gnome.org/Apps/Yelp")
+       ("xmllint" ,libxml2)
+       ("xsltproc" ,libxslt)))
     (synopsis "XSL stylesheets for Yelp")
-    (description
-     "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
-to format Docbook and Mallard documents.")
-    (license license:gpl2+)))
+    (description "Yelp-XSL is a collection of programs and data files to help
+you build, maintain, and distribute documentation.  It provides XSLT stylesheets
+that can be built upon for help viewers and publishing systems.  These
+stylesheets output JavaScript and CSS content, and reference images
+provided by yelp-xsl. It also redistributes copies of the jQuery and
+jQuery.Syntax JavaScript libraries.")
+    (home-page "https://wiki.gnome.org/Apps/Yelp")
+    (license
+     (list
+      ;; XSLT
+      license:gpl2+
+      ;; Images
+      license:lgpl2.1+
+      ;; JavaScript
+      license:expat))))
 
 (define-public yelp
   (package
-- 
2.27.0


[-- Attachment #1.1.61: 0060-gnu-yelp-tools-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2598 bytes --]

From 9a4fd7c36c49cada1374ce83941efd3789a8bff6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 15 Jul 2020 17:36:28 -0400
Subject: [PATCH 60/62] gnu: yelp-tools: Update package definition.

* gnu/packages/gnome.scm (yelp-tools): Update package definition.
[propagated-inputs]: Move itstool, libxml2 and libxslt to ...
[native-inputs]: ... here.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 7cd480ee83..0b9343845b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6544,31 +6544,27 @@ freedesktop.org help system specification.")
   (package
     (name "yelp-tools")
     (version "3.32.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (propagated-inputs
-     ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
      `(("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)
        ("xsltproc" ,libxslt)))
     (inputs
      `(("yelp-xsl" ,yelp-xsl)))
+    (synopsis "Tools for Yelp")
+    (description "Yelp-Tools contains small programs that help you create, edit,
+manage, and publish your Mallard or DocBook documentation.")
     (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
-    (synopsis "Yelp documentation tools")
-    (description
-     "Yelp-tools is a collection of scripts and build utilities to help create,
-manage, and publish documentation for Yelp and the web.  Most of the heavy
-lifting is done by packages like yelp-xsl and itstool.  This package just
-wraps things up in a developer-friendly way.")
     (license license:gpl2+)))
 
 (define-public libgee
-- 
2.27.0


[-- Attachment #1.1.62: 0061-gnu-yelp-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3994 bytes --]

From c97586fad6d9329513e6ee1c665c53b7e6855cdd Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 15 Jul 2020 21:05:47 -0400
Subject: [PATCH 61/62] gnu: yelp: Update package definition.

* gnu/packages/gnome.scm (yelp) [version]: Update to 3.36.0.
[source]<origin>[sha256]: Modify base32.
[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, gtk+:bin, gtk-doc and python-wrapper.
[inputs]: Add glib and gtk+.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 60 +++++++++++++++++++++++++++++-------------
 1 file changed, 41 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0b9343845b..0316a4258b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6509,35 +6509,57 @@ jQuery.Syntax JavaScript libraries.")
 (define-public yelp
   (package
     (name "yelp")
-    (version "3.32.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
+    (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 "097djjyl096zmicjpxlb858yz6rd5cj813xc8azbxlhsscikwjzx"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "libyelp/libyelp-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("glib:bin" ,glib "bin")
+       ("gtk+:bin" ,gtk+ "bin")
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
-    (propagated-inputs
-     `(("dconf" ,dconf)))
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
     (inputs
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("sqlite" ,sqlite)
        ("webkitgtk" ,webkitgtk)
        ("yelp-xsl" ,yelp-xsl)))
-    (home-page "https://wiki.gnome.org/Apps/Yelp")
     (synopsis "GNOME help browser")
-    (description
-     "Yelp is the help viewer in Gnome.  It natively views Mallard, DocBook,
-man, info, and HTML documents.  It can locate documents according to the
-freedesktop.org help system specification.")
+    (description "Yelp is the help viewer in Gnome.  It natively views Mallard,
+DocBook, man, info, and HTML documents.  It can locate documents according to
+the freedesktop.org help system specification.")
+    (home-page "https://wiki.gnome.org/Apps/Yelp")
     (license license:gpl2+)))
 
 (define-public yelp-tools
-- 
2.27.0


[-- Attachment #1.1.63: 0062-gnu-zenity-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3235 bytes --]

From 11245d7d1c0bcad5a08d08980871646bf50bd2f0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 15 Jul 2020 21:11:06 -0400
Subject: [PATCH 62/62] gnu: zenity: Update package definition.

* gnu/packages/gnome.scm (zenity): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "help".
[arguments]<#:configure-flags>[--enable-libnotify]: New flag.
[--enable-webkitgtk]: New flag.
[--with-help-dir=]: New flag.
[native-inputs]: Add glib:bin, gtk+:bin, perl and libxml2.
[inputs]: Add glib, gtk+ and libx11.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 48 ++++++++++++++++++++++++++++--------------
 1 file changed, 32 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0316a4258b..f772b9c0d2 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6989,27 +6989,43 @@ powerful general purpose text editor.")
   (package
     (name "zenity")
     (version "3.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/zenity/"
-                                  (version-major+minor version) "/"
-                                  "zenity-" version ".tar.xz"))
-              (sha256
-               (base32
-                "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/zenity/"
+                       (version-major+minor version) "/"
+                       "zenity-" version ".tar.xz"))
+       (sha256
+        (base32 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "help"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-libnotify"
+        "--enable-webkitgtk"
+        (string-append "--with-help-dir="
+                       (assoc-ref %outputs "help")
+                       "/share/help"))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gtk+:bin" ,gtk+ "bin")
        ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("libnotify" ,libnotify)
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libnotify" ,libnotify)
+       ("x11" ,libx11)
        ("webkitgtk" ,webkitgtk)))
-    (synopsis "Display graphical dialog boxes from shell scripts")
-    (home-page "https://www.gnome.org")
-    (description
-     "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
-to display dialog boxes from the commandline and shell scripts.")
+    (synopsis "Rewrite of gdialog")
+    (description "Zenity is a tool that allows you to display GTK dialog boxes
+in commandline and shell scripts.")
+    (home-page "https://wiki.gnome.org/Projects/Zenity")
     (license license:lgpl2.0+)))
 
 (define-public mutter
-- 
2.27.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-16  1:21                             ` Raghav Gururajan
@ 2020-07-17 12:38                               ` Danny Milosavljevic
  2020-07-18 13:29                                 ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Danny Milosavljevic @ 2020-07-17 12:38 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

Pushed to wip-desktop.

Comments:

* Why is libcamera in (gnu packages networking)?  It sounds like it has digital camera libraries.
* libcamera:doc is not reproducible.
* building zentiy has webkitgtk as dependencies.

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-17 12:38                               ` Danny Milosavljevic
@ 2020-07-18 13:29                                 ` Raghav Gururajan
  2020-07-18 14:12                                   ` Danny Milosavljevic
  2020-07-19 19:22                                   ` Danny Milosavljevic
  0 siblings, 2 replies; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-18 13:29 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

Hi Danny!

> Pushed to wip-desktop.

Thank you!

> Comments:
> 
> * Why is libcamera in (gnu packages networking)?  It sounds like it has digital camera libraries.

OOPS! It should have been in image.scm. I will move it.

> * libcamera:doc is not reproducible.

Ah! As you mentioned in XMPP Chat, it is probably caused by ".doctrees".
I will try to exclude them.

> * building zentiy has webkitgtk as dependencies.

Yeah, it was annoying. But zenity get some things from webkitgtk. May be
I will try to create webkitgtk-minimal, if time permits. :-)

@Danny

Please find attached patches.

@Others

Please find the following git log.

*** START ***

commit 3d97b5d2e1e836d3c2fc20241f84cf0f2e2bd6b8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 08:13:48 2020 -0400

    gnu: gtksourceviewmm: Update package definition.

    * gnu/packages/gtk.scm (gtksourceviewmm) [version]: Update to 3.21.3.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:phases>['move-doc]: New phase.
    [native-inputs]: Add graphviz, doxygen, m4, mm-common, perl and
    libxslt.
    [propagated-inputs]: Change glibmm to glibmm-2.64.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Mofify.

commit 604e2adf2b4ebb2a015539bb38077ce9964803cc
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 08:24:21 2020 -0400

    gnu: java-jakarta-oro: Update hash.

commit 5d3720a7a2b35b7864e8c88ee597030b249fa40c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 06:18:38 2020 -0400

    gnu: gtkmm-2: Update package definition.

    * gnu/packages/gtk.scm (gtkmm-2): Update package definition.
    [arguments]: Remove field.
    [native-inputs]: Remove field.
    [propagated-inputs]: Change; pangomm to pangomm-2.42, cairomm to
    cairomm-1.13 and glibmm to glibmm-2.64.

commit 5c9e355598d7b54763e0d7ee740cde2a4d80c11b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 06:12:32 2020 -0400

    gnu: gtkmm: Update package definition.

    * gnu/packages/gtk.scm (gtkmm): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:phases>['start-xvfb]: Remove phase.
    ['pre-check]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add graphviz, doxygen, m4, mm-common, perl and
    libxslt.
    [propagated-inputs]: Change; pangomm to pangomm-2.42, cairomm to
    cairomm-1.13 and glibmm to glibmm-2.64.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Add gpl2+.

commit c8bff53d223af7c4fb2d90376879f971791e8f83
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 04:42:20 2020 -0400

    gnu: Add pangomm-2.42.

    * gnu/packages/gtk.scm (pangomm-2.42): New variable.

commit 7ab0bd0bba2ba723f47dc699316fc8da127a5a81
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 04:33:51 2020 -0400

    gnu: pangomm: Update package definition.

    * gnu/packages/gtk.scm (pangomm) [version]: Update to 2.43.2.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:phases>['move-doc]: New phase.
    [native-inputs]: Add graphviz, doxygen, m4, mm-common, perl,
    python-wrapper and libxslt.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Add gpl2+.

commit e119693dc2ab384ac81155564ca1ef806beeccf9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 04:15:21 2020 -0400

    gnu: atkmm: Update package definition.

    * gnu/packages/gtk.scm (atkmm): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: Add new output "doc".
    [arguments]<#:phases>['move-doc]: New phase.
    [native-inputs]: Add graphviz, doxygen, m4, mm-common, perl and
    libxslt.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Add gpl2+.

commit eb5d57fb3e84ac057fcd47f13e794d5756e01d0a
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 04:10:22 2020 -0400

    gnu: Add glibmm-2.64.

    *gnu/packages/glib.scm (glibmm-2.64): New variable.

commit 14bea287b96739498538bf4eaf838bca77a41901
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 04:08:05 2020 -0400

    gnu: glibmm: Update package definition.

    * gnu/packages/glib.scm (glibmm) [version]: Update to 2.65.3.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:tests?>: New argument.
    <#:phases>['move-doc]: New phase.
    [native-inputs]: Add graphviz, doxygen, gobject-introspection, m4,
    mm-common, perl, python-wrapper and libxslt.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Add gpl2+.

commit fd1f18145c9fdcd652b77d75d0c653c7d93ad352
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 04:01:18 2020 -0400

    gnu: Add cairomm-1.13.

    * gnu/packages/gtk.scm (cairomm-1.13): New variable.

commit 611fc3418926e777d1572a192527ec6b22f24379
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 03:49:41 2020 -0400

    gnu: cairomm: Update package definition.

    * gnu/packages/gtk.scm (cairomm) [version]: Update to 1.15.5.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[CXXFLAGS]: New flag.
    <#:phases>['move-doc]: New phase.
    [native-inputs]: Add graphviz, doxygen, perl and libxslt.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit 68133b1e431b661af8547b1b809b70d72ad093da
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 03:48:11 2020 -0400

    gnu: Add libsigc++-2.

    * gnu/packages/glib.scm (libsigc++-2): New variable.

commit a827944c714cfa53a58b425d6797562d2877b2e9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 17 16:07:56 2020 -0400

    gnu: libsigc++: Update package definition.

    * gnu/packages/glib.scm (libsigc++) [version]: Update to 3.0.3.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--enable-benchmark]: New flag.
    [--with-boost]: New flag.
    [--with-boost-libdir]: New flag.
    <#:phases>['move-doc]: New phase.
    [native-inputs]: Add graphviz, doxygen, perl, python-wrapper and
    libxslt.
    [inputs]: Add boost.
    [synopsis]: Modify.
    [description]: Modify.

commit 7039c5ba0440c4555752143c1d943705c6b9537d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 17 16:06:39 2020 -0400

    gnu: cairo: Update package definition.

    * gnu/packages/gtk.scm (cairo): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--with-html-dir]: New flag.
    [native-inputs]: Add gobject-introspection.
    [inputs]: Add libdrm. Remove xorgproto and zlib.
    [propagated-inputs]: Add libxcb.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

commit 9906abc57a6ec99d1c29ff54853eb181b9bb2c7f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 05:20:11 2020 -0400

    gnu: hplip: Update hash.

commit 8e8ea03fb867de5eb72ffdd9e3cc0d8423a74c33
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 17 16:06:09 2020 -0400

    gnu: pixman: Update package definition.

    * gnu/packages/xdisorg.scm (pixman) [version]: Update to 0.40.0.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:configure-flags>[--enable-timers]: New flag.
    [--enable-gnuplot]: New flag.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Change from X11 to expat.

*** END ***

Regards,
RG.


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

From 8e8ea03fb867de5eb72ffdd9e3cc0d8423a74c33 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 17 Jul 2020 16:06:09 -0400
Subject: [PATCH 01/17] gnu: pixman: Update package definition.

* gnu/packages/xdisorg.scm (pixman) [version]: Update to 0.40.0.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:configure-flags>[--enable-timers]: New flag.
[--enable-gnuplot]: New flag.
[synopsis]: Modify.
[description]: Modify.
[license]: Change from X11 to expat.
---
 gnu/packages/xdisorg.scm | 42 ++++++++++++++++++++++------------------
 1 file changed, 23 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 7cf8cc9a67..63a3b5df8d 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -467,30 +467,34 @@ following the mouse.")
 (define-public pixman
   (package
     (name "pixman")
-    (version "0.38.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://www.cairographics.org/releases/pixman-"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "1ryxzdf048x7wsx4dlvrr1p00gzwfs7lybnhgc7ygbj0dvyxcrns"))
-              (patches (search-patches "pixman-CVE-2016-5296.patch"))))
+    (version "0.40.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://www.cairographics.org/releases/pixman-"
+         version ".tar.gz"))
+       (sha256
+        (base32 "1z13n96m7x91j25qq9wlkxsbq04wfwjhw66ir17frna06zn0s83d"))
+       (patches
+        (search-patches "pixman-CVE-2016-5296.patch"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
-    (inputs
-     `(("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-timers"
+        "--enable-gnuplot")))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libpng" ,libpng)))
+    (synopsis "Image processing and manipulation library")
+    (description "Pixman is a library that provides low-level pixel manipulation
+features such as image compositing and trapezoid rasterization.")
     (home-page "http://www.pixman.org/")
-    (synopsis "Low-level pixel manipulation library")
-    (description "Pixman is a low-level software library for pixel
-manipulation, providing features such as image compositing and trapezoid
-rasterisation.")
-    (license license:x11)))
+    (license license:expat)))
 
 (define-public libdrm
   (package
-- 
2.27.0


[-- Attachment #1.1.3: 0002-gnu-hplip-Update-hash.patch --]
[-- Type: text/x-patch, Size: 976 bytes --]

From 9906abc57a6ec99d1c29ff54853eb181b9bb2c7f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 05:20:11 -0400
Subject: [PATCH 02/17] gnu: hplip: Update hash.

---
 gnu/packages/cups.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 8bfe96079c..281c2718e8 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -422,7 +422,7 @@ should only be used as part of the Guix cups-pk-helper service.")
                                   "/hplip-" version ".tar.gz"))
               (sha256
                (base32
-                "0rmk7i28mb0q66i5l9d0fq2j23dkhz5gx5g2xvi16ga0dnprcilp"))
+                "083w58wpvvm6sir6rf5dwx3r0rman9sv1zpl26chl0a88crjsjy6"))
               (modules '((guix build utils)))
               (patches (search-patches "hplip-remove-imageprocessor.patch"))
               (snippet
-- 
2.27.0


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

From 7039c5ba0440c4555752143c1d943705c6b9537d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 17 Jul 2020 16:06:39 -0400
Subject: [PATCH 03/17] gnu: cairo: Update package definition.

* gnu/packages/gtk.scm (cairo): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--with-html-dir]: New flag.
[native-inputs]: Add gobject-introspection.
[inputs]: Add libdrm. Remove xorgproto and zlib.
[propagated-inputs]: Add libxcb.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gtk.scm | 114 ++++++++++++++++++++++++-------------------
 1 file changed, 64 insertions(+), 50 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 50827320ee..ede663c2c0 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -131,57 +131,71 @@ accessibility tools have full access to view and control running applications.")
 
 (define-public cairo
   (package
-   (name "cairo")
-   (version "1.16.0")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "https://cairographics.org/releases/cairo-"
-                                version ".tar.xz"))
-            (sha256
-             (base32
-              "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))))
-   (build-system gnu-build-system)
-   (propagated-inputs
-    `(("fontconfig" ,fontconfig)
-      ("freetype" ,freetype)
-      ("glib" ,glib)
-      ("libpng" ,libpng)
-      ("libx11" ,libx11)
-      ("libxext" ,libxext)
-      ("libxrender" ,libxrender)
-      ("pixman" ,pixman)))
-   (inputs
-    `(("ghostscript" ,ghostscript)
-      ("libspectre" ,libspectre)
-      ("poppler" ,poppler)
-      ("xorgproto" ,xorgproto)
-      ("zlib" ,zlib)))
-   (native-inputs
-     `(("pkg-config" ,pkg-config)
-      ("python" ,python-wrapper)))
+    (name "cairo")
+    (version "1.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://cairographics.org/releases/cairo-"
+                       version ".tar.xz"))
+       (sha256
+        (base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f  ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
-       #:configure-flags '("--enable-tee"      ;needed for GNU Icecat
-                           "--enable-xml"      ;for cairo-xml support
-                           "--disable-static")))
-   (synopsis "2D graphics library")
-   (description
-    "Cairo is a 2D graphics library with support for multiple output devices.
-Currently supported output targets include the X Window System (via both
-Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
-output.  Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
-
-Cairo is designed to produce consistent output on all output media while
-taking advantage of display hardware acceleration when available
-eg. through the X Render Extension).
-
-The cairo API provides operations similar to the drawing operators of
-PostScript and PDF.  Operations in cairo including stroking and filling cubic
-Bézier splines, transforming and compositing translucent images, and
-antialiased text rendering.  All drawing operations can be transformed by any
-affine transformation (scale, rotation, shear, etc.).")
-   (license license:lgpl2.1) ; or Mozilla Public License 1.1
-   (home-page "https://cairographics.org/")))
+     `(#:tests? #f ; See http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
+       #:configure-flags
+       (list
+        "--disable-static"
+        ;; XXX: To be enabled.
+        ;; "--enable-gallium=yes"
+        ;; "--enable-gl=yes"
+        ;; " --enable-glesv2=yes"
+        ;; "--enable-glesv3=yes"
+        ;; "--enable-cogl=yes"
+        ;; "--enable-directfb=yes"
+        ;; "--enable-vg=yes"
+        "--enable-tee=yes"
+        "--enable-xml=yes"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("drm" ,libdrm)
+       ("ghostscript" ,ghostscript)
+       ("libspectre" ,libspectre)
+       ("poppler" ,poppler)))
+    (propagated-inputs
+     `(;; ("cogl" ,cogl)
+       ;; ("directfb" ,directfb)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("glib" ,glib)
+       ;; ("gtk+" ,gtk+)
+       ("libpng" ,libpng)
+       ;; ("librsvg" ,librsvg)
+       ;; ("opengl" ,mesa)
+       ("pixman" ,pixman)
+       ("x11" ,libx11)
+       ("xcb" ,libxcb)
+       ("xext" ,libxext)
+       ("xrender" ,libxrender)))
+    (synopsis "Multi-platform 2D graphics library")
+    (description "Cairo is a 2D graphics library with support for multiple output
+devices.  Currently supported output targets include the X Window System (via
+both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
+output.  Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
+    (home-page "https://cairographics.org/")
+    (license
+     ;; This project is dual-licensed.
+     (list
+      license:lgpl2.1+
+      license:mpl1.1))))
 
 (define-public cairo-xcb
   (package
-- 
2.27.0


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

From a827944c714cfa53a58b425d6797562d2877b2e9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 17 Jul 2020 16:07:56 -0400
Subject: [PATCH 04/17] gnu: libsigc++: Update package definition.

* gnu/packages/glib.scm (libsigc++) [version]: Update to 3.0.3.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--enable-benchmark]: New flag.
[--with-boost]: New flag.
[--with-boost-libdir]: New flag.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen, perl, python-wrapper and
libxslt.
[inputs]: Add boost.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/glib.scm | 72 ++++++++++++++++++++++++++++++-------------
 1 file changed, 51 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 603f0306df..de570ee3f7 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
@@ -46,6 +47,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
@@ -499,31 +501,59 @@ translated.")
 by GDBus included in Glib.")
     (license license:gpl2)))                     ; or Academic Free License 2.1
 
-(define libsigc++
+(define-public libsigc++
   (package
     (name "libsigc++")
-    (version "2.10.3")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/libsigc++/"
-                                 (version-major+minor version) "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "11j7j1jv4z58d9s7jvl42fnqa1dzl4idgil9r45cjv1w673dys0b"))))
+    (version "3.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/libsigc++/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1dpdqs3nxkxj43fnyx5467ym2s2bpk3cq8pvwi9y1nsbi5m8dx74"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("m4" ,m4)))
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-benchmark=yes"
+        (string-append "--with-boost="
+                       (assoc-ref %build-inputs "boost"))
+        (string-append "--with-boost-libdir="
+                       (assoc-ref %build-inputs "boost")
+                       "/lib"))
+       #: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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("boost" ,boost)))
+    (synopsis "Callback Framework for C++")
+    (description "Libsigc++ implements a typesafe callback system for standard
+C++.  It allows you to define signals and to connect those signals to any
+callback function, either global or a member function, regardless of whether it
+is static or virtual.  It also contains adaptor classes for connection of
+dissimilar callbacks and has an ease of use unmatched by other C++ callback
+libraries.")
     (home-page "https://libsigcplusplus.github.io/libsigcplusplus/")
-    (synopsis "Type-safe callback system for standard C++")
-    (description
-     "Libsigc++ implements a type-safe callback system for standard C++.  It
-allows you to define signals and to connect those signals to any callback
-function, either global or a member function, regardless of whether it is
-static or virtual.
-
-It also contains adaptor classes for connection of dissimilar callbacks and
-has an ease of use unmatched by other C++ callback libraries.")
     (license license:lgpl2.1+)))
 
 (define glibmm
-- 
2.27.0


[-- Attachment #1.1.6: 0005-gnu-Add-libsigc-2.patch --]
[-- Type: text/x-patch, Size: 1182 bytes --]

From 68133b1e431b661af8547b1b809b70d72ad093da Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 03:48:11 -0400
Subject: [PATCH 05/17] gnu: Add libsigc++-2.

* gnu/packages/glib.scm (libsigc++-2): New variable.
---
 gnu/packages/glib.scm | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index de570ee3f7..11c0b5471b 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -556,6 +556,21 @@ libraries.")
     (home-page "https://libsigcplusplus.github.io/libsigcplusplus/")
     (license license:lgpl2.1+)))
 
+(define-public libsigc++-2
+  (package
+    (inherit libsigc++)
+    (name "libsigc++")
+    (version "2.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/libsigc++/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "11j7j1jv4z58d9s7jvl42fnqa1dzl4idgil9r45cjv1w673dys0b"))))))
+
 (define glibmm
   (package
     (name "glibmm")
-- 
2.27.0


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

From 611fc3418926e777d1572a192527ec6b22f24379 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 03:49:41 -0400
Subject: [PATCH 06/17] gnu: cairomm: Update package definition.

* gnu/packages/gtk.scm (cairomm) [version]: Update to 1.15.5.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[CXXFLAGS]: New flag.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen, perl and libxslt.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gtk.scm | 59 +++++++++++++++++++++++++++++---------------
 1 file changed, 39 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ede663c2c0..1663b21fad 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -57,6 +57,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -72,6 +73,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graphics)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groovy)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
@@ -1366,29 +1368,46 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
 (define-public cairomm
   (package
     (name "cairomm")
-    (version "1.12.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://www.cairographics.org/releases/"
-                                  name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "16fmigxsaz85c3lgcls7biwyz8zy8c8h3jndfm54cxxas3a7zi25"))))
+    (version "1.15.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.cairographics.org/releases/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1lg3q5ixs6igd2b4674mq5i4w0il0d92bxri94mwdjkq8gs2kdld"))))
     (build-system gnu-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     ;; The examples lack -lcairo.
-     '(#:make-flags '("LDFLAGS=-lcairo")))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+     `(#:configure-flags
+       (list
+        "CXXFLAGS=-std=c++17")
+       #: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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("libsigc++" ,libsigc++)
-       ("freetype" ,freetype)
-       ("fontconfig" ,fontconfig)
-       ("cairo" ,cairo)))
-    (home-page "https://cairographics.org/")
-    (synopsis "C++ bindings to the Cairo 2D graphics library")
-    (description
-     "Cairomm provides a C++ programming interface to the Cairo 2D graphics
-library.")
+     `(("cairo" ,cairo)
+       ("sigc++" ,libsigc++)))
+    (synopsis "C++ API for Cairo")
+    (description "Cairomm is a C++ wrapper for the cairo graphics library.  It
+offers all the power of cairo with an interface familiar to C++ developers,
+including use of the Standard Template Library where it makes sense.")
+    (home-page "https://cairographics.org/cairomm/")
     (license license:lgpl2.0+)))
 
 (define-public pangomm
-- 
2.27.0


[-- Attachment #1.1.8: 0007-gnu-Add-cairomm-1.13.patch --]
[-- Type: text/x-patch, Size: 1263 bytes --]

From fd1f18145c9fdcd652b77d75d0c653c7d93ad352 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 04:01:18 -0400
Subject: [PATCH 07/17] gnu: Add cairomm-1.13.

* gnu/packages/gtk.scm (cairomm-1.13): New variable.
---
 gnu/packages/gtk.scm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 1663b21fad..5afe9303d4 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1410,6 +1410,23 @@ including use of the Standard Template Library where it makes sense.")
     (home-page "https://cairographics.org/cairomm/")
     (license license:lgpl2.0+)))
 
+(define-public cairomm-1.13
+  (package
+    (inherit cairomm)
+    (name "cairomm")
+    (version "1.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.cairographics.org/releases/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xlfl0fm5mgv53lr8xjv2kqsk3bz67qkk6qzvbrqmbvbvvbqp9wp"))))
+    (propagated-inputs
+     `(("cairo" ,cairo)
+       ("sigc++" ,libsigc++-2)))))
+
 (define-public pangomm
   (package
     (name "pangomm")
-- 
2.27.0


[-- Attachment #1.1.9: 0008-gnu-glibmm-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5492 bytes --]

From 14bea287b96739498538bf4eaf838bca77a41901 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 04:08:05 -0400
Subject: [PATCH 08/17] gnu: glibmm: Update package definition.

* gnu/packages/glib.scm (glibmm) [version]: Update to 2.65.3.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:tests?>: New argument.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen, gobject-introspection, m4,
mm-common, perl, python-wrapper and libxslt.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Add gpl2+.
---
 gnu/packages/glib.scm | 102 +++++++++++++++++++++++++-----------------
 1 file changed, 60 insertions(+), 42 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 11c0b5471b..9705d6a43d 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -64,6 +64,7 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
@@ -558,7 +559,7 @@ libraries.")
 
 (define-public libsigc++-2
   (package
-    (inherit libsigc++)
+    (inherit libsigc++) 
     (name "libsigc++")
     (version "2.10.3")
     (source
@@ -571,48 +572,65 @@ libraries.")
        (sha256
         (base32 "11j7j1jv4z58d9s7jvl42fnqa1dzl4idgil9r45cjv1w673dys0b"))))))
 
-(define glibmm
-  (package
+ (define-public glibmm
+   (package
     (name "glibmm")
-    (version "2.62.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/glibmm/"
-                                 (version-major+minor version)
-                                 "/glibmm-" version ".tar.xz"))
-             (sha256
-              (base32
-               "1ziwx6r7k7wbvg4qq1rgrv8zninapgrmhn1hs6926a3krh9ryr9n"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'pre-build
-           (lambda _
-             ;; This test uses /etc/fstab as an example file to read
-             ;; from; choose a better example.
-             (substitute* "tests/giomm_simple/main.cc"
-               (("/etc/fstab")
-                (string-append (getcwd)
-                               "/tests/giomm_simple/main.cc")))
-
-             ;; This test does a DNS lookup, and then expects to be able
-             ;; to open a TLS session; just skip it.
-             (substitute* "tests/giomm_tls_client/main.cc"
-               (("Gio::init.*$")
-                "return 77;\n"))
-             #t)))))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("glib" ,glib "bin")))
-    (propagated-inputs
-     `(("libsigc++" ,libsigc++)
-       ("glib" ,glib)))
-    (home-page "https://gtkmm.org/")
-    (synopsis "C++ interface to the GLib library")
-    (description
-     "Glibmm provides a C++ programming interface to the part of GLib that are
-useful for C++.")
-    (license license:lgpl2.1+)))
+    (version "2.65.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/glibmm/"
+                       (version-major+minor version)
+                       "/glibmm-" version ".tar.xz"))
+       (sha256
+        (base32 "1qk7kkr1xa6n3fdvf3f3p2wmj2haycb7mwhzqmdcrwplnz4qd3rz"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+     (arguments
+     `(#:tests? #f                      ; XXX: Fix-me
+       #:phases
+        (modify-phases %standard-phases
+         ;; (add-after 'unpack 'disable-failing-tests
+         ;; (lambda _
+         ;; (substitute* "tests/Makefile.in"
+         ;; (("giomm_simple/test\$\\(EXEEXT\\) giomm_stream_vfuncs/test\$\\(EXEEXT\\) \\\\")
+         ;; "")
+         ;; (("giomm_tls_client/test\$\\(EXEEXT\\) giomm_listmodel/test\$\\(EXEEXT\\) \\\\")
+         ;; ""))
+         ;; #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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("xsltproc" ,libxslt)))
+     (propagated-inputs
+      `(("libsigc++" ,libsigc++)
+        ("glib" ,glib)))
+    (synopsis "C++ interface to the GLib")
+    (description "Glibmm is a C++ API for parts of glib that are useful for C++.")
+    (home-page "https://wiki.gnome.org/Projects/GLib")
+    (license
+     (list
+      ;; Libraries
+      license:lgpl2.1+
+      ;; Tools
+      license:gpl2+))))
 
 (define-public python2-pygobject-2
   (package
-- 
2.27.0


[-- Attachment #1.1.10: 0009-gnu-Add-glibmm-2.64.patch --]
[-- Type: text/x-patch, Size: 1233 bytes --]

From eb5d57fb3e84ac057fcd47f13e794d5756e01d0a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 04:10:22 -0400
Subject: [PATCH 09/17] gnu: Add glibmm-2.64.

*gnu/packages/glib.scm (glibmm-2.64): New variable.
---
 gnu/packages/glib.scm | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 9705d6a43d..17bd7ae835 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -632,6 +632,24 @@ libraries.")
       ;; Tools
       license:gpl2+))))
 
+ (define-public glibmm-2.64
+   (package
+    (inherit glibmm)
+    (name "glibmm")
+    (version "2.64.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/glibmm/"
+                       (version-major+minor version)
+                       "/glibmm-" version ".tar.xz"))
+       (sha256
+        (base32 "1v6lp23fr2qh4zshcnm28sn29j3nzgsvcqj2nhmrnvamipjq4lm7"))))
+     (propagated-inputs
+      `(("libsigc++" ,libsigc++-2)
+        ("glib" ,glib)))))
+
 (define-public python2-pygobject-2
   (package
     (name "python2-pygobject")
-- 
2.27.0


[-- Attachment #1.1.11: 0010-gnu-atkmm-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3566 bytes --]

From e119693dc2ab384ac81155564ca1ef806beeccf9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 04:15:21 -0400
Subject: [PATCH 10/17] gnu: atkmm: Update package definition.

* gnu/packages/gtk.scm (atkmm): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: Add new output "doc".
[arguments]<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen, m4, mm-common, perl and
libxslt.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Add gpl2+.
---
 gnu/packages/gtk.scm | 60 +++++++++++++++++++++++++++++++-------------
 1 file changed, 43 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 5afe9303d4..f10dad48f3 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -80,6 +80,7 @@
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages man)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -1457,24 +1458,49 @@ library.")
   (package
     (name "atkmm")
     (version "2.28.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major+minor version)  "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0fnxrspxkhhbrjphqrpvl3zjm66n50s4cywrrrwkhbflgy8zqk2c"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0fnxrspxkhhbrjphqrpvl3zjm66n50s4cywrrrwkhbflgy8zqk2c"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#: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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("glibmm" ,glibmm) ("atk" ,atk)))
-    (home-page "https://www.gtkmm.org")
-    (synopsis "C++ interface to the ATK accessibility library")
-    (description
-     "ATKmm provides a C++ programming interface to the ATK accessibility
-toolkit.")
-    (license license:lgpl2.1+)))
+     `(("atk" ,atk)
+       ("glibmm" ,glibmm-2.64)))
+    (synopsis "C++ bindings for ATK")
+    (description "ATKmm is the C++ binding for the ATK library.")
+    (home-page "https://wiki.gnome.org/Accessibility")
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Tools
+      license:gpl2+))))
 
 (define-public gtkmm
   (package
-- 
2.27.0


[-- Attachment #1.1.12: 0011-gnu-pangomm-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3516 bytes --]

From 7ab0bd0bba2ba723f47dc699316fc8da127a5a81 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 04:33:51 -0400
Subject: [PATCH 11/17] gnu: pangomm: Update package definition.

* gnu/packages/gtk.scm (pangomm) [version]: Update to 2.43.2.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen, m4, mm-common, perl,
python-wrapper and libxslt.
[synopsis]: Modify.
[description]: Modify.
[license]: Add gpl2+.
---
 gnu/packages/gtk.scm | 61 +++++++++++++++++++++++++++++++-------------
 1 file changed, 43 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index f10dad48f3..4e92fb6623 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1431,28 +1431,53 @@ including use of the Standard Template Library where it makes sense.")
 (define-public pangomm
   (package
     (name "pangomm")
-    (version "2.42.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major+minor version)  "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0mmzxp3wniaafkxr30sb22mq9x44xckb5d60h1bl99lkzxks0vfa"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (version "2.43.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1yin5b7hfvz0qdfxgnlk6kclyfhcv0fz10kjsgai59zv0v6g6kbr"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#: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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("cairo" ,cairo)
-       ("cairomm" ,cairomm)
+     `(("cairomm" ,cairomm)
        ("glibmm" ,glibmm)
        ("pango" ,pango)))
-    (home-page "https://pango.gnome.org//")
-    (synopsis "C++ interface to the Pango text rendering library")
-    (description
-     "Pangomm provides a C++ programming interface to the Pango text rendering
+    (synopsis "C++ API for Pango")
+    (description "Pangomm is the C++ interface for the Pango font layout
 library.")
-    (license license:lgpl2.1+)))
+    (home-page "https://pango.gnome.org//")
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Tools
+      license:gpl2+))))
 
 (define-public atkmm
   (package
-- 
2.27.0


[-- Attachment #1.1.13: 0012-gnu-Add-pangomm-2.42.patch --]
[-- Type: text/x-patch, Size: 1242 bytes --]

From c8bff53d223af7c4fb2d90376879f971791e8f83 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 04:42:20 -0400
Subject: [PATCH 12/17] gnu: Add pangomm-2.42.

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

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 4e92fb6623..a686e4cd71 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1479,6 +1479,25 @@ library.")
       ;; Tools
       license:gpl2+))))
 
+(define-public pangomm-2.42
+  (package
+    (inherit pangomm)
+    (name "pangomm")
+    (version "2.42.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "03zli5amizhv9bfklwfq7xyf0b5dagchx1lnz9f0v1rhk69h9gql"))))
+    (propagated-inputs
+     `(("cairomm" ,cairomm-1.13)
+       ("glibmm" ,glibmm-2.64)
+       ("pango" ,pango)))))
+
 (define-public atkmm
   (package
     (name "atkmm")
-- 
2.27.0


[-- Attachment #1.1.14: 0013-gnu-gtkmm-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5477 bytes --]

From 5c9e355598d7b54763e0d7ee740cde2a4d80c11b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 06:12:32 -0400
Subject: [PATCH 13/17] gnu: gtkmm: Update package definition.

* gnu/packages/gtk.scm (gtkmm): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:phases>['start-xvfb]: Remove phase.
['pre-check]: New phase.
['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen, m4, mm-common, perl and
libxslt.
[propagated-inputs]: Change; pangomm to pangomm-2.42, cairomm to
cairomm-1.13 and glibmm to glibmm-2.64.
[synopsis]: Modify.
[description]: Modify.
[license]: Add gpl2+.
---
 gnu/packages/gtk.scm | 96 ++++++++++++++++++++++++++------------------
 1 file changed, 57 insertions(+), 39 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index a686e4cd71..aa4d7deb04 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1550,48 +1550,66 @@ library.")
   (package
     (name "gtkmm")
     (version "3.24.2")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major+minor version)  "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "1hxdnhavjyvbcpxhd5z17l9fj4182028s66lc0s16qqqrldhjwbd"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("glib" ,glib "bin")        ;for 'glib-compile-resources'
-                     ("xorg-server" ,xorg-server-for-tests)))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1hxdnhavjyvbcpxhd5z17l9fj4182028s66lc0s16qqqrldhjwbd"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#: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")
+             ;; 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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)
+       ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
-     `(("pangomm" ,pangomm)
-       ("cairomm" ,cairomm)
-       ("atkmm" ,atkmm)
+     `(("atkmm" ,atkmm)
+       ("cairomm" ,cairomm-1.13)
+       ("glibmm" ,glibmm-2.64)
        ("gtk+" ,gtk+)
-       ("glibmm" ,glibmm)))
-    (arguments
-     `(#:disallowed-references (,xorg-server-for-tests)
-       #:phases (modify-phases %standard-phases
-                  (add-before 'check 'run-xvfb
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((xorg-server (assoc-ref inputs "xorg-server")))
-                        ;; Tests such as 'object_move/test' require a running
-                        ;; X server.
-                        (system (string-append xorg-server "/bin/Xvfb :1 &"))
-                        (setenv "DISPLAY" ":1")
-                        ;; Don't fail because of the missing /etc/machine-id.
-                        (setenv "DBUS_FATAL_WARNINGS" "0")
-                        #t))))))
+       ("pangomm" ,pangomm-2.42)))
+    (synopsis "C++ Interfaces for GTK+ and GNOME")
+    (description "GTKmm is the official C++ interface for the popular GUI
+library GTK+.  Highlights include typesafe callbacks, and a comprehensive set of
+widgets that are easily extensible via inheritance.  You can create user
+interfaces either in code or with the Glade User Interface designer, using
+libglademm.  There's extensive documentation, including API reference and a
+tutorial.")
     (home-page "https://gtkmm.org/")
-    (synopsis
-     "C++ interface to the GTK+ graphical user interface library")
-    (description
-     "gtkmm is the official C++ interface for the popular GUI library GTK+.
-Highlights include typesafe callbacks, and a comprehensive set of widgets that
-are easily extensible via inheritance.  You can create user interfaces either
-in code or with the Glade User Interface designer, using libglademm.  There's
-extensive documentation, including API reference and a tutorial.")
-    (license license:lgpl2.1+)))
-
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Tools
+      license:gpl2+))))
 
 (define-public gtkmm-2
   (package (inherit gtkmm)
-- 
2.27.0


[-- Attachment #1.1.15: 0014-gnu-gtkmm-2-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2093 bytes --]

From 5d3720a7a2b35b7864e8c88ee597030b249fa40c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 06:18:38 -0400
Subject: [PATCH 14/17] gnu: gtkmm-2: Update package definition.

* gnu/packages/gtk.scm (gtkmm-2): Update package definition.
[arguments]: Remove field.
[native-inputs]: Remove field.
[propagated-inputs]: Change; pangomm to pangomm-2.42, cairomm to
cairomm-1.13 and glibmm to glibmm-2.64.
---
 gnu/packages/gtk.scm | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index aa4d7deb04..7f839a6da2 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1612,25 +1612,25 @@ tutorial.")
       license:gpl2+))))
 
 (define-public gtkmm-2
-  (package (inherit gtkmm)
+  (package
+    (inherit gtkmm)
     (name "gtkmm")
     (version "2.24.5")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major+minor version)  "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0wkbzvsx4kgw16f6xjdc1dz7f77ldngdila4yi5lw2zrgcxsb006"))))
-    (arguments '())
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0wkbzvsx4kgw16f6xjdc1dz7f77ldngdila4yi5lw2zrgcxsb006"))))
     (propagated-inputs
-     `(("pangomm" ,pangomm)
-       ("cairomm" ,cairomm)
-       ("atkmm" ,atkmm)
+     `(("atkmm" ,atkmm)
+       ("cairomm" ,cairomm-1.13)
+       ("glibmm" ,glibmm-2.64)
        ("gtk+" ,gtk+-2)
-       ("glibmm" ,glibmm)))))
+       ("pangomm" ,pangomm-2.42)))))
 
 (define-public gtksourceviewmm
   (package
-- 
2.27.0


[-- Attachment #1.1.16: 0015-gnu-java-jakarta-oro-Update-hash.patch --]
[-- Type: text/x-patch, Size: 900 bytes --]

From 604e2adf2b4ebb2a015539bb38077ce9964803cc Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 08:24:21 -0400
Subject: [PATCH 15/17] gnu: java-jakarta-oro: Update hash.

---
 gnu/packages/java.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 48f9a52a56..601aecf8f8 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -10985,7 +10985,7 @@ inside a Zip archive.")
                                   "jakarta-oro-" version ".tar.gz"))
               (sha256
                (base32
-                "0rpmnsskiwmsy8r0sckz5n5dbvh3vkxx8hpm177c754r8xy3qksc"))
+                "0v37kj8rj1s0s4dcs8zr1gb32i8ajzx3cxmsqhsbmgkr89vrgrqx"))
               (modules '((guix build utils)))
               (snippet
                `(begin
-- 
2.27.0


[-- Attachment #1.1.17: 0016-gnu-gtksourceviewmm-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3821 bytes --]

From 3d97b5d2e1e836d3c2fc20241f84cf0f2e2bd6b8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 08:13:48 -0400
Subject: [PATCH 16/17] gnu: gtksourceviewmm: Update package definition.

* gnu/packages/gtk.scm (gtksourceviewmm) [version]: Update to 3.21.3.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen, m4, mm-common, perl and
libxslt.
[propagated-inputs]: Change glibmm to glibmm-2.64.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Mofify.
---
 gnu/packages/gtk.scm | 58 +++++++++++++++++++++++++++++---------------
 1 file changed, 38 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 7f839a6da2..9087f662a1 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1635,30 +1635,48 @@ tutorial.")
 (define-public gtksourceviewmm
   (package
     (name "gtksourceviewmm")
-    (version "3.18.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32 "0fgvmhm4h4qmxig87qvangs6ijw53mi40siz7pixlxbrsgiil22i"))))
-    (build-system gnu-build-system)
+    (version "3.21.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1danc9mp5mnb65j01qxkwj92z8jf1gns41wbgp17qh7050f0pc6v"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#: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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
-     ;; In 'Requires' of gtksourceviewmm-3.0.pc.
-     `(("glibmm" ,glibmm)
+     `(("glibmm" ,glibmm-2.64)
        ("gtkmm" ,gtkmm)
        ("gtksourceview" ,gtksourceview-3)))
-    (synopsis "C++ interface to the GTK+ 'GtkTextView' widget")
-    (description
-     "gtksourceviewmm is a portable C++ library that extends the standard GTK+
-framework for multiline text editing with support for configurable syntax
-highlighting, unlimited undo/redo, search and replace, a completion framework,
-printing and other features typical of a source code editor.")
-    (license license:lgpl2.1+)
-    (home-page "https://developer.gnome.org/gtksourceview/")))
+    (synopsis "C++ binding for GtkSourceView")
+    (description "GtkSourceViewmm is a C++ wrapper for the gtksourceview widget
+library.  It offers all the power of gtksourceview with an interface familiar to
+C++ developers, including users of the gtkmm library.")
+    (home-page "https://wiki.gnome.org/Projects/GtkSourceView")
+    (license license:lgpl2.1+)))
 
 ;;;
 ;;; Python bindings.
-- 
2.27.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-18 13:29                                 ` Raghav Gururajan
@ 2020-07-18 14:12                                   ` Danny Milosavljevic
  2020-07-18 19:27                                     ` Raghav Gururajan
  2020-07-19 19:22                                   ` Danny Milosavljevic
  1 sibling, 1 reply; 84+ messages in thread
From: Danny Milosavljevic @ 2020-07-18 14:12 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

Hi RG,

since cairo is meant to be a portable and backend-agnostic vector graphics
library, I find it hard to believe it needs to propagate fontconfig, freetype,
glib, libpng, pixman, x11, xcb, xext and xrender.

Are you sure that cairo actually exposes those libraries' interfaces to its
users?

The cairo.pc file also suggests otherwise:

Requires.private:   gobject-2.0 glib-2.0 >= 2.14       pixman-1 >= 0.30.0    fontconfig >= 2.2.95 freetype2 >= 9.7.3   libpng xcb-shm xcb >= 1.6 xcb-render >= 1.6 xrender >= 0.6 x11 xext 
Libs: -L${libdir} -lcairo
Libs.private:            -lz -lz   -lz      

"Requires.private" means that those are implementation details and not to be
exposed to the users of the library.

Also, please do not make libsigc++ public twice.  It's already in the
module's #:export list.

Same for glibmm and maybe others.

Pushed the pixman and hplip patches to wip-desktop.

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-18 14:12                                   ` Danny Milosavljevic
@ 2020-07-18 19:27                                     ` Raghav Gururajan
  2020-07-18 20:18                                       ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-18 19:27 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

Hi Danny!

> since cairo is meant to be a portable and backend-agnostic vector graphics
> library, I find it hard to believe it needs to propagate fontconfig, freetype,
> glib, libpng, pixman, x11, xcb, xext and xrender.
> 
> Are you sure that cairo actually exposes those libraries' interfaces to its
> users?

I took a brief look at the manual
(https://cairographics.org/manual/cairo-surfaces.html), it appears it
does exposes them.

> The cairo.pc file also suggests otherwise:
> 
> Requires.private:   gobject-2.0 glib-2.0 >= 2.14       pixman-1 >= 0.30.0    fontconfig >= 2.2.95 freetype2 >= 9.7.3   libpng xcb-shm xcb >= 1.6 xcb-render >= 1.6 xrender >= 0.6 x11 xext 
> Libs: -L${libdir} -lcairo
> Libs.private:            -lz -lz   -lz      
> 
> "Requires.private" means that those are implementation details and not to be
> exposed to the users of the library.

The other reason I left them in propagated inputs is because, the
packages that depend on cairo doesn't build without them. If I
de-propagate them in cairo, then I have to replicate them as inputs on
other packages.

> Also, please do not make libsigc++ public twice.  It's already in the
> module's #:export list.
> 
> Same for glibmm and maybe others.

Hmm. Without that, I get "package not found" while doing `./pre-inst-env
guix build foo`.

> Pushed the pixman and hplip patches to wip-desktop.

Thanks!

Regards,
RG.




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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-18 19:27                                     ` Raghav Gururajan
@ 2020-07-18 20:18                                       ` Raghav Gururajan
  2020-07-19 11:43                                         ` Danny Milosavljevic
  2020-07-19 19:21                                         ` Danny Milosavljevic
  0 siblings, 2 replies; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-18 20:18 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

Hi Danny!

>> Also, please do not make libsigc++ public twice.  It's already in the
>> module's #:export list.
>>
>> Same for glibmm and maybe others.
> 
> Hmm. Without that, I get "package not found" while doing `./pre-inst-env
> guix build foo`.

It was for `./etc/indent-code.el`, not for `./pre-inst-env guix build`.

Please find the revised patched for libsigc++ and glibmm, attached with
this email.

Regards,
RG.

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

From 8a1cee7387722427cfa78b5272ab591df8c3953a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 17 Jul 2020 16:07:56 -0400
Subject: [PATCH 04/18] gnu: libsigc++: Update package definition.

* gnu/packages/glib.scm (libsigc++) [version]: Update to 3.0.3.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--enable-benchmark]: New flag.
[--with-boost]: New flag.
[--with-boost-libdir]: New flag.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen, perl, python-wrapper and
libxslt.
[inputs]: Add boost.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/glib.scm | 70 ++++++++++++++++++++++++++++++-------------
 1 file changed, 50 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 603f0306df..5d19dacc10 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
@@ -46,6 +47,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
@@ -502,28 +504,56 @@ by GDBus included in Glib.")
 (define libsigc++
   (package
     (name "libsigc++")
-    (version "2.10.3")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/libsigc++/"
-                                 (version-major+minor version) "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "11j7j1jv4z58d9s7jvl42fnqa1dzl4idgil9r45cjv1w673dys0b"))))
+    (version "3.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/libsigc++/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1dpdqs3nxkxj43fnyx5467ym2s2bpk3cq8pvwi9y1nsbi5m8dx74"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("m4" ,m4)))
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-benchmark=yes"
+        (string-append "--with-boost="
+                       (assoc-ref %build-inputs "boost"))
+        (string-append "--with-boost-libdir="
+                       (assoc-ref %build-inputs "boost")
+                       "/lib"))
+       #: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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("boost" ,boost)))
+    (synopsis "Callback Framework for C++")
+    (description "Libsigc++ implements a typesafe callback system for standard
+C++.  It allows you to define signals and to connect those signals to any
+callback function, either global or a member function, regardless of whether it
+is static or virtual.  It also contains adaptor classes for connection of
+dissimilar callbacks and has an ease of use unmatched by other C++ callback
+libraries.")
     (home-page "https://libsigcplusplus.github.io/libsigcplusplus/")
-    (synopsis "Type-safe callback system for standard C++")
-    (description
-     "Libsigc++ implements a type-safe callback system for standard C++.  It
-allows you to define signals and to connect those signals to any callback
-function, either global or a member function, regardless of whether it is
-static or virtual.
-
-It also contains adaptor classes for connection of dissimilar callbacks and
-has an ease of use unmatched by other C++ callback libraries.")
     (license license:lgpl2.1+)))
 
 (define glibmm
-- 
2.27.0


[-- Attachment #1.1.3: 0008-gnu-glibmm-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5485 bytes --]

From c0c11f757848cf14904ad3eef24ae51fa72b0a86 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 04:08:05 -0400
Subject: [PATCH 08/18] gnu: glibmm: Update package definition.

* gnu/packages/glib.scm (glibmm) [version]: Update to 2.65.3.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:tests?>: New argument.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen, gobject-introspection, m4,
mm-common, perl, python-wrapper and libxslt.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Add gpl2+.
---
 gnu/packages/glib.scm | 102 +++++++++++++++++++++++++-----------------
 1 file changed, 60 insertions(+), 42 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index d4ceba681c..8aaf48e04e 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -64,6 +64,7 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
@@ -558,7 +559,7 @@ libraries.")
 
 (define-public libsigc++-2
   (package
-    (inherit libsigc++)
+    (inherit libsigc++) 
     (name "libsigc++")
     (version "2.10.3")
     (source
@@ -571,48 +572,65 @@ libraries.")
        (sha256
         (base32 "11j7j1jv4z58d9s7jvl42fnqa1dzl4idgil9r45cjv1w673dys0b"))))))
 
-(define glibmm
-  (package
+ (define glibmm
+   (package
     (name "glibmm")
-    (version "2.62.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/glibmm/"
-                                 (version-major+minor version)
-                                 "/glibmm-" version ".tar.xz"))
-             (sha256
-              (base32
-               "1ziwx6r7k7wbvg4qq1rgrv8zninapgrmhn1hs6926a3krh9ryr9n"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'pre-build
-           (lambda _
-             ;; This test uses /etc/fstab as an example file to read
-             ;; from; choose a better example.
-             (substitute* "tests/giomm_simple/main.cc"
-               (("/etc/fstab")
-                (string-append (getcwd)
-                               "/tests/giomm_simple/main.cc")))
-
-             ;; This test does a DNS lookup, and then expects to be able
-             ;; to open a TLS session; just skip it.
-             (substitute* "tests/giomm_tls_client/main.cc"
-               (("Gio::init.*$")
-                "return 77;\n"))
-             #t)))))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("glib" ,glib "bin")))
-    (propagated-inputs
-     `(("libsigc++" ,libsigc++)
-       ("glib" ,glib)))
-    (home-page "https://gtkmm.org/")
-    (synopsis "C++ interface to the GLib library")
-    (description
-     "Glibmm provides a C++ programming interface to the part of GLib that are
-useful for C++.")
-    (license license:lgpl2.1+)))
+    (version "2.65.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/glibmm/"
+                       (version-major+minor version)
+                       "/glibmm-" version ".tar.xz"))
+       (sha256
+        (base32 "1qk7kkr1xa6n3fdvf3f3p2wmj2haycb7mwhzqmdcrwplnz4qd3rz"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+     (arguments
+     `(#:tests? #f                      ; XXX: Fix-me
+       #:phases
+        (modify-phases %standard-phases
+         ;; (add-after 'unpack 'disable-failing-tests
+         ;; (lambda _
+         ;; (substitute* "tests/Makefile.in"
+         ;; (("giomm_simple/test\$\\(EXEEXT\\) giomm_stream_vfuncs/test\$\\(EXEEXT\\) \\\\")
+         ;; "")
+         ;; (("giomm_tls_client/test\$\\(EXEEXT\\) giomm_listmodel/test\$\\(EXEEXT\\) \\\\")
+         ;; ""))
+         ;; #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/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("xsltproc" ,libxslt)))
+     (propagated-inputs
+      `(("libsigc++" ,libsigc++)
+        ("glib" ,glib)))
+    (synopsis "C++ interface to the GLib")
+    (description "Glibmm is a C++ API for parts of glib that are useful for C++.")
+    (home-page "https://wiki.gnome.org/Projects/GLib")
+    (license
+     (list
+      ;; Libraries
+      license:lgpl2.1+
+      ;; Tools
+      license:gpl2+))))
 
 (define-public python2-pygobject-2
   (package
-- 
2.27.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-18 20:18                                       ` Raghav Gururajan
@ 2020-07-19 11:43                                         ` Danny Milosavljevic
  2020-07-19 19:21                                         ` Danny Milosavljevic
  1 sibling, 0 replies; 84+ messages in thread
From: Danny Milosavljevic @ 2020-07-19 11:43 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

Hi RG,

On Sat, 18 Jul 2020 16:18:53 -0400
Raghav Gururajan <raghavgururajan@disroot.org> wrote:

> >> Also, please do not make libsigc++ public twice.  It's already in the
> >> module's #:export list.
> >>
> >> Same for glibmm and maybe others.  
> > 
> > Hmm. Without that, I get "package not found" while doing `./pre-inst-env
> > guix build foo`.  
> 
> It was for `./etc/indent-code.el`, not for `./pre-inst-env guix build`.

Whoops?  Please file a bug report at bug-guix@gnu.org

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-18 20:18                                       ` Raghav Gururajan
  2020-07-19 11:43                                         ` Danny Milosavljevic
@ 2020-07-19 19:21                                         ` Danny Milosavljevic
  1 sibling, 0 replies; 84+ messages in thread
From: Danny Milosavljevic @ 2020-07-19 19:21 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

Hi RG,

On Sat, 18 Jul 2020 16:18:53 -0400
Raghav Gururajan <raghavgururajan@disroot.org> wrote:

> Please find the revised patched for libsigc++ and glibmm, attached with
> this email.

Applied to wip-desktop

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-18 13:29                                 ` Raghav Gururajan
  2020-07-18 14:12                                   ` Danny Milosavljevic
@ 2020-07-19 19:22                                   ` Danny Milosavljevic
  2020-07-20  1:54                                     ` Raghav Gururajan
  1 sibling, 1 reply; 84+ messages in thread
From: Danny Milosavljevic @ 2020-07-19 19:22 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

Hi RG,

applied the patches to wip-desktop, with libsigc++ and glibmm replaced by your
newer patches.

I'm still not sure about the propagated-inputs but I left them as-is for the
time being.

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-19 19:22                                   ` Danny Milosavljevic
@ 2020-07-20  1:54                                     ` Raghav Gururajan
  2020-07-24 18:29                                       ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-20  1:54 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

Hi Danny!

> applied the patches to wip-desktop, with libsigc++ and glibmm replaced by your
> newer patches.

Thank you!

> I'm still not sure about the propagated-inputs but I left them as-is for the
> time being.

Yeah, it is itching me too. I wouldn't want them propagated. It will
look into it more when I get a chance.

Regards,
RG.



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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-20  1:54                                     ` Raghav Gururajan
@ 2020-07-24 18:29                                       ` Raghav Gururajan
  2020-07-25  8:15                                         ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-24 18:29 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

Please find the attached patches.

@Others

Please find the following git-log.

*** START ***

commit dc979672cfb865073608aea2b443f326ceada3d1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 14:18:35 2020 -0400

    gnu: gtk-vnc: Update package definition.

    * gnu/packages/gnome.scm (gtk-vnc) [version]: Update to 1.0.0.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to meson.
    [arguments]<#:glib-or-gtk?>: New argument.
    [native-inputs]: Add gjs, node and perl.
    [inputs]: Add cairo, gdk-pixbuf+svg, libx11 and zlib.
    [synopsis]: Modify.
    [description]: Modify.

commit fc52b2744edf499d2b07cc49cc35ee27948c9e5b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 13:49:24 2020 -0400

    gnu: gspell: Update package definition.

    * gnu/packages/gnome.scm (gspell) [version]: Update to 1.8.3.
    [source]<origin>[sha256]: Modify base32.
    [patches]: Remove gspell-dash-test.patch.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--enable-vala]: Remove flag.
    [--enable-gtk-doc]: New flag.
    [--with-html-dir=]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['disable-failing-tests]: New phase.
    ['pre-check]: Modify phase.
    [native-inputs]: Add docbook-xml, gettext-minimal and gtk-doc.
    [inputs]: Move glib and gtk+ to ...
    [propagated-inputs]: ... here.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Change from gpl2+ to lgpl2.1+.

    * gnu/packages/patches/gspell-dash-test.patch: Remove file.

    * gnu/local.mk (gspell-dash-test.patch): Remove reference.

commit 55e35961a5641ad6c562e5226fe437c22a0138d3
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 13:10:42 2020 -0400

    gnu: gsound: Update package definition.

    * gnu/packages/gnome.scm (gsound): Update package definition.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [--enable-gtk-doc]: New flag.
    [--with-html-dir=]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml and gtk-doc.

commit 1bbadcc904f28c4761d49118b33bf287d547dd19
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 11:38:57 2020 -0400

    gnu: gupnp-dlna: Update package definition.

    * gnu/packages/gnome.scm (gupnp-dlna): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [--enable-gtk-doc]: New flag.
    [--with-html-dir=]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml. Remove libxml2.
    [inputs]: Add libxml2. Remove gstreamer.
    [propagated-inputs]: Add glib, glib-networking and gstreamer. Remove
    gst-plugins-good.
    [description]: Modify.

commit b70d1b570dbf307db0019eea2d268a72a3adc470
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 11:10:25 2020 -0400

    gnu: grilo-plugins: Update package definition.

    * gnu/packages/gnome.scm (grilo-plugins) [version]: Update to 0.3.11.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['disable-failing-tests]: New phase.
    [native-inputs]: Add gobject-introspection, lua and python-wrapper.
    [inputs]: Add glib, glib-networking, gmime, gperf, gssdp, gstreamer,
    gupnp, gupnp-av, libarchive, libdmapsharing, librest, libxml2, liboauth
    and sqlite.
    [synopsis]: Modify.
    [description]: Modify.

commit 493edd0a14c7a004b024d66d955b8065e0c7ba5e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 10:19:20 2020 -0400

    gnu: gupnp-av: Update package definition.

    * gnu/packages/gnome.scm (gupnp-av): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [--enable-gtk-doc]: New flag.
    [--with-html-dir=]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml and vala. Remove libxml2.
    [inputs]: Add libxml2.
    [description]: Modify.

commit 157b87e82a8f5ed8bda0eb8e05e98c4ac6939b6f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 09:53:15 2020 -0400

    gnu: gupnp: Update package definition.

    * gnu/packages/gnome.scm (gupnp) [version]: Update to 1.2.3.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dgtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, docbook-xsl, gjs,
    gsettings-desktop-schemas and libxslt.
    [inputs]: Move gssdp and libsoup to ...
    [propagated-inputs]: ... here. Add glib, glib-networking and libxml2.
    [synopsis]: Modify.
    [description]: Modify.

commit dcdaccce335f7ff71b3deb89ea20690d3f7efbbb
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 09:33:48 2020 -0400

    gnu: gssdp: Update package definition.

    * gnu/packages/gnome.scm (gssdp) [version]: Update to 1.2.3.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dgtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml.
    [inputs]: Remove libsoup.
    [propagated-inputs]: Add glib, glib-networking and libsoup.
    [synopsis]: Modify.
    [description]: Modify.

commit cad317f3b6eaeefde3b760b32e161bc46489012d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 08:55:56 2020 -0400

    gnu: Add libdmapsharing.

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

commit b9576949759167e8803797fd24e5d04fd11ea78a
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 08:03:26 2020 -0400

    gnu: Add pedansee.

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

commit 2af3819e659c70c29385890f4fc5313c95653a89
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 06:38:42 2020 -0400

    gnu: grilo: Update package definition.

    * gnu/packages/gnome.scm (grilo) [version]: Update to 0.3.12.
    [source]<origin>[sha256]: Modify base32.
    [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 and python-wrapper.
    [inputs]: Remove cyrus-sasl. Move glib and libxml2 to ...
    [propagated-inputs]: ... here. Add glib-networking.
    [search-paths]: New field.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit c5b988c1b05f98cd7897d8ddffa0eb52206d4c87
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 05:49:15 2020 -0400

    gnu: gom: Update package definition.

    * gnu/packages/gnome.scm (gom) [version]: Update to 0.4.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from glib-or-gtk to meson.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Denable-gtk-doc]: New flag.
    [-Dpygobject-override-dir=]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, gjs and gtk-doc.
    [inputs]: Change gdk-pixbuf to gdk-pixbuf+svg.
    [synopsis]: Modify.
    [description]: Modify.

commit b6659ff9c17d3840ff5b9528f760fec4c87f0a58
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 07:12:40 2020 -0400

    gnu: gjs: Disable tests.

    * gnu/packages/gnome.scm (gjs): Disable tests.
    [arguments]<#:tests?>: New argument.
    <#:phases>['pre-check]: Remove phase.

commit eda77a67cf1120488ef8a448ea5aadf7b4b584fa
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 04:02:34 2020 -0400

    gnu: gnome-video-effects: Update package definition.

    * gnu/packages/gnome.scm (gnome-video-effects) [version]: Update to
    0.5.0.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from glib-or-gtk to meson.
    [arguments]<#:glib-or-gtk?>: New argument.
    [native-inputs]: Remove glib:bin. Add perl and perl-xml-parser.
    [synopsis]: Modify.
    [description]: Modify.

commit 38457adc7c53b1ba5795984a689d50d17a0bde4e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 00:57:05 2020 -0400

    gnu: gnome-online-miners: Update package definition.

    * gnu/packages/gnome.scm (gnome-online-miners): Update package
    definition.
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [inputs]: Add glib and glib-networking. Remove gnome-online-accounts
    and rest.

commit 5924b45ed5169f86f7442f3a004d5518ae3f7a4b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 24 03:09:43 2020 -0400

    gnu: gfbgraph: Update package definition.

    * gnu/packages/gnome.scm (gfbgraph) [version]: Update to 0.2.4.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--enable-introspection]: Remove flag.
    [--enable-gtk-doc]: New flag.
    [--with-html-dir]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add autoconf, automake, docbook-xml, gettext-minimal,
    gtk-doc and which.
    [inputs]: Move gnome-online-accounts, json-glib and rest to ...
    [propagated-inputs]: ... here. Add glib and libsoup.
    [synopsis]: Modify.
    [description]: Modify.

commit c6875dc0d722d07c7906f8103f5ec01649d030e5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 23 11:19:25 2020 -0400

    gnu: gnome-online-accounts: Update package definition.

    * gnu/packages/gnome.scm (gnome-online-accounts): Update package
    definition.
    [outputs]: New output 'doc'.
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [--enable-documentation]: New flag.
    [--enable-gtk-doc]: New flag.
    [--enable-inspector]: New flag.
    [--enable-media-server]: New flag.
    [--enable-lastfm]: New flag.
    [--with-html-dir=]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml, docbook-xsl and gtk-doc. Remove
    glib:bin.
    [inputs]: Remove docbook-xsl. Add dbus, gcr, mit-krb5, libsoup and
    libxml2.
    [propagated-inputs]: Add glib-networking.
    [description]: Modify.

commit 4749f46650f8f816ae97c4b9ad2424d9bff99e88
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 22 15:27:33 2020 -0400

    gnu: gnome-autoar: Update package definition.

    * gnu/packages/gnome.scm (gnome-autoar): Update package definition.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [--enable-gtk-doc]: New flag.
    [--with-html-dir]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml, gtk-doc and vala.
    [inputs]: Remove gtk+.
    [propagated-inputs]: Add glib and gtk+.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit 6f094fc726db15e73298abb581c7afcd9ee570b1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 22 12:30:38 2020 -0400

    gnu: gmime: Update package definition.

    * gnu/packages/mail.scm (gmime): 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.
    [--with-gpgme-prefix]: New flag.
    <#:phases>['patch-paths-in-tests]: Remove phase.
    ['patch-docbook-xml]: New phase.
    ['disable-failing-tests]: New phase.
    [native-inputs]: Add docbook-xml, docbook-xsl, docbook-utils,
    gobject-introspection, gtk-doc, perl and vala. Remove gnupg.
    [inputs]: Add gnupg and libidn2. Remove glib.
    [propagated-inputs]: Add glib.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

commit 71ba0b6c89718906b40fbbed65dbc3d5ca406860
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 22 05:25:16 2020 -0400

    gnu: Add docbook-utils.

    * gnu/packages/docbook.scm (docbook-utils): New variable.

    * gnu/packages/patches: Add files docbook-utils-autotools.patch,
    docbook-utils-typo.patch, docbook-utils-frontends.patch,
    docbook-utils-helpers-date.patch, docbook-utils-helpers-name.patch,
    docbook-utils-helpers-whitespace.patch,
docbook-utils-helpers-support.patch
    and docbook-utils-jade.patch.

    * gnu/local.mk: Add references to new patches.

commit e750481a6261b44a518e71e2f081304dd29ea3a8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 22 08:29:54 2020 -0400

    gnu: Add docbook-dsssl.

    * gnu/packages/docbook.scm (docbook-dsssl): New variable.

commit ed6641a62515619521bdeb6460880166518b0a1f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 21 08:52:03 2020 -0400

    gnu: Add sgml-common.

    * gnu/packages/docbook.scm (sgml-common): New variable.

    * gnu/packages/patches/sgml-common-manpage.patch: New file.

    * gnu/local.mk (sgml-common-manpage.patch): New reference.

commit 8f97cf8ad6561e5072abb8723c058c09d5f7a796
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 21 08:12:34 2020 -0400

    gnu: Add openjade.

    * gnu/packages/xml.scm (openjade): New variable.

commit f02f44f066b5df67da5a9211f78771b9305f2ff9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 21 05:45:49 2020 -0400

    gnu: gexiv2: Update package definition.

    * gnu/packages/gnome.scm (gexiv2) [version]: Update to 0.12.1.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dgtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, gtk-doc, python-2 and python.
    Remove gcr.
    [inputs]: Remove glib.
    [propagated-inputs]: Add glib.
    [synopsis]: Modify.

commit e4ba886dbc21e22556650552d55c8541e824c620
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 21 04:29:16 2020 -0400

    gnu: geocode-glib: Update package definition.

    * gnu/packages/gnome.scm (geocode-glib) [version]: Update to 3.26.2.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-D-Denable-installed-tests]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml and python-wrapper. Remove json-glib.
    [inputs]: Add json-glib.
    [propagated-inputs]: Add glib-networking.

commit cffe17c384893d2a43156ebf0cc5780d6ccf2123
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 21 03:45:21 2020 -0400

    gnu: gegl: Update package definition.

    * gnu/packages/gimp.scm (gegl): Update package definition.
    [source]<origin>[patches]: Add gegl-mrg.patch.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[-Dintrospection]: Remove flag.
    [-Ddocs]: New flag.
    [-Dworkshop]: New flag.
    [-Dsdl1]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add asciidoc, docbook-xml, docbook-xsl, enscript,
    gobject-introspection, gtk-doc, perl, python-pygobject, python-wrapper,
    ruby and vala.
    [inputs]: Add exiv2, gdk-pixbuf+svg, gexiv2, jasper, lcms, lensfun,
ffmpeg,
    libnsgif, libraw, librsvg, libspiro, libtiff, lua, luajit, mrg,
openexr, poly2tri-c,
    poppler, sdl, sdl2, suitesparse, v4l-utils and libwebp.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Remove gpl3+.

    * gnu/packages/patches/gegl-mrg.patch: New file.

    * gnu/local.mk (gegl-mrg.patch): New reference.

commit af02e9eb2e681975c7b42a7e6a42ce5adff93a1e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 20 12:21:09 2020 -0400

    gnu: Add mrg.

    * gnu/packages/gimp.scm (mrg): New variable.

commit d95f0ab7fd46370eb80a6d821928c1d2f6c6c6ae
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 20 11:00:41 2020 -0400

    gnu: Add mmm.

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

commit 46b13e21a57b04cf443d5823d2eea472f9d3d286
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 20 08:45:05 2020 -0400

    gnu: Add poly2tri-c.

    * gnu/packages/gimp.scm (poly2tri-c): New variable.

commit e2a4c1746f91265d202b6d5258e9058c4ca6171e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 20 04:54:29 2020 -0400

    gnu: folks: Update package definition.

    * gnu/packages/gnome.scm (folks) [version]: Update to 0.14.0.
    [outputs]: New outputs "doc" and "help".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dtracker_backend]: New flag.
    [-Dzeitgeist]: New flag.
    [-Ddocs]: New flag.
    <#:phases>['skip-gtk-update-icon-cache]: Remove phase.
    ['disable-failing-tests]: New phase.
    ['move-doc]: New phase.
    ['move-help]: New phase.
    [native-inputs]: Add cmake, docbook-xml, gtk-doc, gtk+:bin,
    python-wrapper and python-dbusmock.
    [inputs]: Remove bdb, evolution-data-server, glib, libgee and
    telepathy-glib. Add libxml2 and zeitgeist.
    [propagated-inputs]: Add evolution-data-server, glib, libgee,
    telepathy-glib and tracker.
    [synopsis]: Modify.
    [description]: Modify.

commit cc27746676b693a2898012e6652dcb0a1cefc24b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 20 01:49:43 2020 -0400

    gnu: Add zeitgeist.

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

commit d939da668cdab3dc891773b78d25be8ccc5c99eb
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 19 06:54:46 2020 -0400

    gnu: Add dee.

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

    * gnu/packages/patches/dee-vapi.patch: New file.

    * gnu/local.mk (dee-vapi.patch): New reference.

commit 60db9b21985945f42209d493e15433c27cf775eb
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 19 06:11:54 2020 -0400

    gnu: Add gtx.

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

commit 54f10ad0cdef2a02daa4c320e30f69e86ac0f748
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 19 03:23:18 2020 -0400

    gnu: evolution-data-server: Update package definition.

    * gnu/packages/gnome.scm (evolution-data-server) [version]: Update
    to 3.36.4.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:imported-modules>: New argument.
    <#:modules>: New argument.
    <#:configure-flags>[-DSENDMAIL_PATH]: New flag.
    [-DWITH_SYSTEMDUSERUNITDIR]: New flag.
    [-DENABLE_GTK_DOC]: New flag.
    [-DWITH_PRIVATE_DOCS]: New flag.
    [-DENABLE_BACKEND_PER_PROCESS]: New flag.
    [-DCMAKE_INSTALL_RPATH]: Modify flag.
    [-DENABLE_UOA]: Remove flag.
    [-DENABLE_GOOGLE]: Remove flag.
    [-DENABLE_GOOGLE_AUTH]: Remove flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['fix-errors]: New phase.
    ['disable-failing-tests]: Modify phase.
    ['move-doc]: New phase.
    ['glib-or-gtk-compile-schemas]: New phase.
    ['glib-or-gtk-wrap]: New phase.
    ['patch-paths]: Remove phase.
    ['dont-override-rpath]: Remove phase.
    [native-inputs]: Add docbook-xml, gsettings-desktop-schemas, gtk-doc
    and gtk+:bin. Remove gperf.
    [inputs]: Add gperf, icu4c, libgdata, liboauth and sendmail.
    [propagated-inputs]: Add glib, glib-networking, libxml2 and nspr.
    [synopsis]: Modify.
    [description]: Modify.

    * gnu/packages/patches/evolution-data-server-locales.patch: Remove file.

    * gnu/packages/patches/evolution-data-server-libical-compat.patch:
Remove file.

    * gnu/local.mk (evolution-data-server-locales.patch): Remove reference.

    * gnu/local.mk (evolution-data-server-libical-compat.patch): Remove
reference.

commit 0e10b61e461c607a01f90dca257ce9dba7965929
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 16:46:19 2020 -0400

    gnu: babl: Update package definition.

    * gnu/packages/gimp.scm (babl): Update package definition.
    [arguments]<#:glib-or-gtk?>: New argument.
    [native-inputs]: Add gobject-introspection, python-wrapper, ruby
    and vala.
    [inputs]: Add librsvg and w3m.
    [synopsis]: Modify.
    [description]: Modify.

commit a178c52797dab6ad1eaa57148a8beced7e4446f8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 18 08:59:04 2020 -0400

    gnu: amtk: Update package definition.

    * gnu/packages/gnome.scm (amtk) [version]: Update to 5.1.1.
    [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-minimal, gtk+:bin, gtk-doc
    and python-wrapper.
    [inputs]: Change field to propagated-inputs.

*** END ***

Regards,
RG.

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

From a178c52797dab6ad1eaa57148a8beced7e4446f8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 08:59:04 -0400
Subject: [PATCH 01/36] gnu: amtk: Update package definition.

* gnu/packages/gnome.scm (amtk) [version]: Update to 5.1.1.
[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-minimal, gtk+:bin, gtk-doc
and python-wrapper.
[inputs]: Change field to propagated-inputs.
---
 gnu/packages/gnome.scm | 61 ++++++++++++++++++++++++++++--------------
 1 file changed, 41 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f772b9c0d2..22ffeba3e8 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5170,32 +5170,53 @@ which are easy to play with the aid of a mouse.")
 (define-public amtk
   (package
     (name "amtk")
-    (version "5.0.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/amtk/"
-                                  (version-major+minor version) "/"
-                                  "amtk-" version ".tar.xz"))
-              (sha256
-               (base32
-                "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
-    (build-system gnu-build-system)
+    (version "5.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/amtk/"
+                       (version-major+minor version) "/"
+                       "amtk-" version ".tar.xz"))
+       (sha256
+        (base32 "1wax6mim8dj0m21k8ima7ysm3bzzp54r00jganwbzakq8bfnnrgr"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:configure-flags '("--enable-gtk-doc")))
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '("amtk-docs.xml.in"
+                              "amtk-intro.xml.in")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("glib:bin" ,glib "bin")         ; for glib-mkenums
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
        ("gtk-doc" ,gtk-doc)
-       ("pkg-config" ,pkg-config)))
-    (inputs
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (propagated-inputs
      `(("glib" ,glib)
        ("gtk+" ,gtk+)))
-    (home-page "https://wiki.gnome.org/Projects/Amtk")
     (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
-    (description
-     "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
-It is a basic GtkUIManager replacement based on GAction.  It is suitable for
-both a traditional UI or a modern UI with a GtkHeaderBar.")
+    (description "Amtk is the acronym for @acronym{Amtk, Actions Menus and
+Toolbars Kit}.  It is a basic GtkUIManager replacement based on GAction.  It is
+suitable for both a traditional UI or a modern UI with a GtkHeaderBar.")
+    (home-page "https://wiki.gnome.org/Projects/Amtk")
     (license license:lgpl2.1+)))
 
 (define-public devhelp
-- 
2.27.0


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

From 0e10b61e461c607a01f90dca257ce9dba7965929 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 18 Jul 2020 16:46:19 -0400
Subject: [PATCH 02/36] gnu: babl: Update package definition.

* gnu/packages/gimp.scm (babl): Update package definition.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add gobject-introspection, python-wrapper, ruby
and vala.
[inputs]: Add librsvg and w3m.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gimp.scm | 58 +++++++++++++++++++++++--------------------
 1 file changed, 31 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index c52dc7a4d1..84c3ed8019 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -45,6 +45,8 @@
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages ruby)
+  #:use-module (gnu packages w3m)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xorg))
 
@@ -52,39 +54,41 @@
   (package
     (name "babl")
     (version "0.1.78")
-    (source (origin
-              (method url-fetch)
-              (uri (list (string-append "https://download.gimp.org/pub/babl/"
-                                        (version-major+minor version)
-                                        "/babl-" version ".tar.xz")
-                         (string-append "https://ftp.gtk.org/pub/babl/"
-                                        (version-major+minor version)
-                                        "/babl-" version ".tar.xz")
-                         (string-append "ftp://ftp.gtk.org/pub/babl/"
-                                        (version-major+minor version)
-                                        "/babl-" version ".tar.xz")))
-              (sha256
-               (base32
-                "0fjjfb0pbgimlqi7rk8cqz8pq595b7gw8nrpkxfmixdz6cv4km8p"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (list
+         (string-append "https://download.gimp.org/pub/babl/"
+                        (version-major+minor version)
+                        "/babl-" version ".tar.xz")
+         (string-append "https://ftp.gtk.org/pub/babl/"
+                        (version-major+minor version)
+                        "/babl-" version ".tar.xz")
+         (string-append "ftp://ftp.gtk.org/pub/babl/"
+                        (version-major+minor version)
+                        "/babl-" version ".tar.xz")))
+       (sha256
+        (base32 "0fjjfb0pbgimlqi7rk8cqz8pq595b7gw8nrpkxfmixdz6cv4km8p"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags
-       (list "-Denable-gir=false")))
+     `(#:glib-or-gtk? #t))   ; To wrap binaires and/or compile schemas
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)
+       ("vala" ,vala)))
+    (inputs
+     `(("rsvg-convert" ,librsvg)
+       ("w3m" ,w3m)))
     (propagated-inputs
-     ;; Propagated to satisfy ‘babl.pc’.
      `(("lcms" ,lcms)))
+    (synopsis "Pixel encoding and color space conversion engine in C")
+    (description "Babl is a pixel encoding and color space conversion engine,
+with format introspection, cached runtime self-benchmarking alternate and cpu
+specific code paths.")
     (home-page "http://gegl.org/babl/")
-    (synopsis "Image pixel format conversion library")
-    (description
-     "Babl is a dynamic, any-to-any pixel format translation library.
-It allows converting between different methods of storing pixels, known as
-@dfn{pixel formats}, that have different bit depths and other data
-representations, color models, and component permutations.
-
-A vocabulary to formulate new pixel formats from existing primitives is
-provided, as well as a framework to add new color models and data types.")
     (license license:lgpl3+)))
 
 (define-public gegl
-- 
2.27.0


[-- Attachment #1.1.4: 0003-gnu-evolution-data-server-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 16700 bytes --]

From 54f10ad0cdef2a02daa4c320e30f69e86ac0f748 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 19 Jul 2020 03:23:18 -0400
Subject: [PATCH 03/36] gnu: evolution-data-server: Update package definition.

* gnu/packages/gnome.scm (evolution-data-server) [version]: Update
to 3.36.4.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:imported-modules>: New argument.
<#:modules>: New argument.
<#:configure-flags>[-DSENDMAIL_PATH]: New flag.
[-DWITH_SYSTEMDUSERUNITDIR]: New flag.
[-DENABLE_GTK_DOC]: New flag.
[-DWITH_PRIVATE_DOCS]: New flag.
[-DENABLE_BACKEND_PER_PROCESS]: New flag.
[-DCMAKE_INSTALL_RPATH]: Modify flag.
[-DENABLE_UOA]: Remove flag.
[-DENABLE_GOOGLE]: Remove flag.
[-DENABLE_GOOGLE_AUTH]: Remove flag.
<#:phases>['patch-docbook-xml]: New phase.
['fix-errors]: New phase.
['disable-failing-tests]: Modify phase.
['move-doc]: New phase.
['glib-or-gtk-compile-schemas]: New phase.
['glib-or-gtk-wrap]: New phase.
['patch-paths]: Remove phase.
['dont-override-rpath]: Remove phase.
[native-inputs]: Add docbook-xml, gsettings-desktop-schemas, gtk-doc
and gtk+:bin. Remove gperf.
[inputs]: Add gperf, icu4c, libgdata, liboauth and sendmail.
[propagated-inputs]: Add glib, glib-networking, libxml2 and nspr.
[synopsis]: Modify.
[description]: Modify.

* gnu/packages/patches/evolution-data-server-locales.patch: Remove file.

* gnu/packages/patches/evolution-data-server-libical-compat.patch: Remove file.

* gnu/local.mk (evolution-data-server-locales.patch): Remove reference.

* gnu/local.mk (evolution-data-server-libical-compat.patch): Remove reference.
---
 gnu/local.mk                                  |   2 -
 gnu/packages/gnome.scm                        | 198 ++++++++++++------
 ...evolution-data-server-libical-compat.patch |  36 ----
 .../evolution-data-server-locales.patch       |  33 ---
 4 files changed, 131 insertions(+), 138 deletions(-)
 delete mode 100644 gnu/packages/patches/evolution-data-server-libical-compat.patch
 delete mode 100644 gnu/packages/patches/evolution-data-server-locales.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 0786fa426b..7274f50264 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -908,8 +908,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/erlang-man-path.patch			\
   %D%/packages/patches/eudev-rules-directory.patch		\
   %D%/packages/patches/evilwm-lost-focus-bug.patch		\
-  %D%/packages/patches/evolution-data-server-locales.patch	\
-  %D%/packages/patches/evolution-data-server-libical-compat.patch	\
   %D%/packages/patches/exercism-disable-self-update.patch	\
   %D%/packages/patches/exiv2-CVE-2017-14860.patch		\
   %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch	\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 22ffeba3e8..1b8e93dcfd 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7222,91 +7222,155 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
 (define-public evolution-data-server
   (package
     (name "evolution-data-server")
-    (version "3.34.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (patches (search-patches "evolution-data-server-locales.patch"
-                                       "evolution-data-server-libical-compat.patch"))
-              (sha256
-               (base32
-                "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
+    (version "3.36.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "03sc7r6hpi62kcxpnzm5gv1ky3hmslh4fnf2vy2qghb5xqg3zy1r"))))
     (build-system cmake-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:configure-flags
-       (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
-              (runpaths (map (lambda (s)
-                               (string-append lib "/evolution-data-server/" s))
-                             '("addressbook-backends" "calendar-backends"
-                               "camel-providers" "credential-modules"
-                               "registry-modules"))))
-         (list "-DENABLE_UOA=OFF"             ;disable Ubuntu Online Accounts support
-               "-DENABLE_GOOGLE=OFF"          ;disable Google Contacts support
-               "-DENABLE_GOOGLE_AUTH=OFF"     ;disable Google authentication
-               "-DENABLE_VALA_BINDINGS=ON"
-               (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
-                              (string-append lib "/evolution-data-server;")
-                              (string-join runpaths ";"))
-               "-DENABLE_INTROSPECTION=ON"))  ;required for Vala bindings
+     `(#:imported-modules
+       (,@%cmake-build-system-modules
+        (guix build glib-or-gtk-build-system))
+       #:modules
+       ((guix build cmake-build-system)
+        ((guix build glib-or-gtk-build-system)
+         #:prefix glib-or-gtk:)
+        (guix build utils))
+       #:configure-flags
+       (list
+        (string-append "-DSENDMAIL_PATH="
+                       (assoc-ref %build-inputs "sendmail"))
+        "-DWITH_SYSTEMDUSERUNITDIR=OFF"
+        "-DENABLE_INTROSPECTION=ON"
+        "-DENABLE_GTK_DOC=ON"
+        "-DWITH_PRIVATE_DOCS=ON"
+        "-DENABLE_BACKEND_PER_PROCESS=ON"
+        "-DENABLE_VALA_BINDINGS=ON"
+        ;; Required for RUNPATH validation.
+        (string-append "-DCMAKE_INSTALL_RPATH="
+                       (assoc-ref %outputs "out")
+                       "/lib"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/evolution-data-server"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/evolution-data-server/addressbook-backends"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/evolution-data-server/calendar-backends"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/evolution-data-server/camel-providers"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/evolution-data-server/credential-modules"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/evolution-data-server/registry-modules"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-tests
-           (lambda _
-             ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
-             ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
-             (delete-file-recursively "tests/book-migration")
-             (substitute* "tests/CMakeLists.txt"
-               (("add_subdirectory\\(book-migration\\)") ""))
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '("camel/camel-docs.sgml.in"
+                              "evolution-data-server/evolution-data-server-docs.sgml.in"
+                              "private/libedbus-private-docs.sgml.in")
+                 (("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-paths
-          (lambda _
-            (substitute* '("tests/test-server-utils/e-test-server-utils.c"
-                           "tests/libedata-book/data-test-utils.c"
-                           "tests/libedata-book/test-book-cache-utils.c"
-                           "tests/libedata-cal/test-cal-cache-utils.c")
-              (("/bin/rm") (which "rm")))
-            #t))
-         (add-before 'configure 'dont-override-rpath
+         (add-after 'patch-docbook-xml 'fix-errors
            (lambda _
+             ;; Entity not available.
+             (substitute* "docs/reference/evolution-data-server/evolution-data-server-docs.sgml.in"
+               (("<xi:include href=\"xml/e-cal-time-util.xml\"/>")
+                ""))
+             ;; CMakeLists.txt hard-codes runpath to just the libdir.
+             ;; Remove it so the configure flag is respected.
              (substitute* "CMakeLists.txt"
-               ;; CMakeLists.txt hard-codes runpath to just the libdir.
-               ;; Remove it so the configure flag is respected.
-               (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
-             #t)))))
+               (("SET\\(CMAKE_INSTALL_RPATH \"\\$\\{privlibdir\\}\"\\)")
+                ""))
+             ;; Fix references to 'rm' program.
+             (substitute* '("tests/test-server-utils/e-test-server-utils.c"
+                            "tests/libedata-book/data-test-utils.c"
+                            "tests/libedata-book/test-book-cache-utils.c"
+                            "tests/libedata-cal/test-cal-cache-utils.c")
+               (("/bin/rm") (which "rm")))
+             #t))
+         (add-after 'fix-errors 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/book-migration/CMakeLists.txt"
+               (("test-migration")
+                ""))
+             (substitute* "tests/libebook/client/CMakeLists.txt"
+               (("test-book-client-custom-summary")
+                ""))
+             #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-after 'move-doc 'glib-or-gtk-compile-schemas
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+         (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("gperf" ,gperf)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk-doc" ,gtk-doc)
+       ("gtk+:bin" ,gtk+ "bin")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("vala" ,vala)
-       ("python" ,python-wrapper)))
-    (propagated-inputs
-     ;; These are all in the Requires field of .pc files.
-     `(("gtk+" ,gtk+)
-       ("libical" ,libical)
-       ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
-       ("nss" ,nss)
-       ("sqlite" ,sqlite)))
+       ("python" ,python-wrapper)
+       ("vala" ,vala)))
     (inputs
-     `(("bdb" ,bdb)
-       ("gcr" ,gcr)
+     `(("gcr" ,gcr)
+       ("gweather" ,libgweather)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+       ("gperf" ,gperf)
+       ("icu" ,icu4c)
        ("json-glib" ,json-glib)
+       ("krb5" ,mit-krb5)
        ("libcanberra" ,libcanberra)
-       ("libgweather" ,libgweather)
-       ("mit-krb5" ,mit-krb5)
+       ("libdb" ,bdb)
+       ("libgdata" ,libgdata)
+       ("oauth" ,liboauth)
        ("openldap" ,openldap)
+       ("sendmail" ,sendmail)
        ("webkitgtk" ,webkitgtk)))
-    (synopsis "Store address books and calendars")
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gtk+" ,gtk+)
+       ("libical" ,libical)
+       ("libsecret" ,libsecret)
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)
+       ("nspr" ,nspr)
+       ("nss" ,nss)
+       ("sqlite" ,sqlite)))
+    (synopsis "Backend for Evolution")
+    (description "Evolution-Data-Server package provides a unified backend for
+programs that work with contacts, tasks, and calendar information.  It provides
+a single database for common, desktop-wide information, such as a user's address
+book or calendar events.  It was originally developed for Evolution, but is now
+used by other packages as well.")
     (home-page "https://wiki.gnome.org/Apps/Evolution")
-    (description
-     "This package provides a unified backend for programs that work with
-contacts, tasks, and calendar information.  It was originally developed for
-Evolution (hence the name), but is now used by other packages as well.")
     (license license:lgpl2.0)))
 
 (define-public caribou
diff --git a/gnu/packages/patches/evolution-data-server-libical-compat.patch b/gnu/packages/patches/evolution-data-server-libical-compat.patch
deleted file mode 100644
index da4302d42e..0000000000
--- a/gnu/packages/patches/evolution-data-server-libical-compat.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Prevent test failure and possible data loss due to API change in libical 3.0.7.
-
-https://gitlab.gnome.org/GNOME/evolution-data-server/issues/185
-https://lists.infradead.org/pipermail/libical-devel/2020-January/000907.html
-
-Adapted from upstream:
-
-https://gitlab.gnome.org/GNOME/evolution-data-server/commit/77384ab552c19bf374dbeda53dc37f98d07bd4ec
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e16b8b225..b3c881967 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -111,7 +111,7 @@ add_definitions(-DSOUP_VERSION_MIN_REQUIRED=${soup_encoded_version})
- 
- set(gcr_minimum_version 3.4)
- set(libgdata_minimum_version 0.15.1)
--set(libical_glib_minimum_version 3.0.5)
-+set(libical_glib_minimum_version 3.0.7)
- set(libsecret_minimum_version 0.5)
- set(libxml_minimum_version 2.0.0)
- set(sqlite_minimum_version 3.7.17)
-diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
-index 7501f2a43..93f4806ba 100644
---- a/src/calendar/libedata-cal/e-cal-meta-backend.c
-+++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
-@@ -4067,8 +4067,7 @@ e_cal_meta_backend_inline_local_attachments_sync (ECalMetaBackend *meta_backend,
- 					gchar *base64;
- 
- 					base64 = g_base64_encode ((const guchar *) content, len);
--					new_attach = i_cal_attach_new_from_data (base64, NULL, NULL);
-+					new_attach = i_cal_attach_new_from_data (base64, (GFunc) g_free, NULL);
- 					g_free (content);
--					g_free (base64);
- 
- 					ecmb_remove_all_but_filename_parameter (prop);
diff --git a/gnu/packages/patches/evolution-data-server-locales.patch b/gnu/packages/patches/evolution-data-server-locales.patch
deleted file mode 100644
index 48baefb0d8..0000000000
--- a/gnu/packages/patches/evolution-data-server-locales.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-This patch fixes locale canonicalization when using newer versions of
-ICU.  It comes from the upstream repo, and should appear starting in
-version 3.33.5.
-
-From fe4ac94ce3c14f200e049a5d102fc0e4b811c71e Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Tue, 16 Jul 2019 07:22:07 +0200
-Subject: [PATCH] I#137 - POSIX locale tests fail with ICU 64.x
-
-Closes https://gitlab.gnome.org/GNOME/evolution-data-server/issues/137
----
- src/libedataserver/e-collator.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/libedataserver/e-collator.c b/src/libedataserver/e-collator.c
-index 718eac5da..ec2cf7951 100644
---- a/src/libedataserver/e-collator.c
-+++ b/src/libedataserver/e-collator.c
-@@ -132,6 +132,11 @@ canonicalize_locale (const gchar *posix_locale,
- 	gint   len;
- 	const gchar *collation_type = NULL;
- 
-+	if (posix_locale && (
-+	    g_ascii_strcasecmp (posix_locale, "C") == 0 ||
-+	    g_ascii_strcasecmp (posix_locale, "POSIX") == 0))
-+		posix_locale = "en_US_POSIX";
-+
- 	len = uloc_canonicalize (posix_locale, locale_buffer, LOCALE_BUFFER_LEN, &status);
- 
- 	if (U_FAILURE (status)) {
--- 
-2.22.0
-
-- 
2.27.0


[-- Attachment #1.1.5: 0004-gnu-Add-gtx.patch --]
[-- Type: text/x-patch, Size: 2075 bytes --]

From 60db9b21985945f42209d493e15433c27cf775eb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 19 Jul 2020 06:11:54 -0400
Subject: [PATCH 04/36] gnu: Add gtx.

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

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 1b8e93dcfd..45ed3007c8 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -265,6 +265,41 @@ 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 gtx
+  (package
+    (name "gtx")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://launchpad.net/gtx/trunk/"
+                       version "/+download/gtx-" version ".tar.gz"))
+       (sha256
+        (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "GLib Testing Framework")
+    (description "GTX is a small collection of convenience functions intended to
+enhance the GLib testing framework.  With specific emphasis on easing the pain
+of writing test cases for asynchronous interactions.")
+    (home-page "https://launchpad.net/gtx")
+    (license license:lgpl2.1+)))
+
 (define-public libcloudproviders
   (package
     (name "libcloudproviders")
-- 
2.27.0


[-- Attachment #1.1.6: 0005-gnu-Add-dee.patch --]
[-- Type: text/x-patch, Size: 5543 bytes --]

From d939da668cdab3dc891773b78d25be8ccc5c99eb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 19 Jul 2020 06:54:46 -0400
Subject: [PATCH 05/36] gnu: Add dee.

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

* gnu/packages/patches/dee-vapi.patch: New file.

* gnu/local.mk (dee-vapi.patch): New reference.
---
 gnu/local.mk                        |  1 +
 gnu/packages/gnome.scm              | 81 +++++++++++++++++++++++++++++
 gnu/packages/patches/dee-vapi.patch | 15 ++++++
 3 files changed, 97 insertions(+)
 create mode 100644 gnu/packages/patches/dee-vapi.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 7274f50264..a5a7125087 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -869,6 +869,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/dconf-meson-0.52.patch			\
   %D%/packages/patches/debops-constants-for-external-program-names.patch \
   %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
+  %D%/packages/patches/dee-vapi.patch			\
   %D%/packages/patches/desmume-gcc6-fixes.patch			\
   %D%/packages/patches/desmume-gcc7-fixes.patch			\
   %D%/packages/patches/dfu-programmer-fix-libusb.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 45ed3007c8..978062e1aa 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -300,6 +300,87 @@ of writing test cases for asynchronous interactions.")
     (home-page "https://launchpad.net/gtx")
     (license license:lgpl2.1+)))
 
+(define-public dee
+  (package
+    (name "dee")
+    (version "1.2.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://launchpad.net/dee/1.0/"
+                       version "/+download/dee-" version ".tar.gz"))
+       (sha256
+        (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
+       (patches
+        (search-patches "dee-vapi.patch"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-maintainer-flags"
+        (string-append "--with-pygi-overrides-dir="
+                       (assoc-ref %outputs "out")
+                       "/lib/python"
+                       ,(version-major+minor
+                         (package-version python))
+                       "/site-packages/gi/overrides")
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/reference/dee-1.0"
+               (substitute* "dee-1.0-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-after 'patch-docbook-xml 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/test-icu.c"
+               (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
+                "")
+               (("setup, test_ascii_folder, teardown\\);")
+                ""))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running dbus-daemon.
+             (system "dbus-daemon &")
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t)))))
+    (native-inputs
+     `(("dbus" ,dbus)
+       ("dbus-test-runner" ,dbus-test-runner)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("gtx" ,gtx)
+       ("pkg-config" ,pkg-config)
+       ("pygobject" ,python-pygobject)
+       ("python" ,python-wrapper)
+       ("vala" ,vala)))
+    (inputs
+     `(("icu" ,icu4c)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "Model to synchronize multiple instances over DBus")
+    (description "Dee is a library that uses DBus to provide objects allowing
+you to create Model-View-Controller type programs across DBus.  It also consists
+of utility objects which extend DBus allowing for peer-to-peer discoverability
+of known objects without needing a central registrar.")
+    (home-page "https://launchpad.net/dee")
+    (license
+     ;; Dual-licensed
+     (list
+      license:lgpl3+
+      license:gpl3+))))
+
 (define-public libcloudproviders
   (package
     (name "libcloudproviders")
diff --git a/gnu/packages/patches/dee-vapi.patch b/gnu/packages/patches/dee-vapi.patch
new file mode 100644
index 0000000000..3a9353a521
--- /dev/null
+++ b/gnu/packages/patches/dee-vapi.patch
@@ -0,0 +1,15 @@
+Index: dee-1.2.7+17.10.20170616/vapi/Dee-1.0.metadata
+===================================================================
+--- dee-1.2.7+17.10.20170616.orig/vapi/Dee-1.0.metadata
++++ dee-1.2.7+17.10.20170616/vapi/Dee-1.0.metadata
+@@ -2,7 +2,9 @@ GListResultSet skip
+ GListResultSetClass skip
+ 
+ FilterModel
+-	.filter unowned
++        .filter skip // unsupported type for construct property
++Index
++        .reader skip // unsupported type for construct property
+ Model
+ 	.append skip=false
+ 	.build_named_row skip
-- 
2.27.0


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

From cc27746676b693a2898012e6652dcb0a1cefc24b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 20 Jul 2020 01:49:43 -0400
Subject: [PATCH 06/36] gnu: Add zeitgeist.

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

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 978062e1aa..5ef9b03e6d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -162,12 +162,14 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rdesktop)
+  #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages rust)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages search)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages slang)
   #:use-module (gnu packages speech)
@@ -381,6 +383,88 @@ of known objects without needing a central registrar.")
       license:lgpl3+
       license:gpl3+))))
 
+(define-public zeitgeist
+  (package
+    (name "zeitgeist")
+    (version "1.0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
+         (commit
+          (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0ig3d3j1n0ghaxsgfww6g2hhcdwx8cljwwfmp9jk1nrvkxd6rnmv"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-explain-queries"
+        "--enable-fts"
+        "--enable-docs")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/libzeitgeist"
+               (substitute* "zeitgeist-gtkdoc-index.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-after 'patch-docbook-xml 'disable-failing-tests
+           (lambda _
+             (substitute* "test/direct/Makefile.am"
+               (("	log-test ")
+                ""))
+             (substitute* "test/c/Makefile.am"
+               (("	test-log ")
+                ""))
+             #t))
+         (add-before 'bootstrap 'remove-autogen-script
+           (lambda _
+             ;; To honor `autoreconf -vif` by build-system.
+             (delete-file "autogen.sh")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("xorg-server-for-tests" ,xorg-server-for-tests)))
+    (inputs
+     `(("dee-icu" ,dee)
+       ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
+       ("sqlite" ,sqlite)
+       ("telepathy-glib" ,telepathy-glib)
+       ("python" ,python-wrapper)
+       ("python-rdflib" ,python-rdflib)
+       ("xapian-config" ,xapian)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "Desktop Activity Logging")
+    (description "Zeitgeist is a service which logs the users’s activities and
+events, anywhere from files opened to websites visited and conversations.  It
+makes this information readily available for other applications to use.  It is
+able to establish relationships between items based on similarity and usage
+patterns.")
+    (home-page "https://zeitgeist.freedesktop.org/")
+    (license
+     ;; Dual-licensed
+     (list
+      license:lgpl2.1+
+      license:gpl2+))))
+
 (define-public libcloudproviders
   (package
     (name "libcloudproviders")
-- 
2.27.0


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

From e2a4c1746f91265d202b6d5258e9058c4ca6171e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 20 Jul 2020 04:54:29 -0400
Subject: [PATCH 07/36] gnu: folks: Update package definition.

* gnu/packages/gnome.scm (folks) [version]: Update to 0.14.0.
[outputs]: New outputs "doc" and "help".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dtracker_backend]: New flag.
[-Dzeitgeist]: New flag.
[-Ddocs]: New flag.
<#:phases>['skip-gtk-update-icon-cache]: Remove phase.
['disable-failing-tests]: New phase.
['move-doc]: New phase.
['move-help]: New phase.
[native-inputs]: Add cmake, docbook-xml, gtk-doc, gtk+:bin,
python-wrapper and python-dbusmock.
[inputs]: Remove bdb, evolution-data-server, glib, libgee and
telepathy-glib. Add libxml2 and zeitgeist.
[propagated-inputs]: Add evolution-data-server, glib, libgee,
telepathy-glib and tracker.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 98 +++++++++++++++++++++++++++++-------------
 1 file changed, 67 insertions(+), 31 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5ef9b03e6d..13d2db6b5e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9735,46 +9735,82 @@ the Moka icon theme.")
 (define-public folks
   (package
     (name "folks")
-    (version "0.13.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnome/sources/folks/"
-                    (version-major+minor version) "/"
-                    "folks-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/folks/"
+                       (version-major+minor version) "/"
+                       "folks-" version ".tar.xz"))
+       (sha256
+        (base32 "1f9b52vmwnq7s51vj26w2618dn2ph5g12ibbkbyk6fvxcgd7iryn"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc" "help"))
     (arguments
-     '(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dtracker_backend=true"
+        "-Dzeitgeist=true"
+        "-Ddocs=true")
+       #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
+         (add-after 'unpack 'disable-failing-tests
+           ;; Telepathy and Tracker tests require networking.
            (lambda _
-             (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t)))))
-    (inputs
-     `(("bdb" ,bdb)
-       ("dbus-glib" ,dbus-glib)
-       ("evolution-data-server" ,evolution-data-server)
-       ("glib" ,glib)
-       ("libgee" ,libgee)
-       ("readline" ,readline)
-       ("telepathy-glib" ,telepathy-glib)))
+             (substitute* "tests/meson.build"
+               (("subdir\\('telepathy'\\)")
+                "")
+               (("subdir\\('tracker'\\)")
+                ""))
+             #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-after 'move-doc 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/devhelp")
+                (string-append help "/share/devhelp"))
+               #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
+     `(("cmake" ,cmake)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("gtk+:bin" ,gtk+ "bin")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("python-dbusmock" ,python-dbusmock)
        ("vala" ,vala)))
-    (synopsis "Library to aggregate data about people")
-    (description "Libfolks is a library that aggregates information about people
-from multiple sources (e.g., Telepathy connection managers for IM contacts,
-Evolution Data Server for local contacts, libsocialweb for web service contacts,
-etc.) to create metacontacts.  It's written in Vala, which generates C code when
-compiled.")
+    (inputs
+     `(("dbus-glib" ,dbus-glib)
+       ("libxml2" ,libxml2)
+       ("readline" ,readline)
+       ("zeitgeist" ,zeitgeist)))
+    (propagated-inputs
+     `(("evolution-data-server" ,evolution-data-server)
+       ("glib" ,glib)
+       ("gee" ,libgee)
+       ("telepathy-glib" ,telepathy-glib)
+       ("tracker-sparql" ,tracker)))
+    (synopsis "Contact aggregation library")
+    (description "Libfolks is a library that aggregates people from multiple
+sources (eg, Telepathy connection managers for IM contacts, Evolution Data
+Server for local contacts, etc.) to create metacontacts.  It's written in Vala,
+which generates C code when compiled.")
     (home-page "https://wiki.gnome.org/Projects/Folks")
     (license license:lgpl2.1+)))
 
-- 
2.27.0


[-- Attachment #1.1.9: 0008-gnu-Add-poly2tri-c.patch --]
[-- Type: text/x-patch, Size: 3673 bytes --]

From 46b13e21a57b04cf443d5823d2eea472f9d3d286 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 20 Jul 2020 08:45:05 -0400
Subject: [PATCH 08/36] gnu: Add poly2tri-c.

* gnu/packages/gimp.scm (poly2tri-c): New variable.
---
 gnu/packages/gimp.scm | 77 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 84c3ed8019..a6fa30ad87 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -34,6 +34,8 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -50,6 +52,81 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages xorg))
 
+(define-public poly2tri-c
+  (package
+    (name "poly2tri-c")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://storage.googleapis.com/"
+                       "google-code-archive-source/v2/code.google.com/"
+                       "poly2tri-c/source-archive.zip"))
+       (file-name
+        (string-append name "-" version ".zip"))
+       (sha256
+        (base32 "17cw0zhbnf2gb59jm26z0wcarqgdwir9jr1fpi3v9lcvyb2s3mqj"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-strict-rules
+           (lambda _
+             (substitute* "configure.ac"
+               (("\\$CFLAGS -Wall -ansi -pedantic")
+                "$CFLAGS")
+               (("\\$CFLAGS -Werror")
+                "$CFLAGS"))
+             #t))
+         (add-after 'disable-strict-rules 'fix-build-errors
+           (lambda _
+             (substitute* "poly2tri-c/refine/Makefile.am"
+               (("cdt.c")
+                "rcdt.c")
+               (("cdt.h")
+                "rcdt.h")
+               (("utils.c")
+                "rutils.c")
+               (("utils.h")
+                "rutils.h"))
+             #t))
+         (add-before 'bootstrap 'configure-later
+           (lambda _
+             (setenv "NOCONFIGURE" "set")
+             #t))
+         (add-after 'build 'generate-doc
+           (lambda _
+             (invoke "doxygen")
+             #t))
+         (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
+               (copy-recursively
+                "doc"
+                (string-append doc "/share/doc/poly2tri-c"))
+               #t))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("doxygen" ,doxygen)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("unzip" ,unzip)
+       ("which" ,which)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "2D constrained Delaunay triangulation library")
+    (description "Poly2Tri-C is a library for generating, refining and rendering
+2-Dimensional Constrained Delaunay Triangulations.")
+    (home-page "https://code.google.com/archive/p/poly2tri-c/")
+    (license license:bsd-3)))
+
 (define-public babl
   (package
     (name "babl")
-- 
2.27.0


[-- Attachment #1.1.10: 0009-gnu-Add-mmm.patch --]
[-- Type: text/x-patch, Size: 2195 bytes --]

From d95f0ab7fd46370eb80a6d821928c1d2f6c6c6ae Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 20 Jul 2020 11:00:41 -0400
Subject: [PATCH 09/36] gnu: Add mmm.

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

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 9648050fa0..9b1e513b2d 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
@@ -92,6 +93,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -100,6 +102,35 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public mmm
+  (package
+    (name "mmm")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hodefoting/mmm.git")
+         (commit "c88f89d")))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "08ascvw692ky4pl83npijyc3yh2wzf00vmqwz23xws8phx6zlz78"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("luajit" ,luajit)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("sdl" ,sdl)
+       ("sdl2" ,sdl2)))
+    (synopsis "Memory Mapped Machine")
+    (description "MMM is a shared memory protocol for virtualising access to
+framebuffer graphics, audio output and input event.")
+    (home-page "https://github.com/hodefoting/mrg")
+    (license license:isc)))
+
 (define-public directfb
   (package
     (name "directfb")
-- 
2.27.0


[-- Attachment #1.1.11: 0010-gnu-Add-mrg.patch --]
[-- Type: text/x-patch, Size: 2347 bytes --]

From af02e9eb2e681975c7b42a7e6a42ce5adff93a1e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 20 Jul 2020 12:21:09 -0400
Subject: [PATCH 10/36] gnu: Add mrg.

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

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index a6fa30ad87..a8f85ad264 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -40,10 +40,14 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages image)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages patchutils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages python)
@@ -127,6 +131,39 @@
     (home-page "https://code.google.com/archive/p/poly2tri-c/")
     (license license:bsd-3)))
 
+(define-public mrg
+  (package
+    (name "mrg")
+    (version "0.1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hodefoting/mrg.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0g6wm9f7i3gcr07ab2avqsg18rsaj43b7y2qcnf1n7kc3asc44vm"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("alsa" ,alsa-lib)
+       ("cairo" ,cairo)
+       ("gtk+" ,gtk+)
+       ("mmm" ,mmm)
+       ("x11" ,libx11)))
+    (synopsis "Microraptor GUI")
+    (description "MrG is is a C API for creating user interfaces.  It can be
+used as an application writing environment or as an interactive canvas for part
+of a larger interface.")
+    (home-page "https://github.com/hodefoting/mrg")
+    (license license:lgpl2.0+)))
+
 (define-public babl
   (package
     (name "babl")
-- 
2.27.0


[-- Attachment #1.1.12: 0011-gnu-gegl-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 11470 bytes --]

From cffe17c384893d2a43156ebf0cc5780d6ccf2123 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 21 Jul 2020 03:45:21 -0400
Subject: [PATCH 11/36] gnu: gegl: Update package definition.

* gnu/packages/gimp.scm (gegl): Update package definition.
[source]<origin>[patches]: Add gegl-mrg.patch.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dintrospection]: Remove flag.
[-Ddocs]: New flag.
[-Dworkshop]: New flag.
[-Dsdl1]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add asciidoc, docbook-xml, docbook-xsl, enscript,
gobject-introspection, gtk-doc, perl, python-pygobject, python-wrapper,
ruby and vala.
[inputs]: Add exiv2, gdk-pixbuf+svg, gexiv2, jasper, lcms, lensfun, ffmpeg,
libnsgif, libraw, librsvg, libspiro, libtiff, lua, luajit, mrg, openexr, poly2tri-c,
poppler, sdl, sdl2, suitesparse, v4l-utils and libwebp.
[synopsis]: Modify.
[description]: Modify.
[license]: Remove gpl3+.

* gnu/packages/patches/gegl-mrg.patch: New file.

* gnu/local.mk (gegl-mrg.patch): New reference.
---
 gnu/local.mk                        |   1 +
 gnu/packages/gimp.scm               | 134 +++++++++++++++++++++-------
 gnu/packages/patches/gegl-mrg.patch |  89 ++++++++++++++++++
 3 files changed, 192 insertions(+), 32 deletions(-)
 create mode 100644 gnu/packages/patches/gegl-mrg.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index a5a7125087..0c5be2fa22 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -974,6 +974,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gd-brect-bounds.patch			\
   %D%/packages/patches/gdb-hurd.patch				\
   %D%/packages/patches/gdm-default-session.patch		\
+  %D%/packages/patches/gegl-mrg.patch			\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
   %D%/packages/patches/ghc-testsuite-dlopen-pie.patch		\
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index a8f85ad264..bcb4679a83 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -35,8 +35,10 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
@@ -45,13 +47,19 @@
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages patchutils)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages w3m)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xorg))
@@ -209,46 +217,108 @@ specific code paths.")
   (package
     (name "gegl")
     (version "0.4.24")
-    (source (origin
-              (method url-fetch)
-              (uri (list (string-append "https://download.gimp.org/pub/gegl/"
-                                        (string-take version 3)
-                                        "/gegl-" version ".tar.xz")
-                         (string-append "https://ftp.gtk.org/pub/gegl/"
-                                        (version-major+minor version)
-                                        "/gegl-" version ".tar.xz")
-                         (string-append "ftp://ftp.gtk.org/pub/gegl/"
-                                        (version-major+minor version)
-                                        "/gegl-" version ".tar.xz")))
-              (sha256
-               (base32
-                "0ji57s7cba94vzy49agn7x47ca61rccm6rif0cb0s6rl4ygljrbp"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (list
+         (string-append "https://download.gimp.org/pub/gegl/"
+                        (string-take version 3)
+                        "/gegl-" version ".tar.xz")
+         (string-append "https://ftp.gtk.org/pub/gegl/"
+                        (version-major+minor version)
+                        "/gegl-" version ".tar.xz")
+         (string-append "ftp://ftp.gtk.org/pub/gegl/"
+                        (version-major+minor version)
+                        "/gegl-" version ".tar.xz")))
+       (sha256
+        (base32 "0ji57s7cba94vzy49agn7x47ca61rccm6rif0cb0s6rl4ygljrbp"))
+       (patches
+        ;; Fix for the bug,
+        ;; https://gitlab.gnome.org/GNOME/gegl/-/issues/259
+        (search-patches "gegl-mrg.patch"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:configure-flags
-       (list "-Dintrospection=false")))
-    ;; These are propagated to satisfy 'gegl-0.4.pc'.
+       (list
+        "-Ddocs=true"
+        "-Dworkshop=true"
+        "-Dsdl1=auto")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "gegl-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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
+     `(("asciidoc" ,asciidoc)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("enscript" ,enscript)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("pygobject" ,python-pygobject)
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)
+       ("vapigen" ,vala)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("exiv2" ,exiv2)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gexiv2" ,gexiv2)
+       ("jasper" ,jasper)
+       ("lcms" ,lcms)
+       ("lensfun" ,lensfun)
+       ("libav" ,ffmpeg)
+       ("libnsgif" ,libnsgif)
+       ("libpng" ,libpng)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libraw" ,libraw)
+       ("librsvg" ,librsvg)
+       ("libspiro" ,libspiro)
+       ("libtiff" ,libtiff)
+       ("lua" ,lua)
+       ("luajit" ,luajit)
+       ("mrg" ,mrg)
+       ("openexr" ,openexr)
+       ("pango" ,pango)
+       ;; To be enabled after upstream fixes the bug,
+       ;; https://gitlab.gnome.org/GNOME/gegl/-/issues/258
+       ;; ("poly2tri-c" ,poly2tri-c)
+       ("poppler" ,poppler)
+       ("sdl1" ,sdl)
+       ("sdl2" ,sdl2)
+       ("umfpack" ,suitesparse)
+       ("v4l" ,v4l-utils)
+       ("webp" ,libwebp)))
     (propagated-inputs
      `(("babl" ,babl)
        ("glib" ,glib)
        ("json-glib" ,json-glib)))
-    (inputs
-     `(("cairo" ,cairo)
-       ("pango" ,pango)
-       ("libpng" ,libpng)
-       ("libjpeg" ,libjpeg-turbo)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")             ; for gtester
-       ("intltool" ,intltool)))
+    (synopsis "Generic Graphics Library")
+    (description "GEGL is a data flow based image processing framework,
+providing floating point processing and non-destructive image processing
+capabilities to GNU Image Manipulation Program and other projects.")
     (home-page "http://gegl.org")
-    (synopsis "Graph based image processing framework")
-    (description "GEGL (Generic Graphics Library) provides infrastructure to
-do demand based cached non destructive image editing on larger than RAM
-buffers.")
-    ;; The library itself is licensed under LGPL while the sample commandline
-    ;; application and GUI binary gegl is licensed under GPL.
-    (license (list license:lgpl3+ license:gpl3+))))
+    (license license:lgpl3+)))
 
 (define-public gimp
   (package
diff --git a/gnu/packages/patches/gegl-mrg.patch b/gnu/packages/patches/gegl-mrg.patch
new file mode 100644
index 0000000000..15603cd9ad
--- /dev/null
+++ b/gnu/packages/patches/gegl-mrg.patch
@@ -0,0 +1,89 @@
+From 1cc5a08d7860fa9cbd22a469e2d270533e689f23 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <raghavgururajan@disroot.org>
+Date: Tue, 21 Jul 2020 02:57:39 -0400
+Subject: [PATCH] Fix build with mrg.
+
+---
+ bin/argvs.c         | 4 ++--
+ bin/mrg-gegl.c      | 2 +-
+ bin/ui-collection.c | 4 ++--
+ bin/ui-core.c       | 4 ++--
+ bin/ui-viewer.c     | 4 ++--
+ 5 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/bin/argvs.c b/bin/argvs.c
+index 254b754a0..300370d5c 100644
+--- a/bin/argvs.c
++++ b/bin/argvs.c
+@@ -25,8 +25,8 @@
+ 
+ 
+ #ifdef MRG_PRINTF
+-#include <mrg.h>
+-#include <mrg-string.h>
++#include <mrg/mrg.h>
++#include <mrg/mrg-string.h>
+ extern Mrg *mrg;
+ extern MrgList *scrollback;
+ extern int use_ui;
+diff --git a/bin/mrg-gegl.c b/bin/mrg-gegl.c
+index dd0e55686..ffdbb5ee8 100644
+--- a/bin/mrg-gegl.c
++++ b/bin/mrg-gegl.c
+@@ -36,7 +36,7 @@
+ #include <unistd.h>
+ #include <dirent.h>
+ #include <math.h>
+-#include <mrg.h>
++#include <mrg/mrg.h>
+ #include <gegl.h>
+ #include <gexiv2/gexiv2.h>
+ #include <gegl-paramspecs.h>
+diff --git a/bin/ui-collection.c b/bin/ui-collection.c
+index 671d2dc1f..eee0b0925 100644
+--- a/bin/ui-collection.c
++++ b/bin/ui-collection.c
+@@ -25,8 +25,8 @@
+ #include <unistd.h>
+ #include <dirent.h>
+ #include <math.h>
+-#include <mrg.h>
+-#include <mrg-string.h>
++#include <mrg/mrg.h>
++#include <mrg/mrg-string.h>
+ #include <gegl.h>
+ #include <gexiv2/gexiv2.h>
+ #include <gegl-paramspecs.h>
+diff --git a/bin/ui-core.c b/bin/ui-core.c
+index 16dec03af..6350b4cba 100644
+--- a/bin/ui-core.c
++++ b/bin/ui-core.c
+@@ -107,8 +107,8 @@ const char *css =
+ #include <unistd.h>
+ #include <dirent.h>
+ #include <math.h>
+-#include <mrg.h>
+-#include <mrg-string.h>
++#include <mrg/mrg.h>
++#include <mrg/mrg-string.h>
+ #include <gegl.h>
+ #include <gexiv2/gexiv2.h>
+ #include <gegl-paramspecs.h>
+diff --git a/bin/ui-viewer.c b/bin/ui-viewer.c
+index 4a70a4518..9468a246b 100644
+--- a/bin/ui-viewer.c
++++ b/bin/ui-viewer.c
+@@ -24,8 +24,8 @@
+ #include <unistd.h>
+ #include <dirent.h>
+ #include <math.h>
+-#include <mrg.h>
+-#include <mrg-string.h>
++#include <mrg/mrg.h>
++#include <mrg/mrg-string.h>
+ #include <gegl.h>
+ #include <gexiv2/gexiv2.h>
+ #include <gegl-paramspecs.h>
+-- 
+GitLab
+
-- 
2.27.0


[-- Attachment #1.1.13: 0012-gnu-geocode-glib-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5083 bytes --]

From e4ba886dbc21e22556650552d55c8541e824c620 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 21 Jul 2020 04:29:16 -0400
Subject: [PATCH 12/36] gnu: geocode-glib: Update package definition.

* gnu/packages/gnome.scm (geocode-glib) [version]: Update to 3.26.2.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-D-Denable-installed-tests]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml and python-wrapper. Remove json-glib.
[inputs]: Add json-glib.
[propagated-inputs]: Add glib-networking.
---
 gnu/packages/gnome.scm | 72 ++++++++++++++++++++++++++++--------------
 1 file changed, 48 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 13d2db6b5e..fb526f3df5 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5071,46 +5071,70 @@ possible.")
 (define-public geocode-glib
   (package
     (name "geocode-glib")
-    (version "3.26.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/geocode-glib/"
-                                  (version-major+minor version) "/"
-                                  "geocode-glib-" version ".tar.xz"))
-              (sha256
-               (base32
-                "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
+    (version "3.26.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/geocode-glib/"
+                       (version-major+minor version) "/"
+                       "geocode-glib-" version ".tar.xz"))
+       (sha256
+        (base32 "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Denable-installed-tests=false")
+       #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "geocode-glib-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
          ;; The tests require a bunch of locales.
          (add-before 'check 'set-locales
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "GUIX_LOCPATH"
                      (string-append (assoc-ref inputs "glibc-locales")
                                     "/lib/locale"))
-             #t)))))
+             #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
-       ("glibc-locales" ,glibc-locales) ; for tests
+     `(("docbook-xml" ,docbook-xml-4.3)
        ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("glibc-locales" ,glibc-locales)
        ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
-       ("json-glib" ,json-glib)))
-    (propagated-inputs
-     ;; geocode-glib-1.0.pc refers to GIO.
-     `(("glib" ,glib)))
+       ("python" ,python-wrapper)))
     (inputs
-     `(("libsoup" ,libsoup)))
-    (home-page "https://github.com/GNOME/geocode-glib/")
+     `(("json-glib" ,json-glib)
+       ("libsoup" ,libsoup)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)))
     (synopsis "Geocoding and reverse-geocoding library")
-    (description
-     "geocode-glib is a convenience library for geocoding (finding longitude,
-and latitude from an address) and reverse geocoding (finding an address from
-coordinates) using the Nominatim service.  geocode-glib caches requests for
-faster results and to avoid unnecessary server load.")
+    (description "Geocode-Glib is a convenience library for geocoding (finding
+longitude, and latitude from an address) and reverse geocoding (finding an
+address from coordinates) using the Nominatim service.  It also caches requests
+for faster results and to avoid unnecessary server load.")
+    (home-page "https://developer.gnome.org/geocode-glib/")
     (license license:lgpl2.0+)))
 
 (define-public upower
-- 
2.27.0


[-- Attachment #1.1.14: 0013-gnu-gexiv2-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4332 bytes --]

From f02f44f066b5df67da5a9211f78771b9305f2ff9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 21 Jul 2020 05:45:49 -0400
Subject: [PATCH 13/36] gnu: gexiv2: Update package definition.

* gnu/packages/gnome.scm (gexiv2) [version]: Update to 0.12.1.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dgtk_doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gtk-doc, python-2 and python.
Remove gcr.
[inputs]: Remove glib.
[propagated-inputs]: Add glib.
[synopsis]: Modify.
---
 gnu/packages/gnome.scm | 66 +++++++++++++++++++++++++++++-------------
 1 file changed, 46 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fb526f3df5..b398c5e2e6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6876,33 +6876,59 @@ and classes for commonly used data structures.")
 (define-public gexiv2
   (package
     (name "gexiv2")
-    (version "0.12.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
+    (version "0.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
     (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=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "gexiv2-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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
-     `(("gcr" ,gcr)
+     `(("docbook-xml" ,docbook-xml-4.3)
        ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
+       ("python2" ,python-2)
+       ("python3" ,python)
        ("vala" ,vala)))
     (propagated-inputs
-     ;; Listed in "Requires" section of gexiv2.pc
-     `(("exiv2" ,exiv2)))
-    (inputs
-     `(("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)))
+     `(("exiv2" ,exiv2)
+       ("glib" ,glib)))
+    (synopsis "GObject-based Exiv2 wrapper")
+    (description "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata
+library.  It allows for GNOME applications to easily inspect and update EXIF,
+IPTC, and XMP metadata in photo and video files of various formats.")
     (home-page "https://wiki.gnome.org/Projects/gexiv2")
-    (synopsis "GObject wrapper around the Exiv2 photo metadata library")
-    (description
-     "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library.  It
-allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
-metadata in photo and video files of various formats.")
     (license license:gpl2+)))
 
 (define-public shotwell
-- 
2.27.0


[-- Attachment #1.1.15: 0014-gnu-Add-openjade.patch --]
[-- Type: text/x-patch, Size: 2672 bytes --]

From 8f97cf8ad6561e5072abb8723c058c09d5f7a796 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 21 Jul 2020 08:12:34 -0400
Subject: [PATCH 14/36] gnu: Add openjade.

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

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index b57d42139c..b5ed189bff 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -45,6 +45,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages finance)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
@@ -69,6 +70,54 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config))
 
+(define-public openjade
+  (package
+    (name "openjade")
+    (version "1.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://downloads.sourceforge.net/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1l92sfvx1f0wmkbvzv1385y1gb3hh010xksi1iyviyclrjb7jb8x"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "testsuite"
+       #:configure-flags
+       (list
+        (string-append "--enable-spincludedir="
+                       (assoc-ref %build-inputs "opensp")
+                       "/include/OpenSP")
+        (string-append "--enable-splibdir="
+                       (assoc-ref %build-inputs "opensp")
+                       "/lib")
+        "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build-errors
+           (lambda _
+             (substitute* "msggen.pl"
+               (("do 'getopts.pl';")
+                "use Getopt::Std;")
+               (("&Getopts")
+                "getopts"))
+             #t))
+         (add-before 'configure 'set-env
+           (lambda _
+             (setenv "HOME" (getcwd))
+             #t)))))
+    (native-inputs
+     `(("perl" ,perl)))
+    (inputs
+     `(("opensp" ,opensp)))
+    (synopsis "Document Style Semantics and Specification Language")
+    (description "OpenJade is an implementation of DSSSL engine.  It is an ISO
+standard for formatting SGML and XML documents.")
+    (home-page "http://openjade.sourceforge.net/")
+    (license license:lgpl2.1)))
+
 (define-public libxmlb
   (package
     (name "libxmlb")
-- 
2.27.0


[-- Attachment #1.1.16: 0015-gnu-Add-sgml-common.patch --]
[-- Type: text/x-patch, Size: 4985 bytes --]

From ed6641a62515619521bdeb6460880166518b0a1f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 21 Jul 2020 08:52:03 -0400
Subject: [PATCH 15/36] gnu: Add sgml-common.

* gnu/packages/docbook.scm (sgml-common): New variable.

* gnu/packages/patches/sgml-common-manpage.patch: New file.

* gnu/local.mk (sgml-common-manpage.patch): New reference.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/docbook.scm                      | 55 +++++++++++++++++++
 .../patches/sgml-common-manpage.patch         | 14 +++++
 3 files changed, 70 insertions(+)
 create mode 100644 gnu/packages/patches/sgml-common-manpage.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 0c5be2fa22..0ec7317050 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1502,6 +1502,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch	\
   %D%/packages/patches/sdl-libx11-1.6.patch			\
   %D%/packages/patches/seq24-rename-mutex.patch			\
+  %D%/packages/patches/sgml-common-manpage.patch			\
   %D%/packages/patches/sharutils-CVE-2018-1000097.patch		\
   %D%/packages/patches/shadow-hurd-pctrl.patch			\
   %D%/packages/patches/shishi-fix-libgcrypt-detection.patch	\
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index ee09b9d0b4..181699d317 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -22,6 +22,7 @@
 
 (define-module (gnu packages docbook)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages inkscape)
@@ -32,9 +33,63 @@
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system python))
 
+(define-public sgml-common
+  (package
+    (name "sgml-common")
+    (version "0.6.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "ftp://sources.redhat.com/pub/docbook-tools/"
+                       "new-trials/SOURCES/" name "-" version ".tgz"))
+       (sha256
+        (base32 "0ngrn72iqf4kqjxvzl1mxfl40y95jwdizmj5bvy3y4k1sg0iii3x"))
+       (patches
+        (search-patches "sgml-common-manpage.patch"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'trigger-bootstrap
+           (lambda _
+             (for-each delete-file
+                       (list
+                        "configure"
+                        "Makefile.in"
+                        "bin/Makefile.in"
+                        "config/Makefile.in"
+                        "doc/Makefile.in"
+                        "doc/HTML/Makefile.in"
+                        "doc/man/Makefile.in"
+                        "doc/refentry/Makefile.in"
+                        "sgml-iso-entities/Makefile.in"
+                        "xml-iso-entities/Makefile.in"))
+             (rename-file "configure.in" "configure.ac")
+             #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 "/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (synopsis "SGML Catalogs for DocBook-Tools")
+    (description "SGML-Common package gathers very basic stuff necessary to work
+with SGML and XML.")
+    (home-page "https://www.sourceware.org/docbook-tools/")
+    (license gpl3+)))
+
 (define-public docbook-xml-5
   (package
     (name "docbook-xml")
diff --git a/gnu/packages/patches/sgml-common-manpage.patch b/gnu/packages/patches/sgml-common-manpage.patch
new file mode 100644
index 0000000000..c3773d14cd
--- /dev/null
+++ b/gnu/packages/patches/sgml-common-manpage.patch
@@ -0,0 +1,14 @@
+Submitted By: Thomas Pegg <lnxfreak123 at insightbb dot com>
+Date: 2003-11-18
+Initial Package Version: 0.6.3
+Origin: Thomas Pegg
+Description: Fixes syntax of Makefile.am for installation of man pages,
+for use with current automake versions 1.7.8 and higher.
+
+diff -Naur sgml-common-0.6.3.orig/doc/man/Makefile.am sgml-common-0.6.3/doc/man/Makefile.am
+--- sgml-common-0.6.3.orig/doc/man/Makefile.am	2001-01-30 14:42:22.000000000 +0000
++++ sgml-common-0.6.3/doc/man/Makefile.am	2003-11-18 16:48:47.000000000 +0000
+@@ -1,2 +1 @@
+-man8dir	  = $(mandir)/man8
+-man8_DATA = *.8
++man_MANS = install-catalog.8
-- 
2.27.0


[-- Attachment #1.1.17: 0016-gnu-Add-docbook-dsssl.patch --]
[-- Type: text/x-patch, Size: 4046 bytes --]

From e750481a6261b44a518e71e2f081304dd29ea3a8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 22 Jul 2020 08:29:54 -0400
Subject: [PATCH 16/36] gnu: Add docbook-dsssl.

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

diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 181699d317..fc9d28c490 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -27,12 +27,14 @@
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages inkscape)
   #:use-module (gnu packages tex)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages base)
   #:use-module (gnu packages xml)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system python))
@@ -90,6 +92,64 @@ with SGML and XML.")
     (home-page "https://www.sourceware.org/docbook-tools/")
     (license gpl3+)))
 
+;; Note: Debian-required dependencies are: libosp5 libostyle1c2 openjade.
+;; Note: Debian-suggested dependencies are: jadetex docbook-dsssl-doc doc-base
+;; Note: We don't package Debian's extra patch yet: refentry-flow-objects.patch
+(define-public docbook-dsssl
+  (package
+    (name "docbook-dsssl")
+    (version "1.79")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://downloads.sourceforge.net/docbook/"
+                       name "-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "1g72y2yyc2k89kzs0lvrb9n7hjayw1hdskfpplpz97pf1c99wcig"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:install-plan
+       '(("." "share/sgml/docbook/stylesheet/dsssl/modular/"
+          #:exclude ("/COPYING" "/BUGS" "/ChangeLog" "/README"
+                     "/RELEASE-NOTES.html" "/RELEASE-NOTES.txt"
+                     "/RELEASE-NOTES.xml" "/WhatsNew")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'install-perl-script
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (man1 (string-append out "/man/man1")))
+               (chmod "bin/collateindex.pl" #o755)
+               (install-file "bin/collateindex.pl" bin)
+               (install-file "bin/collateindex.pl.1" man1)
+               ;; Make sure that copy-build-system doesn't pick it up.
+               (delete-file-recursively "bin")
+               ;; These files are not actually canonical.
+               ;; Make sure that copy-build-system doesn't pick them up.
+               (delete-file-recursively "contrib")
+               #t)))
+         (add-before 'install 'install-sgml-catalog
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (etc-sgml (string-append out "/etc/sgml")))
+               (mkdir-p etc-sgml)
+               (call-with-output-file (string-append etc-sgml "/docbook-dsssl.cat")
+                 (lambda (port)
+                   (format port "CATALOG ~a/share/sgml/docbook/stylesheet/dsssl/modular/catalog
+CATALOG ~a/share/sgml/docbook/stylesheet/dsssl/modular/common/catalog
+" out out)))
+               #t))))))
+    (inputs
+     `(("perl" ,perl)))
+    (synopsis "DocBook DSSSL Stylesheets")
+    (description "DocBook-DSSSL contains DSSSL stylesheets.  These are used by
+OpenJade or other tools to transform SGML and XML DocBook files.")
+    (home-page "https://docbook.org")
+    (license x11)))
+
 (define-public docbook-xml-5
   (package
     (name "docbook-xml")
-- 
2.27.0


[-- Attachment #1.1.18: 0017-gnu-Add-docbook-utils.patch --]
[-- Type: text/x-patch, Size: 41803 bytes --]

From 71ba0b6c89718906b40fbbed65dbc3d5ca406860 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 22 Jul 2020 05:25:16 -0400
Subject: [PATCH 17/36] gnu: Add docbook-utils.

* gnu/packages/docbook.scm (docbook-utils): New variable.

* gnu/packages/patches: Add files docbook-utils-autotools.patch,
docbook-utils-typo.patch, docbook-utils-frontends.patch,
docbook-utils-helpers-date.patch, docbook-utils-helpers-name.patch,
docbook-utils-helpers-whitespace.patch, docbook-utils-helpers-support.patch
and docbook-utils-jade.patch.

* gnu/local.mk: Add references to new patches.
---
 gnu/local.mk                                  |   8 +
 gnu/packages/docbook.scm                      |  68 ++++
 .../patches/docbook-utils-autotools.patch     | 376 ++++++++++++++++++
 .../patches/docbook-utils-frontends.patch     |  42 ++
 .../patches/docbook-utils-helpers-date.patch  |  61 +++
 .../patches/docbook-utils-helpers-name.patch  |  34 ++
 .../docbook-utils-helpers-support.patch       |  29 ++
 .../docbook-utils-helpers-whitespace.patch    |  30 ++
 gnu/packages/patches/docbook-utils-jade.patch | 211 ++++++++++
 gnu/packages/patches/docbook-utils-typo.patch | 100 +++++
 10 files changed, 959 insertions(+)
 create mode 100644 gnu/packages/patches/docbook-utils-autotools.patch
 create mode 100644 gnu/packages/patches/docbook-utils-frontends.patch
 create mode 100644 gnu/packages/patches/docbook-utils-helpers-date.patch
 create mode 100644 gnu/packages/patches/docbook-utils-helpers-name.patch
 create mode 100644 gnu/packages/patches/docbook-utils-helpers-support.patch
 create mode 100644 gnu/packages/patches/docbook-utils-helpers-whitespace.patch
 create mode 100644 gnu/packages/patches/docbook-utils-jade.patch
 create mode 100644 gnu/packages/patches/docbook-utils-typo.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 0ec7317050..3925fa024d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -876,6 +876,14 @@ dist_patch_DATA =						\
   %D%/packages/patches/diffutils-gets-undeclared.patch		\
   %D%/packages/patches/dkimproxy-add-ipv6-support.patch		\
   %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch	\
+  %D%/packages/patches/docbook-utils-autotools.patch	\
+  %D%/packages/patches/docbook-utils-typo.patch	\
+  %D%/packages/patches/docbook-utils-frontends.patch	\
+  %D%/packages/patches/docbook-utils-helpers-date.patch	\
+  %D%/packages/patches/docbook-utils-helpers-name.patch	\
+  %D%/packages/patches/docbook-utils-helpers-whitespace.patch	\
+  %D%/packages/patches/docbook-utils-helpers-support.patch	\
+  %D%/packages/patches/docbook-utils-jade.patch	\
   %D%/packages/patches/doc++-include-directives.patch		\
   %D%/packages/patches/doc++-segfault-fix.patch			\
   %D%/packages/patches/docker-fix-tests.patch			\
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index fc9d28c490..9ad169531b 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -150,6 +150,74 @@ OpenJade or other tools to transform SGML and XML DocBook files.")
     (home-page "https://docbook.org")
     (license x11)))
 
+(define-public docbook-utils
+  (package
+    (name "docbook-utils")
+    (version "0.6.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "ftp://sources.redhat.com/pub/docbook-tools/"
+                       "new-trials/SOURCES/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1scj5vgw1xz872pq54a89blcxqqm11p90yzv8a9mqq57x27apyj8"))
+       (patches
+        (search-patches
+         "docbook-utils-autotools.patch"
+         "docbook-utils-typo.patch"
+         "docbook-utils-frontends.patch"
+         "docbook-utils-helpers-date.patch"
+         "docbook-utils-helpers-name.patch"
+         "docbook-utils-helpers-whitespace.patch"
+         "docbook-utils-helpers-support.patch"
+         "docbook-utils-jade.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; XXX: Fix-me.
+         (add-after 'unpack 'skip-doc-dir
+           (lambda _
+             (substitute* "Makefile.am"
+               (("SUBDIRS = backends bin doc frontends helpers")
+                "SUBDIRS = backends bin frontends helpers"))
+             #t))
+         (add-after 'skip-doc-dir 'trigger-bootstrap
+           (lambda _
+             (for-each delete-file
+                       (list
+                        "configure"
+                        "Makefile.in"
+                        "backends/Makefile.in"
+                        "bin/Makefile.in"
+                        "doc/Makefile.in"
+                        "doc/HTML/Makefile.in"
+                        "doc/man/Makefile.in"
+                        "doc/refentry/Makefile.in"
+                        "frontends/Makefile.in"
+                        "helpers/Makefile.in"))
+             (rename-file "configure.in" "configure.ac")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (inputs
+     `(("docbook-dsssl" ,docbook-dsssl)
+       ;; ("docbook-sgml" ,docbook-sgml)
+       ("openjade" ,openjade)
+       ("sgml-common" ,sgml-common)
+       ("perl" ,perl)))
+    (synopsis "Tools for DocBook")
+    (description "DocBook-Utils is a collection of utility scripts used to
+convert and analyze SGML documents in general, and DocBook files in particular.
+The scripts are used to convert from DocBook or other SGML formats into
+classical file formats like HTML, man, info, RTF and many more.  There's also a
+utility to compare two SGML files and only display the differences in markup.
+This is useful for comparing documents prepared for different languages.")
+    (home-page "https://www.sourceware.org/docbook-tools/")
+    (license gpl2+)))
+
 (define-public docbook-xml-5
   (package
     (name "docbook-xml")
diff --git a/gnu/packages/patches/docbook-utils-autotools.patch b/gnu/packages/patches/docbook-utils-autotools.patch
new file mode 100644
index 0000000000..2ab27f6ed9
--- /dev/null
+++ b/gnu/packages/patches/docbook-utils-autotools.patch
@@ -0,0 +1,376 @@
+Description: autotools_dev results
+Author: Mathieu Malaterre <malat@debian.org>
+
+--- docbook-utils-0.6.14.orig/Makefile.in
++++ docbook-utils-0.6.14/Makefile.in
+@@ -128,7 +128,7 @@ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ SUBDIRS = backends bin doc frontends helpers
+-sgmldudir = $(prefix)/share/sgml/docbook/utils-@VERSION@
++sgmldudir = $(prefix)/share/docbook-utils
+ sgmldu_DATA = docbook-utils.dsl
+ EXTRA_DIST = AUTHORS README COPYING INSTALL NEWS ChangeLog TODO \
+ 	$(sgmldu_DATA) docbook-utils.spec
+--- docbook-utils-0.6.14.orig/Makefile.am
++++ docbook-utils-0.6.14/Makefile.am
+@@ -1,6 +1,6 @@
+ SUBDIRS = backends bin doc frontends helpers
+ 
+-sgmldudir = $(prefix)/share/sgml/docbook/utils-@VERSION@
++sgmldudir = $(prefix)/share/docbook-utils
+ sgmldu_DATA = docbook-utils.dsl
+ 
+ EXTRA_DIST = AUTHORS README COPYING INSTALL NEWS ChangeLog TODO \
+--- docbook-utils-0.6.14.orig/backends/Makefile.in
++++ docbook-utils-0.6.14/backends/Makefile.in
+@@ -104,7 +104,7 @@ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+-sgmldudir = $(prefix)/share/sgml/docbook/utils-@VERSION@
++sgmldudir = $(prefix)/share/docbook-utils
+ sgmldubedir = $(sgmldudir)/backends
+ sgmldube_DATA = dvi html man pdf ps rtf tex texi txt
+ EXTRA_DIST = dvi html man.in pdf ps rtf tex texi.in txt
+--- docbook-utils-0.6.14.orig/backends/Makefile.am
++++ docbook-utils-0.6.14/backends/Makefile.am
+@@ -1,4 +1,4 @@
+-sgmldudir = $(prefix)/share/sgml/docbook/utils-@VERSION@
++sgmldudir = $(prefix)/share/docbook-utils
+ sgmldubedir = $(sgmldudir)/backends
+ sgmldube_DATA = dvi html man pdf ps rtf tex texi txt
+ 
+--- docbook-utils-0.6.14.orig/backends/man.in
++++ docbook-utils-0.6.14/backends/man.in
+@@ -3,7 +3,7 @@
+ # This program is under GPL license. See LICENSE file for details.
+ 
+ # Convert to *roff
+-HELPER=$SGML_BASE_DIR/docbook/utils-@VERSION@/helpers/docbook2man-spec.pl
++HELPER=docbook2man-spec.pl
+ TMPDIR=`mktemp -d /tmp/man.XXXXXX` || \
+  { echo >&2 "man backend: could not create secure temporary directory"; exit 1;}
+ trap 'rm -rf "${TMPDIR}"' EXIT
+--- docbook-utils-0.6.14.orig/backends/texi.in
++++ docbook-utils-0.6.14/backends/texi.in
+@@ -3,7 +3,7 @@
+ # This program is under GPL license. See LICENSE file for details.
+ 
+ # Convert to texinfo
+-nsgmls $SGML_FILE | sgmlspl $SGML_BASE_DIR/docbook/utils-@VERSION@/helpers/docbook2texi-spec.pl >$SGML_FILE_NAME.texi
++nsgmls $SGML_FILE | sgmlspl docbook2texi-spec.pl >$SGML_FILE_NAME.texi
+ if [ $? -ne 0 ]
+ then exit 1
+ fi
+--- docbook-utils-0.6.14.orig/bin/jw.in
++++ docbook-utils-0.6.14/bin/jw.in
+@@ -87,10 +87,10 @@ then
+ fi
+ 
+ # Set frontend to use
+-SGML_FRONTEND="$SGML_BASE_DIR/docbook/utils-@VERSION@/frontends/docbook"
++SGML_FRONTEND="@prefix@/share/docbook-utils/frontends/docbook"
+ 
+ # Set backend to use
+-SGML_BACKEND="$SGML_BASE_DIR/docbook/utils-@VERSION@/backends/html"
++SGML_BACKEND="@prefix@/share/docbook-utils/backends/html"
+ 
+ # Set main stylesheet
+ SGML_STYLESHEET="default"
+@@ -120,14 +120,14 @@ while [ $# -gt 0 ]
+ do case $1 in
+   -f|--frontend) case "$2" in
+ 		  /*) SGML_FRONTEND="$2" ;;
+-		   *) d=$SGML_BASE_DIR/docbook/utils-@VERSION@/frontends
++		   *) d=@prefix@/share/docbook-utils/frontends
+ 		      SGML_FRONTEND="$d/$2" ;;
+ 		esac
+ 		shift 2
+ 		;;
+   -b|--backend)	case "$2" in
+ 		  /*) SGML_BACKEND="$2" ;;
+-		   *) d=$SGML_BASE_DIR/docbook/utils-@VERSION@/backends
++		   *) d=@prefix@/share/docbook-utils/backends
+ 		      SGML_BACKEND="$d/$2" ;;
+ 		esac
+ 		shift 2
+@@ -186,8 +186,8 @@ do case $1 in
+ 		shift 2
+ 		;;
+   -w|--warning)	case $2 in
+-		  list) echo -e "List of allowed warning types (multiple -w options are allowed):\n"
+-			echo -e $SGML_WARNINGS_LIST
++		  list) printf "List of allowed warning types (multiple -w options are allowed):\n\n"
++			printf "$SGML_WARNINGS_LIST\n"
+ 			exit 0
+ 			;;
+ 		  xml|mixed|sgmldecl|should|default|duplicate|undefined|unclosed|empty|net|min-tag|unused-map|unused-param|notation-sysid|all|no-xml|no-mixed|no-sgmldecl|no-should|no-default|no-duplicate|no-undefined|no-unclosed|no-empty|no-net|no-min-tag|no-unused-map|no-unused-param|no-notation-sysid) \
+@@ -195,14 +195,14 @@ do case $1 in
+ 			shift 2
+ 			;;
+ 		  *)	echo "Unknown warning type \"$2\". Allowed warning types are:" >&2
+-		        echo -e $SGML_WARNINGS_LIST >&2
++		        printf "$SGML_WARNINGS_LIST\n" >&2
+ 			exit 1
+ 			;;
+ 		esac
+ 		;;
+   -e|--error)	case $2 in
+-		  list) echo -e "List of allowed error types (multiple -e options are allowed):\n"
+-			echo -e $SGML_ERRORS_LIST
++		  list) printf "List of allowed error types (multiple -e options are allowed):\n\n"
++			printf "$SGML_ERRORS_LIST\n"
+ 			exit 0
+ 			;;
+ 		  no-idref|no-significant|no-valid) \
+@@ -210,19 +210,19 @@ do case $1 in
+ 			shift 2
+ 			;;
+ 		  *)	echo "Unknown error type \"$2\". Allowed error types are:" >&2
+-		        echo -e $SGML_ERRORS_LIST >&2
++		        printf "$SGML_ERRORS_LIST\n" >&2
+ 			exit 1
+ 			;;
+ 		esac
+ 		;;
+-  -h|--help)	echo -e "`basename $0` - Jade Wrapper\n"
+-		echo -e "$SGML_HELP_MESSAGE"
++  -h|--help)	printf "`basename $0` - Jade Wrapper\n\n"
++		printf "$SGML_HELP_MESSAGE\n"
+ 		exit 0
+ 		;;
+-  -v|--version)	echo -e "$SGML_VERSION_MESSAGE"
++  -v|--version)	printf "$SGML_VERSION_MESSAGE\n"
+ 		exit 0
+ 		;;
+-  -*)		echo -e "$SGML_HELP_MESSAGE" >&2
++  -*)		printf "$SGML_HELP_MESSAGE\n" >&2
+ 		exit 1
+ 		;;
+   *)		if [ -z "$SGML_FILE" ]
+@@ -233,7 +233,7 @@ do case $1 in
+ 		  esac
+ 		  shift 1
+ 		else
+-		  echo -e "$SGML_HELP_MESSAGE" >&2
++		  printf "$SGML_HELP_MESSAGE\n" >&2
+ 		  exit 1
+ 		fi
+ 		;;
+@@ -243,7 +243,7 @@ done
+ # Check that we have a frontend
+ if [ -z "$SGML_FRONTEND" ]
+ then
+-  echo -e $SGML_HELP_MESSAGE >&2
++  printf "$SGML_HELP_MESSAGE\n" >&2
+   exit 1
+ fi
+ if [ ! -s $SGML_FRONTEND ]
+@@ -255,7 +255,7 @@ fi
+ # Check that we have a backend
+ if [ -z "$SGML_BACKEND" ]
+ then
+-  echo -e $SGML_HELP_MESSAGE >&2
++  printf "$SGML_HELP_MESSAGE\n" >&2
+   exit 1
+ fi
+ if [ ! -s $SGML_BACKEND ]
+@@ -267,7 +267,7 @@ fi
+ # Check that we have a file to process
+ if [ -z "$SGML_FILE" ]
+ then
+-  echo -e $SGML_HELP_MESSAGE >&2
++  printf "$SGML_HELP_MESSAGE\n" >&2
+   exit 1
+ fi
+ if [ ! -s $SGML_FILE ]
+@@ -290,7 +290,7 @@ fi
+ 
+ # Use SGML declaration for XML if needed
+ if [ "$SGML_DECL" = "" -a "$SGML_XML" = "xml" ]
+-then SGML_DECL=${SGML_BASE_DIR}/xml.dcl
++then SGML_DECL=${SGML_BASE_DIR}/declaration/xml.dcl
+ fi
+ 
+ # Try to find the SGML normalizer
+@@ -402,7 +402,7 @@ fi
+ # Create output directory if not available
+ if [ -z "$SGML_OUTPUT_DIRECTORY" ]
+ then
+-  echo -e $SGML_HELP_MESSAGE >&2
++  printf "$SGML_HELP_MESSAGE\n" >&2
+   exit 1
+ fi
+ if [ ! -d $SGML_OUTPUT_DIRECTORY ]
+--- docbook-utils-0.6.14.orig/doc/refentry/jw.sgml
++++ docbook-utils-0.6.14/doc/refentry/jw.sgml
+@@ -230,7 +230,7 @@
+     <para>Here we have chosen to generate HTML output. In fact we can
+     use any of the backends stored in the <filename>backends/</filename>
+     subdirectory of the DocBook-utils distribution directory (usually
+-    <filename>/usr/share/sgml/docbook/utils-&version;</filename>).
++    <filename>/usr/share/docbook-utils</filename>).
+     Similarly, you can use any frontend defined in the
+     <filename>frontends/</filename> subdirectory to convert from another
+     input format.</para>
+@@ -592,21 +592,21 @@
+       </varlistentry>
+ 
+       <varlistentry>
+-	<term><filename>/usr/share/sgml/docbook/utils-&version;/backends</filename></term>
++	<term><filename>/usr/share/docbook-utils/backends</filename></term>
+ 	<listitem>
+           <para>The various backends</para>
+ 	</listitem>
+       </varlistentry>
+ 
+       <varlistentry>
+-	<term><filename>/usr/share/sgml/docbook/utils-&version;/frontends</filename></term>
++	<term><filename>/usr/share/docbook-utils/frontends</filename></term>
+ 	<listitem>
+           <para>The various frontends</para>
+ 	</listitem>
+       </varlistentry>
+ 
+       <varlistentry>
+-	<term><filename>/usr/share/sgml/docbook/utils-&version;/helpers</filename></term>
++	<term><filename>/usr/share/perl5/sgmlspl-specs</filename></term>
+ 	<listitem>
+           <para>The various helper scripts like docbook2man or docbook2texi</para>
+ 	</listitem>
+--- docbook-utils-0.6.14.orig/doc/man/jw.1
++++ docbook-utils-0.6.14/doc/man/jw.1
+@@ -128,7 +128,7 @@ be in any other directory than the curre
+ Here we have chosen to generate HTML output. In fact we can
+ use any of the backends stored in the \fIbackends/\fR
+ subdirectory of the DocBook-utils distribution directory (usually
+-\fI/usr/share/sgml/docbook/utils-0.6.14\fR).
++\fI/usr/share/docbook-utils\fR).
+ Similarly, you can use any frontend defined in the
+ \fIfrontends/\fR subdirectory to convert from another
+ input format.
+@@ -355,13 +355,13 @@ Centralized SGML open catalog. This file
+ vary if another frontend than \fIdocbook\fR
+ is used.
+ .TP
+-\fB\fI/usr/share/sgml/docbook/utils-0.6.14/backends\fB\fR
++\fB\fI/usr/share/docbook-utils/backends\fB\fR
+ The various backends
+ .TP
+-\fB\fI/usr/share/sgml/docbook/utils-0.6.14/frontends\fB\fR
++\fB\fI/usr/share/docbook-utils/frontends\fB\fR
+ The various frontends
+ .TP
+-\fB\fI/usr/share/sgml/docbook/utils-0.6.14/helpers\fB\fR
++\fB\fI/usr/share/perl5/sgmlspl-specs\fB\fR
+ The various helper scripts like docbook2man or docbook2texi
+ .SH "AUTHORS"
+ .PP
+--- docbook-utils-0.6.14.orig/doc/HTML/Makefile.in
++++ docbook-utils-0.6.14/doc/HTML/Makefile.in
+@@ -103,7 +103,7 @@ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+-htmldir = $(docdir)/html/docbook-utils-@VERSION@
++htmldir = $(docdir)/html/
+ html_DATA = api.html \
+ 	backend-spec.html \
+ 	docbook2man.html \
+--- docbook-utils-0.6.14.orig/frontends/Makefile.in
++++ docbook-utils-0.6.14/frontends/Makefile.in
+@@ -104,7 +104,7 @@ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+-sgmldudir = $(prefix)/share/sgml/docbook/utils-@VERSION@
++sgmldudir = $(prefix)/share/docbook-utils
+ sgmldufedir = $(sgmldudir)/frontends
+ sgmldufe_DATA = docbook
+ all: all-am
+--- docbook-utils-0.6.14.orig/frontends/Makefile.am
++++ docbook-utils-0.6.14/frontends/Makefile.am
+@@ -1,3 +1,3 @@
+-sgmldudir = $(prefix)/share/sgml/docbook/utils-@VERSION@
++sgmldudir = $(prefix)/share/docbook-utils
+ sgmldufedir = $(sgmldudir)/frontends
+ sgmldufe_DATA = docbook
+--- docbook-utils-0.6.14.orig/frontends/docbook.in
++++ docbook-utils-0.6.14/frontends/docbook.in
+@@ -27,10 +27,7 @@ case "$1" in
+ 	done
+ 	if [ -z "$SGML_CATALOG" ]
+ 	then
+-	  if [ "${SGML_XML}" != "sgml" ]
+-	  then SGML_CATALOG=${SGML_CATALOGS_DIR}/${SGML_XML}-docbook.cat
+-	  else SGML_CATALOG=${SGML_CATALOGS_DIR}/catalog
+-	  fi
++	  SGML_CATALOG=${SGML_CATALOGS_DIR}/catalog
+ 	fi
+ 	echo "$SGML_CATALOG"
+ 	;;
+@@ -38,7 +35,7 @@ case "$1" in
+   style-sheet)
+ 	case $SGML_STYLESHEET in
+ 	  default)
+-	    echo "${SGML_BASE_DIR}/docbook/utils-@VERSION@/docbook-utils.dsl#${SGML_TYPE}"
++	    echo "/usr/share/docbook-utils/docbook-utils.dsl#${SGML_TYPE}"
+ 	    ;;
+ 	  none)
+ 	    find $SGML_BASE_DIR -name docbook.dsl | grep "$SGML_TYPE/docbook.dsl" | awk '{print $1}'
+--- docbook-utils-0.6.14.orig/helpers/docbook2man-spec.pl
++++ docbook-utils-0.6.14/helpers/docbook2man-spec.pl
+@@ -1199,8 +1199,8 @@ sgml('cdata', sub
+ 	$_[0] =~ s/\\/\\\\/g;
+ 
+ 	# Escape dots and single quotes in column 1
+-	$_[0] =~ s/^\./\\\&\./;
+-	$_[0] =~ s/^\'/\\\&\'/;
++	$_[0] =~ s/^[ \t]*\./\\\&\./;
++	$_[0] =~ s/^[ \t]*\'/\\\&\'/;
+ 
+ 	# In non-'pre'-type elements:
+ 	if(!$nocollapse_whitespace) {
+--- docbook-utils-0.6.14.orig/helpers/Makefile.in
++++ docbook-utils-0.6.14/helpers/Makefile.in
+@@ -103,8 +103,8 @@ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+-sgmldudir = $(prefix)/share/sgml/docbook/utils-@VERSION@
+-sgmlduhedir = $(sgmldudir)/helpers
++sgmldudir = $(prefix)/share
++sgmlduhedir = $(sgmldudir)/perl5/sgmlspl-specs
+ sgmlduhe_DATA = docbook2man-spec.pl docbook2texi-spec.pl
+ EXTRA_DIST = $(sgmlduhe_DATA)
+ all: all-am
+--- docbook-utils-0.6.14.orig/helpers/Makefile.am
++++ docbook-utils-0.6.14/helpers/Makefile.am
+@@ -1,5 +1,5 @@
+-sgmldudir = $(prefix)/share/sgml/docbook/utils-@VERSION@
+-sgmlduhedir = $(sgmldudir)/helpers
++sgmldudir = $(prefix)/share
++sgmlduhedir = $(sgmldudir)/perl5/sgmlspl-specs
+ sgmlduhe_DATA = docbook2man-spec.pl docbook2texi-spec.pl
+ 
+ EXTRA_DIST = $(sgmlduhe_DATA)
+--- docbook-utils-0.6.14.orig/helpers/docbook2texi-spec.pl
++++ docbook-utils-0.6.14/helpers/docbook2texi-spec.pl
+@@ -774,7 +774,7 @@ texi_sgml('<BEGINPAGE>', "\n\@page\n");
+ ## Print the URL
+ sgml('<ULINK>', sub {
+ 	if($skip_inline++) { return; }	# hopefully doesn't happen
+-	output '@uref{', output $_[0]->attribute('URL'), ', '
++	output '@uref{', $_[0]->attribute('URL')->value, ', '
+ });
+ sgml('</ULINK>', sub {
+ 	output '}' unless --$skip_inline;
+@@ -807,6 +807,7 @@ sgml('<XREF>', sub {
+ sgml('|[lt    ]|', "<");
+ sgml('|[gt    ]|', ">");
+ sgml('|[amp   ]|', "&");
++sgml('|[ndash ]|', "-");
+ 
+ #
+ # Default handlers (uncomment these if needed).  Right now, these are set
diff --git a/gnu/packages/patches/docbook-utils-frontends.patch b/gnu/packages/patches/docbook-utils-frontends.patch
new file mode 100644
index 0000000000..73fb2c06d0
--- /dev/null
+++ b/gnu/packages/patches/docbook-utils-frontends.patch
@@ -0,0 +1,42 @@
+Definition: docbook frontend runs sgmlnorm on xml input,
+ WARNING: I know very little about the docbook toolchain! Please 
+          double-check and triple-check my suggestion. Works For Me (tm)
+          
+          
+ Running 
+ 
+ db2html foo.xml
+ 
+ causes unnecessary long waits (up to 30 seconds or so) if the 
+ input document is an XML document.
+ 
+ I traced down the problem to the file 
+ /usr/share/sgml/docbook/utils-0.6.13/frontend/docbook (which is
+ called from /usr/bin/jw). Apparently it runs 'sgmlnorm' even
+ over XML documents (which should be expected to be well-formed, no?).
+ This is because $SGML_NORM is set to either 'sgml' or 'xml' in 
+ /usr/bin/jw in any case (and exported), so that the check in docbook
+ will always lead to sgmlnorm being used.
+ 
+ To me it seems unnecessary to run sgmlnorm over XML input, but I 
+ may well be wrong :)
+ 
+ If there is something to it, please have a look at the attached
+ patch, which works fine for me and fixes those long waits for me.
+Author: Tim-Philipp Müller <tim-mailinglists@zen.co.uk>
+Forwarded: not-needed
+Bug-Debian: http://bugs.debian.org/212088
+
+Index: docbook-utils-0.6.14/frontends/docbook.in
+===================================================================
+--- docbook-utils-0.6.14.orig/frontends/docbook.in	2012-05-09 19:15:17.396741140 +0200
++++ docbook-utils-0.6.14/frontends/docbook.in	2012-05-09 19:15:34.988740507 +0200
+@@ -6,7 +6,7 @@
+ # Give the location of the centralized catalog
+ # First try the one with a version matching the version that is indicated in the document
+   centralized-catalog)
+-	if [ -n "$SGML_NORM" ]; then
++	if [ -n "$SGML_NORM" ] && [ "$SGML_XML" = "sgml" ]; then
+ 	  SGML_NORM_OPTS='-d'
+ 	else
+ 	  SGML_NORM=cat
diff --git a/gnu/packages/patches/docbook-utils-helpers-date.patch b/gnu/packages/patches/docbook-utils-helpers-date.patch
new file mode 100644
index 0000000000..192233d41f
--- /dev/null
+++ b/gnu/packages/patches/docbook-utils-helpers-date.patch
@@ -0,0 +1,61 @@
+Description: patch to get the <date> from the sgml file
+ For the moment, docbook2man doesn't use the tag date in <date> </date>
+ to but `date "+%d %B %Y"`, and thus depend on the current locale.
+ 
+ <refentry>
+   <docinfo>
+     <date>06 September 2003</>
+   </docinfo>
+ </refentry>
+ 
+ A patch against /usr/share/perl5/sgmlspl-specs/docbook2man-spec.pl
+ allows to use the date written in the source SGML file (which can be
+ localized) instead of the current date.
+ 
+ However, if no correct date tag is present in the SGML file, the date
+ written in the manpage will depend on the current locale.
+Author: Simon Paillard <simon.paillard@resel.enst-bretagne.fr>
+Forwarded: not-needed
+Bug-Debian: http://bugs.debian.org/214982
+
+Index: docbook-utils-0.6.14/helpers/docbook2man-spec.pl
+===================================================================
+--- docbook-utils-0.6.14.orig/helpers/docbook2man-spec.pl	2012-05-09 18:27:28.000000000 +0200
++++ docbook-utils-0.6.14/helpers/docbook2man-spec.pl	2012-05-09 18:55:53.276783163 +0200
+@@ -278,8 +278,9 @@
+ .\\" etc. to Steve Cheng <steve\@ggi-project.org>.
+ _END_BANNER
+ 
+-	my $manpage_date = `date "+%d %B %Y"`;
+-		
++	my $date = `date "+%d %B %Y"`;
++	my $manpage_date = $manpage_date || $date ;
++
+ 	output '.TH "';
+ 	
+ 	# If the title is not mixed-case, convention says to
+@@ -292,7 +293,7 @@
+ 	}
+ 	
+ 	output  '" "', fold_string($manpage_sect), 
+-		'" "', fold_string(`date "+%d %B %Y"`), 
++		'" "', fold_string($manpage_date), 
+ 		'" "', $manpage_misc, 
+ 		'" "', $manpage_manual, 
+ 		"\"\n";
+@@ -568,6 +569,15 @@
+ sgml('</ATTRIBUTION>', sub { $_[0]->parent->ext->{'attribution'} = pop_output(); });
+ 
+ 
++sgml('<DATE>', sub {
++	save_cdata();
++});
++sgml('</DATE>', sub { 
++	$manpage_date = fold_string(pop_output());
++	$raw_cdata--;
++});
++
++
+ # IGNORE.
+ sgml('<DOCINFO>', sub { push_output('nul'); });
+ sgml('</DOCINFO>', sub { pop_output(); });
diff --git a/gnu/packages/patches/docbook-utils-helpers-name.patch b/gnu/packages/patches/docbook-utils-helpers-name.patch
new file mode 100644
index 0000000000..d577fed748
--- /dev/null
+++ b/gnu/packages/patches/docbook-utils-helpers-name.patch
@@ -0,0 +1,34 @@
+Description: docbook2man should translate the NAME section according to the REFENTRY's lang attribute
+ Currently, docbook2man translates the NAME section according to the lang
+ attribute provided to the REFNAMEDIV tag.
+ When a lang attribute is specified in the REFENTRY tag and no lang
+ attribute is specified with the REFNAMEDIV, the lang attribute of the
+ REFENTRY should be used.
+Author: Nicolas François <nicolas.francois@centraliens.net>
+Forwarded: not-needed
+Bug-Debian: http://bugs.debian.org/394511
+
+Index: docbook-utils-0.6.14/helpers/docbook2man-spec.pl
+===================================================================
+--- docbook-utils-0.6.14.orig/helpers/docbook2man-spec.pl	2012-05-09 18:55:53.276783163 +0200
++++ docbook-utils-0.6.14/helpers/docbook2man-spec.pl	2012-05-09 18:58:04.792778418 +0200
+@@ -359,11 +359,14 @@
+ # NAME section
+ man_sgml('<REFNAMEDIV>', sub {
+ 	my %words = qw( fr NOM es NOMBRE de NAME );
+-	if (defined($_[0]->attribute('LANG')->value)) {
+-	my $id = $_[0]->attribute('LANG')->value;
+-	my $ad = $words{$id};
+-	output("\n.SH $ad\n");}
+-	else {output("\n.SH NAME\n");}
++	# Use the REFNAMEDIV's lang attribute, and default to the
++	# REFENTRY's lang attribute.
++	my $lang = $_[0]->attribute('LANG')->value;
++	$lang = $manpage_lang unless defined $lang;
++	if (defined($lang) and defined $words{lc($lang)}) {
++		my $ad = $words{lc($lang)};
++		output("\n.SH $ad\n");}
++	else {	output("\n.SH NAME\n");}
+ });
+ 
+ sgml('<REFNAME>', \&save_cdata);
diff --git a/gnu/packages/patches/docbook-utils-helpers-support.patch b/gnu/packages/patches/docbook-utils-helpers-support.patch
new file mode 100644
index 0000000000..ee3510a1d0
--- /dev/null
+++ b/gnu/packages/patches/docbook-utils-helpers-support.patch
@@ -0,0 +1,29 @@
+Author: Reiner Herrmann <reiner@reiner-h.de>
+Description: Support SOURCE_DATE_EPOCH for timestamps
+ To allow generating documents in a reproducible way,
+ allow overriding the timestamp through the environment.
+ .
+ See also: https://reproducible-builds.org/specs/source-date-epoch/
+Bug-Debian: https://bugs.debian.org/800797
+
+--- a/helpers/docbook2man-spec.pl
++++ b/helpers/docbook2man-spec.pl
+@@ -57,6 +57,7 @@
+ use SGMLS;			# Use the SGMLS package.
+ use SGMLS::Output;		# Use stack-based output.
+ use SGMLS::Refs;
++use POSIX qw(strftime setlocale LC_TIME);
+ 
+ ########################################################################
+ # SGMLSPL script produced automatically by the script sgmlspl.pl
+@@ -279,6 +280,10 @@
+ _END_BANNER
+ 
+ 	my $date = `date "+%d %B %Y"`;
++	if ($ENV{SOURCE_DATE_EPOCH}) {
++		setlocale(LC_TIME, "C");
++		$date = strftime("%d %B %Y", gmtime($ENV{SOURCE_DATE_EPOCH} || time));
++	}
+ 	my $manpage_date = $manpage_date || $date ;
+ 
+ 	output '.TH "';
diff --git a/gnu/packages/patches/docbook-utils-helpers-whitespace.patch b/gnu/packages/patches/docbook-utils-helpers-whitespace.patch
new file mode 100644
index 0000000000..8b1bba3ff4
--- /dev/null
+++ b/gnu/packages/patches/docbook-utils-helpers-whitespace.patch
@@ -0,0 +1,30 @@
+Description: incorrectly strips whitespace (patch included)
+ In the previous upload, docbook2man was patched to escape the special
+ characters . and ' at the beginning of a line (see #399947).
+ Unfortunately that patch was incorrect -- as well as escaping the special
+ characters, it also removes all whitespace from the beginning of
+ affected lines.  As a result, if you are in a block where whitespace
+ matters (such as <screen>...</screen>) then the output is now incorrect.
+ 
+ This is very easy to fix -- just match the whitespace and preserve it,
+ instead of tossing it away.  The full patch (just two lines) is included
+ below.
+Author: Ben Burton <bab@debian.org>
+Forwarded: not-needed
+Bug-Debian: http://bugs.debian.org/528334
+
+Index: docbook-utils-0.6.14/helpers/docbook2man-spec.pl
+===================================================================
+--- docbook-utils-0.6.14.orig/helpers/docbook2man-spec.pl	2012-05-09 18:59:42.584774885 +0200
++++ docbook-utils-0.6.14/helpers/docbook2man-spec.pl	2012-05-09 19:00:34.788773002 +0200
+@@ -1212,8 +1212,8 @@
+ 	$_[0] =~ s/\\/\\\\/g;
+ 
+ 	# Escape dots and single quotes in column 1
+-	$_[0] =~ s/^[ \t]*\./\\\&\./;
+-	$_[0] =~ s/^[ \t]*\'/\\\&\'/;
++	$_[0] =~ s/^([ \t]*)\./$1\\\&\./;
++	$_[0] =~ s/^([ \t]*)\'/$1\\\&\'/;
+ 
+ 	# In non-'pre'-type elements:
+ 	if(!$nocollapse_whitespace) {
diff --git a/gnu/packages/patches/docbook-utils-jade.patch b/gnu/packages/patches/docbook-utils-jade.patch
new file mode 100644
index 0000000000..e90989aca4
--- /dev/null
+++ b/gnu/packages/patches/docbook-utils-jade.patch
@@ -0,0 +1,211 @@
+Description: Change dependencies on jade and sp to openjade and opensp
+Author: Neil Roeth <neil@debian.org>
+Last-Update: 2016-07-24
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/doc/HTML/Makefile.am
++++ b/doc/HTML/Makefile.am
+@@ -1,4 +1,4 @@
+-htmldir	  = $(docdir)/html/docbook-utils-@VERSION@
++htmldir	  = $(docdir)/html
+ html_DATA = api.html \
+ 	backend-spec.html \
+ 	docbook2man.html \
+@@ -25,6 +25,6 @@
+ 		$(top_srcdir)/doc/refentry/sgmldiff.sgml
+ 	SGML_CATALOG_FILES=/etc/sgml/catalog \
+ 	SGML_SEARCH_PATH=$(top_srcdir):$(top_srcdir)/doc:.. \
+-		jade -t sgml -i html -d $(top_srcdir)/docbook-utils.dsl\#html \
++		openjade -t sgml -i html -d $(top_srcdir)/docbook-utils.dsl\#html \
+ 			-V '%use-id-as-filename%' $<
+ 
+--- a/doc/man/Makefile.am
++++ b/doc/man/Makefile.am
+@@ -12,5 +12,5 @@
+ 		$(top_srcdir)/helpers/docbook2man-spec.pl
+ 	SGML_CATALOG_FILES=/etc/sgml/catalog \
+ 	SGML_SEARCH_PATH=$(top_srcdir)/doc:.. \
+-		nsgmls $< | \
++		onsgmls $< | \
+ 		sgmlspl $(top_srcdir)/helpers/docbook2man-spec.pl
+--- a/backends/man.in
++++ b/backends/man.in
+@@ -7,8 +7,8 @@
+ TMPDIR=`mktemp -d /tmp/man.XXXXXX` || \
+  { echo >&2 "man backend: could not create secure temporary directory"; exit 1;}
+ trap 'rm -rf "${TMPDIR}"' EXIT
+-nsgmls $SGML_FILE > "${TMPDIR}/nsgmls.tmp"
+-sgmlspl $HELPER <"${TMPDIR}/nsgmls.tmp" 2>"${TMPDIR}/errs"
++onsgmls $SGML_FILE > "${TMPDIR}/onsgmls.tmp"
++sgmlspl $HELPER <"${TMPDIR}/onsgmls.tmp" 2>"${TMPDIR}/errs"
+ if [ $? -ne 0 ]
+ then
+   cat "${TMPDIR}/errs"
+@@ -18,7 +18,7 @@
+ if grep unresolved "${TMPDIR}/errs" >/dev/null 2>&1
+ then
+   echo "Resolving references.."
+-  sgmlspl $HELPER <"${TMPDIR}/nsgmls.tmp"
++  sgmlspl $HELPER <"${TMPDIR}/onsgmls.tmp"
+   if [ $? -ne 0 ]
+   then exit 1
+   fi
+--- a/backends/texi.in
++++ b/backends/texi.in
+@@ -3,7 +3,7 @@
+ # This program is under GPL license. See LICENSE file for details.
+ 
+ # Convert to texinfo
+-nsgmls $SGML_FILE | sgmlspl docbook2texi-spec.pl >$SGML_FILE_NAME.texi
++onsgmls $SGML_FILE | sgmlspl docbook2texi-spec.pl >$SGML_FILE_NAME.texi
+ if [ $? -ne 0 ]
+ then exit 1
+ fi
+--- a/bin/sgmldiff.in
++++ b/bin/sgmldiff.in
+@@ -22,13 +22,13 @@
+ 
+ use strict;
+ use integer;
+-use vars qw($nsgmls $errors $errorlog $VERSION);
++use vars qw($onsgmls $errors $errorlog $VERSION);
+ use Getopt::Long 2.01;
+ 
+ $VERSION = 1.03;
+ 
+-my $nsgmls;
+-$nsgmls = "@jade_bindir@/nsgmls";
++my $onsgmls;
++$onsgmls = "@jade_bindir@/onsgmls";
+ 
+ #----------------------------------------------------------------------
+ # TODO:
+@@ -37,7 +37,7 @@
+ # - Wait for suggestions ;-)
+ # 
+ # Note: the input file need not be valid, nor is it necessary to have 
+-# the DTDs.  nsgmls always returns a structure.
++# the DTDs.  onsgmls always returns a structure.
+ #----------------------------------------------------------------------
+ 
+ # Get file name
+@@ -141,11 +141,11 @@
+ unlink $diff2;
+ 
+ #---------------------------------------------------------------------
+-# Process nsgmls output: keep all stuff that is important for the
++# Process onsgmls output: keep all stuff that is important for the
+ # structure comparison.  Make two structures: one that is diffed
+ # (without text) (DIFF) and one that is used to present the
+ # differences to the user (@full).  For more info: see SP
+-# documentation, nsgmls output format.
++# documentation, onsgmls output format.
+ 
+ sub prepare {
+     my($filename,$todiffname) = @_;
+@@ -161,7 +161,7 @@
+     my @line_numbered = ();
+     my $line = 0;
+ 
+-    open(ESIS, "$nsgmls -l $errors $errorlog -onotation-sysid -oid -oempty $filename | ");  #-oentity generates strange output; ? -ononsgml
++    open(ESIS, "$onsgmls -l $errors $errorlog -onotation-sysid -oid -oempty $filename | ");  #-oentity generates strange output; ? -ononsgml
+     open(DIFF, "> $todiffname");
+     while (<ESIS>) {
+ 	chomp $_;
+@@ -375,7 +375,7 @@
+ };
+ 
+ #----------------------------------------------------------------------
+-# Normalise data text from nsgmls (i.e. don't print the escaped text).
++# Normalise data text from onsgmls (i.e. don't print the escaped text).
+ sub normalise_text {
+     my($string,$prefix) = @_;
+     my $result = "$prefix";
+--- a/configure.in
++++ b/configure.in
+@@ -21,7 +21,7 @@
+ 
+ dnl Checks for programs.
+ jade_bindirs="/usr/bin /usr/local/bin"
+-AC_FIND_PROGRAM(nsgmls, $jade_bindirs, jade_bindir)
++AC_FIND_PROGRAM(onsgmls, $jade_bindirs, jade_bindir)
+ AC_SUBST(jade_bindir)
+ 
+ perl_bindirs="/usr/bin /usr/local/bin"
+--- a/doc/refentry/docbook2man-spec.pl.sgml
++++ b/doc/refentry/docbook2man-spec.pl.sgml
+@@ -19,7 +19,7 @@
+ <!-- docbook2man-spec.pl BREAKAGE HERE! -->
+ 
+ <CmdSynopsis>
+-<Command>nsgmls</command>
++<Command>onsgmls</command>
+ <Arg><Replaceable>sgml document</replaceable></Arg>
+ <Command>| sgmlspl</command>
+ <Arg choice=req>docbook2man-spec.pl</arg>
+@@ -35,7 +35,7 @@
+ </Para>
+ 
+ <Para>
+-The program reads ESIS produced by nsgmls (or other SGML parsers) from
++The program reads ESIS produced by onsgmls (or other SGML parsers) from
+ standard input.  Markup not found in RefEntry is discarded.
+ </Para>
+ 
+--- a/doc/refentry/docbook2texi-spec.pl.sgml
++++ b/doc/refentry/docbook2texi-spec.pl.sgml
+@@ -20,7 +20,7 @@
+ <!-- docbook2man-spec.pl BREAKAGE HERE! -->
+ 
+ <CmdSynopsis>
+-<Command>nsgmls</command>
++<Command>onsgmls</command>
+ <Arg><Replaceable>sgml document</replaceable></Arg>
+ <Command>| sgmlspl</command>
+ <Arg choice=req>docbook2texi-spec.pl</arg>
+@@ -37,7 +37,7 @@
+ </Para>
+ 
+ <Para>
+-The program reads ESIS produced by nsgmls (or other SGML parsers) from
++The program reads ESIS produced by onsgmls (or other SGML parsers) from
+ standard input.  Currently the document element must be <SGMLTag>Book</sgmltag>,
+ otherwise the results are undefined.
+ </Para>
+--- a/doc/refentry/jw.sgml
++++ b/doc/refentry/jw.sgml
+@@ -630,7 +630,7 @@
+     <manvolnum>1</manvolnum></citerefentry>,
+     <citerefentry><refentrytitle>install-catalog</refentrytitle>
+     <manvolnum>8</manvolnum></citerefentry>,
+-    <citerefentry><refentrytitle>nsgmls</refentrytitle>
++    <citerefentry><refentrytitle>onsgmls</refentrytitle>
+     <manvolnum>1</manvolnum></citerefentry>, <ulink
+     url="http://sources.redhat.com/docbook-tools/">docbook-utils
+     homepage</ulink>.</para>
+--- a/doc/refentry/sgmldiff.sgml
++++ b/doc/refentry/sgmldiff.sgml
+@@ -238,10 +238,10 @@
+         <glossterm>
+ <!-- Next line  is a hack to force a paragraph break in the man-page. -->
+ <cmdsynopsis> <command></command> </cmdsynopsis>
+-          <citerefentry> <refentrytitle>nsgmls</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>
++          <citerefentry> <refentrytitle>onsgmls</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>
+         </glossterm>
+         <glossdef>
+-          <para>a base component of <application>Jade</application> DSSSL engine</para>
++          <para>a base component of <application>OpenJade</application> DSSSL engine</para>
+         </glossdef>
+       </glossentry>
+ 
+--- a/helpers/docbook2man-spec.pl
++++ b/helpers/docbook2man-spec.pl
+@@ -7,7 +7,7 @@
+ The SGMLSpm package from CPAN.  This contains the sgmlspl script which
+ is used to grok this file.  Use it like this:
+ 
+-nsgmls some-docbook-document.sgml | sgmlspl docbook2man-spec.pl
++onsgmls some-docbook-document.sgml | sgmlspl docbook2man-spec.pl
+ 
+ =head1 DESCRIPTION
+ 
diff --git a/gnu/packages/patches/docbook-utils-typo.patch b/gnu/packages/patches/docbook-utils-typo.patch
new file mode 100644
index 0000000000..03c0a4abcf
--- /dev/null
+++ b/gnu/packages/patches/docbook-utils-typo.patch
@@ -0,0 +1,100 @@
+Description: Fix some typos in man pages
+Author: Mathieu Malaterre <malat@debian.org>
+
+Index: docbook-utils-0.6.14/doc/man/docbook2man-spec.pl.1
+===================================================================
+--- docbook-utils-0.6.14.orig/doc/man/docbook2man-spec.pl.1	2012-05-09 18:39:17.932819095 +0200
++++ docbook-utils-0.6.14/doc/man/docbook2man-spec.pl.1	2012-05-09 18:39:24.780818845 +0200
+@@ -17,7 +17,7 @@
+ .SH "DESCRIPTION"
+ .PP
+ \fBdocbook2man\fR is a sgmlspl spec file that produced man
+-pages (using the -man macros) from DocBook RefEntry markup.
++pages (using the \-man macros) from DocBook RefEntry markup.
+ .PP
+ The program reads ESIS produced by nsgmls (or other SGML parsers) from
+ standard input.  Markup not found in RefEntry is discarded.
+Index: docbook-utils-0.6.14/doc/man/frontend-spec.7
+===================================================================
+--- docbook-utils-0.6.14.orig/doc/man/frontend-spec.7	2012-05-09 18:41:45.172813778 +0200
++++ docbook-utils-0.6.14/doc/man/frontend-spec.7	2012-05-09 18:42:03.176813129 +0200
+@@ -10,7 +10,7 @@
+ .SH "DESCRIPTION"
+ .PP
+ \fBjw\fR(1) calls frontends like
+-\fIfrontends/docbook\fR to get the informations
++\fIfrontends/docbook\fR to get the information
+ specific to a given input format. The frontend knows which information
+ to return from the first command line parameter. It gets all necessary
+ data via environment variables ready to use.
+Index: docbook-utils-0.6.14/doc/man/jw.1
+===================================================================
+--- docbook-utils-0.6.14.orig/doc/man/jw.1	2012-05-09 18:39:35.612818456 +0200
++++ docbook-utils-0.6.14/doc/man/jw.1	2012-05-09 18:40:51.736815708 +0200
+@@ -142,7 +142,7 @@
+ The following options apply to the conversion script:
+ .TP
+ \fB   -f \fIfrontend\fB | --frontend \fIfrontend\fB  \fR
+-Allows to specify another frontend than default \fIdocbook\fR\&.
++Allows one to specify another frontend than default \fIdocbook\fR\&.
+ The list of currently available frontends is:
+ .RS
+ .TP
+@@ -156,13 +156,13 @@
+ .RE
+ .TP
+ \fB   -b \fIbackend\fB | --backend \fIbackend\fB  \fR
+-Allows to specify another backend than default
++Allows one to specify another backend than default
+ \fIHTML\fR\&. The list of currently available
+ backends is:
+ .RS
+ .TP
+ \fB\fIdvi\fB\fR
+-Converts to DVI (DeVice Independant
++Converts to DVI (DeVice Independent
+ files) by calling \fBJade\fR or
+ \fBOpenJade\fR\&.
+ .TP
+@@ -210,7 +210,7 @@
+ .RE
+ .TP
+ \fB   -c \fIfile\fB | --cat \fIfile\fB  \fR
+-Allows to use an extra SGML Open Catalog that will list
++Allows one to use an extra SGML Open Catalog that will list
+ other files like customization style sheets, adaptations to the
+ DocBook Document Type Definition, special character entities,
+ etc. This catalog is added to the list of catalogs determined
+@@ -241,7 +241,7 @@
+ are specified on the command line.
+ .TP
+ \fB   -d \fIfile\fB|default|none | --dsl \fIfile\fB|default|none  \fR
+-Allows to use a customized style sheet instead
++Allows one to use a customized style sheet instead
+ of the default one.
+ 
+ A "target" starting with a hash mark "#" can be appended
+Index: docbook-utils-0.6.14/doc/man/sgmldiff.1
+===================================================================
+--- docbook-utils-0.6.14.orig/doc/man/sgmldiff.1	2012-05-09 18:41:13.316814927 +0200
++++ docbook-utils-0.6.14/doc/man/sgmldiff.1	2012-05-09 18:41:38.032814038 +0200
+@@ -17,7 +17,7 @@
+ 
+ .SH "DESCRIPTION"
+ .PP
+-This perl script allows to determine the structural differences
++This perl script allows one to determine the structural differences
+ between two SGML files. It compares the files, regardless of what
+ is in between the tags, to only focus on the markup. Its output
+ is similar to \fBdiff\fR(1)\&.
+@@ -62,8 +62,8 @@
+ Lines 5 to 7 of the first file have been changed
+ into lines 8 to 10 of the second line.
+ In addition to those summaries, the lines of the first file are
+-shown preceeded by '<' and the lines of the second file are
+-shown preceeded by '>".
++shown preceded by '<' and the lines of the second file are
++shown preceded by '>".
+ .SH "OPTIONS"
+ .PP
+ Here is the list of actions that can be requested to
-- 
2.27.0


[-- Attachment #1.1.19: 0018-gnu-gmime-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5918 bytes --]

From 6f094fc726db15e73298abb581c7afcd9ee570b1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 22 Jul 2020 12:30:38 -0400
Subject: [PATCH 18/36] gnu: gmime: Update package definition.

* gnu/packages/mail.scm (gmime): 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.
[--with-gpgme-prefix]: New flag.
<#:phases>['patch-paths-in-tests]: Remove phase.
['patch-docbook-xml]: New phase.
['disable-failing-tests]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl, docbook-utils,
gobject-introspection, gtk-doc, perl and vala. Remove gnupg.
[inputs]: Add gnupg and libidn2. Remove glib.
[propagated-inputs]: Add glib.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/mail.scm | 97 ++++++++++++++++++++++++++-----------------
 1 file changed, 60 insertions(+), 37 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 87388747e4..422c3f6260 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -139,6 +139,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system guile)
   #:use-module (guix build-system perl)
@@ -563,46 +564,68 @@ It adds a large amount of new and improved features to mutt.")
   (package
     (name "gmime")
     (version "3.2.7")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/gmime/"
-                                  (version-major+minor version)
-                                  "/gmime-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0i3xfc84qn1z99i70q68kbnp9rmgqrnprqb418ba52s6g9j9dsia"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gnupg" ,gnupg)))               ; for tests only
-    (inputs `(("glib" ,glib)
-              ("gpgme" ,gpgme)
-              ("zlib" ,zlib)))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gmime/"
+                       (version-major+minor version)
+                       "/gmime-" version ".tar.xz"))
+       (sha256
+        (base32 "0i3xfc84qn1z99i70q68kbnp9rmgqrnprqb418ba52s6g9j9dsia"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
+        (string-append "--with-gpgme-prefix="
+                       (assoc-ref %build-inputs "gpgme")))
+       #:phases
        (modify-phases %standard-phases
-         (add-after
-          'unpack 'patch-paths-in-tests
-          (lambda _
-            ;; The test programs run several programs using 'system' with
-            ;; hard-coded paths.  Here we patch them all.
-            ;; We use ISO-8859-1 here because test-iconv.c contains
-            ;; raw byte sequences in several different encodings.
-            (with-fluids ((%default-port-encoding #f))
-              (substitute* (find-files "tests" "\\.c$")
-                (("(system *\\(\")(/[^ ]*)" all pre prog-path)
-                 (let* ((base (basename prog-path))
-                        (prog (which base)))
-                   (string-append pre
-                                  (or prog (error "not found: " base)))))))
-            #t)))))
-    (home-page "http://spruce.sourceforge.net/gmime/")
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "gmime-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 'patch-docbook-xml 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/Makefile.in"
+               (("@ENABLE_CRYPTO_TRUE@	test-pgp	\\\\")
+                "")
+               (("@ENABLE_CRYPTO_TRUE@	test-pgpmime")
+                "")
+               (("test-mbox test-autocrypt test-mime")
+                "test-mbox test-mime"))
+             #t)))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("docbook2html" ,docbook-utils)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("vapigen" ,vala)))
+    (inputs
+     `(("gnupg" ,gnupg)
+       ("gpgme" ,gpgme)
+       ("libidn2" ,libidn2)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("glib" ,glib)))
     (synopsis "MIME message parser and creator library")
-    (description
-     "GMime provides a core library and set of utilities which may be used for
-the creation and parsing of messages using the Multipurpose Internet Mail
-Extension (MIME).")
-    (license (list lgpl2.1+ gpl2+ gpl3+))))
+    (description "GMime is a C/C++ library which may be used for the creation
+and parsing of messages using the Multipurpose Internet Mail Extension (MIME),
+as defined by the RFCs.")
+    (home-page "http://spruce.sourceforge.net/gmime/")
+    (license lgpl2.1+)))
 
 ;; Some packages are not ready for GMime 3 yet.
 (define-public gmime-2.6
-- 
2.27.0


[-- Attachment #1.1.20: 0019-gnu-gnome-autoar-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3874 bytes --]

From 4749f46650f8f816ae97c4b9ad2424d9bff99e88 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 22 Jul 2020 15:27:33 -0400
Subject: [PATCH 19/36] gnu: gnome-autoar: Update package definition.

* gnu/packages/gnome.scm (gnome-autoar): Update package definition.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-gtk-doc]: New flag.
[--with-html-dir]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, gtk-doc and vala.
[inputs]: Remove gtk+.
[propagated-inputs]: Add glib and gtk+.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 59 +++++++++++++++++++++++++++++-------------
 1 file changed, 41 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b398c5e2e6..62f9ea8306 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8685,27 +8685,50 @@ as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
   (package
     (name "gnome-autoar")
     (version "0.2.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "out")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "gnome-autoar-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("vapigen" ,vala)))
     (propagated-inputs
-     `(("libarchive" ,libarchive)))  ; Required by gnome-autoar-0.pc
-    (inputs
-     `(("gtk+" ,gtk+)))
-    (synopsis "Archives integration support for GNOME")
-    (home-page "https://git.gnome.org/browse/gnome-autoar/")
-    (description
-     "GNOME Autoar is a library which makes creating and extracting archives
-easy, safe, and automatic.")
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libarchive" ,libarchive)))
+    (synopsis "Archive management for GNOME")
+    (description "GNOME Autoar provides functions, widgets, and gschemas for
+GNOME applications which want to use archives as a convenient method to transfer
+directories over the internet.")
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-autoar")
     (license license:lgpl2.1+)))
 
 (define-public tracker
-- 
2.27.0


[-- Attachment #1.1.21: 0020-gnu-gnome-online-accounts-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5544 bytes --]

From c6875dc0d722d07c7906f8103f5ec01649d030e5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 23 Jul 2020 11:19:25 -0400
Subject: [PATCH 20/36] gnu: gnome-online-accounts: Update package definition.

* gnu/packages/gnome.scm (gnome-online-accounts): Update package
definition.
[outputs]: New output 'doc'.
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-documentation]: New flag.
[--enable-gtk-doc]: New flag.
[--enable-inspector]: New flag.
[--enable-media-server]: New flag.
[--enable-lastfm]: New flag.
[--with-html-dir=]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl and gtk-doc. Remove
glib:bin.
[inputs]: Remove docbook-xsl. Add dbus, gcr, mit-krb5, libsoup and
libxml2.
[propagated-inputs]: Add glib-networking.
[description]: Modify.
---
 gnu/packages/gnome.scm | 70 +++++++++++++++++++++++++++++-------------
 1 file changed, 49 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 62f9ea8306..7bb63516e8 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7416,24 +7416,46 @@ window manager.")
   (package
     (name "gnome-online-accounts")
     (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
-                "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
-    (outputs '("out" "lib"))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "lib" "doc"))
     (arguments
      `(#:configure-flags
-       (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
+       (list
+        (string-append "--libdir="
+                       (assoc-ref %outputs "out")
+                       "/lib")
+        "--disable-static"
+        "--enable-documentation"
+        "--enable-gtk-doc"
+        "--enable-inspector"
+        "--enable-media-server"
+        "--enable-lastfm"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* '("goa-daemon.xml"
+                              "goa-docs.xml" "goa-overview.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
          (add-before 'configure 'patch-libgoa-output
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((lib (assoc-ref outputs "lib")))
+             (let* ((lib (assoc-ref outputs "lib")))
                (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
                  (("@prefix@") lib)
                  (("@exec_prefix@") lib)
@@ -7445,28 +7467,34 @@ window manager.")
                (setenv "outputs" "out lib")
                #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)
        ("xsltproc" ,libxslt)))
-    (propagated-inputs
-     `(("glib" ,glib)           ; required by goa-1.0.pc
-       ("gtk+" ,gtk+)))         ; required by goa-backend-1.0.pc
     (inputs
-     `(("docbook-xsl" ,docbook-xsl)
+     `(("dbus" ,dbus)
+       ("gcr" ,gcr)
        ("json-glib" ,json-glib)
+       ("krb5" ,mit-krb5)
        ("libsecret" ,libsecret)
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)
        ("rest" ,rest)
        ("webkitgtk" ,webkitgtk)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gtk+" ,gtk+)))
     (synopsis "Single sign-on framework for GNOME")
+    (description "GNOME Online Accounts aims to provide a way for users to setup
+online accounts to be used by the core system and core applications only.
+Calendar entries show up in GNOME Shell, e-mail in Evolution, online storages
+are exposed as GVolumes, and so on.")
     (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
-    (description
-     "GNOME Online Accounts provides interfaces so that applications and
-libraries in GNOME can access the user's online accounts.  It has providers for
-Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
-Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
     (license license:lgpl2.0+)))
 
 (define-public evolution-data-server
-- 
2.27.0


[-- Attachment #1.1.22: 0021-gnu-gfbgraph-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4273 bytes --]

From 5924b45ed5169f86f7442f3a004d5518ae3f7a4b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 03:09:43 -0400
Subject: [PATCH 21/36] gnu: gfbgraph: Update package definition.

* gnu/packages/gnome.scm (gfbgraph) [version]: Update to 0.2.4.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--enable-introspection]: Remove flag.
[--enable-gtk-doc]: New flag.
[--with-html-dir]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add autoconf, automake, docbook-xml, gettext-minimal,
gtk-doc and which.
[inputs]: Move gnome-online-accounts, json-glib and rest to ...
[propagated-inputs]: ... here. Add glib and libsoup.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 67 ++++++++++++++++++++++++++++--------------
 1 file changed, 45 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 7bb63516e8..83ce16d320 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9918,33 +9918,56 @@ which generates C code when compiled.")
 (define-public gfbgraph
   (package
     (name "gfbgraph")
-    (version "0.2.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnome/sources/gfbgraph/"
-                    (version-major+minor version) "/"
-                    "gfbgraph-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
+    (version "0.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://gnome/sources/gfbgraph/"
+         (version-major+minor version) "/"
+         "gfbgraph-" version ".tar.xz"))
+       (sha256
+        (base32 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f ; Tests appear to require the network.
-       ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
-       #:configure-flags '("--disable-gtk-doc"
-                           "--disable-static"
-                           "--enable-introspection")))
+     `(#:tests? #f                      ; Tests require networking
+       #:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "gfbgraph-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)))
-    (inputs
-     `(("json-glib" ,json-glib)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)))
+    (propagated-inputs
+     `(("glib" ,glib)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+       ("json-glib" ,json-glib)
+       ("libsoup" ,libsoup)
        ("rest" ,rest)))
-    (synopsis "GLib/GObject wrapper for the Facebook API")
-    (description "This library allows you to use the Facebook API from
-GLib/GObject code.")
+    (synopsis "GObject library for Facebook Graph API")
+    (description "GFBGraph is a GLib/GObject wrapper for the Facebook API.")
     (home-page "https://wiki.gnome.org/Projects/GFBGraph")
     (license license:lgpl2.1+)))
 
-- 
2.27.0


[-- Attachment #1.1.23: 0022-gnu-gnome-online-miners-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3001 bytes --]

From 38457adc7c53b1ba5795984a689d50d17a0bde4e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 00:57:05 -0400
Subject: [PATCH 22/36] gnu: gnome-online-miners: Update package definition.

* gnu/packages/gnome.scm (gnome-online-miners): Update package
definition.
[arguments]<#:configure-flags>[--disable-static]: New flag.
[inputs]: Add glib and glib-networking. Remove gnome-online-accounts
and rest.
---
 gnu/packages/gnome.scm | 37 ++++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 83ce16d320..f2de50ebfb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -942,34 +942,37 @@ in the GNOME desktop.")
   (package
     (name "gnome-online-miners")
     (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
-                "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
     (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static")))
     (native-inputs
      `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gnome-online-accounts" ,gnome-online-accounts)
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("grilo" ,grilo)
        ("libgdata" ,libgdata)
        ("libgfbgraph" ,gfbgraph)
-       ("libzapojit" ,libzapojit)
-       ("rest" ,rest)
-       ("tracker" ,tracker)))
+       ("tracker" ,tracker)
+       ("zapojit" ,libzapojit)))
     (synopsis "Web Crawlers for GNOME")
-    (description "GNOME Online Miners provides a set of crawlers that
-go through your online content and index them locally in Tracker.
-It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
+    (description "GNOME Online Miners provides a set of crawlers that go through
+your online content and index them locally in Tracker.  It has miners for
+Facebook, Flickr, Google, ownCloud and SkyDrive.")
     (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
     (license license:gpl2+)))
 
-- 
2.27.0


[-- Attachment #1.1.24: 0023-gnu-gnome-video-effects-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2812 bytes --]

From eda77a67cf1120488ef8a448ea5aadf7b4b584fa Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 04:02:34 -0400
Subject: [PATCH 23/36] gnu: gnome-video-effects: Update package definition.

* gnu/packages/gnome.scm (gnome-video-effects) [version]: Update to
0.5.0.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from glib-or-gtk to meson.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Remove glib:bin. Add perl and perl-xml-parser.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f2de50ebfb..37baa28cc4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10546,28 +10546,29 @@ automatically and it can stream songs from online music services and charts.")
 (define-public gnome-video-effects
   (package
     (name "gnome-video-effects")
-    (version "0.4.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/" name "-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
-    (build-system glib-or-gtk-build-system)
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/" name "-"
+                       version ".tar.xz"))
+       (sha256
+        (base32 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
+    (build-system meson-build-system)
     (arguments
-     `(#:out-of-source? #f))
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("glib:bin" ,glib "bin")
+     `(("gettext" ,gettext-minimal)
        ("intltool" ,intltool)
-       ("gettext" ,gettext-minimal)
+       ("perl" ,perl)
+       ("perl-xml-parser" ,perl-xml-parser)
        ("pkg-config" ,pkg-config)))
+    (synopsis "GNOME Video Effects")
+    (description "GNOME-Video-Effects is a collection of GStreamer effects to be
+used in different GNOME Modules.")
     (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
-    (synopsis "Video effects for Cheese and other GNOME applications")
-    (description
-     "A collection of GStreamer video filters and effects to be used in
-photo-booth-like software, such as Cheese.")
     (license license:gpl2+)))
 
 (define-public cheese
-- 
2.27.0


[-- Attachment #1.1.25: 0024-gnu-gjs-Disable-tests.patch --]
[-- Type: text/x-patch, Size: 2019 bytes --]

From b6659ff9c17d3840ff5b9528f760fec4c87f0a58 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 07:12:40 -0400
Subject: [PATCH 24/36] gnu: gjs: Disable tests.

* gnu/packages/gnome.scm (gjs): Disable tests.
[arguments]<#:tests?>: New argument.
<#:phases>['pre-check]: Remove phase.
---
 gnu/packages/gnome.scm | 24 +++---------------------
 1 file changed, 3 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 37baa28cc4..d6ae4a01dc 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7111,30 +7111,12 @@ configuration program to choose applications starting on login.")
         (base32 "10gkmxbhwpnq27db0gkn25b0gw28n05msjkzwjg3sdhpdisfpcvz"))))
     (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:configure-flags
+     '(#:tests? #f                 ; XXX: Most tests throws exception.
+       #: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 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)))))
+        "--enable-ubsan")))
     (native-inputs
      `(("dbus-launch" ,dbus)
        ("dconf" ,dconf)
-- 
2.27.0


[-- Attachment #1.1.26: 0025-gnu-gom-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4570 bytes --]

From c5b988c1b05f98cd7897d8ddffa0eb52206d4c87 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 05:49:15 -0400
Subject: [PATCH 25/36] gnu: gom: Update package definition.

* gnu/packages/gnome.scm (gom) [version]: Update to 0.4.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from glib-or-gtk to meson.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Denable-gtk-doc]: New flag.
[-Dpygobject-override-dir=]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gjs and gtk-doc.
[inputs]: Change gdk-pixbuf to gdk-pixbuf+svg.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 67 ++++++++++++++++++++++++++++++------------
 1 file changed, 49 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d6ae4a01dc..2be750e86f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5835,33 +5835,64 @@ such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
 (define-public gom
   (package
     (name "gom")
-    (version "0.3.2")
+    (version "0.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/gom/"
-                           (version-major+minor version) "/"
-                           "gom-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/gom/"
+                       (version-major+minor version) "/"
+                       "gom-" version ".tar.xz"))
        (sha256
-        (base32
-         "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
-    (build-system gnu-build-system)
+        (base32 "17ca07hpg7dqxjn0jpqim3xqcmplk2a87wbwrrlq3dd3m8381l38"))))
+    (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"
+        (string-append "-Dpygobject-override-dir="
+                       (assoc-ref %outputs "out")
+                       "/lib/python"
+                       ,(version-major+minor
+                         (package-version python))
+                       "/site-packages/gi/overrides"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "gom-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)))
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("gjs" ,gjs)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("glib" ,glib)
-       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("sqlite" ,sqlite)))
-    ;; XXX TODO: Figure out how to run the test suite.
-    (arguments `(#:tests? #f))
+    (synopsis "GObject Data Mapper")
+    (description "Gom provides an object mapper from GObjects to SQLite.  It
+helps you write applications that need to store structured data as well as make
+complex queries upon that data.")
     (home-page "https://wiki.gnome.org/Projects/Gom")
-    (synopsis "Object mapper from GObjects to SQLite")
-    (description
-     "Gom provides an object mapper from GObjects to SQLite.  It helps you
-write applications that need to store structured data as well as make complex
-queries upon that data.")
     (license license:lgpl2.1+)))
 
 (define-public libgnome-games-support
-- 
2.27.0


[-- Attachment #1.1.27: 0026-gnu-grilo-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5074 bytes --]

From 2af3819e659c70c29385890f4fc5313c95653a89 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 06:38:42 -0400
Subject: [PATCH 26/36] gnu: grilo: Update package definition.

* gnu/packages/gnome.scm (grilo) [version]: Update to 0.3.12.
[source]<origin>[sha256]: Modify base32.
[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 and python-wrapper.
[inputs]: Remove cyrus-sasl. Move glib and libxml2 to ...
[propagated-inputs]: ... here. Add glib-networking.
[search-paths]: New field.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 78 +++++++++++++++++++++++++++++-------------
 1 file changed, 55 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 2be750e86f..e8b58bd161 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5978,42 +5978,74 @@ as possible!")
 (define-public grilo
   (package
     (name "grilo")
-    (version "0.3.10")
+    (version "0.3.12")
     (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
-         "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
+        (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv"))))
     (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 "doc/grilo"
+               (substitute* '("environment-setup.xml"
+                              "grilo-docs.sgml" "overview.xml"
+                              "plugins-sources.xml" "plugins-testing.xml"
+                              "quick-start.xml" "writing-apps.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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
-     `(("glib:bin" ,glib "bin")         ; for glib-mkenums and glib-genmarshal
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
-       ("vala" ,vala)))
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("vapigen" ,vala)))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)
+     `(("gtk+" ,gtk+)
        ("liboauth" ,liboauth)
        ("libsoup" ,libsoup)
        ("totem-pl-parser" ,totem-pl-parser)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("libxml2" ,libxml2)))
     (native-search-paths
-     (list (search-path-specification
-            (variable "GRL_PLUGIN_PATH")
-            (files (list (string-append "lib/grilo-"
-                                        (version-major+minor version)))))))
-    (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
-    (synopsis "Framework for discovering and browsing media")
-    (description
-     "Grilo is a framework focused on making media discovery and browsing easy
-for application developers.")
+     (list
+      (search-path-specification
+       (variable "GRL_PLUGIN_PATH")
+       (files
+        (list
+         (string-append "lib/grilo-"
+                        (version-major+minor version)))))))
+    ;; To load grilo-plugins.
+    (search-paths native-search-paths)
+    (synopsis "Media Framework for GNOME")
+    (description "Grilo is a framework for browsing and searching media content
+from various sources using a single API.")
+    (home-page "https://wiki.gnome.org/Projects/Grilo")
     (license license:lgpl2.1+)))
 
 (define-public grilo-plugins
-- 
2.27.0


[-- Attachment #1.1.28: 0027-gnu-Add-pedansee.patch --]
[-- Type: text/x-patch, Size: 2033 bytes --]

From b9576949759167e8803797fd24e5d04fd11ea78a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 08:03:26 -0400
Subject: [PATCH 27/36] gnu: Add pedansee.

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

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 85a24dac19..0cafd9137a 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -75,12 +75,40 @@
   #:use-module (guix download)
   #:use-module (guix git-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 go)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial))
 
+(define-public pedansee
+  (package
+    (name "pedansee")
+    (version "0.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.flyn.org/projects/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0lsg791x6n95pxg6vif8qfc46nqcamhjq3g0dl5xqf6imy7n3acd"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("clang" ,clang)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("glib" ,glib)))
+    (synopsis "Code checker for C")
+    (description "Pedansee checks C source files for compliance with a particular
+programming style.  The style is currently defined by the pedansee source code
+in the form of functions which walk each source file’s syntax tree.  You can
+modify some aspects of this style through the use of regular expressions.")
+    (home-page "https://www.flyn.org/projects/pedansee/")
+    (license license:gpl3+)))
+
 (define-public mutest
   (package
     (name "mutest")
-- 
2.27.0


[-- Attachment #1.1.29: 0028-gnu-Add-libdmapsharing.patch --]
[-- Type: text/x-patch, Size: 2993 bytes --]

From cad317f3b6eaeefde3b760b32e161bc46489012d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 08:55:56 -0400
Subject: [PATCH 28/36] gnu: Add libdmapsharing.

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

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e8b58bd161..b35eb2e09f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -267,6 +267,63 @@ 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 libdmapsharing
+  (package
+    (name "libdmapsharing")
+    (version "3.9.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.flyn.org/projects/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:tests? #f                      ; Tests require networking.
+       #:configure-flags
+       (list
+        "--disable-static"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "libdmapsharing-4.0-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
+    (native-inputs
+     `(("check" ,check)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gobject-introspection" ,gobject-introspection)
+       ("pedansee" ,pedansee)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (inputs
+     `(("avahi" ,avahi)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gee" ,libgee)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gtk+" ,gtk+)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gstreamer" ,gstreamer)
+       ("libsoup" ,libsoup)))
+    (synopsis "Media management library")
+    (description "Libdmapsharing is a library which allows programs to access,
+share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
+It is written in C using GObject and libsoup.")
+    (home-page "https://launchpad.net/gtx")
+    (license license:lgpl2.1+)))
+
 (define-public gtx
   (package
     (name "gtx")
-- 
2.27.0


[-- Attachment #1.1.30: 0029-gnu-gssdp-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4527 bytes --]

From dcdaccce335f7ff71b3deb89ea20690d3f7efbbb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 09:33:48 -0400
Subject: [PATCH 29/36] gnu: gssdp: Update package definition.

* gnu/packages/gnome.scm (gssdp) [version]: Update to 1.2.3.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dgtk_doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml.
[inputs]: Remove libsoup.
[propagated-inputs]: Add glib, glib-networking and libsoup.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 84 ++++++++++++++++++++++++++++--------------
 1 file changed, 56 insertions(+), 28 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b35eb2e09f..67c7b4abd1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1035,34 +1035,62 @@ Facebook, Flickr, Google, ownCloud and SkyDrive.")
 
 (define-public gssdp
   (package
-   (name "gssdp")
-   (version "1.2.2")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
-   (build-system meson-build-system)
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk-doc" ,gtk-doc)
-      ("pkg-config" ,pkg-config)
-      ("vala" ,vala)))
-   (inputs
-    `(("gtk+" ,gtk+)
-      ("libsoup" ,libsoup)))
-   (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
-Protocol} for GNOME")
-   (description "This package provides a library to handle resource discovery
-and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
-a debugging tool, @command{gssdp-device-sniffer}.")
-   (home-page "https://gitlab.gnome.org/GNOME/gssdp")
-   (license license:lgpl2.0+)))
+    (name "gssdp")
+    (version "1.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
+    (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=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "gssdp-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
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("libsoup" ,libsoup)))
+    (synopsis "SSDP API for GNOME")
+    (description "GSSDP is a GObject-based API for handling resource discovery
+and announcement over SSDP.")
+    (home-page "https://gitlab.gnome.org/GNOME/gssdp")
+    (license license:lgpl2.0+)))
 
 (define-public gupnp
   (package
-- 
2.27.0


[-- Attachment #1.1.31: 0030-gnu-gupnp-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5385 bytes --]

From 157b87e82a8f5ed8bda0eb8e05e98c4ac6939b6f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 09:53:15 -0400
Subject: [PATCH 30/36] gnu: gupnp: Update package definition.

* gnu/packages/gnome.scm (gupnp) [version]: Update to 1.2.3.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dgtk_doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl, gjs,
gsettings-desktop-schemas and libxslt.
[inputs]: Move gssdp and libsoup to ...
[propagated-inputs]: ... here. Add glib, glib-networking and libxml2.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 99 ++++++++++++++++++++++++++++++------------
 1 file changed, 71 insertions(+), 28 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 67c7b4abd1..758afdd630 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1094,34 +1094,77 @@ and announcement over SSDP.")
 
 (define-public gupnp
   (package
-   (name "gupnp")
-   (version "1.2.2")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
-   (build-system meson-build-system)
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk-doc" ,gtk-doc)
-      ("pkg-config" ,pkg-config)
-      ("vala" ,vala)))
-   (inputs
-    `(("gssdp" ,gssdp)
-      ("gtk+" ,gtk+)
-      ("libsoup" ,libsoup)))
-   (synopsis "PnP API for GNOME")
-   (description "This package provides GUPnP, an object-oriented framework
-for creating UPnP devices and control points, written in C using
-@code{GObject} and @code{libsoup}.")
-   (home-page "https://gitlab.gnome.org/GNOME/gupnp")
-   (license license:lgpl2.0+)))
+    (name "gupnp")
+    (version "1.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1c99ingf8cvfvyawxqn7dwb233i0x5q60xni9awgma74i16yaiyl"))))
+    (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=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* '("client-tutorial.xml" "glossary.xml"
+                              "overview.xml" "server-tutorial.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.4/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.4")
+                                 "/xml/dtd/docbook/")))
+               (substitute* '("gupnp-binding-tool.xml" "gupnp-docs.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))
+         (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-4.1.2" ,docbook-xml-4.1.2)
+       ("docbook-xml-4.4" ,docbook-xml-4.4)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gettext" ,gettext-minimal)
+       ("gjs" ,gjs)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gssdp" ,gssdp)
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)))
+    (synopsis "UPnP API for GNOME")
+    (description "GUPnP is an elegant, object-oriented framework for creating
+UPnP devices and control points, written in C using GObject and libsoup.  The
+GUPnP API is intended to be easy to use, efficient and flexible.  It provides
+the same set of features as libupnp, but shields the developer from most of
+UPnP's internals.")
+    (home-page "https://wiki.gnome.org/Projects/GUPnP")
+    (license license:lgpl2.0+)))
 
 (define-public gupnp-dlna
   (package
-- 
2.27.0


[-- Attachment #1.1.32: 0031-gnu-gupnp-av-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3955 bytes --]

From 493edd0a14c7a004b024d66d955b8065e0c7ba5e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 10:19:20 -0400
Subject: [PATCH 31/36] gnu: gupnp-av: Update package definition.

* gnu/packages/gnome.scm (gupnp-av): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-gtk-doc]: New flag.
[--with-html-dir=]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml and vala. Remove libxml2.
[inputs]: Add libxml2.
[description]: Modify.
---
 gnu/packages/gnome.scm | 73 +++++++++++++++++++++++++++---------------
 1 file changed, 47 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 758afdd630..5e0c825e61 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1202,32 +1202,53 @@ given profile, etc.  DLNA is a subset of UPnP A/V.")
 
 (define-public gupnp-av
   (package
-   (name "gupnp-av")
-   (version "0.12.11")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
-   (build-system gnu-build-system)
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk-doc" ,gtk-doc)
-      ("libxml" ,libxml2)
-      ("pkg-config" ,pkg-config)))
-   (inputs
-    `(("gtk+" ,gtk+)
-      ("gupnp" ,gupnp)))
-   (synopsis "GUPnP A/V for GNOME")
-   (description "This package provides a small library for handling
-and implementation of UPnP A/V profiles.")
-   (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
-   (license license:lgpl2.0+)))
+    (name "gupnp-av")
+    (version "0.12.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "gupnp-av-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
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("gupnp" ,gupnp)
+       ("libxml2" ,libxml2)))
+    (synopsis "GUPnP A/V for GNOME")
+    (description "GUPnP-AV is a small utility library that aims to ease the
+handling and implementation of UPnP A/V profiles.")
+    (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
+    (license license:lgpl2.0+)))
 
 (define-public libmediaart
   (package
-- 
2.27.0


[-- Attachment #1.1.33: 0032-gnu-grilo-plugins-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4482 bytes --]

From b70d1b570dbf307db0019eea2d268a72a3adc470 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 11:10:25 -0400
Subject: [PATCH 32/36] gnu: grilo-plugins: Update package definition.

* gnu/packages/gnome.scm (grilo-plugins) [version]: Update to 0.3.11.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['disable-failing-tests]: New phase.
[native-inputs]: Add gobject-introspection, lua and python-wrapper.
[inputs]: Add glib, glib-networking, gmime, gperf, gssdp, gstreamer,
gupnp, gupnp-av, libarchive, libdmapsharing, librest, libxml2, liboauth
and sqlite.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 67 ++++++++++++++++++++++++++----------------
 1 file changed, 41 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5e0c825e61..c0022a695e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6200,50 +6200,65 @@ from various sources using a single API.")
 (define-public grilo-plugins
   (package
     (name "grilo-plugins")
-    (version "0.3.10")
+    (version "0.3.11")
     (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
-         "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
+        (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx"))))
     (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 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/meson.build"
+               (("'chromaprint',")
+                ""))
+             #t)))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("gtk+:bin" ,gtk+ "bin")
        ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
-    ;; TODO: ahavi, gstreamer
+       ("lua" ,lua)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
     (inputs
-     `(("grilo" ,grilo)
-       ;("gmime" ,gmime) ; unused
+     `(("avahi" ,avahi)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gmime" ,gmime)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("gom" ,gom)
-       ;("gssdp" ,gssdp) ; unused
-       ;("gupnp" ,gupnp) ; unused
-       ;("gupnp-av" ,gupnp-av) ; unused
+       ("gperf" ,gperf)
+       ("grilo" ,grilo)
+       ("gssdp" ,gssdp)
+       ("gstreamer" ,gstreamer)
+       ("gupnp" ,gupnp)
+       ("gupnp-av" ,gupnp-av)
        ("json-glib" ,json-glib)
-       ("avahi" ,avahi)
+       ("libarchive" ,libarchive)
+       ("libdmapsharing" ,libdmapsharing)
        ("libgdata" ,libgdata)
        ("libmediaart" ,libmediaart)
-       ;("librest" ,rest) ; unused
+       ("librest" ,rest)
        ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)
+       ("oauth" ,liboauth)
+       ("sqlite" ,sqlite)
        ("totam-pl-parser" ,totem-pl-parser)
-       ("tracker" ,tracker))) ; unused because it's too old
-    (arguments
-     `(#:glib-or-gtk? #t
-       ;;Disable lua-factory as it needs missing dependencies
-       #:configure-flags '("-Denable-lua-factory=no")))
-    (home-page "https://live.gnome.org/Grilo")
-    (synopsis "Plugins for the Grilo media discovery library")
-    (description
-     "Grilo is a framework focused on making media discovery and browsing easy
-for application developers.  This package provides plugins for common media
-discovery protocols.")
+       ("tracker" ,tracker)))
+    (synopsis "Plugins for Grilo")
+    (description "Grilo-Plugins is a collection of plugins for Grilo implementing
+Grilo's API for various multimedia content providers.")
+    (home-page "https://wiki.gnome.org/Projects/Grilo")
     (license license:lgpl2.1+)))
 
 (define-public totem
-- 
2.27.0


[-- Attachment #1.1.34: 0033-gnu-gupnp-dlna-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4707 bytes --]

From 1bbadcc904f28c4761d49118b33bf287d547dd19 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 11:38:57 -0400
Subject: [PATCH 33/36] gnu: gupnp-dlna: Update package definition.

* gnu/packages/gnome.scm (gupnp-dlna): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-gtk-doc]: New flag.
[--with-html-dir=]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml. Remove libxml2.
[inputs]: Add libxml2. Remove gstreamer.
[propagated-inputs]: Add glib, glib-networking and gstreamer. Remove
gst-plugins-good.
[description]: Modify.
---
 gnu/packages/gnome.scm | 88 +++++++++++++++++++++++++++---------------
 1 file changed, 57 insertions(+), 31 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c0022a695e..1f419c5f7d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1168,37 +1168,63 @@ UPnP's internals.")
 
 (define-public gupnp-dlna
   (package
-   (name "gupnp-dlna")
-   (version "0.10.5")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
-   (build-system gnu-build-system)
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk-doc" ,gtk-doc)
-      ("libxml" ,libxml2)
-      ("pkg-config" ,pkg-config)
-      ("vala" ,vala)))
-   (inputs
-    `(("gstreamer" ,gstreamer)
-      ("gupnp" ,gupnp)))
-   (propagated-inputs
-    `(("gst-plugins-base" ,gst-plugins-base)
-      ("gst-plugins-good" ,gst-plugins-good)))
-   (synopsis "GUPnP DLNA for GNOME")
-   (description "This package provides a small utility library to
-support DLNA-related tasks such as media profile guessing, transcoding to a
-given profile, etc.  DLNA is a subset of UPnP A/V.")
-   (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
-   (license license:lgpl2.0+)))
+    (name "gupnp-dlna")
+    (version "0.10.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute*
+                   '("gupnp-dlna-gst/gupnp-dlna-gst-docs.sgml"
+                     "gupnp-dlna-metadata/gupnp-dlna-metadata-docs.sgml"
+                     "gupnp-dlna/gupnp-dlna-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
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("libxml" ,libxml2)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (inputs
+     `(("gupnp" ,gupnp)
+       ("libxml2" ,libxml2)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (synopsis "GUPnP DLNA for GNOME")
+    (description "GUPnP-DLNA is a small utility library that aims to ease the
+DLNA-related tasks such as media profile guessing, transcoding to a given
+profile, etc.")
+    (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
+    (license license:lgpl2.0+)))
 
 (define-public gupnp-av
   (package
-- 
2.27.0


[-- Attachment #1.1.35: 0034-gnu-gsound-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3758 bytes --]

From 55e35961a5641ad6c562e5226fe437c22a0138d3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 13:10:42 -0400
Subject: [PATCH 34/36] gnu: gsound: Update package definition.

* gnu/packages/gnome.scm (gsound): Update package definition.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-gtk-doc]: New flag.
[--with-html-dir=]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml and gtk-doc.
---
 gnu/packages/gnome.scm | 50 +++++++++++++++++++++++++++++-------------
 1 file changed, 35 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 1f419c5f7d..27cb8171ca 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1208,7 +1208,6 @@ UPnP's internals.")
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
-       ("libxml" ,libxml2)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
@@ -9613,28 +9612,49 @@ specified duration and save it as a GIF encoded animated image file.")
   (package
     (name "gsound")
     (version "1.0.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "gsound-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("docbook-xml" ,docbook-xml-4.3)
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
      `(("glib" ,glib)
        ("libcanberra" ,libcanberra)))
-    (home-page "https://wiki.gnome.org/Projects/GSound")
     (synopsis "GObject wrapper for libcanberra")
-    (description
-     "GSound is a small library for playing system sounds.  It's designed to be
-used via GObject Introspection, and is a thin wrapper around the libcanberra C
-library.")
+    (description "GSound is a small library for playing system sounds.  It's
+designed to be used via GObject Introspection, and is a thin wrapper around the
+libcanberra C library.")
+    (home-page "https://wiki.gnome.org/Projects/GSound")
     (license license:lgpl2.1+)))
 
 (define-public libzapojit
-- 
2.27.0


[-- Attachment #1.1.36: 0035-gnu-gspell-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7637 bytes --]

From fc52b2744edf499d2b07cc49cc35ee27948c9e5b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 13:49:24 -0400
Subject: [PATCH 35/36] gnu: gspell: Update package definition.

* gnu/packages/gnome.scm (gspell) [version]: Update to 1.8.3.
[source]<origin>[sha256]: Modify base32.
[patches]: Remove gspell-dash-test.patch.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--enable-vala]: Remove flag.
[--enable-gtk-doc]: New flag.
[--with-html-dir=]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['disable-failing-tests]: New phase.
['pre-check]: Modify phase.
[native-inputs]: Add docbook-xml, gettext-minimal and gtk-doc.
[inputs]: Move glib and gtk+ to ...
[propagated-inputs]: ... here.
[synopsis]: Modify.
[description]: Modify.
[license]: Change from gpl2+ to lgpl2.1+.

* gnu/packages/patches/gspell-dash-test.patch: Remove file.

* gnu/local.mk (gspell-dash-test.patch): Remove reference.
---
 gnu/local.mk                                |  1 -
 gnu/packages/gnome.scm                      | 76 +++++++++++++--------
 gnu/packages/patches/gspell-dash-test.patch | 22 ------
 3 files changed, 46 insertions(+), 53 deletions(-)
 delete mode 100644 gnu/packages/patches/gspell-dash-test.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 3925fa024d..456c8310fd 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1059,7 +1059,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/grub-efi-fat-serial-number.patch		\
   %D%/packages/patches/grub-setup-root.patch			\
   %D%/packages/patches/grub-verifiers-Blocklist-fallout-cleanup.patch \
-  %D%/packages/patches/gspell-dash-test.patch			\
   %D%/packages/patches/guile-1.8-cpp-4.5.patch			\
   %D%/packages/patches/guile-2.2-skip-oom-test.patch            \
   %D%/packages/patches/guile-default-utf8.patch			\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 27cb8171ca..0a2db9545a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10626,59 +10626,75 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
 (define-public gspell
   (package
     (name "gspell")
-    (version "1.8.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
-              (patches (search-patches "gspell-dash-test.patch"))))
+    (version "1.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1s1dns070pz8dg04ppshdbx1r86n9406vkxcfs8hdghn0bfi9ras"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:configure-flags (list "--enable-vala")
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '("gspell-docs.xml.in" "intro.xml.in")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-after 'patch-docbook-xml 'disable-failing-tests
+           (lambda _
+             (substitute* "testsuite/test-checker.c"
+               (("g_test_add_func \\(\"/checker/dashes\", test_dashes\\);")
+                ""))
+             #t))
          (add-before 'check 'pre-check
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Tests require a running X server.
-             (system "Xvfb :1 &")
+             (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
-
              ;; For the missing /etc/machine-id.
              (setenv "DBUS_FATAL_WARNINGS" "0")
-
              ;; Allow Enchant and its Aspell backend to find the en_US
              ;; dictionary.
              (setenv "ASPELL_DICT_DIR"
                      (string-append (assoc-ref inputs "aspell-dict-en")
                                     "/lib/aspell"))
              #t)))))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("glib" ,glib)
-       ("iso-codes" ,iso-codes)))
     (native-inputs
-     `(("glib" ,glib "bin")
+     `(("aspell-dict-en" ,aspell-dict-en)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
-       ("vala" ,vala)                             ;for VAPI, needed by Geary
+       ("vala" ,vala)
        ("xmllint" ,libxml2)
-
-       ;; For tests.
-       ("aspell-dict-en" ,aspell-dict-en)
        ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("iso-codes" ,iso-codes)))
     (propagated-inputs
-     `(("enchant" ,enchant)))            ;enchant.pc is required by gspell-1.pc
+     `(("enchant" ,enchant)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)))
+    (synopsis "Spell-checking library for GTK+ applications")
+    (description "GSpell provides a flexible API to add spell-checking to a GTK+
+application.")
     (home-page "https://wiki.gnome.org/Projects/gspell")
-    (synopsis "GNOME's alternative spell checker")
-    (description
-     "gspell provides a flexible API to add spell-checking to a GTK+
-application.  It provides a GObject API, spell-checking to text entries and
-text views, and buttons to choose the language.")
-    (license license:gpl2+)))
+    (license license:lgpl2.1+)))
 
 (define-public gnome-planner
   (package
diff --git a/gnu/packages/patches/gspell-dash-test.patch b/gnu/packages/patches/gspell-dash-test.patch
deleted file mode 100644
index 1c9d77cfba..0000000000
--- a/gnu/packages/patches/gspell-dash-test.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Somehow, Aspell 0.60.6.1 and aspell-dict-en-2016.11.20-0 don't consider
-this a valid spelling.  Skip it.
-
-TODO: Migrate to using hunspell. According to upstream, this bug won't be fixed.
-See https://bugzilla.gnome.org/show_bug.cgi?id=772406.
---- a/testsuite/test-checker.c	2017-03-24 09:50:50.000000000 -0400
-+++ b/testsuite/test-checker.c	2017-06-15 21:47:07.116173895 -0400
-@@ -105,10 +105,11 @@
- 	 * be considered deprecated, it is better to use hunspell, so WONTFIX.
- 	 * For more details, see:
- 	 * https://bugzilla.gnome.org/show_bug.cgi?id=772406
-+	 *
-+	 * correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error);
-+	 * g_assert_no_error (error);
-+	 * g_assert (correctly_spelled);
- 	 */
--	correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error);
--	g_assert_no_error (error);
--	g_assert (correctly_spelled);
- 
- 	correctly_spelled = gspell_checker_check_word (checker, "nrst-auie", -1, &error);
- 	g_assert_no_error (error);
-- 
2.27.0


[-- Attachment #1.1.37: 0036-gnu-gtk-vnc-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4017 bytes --]

From dc979672cfb865073608aea2b443f326ceada3d1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 14:18:35 -0400
Subject: [PATCH 36/36] gnu: gtk-vnc: Update package definition.

* gnu/packages/gnome.scm (gtk-vnc) [version]: Update to 1.0.0.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to meson.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add gjs, node and perl.
[inputs]: Add cairo, gdk-pixbuf+svg, libx11 and zlib.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 54 ++++++++++++++++++++++++------------------
 1 file changed, 31 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0a2db9545a..4b5e908fef 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -143,6 +143,7 @@
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages package-management)
@@ -8910,40 +8911,47 @@ like switching to windows and launching applications.")
 (define-public gtk-vnc
   (package
     (name "gtk-vnc")
-    (version "0.9.0")
+    (version "1.0.0")
     (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
-         "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
-    (build-system gnu-build-system)
+        (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("--with-gtk=3.0")))
-    (propagated-inputs
-     `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
-    (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("gnutls" ,gnutls)
-       ("libgcrypt" ,libgcrypt)
-       ("pulseaudio" ,pulseaudio)))
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("glib:bin" ,glib "bin")
+     `(("gjs" ,gjs)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
+       ("node" node)
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)
+       ("python" ,python-wrapper)
        ("vala" ,vala)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("gnutls" ,gnutls)
+       ("libgcrypt" ,libgcrypt)
+       ("libsasl" ,cyrus-sasl)
+       ("pulseaudio" ,pulseaudio)
+       ("x11" ,libx11)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)))
+    (synopsis "VNC client viewer widget for GTK+")
+    (description "GTK-VNC is a project providing client side APIs for the RFB
+protocol / VNC remote desktop technology.  It is built using coroutines allowing
+it to be completely asynchronous while remaining single threaded.  It provides a
+core C library, and bindings for Python (PyGTK).")
     (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
-    (synopsis "VNC viewer widget for GTK+")
-    (description
-     "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
-applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
-GTK-VNC implements client side RFB protocol and authentication extensions such
-as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
     (license license:lgpl2.1+)))
 
 (define-public gnome-autoar
-- 
2.27.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-24 18:29                                       ` Raghav Gururajan
@ 2020-07-25  8:15                                         ` Raghav Gururajan
  2020-07-25  8:18                                           ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-25  8:15 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

In my previous patch-set, there has been some changes. Please use these
new patches for mmm, mrg, gegl and gtk-vnc.

Regards,
RG.

[-- Attachment #1.1.2: 0009-gnu-Add-mmm.patch --]
[-- Type: text/x-patch, Size: 2193 bytes --]

From b5eb77e44098811bf0ddb4e6f788c029cbd9ef16 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 20 Jul 2020 11:00:41 -0400
Subject: [PATCH 09/36] gnu: Add mmm.

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

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 9648050fa0..3a943461cc 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
@@ -92,6 +93,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -100,6 +102,35 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public mmm
+  (package
+    (name "mmm")
+    (version "0.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hodefoting/mmm.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "1xmcv6rwinqsbr863rgl9005h2jlmd7k2qrwsc1h4fb8r61ykpjl"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("luajit" ,luajit)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("sdl" ,sdl)
+       ("sdl2" ,sdl2)))
+    (synopsis "Memory Mapped Machine")
+    (description "MMM is a shared memory protocol for virtualising access to
+framebuffer graphics, audio output and input event.")
+    (home-page "https://github.com/hodefoting/mrg")
+    (license license:isc)))
+
 (define-public directfb
   (package
     (name "directfb")
-- 
2.27.0


[-- Attachment #1.1.3: 0010-gnu-Add-mrg.patch --]
[-- Type: text/x-patch, Size: 2347 bytes --]

From f273561d09f6a996730ffe70f3cf0244013a7c74 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 20 Jul 2020 12:21:09 -0400
Subject: [PATCH 10/36] gnu: Add mrg.

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

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index a6fa30ad87..417def1987 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -40,10 +40,14 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages image)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages patchutils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages python)
@@ -127,6 +131,39 @@
     (home-page "https://code.google.com/archive/p/poly2tri-c/")
     (license license:bsd-3)))
 
+(define-public mrg
+  (package
+    (name "mrg")
+    (version "0.1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hodefoting/mrg.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "106qhh0c11576cc5kh90ds0ram72d3r6n9sadw0y4krnhap6dvwk"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("alsa" ,alsa-lib)
+       ("cairo" ,cairo)
+       ("gtk+" ,gtk+)
+       ("mmm" ,mmm)
+       ("x11" ,libx11)))
+    (synopsis "Microraptor GUI")
+    (description "MrG is is a C API for creating user interfaces.  It can be
+used as an application writing environment or as an interactive canvas for part
+of a larger interface.")
+    (home-page "https://github.com/hodefoting/mrg")
+    (license license:lgpl2.0+)))
+
 (define-public babl
   (package
     (name "babl")
-- 
2.27.0


[-- Attachment #1.1.4: 0011-gnu-gegl-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7870 bytes --]

From 34496cc5a0046a28707169e469f3e121f3b35e64 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 21 Jul 2020 03:45:21 -0400
Subject: [PATCH 11/36] gnu: gegl: Update package definition.

* gnu/packages/gimp.scm (gegl): Update package definition.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dintrospection]: Remove flag.
[-Ddocs]: New flag.
[-Dworkshop]: New flag.
[-Dsdl1]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add asciidoc, docbook-xml, docbook-xsl, enscript,
gobject-introspection, gtk-doc, perl, python-pygobject, python-wrapper,
ruby and vala.
[inputs]: Add exiv2, gdk-pixbuf+svg, gexiv2, jasper, lcms, lensfun, ffmpeg,
libnsgif, libraw, librsvg, libspiro, libtiff, lua, luajit, mrg, openexr, poly2tri-c,
poppler, sdl, sdl2, suitesparse, v4l-utils and libwebp.
[synopsis]: Modify.
[description]: Modify.
[license]: Remove gpl3+.
---
 gnu/packages/gimp.scm | 130 +++++++++++++++++++++++++++++++-----------
 1 file changed, 98 insertions(+), 32 deletions(-)

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 417def1987..6818cfcf7f 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -35,8 +35,10 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
@@ -45,13 +47,19 @@
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages patchutils)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages w3m)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xorg))
@@ -209,46 +217,104 @@ specific code paths.")
   (package
     (name "gegl")
     (version "0.4.24")
-    (source (origin
-              (method url-fetch)
-              (uri (list (string-append "https://download.gimp.org/pub/gegl/"
-                                        (string-take version 3)
-                                        "/gegl-" version ".tar.xz")
-                         (string-append "https://ftp.gtk.org/pub/gegl/"
-                                        (version-major+minor version)
-                                        "/gegl-" version ".tar.xz")
-                         (string-append "ftp://ftp.gtk.org/pub/gegl/"
-                                        (version-major+minor version)
-                                        "/gegl-" version ".tar.xz")))
-              (sha256
-               (base32
-                "0ji57s7cba94vzy49agn7x47ca61rccm6rif0cb0s6rl4ygljrbp"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (list
+         (string-append "https://download.gimp.org/pub/gegl/"
+                        (string-take version 3)
+                        "/gegl-" version ".tar.xz")
+         (string-append "https://ftp.gtk.org/pub/gegl/"
+                        (version-major+minor version)
+                        "/gegl-" version ".tar.xz")
+         (string-append "ftp://ftp.gtk.org/pub/gegl/"
+                        (version-major+minor version)
+                        "/gegl-" version ".tar.xz")))
+       (sha256
+        (base32 "0ji57s7cba94vzy49agn7x47ca61rccm6rif0cb0s6rl4ygljrbp"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:configure-flags
-       (list "-Dintrospection=false")))
-    ;; These are propagated to satisfy 'gegl-0.4.pc'.
+       (list
+        "-Ddocs=true"
+        "-Dworkshop=true"
+        "-Dsdl1=auto")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "gegl-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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
+     `(("asciidoc" ,asciidoc)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("enscript" ,enscript)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("pygobject" ,python-pygobject)
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)
+       ("vapigen" ,vala)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("exiv2" ,exiv2)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gexiv2" ,gexiv2)
+       ("jasper" ,jasper)
+       ("lcms" ,lcms)
+       ("lensfun" ,lensfun)
+       ("libav" ,ffmpeg)
+       ("libnsgif" ,libnsgif)
+       ("libpng" ,libpng)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libraw" ,libraw)
+       ("librsvg" ,librsvg)
+       ("libspiro" ,libspiro)
+       ("libtiff" ,libtiff)
+       ("lua" ,lua)
+       ("luajit" ,luajit)
+       ("mrg" ,mrg)
+       ("openexr" ,openexr)
+       ("pango" ,pango)
+       ;; To be enabled after upstream fixes the bug,
+       ;; https://gitlab.gnome.org/GNOME/gegl/-/issues/258
+       ;; ("poly2tri-c" ,poly2tri-c)
+       ("poppler" ,poppler)
+       ("sdl1" ,sdl)
+       ("sdl2" ,sdl2)
+       ("umfpack" ,suitesparse)
+       ("v4l" ,v4l-utils)
+       ("webp" ,libwebp)))
     (propagated-inputs
      `(("babl" ,babl)
        ("glib" ,glib)
        ("json-glib" ,json-glib)))
-    (inputs
-     `(("cairo" ,cairo)
-       ("pango" ,pango)
-       ("libpng" ,libpng)
-       ("libjpeg" ,libjpeg-turbo)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")             ; for gtester
-       ("intltool" ,intltool)))
+    (synopsis "Generic Graphics Library")
+    (description "GEGL is a data flow based image processing framework,
+providing floating point processing and non-destructive image processing
+capabilities to GNU Image Manipulation Program and other projects.")
     (home-page "http://gegl.org")
-    (synopsis "Graph based image processing framework")
-    (description "GEGL (Generic Graphics Library) provides infrastructure to
-do demand based cached non destructive image editing on larger than RAM
-buffers.")
-    ;; The library itself is licensed under LGPL while the sample commandline
-    ;; application and GUI binary gegl is licensed under GPL.
-    (license (list license:lgpl3+ license:gpl3+))))
+    (license license:lgpl3+)))
 
 (define-public gimp
   (package
-- 
2.27.0


[-- Attachment #1.1.5: 0036-gnu-gtk-vnc-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4018 bytes --]

From 4747df3231924e3e91ee6360e9c32fc5de31c7ed Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 24 Jul 2020 14:18:35 -0400
Subject: [PATCH 36/36] gnu: gtk-vnc: Update package definition.

* gnu/packages/gnome.scm (gtk-vnc) [version]: Update to 1.0.0.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to meson.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add gjs, node and perl.
[inputs]: Add cairo, gdk-pixbuf+svg, libx11 and zlib.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 54 ++++++++++++++++++++++++------------------
 1 file changed, 31 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0a2db9545a..1c241daf7b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -143,6 +143,7 @@
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages package-management)
@@ -8910,40 +8911,47 @@ like switching to windows and launching applications.")
 (define-public gtk-vnc
   (package
     (name "gtk-vnc")
-    (version "0.9.0")
+    (version "1.0.0")
     (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
-         "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
-    (build-system gnu-build-system)
+        (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("--with-gtk=3.0")))
-    (propagated-inputs
-     `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
-    (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("gnutls" ,gnutls)
-       ("libgcrypt" ,libgcrypt)
-       ("pulseaudio" ,pulseaudio)))
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("glib:bin" ,glib "bin")
+     `(("gjs" ,gjs)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
+       ("node" ,node)
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)
+       ("python" ,python-wrapper)
        ("vala" ,vala)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("gnutls" ,gnutls)
+       ("libgcrypt" ,libgcrypt)
+       ("libsasl" ,cyrus-sasl)
+       ("pulseaudio" ,pulseaudio)
+       ("x11" ,libx11)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)))
+    (synopsis "VNC client viewer widget for GTK+")
+    (description "GTK-VNC is a project providing client side APIs for the RFB
+protocol / VNC remote desktop technology.  It is built using coroutines allowing
+it to be completely asynchronous while remaining single threaded.  It provides a
+core C library, and bindings for Python (PyGTK).")
     (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
-    (synopsis "VNC viewer widget for GTK+")
-    (description
-     "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
-applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
-GTK-VNC implements client side RFB protocol and authentication extensions such
-as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
     (license license:lgpl2.1+)))
 
 (define-public gnome-autoar
-- 
2.27.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-25  8:15                                         ` Raghav Gururajan
@ 2020-07-25  8:18                                           ` Raghav Gururajan
  2020-07-25  8:24                                             ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-25  8:18 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

> In my previous patch-set, there has been some changes. Please use these
> new patches for mmm, mrg, gegl and gtk-vnc.

Please disregard the new patch for gegl.

Regards,
RG.


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-25  8:18                                           ` Raghav Gururajan
@ 2020-07-25  8:24                                             ` Raghav Gururajan
  2020-07-25  9:12                                               ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-25  8:24 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

>> In my previous patch-set, there has been some changes. Please use these
>> new patches for mmm, mrg, gegl and gtk-vnc.
> 
> Please disregard the new patch for gegl.

Sorry! Please also disregard the new patch for mrg. Only use new patches
of mmm and gtk-vnc.

Regards,
RG.



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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-25  8:24                                             ` Raghav Gururajan
@ 2020-07-25  9:12                                               ` Raghav Gururajan
  2020-07-27 16:11                                                 ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-25  9:12 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

>>> In my previous patch-set, there has been some changes. Please use these
>>> new patches for mmm, mrg, gegl and gtk-vnc.
>>
>> Please disregard the new patch for gegl.
> 
> Sorry! Please also disregard the new patch for mrg. Only use new patches
> of mmm and gtk-vnc.

Here are the revised patches for mrg and gegl.

Regards,
RG.


[-- Attachment #1.1.2: 0010-gnu-Add-mrg.patch --]
[-- Type: text/x-patch, Size: 2347 bytes --]

From 74a360d78e35a798ff489543b30ab3e39a26a3db Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 20 Jul 2020 12:21:09 -0400
Subject: [PATCH 10/36] gnu: Add mrg.

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

diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index a6fa30ad87..417def1987 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -40,10 +40,14 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages image)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages patchutils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages python)
@@ -127,6 +131,39 @@
     (home-page "https://code.google.com/archive/p/poly2tri-c/")
     (license license:bsd-3)))
 
+(define-public mrg
+  (package
+    (name "mrg")
+    (version "0.1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hodefoting/mrg.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "106qhh0c11576cc5kh90ds0ram72d3r6n9sadw0y4krnhap6dvwk"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("alsa" ,alsa-lib)
+       ("cairo" ,cairo)
+       ("gtk+" ,gtk+)
+       ("mmm" ,mmm)
+       ("x11" ,libx11)))
+    (synopsis "Microraptor GUI")
+    (description "MrG is is a C API for creating user interfaces.  It can be
+used as an application writing environment or as an interactive canvas for part
+of a larger interface.")
+    (home-page "https://github.com/hodefoting/mrg")
+    (license license:lgpl2.0+)))
+
 (define-public babl
   (package
     (name "babl")
-- 
2.27.0


[-- Attachment #1.1.3: 0011-gnu-gegl-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 9718 bytes --]

From 0cefa27b45778e65ee92e459feda0926ad6233fb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 21 Jul 2020 03:45:21 -0400
Subject: [PATCH 11/36] gnu: gegl: Update package definition.

* gnu/packages/gimp.scm (gegl): Update package definition.
[source]<origin>[patches]: Add gegl-mrg.patch.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dintrospection]: Remove flag.
[-Ddocs]: New flag.
[-Dworkshop]: New flag.
[-Dsdl1]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add asciidoc, docbook-xml, docbook-xsl, enscript,
gobject-introspection, gtk-doc, perl, python-pygobject, python-wrapper,
ruby and vala.
[inputs]: Add exiv2, gdk-pixbuf+svg, gexiv2, jasper, lcms, lensfun, ffmpeg,
libnsgif, libraw, librsvg, libspiro, libtiff, lua, luajit, mrg, openexr, poly2tri-c,
poppler, sdl, sdl2, suitesparse, v4l-utils and libwebp.
[synopsis]: Modify.
[description]: Modify.
[license]: Remove gpl3+.

* gnu/packages/patches/gegl-mrg.patch: New file.

* gnu/local.mk (gegl-mrg.patch): New reference.
---
 gnu/local.mk                        |   1 +
 gnu/packages/gimp.scm               | 134 +++++++++++++++++++++-------
 gnu/packages/patches/gegl-mrg.patch |  25 ++++++
 3 files changed, 128 insertions(+), 32 deletions(-)
 create mode 100644 gnu/packages/patches/gegl-mrg.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index a5a7125087..0c5be2fa22 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -974,6 +974,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gd-brect-bounds.patch			\
   %D%/packages/patches/gdb-hurd.patch				\
   %D%/packages/patches/gdm-default-session.patch		\
+  %D%/packages/patches/gegl-mrg.patch			\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
   %D%/packages/patches/ghc-testsuite-dlopen-pie.patch		\
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 417def1987..6f33d87e38 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -35,8 +35,10 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
@@ -45,13 +47,19 @@
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages patchutils)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages w3m)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xorg))
@@ -209,46 +217,108 @@ specific code paths.")
   (package
     (name "gegl")
     (version "0.4.24")
-    (source (origin
-              (method url-fetch)
-              (uri (list (string-append "https://download.gimp.org/pub/gegl/"
-                                        (string-take version 3)
-                                        "/gegl-" version ".tar.xz")
-                         (string-append "https://ftp.gtk.org/pub/gegl/"
-                                        (version-major+minor version)
-                                        "/gegl-" version ".tar.xz")
-                         (string-append "ftp://ftp.gtk.org/pub/gegl/"
-                                        (version-major+minor version)
-                                        "/gegl-" version ".tar.xz")))
-              (sha256
-               (base32
-                "0ji57s7cba94vzy49agn7x47ca61rccm6rif0cb0s6rl4ygljrbp"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (list
+         (string-append "https://download.gimp.org/pub/gegl/"
+                        (string-take version 3)
+                        "/gegl-" version ".tar.xz")
+         (string-append "https://ftp.gtk.org/pub/gegl/"
+                        (version-major+minor version)
+                        "/gegl-" version ".tar.xz")
+         (string-append "ftp://ftp.gtk.org/pub/gegl/"
+                        (version-major+minor version)
+                        "/gegl-" version ".tar.xz")))
+       (sha256
+        (base32 "0ji57s7cba94vzy49agn7x47ca61rccm6rif0cb0s6rl4ygljrbp"))
+       (patches
+        ;; Fix for the bug,
+        ;; https://gitlab.gnome.org/GNOME/gegl/-/issues/259
+        (search-patches "gegl-mrg.patch"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:configure-flags
-       (list "-Dintrospection=false")))
-    ;; These are propagated to satisfy 'gegl-0.4.pc'.
+       (list
+        "-Ddocs=true"
+        "-Dworkshop=true"
+        "-Dsdl1=auto")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "gegl-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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
+     `(("asciidoc" ,asciidoc)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("enscript" ,enscript)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("pygobject" ,python-pygobject)
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)
+       ("vapigen" ,vala)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("exiv2" ,exiv2)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gexiv2" ,gexiv2)
+       ("jasper" ,jasper)
+       ("lcms" ,lcms)
+       ("lensfun" ,lensfun)
+       ("libav" ,ffmpeg)
+       ("libnsgif" ,libnsgif)
+       ("libpng" ,libpng)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libraw" ,libraw)
+       ("librsvg" ,librsvg)
+       ("libspiro" ,libspiro)
+       ("libtiff" ,libtiff)
+       ("lua" ,lua)
+       ("luajit" ,luajit)
+       ("mrg" ,mrg)
+       ("openexr" ,openexr)
+       ("pango" ,pango)
+       ;; To be enabled after upstream fixes the bug,
+       ;; https://gitlab.gnome.org/GNOME/gegl/-/issues/258
+       ;; ("poly2tri-c" ,poly2tri-c)
+       ("poppler" ,poppler)
+       ("sdl1" ,sdl)
+       ("sdl2" ,sdl2)
+       ("umfpack" ,suitesparse)
+       ("v4l" ,v4l-utils)
+       ("webp" ,libwebp)))
     (propagated-inputs
      `(("babl" ,babl)
        ("glib" ,glib)
        ("json-glib" ,json-glib)))
-    (inputs
-     `(("cairo" ,cairo)
-       ("pango" ,pango)
-       ("libpng" ,libpng)
-       ("libjpeg" ,libjpeg-turbo)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")             ; for gtester
-       ("intltool" ,intltool)))
+    (synopsis "Generic Graphics Library")
+    (description "GEGL is a data flow based image processing framework,
+providing floating point processing and non-destructive image processing
+capabilities to GNU Image Manipulation Program and other projects.")
     (home-page "http://gegl.org")
-    (synopsis "Graph based image processing framework")
-    (description "GEGL (Generic Graphics Library) provides infrastructure to
-do demand based cached non destructive image editing on larger than RAM
-buffers.")
-    ;; The library itself is licensed under LGPL while the sample commandline
-    ;; application and GUI binary gegl is licensed under GPL.
-    (license (list license:lgpl3+ license:gpl3+))))
+    (license license:lgpl3+)))
 
 (define-public gimp
   (package
diff --git a/gnu/packages/patches/gegl-mrg.patch b/gnu/packages/patches/gegl-mrg.patch
new file mode 100644
index 0000000000..d91a669d88
--- /dev/null
+++ b/gnu/packages/patches/gegl-mrg.patch
@@ -0,0 +1,25 @@
+From 271e2654229db0ba72a95a7256cb9d148aa7621a Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <raghavgururajan@disroot.org>
+Date: Sat, 25 Jul 2020 05:04:26 -0400
+Subject: [PATCH] [PATCH]: Fix build with mrg. #259
+
+---
+ bin/mrg-gegl.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/mrg-gegl.h b/bin/mrg-gegl.h
+index 485ec97bf..2c055a69a 100644
+--- a/bin/mrg-gegl.h
++++ b/bin/mrg-gegl.h
+@@ -1,7 +1,7 @@
+ #ifndef MRG_GEGL_H
+ #define MRG_GEGL_H
+ 
+-#include <mrg/mrg.h>
++#include <mrg.h>
+ #include <gegl/gegl.h>
+ 
+ void mrg_gegl_buffer_blit (Mrg *mrg,
+-- 
+2.27.0
+
-- 
2.27.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-25  9:12                                               ` Raghav Gururajan
@ 2020-07-27 16:11                                                 ` Raghav Gururajan
  2020-07-30 23:51                                                   ` Raghav Gururajan
  2020-08-02  7:32                                                   ` Raghav Gururajan
  0 siblings, 2 replies; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-27 16:11 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

Please find the attached patches.

@Others

Please find the following git-log.

*** START ***

commit cafa3a036aec6d95ce6f477ad93987d5c0c703a2
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 27 11:59:41 2020 -0400

    gnu: libzapojit: Update package definition.

    * gnu/packages/gnome.scm (libzapojit): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [--enable-gtk-doc]: New flag.
    [--with-html-dir]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml and gtk-doc.
    [inputs]: Move gnome-online-accounts:lib, json-glib and rest to ...
    [propagated-inputs]: ... here. Add glib and libsoup.
    [synopsis]: Modify.
    [description]: Modify.

commit 77b42f2623ca37bf0f452fd9eaa9c7e9ba01cf8e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 27 10:45:27 2020 -0400

    gnu: rest: Update package definition.

    * gnu/packages/gnome.scm (rest): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:tests?>: Remove argument.
    <#:configure-flags>[--enable-gtk-doc]: New flag.
    [--with-html-dir]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['disable-failing-tests]: New phase.
    [native-inputs]: Add docbook-xml, gsettings-desktop-schemas and gtk-doc.
    Remove glib:bin.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit f5e01306c885d2605d457b387ae9a9b2596868f4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 27 05:47:51 2020 -0400

    gnu: libpeas: Update package definition.

    * gnu/packages/gnome.scm (libpeas) [version]: Update to 1.26.0.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New outputs "demo" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dpython2]: New flag.
    [-Dvapi]: New flag.
    [-Dgtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['start-xorg-server]: Remove phase.
    ['pre-check]: New phase.
    ['move-doc]: New phase.
    ['move-demo]: New phase.
    [native-inputs]: Add docbook-xml, gtk-doc, luajit and vala.
    [inputs]: Add lua, python-2 and python2-pygobject. Remove gtk+.
    [propagated-inputs]: Remove gobject-introspection. Add glib and gtk+.
    [synopsis]: Modify.
    [home-page]: Modify.
    [license]: Update to lgpl2.1+.

commit dc4acce6e2dab1954daccc0c0238cd1554de1b8d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 27 05:01:13 2020 -0400

    gnu: libnma: Update package definition.

    * gnu/packages/gnome.scm (libnma) [version]: Update to 1.8.30.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-docbook-xml]: Modify phase.
    ['move-doc]: New phase.
    [inputs]: Add glib. Move network-manager to ...
    [propagated-inputs]: ... here.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

commit 3a81ae114512ef23d748a2519e7612df10761754
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 27 04:21:11 2020 -0400

    gnu: libmediaart: Update package definition.

    * gnu/packages/gnome.scm (libmediaart): Update package definition.
    [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, gettext-minimal, glib:bin,
    gobject-introspection, gtk-doc and vala.
    [inputs]: Remove gettext-minimal, gdk-pixbuf, gobject-introspection,
    gtk+:doc and vala.
    [propagated-inputs]: Add gdk-pixbuf+svg and glib.
    [synopsis]: Modify.
    [description]: Modify.

commit eaaf245836b519c529f852d54a6ecfd9fc25252d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 27 03:27:43 2020 -0400

    gnu: libhandy: Update package definition.

    * gnu/packages/gnome.scm (libhandy) [version]: Update to 0.84.0.
    [source]<origin>[method]: Change from git-fetch to url-fetch.
    [uri]: Change from puri.sm to gnome.org.
    [sha256]: Modify base32.
    [outputs]: New outputs "examples" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dglade_catalog]: Remove flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['disable-failing-tests]: New phase.
    ['pre-check]: Modify phase.
    ['move-doc]: New phase.
    ['move-examples]: New phase.
    [native-inputs]: Add docbook-xml, gtk+:bin and libxml2.
    [inputs]: Add glade and glib. Move gtk+ to ...
    [propagated-inputs]: ... here.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit 23d01ca12831dd1dbab32e080b83e55c91cb244c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Jul 27 01:47:33 2020 -0400

    gnu: libgxps: Update package definition.

    * gnu/packages/gnome.scm (libgxps): Update package definition.
    [outputs]: New outputs "bin" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Denable-gtk-doc]: New flag.
    [-Denable-man]: New flag.
    <#:phases>['patch-docbook]: New phase.
    ['move-doc]: New phase.
    ['move-bin]: New phase.
    [native-inputs]: Add docbook-xml, docbook-xsl, gtk-doc and libxslt.
    [inputs]: Add freetype and libpng.
    [synopsis]: Modify.
    [description]: Modify.

commit 3511a4ce23a3b810b3b0efaaacc3e3f50d016844
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 26 07:04:25 2020 -0400

    gnu: libgweather: Update package definition.

    * gnu/packages/gnome.scm (libgweather) [version]: Update to 3.36.1.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dowm_apikey=]: New flag.
    [-Dgtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml and gtk-doc.
    [inputs]: Add glade.
    [propagated-inputs]: Add glib and glib-networking. Remove gdk-pixbuf.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit 2a6a26704a6a5250e5c016c55b58460175e3cdd1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 26 06:15:11 2020 -0400

    gnu: glade: Update package definition.

    * gnu/packages/gnome.scm (glade): Update package definition.
    [outputs]: New outputs "doc" and "help".
    [arguments]<#:configure-flags>[--enable-gtk-doc]: New flag.
    [--enable-man-pages]: New flag.
    [--enable-gladeui]: New flag.
    [--with-html-dir=]: New flag.
    [--with-help-dir]: New flag.
    <#:phases>['fix-docbook]: Remove phase.
    ['patch-docbook-xml]: New phase.
    ['pre-check]: Modify phase.
    [native-inputs]: Add gettext-minimal, gtk-doc, python-pygobject,
    and python-wrapper. Remove python2.
    [inputs]: Add glib and webkitgtk. Move gtk+ and libxml2 to ...
    [propagated-inputs]: ... here.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

commit e246d1364a573dca78691cd2d273fa089659fb5e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 26 02:37:37 2020 -0400

    gnu: libgudev: Update package definition.

    * gnu/packages/gnome.scm (libgudev) [version]: Update to 233.
    [source]<origin>[sha256]: Modify base32.
    [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 and gtk-doc.
    [description]: Modify.

commit 541f5792339565f39ef6e60b6a608f43e8b8e161
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 26 02:06:42 2020 -0400

    gnu: libgtop: Update package definition.

    * gnu/packages/gnome.scm (libgtop): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [--enable-gtk-doc]: New flag.
    [--with-html-dir=]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml, gettext-minimal and gtk-doc.
    [inputs]: Add libx11.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit b1ea83489068b2f6d21674a16557d5dbc4cb4d97
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 26 01:22:50 2020 -0400

    gnu: libgsf: Update package definition.

    * gnu/packages/gnome.scm (libgsf): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [outputs]: New outputs "bin" and "doc".
    [arguments]<#:configure-flags>[--enable-introspection]: New flag.
    [--with-gir-dir=]: New flag.
    [--with-typelib-dir=]: New flag.
    [--with-html-dir]: New flag.
    [--with-zlib]: New flag.
    [--with-bz2]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    [native-inputs]: Add docbook-xml, gobject-introspection and
    python-wrapper.
    [inputs]: Add gdk-pixbuf.
    [propagated-inputs]: Remove gdk-pixbuf.
    [synopsis]: Modify.
    [home-page]: Modify.
    [license]: Modify.

commit b923e5525b5808e32e9f0a2d6440c1c4c51eee04
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Jul 26 00:30:40 2020 -0400

    gnu: libgnomekbd: Update package definition.

    * gnu/packages/gnome.scm (libgnomekbd): Update package definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [native-inputs]: Add gettext-minimal and gobject-introspection.
    Remove glib:bin.
    [home-page]: Modify.

commit 93602dfccd03df005e258eea0f008671a0892df8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 25 22:46:42 2020 -0400

    gnu: libdazzle: Update package definition.

    * gnu/packages/gnome.scm (libdazzle) [version]: Update to 3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New outputs "tools" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Denable_rdtscp]: New flag.
    [-Denable_gtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['pre-check]: Modify phase.
    ['move-doc]: New phase.
    ['move-tools]: New phase.
    [native-inputs]: Add docbook-xml, gettext-minimal,
gobject-introspection,
    gtk-doc, vala and libxml2.
    [inputs]: Remove gtk+, gobject-introspection and vala.
    [propagated-inputs]: Add gtk+.
    [synopsis]: Modify.
    [description]: Modify.

commit 65f34652c522716bbb060eac0f9e457d949f1eef
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 25 11:09:28 2020 -0400

    gnu: libchamplain: Update package definition.

    * gnu/packages/gnome.scm (libchamplain) [version]: Update to 0.12.20.
    [source]<origin>[sha256]: Modify base32.
    [patches]: Add libchamplain-memphis-demos.patch.
    [build-system]: Change from gnu to meson.
    [outputs]: New outputs "demo" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[--enable-vala]: Remove flag.
    [-Dmemphis]: New flag.
    [-Dgtk_doc]: New flag.
    [-Ddemos]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['enable-demos]: New phase.
    ['move-doc]: New phase.
    ['move-demos]: New phase.
    [native-inputs]: Add docbook-xml, gjs, glib:bin, gtk-doc and
    python-wrapper.
    [propagated-inputs]: Remove glib:bin. Add memphis.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit de46311b41ffa74f9c215a7144ec6b9cc7bdc9f9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 25 06:37:47 2020 -0400

    gnu: Add memphis.

    * gnu/packages/geo.scm (memphis): New variable.

commit 4a661b8ca83a51c436114011cbcb6a3ebb6db7c0
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 25 09:01:19 2020 -0400

    gnu: Add seed.

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

    * gnu/packages/patches/seed-webkit.patch: New file.

    * gnu/local.mk (seed-webkit.patch): New reference.

commit 7b2bc145bea98999670bd6880a5835d47104f3bf
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jul 25 08:04:57 2020 -0400

    gnu: Add gnome-js-common.

    * gnu/packages/gnome.scm (gnome-js-common): New variable.

*** END ***

Regards,
RG.

[-- Attachment #1.1.2: 0037-gnu-Add-gnome-js-common.patch --]
[-- Type: text/x-patch, Size: 1756 bytes --]

From 7b2bc145bea98999670bd6880a5835d47104f3bf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 25 Jul 2020 08:04:57 -0400
Subject: [PATCH 37/54] gnu: Add gnome-js-common.

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

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 1c241daf7b..1ec0fb01fb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -268,6 +268,34 @@ 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-js-common
+  (package
+    (name "gnome-js-common")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static")))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Common JS Modules")
+    (description "GNOME-JS-Common provides common modules for GNOME JavaScript
+bindings.")
+    (home-page "https://wiki.gnome.org/Projects/Seed")
+    (license license:gpl3+)))
+
 (define-public libdmapsharing
   (package
     (name "libdmapsharing")
-- 
2.27.0


[-- Attachment #1.1.3: 0038-gnu-Add-seed.patch --]
[-- Type: text/x-patch, Size: 6813 bytes --]

From 4a661b8ca83a51c436114011cbcb6a3ebb6db7c0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 25 Jul 2020 09:01:19 -0400
Subject: [PATCH 38/54] gnu: Add seed.

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

* gnu/packages/patches/seed-webkit.patch: New file.

* gnu/local.mk (seed-webkit.patch): New reference.
---
 gnu/local.mk                           |  1 +
 gnu/packages/gnome.scm                 | 81 ++++++++++++++++++++++++++
 gnu/packages/patches/seed-webkit.patch | 49 ++++++++++++++++
 3 files changed, 131 insertions(+)
 create mode 100644 gnu/packages/patches/seed-webkit.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 4266f87f3c..b70762f4ce 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1501,6 +1501,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/screen-hurd-path-max.patch		\
   %D%/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch	\
   %D%/packages/patches/sdl-libx11-1.6.patch			\
+  %D%/packages/patches/seed-webkit.patch			\
   %D%/packages/patches/seq24-rename-mutex.patch			\
   %D%/packages/patches/sgml-common-manpage.patch			\
   %D%/packages/patches/sharutils-CVE-2018-1000097.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 1ec0fb01fb..73bf202a16 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -296,6 +296,87 @@ bindings.")
     (home-page "https://wiki.gnome.org/Projects/Seed")
     (license license:gpl3+)))
 
+(define-public seed
+  (package
+    (name "seed")
+    (version "3.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
+       (patches
+        (search-patches "seed-webkit.patch"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:tests? #f                      ; XXX: Fix-me
+       #:configure-flags
+       (list
+        "--disable-static"
+        "--enable-xorg-module"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
+        "--with-webkit=4.0")
+       #:phases
+       (modify-phases %standard-phases
+         ;; The seed-webkit.patch patches configure.ac.
+         ;; So the source files need to be re-bootstrapped.
+         (add-after 'unpack 'trigger-bootstrap
+           (lambda _
+             (for-each delete-file
+                       (list
+                        "configure"
+                        "Makefile.in"))
+             #t))
+         (add-before 'build 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("gnome-js-common" ,gnome-js-common)
+       ("gtk+" ,gtk+)
+       ("gtk+-2" ,gtk+-2)
+       ("libffi" ,libffi)
+       ("libxml2" ,libxml2)
+       ("mpfr" ,mpfr)
+       ("readline" ,readline)
+       ("sqlite" ,sqlite)
+       ("xscrnsaver" ,libxscrnsaver)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("webkit" ,webkitgtk)))
+    (synopsis "GObject JavaScriptCore bridge")
+    (description "Seed is a library and interpreter, dynamically bridging
+(through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
+GNOME platform.  It serves as something which enables you to write standalone
+applications in JavaScript, or easily enable your application to be extensible
+in JavaScript.")
+    (home-page "https://wiki.gnome.org/Projects/Seed")
+    (license license:lgpl2.0+)))
+
 (define-public libdmapsharing
   (package
     (name "libdmapsharing")
diff --git a/gnu/packages/patches/seed-webkit.patch b/gnu/packages/patches/seed-webkit.patch
new file mode 100644
index 0000000000..55f15af12f
--- /dev/null
+++ b/gnu/packages/patches/seed-webkit.patch
@@ -0,0 +1,49 @@
+From 6d512b5c4d774a9853b51dae464a10cea7e3423a Mon Sep 17 00:00:00 2001
+From: Peter Rustler <peter.rustler@basyskom.com>
+Date: Mon, 7 Dec 2015 11:40:05 +0000
+Subject: [PATCH] Add support for new webkit version 4.0 to build system
+
+Add new configure value for option --with-webkit.
+Now you can add 4.0 as value to --with-webkit.
+Default is still 3.0.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=759171
+---
+ configure.ac | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2313c093..3d5d4823 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -77,12 +77,12 @@ dnl ==============================WebKit=======================================
+ m4_define([webkit_default], [3.0])
+ 
+ AC_ARG_WITH([webkit],
+-            [AC_HELP_STRING([--with-webkit=@<:@3.0/1.0@:>@],
++            [AC_HELP_STRING([--with-webkit=@<:@4.0/3.0/1.0@:>@],
+                             [Select the Webkit backend, default=3.0])],
+ 	    [],
+             [with_webkit=webkit_default])
+ 
+-dnl=== support both 1.0 and 3.0 (default 3.0) ==
++dnl=== support all 1.0, 3.0 and 4.0 (default 3.0) ==
+ AS_CASE([$with_webkit],
+ 	[3.0], [
+ 		WEBKIT_PC=webkitgtk-3.0
+@@ -90,6 +90,12 @@ AS_CASE([$with_webkit],
+ 		AC_CHECK_LIB(webkitgtk-3.0, JSContextGroupCreate,,
+ 	                AC_CHECK_LIB(javascriptcoregtk-3.0, JSContextGroupCreate,WEBKIT_PC=javascriptcoregtk-3.0)) 
+ 	],
++	[4.0], [
++		WEBKIT_PC=webkitgtk-4.0
++		SEED_GTK_VERSION=-gtk4
++		AC_CHECK_LIB(webkitgtk-4.0, JSContextGroupCreate,,
++	                AC_CHECK_LIB(javascriptcoregtk-4.0, JSContextGroupCreate,WEBKIT_PC=javascriptcoregtk-4.0))
++	],
+ 	[1.0], [
+ 		AC_CHECK_LIB(webkitgtk-1.0, JSContextGroupCreate,WEBKIT_PC=webkitgtk-1.0,
+ 	                AC_CHECK_LIB(javascriptcoregtk-1.0, JSContextGroupCreate,WEBKIT_PC=javascriptcoregtk-1.0, 
+-- 
+GitLab
+
-- 
2.27.0


[-- Attachment #1.1.4: 0039-gnu-Add-memphis.patch --]
[-- Type: text/x-patch, Size: 3243 bytes --]

From de46311b41ffa74f9c215a7144ec6b9cc7bdc9f9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 25 Jul 2020 06:37:47 -0400
Subject: [PATCH 39/54] gnu: Add memphis.

* gnu/packages/geo.scm (memphis): New variable.
---
 gnu/packages/geo.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 1ad6f697a4..8c21392bb7 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -59,6 +59,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
@@ -100,6 +101,69 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public memphis
+  (package
+    (name "memphis")
+    (version "0.2.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/jiuka/memphis.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "068c3943pgbpfjq44pmvn5fmkh005ak5aa67vvrq3fn487c6w54q"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        "--enable-vala"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-autogen
+           (lambda _
+             (substitute* "autogen.sh"
+               (("\\./configure \"\\$@\"")
+                ""))
+             #t))
+         (add-after 'patch-autogen 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "libmemphis-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("seed" ,seed)
+       ("vala" ,vala)))
+    (inputs
+     `(("expat" ,expat)
+       ("glib" ,glib)))
+    (propagated-inputs
+     `(("cairo" ,cairo)))
+    (synopsis "Map-rendering for OpenSteetMap")
+    (description "Memphis is a map-rendering application and a library for
+OpenStreetMap written in C using eXpat, Cairo and GLib.")
+    (home-page "http://trac.openstreetmap.ch/trac/memphis/")
+    (license license:lgpl2.1+)))
+
 (define-public geos
   (package
     (name "geos")
-- 
2.27.0


[-- Attachment #1.1.5: 0040-gnu-libchamplain-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7860 bytes --]

From 65f34652c522716bbb060eac0f9e457d949f1eef Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 25 Jul 2020 11:09:28 -0400
Subject: [PATCH 40/54] gnu: libchamplain: Update package definition.

* gnu/packages/gnome.scm (libchamplain) [version]: Update to 0.12.20.
[source]<origin>[sha256]: Modify base32.
[patches]: Add libchamplain-memphis-demos.patch.
[build-system]: Change from gnu to meson.
[outputs]: New outputs "demo" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[--enable-vala]: Remove flag.
[-Dmemphis]: New flag.
[-Dgtk_doc]: New flag.
[-Ddemos]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['enable-demos]: New phase.
['move-doc]: New phase.
['move-demos]: New phase.
[native-inputs]: Add docbook-xml, gjs, glib:bin, gtk-doc and
python-wrapper.
[propagated-inputs]: Remove glib:bin. Add memphis.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/local.mk                                  |   1 +
 gnu/packages/gnome.scm                        | 105 +++++++++++++-----
 .../patches/libchamplain-memphis-demos.patch  |  24 ++++
 3 files changed, 104 insertions(+), 26 deletions(-)
 create mode 100644 gnu/packages/patches/libchamplain-memphis-demos.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index b70762f4ce..6fe674ffec 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1175,6 +1175,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libbase-use-own-logging.patch		\
   %D%/packages/patches/libbonobo-activation-test-race.patch	\
   %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
+  %D%/packages/patches/libchamplain-memphis-demos.patch		\
   %D%/packages/patches/libdrm-realpath-virtio.patch		\
   %D%/packages/patches/libextractor-exiv2.patch			\
   %D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 73bf202a16..4ad165c764 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6083,37 +6083,90 @@ implements the ClutterGstPlayer interface using playbin.")
 (define-public libchamplain
   (package
     (name "libchamplain")
-    (version "0.12.16")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
-                    version ".tar.xz"))
-              (sha256
-               (base32
-                "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
-    (build-system gnu-build-system)
-    (arguments '(#:configure-flags '("--enable-vala")))
+    (version "0.12.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
+         version ".tar.xz"))
+       (sha256
+        (base32 "0rihpb0npqpihqcdz4w03rq6xl7jdckfqskvv9diq2hkrnzv8ch2"))
+       (patches
+        (search-patches
+         ;; To fix the upstream bug,
+         ;; https://gitlab.gnome.org/GNOME/libchamplain/-/issues/55
+         "libchamplain-memphis-demos.patch"))))
+    (build-system meson-build-system)
+    (outputs '("out" "demos" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dmemphis=true"
+        "-Dgtk_doc=true"
+        "-Ddemos=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "champlain-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'enable-demos
+           (lambda _
+             (with-directory-excursion "demos"
+               (substitute* "meson.build"
+                 (("install: false,")
+                  "install: true,")))
+             #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-after 'move-doc 'move-demos
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (demos (assoc-ref outputs "demos")))
+               (mkdir-p (string-append demos "/bin"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append demos "/bin"))
+               #t))))))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gjs" ,gjs)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+       ("python" ,python-wrapper)
+       ("vapigen" ,vala)))
     (propagated-inputs
-     `(("libsoup" ,libsoup)
-       ("sqlite" ,sqlite)
+     `(("cairo" ,cairo)
        ("clutter" ,clutter)
        ("clutter-gtk" ,clutter-gtk)
-       ("glib:bin" ,glib "bin")                   ;glib-mkenums, etc.
-       ("cairo" ,cairo)
-       ("gtk+3" ,gtk+)
-       ("glib" ,glib)))
-    (home-page "https://projects.gnome.org/libchamplain/")
-    (synopsis "C library providing a ClutterActor to display maps")
-    (description
-     "libchamplain is a C library providing a ClutterActor to display maps.
-It also provides a Gtk+ widget to display maps in Gtk+ applications.  Python
-and Perl bindings are also available.  It supports numerous free map sources
-such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libsoup" ,libsoup)
+       ("memphis" ,memphis)
+       ("sqlite" ,sqlite)))
+    (synopsis "Map Widget")
+    (description "LibChamplain is a Gtk+ widget displaying zoomable and pannable
+maps that can be loaded from various network sources.  It supports overlay
+layers, markers, and custom elements displayed on top of the maps.  The library
+is written in C but other language mappings are also available thanks to
+GObject-Introspection.")
+    (home-page "https://https://wiki.gnome.org/Projects/libchamplain")
     (license license:lgpl2.1+)))
 
 (define-public gom
diff --git a/gnu/packages/patches/libchamplain-memphis-demos.patch b/gnu/packages/patches/libchamplain-memphis-demos.patch
new file mode 100644
index 0000000000..6ebccd0671
--- /dev/null
+++ b/gnu/packages/patches/libchamplain-memphis-demos.patch
@@ -0,0 +1,24 @@
+From 84df89f5490e995d271b4ac56999450e94bfd563 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <raghavgururajan@disroot.org>
+Date: Sat, 25 Jul 2020 10:21:45 -0400
+Subject: [PATCH] [PATCH]: Fix demos build with memphis.
+
+---
+ demos/meson.build | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/demos/meson.build b/demos/meson.build
+index cf852d1..bf9b3bb 100644
+--- a/demos/meson.build
++++ b/demos/meson.build
+@@ -85,6 +85,7 @@ if build_with_memphis and build_gtk_widgetry
+       dependencies: [
+         libchamplain_dep,
+         libchamplain_gtk_dep,
++        memphis_dep,
+       ]
+     )
+   endforeach
+-- 
+GitLab
+
-- 
2.27.0


[-- Attachment #1.1.6: 0041-gnu-libdazzle-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5637 bytes --]

From 93602dfccd03df005e258eea0f008671a0892df8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 25 Jul 2020 22:46:42 -0400
Subject: [PATCH 41/54] gnu: libdazzle: Update package definition.

* gnu/packages/gnome.scm (libdazzle) [version]: Update to 3.36.0.
[source]<origin>[sha256]: Modify base32.
[outputs]: New outputs "tools" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Denable_rdtscp]: New flag.
[-Denable_gtk_doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['pre-check]: Modify phase.
['move-doc]: New phase.
['move-tools]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal, gobject-introspection,
gtk-doc, vala and libxml2.
[inputs]: Remove gtk+, gobject-introspection and vala.
[propagated-inputs]: Add gtk+.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 85 ++++++++++++++++++++++++++++++------------
 1 file changed, 61 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 4ad165c764..2b4fdb655b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11265,42 +11265,79 @@ hexadecimal or ASCII.  It is useful for editing binary files in general.")
 (define-public libdazzle
   (package
     (name "libdazzle")
-    (version "3.34.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/libdazzle/"
-                                  (version-major+minor version) "/"
-                                  "libdazzle-" version ".tar.xz"))
-              (sha256
-               (base32
-                "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
+    (version "3.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/libdazzle/"
+                       (version-major+minor version) "/"
+                       "libdazzle-" version ".tar.xz"))
+       (sha256
+        (base32 "0n6r16a07in82cnzw91vl675pbjzbvazkxwbqxq2kihganzipcw2"))))
     (build-system meson-build-system)
+    (outputs '("out" "tools" "doc"))
     (arguments
-     `(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Denable_rdtscp=true"
+        "-Denable_gtk_doc=true")
+       #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "dazzle-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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 &")
+             (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
-             #t)))))
+             #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-after 'move-doc 'move-tools
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (tools (assoc-ref outputs "tools")))
+               (mkdir-p (string-append tools "/bin"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append tools "/bin"))
+               #t))))))
     (native-inputs
-     `(("glib" ,glib "bin")             ; glib-compile-resources
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
-       ;; For tests.
+       ("vapigen" ,vala)
+       ("xmllint" ,libxml2)
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+" ,gtk+)
-       ("vala" ,vala)))
-    (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
+     `(("glib" ,glib)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)))
     (synopsis "Companion library to GObject and Gtk+")
-    (description "The libdazzle library is a companion library to GObject and
-Gtk+.  It provides various features that the authors wish were in the
-underlying library but cannot for various reasons.  In most cases, they are
-wildly out of scope for those libraries.  In other cases, they are not quite
-generic enough to work for everyone.")
+    (description "LibDazzle is a companion library to GObject and Gtk+.  It
+provides various features that the authors wish were in the underlying library
+but cannot for various reasons.  In most cases, they are wildly out of scope for
+those libraries.  In other cases, they are not quite generic enough to work for
+everyone.")
+    (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
     (license license:gpl3+)))
 
 (define-public evolution
-- 
2.27.0


[-- Attachment #1.1.7: 0042-gnu-libgnomekbd-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2870 bytes --]

From b923e5525b5808e32e9f0a2d6440c1c4c51eee04 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 26 Jul 2020 00:30:40 -0400
Subject: [PATCH 42/54] gnu: libgnomekbd: Update package definition.

* gnu/packages/gnome.scm (libgnomekbd): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[arguments]<#:configure-flags>[--disable-static]: New flag.
[native-inputs]: Add gettext-minimal and gobject-introspection.
Remove glib:bin.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 38 +++++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 2b4fdb655b..53956909e6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10403,29 +10403,33 @@ which generates C code when compiled.")
   (package
     (name "libgnomekbd")
     (version "3.26.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/libgnomekbd/"
-                                  (version-major+minor version)  "/"
-                                  "libgnomekbd-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/libgnomekbd/"
+                       (version-major+minor version)  "/"
+                       "libgnomekbd-" version ".tar.xz"))
+       (sha256
+        (base32 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")
-       ("intltool" ,intltool)))
+     `(("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     ;; Referred to in .h files and .pc.
      `(("glib" ,glib)
        ("gtk+" ,gtk+)
        ("libxklavier" ,libxklavier)))
-    (home-page "https://www.gnome.org")
     (synopsis "GNOME keyboard configuration library")
-    (description
-     "Libgnomekbd is a keyboard configuration library for the GNOME desktop
-environment, which can notably display keyboard layouts.")
+    (description "Libgnomekbd is a keyboard configuration library for the
+GNOME desktop environment, which can notably display keyboard layouts.")
+    (home-page "https://gitlab.gnome.org/GNOME/libgnomekbd")
     (license license:lgpl2.0+)))
 
 ;;; This package is no longer maintained:
-- 
2.27.0


[-- Attachment #1.1.8: 0043-gnu-libgsf-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4939 bytes --]

From b1ea83489068b2f6d21674a16557d5dbc4cb4d97 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 26 Jul 2020 01:22:50 -0400
Subject: [PATCH 43/54] gnu: libgsf: Update package definition.

* gnu/packages/gnome.scm (libgsf): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New outputs "bin" and "doc".
[arguments]<#:configure-flags>[--enable-introspection]: New flag.
[--with-gir-dir=]: New flag.
[--with-typelib-dir=]: New flag.
[--with-html-dir]: New flag.
[--with-zlib]: New flag.
[--with-bz2]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, gobject-introspection and
python-wrapper.
[inputs]: Add gdk-pixbuf.
[propagated-inputs]: Remove gdk-pixbuf.
[synopsis]: Modify.
[home-page]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 87 +++++++++++++++++++++++++++++-------------
 1 file changed, 61 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 53956909e6..b8d0bf703b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3144,39 +3144,74 @@ XML/CSS rendering engine.")
   (package
     (name "libgsf")
     (version "1.14.47")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "bin" "doc"))
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-introspection"
+        (string-append "--with-gir-dir="
+                       (assoc-ref %outputs "out")
+                       "/share/gir-"
+                       ,(version-major
+                         (package-version gobject-introspection))
+                       ".0")
+        (string-append "--with-typelib-dir="
+                       (assoc-ref %outputs "out")
+                       "/lib/girepository-"
+                       ,(version-major
+                         (package-version gobject-introspection))
+                       ".0")
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
+        "--with-zlib"
+        "--with-bz2")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "gsf-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.5/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("docbook-xml" ,docbook-xml)
        ("gettext" ,gettext-minimal)
-
-       ;; For tests.
+       ("gobject-introspection" ,gobject-introspection)
        ("perl" ,perl)
-       ("perl-xml-parser" ,perl-xml-parser)))
+       ("perl-xml-parser" ,perl-xml-parser)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
     (inputs
-     `(("zlib" ,zlib)
-       ("bzip2" ,bzip2)))
+     `(("bzip2" ,bzip2)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("zlib" ,zlib)))
     (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
+     `(("glib" ,glib)
        ("libxml2" ,libxml2)))
-    (home-page "https://www.gnome.org/projects/libgsf")
-    (synopsis "GNOME's Structured File Library")
-    (description
-     "Libgsf aims to provide an efficient extensible I/O abstraction for
-dealing with different structured file formats.")
-
-    ;; LGPLv2.1-only.
-    (license license:lgpl2.1)))
+    (synopsis "G Structured File Library")
+    (description "Libgsf aims to provide an efficient extensible I/O abstraction
+for dealing with different structured file formats.")
+    (home-page "https://gitlab.gnome.org/GNOME/libgsf")
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Others
+      license:lgpl2.0+))))
 
 (define-public librsvg
   (package
-- 
2.27.0


[-- Attachment #1.1.9: 0044-gnu-libgtop-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3740 bytes --]

From 541f5792339565f39ef6e60b6a608f43e8b8e161 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 26 Jul 2020 02:06:42 -0400
Subject: [PATCH 44/54] gnu: libgtop: Update package definition.

* gnu/packages/gnome.scm (libgtop): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-gtk-doc]: New flag.
[--with-html-dir=]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal and gtk-doc.
[inputs]: Add libx11.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 55 ++++++++++++++++++++++++++++++------------
 1 file changed, 39 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b8d0bf703b..c80b981e03 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8772,27 +8772,50 @@ providing graphical log-ins and managing local and remote displays.")
   (package
     (name "libgtop")
     (version "2.40.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/libgtop/"
-                                  (version-major+minor version) "/"
-                                  "libgtop-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/libgtop/"
+                       (version-major+minor version) "/"
+                       "libgtop-" version ".tar.xz"))
+       (sha256
+        (base32 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/reference"
+               (substitute* "libgtop-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("x11" ,libx11)))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by libgtop-2.0.pc
-    (synopsis "Portable system access library")
-    (home-page "https://www.gnome.org/")
-    (description
-     "LibGTop is a library to get system specific data such as CPU and memory
-usage and information about running processes.")
+     `(("glib" ,glib)))
+    (synopsis "System Monitoring Library")
+    (description "LibGTop is a library for collecting system monitoring data.")
+    (home-page "https://gitlab.gnome.org/GNOME/libgtop")
     (license license:gpl2+)))
 
 (define-public gnome-bluetooth
-- 
2.27.0


[-- Attachment #1.1.10: 0045-gnu-libgudev-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3718 bytes --]

From e246d1364a573dca78691cd2d273fa089659fb5e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 26 Jul 2020 02:37:37 -0400
Subject: [PATCH 45/54] gnu: libgudev: Update package definition.

* gnu/packages/gnome.scm (libgudev) [version]: Update to 233.
[source]<origin>[sha256]: Modify base32.
[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 and gtk-doc.
[description]: Modify.
---
 gnu/packages/gnome.scm | 55 +++++++++++++++++++++++++++---------------
 1 file changed, 36 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c80b981e03..cba5bd24f1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6785,32 +6785,49 @@ side panel;
 (define-public libgudev
   (package
     (name "libgudev")
-    (version "232")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  version "/" name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
-    (build-system gnu-build-system)
+    (version "233")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       version "/" name "-" version ".tar.xz"))
+       (sha256
+        (base32 "00xvva04lgqamhnf277lg32phjn971wgpc9cxvgf5x13xdq4jz2q"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:configure-flags
-       ;; umockdev depends on libgudev.
-       (list "--disable-umockdev")))
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        "--disable-umockdev"            ; Due to circular-dependency
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "gudev-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
+     `(("docbook-xml" ,docbook-xml-4.3)
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)))
-    (propagated-inputs
-     `(("glib" ,glib))) ; required by gudev-1.0.pc
     (inputs
      `(("udev" ,eudev)))
-    (home-page "https://wiki.gnome.org/Projects/libgudev")
+    (propagated-inputs
+     `(("glib" ,glib)))
     (synopsis "GObject bindings for libudev")
-    (description
-     "This library provides GObject bindings for libudev.  It was originally
-part of udev-extras, then udev, then systemd.  It's now a project on its own.")
+    (description "LibGudev is a library that provides GObject bindings for
+libudev.  It was originally part of udev-extras, then udev, then systemd.
+It's now a project on its own.")
+    (home-page "https://wiki.gnome.org/Projects/libgudev")
     (license license:lgpl2.1+)))
 
 (define-public gvfs
-- 
2.27.0


[-- Attachment #1.1.11: 0046-gnu-glade-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5888 bytes --]

From 2a6a26704a6a5250e5c016c55b58460175e3cdd1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 26 Jul 2020 06:15:11 -0400
Subject: [PATCH 46/54] gnu: glade: Update package definition.

* gnu/packages/gnome.scm (glade): Update package definition.
[outputs]: New outputs "doc" and "help".
[arguments]<#:configure-flags>[--enable-gtk-doc]: New flag.
[--enable-man-pages]: New flag.
[--enable-gladeui]: New flag.
[--with-html-dir=]: New flag.
[--with-help-dir]: New flag.
<#:phases>['fix-docbook]: Remove phase.
['patch-docbook-xml]: New phase.
['pre-check]: Modify phase.
[native-inputs]: Add gettext-minimal, gtk-doc, python-pygobject,
and python-wrapper. Remove python2.
[inputs]: Add glib and webkitgtk. Move gtk+ and libxml2 to ...
[propagated-inputs]: ... here.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 92 +++++++++++++++++++++++++++---------------
 1 file changed, 59 insertions(+), 33 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index cba5bd24f1..061779a4d6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3058,57 +3058,83 @@ additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
 API add-ons to make GTK+ widgets OpenGL-capable.")
     (license license:lgpl2.1+)))
 
-(define-public glade3
+(define-public glade
   (package
     (name "glade")
     (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
-                "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc" "help"))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        "--enable-man-pages"
+        "--enable-gladeui"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
+        (string-append "--with-help-dir="
+                       (assoc-ref %outputs "help")
+                       "/share/help"))
+       #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'fix-docbook
+         (add-after 'unpack 'patch-docbook-xml
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "man/Makefile.in"
-               (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
-                (string-append (assoc-ref inputs "docbook-xsl")
-                               "/xml/xsl/docbook-xsl-"
-                               ,(package-version docbook-xsl)
-                               "/manpages/docbook.xsl")))
+             (with-directory-excursion "doc"
+               (substitute* "gladeui-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.5/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
              #t))
          (add-before 'check 'pre-check
            (lambda _
-             (setenv "HOME" "/tmp")
              ;; Tests require a running X server.
-             (system "Xvfb :1 &")
+             (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
              #t)))))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)))
     (native-inputs
-     `(("hicolor-icon-theme" ,hicolor-icon-theme)
+     `(("docbook-xml" ,docbook-xml)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
-       ("libxslt" ,libxslt) ;for xsltproc
-       ("docbook-xml" ,docbook-xml-4.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("python" ,python-2)
        ("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server-for-tests)))
+       ("pygobject" ,python-pygobject)
+       ("python" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("glib" ,glib)
+       ("webkitgtk" ,webkitgtk)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("libxml2" ,libxml2)))
+    (synopsis "User Interface designer for Gtk+ and GNOME")
+    (description "Glade is a RAD tool to enable quick and easy development of
+user interfaces for the GTK+ toolkit and the GNOME desktop environment.")
     (home-page "https://glade.gnome.org")
-    (synopsis "GTK+ rapid application development tool")
-    (description "Glade is a rapid application development (RAD) tool to
-enable quick & easy development of user interfaces for the GTK+ toolkit and
-the GNOME desktop environment.")
-    (license license:lgpl2.0+)))
+    (license
+     (list
+      ;; Most of the code base.
+      license:lgpl2.0+
+      ;; Some of the code base.
+      license:gpl2+))))
 
 (define-public libcroco
   (package
-- 
2.27.0


[-- Attachment #1.1.12: 0047-gnu-libgweather-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5562 bytes --]

From 3511a4ce23a3b810b3b0efaaacc3e3f50d016844 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 26 Jul 2020 07:04:25 -0400
Subject: [PATCH 47/54] gnu: libgweather: Update package definition.

* gnu/packages/gnome.scm (libgweather) [version]: Update to 3.36.1.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dowm_apikey=]: New flag.
[-Dgtk_doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml and gtk-doc.
[inputs]: Add glade.
[propagated-inputs]: Add glib and glib-networking. Remove gdk-pixbuf.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 91 ++++++++++++++++++++++++++++--------------
 1 file changed, 62 insertions(+), 29 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 061779a4d6..afdd360d4b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5559,43 +5559,76 @@ service via the system message bus.")
 (define-public libgweather
   (package
     (name "libgweather")
-    (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
-                "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
+    (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 "0l74hc02rvzm4p530y539a67jwb080fqdaazdl8j0fr3xvq0j9yy"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f ; one of two tests requires network access
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:tests? #f           ; Tests require networking
        #:configure-flags
-       `(,(string-append "-Dzoneinfo_dir="
-                         (assoc-ref %build-inputs "tzdata")
-                         "/share/zoneinfo"))))
+       (list
+        (string-append "-Dzoneinfo_dir="
+                       (assoc-ref %build-inputs "tzdata")
+                       "/share/zoneinfo")
+        ;; NOTE: This is the API-Key for OpenWeatherMaps.
+        ;; It has been generated from my OWM account.
+        ;; Currently, the account subscription is on "Free Plan".
+        ;; It provides 3 hour forecast for 5 days.
+        ;; It allows 60 calls/minute and 1,000,000 calls/month.
+        ;; Feel free to use it.
+        ;; Raghav (RG) Gururajan <raghavgururajan@disroot.org>
+        "-Dowm_apikey=9c052a3406aa129d5261cfb999104cb7"
+        "-Dgtk_doc=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "libgweather-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("vala" ,vala)
-       ("intltool" ,intltool)))
+       ("vala" ,vala)))
+    (inputs
+     `(("glade" ,glade)
+       ("tzdata" ,tzdata)))
     (propagated-inputs
-     ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
-     ;; libsoup.
-     `(("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("libxml2" ,libxml2)
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("geocode-glib" ,geocode-glib)
+       ("gtk+" ,gtk+)
        ("libsoup" ,libsoup)
-       ("geocode-glib" ,geocode-glib)))
-    (inputs
-     `(("tzdata" ,tzdata)))
-    (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
-    (synopsis "Location, time zone, and weather library for GNOME")
-    (description
-     "libgweather is a library to access weather information from online
-services for numerous locations.")
+       ("libxml2" ,libxml2)))
+    (synopsis "Weather information library and database")
+    (description "LibGWeather is a library to access weather information from
+online services for numerous locations.")
+    (home-page "https://wiki.gnome.org/Projects/LibGWeather")
     (license license:gpl2+)))
 
 (define-public gnome-settings-daemon
-- 
2.27.0


[-- Attachment #1.1.13: 0048-gnu-libgxps-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5087 bytes --]

From 23d01ca12831dd1dbab32e080b83e55c91cb244c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 27 Jul 2020 01:47:33 -0400
Subject: [PATCH 48/54] gnu: libgxps: Update package definition.

* gnu/packages/gnome.scm (libgxps): Update package definition.
[outputs]: New outputs "bin" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Denable-gtk-doc]: New flag.
[-Denable-man]: New flag.
<#:phases>['patch-docbook]: New phase.
['move-doc]: New phase.
['move-bin]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl, gtk-doc and libxslt.
[inputs]: Add freetype and libpng.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 80 ++++++++++++++++++++++++++++++++----------
 1 file changed, 62 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index afdd360d4b..da25335d7e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1943,34 +1943,78 @@ services, and has full asynchronous support.")
   (package
     (name "libgxps")
     (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
-                "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
     (build-system meson-build-system)
+    (outputs '("out" "bin" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Denable-gtk-doc=true"
+        "-Denable-man=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "reference/libgxps-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/")))
+               (substitute* "tools/meson.build"
+                 (("http://docbook.sourceforge.net/release/xsl/current")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-"
+                                 ,(package-version docbook-xsl)))))
+             #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-after 'move-doc 'move-bin
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (assoc-ref outputs "bin")))
+               (mkdir-p (string-append bin "/bin"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append bin "/bin"))
+               #t))))))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libjpeg" ,libjpeg-turbo)
+     `(("freetype" ,freetype)
+       ("gtk+" ,gtk+)
        ("lcms" ,lcms)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
        ("libtiff" ,libtiff)))
     (propagated-inputs
-     ;; In Requires of libgxps.pc.
      `(("cairo" ,cairo)
        ("glib" ,glib)
        ("libarchive" ,libarchive)))
+    (synopsis "XPS management library")
+    (description "LibGxps is a GObject-based library for handling and rendering XPS
+documents.")
     (home-page "https://wiki.gnome.org/Projects/libgxps")
-    (synopsis "GObject-based library for handling and rendering XPS documents")
-    (description
-     "libgxps is a GObject-based library for handling and rendering XPS
-documents.  This package also contains binaries that can convert XPS documents
-to other formats.")
     (license license:lgpl2.1+)))
 
 (define-public gnome-characters
-- 
2.27.0


[-- Attachment #1.1.14: 0049-gnu-libhandy-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5925 bytes --]

From eaaf245836b519c529f852d54a6ecfd9fc25252d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 27 Jul 2020 03:27:43 -0400
Subject: [PATCH 49/54] gnu: libhandy: Update package definition.

* gnu/packages/gnome.scm (libhandy) [version]: Update to 0.84.0.
[source]<origin>[method]: Change from git-fetch to url-fetch.
[uri]: Change from puri.sm to gnome.org.
[sha256]: Modify base32.
[outputs]: New outputs "examples" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dglade_catalog]: Remove flag.
<#:phases>['patch-docbook-xml]: New phase.
['disable-failing-tests]: New phase.
['pre-check]: Modify phase.
['move-doc]: New phase.
['move-examples]: New phase.
[native-inputs]: Add docbook-xml, gtk+:bin and libxml2.
[inputs]: Add glade and glib. Move gtk+ to ...
[propagated-inputs]: ... here.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 95 ++++++++++++++++++++++++++++++------------
 1 file changed, 68 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index da25335d7e..39514aa460 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11696,47 +11696,88 @@ advanced image management tool")
 (define-public libhandy
   (package
     (name "libhandy")
-    (version "0.0.12")
+    (version "0.84.0")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://source.puri.sm/Librem5/libhandy")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
        (sha256
-        (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
+        (base32 "1ak1yncnbq9gc2735mqns9vwz7whfin5f83kl0lxy77rjsgm6p60"))))
     (build-system meson-build-system)
+    (outputs '("out" "examples" "doc"))
     (arguments
-     `(#:configure-flags
-       '("-Dglade_catalog=disabled"
-         "-Dgtk_doc=true")
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dgtk_doc=true")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute*
+                   '("build-howto.xml"
+                     "handy-docs.xml"
+                     "hdy-migrating-0-0-to-1.xml"
+                     "visual-index.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/meson.build"
+               (("'test-avatar',")
+                ""))
+             #t))
          (add-before 'check 'pre-check
            (lambda _
              ;; Tests require a running X server.
-             (system "Xvfb :1 &")
+             (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
-             #t)))))
-    (inputs
-     `(("gtk+" ,gtk+)))
+             #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-after 'move-doc 'move-examples
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (examples (assoc-ref outputs "examples")))
+               (mkdir-p (string-append examples "/bin"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append examples "/bin"))
+               #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
-       ("vala" ,vala)
+     `(("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
+       ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)
-
-       ;; Test suite dependencies.
-       ("xorg-server" ,xorg-server-for-tests)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)))
-    (home-page "https://source.puri.sm/Librem5/libhandy")
-    (synopsis "Library full of GTK+ widgets for mobile phones")
-    (description "The aim of the handy library is to help with developing user
-interfaces for mobile devices using GTK+.  It provides responsive GTK+ widgets
-for usage on small and big screens.")
+       ("vala" ,vala)
+       ("xmllint" ,libxml2)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("glade" ,glade)
+       ("glib" ,glib)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)))
+    (synopsis "Building blocks for modern adaptive GNOME apps")
+    (description "LibHandy aims to help with developing UI for mobile devices
+using GTK/GNOME.")
+    (home-page "https://gitlab.gnome.org/GNOME/libhandy")
     (license license:lgpl2.1+)))
 
 (define-public libgit2-glib
-- 
2.27.0


[-- Attachment #1.1.15: 0050-gnu-libmediaart-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4043 bytes --]

From 3a81ae114512ef23d748a2519e7612df10761754 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 27 Jul 2020 04:21:11 -0400
Subject: [PATCH 50/54] gnu: libmediaart: Update package definition.

* gnu/packages/gnome.scm (libmediaart): Update package definition.
[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, gettext-minimal, glib:bin,
gobject-introspection, gtk-doc and vala.
[inputs]: Remove gettext-minimal, gdk-pixbuf, gobject-introspection,
gtk+:doc and vala.
[propagated-inputs]: Add gdk-pixbuf+svg and glib.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 60 +++++++++++++++++++++++++++++-------------
 1 file changed, 42 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 39514aa460..22f6252f91 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1389,28 +1389,52 @@ handling and implementation of UPnP A/V profiles.")
   (package
     (name "libmediaart")
     (version "1.9.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
+    (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/reference/libmediaart"
+               (substitute* "libmediaart-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
-     `(("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
+     `(("docbook-xml" ,docbook-xml-4.1.2)
        ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:doc", gtk+ "doc")
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
-    (synopsis "Media art library for the GNOME desktop")
-    (description
-     "The libmediaart library is the foundation for media art caching,
-extraction, and lookup for applications on the desktop.")
+    (propagated-inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)))
+    (synopsis "Media-Art Library")
+    (description "LibMediaArt provides library tasked with managing, extracting
+and handling media art caches.")
     (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
     (license license:lgpl2.1+)))
 
-- 
2.27.0


[-- Attachment #1.1.16: 0051-gnu-libnma-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4290 bytes --]

From dc4acce6e2dab1954daccc0c0238cd1554de1b8d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 27 Jul 2020 05:01:13 -0400
Subject: [PATCH 51/54] gnu: libnma: Update package definition.

* gnu/packages/gnome.scm (libnma) [version]: Update to 1.8.30.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xml]: Modify phase.
['move-doc]: New phase.
[inputs]: Add glib. Move network-manager to ...
[propagated-inputs]: ... here.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 58 +++++++++++++++++++++++++++---------------
 1 file changed, 37 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 22f6252f91..3117ece373 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1650,26 +1650,37 @@ client devices can handle.")
 (define-public libnma
   (package
     (name "libnma")
-    (version "1.8.28")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
+    (version "1.8.30")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1d5gzn7ss5vi0bhc8s4i5gsrck1ajslajam5jxfqazg094mffcys"))))
     (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
          (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* "libnma-docs.xml"
-                 (("http://.*/docbookx\\.dtd")
-                  (string-append xmldoc "/docbookx.dtd")))
+             (substitute* "libnma-docs.xml"
+               (("http://www.oasis-open.org/docbook/xml/4.3/")
+                (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
      `(("docbook-xml" ,docbook-xml-4.3)
@@ -1681,18 +1692,23 @@ client devices can handle.")
        ("vala" ,vala)))
     (inputs
      `(("gcr" ,gcr)
+       ("glib" ,glib)
        ("gtk+" ,gtk+)
        ("iso-codes" ,iso-codes)
-       ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
-       ("network-manager" ,network-manager)))
-    (synopsis "Network Manager's applet library")
+       ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
+    (propagated-inputs
+     `(("libnm" ,network-manager)))
+    (synopsis "Network-Manager Applet Library")
     (description "Libnma is an applet library for Network Manager.  It was
 initially part of network-manager-applet and has now become a separate
 project.")
     (home-page "https://gitlab.gnome.org/GNOME/libnma")
-    ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
-    ;; "LGPL-2.1+".
-    (license license:gpl2+)))
+    (license
+     (list
+      ;; Library
+      license:gpl2+
+      ;; Others
+      license:lgpl2.1+))))
 
 (define-public gnome-menus
   (package
-- 
2.27.0


[-- Attachment #1.1.17: 0052-gnu-libpeas-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6245 bytes --]

From f5e01306c885d2605d457b387ae9a9b2596868f4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 27 Jul 2020 05:47:51 -0400
Subject: [PATCH 52/54] gnu: libpeas: Update package definition.

* gnu/packages/gnome.scm (libpeas) [version]: Update to 1.26.0.
[source]<origin>[sha256]: Modify base32.
[outputs]: New outputs "demo" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dpython2]: New flag.
[-Dvapi]: New flag.
[-Dgtk_doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['start-xorg-server]: Remove phase.
['pre-check]: New phase.
['move-doc]: New phase.
['move-demo]: New phase.
[native-inputs]: Add docbook-xml, gtk-doc, luajit and vala.
[inputs]: Add lua, python-2 and python2-pygobject. Remove gtk+.
[propagated-inputs]: Remove gobject-introspection. Add glib and gtk+.
[synopsis]: Modify.
[home-page]: Modify.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gnome.scm | 97 +++++++++++++++++++++++++++++++-----------
 1 file changed, 71 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3117ece373..5646a09e14 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3058,51 +3058,96 @@ form of information without getting in the user's way.")
 (define-public libpeas
   (package
     (name "libpeas")
-    (version "1.24.1")
+    (version "1.26.0")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/" name "/"
-                          (version-major+minor version)  "/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0xkk9zhkw8f2fm7g9nb4ry4xxig5n27s7rjmx6l7jr2941zdfxm9"))))
     (build-system meson-build-system)
+    (outputs '("out" "demo" "doc"))
     (arguments
-     '(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dpython2=true"
+        "-Dvapi=true"
+        "-Dgtk_doc=true")
+       #:phases
        (modify-phases %standard-phases
-         (add-before 'check 'start-xserver
+         (add-after 'unpack 'patch-docbook-xml
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((xorg-server (assoc-ref inputs "xorg-server"))
-                   (disp ":1"))
-               (setenv "DISPLAY" disp)
-               ;; Tests require a running X server.
-               (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
+             (with-directory-excursion "docs/reference"
+               (substitute* "libpeas-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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))
+             ;; 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)))
+         (add-after 'move-doc 'move-demo
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (demo (assoc-ref outputs "demo")))
+               (mkdir-p (string-append demo "/bin"))
+               (mkdir-p (string-append demo "/lib"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append demo "/bin"))
+               (rename-file
+                (string-append out "/lib/peas-demo")
+                (string-append demo "/lib/peas-demo"))
                #t))))))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("glade" ,glade3)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("docbook-xml" ,docbook-xml-4.3)
        ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("luajit" ,luajit)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
        ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("glade" ,glade)
+       ("lua" ,lua)
+       ("python2" ,python-2)
+       ("python3" ,python)
+       ("python2-pygobject" ,python2-pygobject)
+       ("python3-pygobject" ,python-pygobject)))
     (propagated-inputs
-     ;; The .pc file "Requires" gobject-introspection.
-     `(("gobject-introspection" ,gobject-introspection)))
-    (home-page "https://wiki.gnome.org/Libpeas")
-    (synopsis "GObject plugin system")
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)))
+    (synopsis "GObject Plugin System")
     (description
      "Libpeas is a gobject-based plugin engine, targeted at giving every
 application the chance to assume its own extensibility.  It also has a set of
 features including, but not limited to: multiple extension points; on-demand
 (lazy) programming language support for C, Python and JS; simplicity of the
 API.")
-    (license license:lgpl2.0+)))
+    (home-page "https://wiki.gnome.org/Projects/Libpeas")
+    (license license:lgpl2.1+)))
 
 (define-public gtkglext
   (package
-- 
2.27.0


[-- Attachment #1.1.18: 0053-gnu-rest-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4580 bytes --]

From 77b42f2623ca37bf0f452fd9eaa9c7e9ba01cf8e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 27 Jul 2020 10:45:27 -0400
Subject: [PATCH 53/54] gnu: rest: Update package definition.

* gnu/packages/gnome.scm (rest): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:tests?>: Remove argument.
<#:configure-flags>[--enable-gtk-doc]: New flag.
[--with-html-dir]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['disable-failing-tests]: New phase.
[native-inputs]: Add docbook-xml, gsettings-desktop-schemas and gtk-doc.
Remove glib:bin.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 66 +++++++++++++++++++++++++++++-------------
 1 file changed, 46 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5646a09e14..ebe3b2ded5 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5018,34 +5018,60 @@ proxy information from the GSettings schemas in gsettings-desktop-schemas.")
   (package
     (name "rest")
     (version "0.8.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/rest/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/rest/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:tests? #f ; tests require internet connection
-       #:configure-flags
-       '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
+        "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference/rest"
+               (substitute* "rest-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/Makefile.in"
+               (("oauth\\$\\(EXEEXT\\) oauth-async\\$\\(EXEEXT\\) oauth2\\$\\(EXEEXT\\)")
+                "")
+               (("flickr\\$\\(EXEEXT\\) lastfm\\$\\(EXEEXT\\) xml\\$\\(EXEEXT\\)")
+                "")
+               (("XFAIL_TESTS = xml\\$\\(EXEEXT\\)")
+                "XFAIL_TESTS ="))
+             #t)))))
     (native-inputs
-     `(("glib-mkenums" ,glib "bin")
+     `(("docbook-xml" ,docbook-xml-4.1.2)
        ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     ;; rest-0.7.pc refers to all these.
-     `(("glib"    ,glib)
+     `(("glib" ,glib)
        ("libsoup" ,libsoup)
        ("libxml2" ,libxml2)))
-    (home-page "https://www.gtk.org/")
-    (synopsis "RESTful web api query library")
-    (description
-     "This library was designed to make it easier to access web services that
-claim to be \"RESTful\".  It includes convenience wrappers for libsoup and
+    (synopsis "Library for Representational State Transfer")
+    (description "LibREST was designed to make it easier to access web services
+that claim to be RESTful.  It includes convenience wrappers for libsoup and
 libxml to ease remote use of the RESTful API.")
+    (home-page "https://gitlab.gnome.org/GNOME/librest")
     (license license:lgpl2.1+)))
 
 (define-public libsoup
-- 
2.27.0


[-- Attachment #1.1.19: 0054-gnu-libzapojit-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3845 bytes --]

From cafa3a036aec6d95ce6f477ad93987d5c0c703a2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 27 Jul 2020 11:59:41 -0400
Subject: [PATCH 54/54] gnu: libzapojit: Update package definition.

* gnu/packages/gnome.scm (libzapojit): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-gtk-doc]: New flag.
[--with-html-dir]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml and gtk-doc.
[inputs]: Move gnome-online-accounts:lib, json-glib and rest to ...
[propagated-inputs]: ... here. Add glib and libsoup.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 55 ++++++++++++++++++++++++++++++------------
 1 file changed, 39 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ebe3b2ded5..c68c089133 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10120,28 +10120,51 @@ libcanberra C library.")
   (package
     (name "libzapojit")
     (version "0.0.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "libzapojit-0.0-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
-     `(("gobject-introspection" ,gobject-introspection)
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("json-glib" ,json-glib)
+       ("libsoup" ,libsoup)
        ("rest" ,rest)))
+    (synopsis "REST API Wrapper")
+    (description "LibZapojit is a GLib/GObject wrapper for the SkyDrive and
+Hotmail REST APIs.")
     (home-page "https://wiki.gnome.org/Projects/Zapojit")
-    (synopsis "Library for accessing SkyDrive and Hotmail")
-    (description
-     "Libzapojit is a GLib-based library for accessing online service APIs of
-Microsoft SkyDrive and Hotmail, using their REST protocols.")
     (license license:lgpl2.1+)))
 
 (define-public gnome-clocks
-- 
2.27.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-27 16:11                                                 ` Raghav Gururajan
@ 2020-07-30 23:51                                                   ` Raghav Gururajan
  2020-08-02  7:32                                                   ` Raghav Gururajan
  1 sibling, 0 replies; 84+ messages in thread
From: Raghav Gururajan @ 2020-07-30 23:51 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

Please find the attached patches.

@Others

Please find the following git-log.

*** START ***

commit 7d6b9fc0f0b463f27881805bb0b9a2d981d855b3
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 19:35:16 2020 -0400

    gnu: tracker-miners: Update package definition.

    * gnu/packages/gnome.scm (tracker-miners): Update package definition.
    [arguments]<#:configure-flags>[-Dguarantee_metadata]: New flag.
    [-Dbattery_detection]: New flag.
    [-Dcharset_detection]: New flag.
    [-Dgeneric_media_extractor]: New flag.
    [-Dgstreamer_backend]: New flag.
    [-Dsystemd_user_services]: New flag.
    <#:phases>['disable-failing-tests]: New phase.
    [native-inputs]: Move dbus to ...
    [inputs]: ... here. Add gexiv2 and gst-plugins-base. Remove ffmpeg.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

commit 891b3bf662c1b8a3d2c0697d6940700d06ed9b61
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 18:16:05 2020 -0400

    gnu: tracker: Update package definition.

    * gnu/packages/gnome.scm (tracker): Update package definition.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[-Ddocs]: New flag.
    [-Dunicode_support]: New flag.
    [-Dsystemd_user_services]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['pre-check]: Modify phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, docbook-xsl, gtk-doc and
    python-wrapper.
    [inputs]: Add network-manager and libstemmer.
    [propagated-inputs]: Add glib.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

commit d3916961a3352f23115b0a589acf58a249f093cc
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 18:11:57 2020 -0400

    gnu: Add libstemmer.

    * gnu/packages/language.scm (libstemmer): New variable.

commit a5994a6443588953469753cd89bdbb98ae58e628
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 16:16:35 2020 -0400

    gnu: totem-pl-parser: Update package definition.

    * gnu/packages/gnome.scm (totem-pl-parser) [version]: Update to
    3.26.5.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Denable-gtk-doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml and gtk-doc.
    [inputs]: Add libgcrypt and libquvi.
    [propagated-inputs]: Add glib-networking. Remove gmime and libgcrypt.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit 0b6c493c6225e28a9fdae0ec7c5c58359bf3c14b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 15:47:17 2020 -0400

    gnu: libquvi: Update package definition.

    * gnu/packages/web.scm (libquvi) [version]: Update to 0.9.4.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to glib-or-gtk.
    [arguments]<#:configure-flags>: Remove argument.
    <#:phases>['disable-failing-tests]: New phase.
    [native-inputs]: Add doxygen and gettext-minimal.
    [inputs]: Add glib, glib-networking and libproxy. Remove cyrus-sasl,
    openssl and zlib.
    [description]: Modify.
    [license]: Modify.

commit b10c49007f83ee2cb02b7e6aebe269cfd2ff9cf0
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 14:45:29 2020 -0400

    gnu: libquvi-scripts: Update package definition.

    * gnu/packages/web.scm (libquvi-scripts) [version]: Update to
    0.9.20131130.
    [source]<origin>[sha256]: Modify base32.
    [native-inputs]: Add pkg-config.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

commit ea09e79d0db662be7af00abb068b2f8700691eb0
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 14:20:05 2020 -0400

    gnu: tepl: Update package definition.

    * gnu/packages/gnome.scm (tepl): Update package definition.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[--enable-gtk-doc]: New flag.
    [--with-html-dir]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['disable-failing-tests]: New phase.
    ['pre-check]: New flag.
    [native-inputs]: Add docbook-xml, gtk-doc and xorg-server-for-tests.
    [inputs]: Move all to ...
    [propagated-inputs]: ... here.

commit b41dc378aca5c1b0af17a33009fe8ab85c3de5f4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 11:24:09 2020 -0400

    gnu: vte: Update package definition.

    * gnu/packages/gnome.scm (vte) [version]: Update to 0.60.3.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Ddocs]: New flag.
    [-Dvapi]: Remove flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml and gtk-doc. Remove gperf.
    [inputs]: Add fribidi, gnutls, gperf, icu4c, pcre2 and zlib.
    [propagated-inputs]: Add glib and pango. Remove gnutls and pcre2.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Modify.

commit b1b90f180883bc5a1de6e853b87aa36d173f4e3e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 10:58:14 2020 -0400

    gnu: Add libgrss.

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

commit 0e4dfc5859dbb5d68a5adad11d828a7ea08ad468
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 08:32:57 2020 -0400

    gnu: gtksourceview: Fix glade.

    * gnu/packages/gtk.scm (gtksourceview) [inputs]: Change glade3 to glade.

commit 2cc46f80beaa4e3e90f564e7eae05518401f640c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 08:32:02 2020 -0400

    Revert "gnu: java-jakarta-oro: Update hash."

    This reverts commit e2bb2bdd01a21d20f769dcc34eae06bfb47b15fd.

commit 1c1680e7f898c9f8d09df9043f4e4b7f45d1709f
Author: Tobias Geerinckx-Rice <me@tobias.gr>
Date:   Sun Jul 5 08:22:11 2020 +0200

    download: Replace misconfigured Apache mirror.

    E.g. <http://apache.belnet.be/jakarta/oro/jakarta-oro-2.0.8.tar.gz>
    redirects to a bogus 200 HTML page.

    * guix/download.scm (%mirrors): Replace apache.belnet.be with
    ftp.nluug.nl.

commit e96e4102774ae26ee48528c9336555b59eec8418
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 08:00:14 2020 -0400

    gnu: phodav: Update package definition.

    * gnu/packages/gnome.scm (phodav): Update package definition.
    [outputs]: New outputs "tools", "spice" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dsystemd]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['patch-udevdir]: New phase.
    ['move-doc]: New phase.
    ['move-tools]: New phase.
    ['move-spice]: New phase.
    [native-inputs]: Add asciidoc, docbook-xml, docbook-xsl and xmlto.
    [inputs]: Add eudev. Remove libgudev and libsoup.
    [propagated-inputs]: Add glib, glib-networking, libsoup and libxml2.
    [synopsis]: Modify.
    [description]: Modify.

commit e0f0722c58692109f270ffef1d0a67964dfa2980
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 06:47:22 2020 -0400

    gnu: network-manager-applet: Update package definition.

    * gnu/packages/gnome.scm (network-manager-applet) [version]: Update
    to 1.18.0.
    [source]<origin>[sha256]: Modify base32.
    [native-inputs]: Add desktop-file-utils and libxml2. Remove gtk-doc.
    [propagated-inputs]: Remove dbus-glib. Move gtk+, network-manager and
    libnma to ...
    [inputs]: ... here. Add libappindicator, appstream-glib, glib,
    and glib-networking.
    [synopsis]: Modify.
    [description]: Modify.

commit 3cc0c9f1adf9921fb3def703c76c23aa50e52bf8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jul 30 06:24:56 2020 -0400

    gnu: appstream-glib: Fix tests.

    * gnu/packages/glib.scm (appstream-glib) [native-inputs]: Add
    gsettings-desktop-schemas.

commit 74970d66874db079cf74afb227cd2b2635e1f3f5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 29 08:21:17 2020 -0400

    gnu: network-manager: Update package definition.

    * gnu/packages/gnome.scm (network-manager) [version]: Update to 1.26.0.
    [source]<origin>[sha256]: Modify base32.
    [modules]: Remove field.
    [snippet]: Remove field.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dsystem_ca_path]: Modify flag.
    [-Ddbus_conf_dir]: Modify flag.
    [-Dkernel_firmware_dir]: New flag.
    [-Diptables]: New flag.
    [-Ddnsmasq]: New flag.
    [-Ddnssec_trigger]: New flag.
    [-Dsuspend_resume]: Modify flag.
    [-Dconfig_auth_polkit_default]: New flag.
    [-Dmodify_system]: New flag.
    [-Dpolkit_agent]: New flag.
    [-Dconfig_logging_backend_default]: New flag.
    [-Dofono]: New flag.
    [-Dnm_cloud_setup]: New flag.
    [-Dbluez5_dun]: New flag.
    [-Debpf]: New flag.
    [-Dnetconfig]: New flag.
    [-Dconfig_dns_rc_manager_default]: New flag.
    [-Dconfig_dhcp_default]: New flag.
    [-Dcrypto]: Modify flag.
    [--sysconfdir]: Remove flag.
    [--localstatedir]: Remove flag.
    [-Ddhclient]: Remove flag.
    <#:phases>['patch-docbook-xml]: Modify phase.
    ['pre-configure]: Modify phase.
    ['move-doc]: Modify phase.
    ['no-polkit-magic]: Remove phase.
    [native-inputs]: Modify docbook-xml. Add gjs, lua and ruby.
    [inputs]: Add bluez, dbus, dnsmasq, dnssec-trigger:nm, iptables,
    libselinux, nss-certs and upower. Remove cyrus-sasl, libgcrypt and
    libgudev.
    [propagated-inputs]: Add glib-networking.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Add fdl1.1+.

commit f2f16344786260b965bc9e18dd2c7ae276cfef3f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 29 15:49:38 2020 -0400

    gnu: Add dnssec-trigger.

    * gnu/packages/dns.scm (dnssec-trigger): New variable.

commit 07c0ba9d0cab30b08a4523264b4587e891743fe4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 29 14:11:35 2020 -0400

    gnu: libappindicator: Propagate gtk+ and libdbusmenu.

    * gnu/packages/freedesktop.scm (libappindicator) [inputs]: Move gtk+
    and libdbusmenu to ...
    [propagated-inputs]: ... here.

commit d3202ad0d219e029f9429c5a12ec33fe573aab21
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jul 29 12:50:18 2020 -0400

    gnu: Add ldns.

    * gnu/packages/dns.scm (ldns): New variable.

    * gnu/packages/patches/ldns-drill-examples.patch: New file.

    * gnu/local.mk (ldns-drill-examples.patch): New reference.

commit c6a125456ba8c2b7b46ac4381cff7c23ac3de204
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 28 10:10:49 2020 -0400

    gnu: mobile-broadband-provider-info: Update package definition.

    * gnu/packages/gnome.scm (mobile-broadband-provider-info) [version]:
    Update to 20190618.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:tests?>: Remove argument.
    [native-inputs]: Add pkg-config, libxml2 and libxslt.
    [description]: Modify.
    [home-page]: Modify.

commit 4ae9e078bd1748833baf70a07637a44dafd3887b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jul 28 09:36:52 2020 -0400

    gnu: mm-common: Update package definition.

    * gnu/packages/gnome.scm (mm-common): Update package definition.
    [native-inputs]: Remove gettext-minimal. Move coreutils and sed
    to ...
    [inputs]: ... here. Add automake.

*** END ***

Regards,
RG.

[-- Attachment #1.1.2: 0055-gnu-mm-common-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3936 bytes --]

From 4ae9e078bd1748833baf70a07637a44dafd3887b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 28 Jul 2020 09:36:52 -0400
Subject: [PATCH 55/75] gnu: mm-common: Update package definition.

* gnu/packages/gnome.scm (mm-common): Update package definition.
[native-inputs]: Remove gettext-minimal. Move coreutils and sed
to ...
[inputs]: ... here. Add automake.
---
 gnu/packages/gnome.scm | 55 +++++++++++++++++++++++-------------------
 1 file changed, 30 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c68c089133..342632a93f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -984,14 +984,15 @@ freedesktop.org desktop notification specification.")
   (package
     (name "mm-common")
     (version "1.0.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/mm-common/"
-                                  (version-major+minor version) "/"
-                                  "mm-common-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/mm-common/"
+                       (version-major+minor version) "/"
+                       "mm-common-" version ".tar.xz"))
+       (sha256
+        (base32 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -999,27 +1000,31 @@ freedesktop.org desktop notification specification.")
          (add-after 'unpack 'patch
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "util/mm-common-prepare.in"
-              (("ln") (string-append (assoc-ref inputs "coreutils")
-                                     "/bin/ln"))
-              (("cp") (string-append (assoc-ref inputs "coreutils")
-                                     "/bin/cp"))
-              (("sed") (string-append (assoc-ref inputs "sed")
-                                      "/bin/sed"))
-              (("cat") (string-append (assoc-ref inputs "coreutils")
-                                      "/bin/cat")))
+               (("ln")
+                (string-append (assoc-ref inputs "coreutils")
+                               "/bin/ln"))
+               (("cp")
+                (string-append (assoc-ref inputs "coreutils")
+                               "/bin/cp"))
+               (("sed")
+                (string-append (assoc-ref inputs "sed")
+                               "/bin/sed"))
+               (("cat")
+                (string-append (assoc-ref inputs "coreutils")
+                               "/bin/cat")))
              #t)))))
     (native-inputs
-     `(("coreutils" ,coreutils)
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)
-       ("sed" ,sed)))
+     `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("python" ,python)))
+     `(("automake" ,automake)
+       ("coreutils" ,coreutils)
+       ("sed" ,sed)
+       ("python" ,python)))
     (synopsis "Module of GNOME C++ bindings")
-    (description "The mm-common module provides the build infrastructure
-and utilities shared among the GNOME C++ binding libraries.  Release
-archives of mm-common include the Doxygen tag file for the GNU C++
-Library reference documentation.")
+    (description "The mm-common module provides the build infrastructure and
+utilities shared among the GNOME C++ binding libraries.  Release archives of
+mm-common include the Doxygen tag file for the GNU C++ Library reference
+documentation.")
     (home-page "https://gitlab.gnome.org/GNOME/mm-common")
     (license license:gpl2+)))
 
-- 
2.27.0


[-- Attachment #1.1.3: 0056-gnu-mobile-broadband-provider-info-Update-package-de.patch --]
[-- Type: text/x-patch, Size: 2546 bytes --]

From c6a125456ba8c2b7b46ac4381cff7c23ac3de204 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 28 Jul 2020 10:10:49 -0400
Subject: [PATCH 56/75] gnu: mobile-broadband-provider-info: Update package
 definition.

* gnu/packages/gnome.scm (mobile-broadband-provider-info) [version]:
Update to 20190618.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:tests?>: Remove argument.
[native-inputs]: Add pkg-config, libxml2 and libxslt.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 342632a93f..20a1a8ee51 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8711,22 +8711,26 @@ Cisco's AnyConnect SSL VPN.")
 (define-public mobile-broadband-provider-info
   (package
     (name "mobile-broadband-provider-info")
-    (version "20190116")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnome/sources/"
-                    "mobile-broadband-provider-info/" version "/"
-                    "mobile-broadband-provider-info-" version ".tar.xz"))
-              (sha256
-               (base32
-                "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
+    (version "20190618")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://gnome/sources/"
+         "mobile-broadband-provider-info/" version "/"
+         "mobile-broadband-provider-info-" version ".tar.xz"))
+       (sha256
+        (base32 "0nyf7kxxhig80myi7j45yg34nqqqxzm2xvdnxjg5p5yicnjn8bf2"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f))                    ; no tests
-    (home-page "https://wiki.gnome.org/Projects/NetworkManager")
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)
+       ("xsltproc" ,libxslt)))
     (synopsis "Database of broadband connection configuration")
-    (description "Database of broadband connection configuration.")
+    (description "Mobile-Broadband-Provider-Info contains mobile broadband
+settings for different service providers in different countries.")
+    (home-page "https://gitlab.gnome.org/GNOME/mobile-broadband-provider-info")
     (license license:public-domain)))
 
 (define-public network-manager-applet
-- 
2.27.0


[-- Attachment #1.1.4: 0057-gnu-Add-ldns.patch --]
[-- Type: text/x-patch, Size: 9503 bytes --]

From d3202ad0d219e029f9429c5a12ec33fe573aab21 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 29 Jul 2020 12:50:18 -0400
Subject: [PATCH 57/75] gnu: Add ldns.

* gnu/packages/dns.scm (ldns): New variable.

* gnu/packages/patches/ldns-drill-examples.patch: New file.

* gnu/local.mk (ldns-drill-examples.patch): New reference.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/dns.scm                          | 87 +++++++++++++++++++
 .../patches/ldns-drill-examples.patch         | 85 ++++++++++++++++++
 3 files changed, 173 insertions(+)
 create mode 100644 gnu/packages/patches/ldns-drill-examples.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 6fe674ffec..90b00eb4de 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1163,6 +1163,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/lcms-CVE-2018-16435.patch		\
   %D%/packages/patches/ldc-bootstrap-disable-tests.patch	\
   %D%/packages/patches/ldc-disable-phobos-tests.patch		\
+  %D%/packages/patches/ldns-drill-examples.patch		\
   %D%/packages/patches/leela-zero-gtest.patch			\
   %D%/packages/patches/less-hurd-path-max.patch			\
   %D%/packages/patches/lib2geom-enable-assertions.patch		\
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 98dd425562..5ea3273fed 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -38,6 +38,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages certs)
   #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
@@ -62,6 +63,7 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tls)
@@ -77,6 +79,91 @@
   #:use-module (guix build-system meson)
   #:use-module (guix build-system trivial))
 
+(define-public ldns
+  (package
+    (name "ldns")
+    (version "1.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.nlnetlabs.nl/downloads/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ac242n7996fswq1a3nlh1bbbhrsdwsq4mx7xq8ffq6aplb4rj4a"))
+       (patches
+        (search-patches
+         ;; To create make-flag vairables,
+         ;; for splitting installation of drill and examples.
+         "ldns-drill-examples.patch"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "drill" "examples" "pyldns"))
+    (arguments
+     `( ;; Tests require Tpkg.
+       ;; https://tpkg.github.io/
+       #:tests? #f
+       #:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gost-anyway"
+        "--enable-rrtype-ninfo"
+        "--enable-rrtype-rkey"
+        "--enable-rrtype-ta"
+        "--enable-rrtype-avc"
+        "--enable-rrtype-doa"
+        "--enable-rrtype-amtrelay"
+        "--with-drill"
+        "--with-examples"
+        "--with-pyldns"
+        ;; Perl module DNS::LDNS not available.
+        ;; https://github.com/erikoest/DNS-LDNS.git
+        ;; "--with-p5-dns-ldns"
+        (string-append "--with-ssl="
+                       (assoc-ref %build-inputs "openssl"))
+        (string-append "--with-ca-path="
+                       (assoc-ref %build-inputs "nss-certs")
+                       "/etc/ssl/certs"))
+       #:make-flags
+       (list
+        (string-append "drillbindir="
+                       (assoc-ref %outputs "drill")
+                       "/bin")
+        (string-append "drillmandir="
+                       (assoc-ref %outputs "drill")
+                       "/share/man")
+        (string-append "examplesbindir="
+                       (assoc-ref %outputs "examples")
+                       "/bin")
+        (string-append "examplesmandir="
+                       (assoc-ref %outputs "examples")
+                       "/share/man")
+        (string-append "python_site="
+                       (assoc-ref %outputs "pyldns")
+                       "/lib/python"
+                       ,(version-major+minor
+                         (package-version python))
+                       "/site-packages"))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("ksh" ,oksh)
+       ("perl" ,perl)
+       ("perl-devel-checklib" ,perl-devel-checklib)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("swig" ,swig)))
+    (inputs
+     `(("libpcap" ,libpcap)
+       ("nss-certs" ,nss-certs)
+       ("openssl" ,openssl)))
+    (synopsis "DNS library that facilitates DNS tool programming")
+    (description "LDNS aims to simplify DNS programming, it supports recent
+RFCs like the DNSSEC documents, and allows developers to easily create
+software conforming to current RFCs, and experimental software for current
+Internet Drafts.  A secondary benefit of using ldns is speed; ldns is written in
+C it should be a lot faster than Perl.")
+    (home-page "https://nlnetlabs.nl/projects/ldns/about/")
+    (license license:bsd-3)))
+
 (define-public dnsmasq
   (package
     (name "dnsmasq")
diff --git a/gnu/packages/patches/ldns-drill-examples.patch b/gnu/packages/patches/ldns-drill-examples.patch
new file mode 100644
index 0000000000..f85e14cebe
--- /dev/null
+++ b/gnu/packages/patches/ldns-drill-examples.patch
@@ -0,0 +1,85 @@
+From 68916cd7ffb49ece9126d13ef984595595a156c4 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <raghavgururajan@disroot.org>
+Date: Wed, 29 Jul 2020 12:32:48 -0400
+Subject: [PATCH] [PATCH]: Split installation of drill and examples.
+
+---
+ Makefile.in | 38 +++++++++++++++++++++-----------------
+ 1 file changed, 21 insertions(+), 17 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 442067de..9d2d5f4d 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -14,6 +14,10 @@ libdir		= @libdir@
+ includedir	= @includedir@
+ sysconfdir      = @sysconfdir@
+ doxygen		= @doxygen@
++drillbindir = @drillbindir@
++drillmandir = @drillmandir@
++examplesbindir = @examplesbindir@
++examplesmandir = @examplesmandir@
+ pywrapdir       = $(srcdir)/contrib/python
+ pyldnsxwrapdir  = $(srcdir)/contrib/ldnsx
+ p5_dns_ldns_dir = $(srcdir)/contrib/DNS-LDNS
+@@ -154,16 +158,16 @@ drill/drill.1: $(srcdir)/drill/drill.1.in
+ 	$(edit) $(srcdir)/drill/drill.1.in > drill/drill.1
+ 
+ install-drill: drill/drill drill/drill.1
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
+-	$(LIBTOOL) --mode=install cp drill/drill $(DESTDIR)$(bindir)
+-	$(INSTALL) -m 644 drill/drill.1 $(DESTDIR)$(mandir)/man1/drill.1
++	$(INSTALL) -m 755 -d $(drillbindir)
++	$(INSTALL) -m 755 -d $(drillmandir)
++	$(INSTALL) -m 755 -d $(drillmandir)/man1
++	$(LIBTOOL) --mode=install cp drill/drill $(drillbindir)
++	$(INSTALL) -m 644 drill/drill.1 $(drillmandir)/man1/drill.1
+ 
+ uninstall-drill:
+-	rm -f $(DESTDIR)$(bindir)/drill $(DESTDIR)$(mandir)/man1/drill.1
+-	test ! -d $(DESTDIR)$(mandir) || rmdir -p $(DESTDIR)$(mandir)/man1 || :;
+-	test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ;
++	rm -f $(drillbindir)/drill $(drillmandir)/man1/drill.1
++	test ! -d $(drillmandir) || rmdir -p $(drillmandir)/man1 || :;
++	test ! -d $(drillbindir) || rmdir -p $(drillbindir) || : ;
+ 
+ clean-drill:
+ 	$(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill drill/drill.1
+@@ -202,23 +206,23 @@ examples/ldns-verify-zone.1: $(srcdir)/examples/ldns-verify-zone.1.in
+ 	$(edit) $(srcdir)/examples/ldns-verify-zone.1.in > examples/ldns-verify-zone.1
+ 
+ install-examples: $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)
+-	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
++	$(INSTALL) -m 755 -d $(examplesbindir)
++	$(INSTALL) -m 755 -d $(examplesmandir)
++	$(INSTALL) -m 755 -d $(examplesmandir)/man1
+ 	for p in $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) ; do \
+-		$(LIBTOOL) --mode=install cp $$p $(DESTDIR)$(bindir) ; \
++		$(LIBTOOL) --mode=install cp $$p $(examplesbindir) ; \
+ 		if test -f $$p.1 ; \
+-		then $(INSTALL) -m 644 $$p.1 $(DESTDIR)$(mandir)/man1 ; \
+-		else $(INSTALL) -m 644 $(srcdir)/$$p.1 $(DESTDIR)$(mandir)/man1 ; \
++		then $(INSTALL) -m 644 $$p.1 $(examplesmandir)/man1 ; \
++		else $(INSTALL) -m 644 $(srcdir)/$$p.1 $(examplesmandir)/man1 ; \
+ 		fi ; \
+ 	done
+ 
+ uninstall-examples:
+ 	for p in $(EX_PROGS_BASENM) ; do \
+-		rm -f $(DESTDIR)$(bindir)/$$p $(DESTDIR)$(mandir)/man1/$$p.1 ;\
++		rm -f $(examplesbindir)/$$p $(examplesmandir)/man1/$$p.1 ;\
+ 	done
+-	test ! -d $(DESTDIR)$(mandir) || rmdir -p $(DESTDIR)$(mandir)/man1 || :;
+-	test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ;
++	test ! -d $(examplesmandir) || rmdir -p $(examplesmandir)/man1 || :;
++	test ! -d $(examplesbindir) || rmdir -p $(examplesbindir) || : ;
+ 
+ clean-examples:
+ 	$(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS) 
+-- 
+2.27.0
+
-- 
2.27.0


[-- Attachment #1.1.5: 0058-gnu-libappindicator-Propagate-gtk-and-libdbusmenu.patch --]
[-- Type: text/x-patch, Size: 1325 bytes --]

From 07c0ba9d0cab30b08a4523264b4587e891743fe4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 29 Jul 2020 14:11:35 -0400
Subject: [PATCH 58/75] gnu: libappindicator: Propagate gtk+ and libdbusmenu.

* gnu/packages/freedesktop.scm (libappindicator) [inputs]: Move gtk+
and libdbusmenu to ...
[propagated-inputs]: ... here.
---
 gnu/packages/freedesktop.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 02e25cf3e5..b471a6e46d 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1934,14 +1934,15 @@ useful with system integration.")
        ("xvfb" ,xorg-server-for-tests)))
     (inputs
      `(("dbus-glib" ,dbus-glib)
-       ("gtk+" ,gtk+)
-       ("libdbusmenu" ,libdbusmenu)
        ("libindicator" ,libindicator)
        ("python@2" ,python-2)
        ("python2-pygtk" ,python2-pygtk)
        ("python2-pygobject-2" ,python2-pygobject-2)
        ;; ("mono" ,mono) ; requires non-packaged gapi
        ("vala" ,vala)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("libdbusmenu" ,libdbusmenu)))
     (arguments
      ;; FIXME: do not hardcode gtk version
      `(#:configure-flags '("--with-gtk=3")
-- 
2.27.0


[-- Attachment #1.1.6: 0059-gnu-Add-dnssec-trigger.patch --]
[-- Type: text/x-patch, Size: 5910 bytes --]

From f2f16344786260b965bc9e18dd2c7ae276cfef3f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 29 Jul 2020 15:49:38 -0400
Subject: [PATCH 59/75] gnu: Add dnssec-trigger.

* gnu/packages/dns.scm (dnssec-trigger): New variable.
---
 gnu/packages/dns.scm | 106 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 106 insertions(+)

diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 5ea3273fed..a8f199290b 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -46,10 +46,12 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages groff)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
@@ -75,6 +77,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system trivial))
@@ -164,6 +167,109 @@ C it should be a lot faster than Perl.")
     (home-page "https://nlnetlabs.nl/projects/ldns/about/")
     (license license:bsd-3)))
 
+(define-public dnssec-trigger
+  (package
+    (name "dnssec-trigger")
+    (version "0.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.nlnetlabs.nl/downloads/"
+                       name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "10928q406x9r66a090xl5kznzgyxpja88w4srwcv454hd351j9f0"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "gui" "nm"))
+    (arguments
+     `(#:test-target "test"
+       #:configure-flags
+       (list
+        (string-append "--with-ssl="
+                       (assoc-ref %build-inputs "openssl"))
+        "--with-hooks=networkmanager"
+        (string-append "--with-networkmanager-dispatch="
+                       (assoc-ref %outputs "nm")
+                       "/etc/NetworkManager/dispatcher.d")
+        (string-append "--with-xdg-autostart="
+                       (assoc-ref %outputs "gui")
+                       "/etc/xdg/autostart")
+        (string-append "--with-uidir="
+                       (assoc-ref %outputs "gui")
+                       "/share/dnssec-trigger")
+        (string-append "--with-python="
+                       (assoc-ref %build-inputs "python")
+                       "/bin/python")
+        (string-append "--with-unbound-control="
+                       (assoc-ref %build-inputs "unbound")
+                       "/sbin/unbound-control")
+        "--with-forward-zones-support")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-configure
+           (lambda _
+             (substitute* "configure"
+               (("appindicator-0.1")
+                "appindicator3-0.1"))
+             #t))
+         (add-before 'configure 'patch-makefile
+           (lambda _
+             (substitute* "Makefile.in"
+               (("/usr")
+                "$(prefix)")
+               (("/etc")
+                "$(prefix)/etc")
+               ((".*gtk-update-icon-cache.*")
+                ""))
+             #t))
+         (add-after 'install 'remove-systemd
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (delete-file-recursively
+                (string-append out "/lib/systemd"))
+               #t)))
+         (add-after 'remove-systemd 'move-gui
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (gui (assoc-ref outputs "gui")))
+               (mkdir-p (string-append gui "/bin"))
+               (mkdir-p (string-append gui "/share"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append gui "/bin"))
+               (rename-file
+                (string-append out "/share/icons")
+                (string-append gui "/share/icons"))
+               #t)))
+         (add-after 'move-gui 'move-nm
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (nm (assoc-ref outputs "nm")))
+               (mkdir-p (string-append nm "/libexec"))
+               (rename-file
+                (string-append out "/libexec")
+                (string-append nm "/libexec"))
+               #t))))))
+    (native-inputs
+     `(("cmocka" ,cmocka)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("gtk+-2" ,gtk+-2)
+       ("ldns" ,ldns)
+       ("libappindicator" ,libappindicator)
+       ("openssl" ,openssl)
+       ("unbound" ,unbound)))
+    (synopsis "DNSSEC protection for the DNS traffic")
+    (description "DNSSEC-Trigger enables your computer to use DNSSEC protection
+for the DNS traffic.  It relies on the Unbound DNS resolver running locally on
+your system, which performs DNSSEC validation.  It reconfigures Unbound in such
+a way that it will signal it to to use the DHCP obtained forwarders if possible,
+fallback to doing its own AUTH queries if that fails, and if that fails it will
+prompt the user with the option to go with insecure DNS only.")
+    (home-page "https://www.nlnetlabs.nl/projects/dnssec-trigger/about/")
+    (license license:bsd-3)))
+
 (define-public dnsmasq
   (package
     (name "dnsmasq")
-- 
2.27.0


[-- Attachment #1.1.7: 0060-gnu-network-manager-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 16188 bytes --]

From 74970d66874db079cf74afb227cd2b2635e1f3f5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 29 Jul 2020 08:21:17 -0400
Subject: [PATCH 60/75] gnu: network-manager: Update package definition.

* gnu/packages/gnome.scm (network-manager) [version]: Update to 1.26.0.
[source]<origin>[sha256]: Modify base32.
[modules]: Remove field.
[snippet]: Remove field.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dsystem_ca_path]: Modify flag.
[-Ddbus_conf_dir]: Modify flag.
[-Dkernel_firmware_dir]: New flag.
[-Diptables]: New flag.
[-Ddnsmasq]: New flag.
[-Ddnssec_trigger]: New flag.
[-Dsuspend_resume]: Modify flag.
[-Dconfig_auth_polkit_default]: New flag.
[-Dmodify_system]: New flag.
[-Dpolkit_agent]: New flag.
[-Dconfig_logging_backend_default]: New flag.
[-Dofono]: New flag.
[-Dnm_cloud_setup]: New flag.
[-Dbluez5_dun]: New flag.
[-Debpf]: New flag.
[-Dnetconfig]: New flag.
[-Dconfig_dns_rc_manager_default]: New flag.
[-Dconfig_dhcp_default]: New flag.
[-Dcrypto]: Modify flag.
[--sysconfdir]: Remove flag.
[--localstatedir]: Remove flag.
[-Ddhclient]: Remove flag.
<#:phases>['patch-docbook-xml]: Modify phase.
['pre-configure]: Modify phase.
['move-doc]: Modify phase.
['no-polkit-magic]: Remove phase.
[native-inputs]: Modify docbook-xml. Add gjs, lua and ruby.
[inputs]: Add bluez, dbus, dnsmasq, dnssec-trigger:nm, iptables,
libselinux, nss-certs and upower. Remove cyrus-sasl, libgcrypt and
libgudev.
[propagated-inputs]: Add glib-networking.
[synopsis]: Modify.
[description]: Modify.
[license]: Add fdl1.1+.
---
 gnu/packages/gnome.scm | 287 +++++++++++++++++++++++++----------------
 1 file changed, 175 insertions(+), 112 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 20a1a8ee51..e996acf096 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -84,6 +84,7 @@
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages calendar)
   #:use-module (gnu packages cdrom)
+  #:use-module (gnu packages certs)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages code)
@@ -8390,58 +8391,115 @@ users.")
 (define-public network-manager
   (package
     (name "network-manager")
-    (version "1.24.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/NetworkManager/"
-                                  (version-major+minor version) "/"
-                                  "NetworkManager-" version ".tar.xz"))
-              (patches (search-patches "network-manager-plugin-path.patch"))
-              (sha256
-               (base32
-                "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (substitute* "src/devices/wwan/nm-modem-manager.c"
-                    (("systemd") "elogind"))
-                  #t))))
+    (version "1.26.0")
+    (properties '((upstream-name . "NetworkManager")))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/NetworkManager/"
+                       (version-major+minor version) "/"
+                       "NetworkManager-" version ".tar.xz"))
+       (sha256
+        (base32 "0isdqwp58d7r92sqsk7l2vlqwy518n8b7c7z94jk9gc1bdmjf8sj"))
+       (patches
+        (search-patches "network-manager-plugin-path.patch"))))
     (build-system meson-build-system)
-    (outputs '("out"
-               "doc")) ; 8 MiB of gtk-doc HTML
+    (outputs '("out" "doc"))
     (arguments
-     `(#:configure-flags
-       (let ((out      (assoc-ref %outputs "out"))
-             (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
-                                      "/sbin/dhclient")))
-         (list
-          ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
-          ;; component.
-          (string-append "-Dc_link_args=-Wl,-rpath="
-                         out "/lib:"
-                         out "/lib/NetworkManager/" ,version)
-          "-Dsystemd_journal=false"
-          "-Dsession_tracking=elogind"
-          "-Dsuspend_resume=elogind"
-          "-Dsystemdsystemunitdir=no"
-          "-Dsession_tracking_consolekit=false"
-          "-Ddhcpcd=no"
-          "-Ddhcpcanon=no"
-          "-Dcrypto=gnutls"
-          "-Diwd=true"
-          "-Dlibaudit=yes"
-          "-Dqt=false"
-          "-Ddocs=true"
-          "--sysconfdir=/etc"
-          "--localstatedir=/var"
-          (string-append "-Dudev_dir="
-                         out "/lib/udev")
-          (string-append "-Ddbus_conf_dir="
-                         out "/etc/dbus-1/system.d")
-
-          (string-append "-Ddhclient=" dhclient)))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        ;; System Paths
+        "-Dsystemdsystemunitdir=no"
+        (string-append "-Dsystem_ca_path="
+                       (assoc-ref %build-inputs "nss-certs")
+                       "/etc/ssl/certs")
+        (string-append "-Dudev_dir="
+                       (assoc-ref %outputs "out")
+                       "/lib/udev")
+        (string-append "-Ddbus_conf_dir="
+                       (assoc-ref %outputs "out")
+                       "/share/dbus-1/system.d")
+        (string-append "-Dkernel_firmware_dir="
+                       (assoc-ref %outputs "out")
+                       "/lib/firmware")
+        (string-append "-Diptables="
+                       (assoc-ref %build-inputs "iptables"))
+        (string-append "-Ddnsmasq="
+                       (assoc-ref %build-inputs "dnsmasq"))
+        (string-append "-Ddnssec_trigger="
+                       (assoc-ref %build-inputs "dnssec-trigger:nm")
+                       "/libexec/dnssec-trigger-script")
+        ;; Platform
+        "-Dsession_tracking_consolekit=false"
+        "-Dsession_tracking=elogind"
+        "-Dsuspend_resume=upower"
+        "-Dconfig_auth_polkit_default=true"
+        "-Dmodify_system=true"
+        "-Dpolkit_agent=true"
+        "-Dsystemd_journal=false"
+        "-Dconfig_logging_backend_default=syslog"
+        "-Dlibaudit=yes"
+        ;; Features
+        "-Diwd=true"
+        "-Dofono=true"
+        "-Dnm_cloud_setup=true"
+        "-Dbluez5_dun=true"
+        "-Debpf=true"
+        ;; Handlers for resolv.conf
+        "-Dnetconfig=no"
+        "-Dconfig_dns_rc_manager_default=resolvconf"
+        ;; DHCP Clients
+        "-Ddhcpcanon=no"
+        "-Ddhcpcd=no"
+        "-Dconfig_dhcp_default=dhclient"
+        ;; Miscellaneous
+        "-Ddocs=true"
+        "-Dcrypto=gnutls"
+        "-Dqt=false"
+        ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
+        ;; component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/NetworkManager/" ,version))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute*
+                 '("docs/api/network-manager-docs.xml"
+                   "docs/libnm/libnm-docs.xml")
+               (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                (string-append (assoc-ref inputs "docbook-xml-4.1.2")
+                               "/xml/dtd/docbook/")))
+             (substitute*
+                 '("docs/api/network-manager-docs.xml"
+                   "docs/libnm/libnm-docs.xml"
+                   "man/NetworkManager.conf.xml"
+                   "man/NetworkManager.xml"
+                   "man/nm-initrd-generator.xml"
+                   "man/nm-online.xml"
+                   "man/nm-openvswitch.xml"
+                   "man/nmcli-examples.xml"
+                   "man/nmcli.xml"
+                   "man/nmtui.xml")
+               (("http://www.oasis-open.org/docbook/xml/4.2/")
+                (string-append (assoc-ref inputs "docbook-xml-4.2")
+                               "/xml/dtd/docbook/")))
+             (substitute*
+                 '("docs/api/settings-spec.xsl"
+                   "man/nm-settings-dbus.xsl"
+                   "man/nm-settings-ifcfg-rh.xsl"
+                   "man/nm-settings-keyfile.xsl"
+                   "man/nm-settings-nmcli.xsl")
+               (("http://www.oasis-open.org/docbook/xml/4.3/")
+                (string-append (assoc-ref inputs "docbook-xml-4.3")
+                               "/xml/dtd/docbook/")))
+             #t))
          (add-before 'configure 'pre-configure
            (lambda _
              ;; These tests try to test aspects of network-manager's
@@ -8450,101 +8508,106 @@ users.")
              ;; lacks some features that they would like to proxy over (like
              ;; a /sys mount).
              (substitute* "src/platform/tests/meson.build"
-               ((".*test-address-linux.*") "")
-               ((".*test-cleanup-linux.*") "")
-               ((".*test-link-linux.*") "")
-               ((".*test-route-linux.*") ""))
+               ((".*test-address-linux.*")
+                "")
+               ((".*test-cleanup-linux.*")
+                "")
+               ((".*test-link-linux.*")
+                "")
+               ((".*test-route-linux.*")
+                "")
+               ((".*test-tc-linux.*")
+                ""))
              (substitute* "src/devices/tests/meson.build"
-               ((".*test-acd.*") "")
-               ((".*test-lldp.*") ""))
+               ((".*test-acd.*")
+                "")
+               ((".*test-lldp.*")
+                ""))
              #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* (find-files "." ".*\\.(xsl|xml)")
-                 (("http://.*/docbookx\\.dtd")
-                  (string-append xmldoc "/docbookx.dtd")))
-               #t)))
          (add-before 'check 'pre-check
            (lambda _
              ;; For the missing /etc/machine-id.
              (setenv "DBUS_FATAL_WARNINGS" "0")
              #t))
-         (add-before 'install 'no-polkit-magic
-           ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
-           (lambda _
-             (setenv "PKEXEC_UID" "something")
-             #t))
          (add-after 'install 'move-doc
            (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"))
-               (for-each (lambda (directory)
-                           (copy-recursively (string-append out directory)
-                                             (string-append doc directory))
-                           (delete-file-recursively
-                            (string-append out directory)))
-                         '("/share/doc" "/share/gtk-doc"))
+               (rename-file
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
                #t))))))
-    (propagated-inputs
-     `(("glib" ,glib)))
     (native-inputs
-     `(("glib:bin" ,glib "bin")         ; for gdbus-codegen
-       ("gtk-doc" ,gtk-doc)
-       ("gobject-introspection" ,gobject-introspection)
-       ("docbook-xml" ,docbook-xml)
+     `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
+       ("docbook-xml-4.2" ,docbook-xml-4.2)
+       ("docbook-xml-4.3" ,docbook-xml-4.3)
        ("docbook-xsl" ,docbook-xsl)
+       ("gjs" ,gjs)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
-       ("libxslt" ,libxslt)
-       ("libxml2" ,libxml2)
+       ("lua" ,lua)
        ("pkg-config" ,pkg-config)
-       ("vala" ,vala)
-       ;; For testing.
        ("python" ,python-wrapper)
        ("python-dbus" ,python-dbus)
-       ("python-pygobject" ,python-pygobject)))
+       ("python-pygobject" ,python-pygobject)
+       ("ruby" ,ruby)
+       ("vala" ,vala)
+       ("xmllint" ,libxml2)
+       ("xsltproc" ,libxslt)))
     (inputs
-     `(("curl" ,curl)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("dbus-glib" ,dbus-glib)
+     `(("audit" ,audit)
+       ("bluez" ,bluez)
+       ("dbus" ,dbus)
        ("dnsmasq" ,dnsmasq)
-       ("eudev" ,eudev)
+       ("dnssec-trigger:nm" ,dnssec-trigger "nm")
        ("gnutls" ,gnutls)
        ("iptables" ,iptables)
        ("isc-dhcp" ,isc-dhcp)
-       ("iwd" ,iwd)                     ; wpa_supplicant alternative
+       ("iwd" ,iwd)
        ("jansson" ,jansson)
-       ("libaudit" ,audit)
-       ("libgcrypt" ,libgcrypt)
-       ("libgudev" ,libgudev)
+       ("libcurl" ,curl)
+       ("libelogind" ,elogind)
        ("libndp" ,libndp)
+       ("libnewt" ,newt)
        ("libnl" ,libnl)
+       ("libpsl" ,libpsl)
+       ("libselinux" ,libselinux)
        ("libsoup" ,libsoup)
+       ("libudev" ,eudev)
+       ("mm-glib" ,modem-manager)
        ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
-       ("modem-manager" ,modem-manager)
-       ("newt" ,newt)                       ;for the 'nmtui' console interface
-       ("openresolv" ,openresolv)           ; alternative resolv.conf manager
+       ("nss" ,nss)
+       ("nss-certs" ,nss-certs)
+       ("openresolv" ,openresolv)
        ("polkit" ,polkit)
        ("ppp" ,ppp)
        ("readline" ,readline)
-       ("util-linux" ,util-linux)
-       ("elogind" ,elogind)))
-    (synopsis "Network connection manager")
+       ("upower" ,upower)
+       ("util-linux" ,util-linux)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)))
+    (synopsis "Network Management Daemon")
+    (description "NetworkManager daemon attempts to make networking
+configuration and operation as painless and automatic as possible by managing
+the primary network connection and other network interfaces, like Ethernet,
+Wi-Fi, and Mobile Broadband devices.  It will connect any network device when a
+connection for that device becomes available, unless that behavior is disabled.
+Information about networking is exported via a D-Bus interface to any interested
+application, providing a rich API with which to inspect and control network
+settings and operation.")
     (home-page "https://wiki.gnome.org/Projects/NetworkManager")
-    (description
-     "NetworkManager is a system network service that manages your network
-devices and connections, attempting to keep active network connectivity when
-available.  It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
-devices, and provides VPN integration with a variety of different VPN
-services.")
-    ;; “This NetworkManager project consists of the daemon, client tools, and
-    ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
-    ;; GPL-2.0+.”
-    (license (list license:gpl2+
-                   license:lgpl2.1+))
-    (properties '((upstream-name . "NetworkManager")))))
+    (license
+     (list
+      ;; Documentation
+      license:fdl1.1+
+      ;; Library
+      license:lgpl2.1+
+      ;; Others
+      license:gpl2+))))
 
 (define-public network-manager-openvpn
   (package
-- 
2.27.0


[-- Attachment #1.1.8: 0061-gnu-appstream-glib-Fix-tests.patch --]
[-- Type: text/x-patch, Size: 905 bytes --]

From 3cc0c9f1adf9921fb3def703c76c23aa50e52bf8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 06:24:56 -0400
Subject: [PATCH 61/75] gnu: appstream-glib: Fix tests.

* gnu/packages/glib.scm (appstream-glib) [native-inputs]: Add
gsettings-desktop-schemas.
---
 gnu/packages/glib.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index a018686536..d621cebc13 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -956,6 +956,7 @@ programming language.  It also contains the utility
        ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)))
     (inputs
-- 
2.27.0


[-- Attachment #1.1.9: 0062-gnu-network-manager-applet-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3966 bytes --]

From e0f0722c58692109f270ffef1d0a67964dfa2980 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 06:47:22 -0400
Subject: [PATCH 62/75] gnu: network-manager-applet: Update package definition.

* gnu/packages/gnome.scm (network-manager-applet) [version]: Update
to 1.18.0.
[source]<origin>[sha256]: Modify base32.
[native-inputs]: Add desktop-file-utils and libxml2. Remove gtk-doc.
[propagated-inputs]: Remove dbus-glib. Move gtk+, network-manager and
libnma to ...
[inputs]: ... here. Add libappindicator, appstream-glib, glib,
and glib-networking.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 58 +++++++++++++++++++++---------------------
 1 file changed, 29 insertions(+), 29 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e996acf096..78170f9609 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8799,44 +8799,44 @@ settings for different service providers in different countries.")
 (define-public network-manager-applet
   (package
     (name "network-manager-applet")
-    (version "1.16.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/network-manager-applet/"
-                                  (version-major+minor version) "/"
-                                  "network-manager-applet-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/network-manager-applet/"
+                       (version-major+minor version) "/"
+                       "network-manager-applet-" version ".tar.xz"))
+       (sha256
+        (base32 "12xiy8g8qk18jvxvn78mvq03zvzp06bww49na765jjw0rq541fyx"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t))
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("intltool" ,intltool)
-       ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
+     `(("desktop-file-vaildate" ,desktop-file-utils)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc)
-       ("pkg-config" ,pkg-config)))
-    (propagated-inputs
-     ;; libnm-gtk.pc refers to all these.
-     `(("dbus-glib" ,dbus-glib)
-       ("gtk+" ,gtk+)
-       ("network-manager" ,network-manager)
-       ;; nm-applet need by org.gnome.nm-applet.gschema.xml
-       ("libnma" ,libnma)))
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("gcr" ,gcr)
-       ("libgudev" ,libgudev)
+     `(("appindicator" ,libappindicator)
+       ("appstream-util" ,appstream-glib)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gtk+" ,gtk+)
+       ("gudev" ,libgudev)
+       ("jansson" ,jansson)
+       ("libnm" ,network-manager)
+       ("libnma" ,libnma)
        ("libnotify" ,libnotify)
        ("libsecret" ,libsecret)
        ("libselinux" ,libselinux)
-       ("jansson" ,jansson) ; for team support
-       ("modem-manager" ,modem-manager)))
-    (synopsis "Applet for managing network connections")
+       ("mm-glib" ,modem-manager)))
+    (synopsis "Applet for NetworkManager")
+    (description "Network-Manager-Applet is a tray applet and an advanced
+network connection editor.")
     (home-page "https://wiki.gnome.org/Projects/NetworkManager")
-    (description
-     "This package contains a systray applet for NetworkManager.  It displays
-the available networks and allows users to easily switch between them.")
     (license license:gpl2+)))
 
 (define-public libxml++
-- 
2.27.0


[-- Attachment #1.1.10: 0063-gnu-phodav-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5843 bytes --]

From e96e4102774ae26ee48528c9336555b59eec8418 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 08:00:14 -0400
Subject: [PATCH 63/75] gnu: phodav: Update package definition.

* gnu/packages/gnome.scm (phodav): Update package definition.
[outputs]: New outputs "tools", "spice" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dsystemd]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['patch-udevdir]: New phase.
['move-doc]: New phase.
['move-tools]: New phase.
['move-spice]: New phase.
[native-inputs]: Add asciidoc, docbook-xml, docbook-xsl and xmlto.
[inputs]: Add eudev. Remove libgudev and libsoup.
[propagated-inputs]: Add glib, glib-networking, libsoup and libxml2.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 111 +++++++++++++++++++++++++++++++----------
 1 file changed, 85 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 78170f9609..297a008a86 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1031,32 +1031,91 @@ documentation.")
 
 (define-public phodav
   (package
-   (name "phodav")
-   (version "2.4")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
-   (build-system meson-build-system)
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gtk-doc" ,gtk-doc)
-      ("pkg-config" ,pkg-config)))
-   (inputs
-    `(("avahi" ,avahi)
-      ("libgudev" ,libgudev)
-      ("libsoup" ,libsoup)))
-   (synopsis "WebDav server implementation using libsoup")
-   (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
-but it is generic enough to be reused in other projects,
-in particular in the GNOME desktop.")
-   (home-page "https://wiki.gnome.org/phodav")
-   (license license:lgpl2.1+)))
+    (name "phodav")
+    (version "2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
+    (build-system meson-build-system)
+    (outputs '("out" "tools" "spice" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dsystemd=disabled")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/reference"
+               (substitute* '("phodav-2.0-docs.sgml" "phodav-docs.sgml.in")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'patch-udevdir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
+                (string-append "'"
+                               (assoc-ref outputs "out")
+                               "/lib/udev" "'")))
+             #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-after 'move-doc 'move-tools
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (tools (assoc-ref outputs "tools")))
+               (mkdir-p (string-append tools "/bin"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append tools "/bin"))
+               #t)))
+         (add-after 'move-tools 'move-spice
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (spice (assoc-ref outputs "spice")))
+               (mkdir-p (string-append spice "/sbin"))
+               (rename-file
+                (string-append out "/sbin")
+                (string-append spice "/sbin"))
+               #t))))))
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("xmlto" ,xmlto)))
+    (inputs
+     `(("avahi" ,avahi)
+       ("udev" ,eudev)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)))
+    (synopsis "WebDAV Support for GNOME")
+    (description "PhoDav is a WebDav server implementation using libsoup
+(RFC 4918).")
+    (home-page "https://wiki.gnome.org/phodav")
+    (license license:lgpl2.1+)))
 
 (define-public gnome-color-manager
   (package
-- 
2.27.0


[-- Attachment #1.1.11: 0064-download-Replace-misconfigured-Apache-mirror.patch --]
[-- Type: text/x-patch, Size: 1064 bytes --]

From 1c1680e7f898c9f8d09df9043f4e4b7f45d1709f Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Sun, 5 Jul 2020 08:22:11 +0200
Subject: [PATCH 64/75] download: Replace misconfigured Apache mirror.

E.g. <http://apache.belnet.be/jakarta/oro/jakarta-oro-2.0.8.tar.gz>
redirects to a bogus 200 HTML page.

* guix/download.scm (%mirrors): Replace apache.belnet.be with
ftp.nluug.nl.
---
 guix/download.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/download.scm b/guix/download.scm
index e5df678315..b7931e568f 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -140,7 +140,7 @@
       (apache             ; from http://www.apache.org/mirrors/dist.html
        "http://www.eu.apache.org/dist/"
        "http://www.us.apache.org/dist/"
-       "http://apache.belnet.be/"
+       "https://ftp.nluug.nl/internet/apache/"
        "http://apache.mirror.iweb.ca/"
        "http://mirrors.ircam.fr/pub/apache/"
        "http://apache.mirrors.ovh.net/ftp.apache.org/dist/"
-- 
2.27.0


[-- Attachment #1.1.12: 0065-Revert-gnu-java-jakarta-oro-Update-hash.patch --]
[-- Type: text/x-patch, Size: 972 bytes --]

From 2cc46f80beaa4e3e90f564e7eae05518401f640c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 08:32:02 -0400
Subject: [PATCH 65/75] Revert "gnu: java-jakarta-oro: Update hash."

This reverts commit e2bb2bdd01a21d20f769dcc34eae06bfb47b15fd.
---
 gnu/packages/java.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 601aecf8f8..48f9a52a56 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -10985,7 +10985,7 @@ inside a Zip archive.")
                                   "jakarta-oro-" version ".tar.gz"))
               (sha256
                (base32
-                "0v37kj8rj1s0s4dcs8zr1gb32i8ajzx3cxmsqhsbmgkr89vrgrqx"))
+                "0rpmnsskiwmsy8r0sckz5n5dbvh3vkxx8hpm177c754r8xy3qksc"))
               (modules '((guix build utils)))
               (snippet
                `(begin
-- 
2.27.0


[-- Attachment #1.1.13: 0066-gnu-gtksourceview-Fix-glade.patch --]
[-- Type: text/x-patch, Size: 804 bytes --]

From 0e4dfc5859dbb5d68a5adad11d828a7ea08ad468 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 08:32:57 -0400
Subject: [PATCH 66/75] gnu: gtksourceview: Fix glade.

* gnu/packages/gtk.scm (gtksourceview) [inputs]: Change glade3 to glade.
---
 gnu/packages/gtk.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 9087f662a1..f3e00836ff 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -523,7 +523,7 @@ diagrams.")
        ("vala" ,vala)
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("glade" ,glade3)))
+     `(("glade" ,glade)))
     (propagated-inputs
      `(("fribidi" ,fribidi)
        ("glib" ,glib)
-- 
2.27.0


[-- Attachment #1.1.14: 0067-gnu-Add-libgrss.patch --]
[-- Type: text/x-patch, Size: 2591 bytes --]

From b1b90f180883bc5a1de6e853b87aa36d173f4e3e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 10:58:14 -0400
Subject: [PATCH 67/75] gnu: Add libgrss.

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

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 297a008a86..44bb1b41ff 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -269,6 +269,53 @@ 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 libgrss
+  (package
+    (name "libgrss")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/reference"
+               (substitute* "libgrss-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
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)))
+    (synopsis "Glib library for feeds")
+    (description "LibGRSS is a Glib abstaction to handle feeds in RSS, Atom and
+other formats.")
+    (home-page "https://wiki.gnome.org/Projects/Libgrss")
+    (license license:lgpl3+)))
+
 (define-public gnome-js-common
   (package
     (name "gnome-js-common")
-- 
2.27.0


[-- Attachment #1.1.15: 0068-gnu-vte-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5251 bytes --]

From b41dc378aca5c1b0af17a33009fe8ab85c3de5f4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 11:24:09 -0400
Subject: [PATCH 68/75] gnu: vte: Update package definition.

* gnu/packages/gnome.scm (vte) [version]: Update to 0.60.3.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Ddocs]: New flag.
[-Dvapi]: Remove flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml and gtk-doc. Remove gperf.
[inputs]: Add fribidi, gnutls, gperf, icu4c, pcre2 and zlib.
[propagated-inputs]: Add glib and pango. Remove gnutls and pcre2.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 89 +++++++++++++++++++++++++++++-------------
 1 file changed, 62 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 44bb1b41ff..eb2c586411 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -105,6 +105,7 @@
   #:use-module (gnu packages file-systems)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages fribidi)
   #:use-module (gnu packages game-development)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
@@ -4719,40 +4720,74 @@ targeting the GNOME stack simple.")
 (define-public vte
   (package
     (name "vte")
-    (version "0.60.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/vte/"
-                                  (version-major+minor version) "/"
-                                  "vte-" version ".tar.xz"))
-              (sha256
-               (base32
-                "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
+    (version "0.60.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/vte/"
+                       (version-major+minor version) "/"
+                       "vte-" version ".tar.xz"))
+       (sha256
+        (base32 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:configure-flags
-       '("-Dvapi=true"
-         "-D_systemd=false")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Ddocs=true"
+        "-D_systemd=false")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/reference"
+               (substitute* "vte-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)
        ("gettext" ,gettext-minimal)
-       ("vala" ,vala)
+       ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("gperf" ,gperf)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
        ("xmllint" ,libxml2)))
+    (inputs
+     `(("fribidi" ,fribidi)
+       ("gnutls" ,gnutls)
+       ("gperf" ,gperf)
+       ("icu-uc" ,icu4c)
+       ("libpcre2" ,pcre2)
+       ("zlib" ,zlib)))
     (propagated-inputs
-     `(("gtk+" ,gtk+)                   ; required by vte-2.91.pc
-       ("gnutls" ,gnutls)               ; ditto
-       ("pcre2" ,pcre2)))               ; ditto
-    (home-page "https://www.gnome.org/")
-    (synopsis "Virtual Terminal Emulator")
-    (description
-     "VTE is a library (libvte) implementing a terminal emulator widget for
-GTK+, and a minimal sample application (vte) using that.  Vte is mainly used in
-gnome-terminal, but can also be used to embed a console/terminal in games,
-editors, IDEs, etc.")
-    (license license:lgpl2.1+)))
+     `(("glib" ,glib)
+       ("pango" ,pango)
+       ("gtk+" ,gtk+)))
+    (synopsis "Virtual Terminal library")
+    (description "VTE provides a virtual terminal widget for GTK applications.")
+    (home-page "https://wiki.gnome.org/Apps/Terminal/VTE")
+    (license
+     (list
+      ;; Documentation
+      license:cc-by-sa4.0
+      ;; Library
+      license:lgpl3+
+      ;; Others
+      license:gpl3+))))
 
 (define-public vte-ng
   (package
-- 
2.27.0


[-- Attachment #1.1.16: 0069-gnu-tepl-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3261 bytes --]

From ea09e79d0db662be7af00abb068b2f8700691eb0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 14:20:05 -0400
Subject: [PATCH 69/75] gnu: tepl: Update package definition.

* gnu/packages/gnome.scm (tepl): Update package definition.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[--enable-gtk-doc]: New flag.
[--with-html-dir]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['disable-failing-tests]: New phase.
['pre-check]: New flag.
[native-inputs]: Add docbook-xml, gtk-doc and xorg-server-for-tests.
[inputs]: Move all to ...
[propagated-inputs]: ... here.
---
 gnu/packages/gnome.scm | 44 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 38 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index eb2c586411..fdbc394735 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -947,15 +947,47 @@ between different kinds of computer systems.")
                        (version-major+minor version) "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
+        (base32 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f))                    ; FIX-ME: Requires gvfs
+     `(#:configure-flags
+       (list
+        "--enable-gtk-doc"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '( "api-breaks.xml" "intro.xml.in"
+                               "porting-guides.xml" "tepl-docs.xml.in")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'disable-failing-tests
+           (lambda _
+             (substitute* "testsuite/Makefile.in"
+               (("test-file-loader\\$\\(EXEEXT\\) test-file-metadata\\$\\(EXEEXT\\)")
+                "test-file-loader$(EXEEXT)"))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             #t)))))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
-    (inputs
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (propagated-inputs
      `(("amtk" ,amtk)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
-- 
2.27.0


[-- Attachment #1.1.17: 0070-gnu-libquvi-scripts-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2046 bytes --]

From b10c49007f83ee2cb02b7e6aebe269cfd2ff9cf0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 14:45:29 -0400
Subject: [PATCH 70/75] gnu: libquvi-scripts: Update package definition.

* gnu/packages/web.scm (libquvi-scripts) [version]: Update to
0.9.20131130.
[source]<origin>[sha256]: Modify base32.
[native-inputs]: Add pkg-config.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/web.scm | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index c449267f3d..c23b8ea8be 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1508,21 +1508,24 @@ hash/signatures.")
 (define-public libquvi-scripts
   (package
     (name "libquvi-scripts")
-    (version "0.4.21")
+    (version "0.9.20131130")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "mirror://sourceforge/quvi/" (version-major+minor version) "/"
-             name "/" name "-" version ".tar.xz"))
+       (uri
+        (string-append
+         "mirror://sourceforge/quvi/" (version-major+minor version) "/"
+         name "/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "0d0giry6bb57pnidymvdl7i5x9bq3ljk3g4bs294hcr5mj3cq0kw"))))
+        (base32 "1qvp6z5k1qgcys7vf7jd6fm0g07xixmciwj14ypn1kqhmjgizwhp"))))
     (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (synopsis "Scripts for Libquvi")
+    (description "Libquvi-Scripts is a selection of Lua scripts that libquvi
+calls upon to parse the properties for a media URL.")
     (home-page "http://quvi.sourceforge.net/")
-    (synopsis "Media stream URL parser")
-    (description "This package contains support scripts called by libquvi to
-parse media stream properties.")
-    (license license:lgpl2.1+)))
+    (license license:agpl3+)))
 
 (define-public libquvi
   (package
-- 
2.27.0


[-- Attachment #1.1.18: 0071-gnu-libquvi-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3497 bytes --]

From 0b6c493c6225e28a9fdae0ec7c5c58359bf3c14b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 15:47:17 -0400
Subject: [PATCH 71/75] gnu: libquvi: Update package definition.

* gnu/packages/web.scm (libquvi) [version]: Update to 0.9.4.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[arguments]<#:configure-flags>: Remove argument.
<#:phases>['disable-failing-tests]: New phase.
[native-inputs]: Add doxygen and gettext-minimal.
[inputs]: Add glib, glib-networking and libproxy. Remove cyrus-sasl,
openssl and zlib.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/web.scm | 53 +++++++++++++++++++++++++-------------------
 1 file changed, 30 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index c23b8ea8be..68b64eef76 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1530,36 +1530,43 @@ calls upon to parse the properties for a media URL.")
 (define-public libquvi
   (package
     (name "libquvi")
-    (version "0.4.1")
+    (version "0.9.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "mirror://sourceforge/quvi/" (version-major+minor version) "/" name "/"
-             name "-" version ".tar.xz"))
+       (uri
+        (string-append
+         "mirror://sourceforge/quvi/" (version-major+minor version) "/" name "/"
+         name "-" version ".tar.xz"))
        (sha256
-        (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+        (base32 "1cl1kbgxl1jnx2nwx4z90l0lap09lnnj1fg7hxsxk3m6aj4y4grd"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/Makefile.in"
+               (("script quvi playlist supports resolve media scan goto")
+                "playlist resolve media scan goto"))
+             #t)))))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("curl" ,curl)
-       ("cyrus-sasl" ,cyrus-sasl)
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("libcurl" ,curl)
+       ("libgcrypt" ,libgcrypt)
+       ("libproxy" ,libproxy)
        ("libquvi-scripts" ,libquvi-scripts)
-       ("lua" ,lua-5.1)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
-    (arguments
-     ;; Lua provides no .pc file, so add CFLAGS/LIBS manually.
-     '(#:configure-flags
-       (let ((lua (assoc-ref %build-inputs "lua")))
-         (list
-          (string-append "liblua_CFLAGS=-I" lua "/include")
-          (string-append "liblua_LIBS=-L" lua "/libs -llua")))))
-    (home-page "http://quvi.sourceforge.net/")
+       ("lua" ,lua-5.1)))
     (synopsis "Media stream URL parser")
-    (description "libquvi is a library with a C API for parsing media stream
-URLs and extracting their actual media files.")
-    (license license:lgpl2.1+)))
+    (description "Libquvi is the library with an C API to parse the media
+stream properties.")
+    (home-page "http://quvi.sourceforge.net/")
+    (license license:agpl3+)))
 
 (define-public quvi
   (package
-- 
2.27.0


[-- Attachment #1.1.19: 0072-gnu-totem-pl-parser-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4946 bytes --]

From a5994a6443588953469753cd89bdbb98ae58e628 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 16:16:35 -0400
Subject: [PATCH 72/75] gnu: totem-pl-parser: Update package definition.

* gnu/packages/gnome.scm (totem-pl-parser) [version]: Update to
3.26.5.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Denable-gtk-doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml and gtk-doc.
[inputs]: Add libgcrypt and libquvi.
[propagated-inputs]: Add glib-networking. Remove gmime and libgcrypt.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 93 +++++++++++++++++++++++++++---------------
 1 file changed, 60 insertions(+), 33 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fdbc394735..d5f474c513 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6036,39 +6036,66 @@ settings, themes, mouse settings, and startup of other daemons.")
     (license license:gpl2+)))
 
 (define-public totem-pl-parser
- (package
-   (name "totem-pl-parser")
-   (version "3.26.3")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
-                                (version-major+minor version) "/"
-                                "totem-pl-parser-" version ".tar.xz"))
-            (sha256
-             (base32
-              "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
-   (build-system meson-build-system)
-   (arguments
-    ;; FIXME: Tests require gvfs.
-    `(#:tests? #f))
-   (native-inputs
-    `(("intltool" ,intltool)
-      ("glib" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("pkg-config" ,pkg-config)))
-   (propagated-inputs
-    `(("glib" ,glib)
-      ("gmime" ,gmime)
-      ("libarchive" ,libarchive)
-      ("libgcrypt" ,libgcrypt)
-      ("libxml2" ,libxml2)))
-   (inputs
-    `(("libsoup" ,libsoup)))
-   (home-page "https://projects.gnome.org/totem")
-   (synopsis "Library to parse and save media playlists for GNOME")
-   (description "Totem-pl-parser is a GObjects-based library to parse and save
-playlists in a variety of formats.")
-   (license license:lgpl2.0+)))
+  (package
+    (name "totem-pl-parser")
+    (version "3.26.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/totem-pl-parser/"
+                       (version-major+minor version) "/"
+                       "totem-pl-parser-" version ".tar.xz"))
+       (sha256
+        (base32 "132jihnf51zs98yjkc6jxyqib4f3dawpjm17g4bj4j78y93dww2k"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:tests? #f           ; Tests require networking
+       #:configure-flags
+       (list
+        "-Denable-gtk-doc=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "totem-pl-parser-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("intltool" ,intltool)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libgcrypt" ,libgcrypt)
+       ("libquvi" ,libquvi)
+       ("libsoup" ,libsoup)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("libarchive" ,libarchive)
+       ("libxml2" ,libxml2)))
+    (synopsis "Totem Playlist Parser")
+    (description "Totem-pl-parser is a simple GObject-based library to parse a
+host of playlist formats, as well as save those.")
+    (home-page "http://wiki.gnome.org/Apps/Videos")
+    (license license:lgpl2.0+)))
 
 (define-public aisleriot
   (package
-- 
2.27.0


[-- Attachment #1.1.20: 0073-gnu-Add-libstemmer.patch --]
[-- Type: text/x-patch, Size: 2166 bytes --]

From d3916961a3352f23115b0a589acf58a249f093cc Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 18:11:57 -0400
Subject: [PATCH 73/75] gnu: Add libstemmer.

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

diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index c66718aa1e..8afa9663b4 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -43,6 +43,43 @@
   #:use-module (guix git-download)
   #:use-module (guix utils))
 
+(define-public libstemmer
+  (package
+    (name "libstemmer")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "https://snowballstem.org/dist/libstemmer_c.tgz")
+       (sha256
+        (base32 "1z2xvrjsaaypc04lwz7dg8mjm5cq1gzmn0l544pn6y2ll3r7ckh5"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; No tests exist
+       #:make-flags
+       (list
+        (string-append "CC=" ,(cc-for-target))
+        "CFLAGS=-fPIC")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (out-bin (string-append out "/bin"))
+                    (out-include (string-append out "/include"))
+                    (out-lib (string-append out "/lib")))
+               (install-file "stemwords" out-bin)
+               (install-file "include/libstemmer.h" out-include)
+               (rename-file "libstemmer.o" "libstemmer.a")
+               (install-file "libstemmer.a" out-lib)
+               #t))))))
+    (synopsis "Stemming Library")
+    (description "LibStemmer provides stemming library, supporting several
+languages.")
+    (home-page "https://snowballstem.org/")
+    (license bsd-3)))
+
 (define-public perl-lingua-en-findnumber
   (package
     (name "perl-lingua-en-findnumber")
-- 
2.27.0


[-- Attachment #1.1.21: 0074-gnu-tracker-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 8259 bytes --]

From 891b3bf662c1b8a3d2c0697d6940700d06ed9b61 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 18:16:05 -0400
Subject: [PATCH 74/75] gnu: tracker: Update package definition.

* gnu/packages/gnome.scm (tracker): Update package definition.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Ddocs]: New flag.
[-Dunicode_support]: New flag.
[-Dsystemd_user_services]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['pre-check]: Modify phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl, gtk-doc and
python-wrapper.
[inputs]: Add network-manager and libstemmer.
[propagated-inputs]: Add glib.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 132 ++++++++++++++++++++++++++---------------
 1 file changed, 85 insertions(+), 47 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d5f474c513..d92ed90c73 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -128,6 +128,7 @@
   #:use-module (gnu packages inkscape)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages language)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunistring)
@@ -9731,71 +9732,108 @@ directories over the internet.")
   (package
     (name "tracker")
     (version "2.3.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/tracker/"
-                                  (version-major+minor version) "/"
-                                  "tracker-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/tracker/"
+                       (version-major+minor version) "/"
+                       "tracker-" version ".tar.xz"))
+       (sha256
+        (base32 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:glib-or-gtk? #t
        #:configure-flags
-       ;; Otherwise, the RUNPATH will lack the final path component.
-       (list (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib:"
-                            (assoc-ref %outputs "out") "/lib/tracker-2.0"))
+       (list
+        "-Ddocs=true"
+        "-Dunicode_support=icu"
+        "-Dsystemd_user_services=no"
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/tracker-"
+                       ,(version-major version)
+                       ".0"))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute*
+                   '("libtracker-control/libtracker-control-docs.xml"
+                     "libtracker-control/migrating-1to2.xml"
+                     "libtracker-miner/libtracker-miner-docs.xml"
+                     "libtracker-miner/migrating-1to2.xml"
+                     "libtracker-sparql/libtracker-sparql-docs.xml"
+                     "libtracker-sparql/migrating-1to2.xml"
+                     "ontology/ontology-docs.sgml")
+                 (("http://www.oasis-open.org/docbook/xml/4.5/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.5")
+                                 "/xml/dtd/docbook/"))
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.3")
+                                 "/xml/dtd/docbook/"))
+                 (("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-before 'check 'pre-check
            (lambda _
              ;; Some tests expect to write to $HOME.
-             (setenv "HOME" "/tmp")
-             #t)))))
+             (setenv "HOME" (getcwd))
+             #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")
+     `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
+       ("docbook-xml-4.3" ,docbook-xml-4.3)
+       ("docbook-xml-4.5" ,docbook-xml)
+       ("docbook-xsl" ,docbook-xsl)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("python-pygobject" ,python-pygobject)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("python-pygobject" ,python-pygobject)
        ("vala" ,vala)))
     (inputs
      `(("dbus" ,dbus)
-       ("sqlite" ,sqlite)
-       ("libxml2" ,libxml2)
-       ("icu4c" ,icu4c)                 ; libunistring gets miner-miner-fs test to fail.
+       ("icu-uc" ,icu4c)
        ("json-glib" ,json-glib)
-       ("libsoup" ,libsoup)))
-    (synopsis "Metadata database, indexer and search tool")
+       ("libnm" ,network-manager)
+       ("libsoup" ,libsoup)
+       ("libstemmer" ,libstemmer)
+       ("libxml2" ,libxml2)
+       ("sqlite" ,sqlite)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "Search Engine and Triplestore")
+    (description "Tracker is a filesystem indexer, metadata storage system and
+search tool.  This package provides Tracker-Core, that contains the database
+(tracker-store), the database ontologies, the commandline user interface
+(tracker), and several support libraries.")
     (home-page "https://wiki.gnome.org/Projects/Tracker")
-    (description
-     "Tracker is a search engine and triplestore for desktop, embedded and mobile.
-
-It is a middleware component aimed at desktop application developers who want
-their apps to browse and search user content.  It's not designed to be used
-directly by desktop users, but it provides a commandline tool named
-@command{tracker} for the adventurous.
-
-Tracker allows your application to instantly perform full-text searches across
-all documents.  This feature is used by the @{emph{search} bar in GNOME Files, for
-example.  This is achieved by indexing the user's home directory in the
-background.
-
-Tracker also allows your application to query and list content that the user
-has stored.  For example, GNOME Music displays all the music files that are
-found by Tracker.  This means that GNOME Music doesn't need to maintain a
-database of its own.
-
-If you need to go beyond simple searches, Tracker is also a linked data
-endpoint and it understands SPARQL. ")
-    ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
-    ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
-    ;; libstemmer is bsd-3 and the rest is gpl2+.
-    (license (list license:gpl2+
-                   license:bsd-3
-                   license:lgpl2.1+))))
+    (license
+     (list
+      ;; LibTracker, Tracker-Extract, Tracker-Utils and GVDB
+      license:lgpl2.1+
+      ;; LibStemmer
+      license:bsd-3
+      ;; Others
+      license:gpl2+))))
 
 (define-public tracker-miners
   (package
-- 
2.27.0


[-- Attachment #1.1.22: 0075-gnu-tracker-miners-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6321 bytes --]

From 7d6b9fc0f0b463f27881805bb0b9a2d981d855b3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 30 Jul 2020 19:35:16 -0400
Subject: [PATCH 75/75] gnu: tracker-miners: Update package definition.

* gnu/packages/gnome.scm (tracker-miners): Update package definition.
[arguments]<#:configure-flags>[-Dguarantee_metadata]: New flag.
[-Dbattery_detection]: New flag.
[-Dcharset_detection]: New flag.
[-Dgeneric_media_extractor]: New flag.
[-Dgstreamer_backend]: New flag.
[-Dsystemd_user_services]: New flag.
<#:phases>['disable-failing-tests]: New phase.
[native-inputs]: Move dbus to ...
[inputs]: ... here. Add gexiv2 and gst-plugins-base. Remove ffmpeg.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 95 +++++++++++++++++++++++++-----------------
 1 file changed, 56 insertions(+), 39 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d92ed90c73..e7b84ae41d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9839,45 +9839,60 @@ search tool.  This package provides Tracker-Core, that contains the database
   (package
     (name "tracker-miners")
     (version "2.3.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/tracker-miners/"
-                                  (version-major+minor version)
-                                  "/tracker-miners-" version ".tar.xz"))
-              (sha256
-               (base32
-                "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/tracker-miners/"
+                       (version-major+minor version)
+                       "/tracker-miners-" version ".tar.xz"))
+       (sha256
+        (base32 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags
-       (list "-Dminer_rss=false" ; libgrss is required.
-             ;; Ensure the RUNPATH contains all installed library locations.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out")
-                            "/lib/tracker-miners-2.0")
-             ;; TODO: Enable functional tests. Currently, the following error
-             ;; appears:
-             ;; Exception: The functional tests require DConf to be the default
-             ;; GSettings backend. Got GKeyfileSettingsBackend instead.
-             "-Dfunctional_tests=false")))
+       (list
+        "-Dfunctional_tests=false"
+        "-Dguarantee_metadata=true"
+        "-Dbattery_detection=upower"
+        "-Dcharset_detection=icu"
+        "-Dgeneric_media_extractor=gstreamer"
+        "-Dgstreamer_backend=discoverer"
+        "-Dsystemd_user_services=no"
+        ;; Ensure the RUNPATH contains all installed library locations.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib/tracker-miners-"
+                       ,(version-major version)
+                       ".0"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/libtracker-miners-common/meson.build"
+               (("'file-utils',")
+                ""))
+             #t)))))
     (native-inputs
-     `(("dbus" ,dbus)
-       ("intltool" ,intltool)
-       ("glib:bin" ,glib "bin")
+     `(("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("python-pygobject" ,python-pygobject)))
     (inputs
-     `(("exempi" ,exempi)
-       ("ffmpeg" ,ffmpeg)
+     `(("dbus" ,dbus)
+       ("exempi" ,exempi)
        ("flac" ,flac)
+       ("gexiv2" ,gexiv2)
        ("giflib" ,giflib)
        ("glib" ,glib)
        ("gstreamer" ,gstreamer)
-       ("icu4c" ,icu4c)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("icu-uc" ,icu4c)
        ("libcue" ,libcue)
        ("libexif" ,libexif)
+       ("libgrss" ,libgrss)
        ("libgsf" ,libgsf)
        ("libgxps" ,libgxps)
        ("libiptcdata" ,libiptcdata)
@@ -9886,25 +9901,27 @@ search tool.  This package provides Tracker-Core, that contains the database
        ("libpng" ,libpng)
        ("libseccomp" ,libseccomp)
        ("libtiff" ,libtiff)
-       ("libvorbis" ,libvorbis)
        ("libxml2" ,libxml2)
-       ("poppler" ,poppler)
+       ("poppler-glib" ,poppler)
        ("taglib" ,taglib)
-       ("totem-pl-parser" ,totem-pl-parser)
+       ("totem-plparser" ,totem-pl-parser)
        ("tracker" ,tracker)
-       ("upower" ,upower)
+       ("upower-glib" ,upower)
+       ("vorbisfile" ,libvorbis)
        ("zlib" ,zlib)))
-    (synopsis "Metadata database, indexer and search tool")
+    (synopsis "Search Engine and Triplestore")
+    (description "Tracker is a filesystem indexer, metadata storage system and
+search tool.  This package provides Tracker-Miners, that contains the indexer
+daemon (tracker-miner-fs) and tools to extract metadata from many different
+filetypes.")
     (home-page "https://wiki.gnome.org/Projects/Tracker")
-    (description
-     "Tracker is an advanced framework for first class objects with associated
-metadata and tags.  It provides a one stop solution for all metadata, tags,
-shared object databases, search tools and indexing.")
-    ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
-    ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
-    (license (list license:gpl2+
-                   license:lgpl2.1+
-                   license:lgpl2.0+))))
+    (license
+     (list
+      ;; LibTracker-Extract, LibTracker-Miners-Common
+      ;; and Tracker-Extract
+      license:lgpl2.1+
+      ;; Miners-Apps and Miners-FS
+      license:gpl2+))))
 
 (define-public nautilus
   (package
-- 
2.27.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-07-27 16:11                                                 ` Raghav Gururajan
  2020-07-30 23:51                                                   ` Raghav Gururajan
@ 2020-08-02  7:32                                                   ` Raghav Gururajan
  2020-08-03 22:29                                                     ` Danny Milosavljevic
  1 sibling, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-08-02  7:32 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

In my patch-series, please ignore the patch for libhandy and use the
attached-here patch instead.

Regards,
RG.

[-- Attachment #1.1.2: 0049-gnu-libhandy-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6402 bytes --]

From dee56fe718dc10c7f3531bba7f4a5a51e9fc4afa Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 27 Jul 2020 03:27:43 -0400
Subject: [PATCH 49/82] gnu: libhandy: Update package definition.

* gnu/packages/gnome.scm (libhandy) [version]: Update to 0.0.13.
[source]<origin>[uri]: Change from puri.sm to gnome.org.
[sha256]: Modify base32.
[outputs]: New outputs "examples" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dglade_catalog]: Remove flag.
<#:phases>['patch-docbook-xml]: New phase.
['patch-glade]: New phase.
['disable-failing-tests]: New phase.
['pre-check]: Modify phase.
['move-doc]: New phase.
['move-examples]: New phase.
[native-inputs]: Add docbook-xml, gtk+:bin and libxml2.
[inputs]: Add glade. Move gtk+ to ...
[propagated-inputs]: ... here. Add glib.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 103 +++++++++++++++++++++++++++++++----------
 1 file changed, 78 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index da25335d7e..4a7835f44e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11696,47 +11696,100 @@ advanced image management tool")
 (define-public libhandy
   (package
     (name "libhandy")
-    (version "0.0.12")
+    (version "0.0.13")
     (source
      (origin
        (method git-fetch)
-       (uri (git-reference
-             (url "https://source.puri.sm/Librem5/libhandy")
-             (commit (string-append "v" version))))
+       (uri
+        (git-reference
+         (url "https://gitlab.gnome.org/GNOME/libhandy.git")
+         (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
+        (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
     (build-system meson-build-system)
+    (outputs '("out" "examples" "doc"))
     (arguments
-     `(#:configure-flags
-       '("-Dglade_catalog=disabled"
-         "-Dgtk_doc=true")
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dgtk_doc=true")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute*
+                   '("build-howto.xml"
+                     "handy-docs.xml"
+                     "visual-index.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-after 'patch-docbook-xml 'patch-glade
+           (lambda _
+             (substitute* "glade/meson.build"
+               (("gladeui_dep\\.get_pkgconfig_variable\\('moduledir'\\)")
+                "libdir / 'glade' / 'modules'")
+               (("gladeui_dep\\.get_pkgconfig_variable\\('catalogdir'\\)")
+                "datadir / 'glade' / 'catalogs'"))
+             (substitute* '("glade/glade-hdy-header-group.c"
+                            "glade/glade-hdy-swipe-group.c")
+               (("GPC_OBJECT_DELIMITER")
+                "G_STR_DELIMITERS"))
+             #t))
+         (add-before 'configure 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/meson.build"
+               (("'test-avatar',")
+                ""))
+             #t))
          (add-before 'check 'pre-check
            (lambda _
              ;; Tests require a running X server.
-             (system "Xvfb :1 &")
+             (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
-             #t)))))
-    (inputs
-     `(("gtk+" ,gtk+)))
+             #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-after 'move-doc 'move-examples
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (examples (assoc-ref outputs "examples")))
+               (mkdir-p (string-append examples "/bin"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append examples "/bin"))
+               #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
-       ("vala" ,vala)
+     `(("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
+       ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)
-
-       ;; Test suite dependencies.
-       ("xorg-server" ,xorg-server-for-tests)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)))
-    (home-page "https://source.puri.sm/Librem5/libhandy")
-    (synopsis "Library full of GTK+ widgets for mobile phones")
-    (description "The aim of the handy library is to help with developing user
-interfaces for mobile devices using GTK+.  It provides responsive GTK+ widgets
-for usage on small and big screens.")
+       ("vala" ,vala)
+       ("xmllint" ,libxml2)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("glade" ,glade)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)))
+    (synopsis "Building blocks for modern adaptive GNOME apps")
+    (description "LibHandy aims to help with developing UI for mobile devices
+using GTK/GNOME.")
+    (home-page "https://gitlab.gnome.org/GNOME/libhandy")
     (license license:lgpl2.1+)))
 
 (define-public libgit2-glib
-- 
2.27.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-02  7:32                                                   ` Raghav Gururajan
@ 2020-08-03 22:29                                                     ` Danny Milosavljevic
  2020-08-04 10:22                                                       ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Danny Milosavljevic @ 2020-08-03 22:29 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

Hi RG,

pushed this patchset to wip-desktop with small changes.

I have the following comments/point out the following problems:

* gtksourceview depends on icedtea (Java) (because it has groovy as native-input),
which is not reproducible and only works on x86_64.  Please make it not depend on
icedtea.
  * So does tepl, because it depends on gtksourceview
* libsecret fails two tests

libsecret test failure:
 9/12 test-item                               FAIL     0.87 s (killed by signal 11 SIGSEGV)
# GLib-DEBUG: posix_spawn avoided (workdir specified) (fd close requested) (child_setup specified) 
# GLib-DEBUG: setenv()/putenv() are not thread-safe and should not be used after threads are created
# GLib-DEBUG: unsetenv() is not thread-safe and should not be used after threads are created
[...]

 5/12 test-session                            FAIL     0.34 s (killed by signal 5 SIGTRAP)
# GLib-DEBUG: setenv()/putenv() are not thread-safe and should not be used after threads are created
Bail out! GLib-FATAL-CRITICAL: g_source_ref: assertion 'g_atomic_int_get (&source->ref_count) >= 0' failed
--- stderr ---

(test-session:406): GLib-CRITICAL **: 22:02:56.436: g_source_ref: assertion 'g_atomic_int_get (&source->ref_count) >= 0' failed

Both of those tests work fine outside nix build container and outside pure guix environment, while logged into X.

  * memphis doesn't build because of that
  * network-manager doesn't build because of that
  * gtksourceview doesn't build because of that
* gjs is not reproducible

gjs diffoscope:
├── bin
│ ├── .gjs-console-real
│ │ ├── readelf --wide --decompress --hex-dump=.data {}
│ │ │ @@ -51,15 +51,15 @@
│ │ │    0x0040a540 00000000 00000000 94ab4000 00000000 ..........@.....
│ │ │    0x0040a550 be714000 00000000 00000000 00000000 .q@.............
│ │ │    0x0040a560 00000000 00000000 00000000 00000000 ................
│ │ │    0x0040a570 00000000 00000000 00000000 00000000 ................
│ │ │    0x0040a580 00000000 00000000 00000000 00000000 ................
│ │ │    0x0040a590 00000000 00000000 00000000 00000000 ................
│ │ │    0x0040a5a0 2a353741 00000000 00000000 00000000 *57A............
│ │ │ -  0x0040a5b0 f3a04bb6 00000000 30754000 00000000 ..K.....0u@.....
│ │ │ +  0x0040a5b0 48ed49b6 00000000 30754000 00000000 H.I.....0u@.....
│ │ │    0x0040a5c0 00474000 00000000 00000000 00000000 .G@.............
│ │ │    0x0040a5d0 00000000 00000000 00000000 00000000 ................
│ │ │    0x0040a5e0 00000000 00000000 00000000 00000000 ................
│ │ │    0x0040a5f0 00000000 00000000 00000000 00000000 ................
│ │ │    0x0040a600 00000000 00000000 05000000 00000000 ................
│ │ │    0x0040a610 60a24000 00000000 00000000 00000000 `.@.............
│ │ │    0x0040a620 2a353741 00000000 00000000 00000000 *57A............
[...]
├── lib
│ ├── libgjs.so.0.0.0
│ │ ├── readelf --wide --decompress --hex-dump=.data {}
│ │ │ @@ -2687,15 +2687,15 @@
│ │ │    0x0049e4c0 a0223a00 00000000 00000000 00000000 .":.............
│ │ │    0x0049e4d0 00000000 00000000 00000000 00000000 ................
│ │ │    0x0049e4e0 40203a00 00000000 0c000000 00000000 @ :.............
│ │ │    0x0049e4f0 40000000 00000000 2cca3a00 00000000 @.......,.:.....
│ │ │    0x0049e500 a0223a00 00000000 00000000 00000000 .":.............
│ │ │    0x0049e510 00000000 00000000 00000000 00000000 ................
│ │ │    0x0049e520 2a353741 00000000 00000000 00000000 *57A............
│ │ │ -  0x0049e530 e9a54bb6 00000000 00413a00 00000000 ..K......A:.....
│ │ │ +  0x0049e530 00f249b6 00000000 00413a00 00000000 ..I......A:.....

  * network-manager doesn't build reproducibly because of that, and doesn't build at all because of the libsecret test failures
    * network-manager-applet doesn't build reproducibly because of that
  * tracker doesn't build reproducibly because of that
    * tracker-miners doesn't build reproducibly because of that

Pushed your patches to wip-desktop anyway.

Please fix libsecret.

The other things are nice-to-have for now, but should also be fixed
eventually.

Did I apply all the patches you sent me or are some still pending?

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-03 22:29                                                     ` Danny Milosavljevic
@ 2020-08-04 10:22                                                       ` Raghav Gururajan
  2020-08-04 22:50                                                         ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-08-04 10:22 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

Hi Danny!

> pushed this patchset to wip-desktop with small changes.

Thank you!

> I have the following comments/point out the following problems:
> 
> * gtksourceview depends on icedtea (Java) (because it has groovy as native-input),
> which is not reproducible and only works on x86_64.  Please make it not depend on
> icedtea.
>   * So does tepl, because it depends on gtksourceview

I could just remove groovy from native-inputs, but it disables a
feature. Guixers will not get support for Java code/syntax. Should I
proceed?

May be we can insert an if condition to use groovy as native-input only
on x86_64 machines. WDYT?

> * libsecret fails two tests
> 
> libsecret test failure:
>  9/12 test-item                               FAIL     0.87 s (killed by signal 11 SIGSEGV)
> # GLib-DEBUG: posix_spawn avoided (workdir specified) (fd close requested) (child_setup specified) 
> # GLib-DEBUG: setenv()/putenv() are not thread-safe and should not be used after threads are created
> # GLib-DEBUG: unsetenv() is not thread-safe and should not be used after threads are created
> [...]
> 
>  5/12 test-session                            FAIL     0.34 s (killed by signal 5 SIGTRAP)
> # GLib-DEBUG: setenv()/putenv() are not thread-safe and should not be used after threads are created
> Bail out! GLib-FATAL-CRITICAL: g_source_ref: assertion 'g_atomic_int_get (&source->ref_count) >= 0' failed
> --- stderr ---
> 
> (test-session:406): GLib-CRITICAL **: 22:02:56.436: g_source_ref: assertion 'g_atomic_int_get (&source->ref_count) >= 0' failed
> 
> Both of those tests work fine outside nix build container and outside pure guix environment, while logged into X.
> 
>   * memphis doesn't build because of that
>   * network-manager doesn't build because of that
>   * gtksourceview doesn't build because of that

I experienced these test failures myself multiple-times, but upon second
attempt after each failure, it builds fine. Let's see how things go on
CI. If it fails there as well, then we will disable those tests.

> * gjs is not reproducible
> 
> gjs diffoscope:
> ├── bin
> │ ├── .gjs-console-real
> │ │ ├── readelf --wide --decompress --hex-dump=.data {}
> │ │ │ @@ -51,15 +51,15 @@
> │ │ │    0x0040a540 00000000 00000000 94ab4000 00000000 ..........@.....
> │ │ │    0x0040a550 be714000 00000000 00000000 00000000 .q@.............
> │ │ │    0x0040a560 00000000 00000000 00000000 00000000 ................
> │ │ │    0x0040a570 00000000 00000000 00000000 00000000 ................
> │ │ │    0x0040a580 00000000 00000000 00000000 00000000 ................
> │ │ │    0x0040a590 00000000 00000000 00000000 00000000 ................
> │ │ │    0x0040a5a0 2a353741 00000000 00000000 00000000 *57A............
> │ │ │ -  0x0040a5b0 f3a04bb6 00000000 30754000 00000000 ..K.....0u@.....
> │ │ │ +  0x0040a5b0 48ed49b6 00000000 30754000 00000000 H.I.....0u@.....
> │ │ │    0x0040a5c0 00474000 00000000 00000000 00000000 .G@.............
> │ │ │    0x0040a5d0 00000000 00000000 00000000 00000000 ................
> │ │ │    0x0040a5e0 00000000 00000000 00000000 00000000 ................
> │ │ │    0x0040a5f0 00000000 00000000 00000000 00000000 ................
> │ │ │    0x0040a600 00000000 00000000 05000000 00000000 ................
> │ │ │    0x0040a610 60a24000 00000000 00000000 00000000 `.@.............
> │ │ │    0x0040a620 2a353741 00000000 00000000 00000000 *57A............
> [...]
> ├── lib
> │ ├── libgjs.so.0.0.0
> │ │ ├── readelf --wide --decompress --hex-dump=.data {}
> │ │ │ @@ -2687,15 +2687,15 @@
> │ │ │    0x0049e4c0 a0223a00 00000000 00000000 00000000 .":.............
> │ │ │    0x0049e4d0 00000000 00000000 00000000 00000000 ................
> │ │ │    0x0049e4e0 40203a00 00000000 0c000000 00000000 @ :.............
> │ │ │    0x0049e4f0 40000000 00000000 2cca3a00 00000000 @.......,.:.....
> │ │ │    0x0049e500 a0223a00 00000000 00000000 00000000 .":.............
> │ │ │    0x0049e510 00000000 00000000 00000000 00000000 ................
> │ │ │    0x0049e520 2a353741 00000000 00000000 00000000 *57A............
> │ │ │ -  0x0049e530 e9a54bb6 00000000 00413a00 00000000 ..K......A:.....
> │ │ │ +  0x0049e530 00f249b6 00000000 00413a00 00000000 ..I......A:.....
> 
>   * network-manager doesn't build reproducibly because of that, and doesn't build at all because of the libsecret test failures
>     * network-manager-applet doesn't build reproducibly because of that
>   * tracker doesn't build reproducibly because of that
>     * tracker-miners doesn't build reproducibly because of that

Thanks for catching that. Let me see what I can do.

> Did I apply all the patches you sent me or are some still pending?

Yes, you applied all the patches. :-)

Regards,
RG.



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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-04 10:22                                                       ` Raghav Gururajan
@ 2020-08-04 22:50                                                         ` Raghav Gururajan
  2020-08-05 15:14                                                           ` Danny Milosavljevic
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-08-04 22:50 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

Please find the attached patches.

@Others

Please find the following git-log.

*** START ***

commit b02a3f0d0fba7d2f7d6c1809e4ca66e2a9dbf82f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 18:28:39 2020 -0400

    gnu: gnome-control-center: Update package definition.

    * gnu/packages/gnome.scm (gnome-control-center) [version]: Update
    to 3.36.4.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dcheese]: Remove flag.
    [-Ddocumentation]: New flag.
    [-Dgnome_session_libexec_dir]: Remove flag.
    <#:phases>['patch-docbook]: New phase.
    ['patch-paths]: Modify phase.
    [native-inputs]: Add docbook-xml, gobject-introspection and
    python-wrapper.
    [inputs]: Add cairo, cheese, colord, libepoxy, fontconfig, glib,
    gsettings-desktop-schemas, gtk+, libhandy, network-manager, libx11
    and libxi. Remove clutter-gtk, dconf, gnome-session, libcanberra
    and mesa. Change gdk-pixbuf to gdk-pixbuf+svg.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit 7e653124b6689a3c77babb7fce785f9304d88c81
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 15:27:33 2020 -0400

    gnu: gnome-contacts: Update package definition.

    * gnu/packages/gnome.scm (gnome-contacts) [version]: Update to
    3.36.2.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>['-Dcheese]: Remove flag.
    [-Ddocs]: New flag.
    <#:phases>['patch-docbook]: New phase.
    ['generate-vapis]: Remove phase.
    [native-inputs]: Add desktop-file-utils, docbook-xml, docbook-xsl,
    gettext-minimal, gobject-introspection, libxslt and vala.
    [inputs]: Add appstream-glib, cheese, folks, glib and libhandy.
    Remove docbook-xml, docbook-xsl, gettext-minimal, gobject-introspection,
    gst-plugins-base, libxslt and vala.
    [propagated-inputs]: Remove folks and telepathy-mission-control.
    [synopsis]: Modify.
    [description]: Modify.

commit 91fd32d40d0b81bc700b3cab7e20498f5d2067f6
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 13:35:40 2020 -0400

    gnu: gnome-color-manager: Update package definition.

    * gnu/packages/gnome.scm (gnome-color-manager) [version]: Update to
    3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
    ['pre-check]: Modify phase.
    ['move-help]: New phase.
    [native-inputs]: Add python-wrapper.
    [inputs]: Add colord, glib, gtk+ and lcms. Remove adwaita-icon-theme,
    appstream-glib, colord-gtk, exiv2, gnome-desktop, libexif, libtiff,
    libxrandr, libxtst, libxxf86vm, vte and xorgproto.

commit afd112c60ed22bdbf79be5dd3761ed418fa14e40
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 11:45:20 2020 -0400

    gnu: gnome-clocks: Update package definition.

    * gnu/packages/gnome.scm (gnome-clocks) [version]: Update to 3.36.2.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:configure-flags>['move-help]: New phase.
    [native-inputs]: Add gobject-introspection.
    [inputs]: Add appstream-glib, glib and libhandy.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

commit 3eda5fc8e59ac4d93ae3c352395777e7fdb8a47a
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 11:23:51 2020 -0400

    gnu: gnome-characters: Update package definition.

    * gnu/packages/gnome.scm (gnome-characters) [version]: Update to
    3.34.0.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
    [native-inputs]: Add gobject-introspection, ruby and libxml2.
    Change python-minimal to python-wrapper. Remove gtk+:bin.
    [inputs]: Add glib and pango.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Add gpl2+.

commit a9bf121a704e1b5f30f19efdf2a20ce1a2392ff8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 10:59:51 2020 -0400

    gnu: gnome-calendar: Update package definition.

    * gnu/packages/gnome.scm (gnome-calendar) [version]: Update to 3.36.2.
    [propagated-inputs]: Move evolution-data-server to ...
    [inputs]: ... here. Add geocode-glib, glib, gtk+, libhandy, libical and
    libsoup.
    [synopsis]: Modify.
    [description]: Modify.

commit 4444c742902b140042c325466afd544b2b686e15
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 10:16:18 2020 -0400

    gnu: gnome-calculator: Update package definition.

    * gnu/packages/gnome.scm (gnome-calculator) [version]: Update to
    3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
    ['move-help]: New phase.
    [native-inputs]: Add gobject-introspection.
    [inputs]: Move libgee to ...
    [propagated-inputs]: ... here. Add glib and gtk+.
    [synopsis]: Modify.
    [license]: Modify.

commit bdb09ca575873ea116d1da2e3d46547e3bf0dd53
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 09:41:32 2020 -0400

    gnu: gnome-boxes: Update package definition.

    * gnu/packages/gnome.scm (gnome-boxes): Update package definition.
    [outputs]: New output "help".
    [arguments]<#:configure-flags>[-Drdp]: Remove flag.
    <#:phases>['skip-gtk-update-icon-cache]: New phase.
    ['move-help]: New phase.
    [native-inputs]: Add gobject-introspection and python-wrapper.
    [inputs]: Add appstream-glib and freerdp.
    [propagated-inputs]: Add glib and glib-networking.
    [synopsis]: Modify.
    [description]: Modify.

commit 108603d00b4702245d119e334e1307e8693a5b47
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 08:03:22 2020 -0400

    gnu: gnome-bluetooth: Update package definition.

    * gnu/packages/gnome.scm (gnome-bluetooth) [version]: Update to
    3.34.1.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dicon_update]: New flag.
    [-Dgtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml and gtk-doc. Remove gtk+:bin.
    [inputs]: Add bluez, dbus-glib, gconf and libunique.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Add gpl2+.

commit 41a75c65eda696087daf2afd287be95116e27b64
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 07:51:25 2020 -0400

    gnu: gnome-backgrounds: Update package definition.

    * gnu/packages/gnome.scm (gnome-backgrounds) [version]: Update to
    3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [synopsis]: Modify.
    [description]: Modify.

commit 2a659e1327bd6b304ec2a908a5d50ecbd807dc4b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 4 07:37:39 2020 -0400

    gnu: gedit: Update package definition.

    * gnu/packages/gnome.scm (gedit) [version]: Update to 3.36.2.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New outputs "help" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:parallel-build?>: Remove argument.
    <#:configure-flags>[-Dgtk_doc]: New flag.
    <#:phases>['patch-libgd-fetch]: Modify phase.
    ['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    ['move-help]: New phase.
    ['wrap-gedit]: Modify phase.
    [native-inputs]: Add docbook-xml, gtk-doc, python-wrapper, libxml2
    and vala.
    [inputs]: Remove python, python-pygobject, libxml2 and vala.
    Add appstream-glib and tepl. Move gtksourceview and libpeas to ...
    [propagated-inputs]: ... here. Remove dconf.
    [description]: Modify.

commit 41eed86f665d1a00caee0d3930dea399ee02807f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Aug 3 12:42:58 2020 -0400

    gnu: file-roller: Update package definition.

    * gnu/packages/gnome.scm (file-roller) [version]: Update to 3.36.2.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-nautilus-extension]: New phase.
    ['skip-gtk-update-icon-cache]: New phase.
    ['move-help]: New phase.
    [native-inputs]: Add gobject-introspection and vala.
    [inputs]: Add cpio, glib, gtk+ and nautilus. Change gdk-pixbuf to
    gdk-pixbuf+svg.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit f96191e1783926f5266370ec203b42a65287f7eb
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Aug 3 09:59:41 2020 -0400

    gnu: evince: Update package definition.

    * gnu/packages/gnome.scm (evince) [version]: Update to 3.36.7.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from glib-or-gtk to meson.
    [outputs]: New outputs "help" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[--diable-nautilus]: Remove flag.
    [--enable-introspection]: Remove flag.
    [-Dbrowser_plugin]: New flag.
    [-Dps]: New flag.
    [-DDsystemduserunitdir]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['skip-gtk-update-icon-cache]: Modify phase.
    ['move-doc]: New phase.
    ['move-help]: New phase.
    [native-inputs]: Add docbook-xml and gtk-doc. Change python2-dogtail
    to python-dogtail.
    [inputs]: Add cairo, dbus, gstreamer, gst-plugins-base, nautilus,
    t1lib, texlive-bin and zlib. Move glib and gtk+ to ...
    [propagated-inputs]: ... here.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit a0a3c53d3598d443fa6f767ea8c9782464e8a062
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Aug 2 05:00:52 2020 -0400

    gnu: texlive-bin: Recompile with -fPIC.

    * gnu/packages/tex.scm (texlive-bin) [arguments]<#:configure-flags>
    [CFLAGS]: New flag.

commit 2a8611050d9843a6330955d4662adc34ae6e5e2e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Aug 2 03:08:55 2020 -0400

    gnu: epiphany: Update package definition.

    * gnu/packages/gnome.scm (epiphany) [version]: Update to 3.36.3.
    [outputs]: New output "help".
    [arguments]<#:phases>['pre-check]: Modify phase.
    ['move-help]: New phase.
    [native-inputs]: Add gobject-introspection and libxslt.
    [inputs]: Add appstream-glib, glib, gtk+, libhandy and libsoup.
    Remove libxslt.
    [propagated-inputs]: Remove dconf.
    [description]: Modify.
    [license]: Update to gpl3+.

commit 18cd31c95fcc9ac797efc7cad8ee960587499c99
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Aug 2 00:04:15 2020 -0400

    gnu: eog: Update package definition.

    * gnu/packages/gnome.scm (eog) [version]: Update to 3.36.3.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New outputs "help" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dgtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    ['move-help]: New phase.
    ['wrap-eog]: Modify phase.
    [native-inputs]: Add docbook-xml and gtk-doc.
    [inputs]: Add gconf, gdk-pixbuf+svg, glib, libart-lgpl, libx11 and zlib.
    Move gtk+ to ...
    [propagated-inputs]: ... here. Remove dconf.
    [synopsis]: Modify.
    [description]: Modify.

commit 9f2534ef1c474d8abaf7f03a54e79137914dd8b1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Aug 1 10:10:24 2020 -0400

    gnu: cheese: Update package definition.

    * gnu/packages/gnome.scm (cheese): Update package definition.
    [outputs]: New outputs "help" and "doc".
    [arguments]<#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    ['move-help]: New phase.
    ['wrap-cheese]: Modify phase.
    [native-inputs]: Add docbook-xml and gobject-introspection.
    [inputs]: Add dbus, gnome-video-effects, libcanberra and libxext.
    Remove gst-plugins-base, gst-plugins-bad, gtk+ and libx11.
    [propagated-inputs]: Add gst-plugins-base, gst-plugins-bad,
gst-plugins-good,
    gtk+ and libx11. Change gdk-pixbuf to gdk-pixbuf+svg. Remove
gnome-video-effects
    and libcanberra.
    [synopsis]: Modify.
    [description]: Modify.

commit d563462c25f68817f3327ab7d27bbfcfdb2612d7
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Aug 1 07:07:23 2020 -0400

    gnu: opencv: Disable structured_light test.

    * gnu/packages/image-processing.scm (opencv): Disable
tructured_light test.
    [arguments]<#:phases>['disable-broken-tests]: Modify phase.

commit aa8bf26303dfa0014e24e6b14b9006a2270fd7f6
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jul 31 16:59:57 2020 -0400

    gnu: baobab: Update package definition.

    * gnu/packages/gnome.scm (baobab) [version]: Update to 3.34.1.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:phases>['move-help]: New phase.
    [native-inputs]: Add gobject-introspection.
    [inputs]: Add glib.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Add fdl1.1+.

*** END ***

Regards,
RG.

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

From aa8bf26303dfa0014e24e6b14b9006a2270fd7f6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 31 Jul 2020 16:59:57 -0400
Subject: [PATCH 01/19] gnu: baobab: Update package definition.

* gnu/packages/gnome.scm (baobab) [version]: Update to 3.34.1.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:phases>['move-help]: New phase.
[native-inputs]: Add gobject-introspection.
[inputs]: Add glib.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Add fdl1.1+.
---
 gnu/packages/gnome.scm | 72 ++++++++++++++++++++++++++----------------
 1 file changed, 45 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5f53b626f7..5f240d2ce6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10001,38 +10001,56 @@ files.")
 (define-public baobab
   (package
     (name "baobab")
-    (version "3.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnome/sources/" name "/"
-                    (version-major+minor version) "/"
-                    name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
+    (version "3.34.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://gnome/sources/" name "/"
+         (version-major+minor version) "/"
+         name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1i90gc1cpw5507zn54k46hj4mjgdxsq8cvpnlgxq0ksy2d7iv63z"))))
     (build-system meson-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:glib-or-gtk? #t))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
-       ("itstool" ,itstool)
-       ("xmllint" ,libxml2)
+     `(("desktop-file-utils" ,desktop-file-utils)
        ("glib" ,glib "bin")
-       ("vala" ,vala)))
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+-bin" ,gtk+ "bin")
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("gtk+" ,gtk+)))
-    (synopsis "Disk usage analyzer for GNOME")
-    (description
-     "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
-usage in the GNOME desktop environment.  It can easily scan device volumes or
-a specific user-requested directory branch (local or remote).  Once the scan
-is complete it provides a graphical representation of each selected folder.")
-    (home-page "https://wiki.gnome.org/Apps/Baobab")
-    (license license:gpl2+)))
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)))
+    (synopsis "Disk Usage Analyzer")
+    (description "Baobab scans folders, devices or remote locations and reports
+on the disk space consumed by each element.  It provides both a tree-like and a
+graphical representation.")
+    (home-page "https://wiki.gnome.org/Apps/DiskUsageAnalyzer")
+    (license
+     (list
+      ;; Documentation
+      license:fdl1.1+
+      ;; Others
+      license:gpl2+))))
 
 (define-public gnome-backgrounds
   (package
-- 
2.28.0


[-- Attachment #1.1.3: 0002-gnu-opencv-Disable-structured_light-test.patch --]
[-- Type: text/x-patch, Size: 1200 bytes --]

From d563462c25f68817f3327ab7d27bbfcfdb2612d7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 1 Aug 2020 07:07:23 -0400
Subject: [PATCH 02/19] gnu: opencv: Disable structured_light test.

* gnu/packages/image-processing.scm (opencv): Disable tructured_light test.
[arguments]<#:phases>['disable-broken-tests]: Modify phase.
---
 gnu/packages/image-processing.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index a11b1b89d3..2523fa91fa 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -329,6 +329,8 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
                (("(TEST\\(Viz, )([a-z].*\\).*)" all pre post)
                 (string-append pre "DISABLED_" post)))
 
+             (delete-file-recursively "../opencv-contrib/modules/structured_light/test")
+
              ;; This one fails with "unknown file: Failure"
              ;; But I couldn't figure out which file was missing:
              (substitute* "../opencv-contrib/modules/face/test/test_face_align.cpp"
-- 
2.28.0


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

From 9f2534ef1c474d8abaf7f03a54e79137914dd8b1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 1 Aug 2020 10:10:24 -0400
Subject: [PATCH 03/19] gnu: cheese: Update package definition.

* gnu/packages/gnome.scm (cheese): Update package definition.
[outputs]: New outputs "help" and "doc".
[arguments]<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
['move-help]: New phase.
['wrap-cheese]: Modify phase.
[native-inputs]: Add docbook-xml and gobject-introspection.
[inputs]: Add dbus, gnome-video-effects, libcanberra and libxext.
Remove gst-plugins-base, gst-plugins-bad, gtk+ and libx11.
[propagated-inputs]: Add gst-plugins-base, gst-plugins-bad, gst-plugins-good,
gtk+ and libx11. Change gdk-pixbuf to gdk-pixbuf+svg. Remove gnome-video-effects
and libcanberra.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 101 ++++++++++++++++++++++++++---------------
 1 file changed, 65 insertions(+), 36 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5f240d2ce6..55c79a784b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11692,66 +11692,95 @@ used in different GNOME Modules.")
   (package
     (name "cheese")
     (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
-                "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/" name "-"
+                       version ".tar.xz"))
+       (sha256
+        (base32 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
+    (build-system meson-build-system)
+    (outputs '("out" "help" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t
-       ;; Tests require GDK.
-       #:tests? #f
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-gtk-update-icon-cache
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '("cheese-docs.xml" "cheese.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
            (lambda _
-             ;; Don't create 'icon-theme.cache'
              (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") (which "true")))
+               (("gtk-update-icon-cache")
+                (which "true")))
              #t))
-         (add-after 'install 'wrap-cheese
+         (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-after 'move-doc 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t)))
+         (add-after 'move-doc 'wrap-cheese
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out             (assoc-ref outputs "out"))
-                   (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+             (let* ((out (assoc-ref outputs "out"))
+                    (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
                (wrap-program (string-append out "/bin/cheese")
                  `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
              #t)))))
-    (build-system meson-build-system)
     (native-inputs
-     `(("docbook-xsl" ,docbook-xsl)
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
        ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
-       ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+       ("vala" ,vala)
+       ("xmllint" ,libxml2)))
+    (inputs
+     `(("dbus" ,dbus)
+       ("gnome-desktop" ,gnome-desktop)
+       ("gnome-video-effects" ,gnome-video-effects)
+       ("libcanberra" ,libcanberra)
+       ("xext" ,libxext)
+       ("xtst" ,libxtst)))
     (propagated-inputs
-     `(("gnome-video-effects" ,gnome-video-effects)
-       ("clutter" ,clutter)
-       ("clutter-gst" ,clutter-gst)
+     `(("clutter" ,clutter)
        ("clutter-gtk" ,clutter-gtk)
-       ("libcanberra" ,libcanberra)
-       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("clutter-gst" ,clutter-gst)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("glib" ,glib)
-       ("gstreamer" ,gstreamer)))
-    (inputs
-     `(("gnome-desktop" ,gnome-desktop)
-       ("gobject-introspection" ,gobject-introspection)
+       ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
        ("gst-plugins-bad" ,gst-plugins-bad)
+       ("gst-plugins-good" ,gst-plugins-good)
        ("gtk+" ,gtk+)
-       ("libx11" ,libx11)
-       ("libxtst" ,libxtst)))
+       ("x11" ,libx11)))
+    (synopsis "Webcam application")
+    (description "Cheese is a program for the GNOME Desktop which allows you to
+take photos, videos, and anything else you can think of with your webcam.")
     (home-page "https://wiki.gnome.org/Apps/Cheese")
-    (synopsis "Webcam photo booth software for GNOME")
-    (description
-     "Cheese uses your webcam to take photos and videos.  Cheese can also
-apply fancy special effects and lets you share the fun with others.")
     (license license:gpl2+)))
 
 (define-public sound-juicer
-- 
2.28.0


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

From 18cd31c95fcc9ac797efc7cad8ee960587499c99 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 2 Aug 2020 00:04:15 -0400
Subject: [PATCH 04/19] gnu: eog: Update package definition.

* gnu/packages/gnome.scm (eog) [version]: Update to 3.36.3.
[source]<origin>[sha256]: Modify base32.
[outputs]: New outputs "help" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dgtk_doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
['move-help]: New phase.
['wrap-eog]: Modify phase.
[native-inputs]: Add docbook-xml and gtk-doc.
[inputs]: Add gconf, gdk-pixbuf+svg, glib, libart-lgpl, libx11 and zlib.
Move gtk+ to ...
[propagated-inputs]: ... here. Remove dconf.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 146 ++++++++++++++++++++++++++---------------
 1 file changed, 92 insertions(+), 54 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 55c79a784b..21b2fbf593 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7105,64 +7105,102 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
    (license license:gpl2+)))
 
 (define-public eog
- (package
-   (name "eog")
-   (version "3.34.1")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
-   (build-system meson-build-system)
-   (arguments
-    `(#:configure-flags
-      ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
-      (list (string-append "-Dc_link_args=-Wl,-rpath="
-                           (assoc-ref %outputs "out") "/lib/eog"))
-      #:phases
-      (modify-phases %standard-phases
-         (add-after 'unpack 'skip-gtk-update-icon-cache
+  (package
+    (name "eog")
+    (version "3.36.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1p1lrnsgk5iyw7h02qzax4s74dqqsh5lk85b0qsj7hwx91qm61xp"))))
+    (build-system meson-build-system)
+    (outputs '("out" "help" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
+       (list
+        "-Dgtk_doc=true"
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib/eog"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/reference"
+               (substitute* '("eog-docs.xml" "eog-docs.xml.in")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
+               (("gtk-update-icon-cache")
+                "true"))
              #t))
-        (add-after 'install 'wrap-eog
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out               (assoc-ref outputs "out"))
-                  (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
-              (wrap-program (string-append out "/bin/eog")
-                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-            #t)))))
-   (propagated-inputs
-    `(("dconf" ,dconf)))
-   (native-inputs
-    `(("intltool" ,intltool)
-      ("itstool" ,itstool)
-      ("glib" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("pkg-config" ,pkg-config)
-      ("xmllint" ,libxml2)))
-   (inputs
-    `(("gnome-desktop" ,gnome-desktop)
-      ("shared-mime-info" ,shared-mime-info)
-      ("adwaita-icon-theme" ,adwaita-icon-theme)
-      ("exempi" ,exempi)
-      ("lcms" ,lcms)
-      ("libexif" ,libexif)
-      ("libpeas" ,libpeas)
-      ("libjpeg" ,libjpeg-turbo)
-      ("librsvg" ,librsvg-next)
-      ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-      ("gtk+" ,gtk+)))
-   (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
-   (synopsis "GNOME image viewer")
-   (description "Eye of GNOME is the GNOME image viewer.  It
-supports image conversion, rotation, and slideshows.")
-   (license license:gpl2+)))
+         (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-after 'move-doc 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t)))
+         (add-after 'move-help 'wrap-eog
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+               (wrap-program (string-append out "/bin/eog")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+             #t)))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (inputs
+     `(("exempi" ,exempi)
+       ("gconf" ,gconf)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("gnome-desktop" ,gnome-desktop)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("lcms" ,lcms)
+       ("libart" ,libart-lgpl)
+       ("libexif" ,libexif)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpeas" ,libpeas)
+       ("librsvg" ,librsvg-next)
+       ("shared-mime-info" ,shared-mime-info)
+       ("x11" ,libx11)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)))
+    (synopsis "Eye of GNOME")
+    (description "EoG is the GNOME image viewer.")
+    (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
+    (license license:gpl2+)))
 
 (define-public eog-plugins
   ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
-- 
2.28.0


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

From 2a8611050d9843a6330955d4662adc34ae6e5e2e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 2 Aug 2020 03:08:55 -0400
Subject: [PATCH 05/19] gnu: epiphany: Update package definition.

* gnu/packages/gnome.scm (epiphany) [version]: Update to 3.36.3.
[outputs]: New output "help".
[arguments]<#:phases>['pre-check]: Modify phase.
['move-help]: New phase.
[native-inputs]: Add gobject-introspection and libxslt.
[inputs]: Add appstream-glib, glib, gtk+, libhandy and libsoup.
Remove libxslt.
[propagated-inputs]: Remove dconf.
[description]: Modify.
[license]: Update to gpl3+.
---
 gnu/packages/gnome.scm | 86 +++++++++++++++++++++++++-----------------
 1 file changed, 51 insertions(+), 35 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 21b2fbf593..fd65c01b1c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7512,28 +7512,35 @@ a secret password store, an adblocker, and a modern UI.")
 (define-public epiphany
   (package
     (name "epiphany")
-    (version "3.34.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/epiphany/"
-                                  (version-major+minor version) "/"
-                                  "epiphany-" version ".tar.xz"))
-              (sha256
-               (base32
-                "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
-
+    (version "3.36.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/epiphany/"
+                       (version-major+minor version) "/"
+                       "epiphany-" version ".tar.xz"))
+       (sha256
+        (base32 "0vz1j6yrjv0nmf5lk8prkkm10fbcmd35khy9zsd7d4a86wk5c6v2"))))
     (build-system meson-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
+       (list
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib/epiphany"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "post_install.py"
-               (("gtk-update-icon-cache") "true"))
+               (("gtk-update-icon-cache")
+                "true"))
              #t))
-         (add-after 'unpack 'disable-failing-tests
+         (add-before 'configure 'disable-failing-tests
            (lambda _
              (substitute* "tests/meson.build"
                ;; embed_shell fails, because webkitgtk apparently no longer supports
@@ -7545,45 +7552,54 @@ a secret password store, an adblocker, and a modern UI.")
          (add-before 'check 'pre-check
            (lambda _
              ;; Tests require a running X server.
-             (system "Xvfb :1 &")
+             (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
-             #t)))
-       #:configure-flags
-       ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
-       (list (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib/epiphany"))))
-    (propagated-inputs
-     `(("dconf" ,dconf)))
+             #t))
+       (add-after 'install 'move-help
+         (lambda* (#:key outputs #:allow-other-keys)
+           (let* ((out (assoc-ref outputs "out"))
+                  (help (assoc-ref outputs "help")))
+             (mkdir-p (string-append help "/share"))
+             (rename-file
+              (string-append out "/share/help")
+              (string-append help "/share/help"))
+             #t))))))
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("glib:bin" ,glib "bin") ; for glib-mkenums
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)
-       ("xmllint" ,libxml2)
-       ("xorg-server" ,xorg-server-for-tests)))
+       ("xorg-server" ,xorg-server-for-tests)
+       ("xsltproc" ,libxslt)))
     (inputs
-     `(("avahi" ,avahi)
+     `(("appstream-util" ,appstream-glib)
+       ("avahi" ,avahi)
+       ("cairo" ,cairo)
        ("gcr" ,gcr)
-       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
        ("glib-networking" ,glib-networking)
        ("gnome-desktop" ,gnome-desktop)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
        ("json-glib" ,json-glib)
        ("iso-codes" ,iso-codes)
        ("libdazzle" ,libdazzle)
+       ("libhandy" ,libhandy)
        ("libnotify" ,libnotify)
        ("libsecret" ,libsecret)
-       ("libxslt" ,libxslt)
-       ("nettle" ,nettle) ; for hogweed
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)
+       ("nettle" ,nettle)
        ("sqlite" ,sqlite)
        ("webkitgtk" ,webkitgtk)))
-    (home-page "https://wiki.gnome.org/Apps/Web")
     (synopsis "GNOME web browser")
-    (description
-     "Epiphany is a GNOME web browser targeted at non-technical users.  Its
-principles are simplicity and standards compliance.")
-    (license license:gpl2+)))
+    (description "Epiphany is a GNOME web browser based on the WebKit rendering
+engine.")
+    (home-page "https://wiki.gnome.org/Apps/Web")
+    (license license:gpl3+)))
 
 (define-public d-feet
   (package
-- 
2.28.0


[-- Attachment #1.1.7: 0006-gnu-texlive-bin-Recompile-with-fPIC.patch --]
[-- Type: text/x-patch, Size: 945 bytes --]

From a0a3c53d3598d443fa6f767ea8c9782464e8a062 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 2 Aug 2020 05:00:52 -0400
Subject: [PATCH 06/19] gnu: texlive-bin: Recompile with -fPIC.

* gnu/packages/tex.scm (texlive-bin) [arguments]<#:configure-flags>
[CFLAGS]: New flag.
---
 gnu/packages/tex.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 47645a3e34..fd69e57e8c 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -320,7 +320,8 @@ files from LOCATIONS with expected checksum HASH.  CODE is not currently in use.
    (arguments
     `(#:out-of-source? #t
       #:configure-flags
-       '("--disable-static"
+       '("CFLAGS=-fPIC"
+         "--disable-static"
          "--disable-native-texlive-build"
          "--with-system-cairo"
          "--with-system-freetype2"
-- 
2.28.0


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

From f96191e1783926f5266370ec203b42a65287f7eb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 3 Aug 2020 09:59:41 -0400
Subject: [PATCH 07/19] gnu: evince: Update package definition.

* gnu/packages/gnome.scm (evince) [version]: Update to 3.36.7.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from glib-or-gtk to meson.
[outputs]: New outputs "help" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[--diable-nautilus]: Remove flag.
[--enable-introspection]: Remove flag.
[-Dbrowser_plugin]: New flag.
[-Dps]: New flag.
[-DDsystemduserunitdir]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['skip-gtk-update-icon-cache]: Modify phase.
['move-doc]: New phase.
['move-help]: New phase.
[native-inputs]: Add docbook-xml and gtk-doc. Change python2-dogtail
to python-dogtail.
[inputs]: Add cairo, dbus, gstreamer, gst-plugins-base, nautilus,
t1lib, texlive-bin and zlib. Move glib and gtk+ to ...
[propagated-inputs]: ... here.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 141 ++++++++++++++++++++++++++---------------
 1 file changed, 89 insertions(+), 52 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fd65c01b1c..7acc0d7078 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2783,71 +2783,108 @@ forgotten when the session ends.")
 (define-public evince
   (package
     (name "evince")
-    (version "3.36.5")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/evince/"
-                                 (version-major+minor version) "/"
-                                 "evince-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
-    (build-system glib-or-gtk-build-system)
+    (version "3.36.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/evince/"
+                       (version-major+minor version) "/"
+                       "evince-" version ".tar.xz"))
+       (sha256
+        (base32 "0clg9fhgjyj23mmcmw7dp512wzgv5m18fppn05qf1frz7r11mmk5"))))
+    (build-system meson-build-system)
+    (outputs '("out" "help" "doc"))
     (arguments
-     `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dbrowser_plugin=true"
+        "-Dps=auto"
+        "-Dsystemduserunitdir=no")
        #:phases
        (modify-phases %standard-phases
-         (add-before 'install 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "help/reference"
+               (substitute* '("libdocument/libevdocument-docs.xml"
+                              "libview/libevview-docs.xml" "shell/evince-docs.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
            (lambda _
-             (substitute* "data/Makefile"
-               (("gtk-update-icon-cache") "true"))
-             #t)))))
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #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-after 'move-doc 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("dogtail" ,python-dogtail)
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("libarchive" ,libarchive)
-       ("libgxps" ,libgxps)
-       ("libspectre" ,libspectre)
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("atk" ,atk)
+       ("cairo" ,cairo)
+       ("dbus" ,dbus)
        ("djvulibre" ,djvulibre)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("ghostscript" ,ghostscript)
-       ("poppler" ,poppler)
-       ("libtiff" ,libtiff)
-       ;; TODO:
-       ;;   Build libkpathsea as a shared library for DVI support.
-       ;; ("libkpathsea" ,texlive-bin)
        ("gnome-desktop" ,gnome-desktop)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gspell" ,gspell)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("libarchive" ,libarchive)
+       ("libcanberra" ,libcanberra)
        ("libgnome-keyring" ,libgnome-keyring)
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("atk" ,atk)
-       ("pango" ,pango)
-       ("gtk+" ,gtk+)
-       ("glib" ,glib)
-       ("libxml2" ,libxml2)
-       ("libsm" ,libsm)
+       ("libgxps" ,libgxps)
        ("libice" ,libice)
-       ("shared-mime-info" ,shared-mime-info)
-       ("dconf" ,dconf)
-       ("libcanberra" ,libcanberra)
+       ("libnautilus-extension" ,nautilus)
        ("libsecret" ,libsecret)
-
-       ;; For tests.
-       ("dogtail" ,python2-dogtail)))
-    (native-inputs
-     `(("itstool" ,itstool)
-       ("intltool" ,intltool)
-       ("glib" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("xmllint" ,libxml2)))
-    (home-page "https://www.gnome.org/projects/evince/")
-    (synopsis "GNOME's document viewer")
-    (description
-     "Evince is a document viewer for multiple document formats.  It
-currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
-of Evince is to replace the multiple document viewers that exist
-on the GNOME Desktop with a single simple application.")
+       ("libsm" ,libsm)
+       ("libspectre" ,libspectre)
+       ("libtiff" ,libtiff)
+       ("libxml2" ,libxml2)
+       ("pango" ,pango)
+       ("poppler" ,poppler)
+       ("shared-mime-info" ,shared-mime-info)
+       ("t1lib" ,t1lib)
+       ("texlive-bin" ,texlive-bin)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)))
+    (synopsis "Document viewer")
+    (description "Evince is a document viewer for multiple document formats.
+The goal of evince is to replace the multiple document viewers that exist on
+the GNOME Desktop with a single simple application.")
+    (home-page "https://wiki.gnome.org/Apps/Evince")
     (license license:gpl2+)))
 
 (define-public gsettings-desktop-schemas
-- 
2.28.0


[-- Attachment #1.1.9: 0008-gnu-file-roller-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5389 bytes --]

From 41eed86f665d1a00caee0d3930dea399ee02807f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 3 Aug 2020 12:42:58 -0400
Subject: [PATCH 08/19] gnu: file-roller: Update package definition.

* gnu/packages/gnome.scm (file-roller) [version]: Update to 3.36.2.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-nautilus-extension]: New phase.
['skip-gtk-update-icon-cache]: New phase.
['move-help]: New phase.
[native-inputs]: Add gobject-introspection and vala.
[inputs]: Add cpio, glib, gtk+ and nautilus. Change gdk-pixbuf to
gdk-pixbuf+svg.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 80 ++++++++++++++++++++++++++++++------------
 1 file changed, 58 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 7acc0d7078..002274b6c0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -89,6 +89,7 @@
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpio)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
@@ -7977,37 +7978,72 @@ share them with others via social networking and more.")
 (define-public file-roller
   (package
     (name "file-roller")
-    (version "3.32.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/file-roller/"
-                                  (version-major+minor version) "/"
-                                  "file-roller-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
+    (version "3.36.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/file-roller/"
+                       (version-major+minor version) "/"
+                       "file-roller-" version ".tar.xz"))
+       (sha256
+        (base32 "1lkb0m8ys13sy3b6c1kj3cqrqf5d1dqvhbp8spz8v9yjv3d7z3r6"))))
     (build-system meson-build-system)
+    (outputs '("out" "help"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-nautilus-extension
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "nautilus/meson.build"
+               (("libnautilus_extension_dep\\.get_pkgconfig_variable\\('extensiondir'\\)")
+                (string-append "'"
+                               (assoc-ref outputs "out")
+                               "/lib/nautilus/extensions-"
+                               ,(version-major (package-version nautilus))
+                               ".0" "'")))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "postinstall.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)
-       ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
-       ("glib:bin" ,glib "bin")))
-    ;; TODO: Add libnautilus.
+       ("vala" ,vala)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf)
+     `(("cpio" ,cpio)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
        ("json-glib" ,json-glib)
        ("libarchive" ,libarchive)
+       ("libnautilus-extension" ,nautilus)
        ("libnotify" ,libnotify)
-       ("nettle" ,nettle)
-       ("libxml2" ,libxml2)))
-    (synopsis "Graphical archive manager for GNOME")
-    (description "File Roller is an archive manager for the GNOME desktop
-environment that allows users to view, unpack, and create compressed archives
-such as gzip tarballs.")
-    (home-page "http://fileroller.sourceforge.net/")
+       ("nettle" ,nettle)))
+    (synopsis "Archive management utility")
+    (description "File Roller is an archive manager for the GNOME environment.
+This means that you can create and modify archives; view the content of an
+archive; view and modify a file contained in the archive; extract files from
+the archive.")
+    (home-page "https://wiki.gnome.org/Apps/FileRoller")
     (license license:gpl2+)))
 
 (define-public gnome-session
-- 
2.28.0


[-- Attachment #1.1.10: 0009-gnu-gedit-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 9522 bytes --]

From 2a659e1327bd6b304ec2a908a5d50ecbd807dc4b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 07:37:39 -0400
Subject: [PATCH 09/19] gnu: gedit: Update package definition.

* gnu/packages/gnome.scm (gedit) [version]: Update to 3.36.2.
[source]<origin>[sha256]: Modify base32.
[outputs]: New outputs "help" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:parallel-build?>: Remove argument.
<#:configure-flags>[-Dgtk_doc]: New flag.
<#:phases>['patch-libgd-fetch]: Modify phase.
['patch-docbook-xml]: New phase.
['move-doc]: New phase.
['move-help]: New phase.
['wrap-gedit]: Modify phase.
[native-inputs]: Add docbook-xml, gtk-doc, python-wrapper, libxml2
and vala.
[inputs]: Remove python, python-pygobject, libxml2 and vala.
Add appstream-glib and tepl. Move gtksourceview and libpeas to ...
[propagated-inputs]: ... here. Remove dconf.
[description]: Modify.
---
 gnu/packages/gnome.scm | 140 ++++++++++++++++++++++++++---------------
 1 file changed, 88 insertions(+), 52 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 002274b6c0..fb2ed1e111 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8189,49 +8189,80 @@ spidermonkey javascript engine and the GObject introspection framework.")
 (define-public gedit
   (package
     (name "gedit")
-    (version "3.34.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
+    (version "3.36.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "15s1almlhjlgl3m8lxg6jpzln8jhgdxxjr635a3b7cf58d35b1v8"))))
     (build-system meson-build-system)
+    (outputs '("out" "help" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags
-       ;; Otherwise, the RUNPATH will lack the final path component.
-       (list (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib/gedit"))
-
-       ;; XXX: Generated .h files are sometimes used before being built.
-       #:parallel-build? #f
-
+       (list
+        "-Dgtk_doc=true"
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib/gedit"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
-           (lambda _
-             (substitute* "build-aux/meson/post_install.py"
-               (("gtk-update-icon-cache") (which "true")))
-             #t))
          (add-after 'unpack 'patch-libgd-fetch
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((libgd (assoc-ref inputs "libgd")))
+             (let* ((libgd (assoc-ref inputs "libgd")))
                ;; Calling git is unnecessary because libgd is fetched as a
                ;; native input to this package.
                (substitute* "meson.build"
-                 ((".*git.*") ""))
+                 ((".*git.*")
+                  ""))
                (copy-recursively libgd "subprojects/libgd")
                #t)))
-         (add-after 'install 'wrap-gedit
+         (add-after 'patch-libgd-fetch 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* '("api-breaks.xml" "gedit-docs.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.1.2")
+                                 "/xml/dtd/docbook/"))
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.3")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "build-aux/meson/post_install.py"
+               (("gtk-update-icon-cache")
+                (which "true")))
+             #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-after 'move-doc 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t)))
+         (add-after 'move-help 'wrap-gedit
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out               (assoc-ref outputs "out"))
-                   (gtksourceview     (assoc-ref inputs "gtksourceview"))
-                   (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
-                   (python-path       (getenv "PYTHONPATH")))
+             (let* ((out (assoc-ref outputs "out"))
+                    (gtksourceview (assoc-ref inputs "gtksourceview"))
+                    (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+                    (python-path (getenv "PYTHONPATH")))
                (wrap-program (string-append out "/bin/gedit")
                  ;; For plugins.
                  `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
@@ -8240,44 +8271,49 @@ spidermonkey javascript engine and the GObject introspection framework.")
                  `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
                                                                "/share")))))
              #t)))))
-    (propagated-inputs
-     `(("dconf" ,dconf)))
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
+       ("docbook-xml-4.3" ,docbook-xml-4.3)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
-       ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("libgd"
         ,(origin
            (method git-fetch)
-           (uri (git-reference
-                 (url "https://gitlab.gnome.org/GNOME/libgd")
-                 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
+           (uri
+            (git-reference
+             (url "https://gitlab.gnome.org/GNOME/libgd")
+             (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
            (file-name (git-file-name "libgd" version))
            (sha256
             (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("vala" ,vala)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("glib" ,glib)
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("appstream-util" ,appstream-glib)
+       ("glib" ,glib)
+       ("gnome-desktop" ,gnome-desktop)
        ("gspell" ,gspell)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview)
-       ("libpeas" ,libpeas)
-       ("libxml2" ,libxml2)
        ("iso-codes" ,iso-codes)
-       ("python-pygobject" ,python-pygobject)
-       ("python" ,python)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("libx11" ,libx11)
-       ("vala" ,vala)
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
        ("libsoup" ,libsoup)
-       ("gnome-desktop" ,gnome-desktop)))
-    (home-page "https://wiki.gnome.org/Apps/Gedit")
+       ("tepl" ,tepl)
+       ("x11" ,libx11)))
+    (propagated-inputs
+     `(("gtksourceview" ,gtksourceview)
+       ("libpeas" ,libpeas)))
     (synopsis "GNOME text editor")
-    (description "While aiming at simplicity and ease of use, gedit is a
-powerful general purpose text editor.")
+    (description "Gedit is the text editor of the GNOME desktop environment.
+The first goal of gedit is to be easy to use, with a simple interface by default.
+More advanced features are available by enabling plugins.")
+    (home-page "https://wiki.gnome.org/Apps/Gedit")
     (license license:gpl2+)))
 
 (define-public zenity
-- 
2.28.0


[-- Attachment #1.1.11: 0010-gnu-gnome-backgrounds-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2529 bytes --]

From 41a75c65eda696087daf2afd287be95116e27b64 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 07:51:25 -0400
Subject: [PATCH 10/19] gnu: gnome-backgrounds: Update package definition.

* gnu/packages/gnome.scm (gnome-backgrounds) [version]: Update to
3.36.0.
[source]<origin>[sha256]: Modify base32.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 31 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fb2ed1e111..67c45aa388 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10218,30 +10218,29 @@ graphical representation.")
 (define-public gnome-backgrounds
   (package
     (name "gnome-backgrounds")
-    (version "3.34.0")
+    (version "3.36.0")
     (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
-         "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
+        (base32 "02xvfwfi3133mjljl731z2hj9hfmjas3a1jl4fxmy24xrzj83jxq"))))
     (build-system meson-build-system)
     (native-inputs
      `(("intltool" ,intltool)))
+    (synopsis "Default wallpaper set for GNOME")
+    (description "GNOME backgrounds package contains a set of backgrounds
+packaged with the GNOME desktop.")
     (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
-    (synopsis "Background images for the GNOME desktop")
-    (description
-     "GNOME backgrounds package contains a collection of graphics files which
-can be used as backgrounds in the GNOME Desktop environment.  Additionally,
-the package creates the proper framework and directory structure so that you
-can add your own files to the collection.")
-    (license (list license:gpl2+
-                   license:cc-by2.0
-                   license:cc-by-sa2.0
-                   license:cc-by-sa3.0))))
+    (license
+     (list
+      license:gpl2+
+      license:cc-by2.0
+      license:cc-by-sa2.0
+      license:cc-by-sa3.0))))
 
 (define-public gnome-screenshot
   (package
-- 
2.28.0


[-- Attachment #1.1.12: 0011-gnu-gnome-bluetooth-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4721 bytes --]

From 108603d00b4702245d119e334e1307e8693a5b47 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 08:03:22 -0400
Subject: [PATCH 11/19] gnu: gnome-bluetooth: Update package definition.

* gnu/packages/gnome.scm (gnome-bluetooth) [version]: Update to
3.34.1.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dicon_update]: New flag.
[-Dgtk_doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml and gtk-doc. Remove gtk+:bin.
[inputs]: Add bluez, dbus-glib, gconf and libunique.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Add gpl2+.
---
 gnu/packages/gnome.scm | 77 ++++++++++++++++++++++++++++++------------
 1 file changed, 56 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 67c45aa388..72fa261dcb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9503,37 +9503,72 @@ providing graphical log-ins and managing local and remote displays.")
 (define-public gnome-bluetooth
   (package
     (name "gnome-bluetooth")
-    (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
-                "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
+    (version "3.34.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "11nk8nvz5yrbx7wp75vsiaf4rniv7ik2g3nwmgwx2b42q9v11j9y"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dicon_update=false"
+        "-Dgtk_doc=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference/libgnome-bluetooth"
+               (substitute* "gnome-bluetooth-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (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
-     `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
-       ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
+    (inputs
+     `(("bluez" ,bluez)
+       ("dbus-glib" ,dbus-glib)
+       ("gconf" ,gconf)
+       ("libcanberra" ,libcanberra)
+       ("libnotify" ,libnotify)
+       ("libunique" ,libunique)
+       ("udev" ,eudev)))
     (propagated-inputs
-     ;; gnome-bluetooth-1.0.pc refers to all these.
      `(("glib" ,glib)
        ("gtk+" ,gtk+)))
-    (inputs
-     `(("eudev" ,eudev)
-       ("libcanberra" ,libcanberra)
-       ("libnotify" ,libnotify)))
-    (synopsis "GNOME Bluetooth subsystem")
+    (synopsis "GNOME Bluetooth")
+    (description "GNOME-Bluetooth is a fork of bluez-gnome focused on
+integration with the GNOME desktop environment.")
     (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
-    (description
-     "This package contains tools for managing and manipulating Bluetooth
-devices using the GNOME desktop.")
-    (license license:lgpl2.1+)))
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Others
+      license:gpl2+))))
 
 (define-public gnome-control-center
   (package
-- 
2.28.0


[-- Attachment #1.1.13: 0012-gnu-gnome-boxes-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5175 bytes --]

From bdb09ca575873ea116d1da2e3d46547e3bf0dd53 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 09:41:32 -0400
Subject: [PATCH 12/19] gnu: gnome-boxes: Update package definition.

* gnu/packages/gnome.scm (gnome-boxes): Update package definition.
[outputs]: New output "help".
[arguments]<#:configure-flags>[-Drdp]: Remove flag.
<#:phases>['skip-gtk-update-icon-cache]: New phase.
['move-help]: New phase.
[native-inputs]: Add gobject-introspection and python-wrapper.
[inputs]: Add appstream-glib and freerdp.
[propagated-inputs]: Add glib and glib-networking.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 80 ++++++++++++++++++++++++++++--------------
 1 file changed, 54 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 72fa261dcb..fe21f55bdc 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -12785,52 +12785,80 @@ integrate seamlessly with the GNOME desktop.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/gnome-boxes/"
-                           (version-major+minor version) "/"
-                           "gnome-boxes-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/gnome-boxes/"
+                       (version-major+minor version) "/"
+                       "gnome-boxes-" version ".tar.xz"))
        (sha256
         (base32 "1khvyhgd3p41fvvknga1hdl0p1ks4kj4cwsiaw28v1sy6nzclm2c"))))
     (build-system meson-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:glib-or-gtk? #t
-       #:configure-flags (list "-Drdp=false"
-                               (string-append "-Dc_link_args=-Wl,-rpath="
-                                              (assoc-ref %outputs "out")
-                                              "/lib/gnome-boxes"))))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        ;; For run-path validation.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib/gnome-boxes"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "build-aux/post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")             ; for glib-compile-resources
-       ("gtk+:bin" ,gtk+ "bin")             ; for gtk-update-icon-cache
-       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("itstool" ,itstool)
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
-       ("vala" ,vala)
-       ("pkg-config" ,pkg-config)))
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("vala" ,vala)))
     (inputs
-     `(("libarchive" ,libarchive)
+     `(("appstream-util" ,appstream-glib)
        ("gtk" ,gtk+)
        ("gtk-vnc" ,gtk-vnc)
+       ("gudev" ,libgudev)
+       ("libarchive" ,libarchive)
        ("libosinfo" ,libosinfo)
        ("libsecret" ,libsecret)
        ("libsoup" ,libsoup)
        ("libusb" ,libusb)
        ("libvirt" ,libvirt)
        ("libvirt-glib" ,libvirt-glib)
-       ("libxml" ,libxml2)
-       ("spice-gtk" ,spice-gtk)
+       ("libxml2" ,libxml2)
        ("sparql-query" ,sparql-query)
+       ("spice-gtk" ,spice-gtk)
+       ("tracker" ,tracker)
        ("vte" ,vte)
        ("webkitgtk" ,webkitgtk)
-       ("tracker" ,tracker)
-       ("libgudev" ,libgudev)))
-    (home-page "https://wiki.gnome.org/Apps/Boxes")
-    (synopsis "View, access, and manage remote and virtual systems")
+       ("winpr" ,freerdp)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)))
+    (synopsis "Virtualization made simple")
     (description "GNOME Boxes is a simple application to view, access, and
 manage remote and virtual systems.")
-    (license (list
-              ;; For data/icons/empty-boxes.png.
-              license:cc-by2.0
-              ;; For all others.
-              license:lgpl2.0+))))
+    (home-page "https://wiki.gnome.org/Apps/Boxes")
+    (license
+     (list
+      ;; Icons
+      license:cc-by2.0
+      ;; Others.
+      license:lgpl2.0+))))
 
 (define-public geary
   (package
-- 
2.28.0


[-- Attachment #1.1.14: 0013-gnu-gnome-calculator-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4172 bytes --]

From 4444c742902b140042c325466afd544b2b686e15 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 10:16:18 -0400
Subject: [PATCH 13/19] gnu: gnome-calculator: Update package definition.

* gnu/packages/gnome.scm (gnome-calculator) [version]: Update to
3.36.0.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
['move-help]: New phase.
[native-inputs]: Add gobject-introspection.
[inputs]: Move libgee to ...
[propagated-inputs]: ... here. Add glib and gtk+.
[synopsis]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 61 +++++++++++++++++++++++++++++-------------
 1 file changed, 42 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fe21f55bdc..20b83ac050 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11344,39 +11344,62 @@ handling the startup notification side.")
 (define-public gnome-calculator
   (package
     (name "gnome-calculator")
-    (version "3.34.1")
+    (version "3.36.0")
     (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
-         "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
+        (base32 "1cqd4b25qp1i0p04m669jssg1l5sdapc1mniv9jssvw5r7wk1s52"))))
     (build-system meson-build-system)
-    (arguments '(#:glib-or-gtk? #t))
+    (outputs '("out" "help"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               (rename-file
+                (string-append out "/share/devhelp")
+                (string-append help "/share/devhelp"))
+               #t))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
-       ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("itstool" ,itstool)
-       ("vala" ,vala)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
     (inputs
-     `(("glib" ,glib)
-       ("gtksourceview" ,gtksourceview)
-       ("libgee" ,libgee)
+     `(("gtksourceview" ,gtksourceview)
        ("libsoup" ,libsoup)
        ("libxml2" ,libxml2)
        ("mpc" ,mpc)
        ("mpfr" ,mpfr)))
+    (propagated-inputs
+     `(("gee" ,libgee)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)))
+    (synopsis "GNOME Calculator")
+    (description "GNOME-Calculator is an application that solves mathematical
+equations and is suitable as a default application in a Desktop environment.")
     (home-page "https://wiki.gnome.org/Apps/Calculator")
-    (synopsis "Desktop calculator")
-    (description
-     "Calculator is an application that solves mathematical equations and
-is suitable as a default application in a Desktop environment.")
-    (license license:gpl3)))
+    (license license:gpl3+)))
 
 (define-public xpad
   (package
-- 
2.28.0


[-- Attachment #1.1.15: 0014-gnu-gnome-calendar-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4090 bytes --]

From a9bf121a704e1b5f30f19efdf2a20ce1a2392ff8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 10:59:51 -0400
Subject: [PATCH 14/19] gnu: gnome-calendar: Update package definition.

* gnu/packages/gnome.scm (gnome-calendar) [version]: Update to 3.36.2.
[propagated-inputs]: Move evolution-data-server to ...
[inputs]: ... here. Add geocode-glib, glib, gtk+, libhandy, libical and
libsoup.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 54 +++++++++++++++++++++++-------------------
 1 file changed, 29 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 20b83ac050..f327d92f97 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10772,47 +10772,51 @@ desktop.  It supports world clock, stop watch, alarms, and count down timer.")
 (define-public gnome-calendar
   (package
     (name "gnome-calendar")
-    (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
-                "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
+    (version "3.36.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "07sc1kn65dzxsxpv0vl5dj1a5awljjsfl9jldrg0hnjmq12m7c6h"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
-       ;; gnome-calendar has to be installed before the tests can be run
-       ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
-       #:tests? #f
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "build-aux/meson/meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
+               (("gtk-update-icon-cache")
+                "true"))
              #t)))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
-       ("glib-bin" ,glib "bin")         ; For glib-compile-schemas
+       ("glib-bin" ,glib "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+     `(("evolution-data-server" ,evolution-data-server)
+       ("geocode-glib" ,geocode-glib)
+       ("glib" ,glib)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
        ("libdazzle" ,libdazzle)
+       ("libgeoclue" ,geoclue)
+       ("libhandy" ,libhandy)
+       ("libical" ,libical)
+       ("libsoup", libsoup)
        ("libedataserverui" ,evolution-data-server)
-       ("libgweather" ,libgweather)
-       ("geoclue" ,geoclue)))
-    (propagated-inputs
-     `(("evolution-data-server" ,evolution-data-server)))
+       ("libgweather" ,libgweather)))
+    (synopsis "Calendar application for GNOME")
+    (description "GNOME Calendar is a simple and beautiful calendar application
+designed to perfectly fit the GNOME desktop.  By reusing the components which
+the GNOME desktop is build on, Calendar nicely integrates with the GNOME
+ecosystem.")
     (home-page "https://wiki.gnome.org/Apps/Calendar")
-    (synopsis "GNOME's calendar application")
-    (description
-     "GNOME Calendar is a simple calendar application designed to fit the GNOME
-desktop.  It supports multiple calendars, month, week and year view.")
     (license license:gpl3+)))
 
 (define-public gnome-todo
-- 
2.28.0


[-- Attachment #1.1.16: 0015-gnu-gnome-characters-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4691 bytes --]

From 3eda5fc8e59ac4d93ae3c352395777e7fdb8a47a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 11:23:51 -0400
Subject: [PATCH 15/19] gnu: gnome-characters: Update package definition.

* gnu/packages/gnome.scm (gnome-characters) [version]: Update to
3.34.0.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
[native-inputs]: Add gobject-introspection, ruby and libxml2.
Change python-minimal to python-wrapper. Remove gtk+:bin.
[inputs]: Add glib and pango.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Add gpl2+.
---
 gnu/packages/gnome.scm | 68 ++++++++++++++++++++++++++----------------
 1 file changed, 42 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f327d92f97..c681ed1b04 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2213,46 +2213,62 @@ documents.")
 (define-public gnome-characters
   (package
     (name "gnome-characters")
-    (version "3.30.0")
+    (version "3.34.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/"
-                           "gnome-characters/" (version-major+minor version)
-                           "/gnome-characters-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/"
+                       "gnome-characters/" (version-major+minor version)
+                       "/gnome-characters-" version ".tar.xz"))
        (sha256
-        (base32
-         "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
+        (base32 "0mqaxsa7hcmvid3zbzvxpfkp7s01ghiq6kaibmd3169axrr8ahql"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
-       #:phases (modify-phases %standard-phases
-                  (add-after 'install 'wrap
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      ;; GNOME Characters needs Typelib files from GTK and
-                      ;; gnome-desktop.
-                      (wrap-program (string-append (assoc-ref outputs "out")
-                                                   "/bin/gnome-characters")
-                        `("GI_TYPELIB_PATH" ":" prefix
-                          (,(getenv "GI_TYPELIB_PATH"))))
-                      #t)))))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; GNOME Characters needs Typelib files from GTK and
+             ;; gnome-desktop.
+             (wrap-program
+                 (string-append (assoc-ref outputs "out")
+                                "/bin/gnome-characters")
+               `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))
+             #t)))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
-       ("gtk+:bin" ,gtk+ "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)
-       ("python" ,python-minimal)))
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)
+       ("xmllint" ,libxml2)))
     (inputs
      `(("gjs" ,gjs)
+       ("glib" ,glib)
+       ("gnome-desktop" ,gnome-desktop)
        ("gtk+" ,gtk+)
        ("libunistring" ,libunistring)
-       ("gnome-desktop" ,gnome-desktop)))
-    (home-page "https://wiki.gnome.org/Apps/CharacterMap")
-    (synopsis "Find and insert unusual characters")
-    (description "Characters is a simple utility application to find
-and insert unusual characters.  It allows you to quickly find the
-character you are looking for by searching for keywords.")
-    (license license:bsd-3)))
+       ("pango" ,pango)))
+    (synopsis "Browse and search for non-standard characters")
+    (description "GNOME-Characters is a simple utility application to find and
+insert unusual characters.  It allows you to quickly find the character you are
+looking for by searching for keywords.")
+    (home-page "https://wiki.gnome.org/Apps/Characters")
+    (license
+     (list
+      ;; GTK-JS-App
+      license:bsd-3
+      ;; Others
+      license:gpl2+))))
 
 (define-public gnome-common
   (package
-- 
2.28.0


[-- Attachment #1.1.17: 0016-gnu-gnome-clocks-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4354 bytes --]

From afd112c60ed22bdbf79be5dd3761ed418fa14e40 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 11:45:20 -0400
Subject: [PATCH 16/19] gnu: gnome-clocks: Update package definition.

* gnu/packages/gnome.scm (gnome-clocks) [version]: Update to 3.36.2.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:configure-flags>['move-help]: New phase.
[native-inputs]: Add gobject-introspection.
[inputs]: Add appstream-glib, glib and libhandy.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 67 +++++++++++++++++++++++++-----------------
 1 file changed, 40 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c681ed1b04..e2dc7ec64f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10743,47 +10743,60 @@ Hotmail REST APIs.")
 (define-public gnome-clocks
   (package
     (name "gnome-clocks")
-    (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
-                "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
+    (version "3.36.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1rjicycgh9jvkqir2m8hx9m4jlaa3w5lqs43k185wa0zxhi1n6zi"))))
     (build-system meson-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "build-aux/post-install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t)))))
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
     (native-inputs
-     `(("vala" ,vala)
-       ("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")             ; for glib-compile-resources
-       ("desktop-file-utils" ,desktop-file-utils)
+     `(("desktop-file-utils" ,desktop-file-utils)
        ("gettext" ,gettext-minimal)
-       ("itstool" ,itstool)))
+       ("glib" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
     (inputs
-     `(("glib" ,glib)
+     `(("appstream-util" ,appstream-glib)
+       ("geocode-glib" ,geocode-glib)
+       ("glib" ,glib)
+       ("gnome-desktop" ,gnome-desktop)
        ("gtk+" ,gtk+)
        ("gsound" ,gsound)
-       ("geoclue" ,geoclue)
-       ("geocode-glib" ,geocode-glib)
+       ("libgeoclue" ,geoclue)
        ("libgweather" ,libgweather)
-       ("gnome-desktop" ,gnome-desktop)))
+       ("libhandy" ,libhandy)))
+    (synopsis "Time for Clocks")
+    (description "GNOME-Clocks is a simple clock application for GNOME.
+It includes world clocks, alarms, a stopwatch and a timer.")
     (home-page "https://wiki.gnome.org/Apps/Clocks")
-    (synopsis "GNOME's clock application")
-    (description
-     "GNOME Clocks is a simple clocks application designed to fit the GNOME
-desktop.  It supports world clock, stop watch, alarms, and count down timer.")
-    (license license:gpl3+)))
+    (license license:gpl2+)))
 
 (define-public gnome-calendar
   (package
-- 
2.28.0


[-- Attachment #1.1.18: 0017-gnu-gnome-color-manager-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5320 bytes --]

From 91fd32d40d0b81bc700b3cab7e20498f5d2067f6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 13:35:40 -0400
Subject: [PATCH 17/19] gnu: gnome-color-manager: Update package definition.

* gnu/packages/gnome.scm (gnome-color-manager) [version]: Update to
3.36.0.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
['pre-check]: Modify phase.
['move-help]: New phase.
[native-inputs]: Add python-wrapper.
[inputs]: Add colord, glib, gtk+ and lcms. Remove adwaita-icon-theme,
appstream-glib, colord-gtk, exiv2, gnome-desktop, libexif, libtiff,
libxrandr, libxtst, libxxf86vm, vte and xorgproto.
---
 gnu/packages/gnome.scm | 106 ++++++++++++++++++++++-------------------
 1 file changed, 57 insertions(+), 49 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e2dc7ec64f..be1f5bc51c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1207,56 +1207,64 @@ documentation.")
 
 (define-public gnome-color-manager
   (package
-   (name "gnome-color-manager")
-   (version "3.32.0")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
-   (build-system meson-build-system)
-   (arguments
-    `(#:glib-or-gtk? #t
-      #:phases
+    (name "gnome-color-manager")
+    (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 "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx"))))
+    (build-system meson-build-system)
+    (outputs '("out" "help"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
        (modify-phases %standard-phases
-        (add-before
-         'check 'pre-check
-         (lambda _
-           ;; Tests require a running X server.
-           (system "Xvfb :1 &")
-           (setenv "DISPLAY" ":1")
-           #t)))))
-   (native-inputs
-    `(("desktop-file-utils" ,desktop-file-utils)
-      ("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gtk+:bin" ,gtk+ "bin")
-      ("itstool" ,itstool)
-      ("pkg-config" ,pkg-config)
-      ("xorg-server" ,xorg-server-for-tests)))
-   (inputs
-    `(("adwaita-icon-theme" ,adwaita-icon-theme)
-      ("appstream-glib" ,appstream-glib)
-      ("colord-gtk" ,colord-gtk)
-      ("exiv2" ,exiv2)
-      ("gnome-desktop" ,gnome-desktop)
-      ("libcanberra" ,libcanberra)
-      ("libexif" ,libexif)
-      ("libtiff" ,libtiff)
-      ("libxrandr" ,libxrandr)
-      ("libxtst" ,libxtst)
-      ("libxxf86vm" ,libxxf86vm)
-      ("vte" ,vte)
-      ("xorgproto" ,xorgproto)))
-   (synopsis "Color profile manager for the GNOME desktop")
-   (description "GNOME Color Manager is a session framework that makes
-it easy to manage, install and generate color profiles
-in the GNOME desktop.")
-   (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
-   (license license:gpl2+)))
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.sh"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             #t))
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ;; ("docbook2man" ,docbook-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("colord" ,colord)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libcanberra" ,libcanberra)
+       ("lcms" ,lcms)))
+    (synopsis "Color profile manager for the GNOME desktop")
+    (description "GNOME Color Manager is a session framework that makes it easy
+to manage, install and generate color profiles in the GNOME desktop.")
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
+    (license license:gpl2+)))
 
 (define-public gnome-online-miners
   (package
-- 
2.28.0


[-- Attachment #1.1.19: 0018-gnu-gnome-contacts-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5983 bytes --]

From 7e653124b6689a3c77babb7fce785f9304d88c81 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 15:27:33 -0400
Subject: [PATCH 18/19] gnu: gnome-contacts: Update package definition.

* gnu/packages/gnome.scm (gnome-contacts) [version]: Update to
3.36.2.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>['-Dcheese]: Remove flag.
[-Ddocs]: New flag.
<#:phases>['patch-docbook]: New phase.
['generate-vapis]: Remove phase.
[native-inputs]: Add desktop-file-utils, docbook-xml, docbook-xsl,
gettext-minimal, gobject-introspection, libxslt and vala.
[inputs]: Add appstream-glib, cheese, folks, glib and libhandy.
Remove docbook-xml, docbook-xsl, gettext-minimal, gobject-introspection,
gst-plugins-base, libxslt and vala.
[propagated-inputs]: Remove folks and telepathy-mission-control.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 88 +++++++++++++++++++++++-------------------
 1 file changed, 49 insertions(+), 39 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index be1f5bc51c..d0d4de46e6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2303,60 +2303,70 @@ commonly used macros.")
 (define-public gnome-contacts
   (package
     (name "gnome-contacts")
-    (version "3.34")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/gnome-contacts/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
+    (version "3.36.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gnome-contacts/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "048l07biy8xrfidfyzrjd5lrnfzqhb767ih2gl7w6c4mmhj4g2dy"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags '("-Dcheese=false")
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        ;; To enabled after upstream fixes the bug,
+        ;; https://gitlab.gnome.org/GNOME/gnome-contacts/-/issues/176
+        ;; "-Dtelepathy=true"
+        "-Ddocs=true")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'generate-vapis
+         (add-after 'unpack 'patch-docbook
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; To generate goa's missing .vapi file
-             (define goa
-               (assoc-ref inputs "gnome-online-accounts:lib"))
-
-             (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
-                     "--library=goa-1.0"
-                     (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
+             (with-directory-excursion "man"
+               (substitute* '("gnome-contacts.xml" "meson.build")
+                 (("http://docbook.sourceforge.net/release/xsl/current")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-"
+                                 ,(package-version docbook-xsl)))
+                 (("http://www.oasis-open.org/docbook/xml/4.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
              #t))
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
+         (add-before 'configure 'skip-gtk-update-icon-cache
            (lambda _
              (substitute* "build-aux/meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
+               (("gtk-update-icon-cache")
+                "true"))
              #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("docbook-xml" ,docbook-xml-4.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("xsltproc" ,libxslt)))
     (inputs
-     `(("docbook-xml" ,docbook-xml)
-       ("dockbook-xsl" ,docbook-xsl)
+     `(("appstream-util" ,appstream-glib)
+       ("cheese" ,cheese)
        ("evolution-data-server" ,evolution-data-server)
-       ("gettext" ,gettext-minimal)
+       ("folks" ,folks)
+       ("gee" ,libgee)
+       ("glib" ,glib)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gst-plugins-base" ,gst-plugins-base)
        ("gtk+" ,gtk+)
-       ("libgee" ,libgee)
-       ("libxslt" ,libxslt)
-       ("telepathy-glib" ,telepathy-glib)
-       ("vala" ,vala)))
-    (propagated-inputs
-     `(("folks", folks)
-       ("telepathy-mission-control" ,telepathy-mission-control)))
-    (synopsis "GNOME's integrated address book")
-    (description
-     "GNOME Contacts organizes your contact information from online and
-offline sources, providing a centralized place for managing your contacts.")
+       ("libhandy" ,libhandy)
+       ("telepathy-glib" ,telepathy-glib)))
+    (synopsis "Contact manager for GNOME")
+    (description "GNOME-Contacts organizes your contact information from online
+and offline sources, providing a centralized place for managing your contacts.")
     (home-page "https://wiki.gnome.org/Apps/Contacts")
     (license license:gpl2+)))
 
-- 
2.28.0


[-- Attachment #1.1.20: 0019-gnu-gnome-control-center-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 9218 bytes --]

From b02a3f0d0fba7d2f7d6c1809e4ca66e2a9dbf82f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 4 Aug 2020 18:28:39 -0400
Subject: [PATCH 19/19] gnu: gnome-control-center: Update package definition.

* gnu/packages/gnome.scm (gnome-control-center) [version]: Update
to 3.36.4.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dcheese]: Remove flag.
[-Ddocumentation]: New flag.
[-Dgnome_session_libexec_dir]: Remove flag.
<#:phases>['patch-docbook]: New phase.
['patch-paths]: Modify phase.
[native-inputs]: Add docbook-xml, gobject-introspection and
python-wrapper.
[inputs]: Add cairo, cheese, colord, libepoxy, fontconfig, glib,
gsettings-desktop-schemas, gtk+, libhandy, network-manager, libx11
and libxi. Remove clutter-gtk, dconf, gnome-session, libcanberra
and mesa. Change gdk-pixbuf to gdk-pixbuf+svg.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 116 +++++++++++++++++++++++------------------
 1 file changed, 64 insertions(+), 52 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d0d4de46e6..7fe43541c0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9607,32 +9607,43 @@ integration with the GNOME desktop environment.")
 (define-public gnome-control-center
   (package
     (name "gnome-control-center")
-    (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
-                "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
+    (version "3.36.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0m7pxjgymc7aqqz0vcmlq91nxnwzd1v7v1gdhrfam49krxmk80mc"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags
-       (list "-Dcheese=false"
-             (string-append "-Dgnome_session_libexecdir="
-                            (assoc-ref %build-inputs "gnome-session")
-                            "/libexec"))
+       (list
+        "-Ddocumentation=true")
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'patch-paths
+         (add-after 'unpack 'patch-docbook
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((libc   (assoc-ref inputs "libc"))
-                   (tzdata (assoc-ref inputs "tzdata"))
-                   (libgnomekbd (assoc-ref inputs "libgnomekbd"))
-                   (nm-applet   (assoc-ref inputs "network-manager-applet"))
-                   (gnome-desktop (assoc-ref inputs "gnome-desktop")))
+             (with-directory-excursion "man"
+               (substitute* '("gnome-control-center.xml" "meson.build")
+                 (("http://docbook.sourceforge.net/release/xsl/current")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-"
+                                 ,(package-version docbook-xsl)))
+                 (("http://www.oasis-open.org/docbook/xml/4.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-after 'patch-docbook 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((libc (assoc-ref inputs "libc"))
+                    (tzdata (assoc-ref inputs "tzdata"))
+                    (libgnomekbd (assoc-ref inputs "libgnomekbd"))
+                    (nm-applet (assoc-ref inputs "network-manager-applet"))
+                    (gnome-desktop (assoc-ref inputs "gnome-desktop")))
                (substitute* "panels/datetime/tz.h"
                  (("/usr/share/zoneinfo/zone.tab")
                   (string-append tzdata "/share/zoneinfo/zone.tab")))
@@ -9644,7 +9655,6 @@ integration with the GNOME desktop environment.")
                   (string-append "\"" libgnomekbd
                                  "/bin/gkbd-keyboard-display")))
                (substitute* '("panels/network/net-device-wifi.c"
-                              "panels/network/net-device.c"
                               "panels/network/connection-editor/net-connection-editor.c")
                  (("\"nm-connection-editor")
                   (string-append "\"" nm-applet
@@ -9652,70 +9662,72 @@ integration with the GNOME desktop environment.")
                (substitute* '("panels/user-accounts/run-passwd.c")
                  (("/usr/bin/passwd")
                   "/run/setuid-programs/passwd"))
-               (substitute* "panels/info/cc-info-overview-panel.c"
-                 (("DATADIR \"/gnome/gnome-version.xml\"")
-                  (string-append "\"" gnome-desktop
-                                 "/share/gnome/gnome-version.xml\"")))
                #t)))
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
+         (add-before 'configure 'skip-gtk-update-icon-cache
            (lambda _
              (substitute* "build-aux/meson/meson_post_install.py"
-               (("gtk-update-icon-cache") (which "true")))
+               (("gtk-update-icon-cache")
+                (which "true")))
              #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+     `(("docbook-xml" ,docbook-xml-4.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("xsltproc" ,libxslt)
-       ;; For tests
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("python" ,python-wrapper)
        ("python-dbusmock" ,python-dbusmock)
-       ("xorg-server" ,xorg-server-for-tests)))
+       ("xorg-server" ,xorg-server-for-tests)
+       ("xsltproc" ,libxslt)))
     (inputs
      `(("accountsservice" ,accountsservice)
-       ("clutter-gtk" ,clutter-gtk)
+       ("cairo" ,cairo)
+       ("cheese" ,cheese)
+       ("colord" ,colord)
        ("colord-gtk" ,colord-gtk)
        ("cups" ,cups)
-       ("dconf" ,dconf)
-       ("docbook-xsl" ,docbook-xsl)
-       ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
+       ("epoxy" ,libepoxy)
+       ("fontconfig" ,fontconfig)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
        ("gnome-bluetooth" ,gnome-bluetooth)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-online-accounts" ,gnome-online-accounts)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
-       ("gnome-session" ,gnome-session)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("grilo" ,grilo)
        ("gsound" ,gsound)
+       ("gtk+" ,gtk+)
+       ("gudev" ,libgudev)
        ("ibus" ,ibus)
-       ("libcanberra" ,libcanberra)
+       ("krb5" ,mit-krb5)
        ("libgnomekbd" ,libgnomekbd)
-       ("libgudev" ,libgudev)
        ("libgtop" ,libgtop)
+       ("libhandy" ,libhandy)
+       ("libnm" ,network-manager)
        ("libnma" ,libnma)
+       ("libpulse" ,pulseaudio)
        ("libpwquality" ,libpwquality)
        ("libsecret" ,libsecret)
        ("libsoup" ,libsoup)
        ("libxml2" ,libxml2)
        ("libwacom" ,libwacom)
-       ("mesa" ,mesa)
-       ("mit-krb5" ,mit-krb5)
-       ("modem-manager" ,modem-manager)
+       ("mm-glib" ,modem-manager)
        ("network-manager-applet" ,network-manager-applet)
        ("polkit" ,polkit)
-       ("pulseaudio" ,pulseaudio)
        ("smbclient" ,samba)
        ("tzdata" ,tzdata)
        ("udisks" ,udisks)
-       ("upower" ,upower)))
-    (synopsis "Utilities to configure the GNOME desktop")
-    (home-page "https://www.gnome.org/")
-    (description
-     "This package contains configuration applets for the GNOME desktop,
-allowing to set accessibility configuration, desktop fonts, keyboard and mouse
-properties, sound setup, desktop theme and background, user interface
-properties, screen resolution, and other GNOME parameters.")
+       ("upower-glib" ,upower)
+       ("x11" ,libx11)
+       ("xi" ,libxi)))
+    (synopsis "GNOME Settings")
+    (description "GNOME-Control-Center is the GNOME's main interface for
+configuration of various aspects of your desktop.")
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-control-center/")
     (license license:gpl2+)))
 
 (define-public gnome-shell
-- 
2.28.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-04 22:50                                                         ` Raghav Gururajan
@ 2020-08-05 15:14                                                           ` Danny Milosavljevic
  2020-08-07  2:14                                                             ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Danny Milosavljevic @ 2020-08-05 15:14 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

Hi RG,

pushed those to wip-desktop with small changes to the commit message.

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-05 15:14                                                           ` Danny Milosavljevic
@ 2020-08-07  2:14                                                             ` Raghav Gururajan
  2020-08-09 22:28                                                               ` Danny Milosavljevic
  2020-08-14 14:24                                                               ` [20.08.2020 Hartmut Goebel
  0 siblings, 2 replies; 84+ messages in thread
From: Raghav Gururajan @ 2020-08-07  2:14 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

Please find the attached patches.

NOTE: I am not done with some these packages yet. Have to work on some
run-time issues.

@Others

Please find the following git-log.

*** START ***

commit 9fa96cda1abaa15665e231da20a14b283042276b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 21:59:02 2020 -0400

    gnu: gnome-weather: Update package definition.

    * gnu/packages/gnome.scm (gnome-weather) [version]: Update to 3.36.1.
    [sources]<origin>[sha256]: Modify base32.
    [arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
    ['fix-desktop-file]: Remove phase.
    ['wrap]: Modify phase.
    [native-inputs]: Add desktop-file-utils and python-wrapper. Remove
    gtk+:bin.
    [inputs]: Add glib and gtk+. Change gdk-pixbuf to gdk-pixbuf+svg.

commit bbc83c1df07acdb271ebbc0c8c10a5d5fbb9259b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 21:22:32 2020 -0400

    gnu: gnome-user-share: Update package definition.

    * gnu/packages/gnome.scm (gnome-user-share) [version]: Update to 3.34.0.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:configure-flags>[-Dsystemd]: Remove flag.
    [-Dsystemduserunitdir]: New flag.
    [-Dhttpd]: New flag.
    [-Dmodules_path]: New flag.
    [native-inputs]: Remove gtk+:bin and yelp-tools.
    [inputs]: Add httpd and libselinux. Remove gnome-bluetooth,
    libcanberra and libnotify.

commit b1918a7c727a7b1ae16c7f4008df017f63b526d4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 20:51:52 2020 -0400

    gnu: gnome-user-docs: Update package definition.

    * gnu/packages/gnome.scm (gnome-user-docs) [version]: Update to 3.36.2.
    [source]<origin>[sha256]: Modify base32.
    [synopsis]: Modify.
    [description]: Modify.

commit c3f3f8850f4538400b54202b0c344967137f0c25
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 20:40:20 2020 -0400

    gnu: gnome-themes-extra: Update package definition.

    * gnu/packages/gnome.scm (gnome-themes-extra): Update package
definition.
    [build-system]: Change from gnu to glib-or-gtk.
    [native-inputs]: Add libxml2.
    [inputs]: Add cairo, gdk-pixbuf+svg and glib. Remove libxml2.
    [description]: Modify.

commit f0616f6f25bc316c9d417c951f674e18b0cc39bd
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 20:07:07 2020 -0400

    gnu: gnome-terminal: Update package definition.

    * gnu/packages/gnome.scm (gnome-terminal) [version]: Update to 3.36.2.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [--disable-migration]: Remove flag.
    [--without-nautilus-extension]: Remove flag.
    [--with-help-dir]: New flag.
    <#:phases>['patch-/bin/true]: Remove phase.
    ['remove-systemd]: New phase.
    [native-inputs]: Add vala.
    [inputs]: Add dconf, glib, nautilus and pcre2. Remove gnutls and vala.
    [propagated-inputs]: Remove dconf.
    [description]: Modify.
    [license]: Add fdl1.3+.

commit 05ef1f07aa8018de7f4dbec4158099e0e3b401b7
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 18:01:52 2020 -0400

    gnu: gnome-system-monitor: Update package extensions.

    * gnu/packages/gnome.scm (gnome-system-monitor) [version]: Update to
    3.36.1.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:configure-flags>[-Dwnck]: New flag.
    <#:phases>['skip-gtk-update-icon-cache]: New phase.
    ['move-help]: New phase.
    [native-inputs]: Add desktop-file-utils. Remove polkit. Move libgtop
    to ...
    [inputs]: ... here. Add appstream-glib, glib, glibmm and libselinux.
    Remove gdk-pixbuf+svg.
    [synopsis]: Modify.
    [description]: Modify.

commit cd4ae0bed9e78ae01be37385d4953c442e7dbc54
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 17:26:01 2020 -0400

    gnu: gnome-shell-extensions: Update package definition.

    * gnu/packages/gnome.scm (gnome-shell-extensions) [version]: Update
    to 3.36.2.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dclassic_mode]: New flag.
    [inputs]: Add mozjs60 and sassc.
    [description]: Modify.
    [license]: Change from gpl3+ to gpl2+.

commit c59d4373532863647b6d6e9d7e253b6cfdddc5ad
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 16:46:06 2020 -0400

    gnu: gnome-settings-daemon: Update package definition.

    * gnu/packages/gnome.scm (gnome-settings-daemon) [version]: Update
    to 3.36.1.
    [arguments]<#:configure-flags>['-Dudev_dir]: Modify flag.
    [native-inputs]: Add python-dbusmock, gobject-introspection, umockdev
    and which. Remove docbook-xml and docbook-xsl.
    [inputs]: Add fontconfig, glib, gtk+, xorgproto, pango, eudev, libxext
    and libxi. Remove libxtst.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Add lgpl2.1+.

commit 9d9b5bcefaaf0a7858fc79f6ee7183d8b787700c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 15:36:30 2020 -0400

    gnu: gnome-session: Update package definition.

    * gnu/packages/gnome.scm (gnome-session) [version]: Update to 3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[-Dsession_selector]: New flag.
    [-Dsystemd]: New flag.
    [-Dsystemd_session]: New flag.
    [-Ddocbook]: Remove flag.
    [-Dman]: Remove flag.
    <#:phases>['patch-docbook]: New phase.
    ['pre-configure]: Remove phase.
    ['move-doc]: New phase.
    ['wrap-gnome-session]: Modify phase.
    [inputs]: Add libepoxy, glib, libice and libx11. Remove elogind,
    gsettings-desktop-schemas, libxtst and upower.

commit 5f10e67e1559968a9b3c38c58a1f7725a4e8709b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 14:54:00 2020 -0400

    gnu: gnome-screenshot: Update package definition.

    * gnu/packages/gnome.scm (gnome-screenshot) [version]: Update to 3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    [native-inputs]: Add libxml2. Remove appstream-glib.
    [inputs]: Add glib.
    [description]: Modify.

commit 461c396d624413e65564df24d6863112cc8cfcb5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 14:28:58 2020 -0400

    gnu: gnome-photos: Update package definition.

    * gnu/packages/gnome.scm (gnome-photos): Update package definition.
    [outputs]: New output "help".
    [arguements]<#:phases>['skip-gtk-update-icon-cache]: New phase.
    ['pre-check]: New phase.
    ['move-help]: New phase.
    ['wrap-gnome-photos]: Remove phase.
    [native-inputs]: Add xorg-server-for-tests. Remove gtk+:bin. Move
    dbus to ...
    [inputs]: ... here. Add glib. Remove gnome-online-miners, grilo-plugins,
    rest, python-pygobject and tracker-miners. Change gnome-online-accounts
    to gnome-online-accounts:lib.
    [synopsis]: Modify.

commit bfba8b2ffdd035083206c2521ead437cc46b7d41
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 13:49:43 2020 -0400

    gnu: gnome-music: Update package definition.

    * gnu/packages/gnome.scm (gnome-music) [version]: Update to 3.36.4.1.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:tests?>: New argument.
    <#:phases>['skip-gtk-update-icon-cache]: New phase.
    ['move-help]: New phase.
    ['wrap-gnome-music]: Modify phase.
    [native-inputs]: Remove gtk+:bin.
    [inputs]: Add appstream-glib, gtk+ and python. Change
gnome-online-accounts
    to gnome-online-accounts:lib. Remove gst-plugins-base, gstreamer,
gvfs and
    tracker-miners.
    [propagated-inputs]: Add glib.
    [synopsis]: Modify.
    [description]: Modify.

commit 1414a2f0b8c1ec47f1f968f32085460b0b26deba
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Aug 6 11:32:45 2020 -0400

    gnu: gnome-maps: Update package definition.

    * gnu/packages/gnome.scm (gnome-maps) [version]: Update to 3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to glib-or-gtk.
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    <#:make-flags>[INTROSPECTION_GIRDIR]: New flag.
    [INTROSPECTION_TYPELIBDIR]: New flag.
    [native-inputs]: Add gjs and gobject-introspection. Move glib to ...
    [propagated-inputs]: ... here.
    [synopsis]: Modify.
    [license]: Add gpl2+.

commit 6ec52554da9c14a29f2c8ae31c815461da71bef5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 21:26:46 2020 -0400

    gnu: gnome-maps: Update package definition.

    * gnu/packages/gnome.scm (gnome-maps) [version]: Update to 3.36.4.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:phases>['wrap]: Modify phase.
    [native-inputs]: Add desktop-file-utils and glib:bin.
    [inputs]: Add appstream-glib. Remove evolution-data-server,
gdk-pixbuf+svg,
    gfbgraph, gnome-online-accounts:lib, gsettings-desktop-schemas,
libgweather,
    libsecret, libsoup and webkitgtk.
    [synopsis]: Modify.
    [description]: Modify.

commit 2dd3ec1ed9317f609f61d0f2e83c3b4b26431ed4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 19:39:11 2020 -0400

    gnu: seed: Disable tests.

    * gnu/packages/gnome.scm (seed) [arguments]<#:tests?>: New argument.

commit 22a6ceb627294dbb895761c90070d6e753db517d
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 18:46:11 2020 -0400

    gnu: gnome-keyring: Update package definition.

    * gnu/packages/gnome.scm (gnome-keyring) [version]: Update to 3.36.0.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to glib-or-gtk.
    [arguments]<#:configure-flags>[--enable-doc]: New flag.
    [--with-pkcs11-config]: Modify flag.
    [--with-pkcs11-modules]: Modify flag.
    <#:phases>['patch-docbook]: New phase.
    ['trigger-bootstrap]: New phase.
    ['fix-/bin/sh-reference]: Remove phase.
    ['fix-docbook]: Remove phase.
    [native-inputs]: Add gobject-introspection and libtool. Change
    python-2 to python-wrapper.
    [inputs]: Add libcap-ng.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Modify.

commit 60b251a90fb668fd4e74c4d22a53ec675a720b81
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 16:57:57 2020 -0400

    gnu: gnome-initial-setup: Update package definition.

    * gnu/packages/gnome.scm (gnome-initial-setup) [version]: Update to
    3.36.4.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dcheese]: Remove flag.
    [native-inputs]: Remove gtk+:bin.
    [inputs]: Add cheese, geocode-glib, gtk+, malcontent and pango.
    Remove gnome-getting-started-docs, gstreamer, packagekit and upower.
    [description]: Modify.
    [home-page]: Modify.

commit e8eca868dd9a7b389b272b517e5e181175d9668c
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 15:55:06 2020 -0400

    gnu: malcontent: Update package definition.

    * gnu/packages/freedesktop.scm (malcontent): Update package definition.
    [outputs]: New output "help".
    [arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
    ['move-help]: New phase.
    [native-inputs]: Remove gtk+:bin.
    [inputs]: Remove libostree. Move accountsservice, flatpack, glib and
    gtk+ to ...
    [propagated-inputs]: ... here.
    [license]: Modify.

commit 6b48b50eeffa044f4973b8591f1387f5ddfb789e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 15:41:37 2020 -0400

    gnu: flatpak: Update package definition.

    * gnu/packages/package-management.scm (flatpak): Update package
definition.
    [inputs]: Replace fuse with fuse-legacy. Move libostree to ...
    [propagated-inputs]: ... here. Add glib.

commit bd5161bd90ead802200bd28eceecbd912d4c240a
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 15:33:38 2020 -0400

    gnu: libostree: Update package definition.

    * gnu/packages/package-management.scm (libostree): Update package
    definition.
    [inputs]: Replace fuse with fuse-legacy. Move glib to ...
    [propagated-inputs]: ... here.

commit 394ab38f2f7416be427138789472ef845790baa9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 15:27:26 2020 -0400

    gnu: Add fuse@2.9.9.

    * gnu/packages/linux.scm (fuse-legacy): New variable.

commit c6a80558d787cfbb773061a2484b796a28121719
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 14:36:35 2020 -0400

    gnu: gnome-getting-started-docs: Update package definition.

    * gnu/packages/gnome.scm (gnome-getting-started-docs) [version]:
    Update to 3.36.2.
    [source]<origin>[sha256]: Modify base32.
    [synopsis]: Modify.
    [description]: Modify.

commit 20d62c9ddc18e338f59a0237c8dd0e654ea2380e
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 14:13:37 2020 -0400

    gnu: gnome-font-viewer: Update package definition.

    * gnu/packages/gnome.scm (gnome-font-viewer) [version]: Update to
    3.34.0.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-post-install-script]: Remove phase.
    [native-inputs]: Add desktop-file-utils.
    [inputs]: Add fontconfig, freetype and harfbuzz.
    [synopsis]: Modify.
    [description]: Modify.

commit b0af26fa55b2e45e49fc6aab45b4e4ef2bbeed2b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 13:56:04 2020 -0400

    gnu: gnome-disk-utility: Update package definition.

    * gnu/packages/gnome.scm (gnome-disk-utility) [version]: Update to
    3.36.3.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-docbook-xsl]: New phase.
    [native-inputs]: Remove docbook-xml.
    [inputs]: Add xz. Remove appstream-glib.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit b22d8c556e9876d67f0049a52268218d5a576484
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Aug 5 13:13:48 2020 -0400

    gnu: gnome-desktop: Update package definition.

    * gnu/packages/gnome.scm (gnome-desktop) [version]: Update to 3.36.4.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New outputs "help" and "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dgnome_distributor]: New flag.
    [-Dudev]: New flag.
    [-Dsystemd]: New flag.
    [-Dgtk_doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['patch-path]: Modify phase.
    ['pre-check]: Modify phase.
    ['move-doc]: New phase.
    ['move-help]: New phase.
    [native-inputs]: Add docbook-xml and gtk-doc.
    [inputs]: Add fontconfig. Remove gdk-pixbuf, glib, libxext, libxkbfile
    and libxrandr.
    [propagated-inputs]: Add gdk-pixbuf+svg, glib, glib-networking and
    eudev.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Add fdl1.1+ and lgpl2.0+.

*** END ***

Regards,
RG.

[-- Attachment #1.1.2: 0020-gnu-gnome-desktop-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7893 bytes --]

From b22d8c556e9876d67f0049a52268218d5a576484 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 13:13:48 -0400
Subject: [PATCH 20/44] gnu: gnome-desktop: Update package definition.

* gnu/packages/gnome.scm (gnome-desktop) [version]: Update to 3.36.4.
[source]<origin>[sha256]: Modify base32.
[outputs]: New outputs "help" and "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dgnome_distributor]: New flag.
[-Dudev]: New flag.
[-Dsystemd]: New flag.
[-Dgtk_doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['patch-path]: Modify phase.
['pre-check]: Modify phase.
['move-doc]: New phase.
['move-help]: New phase.
[native-inputs]: Add docbook-xml and gtk-doc.
[inputs]: Add fontconfig. Remove gdk-pixbuf, glib, libxext, libxkbfile
and libxrandr.
[propagated-inputs]: Add gdk-pixbuf+svg, glib, glib-networking and
eudev.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Add fdl1.1+ and lgpl2.0+.
---
 gnu/packages/gnome.scm | 116 +++++++++++++++++++++++++++--------------
 1 file changed, 77 insertions(+), 39 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 7fe43541c0..d6d59d3359 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2373,23 +2373,39 @@ and offline sources, providing a centralized place for managing your contacts.")
 (define-public gnome-desktop
   (package
     (name "gnome-desktop")
-    (version "3.34.2")
+    (version "3.36.4")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/" name "/"
-                          (version-major+minor version)  "/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1ilv49qkppbbag5728iswg1jhhqx9hbj7j8k8wccnbyaq54bsyq0"))))
     (build-system meson-build-system)
+    (outputs '("out" "help" "doc"))
     (arguments
-     '(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dgnome_distributor=Guix"
+        "-Dudev=enabled"
+        "-Dsystemd=disabled"
+        "-Dgtk_doc=true")
+       #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference/gnome-desktop3"
+               (substitute* "gnome-desktop3-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 'configure 'patch-path
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((libc   (assoc-ref inputs "libc")))
+             (let* ((libc (assoc-ref inputs "libc")))
                (substitute* "libgnome-desktop/gnome-languages.c"
                  (("\"locale\"")
                   (string-append "\"" libc "/bin/locale\"")))
@@ -2405,53 +2421,75 @@ and offline sources, providing a centralized place for managing your contacts.")
                                "\", \""
                                (%store-directory)
                                "\","))
-               (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
+               (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",")
+                ""))
              #t))
          (add-before 'check 'pre-check
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Tests require a running X server and locales.
-             (system "Xvfb :1 &")
+             (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
              (setenv "GUIX_LOCPATH"
                      (string-append (assoc-ref inputs "glibc-locales")
                                     "/lib/locale"))
-             #t)))))
+             #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-after 'move-doc 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for gdbus-codegen
-       ("glibc-locales" ,glibc-locales) ; for tests
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")
+       ("glibc-locales" ,glibc-locales)
        ("gobject-introspection" ,gobject-introspection)
-       ("itstool" ,itstool)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
+       ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)
        ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("fontconfig" ,fontconfig)
+       ("bubblewrap" ,bubblewrap)))
     (propagated-inputs
-     ;; Required by gnome-desktop-3.0.pc.
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
        ("iso-codes" ,iso-codes)
        ("libseccomp" ,libseccomp)
-       ("libx11" ,libx11)
-       ("xkeyboard-config" ,xkeyboard-config)))
-    (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("bubblewrap" ,bubblewrap)
-       ("libxext" ,libxext)
-       ("libxkbfile" ,libxkbfile)
-       ("libxrandr" ,libxrandr)))
-    (home-page "https://www.gnome.org/")
-    (synopsis
-     "Libgnome-desktop, gnome-about, and desktop-wide documents")
-    (description
-     "The libgnome-desktop library provides API shared by several applications
-on the desktop, but that cannot live in the platform for various reasons.
-There is no API or ABI guarantee, although we are doing our best to provide
-stability.  Documentation for the API is available with gtk-doc.
-
-The gnome-about program helps find which version of GNOME is installed.")
-    ; Some bits under the LGPL.
-    (license license:gpl2+)))
+       ("libudev" ,eudev)
+       ("xkeyboard-config" ,xkeyboard-config)
+       ("x11" ,libx11)))
+    (synopsis "Library for sharing code between GNOME desktop components")
+    (description "GNOME-Desktop contains the libgnome-desktop library as well as
+a data file that exports the GNOME version to the Settings Details panel.
+The libgnome-desktop library provides API shared by several applications on the
+desktop.")
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-desktop")
+    (license
+     (list
+      ;; Documentation
+      license:fdl1.1+
+      ;; Library
+      license:lgpl2.0+
+      ;; Others
+      license:gpl2+))))
 
 (define-public gnome-doc-utils
   (package
-- 
2.28.0


[-- Attachment #1.1.3: 0021-gnu-gnome-disk-utility-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4443 bytes --]

From b0af26fa55b2e45e49fc6aab45b4e4ef2bbeed2b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 13:56:04 -0400
Subject: [PATCH 21/44] gnu: gnome-disk-utility: Update package definition.

* gnu/packages/gnome.scm (gnome-disk-utility) [version]: Update to
3.36.3.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xsl]: New phase.
[native-inputs]: Remove docbook-xml.
[inputs]: Add xz. Remove appstream-glib.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 63 +++++++++++++++++++++++++-----------------
 1 file changed, 38 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d6d59d3359..3a480d131c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2525,49 +2525,62 @@ and keep up to date translations of documentation.")
 (define-public gnome-disk-utility
   (package
     (name "gnome-disk-utility")
-    (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
-                "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
+    (version "3.36.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0yhnjmjzkixj29vcw6rzaijpg4mlwm2k1kqp4g3hn1xb6qzks0yx"))))
     (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("-Dlogind=libelogind")
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dlogind=libelogind")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
+         (add-after 'unpack 'patch-docbook-xsl
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/man"
+               (substitute* "meson.build"
+                 (("http://docbook.sourceforge.net/release/xsl/current")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-"
+                                 ,(package-version docbook-xsl)))))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
            (lambda _
              (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
+               (("gtk-update-icon-cache")
+                "true"))
              #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
+     `(("docbook-xsl" ,docbook-xsl)
+       ("glib:bin" ,glib "bin")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))
+       ("xmllint" ,libxml2)
+       ("xsltproc" ,libxslt)))
     (inputs
-     `(("elogind" ,elogind)
+     `(("dvdread" ,libdvdread)
+       ("elogind" ,elogind)
        ("glib" ,glib)
-       ("appstream-glib" ,appstream-glib)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
        ("gtk+" ,gtk+)
        ("libcanberra" ,libcanberra)
-       ("libdvdread" ,libdvdread)
+       ("liblzma" ,xz)
        ("libnotify" ,libnotify)
-       ("libpwquality" ,libpwquality)
        ("libsecret" ,libsecret)
+       ("pwquality" ,libpwquality)
        ("udisks" ,udisks)))
-    (home-page "https://git.gnome.org/browse/gnome-disk-utility")
-    (synopsis "Disk management utility for GNOME")
-    (description "Disk management utility for GNOME.")
+    (synopsis "View, modify and configure disks and media")
+    (description "GNOME-Disk-Utility provides libraries and applications for
+dealing with storage devices.")
+    (home-page "https://wiki.gnome.org/Apps/Disks")
     (license license:gpl2+)))
 
 (define-public gnome-font-viewer
-- 
2.28.0


[-- Attachment #1.1.4: 0022-gnu-gnome-font-viewer-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3404 bytes --]

From 20d62c9ddc18e338f59a0237c8dd0e654ea2380e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 14:13:37 -0400
Subject: [PATCH 22/44] gnu: gnome-font-viewer: Update package definition.

* gnu/packages/gnome.scm (gnome-font-viewer) [version]: Update to
3.34.0.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-post-install-script]: Remove phase.
[native-inputs]: Add desktop-file-utils.
[inputs]: Add fontconfig, freetype and harfbuzz.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 48 +++++++++++++++++++++---------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3a480d131c..5522525780 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2586,37 +2586,37 @@ dealing with storage devices.")
 (define-public gnome-font-viewer
   (package
     (name "gnome-font-viewer")
-    (version "3.30.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
-                                  (version-major+minor version)
-                                  "/gnome-font-viewer-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
+    (version "3.34.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gnome-font-viewer/"
+                       (version-major+minor version)
+                       "/gnome-font-viewer-" version ".tar.xz"))
+       (sha256
+        (base32 "12xrsqwmvid7hksiw4zhj4jd1qwxn8w0czskbq4yqfprwn1havxa"))))
     (build-system meson-build-system)
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-post-install-script
-           (lambda _
-             (substitute* "meson-postinstall.sh"
-               (("update-desktop-database") (which "true")))
-             #t)))))
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("gettext" ,gettext-minimal)
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("glib" ,glib)
+     `(("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("glib" ,glib)
        ("gnome-desktop" ,gnome-desktop)
-       ("gtk+" ,gtk+)))
+       ("gtk+" ,gtk+)
+       ("harfbuzz" ,harfbuzz)))
+    (synopsis "View fonts on your system")
+    (description "GNOME-Font-Viewer is an application to show you the fonts
+installed on your computer for your use as thumbnails.  Selecting any thumbnails
+shows the full view of how the font would look under various sizes.")
     (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
-    (synopsis "GNOME Fonts")
-    (description "Application to show you the fonts installed on your computer
-for your use as thumbnails.  Selecting any thumbnails shows the full view of how
-the font would look under various sizes.")
     (license license:gpl2+)))
 
 (define-public gcr
-- 
2.28.0


[-- Attachment #1.1.5: 0023-gnu-gnome-getting-started-docs-Update-package-defini.patch --]
[-- Type: text/x-patch, Size: 2962 bytes --]

From c6a80558d787cfbb773061a2484b796a28121719 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 14:36:35 -0400
Subject: [PATCH 23/44] gnu: gnome-getting-started-docs: Update package
 definition.

* gnu/packages/gnome.scm (gnome-getting-started-docs) [version]:
Update to 3.36.2.
[source]<origin>[sha256]: Modify base32.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 47 ++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5522525780..3c9395ec56 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1998,31 +1998,28 @@ and system administrators.")
 
 (define-public gnome-getting-started-docs
   (package
-   (name "gnome-getting-started-docs")
-   (version "3.32.2")
-   (source
-    (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
-                          (version-major+minor version)
-                          "/gnome-getting-started-docs-" version ".tar.xz"))
-      (sha256
-       (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
-   (build-system gnu-build-system)
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("itstool" ,itstool)
-      ("pkg-config" ,pkg-config)
-      ("xmllint" ,libxml2)))
-   (synopsis "Help to get new users started with the GNOME desktop")
-   (description
-    "The GNOME Getting Started Documentation contains GNOME's intuitive
-\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
-
-It is normally used together with @command{gnome-initial-setup}, but is also
-useful as a tutorial and users' guide for new or less experienced users.")
-   (home-page "https://live.gnome.org/DocumentationProject")
-   (license license:cc-by-sa3.0)))
+    (name "gnome-getting-started-docs")
+    (version "3.36.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
+                       (version-major+minor version)
+                       "/gnome-getting-started-docs-" version ".tar.xz"))
+       (sha256
+        (base32 "1ihxa9g687rbb4s2gxd2pf726adx98ahq4kfad868swl7a8vi504"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (synopsis "Help a new user get started in GNOME")
+    (description "GNOME-Getting-Started-Docs provides the Getting Started guide
+for GNOME Desktop.")
+    (home-page "https://live.gnome.org/DocumentationProject")
+    (license license:cc-by-sa3.0)))
 
 (define-public dia
   ;; This version from GNOME's repository includes fixes for compiling with
-- 
2.28.0


[-- Attachment #1.1.6: 0024-gnu-Add-fuse-2.9.9.patch --]
[-- Type: text/x-patch, Size: 3946 bytes --]

From 394ab38f2f7416be427138789472ef845790baa9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 15:27:26 -0400
Subject: [PATCH 24/44] gnu: Add fuse@2.9.9.

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

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 4357ed8f87..950bab9900 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2669,6 +2669,68 @@ reference implementation for communicating with the FUSE kernel module.")
       ;; Others.
       license:gpl2+))))
 
+(define-public fuse-legacy
+  (package
+    (name "fuse")
+    (version "2.9.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/libfuse/libfuse/releases/"
+                                  "download/fuse-" version
+                                  "/fuse-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ddlq6kzxilccgbvxjfx80jx6kamgw4sv49phks2zhlcc1frvrnh"))
+              (patches (search-patches "fuse-overlapping-headers.patch"))))
+    (build-system gnu-build-system)
+    (inputs `(("util-linux" ,util-linux)))
+    (arguments
+     '(#:configure-flags (list (string-append "MOUNT_FUSE_PATH="
+                                              (assoc-ref %outputs "out")
+                                              "/sbin")
+                               (string-append "INIT_D_PATH="
+                                              (assoc-ref %outputs "out")
+                                              "/etc/init.d")
+
+                               ;; The rule makes /dev/fuse 666.
+                               (string-append "UDEV_RULES_PATH="
+                                              (assoc-ref %outputs "out")
+                                              "/lib/udev/rules.d"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-file-names
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; libfuse calls out to mount(8) and umount(8).  Make sure
+             ;; it refers to the right ones.
+             (substitute* '("lib/mount_util.c" "util/mount_util.c")
+               (("/bin/(u?)mount" _ maybe-u)
+                (string-append (assoc-ref inputs "util-linux")
+                               "/bin/" maybe-u "mount")))
+             (substitute* '("util/mount.fuse.c")
+               (("/bin/sh")
+                (which "sh")))
+
+             ;; This hack leads libfuse to search for 'fusermount' in
+             ;; $PATH, where it may find a setuid-root binary, instead of
+             ;; trying solely $out/sbin/fusermount and failing because
+             ;; it's not setuid.
+             (substitute* "lib/Makefile"
+               (("-DFUSERMOUNT_DIR=[[:graph:]]+")
+                "-DFUSERMOUNT_DIR=\\\"/var/empty\\\""))
+             #t)))))
+    (supported-systems (delete "i586-gnu" %supported-systems))
+    (home-page "https://github.com/libfuse/libfuse")
+    (synopsis "Support file systems implemented in user space")
+    (description
+     "As a consequence of its monolithic design, file system code for Linux
+normally goes into the kernel itself---which is not only a robustness issue,
+but also an impediment to system extensibility.  FUSE, for \"file systems in
+user space\", is a kernel module and user-space library that tries to address
+part of this problem by allowing users to run file system implementations as
+user-space processes.")
+    (license (list license:lgpl2.1                ;library
+                   license:gpl2+))))              ;command-line utilities
+
 (define-public unionfs-fuse
   (package
     (name "unionfs-fuse")
-- 
2.28.0


[-- Attachment #1.1.7: 0025-gnu-libostree-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2128 bytes --]

From bd5161bd90ead802200bd28eceecbd912d4c240a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 15:33:38 -0400
Subject: [PATCH 25/44] gnu: libostree: Update package definition.

* gnu/packages/package-management.scm (libostree): Update package
definition.
[inputs]: Replace fuse with fuse-legacy. Move glib to ...
[propagated-inputs]: ... here.
---
 gnu/packages/package-management.scm | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 30253157c1..4302acb8e8 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1086,7 +1086,7 @@ for packaging and deployment of cross-compiled Windows applications.")
 (define-public libostree
   (package
     (name "libostree")
-    (version "2020.3")
+    (version "2020.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1094,7 +1094,7 @@ for packaging and deployment of cross-compiled Windows applications.")
                     (version-major+minor version) "/libostree-" version ".tar.xz"))
               (sha256
                (base32
-                "01cch4as23xspq6pck59al7x5jj60wl21g8p3iqbdxcjl1p3jxsq"))))
+                "0s13cjrpx5r1dc9j9c9924zak45wl9nlbg9hiwgpsal80l92c39n"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -1122,12 +1122,13 @@ for packaging and deployment of cross-compiled Windows applications.")
        ("docbook-xml" ,docbook-xml-4.2)
        ("docbook-xsl" ,docbook-xsl)
        ("e2fsprogs" ,e2fsprogs)
-       ("fuse" ,fuse)
-       ("glib" ,glib)
+       ("fuse" ,fuse-legacy)
        ("gpgme" ,gpgme)
        ("libarchive" ,libarchive)
        ("libsoup" ,libsoup)
        ("util-linux" ,util-linux)))
+    (propagated-inputs
+     `(("glib" ,glib)))
     (home-page "https://ostree.readthedocs.io/en/latest/")
     (synopsis "Operating system and container binary deployment and upgrades")
     (description
-- 
2.28.0


[-- Attachment #1.1.8: 0026-gnu-flatpak-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 8119 bytes --]

From 6b48b50eeffa044f4973b8591f1387f5ddfb789e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 15:41:37 -0400
Subject: [PATCH 26/44] gnu: flatpak: Update package definition.

* gnu/packages/package-management.scm (flatpak): Update package definition.
[inputs]: Replace fuse with fuse-legacy. Move libostree to ...
[propagated-inputs]: ... here. Add glib.
---
 gnu/packages/package-management.scm | 171 ++++++++++++++--------------
 1 file changed, 86 insertions(+), 85 deletions(-)

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 4302acb8e8..98af9d9752 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1140,92 +1140,93 @@ the boot loader configuration.")
 
 (define-public flatpak
   (package
-   (name "flatpak")
-   (version "1.6.3")
-   (source
-    (origin
-     (method url-fetch)
-     (uri (string-append "https://github.com/flatpak/flatpak/releases/download/"
-                         version "/flatpak-" version ".tar.xz"))
-     (sha256
-      (base32
-       "17s8nqdxd4xdy7ag9bw06adxccha78jmlsa3zpqnl3qh92pg0hji"))))
-
-   ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
-   ;; find the TLS backend in glib-networking.
-   (build-system glib-or-gtk-build-system)
-
-   (arguments
-    '(#:configure-flags
-      (list
-       "--enable-documentation=no" ;; FIXME
-       "--enable-system-helper=no"
-       "--localstatedir=/var"
-       (string-append "--with-system-bubblewrap="
-                      (assoc-ref %build-inputs "bubblewrap")
-                      "/bin/bwrap")
-       (string-append "--with-system-dbus-proxy="
-                      (assoc-ref %build-inputs "xdg-dbus-proxy")
-                      "/bin/xdg-dbus-proxy"))
-      #:phases
-      (modify-phases %standard-phases
-        (add-after 'unpack 'fix-tests
-          (lambda* (#:key inputs #:allow-other-keys)
-            (copy-recursively
-             (string-append (assoc-ref inputs "glibc-utf8-locales")
-                            "/lib/locale/") "/tmp/locale")
-            (for-each make-file-writable (find-files "/tmp"))
-            (substitute* "tests/make-test-runtime.sh"
-              (("cp `which.*") "echo guix\n")
-              (("cp -r /usr/lib/locale/C\\.\\*")
-               (string-append "mkdir ${DIR}/usr/lib/locale/en_US; \
+    (name "flatpak")
+    (version "1.6.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/flatpak/flatpak/releases/download/"
+                           version "/flatpak-" version ".tar.xz"))
+       (sha256
+        (base32
+         "17s8nqdxd4xdy7ag9bw06adxccha78jmlsa3zpqnl3qh92pg0hji"))))
+
+    ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
+    ;; find the TLS backend in glib-networking.
+    (build-system glib-or-gtk-build-system)
+
+    (arguments
+     '(#:configure-flags
+       (list
+        "--enable-documentation=no" ;; FIXME
+        "--enable-system-helper=no"
+        "--localstatedir=/var"
+        (string-append "--with-system-bubblewrap="
+                       (assoc-ref %build-inputs "bubblewrap")
+                       "/bin/bwrap")
+        (string-append "--with-system-dbus-proxy="
+                       (assoc-ref %build-inputs "xdg-dbus-proxy")
+                       "/bin/xdg-dbus-proxy"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-tests
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively
+              (string-append (assoc-ref inputs "glibc-utf8-locales")
+                             "/lib/locale/") "/tmp/locale")
+             (for-each make-file-writable (find-files "/tmp"))
+             (substitute* "tests/make-test-runtime.sh"
+               (("cp `which.*") "echo guix\n")
+               (("cp -r /usr/lib/locale/C\\.\\*")
+                (string-append "mkdir ${DIR}/usr/lib/locale/en_US; \
 cp -r /tmp/locale/*/en_US.*")))
-            (substitute* "tests/libtest.sh"
-              (("/bin/kill") (which "kill"))
-              (("/usr/bin/python3") (which "python3")))
-            #t))
-        ;; Many tests fail for unknown reasons, so we just run a few basic
-        ;; tests
-        (replace 'check
-          (lambda _
-            (setenv "HOME" "/tmp")
-            (invoke "make" "check"
-                    "TESTS=tests/test-basic.sh tests/test-config.sh testcommon"))))))
+             (substitute* "tests/libtest.sh"
+               (("/bin/kill") (which "kill"))
+               (("/usr/bin/python3") (which "python3")))
+             #t))
+         ;; Many tests fail for unknown reasons, so we just run a few basic
+         ;; tests
+         (replace 'check
+           (lambda _
+             (setenv "HOME" "/tmp")
+             (invoke "make" "check"
+                     "TESTS=tests/test-basic.sh tests/test-config.sh testcommon"))))))
     (native-inputs
-    `(("bison" ,bison)
-      ("dbus" ,dbus) ; for dbus-daemon
-      ("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")          ; for glib-mkenums + gdbus-codegen
-      ("glibc-utf8-locales" ,glibc-utf8-locales)
-      ("gobject-introspection" ,gobject-introspection)
-      ("libcap" ,libcap)
-      ("pkg-config" ,pkg-config)
-      ("python" ,python)
-      ("socat" ,socat)
-      ("which" ,which)))
-   (propagated-inputs `(("glib-networking" ,glib-networking)
-                        ("gnupg" ,gnupg)
-                        ("gsettings-desktop-schemas"
-                         ,gsettings-desktop-schemas)))
-   (inputs
-    `(("appstream-glib" ,appstream-glib)
-      ("bubblewrap" ,bubblewrap)
-      ("dconf" ,dconf)
-      ("fuse" ,fuse)
-      ("gdk-pixbuf" ,gdk-pixbuf)
-      ("gpgme" ,gpgme)
-      ("json-glib" ,json-glib)
-      ("libarchive" ,libarchive)
-      ("libostree" ,libostree)
-      ("libseccomp" ,libseccomp)
-      ("libsoup" ,libsoup)
-      ("libxau" ,libxau)
-      ("libxml2" ,libxml2)
-      ("util-linux" ,util-linux)
-      ("xdg-dbus-proxy" ,xdg-dbus-proxy)))
-   (home-page "https://flatpak.org")
-   (synopsis "System for building, distributing, and running sandboxed desktop
+     `(("bison" ,bison)
+       ("dbus" ,dbus)                   ; for dbus-daemon
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")     ; for glib-mkenums + gdbus-codegen
+       ("glibc-utf8-locales" ,glibc-utf8-locales)
+       ("gobject-introspection" ,gobject-introspection)
+       ("libcap" ,libcap)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)
+       ("socat" ,socat)
+       ("which" ,which)))
+    (propagated-inputs `(("glib-networking" ,glib-networking)
+                         ("glib" ,glib)
+                         ("libostree" ,libostree)
+                         ("gnupg" ,gnupg)
+                         ("gsettings-desktop-schemas"
+                          ,gsettings-desktop-schemas)))
+    (inputs
+     `(("appstream-glib" ,appstream-glib)
+       ("bubblewrap" ,bubblewrap)
+       ("dconf" ,dconf)
+       ("fuse" ,fuse-legacy)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gpgme" ,gpgme)
+       ("json-glib" ,json-glib)
+       ("libarchive" ,libarchive)
+       ("libseccomp" ,libseccomp)
+       ("libsoup" ,libsoup)
+       ("libxau" ,libxau)
+       ("libxml2" ,libxml2)
+       ("util-linux" ,util-linux)
+       ("xdg-dbus-proxy" ,xdg-dbus-proxy)))
+    (home-page "https://flatpak.org")
+    (synopsis "System for building, distributing, and running sandboxed desktop
 applications")
-   (description "Flatpak is a system for building, distributing, and running
+    (description "Flatpak is a system for building, distributing, and running
 sandboxed desktop applications on GNU/Linux.")
-   (license license:lgpl2.1+)))
+    (license license:lgpl2.1+)))
-- 
2.28.0


[-- Attachment #1.1.9: 0027-gnu-malcontent-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3626 bytes --]

From e8eca868dd9a7b389b272b517e5e181175d9668c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 15:55:06 -0400
Subject: [PATCH 27/44] gnu: malcontent: Update package definition.

* gnu/packages/freedesktop.scm (malcontent): Update package definition.
[outputs]: New output "help".
[arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
['move-help]: New phase.
[native-inputs]: Remove gtk+:bin.
[inputs]: Remove libostree. Move accountsservice, flatpack, glib and
gtk+ to ...
[propagated-inputs]: ... here.
[license]: Modify.
---
 gnu/packages/freedesktop.scm | 41 ++++++++++++++++++++++++++----------
 1 file changed, 30 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index b471a6e46d..2357805125 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -151,6 +151,7 @@ tests.")
        (sha256
         (base32 "0vnf0pk516fwwh41v96c29l2i7h1pnwhivlkbf53kkx1q35g7lb3"))))
     (build-system meson-build-system)
+    (outputs '("out" "help"))
     (arguments
      `(#:glib-or-gtk? #t
        #:phases
@@ -160,28 +161,42 @@ tests.")
            (lambda _
              (substitute* "libmalcontent/tests/app-filter.c"
                (("g_test_add_func \\(\"/app-filter/appinfo\", test_app_filter_appinfo\\);")
-                 ""))
-             #t)))))
+                ""))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "build-aux/meson_post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #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)))
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("accountsservice" ,accountsservice)
-       ("appstream-glib" ,appstream-glib)
+     `(("appstream-util" ,appstream-glib)
        ("dbus" ,dbus)
-       ("flatpak" ,flatpak)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libostree" ,libostree)
        ("linux-pam" ,linux-pam)
        ("polkit" ,polkit)))
+    (propagated-inputs
+     `(("accountsservice" ,accountsservice)
+       ("flatpak" ,flatpak)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)))
     (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
@@ -189,7 +204,11 @@ inappropriate content.")
     (home-page "https://gitlab.freedesktop.org/pwithnall/malcontent")
     (license
      (list
+      ;; Documentation
+      license:cc-by-sa3.0
+      ;; Application
       license:gpl2+
+      ;; Library
       license:lgpl2.1+))))
 
 (define-public xdg-utils
-- 
2.28.0


[-- Attachment #1.1.10: 0028-gnu-gnome-initial-setup-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6497 bytes --]

From 60b251a90fb668fd4e74c4d22a53ec675a720b81 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 16:57:57 -0400
Subject: [PATCH 28/44] gnu: gnome-initial-setup: Update package definition.

* gnu/packages/gnome.scm (gnome-initial-setup) [version]: Update to
3.36.4.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dcheese]: Remove flag.
[native-inputs]: Remove gtk+:bin.
[inputs]: Add cheese, geocode-glib, gtk+, malcontent and pango.
Remove gnome-getting-started-docs, gstreamer, packagekit and upower.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 125 +++++++++++++++++++++--------------------
 1 file changed, 63 insertions(+), 62 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3c9395ec56..b0f8c528e1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1601,68 +1601,69 @@ and handling media art caches.")
 
 (define-public gnome-initial-setup
   (package
-   (name "gnome-initial-setup")
-   (version "3.32.1")
-   (source (origin
-            (method url-fetch)
-           (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
-                                (version-major+minor version)
-                                "/gnome-initial-setup-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
-   (build-system meson-build-system)
-   (arguments
-    '(#:configure-flags '(;; Enable camera support for user selfie.
-                          "-Dcheese=auto"
-                          "-Dsystemd=false")
-      #:phases (modify-phases %standard-phases
-                 (add-after 'unpack 'set-gkbd-file-name
-                   (lambda* (#:key inputs #:allow-other-keys)
-                     ;; Allow the "Preview" button in the keyboard layout
-                     ;; selection dialog to display the layout.
-                     (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
-                       (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
-                         (("\"gkbd-keyboard-display")
-                          (string-append "\"" libgnomekbd
-                                         "/bin/gkbd-keyboard-display")))
-                       #t))))))
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk+:bin" ,gtk+ "bin")
-      ("pkg-config" ,pkg-config)))
-   (inputs
-    `(("accountsservice" ,accountsservice)
-      ;("adwaita-icon-theme" ,adwaita-icon-theme)
-      ("gdm" ,gdm)
-      ("geoclue" ,geoclue)
-      ("gnome-desktop" ,gnome-desktop)
-      ("gnome-getting-started-docs" ,gnome-getting-started-docs)
-      ("gnome-online-accounts" ,gnome-online-accounts)
-      ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
-      ("gstreamer" ,gstreamer)
-      ("ibus" ,ibus)
-      ("json-glib" ,json-glib)
-      ("krb5" ,mit-krb5)
-      ("libgweather" ,libgweather)
-      ("libnma" ,libnma)
-      ("libsecret" ,libsecret)
-      ("network-manager" ,network-manager)
-      ("packagekit" ,packagekit)
-      ("polkit" ,polkit)
-      ("pwquality" ,libpwquality)
-      ("rest" ,rest)
-      ("upower" ,upower)
-      ("webkitgtk" ,webkitgtk)
-      ("libgnomekbd" ,libgnomekbd)))
-   (synopsis "Initial setup wizard for GNOME desktop")
-   (description "This package provides a set-up wizard when a
-user logs into GNOME for the first time.  It typically provides a
-tour of all gnome components and allows the user to set them up.")
-   (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
-   (license license:gpl2)))
+    (name "gnome-initial-setup")
+    (version "3.36.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gnome-initial-setup/"
+                       (version-major+minor version)
+                       "/gnome-initial-setup-" version ".tar.xz"))
+       (sha256
+        (base32 "17szzz2a5wpi7kwjnhimiwf8vg0bfliyk3k0adgv1pw2mcfpxp5s"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dsystemd=false")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-gkbd-file-name
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Allow the "Preview" button in the keyboard layout
+             ;; selection dialog to display the layout.
+             (let* ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
+               (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
+                 (("\"gkbd-keyboard-display")
+                  (string-append "\"" libgnomekbd
+                                 "/bin/gkbd-keyboard-display")))
+               #t))))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("accountsservice" ,accountsservice)
+       ("cheese" ,cheese)
+       ("gdm" ,gdm)
+       ("geocode-glib" ,geocode-glib)
+       ("gnome-desktop" ,gnome-desktop)
+       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+       ("gtk+" ,gtk+)
+       ("gweather" ,libgweather)
+       ("ibus" ,ibus)
+       ("json-glib" ,json-glib)
+       ("krb5" ,mit-krb5)
+       ("libgeoclue" ,geoclue)
+       ("libgnomekbd" ,libgnomekbd)
+       ("libnm" ,network-manager)
+       ("libnma" ,libnma)
+       ("libsecret" ,libsecret)
+       ("malcontent" ,malcontent)
+       ("pango" ,pango)
+       ("polkit" ,polkit)
+       ("pwquality" ,libpwquality)
+       ("rest" ,rest)
+       ("webkitgtk" ,webkitgtk)))
+    (synopsis "Initial setup wizard for GNOME desktop")
+    (description "GNOME-Initial-Setup aims to provide a simple, easy, and safe
+way to prepare a new system.")
+    (home-page "https://wiki.gnome.org/Design/OS/InitialSetup")
+    (license license:gpl2+)))
 
 (define-public gnome-user-share
   (package
-- 
2.28.0


[-- Attachment #1.1.11: 0029-gnu-gnome-keyring-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7511 bytes --]

From 22a6ceb627294dbb895761c90070d6e753db517d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 18:46:11 -0400
Subject: [PATCH 29/44] gnu: gnome-keyring: Update package definition.

* gnu/packages/gnome.scm (gnome-keyring) [version]: Update to 3.36.0.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[arguments]<#:configure-flags>[--enable-doc]: New flag.
[--with-pkcs11-config]: Modify flag.
[--with-pkcs11-modules]: Modify flag.
<#:phases>['patch-docbook]: New phase.
['trigger-bootstrap]: New phase.
['fix-/bin/sh-reference]: Remove phase.
['fix-docbook]: Remove phase.
[native-inputs]: Add gobject-introspection and libtool. Change
python-2 to python-wrapper.
[inputs]: Add libcap-ng.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 123 +++++++++++++++++++++--------------------
 1 file changed, 64 insertions(+), 59 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b0f8c528e1..6f269b213b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2791,78 +2791,83 @@ GObject oriented way.")
 (define-public gnome-keyring
   (package
     (name "gnome-keyring")
-    (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
-               "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
-    (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 "11sgffrrpss5cmv3b717pqlbhgq17l1xd33fsvqgsw8simxbar52"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
-     `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
-                   ;not exist
+     `(#:tests? #f                  ; Tests require missing machine-id
        #:configure-flags
        (list
+        "--enable-doc"
         (string-append "--with-pkcs11-config="
-                       (assoc-ref %outputs "out") "/share/p11-kit/modules/")
+                       (assoc-ref %outputs "out")
+                       "/share/p11-kit/modules")
         (string-append "--with-pkcs11-modules="
-                       (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
+                       (assoc-ref %outputs "out")
+                       "/lib/pkcs11"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-/bin/sh-reference
+         (add-after 'unpack 'trigger-bootstrap
            (lambda _
-             (substitute* "po/Makefile.in.in"
-               (("/bin/sh") (which "sh")))
+             (for-each delete-file
+                       (list
+                        "configure"
+                        "Makefile.in"))
              #t))
-         (add-after 'unpack 'fix-docbook
+         (add-before 'configure 'patch-docbook
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "docs/Makefile.am"
-               (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
-                (string-append (assoc-ref inputs "docbook-xsl")
-                               "/xml/xsl/docbook-xsl-"
-                               ,(package-version docbook-xsl)
-                               "/manpages/docbook.xsl")))
-             (setenv "XML_CATALOG_FILES"
-                     (string-append (assoc-ref inputs "docbook-xml")
-                                    "/xml/dtd/docbook/catalog.xml"))
-             ;; Rerun the whole thing to avoid version mismatch ("This is
-             ;; Automake 1.15.1, but the definition used by this
-             ;; AM_INIT_AUTOMAKE comes from Automake 1.15.").  Note: we don't
-             ;; use 'autoreconf' because it insists on running 'libtoolize'.
-             (invoke "autoconf")
-             (invoke "aclocal")
-             (invoke "automake" "-ac"))))))
-    (inputs
-     `(("libgcrypt" ,libgcrypt)
-       ("linux-pam" ,linux-pam)
-       ("openssh" ,openssh)
-       ("dbus" ,dbus)
-       ("gcr" ,gcr)))
+             (with-directory-excursion "docs"
+               (substitute* '("gnome-keyring-daemon.xml"
+                              "gnome-keyring.xml" "Makefile.am")
+                 (("http://docbook.sourceforge.net/release/xsl/current")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-"
+                                 ,(package-version docbook-xsl)))
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
        ("glib" ,glib "bin")
-       ("glib" ,glib) ; for m4 macros
-       ("python" ,python-2) ;for tests
+       ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libxslt" ,libxslt) ;for documentation
-       ("docbook-xml" ,docbook-xml-4.2)
-       ("docbook-xsl" ,docbook-xsl)))
-    (home-page "https://www.gnome.org")
-    (synopsis "Daemon to store passwords and encryption keys")
-    (description
-     "gnome-keyring is a program that keeps passwords and other secrets for
-users.  It is run as a daemon in the session, similar to ssh-agent, and other
-applications locate it via an environment variable or D-Bus.
-
-The program can manage several keyrings, each with its own master password,
-and there is also a session keyring which is never stored to disk, but
-forgotten when the session ends.")
-    (license license:lgpl2.1+)))
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("gcr" ,gcr)
+       ("glib" ,glib)
+       ("libcap-ng" ,libcap-ng)
+       ("libgcrypt" ,libgcrypt)
+       ("linux-pam" ,linux-pam)
+       ("openssh" ,openssh)))
+    (synopsis "GNOME Key Manager")
+    (description "GNOME-Keyring is a collection of components in GNOME that
+store secrets, passwords, keys, certificates and make them available to
+applications.  It is integrated with the user's login, so that their secret
+storage can be unlocked when the user logins into their session.  It is based
+around a standard called PKCS#11, which is a standard way for applications to
+manage certificates and keys on smart cards or secure storage.")
+    (home-page "https://wiki.gnome.org/Projects/GnomeKeyring")
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Others
+      license:gpl2+))))
 
 (define-public evince
   (package
-- 
2.28.0


[-- Attachment #1.1.12: 0030-gnu-seed-Disable-tests.patch --]
[-- Type: text/x-patch, Size: 836 bytes --]

From 2dd3ec1ed9317f609f61d0f2e83c3b4b26431ed4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 19:39:11 -0400
Subject: [PATCH 30/44] gnu: seed: Disable tests.

* gnu/packages/gnome.scm (seed) [arguments]<#:tests?>: New argument.
---
 gnu/packages/gnome.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6f269b213b..7cf66e2109 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -365,7 +365,8 @@ bindings.")
     (build-system glib-or-gtk-build-system)
     (outputs '("out" "doc"))
     (arguments
-     `(#:configure-flags
+     `(#:tests? #f ; FIXME
+       #:configure-flags
        (list
         "--disable-static"
         "--enable-xorg-module"
-- 
2.28.0


[-- Attachment #1.1.13: 0031-gnu-gnome-maps-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6317 bytes --]

From 6ec52554da9c14a29f2c8ae31c815461da71bef5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 5 Aug 2020 21:26:46 -0400
Subject: [PATCH 31/44] gnu: gnome-maps: Update package definition.

* gnu/packages/gnome.scm (gnome-maps) [version]: Update to 3.36.4.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:phases>['wrap]: Modify phase.
[native-inputs]: Add desktop-file-utils and glib:bin.
[inputs]: Add appstream-glib. Remove evolution-data-server, gdk-pixbuf+svg,
gfbgraph, gnome-online-accounts:lib, gsettings-desktop-schemas, libgweather,
libsecret, libsoup and webkitgtk.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/geo.scm | 86 ++++++++++++++++----------------------------
 1 file changed, 30 insertions(+), 56 deletions(-)

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 8c21392bb7..e6bce24abf 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -65,6 +65,7 @@
   #: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 gl)
   #:use-module (gnu packages glib)
@@ -204,83 +205,56 @@ topology functions.")
 (define-public gnome-maps
   (package
     (name "gnome-maps")
-    (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
-                "00xslcnhhwslqglgfv2im7vq3awa49y2jxzr8wsby7f713k28vf5"))))
+    (version "3.36.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1ila7li9yi4lyjc84a787qr33wr7ayppphxn451jzg410pfcamhz"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
+               (("gtk-update-icon-cache")
+                "true"))
              #t))
          (add-after 'install 'wrap
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
-                   (geocode-glib-path (string-append
-                                       (assoc-ref inputs "geocode-glib")
-                                       "/lib"))
-                   (goa-path (string-append
-                              (assoc-ref inputs "gnome-online-accounts:lib")
-                              "/lib"))
-                   (gdk-pixbuf-path (string-append
-                                     (assoc-ref inputs "gdk-pixbuf")
-                                     "/lib"))
-                   (webkitgtk-path (string-append
-                                    (assoc-ref inputs "webkitgtk")
-                                    "/lib")))
-               (wrap-program (string-append out "/bin/gnome-maps")
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
-
-                 ;; There seems to be no way to embed the path of
-                 ;; libgoa-1.0.so.0, libwebkit2gtk-4.0.so.37,
-                 ;; libgdk_pixbuf-2.0.so, libjavascriptcoregtk-4.0.so.18, and
-                 ;; libgeocode-glib.so.0
-                 `("LD_LIBRARY_PATH" ":" prefix (,goa-path
-                                                 ,webkitgtk-path
-                                                 ,gdk-pixbuf-path
-                                                 ,geocode-glib-path)))
+             (let* ((out (assoc-ref outputs "out"))
+                    (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+               (wrap-program (string-append out "/bin/gnome-maps"))
                #t))))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("evolution-data-server" ,evolution-data-server)
+     `(("appstream-util" ,appstream-glib)
+       ("champlain" ,libchamplain)
        ("folks" ,folks)
-       ("libchamplain" ,libchamplain)
-       ("libgee" ,libgee)
-       ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
-       ("libgweather" ,libgweather)
-       ("libxml2" ,libxml2)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("glib-networking" ,glib-networking)
+       ("gee" ,libgee)
        ("geoclue" ,geoclue)
        ("geocode-glib" ,geocode-glib)
-       ("gfbgraph" ,gfbgraph)
        ("gjs" ,gjs)
        ("glib" ,glib)
-       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("glib-networking" ,glib-networking)
        ("gtk+" ,gtk+)
-       ("rest" ,rest)
-       ("webkitgtk" ,webkitgtk)))
-    (synopsis "Graphical map viewer and wayfinding program")
-    (description "GNOME Maps is a graphical map viewer.  It uses map data from
-the OpenStreetMap project.  It can provide directions for walking, bicycling,
-and driving.")
+       ("libxml2" ,libxml2)
+       ("rest" ,rest)))
+    (synopsis "Map application for GNOME")
+    (description "GNOME-Maps gives you quick access to maps all across the
+world.  It uses the collaborative OpenStreetMap database, enabling users to make
+smaller changes to places and points-of-interests.")
     (home-page "https://wiki.gnome.org/Apps/Maps")
     (license license:gpl2+)))
 
-- 
2.28.0


[-- Attachment #1.1.14: 0032-gnu-gnome-maps-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3443 bytes --]

From 1414a2f0b8c1ec47f1f968f32085460b0b26deba Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 11:32:45 -0400
Subject: [PATCH 32/44] gnu: gnome-maps: Update package definition.

* gnu/packages/gnome.scm (gnome-maps) [version]: Update to 3.36.0.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[arguments]<#:configure-flags>[--disable-static]: New flag.
<#:make-flags>[INTROSPECTION_GIRDIR]: New flag.
[INTROSPECTION_TYPELIBDIR]: New flag.
[native-inputs]: Add gjs and gobject-introspection. Move glib to ...
[propagated-inputs]: ... here.
[synopsis]: Modify.
[license]: Add gpl2+.
---
 gnu/packages/gnome.scm | 53 +++++++++++++++++++++++++++++++-----------
 1 file changed, 39 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 7cf66e2109..fe5e9934bb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1876,25 +1876,50 @@ project.")
 (define-public gnome-menus
   (package
     (name "gnome-menus")
-    (version "3.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/gnome-menus/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
-    (build-system gnu-build-system)
+    (version "3.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gnome-menus/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static")
+       #:make-flags
+       (list
+        (string-append "INTROSPECTION_GIRDIR="
+                       (assoc-ref %outputs "out")
+                       "/share/gir-"
+                       ,(version-major (package-version gobject-introspection))
+                       ".0")
+        (string-append "INTROSPECTION_TYPELIBDIR="
+                       (assoc-ref %outputs "out")
+                       "/lib/girepository-"
+                       ,(version-major (package-version gobject-introspection))
+                       ".0"))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
-       ("glib" ,glib)
+       ("gjs" ,gjs)
+       ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)))
-    (synopsis "Menu support for GNOME desktop")
-    (description "GNOME Menus contains the libgnome-menu library, the layout
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "GNOME Menu support")
+    (description "GNOME-Menus contains the libgnome-menu library, the layout
 configuration files for the GNOME menu, as well as a simple menu editor.")
     (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
-    (license license:lgpl2.0+)))
+    (license
+     (list
+      ;; Library
+      license:lgpl2.0+
+      ;; Others
+      license:gpl2+))))
 
 (define-public deja-dup
   (package
-- 
2.28.0


[-- Attachment #1.1.15: 0033-gnu-gnome-music-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5632 bytes --]

From bfba8b2ffdd035083206c2521ead437cc46b7d41 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 13:49:43 -0400
Subject: [PATCH 33/44] gnu: gnome-music: Update package definition.

* gnu/packages/gnome.scm (gnome-music) [version]: Update to 3.36.4.1.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:tests?>: New argument.
<#:phases>['skip-gtk-update-icon-cache]: New phase.
['move-help]: New phase.
['wrap-gnome-music]: Modify phase.
[native-inputs]: Remove gtk+:bin.
[inputs]: Add appstream-glib, gtk+ and python. Change gnome-online-accounts
to gnome-online-accounts:lib. Remove gst-plugins-base, gstreamer, gvfs and
tracker-miners.
[propagated-inputs]: Add glib.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 61 ++++++++++++++++++++++++++----------------
 1 file changed, 38 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fe5e9934bb..a9c65f39e9 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -860,7 +860,7 @@ cloud integration is offered through GNOME Online Accounts.")
 (define-public gnome-music
   (package
     (name "gnome-music")
-    (version "3.34.5")
+    (version "3.36.4.1")
     (source
      (origin
        (method url-fetch)
@@ -869,24 +869,38 @@ cloud integration is offered through GNOME Online Accounts.")
                        (version-major+minor version) "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
+        (base32 "0zdpjgwf48bqb66wrl6k33pzcmc2g3m1046ma7z8xaj9idpi37jh"))))
     (build-system meson-build-system)
+    (outputs '("out" "help"))
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:tests? #f           ; Tests require networking
        #:phases
        (modify-phases %standard-phases
-         (add-after 'install 'wrap-gnome-music
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t)))
+         (add-after 'move-help '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")))
+             (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)))))
@@ -895,28 +909,29 @@ cloud integration is offered through GNOME Online Accounts.")
        ("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")
+     `(("appstream-util" ,appstream-glib)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("grilo" ,grilo)
        ("grilo-plugins" ,grilo-plugins)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gstreamer" ,gstreamer)
-       ("gvfs" ,gvfs)
+       ("gtk+" ,gtk+)
        ("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.")
+       ("python" ,python)
+       ("tracker" ,tracker)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "Simple music player")
+    (description "GNOME-Music is the new GNOME music playing application.
+It aims to combine an elegant and immersive browsing experience with simple and
+straightforward controls.")
     (home-page "https://wiki.gnome.org/Apps/Music")
+    ;; With added exception clause.
     (license license:gpl2+)))
 
 (define-public portablexdr
-- 
2.28.0


[-- Attachment #1.1.16: 0034-gnu-gnome-photos-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5480 bytes --]

From 461c396d624413e65564df24d6863112cc8cfcb5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 14:28:58 -0400
Subject: [PATCH 34/44] gnu: gnome-photos: Update package definition.

* gnu/packages/gnome.scm (gnome-photos): Update package definition.
[outputs]: New output "help".
[arguements]<#:phases>['skip-gtk-update-icon-cache]: New phase.
['pre-check]: New phase.
['move-help]: New phase.
['wrap-gnome-photos]: Remove phase.
[native-inputs]: Add xorg-server-for-tests. Remove gtk+:bin. Move
dbus to ...
[inputs]: ... here. Add glib. Remove gnome-online-miners, grilo-plugins,
rest, python-pygobject and tracker-miners. Change gnome-online-accounts
to gnome-online-accounts:lib.
[synopsis]: Modify.
---
 gnu/packages/gnome.scm | 70 +++++++++++++++++++++++++-----------------
 1 file changed, 42 insertions(+), 28 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a9c65f39e9..18efe684ad 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -799,59 +799,73 @@ sysprof.")
                        (version-major+minor version) "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
+        (base32 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
     (build-system meson-build-system)
+    (outputs '("out" "help"))
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #: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"))
+       (list
+        "-Ddogtail=false"
+        ;; 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)))))
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t))
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
     (native-inputs
-     `(("dbus" ,dbus)
-       ("desktop-file-utils" ,desktop-file-utils)
+     `(("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)))
+       ("pkg-config" ,pkg-config)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("babl" ,babl)
        ("cairo" ,cairo)
+       ("dbus" ,dbus)
        ("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)
+       ("glib" ,glib)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("grilo" ,grilo)
-       ("grilo-plugins" ,grilo-plugins)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("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
+       ("tracker" ,tracker)))
+    (synopsis "Access, organize and share your photos")
+    (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")
-- 
2.28.0


[-- Attachment #1.1.17: 0035-gnu-gnome-screenshot-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3435 bytes --]

From 5f10e67e1559968a9b3c38c58a1f7725a4e8709b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 14:54:00 -0400
Subject: [PATCH 35/44] gnu: gnome-screenshot: Update package definition.

* gnu/packages/gnome.scm (gnome-screenshot) [version]: Update to 3.36.0.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add libxml2. Remove appstream-glib.
[inputs]: Add glib.
[description]: Modify.
---
 gnu/packages/gnome.scm | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 18efe684ad..327afe2773 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10435,43 +10435,43 @@ packaged with the GNOME desktop.")
 (define-public gnome-screenshot
   (package
     (name "gnome-screenshot")
-    (version "3.34.0")
+    (version "3.36.0")
     (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
-         "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
+        (base32 "0rhj6fkpxfm26jv3vsn7yb2ybkc2k86ggy23nxa945q74y4msj9k"))))
     (build-system meson-build-system)
     (arguments
-     '(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "build-aux/postinstall.py"
-               (("gtk-update-icon-cache") "true"))
+               (("gtk-update-icon-cache")
+                "true"))
              #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
-       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+     `(("glib:bin" ,glib "bin")
+       ("desktop-file-utils" ,desktop-file-utils)
        ("intltool" ,intltool)
-       ("appstream-glib" ,appstream-glib)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("gtk+" ,gtk+)
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
        ("libcanberra" ,libcanberra)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)))
-    (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
+       ("x11" ,libx11)
+       ("xext" ,libxext)))
     (synopsis "Take pictures of your screen")
-    (description
-     "GNOME Screenshot is a utility used for taking screenshots of the entire
-screen, a window or a user defined area of the screen, with optional
-beautifying border effects.")
+    (description "GNOME-Screenshot is a small utility that takes a screenshot of
+the whole desktop; the currently focused window; or an area of the screen.")
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
     (license license:gpl2+)))
 
 (define-public dconf-editor
-- 
2.28.0


[-- Attachment #1.1.18: 0036-gnu-gnome-session-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6658 bytes --]

From 9d9b5bcefaaf0a7858fc79f6ee7183d8b787700c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 15:36:30 -0400
Subject: [PATCH 36/44] gnu: gnome-session: Update package definition.

* gnu/packages/gnome.scm (gnome-session) [version]: Update to 3.36.0.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dsession_selector]: New flag.
[-Dsystemd]: New flag.
[-Dsystemd_session]: New flag.
[-Ddocbook]: Remove flag.
[-Dman]: Remove flag.
<#:phases>['patch-docbook]: New phase.
['pre-configure]: Remove phase.
['move-doc]: New phase.
['wrap-gnome-session]: Modify phase.
[inputs]: Add libepoxy, glib, libice and libx11. Remove elogind,
gsettings-desktop-schemas, libxtst and upower.
---
 gnu/packages/gnome.scm | 104 ++++++++++++++++++++++-------------------
 1 file changed, 57 insertions(+), 47 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 327afe2773..fa5229313c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8192,70 +8192,80 @@ the archive.")
 (define-public gnome-session
   (package
     (name "gnome-session")
-    (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
-                "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
+    (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 "0ymvf1bap35348rpjqp63qwnwnnawdwi4snch95zc4n832w3hjym"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dsession_selector=true"
+        "-Dsystemd=false"
+        "-Dsystemd_session=disable"
+        "-Dsystemd_journal=false")
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'pre-configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Use elogind instead of systemd.
-             (substitute* "meson.build"
-               (("libsystemd-login") "libelogind")
-               (("and libsystemd_daemon_dep.found.*") ","))
-             (substitute* "gnome-session/gsm-systemd.c"
-               (("#include <systemd/sd-login.h>")
-                "#include <elogind/sd-login.h>"))
-             ;; Remove uses of the systemd daemon.
-             (substitute* "gnome-session/gsm-autostart-app.c"
-               (("#ifdef HAVE_SYSTEMD") "#if 0"))
+         (add-after 'unpack 'patch-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* '("dbus/gnome-session.xml.in" "man/meson.build")
+                 (("http://docbook.sourceforge.net/release/xsl/current")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-"
+                                 ,(package-version docbook-xsl)))
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
              #t))
-         (add-after 'install 'wrap-gnome-session
+         (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/doc")
+                (string-append doc "/share/doc"))
+               #t)))
+         (add-after 'move-doc 'wrap-gnome-session
            (lambda* (#:key inputs outputs #:allow-other-keys)
              ;; Make sure 'gnome-session' finds the 'gsettings' program.
-             (let ((glib (assoc-ref inputs "glib:bin"))
-                   (out  (assoc-ref outputs "out")))
+             (let* ((glib (assoc-ref inputs "glib:bin"))
+                    (out  (assoc-ref outputs "out")))
                (wrap-program (string-append out "/bin/gnome-session")
                  `("PATH" ":" prefix (,(string-append glib "/bin"))))
-               #t))))
-
-       #:configure-flags
-       '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
-         "-Dman=false" ; FIXME: disabled because of docbook validation error
-         "-Dsystemd_journal=false")))
-    (build-system meson-build-system)
+               #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
-       ("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("xsltproc" ,libxslt)
-       ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
+     `(("docbook-xml" ,docbook-xml-4.1.2)
        ("docbook-xsl" ,docbook-xsl)
-       ("docbook-xml" ,docbook-xml)
-       ("xmlto" ,xmlto)))
+       ("glib:bin" ,glib "bin")
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)
+       ("xmlto" ,xmlto)
+       ("xsltproc" ,libxslt)))
     (inputs
-     `(("elogind" ,elogind)
+     `(("epoxy" ,libepoxy)
+       ("glib" ,glib)
        ("gnome-desktop" ,gnome-desktop)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
+       ("ice" ,libice)
        ("json-glib" ,json-glib)
-       ("libsm" ,libsm)
-       ("libxcomposite" ,libxcomposite)
-       ("libxtst" ,libxtst)
        ("mesa" ,mesa)
-       ("upower" ,upower)
+       ("sm" ,libsm)
+       ("x11" ,libx11)
+       ("xcomposite" ,libxcomposite)
        ("xtrans" ,xtrans)))
     (synopsis "Session manager for GNOME")
-    (description
-     "This package contains the GNOME session manager, as well as a
+    (description "GNOME-Session contains the GNOME session manager, as well as a
 configuration program to choose applications starting on login.")
     (home-page "https://wiki.gnome.org/Projects/SessionManagement")
     (license license:gpl2+)))
-- 
2.28.0


[-- Attachment #1.1.19: 0037-gnu-gnome-settings-daemon-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 6048 bytes --]

From c59d4373532863647b6d6e9d7e253b6cfdddc5ad Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 16:46:06 -0400
Subject: [PATCH 37/44] gnu: gnome-settings-daemon: Update package definition.

* gnu/packages/gnome.scm (gnome-settings-daemon) [version]: Update
to 3.36.1.
[arguments]<#:configure-flags>['-Dudev_dir]: Modify flag.
[native-inputs]: Add python-dbusmock, gobject-introspection, umockdev
and which. Remove docbook-xml and docbook-xsl.
[inputs]: Add fontconfig, glib, gtk+, xorgproto, pango, eudev, libxext
and libxi. Remove libxtst.
[description]: Modify.
[home-page]: Modify.
[license]: Add lgpl2.1+.
---
 gnu/packages/gnome.scm | 109 +++++++++++++++++++++++------------------
 1 file changed, 60 insertions(+), 49 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fa5229313c..e44de72165 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6156,72 +6156,83 @@ online services for numerous locations.")
 (define-public gnome-settings-daemon
   (package
     (name "gnome-settings-daemon")
-    (version "3.34.1")
+    (version "3.36.1")
     (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
-         "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
+        (base32 "0jzf2nznpcrjqq7fjwk66kw8a6x87kgbdjidc2msaqmm379xncry"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags
-       (list (string-append "-Dudev_dir="
-                            (assoc-ref %outputs "out")
-                            "/lib/udev/rules.d/")
-             "-Dsystemd=false"
-             ;; Otherwise, the RUNPATH will lack the final path component.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out")
-                            "/lib/gnome-settings-daemon-3.0"))
-       ;; Color management test can't reach the colord system service.
-       #:tests? #f))
+       (list
+        (string-append "-Dudev_dir="
+                       (assoc-ref %outputs "out")
+                       "/lib/udev")
+        "-Dsystemd=false"
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib/gnome-settings-daemon-3.0"))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")     ; for glib-mkenums
-       ("pkg-config" ,pkg-config)
+     `(("dbusmock" ,python-dbusmock)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
-       ("xsltproc" ,libxslt)
-       ("libxml2" ,libxml2)                       ;for XML_CATALOG_FILES
-       ("docbook-xml" ,docbook-xml-4.2)
-       ("docbook-xsl" ,docbook-xsl)))
+       ("pkg-config" ,pkg-config)
+       ("umockdev" ,umockdev)
+       ("which" ,which)
+       ("xmllint" ,libxml2)
+       ("xsltproc" ,libxslt)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
+     `(("alsa" ,alsa-lib)
        ("colord" ,colord)
-       ("libgudev" ,libgudev)
-       ("upower" ,upower)
-       ("polkit" ,polkit)
-       ("pulseaudio" ,pulseaudio)
-       ("libcanberra" ,libcanberra)
-       ("libx11" ,libx11)
-       ("libxtst" ,libxtst)
-       ("lcms" ,lcms)
-       ("libnotify" ,libnotify)
-       ("geoclue" ,geoclue)
+       ("cups" ,cups)
+       ("fontconfig" ,fontconfig)
+       ("gcr" ,gcr)
        ("geocode-glib" ,geocode-glib)
-       ("libgweather" ,libgweather)
+       ("glib" ,glib)
        ("gnome-desktop" ,gnome-desktop)
-       ("nss" ,nss)
-       ("cups" ,cups)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("libwacom" ,libwacom)
+       ("gtk+" ,gtk+)
+       ("gudev" ,libgudev)
+       ("gweather" ,libgweather)
+       ("kbproto" ,xorgproto)
+       ("lcms" ,lcms)
+       ("libcanberra" ,libcanberra)
+       ("libgeoclue" ,geoclue)
+       ("libnm" ,network-manager)
+       ("libnotify" ,libnotify)
+       ("libpulse" ,pulseaudio)
        ("librsvg" ,librsvg)
-       ("xf86-input-wacom" ,xf86-input-wacom)
+       ("libwacom" ,libwacom)
+       ("mm-glib" ,modem-manager)
+       ("nss" ,nss)
+       ("pango" ,pango)
+       ("polkit" ,polkit)
+       ("udev" ,eudev)
+       ("upower-glib" ,upower)
        ("wayland" ,wayland)
-       ("network-manager" ,network-manager)
-       ("gcr" ,gcr)
-       ("modem-manager" ,modem-manager)))
-    (home-page "https://www.gnome.org")
+       ("x11" ,libx11)
+       ("xext" ,libxext)
+       ("xf86-input-wacom" ,xf86-input-wacom)
+       ("xi" ,libxi)))
     (synopsis "GNOME settings daemon")
-    (description
-     "This package contains the daemon responsible for setting the various
-parameters of a GNOME session and the applications that run under it.  It
-handles settings such keyboard layout, shortcuts, and accessibility, clipboard
-settings, themes, mouse settings, and startup of other daemons.")
-    (license license:gpl2+)))
+    (description "GNOME-Settings-Daemon contains the daemon responsible for
+setting the various parameters of a GNOME session and the applications that run
+under it.")
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-settings-daemon")
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Others
+      license:gpl2+))))
 
 (define-public totem-pl-parser
   (package
-- 
2.28.0


[-- Attachment #1.1.20: 0038-gnu-gnome-shell-extensions-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2787 bytes --]

From cd4ae0bed9e78ae01be37385d4953c442e7dbc54 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 17:26:01 -0400
Subject: [PATCH 38/44] gnu: gnome-shell-extensions: Update package definition.

* gnu/packages/gnome.scm (gnome-shell-extensions) [version]: Update
to 3.36.2.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dclassic_mode]: New flag.
[inputs]: Add mozjs60 and sassc.
[description]: Modify.
[license]: Change from gpl3+ to gpl2+.
---
 gnu/packages/gnome.scm | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e44de72165..ecba2f9291 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11166,29 +11166,37 @@ GNOME Shell appearance and extension, etc.")
 (define-public gnome-shell-extensions
   (package
     (name "gnome-shell-extensions")
-    (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
-                "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
+    (version "3.36.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0gq0z0k02b5cfaqrikk2hzbqzjkb6qwcanaqi2jh7nswa7g050lp"))))
     (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("-Dextension_set=all")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dextension_set=all"
+        "-Dclassic_mode=true")))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("js60" ,mozjs-60)
+       ("sassc" ,sassc)))
     (propagated-inputs
      `(("glib" ,glib)))
     (synopsis "Extensions for GNOME Shell")
-    (description "GNOME Shell extensions modify and extend GNOME Shell
-functionality and behavior.")
+    (description "GNOME-Shell-Extensions is a collection of extensions providing
+additional and optional functionality to GNOME Shell.")
     (home-page "https://extensions.gnome.org/")
-    (license license:gpl3+)))
+    (license license:gpl2+)))
 
 (define-public arc-theme
   (package
-- 
2.28.0


[-- Attachment #1.1.21: 0039-gnu-gnome-system-monitor-Update-package-extensions.patch --]
[-- Type: text/x-patch, Size: 4421 bytes --]

From 05ef1f07aa8018de7f4dbec4158099e0e3b401b7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 18:01:52 -0400
Subject: [PATCH 39/44] gnu: gnome-system-monitor: Update package extensions.

* gnu/packages/gnome.scm (gnome-system-monitor) [version]: Update to
3.36.1.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:configure-flags>[-Dwnck]: New flag.
<#:phases>['skip-gtk-update-icon-cache]: New phase.
['move-help]: New phase.
[native-inputs]: Add desktop-file-utils. Remove polkit. Move libgtop
to ...
[inputs]: ... here. Add appstream-glib, glib, glibmm and libselinux.
Remove gdk-pixbuf+svg.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 59 ++++++++++++++++++++++++++++--------------
 1 file changed, 39 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ecba2f9291..79b2633f6d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11740,43 +11740,62 @@ Bluefish supports many programming and markup languages.")
 (define-public gnome-system-monitor
   (package
     (name "gnome-system-monitor")
-    (version "3.32.1")
+    (version "3.36.1")
     (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
-         "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
+        (base32 "18dwwwmw4m2kzvfmxyaxmnm66d1plwvh6c6naznb0xac1ymlfsw6"))))
     (build-system meson-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:glib-or-gtk? #t
-       #:configure-flags '("-Dsystemd=false")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dwnck=true"
+        "-Dsystemd=false")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums.
-       ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("glib:bin" ,glib "bin")
        ("intltool" ,intltool)
        ("itstool" ,itstool)
-       ("libgtop" ,libgtop)
-       ("polkit" ,polkit)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
+     `(("appstream-util" ,appstream-glib)
+       ("glib" ,glib)
+       ("glibmm" ,glibmm)
        ("gtk+" ,gtk+)
        ("gtkmm" ,gtkmm)
+       ("libgtop" ,libgtop)
        ("librsvg" ,librsvg)
+       ("libselinux" ,libselinux)
        ("libxml2" ,libxml2)
        ("libwnck" ,libwnck)))
+    (synopsis "View current processes and monitor system state")
+    (description "GNOME-System-Monitor is a tool to manage running processes
+and monitor system resources.")
     (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
-    (synopsis "Process viewer and system resource monitor for GNOME")
-    (description
-     "GNOME System Monitor is a GNOME process viewer and system monitor with
-an attractive, easy-to-use interface.  It has features, such as a tree view
-for process dependencies, icons for processes, the ability to hide processes,
-graphical time histories of CPU/memory/swap usage and the ability to
-kill/reinice processes.")
     (license license:gpl2+)))
 
 (define-public python-pyatspi
-- 
2.28.0


[-- Attachment #1.1.22: 0040-gnu-gnome-terminal-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4464 bytes --]

From f0616f6f25bc316c9d417c951f674e18b0cc39bd Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 20:07:07 -0400
Subject: [PATCH 40/44] gnu: gnome-terminal: Update package definition.

* gnu/packages/gnome.scm (gnome-terminal) [version]: Update to 3.36.2.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--disable-migration]: Remove flag.
[--without-nautilus-extension]: Remove flag.
[--with-help-dir]: New flag.
<#:phases>['patch-/bin/true]: Remove phase.
['remove-systemd]: New phase.
[native-inputs]: Add vala.
[inputs]: Add dconf, glib, nautilus and pcre2. Remove gnutls and vala.
[propagated-inputs]: Remove dconf.
[description]: Modify.
[license]: Add fdl1.3+.
---
 gnu/packages/gnome.scm | 69 ++++++++++++++++++++++++------------------
 1 file changed, 39 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 79b2633f6d..180c0e52ff 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5749,52 +5749,61 @@ more fun.")
 (define-public gnome-terminal
   (package
     (name "gnome-terminal")
-    (version "3.34.2")
+    (version "3.36.2")
     (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
-         "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
+        (base32 "0inzmkmxv8xw4px2zjfw7236d08yjcv7znxcjki6dh4pvjivdla1"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:configure-flags
-       (list "--disable-migration" "--disable-search-provider"
-             "--without-nautilus-extension")
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--disable-search-provider"     ; To be enabled
+        (string-append "--with-help-dir="
+                       (assoc-ref %outputs "help")
+                       "/share/help"))
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'patch-/bin/true
-                     (lambda _
-                       (substitute* "configure"
-                         (("/bin/true") (which "true"))))))))
+         (add-after 'install 'remove-systemd
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively
+              (string-append (assoc-ref outputs "out")
+                             "/lib/systemd"))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("desktop-file-utils" ,desktop-file-utils)
+     `(("desktop-file-utils" ,desktop-file-utils)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
        ("xmllint" ,libxml2)))
-    (propagated-inputs
-     `(("dconf" ,dconf)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("vte" ,vte)
-       ("gnutls" ,gnutls)
+     `(("dconf" ,dconf)
+       ("glib" ,glib)
+       ;; To be enabled.
+       ;; ("gnome-shell-search-provider" ,gnome-shell)
+       ("gtk+" ,gtk+)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("libnautilus-extension" ,nautilus)
+       ("libpcre2" ,pcre2)
        ("util-linux" ,util-linux "lib")
-       ("vala" ,vala)))
-    (home-page "https://wiki.gnome.org/Apps/Terminal")
+       ("vte" ,vte)))
     (synopsis "Terminal emulator")
-    (description
-     "GNOME Terminal is a terminal emulator application for accessing a
-UNIX shell environment which can be used to run programs available on
-your system.
-
-It supports several profiles, multiple tabs and implements several
-keyboard shortcuts.")
-    (license license:gpl3+)))
+    (description "GNOME-Terminal is a terminal emulator for GNOME.")
+    (home-page "https://wiki.gnome.org/Apps/Terminal")
+    (license
+     (list
+      ;; Documentation
+      license:fdl1.3+
+      ;; Others
+      license:gpl3+))))
 
 (define-public colord
   (package
-- 
2.28.0


[-- Attachment #1.1.23: 0041-gnu-gnome-themes-extra-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3148 bytes --]

From c3f3f8850f4538400b54202b0c344967137f0c25 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 20:40:20 -0400
Subject: [PATCH 41/44] gnu: gnome-themes-extra: Update package definition.

* gnu/packages/gnome.scm (gnome-themes-extra): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[native-inputs]: Add libxml2.
[inputs]: Add cairo, gdk-pixbuf+svg and glib. Remove libxml2.
[description]: Modify.
---
 gnu/packages/gnome.scm | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 180c0e52ff..0c6bf2115e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -12944,35 +12944,35 @@ and a high score table.")
     (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
-         "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
-    (build-system gnu-build-system)
+        (base32 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:configure-flags
-       ;; Don't create 'icon-theme.cache'.
+     `(#:configure-flags
        (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
-              (true      (string-append coreutils "/bin/true")))
-         (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
+              (true (string-append coreutils "/bin/true")))
+         (list
+          (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
     (inputs
-     `(("glib" ,glib)
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
        ("gtk+" ,gtk+)
        ("gtk+-2" ,gtk+-2)
-       ("librsvg" ,librsvg)
-       ("libxml2" ,libxml2)))
-    (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
+       ("librsvg" ,librsvg)))
     (synopsis "GNOME Extra Themes")
-    (description "This package provides themes and related elements that don't
-really fit in other upstream packages.  It offers legacy support for GTK+ 2
-versions of Adwaita, Adwaita-dark and HighContrast themes.  It also provides
-index files needed for Adwaita to be used outside of GNOME.")
+    (description "GNOME-Themes-Extra houses themes and theme-y tidbits that
+don’t really fit in anywhere else, or deserve their own module.")
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
     (license license:lgpl2.1+)))
 
 (define-public polari
-- 
2.28.0


[-- Attachment #1.1.24: 0042-gnu-gnome-user-docs-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2768 bytes --]

From b1918a7c727a7b1ae16c7f4008df017f63b526d4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 20:51:52 -0400
Subject: [PATCH 42/44] gnu: gnome-user-docs: Update package definition.

* gnu/packages/gnome.scm (gnome-user-docs) [version]: Update to 3.36.2.
[source]<origin>[sha256]: Modify base32.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 46 +++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0c6bf2115e..1c2a83d17e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2028,29 +2028,29 @@ either on a local, or remote machine via a number of methods.")
 
 (define-public gnome-user-docs
   (package
-   (name "gnome-user-docs")
-   (version "3.32.3")
-   (source
-    (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
-                          (version-major+minor version)
-                          "/gnome-user-docs-" version ".tar.xz"))
-      (sha256
-       (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
-   (build-system gnu-build-system)
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("itstool" ,itstool)
-      ("pkg-config" ,pkg-config)
-      ("xmllint" ,libxml2)))
-   (synopsis "User documentation for the GNOME desktop")
-   (description
-    "The GNOME User Documentation explains how to use the GNOME desktop and its
-components.  It covers usage and setup of the core GNOME programs by end-users
-and system administrators.")
-   (home-page "https://live.gnome.org/DocumentationProject")
-   (license license:cc-by3.0)))
+    (name "gnome-user-docs")
+    (version "3.36.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/gnome-user-docs/"
+                       (version-major+minor version)
+                       "/gnome-user-docs-" version ".tar.xz"))
+       (sha256
+        (base32 "0n4rbrq5zww6gjjmicyw5hlvzi8azc6m4sisak15snkp6v4f93qr"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (synopsis "GNOME User Documentation")
+    (description "GNOME-User-Docs contains documents that are targeted for
+end-users and system administrators of GNOME and have general GNOME
+applicability.")
+    (home-page "https://live.gnome.org/DocumentationProject")
+    (license license:cc-by3.0)))
 
 (define-public gnome-getting-started-docs
   (package
-- 
2.28.0


[-- Attachment #1.1.25: 0043-gnu-gnome-user-share-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4212 bytes --]

From bbc83c1df07acdb271ebbc0c8c10a5d5fbb9259b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 21:22:32 -0400
Subject: [PATCH 43/44] gnu: gnome-user-share: Update package definition.

* gnu/packages/gnome.scm (gnome-user-share) [version]: Update to 3.34.0.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:configure-flags>[-Dsystemd]: Remove flag.
[-Dsystemduserunitdir]: New flag.
[-Dhttpd]: New flag.
[-Dmodules_path]: New flag.
[native-inputs]: Remove gtk+:bin and yelp-tools.
[inputs]: Add httpd and libselinux. Remove gnome-bluetooth,
libcanberra and libnotify.
---
 gnu/packages/gnome.scm | 79 ++++++++++++++++++++++--------------------
 1 file changed, 42 insertions(+), 37 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 1c2a83d17e..d97821a985 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1697,43 +1697,48 @@ way to prepare a new system.")
 
 (define-public gnome-user-share
   (package
-   (name "gnome-user-share")
-   (version "3.33.1")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
-   (build-system meson-build-system)
-   (arguments
-    `(#:glib-or-gtk? #t
-      #:configure-flags
-       `("-Dsystemd=false"
-         ;; Enable nautilus extension for file sharing.
-         "-Dnautilus_extension=true")))
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk+:bin" ,gtk+ "bin")
-      ("pkg-config" ,pkg-config)
-      ("yelp-tools" ,yelp-tools)))
-   (inputs
-    `(("glib" ,glib)
-      ("gnome-bluetooth" ,gnome-bluetooth)
-      ("gtk+" ,gtk+)
-      ("libcanberra" ,libcanberra)
-      ("libnotify" ,libnotify)
-      ("nautilus" ,nautilus)))      ; For nautilus extension.
-   (synopsis "File sharing for GNOME desktop")
-   (description "GNOME User Share is a small package that binds together
-various free software projects to bring easy to use user-level file
-sharing to the masses.")
-   (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
-   (license license:gpl2+)))
+    (name "gnome-user-share")
+    (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 "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        (string-append "-Dsystemduserunitdir="
+                       (getcwd))
+        "-Dnautilus_extension=true"
+        (string-append "-Dhttpd="
+                       (assoc-ref %build-inputs "httpd")
+                       "/bin/httpd")
+        (string-append "-Dmodules_path="
+                       (assoc-ref %build-inputs "httpd")
+                       "/modules/"))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("httpd" ,httpd)
+       ("libnautilus-extension" ,nautilus)
+       ("libselinux" ,libselinux)))
+    (synopsis "File sharing for GNOME desktop")
+    (description "GNOME User Share is a small package that binds together various
+free software projects to bring easy to use user-level file sharing to the
+masses.")
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
+    (license license:gpl2+)))
 
 (define-public sushi
   (package
-- 
2.28.0


[-- Attachment #1.1.26: 0044-gnu-gnome-weather-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5517 bytes --]

From 9fa96cda1abaa15665e231da20a14b283042276b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 6 Aug 2020 21:59:02 -0400
Subject: [PATCH 44/44] gnu: gnome-weather: Update package definition.

* gnu/packages/gnome.scm (gnome-weather) [version]: Update to 3.36.1.
[sources]<origin>[sha256]: Modify base32.
[arguments]<#:phases>['skip-gtk-update-icon-cache]: New phase.
['fix-desktop-file]: Remove phase.
['wrap]: Modify phase.
[native-inputs]: Add desktop-file-utils and python-wrapper. Remove
gtk+:bin.
[inputs]: Add glib and gtk+. Change gdk-pixbuf to gdk-pixbuf+svg.
---
 gnu/packages/gnome.scm | 102 ++++++++++++++++++++---------------------
 1 file changed, 50 insertions(+), 52 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d97821a985..0598ffc373 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10605,58 +10605,56 @@ associations for GNOME.")
 
 (define-public gnome-weather
   (package
-   (name "gnome-weather")
-   (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
-              "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
-   (build-system meson-build-system)
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk+:bin" ,gtk+ "bin")
-      ("pkg-config" ,pkg-config)))
-   (inputs
-    `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
-      ("appstream-glib" ,appstream-glib)
-      ("geoclue" ,geoclue)
-      ("gdk-pixbuf" ,gdk-pixbuf)
-      ("gjs" ,gjs)
-      ("gnome-desktop" ,gnome-desktop)
-      ("libgweather" ,libgweather)))
-   (arguments
-    `(#:glib-or-gtk? #t
-      #:phases
-      (modify-phases %standard-phases
-        (add-after 'install 'fix-desktop-file
-          ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
-          ;; See https://issues.guix.gnu.org/issue/39324.
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let* ((out (assoc-ref outputs "out"))
-                   (applications (string-append out "/share/applications")))
-              (substitute* (string-append applications "/org.gnome.Weather.desktop")
-                (("Exec=.*") "Exec=gnome-weather\n"))
-              #t)))
-        (add-after 'install 'wrap
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (let ((out               (assoc-ref outputs "out"))
-                  (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
-              ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
-              (wrap-program (string-append out "/bin/gnome-weather")
-                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
-              #t))))))
-   (synopsis "Weather monitoring for GNOME desktop")
-   (description "GNOME Weather is a small application that allows you to
-monitor the current weather conditions for your city, or anywhere in the
-world.")
-   (home-page "https://wiki.gnome.org/Apps/Weather")
-   (license license:gpl2+)))
+    (name "gnome-weather")
+    (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 "11z75ky6xp9hx7lm24xng7ydr20bzh4d6p9sbi9c8ccz2m3fdrk8"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
+               (wrap-program (string-append out "/bin/gnome-weather")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
+               #t))))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("appstream-util" ,appstream-glib)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("geoclue" ,geoclue)
+       ("gjs" ,gjs)
+       ("glib" ,glib)
+       ("gnome-desktop" ,gnome-desktop)
+       ("gtk+" ,gtk+)
+       ("gweather" ,libgweather)))
+    (synopsis "Weather monitoring for GNOME desktop")
+    (description "GNOME-Weather is a small application that allows you to monitor
+the current weather conditions for your city, or anywhere in the world.")
+    (home-page "https://wiki.gnome.org/Apps/Weather")
+    (license license:gpl2+)))
 
 (define-public gnome
   (package
-- 
2.28.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-07  2:14                                                             ` Raghav Gururajan
@ 2020-08-09 22:28                                                               ` Danny Milosavljevic
  2020-08-11 10:38                                                                 ` Raghav Gururajan
  2020-08-14 14:24                                                               ` [20.08.2020 Hartmut Goebel
  1 sibling, 1 reply; 84+ messages in thread
From: Danny Milosavljevic @ 2020-08-09 22:28 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

Hi Raghav,

applied these to wip-desktop except for 0030-gnu-seed-Disable-tests.patch
(I still want to look into it) and
0026-gnu-flatpak-Update-package-definition.patch (there's a newer flatpak
in the master I rebased to).

Had to adapt the libostree patch slightly because half was already applied
on the master I rebased to.

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-09 22:28                                                               ` Danny Milosavljevic
@ 2020-08-11 10:38                                                                 ` Raghav Gururajan
  2020-08-12  4:05                                                                   ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-08-11 10:38 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

Please find the attached patches.

I will send you the patch for gnome-shell shortly.

NOTE: I am not done with some of these packages yet. Have to fix
run-time issues.

@Others

Please find the following git-log.

*** START ***

commit 17b9cce3c19b092225759e6a1b51e7bcf330a4ce
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 11 04:36:54 2020 -0400

    gnu: gdm: Update package definition.

    * gnu/packages/gnome.scm (gdm) [version]: Update to 3.36.3.
    [source]<origin>[sha256]: Modify base32.
    [patches]<search-patches>[gdm-default-session.patch]: Remove patch.
    [outputs]: New output "help".
    [arguments]<#:configure-flags>[--disable-static]: New flag.
    [--enable-gdm-xsession]: New flag.
    [--enable-ipv6]: New flag.
    [--with-help-dir]: New flag.
    [--with-systemdsystemunitdir]: New flag.
    [--with-default-path]: Modify flag.
    [--with-xevie]: New flag.
    [--without-plymouth]: Remove flag.
    [--localstatedir]: Remove flag.
    [--sbindir]: Remove flag.
    <#:phases>['pre-configure]: Modify phase.
    ['install-placeholder-desktop-entry]: Remove phase.
    ['link-autostart-files]: Remove phase.
    [native-inputs]: Add check.
    [inputs]: Add glib, audit, keyutils, libice, libselinux, plymouth,
    tcp-wrappers, libx11, libxau, libxcb, libxdmcp, libext and libxinerama.
    Remove check.
    [synopsis]: Modify.
    [description]: Modify.

    * gnu/packages/patches/gdm-default-session.patch: Remove file.

    * gnu/local.mk (gdm-default-session.patch): Remove reference.

commit ae30bf6af1397b1b3f7b43ab6435f637fe6d42a7
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Aug 10 02:07:39 2020 -0400

    gnu: mutter: Update package definition.

    * gnu/packages/gnome.scm (mutter) [version]: Update to 3.36.4.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:configure-flags>[-Dgles2_libname]: New flag.
    [-Degl_device]: New flag.
    [-Dwayland_eglstream]: New flag.
    [-Dinstalled_tests]: New flag.
    [-Dxwayland_grab_default_access_rules]: New flag.
    [-Dxwayland_initfd]: New flag.
    [-Dc_link_args]: Modify flag.
    <#:phases>['fix-build-with-mesa-20]: Remove phase.
    [native-inputs]: Add adwaita-icon-theme, python-wrapper and ruby.
    Remove autoconf, automake and libtool.
    [propagated-inputs]: Add graphene, wayland and libxi. Remove xinput.
    Move gdk-pixbuf+svg, libinput, eudev, libxcomposite, libxdamage,
libxext,
    libxkbcommon and libxrandr to ...
    [inputs]: ... here. Add dbus, freetype, fribidi, libdrm, sysprof,
egl-wayland,
    wayland-protocols, libxau, libxcb, libxcursor, libxinerama and
libxrender.
    Remove zenity.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.

commit 004c8bbf589b502dfbb36c7d33ddfc76a440ab20
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Aug 11 06:21:31 2020 -0400

    gnu: gjs: Update package definition.

    * gnu/packages/gnome.scm (gjs) [version]: Update to 1.64.4.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from glib-or-gtk to meson.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['pre-check]: Modify phase.
    [propagated-inputs]: Replace mozjs-60 with mozjs-68.

commit ae436932c96b4f9f5308580de8999cca4a56b32b
Author: Kei Kebreau <kei@openmailbox.org>
Date:   Tue Apr 21 11:10:24 2020 -0400

    gnu: Add mozjs-68.

    * gnu/packages/gnuzilla.scm (mozjs-68): New variable.

commit c45f292b09227203a37545a7d653852a3f1150bf
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Mon Aug 10 00:05:11 2020 -0400

    gnu: Add egl-wayland.

    * gnu/packages/graphics.scm (egl-wayland): New variable.

commit 4a9eb027bf23e24063dd23bffa1edc3b5da6e637
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Aug 9 23:55:18 2020 -0400

    gnu: Add eglexternalplatform.

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

commit 032db56f8ab3587d4527c56bd3f8c0901ca1f595
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Aug 9 07:32:10 2020 -0400

    gnu: wayland-protocols: Update package definition.

    * gnu/packages/freedesktop.scm (wayland-protocols) [version]: Update
    to 1.20.
    [source]<origin>[sha256]: Modify base32.
    [description]: Modify.

commit ea024bd3e36c5b164c665f8836d05ccb696274f8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Aug 9 07:16:35 2020 -0400

    gnu: wayland: Update package definition.

    * gnu/packages/freedesktop.scm (wayland) [version]: Update to 1.18.0.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to meson.
    [outputs]: New output "doc".
    [arguments]<#:parallel-tests?>: Remove argument.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Move here docbook-xml and docbook-xsl from ...
    [inputs]: ... here. Move libffi to ...
    [propagated-inputs]: ... here.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Change from x11 to expat.

commit 0d43e161b7631272f0ac0bed695f18d196451eb9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sun Aug 9 02:18:24 2020 -0400

    gnu: totem: Update package definition.

    * gnu/packages/gnome.scm (totem): Update package definition.
    [outputs]: New outputs "help" and "doc".
    [arguments]<#:configure-flags>[-Dwith-plugins]: New flag.
    [-Denable-gtk-doc]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['pre-check]: Modify phase.
    ['move-doc]: New phase.
    ['move-help]: New phase.
    ['wrap-totem]: Modify phase.
    ['disable-cache-generation]: Remove phase.
    [native-inputs]: Add docbook-xml and gtk-doc. Move vala from ...
    [inputs]: ... here. Remove adwaita-icon-theme, atk, dbus-glib, librsvg,
    libsoup, libxrandr, libxtst, libxml2, libxxf86vm, lirc and xorgproto.
    Replace gdk-pixbuf with gdk-pixbuf+svg. Move gtk+ and
totem-pl-parser to ...
    [propagated-inputs]: ... here. Add glib. Remove dconf.
    [synopsis]: Modify.
    [description]: Modify.

commit 18c4692b5cbc5db8c7e8968dcf54c3b7d0d603c4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Aug 8 23:32:47 2020 -0400

    gnu: sushi: Update package definition.

    * gnu/packages/gnome.scm (sushi) [version]: Update to 3.34.0.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:phases>['wrap-typelib]: Modify phase.
    [inputs]: Add glib and gtk+. Replace gdk-pixbuf with gdk-pixbuf+svg.
    Remove clutter, clutter-gst, clutter-gtk, libxml2 and neon.
    [synopsis]: Modify.

commit 9716f05d24a29be16fe04994606a0e419f90c880
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Aug 8 22:28:04 2020 -0400

    gnu: libmusicbrainz: Propagate inputs.

    * gnu/packages/music.scm (libmusicbrainz) [inputs]: Change field to
    propagated-inputs.

commit 73ff96465270910b93fa2f4d6be84799e1f6fee0
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Aug 8 19:07:31 2020 -0400

    gnu: simple-scan: Update package definition.

    * gnu/packages/gnome.scm (simple-scan) [version]: Update to 3.36.4.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:phases>['move-help]: New phase.
    [inputs]: Add glib, libwebp and packagekit. Change gdk-pixbuf to
    gdk-pixbuf+svg.
    [synopsis]: Modify.
    [description]: Modify.

commit f954f2cb3d59e53ed72943cb82fe0d68c8a901e8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Aug 8 18:25:19 2020 -0400

    gnu: rygel: Update package definition.

    * gnu/packages/gnome.scm (rygel) [version]: Update to 0.38.4.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to meson.
    [outputs]: New output "doc".
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dapi-docs]: New flag.
    [-Dsystemd-user-units-dir]: New flag.
    <#:phases>['patch-docbook]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, docbook-xsl, glib:bin, python-wrapper.
    [inputs]: Change gdk-pixbuf to gdk-pixbuf+svg. Add gst-libav,
    gst-plugins-bad, gst-plugins-good, gst-plugins-ugly, libxml2,
    shared-mime-info and sqlite. Move libgee, gstreamer and gupnp-av to ...
    [propagated-inputs]: ... here. Add glib and glib-networking.
    [synopsis]: Modify.
    [description]: Modify.

commit 1e7b17a569017bd57236c62b2682d32493aa3414
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Aug 8 17:54:31 2020 -0400

    gnu: gst-editing-services: Update package definition.

    * gnu/packages/gstreamer.scm (gst-editing-services): Update package
    definition.
    [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, gobject-introspection and gtk-doc.
    Remove gst-plugins-good. Change python to python-wrapper. Move
gst-plugins-bad
    to ...
    [inputs]: ... here. Add glib, gstreamer and gtk+.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

commit bc48bf8cefc9ac9de327e978e8e50765dafcf772
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Aug 8 02:46:28 2020 -0400

    gnu: orca: Update package definition.

    * gnu/packages/gnome.scm (orca) [version]: Update to 3.36.3.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "help".
    [arguments]<#:configure-flags>[--with-help-dir]: New flag.
    <#:phases>['qualify-xkbcomp]: Remove phase.
    ['wrap-orca]: Modify phase.
    [inputs]: Add atk, at-spi2-core, brltty, liblouis and
python-setproctitle.
    Remove gsettings-desktop-schemas, gst-plugins-base, gst-plugins-good and
    xkbcomp.
    [synopsis]: Modify.
    [description]: Modify.

commit 9b802392fb407a39a84066fdef85b50848e3060f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Aug 8 01:58:33 2020 -0400

    gnu: Add brltty.

    * gnu/packages/accessibility.scm (brltty): New variable.

commit 9db1331a0819dcc291c4af6278d4bd9eac1d6c9b
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Aug 7 23:07:23 2020 -0400

    gnu: Add libbraille.

    * gnu/packages/accessibility.scm (libbraille): New variable.

commit 85bf43ebf72446b765982b00224d7f4610a00482
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Aug 7 22:44:20 2020 -0400

    gnu: Add latex2html.

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

commit 0ae235ac5cf46367d60d91692f8a789efd945d47
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Aug 7 17:08:33 2020 -0400

    gnu: Add liblouisutdml.

    * gnu/packages/language.scm (liblouisutdml): New variable.

    * gnu/packages/patches/liblouisutdml-fix-tests.patch: New file.

    * gnu/local.mk (liblouisutdml-fix-tests.patch): New reference.

commit add14ec0945de8967dc8f736a5561bf05bf3dcfa
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Aug 7 15:44:33 2020 -0400

    gnu: Add liblouis.

    * gnu/packages/languages.scm (liblouis): New variable.

commit 63106f16d167624d83820da97e59317b52ca3343
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Aug 7 14:00:20 2020 -0400

    gnu: nautilus: Update package definition.

    * gnu/packages/gnome.scm (nautilus) [version]: Update to 3.36.3.
    [source]<origin>[sha256]: Modify base32.
    [outputs]: New output "doc".
    [arguments]<#:configure-flags>[-Ddocs]: New flag.
    [-Dselinux]: New flag.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add desktop-file-utils, docbook-xml,
gsettings-desktop-schemas,
    gtk-doc and python-wrapper.
    [inputs]: Add appstream-glib, gstreamer and libx11. Remove
    dconf, exempi, gvfs, libexif and libseccomp. Move gtk+ to ...
    [propagated-inputs]: ... here. Add glib.
    [synopsis]: Modify.
    [description]: Modify.
    [license]: Modify.

*** END ***

Regards,
RG.

[-- Attachment #1.1.2: 0045-gnu-nautilus-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5970 bytes --]

From 63106f16d167624d83820da97e59317b52ca3343 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 7 Aug 2020 14:00:20 -0400
Subject: [PATCH 45/65] gnu: nautilus: Update package definition.

* gnu/packages/gnome.scm (nautilus) [version]: Update to 3.36.3.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Ddocs]: New flag.
[-Dselinux]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add desktop-file-utils, docbook-xml, gsettings-desktop-schemas,
gtk-doc and python-wrapper.
[inputs]: Add appstream-glib, gstreamer and libx11. Remove
dconf, exempi, gvfs, libexif and libseccomp. Move gtk+ to ...
[propagated-inputs]: ... here. Add glib.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 95 +++++++++++++++++++++++++-----------------
 1 file changed, 56 insertions(+), 39 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0598ffc373..eb447503b0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10329,62 +10329,79 @@ filetypes.")
 (define-public nautilus
   (package
     (name "nautilus")
-    (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
-                "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
+    (version "3.36.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1y0fsd7j48v4qkc051cg41mz7jycgw4vd4g37lw682p7n5xgrjmn"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Ddocs=true"
+        "-Dselinux=true")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference/libnautilus-extension"
+               (substitute* "libnautilus-extension-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
            (lambda _
              (substitute* "build-aux/meson/postinstall.py"
-               (("gtk-update-icon-cache") "true"))
-             #t)))
-       ;; XXX: FAIL: check-nautilus
-       ;;   Settings schema 'org.gnome.nautilus.preferences' is not installed
-       #:tests? #f))
+               (("gtk-update-icon-cache")
+                "true"))
+             #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
-     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("glib:bin" ,glib "bin")         ; for glib-mkenums, etc.
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
     (inputs
-     `(("dconf" ,dconf)
+     `(("appstream-util" ,appstream-glib)
        ("gexiv2" ,gexiv2)
-       ("gvfs" ,gvfs)
-       ("exempi" ,exempi)
-       ("gnome-desktop" ,gnome-desktop)
        ("gnome-autoar" ,gnome-autoar)
+       ("gnome-desktop" ,gnome-desktop)
+       ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
-       ("libseccomp" ,libseccomp)
        ("libselinux" ,libselinux)
+       ("libxml2" ,libxml2)
        ("tracker" ,tracker)
        ("tracker-miners" ,tracker-miners)
-       ;; XXX: gtk+ is required by libnautilus-extension.pc
-       ;;
-       ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
-       ;; package.  See:
-       ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
-       ("gtk+" ,gtk+)
-       ("libexif" ,libexif)
-       ("libxml2" ,libxml2)))
-    (synopsis "File manager for GNOME")
+       ("x11" ,libx11)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)))
+    (synopsis "Simple file manager for GNOME")
+    (description "Nautilus provides the user with a simple way to navigate and
+manage files.")
     (home-page "https://wiki.gnome.org/Apps/Nautilus")
-    (description
-     "Nautilus (Files) is a file manager designed to fit the GNOME desktop
-design and behaviour, giving the user a simple way to navigate and manage its
-files.")
-    (license license:gpl2+)))
+    (license license:gpl3+)))
 
 (define-public baobab
   (package
-- 
2.28.0


[-- Attachment #1.1.3: 0046-gnu-Add-liblouis.patch --]
[-- Type: text/x-patch, Size: 3870 bytes --]

From add14ec0945de8967dc8f736a5561bf05bf3dcfa Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 7 Aug 2020 15:44:33 -0400
Subject: [PATCH 46/65] gnu: Add liblouis.

* gnu/packages/languages.scm (liblouis): New variable.
---
 gnu/packages/language.scm | 64 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 63 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 8afa9663b4..175f6480fb 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -22,14 +22,18 @@
 
 (define-module (gnu packages language)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages llvm)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ocr)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xorg)
   #:use-module (guix packages)
@@ -38,11 +42,69 @@
   #:use-module (guix build-system python)
   #:use-module ((guix licenses)
                 #:select
-                (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 perl-license zpl2.1))
+                (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ perl-license zpl2.1))
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils))
 
+(define-public liblouis
+  (package
+    (name "liblouis")
+    (version "3.14.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/liblouis/liblouis.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0v6w8b9r994mkkbm2gqgd7k5yfmdhgbabh0j1gmn375nyvhy4qqh"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "bin" "doc" "louis"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-ucs4")
+       #:phases
+       (modify-phases %standard-phases
+         ;; To install the sub-package "louis".
+         (add-after 'install 'install-python-extension
+           (lambda* (#:key outputs #:allow-other-keys)
+             (with-directory-excursion "python"
+               (invoke "python" "setup.py" "install"
+                       (string-append "--prefix="
+                                      (assoc-ref outputs "louis"))
+                       "--root=/")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("clang-format" ,clang)
+       ("help2man" ,help2man)
+       ("libtool" ,libtool)
+       ("libyaml" ,libyaml)
+       ("makeinfo" ,texinfo)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (synopsis "Braille translator and back-translator")
+    (description "Liblouis is a braille translator and back-translator named in
+honor of Louis Braille.  It features support for computer and literary braille,
+supports contracted and uncontracted translation for many languages and has
+support for hyphenation.  New languages can easily be added through tables that
+support a rule- or dictionary based approach.  Tools for testing and debugging
+tables are also included.  Liblouis also supports math braille, Nemeth and
+Marburg.")
+    (home-page "http://liblouis.org/")
+    (license
+     (list
+      ;; Library
+      lgpl2.1+
+      ;; Tools
+      gpl3+))))
+
 (define-public libstemmer
   (package
     (name "libstemmer")
-- 
2.28.0


[-- Attachment #1.1.4: 0047-gnu-Add-liblouisutdml.patch --]
[-- Type: text/x-patch, Size: 5517 bytes --]

From 0ae235ac5cf46367d60d91692f8a789efd945d47 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 7 Aug 2020 17:08:33 -0400
Subject: [PATCH 47/65] gnu: Add liblouisutdml.

* gnu/packages/language.scm (liblouisutdml): New variable.

* gnu/packages/patches/liblouisutdml-fix-tests.patch: New file.

* gnu/local.mk (liblouisutdml-fix-tests.patch): New reference.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/language.scm                     | 52 ++++++++++++++++++-
 .../patches/liblouisutdml-fix-tests.patch     | 33 ++++++++++++
 3 files changed, 85 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/liblouisutdml-fix-tests.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 6d8c9a3676..9ff617a1ac 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1188,6 +1188,7 @@ 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/liblouisutdml-fix-tests.patch		\
   %D%/packages/patches/libofa-ftbfs-1.diff		\
   %D%/packages/patches/libofa-curl.diff		\
   %D%/packages/patches/libofa-ftbfs-2.diff		\
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 175f6480fb..8a1e1602a0 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -25,6 +25,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages man)
   #:use-module (gnu packages ocr)
@@ -35,6 +36,7 @@
   #:use-module (gnu packages swig)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
@@ -42,7 +44,7 @@
   #:use-module (guix build-system python)
   #:use-module ((guix licenses)
                 #:select
-                (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ perl-license zpl2.1))
+                (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ perl-license zpl2.1))
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils))
@@ -105,6 +107,54 @@ Marburg.")
       ;; Tools
       gpl3+))))
 
+(define-public liblouisutdml
+  (package
+    (name "liblouisutdml")
+    (version "2.8.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/liblouis/liblouisutdml.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11xxky3crjm8bidfljzpqaz1m1i1m1yskmdpavf9b4jpf87nzjj2"))
+       (patches
+        (search-patches "liblouisutdml-fix-tests.patch"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "bin" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-static")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("help2man" ,help2man)
+       ("jdk" ,icedtea "jdk")
+       ("libtool" ,libtool)
+       ("makeinfo" ,texinfo)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libxml2" ,libxml2)))
+    (propagated-inputs
+     `(("liblouis" ,liblouis)
+       ("liblouis:bin" ,liblouis "bin")))
+    (synopsis "Braille transcription services")
+    (description "Liblouisutdml is a library providing complete braille
+transcription services for xml, html and text documents.  It translates into
+appropriate braille codes and formats according to its style sheet and the
+specifications in the document.")
+    (home-page "http://liblouis.org/")
+    (license
+     (list
+      ;; Library
+      lgpl3+
+      ;; Tools
+      gpl3+))))
+
 (define-public libstemmer
   (package
     (name "libstemmer")
diff --git a/gnu/packages/patches/liblouisutdml-fix-tests.patch b/gnu/packages/patches/liblouisutdml-fix-tests.patch
new file mode 100644
index 0000000000..08d3db2c21
--- /dev/null
+++ b/gnu/packages/patches/liblouisutdml-fix-tests.patch
@@ -0,0 +1,33 @@
+From 52d44cdbc307d4e2ffc3ebe674745eb9d43ec337 Mon Sep 17 00:00:00 2001
+From: Christian Egli <christian.egli@sbs.ch>
+Date: Mon, 10 Aug 2020 16:08:17 +0200
+Subject: [PATCH] Some math over and under tests now actually pass
+
+with the newest liblouis
+---
+ tests/Makefile.am | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 157b005..932a5d0 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -321,10 +321,6 @@ XFAIL_TESTS +=					\
+ 	mathml_nemeth/mover_06.test		\
+ 	mathml_nemeth/mover_07.test		\
+ 	mathml_nemeth/mover_08.test		\
+-	mathml_nemeth/mover_09.test		\
+-	mathml_nemeth/mover_10.test		\
+-	mathml_nemeth/mover_11.test		\
+-	mathml_nemeth/mover_12.test		\
+ 	mathml_nemeth/mover_13.test		\
+ 	mathml_nemeth/mover_14.test		\
+ 	mathml_nemeth/mover_15.test		\
+@@ -332,7 +328,6 @@ XFAIL_TESTS +=					\
+ 	mathml_nemeth/munder_01.test		\
+ 	mathml_nemeth/munder_02.test		\
+ 	mathml_nemeth/munder_03.test		\
+-	mathml_nemeth/munder_04.test		\
+ 	mathml_nemeth/munder_05.test		\
+ 	mathml_nemeth/munder_06.test		\
+ 	mathml_nemeth/munder_07.test		\
-- 
2.28.0


[-- Attachment #1.1.5: 0048-gnu-Add-latex2html.patch --]
[-- Type: text/x-patch, Size: 2263 bytes --]

From 85bf43ebf72446b765982b00224d7f4610a00482 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 7 Aug 2020 22:44:20 -0400
Subject: [PATCH 48/65] gnu: Add latex2html.

* gnu/packages/documentation.scm (latex2html): New variable.
---
 gnu/packages/documentation.scm | 44 ++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index a3a07f56db..18e3ce60f1 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -46,6 +46,50 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages xml))
 
+(define-public latex2html
+  (package
+    (name "latex2html")
+    (version "2020.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/latex2html/latex2html.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1icyl6kl60wh7cavprgbd8q6lpjwr7wn24m34kpiif7ahknhcbcm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "configure"
+               (("/usr/local")
+                (assoc-ref outputs "out"))
+               (("\\$\\{CONFIG_SHELL-/bin/sh\\}")
+                (which "bash")))
+             #t))
+         (replace 'configure
+           (lambda _
+             (invoke "./configure")
+             #t))
+         (add-after 'configure 'patch-cfgcache
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "cfgcache.pm"
+               (("/usr/local")
+                (assoc-ref outputs "out")))
+             #t)))))
+    (inputs
+     `(("perl" ,perl)))
+    (synopsis "LaTeX documents to HTML")
+    (description "LaTeX2HTML is a utility that converts LaTeX documents to web
+pages in HTML.")
+    (home-page "https://www.latex2html.org/")
+    (license gpl2+)))
+
 (define-public asciidoc
   (package
     (name "asciidoc")
-- 
2.28.0


[-- Attachment #1.1.6: 0049-gnu-Add-libbraille.patch --]
[-- Type: text/x-patch, Size: 2646 bytes --]

From 9db1331a0819dcc291c4af6278d4bd9eac1d6c9b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 7 Aug 2020 23:07:23 -0400
Subject: [PATCH 49/65] gnu: Add libbraille.

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

diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm
index 8d421a092a..a329cbdf95 100644
--- a/gnu/packages/accessibility.scm
+++ b/gnu/packages/accessibility.scm
@@ -21,12 +21,19 @@
 
 (define-module (gnu packages accessibility)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages swig)
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages java)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gstreamer)
@@ -37,6 +44,41 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages libusb))
 
+(define-public libbraille
+  (package
+    (name "libbraille")
+    (version "0.19.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://sourceforge.net/projects/" name "/files/" name "/"
+                       name "-" version "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05g8r0ypazqn10i7k48iibs8bzc3scdfcnhcykab8j16lhzd27d0"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "bin"))
+    (arguments
+     `(#:tests? #f                      ; Tests require drivers
+       #:configure-flags
+       (list
+        "--disable-static"
+        "--enable-fake")))
+    (native-inputs
+     `(("latex2html" ,latex2html)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("swig" ,swig)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+-2)
+       ("libusb" ,libusb-compat)))
+    (synopsis "Portable Braille Library")
+    (description "Libbraille is a library to easily access Braille displays and
+terminals.")
+    (home-page "https://libbraille.org")
+    (license license:lgpl2.1+)))
+
 (define-public florence
   (package
     (name "florence")
-- 
2.28.0


[-- Attachment #1.1.7: 0050-gnu-Add-brltty.patch --]
[-- Type: text/x-patch, Size: 5930 bytes --]

From 9b802392fb407a39a84066fdef85b50848e3060f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 8 Aug 2020 01:58:33 -0400
Subject: [PATCH 50/65] gnu: Add brltty.

* gnu/packages/accessibility.scm (brltty): New variable.
---
 gnu/packages/accessibility.scm | 125 +++++++++++++++++++++++++++++++++
 1 file changed, 125 insertions(+)

diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm
index a329cbdf95..14ce805aef 100644
--- a/gnu/packages/accessibility.scm
+++ b/gnu/packages/accessibility.scm
@@ -28,11 +28,23 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
+  #:use-module (gnu packages lisp)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages ocaml)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages polkit)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages music)
+  #:use-module (gnu packages language)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages speech)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages java)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages gnome)
@@ -79,6 +91,119 @@ terminals.")
     (home-page "https://libbraille.org")
     (license license:lgpl2.1+)))
 
+(define-public brltty
+  (package
+    (name "brltty")
+    (version "6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://brltty.app/archive/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nk54chr7z2w579vyiak9xk2avhnvrx7x2l5sk8nyw2zplchkx9q"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        (string-append "--with-tcl-config="
+                       (assoc-ref %build-inputs "tcl")
+                       "/lib/tclConfig.sh")
+        (string-append "--with-libbraille="
+                       (assoc-ref %build-inputs "libbraille"))
+        (string-append "--with-espeak_ng="
+                       (assoc-ref %build-inputs "espeak-ng"))
+        (string-append "--with-espeak="
+                       (assoc-ref %build-inputs "espeak"))
+        (string-append "--with-flite="
+                       (assoc-ref %build-inputs "flite"))
+        ;; Required for RUNPATH validation.
+        (string-append "LDFLAGS=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib"))
+       #:make-flags
+       (list
+        (string-append "JAVA_JAR_DIR="
+                       (assoc-ref %outputs "out"))
+        (string-append "JAVA_JNI_DIR="
+                       (assoc-ref %outputs "out"))
+        (string-append "OCAML_DESTDIR="
+                       (assoc-ref %outputs "out")
+                       "/lib")
+        (string-append "PYTHON_PREFIX="
+                       (assoc-ref %outputs "out"))
+        "PYTHON_ROOT=/"
+        (string-append "TCL_DIR="
+                       (assoc-ref %outputs "out")
+                       "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-errors
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "configure"
+               (("/sbin/ldconfig")
+                (which "true")))
+             ;; Make Python bindings use rpath.
+             (substitute* "Bindings/Python/setup.py.in"
+               (("extra_compile_args =")
+                (string-append "extra_link_args = ['-Wl,-rpath="
+                               (assoc-ref outputs "out")
+                               "/lib'], "
+                               "extra_compile_args = ")))
+             #t)))))
+    (native-inputs
+     `(("clisp" ,clisp)
+       ("cython" ,python-cython)
+       ("doxygen" ,doxygen)
+       ("gettext" ,gettext-minimal)
+       ("java" ,icedtea "jdk")
+       ;; ("linuxdoc" ,linuxdoc-tools)
+       ("ocaml" ,ocaml)
+       ("ocamlfind" ,ocaml-findlib)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("tcl" ,tcl)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("atspi2" ,at-spi2-core)
+       ("bluez" ,bluez)
+       ("dbus" ,dbus)
+       ("espeak" ,espeak)
+       ("espeak-ng" ,espeak-ng)
+       ("expat" ,expat)
+       ("festival" ,festival)
+       ("flite" ,flite)
+       ("glib" ,glib)
+       ("gpm" ,gpm)
+       ("iconv" ,libiconv)
+       ("icu" ,icu4c)
+       ("libbraille" ,libbraille)
+       ("libpcre2" ,pcre2)
+       ("linux-headers" ,linux-libre-headers)
+       ("louis" ,liblouis)
+       ("ncurses" ,ncurses)
+       ("polkit" ,polkit)
+       ("speech-dispatcher" ,speech-dispatcher)
+       ("util-linux" ,util-linux)
+       ("util-linux:lib" ,util-linux "lib")
+       ("x11" ,libx11)
+       ("xaw" ,libxaw)
+       ("xaw3d" ,libxaw3d)
+       ("xext" ,libxext)
+       ("xfixes" ,libxfixes)
+       ("xt" ,libxt)
+       ("xtst" ,libxtst)))
+    (synopsis "Braille TTY")
+    (description "BRLTTY is a background process (daemon) which provides access
+to the Linux/Unix console (when in text mode) for a blind person using a
+refreshable braille display.  It drives the braille display, and provides
+complete screen review functionality.  Some speech capability has also been
+incorporated.")
+    (home-page "https://brltty.app/")
+    (license license:lgpl2.1+)))
+
 (define-public florence
   (package
     (name "florence")
-- 
2.28.0


[-- Attachment #1.1.8: 0051-gnu-orca-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5110 bytes --]

From bc48bf8cefc9ac9de327e978e8e50765dafcf772 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 8 Aug 2020 02:46:28 -0400
Subject: [PATCH 51/65] gnu: orca: Update package definition.

* gnu/packages/gnome.scm (orca) [version]: Update to 3.36.3.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:configure-flags>[--with-help-dir]: New flag.
<#:phases>['qualify-xkbcomp]: Remove phase.
['wrap-orca]: Modify phase.
[inputs]: Add atk, at-spi2-core, brltty, liblouis and python-setproctitle.
Remove gsettings-desktop-schemas, gst-plugins-base, gst-plugins-good and
xkbcomp.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 65 +++++++++++++++++++++---------------------
 1 file changed, 32 insertions(+), 33 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index eb447503b0..abf1f36b53 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -72,6 +72,7 @@
 
 (define-module (gnu packages gnome)
   #:use-module (gnu packages)
+  #:use-module (gnu packages accessibility)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
@@ -11879,27 +11880,27 @@ accessibility infrastructure.")
 (define-public orca
   (package
     (name "orca")
-    (version "3.34.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnome/sources/" name "/"
-                    (version-major+minor version) "/"
-                    name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
+    (version "3.36.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://gnome/sources/" name "/"
+         (version-major+minor version) "/"
+         name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1x0xrcyxlvcjlqp6wcsx5d951i500079wqs04scssjzwqggy330n"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:phases
+     `(#:configure-flags
+       (list
+        (string-append "--with-help-dir="
+                       (assoc-ref %outputs "help")
+                       "/share/help"))
+       #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'qualify-xkbcomp
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((xkbcomp (string-append
-                             (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
-               (substitute* "src/orca/orca.py"
-                 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
-             #t))
          (add-after 'install 'wrap-orca
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out  (assoc-ref outputs "out"))
@@ -11907,35 +11908,33 @@ accessibility infrastructure.")
                (wrap-program prog
                  `("GI_TYPELIB_PATH" ":" prefix
                    (,(getenv "GI_TYPELIB_PATH")))
-                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
-                   (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
                  `("PYTHONPATH" ":" prefix
                    (,(getenv "PYTHONPATH")))))
              #t)))))
     (native-inputs
-     `(("intltool" ,intltool)
+     `( ;; ("docbook-utils" ,docbook-utils)
+       ("intltool" ,intltool)
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
     (inputs
-     `(("at-spi2-atk" ,at-spi2-atk)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+     `(("atk" ,atk)
+       ("at-spi2-atk" ,at-spi2-atk)
+       ("at-spi2-core" ,at-spi2-core)
        ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
        ("gtk+" ,gtk+)
+       ("liblouis" ,liblouis)
        ("python" ,python)
+       ("python-brlapi" ,brltty)
+       ("python-louis" ,liblouis "louis")
        ("python-pygobject" ,python-pygobject)
        ("python-pyatspi" ,python-pyatspi)
-       ("python-speechd" ,speech-dispatcher)
-       ("xkbcomp" ,xkbcomp)))
-    (synopsis
-     "Screen reader for individuals who are blind or visually impaired")
+       ("python-setproctitle" ,python-setproctitle)
+       ("python-speechd" ,speech-dispatcher)))
+    (synopsis "Screen reader for GNOME")
+    (description "Orca is a flexible and extensible screen reader that provides
+access to the graphical desktop via speech and refreshable braille.")
     (home-page "https://wiki.gnome.org/Projects/Orca")
-    (description
-     "Orca is a screen reader that provides access to the graphical desktop
-via speech and refreshable braille.  Orca works with applications and toolkits
-that support the Assistive Technology Service Provider Interface (AT-SPI).")
     (license license:lgpl2.1+)))
 
 (define-public gspell
-- 
2.28.0


[-- Attachment #1.1.9: 0052-gnu-gst-editing-services-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4712 bytes --]

From 1e7b17a569017bd57236c62b2682d32493aa3414 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 8 Aug 2020 17:54:31 -0400
Subject: [PATCH 52/65] gnu: gst-editing-services: Update package definition.

* gnu/packages/gstreamer.scm (gst-editing-services): Update package
definition.
[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, gobject-introspection and gtk-doc.
Remove gst-plugins-good. Change python to python-wrapper. Move gst-plugins-bad
to ...
[inputs]: ... here. Add glib, gstreamer and gtk+.
[synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gstreamer.scm | 75 ++++++++++++++++++++++++++------------
 1 file changed, 51 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index b39113bea2..6c4b04fe89 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -994,36 +994,63 @@ decoders, muxers, and demuxers provided by FFmpeg.")
   (package
     (name "gst-editing-services")
     (version "1.16.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://gstreamer.freedesktop.org/src/" name "/"
-                    "gstreamer-editing-services-" version ".tar.xz"))
-              (sha256
-               (base32
-                "05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://gstreamer.freedesktop.org/src/" name "/"
+         "gstreamer-editing-services-" version ".tar.xz"))
+       (sha256
+        (base32 "05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     ;; FIXME: 16/22 failing tests.
-     `(#:tests? #f
-       #:phases (modify-phases %standard-phases
-                  ,@%common-gstreamer-phases)))
-    (inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
-       ("libxml2" ,libxml2)))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:tests? #f           ; FIXME
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/libs"
+               (substitute* '("architecture.xml" "ges-docs.sgml")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.3")
+                                 "/xml/dtd/docbook/"))
+                 (("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-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
-     `(("flex" ,flex)
-       ("gst-plugins-bad" ,gst-plugins-bad)
-       ("gst-plugins-good" ,gst-plugins-good)
+     `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
+       ("docbook-xml-4.3" ,docbook-xml-4.3)
+       ("flex" ,flex)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)))
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("glib" ,glib)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-bad" ,gst-plugins-bad)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gtk+" ,gtk+)
+       ("libxml2" ,libxml2)))
+    (synopsis "GStreamer Editing Services Library")
+    (description "Gst-Editing-services is a high-level library for facilitating
+the creation of audio/video non-linear editors.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "GStreamer library for non-linear editors")
-    (description
-     "This is a high-level library for facilitating the creation of audio/video
-non-linear editors.")
-    (license license:gpl2+)))
+    (license license:lgpl2.0+)))
 
 (define-public python-gst
   (package
-- 
2.28.0


[-- Attachment #1.1.10: 0053-gnu-rygel-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 8044 bytes --]

From f954f2cb3d59e53ed72943cb82fe0d68c8a901e8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 8 Aug 2020 18:25:19 -0400
Subject: [PATCH 53/65] gnu: rygel: Update package definition.

* gnu/packages/gnome.scm (rygel) [version]: Update to 0.38.4.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to meson.
[outputs]: New output "doc".
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dapi-docs]: New flag.
[-Dsystemd-user-units-dir]: New flag.
<#:phases>['patch-docbook]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, docbook-xsl, glib:bin, python-wrapper.
[inputs]: Change gdk-pixbuf to gdk-pixbuf+svg. Add gst-libav,
gst-plugins-bad, gst-plugins-good, gst-plugins-ugly, libxml2,
shared-mime-info and sqlite. Move libgee, gstreamer and gupnp-av to ...
[propagated-inputs]: ... here. Add glib and glib-networking.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 130 ++++++++++++++++++++++++++++++-----------
 1 file changed, 97 insertions(+), 33 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index abf1f36b53..384541db7e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1798,52 +1798,116 @@ preview files on the GNOME desktop.")
 (define-public rygel
   (package
     (name "rygel")
-    (version "0.38.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
-    (build-system gnu-build-system)
+    (version "0.38.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0rm1m1z8rcvyj9873wqcz5i3qdg8j6gv6k1p01xifk0y9phg7rzc"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dapi-docs=true"
+        (string-append "-Dsystemd-user-units-dir="
+                       (getcwd)))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/reference"
+               (substitute* '("../man/meson.build"
+                              "../man/rygel.conf.xml" "../man/rygel.xml"
+                              "librygel-core/gtkdoc/librygel-core-docs.xml"
+                              "librygel-core/gtkdoc/overview.xml"
+                              "librygel-db/gtkdoc/librygel-db-docs.xml"
+                              "librygel-db/gtkdoc/overview.xml"
+                              "librygel-renderer-gst/gtkdoc/implementing-renderers-gst.xml"
+                              "librygel-renderer-gst/gtkdoc/librygel-renderer-gst-docs.xml"
+                              "librygel-renderer-gst/gtkdoc/overview.xml"
+                              "librygel-renderer/gtkdoc/implementing-renderer-plugins.xml"
+                              "librygel-renderer/gtkdoc/implementing-renderers.xml"
+                              "librygel-renderer/gtkdoc/librygel-renderer-docs.xml"
+                              "librygel-renderer/gtkdoc/overview.xml"
+                              "librygel-server/gtkdoc/implementing-media-engines.xml"
+                              "librygel-server/gtkdoc/implementing-server-plugins.xml"
+                              "librygel-server/gtkdoc/implementing-servers.xml"
+                              "librygel-server/gtkdoc/librygel-server-docs.xml"
+                              "librygel-server/gtkdoc/overview.xml")
+                 (("http://docbook.sourceforge.net/release/xsl/current")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-"
+                                 ,(package-version docbook-xsl)))
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.3")
+                                 "/xml/dtd/docbook/"))
+                 (("http://www.oasis-open.org/docbook/xml/4.5/")
+                  (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
-     `(("gettext" ,gettext-minimal)
+     `(("docbook-xml" ,docbook-xml)
+       ("docbook-xml-4.3" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+       ("python" ,python-wrapper)
+       ("vala" ,vala)
+       ("xsltproc" ,libxslt)))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
+     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("gssdp" ,gssdp)
-       ("gstreamer" ,gstreamer)
+       ("gst-libav" ,gst-libav)
+       ("gst-plugins-bad" ,gst-plugins-bad)
        ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("gst-plugins-ugly" ,gst-plugins-ugly)
        ("gtk+" ,gtk+)
        ("gupnp" ,gupnp)
-       ("gupnp-av" ,gupnp-av)
        ("gupnp-dlna" ,gupnp-dlna)
-       ("libgee" ,libgee)
        ("libmediaart" ,libmediaart)
        ("libsoup" ,libsoup)
-       ("libxslt" ,libxslt)
-       ("libunistring" ,libunistring)
-       ("tracker" ,tracker)))
-    (synopsis "Share audio, video, and pictures with other devices")
-    (description
-     "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
-MediaRenderer}) for GNOME that allows you to easily share audio, video, and
-pictures, and to control a media player on your home network.
-
-Rygel achieves interoperability with other devices by trying to conform to the
-strict requirements of DLNA and by converting media on-the-fly to formats that
-client devices can handle.")
+       ("libxml2" ,libxml2)
+       ("shared-mime-info" ,shared-mime-info)
+       ("sqlite" ,sqlite)
+       ("tracker" ,tracker)
+       ("unistring" ,libunistring)))
+    (propagated-inputs
+     `(("gee" ,libgee)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gstreamer" ,gstreamer)
+       ("gupnp-av" ,gupnp-av)))
+    (synopsis "Home media solution")
+    (description "Rygel is a UPnP AV MediaServer that allows you to easily share
+audio, video and pictures to other devices.  Additionally, media player software
+may use Rygel to become a MediaRenderer that may be controlled remotely by a
+UPnP or DLNA Controller.")
     (home-page "https://wiki.gnome.org/Projects/Rygel")
-    (license (list
-              ;; For logo (data/icons/*).
-              license:cc-by-sa3.0
-              ;; For all others.
-              license:lgpl2.1+))))
+    (license
+     (list
+      ;; Logo
+      license:cc-by-sa3.0
+      ;; Others
+      license:lgpl2.1+))))
 
 (define-public libnma
   (package
-- 
2.28.0


[-- Attachment #1.1.11: 0054-gnu-simple-scan-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3920 bytes --]

From 73ff96465270910b93fa2f4d6be84799e1f6fee0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 8 Aug 2020 19:07:31 -0400
Subject: [PATCH 54/65] gnu: simple-scan: Update package definition.

* gnu/packages/gnome.scm (simple-scan) [version]: Update to 3.36.4.
[source]<origin>[sha256]: Modify base32.
[outputs]: New output "help".
[arguments]<#:phases>['move-help]: New phase.
[inputs]: Add glib, libwebp and packagekit. Change gdk-pixbuf to
gdk-pixbuf+svg.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 57 ++++++++++++++++++++++++++----------------
 1 file changed, 35 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 384541db7e..a58eff03ad 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7675,41 +7675,54 @@ USB transfers with your high-level application or system daemon.")
 (define-public simple-scan
   (package
     (name "simple-scan")
-    (version "3.36.3")
+    (version "3.36.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/simple-scan/"
-                           (version-major+minor version) "/"
-                           "simple-scan-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/simple-scan/"
+                       (version-major+minor version) "/"
+                       "simple-scan-" version ".tar.xz"))
        (sha256
-        (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
+        (base32 "09gmzrlljdqkj3w6wa1c27wypy6j8z9dw3jzv9izfqvp38liibsn"))))
     (build-system meson-build-system)
-    ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
+    (outputs '("out" "help"))
     (arguments
-     '(#:glib-or-gtk? #t))
-    (inputs
-     `(("gtk" ,gtk+)
-       ("zlib" ,zlib)
-       ("cairo" ,cairo)
-       ("colord" ,colord)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gusb" ,gusb)
-       ("libsane" ,sane-backends)))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")
        ("itstool" ,itstool)
-       ("glib" ,glib "bin")             ; glib-compile-schemas, etc.
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)
        ("xmllint" ,libxml2)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("colord" ,colord)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("gtk" ,gtk+)
+       ("gusb" ,gusb)
+       ("libwebp" ,libwebp)
+       ("packagekit-glib" ,packagekit)
+       ("sane-backends" ,sane-backends)
+       ("zlib" ,zlib)))
+    (synopsis "Document scanner")
+    (description "Simple-Scan is a document scanning application for GNOME.  It
+allows you to capture images using image scanners that have suitable SANE
+drivers installed.")
     (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
-    (synopsis "Document and image scanner")
-    (description
-     "Document Scanner is an easy-to-use application that lets you connect your
-scanner and quickly capture images and documents in an appropriate format.  It
-supports any scanner for which a suitable SANE driver is available, which is
-almost all of them.")
     (license license:gpl3+)))
 
 (define-public eolie
-- 
2.28.0


[-- Attachment #1.1.12: 0055-gnu-libmusicbrainz-Propagate-inputs.patch --]
[-- Type: text/x-patch, Size: 976 bytes --]

From 9716f05d24a29be16fe04994606a0e419f90c880 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 8 Aug 2020 22:28:04 -0400
Subject: [PATCH 55/65] gnu: libmusicbrainz: Propagate inputs.

* gnu/packages/music.scm (libmusicbrainz) [inputs]: Change field to
propagated-inputs.
---
 gnu/packages/music.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 639cf6d5f2..31bd553397 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -4447,7 +4447,7 @@ Recording Code} (ISRC) can be extracted.}")
              ;; (invoke "tests/mbtest")
              (invoke "tests/ctest")
              #t)))))
-    (inputs `(("neon" ,neon)
+    (propagated-inputs `(("neon" ,neon)
               ("libxml2" ,libxml2)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "https://musicbrainz.org/doc/libmusicbrainz")
-- 
2.28.0


[-- Attachment #1.1.13: 0056-gnu-sushi-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3976 bytes --]

From 18c4692b5cbc5db8c7e8968dcf54c3b7d0d603c4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 8 Aug 2020 23:32:47 -0400
Subject: [PATCH 56/65] gnu: sushi: Update package definition.

* gnu/packages/gnome.scm (sushi) [version]: Update to 3.34.0.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:phases>['wrap-typelib]: Modify phase.
[inputs]: Add glib and gtk+. Replace gdk-pixbuf with gdk-pixbuf+svg.
Remove clutter, clutter-gst, clutter-gtk, libxml2 and neon.
[synopsis]: Modify.
---
 gnu/packages/gnome.scm | 47 +++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a58eff03ad..95257e72e0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1744,55 +1744,54 @@ masses.")
 (define-public sushi
   (package
     (name "sushi")
-    (version "3.32.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
+    (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 "1zcr8wi5bgvvpb5ha1v96aiaz4vqqrsn6cvvalwzah6am85k78m8"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:phases
        (modify-phases %standard-phases
          (add-after 'glib-or-gtk-wrap 'wrap-typelib
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((prog (string-append (assoc-ref outputs "out")
-                                        "/bin/sushi")))
+             (let* ((prog (string-append (assoc-ref outputs "out")
+                                         "/bin/sushi")))
                ;; Put existing typelibs before sushi's deps, so as to correctly
                ;; infer gdk-pixbuf
                (wrap-program prog
                  `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
                #t))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gettext" ,gettext-minimal)
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("clutter" ,clutter)
-       ("clutter-gst" ,clutter-gst)
-       ("clutter-gtk" ,clutter-gtk)
-       ("evince" ,evince)                         ; For file previewing.
+     `(("epoxy" ,libepoxy)
+       ("evince" ,evince)
        ("freetype" ,freetype)
-       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("gjs" ,gjs)
+       ("glib" ,glib)
        ("gst-plugins-base" ,gst-plugins-base)
        ("gstreamer" ,gstreamer)
-       ("gtksourceview" ,gtksourceview-3)
+       ("gtk+" ,gtk+)
+       ("gtksourceview" ,gtksourceview)
        ("harfbuzz" ,harfbuzz)
-       ("libepoxy" ,libepoxy)
        ("libmusicbrainz" ,libmusicbrainz)
-       ("libxml2" ,libxml2)
-       ("neon" ,neon)
        ("webkitgtk" ,webkitgtk)))
-    (synopsis "File previewer for the GNOME desktop")
+    (synopsis "File previewer")
     (description "Sushi is a DBus-activated service that allows applications to
 preview files on the GNOME desktop.")
     (home-page "https://gitlab.gnome.org/GNOME/sushi")
+    ;; With added exception clause.
     (license license:gpl2+)))
 
 (define-public rygel
-- 
2.28.0


[-- Attachment #1.1.14: 0057-gnu-totem-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 9736 bytes --]

From 0d43e161b7631272f0ac0bed695f18d196451eb9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 9 Aug 2020 02:18:24 -0400
Subject: [PATCH 57/65] gnu: totem: Update package definition.

* gnu/packages/gnome.scm (totem): Update package definition.
[outputs]: New outputs "help" and "doc".
[arguments]<#:configure-flags>[-Dwith-plugins]: New flag.
[-Denable-gtk-doc]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['pre-check]: Modify phase.
['move-doc]: New phase.
['move-help]: New phase.
['wrap-totem]: Modify phase.
['disable-cache-generation]: Remove phase.
[native-inputs]: Add docbook-xml and gtk-doc. Move vala from ...
[inputs]: ... here. Remove adwaita-icon-theme, atk, dbus-glib, librsvg,
libsoup, libxrandr, libxtst, libxml2, libxxf86vm, lirc and xorgproto.
Replace gdk-pixbuf with gdk-pixbuf+svg. Move gtk+ and totem-pl-parser to ...
[propagated-inputs]: ... here. Add glib. Remove dconf.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 170 ++++++++++++++++++++++-------------------
 1 file changed, 90 insertions(+), 80 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 95257e72e0..9469c0a1f2 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7188,103 +7188,113 @@ Grilo's API for various multimedia content providers.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/totem/"
-                           (version-major+minor version) "/"
-                           "totem-" version ".tar.xz"))
+       (uri
+        (string-append "mirror://gnome/sources/totem/"
+                       (version-major+minor version) "/"
+                       "totem-" version ".tar.xz"))
        (sha256
-        (base32
-         "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
+        (base32 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
     (build-system meson-build-system)
+    (outputs '("out" "help" "doc"))
+    (arguments
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Denable-easy-codec-installation=no" ; Not required in Guix
+        "-Dwith-plugins=all"
+        "-Denable-gtk-doc=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs/reference"
+               (substitute* "totem-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.5/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #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))
+             #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-after 'move-doc 'move-help
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (help (assoc-ref outputs "help")))
+               (mkdir-p (string-append help "/share"))
+               (rename-file
+                (string-append out "/share/help")
+                (string-append help "/share/help"))
+               #t)))
+         (add-after 'move-help 'wrap-totem
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
+                    (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
+               (wrap-program (string-append out "/bin/totem")
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+                 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
+               (wrap-program (string-append out "/bin/totem-video-thumbnailer")
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("desktop-file-utils" ,desktop-file-utils)
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("docbook-xml" ,docbook-xml)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("glib:bin" ,glib "bin")                   ;for 'glib-mkenums'
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
        ("xmllint" ,libxml2)
        ("xorg-server" ,xorg-server-for-tests)))
-    (propagated-inputs
-     `(("dconf" ,dconf)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("atk" ,atk)
-       ("cairo" ,cairo)
-       ("dbus-glib" ,dbus-glib)
+     `(("cairo" ,cairo)
        ("clutter" ,clutter)
        ("clutter-gtk" ,clutter-gtk)
        ("clutter-gst" ,clutter-gst)
-       ("xorgproto" ,xorgproto)
-       ("libxxf86vm" ,libxxf86vm)
-       ("libxtst" ,libxtst)
-       ("libxrandr" ,libxrandr)
-       ("libxml2" ,libxml2)
-       ("libsoup" ,libsoup)
-       ("libpeas" ,libpeas)
-       ("librsvg" ,librsvg)
-       ("lirc" ,lirc)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("gnome-desktop" ,gnome-desktop)
+       ("grilo" ,grilo)
+       ("grilo-plugins" ,grilo-plugins)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
        ("gst-plugins-good" ,gst-plugins-good)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
-       ("totem-pl-parser" ,totem-pl-parser)
-       ("grilo" ,grilo)
-       ("grilo-plugins" ,grilo-plugins)
-       ("vala" ,vala)))
-    (arguments
-     `(#:glib-or-gtk? #t
-
-       ;; Disable automatic GStreamer plugin installation via PackageKit and
-       ;; all that.
-       #:configure-flags '("-D" "enable-easy-codec-installation=no"
-
-                           ;; Do not build .a files for the plugins, it's
-                           ;; completely useless.  This saves 2 MiB.
-                           "--default-library" "shared")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
-           (lambda _
-             (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t))
-         (add-before
-          'install 'disable-cache-generation
-          (lambda _
-            (setenv "DESTDIR" "/")
-            #t))
-         (add-before
-          'check 'pre-check
-          (lambda _
-            ;; Tests require a running X server.
-            (system "Xvfb :1 &")
-            (setenv "DISPLAY" ":1")
-            #t))
-         (add-after
-          'install 'wrap-totem
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (let ((out             (assoc-ref outputs "out"))
-                  (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
-                  (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
-              (wrap-program (string-append out "/bin/totem")
-                `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
-                `("GRL_PLUGIN_PATH"        ":" prefix (,grl-plugin-path)))
-              (wrap-program (string-append out "/bin/totem-video-thumbnailer")
-                `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
-            #t)))))
+       ("libpeas" ,libpeas)
+       ("pygobject" ,python-pygobject)
+       ("python" ,python)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("totem-pl-parser" ,totem-pl-parser)))
+    (synopsis "Movie player")
+    (description "Totem is movie player for the GNOME desktop based on
+GStreamer.  It features a playlist, a full-screen mode, seek and volume controls,
+as well as complete keyboard navigation.  Apart from a movie player, it also
+includes a video thumbnailer.")
     (home-page "https://wiki.gnome.org/Apps/Videos")
-    (synopsis "Simple media player for GNOME based on GStreamer")
-    (description "Totem is a simple yet featureful media player for GNOME
-which can read a large number of file formats.")
-    ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
-    ;; to be used and distributed together with GStreamer and Totem.  See
-    ;; file://COPYING in the source distribution for details.
+    ;; With added exception clause.
     (license license:gpl2+)))
 
 (define-public rhythmbox
-- 
2.28.0


[-- Attachment #1.1.15: 0058-gnu-wayland-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 5682 bytes --]

From ea024bd3e36c5b164c665f8836d05ccb696274f8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 9 Aug 2020 07:16:35 -0400
Subject: [PATCH 58/65] gnu: wayland: Update package definition.

* gnu/packages/freedesktop.scm (wayland) [version]: Update to 1.18.0.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to meson.
[outputs]: New output "doc".
[arguments]<#:parallel-tests?>: Remove argument.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Move here docbook-xml and docbook-xsl from ...
[inputs]: ... here. Move libffi to ...
[propagated-inputs]: ... here.
[synopsis]: Modify.
[description]: Modify.
[license]: Change from x11 to expat.
---
 gnu/packages/freedesktop.scm | 87 +++++++++++++++++++++++++-----------
 1 file changed, 62 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 2357805125..975388efba 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -754,38 +754,75 @@ Python.")
 (define-public wayland
   (package
     (name "wayland")
-    (version "1.17.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://wayland.freedesktop.org/releases/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "194ibzwpdcn6fvk4xngr4bf5axpciwg2bj82fdvz88kfmjw13akj"))))
-    (build-system gnu-build-system)
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://wayland.freedesktop.org/releases/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:parallel-tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* '("man/wl_display_connect.xml"
+                              "publican/sources/Architecture.xml"
+                              "publican/sources/Author_Group.xml"
+                              "publican/sources/Book_Info.xml"
+                              "publican/sources/Client.xml"
+                              "publican/sources/Compositors.xml"
+                              "publican/sources/Foreword.xml"
+                              "publican/sources/Introduction.xml"
+                              "publican/sources/Preface.xml"
+                              "publican/sources/Protocol.xml"
+                              "publican/sources/Server.xml"
+                              "publican/sources/Wayland.xml"
+                              "publican/sources/Xwayland.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.5/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))
+                 (("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")))
+               (mkdir-p (string-append doc "/share"))
+               (rename-file
+                (string-append out "/share/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
+     `(("docbook-xml-4.2" ,docbook-xml-4.2)
+       ("docbook-xml" ,docbook-xml)
+       ("docbook-xsl" ,docbook-xsl)
+       ("dot" ,graphviz)
+       ("doxygen" ,doxygen)
        ("pkg-config" ,pkg-config)
        ("xmlto" ,xmlto)
        ("xsltproc" ,libxslt)))
     (inputs
-     `(("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)
-       ("expat" ,expat)
-       ("libffi" ,libffi)
-       ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
+     `(("expat" ,expat)
+       ("libxml2" ,libxml2)))
+    (propagated-inputs
+     `(("libffi" ,libffi)))
+    (synopsis "Core Wayland window system code and protocol")
+    (description "Wayland is a project to define a protocol for a compositor to
+talk to its clients as well as a library implementation of the protocol.  The
+compositor can be a standalone display server running on Linux kernel
+modesetting and evdev input devices, an X application, or a wayland client
+itself.  The clients can be traditional applications, X servers (rootless or
+fullscreen) or other display servers.")
     (home-page "https://wayland.freedesktop.org/")
-    (synopsis "Display server protocol")
-    (description
-     "Wayland is a protocol for a compositor to talk to its clients as well as
-a C library implementation of that protocol.  The compositor can be a standalone
-display server running on Linux kernel modesetting and evdev input devices, an X
-application, or a wayland client itself.  The clients can be traditional
-applications, X servers (rootless or fullscreen) or other display servers.")
-    (license license:x11)))
+    (license license:expat)))
 
 (define-public wayland-protocols
   (package
-- 
2.28.0


[-- Attachment #1.1.16: 0059-gnu-wayland-protocols-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 2260 bytes --]

From 032db56f8ab3587d4527c56bd3f8c0901ca1f595 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 9 Aug 2020 07:32:10 -0400
Subject: [PATCH 59/65] gnu: wayland-protocols: Update package definition.

* gnu/packages/freedesktop.scm (wayland-protocols) [version]: Update
to 1.20.
[source]<origin>[sha256]: Modify base32.
[description]: Modify.
---
 gnu/packages/freedesktop.scm | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 975388efba..0064acc088 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -827,22 +827,26 @@ fullscreen) or other display servers.")
 (define-public wayland-protocols
   (package
     (name "wayland-protocols")
-    (version "1.18")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://wayland.freedesktop.org/releases/"
-                    "wayland-protocols-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1cvl93h83ymbfhb567jv5gzyq08181w7c46rsw4xqqqpcvkvfwrx"))))
+    (version "1.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://wayland.freedesktop.org/releases/"
+         "wayland-protocols-" version ".tar.xz"))
+       (sha256
+        (base32 "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp"))))
     (build-system gnu-build-system)
-    (inputs
-     `(("wayland" ,wayland)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("wayland" ,wayland)))
     (synopsis "Wayland protocols")
-    (description "This package contains XML definitions of the Wayland protocols.")
+    (description "Wayland-Protocols contains Wayland protocols that add
+functionality not available in the Wayland core protocol.  Such protocols either
+add completely new functionality, or extend the functionality of some other
+protocol either in Wayland core, or some other protocol in wayland-protocols.")
     (home-page "https://wayland.freedesktop.org")
     (license license:expat)))
 
-- 
2.28.0


[-- Attachment #1.1.17: 0060-gnu-Add-eglexternalplatform.patch --]
[-- Type: text/x-patch, Size: 3238 bytes --]

From 4a9eb027bf23e24063dd23bffa1edc3b5da6e637 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sun, 9 Aug 2020 23:55:18 -0400
Subject: [PATCH 60/65] gnu: Add eglexternalplatform.

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

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 3a943461cc..400a2bdb41 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -91,6 +91,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -102,6 +103,57 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public eglexternalplatform
+  (package
+    (name "eglexternalplatform")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/NVIDIA/eglexternalplatform.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0lr5s2xa1zn220ghmbsiwgmx77l156wk54c7hybia0xpr9yr2nhb"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-pkgconfig
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "eglexternalplatform.pc"
+               (("/usr")
+                (assoc-ref outputs "out")))
+             #t))
+         (add-after 'install 'revise
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/include/EGL"))
+               (rename-file
+                (string-append out "/interface")
+                (string-append out "/include/EGL"))
+               (mkdir-p (string-append out "/share/pkgconfig"))
+               (rename-file
+                (string-append out "/eglexternalplatform.pc")
+                (string-append out "/share/pkgconfig/eglexternalplatform.pc"))
+               (for-each delete-file-recursively
+                         (list
+                          (string-append out "/samples")
+                          (string-append out "/COPYING")
+                          (string-append out "/README.md"))))
+             #t)))))
+    (synopsis "EGL External Platform interface")
+    (description "EGLExternalPlatform is an specification of the EGL External
+Platform interface for writing EGL platforms and their interactions with modern
+window systems on top of existing low-level EGL platform implementations.  This
+keeps window system implementation specifics out of EGL drivers by using
+application-facing EGL functions.")
+    (home-page "https://github.com/NVIDIA/eglexternalplatform")
+    (license license:expat)))
+
 (define-public mmm
   (package
     (name "mmm")
-- 
2.28.0


[-- Attachment #1.1.18: 0061-gnu-Add-egl-wayland.patch --]
[-- Type: text/x-patch, Size: 1807 bytes --]

From c45f292b09227203a37545a7d653852a3f1150bf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 10 Aug 2020 00:05:11 -0400
Subject: [PATCH 61/65] gnu: Add egl-wayland.

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

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 400a2bdb41..f1ddbb4151 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -154,6 +154,36 @@ application-facing EGL functions.")
     (home-page "https://github.com/NVIDIA/eglexternalplatform")
     (license license:expat)))
 
+(define-public egl-wayland
+  (package
+    (name "egl-wayland")
+    (version "1.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/NVIDIA/egl-wayland.git")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "09r6a69z75j3hb9751g3ap4gm1xn71aw3j7z0c7jns292cnaa76n"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("mesa" ,mesa)
+       ("wayland" ,wayland)))
+    (propagated-inputs
+     `(("eglexternalplatform" ,eglexternalplatform)))
+    (synopsis "EGLStream-based Wayland external platform")
+    (description "EGL-Wayland is an implementation of a EGL External Platform
+library to add client-side Wayland support to EGL on top of EGLDevice and
+EGLStream families of extensions.")
+    (home-page "https://github.com/NVIDIA/egl-wayland")
+    (license license:expat)))
+
 (define-public mmm
   (package
     (name "mmm")
-- 
2.28.0


[-- Attachment #1.1.19: 0062-gnu-Add-mozjs-68.patch --]
[-- Type: text/x-patch, Size: 4840 bytes --]

From ae436932c96b4f9f5308580de8999cca4a56b32b Mon Sep 17 00:00:00 2001
From: Kei Kebreau <kkebreau@posteo.net>
Date: Tue, 21 Apr 2020 11:10:24 -0400
Subject: [PATCH 62/65] gnu: Add mozjs-68.

* gnu/packages/gnuzilla.scm (mozjs-68): New variable.
---
 gnu/packages/gnuzilla.scm | 84 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 3bffe12577..4d732f92e4 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2019, 2020 Adrian Malacoda <malacoda@monarch-pass.net>
 ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -413,6 +414,89 @@ in C/C++.")
        ("pkg-config" ,pkg-config)
        ("python" ,python-2)))))
 
+(define-public mozjs-68
+  ;; No releases yet at <https://archive.mozilla.org/pub/spidermonkey/releases/>.
+  ;; While we could take a snapshot of the complete mozilla-esr60 repository at
+  ;; <https://treeherder.mozilla.org/#/jobs?repo=mozilla-esr68&filter-searchStr=sm-tc>,
+  ;; we take the Debian version instead, because it is easier to work with.
+  (package
+    (inherit mozjs-60)
+    (version "68.6.0-2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://salsa.debian.org/gnome-team/mozjs68.git")
+                    (commit (string-append "debian/" version))))
+              (file-name (git-file-name "mozjs" version))
+              (sha256
+               (base32
+                "1iwn19sni8pgkn2p1l4gj4skr2zvmrpl0cfgdknmvxfrvwyfb4dx"))))
+    (arguments
+     `(#:tests? #f ; FIXME: all tests pass, but then the check phase fails anyway.
+       #:test-target "check-jstests"
+       #:configure-flags
+       `("--enable-ctypes"
+         "--enable-optimize"
+         "--enable-readline"
+         "--enable-shared-js"
+         "--enable-system-ffi"
+         "--with-system-nspr"
+         "--with-system-zlib"
+         "--with-system-icu"
+         "--with-intl-api"
+         ;; This is important because without it gjs will segfault during the
+         ;; configure phase.  With jemalloc only the standalone mozjs console
+         ;; will work.
+         "--disable-jemalloc"
+         ;; We must specify the clang paths manually, because otherwise the
+         ;; Mozilla build system looks in the directories returned by
+         ;; llvm-config --bindir and llvm-config --libdir, which return paths
+         ;; in the llvm package where clang is not found.
+         ,(string-append "--with-clang-path="
+                         (assoc-ref %build-inputs "clang")
+                         "/bin/clang")
+         ,(string-append "--with-libclang-path="
+                         (assoc-ref %build-inputs "clang")
+                         "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key inputs outputs configure-flags #:allow-other-keys)
+             ;; The configure script does not accept environment variables as
+             ;; arguments.  It also must be run from a different directory,
+             ;; but not the root directory either.
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir "run-configure-from-here")
+               (chdir "run-configure-from-here")
+               (setenv "SHELL" (which "sh"))
+               (setenv "CONFIG_SHELL" (which "sh"))
+               (setenv "AUTOCONF" (string-append (assoc-ref inputs "autoconf")
+                                                 "/bin/autoconf"))
+
+               (apply invoke "../js/src/configure"
+                      (cons (string-append "--prefix=" out)
+                            configure-flags))
+               #t)))
+         (add-after 'unpack 'disable-broken-tests
+           (lambda _
+             ;; This test assumes that /bin exists and contains certain
+             ;; executables.
+             (delete-file "js/src/tests/shell/os.js")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf-2.13)    ; required for "--localdir" flag to work
+       ("automake" ,automake)
+       ("which" ,which)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)
+       ("python-2" ,python-2)
+       ("rust" ,rust)
+       ("cargo" ,rust "cargo")
+       ("rust-cbindgen" ,rust-cbindgen)
+       ("llvm" ,llvm)
+       ("clang" ,clang)))))
+
 (define mozilla-compare-locales
   (origin
     (method hg-fetch)
-- 
2.28.0


[-- Attachment #1.1.20: 0063-gnu-gjs-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3188 bytes --]

From 004c8bbf589b502dfbb36c7d33ddfc76a440ab20 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 11 Aug 2020 06:21:31 -0400
Subject: [PATCH 63/65] gnu: gjs: Update package definition.

* gnu/packages/gnome.scm (gjs) [version]: Update to 1.64.4.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from glib-or-gtk to meson.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['pre-check]: Modify phase.
[propagated-inputs]: Replace mozjs-60 with mozjs-68.
---
 gnu/packages/gnome.scm | 25 ++++++++-----------------
 1 file changed, 8 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9469c0a1f2..dfb65826fc 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8385,7 +8385,7 @@ configuration program to choose applications starting on login.")
 (define-public gjs
   (package
     (name "gjs")
-    (version "1.58.8")
+    (version "1.64.4")
     (source
      (origin
        (method url-fetch)
@@ -8394,14 +8394,13 @@ configuration program to choose applications starting on login.")
                        (version-major+minor version) "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32 "10gkmxbhwpnq27db0gkn25b0gw28n05msjkzwjg3sdhpdisfpcvz"))))
-    (build-system glib-or-gtk-build-system)
+        (base32 "0k6l2qc2vkws34zrgdhl57qxf0jjkar2iziz6qn4n1w7va73mk53"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:configure-flags
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
        (list
-        "--enable-code-coverage"
-        "--enable-asan"
-        "--enable-ubsan")
+        "-Dinstalled_tests=false")
        #:phases
        (modify-phases %standard-phases
          (add-before
@@ -8412,17 +8411,9 @@ configuration program to choose applications starting on login.")
              (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
-     `(("dbus-launch" ,dbus)
+     `(("dbus" ,dbus)
        ("dconf" ,dconf)
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
@@ -8440,7 +8431,7 @@ configuration program to choose applications starting on login.")
      `(("cairo" ,cairo)
        ("glib" ,glib)
        ("libffi" ,libffi)
-       ("mozjs" ,mozjs-60)))
+       ("mozjs" ,mozjs-68)))
     (synopsis "Javascript bindings for GNOME")
     (description "Gjs is a javascript binding for GNOME.  It's mainly based on
 spidermonkey javascript engine and the GObject introspection framework.")
-- 
2.28.0


[-- Attachment #1.1.21: 0064-gnu-mutter-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 11980 bytes --]

From ae30bf6af1397b1b3f7b43ab6435f637fe6d42a7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 10 Aug 2020 02:07:39 -0400
Subject: [PATCH 64/65] gnu: mutter: Update package definition.

* gnu/packages/gnome.scm (mutter) [version]: Update to 3.36.4.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:configure-flags>[-Dgles2_libname]: New flag.
[-Degl_device]: New flag.
[-Dwayland_eglstream]: New flag.
[-Dinstalled_tests]: New flag.
[-Dxwayland_grab_default_access_rules]: New flag.
[-Dxwayland_initfd]: New flag.
[-Dc_link_args]: Modify flag.
<#:phases>['fix-build-with-mesa-20]: Remove phase.
[native-inputs]: Add adwaita-icon-theme, python-wrapper and ruby.
Remove autoconf, automake and libtool.
[propagated-inputs]: Add graphene, wayland and libxi. Remove xinput.
Move gdk-pixbuf+svg, libinput, eudev, libxcomposite, libxdamage, libxext,
libxkbcommon and libxrandr to ...
[inputs]: ... here. Add dbus, freetype, fribidi, libdrm, sysprof, egl-wayland,
wayland-protocols, libxau, libxcb, libxcursor, libxinerama and libxrender.
Remove zenity.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 216 +++++++++++++++++++++++------------------
 1 file changed, 122 insertions(+), 94 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index dfb65826fc..b9689876df 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -118,6 +118,7 @@
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages geo)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gstreamer)
@@ -8618,114 +8619,141 @@ in commandline and shell scripts.")
 (define-public mutter
   (package
     (name "mutter")
-    (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
-                "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
-    ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
-    ;; versions of cogl and clutter.  As a result, many of the inputs,
-    ;; propagated-inputs, and configure flags used in cogl and clutter are
-    ;; needed here as well.
+    (version "3.36.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0p3jglw6f2h67kwk89qz1rz23y25lip8m2mp2xshf2vrg4a930as"))))
     (build-system meson-build-system)
     (arguments
-     '(;; XXX: All mutter tests fail with the following error:
-       ;;   Settings schema 'org.gnome.mutter' is not installed
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       ;; Tests are to be enabled.
        #:tests? #f
-       #:glib-or-gtk? #t
        #:configure-flags
-       ;; TODO: Enable profiler when Sysprof is packaged.
-       (list "-Dprofiler=false"
-             ;; Otherwise, the RUNPATH will lack the final path component.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib:"
-                            (assoc-ref %outputs "out") "/lib/mutter-5")
-
-             ;; The following flags are needed for the bundled clutter
-             (string-append "-Dxwayland_path="
-                            (assoc-ref %build-inputs "xorg-server-xwayland")
-                            "/bin/Xwayland")
-
-             ;; the remaining flags are needed for the bundled cogl
-             (string-append "-Dopengl_libname="
-                            (assoc-ref %build-inputs "mesa")
-                            "/lib/libGL.so"))
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'fix-build-with-mesa-20
-                    (lambda _
-                      ;; Mimic upstream commit a444a4c5f58ea516ad for
-                      ;; compatibility with Mesa 20.  Remove for 3.36.
-                      (substitute* '("src/backends/meta-egl-ext.h"
-                                     "src/backends/meta-egl.c"
-                                     "src/backends/meta-egl.h")
-                        (("#include <EGL/eglext\\.h>" all)
-                         (string-append all "\n#include <EGL/eglmesaext.h>")))
-                      (substitute* "cogl/cogl/meson.build"
-                        (("#include <EGL/eglext\\.h>" all)
-                         (string-append all "\\n#include <EGL/eglmesaext.h>")))
-                      #t)))))
+       (list
+        (string-append "-Dopengl_libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGL.so")
+        (string-append "-Dgles2_libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGLESv2.so")
+        "-Degl_device=true"
+        "-Dwayland_eglstream=true"
+        "-Dinstalled_tests=false"
+        (string-append "-Dxwayland_path="
+                       (assoc-ref %build-inputs "xorg-server-xwayland")
+                       "/bin/Xwayland")
+        "-Dxwayland_grab_default_access_rules=gnome-boxes"
+        "-Dxwayland_initfd=enabled"
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/mutter-6"))))
+;;       #:phases
+;;       (modify-phases %standard-phases
+;;         (delete 'check)
+;;         (add-after 'install 'custom-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))
+;;             ;; Tests look for $XDG_DATA_DIRS.
+;;             (setenv "XDG_DATA_DIRS"
+;;                     (string-append (getenv "XDG_DATA_DIRS")
+;;                                    ":"
+;;                                    (assoc-ref %outputs "out")
+;;                                    "/share"))
+;;             ;; For missing '/etc/machine-id'.
+;;             (setenv "DBUS_FATAL_WARNINGS" "0")
+;;             (setenv "XCURSOR_THEME" "Adwaita")
+;;             (setenv "XCURSOR_PATH"
+;;                     (string-append (assoc-ref %build-inputs "adwaita-icon-theme")
+;;                                    "/share"))
+;;             (invoke "dbus-launch" "ninja" "test")
+;;             #t)))))
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server-for-tests)
-       ;; For git build
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
-    (propagated-inputs
-     `(;; libmutter.pc refers to these:
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
-       ("atk" ,atk)
-       ("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("json-glib" ,json-glib)
-       ("libinput" ,libinput)
-       ("libx11" ,libx11)
-       ("libxcomposite" ,libxcomposite)
-       ("libxdamage" ,libxdamage)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libxrandr" ,libxrandr)
-       ("mesa" ,mesa)
-       ("pango" ,pango)
-       ("udev" ,eudev)
-       ("xinput" ,xinput)))
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("elogind" ,elogind)
+     `(("dbus" ,dbus)
+       ("freetype" ,freetype)
+       ("fribidi" ,fribidi)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
-       ("libcanberra-gtk" ,libcanberra)
-       ("libgudev" ,libgudev)
-       ("libice" ,libice)
-       ("libsm" ,libsm)
+       ("gudev" ,libgudev)
+       ("ice" ,libice)
+       ("libcanberra" ,libcanberra)
+       ("libdrm" ,libdrm)
+       ("libelogind" ,elogind)
+       ("libinput" ,libinput)
+       ("libpipewire" ,pipewire)
+       ("libstartup-notification" ,startup-notification)
+       ("libudev" ,eudev)
        ("libwacom" ,libwacom)
-       ("libxkbfile" ,libxkbfile)
-       ("libxrandr" ,libxrandr)
-       ("libxtst" ,libxtst)
-       ("pipewire" ,pipewire)
-       ("startup-notification" ,startup-notification)
-       ("upower-glib" ,upower)
+       ("sm" ,libsm)
+       ("sysprof" ,sysprof)
+       ("upower" ,upower)
+       ("wayland-eglstream-protocols" ,egl-wayland)
+       ("wayland-protocols" ,wayland-protocols)
+       ("xau" ,libxau)
+       ("xcb" ,libxcb)
+       ("xcomposite" ,libxcomposite)
+       ("xcursor" ,libxcursor)
+       ("xdamage" ,libxdamage)
+       ("xext" ,libxext)
+       ("xinerama" ,libxinerama)
+       ("xkbcommon" ,libxkbcommon)
+       ("xkbfile" ,libxkbfile)
        ("xkeyboard-config" ,xkeyboard-config)
        ("xorg-server-xwayland" ,xorg-server-xwayland)
-       ("zenity" ,zenity)))
-    (synopsis "Window and compositing manager")
-    (home-page "https://www.gnome.org")
-    (description
-     "Mutter is a window and compositing manager that displays and manages your
-desktop via OpenGL.  Mutter combines a sophisticated display engine using the
-Clutter toolkit with solid window-management logic inherited from the Metacity
-window manager.")
+       ("xrandr" ,libxrandr)
+       ("xrender" ,libxrender)
+       ("xtst" ,libxtst)))
+    (propagated-inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("glib" ,glib)
+       ("graphene" ,graphene)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
+       ("mesa" ,mesa)
+       ("pango" ,pango)
+       ("wayland" ,wayland)
+       ("x11" ,libx11)
+       ("xfixes" ,libxfixes)
+       ("xi" ,libxi)))
+    (synopsis "Wayland display server and X11 window manager and compositor library")
+    (description "Mutter, when used as a Wayland display server, it runs on top
+of KMS and libinput.  It implements the compositor side of the Wayland core
+protocol as well as various protocol extensions.  It also has functionality
+related to running X11 applications using Xwayland.
+Mutter, when used on top of Xorg, it acts as a X11 window manager and
+compositing manager.
+Mutter contains functionality related to, among other things, window management,
+window compositing, focus tracking, workspace management, keybindings and
+monitor configuration.")
+    (home-page "https://wiki.gnome.org/Projects/Mutter")
     (license license:gpl2+)))
 
 (define-public gnome-online-accounts
-- 
2.28.0


[-- Attachment #1.1.22: 0065-gnu-gdm-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 19315 bytes --]

From 17b9cce3c19b092225759e6a1b51e7bcf330a4ce Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 11 Aug 2020 04:36:54 -0400
Subject: [PATCH 65/65] gnu: gdm: Update package definition.

* gnu/packages/gnome.scm (gdm) [version]: Update to 3.36.3.
[source]<origin>[sha256]: Modify base32.
[patches]<search-patches>[gdm-default-session.patch]: Remove patch.
[outputs]: New output "help".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-gdm-xsession]: New flag.
[--enable-ipv6]: New flag.
[--with-help-dir]: New flag.
[--with-systemdsystemunitdir]: New flag.
[--with-default-path]: Modify flag.
[--with-xevie]: New flag.
[--without-plymouth]: Remove flag.
[--localstatedir]: Remove flag.
[--sbindir]: Remove flag.
<#:phases>['pre-configure]: Modify phase.
['install-placeholder-desktop-entry]: Remove phase.
['link-autostart-files]: Remove phase.
[native-inputs]: Add check.
[inputs]: Add glib, audit, keyutils, libice, libselinux, plymouth,
tcp-wrappers, libx11, libxau, libxcb, libxdmcp, libext and libxinerama.
Remove check.
[synopsis]: Modify.
[description]: Modify.

* gnu/packages/patches/gdm-default-session.patch: Remove file.

* gnu/local.mk (gdm-default-session.patch): Remove reference.
---
 gnu/local.mk                                  |   1 -
 gnu/packages/gnome.scm                        | 241 ++++++------------
 .../patches/gdm-default-session.patch         |  89 -------
 3 files changed, 75 insertions(+), 256 deletions(-)
 delete mode 100644 gnu/packages/patches/gdm-default-session.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 9ff617a1ac..ec0b6defa8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -973,7 +973,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/gd-fix-tests-on-i686.patch		\
   %D%/packages/patches/gd-brect-bounds.patch			\
   %D%/packages/patches/gdb-hurd.patch				\
-  %D%/packages/patches/gdm-default-session.patch		\
   %D%/packages/patches/gegl-mrg.patch			\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b9689876df..18013f317e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -92,6 +92,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpio)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -9546,172 +9547,69 @@ libxml2.")
 (define-public gdm
   (package
     (name "gdm")
-    (version "3.34.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
-              (patches (search-patches "gdm-default-session.patch"))))
+    (version "3.36.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "10byz8jwqv1qpvjj8wd36vfb8pbh9g7pchsc1gbwplf0rchbdyrv"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:configure-flags
-       `("--without-plymouth"
-         "--disable-systemd-journal"
-
-         ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
-         ;; instead of having to replace it (i.e., stopping the mingetty
-         ;; service for TTY 1 before starting GDM).
-         "--with-initial-vt=7"
-
-         ;; Use '/etc/environment' for locale settings instead of the
-         ;; systemd-specific '/etc/locale.conf'.
-         "--with-lang-file=/etc/environment"
-
-         ,(string-append "--with-udevdir="
-                         (assoc-ref %outputs "out") "/lib/udev")
-
-         "--localstatedir=/var"
-         ,(string-append "--with-default-path="
-                         (string-join '("/run/setuid-programs"
-                                        "/run/current-system/profile/bin"
-                                        "/run/current-system/profile/sbin")
-                                      ":"))
-         ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
-         ;; XDG_DATA_DIRS so that it finds its schemas.
-         "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gdm-xsession"
+        "--disable-systemd-journal"
+        "--enable-ipv6"
+        (string-append "--with-help-dir="
+                       (assoc-ref %outputs "help")
+                       "/share/help")
+        (string-append "--with-udevdir="
+                       (assoc-ref %outputs "out")
+                       "/lib/udev")
+        (string-append "--with-systemdsystemunitdir="
+                       (getcwd))
+        (string-append "--with-default-path="
+                       "/run/setuid-programs"
+                       ":"
+                       "/run/current-system/profile/bin"
+                       ":"
+                       "/run/current-system/profile/sbin")
+        "--with-lang-file=/etc/environment"
+        "--with-xevie"
+        "--with-initial-vt=7")
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'configure 'pre-configure
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            ;; We don't have <systemd/sd-daemon.h>.
-            (substitute* '("common/gdm-log.c"
-                           "daemon/gdm-server.c"
-                           "daemon/gdm-session-worker.c"
-                           "daemon/gdm-session-worker-job.c")
-              (("#include <systemd/sd-daemon\\.h>") ""))
-            ;; Use elogind for sd-login.
-            (substitute* '("common/gdm-common.c"
-                           "daemon/gdm-local-display-factory.c"
-                           "daemon/gdm-manager.c"
-                           "libgdm/gdm-user-switching.c")
-              (("#include <systemd/sd-login\\.h>")
-               "#include <elogind/sd-login.h>"))
-            ;; Check for elogind.
-            (substitute* '("configure")
-              (("libsystemd")
-               "libelogind"))
-            ;; Look for system-installed sessions in
-            ;; /run/current-system/profile/share.
-            (substitute* '("libgdm/gdm-sessions.c"
-                           "daemon/gdm-session.c"
-                           "daemon/gdm-display.c"
-                           "daemon/gdm-launch-environment.c")
-              (("DATADIR \"/x")
-               "\"/run/current-system/profile/share/x")
-              (("DATADIR \"/wayland")
-               "\"/run/current-system/profile/share/wayland")
-              (("DATADIR \"/gnome")
-               "\"/run/current-system/profile/share/gnome"))
-            (let ((propagate '("GDM_CUSTOM_CONF"
-                               "GDM_DBUS_DAEMON"
-                               "GDM_X_SERVER"
-                               "GDM_X_SESSION"
-                               ;; XXX: Remove this once GNOME Shell is
-                               ;; a dependency of GDM.
-                               "XDG_DATA_DIRS")))
-              (substitute* "daemon/gdm-session.c"
-                (("set_up_session_environment \\(self\\);")
-                 (apply string-append
-                        "set_up_session_environment (self);\n"
-                        (map (lambda (name)
-                               (string-append
-                                "gdm_session_set_environment_variable "
-                                "(self, \"" name "\","
-                                "g_getenv (\"" name "\"));\n"))
-                             propagate)))))
-            ;; Find the configuration file using an environment variable.
-            (substitute* '("common/gdm-settings.c")
-              (("GDM_CUSTOM_CONF")
-               (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
-                              " ? g_getenv(\"GDM_CUSTOM_CONF\")"
-                              " : GDM_CUSTOM_CONF)")))
-            ;; Use service-supplied path to X.
-            (substitute* '("daemon/gdm-server.c")
-              (("\\(X_SERVER X_SERVER_ARG_FORMAT")
-               "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
-            (substitute* '("daemon/gdm-wayland-session.c"
-                           "daemon/gdm-x-session.c")
-              (("\"dbus-daemon\"")
-               "g_getenv (\"GDM_DBUS_DAEMON\")")
-              (("X_SERVER")
-               "g_getenv (\"GDM_X_SERVER\")")
-              (("GDMCONFDIR \"/Xsession\"")
-               "g_getenv (\"GDM_X_SESSION\")"))
-            ;; Use an absolute path for GNOME Session.
-            (substitute* "daemon/gdm-launch-environment.c"
-              (("\"gnome-session\"")
-               (string-append "\"" (assoc-ref inputs "gnome-session")
-                              "/bin/gnome-session\"")))
-            ;; Do not automatically select the placeholder session.
-            (substitute* "daemon/gdm-session.c"
-              (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
-               (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
-                              "(g_strcmp0(search_dirs[i], \""
-                              (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
-                              "\") == 0 && "
-                              "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
-              (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
-               "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
-            #t))
-         ;; GDM requires that there be at least one desktop entry
-         ;; file.  This phase installs a hidden one that simply
-         ;; fails.  This enables users to use GDM with a
-         ;; '~/.xsession' script with no other desktop entry files.
-         ;; See <https://bugs.gnu.org/35068>.
-         (add-after 'install 'install-placeholder-desktop-entry
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (sessions (string-append out "/share/gdm/BuiltInSessions"))
-                    (fail (string-append sessions "/fail.desktop")))
-               (mkdir-p sessions)
-               (with-output-to-file fail
-                 (lambda ()
-                   (for-each
-                    display
-                    '("[Desktop Entry]\n"
-                      "Encoding=UTF-8\n"
-                      "Type=Application\n"
-                      "Name=Fail\n"
-                      "Comment=This session fails immediately.\n"
-                      "NoDisplay=true\n"
-                      "Exec=false\n"))))
-               #t)))
-         ;; GDM needs GNOME Session to run these applications.  We link
-         ;; their autostart files in `share/gdm/greeter/autostart'
-         ;; because GDM explicitly tells GNOME Session to look there.
-         ;;
-         ;; XXX: GNOME Shell should be linked here too, but currently
-         ;; GNOME Shell depends on GDM.
-         (add-after 'install 'link-autostart-files
+         (add-before 'configure 'pre-configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (autostart (string-append out "/share/gdm/"
-                                              "greeter/autostart"))
-                    (settings (assoc-ref inputs "gnome-settings-daemon")))
-               (mkdir-p autostart)
-               (with-directory-excursion autostart
-                 (for-each (lambda (desktop)
-                             (symlink desktop (basename desktop)))
-                           (find-files (string-append settings "/etc/xdg"))))
-               #t))))))
+             ;; We don't have <systemd/sd-daemon.h>.
+             (substitute* '("common/gdm-log.c"
+                            "daemon/gdm-server.c"
+                            "daemon/gdm-session-worker.c"
+                            "daemon/gdm-session-worker-job.c")
+               (("#include <systemd/sd-daemon\\.h>")
+                ""))
+             ;; Use elogind for sd-login.
+             (substitute* '("common/gdm-common.c"
+                            "daemon/gdm-local-display-factory.c"
+                            "daemon/gdm-manager.c"
+                            "libgdm/gdm-user-switching.c")
+               (("#include <systemd/sd-login\\.h>")
+                "#include <elogind/sd-login.h>"))
+             ;; Check for elogind.
+             (substitute* '("configure")
+               (("libsystemd")
+                "libelogind"))
+             #t)))))
     (native-inputs
-     `(("dconf" ,dconf)
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+     `(("check" ,check)
+       ("dconf" ,dconf)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
@@ -9719,19 +9617,30 @@ libxml2.")
        ("xmllint" ,libxml2)))
     (inputs
      `(("accountsservice" ,accountsservice)
-       ("check" ,check) ; for testing
        ("elogind" ,elogind)
+       ("glib" ,glib)
        ("gnome-session" ,gnome-session)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
        ("gtk+" ,gtk+)
+       ("ice" ,libice)
        ("iso-codes" ,iso-codes)
+       ("libaudit" ,audit)
        ("libcanberra" ,libcanberra)
-       ("linux-pam" ,linux-pam)))
-    (synopsis "Display manager for GNOME")
+       ("libkeyutils" ,keyutils)
+       ("libselinux" ,libselinux)
+       ("linux-pam" ,linux-pam)
+       ("plymouth" ,plymouth)
+       ("tcp-wrappers" ,tcp-wrappers)
+       ("x11" ,libx11)
+       ("xau" ,libxau)
+       ("xcb" ,libxcb)
+       ("xdmcp" ,libxdmcp)
+       ("xext" ,libxext)
+       ("xinerama" ,libxinerama)))
+    (synopsis "GNOME Display Manager")
+    (description "GDM is a program that manages graphical display servers and
+handles graphical user logins.")
     (home-page "https://wiki.gnome.org/Projects/GDM/")
-    (description
-     "GNOME Display Manager is a system service that is responsible for
-providing graphical log-ins and managing local and remote displays.")
     (license license:gpl2+)))
 
 (define-public libgtop
diff --git a/gnu/packages/patches/gdm-default-session.patch b/gnu/packages/patches/gdm-default-session.patch
deleted file mode 100644
index 9ab2829cdb..0000000000
--- a/gnu/packages/patches/gdm-default-session.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-This patch ensures '.desktop' files are picked up in the system profile
-and not in the directories listed in $XDG_DATA_DIRS.  The latter includes
-'gnome-session.desktop', which should be used if it's in
-/run/current-system/profile, and only then.
-
-Fixes <https://bugs.gnu.org/37831>.
-
-diff -ur a/daemon/gdm-session.c b/daemon/gdm-session.c
---- a/daemon/gdm-session.c	2019-09-25 10:40:24.000000000 -0400
-+++ b/daemon/gdm-session.c	2020-04-18 18:30:02.671856808 -0400
-@@ -348,24 +348,18 @@
-         GArray *search_array = NULL;
-         char **search_dirs;
-         int i;
--        const gchar * const *system_data_dirs = g_get_system_data_dirs ();
- 
-         static const char *x_search_dirs[] = {
-                 "/etc/X11/sessions/",
-                 DMCONFDIR "/Sessions/",
-                 DATADIR "/gdm/BuiltInSessions/",
--                DATADIR "/xsessions/",
-+                "/run/current-system/profile/share/xsessions/"
-         };
- 
-         static const char *wayland_search_dir = DATADIR "/wayland-sessions/";
- 
-         search_array = g_array_new (TRUE, TRUE, sizeof (char *));
- 
--        for (i = 0; system_data_dirs[i]; i++) {
--                gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
--                g_array_append_val (search_array, dir);
--        }
--
-         g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
- 
- #ifdef ENABLE_WAYLAND_SUPPORT
-@@ -373,16 +367,7 @@
- #ifdef ENABLE_USER_DISPLAY_SERVER
-                 g_array_prepend_val (search_array, wayland_search_dir);
- 
--                for (i = 0; system_data_dirs[i]; i++) {
--                        gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                        g_array_insert_val (search_array, i, dir);
--                }
- #else
--                for (i = 0; system_data_dirs[i]; i++) {
--                        gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                        g_array_append_val (search_array, dir);
--                }
--
-                 g_array_append_val (search_array, wayland_search_dir);
- #endif
-         }
-diff -ur a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
---- a/libgdm/gdm-sessions.c	2019-10-07 04:53:35.000000000 -0400
-+++ b/libgdm/gdm-sessions.c	2020-04-18 18:31:42.491348691 -0400
-@@ -245,19 +245,12 @@
-                 "/etc/X11/sessions/",
-                 DMCONFDIR "/Sessions/",
-                 DATADIR "/gdm/BuiltInSessions/",
--                DATADIR "/xsessions/",
-+                "/run/current-system/profile/share/xsessions/"
-         };
- 
-         names_seen_before = g_hash_table_new (g_str_hash, g_str_equal);
-         xorg_search_array = g_ptr_array_new_with_free_func (g_free);
- 
--        const gchar * const *system_data_dirs = g_get_system_data_dirs ();
--
--        for (i = 0; system_data_dirs[i]; i++) {
--                session_dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
--                g_ptr_array_add (xorg_search_array, session_dir);
--        }
--
-         for (i = 0; i < G_N_ELEMENTS (xorg_search_dirs); i++) {
-                 g_ptr_array_add (xorg_search_array, g_strdup (xorg_search_dirs[i]));
-         }
-@@ -269,11 +262,6 @@
- 
-         wayland_search_array = g_ptr_array_new_with_free_func (g_free);
- 
--        for (i = 0; system_data_dirs[i]; i++) {
--                session_dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                g_ptr_array_add (wayland_search_array, session_dir);
--        }
--
-         for (i = 0; i < G_N_ELEMENTS (wayland_search_dirs); i++) {
-                 g_ptr_array_add (wayland_search_array, g_strdup (wayland_search_dirs[i]));
-         }
-- 
2.28.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-11 10:38                                                                 ` Raghav Gururajan
@ 2020-08-12  4:05                                                                   ` Raghav Gururajan
  2020-08-12  4:11                                                                     ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-08-12  4:05 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

> I will send you the patch for gnome-shell shortly.

Please find the attached patch for gnome-shell. Also I have attached
revised patches for mutter and gdm.

Regards,
RG.

[-- Attachment #1.1.2: 0064-gnu-mutter-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 11901 bytes --]

From 4956005520e03defb583fbad14c307c552b59d12 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 10 Aug 2020 02:07:39 -0400
Subject: [PATCH 64/66] gnu: mutter: Update package definition.

* gnu/packages/gnome.scm (mutter) [version]: Update to 3.36.5.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:configure-flags>[-Dgles2_libname]: New flag.
[-Degl_device]: New flag.
[-Dwayland_eglstream]: New flag.
[-Dinstalled_tests]: New flag.
[-Dxwayland_grab_default_access_rules]: New flag.
[-Dc_link_args]: Modify flag.
<#:tests?>: Remove argument.
<#:phases>['fix-build-with-mesa-20]: Remove phase.
['check]: Remove phase.
['custom-check]: New phase.
[native-inputs]: Add adwaita-icon-theme, python-wrapper and ruby.
Remove autoconf, automake and libtool.
[propagated-inputs]: Add graphene, wayland and libxi. Remove xinput.
Move gdk-pixbuf+svg, libinput, eudev, libxcomposite, libxdamage, libxext,
libxkbcommon and libxrandr to ...
[inputs]: ... here. Add dbus, freetype, fribidi, libdrm, sysprof, egl-wayland,
wayland-protocols, libxau, libxcb, libxcursor, libxinerama and libxrender.
Remove zenity.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 215 +++++++++++++++++++++++------------------
 1 file changed, 120 insertions(+), 95 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index dfb65826fc..81e0cce794 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -118,6 +118,7 @@
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages geo)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gstreamer)
@@ -8618,114 +8619,138 @@ in commandline and shell scripts.")
 (define-public mutter
   (package
     (name "mutter")
-    (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
-                "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
-    ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
-    ;; versions of cogl and clutter.  As a result, many of the inputs,
-    ;; propagated-inputs, and configure flags used in cogl and clutter are
-    ;; needed here as well.
+    (version "3.36.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1py7sqrpvg2qvswxclshysx7hd9jk65i6cwqsagd6rg6rnjhblp0"))))
     (build-system meson-build-system)
     (arguments
-     '(;; XXX: All mutter tests fail with the following error:
-       ;;   Settings schema 'org.gnome.mutter' is not installed
-       #:tests? #f
-       #:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags
-       ;; TODO: Enable profiler when Sysprof is packaged.
-       (list "-Dprofiler=false"
-             ;; Otherwise, the RUNPATH will lack the final path component.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib:"
-                            (assoc-ref %outputs "out") "/lib/mutter-5")
-
-             ;; The following flags are needed for the bundled clutter
-             (string-append "-Dxwayland_path="
-                            (assoc-ref %build-inputs "xorg-server-xwayland")
-                            "/bin/Xwayland")
-
-             ;; the remaining flags are needed for the bundled cogl
-             (string-append "-Dopengl_libname="
-                            (assoc-ref %build-inputs "mesa")
-                            "/lib/libGL.so"))
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'fix-build-with-mesa-20
-                    (lambda _
-                      ;; Mimic upstream commit a444a4c5f58ea516ad for
-                      ;; compatibility with Mesa 20.  Remove for 3.36.
-                      (substitute* '("src/backends/meta-egl-ext.h"
-                                     "src/backends/meta-egl.c"
-                                     "src/backends/meta-egl.h")
-                        (("#include <EGL/eglext\\.h>" all)
-                         (string-append all "\n#include <EGL/eglmesaext.h>")))
-                      (substitute* "cogl/cogl/meson.build"
-                        (("#include <EGL/eglext\\.h>" all)
-                         (string-append all "\\n#include <EGL/eglmesaext.h>")))
-                      #t)))))
+       (list
+        (string-append "-Dopengl_libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGL.so")
+        (string-append "-Dgles2_libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGLESv2.so")
+        "-Degl_device=true"
+        "-Dwayland_eglstream=true"
+        "-Dinstalled_tests=false"
+        (string-append "-Dxwayland_path="
+                       (assoc-ref %build-inputs "xorg-server-xwayland")
+                       "/bin/Xwayland")
+        "-Dxwayland_grab_default_access_rules=gnome-boxes"
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/mutter-6"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'check)
+         (add-after 'install 'custom-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))
+             ;; Tests look for $XDG_DATA_DIRS.
+             (setenv "XDG_DATA_DIRS"
+                     (string-append (getenv "XDG_DATA_DIRS")
+                                    ":"
+                                    (assoc-ref %outputs "out")
+                                    "/share"))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             ;; Tests look for cursors.
+             (setenv "XCURSOR_PATH"
+                     (string-append (assoc-ref %build-inputs "adwaita-icon-theme")
+                                    "/share/icons"))
+             (invoke "dbus-launch" "ninja" "test")
+             #t)))))
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server-for-tests)
-       ;; For git build
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
-    (propagated-inputs
-     `(;; libmutter.pc refers to these:
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
-       ("atk" ,atk)
-       ("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("json-glib" ,json-glib)
-       ("libinput" ,libinput)
-       ("libx11" ,libx11)
-       ("libxcomposite" ,libxcomposite)
-       ("libxdamage" ,libxdamage)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libxrandr" ,libxrandr)
-       ("mesa" ,mesa)
-       ("pango" ,pango)
-       ("udev" ,eudev)
-       ("xinput" ,xinput)))
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("elogind" ,elogind)
+     `(("dbus" ,dbus)
+       ("freetype" ,freetype)
+       ("fribidi" ,fribidi)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
-       ("libcanberra-gtk" ,libcanberra)
-       ("libgudev" ,libgudev)
-       ("libice" ,libice)
-       ("libsm" ,libsm)
+       ("gudev" ,libgudev)
+       ("ice" ,libice)
+       ("libcanberra" ,libcanberra)
+       ("libdrm" ,libdrm)
+       ("libelogind" ,elogind)
+       ("libinput" ,libinput)
+       ("libpipewire" ,pipewire)
+       ("libstartup-notification" ,startup-notification)
+       ("libudev" ,eudev)
        ("libwacom" ,libwacom)
-       ("libxkbfile" ,libxkbfile)
-       ("libxrandr" ,libxrandr)
-       ("libxtst" ,libxtst)
-       ("pipewire" ,pipewire)
-       ("startup-notification" ,startup-notification)
-       ("upower-glib" ,upower)
+       ("sm" ,libsm)
+       ("sysprof" ,sysprof)
+       ("upower" ,upower)
+       ("wayland-eglstream-protocols" ,egl-wayland)
+       ("wayland-protocols" ,wayland-protocols)
+       ("xau" ,libxau)
+       ("xcb" ,libxcb)
+       ("xcomposite" ,libxcomposite)
+       ("xcursor" ,libxcursor)
+       ("xdamage" ,libxdamage)
+       ("xext" ,libxext)
+       ("xinerama" ,libxinerama)
+       ("xkbcommon" ,libxkbcommon)
+       ("xkbfile" ,libxkbfile)
        ("xkeyboard-config" ,xkeyboard-config)
        ("xorg-server-xwayland" ,xorg-server-xwayland)
-       ("zenity" ,zenity)))
-    (synopsis "Window and compositing manager")
-    (home-page "https://www.gnome.org")
-    (description
-     "Mutter is a window and compositing manager that displays and manages your
-desktop via OpenGL.  Mutter combines a sophisticated display engine using the
-Clutter toolkit with solid window-management logic inherited from the Metacity
-window manager.")
+       ("xrandr" ,libxrandr)
+       ("xrender" ,libxrender)
+       ("xtst" ,libxtst)))
+    (propagated-inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("glib" ,glib)
+       ("graphene" ,graphene)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
+       ("mesa" ,mesa)
+       ("pango" ,pango)
+       ("wayland" ,wayland)
+       ("x11" ,libx11)
+       ("xfixes" ,libxfixes)
+       ("xi" ,libxi)))
+    (synopsis "Wayland display server and X11 window manager and compositor library")
+    (description "Mutter, when used as a Wayland display server, it runs on top
+of KMS and libinput.  It implements the compositor side of the Wayland core
+protocol as well as various protocol extensions.  It also has functionality
+related to running X11 applications using Xwayland.
+Mutter, when used on top of Xorg, it acts as a X11 window manager and
+compositing manager.
+Mutter contains functionality related to, among other things, window management,
+window compositing, focus tracking, workspace management, keybindings and
+monitor configuration.")
+    (home-page "https://wiki.gnome.org/Projects/Mutter")
     (license license:gpl2+)))
 
 (define-public gnome-online-accounts
-- 
2.28.0


[-- Attachment #1.1.3: 0065-gnu-gdm-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 19315 bytes --]

From 4b0704166c3ba4555752e57a698fec8b5dae2bcb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 11 Aug 2020 04:36:54 -0400
Subject: [PATCH 65/66] gnu: gdm: Update package definition.

* gnu/packages/gnome.scm (gdm) [version]: Update to 3.36.3.
[source]<origin>[sha256]: Modify base32.
[patches]<search-patches>[gdm-default-session.patch]: Remove patch.
[outputs]: New output "help".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-gdm-xsession]: New flag.
[--enable-ipv6]: New flag.
[--with-help-dir]: New flag.
[--with-systemdsystemunitdir]: New flag.
[--with-default-path]: Modify flag.
[--with-xevie]: New flag.
[--without-plymouth]: Remove flag.
[--localstatedir]: Remove flag.
[--sbindir]: Remove flag.
<#:phases>['pre-configure]: Modify phase.
['install-placeholder-desktop-entry]: Remove phase.
['link-autostart-files]: Remove phase.
[native-inputs]: Add check.
[inputs]: Add glib, audit, keyutils, libice, libselinux, plymouth,
tcp-wrappers, libx11, libxau, libxcb, libxdmcp, libext and libxinerama.
Remove check.
[synopsis]: Modify.
[description]: Modify.

* gnu/packages/patches/gdm-default-session.patch: Remove file.

* gnu/local.mk (gdm-default-session.patch): Remove reference.
---
 gnu/local.mk                                  |   1 -
 gnu/packages/gnome.scm                        | 241 ++++++------------
 .../patches/gdm-default-session.patch         |  89 -------
 3 files changed, 75 insertions(+), 256 deletions(-)
 delete mode 100644 gnu/packages/patches/gdm-default-session.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 9ff617a1ac..ec0b6defa8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -973,7 +973,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/gd-fix-tests-on-i686.patch		\
   %D%/packages/patches/gd-brect-bounds.patch			\
   %D%/packages/patches/gdb-hurd.patch				\
-  %D%/packages/patches/gdm-default-session.patch		\
   %D%/packages/patches/gegl-mrg.patch			\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 81e0cce794..83a6689b7c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -92,6 +92,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpio)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -9543,172 +9544,69 @@ libxml2.")
 (define-public gdm
   (package
     (name "gdm")
-    (version "3.34.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
-              (patches (search-patches "gdm-default-session.patch"))))
+    (version "3.36.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "10byz8jwqv1qpvjj8wd36vfb8pbh9g7pchsc1gbwplf0rchbdyrv"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:configure-flags
-       `("--without-plymouth"
-         "--disable-systemd-journal"
-
-         ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
-         ;; instead of having to replace it (i.e., stopping the mingetty
-         ;; service for TTY 1 before starting GDM).
-         "--with-initial-vt=7"
-
-         ;; Use '/etc/environment' for locale settings instead of the
-         ;; systemd-specific '/etc/locale.conf'.
-         "--with-lang-file=/etc/environment"
-
-         ,(string-append "--with-udevdir="
-                         (assoc-ref %outputs "out") "/lib/udev")
-
-         "--localstatedir=/var"
-         ,(string-append "--with-default-path="
-                         (string-join '("/run/setuid-programs"
-                                        "/run/current-system/profile/bin"
-                                        "/run/current-system/profile/sbin")
-                                      ":"))
-         ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
-         ;; XDG_DATA_DIRS so that it finds its schemas.
-         "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gdm-xsession"
+        "--disable-systemd-journal"
+        "--enable-ipv6"
+        (string-append "--with-help-dir="
+                       (assoc-ref %outputs "help")
+                       "/share/help")
+        (string-append "--with-udevdir="
+                       (assoc-ref %outputs "out")
+                       "/lib/udev")
+        (string-append "--with-systemdsystemunitdir="
+                       (getcwd))
+        (string-append "--with-default-path="
+                       "/run/setuid-programs"
+                       ":"
+                       "/run/current-system/profile/bin"
+                       ":"
+                       "/run/current-system/profile/sbin")
+        "--with-lang-file=/etc/environment"
+        "--with-xevie"
+        "--with-initial-vt=7")
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'configure 'pre-configure
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            ;; We don't have <systemd/sd-daemon.h>.
-            (substitute* '("common/gdm-log.c"
-                           "daemon/gdm-server.c"
-                           "daemon/gdm-session-worker.c"
-                           "daemon/gdm-session-worker-job.c")
-              (("#include <systemd/sd-daemon\\.h>") ""))
-            ;; Use elogind for sd-login.
-            (substitute* '("common/gdm-common.c"
-                           "daemon/gdm-local-display-factory.c"
-                           "daemon/gdm-manager.c"
-                           "libgdm/gdm-user-switching.c")
-              (("#include <systemd/sd-login\\.h>")
-               "#include <elogind/sd-login.h>"))
-            ;; Check for elogind.
-            (substitute* '("configure")
-              (("libsystemd")
-               "libelogind"))
-            ;; Look for system-installed sessions in
-            ;; /run/current-system/profile/share.
-            (substitute* '("libgdm/gdm-sessions.c"
-                           "daemon/gdm-session.c"
-                           "daemon/gdm-display.c"
-                           "daemon/gdm-launch-environment.c")
-              (("DATADIR \"/x")
-               "\"/run/current-system/profile/share/x")
-              (("DATADIR \"/wayland")
-               "\"/run/current-system/profile/share/wayland")
-              (("DATADIR \"/gnome")
-               "\"/run/current-system/profile/share/gnome"))
-            (let ((propagate '("GDM_CUSTOM_CONF"
-                               "GDM_DBUS_DAEMON"
-                               "GDM_X_SERVER"
-                               "GDM_X_SESSION"
-                               ;; XXX: Remove this once GNOME Shell is
-                               ;; a dependency of GDM.
-                               "XDG_DATA_DIRS")))
-              (substitute* "daemon/gdm-session.c"
-                (("set_up_session_environment \\(self\\);")
-                 (apply string-append
-                        "set_up_session_environment (self);\n"
-                        (map (lambda (name)
-                               (string-append
-                                "gdm_session_set_environment_variable "
-                                "(self, \"" name "\","
-                                "g_getenv (\"" name "\"));\n"))
-                             propagate)))))
-            ;; Find the configuration file using an environment variable.
-            (substitute* '("common/gdm-settings.c")
-              (("GDM_CUSTOM_CONF")
-               (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
-                              " ? g_getenv(\"GDM_CUSTOM_CONF\")"
-                              " : GDM_CUSTOM_CONF)")))
-            ;; Use service-supplied path to X.
-            (substitute* '("daemon/gdm-server.c")
-              (("\\(X_SERVER X_SERVER_ARG_FORMAT")
-               "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
-            (substitute* '("daemon/gdm-wayland-session.c"
-                           "daemon/gdm-x-session.c")
-              (("\"dbus-daemon\"")
-               "g_getenv (\"GDM_DBUS_DAEMON\")")
-              (("X_SERVER")
-               "g_getenv (\"GDM_X_SERVER\")")
-              (("GDMCONFDIR \"/Xsession\"")
-               "g_getenv (\"GDM_X_SESSION\")"))
-            ;; Use an absolute path for GNOME Session.
-            (substitute* "daemon/gdm-launch-environment.c"
-              (("\"gnome-session\"")
-               (string-append "\"" (assoc-ref inputs "gnome-session")
-                              "/bin/gnome-session\"")))
-            ;; Do not automatically select the placeholder session.
-            (substitute* "daemon/gdm-session.c"
-              (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
-               (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
-                              "(g_strcmp0(search_dirs[i], \""
-                              (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
-                              "\") == 0 && "
-                              "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
-              (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
-               "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
-            #t))
-         ;; GDM requires that there be at least one desktop entry
-         ;; file.  This phase installs a hidden one that simply
-         ;; fails.  This enables users to use GDM with a
-         ;; '~/.xsession' script with no other desktop entry files.
-         ;; See <https://bugs.gnu.org/35068>.
-         (add-after 'install 'install-placeholder-desktop-entry
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (sessions (string-append out "/share/gdm/BuiltInSessions"))
-                    (fail (string-append sessions "/fail.desktop")))
-               (mkdir-p sessions)
-               (with-output-to-file fail
-                 (lambda ()
-                   (for-each
-                    display
-                    '("[Desktop Entry]\n"
-                      "Encoding=UTF-8\n"
-                      "Type=Application\n"
-                      "Name=Fail\n"
-                      "Comment=This session fails immediately.\n"
-                      "NoDisplay=true\n"
-                      "Exec=false\n"))))
-               #t)))
-         ;; GDM needs GNOME Session to run these applications.  We link
-         ;; their autostart files in `share/gdm/greeter/autostart'
-         ;; because GDM explicitly tells GNOME Session to look there.
-         ;;
-         ;; XXX: GNOME Shell should be linked here too, but currently
-         ;; GNOME Shell depends on GDM.
-         (add-after 'install 'link-autostart-files
+         (add-before 'configure 'pre-configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (autostart (string-append out "/share/gdm/"
-                                              "greeter/autostart"))
-                    (settings (assoc-ref inputs "gnome-settings-daemon")))
-               (mkdir-p autostart)
-               (with-directory-excursion autostart
-                 (for-each (lambda (desktop)
-                             (symlink desktop (basename desktop)))
-                           (find-files (string-append settings "/etc/xdg"))))
-               #t))))))
+             ;; We don't have <systemd/sd-daemon.h>.
+             (substitute* '("common/gdm-log.c"
+                            "daemon/gdm-server.c"
+                            "daemon/gdm-session-worker.c"
+                            "daemon/gdm-session-worker-job.c")
+               (("#include <systemd/sd-daemon\\.h>")
+                ""))
+             ;; Use elogind for sd-login.
+             (substitute* '("common/gdm-common.c"
+                            "daemon/gdm-local-display-factory.c"
+                            "daemon/gdm-manager.c"
+                            "libgdm/gdm-user-switching.c")
+               (("#include <systemd/sd-login\\.h>")
+                "#include <elogind/sd-login.h>"))
+             ;; Check for elogind.
+             (substitute* '("configure")
+               (("libsystemd")
+                "libelogind"))
+             #t)))))
     (native-inputs
-     `(("dconf" ,dconf)
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+     `(("check" ,check)
+       ("dconf" ,dconf)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
@@ -9716,19 +9614,30 @@ libxml2.")
        ("xmllint" ,libxml2)))
     (inputs
      `(("accountsservice" ,accountsservice)
-       ("check" ,check) ; for testing
        ("elogind" ,elogind)
+       ("glib" ,glib)
        ("gnome-session" ,gnome-session)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
        ("gtk+" ,gtk+)
+       ("ice" ,libice)
        ("iso-codes" ,iso-codes)
+       ("libaudit" ,audit)
        ("libcanberra" ,libcanberra)
-       ("linux-pam" ,linux-pam)))
-    (synopsis "Display manager for GNOME")
+       ("libkeyutils" ,keyutils)
+       ("libselinux" ,libselinux)
+       ("linux-pam" ,linux-pam)
+       ("plymouth" ,plymouth)
+       ("tcp-wrappers" ,tcp-wrappers)
+       ("x11" ,libx11)
+       ("xau" ,libxau)
+       ("xcb" ,libxcb)
+       ("xdmcp" ,libxdmcp)
+       ("xext" ,libxext)
+       ("xinerama" ,libxinerama)))
+    (synopsis "GNOME Display Manager")
+    (description "GDM is a program that manages graphical display servers and
+handles graphical user logins.")
     (home-page "https://wiki.gnome.org/Projects/GDM/")
-    (description
-     "GNOME Display Manager is a system service that is responsible for
-providing graphical log-ins and managing local and remote displays.")
     (license license:gpl2+)))
 
 (define-public libgtop
diff --git a/gnu/packages/patches/gdm-default-session.patch b/gnu/packages/patches/gdm-default-session.patch
deleted file mode 100644
index 9ab2829cdb..0000000000
--- a/gnu/packages/patches/gdm-default-session.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-This patch ensures '.desktop' files are picked up in the system profile
-and not in the directories listed in $XDG_DATA_DIRS.  The latter includes
-'gnome-session.desktop', which should be used if it's in
-/run/current-system/profile, and only then.
-
-Fixes <https://bugs.gnu.org/37831>.
-
-diff -ur a/daemon/gdm-session.c b/daemon/gdm-session.c
---- a/daemon/gdm-session.c	2019-09-25 10:40:24.000000000 -0400
-+++ b/daemon/gdm-session.c	2020-04-18 18:30:02.671856808 -0400
-@@ -348,24 +348,18 @@
-         GArray *search_array = NULL;
-         char **search_dirs;
-         int i;
--        const gchar * const *system_data_dirs = g_get_system_data_dirs ();
- 
-         static const char *x_search_dirs[] = {
-                 "/etc/X11/sessions/",
-                 DMCONFDIR "/Sessions/",
-                 DATADIR "/gdm/BuiltInSessions/",
--                DATADIR "/xsessions/",
-+                "/run/current-system/profile/share/xsessions/"
-         };
- 
-         static const char *wayland_search_dir = DATADIR "/wayland-sessions/";
- 
-         search_array = g_array_new (TRUE, TRUE, sizeof (char *));
- 
--        for (i = 0; system_data_dirs[i]; i++) {
--                gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
--                g_array_append_val (search_array, dir);
--        }
--
-         g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
- 
- #ifdef ENABLE_WAYLAND_SUPPORT
-@@ -373,16 +367,7 @@
- #ifdef ENABLE_USER_DISPLAY_SERVER
-                 g_array_prepend_val (search_array, wayland_search_dir);
- 
--                for (i = 0; system_data_dirs[i]; i++) {
--                        gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                        g_array_insert_val (search_array, i, dir);
--                }
- #else
--                for (i = 0; system_data_dirs[i]; i++) {
--                        gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                        g_array_append_val (search_array, dir);
--                }
--
-                 g_array_append_val (search_array, wayland_search_dir);
- #endif
-         }
-diff -ur a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
---- a/libgdm/gdm-sessions.c	2019-10-07 04:53:35.000000000 -0400
-+++ b/libgdm/gdm-sessions.c	2020-04-18 18:31:42.491348691 -0400
-@@ -245,19 +245,12 @@
-                 "/etc/X11/sessions/",
-                 DMCONFDIR "/Sessions/",
-                 DATADIR "/gdm/BuiltInSessions/",
--                DATADIR "/xsessions/",
-+                "/run/current-system/profile/share/xsessions/"
-         };
- 
-         names_seen_before = g_hash_table_new (g_str_hash, g_str_equal);
-         xorg_search_array = g_ptr_array_new_with_free_func (g_free);
- 
--        const gchar * const *system_data_dirs = g_get_system_data_dirs ();
--
--        for (i = 0; system_data_dirs[i]; i++) {
--                session_dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
--                g_ptr_array_add (xorg_search_array, session_dir);
--        }
--
-         for (i = 0; i < G_N_ELEMENTS (xorg_search_dirs); i++) {
-                 g_ptr_array_add (xorg_search_array, g_strdup (xorg_search_dirs[i]));
-         }
-@@ -269,11 +262,6 @@
- 
-         wayland_search_array = g_ptr_array_new_with_free_func (g_free);
- 
--        for (i = 0; system_data_dirs[i]; i++) {
--                session_dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                g_ptr_array_add (wayland_search_array, session_dir);
--        }
--
-         for (i = 0; i < G_N_ELEMENTS (wayland_search_dirs); i++) {
-                 g_ptr_array_add (wayland_search_array, g_strdup (wayland_search_dirs[i]));
-         }
-- 
2.28.0


[-- Attachment #1.1.4: 0066-gnu-gnome-shell-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 19688 bytes --]

From b0f56deb81cdf3220c2822811951d5c7fcdce75c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 11 Aug 2020 08:51:31 -0400
Subject: [PATCH 66/66] gnu: gnome-shell: Update package definition.

* gnu/packages/gnome.scm (gnome-shell) [version]: Update to 3.36.5.
[source]<origin>[sha256]: Modify base32.
[patches]: Remove field.
[snippet]: Remove field.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dgtk_doc]: New flag.
<#:disallowed-references>: Remove argument.
<#:modules>: Remove argument.
<#:phases>['patch-docbook]: New phase.
['patch-install-paths]: New phase.
['skip-gtk-update-icon-cache]: New phase.
['check]: Replace phase.
['no-meson-shenanigan]: New phase.
['move-doc]: New phase.
['fix-keysdir]: Remove phase.
['convert-logo-to-png]: Remove phase.
['record-absolute-file-names]: Remove phase.
['pre-check]: Remove phase.
['wrap-programs]: Remove phase.
[native-inputs]: Add dbus, docbook-xml, docbook-xsl and gtk-doc.
Remove inkscape and ruby-sassc. Replace python with python-wrapper.
[inputs]: Add appstream-glib, at-spi2-atk, bash-completion, clutter,
cogl, glib, gnome-control-center, gsettings-desktop-schemas, gstreamer,
gtk+, json-glib, network-manager, libsecret, libxml2, pango and libx11.
Remove caribou, docbook-xsl, libcanberra, libcroco, libgnomekbd, libnma,
libsoup, mesa-headers, network-manager-applet, python-pygobject,
telepathy-logger and upower.
[synopsis]: Modify.
[description]: Modify.

* gnu/packages/patches/gnome-shell-disable-test.patch: Remove file.
* gnu/packages/patches/gnome-shell-theme.patch: Remove file.

* gnu/local.mk (gnome-shell-disable-test.patch): Remove reference.
* gnu/local.mk (gnome-shell-theme.patch): Remove reference.
---
 gnu/local.mk                                  |   2 -
 gnu/packages/gnome.scm                        | 238 +++++++++---------
 .../patches/gnome-shell-disable-test.patch    |  25 --
 gnu/packages/patches/gnome-shell-theme.patch  |  51 ----
 4 files changed, 115 insertions(+), 201 deletions(-)
 delete mode 100644 gnu/packages/patches/gnome-shell-disable-test.patch
 delete mode 100644 gnu/packages/patches/gnome-shell-theme.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ec0b6defa8..4cd240d432 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1030,8 +1030,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-supported-locales.patch     	\
   %D%/packages/patches/gmp-arm-asm-nothumb.patch		\
   %D%/packages/patches/gmp-faulty-test.patch			\
-  %D%/packages/patches/gnome-shell-theme.patch			\
-  %D%/packages/patches/gnome-shell-disable-test.patch		\
   %D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
   %D%/packages/patches/gnome-tweaks-search-paths.patch		\
   %D%/packages/patches/gnupg-default-pinentry.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 83a6689b7c..4c3694881c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9889,162 +9889,154 @@ configuration of various aspects of your desktop.")
 (define-public gnome-shell
   (package
     (name "gnome-shell")
-    (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
-                "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
-              (patches (search-patches "gnome-shell-theme.patch"
-                                       "gnome-shell-disable-test.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               #~(begin
-                   ;; Copy images for use on the GDM log-in screen.
-                   (copy-file #$(file-append %artwork-repository
-                                             "/slim/0.x/background.png")
-                              "data/theme/guix-background.png")
-                   (copy-file #$(file-append %artwork-repository
-                                             "/logo/Guix-horizontal-white.svg")
-                              "data/theme/guix-logo.svg")
-                   #t))))
+    (version "3.36.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1hj7gmjmy92xndlgw7pzk5m6j2fbzcgfd1pxc32k38gml8qg19d4"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t
-       #:disallowed-references ((,glib "bin")
-                                ,inkscape ,libxslt
-                                ,ruby-sass)
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags
-       (list "-Dsystemd=false"
-             ;; Otherwise, the RUNPATH will lack the final path component.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out")
-                            "/lib/gnome-shell"))
-
-       #:modules ((guix build meson-build-system)
-                  (guix build utils)
-                  (srfi srfi-1))
-
+       (list
+        "-Dgtk_doc=true"
+        "-Dsystemd=false"
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib/gnome-shell"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-keysdir
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out     (assoc-ref outputs "out"))
-                    (keysdir (string-append
-                              out "/share/gnome-control-center/keybindings")))
-               (substitute* "meson.build"
-                 (("keysdir =.*")
-                  (string-append "keysdir = '" keysdir "'\n")))
-               #t)))
-         (add-before 'configure 'convert-logo-to-png
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Convert the logo from SVG to PNG.
-             (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
-                     "data/theme/guix-logo.svg")))
-         (add-before 'configure 'record-absolute-file-names
+         (add-after 'unpack 'patch-docbook
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "js/misc/ibusManager.js"
-               (("'ibus-daemon'")
-                (string-append "'" (assoc-ref inputs "ibus")
-                               "/bin/ibus-daemon'")))
-             (substitute* "js/ui/status/keyboard.js"
-               (("'gkbd-keyboard-display'")
-                (string-append "'" (assoc-ref inputs "libgnomekbd")
-                               "/bin/gkbd-keyboard-display'")))
+             (substitute* '("man/gnome-shell.xml" "man/meson.build"
+                            "docs/reference/shell/shell-docs.sgml"
+                            "docs/reference/st/st-docs.sgml")
+               (("http://docbook.sourceforge.net/release/xsl/current")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)))
+               (("http://www.oasis-open.org/docbook/xml/4.3/")
+                (string-append (assoc-ref inputs "docbook-xml-4.3")
+                               "/xml/dtd/docbook/"))
+               (("http://www.oasis-open.org/docbook/xml/4.2/")
+                (string-append (assoc-ref inputs "docbook-xml-4.2")
+                               "/xml/dtd/docbook/")))
              #t))
-         (add-before 'check 'pre-check
-           (lambda* (#:key inputs #:allow-other-keys)
+         (add-after 'patch-docbook 'patch-install-paths
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* '("src/meson.build" "src/st/meson.build"
+                            "subprojects/gvc/meson.build")
+               (("install_dir_gir: pkgdatadir,")
+                "install_dir_gir: join_paths(pkgdatadir, 'gir-1.0'),")
+               (("install_dir_typelib: pkglibdir,")
+                "install_dir_typelib: join_paths(pkglibdir, 'girepository-1.0'),"))
+             (substitute* "subprojects/extensions-tool/meson.build"
+               (("bash_completion\\.get_pkgconfig_variable\\('completionsdir'\\)")
+                (string-append "'"
+                               (assoc-ref outputs "out")
+                               "/share/bash-completion/completions"
+                               "'")))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson/postinstall.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (replace 'check
+           (lambda _
              ;; Tests require a running X server.
-             (system "Xvfb :1 &")
+             (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")
+             (invoke "dbus-launch" "ninja" "test")
              #t))
-         (add-after 'install 'wrap-programs
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out              (assoc-ref outputs "out"))
-                   (gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
-                   (python-path      (getenv "PYTHONPATH")))
-               (wrap-program (string-append out "/bin/gnome-shell")
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
-                 ;; FIXME: gnome-shell loads these libraries with unqualified
-                 ;; names only, so they need to be on LD_LIBRARY_PATH.  The
-                 ;; alternative might be to patch gnome-shell.
-                 `("LD_LIBRARY_PATH" ":" prefix
-                   ,(map (lambda (pkg)
-                           (string-append (assoc-ref inputs pkg) "/lib"))
-                         '("gdk-pixbuf"
-                           "gnome-bluetooth" "librsvg" "libgweather"))))
-               (for-each
-                (lambda (prog)
-                  (wrap-program (string-append out "/bin/" prog)
-                    `("PYTHONPATH"      ":" prefix (,python-path))
-                    `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-                '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
-               #t)))
-         (replace 'glib-or-gtk-wrap
-           (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
-             (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
-               ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
-               ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
-               ;; phase.  Fix that since we don't need these.
-               (wrap #:inputs (fold alist-delete inputs
-                                    '("inkscape" "intltool" "glib:bin"))
-                     #:outputs outputs)))))))
+         (add-before 'install 'no-meson-shenanigan
+           ;; Meson automagically invokes pkexec,
+           ;; which fails without setuid root.
+           (lambda _
+             (setenv "PKEXEC_UID" "whatever")
+             #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
      `(("asciidoc" ,asciidoc)
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
-       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+       ("dbus" ,dbus)
+       ("docbook-xml-4.2" ,docbook-xml-4.2)
+       ("docbook-xml-4.3" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("glib:bin" ,glib "bin")
+       ("desktop-file-utils" ,desktop-file-utils)
        ("gobject-introspection" ,gobject-introspection)
-       ("inkscape" ,inkscape)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("ruby-sass" ,ruby-sass)
+       ("python" ,python-wrapper)
        ("sassc" ,sassc)
        ("xsltproc" ,libxslt)
-       ;; For tests
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("accountsservice" ,accountsservice)
-       ("caribou" ,caribou)
-       ("docbook-xsl" ,docbook-xsl)
+       ("appstream-util" ,appstream-glib)
+       ("atk-bridge" ,at-spi2-atk)
+       ("bash-completion" ,bash-completion)
+       ("clutter" ,clutter)
+       ("cogl" ,cogl)
        ("evolution-data-server" ,evolution-data-server)
        ("gcr" ,gcr)
        ("gdm" ,gdm)
        ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("geoclue" ,geoclue)
        ("gjs" ,gjs)
+       ("glib" ,glib)
        ("gnome-autoar" ,gnome-autoar)
        ("gnome-bluetooth" ,gnome-bluetooth)
        ("gnome-desktop" ,gnome-desktop)
+       ("gnome-keybindings" ,gnome-control-center)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
+       ("gtk+" ,gtk+)
+       ("gweather" ,libgweather)
        ("ibus" ,ibus)
-       ("libcanberra" ,libcanberra)
-       ("libcroco" ,libcroco)
-       ("libgnomekbd" ,libgnomekbd)               ;for gkbd-keyboard-display
-       ("libgweather" ,libgweather)
-       ("libnma" ,libnma)
-       ("libsoup" ,libsoup)
-       ("mesa-headers" ,mesa-headers)
-       ("mutter" ,mutter)
-       ("network-manager-applet" ,network-manager-applet)
-       ("polkit" ,polkit)
-       ("pulseaudio" ,pulseaudio)
-       ("python-pygobject" ,python-pygobject)
-       ("startup-notification" ,startup-notification)
-       ("telepathy-logger" ,telepathy-logger)
-       ("upower" ,upower)
-       ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
-       ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
+       ("json-glib" ,json-glib)
+       ("libnm" ,network-manager)
+       ("libpulse" ,pulseaudio)
        ("librsvg" ,librsvg)
-       ("geoclue" ,geoclue)))
-    (synopsis "Desktop shell for GNOME")
+       ("libsecret" ,libsecret)
+       ("libstartup-notification" ,startup-notification)
+       ("libxml2" ,libxml2)
+       ("mutter" ,mutter)
+       ("pango" ,pango)
+       ("polkit-agent" ,polkit)
+       ("x11" ,libx11)))
+    (synopsis "Next generation desktop shell")
+    (description "GNOME-Shell provides core user interface functions for the
+GNOME desktop, like switching to windows and launching applications.  It takes
+advantage of the capabilities of modern graphics hardware and introduces
+innovative user interface concepts to provide a visually attractive and easy to
+use experience.")
     (home-page "https://wiki.gnome.org/Projects/GnomeShell")
-    (description
-     "GNOME Shell provides core user interface functions for the GNOME desktop,
-like switching to windows and launching applications.")
     (license license:gpl2+)))
 
 (define-public gtk-vnc
diff --git a/gnu/packages/patches/gnome-shell-disable-test.patch b/gnu/packages/patches/gnome-shell-disable-test.patch
deleted file mode 100644
index b4c7e73cd7..0000000000
--- a/gnu/packages/patches/gnome-shell-disable-test.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-This test seems to require a D-Bus connection not available in the build
-environment.
-
-diff -ur /tmp/guix-build-gnome-shell-3.34.2.drv-0/gnome-shell-3.34.2/src/st/meson.build b/src/st/meson.build
---- /tmp/guix-build-gnome-shell-3.34.2.drv-0/gnome-shell-3.34.2/src/st/meson.build	1969-12-31 19:00:00.000000000 -0500
-+++ b/src/st/meson.build	2019-12-23 00:46:14.721198022 -0500
-@@ -132,18 +132,6 @@
-   sources: st_enums[1]
- )
- 
--test_theme = executable('test-theme',
--  sources: 'test-theme.c',
--  c_args: st_cflags,
--  dependencies: [mutter_dep, gtk_dep],
--  build_rpath: mutter_typelibdir,
--  link_with: libst
--)
--
--test('CSS styling support', test_theme,
--  workdir: meson.current_source_dir()
--)
--
- libst_gir = gnome.generate_gir(libst,
-   sources: st_gir_sources,
-   nsversion: '1.0',
diff --git a/gnu/packages/patches/gnome-shell-theme.patch b/gnu/packages/patches/gnome-shell-theme.patch
deleted file mode 100644
index 3fa0670c43..0000000000
--- a/gnu/packages/patches/gnome-shell-theme.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Adjust GNOME-Shell so that it uses a Guix theme by default.
-
-Patch by Ludovic Courtès <ludo@gnu.org>.
-
-diff -ur a/data/gnome-shell-theme.gresource.xml b/data/gnome-shell-theme.gresource.xml
---- a/data/gnome-shell-theme.gresource.xml	2019-12-11 15:06:31.000000000 -0500
-+++ b/data/gnome-shell-theme.gresource.xml	2019-12-21 00:31:55.895866241 -0500
-@@ -19,6 +19,8 @@
-     <file>no-events.svg</file>
-     <file>no-notifications.svg</file>
-     <file>noise-texture.png</file>
-+    <file>guix-background.png</file>
-+    <file>guix-logo.png</file>
-     <file>pad-osd.css</file>
-     <file alias="icons/pointer-double-click-symbolic.svg">pointer-double-click-symbolic.svg</file>
-     <file alias="icons/pointer-drag-symbolic.svg">pointer-drag-symbolic.svg</file>
-diff -ur a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss
---- a/data/theme/gnome-shell-sass/_common.scss	2019-12-11 15:06:31.000000000 -0500
-+++ b/data/theme/gnome-shell-sass/_common.scss	2019-12-21 00:33:49.495832135 -0500
-@@ -1994,7 +1994,16 @@
-   }
- }
- 
--  .login-dialog-logo-bin { padding: 24px 0px; }
-+  .login-dialog-logo-bin {
-+      /* Make it a bit narrower than .login-dialog-user-list.  */
-+      width: 12em;
-+      height: 8em;
-+      background: url(resource:///org/gnome/shell/theme/guix-logo.png);
-+      background-color: transparent;
-+      background-repeat: no-repeat;
-+      background-size: contain;
-+      background-position: center; }
-+
-   .login-dialog-banner { color: darken($osd_fg_color,10%); }
-   .login-dialog-button-box { spacing: 5px; }
-   .login-dialog-message-warning { color: $warning_color; }
-@@ -2143,9 +2152,10 @@
- }
- 
- #lockDialogGroup {
--  background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/noise-texture.png);
--  background-repeat: repeat;
--}
-+  background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/guix-background.png);
-+  background-repeat: no-repeat;
-+  background-size: cover;
-+  background-position: center; }
- 
- #screenShieldNotifications {
-   StButton#vhandle, StButton#hhandle {
-- 
2.28.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-12  4:05                                                                   ` Raghav Gururajan
@ 2020-08-12  4:11                                                                     ` Raghav Gururajan
  2020-08-12  8:02                                                                       ` Danny Milosavljevic
  0 siblings, 1 reply; 84+ messages in thread
From: Raghav Gururajan @ 2020-08-12  4:11 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel


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

@Danny

> Please find the attached patch for gnome-shell. Also I have attached
> revised patches for mutter and gdm.

OOPS! Sent you the wrong ones. Here are the correct ones.

Regards,
RG.


[-- Attachment #1.1.2: 0064-gnu-mutter-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 11901 bytes --]

From 4956005520e03defb583fbad14c307c552b59d12 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Mon, 10 Aug 2020 02:07:39 -0400
Subject: [PATCH 64/66] gnu: mutter: Update package definition.

* gnu/packages/gnome.scm (mutter) [version]: Update to 3.36.5.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:configure-flags>[-Dgles2_libname]: New flag.
[-Degl_device]: New flag.
[-Dwayland_eglstream]: New flag.
[-Dinstalled_tests]: New flag.
[-Dxwayland_grab_default_access_rules]: New flag.
[-Dc_link_args]: Modify flag.
<#:tests?>: Remove argument.
<#:phases>['fix-build-with-mesa-20]: Remove phase.
['check]: Remove phase.
['custom-check]: New phase.
[native-inputs]: Add adwaita-icon-theme, python-wrapper and ruby.
Remove autoconf, automake and libtool.
[propagated-inputs]: Add graphene, wayland and libxi. Remove xinput.
Move gdk-pixbuf+svg, libinput, eudev, libxcomposite, libxdamage, libxext,
libxkbcommon and libxrandr to ...
[inputs]: ... here. Add dbus, freetype, fribidi, libdrm, sysprof, egl-wayland,
wayland-protocols, libxau, libxcb, libxcursor, libxinerama and libxrender.
Remove zenity.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gnome.scm | 215 +++++++++++++++++++++++------------------
 1 file changed, 120 insertions(+), 95 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index dfb65826fc..81e0cce794 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -118,6 +118,7 @@
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages geo)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gstreamer)
@@ -8618,114 +8619,138 @@ in commandline and shell scripts.")
 (define-public mutter
   (package
     (name "mutter")
-    (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
-                "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
-    ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
-    ;; versions of cogl and clutter.  As a result, many of the inputs,
-    ;; propagated-inputs, and configure flags used in cogl and clutter are
-    ;; needed here as well.
+    (version "3.36.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1py7sqrpvg2qvswxclshysx7hd9jk65i6cwqsagd6rg6rnjhblp0"))))
     (build-system meson-build-system)
     (arguments
-     '(;; XXX: All mutter tests fail with the following error:
-       ;;   Settings schema 'org.gnome.mutter' is not installed
-       #:tests? #f
-       #:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags
-       ;; TODO: Enable profiler when Sysprof is packaged.
-       (list "-Dprofiler=false"
-             ;; Otherwise, the RUNPATH will lack the final path component.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib:"
-                            (assoc-ref %outputs "out") "/lib/mutter-5")
-
-             ;; The following flags are needed for the bundled clutter
-             (string-append "-Dxwayland_path="
-                            (assoc-ref %build-inputs "xorg-server-xwayland")
-                            "/bin/Xwayland")
-
-             ;; the remaining flags are needed for the bundled cogl
-             (string-append "-Dopengl_libname="
-                            (assoc-ref %build-inputs "mesa")
-                            "/lib/libGL.so"))
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'fix-build-with-mesa-20
-                    (lambda _
-                      ;; Mimic upstream commit a444a4c5f58ea516ad for
-                      ;; compatibility with Mesa 20.  Remove for 3.36.
-                      (substitute* '("src/backends/meta-egl-ext.h"
-                                     "src/backends/meta-egl.c"
-                                     "src/backends/meta-egl.h")
-                        (("#include <EGL/eglext\\.h>" all)
-                         (string-append all "\n#include <EGL/eglmesaext.h>")))
-                      (substitute* "cogl/cogl/meson.build"
-                        (("#include <EGL/eglext\\.h>" all)
-                         (string-append all "\\n#include <EGL/eglmesaext.h>")))
-                      #t)))))
+       (list
+        (string-append "-Dopengl_libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGL.so")
+        (string-append "-Dgles2_libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGLESv2.so")
+        "-Degl_device=true"
+        "-Dwayland_eglstream=true"
+        "-Dinstalled_tests=false"
+        (string-append "-Dxwayland_path="
+                       (assoc-ref %build-inputs "xorg-server-xwayland")
+                       "/bin/Xwayland")
+        "-Dxwayland_grab_default_access_rules=gnome-boxes"
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib"
+                       ":"
+                       (assoc-ref %outputs "out")
+                       "/lib/mutter-6"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'check)
+         (add-after 'install 'custom-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))
+             ;; Tests look for $XDG_DATA_DIRS.
+             (setenv "XDG_DATA_DIRS"
+                     (string-append (getenv "XDG_DATA_DIRS")
+                                    ":"
+                                    (assoc-ref %outputs "out")
+                                    "/share"))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             ;; Tests look for cursors.
+             (setenv "XCURSOR_PATH"
+                     (string-append (assoc-ref %build-inputs "adwaita-icon-theme")
+                                    "/share/icons"))
+             (invoke "dbus-launch" "ninja" "test")
+             #t)))))
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server-for-tests)
-       ;; For git build
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
-    (propagated-inputs
-     `(;; libmutter.pc refers to these:
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
-       ("atk" ,atk)
-       ("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("json-glib" ,json-glib)
-       ("libinput" ,libinput)
-       ("libx11" ,libx11)
-       ("libxcomposite" ,libxcomposite)
-       ("libxdamage" ,libxdamage)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libxrandr" ,libxrandr)
-       ("mesa" ,mesa)
-       ("pango" ,pango)
-       ("udev" ,eudev)
-       ("xinput" ,xinput)))
+       ("python" ,python-wrapper)
+       ("ruby" ,ruby)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("elogind" ,elogind)
+     `(("dbus" ,dbus)
+       ("freetype" ,freetype)
+       ("fribidi" ,fribidi)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
-       ("libcanberra-gtk" ,libcanberra)
-       ("libgudev" ,libgudev)
-       ("libice" ,libice)
-       ("libsm" ,libsm)
+       ("gudev" ,libgudev)
+       ("ice" ,libice)
+       ("libcanberra" ,libcanberra)
+       ("libdrm" ,libdrm)
+       ("libelogind" ,elogind)
+       ("libinput" ,libinput)
+       ("libpipewire" ,pipewire)
+       ("libstartup-notification" ,startup-notification)
+       ("libudev" ,eudev)
        ("libwacom" ,libwacom)
-       ("libxkbfile" ,libxkbfile)
-       ("libxrandr" ,libxrandr)
-       ("libxtst" ,libxtst)
-       ("pipewire" ,pipewire)
-       ("startup-notification" ,startup-notification)
-       ("upower-glib" ,upower)
+       ("sm" ,libsm)
+       ("sysprof" ,sysprof)
+       ("upower" ,upower)
+       ("wayland-eglstream-protocols" ,egl-wayland)
+       ("wayland-protocols" ,wayland-protocols)
+       ("xau" ,libxau)
+       ("xcb" ,libxcb)
+       ("xcomposite" ,libxcomposite)
+       ("xcursor" ,libxcursor)
+       ("xdamage" ,libxdamage)
+       ("xext" ,libxext)
+       ("xinerama" ,libxinerama)
+       ("xkbcommon" ,libxkbcommon)
+       ("xkbfile" ,libxkbfile)
        ("xkeyboard-config" ,xkeyboard-config)
        ("xorg-server-xwayland" ,xorg-server-xwayland)
-       ("zenity" ,zenity)))
-    (synopsis "Window and compositing manager")
-    (home-page "https://www.gnome.org")
-    (description
-     "Mutter is a window and compositing manager that displays and manages your
-desktop via OpenGL.  Mutter combines a sophisticated display engine using the
-Clutter toolkit with solid window-management logic inherited from the Metacity
-window manager.")
+       ("xrandr" ,libxrandr)
+       ("xrender" ,libxrender)
+       ("xtst" ,libxtst)))
+    (propagated-inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("glib" ,glib)
+       ("graphene" ,graphene)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
+       ("mesa" ,mesa)
+       ("pango" ,pango)
+       ("wayland" ,wayland)
+       ("x11" ,libx11)
+       ("xfixes" ,libxfixes)
+       ("xi" ,libxi)))
+    (synopsis "Wayland display server and X11 window manager and compositor library")
+    (description "Mutter, when used as a Wayland display server, it runs on top
+of KMS and libinput.  It implements the compositor side of the Wayland core
+protocol as well as various protocol extensions.  It also has functionality
+related to running X11 applications using Xwayland.
+Mutter, when used on top of Xorg, it acts as a X11 window manager and
+compositing manager.
+Mutter contains functionality related to, among other things, window management,
+window compositing, focus tracking, workspace management, keybindings and
+monitor configuration.")
+    (home-page "https://wiki.gnome.org/Projects/Mutter")
     (license license:gpl2+)))
 
 (define-public gnome-online-accounts
-- 
2.28.0


[-- Attachment #1.1.3: 0065-gnu-gdm-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 19315 bytes --]

From 4b0704166c3ba4555752e57a698fec8b5dae2bcb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 11 Aug 2020 04:36:54 -0400
Subject: [PATCH 65/66] gnu: gdm: Update package definition.

* gnu/packages/gnome.scm (gdm) [version]: Update to 3.36.3.
[source]<origin>[sha256]: Modify base32.
[patches]<search-patches>[gdm-default-session.patch]: Remove patch.
[outputs]: New output "help".
[arguments]<#:configure-flags>[--disable-static]: New flag.
[--enable-gdm-xsession]: New flag.
[--enable-ipv6]: New flag.
[--with-help-dir]: New flag.
[--with-systemdsystemunitdir]: New flag.
[--with-default-path]: Modify flag.
[--with-xevie]: New flag.
[--without-plymouth]: Remove flag.
[--localstatedir]: Remove flag.
[--sbindir]: Remove flag.
<#:phases>['pre-configure]: Modify phase.
['install-placeholder-desktop-entry]: Remove phase.
['link-autostart-files]: Remove phase.
[native-inputs]: Add check.
[inputs]: Add glib, audit, keyutils, libice, libselinux, plymouth,
tcp-wrappers, libx11, libxau, libxcb, libxdmcp, libext and libxinerama.
Remove check.
[synopsis]: Modify.
[description]: Modify.

* gnu/packages/patches/gdm-default-session.patch: Remove file.

* gnu/local.mk (gdm-default-session.patch): Remove reference.
---
 gnu/local.mk                                  |   1 -
 gnu/packages/gnome.scm                        | 241 ++++++------------
 .../patches/gdm-default-session.patch         |  89 -------
 3 files changed, 75 insertions(+), 256 deletions(-)
 delete mode 100644 gnu/packages/patches/gdm-default-session.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 9ff617a1ac..ec0b6defa8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -973,7 +973,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/gd-fix-tests-on-i686.patch		\
   %D%/packages/patches/gd-brect-bounds.patch			\
   %D%/packages/patches/gdb-hurd.patch				\
-  %D%/packages/patches/gdm-default-session.patch		\
   %D%/packages/patches/gegl-mrg.patch			\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 81e0cce794..83a6689b7c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -92,6 +92,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpio)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -9543,172 +9544,69 @@ libxml2.")
 (define-public gdm
   (package
     (name "gdm")
-    (version "3.34.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
-              (patches (search-patches "gdm-default-session.patch"))))
+    (version "3.36.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "10byz8jwqv1qpvjj8wd36vfb8pbh9g7pchsc1gbwplf0rchbdyrv"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "help"))
     (arguments
-     '(#:configure-flags
-       `("--without-plymouth"
-         "--disable-systemd-journal"
-
-         ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
-         ;; instead of having to replace it (i.e., stopping the mingetty
-         ;; service for TTY 1 before starting GDM).
-         "--with-initial-vt=7"
-
-         ;; Use '/etc/environment' for locale settings instead of the
-         ;; systemd-specific '/etc/locale.conf'.
-         "--with-lang-file=/etc/environment"
-
-         ,(string-append "--with-udevdir="
-                         (assoc-ref %outputs "out") "/lib/udev")
-
-         "--localstatedir=/var"
-         ,(string-append "--with-default-path="
-                         (string-join '("/run/setuid-programs"
-                                        "/run/current-system/profile/bin"
-                                        "/run/current-system/profile/sbin")
-                                      ":"))
-         ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
-         ;; XDG_DATA_DIRS so that it finds its schemas.
-         "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-gdm-xsession"
+        "--disable-systemd-journal"
+        "--enable-ipv6"
+        (string-append "--with-help-dir="
+                       (assoc-ref %outputs "help")
+                       "/share/help")
+        (string-append "--with-udevdir="
+                       (assoc-ref %outputs "out")
+                       "/lib/udev")
+        (string-append "--with-systemdsystemunitdir="
+                       (getcwd))
+        (string-append "--with-default-path="
+                       "/run/setuid-programs"
+                       ":"
+                       "/run/current-system/profile/bin"
+                       ":"
+                       "/run/current-system/profile/sbin")
+        "--with-lang-file=/etc/environment"
+        "--with-xevie"
+        "--with-initial-vt=7")
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'configure 'pre-configure
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            ;; We don't have <systemd/sd-daemon.h>.
-            (substitute* '("common/gdm-log.c"
-                           "daemon/gdm-server.c"
-                           "daemon/gdm-session-worker.c"
-                           "daemon/gdm-session-worker-job.c")
-              (("#include <systemd/sd-daemon\\.h>") ""))
-            ;; Use elogind for sd-login.
-            (substitute* '("common/gdm-common.c"
-                           "daemon/gdm-local-display-factory.c"
-                           "daemon/gdm-manager.c"
-                           "libgdm/gdm-user-switching.c")
-              (("#include <systemd/sd-login\\.h>")
-               "#include <elogind/sd-login.h>"))
-            ;; Check for elogind.
-            (substitute* '("configure")
-              (("libsystemd")
-               "libelogind"))
-            ;; Look for system-installed sessions in
-            ;; /run/current-system/profile/share.
-            (substitute* '("libgdm/gdm-sessions.c"
-                           "daemon/gdm-session.c"
-                           "daemon/gdm-display.c"
-                           "daemon/gdm-launch-environment.c")
-              (("DATADIR \"/x")
-               "\"/run/current-system/profile/share/x")
-              (("DATADIR \"/wayland")
-               "\"/run/current-system/profile/share/wayland")
-              (("DATADIR \"/gnome")
-               "\"/run/current-system/profile/share/gnome"))
-            (let ((propagate '("GDM_CUSTOM_CONF"
-                               "GDM_DBUS_DAEMON"
-                               "GDM_X_SERVER"
-                               "GDM_X_SESSION"
-                               ;; XXX: Remove this once GNOME Shell is
-                               ;; a dependency of GDM.
-                               "XDG_DATA_DIRS")))
-              (substitute* "daemon/gdm-session.c"
-                (("set_up_session_environment \\(self\\);")
-                 (apply string-append
-                        "set_up_session_environment (self);\n"
-                        (map (lambda (name)
-                               (string-append
-                                "gdm_session_set_environment_variable "
-                                "(self, \"" name "\","
-                                "g_getenv (\"" name "\"));\n"))
-                             propagate)))))
-            ;; Find the configuration file using an environment variable.
-            (substitute* '("common/gdm-settings.c")
-              (("GDM_CUSTOM_CONF")
-               (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
-                              " ? g_getenv(\"GDM_CUSTOM_CONF\")"
-                              " : GDM_CUSTOM_CONF)")))
-            ;; Use service-supplied path to X.
-            (substitute* '("daemon/gdm-server.c")
-              (("\\(X_SERVER X_SERVER_ARG_FORMAT")
-               "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
-            (substitute* '("daemon/gdm-wayland-session.c"
-                           "daemon/gdm-x-session.c")
-              (("\"dbus-daemon\"")
-               "g_getenv (\"GDM_DBUS_DAEMON\")")
-              (("X_SERVER")
-               "g_getenv (\"GDM_X_SERVER\")")
-              (("GDMCONFDIR \"/Xsession\"")
-               "g_getenv (\"GDM_X_SESSION\")"))
-            ;; Use an absolute path for GNOME Session.
-            (substitute* "daemon/gdm-launch-environment.c"
-              (("\"gnome-session\"")
-               (string-append "\"" (assoc-ref inputs "gnome-session")
-                              "/bin/gnome-session\"")))
-            ;; Do not automatically select the placeholder session.
-            (substitute* "daemon/gdm-session.c"
-              (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
-               (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
-                              "(g_strcmp0(search_dirs[i], \""
-                              (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
-                              "\") == 0 && "
-                              "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
-              (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
-               "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
-            #t))
-         ;; GDM requires that there be at least one desktop entry
-         ;; file.  This phase installs a hidden one that simply
-         ;; fails.  This enables users to use GDM with a
-         ;; '~/.xsession' script with no other desktop entry files.
-         ;; See <https://bugs.gnu.org/35068>.
-         (add-after 'install 'install-placeholder-desktop-entry
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (sessions (string-append out "/share/gdm/BuiltInSessions"))
-                    (fail (string-append sessions "/fail.desktop")))
-               (mkdir-p sessions)
-               (with-output-to-file fail
-                 (lambda ()
-                   (for-each
-                    display
-                    '("[Desktop Entry]\n"
-                      "Encoding=UTF-8\n"
-                      "Type=Application\n"
-                      "Name=Fail\n"
-                      "Comment=This session fails immediately.\n"
-                      "NoDisplay=true\n"
-                      "Exec=false\n"))))
-               #t)))
-         ;; GDM needs GNOME Session to run these applications.  We link
-         ;; their autostart files in `share/gdm/greeter/autostart'
-         ;; because GDM explicitly tells GNOME Session to look there.
-         ;;
-         ;; XXX: GNOME Shell should be linked here too, but currently
-         ;; GNOME Shell depends on GDM.
-         (add-after 'install 'link-autostart-files
+         (add-before 'configure 'pre-configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (autostart (string-append out "/share/gdm/"
-                                              "greeter/autostart"))
-                    (settings (assoc-ref inputs "gnome-settings-daemon")))
-               (mkdir-p autostart)
-               (with-directory-excursion autostart
-                 (for-each (lambda (desktop)
-                             (symlink desktop (basename desktop)))
-                           (find-files (string-append settings "/etc/xdg"))))
-               #t))))))
+             ;; We don't have <systemd/sd-daemon.h>.
+             (substitute* '("common/gdm-log.c"
+                            "daemon/gdm-server.c"
+                            "daemon/gdm-session-worker.c"
+                            "daemon/gdm-session-worker-job.c")
+               (("#include <systemd/sd-daemon\\.h>")
+                ""))
+             ;; Use elogind for sd-login.
+             (substitute* '("common/gdm-common.c"
+                            "daemon/gdm-local-display-factory.c"
+                            "daemon/gdm-manager.c"
+                            "libgdm/gdm-user-switching.c")
+               (("#include <systemd/sd-login\\.h>")
+                "#include <elogind/sd-login.h>"))
+             ;; Check for elogind.
+             (substitute* '("configure")
+               (("libsystemd")
+                "libelogind"))
+             #t)))))
     (native-inputs
-     `(("dconf" ,dconf)
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+     `(("check" ,check)
+       ("dconf" ,dconf)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
@@ -9716,19 +9614,30 @@ libxml2.")
        ("xmllint" ,libxml2)))
     (inputs
      `(("accountsservice" ,accountsservice)
-       ("check" ,check) ; for testing
        ("elogind" ,elogind)
+       ("glib" ,glib)
        ("gnome-session" ,gnome-session)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
        ("gtk+" ,gtk+)
+       ("ice" ,libice)
        ("iso-codes" ,iso-codes)
+       ("libaudit" ,audit)
        ("libcanberra" ,libcanberra)
-       ("linux-pam" ,linux-pam)))
-    (synopsis "Display manager for GNOME")
+       ("libkeyutils" ,keyutils)
+       ("libselinux" ,libselinux)
+       ("linux-pam" ,linux-pam)
+       ("plymouth" ,plymouth)
+       ("tcp-wrappers" ,tcp-wrappers)
+       ("x11" ,libx11)
+       ("xau" ,libxau)
+       ("xcb" ,libxcb)
+       ("xdmcp" ,libxdmcp)
+       ("xext" ,libxext)
+       ("xinerama" ,libxinerama)))
+    (synopsis "GNOME Display Manager")
+    (description "GDM is a program that manages graphical display servers and
+handles graphical user logins.")
     (home-page "https://wiki.gnome.org/Projects/GDM/")
-    (description
-     "GNOME Display Manager is a system service that is responsible for
-providing graphical log-ins and managing local and remote displays.")
     (license license:gpl2+)))
 
 (define-public libgtop
diff --git a/gnu/packages/patches/gdm-default-session.patch b/gnu/packages/patches/gdm-default-session.patch
deleted file mode 100644
index 9ab2829cdb..0000000000
--- a/gnu/packages/patches/gdm-default-session.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-This patch ensures '.desktop' files are picked up in the system profile
-and not in the directories listed in $XDG_DATA_DIRS.  The latter includes
-'gnome-session.desktop', which should be used if it's in
-/run/current-system/profile, and only then.
-
-Fixes <https://bugs.gnu.org/37831>.
-
-diff -ur a/daemon/gdm-session.c b/daemon/gdm-session.c
---- a/daemon/gdm-session.c	2019-09-25 10:40:24.000000000 -0400
-+++ b/daemon/gdm-session.c	2020-04-18 18:30:02.671856808 -0400
-@@ -348,24 +348,18 @@
-         GArray *search_array = NULL;
-         char **search_dirs;
-         int i;
--        const gchar * const *system_data_dirs = g_get_system_data_dirs ();
- 
-         static const char *x_search_dirs[] = {
-                 "/etc/X11/sessions/",
-                 DMCONFDIR "/Sessions/",
-                 DATADIR "/gdm/BuiltInSessions/",
--                DATADIR "/xsessions/",
-+                "/run/current-system/profile/share/xsessions/"
-         };
- 
-         static const char *wayland_search_dir = DATADIR "/wayland-sessions/";
- 
-         search_array = g_array_new (TRUE, TRUE, sizeof (char *));
- 
--        for (i = 0; system_data_dirs[i]; i++) {
--                gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
--                g_array_append_val (search_array, dir);
--        }
--
-         g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
- 
- #ifdef ENABLE_WAYLAND_SUPPORT
-@@ -373,16 +367,7 @@
- #ifdef ENABLE_USER_DISPLAY_SERVER
-                 g_array_prepend_val (search_array, wayland_search_dir);
- 
--                for (i = 0; system_data_dirs[i]; i++) {
--                        gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                        g_array_insert_val (search_array, i, dir);
--                }
- #else
--                for (i = 0; system_data_dirs[i]; i++) {
--                        gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                        g_array_append_val (search_array, dir);
--                }
--
-                 g_array_append_val (search_array, wayland_search_dir);
- #endif
-         }
-diff -ur a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
---- a/libgdm/gdm-sessions.c	2019-10-07 04:53:35.000000000 -0400
-+++ b/libgdm/gdm-sessions.c	2020-04-18 18:31:42.491348691 -0400
-@@ -245,19 +245,12 @@
-                 "/etc/X11/sessions/",
-                 DMCONFDIR "/Sessions/",
-                 DATADIR "/gdm/BuiltInSessions/",
--                DATADIR "/xsessions/",
-+                "/run/current-system/profile/share/xsessions/"
-         };
- 
-         names_seen_before = g_hash_table_new (g_str_hash, g_str_equal);
-         xorg_search_array = g_ptr_array_new_with_free_func (g_free);
- 
--        const gchar * const *system_data_dirs = g_get_system_data_dirs ();
--
--        for (i = 0; system_data_dirs[i]; i++) {
--                session_dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
--                g_ptr_array_add (xorg_search_array, session_dir);
--        }
--
-         for (i = 0; i < G_N_ELEMENTS (xorg_search_dirs); i++) {
-                 g_ptr_array_add (xorg_search_array, g_strdup (xorg_search_dirs[i]));
-         }
-@@ -269,11 +262,6 @@
- 
-         wayland_search_array = g_ptr_array_new_with_free_func (g_free);
- 
--        for (i = 0; system_data_dirs[i]; i++) {
--                session_dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                g_ptr_array_add (wayland_search_array, session_dir);
--        }
--
-         for (i = 0; i < G_N_ELEMENTS (wayland_search_dirs); i++) {
-                 g_ptr_array_add (wayland_search_array, g_strdup (wayland_search_dirs[i]));
-         }
-- 
2.28.0


[-- Attachment #1.1.4: 0066-gnu-gnome-shell-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 19889 bytes --]

From dc5e529d654523e620012a6d7ab232c552adf17b Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 11 Aug 2020 08:51:31 -0400
Subject: [PATCH 66/66] gnu: gnome-shell: Update package definition.

* gnu/packages/gnome.scm (gnome-shell) [version]: Update to 3.36.5.
[source]<origin>[sha256]: Modify base32.
[patches]: Remove field.
[snippet]: Remove field.
[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dgtk_doc]: New flag.
<#:disallowed-references>: Remove argument.
<#:modules>: Remove argument.
<#:phases>['patch-docbook]: New phase.
['patch-install-paths]: New phase.
['skip-gtk-update-icon-cache]: New phase.
['check]: Replace phase.
['no-meson-shenanigan]: New phase.
['move-doc]: New phase.
['fix-keysdir]: Remove phase.
['convert-logo-to-png]: Remove phase.
['record-absolute-file-names]: Remove phase.
['pre-check]: Remove phase.
['wrap-programs]: Remove phase.
[native-inputs]: Add dbus, docbook-xml, docbook-xsl and gtk-doc.
Remove inkscape and ruby-sassc. Replace python with python-wrapper.
[inputs]: Add appstream-glib, at-spi2-atk, bash-completion, clutter,
cogl, glib, gnome-control-center, gsettings-desktop-schemas, gstreamer,
gtk+, json-glib, network-manager, libsecret, libxml2, pango and libx11.
Remove caribou, docbook-xsl, libcanberra, libcroco, libgnomekbd, libnma,
libsoup, mesa-headers, network-manager-applet, python-pygobject,
telepathy-logger and upower.
[synopsis]: Modify.
[description]: Modify.

* gnu/packages/patches/gnome-shell-disable-test.patch: Remove file.
* gnu/packages/patches/gnome-shell-theme.patch: Remove file.

* gnu/local.mk (gnome-shell-disable-test.patch): Remove reference.
* gnu/local.mk (gnome-shell-theme.patch): Remove reference.
---
 gnu/local.mk                                  |   2 -
 gnu/packages/gnome.scm                        | 241 +++++++++---------
 .../patches/gnome-shell-disable-test.patch    |  25 --
 gnu/packages/patches/gnome-shell-theme.patch  |  51 ----
 4 files changed, 118 insertions(+), 201 deletions(-)
 delete mode 100644 gnu/packages/patches/gnome-shell-disable-test.patch
 delete mode 100644 gnu/packages/patches/gnome-shell-theme.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ec0b6defa8..4cd240d432 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1030,8 +1030,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-supported-locales.patch     	\
   %D%/packages/patches/gmp-arm-asm-nothumb.patch		\
   %D%/packages/patches/gmp-faulty-test.patch			\
-  %D%/packages/patches/gnome-shell-theme.patch			\
-  %D%/packages/patches/gnome-shell-disable-test.patch		\
   %D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
   %D%/packages/patches/gnome-tweaks-search-paths.patch		\
   %D%/packages/patches/gnupg-default-pinentry.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 83a6689b7c..2d0cb89af1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9889,162 +9889,157 @@ configuration of various aspects of your desktop.")
 (define-public gnome-shell
   (package
     (name "gnome-shell")
-    (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
-                "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
-              (patches (search-patches "gnome-shell-theme.patch"
-                                       "gnome-shell-disable-test.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               #~(begin
-                   ;; Copy images for use on the GDM log-in screen.
-                   (copy-file #$(file-append %artwork-repository
-                                             "/slim/0.x/background.png")
-                              "data/theme/guix-background.png")
-                   (copy-file #$(file-append %artwork-repository
-                                             "/logo/Guix-horizontal-white.svg")
-                              "data/theme/guix-logo.svg")
-                   #t))))
+    (version "3.36.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1hj7gmjmy92xndlgw7pzk5m6j2fbzcgfd1pxc32k38gml8qg19d4"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t
-       #:disallowed-references ((,glib "bin")
-                                ,inkscape ,libxslt
-                                ,ruby-sass)
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags
-       (list "-Dsystemd=false"
-             ;; Otherwise, the RUNPATH will lack the final path component.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out")
-                            "/lib/gnome-shell"))
-
-       #:modules ((guix build meson-build-system)
-                  (guix build utils)
-                  (srfi srfi-1))
-
+       (list
+        "-Dgtk_doc=true"
+        "-Dsystemd=false"
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out")
+                       "/lib/gnome-shell"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-keysdir
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out     (assoc-ref outputs "out"))
-                    (keysdir (string-append
-                              out "/share/gnome-control-center/keybindings")))
-               (substitute* "meson.build"
-                 (("keysdir =.*")
-                  (string-append "keysdir = '" keysdir "'\n")))
-               #t)))
-         (add-before 'configure 'convert-logo-to-png
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Convert the logo from SVG to PNG.
-             (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
-                     "data/theme/guix-logo.svg")))
-         (add-before 'configure 'record-absolute-file-names
+         (add-after 'unpack 'patch-docbook
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "js/misc/ibusManager.js"
-               (("'ibus-daemon'")
-                (string-append "'" (assoc-ref inputs "ibus")
-                               "/bin/ibus-daemon'")))
-             (substitute* "js/ui/status/keyboard.js"
-               (("'gkbd-keyboard-display'")
-                (string-append "'" (assoc-ref inputs "libgnomekbd")
-                               "/bin/gkbd-keyboard-display'")))
+             (substitute* '("man/gnome-shell.xml" "man/meson.build"
+                            "docs/reference/shell/shell-docs.sgml"
+                            "docs/reference/st/st-docs.sgml")
+               (("http://docbook.sourceforge.net/release/xsl/current")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)))
+               (("http://www.oasis-open.org/docbook/xml/4.3/")
+                (string-append (assoc-ref inputs "docbook-xml-4.3")
+                               "/xml/dtd/docbook/"))
+               (("http://www.oasis-open.org/docbook/xml/4.2/")
+                (string-append (assoc-ref inputs "docbook-xml-4.2")
+                               "/xml/dtd/docbook/")))
              #t))
-         (add-before 'check 'pre-check
-           (lambda* (#:key inputs #:allow-other-keys)
+         (add-after 'patch-docbook 'patch-install-paths
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("keybindings_dep\\.get_pkgconfig_variable\\('keysdir'\\)")
+                "join_paths(datadir, 'gnome-control-center', 'keybindings')"))
+             (substitute* '("src/meson.build" "src/st/meson.build"
+                            "subprojects/gvc/meson.build")
+               (("install_dir_gir: pkgdatadir,")
+                "install_dir_gir: join_paths(pkgdatadir, 'gir-1.0'),")
+               (("install_dir_typelib: pkglibdir,")
+                "install_dir_typelib: join_paths(pkglibdir, 'girepository-1.0'),"))
+             (substitute* "subprojects/extensions-tool/meson.build"
+               (("bash_completion\\.get_pkgconfig_variable\\('completionsdir'\\)")
+                (string-append "'"
+                               (assoc-ref outputs "out")
+                               "/share/bash-completion/completions"
+                               "'")))
+             #t))
+         (add-before 'configure 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "meson/postinstall.py"
+               (("gtk-update-icon-cache")
+                "true"))
+             #t))
+         (replace 'check
+           (lambda _
              ;; Tests require a running X server.
-             (system "Xvfb :1 &")
+             (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")
+             (invoke "dbus-launch" "ninja" "test")
              #t))
-         (add-after 'install 'wrap-programs
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out              (assoc-ref outputs "out"))
-                   (gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
-                   (python-path      (getenv "PYTHONPATH")))
-               (wrap-program (string-append out "/bin/gnome-shell")
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
-                 ;; FIXME: gnome-shell loads these libraries with unqualified
-                 ;; names only, so they need to be on LD_LIBRARY_PATH.  The
-                 ;; alternative might be to patch gnome-shell.
-                 `("LD_LIBRARY_PATH" ":" prefix
-                   ,(map (lambda (pkg)
-                           (string-append (assoc-ref inputs pkg) "/lib"))
-                         '("gdk-pixbuf"
-                           "gnome-bluetooth" "librsvg" "libgweather"))))
-               (for-each
-                (lambda (prog)
-                  (wrap-program (string-append out "/bin/" prog)
-                    `("PYTHONPATH"      ":" prefix (,python-path))
-                    `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-                '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
-               #t)))
-         (replace 'glib-or-gtk-wrap
-           (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
-             (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
-               ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
-               ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
-               ;; phase.  Fix that since we don't need these.
-               (wrap #:inputs (fold alist-delete inputs
-                                    '("inkscape" "intltool" "glib:bin"))
-                     #:outputs outputs)))))))
+         (add-before 'install 'no-meson-shenanigan
+           ;; Meson automagically invokes pkexec,
+           ;; which fails without setuid root.
+           (lambda _
+             (setenv "PKEXEC_UID" "whatever")
+             #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
      `(("asciidoc" ,asciidoc)
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
-       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+       ("dbus" ,dbus)
+       ("docbook-xml-4.2" ,docbook-xml-4.2)
+       ("docbook-xml-4.3" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("glib:bin" ,glib "bin")
+       ("desktop-file-utils" ,desktop-file-utils)
        ("gobject-introspection" ,gobject-introspection)
-       ("inkscape" ,inkscape)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("ruby-sass" ,ruby-sass)
+       ("python" ,python-wrapper)
        ("sassc" ,sassc)
        ("xsltproc" ,libxslt)
-       ;; For tests
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("accountsservice" ,accountsservice)
-       ("caribou" ,caribou)
-       ("docbook-xsl" ,docbook-xsl)
+       ("appstream-util" ,appstream-glib)
+       ("atk-bridge" ,at-spi2-atk)
+       ("bash-completion" ,bash-completion)
+       ("clutter" ,clutter)
+       ("cogl" ,cogl)
        ("evolution-data-server" ,evolution-data-server)
        ("gcr" ,gcr)
        ("gdm" ,gdm)
        ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("geoclue" ,geoclue)
        ("gjs" ,gjs)
+       ("glib" ,glib)
        ("gnome-autoar" ,gnome-autoar)
        ("gnome-bluetooth" ,gnome-bluetooth)
        ("gnome-desktop" ,gnome-desktop)
+       ("gnome-keybindings" ,gnome-control-center)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
+       ("gtk+" ,gtk+)
+       ("gweather" ,libgweather)
        ("ibus" ,ibus)
-       ("libcanberra" ,libcanberra)
-       ("libcroco" ,libcroco)
-       ("libgnomekbd" ,libgnomekbd)               ;for gkbd-keyboard-display
-       ("libgweather" ,libgweather)
-       ("libnma" ,libnma)
-       ("libsoup" ,libsoup)
-       ("mesa-headers" ,mesa-headers)
-       ("mutter" ,mutter)
-       ("network-manager-applet" ,network-manager-applet)
-       ("polkit" ,polkit)
-       ("pulseaudio" ,pulseaudio)
-       ("python-pygobject" ,python-pygobject)
-       ("startup-notification" ,startup-notification)
-       ("telepathy-logger" ,telepathy-logger)
-       ("upower" ,upower)
-       ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
-       ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
+       ("json-glib" ,json-glib)
+       ("libnm" ,network-manager)
+       ("libpulse" ,pulseaudio)
        ("librsvg" ,librsvg)
-       ("geoclue" ,geoclue)))
-    (synopsis "Desktop shell for GNOME")
+       ("libsecret" ,libsecret)
+       ("libstartup-notification" ,startup-notification)
+       ("libxml2" ,libxml2)
+       ("mutter" ,mutter)
+       ("pango" ,pango)
+       ("polkit-agent" ,polkit)
+       ("x11" ,libx11)))
+    (synopsis "Next generation desktop shell")
+    (description "GNOME-Shell provides core user interface functions for the
+GNOME desktop, like switching to windows and launching applications.  It takes
+advantage of the capabilities of modern graphics hardware and introduces
+innovative user interface concepts to provide a visually attractive and easy to
+use experience.")
     (home-page "https://wiki.gnome.org/Projects/GnomeShell")
-    (description
-     "GNOME Shell provides core user interface functions for the GNOME desktop,
-like switching to windows and launching applications.")
     (license license:gpl2+)))
 
 (define-public gtk-vnc
diff --git a/gnu/packages/patches/gnome-shell-disable-test.patch b/gnu/packages/patches/gnome-shell-disable-test.patch
deleted file mode 100644
index b4c7e73cd7..0000000000
--- a/gnu/packages/patches/gnome-shell-disable-test.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-This test seems to require a D-Bus connection not available in the build
-environment.
-
-diff -ur /tmp/guix-build-gnome-shell-3.34.2.drv-0/gnome-shell-3.34.2/src/st/meson.build b/src/st/meson.build
---- /tmp/guix-build-gnome-shell-3.34.2.drv-0/gnome-shell-3.34.2/src/st/meson.build	1969-12-31 19:00:00.000000000 -0500
-+++ b/src/st/meson.build	2019-12-23 00:46:14.721198022 -0500
-@@ -132,18 +132,6 @@
-   sources: st_enums[1]
- )
- 
--test_theme = executable('test-theme',
--  sources: 'test-theme.c',
--  c_args: st_cflags,
--  dependencies: [mutter_dep, gtk_dep],
--  build_rpath: mutter_typelibdir,
--  link_with: libst
--)
--
--test('CSS styling support', test_theme,
--  workdir: meson.current_source_dir()
--)
--
- libst_gir = gnome.generate_gir(libst,
-   sources: st_gir_sources,
-   nsversion: '1.0',
diff --git a/gnu/packages/patches/gnome-shell-theme.patch b/gnu/packages/patches/gnome-shell-theme.patch
deleted file mode 100644
index 3fa0670c43..0000000000
--- a/gnu/packages/patches/gnome-shell-theme.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Adjust GNOME-Shell so that it uses a Guix theme by default.
-
-Patch by Ludovic Courtès <ludo@gnu.org>.
-
-diff -ur a/data/gnome-shell-theme.gresource.xml b/data/gnome-shell-theme.gresource.xml
---- a/data/gnome-shell-theme.gresource.xml	2019-12-11 15:06:31.000000000 -0500
-+++ b/data/gnome-shell-theme.gresource.xml	2019-12-21 00:31:55.895866241 -0500
-@@ -19,6 +19,8 @@
-     <file>no-events.svg</file>
-     <file>no-notifications.svg</file>
-     <file>noise-texture.png</file>
-+    <file>guix-background.png</file>
-+    <file>guix-logo.png</file>
-     <file>pad-osd.css</file>
-     <file alias="icons/pointer-double-click-symbolic.svg">pointer-double-click-symbolic.svg</file>
-     <file alias="icons/pointer-drag-symbolic.svg">pointer-drag-symbolic.svg</file>
-diff -ur a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss
---- a/data/theme/gnome-shell-sass/_common.scss	2019-12-11 15:06:31.000000000 -0500
-+++ b/data/theme/gnome-shell-sass/_common.scss	2019-12-21 00:33:49.495832135 -0500
-@@ -1994,7 +1994,16 @@
-   }
- }
- 
--  .login-dialog-logo-bin { padding: 24px 0px; }
-+  .login-dialog-logo-bin {
-+      /* Make it a bit narrower than .login-dialog-user-list.  */
-+      width: 12em;
-+      height: 8em;
-+      background: url(resource:///org/gnome/shell/theme/guix-logo.png);
-+      background-color: transparent;
-+      background-repeat: no-repeat;
-+      background-size: contain;
-+      background-position: center; }
-+
-   .login-dialog-banner { color: darken($osd_fg_color,10%); }
-   .login-dialog-button-box { spacing: 5px; }
-   .login-dialog-message-warning { color: $warning_color; }
-@@ -2143,9 +2152,10 @@
- }
- 
- #lockDialogGroup {
--  background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/noise-texture.png);
--  background-repeat: repeat;
--}
-+  background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/guix-background.png);
-+  background-repeat: no-repeat;
-+  background-size: cover;
-+  background-position: center; }
- 
- #screenShieldNotifications {
-   StButton#vhandle, StButton#hhandle {
-- 
2.28.0


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-12  4:11                                                                     ` Raghav Gururajan
@ 2020-08-12  8:02                                                                       ` Danny Milosavljevic
  2020-08-19 15:06                                                                         ` Raghav Gururajan
  0 siblings, 1 reply; 84+ messages in thread
From: Danny Milosavljevic @ 2020-08-12  8:02 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

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

Hi RG,

pushed that patchset to wip-desktop.

I've changed liblouis output "louis" to "python" to do it the same way as other
packages do it.

Thanks!

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

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

* Re: [20.08.2020
  2020-08-07  2:14                                                             ` Raghav Gururajan
  2020-08-09 22:28                                                               ` Danny Milosavljevic
@ 2020-08-14 14:24                                                               ` Hartmut Goebel
  2020-08-14 14:28                                                                 ` [20.08.2020 Raghav Gururajan
  1 sibling, 1 reply; 84+ messages in thread
From: Hartmut Goebel @ 2020-08-14 14:24 UTC (permalink / raw)
  To: Raghav Gururajan, Danny Milosavljevic; +Cc: guix-devel


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

Hi Raghav,

does your planned work include only Gnome or also KDE Plasma? I'm asking
since I took up my work on plasma-desktop again and would like to avoid
duplicate work.

(Sorry if this is a obvious question, I did not follow your work closely.)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |




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

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

* Re: [20.08.2020
  2020-08-14 14:24                                                               ` [20.08.2020 Hartmut Goebel
@ 2020-08-14 14:28                                                                 ` Raghav Gururajan
  0 siblings, 0 replies; 84+ messages in thread
From: Raghav Gururajan @ 2020-08-14 14:28 UTC (permalink / raw)
  To: Hartmut Goebel, Danny Milosavljevic; +Cc: guix-devel


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

Hi Hartmut!

> does your planned work include only Gnome or also KDE Plasma? I'm asking
> since I took up my work on plasma-desktop again and would like to avoid
> duplicate work.

Just the GNOME.

> (Sorry if this is a obvious question, I did not follow your work closely.)

No worries! :-)

Regards,
RG.



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

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

* [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-12  8:02                                                                       ` Danny Milosavljevic
@ 2020-08-19 15:06                                                                         ` Raghav Gururajan
  2020-08-22 14:48                                                                           ` Pierre Neidhardt
  2020-08-24  3:18                                                                           ` Maxim Cournoyer
  0 siblings, 2 replies; 84+ messages in thread
From: Raghav Gururajan @ 2020-08-19 15:06 UTC (permalink / raw)
  To: guix-devel


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

Hello Guix!

As of today, my Outreachy Internship is over. I am very grateful to Guix
for giving me this amazing opportunity.

My work were done in wip-desktop branch. Some of the work are already
being merged to master. Some more work in wip-desktop, require testing
plus fix for some run-time errors, after which they will be merged to
master.

I initially planned to work on GNOME, Xfce, MATE and Enlightenment. But
in the given time-frame and other constraints, only working on one of
them (GNOME) was practically feasible. Although, I will still be
continuing to work on desktops, at my own pace.

With regards to changes that were made to GNOME, I will be writing a
blog post soon, which summaries the changes/improvements.

I wanted to convey special thanks to Danny (official mentor) and Tobias
(unofficial co-mentor), for helping me through-out the internship. I
definitely could not have done it without them.

Regards,
RG.


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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-19 15:06                                                                         ` Raghav Gururajan
@ 2020-08-22 14:48                                                                           ` Pierre Neidhardt
  2020-08-24  3:18                                                                           ` Maxim Cournoyer
  1 sibling, 0 replies; 84+ messages in thread
From: Pierre Neidhardt @ 2020-08-22 14:48 UTC (permalink / raw)
  To: Raghav Gururajan, guix-devel

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

Congratulation!

Better desktop integration is a critical milestone before Guix gets
traction in my understanding.  Thank you so much for your hard work!

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

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

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

* Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
  2020-08-19 15:06                                                                         ` Raghav Gururajan
  2020-08-22 14:48                                                                           ` Pierre Neidhardt
@ 2020-08-24  3:18                                                                           ` Maxim Cournoyer
  1 sibling, 0 replies; 84+ messages in thread
From: Maxim Cournoyer @ 2020-08-24  3:18 UTC (permalink / raw)
  To: Raghav Gururajan; +Cc: guix-devel

Raghav Gururajan <raghavgururajan@disroot.org> writes:

> Hello Guix!
>
> As of today, my Outreachy Internship is over. I am very grateful to Guix
> for giving me this amazing opportunity.
>
> My work were done in wip-desktop branch. Some of the work are already
> being merged to master. Some more work in wip-desktop, require testing
> plus fix for some run-time errors, after which they will be merged to
> master.
>

Impressive work!  Thank you for tackling it :-).

> I wanted to convey special thanks to Danny (official mentor) and Tobias
> (unofficial co-mentor), for helping me through-out the internship. I
> definitely could not have done it without them.

Thanks to Danny and Tobias for supporting you through it, too!

Enjoy the rest of your summer and see you in #guix :-).

Maxim


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

end of thread, other threads:[~2020-08-24  3:18 UTC | newest]

Thread overview: 84+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2020-05-06 16:03   ` Raghav Gururajan
2020-05-06 15:52 ` sirgazil
2020-05-06 16:04   ` Raghav Gururajan
2020-05-06 17:22 ` Jan Nieuwenhuizen
2020-05-06 17:23   ` Raghav Gururajan
2020-05-20 13:34 ` Raghav Gururajan
2020-05-20 13:51   ` Pierre Neidhardt
2020-05-20 13:57     ` Raghav Gururajan
2020-05-20 14:06       ` Pierre Neidhardt
2020-05-21  9:08   ` Efraim Flashner
2020-05-22 11:18     ` Raghav Gururajan
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:11         ` Raghav Gururajan
2020-05-28 17:10       ` Raghav Gururajan
2020-05-28 18:23         ` Danny Milosavljevic
2020-05-29 21:01           ` Raghav Gururajan
2020-05-29 23:02             ` Danny Milosavljevic
2020-05-29 20:54         ` Raghav Gururajan
2020-05-29 21:08           ` Raghav Gururajan
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
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
2020-06-19 23:37                   ` Raghav Gururajan
2020-06-24 22:40                     ` Danny Milosavljevic
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-06 19:56                             ` Efraim Flashner
2020-07-05 19:25                         ` Danny Milosavljevic
2020-07-06  5:05                           ` Raghav Gururajan
2020-07-13 13:45                             ` Ludovic Courtès
2020-07-13 13:50                               ` Raghav Gururajan
2020-07-16  1:21                             ` Raghav Gururajan
2020-07-17 12:38                               ` Danny Milosavljevic
2020-07-18 13:29                                 ` Raghav Gururajan
2020-07-18 14:12                                   ` Danny Milosavljevic
2020-07-18 19:27                                     ` Raghav Gururajan
2020-07-18 20:18                                       ` Raghav Gururajan
2020-07-19 11:43                                         ` Danny Milosavljevic
2020-07-19 19:21                                         ` Danny Milosavljevic
2020-07-19 19:22                                   ` Danny Milosavljevic
2020-07-20  1:54                                     ` Raghav Gururajan
2020-07-24 18:29                                       ` Raghav Gururajan
2020-07-25  8:15                                         ` Raghav Gururajan
2020-07-25  8:18                                           ` Raghav Gururajan
2020-07-25  8:24                                             ` Raghav Gururajan
2020-07-25  9:12                                               ` Raghav Gururajan
2020-07-27 16:11                                                 ` Raghav Gururajan
2020-07-30 23:51                                                   ` Raghav Gururajan
2020-08-02  7:32                                                   ` Raghav Gururajan
2020-08-03 22:29                                                     ` Danny Milosavljevic
2020-08-04 10:22                                                       ` Raghav Gururajan
2020-08-04 22:50                                                         ` Raghav Gururajan
2020-08-05 15:14                                                           ` Danny Milosavljevic
2020-08-07  2:14                                                             ` Raghav Gururajan
2020-08-09 22:28                                                               ` Danny Milosavljevic
2020-08-11 10:38                                                                 ` Raghav Gururajan
2020-08-12  4:05                                                                   ` Raghav Gururajan
2020-08-12  4:11                                                                     ` Raghav Gururajan
2020-08-12  8:02                                                                       ` Danny Milosavljevic
2020-08-19 15:06                                                                         ` Raghav Gururajan
2020-08-22 14:48                                                                           ` Pierre Neidhardt
2020-08-24  3:18                                                                           ` Maxim Cournoyer
2020-08-14 14:24                                                               ` [20.08.2020 Hartmut Goebel
2020-08-14 14:28                                                                 ` [20.08.2020 Raghav Gururajan
2020-06-24 11:37                   ` [OUTREACHY]: Integration of desktop environments into GNU Guix Danny Milosavljevic
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
2020-05-25 19:58     ` Danny Milosavljevic
2020-05-25 20:00     ` Danny Milosavljevic

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).