Package Details: pjproject 2.9-2

Git Clone URL: https://aur.archlinux.org/pjproject.git (read-only)
Package Base: pjproject
Description: Open source SIP stack and media stack
Upstream URL: http://www.pjsip.org/
Licenses: GPL
Submitter: None
Maintainer: caleb (GNUtoo, wuestengecko)
Last Packager: caleb
Votes: 28
Popularity: 0.046133
First Submitted: 2007-09-07 12:14
Last Updated: 2019-08-26 05:34

Sources (3)

Latest Comments

1 2 3 4 Next › Last »

Maniaxx commented on 2019-07-02 02:31

Here is a modified PKGBUILD that pulls the svn instead to get 'pjsystest' and the corresponding wav files. You have to copy them from /usr/share/pjproject to a writable folder and start 'pjsystest'.

I actually needed that to test latency and list detected audio devices and audio backends.

Latency isn't that good here though (245ms roundtrip) on Audigy2 with Portaudio. I've tried ALSA and JACK as well but i don't get them properly working (JACK partially/scrambled, ALSA doesn't initialize properly). They can be optionally enabled in the PKGBUILD marked as experimental.

JACK would be the low-latency killer feature for SIP apps but there is none supporting it. JACK2-dbus doesn't work with portaudio anymore either.

PKGBUILD: https://pastebin.com/raw/z0RJJTzB

wuestengecko commented on 2019-06-29 21:17

@Maniaxx I'm actually using a local build without these flags as well and it's working fine; it seems they slipped past me when I rebased my patch for submission. Fixed now.

Maniaxx commented on 2019-06-28 22:10

Why are these options disabled? pjsua doesn't find any soundcard with --disable-sound and thus is barely usable. The others don't seem to harm either. Why closing doors here?

--disable-v4l2 \
--disable-video \
--disable-sound \

caleb commented on 2019-06-18 13:02

Thanks for the patches @GNUtoo and @wuestengecko! I've applied everything and added you both as co-maintainers as well.

wuestengecko commented on 2019-06-14 19:58

On top of the ones from GNUtoo, I'd like to add two more patches which you can find here: <https://gist.github.com/Wuestengecko/c5e12a95a11dcb4e7b31128726ee4565>

The first file are GNUtoo's patches (git am refused one of them, which I have fixed). The second file (= my first patch) is kind of a full rewrite of the PKGBUILD. It now builds the python bindings (which I need) as split package. The last one is simply a bump to the newly released v2.9 upstream version.

GNUtoo commented on 2019-04-14 22:01

Hi, I've 3 patches for pjproject:

From ae2130a11511f307f46622a48d96c60f411cdccf Mon Sep 17 00:00:00 2001
From: Denis 'GNUtoo' Carikli GNUtoo@cyberdimension.org
Date: Sun, 14 Apr 2019 23:33:27 +0200
Subject: [PATCH 1/3] Fix illegal instructions on x86_64 by disabling
 -march=native

Before this package was built with -march=native, so if you build it on a machine with a processor that supports avx (Advanced Vector Extensions), libpjsip.so.2 ended up with vpxor instructions that don't work anymore on machines with a processor that do not have such extension, and would result in an illegal instruction at asterisk startup on such machines.

Signed-off-by: Denis 'GNUtoo' Carikli GNUtoo@cyberdimension.org

PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/PKGBUILD b/PKGBUILD index 8658642..3543582 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -5,7 +5,7 @@

pkgname=pjproject pkgver=2.8 -pkgrel=1 +pkgrel=2 pkgdesc='Open source SIP stack and media stack' arch=('i686' 'x86_64' 'armv7h') url='http://www.pjsip.org/' @@ -18,7 +18,7 @@ sha256sums=('503d0bd7f9f13dc1492ac9b71b761b1089851fbb608b9a13996edc3c42006f79')

