#!/bin/bash
set -e
# Make sure we have all dependencies installed
echo "Checking dependencies..."
DEB_LIST_MINIMAL="\
build-essential \
autoconf automake \
shared-mime-info \
libltdl3-dev \
libtool \
intltool \
gettext \
libpng-dev \
libfftw3-dev \
fontconfig \
libfreetype6-dev \
libfontconfig1-dev \
libxml2-dev \
libtiff5-dev \
libmlt-dev libmlt++-dev \
x11proto-xext-dev libdirectfb-dev libxfixes-dev libxinerama-dev libxdamage-dev libxcomposite-dev libxcursor-dev libxft-dev libxrender-dev libxt-dev libxrandr-dev libxi-dev libxext-dev libx11-dev \
libatk1.0-dev \
libgl1-mesa-dev \
imagemagick \
bzip2"
if which dnf >/dev/null; then
#
# Fedora >= 22
#
PKG_LIST="git"
if [[ $MODE == 'package' ]]; then
PKG_LIST="${PKG_LIST} \
debootstrap \
rsync"
else
PKG_LIST="${PKG_LIST} \
intltool \
libpng-devel \
libjpeg-devel \
fftw-devel \
freetype-devel \
fontconfig-devel \
atk-devel \
pango-devel \
cairo-devel \
gtk3-devel \
gettext-devel \
libxml2-devel \
libxml++-devel \
gcc-c++ \
autoconf \
automake \
libtool \
libtool-ltdl-devel \
boost-devel \
shared-mime-info \
OpenEXR-devel \
libmng-devel \
ImageMagick-c++-devel \
jack-audio-connection-kit-devel \
mlt-devel \
ocl-icd-devel \
opencl-headers \
gtkmm30-devel \
glibmm24-devel"
fi
if ! ( rpm -qv $PKG_LIST ); then
echo "Running dnf (you need root privelegies to do that)..."
su -c "dnf install $PKG_LIST" || true
fi
elif which yum >/dev/null; then
#
# Fedora
#
PKG_LIST="git"
if [[ $MODE == 'package' ]]; then
PKG_LIST="${PKG_LIST} \
debootstrap \
rsync"
else
PKG_LIST="${PKG_LIST} \
intltool \
libpng-devel \
libjpeg-devel \
fftw-devel \
freetype-devel \
fontconfig-devel \
atk-devel \
pango-devel \
cairo-devel \
gtk3-devel \
gettext-devel \
libxml2-devel \
libxml++-devel \
gcc-c++ \
autoconf \
automake \
libtool \
libtool-ltdl-devel \
boost-devel \
shared-mime-info \
OpenEXR-devel \
libmng-devel \
ImageMagick-c++-devel \
jack-audio-connection-kit-devel \
mlt-devel \
ocl-icd-devel \
opencl-headers \
gtkmm30-devel \
glibmm24-devel"
fi
if ! ( rpm -qv $PKG_LIST ); then
echo "Running yum (you need root privelegies to do that)..."
su -c "yum install $PKG_LIST" || true
fi
elif which zypper >/dev/null; then
#
# OpenSUSE
#
PKG_LIST="git"
if [[ $MODE == 'package' ]]; then
PKG_LIST="${PKG_LIST} \
debootstrap \
rsync"
else
PKG_LIST="${PKG_LIST} libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel boost-devel shared-mime-info"
PKG_LIST="${PKG_LIST} OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm3-devel glibmm2-devel"
fi
if ! ( rpm -qv $PKG_LIST ); then
echo "Running zypper (you need root privelegies to do that)..."
su -c "zypper install $PKG_LIST" || true
fi
elif which apt-get >/dev/null; then
if [[ $MODE == 'package' ]]; then
if [[ `cat /etc/chroot.id` == "Synfig Packages Buildroot v${BUILDROOT_VERSION}" ]]; then
#we are inside of chroot
PKG_LIST="$DEB_LIST_MINIMAL rpm alien xsltproc wget python"
else
#we have to prepare chroot
PKG_LIST="git-core debootstrap rsync"
fi
else
if ( cat /etc/altlinux-release | egrep "ALT Linux" ); then
#
# ALT Linux case
#
PKG_LIST=" \
rpm-build \
git-core \
shared-mime-info \
libltdl3-devel \
intltool \
gettext \
libpng12-devel \
libjpeg-devel \
fontconfig \
libfreetype-devel \
fontconfig-devel \
libxml2-devel \
libtiff-devel \
libjasper-devel \
libdirectfb-devel \
libfftw3-dev \
libXfixes-devel \
libXinerama-devel \
libXdamage-devel \
libXcomposite-devel \
libXcursor-devel \
libXft-devel \
libXrender-devel \
libXt-devel \
libXrandr-devel \
libXi-devel \
libXext-devel \
libX11-devel \
libatk-devel \
bzip2 \
libmng-devel \
libgtkmm3-devel \
libglibmm-devel \
libsigc++2-devel \
libxml++2-devel \
"
else
#
# Ubuntu/Debian case
#
PKG_LIST=" \
${DEB_LIST_MINIMAL} \
git-core \
libmng-dev \
libjack-jackd2-dev \
libgtkmm-3.0-dev \
libglibmm-2.4-dev \
libsigc++-2.0-dev \
libxml++2.6-dev \
libboost-system-dev \
libmagick++-dev \
"
fi
fi
echo "Running apt-get (you need root privelegies to do that)..."
echo
sudo apt-get update -qq || true
sudo apt-get install -y -q $PKG_LIST
sudo apt-get install -y -q autopoint || true # Ubuntu special case
else
if [[ $MODE == 'package' ]]; then
if ! ( which git && which debootstrap ) ; then
echo "ERROR: Please install 'git' and 'debootstrap'."
exit;
fi
else
echo "WARNING: This build script does not works with package mangement systems other than yum, zypper or apt! You should install dependent packages manually."
echo "REQUIRED PACKAGES: libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel shared-mime-info OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm30-devel glibmm24-devel"
echo ""
read
fi
fi
echo "Done."