44 lines
1.4 KiB
Bash
44 lines
1.4 KiB
Bash
#!/bin/bash
|
|
set -eux
|
|
|
|
REQUIRED="1.14.5"
|
|
|
|
# Determine current svn version if present
|
|
current=""
|
|
if command -v svn >/dev/null 2>&1; then
|
|
current="$(svn --version --quiet 2>/dev/null || true)"
|
|
fi
|
|
|
|
# If current version is >= REQUIRED, skip building
|
|
if [ -n "${current}" ] && dpkg --compare-versions "${current}" ge "${REQUIRED}"; then
|
|
echo "Subversion ${current} is >= ${REQUIRED}; skipping build."
|
|
exit 0
|
|
fi
|
|
|
|
URL="https://archive.apache.org/dist/subversion/subversion-1.14.5.tar.gz"
|
|
TMP="/tmp"
|
|
TARBALL="subversion-1.14.5.tar.gz"
|
|
SRCDIR="subversion-1.14.5"
|
|
|
|
if wget -q -O "${TMP}/${TARBALL}" "${URL}"; then
|
|
echo "Downloaded ${TARBALL} — building..."
|
|
apt-get remove -y subversion libsvn1 || true
|
|
cd "${TMP}"
|
|
tar -xzf "${TARBALL}"
|
|
cd "${SRCDIR}"
|
|
apt-get update -y
|
|
apt-get install -y --no-install-recommends build-essential autoconf libtool libsqlite3-dev pkg-config libapr1-dev libaprutil1-dev liblz4-dev libutf8proc-dev zlib1g-dev
|
|
./configure --with-lz4=internal --prefix=/usr
|
|
make -j"$(nproc 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)"
|
|
make install
|
|
cd /
|
|
rm -rf "${TMP:?}/${SRCDIR}" "${TMP:?}/${TARBALL}"
|
|
apt-get purge -y --auto-remove build-essential autoconf libtool pkg-config
|
|
rm -rf /var/lib/apt/lists/*
|
|
echo "Subversion built and installed (build deps removed)"
|
|
else
|
|
echo "Downloading svn source failed, skipping Subversion build"
|
|
fi
|
|
|
|
|