From cdb9becc178fa90bf30e39e0b7512137774f80f4 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 25 Mar 2020 23:20:21 +0000 Subject: media-sound/xmms2: Fix build with Py3.{7,8} by using newer Waf The Waf package has been last-rited but that doesn't stop us from grabbing it independently here. Ideally upstream would update though. I've also tidied up the ebuild a bit by using arrays and dropping an unnecessary Perl patch. Package-Manager: Portage-2.3.96, Repoman-2.3.20 Signed-off-by: James Le Cuirot --- media-sound/xmms2/Manifest | 1 + media-sound/xmms2/xmms2-0.8_p20161122-r6.ebuild | 96 ++++++++++++++----------- 2 files changed, 54 insertions(+), 43 deletions(-) diff --git a/media-sound/xmms2/Manifest b/media-sound/xmms2/Manifest index 3cd5c987f31e..a2ed2cb69e18 100644 --- a/media-sound/xmms2/Manifest +++ b/media-sound/xmms2/Manifest @@ -1 +1,2 @@ +DIST waf-2.0.19.tar.bz2 682213 BLAKE2B 0bd2e31827ac65e0565abc09df37a42193ff37b50b6d0244f8b10ba7f308b4ba31ba864742d8c8d4005b86e611223dc4315cf70c0dbbf6b7db8f02e4f551fbb2 SHA512 ae7f3973c79e44313b4894c75763ad43ccd2be88e0d351d7f606ce495c5a464a379c85c076ebd8ba577fc88918af2bbb39bbec1049f25f02c14d98388e012c59 DIST xmms2-0.8DrO_o-949-gca15e830.tar.bz2 1928653 BLAKE2B f34abf0c68f4574593eb706744cc4354bc9b679d005bcaf4a9f03ef90fcb14935428c73d3d74565c41a70efcfa6541af15a455d091b6d17e7ca613229c1c1390 SHA512 affd7fdd259cdb952e972b62f24ab8eb6afd2c87786254a7ae81adffdcfe1454dcf2fb95811a8b90db74dba84918526fd8c920e11582b36aa48725f293c73edb diff --git a/media-sound/xmms2/xmms2-0.8_p20161122-r6.ebuild b/media-sound/xmms2/xmms2-0.8_p20161122-r6.ebuild index cc6293aa50a6..691654060525 100644 --- a/media-sound/xmms2/xmms2-0.8_p20161122-r6.ebuild +++ b/media-sound/xmms2/xmms2-0.8_p20161122-r6.ebuild @@ -3,18 +3,20 @@ EAPI=7 -PYTHON_COMPAT=( python3_6 ) +PYTHON_COMPAT=( python3_{6,7,8} ) USE_RUBY="ruby23 ruby24 ruby25" -inherit eutils multiprocessing python-single-r1 ruby-single toolchain-funcs +inherit eutils multiprocessing perl-functions python-single-r1 ruby-single toolchain-funcs # generated as 'python2 ./utils/gen-tarball.py' from clean git tree MY_P="${P%_p*}DrO_o-949-gca15e830" +WAF_VER="2.0.19" DESCRIPTION="X(cross)platform Music Multiplexing System. Next generation of the XMMS player" HOMEPAGE="https://xmms2.org/wiki/Main_Page" #SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2" -SRC_URI="https://dev.gentoo.org/~slyfox/distfiles/${MY_P}.tar.bz2" +SRC_URI="https://dev.gentoo.org/~slyfox/distfiles/${MY_P}.tar.bz2 + https://waf.io/waf-${WAF_VER}.tar.bz2" LICENSE="GPL-2 LGPL-2.1" SLOT="0" @@ -90,6 +92,30 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}" S="${WORKDIR}/${MY_P}" +PATCHES=( + # needs port + #epatch "${FILESDIR}/${PN}"-0.8DrO_o-waflib-fix-perl.patch #578778 + + "${FILESDIR}/${PN}"-0.8-ffmpeg2.patch #536232 + + "${FILESDIR}/${PN}"-0.8-rtvg.patch #424377 + + # required to build tarball from git tree + "${FILESDIR}/${P}"-tarball.patch + + # fix hash to be the same on LE/BE platforms + "${FILESDIR}/${P}"-be-hash.patch + + # handle mac-3 -> -4 API change + "${FILESDIR}/${P}"-mac-4.patch + + # C++ client dangling reference: https://github.com/xmms2/xmms2-devel/pull/5 + "${FILESDIR}/${P}"-cpp-client.patch + + # gcc-10 stopped putting globals into common section + "${FILESDIR}/${P}"-gcc-10.patch +) + pkg_setup() { # used both for building xmms2 and # optionally linking client library @@ -119,50 +145,27 @@ xmms2_flag() { } src_prepare() { - ./waf # inflate waf - cd .waf* || die - # needs port - #epatch "${FILESDIR}/${PN}"-0.8DrO_o-waflib-fix-perl.patch #578778 - eapply "${FILESDIR}/${PN}"-0.8_p20161122-perl-no-local.patch - cd "${S}" - - eapply "${FILESDIR}/${PN}"-0.8-ffmpeg2.patch #536232 - - eapply "${FILESDIR}/${PN}"-0.8-rtvg.patch #424377 - - # required to build tarball from git tree - eapply "${FILESDIR}/${P}"-tarball.patch - - # fix hash to be the same on LE/BE platforms - eapply "${FILESDIR}/${P}"-be-hash.patch - - # handle mac-3 -> -4 API change - eapply "${FILESDIR}/${P}"-mac-4.patch - - # C++ client dangling reference: https://github.com/xmms2/xmms2-devel/pull/5 - eapply "${FILESDIR}/${P}"-cpp-client.patch - - # gcc-10 stopped putting globals into common section - eapply "${FILESDIR}/${P}"-gcc-10.patch - - eapply_user + mv "${WORKDIR}/waf-${WAF_VER}"/{waf,waflib/} . || die + default } src_configure() { # ./configure alike options. - local waf_params="--prefix=/usr \ - --libdir=/usr/$(get_libdir) \ - --with-target-platform=${CHOST} \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --datadir=/usr/share \ - --sysconfdir=/etc \ - --localstatedir=/var/lib" + local waf_params=( + --prefix=/usr + --libdir=/usr/$(get_libdir) + --with-target-platform="${CHOST}" + --mandir=/usr/share/man + --infodir=/usr/share/info + --datadir=/usr/share + --sysconfdir=/etc + --localstatedir=/var/lib + ) local optionals="" local plugins="" if ! use server ; then - waf_params+=" --without-xmms2d" + waf_params+=( --without-xmms2d ) else # some fun static mappings: local option_map=( # USE # sorted xmms2 option flag (same, as USE if empty) @@ -259,19 +262,26 @@ src_configure() { for plugin in "${plugin_map[@]}"; do plugins+=$(xmms2_flag $plugin) done + + if use perl; then + perl_set_version + waf_params+=( --with-perl-archdir="${ARCH_LIB}" ) + fi fi # ! server # pass them explicitely even if empty as we try to avoid magic deps - waf_params+=" --with-optionals=${optionals:1}" # skip first ',' if yet - waf_params+=" --with-plugins=${plugins:1}" - waf_params+=" $(use_with valgrind)" + waf_params+=( + --with-optionals="${optionals:1}" # skip first ',' if yet + --with-plugins="${plugins:1}" + $(use_with valgrind) + ) CC="$(tc-getCC)" \ CPP="$(tc-getCPP)" \ AR="$(tc-getAR)" \ RANLIB="$(tc-getRANLIB)" \ CXX="$(tc-getCXX)" \ - ./waf configure ${waf_params} || die "'waf configure' failed" + ./waf configure "${waf_params[@]}" || die "'waf configure' failed" } src_compile() { -- cgit v1.2.3-65-gdbad