From 9244ad854d30e8c942460646ef6f6194ee44942d Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rg=20Krause?= Date: Wed, 15 Feb 2017 15:51:02 +0100 Subject: [PATCH] package/mpd: add choice between version 0.19 and 0.20 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit MPD version 0.20 being affected by GCC PR libstdc++/64735 means no mpd package available in Buildroot for the architectures NIOSII, ARMv4, ARMv5 and SPARCv8 until GCC 7 is released. As the next Buildroot release is in 2017.02, which is before GCC 7 is expected to be finished we add hidden config symbols to select the version branch to use. Note, that we bumped the version from 0.19 to 0.20 quite recently within the current Buildroot release cycle. This way we can keep the support for mpd on the affected architectures, like ARMv5, until GCC 7 is out. Note, that for the version 0.19 MPD requires libglib2. Signed-off-by: Jörg Krause Cc: Thomas Petazzoni Signed-off-by: Thomas Petazzoni --- package/mpd/Config.in | 26 +++++++++++++++++++++----- package/mpd/mpd.hash | 1 + package/mpd/mpd.mk | 10 +++++++++- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/package/mpd/Config.in b/package/mpd/Config.in index 8a28b4f1a3..8eabbbc796 100644 --- a/package/mpd/Config.in +++ b/package/mpd/Config.in @@ -4,9 +4,10 @@ menuconfig BR2_PACKAGE_MPD depends on BR2_USE_WCHAR # flac depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 - depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 depends on BR2_TOOLCHAIN_HAS_ATOMIC + # 0.19.x could be built with GCC 4.6, but for simplicity we require + # the same toolchain dependencies for all versions. + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 select BR2_PACKAGE_BOOST select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_MPD_TREMOR if !(BR2_PACKAGE_MPD_MAD || BR2_PACKAGE_MPD_MPG123 || BR2_PACKAGE_MPD_VORBIS || BR2_PACKAGE_MPD_WAVPACK || BR2_PACKAGE_MPD_FLAC || BR2_PACKAGE_MPD_MUSEPACK || BR2_PACKAGE_MPD_FFMPEG) @@ -20,6 +21,24 @@ menuconfig BR2_PACKAGE_MPD if BR2_PACKAGE_MPD +# Hidden config symbols to select the branch 0.20 by default and fallback +# to branch 0.19 for toolchains affected by GCC bug PR 64735. This way we +# keep support for mpd on some architectures, like ARMv5, until GCC 7 is +# released, which will fix this issue. +config BR2_PACKAGE_MPD_VERSION_STRING + string + default "0.20" if !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 + default "0.19" + +config BR2_PACKAGE_MPD_VERSION_0_20 + bool + default y if BR2_PACKAGE_MPD_VERSION_STRING = "0.20" + +config BR2_PACKAGE_MPD_VERSION_0_19 + bool + default y if BR2_PACKAGE_MPD_VERSION_STRING = "0.19" + select BR2_PACKAGE_LIBGLIB2 + comment "Archive plugins" config BR2_PACKAGE_MPD_BZIP2 @@ -320,6 +339,3 @@ comment "mpd needs a toolchain w/ C++, threads, wchar, gcc >= 4.9" depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 - -comment "mpd needs a toolchain not affected by GCC bug 64735" - depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 diff --git a/package/mpd/mpd.hash b/package/mpd/mpd.hash index ee46f3cc5d..ecd78e97c1 100644 --- a/package/mpd/mpd.hash +++ b/package/mpd/mpd.hash @@ -1,2 +1,3 @@ # Locally calculated after checking pgp signature sha256 712b25351c12616630c580204e1c3dcba3ae2993a56cff1c346c87e334d69728 mpd-0.20.4.tar.xz +sha256 8305b8bc026f4b6bde28b8dd09bfdddbe5590acf36358eed4d083a396e301730 mpd-0.19.21.tar.xz diff --git a/package/mpd/mpd.mk b/package/mpd/mpd.mk index 0efc8685f5..8869176d2d 100644 --- a/package/mpd/mpd.mk +++ b/package/mpd/mpd.mk @@ -4,8 +4,12 @@ # ################################################################################ -MPD_VERSION_MAJOR = 0.20 +MPD_VERSION_MAJOR = $(call qstrip,$(BR2_PACKAGE_MPD_VERSION_STRING)) +ifeq ($(BR2_PACKAGE_MPD_VERSION_0_20),y) MPD_VERSION = $(MPD_VERSION_MAJOR).4 +else +MPD_VERSION = $(MPD_VERSION_MAJOR).21 +endif MPD_SOURCE = mpd-$(MPD_VERSION).tar.xz MPD_SITE = http://www.musicpd.org/download/mpd/$(MPD_VERSION_MAJOR) MPD_DEPENDENCIES = host-pkgconf boost @@ -13,6 +17,10 @@ MPD_LICENSE = GPLv2+ MPD_LICENSE_FILES = COPYING MPD_AUTORECONF = YES +ifeq ($(BR2_MPD_VERSION_0_19),y) +MPD_DEPENDENCIES += libglib2 +endif + # Some options need an explicit --disable or --enable # Zeroconf support depends on libdns_sd from avahi. -- 2.30.2