Skip to content

Commit

Permalink
bump
Browse files Browse the repository at this point in the history
  • Loading branch information
msva committed Jul 14, 2012
1 parent c8f8f8d commit 5b1528f
Show file tree
Hide file tree
Showing 3 changed files with 223 additions and 45 deletions.
1 change: 0 additions & 1 deletion net-libs/opal/Manifest
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
EBUILD opal-9999.ebuild 1802 RMD160 dfb82d73e31210d849b9b5566bc7ed1bde592d93 SHA1 8d2b0920cd96d1b9d96871fe571c7c67cbbe63aa SHA256 8bf7518a01e2904b116453773b026273f927a40861ee77ab2e898a9ace4a6858
265 changes: 222 additions & 43 deletions net-libs/opal/opal-9999.ebuild
Original file line number Diff line number Diff line change
@@ -1,82 +1,261 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: This ebuild is from freeswitch overlay; Bumped by mva; $
# $Header: /var/cvsroot/gentoo-x86/net-libs/opal/opal-3.6.8-r2.ebuild,v 1.8 2012/06/17 16:26:12 armin76 Exp $

inherit eutils flag-o-matic subversion autotools
EAPI="4"

inherit eutils autotools toolchain-funcs java-pkg-opt-2 flag-o-matic subversion

DESCRIPTION="C++ class library normalising numerous telephony protocols"
HOMEPAGE="http://www.opalvoip.org/"

SRC_URI=""
ESVN_REPO_URI="https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/trunk"

LICENSE="MPL-1.0"
SLOT="0"
KEYWORDS=""
IUSE="debug doc java"

S="${WORKDIR}/opal"
IUSE="+audio capi celt debug dtmf examples fax ffmpeg h224 h281 h323 iax
ilbc ipv6 ivr ixj java ldap lid +plugins sbc sip sipim srtp ssl static-libs
stats swig theora +video vpb vxml wav x264 x264-static xml"

RDEPEND=">=net-libs/ptlib-9999
>=media-video/ffmpeg-0.4.7
media-libs/speex
java? ( virtual/jdk )"
REQUIRED_USE="x264-static? ( x264 )
h281? ( h224 )"

RDEPEND=">=net-libs/ptlib-2.6.6[stun,debug=,audio?,dtmf?,ipv6?,ldap?,ssl?,video?,vxml?,wav?,xml?]
>=media-libs/speex-1.2_beta
fax? ( net-libs/ptlib[asn] )
h323? ( net-libs/ptlib[asn] )
ivr? ( net-libs/ptlib[http,xml,vxml] )
java? ( >=virtual/jre-1.4 )
plugins? (
media-sound/gsm
capi? ( net-dialup/capi4k-utils )
celt? ( media-libs/celt )
ffmpeg? ( virtual/ffmpeg[encode] )
ixj? ( sys-kernel/linux-headers )
ilbc? ( dev-libs/ilbc-rfc3951 )
sbc? ( media-libs/libsamplerate )
theora? ( media-libs/libtheora )
x264? ( virtual/ffmpeg
media-libs/x264 ) )
srtp? ( net-libs/libsrtp )
vxml? ( net-libs/ptlib[http,vxml] )"
DEPEND="${RDEPEND}
doc? ( app-doc/doxygen )"
virtual/pkgconfig
>=sys-devel/gcc-3
java? ( swig? ( dev-lang/swig )
>=virtual/jdk-1.4 )"

# NOTES:
# ffmpeg[encode] is for h263 and mpeg4
# ssl, xml, vxml, ipv6, dtmf, ldap, audio, wav, and video are use flags
# herited from ptlib: feature is enabled if ptlib has enabled it
# however, disabling it if ptlib has it looks hard (coz of buildopts.h)
# forcing ptlib to disable it for opal is not a solution too
# atm, accepting the "auto-feature" looks like a good solution
# (asn is used for fax and config _only_ for examples)
# OPALDIR should not be used anymore but if a package still need it, create it

