Subject: [PATCH core-updates-frozen] gnu: libappindicator: Fix build for GCC 10.
From: Sarah Morgensen <[email-masked]>
To: [email-masked]
Date: Sat, 4 Sep 2021 21:36:53 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/freedesktop.scm (libappindicator): Add snippet to prevent
declaring _PyGObject_API twice.
---
I'm not entirely sure this is the correct fix (I have no expertise with
pygobject), but after reading pygobject.h it's my best guess.

(I'm not sure if adding -fcommon to CFLAGS would cause issues with
dependents not using -fcommon, since this is a library.)

I've tested this to build on x86_64.

 gnu/packages/freedesktop.scm | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index a7766edf04..f7972695e5 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2020 Raghav Gururajan <[email-masked]>
 ;;; Copyright © 2021 Brendan Tildesley <[email-masked]>
 ;;; Copyright © 2021 pineapples <[email-masked]>
+;;; Copyright © 2021 Sarah Morgensen <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2210,6 +2211,13 @@ useful with system integration.")
              "https://launchpad.net/libappindicator/"
              (version-major+minor version) "/" version
              "/+download/libappindicator-" version ".tar.gz"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Fix 'multiple definitions' error from GCC 10
+           (substitute* "bindings/python/appindicatormodule.c"
+             (("^#include <pygobject.h>" all)
+              (string-append "#define NO_IMPORT_PYGOBJECT\n" all)))))
        (sha256
         (base32
          "17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m"))))

base-commit: 68dd6d809398297dc2ebef522186c9b9f2566739
-- 
2.32.0