From 7c59acba5699c9c58090a7a738669669a7307023 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 21 Aug 2021 23:14:26 +0100 Subject: gentoo resync : 21.08.2021 --- media-sound/xmms2/Manifest | 15 +- media-sound/xmms2/files/xmms2-0.8-rtvg.patch | 5 - .../files/xmms2-0.8DrO_o-waflib-fix-perl.patch | 27 --- .../files/xmms2-0.8_p20161122-cpp-client.patch | 52 ----- .../xmms2/files/xmms2-0.8_p20161122-faad.patch | 2 - .../xmms2/files/xmms2-0.8_p20161122-mac-4.patch | 18 +- media-sound/xmms2/metadata.xml | 40 +--- media-sound/xmms2/xmms2-0.8_p20201016.ebuild | 236 +++++++++++++++++++++ 8 files changed, 257 insertions(+), 138 deletions(-) delete mode 100644 media-sound/xmms2/files/xmms2-0.8DrO_o-waflib-fix-perl.patch create mode 100644 media-sound/xmms2/xmms2-0.8_p20201016.ebuild (limited to 'media-sound/xmms2') diff --git a/media-sound/xmms2/Manifest b/media-sound/xmms2/Manifest index 1943903da0e3..91f45ac3e2e4 100644 --- a/media-sound/xmms2/Manifest +++ b/media-sound/xmms2/Manifest @@ -1,13 +1,16 @@ AUX xmms2-0.8-ffmpeg2.patch 455 BLAKE2B 4009dd67794554c3dd98199944410f435f978d1ea86c3c280678d24cd8b85846e34d73c6a960e5188827d1523300e7869a3c0c1094fd355fc9c77f917a257508 SHA512 6aa567c3d823780c7fc8951735f59bcbe3345989e077d3ea6d8100acedd3ebf30523f05152fb80827c236ff83674bb47ca0917b5d2331c4d79c4502e41b365a3 -AUX xmms2-0.8-rtvg.patch 1539 BLAKE2B b359db6f477f0ca6a8e528645f731ccb33ec13067ff4c9fa1ca2ce1f13108c8c42b242562d08bd9997c06845873bb8efaba0f04e23bb2a79cb863c76223a86af SHA512 b8c6b908f48ab239c2c734452eebd2b9a4a2f4f2b98278bb0951d9a97e0d3df03b5443bc3a6bb92ff3133894d7b6239373b3323251f34c6852eee988aae5205f -AUX xmms2-0.8DrO_o-waflib-fix-perl.patch 1693 BLAKE2B 6057da2c8493ea7887ea03322d16d45ca0726174e7deb1a64f76b289fdeaba02c7659944803a23d7a32a0a74de7a39de1404d5566b43dd3306004a29876af038 SHA512 0f7f86cebd0ff75ed53366776f8c93abb54adf5942f53d7424183a4bd6913b73493882d4d3caadba6a959ddf22da0a22fa53d0fc18ce5b8508eb5670482e8c92 +AUX xmms2-0.8-rtvg.patch 1358 BLAKE2B 1544ae0719b02ad94c19239d7ad3b16d3df3a29e1a5580b7541f2c8966f88c9fefafe2e151524e8e0397ac147c65898a841629acaf7f6d96fb76f0f57e4e2e33 SHA512 cc4d0d6cb459040fa55478b55780f34556f78627a2313b598eb276509248f3b6df4c252722ca2f996847e2f3a01392e9435fefd1ad5342c3a87a54bf0673cb0f AUX xmms2-0.8_p20161122-be-hash.patch 1075 BLAKE2B 7c9678016751b207a5ef48c0f7963bc0a2e3e99fb461e52b5745bc5e2dde6c329bb358e58802c127aef96d5912e22a7df7a64f719286e9cf7787703765c4b18f SHA512 051e22907315bb6bda201497e1c2ef84d919fc7d39aefac187b3616c5f6c41e768cdd79cfe197fbadfdda3863f9e9c96b5f72fa07d5e1655451328cde8ba5781 -AUX xmms2-0.8_p20161122-cpp-client.patch 2326 BLAKE2B a59da287dafafe8a3a177c11673eb7de5918fc6efef2e32c707832d7ea202091493e41f907f3e2dc370cd34d990571eed1d274fddf05f715dff7462973fb802f SHA512 095f2878afe9616bc7982037c0a9b0cc610164e04d116d40fe138df0280160680c19f6bf5c2f9aed6e9d31d42ee2f310570aefae28872ee15496f886d20ee2e9 -AUX xmms2-0.8_p20161122-faad.patch 724 BLAKE2B d7e11332341c2e1d4b19e31b19db9f577a41aee9172e886d885ae6a9518383c861537f6cc2eba2314839a000a2216828a176de9095ec45050b8621da9db9aa88 SHA512 2bed6ce756c0bbf21413485b336e4e33d8dc261c214c51bc6a0c7d310ae6e885526b8f243763f6c3ec665024e94acc55a46b26dcadf9a9cc0b5bf77b9306c1ed +AUX xmms2-0.8_p20161122-cpp-client.patch 624 BLAKE2B fd08746e4ce3c83a1cfed7a6794e169f435da2a1fdf639ae2d948109a22526a5a68f03f1dfabeaabc022dda8b403d08b2cf3c6944429b1b748ee75ac69840caf SHA512 19af5f465c1e48a9ca780b6cad1348eb6fc315b05923f0d4ded7c6972e2cbb3213ad8adf994e13c80c1d69c47bee97660fccad85c9b98ab9752a0ff9f930ea7c +AUX xmms2-0.8_p20161122-faad.patch 629 BLAKE2B e2dc8964d1002ff55be736e6b0370f946e9d8dbdeaab8f9f50bebce210b431894174e80fbba8bc77c79f048c69d8ece85585395840a09fce6b58fdaaf404494f SHA512 7a40d77cefcc483e6ee24a672b30ddd9f763e642bbac6baf88c315ea4a1aea9c87212627fd641f6107f76ab3185a762129ed02c2f090b2264f89016fe4ff2d5f AUX xmms2-0.8_p20161122-gcc-10.patch 222 BLAKE2B a198b2e69081253f299ff1c7f94f0a2d3572a31caf4b7ec7de20e8d9a9bc404c58a98b31f0da6560034fe09599ae2e9f03b97728f45ad2fc30061b384c9fb13d SHA512 44685777b04e46e236104a74e654162a85b5c76c9838572921cc78b4775a7c2d5127566202415bfab10bb17261e242b034dde8aaf44024b66daa55a150ed1352 -AUX xmms2-0.8_p20161122-mac-4.patch 1632 BLAKE2B 5bc5c7d499df5faee2fc6b4307af18269b784360bbbcaef33b1db4b880704f88e8dad06168e3737a43fcdb71ba722da1ffb5ba77f3f61ecf07674e1ad0988f5a SHA512 d2fe5f9a0c59205c787386e7b219c3fa9a334c30787b9a343214cc1c4dbf9f5d47f5dad9b2efd7deac1e96a227c827cc66198215a89b0e788c9d856cff51b16b +AUX xmms2-0.8_p20161122-mac-4.patch 1215 BLAKE2B 746bcf75ce5b1f73ecb4023e776080674da5781d122f988ddb719ccdfb1da95fb632242004096a79861c0a9f0a3a49734a86bd8ac4c0541d3b3742cd722c8d44 SHA512 14b46640163f1d651e310d1bf08ec190a7449615c574952c19fa2c7f86215d83d3ee6d6cbe0f665a5fdd44ec44e44bc339a480ce753f16f2b49a4206dde1c12b AUX xmms2-0.8_p20161122-tarball.patch 2764 BLAKE2B 1d6ea9bc40db3145460a8ef06c732114475087ea05eef65fd837d6c3bf346478579d7c6ab0bf33387d2228a319245e0e4d2562935be75a58abd04e88205d4373 SHA512 5b03d129a55ac14462a68e47ecba29c2817eb83d122a3614c624c743ecc29a7bac066644aa61d5ac74f9cb59808d1a9bac077dc360c507da722c206b948301ac DIST waf-2.0.19.tar.bz2 682213 BLAKE2B 0bd2e31827ac65e0565abc09df37a42193ff37b50b6d0244f8b10ba7f308b4ba31ba864742d8c8d4005b86e611223dc4315cf70c0dbbf6b7db8f02e4f551fbb2 SHA512 ae7f3973c79e44313b4894c75763ad43ccd2be88e0d351d7f606ce495c5a464a379c85c076ebd8ba577fc88918af2bbb39bbec1049f25f02c14d98388e012c59 +DIST waf-2.0.22.tar.bz2 687244 BLAKE2B feea82e7e6aaba1187f368aa00025f206a7217196de9be7a97ca6aa8882823decd79db38dda4f1f25e81541eaa44edf029eea8d57e28f7d31b94d9ee93201ea9 SHA512 a3a275fd4c81c7b7385c2da001f3924d272105b8f33839265ebbb38708051b7cb13b9b9019e84325707d04513de0c13b032b1ad21458aec6586d10df4ed8d5f5 DIST xmms2-0.8DrO_o-949-gca15e830.tar.bz2 1928653 BLAKE2B f34abf0c68f4574593eb706744cc4354bc9b679d005bcaf4a9f03ef90fcb14935428c73d3d74565c41a70efcfa6541af15a455d091b6d17e7ca613229c1c1390 SHA512 affd7fdd259cdb952e972b62f24ab8eb6afd2c87786254a7ae81adffdcfe1454dcf2fb95811a8b90db74dba84918526fd8c920e11582b36aa48725f293c73edb +DIST xmms2-0.8_p20201016.tar.gz 1720185 BLAKE2B e1cad8ed2ece9d8ce905ffe86de53bb4010639d83fd15700eefccf190034577ff8666f3557bfb23741ed8400eba1e6246ef28ff21c4dbbe499239da945befc74 SHA512 0e73771f56c341e5dea15451457426958217de3ac19cad1924c11740f96feb69e385242a27a9cf9258841ed4e6538c12e135492f715bfae6976b31fb358508bf +DIST xmms2-s4-0.8_p20201016.tar.gz 184231 BLAKE2B 0676f89b743e265af01593c215c609ae48ea368d861fd28b022b4124a00852182686a46ebf90ac44a10343f86ba5c398c47fd85e2688971b2b4445f3c3843af5 SHA512 f510141ca792893feba2c00d9bc437f492fdce7c29b12c9a8432792ca5a1703cc7068e1a9f4641abd50b320fefb5867fb5bc58a58b0b0272cf75828c764f94ed EBUILD xmms2-0.8_p20161122-r8.ebuild 8076 BLAKE2B 0f140d493ba41bd33bcaf1e70c8e8483fc72bf88dd42ccc3d181bcbc2509044e5dfd2853194db73796be0eb53bd8c543df22c8f2b401a770489c2172ddd35797 SHA512 db01b170edd8ebc1ed4f8de8302485fed54123884b0527ecc21604d298c6157cf96e5583d8720089dd06fd0ee76130a4fa8015c7f1f251fa9b3c0c4e1a30c7f3 -MISC metadata.xml 2488 BLAKE2B 81687b26bb6a3143b97f19d90b4486f62e64cc51f993bd124665ac5346cfe9739db9d565b216fb935e740d17454efd970312d348e342ed995abb96c51efbc52b SHA512 5deda32f1c0a44cbf3efa275ca01bcd90db42240b35122b9c7baac88efa4ebffc1ed75a6e730c11154f37a22378da8388ec88bdfcb239effa1bd35c6bb3f7d14 +EBUILD xmms2-0.8_p20201016.ebuild 5866 BLAKE2B 9fb7649ed611191a0b6a036d23518c9a65e52cdcd945840fc2a83d9340da888de99d69c1f84664572776c64f478b2d084beea3627c67678fb9f86eb610e53f77 SHA512 0477e3d22b9499e698cfc14196cb4443d5e8cb9ba2ff7410d6fb93259acef9815689268e2d427794a2c7d1598d9903675dd03b662703305c1275e39964cd3991 +MISC metadata.xml 1618 BLAKE2B 90e2600ab43343dec7f7cc31ef796001419b73da74574ec34d47fcde6808f2cd8288303ab52ff313390e08cfe5316ac6818b1f40ca483aafb661ce6488446d1d SHA512 60c21e22c9c5d7782c27144035449f146a4f97caa90870e86cd523e28c1289ee72514abb0899eae39e4b4e97f081f62a6e654b8310db172f3ca0968834334317 diff --git a/media-sound/xmms2/files/xmms2-0.8-rtvg.patch b/media-sound/xmms2/files/xmms2-0.8-rtvg.patch index 20be34273883..e0a970c91869 100644 --- a/media-sound/xmms2/files/xmms2-0.8-rtvg.patch +++ b/media-sound/xmms2/files/xmms2-0.8-rtvg.patch @@ -3,10 +3,7 @@ Add knob to disable valgrind at test runtime. When valgrind is installed in system but is not working we should still be able to run tests. -Reported-by: Diego Elio Pettenò Bug: https://bugs.gentoo.org/424377 -diff --git a/waftools/unittest.py b/waftools/unittest.py -index 4317287..6179dfd 100644 --- a/waftools/unittest.py +++ b/waftools/unittest.py @@ -64,7 +64,8 @@ def generate_coverage(bld): @@ -19,8 +16,6 @@ index 4317287..6179dfd 100644 conf.find_program("lcov", var="LCOV", mandatory=False) conf.find_program("genhtml", var="GENHTML", mandatory=False) -diff --git a/wscript b/wscript -index 99c1fa3..a98d5e3 100644 --- a/wscript +++ b/wscript @@ -501,6 +501,10 @@ def options(opt): diff --git a/media-sound/xmms2/files/xmms2-0.8DrO_o-waflib-fix-perl.patch b/media-sound/xmms2/files/xmms2-0.8DrO_o-waflib-fix-perl.patch deleted file mode 100644 index 220e91e68136..000000000000 --- a/media-sound/xmms2/files/xmms2-0.8DrO_o-waflib-fix-perl.patch +++ /dev/null @@ -1,27 +0,0 @@ -Fix build failure when user has non-core xsubpp. - -> Could not find a typemap for C type 'xmmsv_t *' in XMMSClientPlaylist.xs, line 132 -> Undefined subroutine &ExtUtils::ParseXS::errors called at /usr/lib/perl5/5.12.4/ExtUtils/xsubpp line 41. -> Undefined subroutine &ExtUtils::ParseXS::errors called at /usr/lib/perl5/5.12.4/ExtUtils/xsubpp line 41. -> Could not find a typemap for C type 'const unsigned char *' in XMMSClient.xs, line 1179 - -Use xsubpp from @INC instead of bundled one with perl. - -Original bug: https://bugs.gentoo.org/380469 -Related: https://bugs.gentoo.org/378783 -Updated for perl-5.20.2: https://bugs.gentoo.org/578778 -diff --git a/waflib/Tools/perl.py b/waflib/Tools/perl.py -index 2c69fe5..a75b069 100644 ---- a/waflib/Tools/perl.py -+++ b/waflib/Tools/perl.py -@@ -60,8 +60,8 @@ def check_perl_ext_devel(self): - env['LINKFLAGS_PERLEXT']=read_out(" -MConfig -e'print $Config{lddlflags}'") - env['INCLUDES_PERLEXT']=read_out(" -MConfig -e'print \"$Config{archlib}/CORE\"'") - env['CFLAGS_PERLEXT']=read_out(" -MConfig -e'print \"$Config{ccflags} $Config{cccdlflags}\"'") -- env['XSUBPP']=read_out(" -MConfig -e'print \"$Config{privlib}/ExtUtils/xsubpp$Config{exe_ext}\"'") -- env['EXTUTILS_TYPEMAP']=read_out(" -MConfig -e'print \"$Config{privlib}/ExtUtils/typemap\"'") -+ env["XSUBPP"] = read_out(" -MModule::Metadata -e'print Module::Metadata->find_module_by_name(\"ExtUtils::xsubpp\")'") -+ env["EXTUTILS_TYPEMAP"] = read_out(" -MModule::Metadata -e'print Module::Metadata->find_module_by_name(\"ExtUtils::typemap\")'") - if not getattr(Options.options,'perlarchdir',None): - env['ARCHDIR_PERL']=self.cmd_and_log(perl+" -MConfig -e'print $Config{sitearch}'") - else: diff --git a/media-sound/xmms2/files/xmms2-0.8_p20161122-cpp-client.patch b/media-sound/xmms2/files/xmms2-0.8_p20161122-cpp-client.patch index cedc87fcc469..df1d1c616576 100644 --- a/media-sound/xmms2/files/xmms2-0.8_p20161122-cpp-client.patch +++ b/media-sound/xmms2/files/xmms2-0.8_p20161122-cpp-client.patch @@ -1,57 +1,8 @@ https://github.com/xmms2/xmms2-devel/pull/5 -From 82741bf3094c8e0bca8eb1b7f3bc147eeb51ea06 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Thu, 6 Dec 2018 07:19:08 +0000 Subject: [PATCH] OTHER: fix c++ client dangling reference - -On #xmm2 Chewi reported c++/tut7 to be broken at start: - -``` -GLib-WARNING **: glib-2.56.2/glib/giounix.c:410 -Error while getting flags for FD: Bad file descriptor (9) -``` - -valgrind shows the problem as read of uninitialized data: - -``` -$ valgrind ./tut7 - -==32268== Conditional jump or move depends on uninitialised value(s) -==32268== at 0x49DC36B: xmmsc_mainloop_gmain_init (xmmsclient-glib.c:80) -==32268== by 0x49E11BE: Xmms::GMainloop::GMainloop(xmmsc_connection_St*) (xmmsclient++-glib.cpp:11) -==32268== by 0x10C64D: main (in /home/slyfox/dev/git/xmms2-devel/doc/tutorial/c++/tut7) -==32268== Uninitialised value was created by a stack allocation -==32268== at 0x49E119A: Xmms::GMainloop::GMainloop(xmmsc_connection_St*) (xmmsclient++-glib.cpp:8) -``` - -This happens due to use of dangling C++ reference to stack variable: - -``` -// somewhere in src/include/xmmsclient/xmmsclient++/mainloop.h -class MainloopInterface { - MainloopInterface( xmmsc_connection_t* conn ) : - running_( false ), conn_( conn ) { } - protected: - bool running_; - xmmsc_connection_t*& conn_; -} -``` - -Note: `conn_` refers to dangling local variable of -`MainloopInterface::MainloopInterface` constructor. - -The fix is to pass through pointer reference. -`MainLoop::MainLoop()` already does it. - -Reported-by: James Le Cuirot -Signed-off-by: Sergei Trofimovich ---- - src/include/xmmsclient/xmmsclient++/mainloop.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/include/xmmsclient/xmmsclient++/mainloop.h b/src/include/xmmsclient/xmmsclient++/mainloop.h -index de97e20d..268ca6f7 100644 --- a/src/include/xmmsclient/xmmsclient++/mainloop.h +++ b/src/include/xmmsclient/xmmsclient++/mainloop.h @@ -41,7 +41,7 @@ namespace Xmms @@ -63,6 +14,3 @@ index de97e20d..268ca6f7 100644 running_( false ), conn_( conn ) { } /** Destructor. Should also stop the loop. --- -2.19.2 - diff --git a/media-sound/xmms2/files/xmms2-0.8_p20161122-faad.patch b/media-sound/xmms2/files/xmms2-0.8_p20161122-faad.patch index 00aa5d770823..2a206b913fe4 100644 --- a/media-sound/xmms2/files/xmms2-0.8_p20161122-faad.patch +++ b/media-sound/xmms2/files/xmms2-0.8_p20161122-faad.patch @@ -4,8 +4,6 @@ it. I've run XMMS2 with this patch for months without issue. -- Chewi -diff --git a/src/plugins/faad/faad.c b/src/plugins/faad/faad.c -index 50835d27..7074e1b5 100644 --- a/src/plugins/faad/faad.c +++ b/src/plugins/faad/faad.c @@ -242,7 +242,6 @@ xmms_faad_init (xmms_xform_t *xform) diff --git a/media-sound/xmms2/files/xmms2-0.8_p20161122-mac-4.patch b/media-sound/xmms2/files/xmms2-0.8_p20161122-mac-4.patch index df3e4d2af852..9785b4198d51 100644 --- a/media-sound/xmms2/files/xmms2-0.8_p20161122-mac-4.patch +++ b/media-sound/xmms2/files/xmms2-0.8_p20161122-mac-4.patch @@ -1,15 +1,8 @@ -From e87745721deaf46d7054ac40cc55838561c9f552 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Carretero?= +https://github.com/xmms2/xmms2-devel/pull/2 + +From: Jérôme Carretero Date: Tue, 24 Oct 2017 18:43:26 -0400 Subject: [PATCH] plugins: mac: support newer mac API version - ---- - src/plugins/mac/mac.cpp | 6 +++++- - src/plugins/mac/source_adapter.h | 8 +++++++- - 2 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/src/plugins/mac/mac.cpp b/src/plugins/mac/mac.cpp -index cec43e52..d8d3d1b9 100644 --- a/src/plugins/mac/mac.cpp +++ b/src/plugins/mac/mac.cpp @@ -210,8 +210,12 @@ xmms_mac_get_media_info (xmms_xform_t *xform) @@ -26,8 +19,6 @@ index cec43e52..d8d3d1b9 100644 memset (field_value, 0, 255); int size = 255; p_ape_tag->GetFieldString (field_name, (char *)field_value, &size, TRUE); -diff --git a/src/plugins/mac/source_adapter.h b/src/plugins/mac/source_adapter.h -index 94f75359..70617514 100644 --- a/src/plugins/mac/source_adapter.h +++ b/src/plugins/mac/source_adapter.h @@ -38,7 +38,13 @@ public: @@ -45,6 +36,3 @@ index 94f75359..70617514 100644 int Close () { return ERROR_SUCCESS; } // read / write --- -2.15.0 - diff --git a/media-sound/xmms2/metadata.xml b/media-sound/xmms2/metadata.xml index fa38219f0f16..dd988711fb40 100644 --- a/media-sound/xmms2/metadata.xml +++ b/media-sound/xmms2/metadata.xml @@ -5,47 +5,25 @@ ionen@gentoo.org Ionen Wolkens - - It features a client-server model, allowing multiple (even simultaneous!) user - interfaces, both textual and graphical. All common audio formats are supported - using plugins. On top of this, there is a flexible media library to organize - your music. - - List of features currently offered by XMMS2: - - Client-server model: - * Allows XMMS2 to have various multiple interfaces (as clients). - o Command line interfaces - o GTK clients (matching GNOME & XFCE4 look and feel) - o KDE clients (matching KDE look and feel) - * Network transparency means you can run and control XMMS2 remotely, (e.g. run XMMS2 on your 'media box' and control it over network using a bluetooth-enabled PDA (TCP)) - - Wide format support: - * Can play FLAC, mp3, MOD, SID, speex, ogg vorbis, wave files. - * Clean separation of transport and decoder subsystems - Allows for more flexible access to media. (e.g. play mp3 files from a Samba - share without having to mount it on the local filesystem) - - Medialib: - Database-driven media library stores metadata about songs as they're played, - so songs can be quickly recalled and new playlists easily made. - Support for airplay format - Support for Monkey's Audio (APE) format with help of bundled libasf + Support for Advanced Systems Format (ASF) by using bundled libasf Enable fluidsynth support (MIDI) + Support for various game audio formats using media-libs/game-music-emu Icecast source output plugin - Support for Monkey's Audio (APE) format with help of media-sound/mac + Support for Monkey's Audio (APE) format using media-sound/mac + Enable building of xmms2-mlib-updater client Support for Open Fingerprint Architecture (OFA) This client sends anonymous usage-statistics to the xmms2 Build xmms2 player daemon (otherwise only clients are built) - Support for C64 SID - Run unit tests under valgrind. + Support for C64 SID using media-libs/libsidplay + Support Vorbis using an alternate fixed-point decoder with media-libs/tremor + Run unit tests under valgrind Phase vocoder effect plugin - Enable building of xmms2-mlib-updater client Enable support for various XML based playlists and sources: RSS, XSPF - xmms2 + xmms2/xmms2-devel + xmms2/s4 diff --git a/media-sound/xmms2/xmms2-0.8_p20201016.ebuild b/media-sound/xmms2/xmms2-0.8_p20201016.ebuild new file mode 100644 index 000000000000..6966575236d9 --- /dev/null +++ b/media-sound/xmms2/xmms2-0.8_p20201016.ebuild @@ -0,0 +1,236 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit multiprocessing optfeature perl-functions python-single-r1 toolchain-funcs + +XMMS2_COMMIT="46da10f0e20c53fd2b40843617ed182c0cba4ebb" +S4_COMMIT="652ac581df7a0bca04334da397f8bb4f86eb7b59" +WAF_VER="2.0.22" + +DESCRIPTION="X(cross)platform Music Multiplexing System, next generation of the XMMS player" +HOMEPAGE="https://github.com/XMMS2" +SRC_URI=" + https://github.com/xmms2/xmms2-devel/archive/${XMMS2_COMMIT}.tar.gz -> ${P}.tar.gz + https://github.com/xmms2/s4/archive/${S4_COMMIT}.tar.gz -> ${PN}-s4-${PV}.tar.gz + https://waf.io/waf-${WAF_VER}.tar.bz2" +S="${WORKDIR}/${PN}-devel-${XMMS2_COMMIT}" + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ppc ~x86" + +# IUSE static map to be passed to --with-{optionals,plugins}=opt1,opt2,... +# flag:opt = `usev flag opt`, opt = `usev opt`, :opt = `echo opt` +XMMS2_OPTIONALS=( + cxx:xmmsclient++,xmmsclient++-glib :launcher mlib-update:medialib-updater + :nycli perl :pixmaps python server:s4 test:tests + # disabled: et,mdns,migrate-collections,ruby,sqlite2s4,vistest,xmmsclient-cf,xmmsclient-ecore +) +XMMS2_PLUGINS=( + aac:faad airplay alsa ao asf :asx cdda :cue curl :diskwrite :equalizer + ffmpeg:apefile,avcodec,flv,tta :file flac fluidsynth:fluidsynth,mid1,midsquash + gme :html ices :icymetaint :id3v2 jack :karaoke :m3u mac +mad mms modplug + mp3:mpg123 :mp4 musepack :normalize :null :nulstripper ofa opus oss :pls + pulseaudio:pulse :replaygain samba sid sndfile speex tremor vocoder +vorbis + :wave wavpack :xml xml:rss,xspf zeroconf:daap + # disabled: coreaudio,gvfs,nms,sc68,sun,waveout +) + +IUSE=" + ${XMMS2_OPTIONALS[@]%:*} + ${XMMS2_PLUGINS[@]%:*} + +server valgrind" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test ) !server? ( test )" + +COMMON_DEPEND=" + dev-libs/glib:2 + sys-libs/readline:= + server? ( + aac? ( media-libs/faad2 ) + airplay? ( dev-libs/openssl:= ) + alsa? ( media-libs/alsa-lib ) + ao? ( media-libs/libao ) + cdda? ( + dev-libs/libcdio-paranoia:= + dev-libs/libcdio:= + media-libs/libdiscid + ) + curl? ( net-misc/curl ) + ffmpeg? ( media-video/ffmpeg:= ) + flac? ( media-libs/flac ) + fluidsynth? ( media-sound/fluidsynth:= ) + gme? ( media-libs/game-music-emu ) + ices? ( + media-libs/libogg + media-libs/libshout + media-libs/libvorbis + ) + jack? ( virtual/jack ) + mac? ( media-sound/mac ) + mad? ( media-libs/libmad ) + mms? ( + media-libs/libmms + media-video/ffmpeg:= + ) + modplug? ( media-libs/libmodplug ) + mp3? ( media-sound/mpg123 ) + musepack? ( media-sound/musepack-tools ) + ofa? ( + dev-libs/expat + media-libs/libofa + sci-libs/fftw:3.0= + ) + opus? ( + media-libs/libogg + media-libs/opus + media-libs/opusfile + ) + pulseaudio? ( media-sound/pulseaudio ) + samba? ( net-fs/samba ) + sid? ( media-libs/libsidplay:2 ) + sndfile? ( media-libs/libsndfile ) + speex? ( + media-libs/libogg + media-libs/speex + ) + tremor? ( media-libs/tremor ) + vocoder? ( + media-libs/libsamplerate + sci-libs/fftw:3.0= + ) + vorbis? ( media-libs/libvorbis ) + wavpack? ( media-sound/wavpack ) + xml? ( dev-libs/libxml2 ) + zeroconf? ( + net-dns/avahi[mdnsresponder-compat] + net-misc/curl + ) + ) + python? ( virtual/libcrypt:= )" +RDEPEND=" + ${COMMON_DEPEND} + perl? ( + dev-lang/perl + dev-perl/glib-perl + virtual/perl-Carp + virtual/perl-IO + virtual/perl-Scalar-List-Utils + ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep 'dev-python/pygobject[${PYTHON_USEDEP}]') + )" +DEPEND=" + ${COMMON_DEPEND} + cxx? ( dev-libs/boost ) + test? ( dev-util/cunit )" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig + perl? ( virtual/perl-Pod-Parser ) + python? ( $(python_gen_cond_dep 'dev-python/cython[${PYTHON_USEDEP}]') ) + test? ( valgrind? ( dev-util/valgrind ) )" + +PATCHES=( + "${FILESDIR}"/${PN}-0.8-rtvg.patch + "${FILESDIR}"/${PN}-0.8_p20161122-mac-4.patch + "${FILESDIR}"/${PN}-0.8_p20161122-cpp-client.patch + "${FILESDIR}"/${PN}-0.8_p20161122-faad.patch +) + +src_prepare() { + rmdir src/lib/s4 && mv ../s4-${S4_COMMIT} src/lib/s4 || die + mv ../waf-${WAF_VER}/waf{,lib} . || die + + default + + sed -e "s|/path/to/.*sf2|${EPREFIX}/usr/share/sounds/sf2/FluidR3_GM.sf2|" \ + -i src/plugins/fluidsynth/fluidsynth.c || die +} + +src_configure() { + local waf=( + ./waf configure + --prefix="${EPREFIX}"/usr + --libdir="${EPREFIX}"/usr/$(get_libdir) + --boost-includes="${ESYSROOT}"/usr/include # needed for prefix + --with-custom-version="%(version)s (git commit: ${XMMS2_COMMIT:0:8})" + --with-target-platform="${CHOST}" + ) + + xmms2_flag() { + local IFS=: + set -- ${1#+} + + if [[ ${1} ]]; then + usev ${1} ,${2:-${1}} + else + echo ,${2} + fi + } + + local flag optionals plugins + + if use server; then + for flag in "${XMMS2_PLUGINS[@]}"; do + plugins+=$(xmms2_flag ${flag}) + done + else + waf+=( --without-xmms2d ) + fi + + for flag in "${XMMS2_OPTIONALS[@]}"; do + optionals+=$(xmms2_flag ${flag}) + done + + waf+=( + # pass even if empty to avoid automagic + --with-optionals=${optionals:1} + --with-plugins=${plugins:1} + ) + + if use perl; then + perl_set_version + waf+=( --with-perl-archdir="${ARCH_LIB}" ) + fi + + if use valgrind; then + if valgrind true &>/dev/null; then + waf+=( --with-valgrind ) + else + ewarn "valgrind was disabled due to failing a basic sanity check" #807271 + fi + fi + + tc-export AR CC CXX + + echo "${waf[*]}" + "${waf[@]}" || die +} + +src_compile() { + ./waf build -j$(makeopts_jobs) --verbose --notests || die +} + +src_test() { + ./waf --alltests || die +} + +src_install() { + ./waf install --destdir="${D}" --without-ldconfig || die + + einstalldocs + + use python && python_optimize + + # to avoid editing waftools/man.py (use find given not always installed) + find "${ED}" -name '*.gz' -exec gzip -d {} + || die +} + +pkg_postinst() { + use fluidsynth && optfeature "the default MIDI soundfont" media-sound/fluid-soundfont +} -- cgit v1.2.3