summaryrefslogtreecommitdiff
path: root/pcr/pjproject/PKGBUILD
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2019-01-08 16:50:16 +0100
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2019-01-08 19:54:05 +0100
commit77b12b7a8bc5e704dacedfd0bc95a78fb7034b79 (patch)
tree2251aafa8435183514109c7dc3e128270965cb6d /pcr/pjproject/PKGBUILD
parentaf6a93922eb42bb02fee64165e4e5ab8d69966b9 (diff)
downloadabslibre-77b12b7a8bc5e704dacedfd0bc95a78fb7034b79.tar.gz
abslibre-77b12b7a8bc5e704dacedfd0bc95a78fb7034b79.tar.bz2
abslibre-77b12b7a8bc5e704dacedfd0bc95a78fb7034b79.zip
pcr/pjproject: update to 2.8 and fix illegal instructions
This is based on the PKGBUILD available on aur here: https://aur.archlinux.org/pjproject.git 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 were also executed on machines with a processor that did not have such extension, which resulted in an illegal instruction at asterisk startup. libwebrtc is disabled in order not to require sse2 on i686: - Parabola's minimum system requirements states that: "Parabola GNU/Linux-libre should run on any i686 compatible machine [...]" - Wikipedia states that i686 has MMX and SSE[2] - The Asterisk Changelog has the following: "pjproject_bundled: Add --disable-libwebrtc to configure Without the disable, pjproject tries to build it's internal webrtc implementation which requires sse2. This fails on platforms without sse2." - In package(), a 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. The package build was tested on x86_64, i686 and armv7h. On x86_64 I verified that libpjsip.so.2 did not have vpxor instructions anymore with objdump -D libpjsip.so.2 | grep vpxor References: ----------- [1]https://wiki.parabola.nu/Beginners%27_Guide [2]https://en.wikipedia.org/wiki/P6_(microarchitecture) Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'pcr/pjproject/PKGBUILD')
-rw-r--r--pcr/pjproject/PKGBUILD55
1 files changed, 29 insertions, 26 deletions
diff --git a/pcr/pjproject/PKGBUILD b/pcr/pjproject/PKGBUILD
index cfdaeb0e8..001c6ae7c 100644
--- a/pcr/pjproject/PKGBUILD
+++ b/pcr/pjproject/PKGBUILD
@@ -1,42 +1,45 @@
-# Maintainer (AUR): Xavier Devlamynck <magicrhesus@ouranos.be>
+# Maintainer (AUR): Caleb Maclennan <caleb@alerque.com>
+# Contributor (AUR): Xavier Devlamynck <magicrhesus@ouranos.be>
# Contributor (AUR): Marti Raudsepp <marti@juffo.org>
-#Contributor (AUR): Travis Hegner <travis.hegner@gmail.com>
+# Contributor (AUR): Travis Hegner <travis.hegner@gmail.com>
+# Contributor (Parabola): Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
# parabola changes and rationale:
-# fixing misdetection of x86 intrinsics on armv7h
+# - don't autodetect x86 extensions at compile time (-march=native)
+# as it would break on machines that don't have the all the extensions
+# that the build machine has
+# - added --disable-libwebrtc not to require sse2 (parabola minimum system
+# requirements require an i686 compatible machine, and the P6 architecture
+# only has sse and MMX, and not sse2)
pkgname=pjproject
-pkgver=2.7.1
+pkgver=2.8
pkgrel=1
-pkgdesc="Open source SIP stack and media stack"
+pkgdesc='Open source SIP stack and media stack'
arch=('i686' 'x86_64' 'armv7h')
-url="http://www.pjsip.org/"
+url='http://www.pjsip.org/'
license=('GPL')
depends=('openssl' 'portaudio' 'speex' 'alsa-lib' 'libsamplerate' 'util-linux' 'ffmpeg' 'libsrtp' 'opus')
makedepends=('e2fsprogs' 'python')
-install=pjproject.install
-source=(http://www.pjsip.org/release/${pkgver}/pjproject-${pkgver}.tar.bz2
- arm-build.patch)
-sha256sums=('59fabc62a02b2b80857297cfb10e2c68c473f4a0acc6e848cfefe8421f2c3126'
- 'fc6ccc004586e504d89fd14bbe2c26747849b1b9b617f4427e593de6a1c6b3db')
-
-prepare() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- patch -Np1 < "${srcdir}/arm-build.patch"
-}
+optdepends=('alsa-lib' 'e2fsprogs' 'python')
+source=("http://www.pjsip.org/release/$pkgver/$pkgname-$pkgver.tar.bz2")
+sha256sums=('503d0bd7f9f13dc1492ac9b71b761b1089851fbb608b9a13996edc3c42006f79')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- export CXXFLAGS="${CXXFLAGS} -fPIC -march=native"
- 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"
- make -j1 dep
- make -j1
+ cd "$pkgname-$pkgver"
+ export CXXFLAGS="$CXXFLAGS -fPIC"
+ if [ "$CARCH" = "i686" ]; then
+ export CXXFLAGS="$CXXFLAGS -march=i686"
+ 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 --disable-libwebrtc
+ echo "#define PJ_HAS_IPV6 1" >> "$srcdir/$pkgname-$pkgver/pjlib/include/pj/config_site.h"
+ make -j1 dep
+ make -j1
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make -j1 DESTDIR=${pkgdir} install
- install -D -m755 pjsip-apps/bin/pjsua-* ${pkgdir}/usr/bin/pjsua
+ cd "$pkgname-$pkgver"
+ make -j1 DESTDIR="$pkgdir" install
+ install -D -m755 pjsip-apps/bin/pjsua-*gnu* "$pkgdir"/usr/bin/pjsua
}