pkg_setup() {
if use debug && ! built_with_use net-libs/ptlib debug; then
eerror "You need to build net-libs/ptlib with USE=debug enabled."
die "net-libs/ptlib has to be built with USE=debug"
# need >=gcc-3
if [[ $(gcc-major-version) -lt 3 ]]; then
eerror "You need to use gcc-3 at least."
eerror "Please change gcc version with 'gcc-config'."
die "You need to use gcc-3 at least."
fi

if ! use debug && built_with_use net-libs/ptlib debug; then
eerror "You need to build net-libs/ptlib without USE=debug."
die "net-libs/ptlib has not to be built with USE=debug"
java-pkg-opt-2_pkg_setup
}

src_prepare() {
# remove visual studio related files from samples/
if use examples; then
rm -f samples/*/*.vcproj
rm -f samples/*/*.sln
rm -f samples/*/*.dsp
rm -f samples/*/*.dsw
fi

# opal can't build with --as-needed
append-ldflags -Wl,--no-as-needed
}
# h224 really needs h323 ?
# TODO: get a confirmation in ml
sed -i -e "s:\(.*HAS_H224.*\), \[OPAL_H323\]:\1:" configure.ac \
|| die "sed failed"

eaclocal
eautoconf

# in plugins
cd plugins/
eaclocal
eautoconf
cd ..

# disable srtp if srtp is not enabled (prevent auto magic dep)
# upstream bug 2686485 (fixed in 3.7)
if ! use srtp; then
sed -i -e "s/OPAL_SRTP=yes/OPAL_SRTP=no/" configure \
|| die "patching configure failed"
fi

src_unpack() {
subversion_src_unpack
cd "${S}"
# disable theora if theora is not enabled (prevent auto magic dep)
# upstream bug 2686488 (fixed in 3.7)
if ! use theora; then
sed -i -e "s/HAVE_THEORA=yes/HAVE_THEORA=no/" plugins/configure \
|| die "patching plugins/configure failed"
fi

# disable mpeg4 and h263p if ffmpeg is not enabled (prevent auto magic dep)
# upstream bug 2686495 (fixed in 3.7)
if ! use ffmpeg; then
sed -i -e "s/HAVE_H263P=yes/HAVE_H263P=no/" plugins/configure \
|| die "patching plugins/configure failed"
sed -i -e "s/HAVE_MPEG4=yes/HAVE_MPEG4=no/" plugins/configure \
|| die "patching plugins/configure failed"
fi

# recreate configure etc.
eautoreconf
# disable celt if celt is not enabled (prevent auto magic dep)
# already in repository
if ! use celt; then
sed -i -e "s/HAVE_CELT=yes/HAVE_CELT=no/" plugins/configure \
|| die "sed failed"
fi

# fix gsm wav49 support check, upstream bug 2686500 (fixed in 3.7)
if use plugins; then
sed -i -e "s:gsm\.h:gsm/gsm.h:" plugins/configure \
|| die "patching plugins/configure failed"
fi

# fix automatic swig detection, upstream bug 2712521 (upstream reject it)
if ! use swig; then
sed -i -e "/^SWIG=/d" configure || die "patching configure failed"
fi

use ilbc || { rm -r plugins/audio/iLBC/ || die "removing iLBC failed"; }

java-pkg-opt-2_src_prepare
}

