diff --git a/build.sh b/build.sh index c118a04..754c8f8 100755 --- a/build.sh +++ b/build.sh @@ -2,11 +2,10 @@ cd `dirname $0` set -e -BREW="$HOME/.local" BREW="`pwd`/brew" PREFIX="`pwd`/dist" OSXVERSION=10.8 -pyversion=3.5.2 +pyversion=3.7.2 export PATH="$BREW/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin" export HOMEBREW_NO_ANALYTICS=1 @@ -27,6 +26,7 @@ function brew_install { brew_install openssl brew_install sqlite brew_install xz +brew_install zlib brew_install readline brew_install libxml2 @@ -35,13 +35,32 @@ brew_install libxslt # Python CPPFLAGS="-I$BREW/opt/openssl/include/openssl" LDFLAGS="" -for pkg in openssl sqlite readline xz; do +for pkg in openssl sqlite readline xz zlib; do CPPFLAGS="$CPPFLAGS -I$BREW/opt/$pkg/include" LDFLAGS="$LDFLAGS -L$BREW/opt/$pkg/lib" done export CPPFLAGS export LDFLAGS +mkdir -p "$PREFIX/lib" +for lib in \ + opt/libxml2/lib/libxml2.2.dylib \ + opt/libxslt/lib/libexslt.0.dylib \ + opt/libxslt/lib/libxslt.1.dylib \ + opt/openssl/lib/libcrypto.1.0.0.dylib \ + opt/openssl/lib/libssl.1.0.0.dylib \ + opt/readline/lib/libreadline.7.dylib \ + opt/readline/lib/libreadline.7.0.dylib \ + opt/sqlite/lib/libsqlite3.0.dylib \ + opt/xz/lib/liblzma.5.dylib \ + opt/zlib/lib/libz.1.dylib \ + opt/zlib/lib/libz.1.2.11.dylib \ +; do + target="$PREFIX/lib/`basename "$lib"`" + rm -f "$target" + cp -a "$BREW/$lib" "$target" +done + url="https://www.python.org/ftp/python/${pyversion}/Python-${pyversion}.tar.xz" name=`basename $url .tar.xz` tar=`basename $url` @@ -49,16 +68,16 @@ tar=`basename $url` test -e $tar || curl -O $url test -e $name || tar xf $tar cd $name -./configure MACOSX_DEPLOYMENT_TARGET=$OSXVERSION --prefix="$PREFIX" +./configure MACOSX_DEPLOYMENT_TARGET=$OSXVERSION --with-openssl=$BREW/opt/openssl --prefix="$PREFIX" make -j8 make altinstall unset CPPFLAGS unset LDFLAGS -ln -sf pip3.5 "$PREFIX/bin/pip" -ln -sf pip3.5 "$PREFIX/bin/pip3" -ln -sf python3.5 "$PREFIX/bin/python3" +ln -sf pip3.7 "$PREFIX/bin/pip" +ln -sf pip3.7 "$PREFIX/bin/pip3" +ln -sf python3.7 "$PREFIX/bin/python3" PATH="$PREFIX/bin:$PATH" hash -r 2>/dev/null @@ -68,21 +87,6 @@ cd "$BASE" curl https://git.0x2620.org/openmedialibrary.git/blob_plain/HEAD:/requirements.txt > requirements.txt $PREFIX/bin/pip3 install -r requirements.txt -for lib in \ - opt/libxml2/lib/libxml2.2.dylib \ - opt/libxslt/lib/libexslt.0.dylib \ - opt/libxslt/lib/libxslt.1.dylib \ - opt/openssl/lib/libcrypto.1.0.0.dylib \ - opt/openssl/lib/libssl.1.0.0.dylib \ - opt/readline/lib/libreadline.6.dylib \ - opt/readline/lib/libreadline.6.3.dylib \ - opt/sqlite/lib/libsqlite3.0.dylib \ - opt/xz/lib/liblzma.5.dylib \ -; do - target="$PREFIX/lib/`basename "$lib"`" - rm -f "$target" - cp -a "$BREW/$lib" "$target" -done chmod -R +rw "$PREFIX/lib" mkdir -p "$PREFIX/etc/openssl/certs" cp $BREW/etc/openssl/cert.pem "$PREFIX/etc/openssl" @@ -95,15 +99,15 @@ rm -rf \ "$PREFIX/bin/openssl" \ "$PREFIX/etc/openssl/man" \ "$PREFIX/bin/c_rehash" \ - "$PREFIX/bin/2to3-3.5" \ - "$PREFIX/bin/easy_install-3.5" \ - "$PREFIX/bin/idle3.5" \ - "$PREFIX/bin/pyvenv-3.5" \ + "$PREFIX/bin/2to3-3.7" \ + "$PREFIX/bin/easy_install-3.7" \ + "$PREFIX/bin/idle3.7" \ + "$PREFIX/bin/pyvenv-3.7" \ "$PREFIX/bin/c_rehash" \ - "$PREFIX/bin/pydoc3.5" + "$PREFIX/bin/pydoc3.7" -for bin in $PREFIX/bin/pip3.5 $PREFIX/bin/python3.5m-config; do - sed "s#$PREFIX/bin/python3.5#/usr/bin/env python3.5#g" "$bin" > "$bin.t" +for bin in $PREFIX/bin/pip3.7 $PREFIX/bin/python3.7m-config; do + sed "s#$PREFIX/bin/python3.7#/usr/bin/env python3.7#g" "$bin" > "$bin.t" mv "$bin.t" "$bin" chmod +x "$bin" done @@ -113,13 +117,14 @@ find "$PREFIX" -name "*.pyc" -exec rm "{}" \; find "$PREFIX" -name "*.a" -exec rm -f "{}" \; for plib in \ - $PREFIX/lib/python3.5/site-packages/lxml/etree.cpython-35m-darwin.so \ - $PREFIX/lib/python3.5/site-packages/lxml/objectify.cpython-35m-darwin.so \ - $PREFIX/lib/python3.5/lib-dynload/_hashlib.cpython-35m-darwin.so \ - $PREFIX/lib/python3.5/lib-dynload/_lzma.cpython-35m-darwin.so \ - $PREFIX/lib/python3.5/lib-dynload/_sqlite3.cpython-35m-darwin.so \ - $PREFIX/lib/python3.5/lib-dynload/_ssl.cpython-35m-darwin.so \ - $PREFIX/lib/python3.5/lib-dynload/readline.cpython-35m-darwin.so \ + $PREFIX/lib/python3.7/site-packages/lxml/etree.cpython-37m-darwin.so \ + $PREFIX/lib/python3.7/site-packages/lxml/objectify.cpython-37m-darwin.so \ + $PREFIX/lib/python3.7/lib-dynload/_hashlib.cpython-37m-darwin.so \ + $PREFIX/lib/python3.7/lib-dynload/_lzma.cpython-37m-darwin.so \ + $PREFIX/lib/python3.7/lib-dynload/_sqlite3.cpython-37m-darwin.so \ + $PREFIX/lib/python3.7/lib-dynload/_ssl.cpython-37m-darwin.so \ + $PREFIX/lib/python3.7/lib-dynload/readline.cpython-37m-darwin.so \ + $PREFIX/lib/python3.7/lib-dynload/zlib.cpython-37m-darwin.so \ ; do if [ -e "$plib" ]; then for lib in \ @@ -130,10 +135,11 @@ for plib in \ $BREW/opt/libxslt/lib/libxslt.1.dylib \ $BREW/opt/openssl/lib/libcrypto.1.0.0.dylib \ $BREW/opt/openssl/lib/libssl.1.0.0.dylib \ - $BREW/opt/readline/lib/libreadline.6.dylib \ - $BREW/opt/readline/lib/libreadline.6.3.dylib \ + $BREW/opt/readline/lib/libreadline.7.dylib \ + $BREW/opt/readline/lib/libreadline.7.0.dylib \ $BREW/opt/sqlite/lib/libsqlite3.0.dylib \ $BREW/opt/xz/lib/liblzma.5.dylib \ + $BREW/opt/zlib/lib/libz.1.dylib \ $PREFIX/lib/libcrypto.1.0.0.dylib \ $PREFIX/lib/libexslt.0.dylib \ $PREFIX/lib/liblzma.5.dylib \