From c28cac4e6696b10b8ce793f31790deb65d528632 Mon Sep 17 00:00:00 2001 From: hallgren Date: Mon, 20 Jun 2016 14:11:45 +0000 Subject: [PATCH] bin/build-binary-dist.sh: fixes for the Java and Python bindings. * Just skip the Java binding if there were errors compiling it. * Install the Python binding in the expected place on Mac OS X when creating an OS X installer package. (i.e. under /Library/Python/2.7/site-packages) Also updated the 3.8 download page and release notes to reflect the above. --- bin/build-binary-dist.sh | 17 ++++++++++++++--- download/index-next.t2t | 15 ++++++++------- download/release-next.t2t | 6 +++++- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/bin/build-binary-dist.sh b/bin/build-binary-dist.sh index 30acadffa..e44aaef0c 100644 --- a/bin/build-binary-dist.sh +++ b/bin/build-binary-dist.sh @@ -36,6 +36,13 @@ if which >/dev/null python; then pushd src/runtime/python EXTRA_INCLUDE_DIRS="$extrainclude" EXTRA_LIB_DIRS="$extralib" python setup.py build python setup.py install --prefix="$destdir$prefix" + if [ "$fmt" == pkg ] ; then + # A hack for Python on OS X to find the PGF modules + pyver=$(ls "$destdir$prefix/lib" | sed -n 's/^python//p') + pydest="$destdir/Library/Python/$pyver/site-packages" + mkdir -p "$pydest" + ln "$destdir$prefix/lib/python$pyver/site-packages"/pgf* "$pydest" + fi popd else echo "Python is not installed, so the Python binding will not be included" @@ -45,8 +52,12 @@ fi if which >/dev/null javac && which >/dev/null jar ; then pushd src/runtime/java rm -f libjpgf.la # In case it contains the wrong INSTALL_PATH - make CFLAGS="-I$extrainclude -L$extralib" INSTALL_PATH="$prefix/lib" - make INSTALL_PATH="$destdir$prefix/lib" install + if make CFLAGS="-I$extrainclude -L$extralib" INSTALL_PATH="$prefix/lib" + then + make INSTALL_PATH="$destdir$prefix/lib" install + else + echo "*** Skipping the Java binding because of errors" + fi popd else echo "Java SDK is not installed, so the Java binding will not be included" @@ -68,7 +79,7 @@ case $fmt in ;; pkg) pkg=$name.pkg - pkgbuild --identifier org.grammaticalframework.gf.pkg --version "$ver" --root "$destdir$prefix" --install-location "$prefix" dist/$pkg + pkgbuild --identifier org.grammaticalframework.gf.pkg --version "$ver" --root "$destdir" --install-location / dist/$pkg echo "Created $pkg" esac diff --git a/download/index-next.t2t b/download/index-next.t2t index d4e67874b..9c2af84c1 100644 --- a/download/index-next.t2t +++ b/download/index-next.t2t @@ -15,11 +15,11 @@ What's new? See the [Release notes release-3.8.html]. == Binary packages == || Platform | Download | Features | How to install -| Mac OS X | [gf-3.8.pkg gf-3.8.pkg] | //GF+S+C// | Double-click on the package icon (*) -| Mac OS X | [gf-3.8-bin-intel-mac.tar.gz gf-3.8-bin-intel-mac.tar.gz] | //GF+S+C+B// | ``sudo tar -C /usr/local -zxf gf-3.8-bin-intel-mac.tar.gz`` -%| Fedora (32-bit) | [Fedora RPMs /~hallgren/tmp/Fedora/] | //GF+S+C+B// | ``sudo rpm -i ...`` -| Ubuntu (32-bit) | [gf_3.8-1_i386.deb gf_3.8-1_i386.deb] | //GF+S+C+B// | ``sudo dpkg -i gf_3.8-1_i386.deb`` -| Ubuntu (64-bit) | [gf_3.8-1_amd64.deb gf_3.8-1_amd64.deb] | //GF+S+C+B// | ``sudo dpkg -i gf_3.8-1_amd64.deb`` +| Mac OS X | [gf-3.8.pkg gf-3.8.pkg] | //GF+S+C+P// | Double-click on the package icon (*) +| Mac OS X | [gf-3.8-bin-intel-mac.tar.gz gf-3.8-bin-intel-mac.tar.gz] | //GF+S+C+P// | ``sudo tar -C /usr/local -zxf gf-3.8-bin-intel-mac.tar.gz`` +%| Fedora (32-bit) | [Fedora RPMs /~hallgren/tmp/Fedora/] | //GF+S+C+J+P// | ``sudo rpm -i ...`` +| Ubuntu (32-bit) | [gf_3.8-1_i386.deb gf_3.8-1_i386.deb] | //GF+S+C+J+P// | ``sudo dpkg -i gf_3.8-1_i386.deb`` +| Ubuntu (64-bit) | [gf_3.8-1_amd64.deb gf_3.8-1_amd64.deb] | //GF+S+C+J+P// | ``sudo dpkg -i gf_3.8-1_amd64.deb`` | Windows | [gf-3.8-bin-windows.zip gf-3.8-bin-windows.zip] | //GF+S// | ``unzip gf-3.8-bin-windows.zip`` %| MINGW | [gf-3.8-bin-i686-MINGW32_NT-6.1.tar.gz gf-3.8-bin-i686-MINGW32_NT-6.1.tar.gz] | //GF+S+C// | ``tar -C / gf-3.8-bin-i686-MINGW32_NT-6.1.tar.gz`` %| ... | ... | ... | ... @@ -27,7 +27,7 @@ What's new? See the [Release notes release-3.8.html]. Features: GF = GF shell and grammar compiler and the Resource Grammar Library, S = ``gf -server`` mode, C = C run-time system, -B = Python and Java bindings to the C run-time system +P/J = Python/Java binding to the C run-time system %More binary packages might be added later. @@ -44,7 +44,8 @@ variables, see Inari's notes on %(which is started with ``C:\MinGW\msys\1.0\msys.bat``). %It should work out of the box without any additional settings. -The ``.deb`` packages work on Ubuntu 12.04, 14.04 and 16.04. +The ``.deb`` packages should work on Ubuntu 12.04, 14.04 and 16.04 and similar +Linux distributions. The packages for Mac OS X should work on at least 10.9, 10.10 and 10.11 (Mavericks, Yosemite and El Capitan). diff --git a/download/release-next.t2t b/download/release-next.t2t index 005c32f45..a86d37f61 100644 --- a/download/release-next.t2t +++ b/download/release-next.t2t @@ -12,7 +12,7 @@ See the [download page http://www.grammaticalframework.org/download/index.html]. ==What's new== -Over 380 changes have been pushed to the source repository since +Over 395 changes have been pushed to the source repository since [the release of GF 3.7.1 release-3.7.1.html] in October 2015. @@ -35,6 +35,10 @@ Over 380 changes have been pushed to the source repository since The problem was introduced before the release of GF 3.7.1 and prevented commands like ``cc "last"`` and ``cc "last"++"year"`` from working, but they should work again now. +- Python binding: with the OS X installer package (``gf-3.8.pkg``) + the Python binding should now work directly out of the package. + (The installer puts the modules under ``/Library/Python/2.7/site-packages``, + where the Python interpreter can find them.) - Various improvements and bug fixes in the C run-time system and its bindings to other languages.