Date: Monday, August 14, 2017 @ 17:43:52 Author: felixonmars Revision: 250404
archrelease: copy trunk to community-staging-i686 Added: ghc/repos/community-staging-i686/ ghc/repos/community-staging-i686/PKGBUILD (from rev 250403, ghc/trunk/PKGBUILD) ghc/repos/community-staging-i686/ghc-rebuild-doc-index.hook (from rev 250403, ghc/trunk/ghc-rebuild-doc-index.hook) ghc/repos/community-staging-i686/ghc-register.hook (from rev 250403, ghc/trunk/ghc-register.hook) ghc/repos/community-staging-i686/ghc-unregister.hook (from rev 250403, ghc/trunk/ghc-unregister.hook) ghc/repos/community-staging-i686/ghc.install (from rev 250403, ghc/trunk/ghc.install) ghc/repos/community-staging-i686/print-provides-replaces.sh (from rev 250403, ghc/trunk/print-provides-replaces.sh) ----------------------------+ PKGBUILD | 173 +++++++++++++++++++++++++++++++++++++++++++ ghc-rebuild-doc-index.hook | 14 +++ ghc-register.hook | 12 ++ ghc-unregister.hook | 12 ++ ghc.install | 10 ++ print-provides-replaces.sh | 45 +++++++++++ 6 files changed, 266 insertions(+) Copied: ghc/repos/community-staging-i686/PKGBUILD (from rev 250403, ghc/trunk/PKGBUILD) =================================================================== --- community-staging-i686/PKGBUILD (rev 0) +++ community-staging-i686/PKGBUILD 2017-08-14 17:43:52 UTC (rev 250404) @@ -0,0 +1,173 @@ +# $Id$ +# Maintainer: Felix Yan <felixonm...@archlinux.org> +# Contributor: Vesa Kaihlavirta <v...@archlinux.org> +# Contributor: Thomas Dziedzic <gos...@gmail.com> + +# 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. + +shopt -s extglob + +pkgbase=ghc +pkgname=(ghc-libs ghc ghc-static) +pkgver=8.2.1 +pkgrel=1 +pkgdesc='The Glasgow Haskell Compiler' +arch=('i686' 'x86_64') +url='http://www.haskell.org/ghc/' +license=('custom') +makedepends=('ghc-static' 'perl' 'libxslt' 'docbook-xsl' 'python-sphinx' 'haskell-hscolour' + 'texlive-bin' 'texlive-latexextra' 'ttf-dejavu') +source=("https://downloads.haskell.org/~ghc/$pkgver/$pkgbase-${pkgver}-src.tar.xz" + ghc-rebuild-doc-index.hook ghc-register.hook ghc-unregister.hook) +noextract=("$pkgbase-${pkgver}-src.tar.xz") +md5sums=('8942b6fb393984aeb8304d09bc326851' + '4966d798a2868b289022aea8b655bf17' + '700bcd96afd059d668e50b51c19650d5' + '2355771881c91cb46e6249a81352aea2') + +prepare() { + # Need to extract this tarball with a UTF-8 locale instead of a chroot's "C" + # locale; otherwise we get: + # bsdtar: Pathname can't be converted from UTF-8 to current locale. + LANG=en_US.UTF-8 bsdtar xf $pkgbase-${pkgver}-src.tar.xz + + cd ghc-$pkgver + + cp mk/build.mk{.sample,} + sed -i '1iBuildFlavour = perf' mk/build.mk +} + +build() { + cd ghc-$pkgver + + ./configure \ + --prefix=/usr \ + --docdir=/usr/share/doc/ghc \ + --with-system-libffi \ + --with-ffi-includes=$(pkg-config --variable=includedir libffi) + make +} + +package_ghc-static() { + pkgdesc='The Glasgow Haskell Compiler - Static Libraries and Documentation' + depends=('ghc') + + cd ghc-$pkgver + + make DESTDIR="$pkgdir" install + + mv "$pkgdir"/usr/lib/ghc-$pkgver/package.conf.d "$srcdir"/static-package.conf.d + find "$pkgdir"/usr/lib ! \( -name "*.a" -o -name "*.p_hi" \) -type f -delete + find "$pkgdir"/usr/lib -type d -empty -delete + mv "$srcdir"/static-package.conf.d "$pkgdir"/usr/lib/ghc-$pkgver/ + rm -r "$pkgdir"/usr/bin "$pkgdir"/usr/share/man + + install -Dm644 "$srcdir"/ghc-rebuild-doc-index.hook "$pkgdir"/usr/share/libalpm/hooks/ghc-rebuild-doc-index.hook +} + +package_ghc() { + pkgdesc='The Glasgow Haskell Compiler' + provides=("haskell-ghc=$pkgver") + replaces=("haskell-ghc") + depends=('ghc-libs') + + cd ghc-$pkgver + make DESTDIR="$pkgdir" install + + # Remove static libs + find "$pkgdir"/usr/lib \( -name "*.a" -o -name "*.p_hi" \) -delete + + # ghc-pkg is in ghc-libs + rm "$pkgdir"/usr/lib/ghc-$pkgver/bin/ghc-pkg* + rm "$pkgdir"/usr/bin/ghc-pkg* + (cd "$pkgdir"/usr/lib/ghc-$pkgver; rm -r !(bin|ghc-$pkgver)) + + # docs moved to ghc-static + rm -r "$pkgdir"/usr/share/doc + + install -Dm644 utils/completion/ghc.bash \ + "$pkgdir/usr/share/bash-completion/completions/ghc" +} + +package_ghc-libs() { + pkgdesc='The Glasgow Haskell Compiler - Dynamic Libraries' + install='ghc.install' + depends=('gcc' 'gmp' 'libffi' 'perl') + provides=('haskell-array=0.5.2.0' + 'haskell-base=4.10.0.0' + 'haskell-binary=0.8.5.1' + 'haskell-bytestring=0.10.8.2' + 'haskell-containers=0.5.10.2' + 'haskell-deepseq=1.4.3.0' + 'haskell-directory=1.3.0.2' + 'haskell-filepath=1.4.1.2' + 'haskell-ghc-boot=8.2.1' + 'haskell-ghc-boot-th=8.2.1' + 'haskell-ghc-compact=0.1.0.0' + 'haskell-ghci=8.2.1' + 'haskell-ghc-prim=0.5.1.0' + 'haskell-haskeline=0.7.4.0' + 'haskell-hoopl=3.10.2.2' + 'haskell-hpc=0.6.0.3' + 'haskell-integer-gmp=1.0.1.0' + 'haskell-pretty=1.1.3.3' + 'haskell-process=1.6.1.0' + 'haskell-template-haskell=2.12.0.0' + 'haskell-terminfo=0.4.1.0' + 'haskell-time=1.8.0.2' + 'haskell-transformers=0.5.2.0' + 'haskell-unix=2.7.2.2' + 'haskell-xhtml=3000.2.2' + 'haskell-cabal=2.0.0.2') + replaces=('haskell-array' + 'haskell-base' + 'haskell-binary' + 'haskell-bytestring' + 'haskell-containers' + 'haskell-deepseq' + 'haskell-directory' + 'haskell-filepath' + 'haskell-ghc-boot' + 'haskell-ghc-boot-th' + 'haskell-ghc-compact' + 'haskell-ghci' + 'haskell-ghc-prim' + 'haskell-haskeline' + 'haskell-hoopl' + 'haskell-hpc' + 'haskell-integer-gmp' + 'haskell-pretty' + 'haskell-process' + 'haskell-template-haskell' + 'haskell-terminfo' + 'haskell-time' + 'haskell-transformers' + 'haskell-unix' + 'haskell-xhtml' + 'haskell-cabal') + + cd ghc-$pkgver + + make DESTDIR="$pkgdir" install + + # Remove static libs + find "$pkgdir"/usr/lib \( -name "*.a" -o -name "*.p_hi" \) -delete + + # ghc library and other exes are in the ghc package + rm -r "$pkgdir"/usr/lib/ghc-$pkgver/ghc-$pkgver + (cd "$pkgdir"/usr/lib/ghc-$pkgver/bin; rm !(ghc-pkg*)) + (cd "$pkgdir"/usr/bin; rm !(ghc-pkg*)) + + # docs moved to ghc-static + rm -r "$pkgdir"/usr/share/{man,doc} + + install -Dm644 "$srcdir"/ghc-register.hook "$pkgdir"/usr/share/libalpm/hooks/ghc-register.hook + install -Dm644 "$srcdir"/ghc-unregister.hook "$pkgdir"/usr/share/libalpm/hooks/ghc-unregister.hook + + install -dm755 "$pkgdir"/usr/share/haskell/{register,unregister} + + install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE +} Copied: ghc/repos/community-staging-i686/ghc-rebuild-doc-index.hook (from rev 250403, ghc/trunk/ghc-rebuild-doc-index.hook) =================================================================== --- community-staging-i686/ghc-rebuild-doc-index.hook (rev 0) +++ community-staging-i686/ghc-rebuild-doc-index.hook 2017-08-14 17:43:52 UTC (rev 250404) @@ -0,0 +1,14 @@ +[Trigger] +Type = File +Operation = Install +Operation = Upgrade +Operation = Remove +Target = usr/share/doc/ghc/html/libraries/* +Target = !usr/share/doc/ghc/html/libraries/index.html + +[Action] +Description = Rebuilding Haskell doc index... +When = PostTransaction +Exec = /bin/bash -c "cd /usr/share/doc/ghc/html/libraries && ./gen_contents_index" +Depends = ghc-static +Depends = bash Copied: ghc/repos/community-staging-i686/ghc-register.hook (from rev 250403, ghc/trunk/ghc-register.hook) =================================================================== --- community-staging-i686/ghc-register.hook (rev 0) +++ community-staging-i686/ghc-register.hook 2017-08-14 17:43:52 UTC (rev 250404) @@ -0,0 +1,12 @@ +[Trigger] +Type = File +Operation = Install +Operation = Upgrade +Target = usr/share/haskell/register/*.sh + +[Action] +Description = Registering Haskell modules... +When = PostTransaction +Exec = /bin/sh -c 'while read -r f; do /bin/sh "/$f" 2>&1 >/dev/null ; done' +Depends = ghc-libs +NeedsTargets Copied: ghc/repos/community-staging-i686/ghc-unregister.hook (from rev 250403, ghc/trunk/ghc-unregister.hook) =================================================================== --- community-staging-i686/ghc-unregister.hook (rev 0) +++ community-staging-i686/ghc-unregister.hook 2017-08-14 17:43:52 UTC (rev 250404) @@ -0,0 +1,12 @@ +[Trigger] +Type = File +Operation = Upgrade +Operation = Remove +Target = usr/share/haskell/unregister/*.sh + +[Action] +Description = Unregistering Haskell modules... +When = PreTransaction +Exec = /bin/sh -c 'while read -r f; do /bin/sh "/$f" 2>&1 >/dev/null ; done' +Depends = ghc-libs +NeedsTargets Copied: ghc/repos/community-staging-i686/ghc.install (from rev 250403, ghc/trunk/ghc.install) =================================================================== --- community-staging-i686/ghc.install (rev 0) +++ community-staging-i686/ghc.install 2017-08-14 17:43:52 UTC (rev 250404) @@ -0,0 +1,10 @@ +pre_upgrade() { + echo '==> Unregistering cabalized packages...' + [[ -d /usr/share/haskell ]] && find /usr/share/haskell -maxdepth 2 -name 'unregister.sh' -exec {} \; + echo '==> Done.' +} + +post_upgrade() { + echo '==> All cabalized packages need to be reinstalled now.' + echo '==> See /usr/share/haskell/ for a tentative list of affected packages.' +} Copied: ghc/repos/community-staging-i686/print-provides-replaces.sh (from rev 250403, ghc/trunk/print-provides-replaces.sh) =================================================================== --- community-staging-i686/print-provides-replaces.sh (rev 0) +++ community-staging-i686/print-provides-replaces.sh 2017-08-14 17:43:52 UTC (rev 250404) @@ -0,0 +1,45 @@ +#!/bin/bash + +. PKGBUILD + +if [[ ! -d src/ghc-${pkgver}/libraries ]]; then + echo "error: no directory src/ghc-${pkgver}/libraries: You must extract the source tarball under src/" + exit 1 +fi + +declare -A exclude +# no Win32 cause we're not building on windows +exclude['Win32']=1 +# no integer-simple because we use integer-gmp +exclude['integer-simple']=1 +# extract excluded libraries from ghc.mk +for exclude_pkg in $(sed 's/PKGS_THAT_ARE_INTREE_ONLY := //p' -n src/ghc-${pkgver}/ghc.mk); do + exclude[${exclude_pkg}]=1 +done + +cd src/ghc-${pkgver}/libraries + +# $1 is the name of the variable +# $2 is the string for the test, either '=' or '<' +print_var() { + printf "$1=(" + for path in $(ls ./*/*.cabal); do + dirname=$(echo $path | awk -F '/' '{ print $2 }') + cabalfile=$(echo $path | awk -F '/' '{ print $3 }') + cabalname=$(basename $cabalfile .cabal) + [[ ${exclude[${dirname}]} ]] && continue + version=$(awk 'tolower($0) ~ /^version:/ {print $2 }' $path) + printf "'haskell-$cabalname" + [[ -n "$2" ]] && printf "$2$version" + printf "'\n " + done + # also add cabal + version=$(awk 'tolower($0) ~ /^version:/ { print $2 }' Cabal/Cabal/Cabal.cabal) + printf "'haskell-cabal" + [[ -n "$2" ]] && printf "$2$version" + printf "'\n " + echo -e '\b)' +} + +print_var 'provides' '=' +print_var 'replaces'