@risto3, @edacval, or others that had trouble with this build before the workarounds — between the upstream fixes to the make setup and some cleanup to the build, I think this the next release should be a bit cleaner. It would be great to hear any feedback from you guys on how it goes building pjproject-git before the next release happens. When there is a new upstream tag I'll port the build changes I made there to here.
Search Criteria
Package Details: python-pjproject 2.17-1
Package Actions
| Git Clone URL: | https://aur.archlinux.org/pjproject.git (read-only, click to copy) |
|---|---|
| Package Base: | pjproject |
| Description: | Open source SIP stack and media stack |
| Upstream URL: | https://www.pjsip.org/ |
| Licenses: | GPL-2.0-only |
| Submitter: | None |
| Maintainer: | alerque (GNUtoo, wuestengecko) |
| Last Packager: | alerque |
| Votes: | 35 |
| Popularity: | 0.025196 |
| First Submitted: | 2007-09-07 12:14 (UTC) |
| Last Updated: | 2026-04-22 10:35 (UTC) |
Dependencies (19)
- pjprojectAUR (pjproject-gitAUR)
- python
- alsa-lib (make)
- e2fsprogs (e2fsprogs-gitAUR) (make)
- ffmpeg (ffmpeg-nvcodec-11-1-gitAUR, ffmpeg-ffplayoutAUR, ffmpeg-cudaAUR, ffmpeg-decklinkAUR, ffmpeg-amd-fullAUR, ffmpeg-amd-full-gitAUR, librempeg-gitAUR, ffmpeg-whisper-gitAUR, ffmpeg-gitAUR, ffmpeg-full-gitAUR, ffmpeg-fullAUR, ffmpeg-full-llvmAUR, ffmpeg-libfdk_aacAUR, ffmpeg-obsAUR, ffmpeg-headlessAUR, ffmpeg-whisperAUR, ffmpeg-cuda-fullAUR) (make)
- libsamplerate (libsamplerate-gitAUR) (make)
- libsrtp (libsrtp-gitAUR) (make)
- libyuv (make)
- openssl (openssl-gitAUR, openssl-staticAUR, openssl-aegisAUR) (make)
- opus (opus-gitAUR) (make)
- portaudio (make)
- python (make)
- python-build (make)
- python-installer (make)
- python-setuptools (make)
- python-wheel (make)
- speex (speex-gitAUR) (make)
- swig (swig-gitAUR) (make)
- util-linux (util-linux-aesAUR, util-linux-selinuxAUR) (make)
Required by (2)
- pjproject (optional)
- pjproject-git (optional)
Sources (3)
alerque commented on 2020-03-11 10:35 (UTC)
alerque commented on 2020-02-25 07:44 (UTC) (edited on 2020-02-25 07:45 (UTC) by alerque)
@risto3, @edacval, or anybody else that can replicate the build failure when removing -jN — the upstream is requesting the output of make from a failed build. Would one of you be able to give them something to work with?
alerque commented on 2020-02-23 08:42 (UTC) (edited on 2020-02-23 08:50 (UTC) by alerque)
As a temporary fix I've added -j1 back to the make invocations. I tested it on multi-process parallel builds before removing it and it builds fine that way, the issue is not whether it is 1 thread or 10, the issue is it somehow fails if the job server is not invoked at all.
Upstream issue reported: https://github.com/pjsip/pjproject/issues/2300
risto3 commented on 2020-02-23 07:21 (UTC)
There does seem to be something anomalous in the swig part, comparing using -j1 and -j2 at least. Perhaps upstream should take a look. I believe -j1 is the best solution here for the time being.
risto3 commented on 2020-02-22 16:28 (UTC)
should mention, oddly enough, that my default makepkg.conf contains MAKEFLAGS="-j10"
It seems that I can build also with -j2, -j9 or even -j10 okay (with just the warning but no error).. but seemingly not using the default value.
I'm on an AMD Opteron(tm) Processor 6338P (family: 0x15, model: 0x2, stepping: 0x0)
go figure!
risto3 commented on 2020-02-22 16:05 (UTC) (edited on 2020-02-22 16:07 (UTC) by risto3)
for info, tried simply with
diff --git a/PKGBUILD b/PKGBUILD
index 771ebeb..ea77c33 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -48,7 +48,7 @@ build() {
make dep
make
- make -C pjsip-apps/src/swig
+ make -j1 -C pjsip-apps/src/swig
cd 'pjsip-apps/src/swig/python'
python setup.py build
and it built ok.
edacval commented on 2020-02-22 15:07 (UTC) (edited on 2020-02-22 15:08 (UTC) by edacval)
@risto3,@caleb: build fails when make runs several parallel jobs. Put
MAKEFLAGS="j1"
to makepkg.conf or replace build() function in PKGBUILD with
build() {
cd "$pkgbase-$pkgver"
export CXXFLAGS="$CXXFLAGS -fPIC"
if [ "$CARCH" = "i686" ]; then
export CXXFLAGS="$CXXFLAGS -march=i686"
arch_opts=(--disable-libwebrtc)
fi
export CFLAGS="$CFLAGS -fPIC -DNDEBUG"
./configure \
--prefix=/usr \
--with-external-speex \
--with-external-srtp \
--with-external-pa \
--with-external-gsm \
--enable-shared \
--disable-opencore-amr \
"${arch_opts[@]}"
make -j1 dep
make -j1
make -j1 -C pjsip-apps/src/swig
}
alerque commented on 2020-02-22 13:07 (UTC) (edited on 2020-02-22 13:07 (UTC) by alerque)
@risto3 I'm sorry it's broken for you, but I can't identify the problem. It is giving you an error about a directory not existing ... something that should have been extracted from the source tarball. I just tested on a clean build tree and not only is that directory present, but it builds fine too. You can also try this package. If you figure out what is either missing from your system or you can do differently to build it I'm happy to facilitate a fix.
risto3 commented on 2020-02-22 12:25 (UTC) (edited on 2020-02-22 12:30 (UTC) by risto3)
oups, I'm having difficulties upgrading to 2.10 on
Linux sarchx64 5.4.21-1-lts #1 SMP Thu, 20 Feb 2020 18:23:19 +0000 x86_64 GNU/Linux
Here's the tail end of the build
Seemed fine beforehand... richard
make[2] : on quitte le répertoire « /tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/build » make[2] : on quitte le répertoire « /tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/build » make[1] : on quitte le répertoire « /tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/build » make : on entre dans le répertoire « /tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/src/swig » make -C python make[1]: Entering directory '/tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/src/swig/python' python3 setup.py build make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. running build running build_py running build_ext building '_pjsua2' extension gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fPIC -DNDEBUG -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c pjsua2_wrap.cpp -o build/temp.linux-x86_64-3.8/pjsua2_wrap.o make[2]: Entering directory '/tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/src/swig/python' -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fPIC -DPJ_AUTOCONF=1 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fPIC -DNDEBUG -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -fPIC -DPJMEDIA_VIDEO_DEV_HAS_SDL=1 -I/usr/include/SDL2 -D_REENTRANT -DPJMEDIA_HAS_LIBAVDEVICE=1 -DPJMEDIA_HAS_LIBAVFORMAT=1 -DPJMEDIA_HAS_LIBAVCODEC=1 -DPJMEDIA_HAS_LIBSWSCALE=1 -DPJMEDIA_HAS_LIBAVUTIL=1 -DPJMEDIA_VIDEO_DEV_HAS_V4L2=1 -DPJMEDIA_HAS_VPX_CODEC=1 -DPJMEDIA_VIDEO_DEV_HAS_SDL=1 -I/usr/include/SDL2 -D_REENTRANT -DPJMEDIA_HAS_LIBAVDEVICE=1 -DPJMEDIA_HAS_LIBAVFORMAT=1 -DPJMEDIA_HAS_LIBAVCODEC=1 -DPJMEDIA_HAS_LIBSWSCALE=1 -DPJMEDIA_HAS_LIBAVUTIL=1 -DPJMEDIA_VIDEO_DEV_HAS_V4L2=1 -DPJMEDIA_HAS_VPX_CODEC=1 -I/tmp/makepkg/pjproject/src/pjproject-2.10/pjlib/include -I/tmp/makepkg/pjproject/src/pjproject-2.10/pjlib-util/include -I/tmp/makepkg/pjproject/src/pjproject-2.10/pjnath/include -I/tmp/makepkg/pjproject/src/pjproject-2.10/pjmedia/include -I/tmp/makepkg/pjproject/src/pjproject-2.10/pjsip/include -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fPIC -DNDEBUG make[2]: Leaving directory '/tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/src/swig/python' gcc: error: make[2]: Entering directory '/tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/src/swig/python': No such file or directory gcc: error: make[2]: Leaving directory '/tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/src/swig/python': No such file or directory error: command 'gcc' failed with exit status 1 make[1]: [Makefile:37: _pjsua2.so] Error 1 make[1]: Leaving directory '/tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/src/swig/python' make: [Makefile:27 : python] Erreur 2 make : on quitte le répertoire « /tmp/makepkg/pjproject/src/pjproject-2.10/pjsip-apps/src/swig » ==> ERREUR : Une erreur s’est produite dans build(). Abandon…
alerque commented on 2020-02-22 05:37 (UTC)
PSA: I've started hosting this and also many other packages I maintain in the AUR as prebuilt packages in my repository for those that want to install them using pacman without messing around with building from the AUR.
Pinned Comments
alerque commented on 2020-02-22 05:37 (UTC)
PSA: I've started hosting this and also many other packages I maintain in the AUR as prebuilt packages in my repository for those that want to install them using
pacmanwithout messing around with building from the AUR.