diff options
-rw-r--r-- | haskell/ghc/README | 8 | ||||
-rw-r--r-- | haskell/ghc/ghc.SlackBuild | 69 | ||||
-rw-r--r-- | haskell/ghc/ghc.info | 14 |
3 files changed, 73 insertions, 18 deletions
diff --git a/haskell/ghc/README b/haskell/ghc/README index d4cc3b8fd5..a63dd0582b 100644 --- a/haskell/ghc/README +++ b/haskell/ghc/README @@ -1,3 +1,11 @@ GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell. This is a complete build, including interactive system and profiling libraries and documentation. + +You will need 4.3G of free space in /tmp/SBo to build this package. + +In theory, if you already have ghc 7.4 or newer on your build host, +you can skip the bootstrapping done by this script by passing +BOOTSTRAP=no environment variable to this script. In that case, you +also do not have to download the bindist, just the ghc-*-src.tar.xz. +This is not recommended, though, since it is poorly tested. diff --git a/haskell/ghc/ghc.SlackBuild b/haskell/ghc/ghc.SlackBuild index 65e556619b..d97f2edc46 100644 --- a/haskell/ghc/ghc.SlackBuild +++ b/haskell/ghc/ghc.SlackBuild @@ -2,7 +2,7 @@ # Slackware build script for ghc -# Copyright 2013 Mikko Värri, Finland +# Copyright 2015 Mikko Värri, Finland # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -23,7 +23,7 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=ghc -VERSION=${VERSION:-7.6.2} +VERSION=${VERSION:-7.8.4} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -61,25 +61,68 @@ set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT + +if [ "${BOOTSTRAP:-yes}" == "yes" ] ; then + BOOTSTRAPDIR=$TMP/$PRGNAM-$VERSION-bootstrap + rm -rf $BOOTSTRAPDIR + + cd $TMP + rm -rf $PRGNAM-$VERSION + tar xvf $CWD/$PRGNAM-$VERSION-$TARARCH-unknown-linux-deb7.tar.xz + cd $PRGNAM-$VERSION + chown -R root:root . + find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=$BOOTSTRAPDIR/usr \ + --mandir=$BOOTSTRAPDIR/usr/man \ + --docdir=$BOOTSTRAPDIR/usr/doc/$PRGNAM-$VERSION \ + --libdir=$BOOTSTRAPDIR/usr/lib${LIBDIRSUFFIX} + + # GHC binary distributions are compiled in an environment where + # libncurses is compiled as two separate libraries: libncurses and + # libtinfo. Slackware has all the symbols of libtinfo in libncurses, + # so we can soft link libtinfo to libncurses. But let's not do that + # system wide. The link is needed both during build ('make install') + # and during runtime (/usr/bin/ghc*). + LIBTINFO_DIR=$BOOTSTRAPDIR/usr/lib$LIBDIRSUFFIX + mkdir -p $LIBTINFO_DIR + ln -s /lib$LIBDIRSUFFIX/libncurses.so.5 $LIBTINFO_DIR/libtinfo.so.5 + LD_LIBRARY_PATH=$LIBTINFO_DIR \ + make install + sed -i -r -e "s|^exec |LD_LIBRARY_PATH=$LIBTINFO_DIR exec |" $BOOTSTRAPDIR/usr/bin/ghc{,-pkg}-$VERSION + + BOOTSTRAPGHC=$BOOTSTRAPDIR/usr/bin/ghc +else + BOOTSTRAPGHC=$( which ghc 2>/dev/null ) +fi + cd $TMP rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION-$TARARCH-unknown-linux.tar.bz2 +tar xvf $CWD/$PRGNAM-$VERSION-src.tar.xz cd $PRGNAM-$VERSION chown -R root:root . find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \ - -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ - --prefix=/usr \ - --mandir=/usr/man \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ - --libdir=/usr/lib${LIBDIRSUFFIX} - + --prefix=/usr \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-ghc=$BOOTSTRAPGHC +make make install DESTDIR=$PKG find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ @@ -87,7 +130,7 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr find $PKG/usr/man -type f -exec gzip -9 {} \; -cp -a INSTALL LICENSE README $PKG/usr/doc/$PRGNAM-$VERSION +cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install diff --git a/haskell/ghc/ghc.info b/haskell/ghc/ghc.info index 4f05c19e6c..358a3d1acf 100644 --- a/haskell/ghc/ghc.info +++ b/haskell/ghc/ghc.info @@ -1,10 +1,14 @@ PRGNAM="ghc" -VERSION="7.6.2" +VERSION="7.8.4" HOMEPAGE="http://haskell.org/ghc/" -DOWNLOAD="http://www.haskell.org/ghc/dist/7.6.2/ghc-7.6.2-i386-unknown-linux.tar.bz2" -MD5SUM="287d6c934f325a34fa4fcd96d26eb0e6" -DOWNLOAD_x86_64="http://www.haskell.org/ghc/dist/7.6.2/ghc-7.6.2-x86_64-unknown-linux.tar.bz2" -MD5SUM_x86_64="230270a985c522af939d9c71aa76343f" +DOWNLOAD="http://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz \ + http://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-src.tar.xz" +MD5SUM="33aa682a0c6db4b5c78a24f1c693d59b \ + 91f74cf9d813603cc3145528db4bbead" +DOWNLOAD_x86_64="http://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz \ + http://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-src.tar.xz" +MD5SUM_x86_64="a8e26cbf09c1764c92b971d1192e7bfa \ + 91f74cf9d813603cc3145528db4bbead" REQUIRES="" MAINTAINER="Mikko Värri" EMAIL="vmj@linuxbox.fi" |