summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD150
1 files changed, 56 insertions, 94 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 069cd6c394df..c769ede4dfd3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,102 +1,64 @@
# Maintainer: Rudy Matela <rudy@matela.com.br>
#
-# Based on upstream ArchLinux version for ghc-7.8, by:
-# Thomas Dziedzic <gostrc@gmail.com>
-# Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Rudy Matela <rudy@matela.com.br>
#
-# Special note for devs looking to upgrade this package:
-# ghc places a unique hash for each library when it is built.
-# Libraries depend on versions specified by those hashes.
-# This implies that all libraries need to be rebuilt when ghc is rebuilt.
#
+# This package can coexist with the latest version of GHC provided in the
+# standard Arch Linux repositories. This package is useful for:
#
-# Please consider using the newer GHCs.
+# * testing for forwards/backwards compatibility this specific GHC branch;
+# * compiling programs that only work with this specific GHC branch;
+# * as a dependency to packages that can only be compiled with this branch.
#
-# If GHC 7.6 is really important to you, consider compiling from source, as it
-# will not depend on the legacy version of gmp library. The aur package ghc7.6
-# provides a source-compiled version of GHC. GHC provided in this package can
-# be used to compile GHC 7.6 from source. Newer versions of ghc, such as 7.8
-# and 7.10, are not able to compile GHC 7.6.
+# If you would like to compile GHC yourself,
+# you can use this package to bootstrap compilation.
+#
+#
+# https://ghc.gitlab.haskell.org/ghc/doc/users_guide/intro.html#ghc-version-numbering-policy
+# https://www.haskell.org/ghc/download.html
+# https://www.haskell.org/ghc/download_ghc_7_6_3.html
+#
+#
+# After installing runghc-7.6 and ghci-7.6 work fine out of the box:
+#
+# $ cat hello.hs
+# main = putStrLn "hello"
+#
+# $ runghc-7.6 hello.hs
+# hello
+#
+# $ ghci-7.6
+# > putStrLn "hello"
+# hello
+#
+# However compiling binaries requires either `-optl -no-pie` or `-dynamic`:
+#
+# $ ghc-7.6 -optl -no-pie hello.hs
+#
+# $ ghc-7.6 -dynamic hello.hs
pkgname=ghc7.6-bin
pkgver=7.6.3
-pkgrel=5
-pkgdesc='Binary version of legacy GHC. Compatible with Haskell Platform 2013.2'
-arch=('i686' 'x86_64')
+pkgrel=7
+_ver_branch=7.6
+pkgdesc="Binary GHC ${_ver_branch} installed on /usr/bin/ghc-${_ver_branch}"
+arch=('x86_64')
url='http://www.haskell.org/ghc/'
-license=('custom')
-# libffi might be needed in the future: http://hackage.haskell.org/trac/ghc/ticket/4496
-depends=('perl' 'gmp4' 'gcc' 'ncurses5-compat-libs') # 'libffi')
-makedepends=('perl' 'libxslt' 'docbook-xsl' 'ncurses5-compat-libs')
-checkdepends=('python2')
+license=('BSD-3-Clause')
+depends=('gcc' 'gmp4' 'libffi5' 'perl' 'ncurses5-compat-libs')
+makedepends=('ghc' 'libxslt' 'docbook-xsl')
install='ghc.install'
-# keep this otherwise a lot of tests will show as unexpected failures... need to investigate why using -jn for n > 1 does this...
-#options=('!makeflags')
-options=('staticlibs')
-# missing rtl?
-provides=('haskell7.6-array=0.4.0.1'
- 'haskell7.6-base=4.6.0.1'
- 'haskell7.6-binary=0.5.1.1'
- 'haskell7.6-bin-package-db=0.0.0.0'
- 'haskell7.6-bytestring=0.10.0.2'
- 'haskell7.6-containers=0.5.0.0'
- 'haskell7.6-deepseq=1.3.0.1'
- 'haskell7.6-directory=1.2.0.1'
- 'haskell7.6-filepath=1.3.0.1'
- 'haskell7.6-ghc-prim=0.3.0.0'
- 'haskell7.6-haskell2010=1.1.1.0'
- 'haskell7.6-haskell98=2.0.0.2'
- 'haskell7.6-hoopl=3.9.0.0'
- 'haskell7.6-hpc=0.6.0.0'
- 'haskell7.6-integer-gmp=0.5.0.0'
- 'haskell7.6-old-locale=1.0.0.5'
- 'haskell7.6-old-time=1.1.0.1'
- 'haskell7.6-pretty=1.1.1.0'
- 'haskell7.6-process=1.1.0.2'
- 'haskell7.6-template-haskell=2.8.0.0'
- 'haskell7.6-time=1.4.0.1'
- 'haskell7.6-unix=2.6.0.1'
- 'haskell7.6-cabal=1.16.0'
- 'ghc7.6'
- )
-replaces=('haskell7.6-array<0.4.0.1'
- 'haskell7.6-base<4.6.0.1'
- 'haskell7.6-binary<0.5.1.1'
- 'haskell7.6-bin-package-db<0.0.0.0'
- 'haskell7.6-bytestring<0.10.0.2'
- 'haskell7.6-containers<0.5.0.0'
- 'haskell7.6-deepseq<1.3.0.1'
- 'haskell7.6-directory<1.2.0.1'
- 'haskell7.6-filepath<1.3.0.1'
- 'haskell7.6-ghc-prim<0.3.0.0'
- 'haskell7.6-haskell2010<1.1.1.0'
- 'haskell7.6-haskell98<2.0.0.2'
- 'haskell7.6-hoopl<3.9.0.0'
- 'haskell7.6-hpc<0.6.0.0'
- 'haskell7.6-integer-gmp<0.5.0.0'
- 'haskell7.6-old-locale<1.0.0.5'
- 'haskell7.6-old-time<1.1.0.1'
- 'haskell7.6-pretty<1.1.1.0'
- 'haskell7.6-process<1.1.0.2'
- 'haskell7.6-template-haskell<2.8.0.0'
- 'haskell7.6-time<1.4.0.1'
- 'haskell7.6-unix<2.6.0.1'
- 'haskell7.6-cabal<1.16.0'
- )
-conflicts=('ghc7.6')
-source_x86_64=("http://www.haskell.org/ghc/dist/${pkgver}/ghc-${pkgver}-x86_64-unknown-linux.tar.bz2")
-source_i686=("http://www.haskell.org/ghc/dist/${pkgver}/ghc-${pkgver}-i386-unknown-linux.tar.bz2")
-md5sums_x86_64=('5c142b86355cfd390cd36c292e416db5')
-md5sums_i386=('37019b712ec6e5fb0732c27fb43667ee')
+provides=("ghc${_ver_branch}")
+conflicts=("ghc${_ver_branch}")
+source=("https://www.haskell.org/ghc/dist/${pkgver}/ghc-${pkgver}-${CARCH}-unknown-linux.tar.bz2")
+sha256sums=('398dd5fa6ed479c075ef9f638ef4fc2cc0fbf994e1b59b54d77c26a8e1e73ca0')
build() {
cd ghc-${pkgver}
- sed -i 's,"$bindir/ghc","$bindir/ghc-7.6",' utils/runghc/runghc.wrapper
-
./configure \
--prefix=/usr \
- --docdir=/usr/share/doc/ghc-7.6
+ --docdir=/usr/share/doc/ghc-${_ver_branch}
}
package() {
@@ -104,18 +66,18 @@ package() {
make DESTDIR=${pkgdir} install
- mv ${pkgdir}/usr/bin/ghc ${pkgdir}/usr/bin/ghc-7.6
- mv ${pkgdir}/usr/bin/ghci ${pkgdir}/usr/bin/ghci-7.6
- mv ${pkgdir}/usr/bin/ghc-pkg ${pkgdir}/usr/bin/ghc-pkg-7.6
- mv ${pkgdir}/usr/bin/haddock ${pkgdir}/usr/bin/haddock-ghc-7.6
- mv ${pkgdir}/usr/bin/hp2ps ${pkgdir}/usr/bin/hp2ps-ghc-7.6
- mv ${pkgdir}/usr/bin/hpc ${pkgdir}/usr/bin/hpc-ghc-7.6
- mv ${pkgdir}/usr/bin/hsc2hs ${pkgdir}/usr/bin/hsc2hs-ghc-7.6
- mv ${pkgdir}/usr/bin/runghc ${pkgdir}/usr/bin/runghc-7.6
- rm ${pkgdir}/usr/bin/runhaskell # use runghc-7.6 instead
+ mv ${pkgdir}/usr/bin/ghc ${pkgdir}/usr/bin/ghc-${_ver_branch}
+ mv ${pkgdir}/usr/bin/ghci ${pkgdir}/usr/bin/ghci-${_ver_branch}
+ mv ${pkgdir}/usr/bin/ghc-pkg ${pkgdir}/usr/bin/ghc-pkg-${_ver_branch}
+ mv ${pkgdir}/usr/bin/haddock ${pkgdir}/usr/bin/haddock-ghc-${_ver_branch}
+ mv ${pkgdir}/usr/bin/hp2ps ${pkgdir}/usr/bin/hp2ps-ghc-${_ver_branch}
+ mv ${pkgdir}/usr/bin/hpc ${pkgdir}/usr/bin/hpc-ghc-${_ver_branch}
+ mv ${pkgdir}/usr/bin/hsc2hs ${pkgdir}/usr/bin/hsc2hs-ghc-${_ver_branch}
+ mv ${pkgdir}/usr/bin/runghc ${pkgdir}/usr/bin/runghc-${_ver_branch}
+ rm ${pkgdir}/usr/bin/runhaskell # use runghc-${_ver_branch} instead
- mv ${pkgdir}/usr/share/man/man1/ghc.1 ${pkgdir}/usr/share/man/man1/ghc-7.6.1
+ mv ${pkgdir}/usr/share/man/man1/ghc.1 ${pkgdir}/usr/share/man/man1/ghc-${_ver_branch}
- install -d ${pkgdir}/usr/share/licenses/ghc-7.6
- install -m644 LICENSE ${pkgdir}/usr/share/licenses/ghc-7.6
+ install -d ${pkgdir}/usr/share/licenses/ghc-${_ver_branch}
+ install -m644 LICENSE ${pkgdir}/usr/share/licenses/ghc-${_ver_branch}
}