build() { cd "$pkgname-$pkgver" - export CXXFLAGS="$CXXFLAGS -fPIC -march=native" + export CXXFLAGS="$CXXFLAGS -fPIC" export CFLAGS="$CXXFLAGS -DNDEBUG" ./configure --prefix=/usr --with-external-speex --with-external-srtp --with-external-pa --with-external-gsm --disable-oss --enable-shared --disable-opencore-amr --disable-v4l2 --disable-video --disable-sound echo "#define PJ_HAS_IPV6 1" >> "$srcdir/$pkgname-$pkgver/pjlib/include/pj/config_site.h" -- 2.21.0

From a5fa962b0f0003c95f28e429d6e575131a2dadea Mon Sep 17 00:00:00 2001
From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Date: Sun, 14 Apr 2019 23:48:47 +0200
Subject: [PATCH 2/3] disable libwebrtc on i686 to fix illegal instructions

Both Parabola and archlinux32 whish to support all i686 machines
that don't have SSE2:
- Parabola's minimum system requirements states that:
  "Parabola GNU/Linux-libre should run on any i686 compatible machine
  [...]"[1]
  Wikipedia states that i686 has MMX and SSE[2] but doesn't mention
  SSE2 as a requirement[2].
- Archlinux32 states:
  "Currently some i686 packages require SSE2 - which is a bug we're
  trying to solve."[3]

References:
-----------
[1]https://wiki.parabola.nu/Beginners%27_guide#Minimum_system_requirements
[2]https://en.wikipedia.org/wiki/P6_(microarchitecture)
[3]https://archlinux32.org/architecture/

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
---
 PKGBUILD | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/PKGBUILD b/PKGBUILD
index 3543582..297adb3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@

 pkgname=pjproject
 pkgver=2.8
-pkgrel=2
+pkgrel=3
 pkgdesc='Open source SIP stack and media stack'
 arch=('i686' 'x86_64' 'armv7h')
 url='http://www.pjsip.org/'
@@ -19,8 +19,12 @@ sha256sums=('503d0bd7f9f13dc1492ac9b71b761b1089851fbb608b9a13996edc3c42006f79')
 build() {
   cd "$pkgname-$pkgver"
   export CXXFLAGS="$CXXFLAGS -fPIC"
+  if [ "$CARCH" = "i686" ]; then
+    export CXXFLAGS="$CXXFLAGS -march=i686"
+    arch_opts="--disable-libwebrtc"
+  fi
   export CFLAGS="$CXXFLAGS -DNDEBUG"
-  ./configure --prefix=/usr --with-external-speex --with-external-srtp --with-external-pa --with-external-gsm --disable-oss --enable-shared --disable-opencore-amr --disable-v4l2 --disable-video --disable-sound
+  ./configure --prefix=/usr --with-external-speex --with-external-srtp --with-external-pa --with-external-gsm --disable-oss --enable-shared --disable-opencore-amr --disable-v4l2 --disable-video --disable-sound ${arch_opts}
   echo "#define PJ_HAS_IPV6 1" >> "$srcdir/$pkgname-$pkgver/pjlib/include/pj/config_site.h"
   make -j1 dep
   make -j1
-- 
2.21.0

From 5fe317891222a6a34a429751f00bce09fee9f1c0 Mon Sep 17 00:00:00 2001
From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Date: Sun, 14 Apr 2019 23:58:49 +0200
Subject: [PATCH 3/3] package: catch ARM binaries

In package(), the trailing '*' was added to
pjsip-apps/bin/pjsua-*gnu in order to catch binaries like
pjsip-apps/bin/pjsua-armv7l-unknown-linux-gnueabihf on ARM.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
---
 PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/PKGBUILD b/PKGBUILD
index 297adb3..5da55c3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -33,5 +33,5 @@ build() {
 package() {
   cd "$pkgname-$pkgver"
   make -j1 DESTDIR="$pkgdir" install
-  install -D -m755 pjsip-apps/bin/pjsua-*gnu "$pkgdir"/usr/bin/pjsua
+  install -D -m755 pjsip-apps/bin/pjsua-*gnu* "$pkgdir"/usr/bin/pjsua
 }
-- 
2.21.0

caleb commented on 2018-12-05 09:14

Does anybody know why this package is called pjproject instead of pjsip as the upstream appears to be?

post-factum commented on 2018-09-06 13:13

FYI, with v2.8 --disable-oss is not a valid option anymore.

caleb commented on 2018-07-24 05:57

@tsflux: The documentation page you link to actually says otherwise:

When the Makefile based build system is used, this process is taken care by the Makefiles.

tsuflux commented on 2018-02-24 11:11

@caleb, without setting config_site.h the library is build for development purposes only which for example outputs debug information and thus is not capable to handle real-world requirements.