[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55516] trunk/blender/build_files/ build_environment/install_deps.sh: Patch [#34680] Updated install_deps script, by Ejner Fergo (ejnersan), thanks!

Bastien Montagne montagne29 at wanadoo.fr
Fri Mar 22 17:26:34 CET 2013


Revision: 55516
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55516
Author:   mont29
Date:     2013-03-22 16:26:33 +0000 (Fri, 22 Mar 2013)
Log Message:
-----------
Patch [#34680] Updated install_deps script, by Ejner Fergo (ejnersan), thanks!

The script is updated with:

Arch Linux support
Numpy 1.7.0 final
Fedora 17 / 18 support
OpenSUSE 12.2 / 12.3 support
Use FFMPEG from RPM-distro repos
RPM-distro fixes
Removed Schroedinger codec
Fixes for Cmake/Scons config

Reviewed by Sergey and me.

Modified Paths:
--------------
    trunk/blender/build_files/build_environment/install_deps.sh

Modified: trunk/blender/build_files/build_environment/install_deps.sh
===================================================================
--- trunk/blender/build_files/build_environment/install_deps.sh	2013-03-22 16:11:00 UTC (rev 55515)
+++ trunk/blender/build_files/build_environment/install_deps.sh	2013-03-22 16:26:33 UTC (rev 55516)
@@ -168,8 +168,7 @@
 PYTHON_FORCE_REBUILD=false
 PYTHON_SKIP=false
 
-#Could not get numpy-1.6.2 to compile with python-3.3
-NUMPY_VERSION="1.7.0rc1"
+NUMPY_VERSION="1.7.0"
 NUMPY_VERSION_MIN="1.7"
 NUMPY_SOURCE="http://sourceforge.net/projects/numpy/files/NumPy/$NUMPY_VERSION/numpy-$NUMPY_VERSION.tar.gz"
 NUMPY_FORCE_REBUILD=false
@@ -224,8 +223,6 @@
 # FFMPEG optional libs.
 VORBIS_USE=false
 VORBIS_DEV=""
-SCHRO_USE=false
-SCRHO_DEV=""
 THEORA_USE=false
 THEORA_DEV=""
 XVID_USE=false
@@ -471,10 +468,10 @@
 detect_distro() {
   if [ -f /etc/debian_version ]; then
     DISTRO="DEB"
+  elif [ -f /etc/arch-release ]; then
+    DISTRO="ARCH"
   elif [ -f /etc/redhat-release -o /etc/SuSE-release ]; then
     DISTRO="RPM"
-  elif [ -f /etc/arch-release ]; then
-    DISTRO="ARCH"
   fi
 }
 
@@ -1144,11 +1141,6 @@
       extra="$extra --enable-libtheora"
     fi
 
-    # XXX At least under Debian, static schro gives problem at blender linking time... :/
-    if $SCHRO_USE && ! $ALL_STATIC; then
-      extra="$extra --enable-libschroedinger"
-    fi
-
     if $XVID_USE; then
       extra="$extra --enable-libxvid"
     fi
@@ -1362,14 +1354,6 @@
       install_packages_DEB $VPX_DEV
       VPX_USE=true
     fi
-
-    INFO ""
-    SCHRO_DEV="libschroedinger-dev"
-    check_package_DEB $SCHRO_DEV
-    if [ $? -eq 0 ]; then
-      install_packages_DEB $SCHRO_DEV
-      SCHRO_USE=true
-    fi
   fi
 
   INFO ""
@@ -1607,9 +1591,10 @@
   # Enable non-free repositories for all flavours
   rpm_flavour
   if [ $RPM = "FEDORA" ]; then
+    _fedora_rel="`egrep "[0-9]{1,}" /etc/fedora-release -o`"
     sudo yum -y localinstall --nogpgcheck \
-    http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm \
-    http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
+    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
 
@@ -1636,6 +1621,11 @@
     fi
 
   elif [ $RPM = "SUSE" ]; then
+    # Install this now to avoid using the version from packman repository...
+    if $WITH_ALL; then
+      install_packages_RPM libjack-devel
+    fi
+
     _suse_rel="`grep VERSION /etc/SuSE-release | gawk '{print $3}'`"
     sudo zypper ar -f http://packman.inode.at/suse/openSUSE_$_suse_rel/ packman
 
@@ -1647,11 +1637,10 @@
   VORBIS_DEV="libvorbis-devel"
   THEORA_DEV="libtheora-devel"
 
-  _packages="gcc gcc-c++ make scons libpng-devel libtiff-devel \
-             freetype-devel libX11-devel libXi-devel wget ncurses-devel \
+  _packages="gcc gcc-c++ make scons libtiff-devel freetype-devel libjpeg-devel\
+             libpng-devel libX11-devel libXi-devel wget ncurses-devel \
              readline-devel $OPENJPEG_DEV openal-soft-devel \
-             glew-devel yasm $THEORA_DEV $VORBIS_DEV SDL-devel fftw-devel \
-             libjpeg-devel patch"
+             glew-devel yasm $THEORA_DEV $VORBIS_DEV patch"
 
   OPENJPEG_USE=true
   VORBIS_USE=true
@@ -1659,10 +1648,10 @@
 
   if [ $RPM = "FEDORA" -o $RPM = "RHEL" ]; then
 
-    _packages="$_packages libsqlite3-devel openexr-devel"
+    _packages="$_packages libsqlite3x-devel openexr-devel fftw-devel SDL-devel"
 
     if $WITH_ALL; then
-      _packages="$_packages jack-audio-connection-kit-devel libspnav-devel"
+      _packages="$_packages jack-audio-connection-kit-devel"
     fi
 
     INFO ""
@@ -1696,12 +1685,8 @@
 
   elif [ $RPM = "SUSE" ]; then
 
-    _packages="$_packages cmake sqlite3-devel libopenexr-devel"
+    _packages="$_packages cmake sqlite3-devel libopenexr-devel fftw3-devel libSDL-devel"
 
-    if $WITH_ALL; then
-      _packages="$_packages libjack-devel libspnav-devel"
-    fi
-
     INFO ""
     install_packages_RPM $_packages
 
@@ -1740,16 +1725,10 @@
       install_packages_RPM $VPX_DEV
       VPX_USE=true
     fi
-
     INFO ""
-    SCHRO_DEV="schroedinger-devel"
-    check_package_RPM $SCHRO_DEV
-    if [ $? -eq 0 ]; then
-      install_packages_RPM $SCHRO_DEV
-      SCHRO_USE=true
-    fi
+    install_packages_RPM libspnav-devel
   fi
- 
+
   INFO ""
   if $PYTHON_SKIP; then
     INFO "WARNING! Skipping Python installation, as requested..."
@@ -1822,22 +1801,27 @@
     if $LLVM_SKIP; then
       INFO "WARNING! Skipping LLVM installation, as requested (this also implies skipping OSL!)..."
     else
-      check_package_RPM llvm-$LLVM_VERSION-devel
+      # Problem compiling with LLVM 3.2 so match version 3.1 ...
+      check_package_version_match_RPM llvm $LLVM_VERSION
       if [ $? -eq 0 ]; then
-        install_packages_RPM llvm-$LLVM_VERSION-devel clang
+        if [ $RPM = "SUSE" ]; then
+          install_packages_RPM llvm-devel llvm-clang-devel
+        else
+          install_packages_RPM llvm-devel clang-devel
+        fi
         have_llvm=true
         LLVM_VERSION_FOUND=$LLVM_VERSION
       else
         #
         # Better to compile it than use minimum version from repo...
         #
-      install_packages_RPM libffi-devel
-      # LLVM can't find the fedora ffi header dir...
-      _FFI_INCLUDE_DIR=`rpm -ql libffi-devel | grep -e ".*/ffi.h" | sed -r 's/(.*)\/ffi.h/\1/'`
-      INFO ""
-      compile_LLVM
-      have_llvm=true
-      LLVM_VERSION_FOUND=$LLVM_VERSION
+        install_packages_RPM libffi-devel
+        # LLVM can't find the fedora ffi header dir...
+        _FFI_INCLUDE_DIR=`rpm -ql libffi-devel | grep -e ".*/ffi.h" | sed -r 's/(.*)\/ffi.h/\1/'`
+        INFO ""
+        compile_LLVM
+        have_llvm=true
+        LLVM_VERSION_FOUND=$LLVM_VERSION
       fi
     fi
 
@@ -1872,17 +1856,289 @@
     fi
   fi
 
+  if $FFMPEG_SKIP; then
+    INFO "WARNING! Skipping FFMpeg installation, as requested..."
+  else
+    check_package_version_ge_RPM ffmpeg $FFMPEG_VERSION_MIN
+    if [ $? -eq 0 ]; then
+      install_packages_RPM ffmpeg ffmpeg-devel
+    else
+      INFO ""
+      compile_FFmpeg
+    fi
+  fi
+}
+
+
+get_package_version_ARCH() {
+  pacman -Si $1 | grep Version | tail -n 1 | sed -r 's/.*:\s+(([0-9]+\.?)+).*/\1/'
+}
+
+check_package_ARCH() {
+  r=`pacman -Si $1 | grep -c 'Description'`
+
+  if [ $r -ge 1 ]; then
+    return 0
+  else
+    return 1
+  fi
+}
+
+check_package_version_match_ARCH() {
+  v=`get_package_version_ARCH $1`
+
+  if [ -z "$v" ]; then
+    return 1
+  fi
+
+  version_match $v $2
+  return $?
+}
+
+check_package_version_ge_ARCH() {
+  v=`get_package_version_ARCH $1`
+
+  if [ -z "$v" ]; then
+    return 1
+  fi
+
+  version_ge $v $2
+  return $?
+}
+
+install_packages_ARCH() {
+  sudo pacman -S --needed --noconfirm $@
+  if [ $? -ge 1 ]; then
+    ERROR "pacman failed to install requested packages, exiting."
+    exit 1
+  fi
+}
+
+install_ARCH() {
   INFO ""
+  INFO "Installing dependencies for ARCH-based distribution"
+  INFO ""
+  INFO "`eval _echo "$COMMON_INFO"`"
+  INFO ""
+
+  read -p "Do you want to continue (Y/n)?"
+  [ "$(echo ${REPLY:=Y} | tr [:upper:] [:lower:])" != "y" ] && exit
+
+  # Check for sudo...
+  if [ ! -x "/usr/bin/sudo" ]; then
+    INFO ""
+    INFO "This script requires sudo but it is not installed."
+    INFO "Please setup sudo according to:" 
+    INFO "https://wiki.archlinux.org/index.php/Sudo"
+    INFO "and try again."
+    INFO ""
+    exit
+  fi
+
+  sudo pacman -Sy
+
+  # These libs should always be available in arch official repository...
+  OPENJPEG_DEV="openjpeg"
+  VORBIS_DEV="libvorbis"
+  THEORA_DEV="libtheora"
+
+  _packages="base-devel scons cmake libxi glew libpng libtiff wget openal \
+             $OPENJPEG_DEV $VORBIS_DEV $THEORA_DEV  openexr yasm sdl fftw"
+
+  OPENJPEG_USE=true
+  VORBIS_USE=true
+  THEORA_USE=true
+
+  if $WITH_ALL; then
+    # No libspacenav in official arch repos...
+    _packages="$_packages jack"
+  fi
+
+  INFO ""
+  install_packages_ARCH $_packages
+
+  INFO ""
+  X264_DEV="x264"
+  check_package_version_ge_ARCH $X264_DEV $X264_VERSION_MIN
+  if [ $? -eq 0 ]; then
+    install_packages_ARCH $X264_DEV
+    X264_USE=true
+  fi
+
+  if $WITH_ALL; then
+    INFO ""
+    XVID_DEV="xvidcore"
+    check_package_ARCH $XVID_DEV
+    if [ $? -eq 0 ]; then
+      install_packages_ARCH $XVID_DEV
+      XVID_USE=true
+    fi
+
+    INFO ""
+    MP3LAME_DEV="lame"
+    check_package_ARCH $MP3LAME_DEV
+    if [ $? -eq 0 ]; then
+      install_packages_ARCH $MP3LAME_DEV
+      MP3LAME_USE=true
+    fi
+
+    INFO ""
+    VPX_DEV="libvpx"
+    check_package_version_ge_ARCH $VPX_DEV $VPX_VERSION_MIN
+    if [ $? -eq 0 ]; then
+      install_packages_ARCH $VPX_DEV
+      VPX_USE=true
+    fi
+  fi
+
+  INFO ""
+  if $PYTHON_SKIP; then
+    INFO "WARNING! Skipping Python installation, as requested..."
+  else
+    check_package_version_ge_ARCH python $PYTHON_VERSION_MIN
+    if [ $? -eq 0 ]; then
+      install_packages_ARCH python
+      INFO ""
+      if $WITH_NUMPY; then
+        if $NUMPY_SKIP; then
+          INFO "WARNING! Skipping NumPy installation, as requested..."
+        else
+          check_package_version_ge_ARCH python-numpy $NUMPY_VERSION_MIN
+          if [ $? -eq 0 ]; then
+            install_packages_ARCH python-numpy
+          else
+            INFO "WARNING! Sorry, using python package but no numpy package available!"
+          fi
+        fi
+      fi
+    else
+      compile_Python
+      INFO ""
+      if $WITH_NUMPY; then
+        if $NUMPY_SKIP; then
+          INFO "WARNING! Skipping NumPy installation, as requested..."
+        else
+          compile_Numpy
+        fi
+      fi
+    fi
+  fi
+
+  INFO ""
+  if $BOOST_SKIP; then
+    INFO "WARNING! Skipping Boost installation, as requested..."
+  else
+    check_package_version_ge_ARCH boost $BOOST_VERSION_MIN
+    if [ $? -eq 0 ]; then
+      install_packages_ARCH boost
+    else
+      compile_Boost
+    fi
+  fi
+
+  INFO ""
+  if $OCIO_SKIP; then
+    INFO "WARNING! Skipping OpenColorIO installation, as requested..."
+  else
+    check_package_version_ge_ARCH opencolorio $OCIO_VERSION_MIN
+    if [ $? -eq 0 ]; then
+      install_packages_ARCH opencolorio yaml-cpp tinyxml
+    else
+      install_packages_ARCH yaml-cpp tinyxml
+      compile_OCIO
+    fi
+  fi
+
+  INFO ""
+  if $OIIO_SKIP; then

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list