Skip to content

Commit

Permalink
install_prereq: Build jansson from source, when necessary
Browse files Browse the repository at this point in the history
When r383579 was committed, it made Jansson a required dependency.

While libjansson-dev and jansson-devel are available on recent
distros, some older (but still supported) distros don't have
it. There's a pull request[1] to get it into repoforge, but that still
doesn't help everyone. (And helps no one until the pull request is
merged and packages are built).

This patch adds Jansson install from source to the install_unpackaged()
function. There are a few gotcha's, which makes this change not
completely trivial.

 * Since Jansson may be installed by a package, don't install from
   source if a package installation can be found
   * libresample may also be installed via package, so I added a
     similar check to that.
 * Since Jansson installs into /usr/local, this patch also adds
   /usr/local/lib to /etc/ld.so.conf.d so that the library can be
   found.
   * The alternative was to install into /usr, but then it gets
     complicated having to deal with EL's /usr/lib{32,64} shenanigans.

 [1]: repoforge/rpms#250

Review: https://reviewboard.asterisk.org/r/2414/


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@384488 f38db490-d61c-443f-a65b-d21fe96a405b
  • Loading branch information
dlee committed Apr 1, 2013
1 parent 5ebb42b commit 35dab4e
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions contrib/scripts/install_prereq
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ PACKAGES_OBSD="popt gmake wget libxml libogg libvorbis curl iksemel spandsp spee

KVERS=`uname -r`

JANSSON_VER=2.4

case "$1" in
test) testcmd=echo ;;
install) testcmd='' ;;
Expand Down Expand Up @@ -101,11 +103,25 @@ install_unpackaged() {
make && make install
cd ..

echo "*** Installing libresample ***"
svn co http://svn.digium.com/svn/thirdparty/libresample/trunk libresample-trunk
cd libresample-trunk
./configure && make && make install
cd ..
# Only install libresample if it wasn't installed via package
if ! test -f /usr/include/libresample.h; then
echo "*** Installing libresample ***"
svn co http://svn.digium.com/svn/thirdparty/libresample/trunk libresample-trunk
cd libresample-trunk
./configure && make && make install
cd ..
fi

# Only install Jansson if it wasn't installed via package
if ! test -f /usr/include/jansson.h; then
echo "*** Installing jansson ***"
wget -O - http://www.digip.org/jansson/releases/jansson-${JANSSON_VER}.tar.gz | zcat | tar -xf -
cd jansson-${JANSSON_VER}
./configure && make all && make install
cd ..
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local.conf
/sbin/ldconfig
fi
}

if in_test_mode; then
Expand Down

0 comments on commit 35dab4e

Please sign in to comment.