forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Jaco Kroon <[email protected]> Closes: gentoo#39777 Signed-off-by: Joonas Niilola <[email protected]>
- Loading branch information
Showing
2 changed files
with
137 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
DIST pjproject-2.13.1.tar.gz 9746437 BLAKE2B a50278be52df755c5cec08da0c1a604a8c0ad6911853a424596ce05bc423a829818d2e7425b55bdc00fa24a91b9a3e891c54aa2add5cdbf8698173ac44ae2975 SHA512 1cdfaedafa2f42b306eef38174530163db19952c6842d5c96324c7439e2437a17cd96670ac58ae04da221b06d7eb91d612f4347cd421e036be62b27cb9501cda | ||
DIST pjproject-2.15.1.tar.gz 10425868 BLAKE2B cb4fdeca8559460f5335ffa7723e58fea3cb3f81cb55170ab7694b7828e3179c39c0fc376bebed566a212ec2b102349fc78593e414cb03864e4b111cdbf8b77c SHA512 2f83ed32f16c27808d3b9cc8f3b364c68fe88caae9765012b385a0fea70ba8ef4dcfebe3b130156047546720351a527e17d6a1e967877d6a44a6ff3a1f695599 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
# Copyright 1999-2024 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# TODO: Figure out a way to disable SRTP from pjproject entirely. | ||
EAPI=8 | ||
|
||
inherit autotools flag-o-matic toolchain-funcs | ||
|
||
DESCRIPTION="Open source SIP, Media, and NAT Traversal Library" | ||
HOMEPAGE="https://github.com/pjsip/pjproject https://www.pjsip.org/" | ||
SRC_URI="https://github.com/pjsip/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" | ||
LICENSE="GPL-2" | ||
SLOT="0/${PV}" | ||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86" | ||
|
||
# g729 not included due to special bcg729 handling. | ||
CODEC_FLAGS="g711 g722 g7221 gsm ilbc speex l16" | ||
VIDEO_FLAGS="sdl ffmpeg v4l2 openh264 libyuv vpx" | ||
SOUND_FLAGS="alsa portaudio" | ||
IUSE="amr debug epoll examples opus resample silk srtp ssl static-libs webrtc | ||
${CODEC_FLAGS} g729 | ||
${VIDEO_FLAGS} | ||
${SOUND_FLAGS}" | ||
|
||
RDEPEND=" | ||
alsa? ( media-libs/alsa-lib ) | ||
amr? ( media-libs/opencore-amr ) | ||
ffmpeg? ( media-video/ffmpeg:= ) | ||
g729? ( media-libs/bcg729 ) | ||
gsm? ( media-sound/gsm ) | ||
ilbc? ( media-libs/libilbc ) | ||
openh264? ( media-libs/openh264 ) | ||
opus? ( media-libs/opus ) | ||
portaudio? ( media-libs/portaudio ) | ||
resample? ( media-libs/libsamplerate ) | ||
sdl? ( media-libs/libsdl2 ) | ||
speex? ( | ||
media-libs/speex | ||
media-libs/speexdsp | ||
) | ||
srtp? ( >=net-libs/libsrtp-2.3.0:= ) | ||
ssl? ( dev-libs/openssl:0= ) | ||
" | ||
DEPEND="${RDEPEND}" | ||
BDEPEND="virtual/pkgconfig" | ||
|
||
src_prepare() { | ||
default | ||
rm configure || die "Unable to remove unwanted wrapper" | ||
mv aconfigure.ac configure.ac || die "Unable to rename configure script source" | ||
eautoreconf | ||
|
||
cp "${FILESDIR}/pjproject-2.13.1-r1-config_site.h" "${S}/pjlib/include/pj/config_site.h" \ | ||
|| die "Unable to create config_site.h" | ||
} | ||
|
||
_pj_enable() { | ||
usex "$1" '' "--disable-${2:-$1}" | ||
} | ||
|
||
_pj_get_define() { | ||
local r="$(sed -nre "s/^#define[[:space:]]+$1[[:space:]]+//p" "${S}/pjlib/include/pj/config_site.h")" | ||
[[ -z "${r}" ]] && die "Unable to fine #define $1 in config_site.h" | ||
echo "$r" | ||
} | ||
|
||
_pj_set_define() { | ||
local c=$(_pj_get_define "$1") | ||
[[ "$c" = "$2" ]] && return 0 | ||
sed -re "s/^#define[[:space:]]+$1[[:space:]].*/#define $1 $2/" -i "${S}/pjlib/include/pj/config_site.h" \ | ||
|| die "sed failed updating $1 to $2." | ||
[[ "$(_pj_get_define "$1")" != "$2" ]] && die "sed failed to perform update for $1 to $2." | ||
} | ||
|
||
_pj_use_set_define() { | ||
_pj_set_define "$2" $(usex "$1" 1 0) | ||
} | ||
|
||
src_configure() { | ||
local myconf=() | ||
local videnable="--disable-video" | ||
local t | ||
|
||
use debug || append-cflags -DNDEBUG=1 | ||
|
||
for t in ${CODEC_FLAGS}; do | ||
myconf+=( $(_pj_enable ${t} ${t}-codec) ) | ||
done | ||
myconf+=( $(_pj_enable g729 bcg729) ) | ||
|
||
for t in ${VIDEO_FLAGS}; do | ||
myconf+=( $(_pj_enable ${t}) ) | ||
use "${t}" && videnable="--enable-video" | ||
done | ||
|
||
[ "${videnable}" = "--enable-video" ] && _pj_set_define PJMEDIA_HAS_VIDEO 1 || _pj_set_define PJMEDIA_HAS_VIDEO 0 | ||
|
||
LD="$(tc-getCXX)" econf \ | ||
--enable-shared \ | ||
${videnable} \ | ||
$(_pj_enable alsa sound) \ | ||
$(_pj_enable amr opencore-amr) \ | ||
$(_pj_enable epoll) \ | ||
$(_pj_enable opus) \ | ||
$(_pj_enable portaudio ext-sound) \ | ||
$(_pj_enable resample libsamplerate) \ | ||
$(_pj_enable resample resample-dll) \ | ||
$(_pj_enable resample) \ | ||
$(_pj_enable silk) \ | ||
$(_pj_enable speex speex-aec) \ | ||
$(_pj_enable ssl) \ | ||
$(_pj_enable webrtc libwebrtc) \ | ||
$(use_with gsm external-gsm) \ | ||
$(use_with portaudio external-pa) \ | ||
$(use_with speex external-speex) \ | ||
$(usex srtp --with-external-srtp --disable-libsrtp) \ | ||
"${myconf[@]}" | ||
} | ||
|
||
#src_compile() { | ||
# emake dep | ||
# emake | ||
#} | ||
# | ||
src_install() { | ||
default | ||
|
||
newbin pjsip-apps/bin/pjsua-${CHOST} pjsua | ||
newbin pjsip-apps/bin/pjsystest-${CHOST} pjsystest | ||
|
||
if use examples; then | ||
insinto "/usr/share/doc/${PF}/examples" | ||
doins -r pjsip-apps/src/samples | ||
fi | ||
|
||
use static-libs || rm "${ED}/usr/$(get_libdir)"/*.a || die "Error removing static archives" | ||
} |