src_compile() {
local makeopts
src_configure() {
local forcedconf=""

# fix bug 277233, upstream bug 2820939
if use fax; then
forcedconf="${forcedconf} --enable-statistics"
fi

# --with-libavcodec-source-dir should _not_ be set, it's for trunk sources
# versioncheck: check for ptlib version
# shared: should always be enabled for a lib
# localspeex, localspeexdsp, localgsm, localilbc: never use bundled libs
# samples: only build some samples, useless
# libavcodec-stackalign-hack: prevent hack (default disable by upstream)
# default-to-full-capabilties: default enable by upstream
# aec: atm, only used when bundled speex, so it's painless for us
# zrtp doesn't depend on net-libs/libzrtpcpp but on libzrtp from
# http://zfoneproject.com/ that is not in portage
# http://zfoneproject.com/ wich is not in portage
# msrp: highly experimental
# spandsp: doesn't work with newest spandsp, upstream bug 2796047
# g711plc: force enable
# rfc4103: not really used, upstream bug 2795831
# t38, spandsp: merged in fax
# h450, h460, h501: merged in h323 (they are additional features of h323)
econf \
--enable-versioncheck \
--enable-shared \
--disable-zrtp \
--disable-localspeex \
--disable-localspeexdsp \
--disable-localgsm \
--disable-localilbc \
--disable-samples \
--disable-libavcodec-stackalign-hack \
--enable-default-to-full-capabilties \
--enable-aec \
--disable-msrp \
--disable-spandsp \
--enable-g711plc \
--enable-rfc4103 \
$(use_enable debug) \
$(use_enable capi) \
$(use_enable fax) \
$(use_enable fax t38) \
$(use_enable h224) \
$(use_enable h281) \
$(use_enable h323) \
$(use_enable h323 h450) \
$(use_enable h323 h460) \
$(use_enable h323 h501) \
$(use_enable iax) \
$(use_enable ivr) \
$(use_enable ixj) \
$(use_enable java) \
--enable-plugins \
--disable-localspeex \
--disable-zrtp \
|| die "econf failed"
$(use_enable lid) \
$(use_enable plugins) \
$(use_enable sbc) \
$(use_enable sip) \
$(use_enable sipim) \
$(use_enable stats statistics) \
$(use_enable video) $(use_enable video rfc4175) \
$(use_enable vpb) \
$(use_enable x264 h264) \
$(use_enable x264-static x264-link-static) \
${forcedconf}
}

if use debug; then
makeopts="debug"
else
makeopts="opt"
fi
src_compile() {
local makeopts=""

use debug && makeopts="debug"

emake ${makeopts} || die "emake failed"
}

if use doc; then
emake doc || die "emake doc failed"
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"

# Get rid of static libraries if not requested
# There seems to be no easy way to disable this in the build system
if ! use static-libs; then
rm -v "${D}"/usr/lib*/*.a || die
fi

# ChangeLog is not standard
dodoc ChangeLog-${PN}-v${PV//./_}.txt || die "dodoc failed"

if use examples; then
local exampledir="/usr/share/doc/${PF}/examples"
local basedir="samples"
local sampledirs="`ls ${basedir} --hide=configure* \
--hide=opal_samples.mak.in`"

# first, install files
insinto ${exampledir}/
doins ${basedir}/{configure*,opal_samples*} \
|| die "doins failed"

# now, all examples
for x in ${sampledirs}; do
insinto ${exampledir}/${x}/
doins ${basedir}/${x}/* || die "doins failed"
done

# some examples need version.h
insinto "/usr/share/doc/${PF}/"
doins version.h || die "doins failed"
fi
}

src_install() {
emake PREFIX=/usr DESTDIR="${D}" install || die "emake install failed"
pkg_postinst() {
if use examples; then
ewarn "All examples have been installed, some of them will not work on your system"
ewarn "it will depend of the enabled USE flags in ptlib and opal"
fi

if use doc; then
dohtml -r html/* docs/* || die "documentation installation failed"
if ! use plugins || ! use audio || ! use video; then
ewarn "You have disabled audio, video or plugins USE flags."
ewarn "Most audio/video features or plugins have been disabled silently"
ewarn "even if enabled via USE flags."
ewarn "Having a feature enabled via USE flag but disabled can lead to issues."
fi
}
2 changes: 1 addition & 1 deletion net-libs/ptlib/ptlib-9999.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ CDEPEND="
sasl? ( dev-libs/cyrus-sasl:2 )
sdl? ( media-libs/libsdl )
ssl? ( dev-libs/openssl )
video? ( ieee1394? ( media-libs/libdc1394:1
video? ( ieee1394? ( media-libs/libdc1394
media-libs/libdv
sys-libs/libavc1394
sys-libs/libraw1394 )
Expand Down

0 comments on commit 5b1528f

Please sign in to comment.