From 3ccc61c03a8f706a13afd7ba5f7823f468659680 Mon Sep 17 00:00:00 2001 From: Ejner Fergo Date: Fri, 29 Apr 2016 16:35:37 +0200 Subject: install_deps: bunch of cleanups, tweaks and micro-fixes. This commit mostly: * removes some (very) old messages or hacks (like those for ubuntu 10.4...). * Moves lib-specific dependencies installations to upper level (simpler to manage, and those are small enough packages). * Uses new dnf package manager for fedora (sigh, we now have tree different commands for fed/suse/rehl). * fixes or enhances some options for commandline tools. * Force anew building of oiio package, due to insane dependencies of this one in recent distro. Part of D1933. --- build_files/build_environment/install_deps.sh | 409 +++++++++++--------------- 1 file changed, 167 insertions(+), 242 deletions(-) (limited to 'build_files') diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index 75da86db9ea..5d5ef1b613d 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -1115,7 +1115,7 @@ compile_Boost() { INFO "Downloading Boost-$BOOST_VERSION" mkdir -p $SRC download BOOST_SOURCE[@] $_src.tar.bz2 - tar -C $SRC --transform "s,(.*/?)boost_1_[^/]+(.*),\1boost-$BOOST_VERSION\2,x" -xf $_src.tar.bz2 + tar -C $SRC --transform "s,\w*,boost-$BOOST_VERSION,x" -xf $_src.tar.bz2 fi cd $_src @@ -1339,7 +1339,7 @@ clean_OPENEXR() { compile_OPENEXR() { # To be changed each time we make edits that would modify the compiled result! - openexr_magic=13 + openexr_magic=14 # Clean install if needed! magic_compile_check openexr-$OPENEXR_VERSION $openexr_magic @@ -1418,7 +1418,7 @@ compile_OPENEXR() { if [ -d $_inst ]; then _create_inst_shortcut # Copy ilmbase files here (blender expects same dir for ilmbase and openexr :/). - cp -Lrn $_ilmbase_inst/* $_inst_shortcut + cp -an $_ilmbase_inst/* $_inst_shortcut else ERROR "OpenEXR-$OPENEXR_VERSION failed to compile, exiting" exit 1 @@ -1959,7 +1959,7 @@ compile_BLOSC() { INFO "Done compiling Blosc-$OPENVDB_BLOSC_VERSION!" else INFO "Own Blosc-$OPENVDB_BLOSC_VERSION is up to date, nothing to do!" - INFO "If you want to force rebuild of this lib (and openexr), use the --force-openvdb option." + INFO "If you want to force rebuild of this lib (and openvdb), use the --force-openvdb option." fi magic_compile_set blosc-$OPENVDB_BLOSC_VERSION $blosc_magic @@ -2167,7 +2167,7 @@ clean_FFmpeg() { compile_FFmpeg() { # To be changed each time we make edits that would modify the compiled result! - ffmpeg_magic=4 + ffmpeg_magic=5 _init_ffmpeg # Clean install if needed! @@ -2234,7 +2234,7 @@ compile_FFmpeg() { --disable-postproc --disable-librtmp --disable-libopencore-amrnb \ --disable-libopencore-amrwb --disable-libdc1394 --disable-version3 --disable-outdev=sdl \ --disable-libxcb \ - --disable-outdev=xv \ + --disable-outdev=xv --disable-indev=sndio --disable-outdev=sndio \ --disable-outdev=alsa --disable-indev=sdl --disable-indev=alsa --disable-indev=jack \ --disable-indev=lavfi $extra @@ -2261,7 +2261,7 @@ compile_FFmpeg() { #### Install on DEB-like #### get_package_version_DEB() { - dpkg-query -W -f '${Version}' $1 | sed -r 's/.*:\s*([0-9]+:)(([0-9]+\.?)+).*/\2/' + dpkg-query -W -f '${Version}' $1 | sed -r 's/([0-9]+:)?(([0-9]+\.?)+([0-9]+)).*/\2/' } check_package_DEB() { @@ -2321,7 +2321,7 @@ install_packages_DEB() { if [ ! $SUDO ]; then WARNING "--no-sudo enabled, impossible to run apt-get install for $@, you'll have to do it yourself..." else - $SUDO apt-get install -y --force-yes $@ + $SUDO apt-get install -y $@ if [ $? -ge 1 ]; then ERROR "apt-get failed to install requested packages, exiting." exit 1 @@ -2341,30 +2341,6 @@ install_DEB() { [ "$(echo ${REPLY:=Y} | tr [:upper:] [:lower:])" != "y" ] && exit fi - if [ ! -z "`cat /etc/debian_version | grep ^6`" ]; then - if [ -z "`cat /etc/apt/sources.list | grep backports.debian.org`" ]; then - WARNING "Looks like you're using Debian Squeeze which does have broken CMake" - PRINT "It is highly recommended to install cmake from backports, otherwise" - PRINT "compilation of some libraries could fail" - PRINT "" - PRINT "You could install newer CMake from debian-backports repository" - PRINT "Add this this line to your /etc/apt/sources.lixt:" - PRINT "" - PRINT "deb http://backports.debian.org/debian-backports squeeze-backports main" - PRINT "" - PRINT "and then run:" - PRINT "" - PRINT "sudo apt-get update && sudo apt-get install cmake=2.8.7-4~bpo60+1 sudo apt-get install cmake=2.8.7-4~bpo60+1" - PRINT "" - PRINT "(you could also add this reporisotry using GUI like synaptic)" - PRINT "" - PRINT "Hit Enter to continue running the script, or hit Ctrl-C to abort the script" - - read - PRINT "" - fi - fi - if [ ! $SUDO ]; then WARNING "--no-sudo enabled, impossible to run apt-get update, you'll have to do it yourself..." else @@ -2377,35 +2353,23 @@ install_DEB() { OGG_DEV="libogg-dev" THEORA_DEV="libtheora-dev" - _packages="gawk cmake cmake-curses-gui build-essential libjpeg-dev libpng-dev \ - libfreetype6-dev libx11-dev \ + _packages="gawk cmake cmake-curses-gui build-essential libjpeg-dev libpng-dev libtiff-dev \ + git libfreetype6-dev libx11-dev flex bison libtbb-dev libxxf86vm-dev \ libxcursor-dev libxi-dev wget libsqlite3-dev libxrandr-dev libxinerama-dev \ libbz2-dev libncurses5-dev libssl-dev liblzma-dev libreadline-dev $OPENJPEG_DEV \ libopenal-dev libglew-dev libglewmx-dev yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV \ - libsdl1.2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev" + libsdl1.2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev" OPENJPEG_USE=true VORBIS_USE=true OGG_USE=true THEORA_USE=true - PRINT "$LIBYAML_CPP_VER" + PRINT "" # Some not-so-old distro (ubuntu 12.4) do not have it, do not fail in this case, just warn. YAMLCPP_DEV="libyaml-cpp-dev" check_package_DEB $YAMLCPP_DEV if [ $? -eq 0 ]; then - # Another Ubuntu hack - in 14.4, ocio uses (old) 0.3, while default is now 0.5... grrrrr. - if $LIBYAML_CPP_VER_DEFINED; then - YAMLCPP_VER_DEV="libyaml-cpp$LIBYAML_CPP_VER-dev" - check_package_DEB $YAMLCPP_VER_DEV - if [ $? -eq 0 ]; then - YAMLCPP_DEV=$YAMLCPP_VER_DEV - else - PRINT "" - WARNING "libyaml-cpp$LIBYAML_CPP_VER-dev not found!" - PRINT "" - fi - fi _packages="$_packages $YAMLCPP_DEV" else PRINT "" @@ -2413,37 +2377,6 @@ install_DEB() { PRINT "" fi - # Install newest libtiff-dev in debian/ubuntu. - TIFF="libtiff" - check_package_DEB $TIFF - if [ $? -eq 0 ]; then - _packages="$_packages $TIFF-dev" - else - TIFF="libtiff5" - check_package_DEB $TIFF - if [ $? -eq 0 ]; then - _packages="$_packages $TIFF-dev" - else - TIFF="libtiff4" # Some old distro, like e.g. ubuntu 10.04 :/ - check_package_DEB $TIFF - if [ $? -eq 0 ]; then - _packages="$_packages $TIFF-dev" - fi - fi - fi - - GIT="git" - check_package_DEB $GIT - if [ $? -eq 0 ]; then - _packages="$_packages $GIT" - else - GIT="git-core" # Some old distro, like e.g. ubuntu 10.04 :/ - check_package_DEB $GIT - if [ $? -eq 0 ]; then - _packages="$_packages $GIT" - fi - fi - if [ "$WITH_ALL" = true ]; then _packages="$_packages libspnav-dev" # Only install jack if jack2 is not already installed! @@ -2477,20 +2410,11 @@ install_DEB() { if [ "$WITH_ALL" = true ]; then PRINT "" - # Grmpf, debian is libxvidcore-dev and ubuntu libxvidcore4-dev! - # Note: not since ubuntu 10.04 XVID_DEV="libxvidcore-dev" check_package_DEB $XVID_DEV if [ $? -eq 0 ]; then install_packages_DEB $XVID_DEV XVID_USE=true - else - XVID_DEV="libxvidcore4-dev" - check_package_DEB $XVID_DEV - if [ $? -eq 0 ]; then - install_packages_DEB $XVID_DEV - XVID_USE=true - fi fi PRINT "" @@ -2510,6 +2434,23 @@ install_DEB() { fi fi + # Check cmake/glew versions and disable features for older distros. + # This is so Blender can at least compile. + PRINT "" + _cmake=`get_package_version_DEB cmake` + version_ge $_cmake "2.8.10" + if [ $? -eq 1 ]; then + version_ge $_cmake "2.8.8" + if [ $? -eq 1 ]; then + WARNING "OpenVDB and OpenCOLLADA disabled because cmake-$_cmake is not enough" + OPENVDB_SKIP=true + OPENCOLLADA_SKIP=true + else + WARNING "OpenVDB disabled because cmake-$_cmake is not enough" + OPENVDB_SKIP=true + fi + fi + PRINT "" _do_compile_python=false @@ -2564,15 +2505,8 @@ install_DEB() { boost_version=$(echo `get_package_version_DEB libboost-dev` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/') - check_package_DEB libboost-locale$boost_version-dev - if [ $? -eq 0 ]; then - install_packages_DEB libboost-locale$boost_version-dev libboost-filesystem$boost_version-dev \ - libboost-regex$boost_version-dev libboost-system$boost_version-dev \ - libboost-thread$boost_version-dev libboost-wave$boost_version-dev - clean_Boost - else - compile_Boost - fi + install_packages_DEB libboost-{filesystem,iostreams,locale,regex,system,thread,wave}$boost_version-dev + clean_Boost else compile_Boost fi @@ -2623,13 +2557,14 @@ install_DEB() { INFO "Forced OpenImageIO building, as requested..." compile_OIIO else - check_package_version_ge_lt_DEB libopenimageio-dev $OIIO_VERSION_MIN $OIIO_VERSION_MAX - if [ $? -eq 0 -a "$_with_built_openexr" = false ]; then - install_packages_DEB libopenimageio-dev - clean_OIIO - else + # XXX Debian Testing / Ubuntu 16.04 pulls in WAY too many deps (gtk2/opencv ?!) incl. OCIO build against libyaml-cpp0.3 so build for now... + #check_package_version_ge_lt_DEB libopenimageio-dev $OIIO_VERSION_MIN $OIIO_VERSION_MAX + #if [ $? -eq 0 -a "$_with_built_openexr" = false ]; then + # install_packages_DEB libopenimageio-dev + # clean_OIIO + #else compile_OIIO - fi + #fi fi @@ -2638,6 +2573,7 @@ install_DEB() { _do_compile_llvm=false if [ "$LLVM_SKIP" = true ]; then WARNING "Skipping LLVM installation, as requested (this also implies skipping OSL!)..." + OSL_SKIP=true elif [ "$LLVM_FORCE_BUILD" = true ]; then INFO "Forced LLVM building, as requested..." _do_compile_llvm=true @@ -2649,15 +2585,7 @@ install_DEB() { LLVM_VERSION_FOUND=$LLVM_VERSION clean_LLVM else - #~ check_package_version_ge_DEB llvm-dev $LLVM_VERSION_MIN - #~ if [ $? -eq 0 ]; then - #~ install_packages_DEB llvm-dev clang - #~ have_llvm=true - #~ LLVM_VERSION_FOUND="" # Using default one, no need to specify it! - #~ clean_LLVM - #~ else _do_compile_llvm=true - #~ fi fi fi @@ -2680,13 +2608,12 @@ install_DEB() { INFO "Forced OpenShadingLanguage building, as requested..." _do_compile_osl=true else - # No package currently! + # No package currently! _do_compile_osl=true fi if [ "$_do_compile_osl" = true ]; then if [ "$have_llvm" = true ]; then - install_packages_DEB flex bison libtbb-dev PRINT "" compile_OSL else @@ -2696,19 +2623,13 @@ install_DEB() { PRINT "" - _do_compile_osd=false if [ "$OSD_SKIP" = true ]; then WARNING "Skipping OpenSubdiv installation, as requested..." elif [ "$OSD_FORCE_BUILD" = true ]; then INFO "Forced OpenSubdiv building, as requested..." - _do_compile_osd=true + compile_OSD else - # No package currently! - _do_compile_osd=true - fi - - if [ "$_do_compile_osd" = true ]; then - install_packages_DEB flex bison libtbb-dev + # No package currently! PRINT "" compile_OSD fi @@ -2723,7 +2644,7 @@ install_DEB() { INFO "Forced OpenCollada building, as requested..." _do_compile_collada=true else - # No package currently! + # No package currently! _do_compile_collada=true fi @@ -2745,23 +2666,19 @@ install_DEB() { INFO "Forced FFMpeg building, as requested..." compile_FFmpeg else -# XXX Debian features libav packages as ffmpeg, those are not really compatible with blender code currently :/ -# So for now, always build our own ffmpeg. -# check_package_DEB ffmpeg -# if [ $? -eq 0 ]; then -# install_packages_DEB ffmpeg -# ffmpeg_version=`get_package_version_DEB ffmpeg` -# PRINT "ffmpeg version: $ffmpeg_version" -# if [ ! -z "$ffmpeg_version" ]; then -# if dpkg --compare-versions $ffmpeg_version gt 0.7.2; then -# install_packages_DEB libavfilter-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libswscale-dev -# clean_FFmpeg -# else -# compile_FFmpeg -# fi -# fi -# fi - compile_FFmpeg + # XXX Debian Testing / Ubuntu 16.04 finally includes FFmpeg, so check as usual + check_package_DEB ffmpeg + if [ $? -eq 0 ]; then + check_package_version_ge_DEB ffmpeg $FFMPEG_VERSION_MIN + if [ $? -eq 0 ]; then + install_packages_DEB libavdevice-dev + clean_FFmpeg + else + compile_FFmpeg + fi + else + compile_FFmpeg + fi fi } @@ -2769,7 +2686,7 @@ install_DEB() { #### Install on RPM-like #### rpm_flavour() { if [ -f /etc/redhat-release ]; then - if [ "`grep '6\.' /etc/redhat-release`" ]; then + if [ "`grep '[6-7]\.' /etc/redhat-release`" ]; then RPM="RHEL" else RPM="FEDORA" @@ -2781,8 +2698,10 @@ rpm_flavour() { get_package_version_RPM() { rpm_flavour - if [ "$RPM" = "FEDORA" -o "$RPM" = "RHEL" ]; then + if [ "$RPM" = "RHEL" ]; then yum info $1 | grep Version | tail -n 1 | sed -r 's/.*:\s+(([0-9]+\.?)+).*/\1/' + elif [ "$RPM" = "FEDORA" ]; then + dnf info $1 | grep Version | tail -n 1 | sed -r 's/.*:\s+(([0-9]+\.?)+).*/\1/' elif [ "$RPM" = "SUSE" ]; then zypper info $1 | grep Version | tail -n 1 | sed -r 's/.*:\s+(([0-9]+\.?)+).*/\1/' fi @@ -2790,8 +2709,10 @@ get_package_version_RPM() { check_package_RPM() { rpm_flavour - if [ "$RPM" = "FEDORA" -o "$RPM" = "RHEL" ]; then + if [ "$RPM" = "RHEL" ]; then r=`yum info $1 | grep -c 'Summary'` + elif [ "$RPM" = "FEDORA" ]; then + r=`dnf info $1 | grep -c 'Summary'` elif [ "$RPM" = "SUSE" ]; then r=`zypper info $1 | grep -c 'Summary'` fi @@ -2838,26 +2759,28 @@ check_package_version_ge_lt_RPM() { install_packages_RPM() { rpm_flavour - if [ "$RPM" = "FEDORA" -o "$RPM" = "RHEL" ]; then - if [ ! $SUDO ]; then - WARNING "--no-sudo enabled, impossible to run yum install for $@, you'll have to do it yourself..." - else - $SUDO yum install -y $@ - if [ $? -ge 1 ]; then - ERROR "yum failed to install requested packages, exiting." - exit 1 - fi + if [ ! $SUDO ]; then + WARNING "--no-sudo enabled, impossible to install $@, you'll have to do it yourself..." + fi + if [ "$RPM" = "RHEL" ]; then + $SUDO yum install -y $@ + if [ $? -ge 1 ]; then + ERROR "yum failed to install requested packages, exiting." + exit 1 + fi + + elif [ "$RPM" = "FEDORA" ]; then + $SUDO dnf install -y $@ + if [ $? -ge 1 ]; then + ERROR "dnf failed to install requested packages, exiting." + exit 1 fi elif [ "$RPM" = "SUSE" ]; then - if [ ! $SUDO ]; then - WARNING "--no-sudo enabled, impossible to run zypper install for $@, you'll have to do it yourself..." - else - $SUDO zypper --non-interactive install --auto-agree-with-licenses $@ - if [ $? -ge 1 ]; then - ERROR "zypper failed to install requested packages, exiting." - exit 1 - fi + $SUDO zypper --non-interactive install --auto-agree-with-licenses $@ + if [ $? -ge 1 ]; then + ERROR "zypper failed to install requested packages, exiting." + exit 1 fi fi } @@ -2881,49 +2804,39 @@ install_RPM() { rpm_flavour if [ "$RPM" = "FEDORA" ]; then _fedora_rel="`egrep "[0-9]{1,}" /etc/fedora-release -o`" - $SUDO yum -y localinstall --nogpgcheck \ + $SUDO dnf -y install --nogpgcheck \ http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$_fedora_rel.noarch.rpm \ http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$_fedora_rel.noarch.rpm - $SUDO yum -y update - - # Install cmake now because of difference with RHEL - $SUDO yum -y install cmake + $SUDO dnf -y update elif [ "$RPM" = "RHEL" ]; then - $SUDO yum -y localinstall --nogpgcheck \ - http://download.fedoraproject.org/pub/epel/6/$(uname -i)/epel-release-6-8.noarch.rpm \ - http://download1.rpmfusion.org/free/el/updates/6/$(uname -i)/rpmfusion-free-release-6-1.noarch.rpm \ - http://download1.rpmfusion.org/nonfree/el/updates/6/$(uname -i)/rpmfusion-nonfree-release-6-1.noarch.rpm - - $SUDO yum -y update - - # Install cmake 2.8 from other repo - mkdir -p $SRC - if [ -f $SRC/cmake-2.8.8-4.el6.$(uname -m).rpm ]; then - PRINT "" - INFO "Special cmake already installed" + if [ "`grep '6\.' /etc/redhat-release`" ]; then + ERROR "Building with GCC 4.4 is not supported!" + exit 1 else - curl -O ftp://ftp.pbone.net/mirror/atrpms.net/el6-$(uname -i)/atrpms/testing/cmake-2.8.8-4.el6.$(uname -m).rpm - mv cmake-2.8.8-4.el6.$(uname -m).rpm $SRC/ - $SUDO rpm -ihv $SRC/cmake-2.8.8-4.el6.$(uname -m).rpm + $SUDO yum -y install --nogpgcheck \ + http://download.fedoraproject.org/pub/epel/7/$(uname -i)/e/epel-release-7-6.noarch.rpm \ + http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm + + $SUDO yum -y update fi elif [ "$RPM" = "SUSE" ]; then - # Install this now to avoid using the version from packman repository... - if [ "$WITH_ALL" = true ]; then - install_packages_RPM libjack-devel + # Packman repo now includes name in link... + _suse_rel="`grep -w VERSION /etc/os-release | sed 's/[^0-9.]*//g'`" + _suse_name="`grep -w NAME /etc/os-release | gawk '{print $2}' | sed 's/\"//'`" + if [ $_suse_name ]; then + _suse_rel="${_suse_name}_${_suse_rel}" fi - _suse_rel="`grep VERSION /etc/SuSE-release | gawk '{print $3}'`" - PRINT "" INFO "About to add 'packman' repository from http://packman.inode.at/suse/openSUSE_$_suse_rel/" INFO "This is only needed if you do not already have a packman repository enabled..." read -p "Do you want to add this repo (Y/n)?" if [ "$(echo ${REPLY:=Y} | tr [:upper:] [:lower:])" == "y" ]; then INFO " Installing packman..." - $SUDO zypper ar --refresh --name 'Packman Repository' http://ftp.gwdg.de/pub/linux/packman/suse/openSUSE_$_suse_rel/ ftp.gwdg.de-suse + $SUDO zypper ar -f -n packman http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_$_suse_rel/ packman INFO " Done." else INFO " Skipping packman installation." @@ -2938,11 +2851,12 @@ install_RPM() { OGG_DEV="libogg-devel" THEORA_DEV="libtheora-devel" - _packages="gcc gcc-c++ git make cmake libtiff-devel libjpeg-devel\ - libpng-devel libX11-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel \ + _packages="gcc gcc-c++ git make cmake tar bzip2 xz findutils flex bison \ + libtiff-devel libjpeg-devel libpng-devel sqlite-devel fftw-devel SDL-devel \ + libX11-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel \ wget ncurses-devel readline-devel $OPENJPEG_DEV openal-soft-devel \ glew-devel yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV patch \ - libxml2-devel yaml-cpp-devel tinyxml-devel" + libxml2-devel yaml-cpp-devel tinyxml-devel jemalloc-devel" OPENJPEG_USE=true VORBIS_USE=true @@ -2950,9 +2864,7 @@ install_RPM() { THEORA_USE=true if [ "$RPM" = "FEDORA" -o "$RPM" = "RHEL" ]; then - OPENEXR_DEV="openexr-devel" - - _packages="$_packages freetype-devel libsqlite3x-devel fftw-devel SDL-devel" + _packages="$_packages freetype-devel tbb-devel" if [ "$WITH_ALL" = true ]; then _packages="$_packages jack-audio-connection-kit-devel" @@ -2988,13 +2900,22 @@ install_RPM() { fi elif [ "$RPM" = "SUSE" ]; then - OPENEXR_DEV="libopenexr-devel" - - _packages="$_packages cmake freetype2-devel sqlite3-devel fftw3-devel libSDL-devel" + _packages="$_packages freetype2-devel" PRINT "" install_packages_RPM $_packages + PRINT "" + # Install TBB on openSUSE, from temporary repo + check_package_RPM tbb-devel + if [ $? -eq 0 ]; then + install_packages_RPM tbb-devel + else + $SUDO zypper ar -f http://download.opensuse.org/repositories/devel:/libraries:/c_c++/openSUSE_$_suse_rel/devel:libraries:c_c++.repo + $SUDO zypper -n --gpg-auto-import-keys install tbb-devel + $SUDO zypper rr devel_libraries_c_c++ + fi + PRINT "" X264_DEV="libx264-devel" check_package_version_ge_RPM $X264_DEV $X264_VERSION_MIN @@ -3083,21 +3004,32 @@ install_RPM() { PRINT "" + _do_compile_boost=false if [ "$BOOST_SKIP" = true ]; then WARNING "Skipping Boost installation, as requested..." elif [ "$BOOST_FORCE_BUILD" = true ]; then INFO "Forced Boost building, as requested..." - compile_Boost + _do_compile_boost=true else check_package_version_ge_RPM boost-devel $BOOST_VERSION_MIN if [ $? -eq 0 ]; then install_packages_RPM boost-devel clean_Boost else - compile_Boost + _do_compile_boost=true fi fi + if [ "$_do_compile_boost" = true ]; then + if [ "$RPM" = "SUSE" ]; then + install_packages_RPM gcc-fortran + else + install_packages_RPM libquadmath-devel bzip2-devel + fi + PRINT "" + compile_Boost + fi + PRINT "" if [ "$OCIO_SKIP" = true ]; then @@ -3106,14 +3038,18 @@ install_RPM() { INFO "Forced OpenColorIO building, as requested..." compile_OCIO else - # XXX Always force build of own OCIO, until linux distro guys update their package to default libyaml-cpp ver (0.5)! - #check_package_version_ge_RPM OpenColorIO-devel $OCIO_VERSION_MIN - #if [ $? -eq 0 ]; then - #install_packages_RPM OpenColorIO-devel - #clean_OCIO - #else + if [ "$RPM" = "SUSE" ]; then + check_package_version_ge_RPM OpenColorIO-devel $OCIO_VERSION_MIN + if [ $? -eq 0 ]; then + install_packages_RPM OpenColorIO-devel + clean_OCIO + else + compile_OCIO + fi + # XXX Fedora/RHEL OCIO still depends on libyaml-cpp v0.3 even when system default is v0.5! + else compile_OCIO - #fi + fi fi PRINT "" @@ -3123,10 +3059,10 @@ install_RPM() { INFO "Forced ILMBase/OpenEXR building, as requested..." compile_OPENEXR else - check_package_version_ge_RPM $OPENEXR_DEV $OPENEXR_VERSION_MIN + check_package_version_ge_RPM openexr-devel $OPENEXR_VERSION_MIN if [ $? -eq 0 ]; then - install_packages_RPM $OPENEXR_DEV - OPENEXR_VERSION=`get_package_version_RPM $OPENEXR_DEV` + install_packages_RPM openexr-devel + OPENEXR_VERSION=`get_package_version_RPM openexr-devel` ILMBASE_VERSION=$OPENEXR_VERSION clean_OPENEXR else @@ -3141,13 +3077,14 @@ install_RPM() { INFO "Forced OpenImageIO building, as requested..." compile_OIIO else - check_package_version_ge_lt_RPM OpenImageIO-devel $OIIO_VERSION_MIN $OIIO_VERSION_MAX - if [ $? -eq 0 -a $_with_built_openexr == false ]; then - install_packages_RPM OpenImageIO-devel - clean_OIIO - else + # XXX RPM distros pulls in too much and depends on old libs, so better to build for now... + #check_package_version_ge_lt_RPM OpenImageIO-devel $OIIO_VERSION_MIN $OIIO_VERSION_MAX + #if [ $? -eq 0 -a $_with_built_openexr == false ]; then + # install_packages_RPM OpenImageIO-devel + # clean_OIIO + #else compile_OIIO - fi + #fi fi @@ -3156,34 +3093,26 @@ install_RPM() { _do_compile_llvm=false if [ "$LLVM_SKIP" = true ]; then WARNING "Skipping LLVM installation, as requested (this also implies skipping OSL!)..." + OSL_SKIP=true elif [ "$LLVM_FORCE_BUILD" = true ]; then INFO "Forced LLVM building, as requested..." _do_compile_llvm=true else - # Problem compiling with LLVM 3.2 so match version 3.1 ... if [ "$RPM" = "SUSE" ]; then - check_package_version_match_RPM llvm-clang-devel $LLVM_VERSION - if [ $? -eq 0 ]; then - install_packages_RPM llvm-devel llvm-clang-devel - have_llvm=true - LLVM_VERSION_FOUND=$LLVM_VERSION - clean_LLVM - else - # Better to compile it than use minimum version from repo... - _do_compile_llvm=true - fi + CLANG_DEV="llvm-clang-devel" else - check_package_version_match_RPM clang-devel $LLVM_VERSION - if [ $? -eq 0 ]; then - install_packages_RPM llvm-devel clang-devel - have_llvm=true - LLVM_VERSION_FOUND=$LLVM_VERSION - clean_LLVM - else - # Better to compile it than use minimum version from repo... - _do_compile_llvm=true - fi + CLANG_DEV="clang-devel" fi + # XXX RHEL has 3.4 in repo but OSL complains about not finding MCJIT_LIBRARY, so compile for now... + #check_package_version_match_RPM $CLANG_DEV $LLVM_VERSION + #if [ $? -eq 0 ]; then + # install_packages_RPM llvm-devel $CLANG_DEV + # have_llvm=true + # LLVM_VERSION_FOUND=$LLVM_VERSION + # clean_LLVM + #else + _do_compile_llvm=true + #fi fi if [ "$_do_compile_llvm" = true ]; then @@ -3211,10 +3140,6 @@ install_RPM() { if [ "$_do_compile_osl" = true ]; then if [ "$have_llvm" = true ]; then - install_packages_RPM flex bison - if [ "$RPM" = "FEDORA" -o "$RPM" = "RHEL" ]; then - install_packages_RPM tbb-devel - fi PRINT "" compile_OSL else @@ -3224,15 +3149,14 @@ install_RPM() { PRINT "" - _do_compile_osd=false if [ "$OSD_SKIP" = true ]; then WARNING "Skipping OpenSubdiv installation, as requested..." elif [ "$OSD_FORCE_BUILD" = true ]; then INFO "Forced OpenSubdiv building, as requested..." - _do_compile_osd=true + compile_OSD else # No package currently! - _do_compile_osd=true + compile_OSD fi if [ "$_do_compile_osd" = true ]; then @@ -3275,7 +3199,7 @@ install_RPM() { INFO "Forced FFMpeg building, as requested..." compile_FFmpeg else - check_package_version_ge_RPM ffmpeg $FFMPEG_VERSION_MIN + check_package_version_ge_RPM ffmpeg-devel $FFMPEG_VERSION_MIN if [ $? -eq 0 ]; then install_packages_RPM ffmpeg ffmpeg-devel clean_FFmpeg @@ -3557,6 +3481,7 @@ install_ARCH() { _do_compile_llvm=false if [ "$LLVM_SKIP" = true ]; then WARNING "Skipping LLVM installation, as requested (this also implies skipping OSL!)..." + OSL_SKIP=true elif [ "$LLVM_FORCE_BUILD" = true ]; then INFO "Forced LLVM building, as requested..." _do_compile_llvm=true @@ -3565,7 +3490,7 @@ install_ARCH() { if [ $? -eq 0 ]; then install_packages_ARCH llvm35 clang35 have_llvm=true - LLVM_VERSION=`get_package_version_ARCH llvm` + LLVM_VERSION=`get_package_version_ARCH llvm35` LLVM_VERSION_FOUND=$LLVM_VERSION clean_LLVM else -- cgit v1.2.3