From 48bd27863ff5d6445dd393294fc6aec1f93a0d6a Mon Sep 17 00:00:00 2001 From: Sarah Morgensen Date: Sat, 4 Sep 2021 22:43:29 -0700 Subject: gnu: pipewire: Fix build with GCC 10. * gnu/packages/patches/pipewire-0.2.7-fno-common.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/linux.scm (pipewire)[source]: Use it. Signed-off-by: Guillaume Le Vaillant --- gnu/local.mk | 1 + gnu/packages/linux.scm | 4 +- .../patches/pipewire-0.2.7-fno-common.patch | 51 ++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/pipewire-0.2.7-fno-common.patch diff --git a/gnu/local.mk b/gnu/local.mk index bb22e29caa..23dcdccc6c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1567,6 +1567,7 @@ dist_patch_DATA = \ %D%/packages/patches/pinball-system-ltdl.patch \ %D%/packages/patches/pingus-boost-headers.patch \ %D%/packages/patches/pingus-sdl-libs-config.patch \ + %D%/packages/patches/pipewire-0.2.7-fno-common.patch \ %D%/packages/patches/pixman-CVE-2016-5296.patch \ %D%/packages/patches/pjproject-correct-the-cflags-field.patch \ %D%/packages/patches/pjproject-fix-pkg-config-ldflags.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 63f0e4108c..a8830850d2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -55,6 +55,7 @@ ;;; Copyright © 2021 Ivan Gankevich ;;; Copyright © 2021 Maxime Devos ;;; Copyright © 2021 Guillaume Le Vaillant +;;; Copyright © 2021 Sarah Morgensen ;;; ;;; This file is part of GNU Guix. ;;; @@ -7845,7 +7846,8 @@ types and interfaces and translates so that the X server can use them.") (file-name (git-file-name name version)) (sha256 (base32 - "1q5wrqnhhs6r49p8yvkw1pl0cnsd4rndxy4h5lvdydwgf1civcwc")))) + "1q5wrqnhhs6r49p8yvkw1pl0cnsd4rndxy4h5lvdydwgf1civcwc")) + (patches (search-patches "pipewire-0.2.7-fno-common.patch")))) (build-system meson-build-system) (arguments '(#:configure-flags '("-Dsystemd=false"))) diff --git a/gnu/packages/patches/pipewire-0.2.7-fno-common.patch b/gnu/packages/patches/pipewire-0.2.7-fno-common.patch new file mode 100644 index 0000000000..f7d9b25932 --- /dev/null +++ b/gnu/packages/patches/pipewire-0.2.7-fno-common.patch @@ -0,0 +1,51 @@ +Fixes 'multiple definition errors' when building with GCC 10+ + +From: https://bugs.gentoo.org/710796 +Originally from: https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a62e41e +and https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/7a976c7 + +--- a/spa/plugins/bluez5/a2dp-codecs.h ++++ b/spa/plugins/bluez5/a2dp-codecs.h +@@ -284,15 +284,15 @@ + } + } + +-const a2dp_sbc_t bluez_a2dp_sbc; ++extern const a2dp_sbc_t bluez_a2dp_sbc; + #if ENABLE_MP3 +-const a2dp_mpeg_t bluez_a2dp_mpeg; ++extern const a2dp_mpeg_t bluez_a2dp_mpeg; + #endif + #if ENABLE_AAC +-const a2dp_aac_t bluez_a2dp_aac; ++extern const a2dp_aac_t bluez_a2dp_aac; + #endif + #if ENABLE_APTX +-const a2dp_aptx_t bluez_a2dp_aptx; ++extern const a2dp_aptx_t bluez_a2dp_aptx; + #endif + + #endif +--- a/spa/plugins/bluez5/bluez5-monitor.c ++++ b/spa/plugins/bluez5/bluez5-monitor.c +@@ -75,7 +75,7 @@ + struct spa_list transport_list; + }; + +-struct spa_handle_factory spa_a2dp_sink_factory; ++extern struct spa_handle_factory spa_a2dp_sink_factory; + + static void fill_item(struct spa_bt_monitor *this, struct spa_bt_transport *transport, + struct spa_pod **result, struct spa_pod_builder *builder) +--- a/spa/plugins/bluez5/meson.build ++++ b/spa/plugins/bluez5/meson.build +@@ -1,7 +1,8 @@ + + bluez5_sources = ['plugin.c', + 'a2dp-sink.c', +- 'bluez5-monitor.c'] ++ 'a2dp-codecs.c', ++ 'bluez5-monitor.c'] + + bluez5lib = shared_library('spa-bluez5', + bluez5_sources, -- cgit v1.2.3