| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- #!/bin/bash
- vips_version_minimum=8.4.2
- vips_version_latest_major_minor=8.4
- vips_version_latest_patch=2
- openslide_version_minimum=3.4.0
- openslide_version_latest_major_minor=3.4
- openslide_version_latest_patch=1
- install_libvips_from_source() {
- echo "Compiling libvips $vips_version_latest_major_minor.$vips_version_latest_patch from source"
- curl -O http://www.vips.ecs.soton.ac.uk/supported/$vips_version_latest_major_minor/vips-$vips_version_latest_major_minor.$vips_version_latest_patch.tar.gz
- tar zvxf vips-$vips_version_latest_major_minor.$vips_version_latest_patch.tar.gz
- cd vips-$vips_version_latest_major_minor.$vips_version_latest_patch
- CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" ./configure --disable-debug --disable-docs --disable-static --disable-introspection --disable-dependency-tracking --enable-cxx=yes --without-python --without-orc --without-fftw $1
- make
- make install
- cd ..
- rm -rf vips-$vips_version_latest_major_minor.$vips_version_latest_patch
- rm vips-$vips_version_latest_major_minor.$vips_version_latest_patch.tar.gz
- ldconfig
- echo "Installed libvips $(PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig pkg-config --modversion vips)"
- }
- install_libopenslide_from_source() {
- echo "Compiling openslide $openslide_version_latest_major_minor.$openslide_version_latest_patch from source"
- curl -O -L https://github.com/openslide/openslide/releases/download/v$openslide_version_latest_major_minor.$openslide_version_latest_patch/openslide-$openslide_version_latest_major_minor.$openslide_version_latest_patch.tar.gz
- tar xzvf openslide-$openslide_version_latest_major_minor.$openslide_version_latest_patch.tar.gz
- cd openslide-$openslide_version_latest_major_minor.$openslide_version_latest_patch
- PKG_CONFIG_PATH=$pkg_config_path ./configure $1
- make
- make install
- cd ..
- rm -rf openslide-$openslide_version_latest_major_minor.$openslide_version_latest_patch
- rm openslide-$openslide_version_latest_major_minor.$openslide_version_latest_patch.tar.gz
- ldconfig
- echo "Installed libopenslide $openslide_version_latest_major_minor.$openslide_version_latest_patch"
- }
- sorry() {
- echo "Sorry, I don't yet know how to install lib$1 on $2"
- exit 1
- }
- pkg_config_path="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig"
- check_if_library_exists() {
- PKG_CONFIG_PATH=$pkg_config_path pkg-config --exists $1
- if [ $? -eq 0 ]; then
- version_found=$(PKG_CONFIG_PATH=$pkg_config_path pkg-config --modversion $1)
- PKG_CONFIG_PATH=$pkg_config_path pkg-config --atleast-version=$2 $1
- if [ $? -eq 0 ]; then
- # Found suitable version of libvips
- echo "Found lib$1 $version_found"
- return 1
- fi
- echo "Found lib$1 $version_found but require $2"
- else
- echo "Could not find lib$1 using a PKG_CONFIG_PATH of '$pkg_config_path'"
- fi
- return 0
- }
- enable_openslide=0
- # Is libvips already installed, and is it at least the minimum required version?
- if [ $# -eq 1 ]; then
- if [ "$1" = "--with-openslide" ]; then
- echo "Installing vips with openslide support"
- enable_openslide=1
- else
- echo "Sorry, $1 is not supported. Did you mean --with-openslide?"
- exit 1
- fi
- fi
- if ! type pkg-config >/dev/null; then
- sorry "vips" "a system without pkg-config"
- fi
- openslide_exists=0
- if [ $enable_openslide -eq 1 ]; then
- check_if_library_exists "openslide" "$openslide_version_minimum"
- openslide_exists=$?
- fi
- check_if_library_exists "vips" "$vips_version_minimum"
- vips_exists=$?
- if [ $vips_exists -eq 1 ] && [ $enable_openslide -eq 1 ]; then
- if [ $openslide_exists -eq 1 ]; then
- # Check if vips compiled with openslide support
- vips_with_openslide=`vips list classes | grep -i opensli`
- if [ -z $vips_with_openslide ]; then
- echo "Vips compiled without openslide support."
- else
- exit 0
- fi
- fi
- elif [ $vips_exists -eq 1 ] && [ $enable_openslide -eq 0 ]; then
- exit 0
- fi
- # Verify root/sudo access
- if [ "$(id -u)" -ne "0" ]; then
- echo "Sorry, I need root/sudo access to continue"
- exit 1
- fi
- # Deprecation warning
- if [ "$(arch)" == "x86_64" ]; then
- echo "This script is no longer required on most 64-bit Linux systems when using sharp v0.12.0+"
- fi
- # OS-specific installations of libopenslide follows
- # Either openslide does not exist, or vips is installed without openslide support
- if [ $enable_openslide -eq 1 ] && [ -z $vips_with_openslide ] && [ $openslide_exists -eq 0 ]; then
- if [ -f /etc/debian_version ]; then
- # Debian Linux
- DISTRO=$(lsb_release -c -s)
- echo "Detected Debian Linux '$DISTRO'"
- case "$DISTRO" in
- jessie|vivid|wily|xenial)
- # Debian 8, Ubuntu 15
- echo "Installing libopenslide via apt-get"
- apt-get install -y libopenslide-dev
- ;;
- trusty|utopic|qiana|rebecca|rafaela|freya|rosa|sarah|serena)
- # Ubuntu 14, Mint 17+
- echo "Installing libopenslide dependencies via apt-get"
- apt-get install -y automake build-essential curl zlib1g-dev libopenjpeg-dev libpng12-dev libjpeg-dev libtiff5-dev libgdk-pixbuf2.0-dev libxml2-dev libsqlite3-dev libcairo2-dev libglib2.0-dev sqlite3 libsqlite3-dev
- install_libopenslide_from_source
- ;;
- precise|wheezy|maya)
- # Debian 7, Ubuntu 12.04, Mint 13
- echo "Installing libopenslide dependencies via apt-get"
- apt-get install -y automake build-essential curl zlib1g-dev libopenjpeg-dev libpng12-dev libjpeg-dev libtiff5-dev libgdk-pixbuf2.0-dev libxml2-dev libsqlite3-dev libcairo2-dev libglib2.0-dev sqlite3 libsqlite3-dev
- install_libopenslide_from_source
- ;;
- *)
- # Unsupported Debian-based OS
- sorry "openslide" "Debian-based $DISTRO"
- ;;
- esac
- elif [ -f /etc/redhat-release ]; then
- # Red Hat Linux
- RELEASE=$(cat /etc/redhat-release)
- echo "Detected Red Hat Linux '$RELEASE'"
- case $RELEASE in
- "Red Hat Enterprise Linux release 7."*|"CentOS Linux release 7."*|"Scientific Linux release 7."*)
- # RHEL/CentOS 7
- echo "Installing libopenslide dependencies via yum"
- yum groupinstall -y "Development Tools"
- yum install -y tar curl libpng-devel libjpeg-devel libxml2-devel zlib-devel openjpeg-devel libtiff-devel gdk-pixbuf2-devel sqlite-devel cairo-devel glib2-devel
- install_libopenslide_from_source "--prefix=/usr"
- ;;
- "Red Hat Enterprise Linux release 6."*|"CentOS release 6."*|"Scientific Linux release 6."*)
- # RHEL/CentOS 6
- echo "Installing libopenslide dependencies via yum"
- yum groupinstall -y "Development Tools"
- yum install -y tar curl libpng-devel libjpeg-devel libxml2-devel zlib-devel openjpeg-devel libtiff-devel gdk-pixbuf2-devel sqlite-devel cairo-devel glib2-devel
- install_libopenslide_from_source "--prefix=/usr"
- ;;
- "Fedora release 21 "*|"Fedora release 22 "*)
- # Fedora 21, 22
- echo "Installing libopenslide via yum"
- yum install -y openslide-devel
- ;;
- *)
- # Unsupported RHEL-based OS
- sorry "openslide" "$RELEASE"
- ;;
- esac
- elif [ -f /etc/os-release ]; then
- RELEASE=$(cat /etc/os-release | grep VERSION)
- echo "Detected OpenSuse Linux '$RELEASE'"
- case $RELEASE in
- *"13.2"*)
- echo "Installing libopenslide via zypper"
- zypper --gpg-auto-import-keys install -y libopenslide-devel
- ;;
- esac
- elif [ -f /etc/SuSE-brand ]; then
- RELEASE=$(cat /etc/SuSE-brand | grep VERSION)
- echo "Detected OpenSuse Linux '$RELEASE'"
- case $RELEASE in
- *"13.1")
- echo "Installing libopenslide dependencies via zypper"
- zypper --gpg-auto-import-keys install -y --type pattern devel_basis
- zypper --gpg-auto-import-keys install -y tar curl libpng16-devel libjpeg-turbo libjpeg8-devel libxml2-devel zlib-devel openjpeg-devel libtiff-devel libgdk_pixbuf-2_0-0 sqlite3-devel cairo-devel glib2-devel
- install_libopenslide_from_source
- ;;
- esac
- else
- # Unsupported OS
- sorry "openslide" "$(uname -a)"
- fi
- fi
- # OS-specific installations of libvips follows
- if [ -f /etc/debian_version ]; then
- # Debian Linux
- DISTRO=$(lsb_release -c -s)
- echo "Detected Debian Linux '$DISTRO'"
- case "$DISTRO" in
- jessie|trusty|utopic|vivid|wily|xenial|qiana|rebecca|rafaela|freya|rosa|sarah|serena)
- # Debian 8, Ubuntu 14.04+, Mint 17+
- echo "Installing libvips dependencies via apt-get"
- apt-get install -y automake build-essential gobject-introspection gtk-doc-tools libglib2.0-dev libjpeg-dev libpng12-dev libwebp-dev libtiff5-dev libexif-dev libgsf-1-dev liblcms2-dev libxml2-dev swig libmagickcore-dev curl
- install_libvips_from_source
- ;;
- precise|wheezy|maya)
- # Debian 7, Ubuntu 12.04, Mint 13
- echo "Installing libvips dependencies via apt-get"
- add-apt-repository -y ppa:lyrasis/precise-backports
- apt-get update
- apt-get install -y automake build-essential gobject-introspection gtk-doc-tools libglib2.0-dev libjpeg-dev libpng12-dev libwebp-dev libtiff4-dev libexif-dev libgsf-1-dev liblcms2-dev libxml2-dev swig libmagickcore-dev curl
- install_libvips_from_source
- ;;
- *)
- # Unsupported Debian-based OS
- sorry "vips" "Debian-based $DISTRO"
- ;;
- esac
- elif [ -f /etc/redhat-release ]; then
- # Red Hat Linux
- RELEASE=$(cat /etc/redhat-release)
- echo "Detected Red Hat Linux '$RELEASE'"
- case $RELEASE in
- "Red Hat Enterprise Linux release 7."*|"CentOS Linux release 7."*|"Scientific Linux release 7."*)
- # RHEL/CentOS 7
- echo "Installing libvips dependencies via yum"
- yum groupinstall -y "Development Tools"
- yum install -y tar curl gtk-doc libxml2-devel libjpeg-turbo-devel libpng-devel libtiff-devel libexif-devel libgsf-devel lcms2-devel ImageMagick-devel gobject-introspection-devel libwebp-devel
- install_libvips_from_source "--prefix=/usr"
- ;;
- "Red Hat Enterprise Linux release 6."*|"CentOS release 6."*|"Scientific Linux release 6."*)
- # RHEL/CentOS 6
- echo "Installing libvips dependencies via yum"
- yum groupinstall -y "Development Tools"
- yum install -y tar curl gtk-doc libxml2-devel libjpeg-turbo-devel libpng-devel libtiff-devel libexif-devel libgsf-devel lcms-devel ImageMagick-devel
- yum install -y http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
- yum install -y --enablerepo=nux-dextop gobject-introspection-devel
- yum install -y http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
- yum install -y --enablerepo=remi libwebp-devel
- install_libvips_from_source "--prefix=/usr"
- ;;
- "Fedora"*)
- # Fedora 21, 22, 23
- echo "Installing libvips dependencies via yum"
- yum groupinstall -y "Development Tools"
- yum install -y gcc-c++ gtk-doc libxml2-devel libjpeg-turbo-devel libpng-devel libtiff-devel libexif-devel lcms-devel ImageMagick-devel gobject-introspection-devel libwebp-devel curl
- install_libvips_from_source "--prefix=/usr"
- ;;
- *)
- # Unsupported RHEL-based OS
- sorry "vips" "$RELEASE"
- ;;
- esac
- elif [ -f /etc/system-release ]; then
- # Probably Amazon Linux
- RELEASE=$(cat /etc/system-release)
- case $RELEASE in
- "Amazon Linux AMI release 2015.03"|"Amazon Linux AMI release 2015.09")
- # Amazon Linux
- echo "Detected '$RELEASE'"
- echo "Installing libvips dependencies via yum"
- yum groupinstall -y "Development Tools"
- yum install -y gtk-doc libxml2-devel libjpeg-turbo-devel libpng-devel libtiff-devel libexif-devel libgsf-devel lcms2-devel ImageMagick-devel gobject-introspection-devel libwebp-devel curl
- install_libvips_from_source "--prefix=/usr"
- ;;
- *)
- # Unsupported Amazon Linux version
- sorry "vips" "$RELEASE"
- ;;
- esac
- elif [ -f /etc/os-release ]; then
- RELEASE=$(cat /etc/os-release | grep VERSION)
- echo "Detected OpenSuse Linux '$RELEASE'"
- case $RELEASE in
- *"13.2"*)
- echo "Installing libvips dependencies via zypper"
- zypper --gpg-auto-import-keys install -y --type pattern devel_basis
- zypper --gpg-auto-import-keys install -y tar curl gtk-doc libxml2-devel libjpeg-turbo libjpeg8-devel libpng16-devel libtiff-devel libexif-devel liblcms2-devel ImageMagick-devel gobject-introspection-devel libwebp-devel
- install_libvips_from_source
- ;;
- esac
- elif [ -f /etc/SuSE-brand ]; then
- RELEASE=$(cat /etc/SuSE-brand | grep VERSION)
- echo "Detected OpenSuse Linux '$RELEASE'"
- case $RELEASE in
- *"13.1")
- echo "Installing libvips dependencies via zypper"
- zypper --gpg-auto-import-keys install -y --type pattern devel_basis
- zypper --gpg-auto-import-keys install -y tar curl gtk-doc libxml2-devel libjpeg-turbo libjpeg8-devel libpng16-devel libtiff-devel libexif-devel liblcms2-devel ImageMagick-devel gobject-introspection-devel libwebp-devel
- install_libvips_from_source
- ;;
- esac
- else
- # Unsupported OS
- sorry "vips" "$(uname -a)"
- fi
|