forked from hasufell/hasufell-repository
		
	
		
			
	
	
		
			97 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			97 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
|  | # Copyright 2018 Julian Ospald <hasufell@posteo.de> | ||
|  | # Distributed under the terms of the GNU General Public License v2 | ||
|  | 
 | ||
|  | require bash-completion alternatives | ||
|  | 
 | ||
|  | SUMMARY="The Glorious Glasgow Haskell Compilation System" | ||
|  | DESCRIPTION="
 | ||
|  | GHC is a state-of-the-art, open source, compiler and interactive environment for the functional | ||
|  | language Haskell."
 | ||
|  | HOMEPAGE="https://www.haskell.org/ghc/" | ||
|  | DOWNLOADS="https://downloads.haskell.org/~ghc/${PV}/ghc-${PV}-x86_64-fedora27-linux.tar.xz" | ||
|  | 
 | ||
|  | LICENCES="BSD-3" | ||
|  | SLOT="${PV}" | ||
|  | PLATFORMS="-* ~amd64" | ||
|  | MYOPTIONS="" | ||
|  | 
 | ||
|  | DEPENDENCIES="
 | ||
|  |     build+run: | ||
|  |         dev-lang/perl:*[>=5.6.1] | ||
|  |         dev-libs/gmp[>=6.1] [[ note = [ depends on libgmp.so.10 ] ]] | ||
|  |         sys-libs/ncurses[>=6.1-r2] [[ note = [ Only these include libtinfo.so symlinks ] ]] | ||
|  |         !dev-lang/GHC [[ | ||
|  |             description = [ different provider ] | ||
|  |             resolution = uninstall-blocked-after | ||
|  |         ]] | ||
|  |         !dev-lang/ghc [[ | ||
|  |             description = [ Both install the same binaries/libs and alternatives ] | ||
|  |             resolution = uninstall-blocked-before | ||
|  |         ]] | ||
|  |     suggestion: | ||
|  |         dev-haskell/cabal-install-bin [[ description = [ the cabal binary for installing packages ] ]] | ||
|  |         dev-lang/llvm[>=2.7] [[ description = [ LLVM can be used for code generation and linking ] ]] | ||
|  | "
 | ||
|  | 
 | ||
|  | BUGS_TO="hasufell@posteo.de" | ||
|  | REMOTE_IDS="freecode:${PN}" | ||
|  | UPSTREAM_RELEASE_NOTES="http://www.haskell.org/${PN}/docs/${PV}/html/users_guide/release-${PV//./-}.html" | ||
|  | 
 | ||
|  | RESTRICT="test" | ||
|  | 
 | ||
|  | WORK=${WORKBASE}/ghc-${PV} | ||
|  | 
 | ||
|  | src_configure() { | ||
|  |     econf \
 | ||
|  |         --target=$(exhost --target) | ||
|  | } | ||
|  | 
 | ||
|  | src_compile() { | ||
|  |     : | ||
|  | } | ||
|  | 
 | ||
|  | src_install() { | ||
|  |     default | ||
|  | 
 | ||
|  |     # bashcomp | ||
|  |     dobashcompletion "${FILES}/ghc-bash-completion" | ||
|  |     alternatives_for ghc ${SLOT} ${SLOT} \
 | ||
|  |         /usr/share/bash-completion/completions/ghc-bin{,-${SLOT}} | ||
|  | 
 | ||
|  |     # some scripts are not versioned, move | ||
|  |     edo mv "${IMAGE}"/usr/$(exhost --target)/bin/{hp2ps,hp2ps-${SLOT}} | ||
|  |     edo mv "${IMAGE}"/usr/$(exhost --target)/bin/{hpc,hpc-${SLOT}} | ||
|  |     edo mv "${IMAGE}"/usr/$(exhost --target)/bin/{hsc2hs,hsc2hs-${SLOT}} | ||
|  | 
 | ||
|  |     # remove unversioned symlinks, we create alternatives later | ||
|  |     local ghc_bin | ||
|  |     for ghc_bin in ghc ghci ghc-pkg haddock runghc runhaskell ; do | ||
|  |         edo rm "${IMAGE}"/usr/$(exhost --target)/bin/${ghc_bin} | ||
|  |     done | ||
|  |     unset ghc_bin | ||
|  | 
 | ||
|  |     # create alternatives for scripts/binaries | ||
|  |     alternatives_for ghc ${SLOT} ${SLOT} \
 | ||
|  |         /usr/$(exhost --target)/bin/ghc{,-${SLOT}} \
 | ||
|  |         /usr/$(exhost --target)/bin/ghci{,-${SLOT}} \
 | ||
|  |         /usr/$(exhost --target)/bin/ghc-pkg{,-${SLOT}} \
 | ||
|  |         /usr/$(exhost --target)/bin/haddock{,-ghc-${SLOT}} \
 | ||
|  |         /usr/$(exhost --target)/bin/hp2ps{,-${SLOT}} \
 | ||
|  |         /usr/$(exhost --target)/bin/hpc{,-${SLOT}} \
 | ||
|  |         /usr/$(exhost --target)/bin/hsc2hs{,-${SLOT}} \
 | ||
|  |         /usr/$(exhost --target)/bin/runghc{,-${SLOT}} \
 | ||
|  |         /usr/$(exhost --target)/bin/runhaskell /usr/$(exhost --target)/bin/runghc-${SLOT} | ||
|  | 
 | ||
|  |     # alternatives for manpages | ||
|  |     local file alternatives=() | ||
|  |     for file in "${IMAGE}"/usr/share/man/*/*; do | ||
|  |         alternatives+=( | ||
|  |             ${file#${IMAGE}} | ||
|  |             ${file#${IMAGE}}-${SLOT} | ||
|  |         ) | ||
|  |     done | ||
|  |     alternatives_for \
 | ||
|  |         ghc ${SLOT} ${SLOT} \
 | ||
|  |         "${alternatives[@]}" | ||
|  | } |