commit 535e89663a13fb4b96276e7706bbb6ba4a0a4690 Author: Matthew Brett Date: Sat Jun 28 17:30:10 2014 +0100 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..2e4eac737 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.pyc +*.swp +*~ +build +working diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..2f2e5ae40 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "terryfy"] + path = terryfy + url = git://github.com/matthew-brett/terryfy.git +[submodule "Pillow"] + path = Pillow + url = git://github.com/python-Pillow/Pillow.git diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..98e9a4297 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,33 @@ +language: + - objective-c + +env: + matrix: + - VERSION=2.7.7 NUMPY_VERSION=1.6.0 + - VERSION=3.3.5 NUMPY_VERSION=1.7.1 + - VERSION=3.4.1 NUMPY_VERSION=1.7.1 + +install: + - source run_install.sh + - get_python_environment macpython $VERSION venv + - pip install delocate + - cd Pillow + - python setup.py bdist_wheel + - delocate-wheel dist/*.whl + - pip install dist/*.whl + - cd .. + +script: + - cd Pillow + - python selftest.py --installed + - cd .. + +before_deploy: cd scikit-image/dist +deploy: + provider: cloudfiles + username: travis-worker + api_key: + secure: U+rKEiR6sQ+vsTJt3MuqqZwWvPV4gkjnQvzeR6cP9JZpfvkKuaa+vcgj7OngZ69DUgFTzRiTnFAxCbArGpDUkbP9V+kX5UgkePMdxhK+j9V0UOo8g+QwZtlqmV78pTXemWndwbqcy0uyfxuBpxhPXGSAHuzk+pZUbhH2zSEfh0s= + region: ORD + container: wheels + skip_cleanup: true diff --git a/Pillow b/Pillow new file mode 160000 index 000000000..a45c8aaf6 --- /dev/null +++ b/Pillow @@ -0,0 +1 @@ +Subproject commit a45c8aaf61029bad7fb1e49edc1e8ed811979c94 diff --git a/archives/freetype-2.5.3.tar.gz b/archives/freetype-2.5.3.tar.gz new file mode 100644 index 000000000..fab7fd191 Binary files /dev/null and b/archives/freetype-2.5.3.tar.gz differ diff --git a/archives/jpegsrc.v9a.tar.gz b/archives/jpegsrc.v9a.tar.gz new file mode 100644 index 000000000..fc3b1eefd Binary files /dev/null and b/archives/jpegsrc.v9a.tar.gz differ diff --git a/archives/lcms2-2.6.tar.gz b/archives/lcms2-2.6.tar.gz new file mode 100644 index 000000000..566b5f174 Binary files /dev/null and b/archives/lcms2-2.6.tar.gz differ diff --git a/archives/libpng-1.6.12.tar.gz b/archives/libpng-1.6.12.tar.gz new file mode 100644 index 000000000..cf4c7af74 Binary files /dev/null and b/archives/libpng-1.6.12.tar.gz differ diff --git a/archives/libwebp-0.4.0.tar.gz b/archives/libwebp-0.4.0.tar.gz new file mode 100644 index 000000000..e1f2320e7 Binary files /dev/null and b/archives/libwebp-0.4.0.tar.gz differ diff --git a/archives/openjpeg-2.0.0.tar.gz b/archives/openjpeg-2.0.0.tar.gz new file mode 100644 index 000000000..583fd3eba Binary files /dev/null and b/archives/openjpeg-2.0.0.tar.gz differ diff --git a/archives/pkg-config-0.28.tar.gz b/archives/pkg-config-0.28.tar.gz new file mode 100644 index 000000000..681681ab3 Binary files /dev/null and b/archives/pkg-config-0.28.tar.gz differ diff --git a/archives/tiff-4.0.3.tar.gz b/archives/tiff-4.0.3.tar.gz new file mode 100644 index 000000000..d9e704722 Binary files /dev/null and b/archives/tiff-4.0.3.tar.gz differ diff --git a/library_installers.sh b/library_installers.sh new file mode 100755 index 000000000..169b2269a --- /dev/null +++ b/library_installers.sh @@ -0,0 +1,223 @@ +# Travis install +# source this script to run the install on travis OSX workers + +# Get needed utilities +source terryfy/travis_tools.sh + +# Package versions / URLs for fresh source builds (MacPython only) +PKG_CONFIG_VERSION=0.28 +FT_BASE_URL=http://sourceforge.net/projects/freetype/files/freetype2 +FT_VERSION="2.5.3" +PNG_BASE_URL=http://downloads.sourceforge.net/project/libpng/libpng16 +PNG_VERSION="1.6.12" +TCL_VERSION="8.5.14.0" +TCL_RELEASE_DMG="http://downloads.activestate.com/ActiveTcl/releases/$TCL_VERSION/ActiveTcl$TCL_VERSION.296777-macosx10.5-i386-x86_64-threaded.dmg" +XQ_BASE_URL=http://xquartz.macosforge.org/downloads/SL +XQUARTZ_VERSION="2.7.4" +JPEG_URL=http://www.ijg.org/files +JPEG_VERSION=9a +OPENJPEG_VERSION=2.0.0 +TIFF_URL=ftp://ftp.remotesensing.org/pub/libtiff +TIFF_VERSION=4.0.3 +LCMS_VERSION=2.6 +WEBP_VERSION=0.4.0 + +# Compiler defaults +SYS_CC=clang +SYS_CXX=clang++ +ARCH_FLAGS="-arch i386 -arch x86_64" +MACOSX_DEPLOYMENT_TARGET='10.6' + + +function check_version { + if [ -z "$version" ]; then + echo "Need version" + exit 1 + fi +} + + +function check_var { + if [ -z "$1" ]; then + echo "Undefined required variable" + exit 1 + fi +} + + +function init_vars { + SRC_PREFIX=$PWD/working + BUILD_PREFIX=$PWD/build + export PATH=$BUILD_PREFIX/bin:$PATH + CPATH=$BUILD_PREFIX/include + LIBRARY_PATH=$BUILD_PREFIX/lib +} + + +function clean_builds { + check_var $SRC_PREFIX + check_var $BUILD_PREFIX + rm -rf $SRC_PREFIX + mkdir $SRC_PREFIX + rm -rf $BUILD_PREFIX + mkdir $BUILD_PREFIX + cd Pillow + git clean -fxd + git reset --hard + cd .. +} + + +function install_pkg_config { + check_var $PKG_CONFIG_VERSION + check_var $SRC_PREFIX + check_var $BUILD_PREFIX + local archive_path="archives/pkg-config-${PKG_CONFIG_VERSION}.tar.gz" + tar zxvf $archive_path -C $SRC_PREFIX + cd $SRC_PREFIX/pkg-config-$PKG_CONFIG_VERSION + require_success "Failed to cd to pkg-config directory" + ./configure --prefix=$BUILD_PREFIX --with-internal-glib + make + make install + require_success "Failed to install pkg-config $version" + cd ../.. +} + + +function install_tkl_85 { + curl $TCL_RELEASE_DMG > ActiveTCL.dmg + require_success "Failed to download TCL $TCL_VERSION" + hdiutil attach ActiveTCL.dmg -mountpoint /Volumes/ActiveTcl + sudo installer -pkg /Volumes/ActiveTcl/ActiveTcl-8.5.pkg -target / + require_success "Failed to install ActiveTcl $TCL_VERSION" +} + + +function install_jpeg { + check_var $JPEG_VERSION + check_var $SRC_PREFIX + check_var $BUILD_PREFIX + local archive_path="archives/jpegsrc.v${JPEG_VERSION}.tar.gz" + tar zxvf $archive_path -C $SRC_PREFIX + cd $SRC_PREFIX/jpeg-$JPEG_VERSION + require_success "Failed to cd to jpeg directory" + CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX + make + make install + require_success "Failed to install jpeg $version" + cd ../.. +} + + +function install_openjpeg { + check_var $OPENJPEG_VERSION + check_var $SRC_PREFIX + check_var $BUILD_PREFIX + local archive_path="archives/openjpeg-${OPENJPEG_VERSION}.tar.gz" + tar zxvf $archive_path -C $SRC_PREFIX + cd $SRC_PREFIX/openjpeg-$OPENJPEG_VERSION + require_success "Failed to cd to openjpeg directory" + CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS \ + CMAKE_INCLUDE_PATH=$CPATH \ + CMAKE_LIBRARY_PATH=$LIBRARY_PATH \ + cmake -DCMAKE_INSTALL_PREFIX:PATH=$BUILD_PREFIX . + make + make install + require_success "Failed to install openjpeg $version" + cd ../.. +} + + +function install_tiff { + check_var $TIFF_VERSION + check_var $SRC_PREFIX + check_var $BUILD_PREFIX + local archive_path="archives/tiff-${TIFF_VERSION}.tar.gz" + tar zxvf $archive_path -C $SRC_PREFIX + cd $SRC_PREFIX/tiff-$TIFF_VERSION + require_success "Failed to cd to tiff directory" + CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX + make + make install + require_success "Failed to install tiff $version" + cd ../.. +} + + +function install_libpng { + check_var $PNG_VERSION + check_var $SRC_PREFIX + check_var $BUILD_PREFIX + local archive_path="archives/libpng-${PNG_VERSION}.tar.gz" + tar zxvf $archive_path -C $SRC_PREFIX + cd $SRC_PREFIX/libpng-$PNG_VERSION + require_success "Failed to cd to png directory" + CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX + make + make install + require_success "Failed to install png $version" + cd ../.. +} + + +function install_freetype { + check_var $FT_VERSION + check_var $SRC_PREFIX + check_var $BUILD_PREFIX + local archive_path="archives/freetype-${FT_VERSION}.tar.gz" + tar zxvf $archive_path -C $SRC_PREFIX + cd $SRC_PREFIX/freetype-$FT_VERSION + require_success "Failed to cd to freetype directory" + CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX + make + make install + require_success "Failed to install freetype $version" + cd ../.. +} + + +function install_lcms2 { + check_var $LCMS_VERSION + check_var $SRC_PREFIX + check_var $BUILD_PREFIX + local archive_path="archives/lcms2-${LCMS_VERSION}.tar.gz" + tar zxvf $archive_path -C $SRC_PREFIX + cd $SRC_PREFIX/lcms2-$LCMS_VERSION + require_success "Failed to cd to lcms2 directory" + CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX + make + make install + require_success "Failed to install lcms $version" + cd ../.. +} + + +function install_webp { + check_var $WEBP_VERSION + check_var $SRC_PREFIX + check_var $BUILD_PREFIX + local archive_path="archives/libwebp-${WEBP_VERSION}.tar.gz" + tar zxvf $archive_path -C $SRC_PREFIX + cd $SRC_PREFIX/libwebp-$WEBP_VERSION + require_success "Failed to cd to libwebp directory" + CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure \ + --enable-libwebpmux \ + --enable-libwebpdemux \ + --prefix=$BUILD_PREFIX + make + make install + require_success "Failed to install webp $version" + cd ../.. +} + + +function install_xquartz { + local version=$1 + check_version + curl $XQ_BASE_URL/XQuartz-$version.dmg > xquartz.dmg + require_success "failed to download XQuartz" + + hdiutil attach xquartz.dmg -mountpoint /Volumes/XQuartz + sudo installer -pkg /Volumes/XQuartz/XQuartz.pkg -target / + require_success "Failed to install XQuartz $version" +} diff --git a/run_install.sh b/run_install.sh new file mode 100644 index 000000000..1b8335379 --- /dev/null +++ b/run_install.sh @@ -0,0 +1,16 @@ +source terryfy/travis_tools.sh +source library_installers.sh + +init_vars +clean_builds +# Need pkg-config for freetype library detection +install_pkg_config +install_jpeg +install_tiff +install_libpng +install_lcms2 +install_webp +install_openjpeg +# Fix openjpeg library install id +install_name_tool -id $PWD/build/lib/libopenjp2.6.dylib build/lib/libopenjp2.2.0.0.dylib +install_freetype diff --git a/terryfy b/terryfy new file mode 160000 index 000000000..ba6a7a574 --- /dev/null +++ b/terryfy @@ -0,0 +1 @@ +Subproject commit ba6a7a574c8b4951718bf0c61cd9a0fe300213ae