* [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild
@ 2010-06-28 18:27 Sergei Trofimovich
2010-06-29 6:24 ` Mike Frysinger
0 siblings, 1 reply; 7+ messages in thread
From: Sergei Trofimovich @ 2010-06-28 18:27 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1.1: Type: text/plain, Size: 501 bytes --]
There is yet 'New Package' request: https://bugs.gentoo.org/show_bug.cgi?id=93583
I think I've hacked more or less maintainable ebuild (attached)
and plan to maintain media-sound/xmms2 but one thing worries me:
package (and ebuild) has ruby, python and perl bindings.
I need help to check/fix current installation scheme as
I have zero experience in $forementioned-lang
bindings support in gentoo maintenance.
Other comments about ebuild issues are welcomed.
Thanks!
--
Sergei
[-- Attachment #1.2: xmms2-0.7.ebuild --]
[-- Type: application/octet-stream, Size: 6210 bytes --]
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=2
inherit base eutils python
MY_P="${P}DrNo"
DESCRIPTION="X(cross)platform Music Multiplexing System. The new generation of the XMMS player."
HOMEPAGE="http://xmms2.xmms.org"
SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="aac airplay +alsa ao asf avahi cdda curl cxx ffmpeg flac gvfs ices
jack mac mlib-update mms +mp3 mp4 modplug mpg123 musepack ofa oss
perl phonehome pulseaudio python ruby
samba +server sid speex +vorbis vocoder wavpack xml"
RDEPEND="server? (
>=dev-db/sqlite-3.3.4
aac? ( >=media-libs/faad2-2.0 )
airplay? ( dev-libs/openssl )
alsa? ( media-libs/alsa-lib )
ao? ( media-libs/libao )
avahi? ( net-dns/avahi )
cdda? ( >=media-libs/libdiscid-0.1.1
>=media-sound/cdparanoia-3.9.8 )
curl? ( >=net-misc/curl-7.15.1 )
ffmpeg? ( media-video/ffmpeg )
flac? ( media-libs/flac )
gvfs? ( gnome-base/gnome-vfs )
ices? ( media-libs/libogg
media-libs/libshout
media-libs/libvorbis )
jack? ( >=media-sound/jack-audio-connection-kit-0.101.1 )
mac? ( media-sound/mac )
mms? ( media-video/ffmpeg
>=media-libs/libmms-0.3 )
modplug? ( media-libs/libmodplug )
mp3? ( media-sound/madplay )
mp4? ( >=media-libs/faad2-2.0 )
mpg123? ( >=media-sound/mpg123-1.5.1 )
musepack? ( media-sound/musepack-tools )
ofa? ( media-libs/libofa )
pulseaudio? ( media-sound/pulseaudio )
samba? ( net-fs/samba[smbclient] )
sid? ( media-sound/sidplay
media-libs/resid )
speex? ( media-libs/speex
media-libs/libogg )
vorbis? ( media-libs/libvorbis )
vocoder? ( sci-libs/fftw media-libs/libsamplerate )
wavpack? ( media-sound/wavpack )
xml? ( dev-libs/libxml2 )
)
>=dev-libs/glib-2.12.9
cxx? ( >=dev-libs/boost-1.32 )
mlib-update? ( app-admin/gamin )
perl? ( >=dev-lang/perl-5.8.8 )
python? ( >=dev-python/pyrex-0.9.5.1 )
ruby? ( >=dev-lang/ruby-1.8.5 ) "
DEPEND="${RDEPEND}
>=dev-lang/python-2.4.3"
S="${WORKDIR}/${MY_P}"
PATCHES=("${FILESDIR}/xmms2-0.7DrNo-windres-build-fix.patch")
# use_enable() is taken as proto
# $1 - useflag
# $2 - xmms2 option/plugin name (equals to $1 if not set)
xmms2_flag() {
if [[ -z "$1" ]]; then
echo "!!! xmms2_flag() called without a parameter." >&2
echo "!!! xmms2_flag() <USEFLAG> [<xmms2_flagname>]" >&2
return 1
fi
local UWORD=${2:-$1}
case "$1" in
ENABLED)
echo ",${UWORD}"
;;
DISABLED)
: # nothing is generated
;;
*)
if use "$1"; then
echo ",${UWORD}"
else
: # nothing is generated
fi
;;
esac
return 0
}
src_configure() {
# ./configure alike options.
local waf_params="--without-ldconfig \
--prefix=/usr \
--libdir=/usr/$(get_libdir) \
--destdir="${D}" \
${CTARGET:+--with-target-platform=${CTARGET}} \
--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"
else
# some fun static mappings:
local option_map=( # USE # sorted xmms2 option flag (same, as USE if empty)
"avahi avahi"
"ENABLED cli"
"avahi dns_sd"
"phonehome et"
"ENABLED launcher"
"mlib-update medialib-updater"
"ENABLED nycli"
" perl"
"ENABLED pixmaps"
" python"
" ruby"
"DISABLED tests"
"DISABLED vistest"
"cxx xmmsclient++"
"cxx xmmsclient++-glib"
"DISABLED xmmsclient-cf"
"DISABLED xmmsclient-ecore" # not in tree
)
local plugin_map=( # USE # sorted xmms2 plugin flag (same, as USE if empty)
" alsa"
" airplay"
" ao"
"ffmpeg apefile"
"ffmpeg avcodec"
" asf"
"ENABLED asx"
" cdda"
"DISABLED coreaudio" # MacOS only?
" curl"
"ENABLED cue"
"avahi daap"
"ENABLED diskwrite"
"ENABLED equalizer"
"aac faad"
"ENABLED file"
" flac"
"ffmpeg flv"
"ffmpeg tta"
"DISABLED gme" # not in tree
" gvfs"
"ENABLED html"
" ices"
"ENABLED icymetaint"
"ENABLED id3v2"
" jack"
"ENABLED karaoke"
"ENABLED m3u"
" mac"
" mms"
"mp3 mad"
" mp4"
" mpg123"
" modplug"
" musepack"
"DISABLED nms" # not in tree
"ENABLED normalize"
"ENABLED null"
"ENABLED nulstripper"
" ofa"
" oss"
"ENABLED pls"
"pulseaudio pulse"
"ENABLED replaygain"
"xml rss"
" samba"
"DISABLED sc68" #not in tree
" sid"
" speex"
"DISABLED sun" # {Open,Net}BSD only
"DISABLED tremor" # not in tree
" vorbis"
" vocoder"
"ffmpeg tta"
"ENABLED wave"
"DISABLED waveout" # windows only
" wavpack"
"xml xspf"
"ENABLED xml"
)
for option in "${option_map[@]}"; do
optionals+="$(xmms2_flag $option)"
done
for plugin in "${plugin_map[@]}"; do
plugins+="$(xmms2_flag $plugin)"
done
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}"
"${S}"/waf ${waf_params} configure || die "'waf configure' failed"
}
src_compile() {
"${S}"/waf build || die "waf build failed"
}
src_install() {
"${S}"/waf --destdir="${D}" install || die "'waf install' failed"
dodoc AUTHORS TODO README
use python && python_need_rebuild
}
pkg_postinst() {
elog "This version is built on experimental development code"
elog "If you encounter any errors report them at http://bugs.xmms2.xmms.se"
elog "and visit #xmms2 at irc://irc.freenode.net"
if use phonehome ; then
einfo ""
einfo "The phone-home client xmms2-et was activated"
einfo "This client sends anonymous usage-statistics to the xmms2"
einfo "developers which may help finding bugs"
einfo "Disable the phonehome useflag if you don't like that"
fi
use python && python_mod_optimize $(python_get_sitedir)/xmmsclient
}
pkg_postrm() {
use python && python_mod_cleanup $(python_get_sitedir)/xmmsclient
}
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: xmms2-0.7DrNo-windres-build-fix.patch --]
[-- Type: text/x-patch, Size: 1981 bytes --]
commit 3bc7fbff50bfcb065fb89d020c1b3fb8de049b19
Author: Sergei Trofimovich <st@anti-virus.by>
Date: Mon Apr 19 13:16:56 2010 +0300
OTHER: fix build failure on windres aware binutils (linux host, native build)
Trying to use windres under linux (native build) is worthless:
[ 26/269] winrc: pixmaps/xmms2.rc -> _build_/default/pixmaps/xmms2.rc.o
/usr/bin/windres: can't get BFD_RELOC_RVA relocation type: No error
Waf: Leaving directory `/var/tmp/paludis/media-sound-xmms2-9999-r3/work/xmms2-devel/_build_'
Build failed
-> task failed (err #1):
{task: winrc xmms2.rc -> xmms2.rc.o}
Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
diff --git a/wscript b/wscript
index 2a29016..1d73813 100644
--- a/wscript
+++ b/wscript
@@ -265,12 +265,6 @@ def configure(conf):
conf.check_tool('gcc')
conf.check_tool('g++')
- try:
- conf.check_tool('winres')
- conf.env['WINRCFLAGS'] = '-I' + os.path.abspath('pixmaps')
- conf.env['xmms_icon'] = True
- except Configure.ConfigurationError:
- conf.env['xmms_icon'] = False
if Options.options.target_platform:
Options.platform = Options.options.target_platform
@@ -412,6 +406,17 @@ def configure(conf):
else:
conf.env['socket_impl'] = 'posix'
+ # platform does not support icons ...
+ conf.env['xmms_icon'] = False
+ # ... unless we target on windows
+ if Options.platform == 'win32':
+ try:
+ conf.check_tool('winres')
+ conf.env['WINRCFLAGS'] = '-I' + os.path.abspath('pixmaps')
+ conf.env['xmms_icon'] = True
+ except Configure.ConfigurationError:
+ pass
+
# Glib is required by everyone, so check for it here and let them
# assume its presence.
conf.check_cfg(package='glib-2.0', atleast_version='2.8.0', uselib_store='glib2', args='--cflags --libs', mandatory=1)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild
2010-06-28 18:27 [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild Sergei Trofimovich
@ 2010-06-29 6:24 ` Mike Frysinger
2010-06-29 7:18 ` Łukasz Michalik
2010-06-29 16:57 ` [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v2) Sergei Trofimovich
0 siblings, 2 replies; 7+ messages in thread
From: Mike Frysinger @ 2010-06-29 6:24 UTC (permalink / raw
To: gentoo-dev; +Cc: Sergei Trofimovich
[-- Attachment #1: Type: Text/Plain, Size: 939 bytes --]
> if [[ -z "$1" ]]; then
either lose the quotes or lose the double brackets. hint: the former.
> echo "!!! xmms2_flag() called without a parameter." >&2
> echo "!!! xmms2_flag() <USEFLAG> [<xmms2_flagname>]" >&2
use eerror or die
> if use "$1"; then
USE flag cannot contain spaces or anything else that requires quoting
> else
> : # nothing is generated
> fi
my, we sure do like to be verbose
> --destdir="${D}" \
you need to give the DESTDIR to configure ? no wonder xmms2 sucks
> ${CTARGET:+--with-target-platform=${CTARGET}} \
i highly suspect this isnt what you think it is. if this option is for cross-
compiling, then use ${CHOST}.
> optionals+="$(xmms2_flag $option)"
dont need the quoting when doing ...=$(...)
> "${S}"/waf
the default dir for most src_* funcs is $S, so just use ./waf
> use python && python_mod_optimize $(python_get_sitedir)/xmmsclient
shouldnt sitedir be quoted ?
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild
2010-06-29 6:24 ` Mike Frysinger
@ 2010-06-29 7:18 ` Łukasz Michalik
2010-06-29 16:57 ` [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v2) Sergei Trofimovich
1 sibling, 0 replies; 7+ messages in thread
From: Łukasz Michalik @ 2010-06-29 7:18 UTC (permalink / raw
To: gentoo-dev; +Cc: Sergei Trofimovich
[-- Attachment #1: Type: text/plain, Size: 284 bytes --]
On 02:24 2010-06-29 -0400, Mike Frysinger wrote:
>
> > --destdir="${D}" \
>
> you need to give the DESTDIR to configure ? no wonder xmms2 sucks
It's not a need -- with waf destdir can be set at either configure or
install time.
--
Pozdrawiam,
Łukasz P. Michalik
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v2)
2010-06-29 6:24 ` Mike Frysinger
2010-06-29 7:18 ` Łukasz Michalik
@ 2010-06-29 16:57 ` Sergei Trofimovich
2010-06-29 18:55 ` Mike Frysinger
1 sibling, 1 reply; 7+ messages in thread
From: Sergei Trofimovich @ 2010-06-29 16:57 UTC (permalink / raw
To: gentoo-dev; +Cc: vapier, bronksos
[-- Attachment #1.1: Type: text/plain, Size: 508 bytes --]
> > --destdir="${D}" \
> you need to give the DESTDIR to configure ? no wonder xmms2 sucks
Completely my fault. Moreover it ignores the option in configure phase
(same with '--without-ldconfig')
> > ${CTARGET:+--with-target-platform=${CTARGET}}
> i highly suspect this isnt what you think it is. if this option is for cross-
> compiling, then use ${CHOST}.
Yeah, I have messed them.
Then rest is hopefully fixed too (new ebuild attached).
Thanks for the review!
--
Sergei
[-- Attachment #1.2: xmms2-0.7.ebuild --]
[-- Type: text/plain, Size: 6262 bytes --]
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=2
inherit base eutils python
MY_P="${P}DrNo"
DESCRIPTION="X(cross)platform Music Multiplexing System. The new generation of the XMMS player."
HOMEPAGE="http://xmms2.org/wiki/Main_Page"
SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="aac airplay +alsa ao asf avahi cdda curl cxx ffmpeg flac gvfs ices
jack mac mlib-update mms +mp3 mp4 modplug mpg123 musepack ofa oss
perl phonehome pulseaudio python ruby
samba +server sid speex +vorbis vocoder wavpack xml"
RDEPEND="server? (
>=dev-db/sqlite-3.3.4
aac? ( >=media-libs/faad2-2.0 )
airplay? ( dev-libs/openssl )
alsa? ( media-libs/alsa-lib )
ao? ( media-libs/libao )
avahi? ( net-dns/avahi )
cdda? ( >=media-libs/libdiscid-0.1.1
>=media-sound/cdparanoia-3.9.8 )
curl? ( >=net-misc/curl-7.15.1 )
ffmpeg? ( media-video/ffmpeg )
flac? ( media-libs/flac )
gvfs? ( gnome-base/gnome-vfs )
ices? ( media-libs/libogg
media-libs/libshout
media-libs/libvorbis )
jack? ( >=media-sound/jack-audio-connection-kit-0.101.1 )
mac? ( media-sound/mac )
mms? ( media-video/ffmpeg
>=media-libs/libmms-0.3 )
modplug? ( media-libs/libmodplug )
mp3? ( media-sound/madplay )
mp4? ( >=media-libs/faad2-2.0 )
mpg123? ( >=media-sound/mpg123-1.5.1 )
musepack? ( media-sound/musepack-tools )
ofa? ( media-libs/libofa )
pulseaudio? ( media-sound/pulseaudio )
samba? ( net-fs/samba[smbclient] )
sid? ( media-sound/sidplay
media-libs/resid )
speex? ( media-libs/speex
media-libs/libogg )
vorbis? ( media-libs/libvorbis )
vocoder? ( sci-libs/fftw media-libs/libsamplerate )
wavpack? ( media-sound/wavpack )
xml? ( dev-libs/libxml2 )
)
>=dev-libs/glib-2.12.9
cxx? ( >=dev-libs/boost-1.32 )
mlib-update? ( app-admin/gamin )
perl? ( >=dev-lang/perl-5.8.8 )
python? ( >=dev-python/pyrex-0.9.5.1 )
ruby? ( >=dev-lang/ruby-1.8.5 ) "
DEPEND="${RDEPEND}
>=dev-lang/python-2.4.3"
S="${WORKDIR}/${MY_P}"
PATCHES=("${FILESDIR}/xmms2-0.7DrNo-windres-build-fix.patch")
# use_enable() is taken as proto
# $1 - useflag
# $2 - xmms2 option/plugin name (equals to $1 if not set)
xmms2_flag() {
[[ -z $1 ]] && eerror "!!! empty arg. usage: xmms2_flag <USEFLAG> [<xmms2_flagname>]."
local UWORD=${2:-$1}
case $1 in
ENABLED)
echo ",${UWORD}"
;;
DISABLED)
;;
*)
use $1 && echo ",${UWORD}"
;;
esac
return 0
}
src_configure() {
# ./configure alike options.
local waf_params="--prefix=/usr \
--libdir=/usr/$(get_libdir) \
${CHOST:+--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"
else
# some fun static mappings:
local option_map=( # USE # sorted xmms2 option flag (same, as USE if empty)
"avahi avahi"
"ENABLED cli"
"avahi dns_sd"
"phonehome et"
"ENABLED launcher"
"mlib-update medialib-updater"
"ENABLED nycli"
" perl"
"ENABLED pixmaps"
" python"
" ruby"
"DISABLED tests"
"DISABLED vistest"
"cxx xmmsclient++"
"cxx xmmsclient++-glib"
"DISABLED xmmsclient-cf"
"DISABLED xmmsclient-ecore" # not in tree
)
local plugin_map=( # USE # sorted xmms2 plugin flag (same, as USE if empty)
" alsa"
" airplay"
" ao"
"ffmpeg apefile"
"ffmpeg avcodec"
" asf"
"ENABLED asx"
" cdda"
"DISABLED coreaudio" # MacOS only?
" curl"
"ENABLED cue"
"avahi daap"
"ENABLED diskwrite"
"ENABLED equalizer"
"aac faad"
"ENABLED file"
" flac"
"ffmpeg flv"
"ffmpeg tta"
"DISABLED gme" # not in tree
" gvfs"
"ENABLED html"
" ices"
"ENABLED icymetaint"
"ENABLED id3v2"
" jack"
"ENABLED karaoke"
"ENABLED m3u"
" mac"
" mms"
"mp3 mad"
" mp4"
" mpg123"
" modplug"
" musepack"
"DISABLED nms" # not in tree
"ENABLED normalize"
"ENABLED null"
"ENABLED nulstripper"
" ofa"
" oss"
"ENABLED pls"
"pulseaudio pulse"
"ENABLED replaygain"
"xml rss"
" samba"
"DISABLED sc68" #not in tree
" sid"
" speex"
"DISABLED sun" # {Open,Net}BSD only
"DISABLED tremor" # not in tree
" vorbis"
" vocoder"
"ffmpeg tta"
"ENABLED wave"
"DISABLED waveout" # windows only
" wavpack"
"xml xspf"
"ENABLED xml"
)
for option in "${option_map[@]}"; do
optionals+=$(xmms2_flag $option)
done
for plugin in "${plugin_map[@]}"; do
plugins+=$(xmms2_flag $plugin)
done
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 ${waf_params} configure || die "'waf configure' failed"
}
src_compile() {
./waf build || die "waf build failed"
}
src_install() {
./waf --without-ldconfig --destdir="${D}" install || die "'waf install' failed"
dodoc AUTHORS TODO README
use python && python_need_rebuild
}
pkg_postinst() {
elog "This version is built on experimental development code"
elog "If you encounter any errors report them at http://bugs.xmms2.xmms.se"
elog "and visit #xmms2 at irc://irc.freenode.net"
if use phonehome ; then
einfo ""
einfo "The phone-home client xmms2-et was activated"
einfo "This client sends anonymous usage-statistics to the xmms2"
einfo "developers which may help finding bugs"
einfo "Disable the phonehome useflag if you don't like that"
fi
use python && python_mod_optimize "$(python_get_sitedir)/xmmsclient"
}
pkg_postrm() {
use python && python_mod_cleanup "$(python_get_sitedir)/xmmsclient"
}
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v2)
2010-06-29 16:57 ` [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v2) Sergei Trofimovich
@ 2010-06-29 18:55 ` Mike Frysinger
2010-06-29 19:44 ` [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v3) Sergei Trofimovich
0 siblings, 1 reply; 7+ messages in thread
From: Mike Frysinger @ 2010-06-29 18:55 UTC (permalink / raw
To: Sergei Trofimovich; +Cc: gentoo-dev, bronksos
[-- Attachment #1: Type: Text/Plain, Size: 435 bytes --]
> return 0
nowhere do you check the return value of xmms2_flag, so not much point in
returning a value (also, the eerror path no longer returns 1)
> ${CHOST:+--with-target-platform=${CHOST}} \
CHOST is guaranteed to always be set, so no need for the ${VAR:+} magic
> for option in "${option_map[@]}"; do
> for plugin in "${plugin_map[@]}"; do
you didnt declare option/plugin local anywhere that i can see
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v3)
2010-06-29 18:55 ` Mike Frysinger
@ 2010-06-29 19:44 ` Sergei Trofimovich
2010-06-29 20:01 ` Mike Frysinger
0 siblings, 1 reply; 7+ messages in thread
From: Sergei Trofimovich @ 2010-06-29 19:44 UTC (permalink / raw
To: Mike Frysinger; +Cc: gentoo-dev, bronksos
[-- Attachment #1.1: Type: text/plain, Size: 102 bytes --]
/me amends. Third one!
Is there way to declare locals directly in 'for' loops?
--
Sergei
[-- Attachment #1.2: xmms2-0.7.ebuild --]
[-- Type: text/plain, Size: 6273 bytes --]
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=2
inherit base eutils python
MY_P="${P}DrNo"
DESCRIPTION="X(cross)platform Music Multiplexing System. The new generation of the XMMS player."
HOMEPAGE="http://xmms2.org/wiki/Main_Page"
SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="aac airplay +alsa ao asf avahi cdda curl cxx ffmpeg flac gvfs ices
jack mac mlib-update mms +mp3 mp4 modplug mpg123 musepack ofa oss
perl phonehome pulseaudio python ruby
samba +server sid speex +vorbis vocoder wavpack xml"
RDEPEND="server? (
>=dev-db/sqlite-3.3.4
aac? ( >=media-libs/faad2-2.0 )
airplay? ( dev-libs/openssl )
alsa? ( media-libs/alsa-lib )
ao? ( media-libs/libao )
avahi? ( net-dns/avahi )
cdda? ( >=media-libs/libdiscid-0.1.1
>=media-sound/cdparanoia-3.9.8 )
curl? ( >=net-misc/curl-7.15.1 )
ffmpeg? ( media-video/ffmpeg )
flac? ( media-libs/flac )
gvfs? ( gnome-base/gnome-vfs )
ices? ( media-libs/libogg
media-libs/libshout
media-libs/libvorbis )
jack? ( >=media-sound/jack-audio-connection-kit-0.101.1 )
mac? ( media-sound/mac )
mms? ( media-video/ffmpeg
>=media-libs/libmms-0.3 )
modplug? ( media-libs/libmodplug )
mp3? ( media-sound/madplay )
mp4? ( >=media-libs/faad2-2.0 )
mpg123? ( >=media-sound/mpg123-1.5.1 )
musepack? ( media-sound/musepack-tools )
ofa? ( media-libs/libofa )
pulseaudio? ( media-sound/pulseaudio )
samba? ( net-fs/samba[smbclient] )
sid? ( media-sound/sidplay
media-libs/resid )
speex? ( media-libs/speex
media-libs/libogg )
vorbis? ( media-libs/libvorbis )
vocoder? ( sci-libs/fftw media-libs/libsamplerate )
wavpack? ( media-sound/wavpack )
xml? ( dev-libs/libxml2 )
)
>=dev-libs/glib-2.12.9
cxx? ( >=dev-libs/boost-1.32 )
mlib-update? ( app-admin/gamin )
perl? ( >=dev-lang/perl-5.8.8 )
python? ( >=dev-python/pyrex-0.9.5.1 )
ruby? ( >=dev-lang/ruby-1.8.5 ) "
DEPEND="${RDEPEND}
>=dev-lang/python-2.4.3"
S="${WORKDIR}/${MY_P}"
PATCHES=("${FILESDIR}/xmms2-0.7DrNo-windres-build-fix.patch")
# use_enable() is taken as proto
# $1 - useflag
# $2 - xmms2 option/plugin name (equals to $1 if not set)
xmms2_flag() {
[[ -z $1 ]] && eerror "!!! empty arg. usage: xmms2_flag <USEFLAG> [<xmms2_flagname>]."
local UWORD=${2:-$1}
case $1 in
ENABLED)
echo ",${UWORD}"
;;
DISABLED)
;;
*)
use $1 && echo ",${UWORD}"
;;
esac
}
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 optionals=""
local plugins=""
if ! use server ; then
waf_params+=" --without-xmms2d"
else
# some fun static mappings:
local option_map=( # USE # sorted xmms2 option flag (same, as USE if empty)
"avahi avahi"
"ENABLED cli"
"avahi dns_sd"
"phonehome et"
"ENABLED launcher"
"mlib-update medialib-updater"
"ENABLED nycli"
" perl"
"ENABLED pixmaps"
" python"
" ruby"
"DISABLED tests"
"DISABLED vistest"
"cxx xmmsclient++"
"cxx xmmsclient++-glib"
"DISABLED xmmsclient-cf"
"DISABLED xmmsclient-ecore" # not in tree
)
local plugin_map=( # USE # sorted xmms2 plugin flag (same, as USE if empty)
" alsa"
" airplay"
" ao"
"ffmpeg apefile"
"ffmpeg avcodec"
" asf"
"ENABLED asx"
" cdda"
"DISABLED coreaudio" # MacOS only?
" curl"
"ENABLED cue"
"avahi daap"
"ENABLED diskwrite"
"ENABLED equalizer"
"aac faad"
"ENABLED file"
" flac"
"ffmpeg flv"
"ffmpeg tta"
"DISABLED gme" # not in tree
" gvfs"
"ENABLED html"
" ices"
"ENABLED icymetaint"
"ENABLED id3v2"
" jack"
"ENABLED karaoke"
"ENABLED m3u"
" mac"
" mms"
"mp3 mad"
" mp4"
" mpg123"
" modplug"
" musepack"
"DISABLED nms" # not in tree
"ENABLED normalize"
"ENABLED null"
"ENABLED nulstripper"
" ofa"
" oss"
"ENABLED pls"
"pulseaudio pulse"
"ENABLED replaygain"
"xml rss"
" samba"
"DISABLED sc68" #not in tree
" sid"
" speex"
"DISABLED sun" # {Open,Net}BSD only
"DISABLED tremor" # not in tree
" vorbis"
" vocoder"
"ffmpeg tta"
"ENABLED wave"
"DISABLED waveout" # windows only
" wavpack"
"xml xspf"
"ENABLED xml"
)
local option
for option in "${option_map[@]}"; do
optionals+=$(xmms2_flag $option)
done
local plugin
for plugin in "${plugin_map[@]}"; do
plugins+=$(xmms2_flag $plugin)
done
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 ${waf_params} configure || die "'waf configure' failed"
}
src_compile() {
./waf build || die "waf build failed"
}
src_install() {
./waf --without-ldconfig --destdir="${D}" install || die "'waf install' failed"
dodoc AUTHORS TODO README
use python && python_need_rebuild
}
pkg_postinst() {
elog "This version is built on experimental development code"
elog "If you encounter any errors report them at http://bugs.xmms2.xmms.se"
elog "and visit #xmms2 at irc://irc.freenode.net"
if use phonehome ; then
einfo ""
einfo "The phone-home client xmms2-et was activated"
einfo "This client sends anonymous usage-statistics to the xmms2"
einfo "developers which may help finding bugs"
einfo "Disable the phonehome useflag if you don't like that"
fi
use python && python_mod_optimize "$(python_get_sitedir)/xmmsclient"
}
pkg_postrm() {
use python && python_mod_cleanup "$(python_get_sitedir)/xmmsclient"
}
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v3)
2010-06-29 19:44 ` [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v3) Sergei Trofimovich
@ 2010-06-29 20:01 ` Mike Frysinger
0 siblings, 0 replies; 7+ messages in thread
From: Mike Frysinger @ 2010-06-29 20:01 UTC (permalink / raw
To: Sergei Trofimovich; +Cc: gentoo-dev, bronksos
[-- Attachment #1: Type: Text/Plain, Size: 129 bytes --]
On Tuesday, June 29, 2010 15:44:56 Sergei Trofimovich wrote:
> Is there way to declare locals directly in 'for' loops?
no
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-06-29 20:02 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-28 18:27 [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild Sergei Trofimovich
2010-06-29 6:24 ` Mike Frysinger
2010-06-29 7:18 ` Łukasz Michalik
2010-06-29 16:57 ` [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v2) Sergei Trofimovich
2010-06-29 18:55 ` Mike Frysinger
2010-06-29 19:44 ` [gentoo-dev] RFC: media-sound/xmms2/xmms2-0.7.ebuild (v3) Sergei Trofimovich
2010-06-29 20:01 ` Mike Frysinger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox