Package Details: pjproject 2.8-1

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
Last Packager: caleb
Votes: 27
Popularity: 0.021588
First Submitted: 2007-09-07 12:14
Last Updated: 2018-12-05 09:14

Latest Comments

1 2 3 Next › Last »

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.

joximus commented on 2018-02-20 14:46

In order to build pjproject 2.7.1 on archlinuxarm on cubieboard1 (armv7h) I had to make following changes to PGKBUILD: in configure line I added: --disable-libwebrtc and install line change to:

install -D -m755 pjsip-apps/bin/pjsua-&`${srcdir}/${pkgname}-${pkgver}/config.guess` ${pkgdir}/usr/bin/pjsua

caleb commented on 2018-02-15 11:03

I have adopted this package and updated it it a way that works on my systems. As most of the comments are about old versions it's unclear to me if anything remains that needs doing. If so please comment here again with specifics. Particularly any body using this on Raspberry Pis that could report status would be useful.

@tsuflux I setup the optdepends=() array but am unsure about the site config. What's the argument for the upstream project defaults not being suitable as the default use case on Arch?

tsuflux commented on 2017-12-09 11:33

Please add the following to the config_site.h file as described in the Build Preparation documentation:

#define PJ_CONFIG_MAXIMUM_SPEED
#include <pj/config_site_sample.h>
#define PJ_IOQUEUE_MAX_HANDLES 1024

The last line refers to the value of FD_SETSIZE. It may be better to set it conditionally according to this posting on the mailing list.

Also, please remove the pjproject.install file and instead use the optdepends array inside the PKGBUILD.

oksijun commented on 2017-07-30 10:55

core/util-linux no longer provides util-linux-ng, which this package depends on.

Could you make pjproject depend on util-linux instead of util-linux-ng ?

xdevla commented on 2017-06-30 11:40

Yep, would be better to submit it upstream