From 4c37d910deb5a6e202cb9e166755780e5d0c89b1 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 4 Jan 2016 14:30:48 +0500 Subject: Remove outdated and unmaintained script which was supposed to configure a release environment It was not updated in ages and in fact, it's easier to wrap release environment into Docker or VirtualBox image. --- .../build_environment/prepare_release_env.sh | 1555 -------------------- 1 file changed, 1555 deletions(-) delete mode 100755 build_files/build_environment/prepare_release_env.sh diff --git a/build_files/build_environment/prepare_release_env.sh b/build_files/build_environment/prepare_release_env.sh deleted file mode 100755 index f003507b25f..00000000000 --- a/build_files/build_environment/prepare_release_env.sh +++ /dev/null @@ -1,1555 +0,0 @@ -#!/bin/sh - -# -# This script will prepare build environment with the same settings as release environment -# -# It will install two chroot environments: -# - /home/buildbot_squeeze_i686 -# - /home/buildbot_squeeze_x86_64 -# which are used for 32bit and 64bit -# -# This sctipt will also create folder /home/sources where all dependent libraries sources are -# downloading and compiling. -# -# Release builder scripts are stored in /home/sources/release-builder -# See build_all.sh script for usage details -# -# This script was tested on debian squeeze and wheezy, should work on ubuntu as well -# It wouldn't work on other distros -# -# TODO: -# - It's still required manual copying of build configuration files to /home/sources/release-builder/config -# - OSL is not set up yet -# - -set -e - -NO_COLOR='\033[0m' -EWHITE='\033[1;37m' -ERED='\033[1;31m' - -CONFIRM="--i-really-do-know-what-im-doing" - -ERROR() { - echo ${ERED}${@}${NO_COLOR} -} - -INFO() { - echo ${EWHITE}${@}${NO_COLOR} -} - -if [ $# != 1 ]; then - ERROR "Usage: $0 $CONFIRM" - exit 1 -fi - -if [ "$1" != "$CONFIRM" ]; then - ERROR "Usage: $0 $CONFIRM" - exit 1 -fi - -DEBIAN_BRANCH="squeeze" -DEBIAN_MIRROR="http://ftp.de.debian.org/debian" -USER_ID=1000 - -# For now it's always /home, so we can setup schroot to map /sources to the same -# path at both host and chroot systems (which is currently needed for release building script) -ENV_PATH="/home" - -AMD64_PATH="$ENV_PATH/buildbot_${DEBIAN_BRANCH}_x86_64" -I686_PATH="$ENV_PATH/buildbot_${DEBIAN_BRANCH}_i686" -SOURCES_PATH="$ENV_PATH/sources" - -THREADS=$(nproc) - -# Force vpx be installed from the backports -VPX_V="1.0.0-2~bpo60+1" - -BINUTILS_V="2.22" -BINUTILS_FV="2.22-7.1" - -GCC_V="4.7_4.7.1" -GCC_FV="4.7_4.7.1-7" - -OPENAL_V="1.14" - -DPKG_V="1.16.8" - -DEBHELPER_V="9" -DEBHELPER_FV="9.20120909" - -JEMALLOC_V="3.1.0" -SPNAV_V="0.2.2" -FFMPEG_V="1.0" -BOOST_V="1_51_0" -PYTHON_V="3.3.0" -PYTHIN_V_SHORT="3.3" -OIIO_V="1.0.9" -OCIO_V="1.0.7" -MESA_V="8.0.5" - -OPENSSL_V="0.9.8o" -OPENSSL_FV="0.9.8o-4squeeze13" - -CUDA_V="4.2.9" -CUDA_DISTR="ubuntu10.04" -CUDA_32="cudatoolkit_${CUDA_V}_linux_32_${CUDA_DISTR}.run" -CUDA_64="cudatoolkit_${CUDA_V}_linux_64_${CUDA_DISTR}.run" - -INSTALL_RELEASE_BUILDER() { - SOURCES_PATH=$1 - - RB=$SOURCES_PATH/release-builder - if [ ! -d $RB ]; then - INFO "Installing release building scripts" - - mkdir -p $RB - - cat << EOF > $RB/Readme.txt -This directory contains scrips needed for automated release archive preparation - -config/: storage of scons configs for different platforms - -build_all.sh: script asks version to add to archive name and revision to compile, - when script finished, there'll be 32 and 64 bit archives in current directory - better to run this script from this directory - -do_build_all.sh: uses environment variables set by build_all.sh script (or other scripts) - and launches compilation inside chroot environments - -chroot_compile.py: runs compilation process with giver parameters in chroots -compile.py: script runs inside chroot environment and prepares archive - -blender-buildenv.tar.bz2: archive, received from Ken Hughes when i've been preparing - new environment to make it as close to old one as it's possible - -Hope all this would help you. - --Sergey- -EOF - - cat << EOF > $RB/build_all.sh -#!/bin/sh - -echo -n "version: " -read version -echo -n "svn revision (blank to latest, 0 to keep unchanged): " -read revision - -export version -export revision - -d=\`dirname \${0}\` -\${d}/do_build_all.sh -EOF - chmod +x $RB/build_all.sh - - cat << EOF > $RB/build_all-test.sh -#!/bin/sh - -d=\`dirname \${0}\` -\${d}/do_build_all.sh -EOF - chmod +x $RB/build_all-test.sh - - cat << EOF > $RB/chroot-compile.py -#!/usr/bin/env python - -import sys -import os -import platform - -from optparse import OptionParser - -# This could be passed through options, but does we actually need this? -bl_source = '/home/sources/blender' -build_dir = '/home/sources/blender-build/' -install_dir = '/home/sources/blender-install/' -with_player = True - -# Default config -curr_arch = platform.architecture()[0] -def_arch = 'x86_64' if curr_arch == '64bit' else 'i686' -builder_dir = os.path.dirname(os.path.realpath(__file__)) - -# XXX: bad thing! -# builder_dir = builder_dir.replace("sources-new", "sources") - -def_cores = 1 -if hasattr(os, 'sysconf'): - if 'SC_NPROCESSORS_ONLN' in os.sysconf_names: - def_cores = os.sysconf('SC_NPROCESSORS_ONLN') - -# Per-architecture chroot name -chroots = { 'i686': 'buildbot_squeeze_i686', - 'x86_64': 'buildbot_squeeze_x86_64'} - -# Parse command line -op = OptionParser() -op.add_option('--tag', default = None) -op.add_option('--branch', default = None) -op.add_option('--arch', default = def_arch) -op.add_option('--cores', default = def_cores) -op.add_option('--bl-version', default = 'UNDEFINED') -op.add_option('--no-clean', default = False) -(opts, args) = op.parse_args() - -if opts.arch not in chroots: - print('Error: No configured machine gound to build ' + - '{0} version' . format(opts.arch)) - sys.exit(1) - -chroot = chroots[opts.arch] - -if opts.tag: - bl_source = '/home/sources/blender-tags/' + opts.tag -elif opts.branch: - bl_source = '/home/sources/blender-branches/' + opts.branch - -if not os.path.isdir(bl_source): - print('Uname to find directory with sources: ' + bl_source) - sys.exit(1) - -print('Building {0} version, machine is {1}' . format(opts.bl_version, opts.arch)) - -# Assume builder directory is binded to the same location in -# chroot environments -compiler = os.path.join(builder_dir, 'compile.py') - -cmd = 'schroot -c %s -d /home/sources/release-builder --' % (chroot) -cmd += ' python %s' % (compiler) -cmd += ' --bl-version=%s' % (opts.bl_version) -cmd += ' --bl-source=%s' % (bl_source) -cmd += ' --arch=%s' % (opts.arch) -cmd += ' --build-dir=%s' % (build_dir) -cmd += ' --install-dir=%s' % (install_dir) - -if opts.no_clean: - cmd += ' --no-clean=1' - -if with_player: - cmd += ' --with-player=1' - -#if opts.branch: -# cmd += ' --use-new-ffmpeg=1' - -result = os.system(cmd) -if result != 0: - print('compiler script exited with errcode: %s' % (result)) - sys.exit(1) -EOF - chmod +x $RB/chroot-compile.py - - cat << EOF > $RB/compile.py -#!/usr/bin/env python - -import platform -import sys -import os -import shutil - -from optparse import OptionParser - -# Default config -curr_arch = platform.architecture()[0] -def_arch = 'x86_64' if curr_arch == '64bit' else 'i686' -builder_dir = os.path.dirname(os.path.realpath(__file__)) - -def_cores = 1 -if hasattr(os, 'sysconf'): - if 'SC_NPROCESSORS_ONLN' in os.sysconf_names: - def_cores = os.sysconf('SC_NPROCESSORS_ONLN') - -# Parse command line -op = OptionParser() -op.add_option('--arch', default = def_arch) -op.add_option('--cores', default = def_cores) -op.add_option('--no-clean', default = False) -op.add_option('--bl-version', default = 'UNKNOWN') -op.add_option('--bl-source', default = '') -op.add_option('--config-dir', default = '') -op.add_option('--build-dir', default = '') -op.add_option('--install-dir', default = '') -op.add_option('--with-player', default = False) -#op.add_option('--use-new-ffmpeg', default = False) -(opts, args) = op.parse_args() - -if opts.config_dir == '': - opts.config_dir = os.path.join(builder_dir, 'config') - -# Initial directory checking (could be problems with permissions) -if not os.path.isdir(opts.bl_source): - print('Blender\'s source tree not found: %s' % (opts.bl_source)) - sys.exit(1) - -if not os.path.isdir(opts.config_dir): - print('Directory with configuration files not found: %s' % (opts.config_dir)) - sys.exit(1) - -if not os.path.isdir(os.path.dirname(opts.build_dir)): - print('Build directory can\'t be reached: %s' % (opts.build_dir)) - sys.exit(1) - -if not os.path.isdir(os.path.dirname(opts.install_dir)): - print('Install directory can\'t be reached: %s' % (opts.install_dir)) - sys.exit(1) - -# Detect glibc version -libc = [name for name in os.listdir('/lib') if 'libc.so.' in name] -if len(libc) == 0: - print('Could not find "/lib/libc.so.*": cannot determine glibc version') - sys.exit(-1) - -if len(libc) > 1: - print('warning: found more than one "/lib/libc.so.*": '+ - 'using %s' % (libc[0])) - -glibc = 'glibc' + os.readlink('/lib/' + libc[0])[5:][:-3].replace('.', '') -glibc = glibc[:8] - -# Full name for archive -full_name = 'blender-%s-linux-%s-%s' % (opts.bl_version, glibc, opts.arch) -build_dir = os.path.join(opts.build_dir, full_name) -install_dir = os.path.join(opts.install_dir, full_name) -scons = os.path.join(opts.bl_source, 'scons', 'scons.py') -scons_cmd = 'python %s -C %s' % (scons, opts.bl_source) -config = os.path.join(opts.config_dir, 'user-config-' + glibc + '-' + opts.arch + '.py') - -if not os.path.isfile(config): - print('Configuration file not found: %s' % (config)) - sys.exit(1) - -# Clean build directory -if not opts.no_clean: - print('Cleaning up build directory...') - os.system('%s BF_BUILDDIR=%s clean ' % (scons_cmd, build_dir)) - -# Clean install directory -if os.path.isdir(install_dir): - shutil.rmtree(install_dir) - -flags = "" - -# Switch to newer libraries if needed -#if opts.use_new_ffmpeg: -# print("Using new ffmpeg-0.8.1") -# flags += " BF_FFMPEG='/home/sources/staticlibs/ffmpeg-0.8'" - -# Build blenderplayer first -# (to be sure all stuff needed for blender would copied automatically) -if opts.with_player: - player_config = os.path.join(opts.config_dir, - 'user-config-player-' + glibc + '-' + opts.arch + '.py') - - if not os.path.isfile(player_config): - print('Player configuration file not found: %s' % (player_config)) - sys.exit(1) - - cmd = '%s -j %d blenderplayer ' % (scons_cmd, opts.cores + 1) - cmd += ' BF_BUILDDIR=%s' % (build_dir + '-player') - cmd += ' BF_INSTALLDIR=%s' % (install_dir) - cmd += ' BF_CONFIG=%s' % (player_config) - cmd += flags - - result = os.system(cmd) - if result != 0: - print('Compilation failed, exit code is %d' % (result)) - sys.exit(-1) - -# Build blender itself -cmd = '%s -j %d blender ' % (scons_cmd, opts.cores + 1) -cmd += ' BF_BUILDDIR=%s' % (build_dir) -cmd += ' BF_INSTALLDIR=%s' % (install_dir) -cmd += ' BF_CONFIG=%s' % (config) -cmd += flags - -result = os.system(cmd) -if result != 0: - print('Compilation failed, exit code is %d' % (result)) - sys.exit(-1) - -blender = os.path.join(install_dir, 'blender') -blenderplayer = blender + 'player' - -if not os.path.exists(blender): - print('scons completed successfully but blender executable missing') - sys.exit(1) - -if opts.with_player and not os.path.exists(blenderplayer): - print('scons completed successfully but blenderplayer executable missing') - sys.exit(1) - -# compile python modules -#result = os.system('%s --background --python %s/source/tools/compile_scripts.py' % (blender, opts.bl_source)) -#if result != 0: -# print('Python modules compilation failed, exit code is %d' % (result)) -# sys.exit(-1) - -print('build successful') - -os.system('strip -s %s %s' % (blender, blenderplayer)) - -# Copy all texts needed for release -release_texts = os.path.join(opts.bl_source, 'release', 'text', '*') -release_txt = os.path.join(install_dir, 'release_%s.txt' % (opts.bl_version)) - -os.system('cp -r %s %s' % (release_texts, install_dir)) - -if os.path.exists(release_txt): - print 'RELEASE TEXT FOUND' -else: - print 'WARNING! RELEASE TEXT NOT FOUND!' - -# TODO: copy plugins data when ready - -# Add software gl libraries and scripts -mesa_arch = None - -if opts.arch == 'x86_64': - mesa_arch = 'mesalibs64.tar.bz2' -elif opts.arch == 'i686': - mesa_arch = 'mesalibs32.tar.bz2' - -if mesa_arch is not None: - mesalibs = os.path.join(builder_dir, 'extra', mesa_arch) - software_gl = os.path.join(builder_dir, 'extra', 'blender-softwaregl') - - os.system('tar -xpf %s -C %s' % (mesalibs, install_dir)) - os.system('cp %s %s' % (software_gl, install_dir)) - os.system('chmod 755 %s' % (os.path.join(install_dir, 'blender-softwaregl'))) - -# Pack release archive -print("Building Dynamic Tarball") -os.system('tar -C %s -cjf %s.tar.bz2 %s ' % (opts.install_dir, - full_name, full_name)) - -print('Done.') -EOF - chmod +x $RB/compile.py - - cat << EOF > $RB/do_build_al.sh -#!/bin/sh - -SOURCES="/home/sources" - -#opts="--cores=1 " -opts="" - -if [ "x\${tag}" != "x" ]; then - echo "Getting tagged source tree..." - d="\${SOURCES}/blender-tags/\${tag}" - opts="\${opts} --tag=\${tag}" - if [ ! -d \${d} ]; then - svn co https://svn.blender.org/svnroot/bf-blender/tags/\${tag}/blender/@\${revision} \${d} - else - svn up -r \${revision} \${d} - fi -elif [ "x\${branch}" != "x" ]; then - echo "Getting branched source tree..." - d="\${SOURCES}/blender-branches/\${branch}" - opts="\${opts} --branch=\${branch}" - if [ ! -d \${d} ]; then - if [ "x\${revision}" != "x" ]; then - svn co https://svn.blender.org/svnroot/bf-blender/branches/\${branch}/@\${revision} \${d} - else - svn co https://svn.blender.org/svnroot/bf-blender/branches/\${branch}/ \${d} - fi - else - if [ "x\${revision}" != "x" ]; then - svn up -r \${revision} \${d} - else - svn up \${d} - fi - fi -else - if [ "x\${revision}" != "x" ]; then - if [ "x\${revision}" != "x0" ]; then - svn up -r \${revision} \${SOURCES}/blender - else - svn up \${SOURCES}/blender - fi - fi -fi - -if [ "x\${tag}" != "x" ]; then - b="\${SOURCES}/blender-tags/\${tag}" -elif [ "x\${branch}" != "x" ]; then - b="\${SOURCES}/blender-branches/\${branch}" -else - b="\${SOURCES}/blender" -fi - -if [ "x\${addons_revision}" != "x" ]; then - d="\${b}/release/scripts/addons" - - if [ "x\${addons_revision}" != "x0" ]; then - svn up -r \${addons_revision} \${d} - else - svn up \${d} - fi -fi - -if [ "x\${locale_revision}" != "x" ]; then - d="\${b}/release/datafiles/locale" - - if [ "x\${locale_revision}" != "x0" ]; then - svn up -r \${locale_revision} \${d} - else - svn up \${d} - fi -fi - -if [ -z "\$version" ]; then - version=r\`/usr/bin/svnversion \$SOURCES/blender\` -fi - -cd extra -./update-libs.sh -cd .. - -python chroot-compile.py \${opts} --arch=x86_64 --bl-version \${version} # --no-clean=1 -python chroot-compile.py \${opts} --arch=i686 --bl-version \${version} # --no-clean=1 -EOF - chmod +x $RB/do_build_al.sh - - mkdir -p $RB/extra - - cat << EOF > $RB/extra/blender-softwaregl -#!/bin/sh - -BF_DIST_BIN=\`dirname "\$0"\` -BF_PROGRAM="blender" # BF_PROGRAM=\`basename "\$0"\`-bin -exitcode=0 - -LD_LIBRARY_PATH=\${BF_DIST_BIN}/lib:\${LD_LIBRARY_PATH} - -if [ -n "\$LD_LIBRARYN32_PATH" ]; then - LD_LIBRARYN32_PATH=\${BF_DIST_BIN}/lib:\${LD_LIBRARYN32_PATH} -fi -if [ -n "\$LD_LIBRARYN64_PATH" ]; then - LD_LIBRARYN64_PATH=\${BF_DIST_BIN}/lib:\${LD_LIBRARYN64_PATH} -fi -if [ -n "\$LD_LIBRARY_PATH_64" ]; then - LD_LIBRARY_PATH_64=\${BF_DIST_BIN}/lib:\${LD_LIBRARY_PATH_64} -fi - -# Workaround for half-transparent windows when compiz is enabled -XLIB_SKIP_ARGB_VISUALS=1 - -export LD_LIBRARY_PATH LD_LIBRARYN32_PATH LD_LIBRARYN64_PATH LD_LIBRARY_PATH_64 LD_PRELOAD XLIB_SKIP_ARGB_VISUALS - -"\$BF_DIST_BIN/\$BF_PROGRAM" \${1+"\$@"} -exitcode=\$? -exit \$exitcode -EOF - chmod +x $RB/extra/blender-softwaregl - - cat << EOF > $RB/extra/do_update-libs.sh -#!/bin/sh - -BITS=\$1 -V="\`readlink /opt/lib/mesa | sed -r 's/mesa-//'\`" -TMP=\`mktemp -d\` -N="mesalibs\$1-\$V" - -if [ ! -f \$N.tar.bz2 ]; then - mkdir -p \$TMP/lib - cp -P /opt/lib/mesa/lib/libGL* \$TMP/lib - strip -s \$TMP/lib/* - tar -C \$TMP -cf \$N.tar lib - bzip2 \$N.tar - - rm -f mesalibs\$BITS.tar,bz2 - ln -s \$N.tar.bz2 mesalibs\$BITS.tar.bz2 -fi - -rm -rf \$TMP -EOF - chmod +x $RB/extra/do_update-libs.sh - - cat << EOF > $RB/extra/update-libs.sh -#!/bin/sh - -P="/home/sources/release-builder/extra" -CHROOT_PREFIX="buildbot_squeeze_" -CHROOT32="\${CHROOT_PREFIX}i686" -CHROOT64="\${CHROOT_PREFIX}x86_64" -RUN32="schroot -c \$CHROOT32 -d \$P" -RUN64="schroot -c \$CHROOT64 -d \$P" - -\$RUN64 ./do_update-libs.sh 64 -\$RUN32 ./do_update-libs.sh 32 -EOF - chmod +x $RB/extra/update-libs.sh - - mkdir -p $RB/config - cp $SOURCES_PATH/blender/build_files/buildbot/config/* $RB/config - - fi -} - -INSTALL_SOURCES() { - SOURCES_PATH=$1 - - if [ ! -d "$SOURCES_PATH" ]; then - INFO "Creating sources directory" - mkdir -p "$SOURCES_PATH" - fi - - if [ ! -d "$SOURCES_PATH/backport/binutils" ]; then - INFO "Downloading binutils" - mkdir -p "$SOURCES_PATH/backport/binutils" - wget -c $DEBIAN_MIRROR/pool/main/b/binutils/binutils_$BINUTILS_FV.diff.gz \ - $DEBIAN_MIRROR/pool/main/b/binutils/binutils_$BINUTILS_FV.dsc \ - $DEBIAN_MIRROR/pool/main/b/binutils/binutils_$BINUTILS_V.orig.tar.gz \ - -P "$SOURCES_PATH/backport/binutils" - fi - - if [ ! -d "$SOURCES_PATH/backport/gcc-4.7" ]; then - INFO "Downloading gcc-4.7" - mkdir -p "$SOURCES_PATH/backport/gcc-4.7" - wget -c $DEBIAN_MIRROR/pool/main/g/gcc-4.7/gcc-$GCC_FV.diff.gz \ - $DEBIAN_MIRROR/pool/main/g/gcc-4.7/gcc-$GCC_FV.dsc \ - $DEBIAN_MIRROR/pool/main/g/gcc-4.7/gcc-$GCC_V.orig.tar.gz \ - -P "$SOURCES_PATH/backport/gcc-4.7" - fi - - if [ ! -d "$SOURCES_PATH/backport/openssl" ]; then - INFO "Downloading openssl" - mkdir -p "$SOURCES_PATH/backport/openssl" - wget -c $DEBIAN_MIRROR/pool/main/o/openssl/openssl_$OPENSSL_FV.debian.tar.gz \ - $DEBIAN_MIRROR/pool/main/o/openssl/openssl_$OPENSSL_FV.dsc \ - $DEBIAN_MIRROR/pool/main/o/openssl/openssl_$OPENSSL_V.orig.tar.gz \ - -P "$SOURCES_PATH/backport/openssl" - fi - - # JeMalloc - J="$SOURCES_PATH/packages/jemalloc-$JEMALLOC_V" - if [ ! -d "$J" ]; then - INFO "Downloading jemalloc-$JEMALLOC_V" - wget -c http://www.canonware.com/download/jemalloc/jemalloc-$JEMALLOC_V.tar.bz2 -P "$SOURCES_PATH/packages" - tar -C "$SOURCES_PATH/packages" -xf "$J.tar.bz2" - cat << EOF > "$J/0config.sh" -#!/bin/sh - -./configure CC="gcc-4.7 -Wl,--as-needed" CXX="g++-4.7 -Wl,--as-needed" LDFLAGS="-pthread -static-libgcc" --prefix=/opt/lib/jemalloc-$JEMALLOC_V -EOF - chmod +x "$J/0config.sh" - fi - - # Spnav - S="$SOURCES_PATH/packages/libspnav-$SPNAV_V" - if [ ! -d "$S" ]; then - wget -c http://downloads.sourceforge.net/project/spacenav/spacenav%20library%20%28SDK%29/libspnav%200.2.2/libspnav-$SPNAV_V.tar.gz \ - -P "$SOURCES_PATH/packages" - tar -C "$SOURCES_PATH/packages" -xf "$S.tar.gz" - cat << EOF > "$S/0config.sh" -#!/bin/sh - -./configure --prefix=/opt/lib/libspnav-$SPNAV_V -EOF - chmod +x "$S/0config.sh" - fi - - # FFmpeg - F="$SOURCES_PATH/packages/ffmpeg-$FFMPEG_V" - if [ ! -d "$F" ]; then - INFO "Downloading FFmpeg-$FFMPEG_V" - wget -c http://ffmpeg.org/releases/ffmpeg-$FFMPEG_V.tar.bz2 -P "$SOURCES_PATH/packages" - tar -C "$SOURCES_PATH/packages" -xf "$F.tar.bz2" - cat << EOF > "$F/0config.sh" -#!/bin/sh - -./configure \\ - --cc="/usr/bin/gcc-4.7 -Wl,--as-needed" \\ - --extra-ldflags="-pthread -static-libgcc" \\ - --prefix=/opt/lib/ffmpeg-$FFMPEG_V \\ - --enable-static \\ - --enable-avfilter \\ - --disable-vdpau \\ - --disable-bzlib \\ - --disable-libgsm \\ - --enable-libschroedinger \\ - --disable-libspeex \\ - --enable-libtheora \\ - --enable-libvorbis \\ - --enable-pthreads \\ - --enable-zlib \\ - --enable-libvpx \\ - --enable-stripping \\ - --enable-runtime-cpudetect \\ - --disable-vaapi \\ - --enable-libopenjpeg \\ - --disable-libfaac \\ - --disable-nonfree \\ - --enable-gpl \\ - --disable-postproc \\ - --disable-x11grab \\ - --enable-libmp3lame \\ - --disable-librtmp \\ - --enable-libx264 \\ - --enable-libxvid \\ - --disable-libopencore-amrnb \\ - --disable-libopencore-amrwb \\ - --disable-libdc1394 \\ - --disable-version3 \\ - --disable-outdev=sdl \\ - --disable-outdev=alsa \\ - --disable-indev=sdl \\ - --disable-indev=alsa \\ - --disable-indev=jack \\ - --disable-indev=lavfi - -# --enable-debug -# --disable-optimizations -# --disable-ffplay -EOF - chmod +x "$F/0config.sh" - fi - - # Boost - B="$SOURCES_PATH/packages/boost_$BOOST_V" - if [ ! -d "$B" ]; then - INFO "Downloading Boost-$BOOST_V" - b_d=`echo "$BOOST_V" | sed -r 's/_/./g'` - wget -c http://sourceforge.net/projects/boost/files/boost/$b_d/boost_$BOOST_V.tar.bz2/download -O "$B.tar.bz2" - tar -C "$SOURCES_PATH/packages" -xf "$B.tar.bz2" - fi - - # Python - P="$SOURCES_PATH/packages/Python-$PYTHON_V" - if [ ! -d "$P" ]; then - INFO "Downloading Python-$PYTHON_V" - wget -c http://python.org/ftp/python/$PYTHON_V/Python-$PYTHON_V.tar.bz2 -P "$SOURCES_PATH/packages" - tar -C "$SOURCES_PATH/packages" -xf "$P.tar.bz2" - cat << EOF > "$P/0config.sh" -#!/bin/sh - -# NOTE: this sounds strange, but make sure /dev/shm/ is writable by your user, -# otherwise syncronization primitives wouldn't be included into python -if [[ "\`stat -c '%a' /dev/shm/\`" != "777" ]]; then - echo "Error checking syncronization primitives" - exit 1 -fi - -./configure --prefix=/opt/lib/python-$PYTHON_V \\ - --enable-ipv6 \\ - --enable-loadable-sqlite-extensions \\ - --with-dbmliborder=bdb \\ - --with-wide-unicode \\ - --with-computed-gotos \\ - --with-pymalloc -EOF - chmod +x "$P/0config.sh" - fi - - # OpenImageIO - O="$SOURCES_PATH/packages/OpenImageIO-$OIIO_V" - if [ ! -d "$O" ]; then - INFO "Downloading OpenImageIO-$OIIO_V" - wget -c https://github.com/OpenImageIO/oiio/tarball/Release-$OIIO_V -O "$O.tar.gz" - tar -C "$SOURCES_PATH/packages" -xf "$O.tar.gz" - mv $SOURCES_PATH/packages/OpenImageIO-oiio* $O - mkdir $O/build - cat << EOF > "$O/build/prepare.sh" -#!/bin/sh - -if file /bin/cp | grep -q '32-bit'; then - cflags="-fPIC -m32 -march=i686" -else - cflags="-fPIC" -fi - -cmake \\ - -D CMAKE_BUILD_TYPE=Release \\ - -D CMAKE_PREFIX_PATH=/opt/lib/oiio-$OIIO_V \\ - -D CMAKE_INSTALL_PREFIX=/opt/lib/oiio-$OIIO_V \\ - -D BUILDSTATIC=ON \\ - -D USE_JASPER=OFF \\ - -D CMAKE_CXX_FLAGS:STRING="\${cflags}" \\ - -D CMAKE_C_FLAGS:STRING="\${cflags}" \\ - -D CMAKE_EXE_LINKER_FLAGS='-lgcc_s -lgcc' \\ - -D BOOST_ROOT=/opt/lib/boost \\ - ../src -EOF - chmod +x "$O/build/prepare.sh" - fi - - # OpenColorIO - O="$SOURCES_PATH/packages/OpenColorIO-$OCIO_V" - if [ ! -d "$O" ]; then - INFO "Downloading OpenColorIO-$OCIO_V" - wget -c http://github.com/imageworks/OpenColorIO/tarball/v$OCIO_V -O "$O.tar.gz" - tar -C "$SOURCES_PATH/packages" -xf "$O.tar.gz" - mv $SOURCES_PATH/packages/imageworks-OpenColorIO* $O - mkdir $O/build - cat << EOF > "$O/build/prepare.sh" -#!/bin/sh - -if file /bin/cp | grep -q '32-bit'; then - cflags="-fPIC -m32 -march=i686" -else - cflags="-fPIC" -fi - -cmake \\ - -D CMAKE_BUILD_TYPE=Release \\ - -D CMAKE_PREFIX_PATH=/opt/lib/ocio-1.0.7 \\ - -D CMAKE_INSTALL_PREFIX=/opt/lib/ocio-1.0.7 \\ - -D BUILDSTATIC=ON \\ - -D CMAKE_CXX_FLAGS:STRING="\${cflags}" \\ - -D CMAKE_C_FLAGS:STRING="\${cflags}" \\ - -D CMAKE_EXE_LINKER_FLAGS='-lgcc_s -lgcc' \\ - .. -EOF - - chmod +x "$O/build/prepare.sh" - fi - - # Mesa - M="$SOURCES_PATH/packages/Mesa-$MESA_V" - if [ ! -d "$M" ]; then - INFO "Downloading Mesa-$MESA_V" - wget -c ftp://ftp.freedesktop.org/pub/mesa/$MESA_V/MesaLib-$MESA_V.tar.bz2 -P "$SOURCES_PATH/packages" - tar -C "$SOURCES_PATH/packages" -xf "$SOURCES_PATH/packages/MesaLib-$MESA_V.tar.bz2" - cat << EOF > "$M/0config.sh" -#!/bin/sh - -OPTS="--with-driver=xlib \\ - --disable-driglx-direct \\ - --disable-egl \\ - --enable-gallium-gbm=no \\ - --enable-gallium-egl=no \\ - --enable-gallium-llvm=no \\ - --with-gallium-drivers=swrast \\ - --with-dri-drivers=swrast \\ - --prefix=/opt/lib/mesa-$MESA_V" - -if file /bin/cp | grep -q '32-bit'; then - ./configure CC="gcc-4.7 -Wl,--as-needed" CXX="g++-4.7 -Wl,--as-needed" LDFLAGS="-pthread -static-libgcc" \${OPTS} --enable-32-bit #--build=i486-linux-gnu -else - ./configure CC="gcc-4.7 -Wl,--as-needed" CXX="g++-4.7 -Wl,--as-needed" LDFLAGS="-pthread -static-libgcc" \${OPTS} -fi - -EOF - chmod +x "$M/0config.sh" - fi - - # OpenAL - O="$SOURCES_PATH/packages/openal-soft-$OPENAL_V" - if [ ! -d "$O" ]; then - INFO "Downloading OpenAL-$OPENAL_V" - wget -c http://kcat.strangesoft.net/openal-releases/openal-soft-$OPENAL_V.tar.bz2 -P "$SOURCES_PATH/packages" - tar -C "$SOURCES_PATH/packages" -xf "$SOURCES_PATH/packages/openal-soft-$OPENAL_V.tar.bz2" - cat << EOF > "$O/build-openal.sh" -#!/bin/sh - -DEB_CMAKE_OPTIONS="-DCMAKE_VERBOSE_MAKEFILE=ON \\ - -DCMAKE_INSTALL_PREFIX=/opt/lib/openal-$OPENAL_V \\ - -DCMAKE_BUILD_TYPE:String=Release \\ - -DALSOFT_CONFIG=ON \\ - -DLIBTYPE=STATIC .. " - -BUILD_TREE=./build-tree - -rm -rf "\${BUILD_TREE}" -mkdir -p "\${BUILD_TREE}" -cd "\${BUILD_TREE}" - -sh -c "cmake \`echo \$DEB_CMAKE_OPTIONS\`" -make -j$THREADS -make install -EOF - chmod +x "$O/build-openal.sh" - fi - - # OpenCollada - O="$SOURCES_PATH/packages/opencollada" - if [ ! -d "$O" ]; then - INFO "Checking out OpenCollada sources" - svn co http://opencollada.googlecode.com/svn/trunk $O - - cat << EOF > "$O/build_all.sh" -#!/bin/sh - -scons RELEASE=0 NOVALIDATION=1 XMLPARSER=libxmlnative PCRENATIVE=1 SHAREDLIB=0 -j ${THREADS} --clean -scons RELEASE=1 NOVALIDATION=1 XMLPARSER=libxmlnative PCRENATIVE=1 SHAREDLIB=0 -j ${THREADS} --clean - -scons RELEASE=0 NOVALIDATION=1 XMLPARSER=libxmlnative PCRENATIVE=1 SHAREDLIB=0 -j ${THREADS} -scons RELEASE=1 NOVALIDATION=1 XMLPARSER=libxmlnative PCRENATIVE=1 SHAREDLIB=0 -j ${THREADS} -EOF - - cat << EOF > "$O/prepare_lib-libxml.sh" -#!/bin/bash - -src="./COLLADAStreamWriter/include -./COLLADABaseUtils/include -./COLLADABaseUtils/include/Math -./COLLADAFramework/include -./GeneratedSaxParser/include -./COLLADASaxFrameworkLoader/include -./COLLADASaxFrameworkLoader/include/generated14 -./COLLADASaxFrameworkLoader/include/generated15" - -if [ -z \$1 ]; then - arch="x86_64" -else - arch=\$1 -fi - -libs="./GeneratedSaxParser/lib/posix/\${arch}/releaselibxml/libGeneratedSaxParser.a -./Externals/MathMLSolver/lib/posix/\${arch}/release/libMathMLSolver.a -./COLLADABaseUtils/lib/posix/\${arch}/release/libOpenCOLLADABaseUtils.a -./COLLADAFramework/lib/posix/\${arch}/release/libOpenCOLLADAFramework.a -./COLLADASaxFrameworkLoader/lib/posix/\${arch}/releaselibxmlNovalidation/libOpenCOLLADASaxFrameworkLoader.a -./COLLADAStreamWriter/lib/posix/\${arch}/release/libOpenCOLLADAStreamWriter.a -./Externals/UTF/lib/posix/\${arch}/release/libUTF.a -./common/libBuffer/lib/posix/\${arch}/release/libbuffer.a -./common/libftoa/lib/posix/\${arch}/release/libftoa.a" - -#./Externals/pcre/lib/posix/\${arch}/release/libpcre.a -#./Externals/LibXML/lib/posix/\${arch}/release/libxml.a - -debug_libs="./GeneratedSaxParser/lib/posix/\${arch}/debuglibxml/libGeneratedSaxParser.a -./Externals/MathMLSolver/lib/posix/\${arch}/debug/libMathMLSolver.a -./COLLADABaseUtils/lib/posix/\${arch}/debug/libOpenCOLLADABaseUtils.a -./COLLADAFramework/lib/posix/\${arch}/debug/libOpenCOLLADAFramework.a -./COLLADASaxFrameworkLoader/lib/posix/\${arch}/debuglibxmlNovalidation/libOpenCOLLADASaxFrameworkLoader.a -./COLLADAStreamWriter/lib/posix/\${arch}/debug/libOpenCOLLADAStreamWriter.a -./Externals/UTF/lib/posix/\${arch}/debug/libUTF.a -./common/libBuffer/lib/posix/\${arch}/debug/libbuffer.a -./common/libftoa/lib/posix/\${arch}/debug/libftoa.a" - -#./Externals/pcre/lib/posix/\${arch}/debug/libpcre.a -#./Externals/LibXML/lib/posix/\${arch}/debug/libxml.a - -d="opencollada-libxml" -rm -rf \${d} -mkdir -p \${d}/include - -for i in \${src}; do - mkdir -p \${d}/include/\${i} - cp \${i}/*.h \${d}/include/\${i} -done - -mkdir \${d}/lib -for i in \${libs}; do - echo "" > /dev/null - cp \${i} \${d}/lib -done - -for i in \${debug_libs}; do - f=\`basename \${i}\` - o=\${f/\\.a/_d.a} - cp \${i} \${d}/lib/\${o} -done - -rm -rf /opt/lib/opencollada -mv \${d} /opt/lib/opencollada -chown -R root:staff /opt/lib/opencollada -EOF - - chmod +x "$O/build_all.sh" - chmod +x "$O/prepare_lib-libxml.sh" - fi - - # Blender - B="$SOURCES_PATH/blender" - if [ ! -d "$B" ]; then - INFO "Checking out Blender sources" - svn co https://svn.blender.org/svnroot/bf-blender/trunk/blender $B - fi - - # CUDA Toolkit - C=$SOURCES_PATH/cudatoolkit - if [ ! -f "$C/$CUDA_32" ]; then - INFO "Downloading CUDA 32bit toolkit" - mkdir -p $C - wget -c http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/$CUDA_32 -P $C - fi - - if [ ! -f "$C/$CUDA_64" ]; then - INFO "Downloading CUDA 64bit toolkit" - mkdir -p $C - wget -c http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/$CUDA_64 -P $C - fi - - if [ ! -f $SOURCES_PATH/Readme.txt ]; then - - cat << EOF > $SOURCES_PATH/Readme.txt -This directory contains different things needed for Blender builds - -blender/: directory with blender's svnsnapshot - -blender-build/, blender-install/: build and install directories for - automated release creation - -buildbot-i686-slave/, -buildbot-x86_64-slave/: buildbot slave environments for automated builds - (maybe it'll be better to move them to /home?) - -staticlibs/: set of static libs. Mostly needed to make static linking prioretized - under dynamic linking - -release-builder/: all stuff needed for release archives preparation - -Hope all this would help you. - --Sergey- -EOF - fi - - INSTALL_RELEASE_BUILDER $SOURCES_PATH -} - -DO_BACKPORT() { - CHROOT_ARCH=$1 - CHROOT_PATH=$2 - - RUN="chroot $CHROOT_PATH" - P="/home/sources/backport" - - # Backport fresh binutils - if [ `$RUN dpkg-query -W -f='${Version}\n' binutils | grep -c $BINUTILS_V` -eq "0" ]; then - INFO "Backporting binutils" - B="$P/binutils/binutils-$BINUTILS_V" - pkg="$P/binutils/binutils_${BINUTILS_FV}_amd64.deb" - - if [ ! -d "$CHROOT_PATH/$B" ]; then - INFO "Unpacking binutils" - $RUN dpkg-source -x "$P/binutils/binutils_$BINUTILS_FV.dsc" "$B" - fi - - if [ "$CHROOT_ARCH" = "i386" ]; then - pkg=`echo "$pkg" | sed -r 's/amd64/i386/g'` - fi - - if [ ! -f "$CHROOT_PATH/$pkg" ]; then - INFO "Compiling binutils" - sed -ie 's/with_check := yes/with_check := no/' "$CHROOT_PATH/$B/debian/rules" - $RUN sh -c "cd '$B' && dpkg-buildpackage -rfakeroot -j$THREADS" - fi - - INFO "Installing binutils" - $RUN dpkg -i "$pkg" - - INFO "Cleaning binutils" - $RUN sh -c "cd '$B' && fakeroot debian/rules clean" - fi - - # Install fresh gcc - if [ `$RUN dpkg-query -W -f='${Status}\n' gcc-4.7 2> /dev/null | grep -c installed` -eq "0" ]; then - INFO "Backporting gcc-4.7" - G="$P/gcc-4.7/gcc-$GCC_V" - - pkg="cpp-4.7_4.7.1-7_amd64.deb gcc-4.7-base_4.7.1-7_amd64.deb \ - libstdc++6-4.7-dev_4.7.1-7_amd64.deb libstdc++6_4.7.1-7_amd64.deb libgcc1_4.7.1-7_amd64.deb \ - libgomp1_4.7.1-7_amd64.deb libitm1_4.7.1-7_amd64.deb libquadmath0_4.7.1-7_amd64.deb \ - gcc-4.7_4.7.1-7_amd64.deb g++-4.7_4.7.1-7_amd64.deb" - - if [ ! -d "$CHROOT_PATH/$G" ]; then - INFO "Unpacking gcc-4.7" - $RUN dpkg-source -x "$P/gcc-4.7/gcc-$GCC_FV.dsc" "$G" - fi - - if [ "$CHROOT_ARCH" = "i386" ]; then - pkg=`echo "$pkg" | sed -r 's/amd64/i386/g'` - fi - - ok=true - for x in `echo "$pkg"`; do - if [ ! -f "$CHROOT_PATH/$P/gcc-4.7/$x" ]; then - ok=false - break; - fi - done - - if ! $ok; then - INFO "Compiling gcc-4.7" - sed -ie 's/#with_check := disabled by hand/with_check := disabled by hand/' "$CHROOT_PATH/$G/debian/rules.defs" - sed -ie 's/dpkg-dev (>= 1.16.0~ubuntu4)/dpkg-dev (>= 1.15.8)/' "$CHROOT_PATH/$G/debian/control" - sed -ie 's/doxygen (>= 1.7.2)/doxygen (>= 1.7.1)/' "$CHROOT_PATH/$G/debian/control" - sed -ie 's/libmpfr-dev (>= 3.0.0-9~)/libmpfr-dev (>= 3.0.0)/' "$CHROOT_PATH/$G/debian/control" - sed -ie 's/libc6-dev (>= 2.13-5)/libc6-dev (>= 2.11.3)/' "$CHROOT_PATH/$G/debian/control" - sed -ie 's/libgmp-dev (>= 2:5.0.1~)/libgmp3-dev (>= 2:4.3.2)/' "$CHROOT_PATH/$G/debian/control" - $RUN sh -c "cd '$G' && dpkg-buildpackage -rfakeroot" - fi - - inst="" - for x in `echo "$pkg"`; do - inst="$inst $P/gcc-4.7/$x" - done - - INFO "Installing gcc-4.7" - $RUN dpkg -i $inst - - INFO "Cleaning gcc-4.7" - $RUN sh -c "cd '$G' && fakeroot debian/rules clean" - fi - - # Backport OpenSSL - if [ ! -f $CHROOT_PATH/usr/lib/libssl_pic.a ]; then - INFO "Backporting OpenSSL" - O="$P/openssl/openssl-$OPENSSL_V" - - pkg="libssl-dev_0.9.8o-4squeeze13_amd64.deb libssl0.9.8_0.9.8o-4squeeze13_amd64.deb openssl_0.9.8o-4squeeze13_amd64.deb" - - if [ ! -d "$CHROOT_PATH/$O" ]; then - INFO "Unpacking OpenSSL" - $RUN dpkg-source -x "$P/openssl/openssl_$OPENSSL_FV.dsc" "$O" - fi - - if [ "$CHROOT_ARCH" = "i386" ]; then - pkg=`echo "$pkg" | sed -r 's/amd64/i386/g'` - fi - - ok=true - for x in `echo "$pkg"`; do - if [ ! -f "$CHROOT_PATH/$P/openssl/$x" ]; then - ok=false - break; - fi - done - - if ! $ok; then - INFO "Compiling OpenSSL" - sed -ie 's/#\s*mv debian\/tmp\/usr\/lib\/libcrypto.a debian\/tmp\/usr\/lib\/libcrypto_pic.a/ mv debian\/tmp\/usr\/lib\/libcrypto.a debian\/tmp\/usr\/lib\/libcrypto_pic.a/' "$CHROOT_PATH/$O/debian/rules" - sed -ie 's/#\s*mv debian\/tmp\/usr\/lib\/libssl.a debian\/tmp\/usr\/lib\/libssl_pic.a/ mv debian\/tmp\/usr\/lib\/libssl.a debian\/tmp\/usr\/lib\/libssl_pic.a/' "$CHROOT_PATH/$O/debian/rules" - cat << EOF > $CHROOT_PATH/$O/debian/libssl-dev.files -usr/lib/libssl.so -usr/lib/libcrypto.so -usr/lib/libssl.a -usr/lib/libcrypto.a -usr/lib/libssl_pic.a -usr/lib/libcrypto_pic.a -usr/lib/pkgconfig -usr/include -usr/share/man/man3 -EOF - $RUN sh -c "cd '$O' && dpkg-buildpackage -rfakeroot -j$THREADS" - fi - - inst="" - for x in `echo "$pkg"`; do - inst="$inst $P/openssl/$x" - done - - INFO "Installing OpenSSL" - $RUN dpkg -i $inst - - echo "openssl hold" | $RUN dpkg --set-selections - echo "libssl-dev hold" | $RUN dpkg --set-selections - echo "libssl0.9.8 hold" | $RUN dpkg --set-selections - - INFO "Cleaning OpenSSL" - $RUN sh -c "cd '$O' && fakeroot debian/rules clean" - fi -} - -DO_COMPILE() { - CHROOT_ARCH=$1 - CHROOT_PATH=$2 - - RUN="chroot $CHROOT_PATH" - P="/home/sources/packages" - L="$CHROOT_PATH/opt/lib" - - # JeMalloc - if [ ! -d "$L/jemalloc-$JEMALLOC_V" ]; then - INFO "Copmiling jemalloc-$JEMALLOC_V" - $RUN sh -c "cd '$P/jemalloc-$JEMALLOC_V' && ./0config.sh && make clean && make -j$THREADS && make install && make clean" - - rm -f "$L/jemalloc" - ln -s "jemalloc-$JEMALLOC_V" "$L/jemalloc" - fi - - # libspnav - if [ ! -d "$L/libspnav-$SPNAV_V" ]; then - INFO "Copmiling libspnav-$SPNAV_V" - mkdir -p "$L/libspnav-$SPNAV_V/lib" - mkdir -p "$L/libspnav-$SPNAV_V/include" - $RUN sh -c "cd '$P/libspnav-$SPNAV_V' && ./0config.sh && make clean && make -j$THREADS && make install && make clean" - - rm -f "$L/libspnav" - ln -s "libspnav-$SPNAV_V" "$L/libspnav" - fi - - # FFmpeg - if [ ! -d "$L/ffmpeg-$FFMPEG_V" ]; then - INFO "Copmiling ffmpeg-$FFMPEG_V" - $RUN sh -c "cd '$P/ffmpeg-$FFMPEG_V' && ./0config.sh && make clean && make -j$THREADS && make install && make clean" - - rm -f "$L/ffmpeg" - ln -s "ffmpeg-$FFMPEG_V" "$L/ffmpeg" - fi - - # Boost - V=`echo $BOOST_V | sed -r 's/_/./g'` - if [ ! -d "$L/boost-$V" ]; then - INFO "Copmiling boost-$V" - $RUN sh -c "cd '$P/boost_$BOOST_V' && ./bootstrap.sh && ./b2 --clean && ./b2 install --prefix='/opt/lib/boost-$V' && ./b2 --clean" - - rm -f "$L/boost" - ln -s "boost-$V" "$L/boost" - fi - - # OCIO - if [ ! -d "$L/ocio-$OCIO_V" ]; then - INFO "Copmiling ocio-$OCIO_V" - $RUN sh -c "cd '$P/OpenColorIO-$OCIO_V/build' && ./prepare.sh && make clean && make -j$THREADS && make install && make clean" - - # Force linking against sttaic libs - rm -f $L/ocio-$OCIO_V/lib/*.so* - - # Additional depencencies - cp $CHROOT_PATH/$P/OpenColorIO-$OCIO_V/build/ext/dist/lib/libtinyxml.a $L/ocio-$OCIO_V/lib - cp $CHROOT_PATH/$P/OpenColorIO-$OCIO_V/build/ext/dist/lib/libyaml-cpp.a $L/ocio-$OCIO_V/lib - - rm -f "$L/ocio" - ln -s "ocio-$OCIO_V" "$L/ocio" - fi - - # OIIO - if [ ! -d "$L/oiio-$OIIO_V" ]; then - INFO "Copmiling oiio-$OIIO_V" - $RUN sh -c "cd '$P/OpenImageIO-$OIIO_V/build' && ./prepare.sh && make clean && make -j$THREADS && make install && make clean" - - rm -f "$L/oiio" - ln -s "oiio-$OIIO_V" "$L/oiio" - fi - - # Python - if [ ! -d "$L/python-$PYTHON_V" ]; then - INFO "Copmiling Python-$PYTHON_V" - - cat << EOF > $CHROOT_PATH/$P/Python-$PYTHON_V/Modules/Setup.local -_md5 md5module.c - -_sha1 sha1module.c -_sha256 sha256module.c -_sha512 sha512module.c -EOF - - sed -ie "s/libraries = \['ssl', 'crypto'\]/libraries = ['ssl_pic', 'crypto_pic', 'z']/" "$P/Python-$PYTHON_V/setup.py" - - $RUN sh -c "cd '$P/Python-$PYTHON_V' && ./0config.sh && make clean && make -j$THREADS && make install && make clean" - - rm -f "$L/python-$PYTHIN_V_SHORT" - ln -s "python-$PYTHON_V" "$L/python-$PYTHIN_V_SHORT" - fi - - # Mesa - if [ ! -d "$L/mesa-$MESA_V" ]; then - INFO "Copmiling Mesa-$MESA_V" - - $RUN sh -c "cd '$P/Mesa-$MESA_V' && ./0config.sh && make clean && make -j$THREADS && make install && make clean" - - rm -f "$L/mesa" - ln -s "mesa-$MESA_V" "$L/mesa" - fi - - # OpenAL - if [ ! -d "$L/openal-$OPENAL_V" ]; then - INFO "Copmiling openal-$OPENAL_V" - - $RUN sh -c "cd '$P/openal-soft-$OPENAL_V' && ./build-openal.sh" - - rm -f "$L/openal" - ln -s "openal-$OPENAL_V" "$L/openal" - fi - - # OpenCollada - if [ ! -d "$L/opencollada" ]; then - INFO "Copmiling opencollada" - - cat << EOF > "$CHROOT_PATH/$P/opencollada/collada.patch" -Index: common/libBuffer/include/CommonBuffer.h -=================================================================== ---- common/libBuffer/include/CommonBuffer.h (revision 876) -+++ common/libBuffer/include/CommonBuffer.h (working copy) -@@ -12,6 +12,7 @@ - #define __COMMON_BUFFER_H__ - - #include "CommonIBufferFlusher.h" -+#include "COLLADABUPlatform.h" - - namespace Common - { -Index: common/libBuffer/src/CommonLogFileBufferFlusher.cpp -=================================================================== ---- common/libBuffer/src/CommonLogFileBufferFlusher.cpp (revision 876) -+++ common/libBuffer/src/CommonLogFileBufferFlusher.cpp (working copy) -@@ -10,6 +10,34 @@ - - #include "CommonLogFileBufferFlusher.h" - -+#include -+#include -+ -+#ifndef _WIN32 -+FILE *_wfopen(const wchar_t *path, const char *mode) -+{ -+ const wchar_t *src = path; -+ char *path_mbs; -+ int n; -+ FILE *file; -+ -+ n = (int)wcsrtombs(NULL, &src, 0, NULL); -+ -+ if (n < 0) -+ return NULL; -+ -+ path_mbs = (char *)malloc(n + 1); -+ wcsrtombs(path_mbs, &path, n, NULL); -+ path_mbs[n] = 0; -+ -+ file = fopen(path_mbs, mode); -+ -+ free(path_mbs); -+ -+ return file; -+} -+#endif -+ - namespace Common - { - //-------------------------------------------------------------------- -@@ -35,7 +63,7 @@ - #ifdef _WIN32 - mError = (int)_wfopen_s( &stream, fileName, L"wb" ); - #else -- stream = _wfopen( fileName, L"wb" ); -+ stream = _wfopen( fileName, "wb" ); - mError = stream ? 0 : errno; - #endif - if ( !mError ) -@@ -65,7 +93,7 @@ - #else - if ( mUseWideFileName ) - { -- stream = _wfopen( mWideFileName.c_str(), L"a" ); -+ stream = _wfopen( mWideFileName.c_str(), "a" ); - } - else - { -Index: common/libBuffer/SConscript -=================================================================== ---- common/libBuffer/SConscript (revision 876) -+++ common/libBuffer/SConscript (working copy) -@@ -11,7 +11,7 @@ - targetPath = outputDir + libName - - --incDirs = ['include/', '../libftoa/include'] -+incDirs = ['include/', '../libftoa/include', '../../COLLADABaseUtils/include/', '../../Externals/UTF/include'] - - - src = [] -EOF - - # We're building in a chroot, architecture of host system would be used by scons - collada_arch="x86_64" - - $RUN sh -c "cd '$P/opencollada' && svn revert . -R && cat collada.patch | patch -p0 && ./build_all.sh && ./prepare_lib-libxml.sh $collada_arch" - fi -} - -ADD_REPO() { - CHROOT_PATH=$1 - DESC=$2 - REPO=$3 - C="$CHROOT_PATH/etc/apt/sources.list" - RUN="chroot $CHROOT_PATH" - - if [ `cat "$C" | grep -c "$REPO"` -eq "0" ]; then - INFO "Adding repo $DESC" - echo "" >> $C - echo "deb $REPO" >> $C - echo "deb-src $REPO" >> $C - - INFO "Updating packages list" - $RUN apt-get update - fi -} - -INSTALL_CHROOT() { - CHROOT_ARCH=$1 - CHROOT_PATH=$2 - - RUN="chroot $CHROOT_PATH" - - # Install fresh debian to a chroot - if [ ! -d "$CHROOT_PATH" ]; then - - INFO "Installing Debian ${DEBIAN_BRANCH} to ${CHROOT_PATH}" - debootstrap --arch "${CHROOT_ARCH}" "${DEBIAN_BRANCH}" "${CHROOT_PATH}" "${DEBIAN_MIRROR}" - fi - - # Configure users and groups - - if [ `cat ${CHROOT_PATH}/etc/group | grep -c developers` -eq "0" ]; then - INFO "Creating gorup 'developers'" - $RUN groupadd -g 7001 developers - fi - - if [ `mount | grep -c "$CHROOT_PATH/dev"` -eq "0" ]; then - INFO "Mounting devices from host system to chroot" - - mount -t proc none $CHROOT_PATH/proc - mount -t auto -o bind /dev $CHROOT_PATH/dev - mount -t devpts -o mode=0620 none $CHROOT_PATH/dev/pts - fi - - # Configure apt and install packages - - if [ ! -f ${CHROOT_PATH}/etc/apt/apt.conf ]; then - INFO "Setting up apt to not use recommended packages (saves disk space)" - - cat << EOF > "${CHROOT_PATH}/etc/apt/apt.conf" -APT { - Default-Release "${DEBIAN_BRANCH}"; - Install-Recommends "0"; -}; -EOF - fi - - ADD_REPO $CHROOT_PATH "mirror.yandex.ru" "http://mirror.yandex.ru/debian-multimedia/ squeeze main non-free" - ADD_REPO $CHROOT_PATH "backports.debian.org" "http://backports.debian.org/debian-backports squeeze-backports main non-free" - - $RUN apt-get upgrade - - $RUN apt-get install -y --force-yes deb-multimedia-keyring libx264-dev libxvidcore4-dev libmp3lame-dev - - if [ `$RUN dpkg-query -W -f='${Status}\n' locales | grep -c not-installed` -eq "1" ]; then - INFO "Configuring locales" - $RUN apt-get install -y locales - $RUN localedef -i en_US -f UTF-8 en_US.UTF-8 - fi - - INFO "Installing packages from repository" - - $RUN apt-get install -y mc gcc g++ cmake python dpkg-dev build-essential autoconf bison \ - flex gettext texinfo dejagnu quilt file lsb-release zlib1g-dev fakeroot debhelper \ - g++-multilib libtool autoconf2.64 automake gawk lzma patchutils gperf sharutils \ - libcloog-ppl-dev libmpc-dev libmpfr-dev libgmp3-dev autogen realpath chrpath doxygen \ - graphviz gsfonts-x11 texlive-latex-base libelfg0-dev libx11-dev yasm libopenjpeg-dev \ - libschroedinger-dev libtheora-dev libvorbis-dev libvpx-dev=$VPX_V \ - libopenexr-dev libpng-dev libjpeg-dev libtiff-dev python-dev libbz2-dev libreadline-dev \ - libsqlite3-dev liblzma-dev libncurses5-dev xutils-dev libxext-dev python-libxml2 \ - libglu1-mesa-dev libfftw3-dev libfreetype6-dev libsdl1.2-dev libopenal-dev libjack-dev \ - libxi-dev portaudio19-dev po4a subversion scons libpcre3-dev libexpat1-dev sudo \ - expect bc - - if [ $CHROOT_ARCH = "amd64" ]; then - $RUN apt-get install -y libc6-dev-i386 lib32gcc1 - fi - - # Configure sources directory - if [ ! -d "$CHROOT_PATH/home/sources" ]; then - INFO "Creating sources directory" - $RUN mkdir "/home/sources" - $RUN chmod 775 /home/sources - $RUN chown root:developers /home/sources - fi - - # Bind directory from host system - if [ ! -d "$CHROOT_PATH/home/sources/backport" ]; then - INFO "Binding sources directory from host system to chroot" - mount -o bind "$SOURCES_PATH" "$CHROOT_PATH/home/sources" - fi - - if [ "`$RUN getent passwd $USER_ID`" = "" ]; then - INFO "Adding default user to chroot" - login=`getent passwd $USER_ID | cut -d : -f 1` - $RUN useradd -d "/home/$login" -G developers,sudo -m -u $USER_ID "$login" - fi - - # Backport packages - DO_BACKPORT "$CHROOT_ARCH" "$CHROOT_PATH" - - # Set default compiler to gcc-4.7 - if [ `readlink "$CHROOT_PATH/usr/bin/gcc"` != "gcc-4.7" ]; then - INFO "Setting gcc-4.7 as default compiler" - rm -f $CHROOT_PATH/usr/bin/gcc - rm -f $CHROOT_PATH/usr/bin/g++ - ln -s gcc-4.7 $CHROOT_PATH/usr/bin/gcc - ln -s g++-4.7 $CHROOT_PATH/usr/bin/g++ - fi - - # Compile packages - DO_COMPILE "$CHROOT_ARCH" "$CHROOT_PATH" - - # Install CUDA toolkit - if [ ! -d "$CHROOT_PATH/usr/local/cuda-$CUDA_V" ]; then - INFO "Installing CUDA toolkit" - - if [ "$CHROOT_ARCH" = "amd64" ]; then - C="cudatoolkit_${CUDA_V}_linux_64_${CUDA_DISTR}.run" - else - C="cudatoolkit_${CUDA_V}_linux_32_${CUDA_DISTR}.run" - fi - - rm -f $CHROOT_PATH/usr/local/cuda - - chmod +x $CHROOT_PATH//home/sources/cudatoolkit/$C - - $RUN /usr/bin/expect < /dev/null 2>&1; then - ERROR "debootstrap command not found, can not create chroot environment" - ERROR "Use apt-get install debootstrap to install debootstrap" - exit 1 -fi - -if [ -z "$ENV_PATH" ]; then - ERROR "Incorrect environment directory is set" - exit 1 -fi - -INSTALL_SOURCES "$SOURCES_PATH" -INSTALL_CHROOT amd64 "$AMD64_PATH" -INSTALL_CHROOT i386 "$I686_PATH" - -INFO "Configurtion of build environment is completed!" -echo "Add this lines to your /etc/fstab:" -echo - -for x in $I686_PATH $AMD64_PATH; do - echo "none $x/proc proc auto 0 0" - echo "/dev $x/dev auto bind,auto 0 0" - echo "none $x/dev/pts devpts mode=0620,auto 0 0" - echo "/home/sources $x/home/sources auto bind,auto 0 0" - echo -done - -echo "Add this lines to your /etc/schroot/schroot.conf:" -echo -login=`getent passwd $USER_ID | cut -d : -f 1` - -for x in $I686_PATH $AMD64_PATH; do - echo [`basename $x`] - echo "description=Linux buildbot environment" - echo "directory=$x" - echo "users=$login" - echo "root-groups=root" - echo -done -- cgit v1.2.3