From a0f3658e90f6d8bf30aa47e63d3c217c8ab17e3e Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 7 May 2019 07:28:00 -0400 Subject: [PATCH] import ghc-8.2.2-68.3.el8 --- .ghc.metadata | 2 + .gitignore | 2 + SOURCES/D4159.patch | 70 + SOURCES/ghc-Cabal-install-PATH-warning.patch | 20 + ...bian-no-missing-haddock-file-warning.patch | 22 + .../ghc-Debian-reproducible-tmp-names.patch | 43 + ...hc-Debian-x32-use-native-x86_64-insn.patch | 27 + SOURCES/ghc-armv7-VFPv3D16--NEON.patch | 11 + ...c-configure-fix-sphinx-version-check.patch | 11 + SOURCES/ghc-doc-index | 38 + SOURCES/ghc-doc-index.cron | 9 + .../ghc-gen_contents_index-haddock-path.patch | 10 + SOURCES/llvm-D25865-cmakeshlib.patch | 83 + SOURCES/llvm-install_dirs.patch | 392 ++++ SPECS/ghc.spec | 1758 +++++++++++++++++ 15 files changed, 2498 insertions(+) create mode 100644 .ghc.metadata create mode 100644 .gitignore create mode 100644 SOURCES/D4159.patch create mode 100644 SOURCES/ghc-Cabal-install-PATH-warning.patch create mode 100644 SOURCES/ghc-Debian-no-missing-haddock-file-warning.patch create mode 100644 SOURCES/ghc-Debian-reproducible-tmp-names.patch create mode 100644 SOURCES/ghc-Debian-x32-use-native-x86_64-insn.patch create mode 100644 SOURCES/ghc-armv7-VFPv3D16--NEON.patch create mode 100644 SOURCES/ghc-configure-fix-sphinx-version-check.patch create mode 100755 SOURCES/ghc-doc-index create mode 100755 SOURCES/ghc-doc-index.cron create mode 100644 SOURCES/ghc-gen_contents_index-haddock-path.patch create mode 100644 SOURCES/llvm-D25865-cmakeshlib.patch create mode 100644 SOURCES/llvm-install_dirs.patch create mode 100644 SPECS/ghc.spec diff --git a/.ghc.metadata b/.ghc.metadata new file mode 100644 index 0000000..9fa9422 --- /dev/null +++ b/.ghc.metadata @@ -0,0 +1,2 @@ +a33222646c440826af744ad70447446fb82b74cf SOURCES/ghc-8.2.2-src.tar.xz +ce801cf456b8dacd565ce8df8288b4d90e7317ff SOURCES/llvm-3.9.1.src.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b3318b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/ghc-8.2.2-src.tar.xz +SOURCES/llvm-3.9.1.src.tar.xz diff --git a/SOURCES/D4159.patch b/SOURCES/D4159.patch new file mode 100644 index 0000000..17db2f3 --- /dev/null +++ b/SOURCES/D4159.patch @@ -0,0 +1,70 @@ +diff --git a/utils/ghc-pkg/Main.hs b/utils/ghc-pkg/Main.hs +--- a/utils/ghc-pkg/Main.hs ++++ b/utils/ghc-pkg/Main.hs +@@ -1208,7 +1208,18 @@ + pkgsCabalFormat = packages db + + pkgsGhcCacheFormat :: [PackageCacheFormat] +- pkgsGhcCacheFormat = map convertPackageInfoToCacheFormat pkgsCabalFormat ++ pkgsGhcCacheFormat ++ = map (recomputeValidAbiDeps pkgsCabalFormat) -- Note [Recompute abi-depends] ++ $ map convertPackageInfoToCacheFormat ++ pkgsCabalFormat ++ ++ hasAnyAbiDepends :: InstalledPackageInfo -> Bool ++ hasAnyAbiDepends x = length (abiDepends x) > 0 ++ ++-- -- warn when we find any (possibly-)bogus abi-depends fields; ++-- -- Note [Recompute abi-depends] ++-- when (any hasAnyAbiDepends pkgsCabalFormat) $ ++-- infoLn "ignoring (possibly broken) abi-depends field for packages" + + when (verbosity > Normal) $ + infoLn ("writing cache " ++ filename) +@@ -1231,6 +1242,45 @@ + ModuleName + OpenModule + ++{- Note [Recompute abi-depends] ++~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ ++Like most fields, `ghc-pkg` relies on who-ever is performing package ++registration to fill in fields; this includes the `abi-depends` field present ++for the package. ++ ++However, this was likely a mistake, and is not very robust; in certain cases, ++versions of Cabal may use bogus abi-depends fields for a package when doing ++builds. Why? Because package database information is aggressively cached; it is ++possible to work Cabal into a situation where it uses a cached version of ++`abi-depends`, rather than the one in the actual database after it has been ++recomputed. ++ ++However, there is an easy fix: ghc-pkg /already/ knows the `abi-depends` of a ++package, because they are the ABIs of the packages pointed at by the `depends` ++field. So it can simply look up the abi from the dependencies in the original ++database, and ignore whatever the system registering gave it. ++ ++So, instead, we do two things here: ++ ++ - We throw away the information for a registered package's `abi-depends` field. ++ ++ - We recompute it: we simply look up the unit ID of the package in the original ++ database, and use *its* abi-depends. ++ ++See Trac #14381, and Cabal issue #4728. ++ ++-} ++ ++recomputeValidAbiDeps :: [InstalledPackageInfo] -> PackageCacheFormat -> PackageCacheFormat ++recomputeValidAbiDeps db pkg = pkg { GhcPkg.abiDepends = catMaybes (newAbiDeps) } ++ where ++ newAbiDeps = flip map (GhcPkg.abiDepends pkg) $ \(k, _) -> ++ case filter (\d -> installedUnitId d == k) db of ++ [] -> Nothing ++ [x] -> Just (k, unAbiHash (abiHash x)) ++ _ -> Nothing -- ??? ++ + convertPackageInfoToCacheFormat :: InstalledPackageInfo -> PackageCacheFormat + convertPackageInfoToCacheFormat pkg = + GhcPkg.InstalledPackageInfo { + diff --git a/SOURCES/ghc-Cabal-install-PATH-warning.patch b/SOURCES/ghc-Cabal-install-PATH-warning.patch new file mode 100644 index 0000000..5081fa1 --- /dev/null +++ b/SOURCES/ghc-Cabal-install-PATH-warning.patch @@ -0,0 +1,20 @@ +--- ghc-8.2.2/libraries/Cabal/Cabal/Distribution/Simple/Install.hs~ 2017-05-05 16:51:43.000000000 +0200 ++++ ghc-8.2.2/libraries/Cabal/Cabal/Distribution/Simple/Install.hs 2018-01-23 23:05:47.047081056 +0100 +@@ -36,7 +36,7 @@ + import Distribution.Simple.Utils + ( createDirectoryIfMissingVerbose + , installDirectoryContents, installOrdinaryFile, isInSearchPath +- , die', info, noticeNoWrap, warn, matchDirFileGlob ) ++ , die', info, noticeNoWrap, warn, matchDirFileGlob, debug ) + import Distribution.Simple.Compiler + ( CompilerFlavor(..), compilerFlavor ) + import Distribution.Simple.Setup +@@ -215,7 +215,7 @@ + ++ " in " ++ binPref) + inPath <- isInSearchPath binPref + when (not inPath) $ +- warn verbosity ("The directory " ++ binPref ++ debug verbosity ("The directory " ++ binPref + ++ " is not in the system search path.") + case compilerFlavor (compiler lbi) of + GHC -> GHC.installExe verbosity lbi binPref buildPref progFix pkg_descr exe diff --git a/SOURCES/ghc-Debian-no-missing-haddock-file-warning.patch b/SOURCES/ghc-Debian-no-missing-haddock-file-warning.patch new file mode 100644 index 0000000..eac921e --- /dev/null +++ b/SOURCES/ghc-Debian-no-missing-haddock-file-warning.patch @@ -0,0 +1,22 @@ +Description: Do not emit a warning if the .haddock file is missing + As it is quite common on Debian installations to install the -dev package + without the -doc package. +Author: Joachim Breitner + +Index: ghc-8.0.2/utils/ghc-pkg/Main.hs +=================================================================== +--- ghc-8.0.2.orig/utils/ghc-pkg/Main.hs ++++ ghc-8.0.2/utils/ghc-pkg/Main.hs +@@ -1588,8 +1588,10 @@ + mapM_ (checkDir True "dynamic-library-dirs") (libraryDynDirs pkg) + mapM_ (checkDir True "include-dirs") (includeDirs pkg) + mapM_ (checkDir True "framework-dirs") (frameworkDirs pkg) +- mapM_ (checkFile True "haddock-interfaces") (haddockInterfaces pkg) +- mapM_ (checkDirURL True "haddock-html") (haddockHTMLs pkg) ++ -- In Debian, it is quite normal that the package is installed without the ++ -- documentation. Do not print a warning there. ++ -- mapM_ (checkFile True "haddock-interfaces") (haddockInterfaces pkg) ++ -- mapM_ (checkDirURL True "haddock-html") (haddockHTMLs pkg) + checkDuplicateModules pkg + checkExposedModules db_stack pkg + checkOtherModules pkg diff --git a/SOURCES/ghc-Debian-reproducible-tmp-names.patch b/SOURCES/ghc-Debian-reproducible-tmp-names.patch new file mode 100644 index 0000000..16ffc32 --- /dev/null +++ b/SOURCES/ghc-Debian-reproducible-tmp-names.patch @@ -0,0 +1,43 @@ +This is an attempt to make GHC build reproducible. The name of .c files may end +up in the resulting binary (in the debug section), but not the directory. + +Instead of using the process id, create a hash from the command line arguments, +and assume that is going to be unique. + +Index: ghc-8.0.2/compiler/main/SysTools.hs +=================================================================== +--- ghc-8.0.2.orig/compiler/main/SysTools.hs ++++ ghc-8.0.2/compiler/main/SysTools.hs +@@ -65,6 +65,7 @@ + import Util + import DynFlags + import Exception ++import Fingerprint + + import LlvmCodeGen.Base (llvmVersionStr, supportedLlvmVersion) + +@@ -1145,8 +1146,8 @@ + mapping <- readIORef dir_ref + case Map.lookup tmp_dir mapping of + Nothing -> do +- pid <- getProcessID +- let prefix = tmp_dir "ghc" ++ show pid ++ "_" ++ pid <- getStableProcessID ++ let prefix = tmp_dir "ghc" ++ pid ++ "_" + mask_ $ mkTempDir prefix + Just dir -> return dir + where +@@ -1562,6 +1563,13 @@ + getProcessID = System.Posix.Internals.c_getpid >>= return . fromIntegral + #endif + ++-- Debian-specific hack to get reproducible output, by not using the "random" ++-- pid, but rather something determinisic ++getStableProcessID :: IO String ++getStableProcessID = do ++ args <- getArgs ++ return $ take 4 $ show $ fingerprintString $ unwords args ++ + -- Divvy up text stream into lines, taking platform dependent + -- line termination into account. + linesPlatform :: String -> [String] diff --git a/SOURCES/ghc-Debian-x32-use-native-x86_64-insn.patch b/SOURCES/ghc-Debian-x32-use-native-x86_64-insn.patch new file mode 100644 index 0000000..6105b5b --- /dev/null +++ b/SOURCES/ghc-Debian-x32-use-native-x86_64-insn.patch @@ -0,0 +1,27 @@ +Description: Use native x86_64 instructions on x32 + This patch enables a few native 64-bit integer instructions + on x32 which are available on this architecture despite using + 32-bit pointers. These instructions are present on x86_64 but + not on x86 and ghc checks the size of (void *) to determine + that. This method fails on x32 since despite using 32-bit + pointers and hence sizeof(void *) == 4, it still uses the + full x86_64 instruction set and software-emulated variants + of the aforementioned 64-bit integer instructions are + therefore not present in the toolchain which will make ghc + fail to build on x32. + See: https://ghc.haskell.org/trac/ghc/ticket/11571 + . + +Index: ghc-8.0.2/rts/RtsSymbols.c +=================================================================== +--- ghc-8.0.2.orig/rts/RtsSymbols.c ++++ ghc-8.0.2/rts/RtsSymbols.c +@@ -857,7 +857,7 @@ + + + // 64-bit support functions in libgcc.a +-#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32) ++#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32) && !(defined(__x86_64__) && defined(__ILP32__)) + #define RTS_LIBGCC_SYMBOLS \ + SymI_NeedsProto(__divdi3) \ + SymI_NeedsProto(__udivdi3) \ diff --git a/SOURCES/ghc-armv7-VFPv3D16--NEON.patch b/SOURCES/ghc-armv7-VFPv3D16--NEON.patch new file mode 100644 index 0000000..e51a353 --- /dev/null +++ b/SOURCES/ghc-armv7-VFPv3D16--NEON.patch @@ -0,0 +1,11 @@ +--- ghc-7.8.3/aclocal.m4~ 2014-07-10 13:27:16.000000000 +0900 ++++ ghc-7.8.3/aclocal.m4 2014-11-05 12:19:08.530044128 +0900 +@@ -408,7 +408,7 @@ + )], + [changequote(, )dnl + ARM_ISA=ARMv7 +- ARM_ISA_EXT="[VFPv3,NEON]" ++ ARM_ISA_EXT="[VFPv3D16]" + changequote([, ])dnl + ]) + ]) diff --git a/SOURCES/ghc-configure-fix-sphinx-version-check.patch b/SOURCES/ghc-configure-fix-sphinx-version-check.patch new file mode 100644 index 0000000..c19da05 --- /dev/null +++ b/SOURCES/ghc-configure-fix-sphinx-version-check.patch @@ -0,0 +1,11 @@ +--- ghc-8.2.2/configure.ac~ 2017-11-21 05:22:42.000000000 +0900 ++++ ghc-8.2.2/configure.ac 2018-05-28 12:37:35.296728423 +0900 +@@ -745,7 +745,7 @@ + AC_CACHE_CHECK([for version of sphinx-build], fp_cv_sphinx_version, + changequote(, )dnl + [if test -n "$SPHINXBUILD"; then +- fp_cv_sphinx_version=`"$SPHINXBUILD" --version 2>&1 | sed 's/Sphinx\( (sphinx-build)\)\? v\?\([0-9]\.[0-9]\.[0-9]\)/\2/' | head -n1`; ++ fp_cv_sphinx_version=`"$SPHINXBUILD" --version 2>&1 | sed 's/.* v\?\([0-9]\.[0-9]\.[0-9]\)/\1/' | head -n1`; + fi; + changequote([, ])dnl + ]) diff --git a/SOURCES/ghc-doc-index b/SOURCES/ghc-doc-index new file mode 100755 index 0000000..a0223fa --- /dev/null +++ b/SOURCES/ghc-doc-index @@ -0,0 +1,38 @@ +#!/bin/sh + +LOCKFILE=/var/lock/ghc-doc-index.lock + +# the lockfile is not meant to be perfect, it's just in case +# two cron scripts get run close to each other to keep +# them from stepping on each other's toes. +if [ -f $LOCKFILE ]; then + echo "Locked with $LOCKFILE" + exit 0 +fi + +if [ "$(id -u)" != "0" ]; then + echo Need to be root! + exit 1 +fi + +trap "{ rm -f $LOCKFILE ; exit 255; }" EXIT +touch $LOCKFILE + +PKGDIRCACHE=/var/lib/ghc/pkg-dir.cache +LISTING="env LANG=C ls -dl" + +# only re-index ghc docs when there are changes +cd /usr/share/doc/ghc/html/libraries +if [ -r "$PKGDIRCACHE" ]; then + $LISTING */ > $PKGDIRCACHE.new + DIR_DIFF=$(diff $PKGDIRCACHE $PKGDIRCACHE.new) +else + $LISTING */ > $PKGDIRCACHE +fi +if [ -x "gen_contents_index" -a ! -r "$PKGDIRCACHE.new" -o -n "$DIR_DIFF" ]; then + ./gen_contents_index +fi + +if [ -f $PKGDIRCACHE.new ]; then + mv -f $PKGDIRCACHE.new $PKGDIRCACHE +fi diff --git a/SOURCES/ghc-doc-index.cron b/SOURCES/ghc-doc-index.cron new file mode 100755 index 0000000..4efe2ff --- /dev/null +++ b/SOURCES/ghc-doc-index.cron @@ -0,0 +1,9 @@ +#! /bin/bash +# updates the library documentation index after updates + +# This can be disabled by uninstalling ghc-doc-index +# or adding ghc-doc-index to "./jobs-deny". + +/usr/bin/ghc-doc-index + +exit 0 diff --git a/SOURCES/ghc-gen_contents_index-haddock-path.patch b/SOURCES/ghc-gen_contents_index-haddock-path.patch new file mode 100644 index 0000000..e6819ee --- /dev/null +++ b/SOURCES/ghc-gen_contents_index-haddock-path.patch @@ -0,0 +1,10 @@ +--- ghc-7.6.3/libraries/gen_contents_index~ 2013-04-19 06:22:46.000000000 +0900 ++++ ghc-7.6.3/libraries/gen_contents_index 2013-04-22 12:07:48.922152864 +0900 +@@ -60,6 +60,6 @@ + done + else +- HADDOCK=../../../../../bin/haddock ++ HADDOCK=/usr/bin/haddock + # We don't want the GHC API to swamp the index + HADDOCK_FILES=`ls -1 */*.haddock | grep -v '/ghc\.haddock' | sort` + HADDOCK_ARGS="-p prologue.txt" diff --git a/SOURCES/llvm-D25865-cmakeshlib.patch b/SOURCES/llvm-D25865-cmakeshlib.patch new file mode 100644 index 0000000..1f98266 --- /dev/null +++ b/SOURCES/llvm-D25865-cmakeshlib.patch @@ -0,0 +1,83 @@ +From 417001588d232151050db2d32df443e2d073ebbf Mon Sep 17 00:00:00 2001 +From: Valentin Churavy +Date: Fri, 21 Oct 2016 17:25:04 +0900 +Subject: [PATCH] Fix llvm-shlib cmake build + +Summary: +This fixes a few things that used to work with a Makefile build, but were broken in cmake. + +1. Treat MINGW like a Linux system. +2. The shlib should never contain other shared libraries. + +Subscribers: beanz, mgorny + +Differential Revision: https://reviews.llvm.org/D25865 +--- + tools/llvm-shlib/CMakeLists.txt | 42 ++++++++++++++++++++--------------------- + 1 file changed, 20 insertions(+), 22 deletions(-) + +diff --git a/tools/llvm-shlib/CMakeLists.txt b/tools/llvm-shlib/CMakeLists.txt +index 3fe672d..edadb82 100644 +--- a/tools/llvm-shlib/CMakeLists.txt ++++ b/tools/llvm-shlib/CMakeLists.txt +@@ -8,29 +8,27 @@ set(SOURCES + + llvm_map_components_to_libnames(LIB_NAMES ${LLVM_DYLIB_COMPONENTS}) + +-if(LLVM_LINK_LLVM_DYLIB) +- if(LLVM_DYLIB_EXPORTED_SYMBOL_FILE) +- message(WARNING "Using LLVM_LINK_LLVM_DYLIB with LLVM_DYLIB_EXPORTED_SYMBOL_FILE may not work. Use at your own risk.") +- endif() +- +- # libLLVM.so should not have any dependencies on any other LLVM +- # shared libraries. When using the "all" pseudo-component, +- # LLVM_AVAILABLE_LIBS is added to the dependencies, which may +- # contain shared libraries (e.g. libLTO). +- # +- # Also exclude libLLVMTableGen for the following reasons: +- # - it is only used by internal *-tblgen utilities; +- # - it pollutes the global options space. +- foreach(lib ${LIB_NAMES}) +- get_target_property(t ${lib} TYPE) +- if("${lib}" STREQUAL "LLVMTableGen") +- elseif("x${t}" STREQUAL "xSTATIC_LIBRARY") +- list(APPEND FILTERED_LIB_NAMES ${lib}) +- endif() +- endforeach() +- set(LIB_NAMES ${FILTERED_LIB_NAMES}) ++if(LLVM_LINK_LLVM_DYLIB AND LLVM_DYLIB_EXPORTED_SYMBOL_FILE) ++ message(WARNING "Using LLVM_LINK_LLVM_DYLIB with LLVM_DYLIB_EXPORTED_SYMBOL_FILE may not work. Use at your own risk.") + endif() + ++# libLLVM.so should not have any dependencies on any other LLVM ++# shared libraries. When using the "all" pseudo-component, ++# LLVM_AVAILABLE_LIBS is added to the dependencies, which may ++# contain shared libraries (e.g. libLTO). ++# ++# Also exclude libLLVMTableGen for the following reasons: ++# - it is only used by internal *-tblgen utilities; ++# - it pollutes the global options space. ++foreach(lib ${LIB_NAMES}) ++ get_target_property(t ${lib} TYPE) ++ if("${lib}" STREQUAL "LLVMTableGen") ++ elseif("x${t}" STREQUAL "xSTATIC_LIBRARY") ++ list(APPEND FILTERED_LIB_NAMES ${lib}) ++ endif() ++endforeach() ++set(LIB_NAMES ${FILTERED_LIB_NAMES}) ++ + if(LLVM_DYLIB_EXPORTED_SYMBOL_FILE) + set(LLVM_EXPORTED_SYMBOL_FILE ${LLVM_DYLIB_EXPORTED_SYMBOL_FILE}) + add_custom_target(libLLVMExports DEPENDS ${LLVM_EXPORTED_SYMBOL_FILE}) +@@ -39,7 +37,7 @@ endif() + add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES}) + + list(REMOVE_DUPLICATES LIB_NAMES) +-if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") # FIXME: It should be "GNU ld for elf" ++if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" OR MINGW) # FIXME: It should be "GNU ld for elf" + # GNU ld doesn't resolve symbols in the version script. + set(LIB_NAMES -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive) + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") +-- +2.10.1 + diff --git a/SOURCES/llvm-install_dirs.patch b/SOURCES/llvm-install_dirs.patch new file mode 100644 index 0000000..3ebe853 --- /dev/null +++ b/SOURCES/llvm-install_dirs.patch @@ -0,0 +1,392 @@ +diff -up llvm-3.9.1.src/bindings/ocaml/backends/CMakeLists.txt.instdirs llvm-3.9.1.src/bindings/ocaml/backends/CMakeLists.txt +--- llvm-3.9.1.src/bindings/ocaml/backends/CMakeLists.txt.instdirs 2014-12-29 20:24:07.000000000 -0700 ++++ llvm-3.9.1.src/bindings/ocaml/backends/CMakeLists.txt 2017-02-13 13:36:43.999154756 -0700 +@@ -23,5 +23,5 @@ foreach(TARGET ${LLVM_TARGETS_TO_BUILD}) + "${LLVM_LIBRARY_DIR}/ocaml/META.llvm_${TARGET}") + + install(FILES "${LLVM_LIBRARY_DIR}/ocaml/META.llvm_${TARGET}" +- DESTINATION lib/ocaml) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml) + endforeach() +diff -up llvm-3.9.1.src/bindings/ocaml/llvm/CMakeLists.txt.instdirs llvm-3.9.1.src/bindings/ocaml/llvm/CMakeLists.txt +--- llvm-3.9.1.src/bindings/ocaml/llvm/CMakeLists.txt.instdirs 2014-12-29 20:24:07.000000000 -0700 ++++ llvm-3.9.1.src/bindings/ocaml/llvm/CMakeLists.txt 2017-02-13 13:36:43.999154756 -0700 +@@ -8,4 +8,4 @@ configure_file( + "${LLVM_LIBRARY_DIR}/ocaml/META.llvm") + + install(FILES "${LLVM_LIBRARY_DIR}/ocaml/META.llvm" +- DESTINATION lib/ocaml) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml) +diff -up llvm-3.9.1.src/CMakeLists.txt.instdirs llvm-3.9.1.src/CMakeLists.txt +--- llvm-3.9.1.src/CMakeLists.txt.instdirs 2016-09-13 07:44:50.000000000 -0600 ++++ llvm-3.9.1.src/CMakeLists.txt 2017-02-13 13:36:44.003154733 -0700 +@@ -194,13 +194,15 @@ if (CMAKE_BUILD_TYPE AND + endif() + + set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" ) +- +-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')") +-mark_as_advanced(LLVM_TOOLS_INSTALL_DIR) ++set(CMAKE_INSTALL_BINDIR bin CACHE STRING "Path for binary subdirectory relative to prefix (defaults to 'bin')" ) ++set(CMAKE_INSTALL_LIBDIR lib${LLVM_LIBDIR_SUFFIX} CACHE STRING "Path for library subdirectory (defaults to 'lib${LLVM_LIBDIR_SUFFIX}'" ) ++set(CMAKE_INSTALL_INCLUDEDIR include CACHE STRING "Path for include subdirectory relative to prefix (defaults to 'include'" ) ++set(CMAKE_INSTALL_DOCDIR share/doc/${project} CACHE STRING "Path for documentation subdirectory relative to prefix (defaults to 'share/doc/${project}')" ) ++set(CMAKE_INSTALL_MANDIR share/man CACHE STRING "Path for manpages subdirectory relative to prefix (defaults to 'share/man')" ) + + # They are used as destination of target generators. +-set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) +-set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) ++set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_BINDIR}) ++set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_LIBDIR}) + if(WIN32 OR CYGWIN) + # DLL platform -- put DLLs into bin. + set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) +@@ -613,8 +615,8 @@ configure_file( + + # They are not referenced. See set_output_directory(). + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin ) +-set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) +-set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) ++set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} ) ++set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} ) + + set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) + if (APPLE) +@@ -622,7 +624,7 @@ if (APPLE) + set(CMAKE_INSTALL_RPATH "@executable_path/../lib") + else(UNIX) + if(NOT DEFINED CMAKE_INSTALL_RPATH) +- set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}") ++ set(CMAKE_INSTALL_RPATH "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}") + if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,origin") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,origin") +@@ -799,7 +801,7 @@ add_subdirectory(cmake/modules) + + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + install(DIRECTORY include/llvm include/llvm-c +- DESTINATION include ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT llvm-headers + FILES_MATCHING + PATTERN "*.def" +@@ -811,7 +813,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + ) + + install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm +- DESTINATION include ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT llvm-headers + FILES_MATCHING + PATTERN "*.def" +diff -up llvm-3.9.1.src/cmake/modules/AddLLVM.cmake.instdirs llvm-3.9.1.src/cmake/modules/AddLLVM.cmake +--- llvm-3.9.1.src/cmake/modules/AddLLVM.cmake.instdirs 2016-07-09 20:43:47.000000000 -0600 ++++ llvm-3.9.1.src/cmake/modules/AddLLVM.cmake 2017-02-13 13:36:44.012154680 -0700 +@@ -546,7 +558,7 @@ macro(add_llvm_library name) + set_target_properties( ${name} PROPERTIES EXCLUDE_FROM_ALL ON) + elseif(NOT _is_gtest) + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LTO") +- set(install_dir lib${LLVM_LIBDIR_SUFFIX}) ++ set(install_dir ${CMAKE_INSTALL_LIBDIR}) + if(ARG_SHARED OR BUILD_SHARED_LIBS) + if(WIN32 OR CYGWIN OR MINGW) + set(install_type RUNTIME) +@@ -590,12 +602,12 @@ macro(add_llvm_loadable_module name) + # DLL platform + set(dlldir "bin") + else() +- set(dlldir "lib${LLVM_LIBDIR_SUFFIX}") ++ set(dlldir "${CMAKE_INSTALL_LIBDIR}") + endif() + install(TARGETS ${name} + EXPORT LLVMExports + LIBRARY DESTINATION ${dlldir} +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) + endif() +@@ -770,7 +782,7 @@ macro(add_llvm_tool name) + if( LLVM_BUILD_TOOLS ) + install(TARGETS ${name} + EXPORT LLVMExports +- RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT ${name}) + + if (NOT CMAKE_CONFIGURATION_TYPES) +@@ -795,7 +807,7 @@ macro(add_llvm_example name) + endif() + add_llvm_executable(${name} ${ARGN}) + if( LLVM_BUILD_EXAMPLES ) +- install(TARGETS ${name} RUNTIME DESTINATION examples) ++ install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples) + endif() + set_target_properties(${name} PROPERTIES FOLDER "Examples") + endmacro(add_llvm_example name) +@@ -811,7 +823,7 @@ macro(add_llvm_utility name) + set_target_properties(${name} PROPERTIES FOLDER "Utils") + if( LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS ) + install (TARGETS ${name} +- RUNTIME DESTINATION bin ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT ${name}) + if (NOT CMAKE_CONFIGURATION_TYPES) + add_custom_target(install-${name} +@@ -1173,7 +1185,7 @@ function(llvm_install_library_symlink na + set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX}) + set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX}) + +- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) ++ set(output_dir ${CMAKE_INSTALL_LIBDIR}) + if(WIN32 AND "${type}" STREQUAL "SHARED") + set(output_dir bin) + endif() +@@ -1210,7 +1222,7 @@ function(llvm_install_symlink name dest) + set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX}) + + install(SCRIPT ${INSTALL_SYMLINK} +- CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})" ++ CODE "install_symlink(${full_name} ${full_dest} ${CMAKE_INSTALL_BINDIR})" + COMPONENT ${component}) + + if (NOT CMAKE_CONFIGURATION_TYPES AND NOT ARG_ALWAYS_GENERATE) +diff -up llvm-3.9.1.src/cmake/modules/AddOCaml.cmake.instdirs llvm-3.9.1.src/cmake/modules/AddOCaml.cmake +--- llvm-3.9.1.src/cmake/modules/AddOCaml.cmake.instdirs 2016-06-21 17:10:37.000000000 -0600 ++++ llvm-3.9.1.src/cmake/modules/AddOCaml.cmake 2017-02-13 13:36:44.001154744 -0700 +@@ -189,12 +189,12 @@ function(add_ocaml_library name) + endforeach() + + install(FILES ${install_files} +- DESTINATION lib/ocaml) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml) + install(FILES ${install_shlibs} + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE + GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE +- DESTINATION lib/ocaml) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml) + + foreach( install_file ${install_files} ${install_shlibs} ) + get_filename_component(filename "${install_file}" NAME) +diff -up llvm-3.9.1.src/cmake/modules/AddSphinxTarget.cmake.instdirs llvm-3.9.1.src/cmake/modules/AddSphinxTarget.cmake +--- llvm-3.9.1.src/cmake/modules/AddSphinxTarget.cmake.instdirs 2014-08-14 05:57:16.000000000 -0600 ++++ llvm-3.9.1.src/cmake/modules/AddSphinxTarget.cmake 2017-02-13 13:36:44.001154744 -0700 +@@ -50,11 +50,11 @@ function (add_sphinx_target builder proj + if (builder STREQUAL man) + # FIXME: We might not ship all the tools that these man pages describe + install(DIRECTORY "${SPHINX_BUILD_DIR}/" # Slash indicates contents of +- DESTINATION share/man/man1) ++ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) + + elseif (builder STREQUAL html) + install(DIRECTORY "${SPHINX_BUILD_DIR}" +- DESTINATION "share/doc/${project}") ++ DESTINATION ${CMAKE_INSTALL_DOCDIR}) + else() + message(WARNING Installation of ${builder} not supported) + endif() +diff -up llvm-3.9.1.src/cmake/modules/CMakeLists.txt.instdirs llvm-3.9.1.src/cmake/modules/CMakeLists.txt +--- llvm-3.9.1.src/cmake/modules/CMakeLists.txt.instdirs 2017-02-13 13:36:43.995154779 -0700 ++++ llvm-3.9.1.src/cmake/modules/CMakeLists.txt 2017-02-13 13:40:40.508732673 -0700 +@@ -1,4 +1,4 @@ +-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) ++set(LLVM_INSTALL_PACKAGE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/llvm CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')") + set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") + + get_property(LLVM_EXPORTS GLOBAL PROPERTY LLVM_EXPORTS) +@@ -49,20 +49,12 @@ file(COPY . + + # Generate LLVMConfig.cmake for the install tree. + set(LLVM_CONFIG_CODE " +-# Compute the installation prefix from this LLVMConfig.cmake file location. +-get_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)") +-# Construct the proper number of get_filename_component(... PATH) +-# calls to compute the installation prefix. +-string(REGEX REPLACE "/" ";" _count "${LLVM_INSTALL_PACKAGE_DIR}") +-foreach(p ${_count}) +- set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE} +-get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)") +-endforeach(p) +-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include") +-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}") ++set(LLVM_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")") ++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") ++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") + set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}") +-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin") ++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") + set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake") + configure_file( + LLVMConfig.cmake.in +diff -up llvm-3.9.1.src/cmake/modules/LLVMConfig.cmake.in.instdirs llvm-3.9.1.src/cmake/modules/LLVMConfig.cmake.in +--- llvm-3.9.1.src/cmake/modules/LLVMConfig.cmake.in.instdirs 2016-07-01 08:22:52.000000000 -0600 ++++ llvm-3.9.1.src/cmake/modules/LLVMConfig.cmake.in 2017-02-13 13:36:44.002154738 -0700 +@@ -59,7 +59,7 @@ set(LLVM_DEFINITIONS "@LLVM_DEFINITIONS@ + set(LLVM_CMAKE_DIR "@LLVM_CONFIG_CMAKE_DIR@") + set(LLVM_BINARY_DIR "@LLVM_CONFIG_BINARY_DIR@") + set(LLVM_TOOLS_BINARY_DIR "@LLVM_CONFIG_TOOLS_BINARY_DIR@") +-set(LLVM_TOOLS_INSTALL_DIR "@LLVM_TOOLS_INSTALL_DIR@") ++set(LLVM_TOOLS_INSTALL_DIR "@CMAKE_INSTALL_BINDIR@") + + if(NOT TARGET LLVMSupport) + set(LLVM_EXPORTED_TARGETS "@LLVM_EXPORTS@") +diff -up llvm-3.9.1.src/cmake/modules/TableGen.cmake.instdirs llvm-3.9.1.src/cmake/modules/TableGen.cmake +--- llvm-3.9.1.src/cmake/modules/TableGen.cmake.instdirs 2016-06-08 15:19:26.000000000 -0600 ++++ llvm-3.9.1.src/cmake/modules/TableGen.cmake 2017-02-13 13:47:59.832154520 -0700 +@@ -6,7 +6,6 @@ function(tablegen project ofn) + # Validate calling context. + foreach(v + ${project}_TABLEGEN_EXE +- LLVM_MAIN_SRC_DIR + LLVM_MAIN_INCLUDE_DIR + ) + if(NOT ${v}) +@@ -23,10 +22,14 @@ function(tablegen project ofn) + set(LLVM_TARGET_DEFINITIONS_ABSOLUTE + ${CMAKE_CURRENT_SOURCE_DIR}/${LLVM_TARGET_DEFINITIONS}) + endif() ++ if (LLVM_MAIN_SRC_DIR) ++ set(TABLEGEN_INCLUDES -I ${LLVM_MAIN_SRC_DIR}/lib/Target) ++ endif() ++ set(TABLEGEN_INCLUDES ${TABLEGEN_INCLUDES} -I ${LLVM_MAIN_INCLUDE_DIR}) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp + # Generate tablegen output in a temporary file. + COMMAND ${${project}_TABLEGEN_EXE} ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR} +- -I ${LLVM_MAIN_SRC_DIR}/lib/Target -I ${LLVM_MAIN_INCLUDE_DIR} ++ ${TABLEGEN_INCLUDES} + ${LLVM_TARGET_DEFINITIONS_ABSOLUTE} + -o ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp + # The file in LLVM_TARGET_DEFINITIONS may be not in the current +@@ -141,7 +144,7 @@ macro(add_tablegen target project) + if (${project} STREQUAL LLVM AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + install(TARGETS ${target} + EXPORT LLVMExports +- RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR}) ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() + set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${target}) + endmacro() +diff -up llvm-3.9.1.src/docs/CMakeLists.txt.instdirs llvm-3.9.1.src/docs/CMakeLists.txt +--- llvm-3.9.1.src/docs/CMakeLists.txt.instdirs 2015-08-17 17:24:17.000000000 -0600 ++++ llvm-3.9.1.src/docs/CMakeLists.txt 2017-02-13 13:36:44.004154727 -0700 +@@ -94,7 +94,7 @@ if (LLVM_ENABLE_DOXYGEN) + + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html +- DESTINATION docs/html) ++ DESTINATION ${CMAKE_INSTALL_DOCDIR}/html) + endif() + endif() + endif() +@@ -155,6 +155,6 @@ if( NOT uses_ocaml LESS 0 ) + + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html +- DESTINATION docs/ocaml/html) ++ DESTINATION ${CMAKE_INSTALL_DOCDIR}/ocaml/html) + endif() + endif() +diff -up llvm-3.9.1.src/include/llvm/CMakeLists.txt.instdirs llvm-3.9.1.src/include/llvm/CMakeLists.txt +--- llvm-3.9.1.src/include/llvm/CMakeLists.txt.instdirs 2014-08-13 18:51:47.000000000 -0600 ++++ llvm-3.9.1.src/include/llvm/CMakeLists.txt 2017-02-13 13:36:44.004154727 -0700 +@@ -3,5 +3,5 @@ add_subdirectory(IR) + # If we're doing an out-of-tree build, copy a module map for generated + # header files into the build area. + if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") +- configure_file(module.modulemap.build module.modulemap COPYONLY) ++ configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY) + endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") +diff -up llvm-3.9.1.src/tools/llvm-config/BuildVariables.inc.in.instdirs llvm-3.9.1.src/tools/llvm-config/BuildVariables.inc.in +--- llvm-3.9.1.src/tools/llvm-config/BuildVariables.inc.in.instdirs 2016-03-07 17:02:50.000000000 -0700 ++++ llvm-3.9.1.src/tools/llvm-config/BuildVariables.inc.in 2017-02-13 13:36:44.005154721 -0700 +@@ -23,7 +23,9 @@ + #define LLVM_LDFLAGS "@LLVM_LDFLAGS@" + #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" + #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" +-#define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" ++#define LLVM_BINARY_DIR "@CMAKE_INSTALL_BINDIR@" ++#define LLVM_LIBRARY_DIR "@CMAKE_INSTALL_LIBDIR@" ++#define LLVM_INCLUDE_DIR "@CMAKE_INSTALL_INCLUDEDIR@" + #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" + #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@" + #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@" +diff -up llvm-3.9.1.src/tools/llvm-config/llvm-config.cpp.instdirs llvm-3.9.1.src/tools/llvm-config/llvm-config.cpp +--- llvm-3.9.1.src/tools/llvm-config/llvm-config.cpp.instdirs 2016-03-14 15:39:58.000000000 -0600 ++++ llvm-3.9.1.src/tools/llvm-config/llvm-config.cpp 2017-02-13 13:36:44.006154715 -0700 +@@ -290,7 +290,7 @@ int main(int argc, char **argv) { + DevelopmentTreeLayout = CMakeStyle; + ActiveObjRoot = LLVM_OBJ_ROOT; + } else if (sys::fs::equivalent(CurrentExecPrefix, +- Twine(LLVM_OBJ_ROOT) + "/bin")) { ++ Twine(LLVM_OBJ_ROOT) + "/" + LLVM_BINARY_DIR)) { + IsInDevelopmentTree = true; + DevelopmentTreeLayout = CMakeBuildModeStyle; + ActiveObjRoot = LLVM_OBJ_ROOT; +@@ -304,32 +304,32 @@ int main(int argc, char **argv) { + std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir, ActiveLibDir; + std::string ActiveIncludeOption; + if (IsInDevelopmentTree) { +- ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include"; ++ ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/" + LLVM_INCLUDE_DIR; + ActivePrefix = CurrentExecPrefix; + + // CMake organizes the products differently than a normal prefix style + // layout. + switch (DevelopmentTreeLayout) { + case CMakeStyle: +- ActiveBinDir = ActiveObjRoot + "/bin"; +- ActiveLibDir = ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX; ++ ActiveBinDir = ActiveObjRoot + "/" + LLVM_BINARY_DIR; ++ ActiveLibDir = ActiveObjRoot + LLVM_LIBRARY_DIR; + break; + case CMakeBuildModeStyle: + ActivePrefix = ActiveObjRoot; +- ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode; ++ ActiveBinDir = ActiveObjRoot + "/" + LLVM_BINARY_DIR + "/" + build_mode; + ActiveLibDir = +- ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX + "/" + build_mode; ++ ActiveObjRoot + "/" + LLVM_LIBRARY_DIR + "/" + build_mode; + break; + } + + // We need to include files from both the source and object trees. + ActiveIncludeOption = +- ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include"); ++ ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/" + LLVM_INCLUDE_DIR); + } else { + ActivePrefix = CurrentExecPrefix; +- ActiveIncludeDir = ActivePrefix + "/include"; +- ActiveBinDir = ActivePrefix + "/bin"; +- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; ++ ActiveIncludeDir = ActivePrefix + "/" + LLVM_INCLUDE_DIR; ++ ActiveBinDir = ActivePrefix + "/" + LLVM_BINARY_DIR; ++ ActiveLibDir = ActivePrefix + "/" + LLVM_LIBRARY_DIR; + ActiveIncludeOption = "-I" + ActiveIncludeDir; + } + +diff -up llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt.instdirs llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt +--- llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt.instdirs 2016-05-25 22:35:35.000000000 -0600 ++++ llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt 2017-02-13 13:36:44.065154372 -0700 +@@ -68,7 +66,7 @@ if(LLVM_BUILD_LLVM_C_DYLIB) + + set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_BINARY_DIR}/libllvm-c.exports) + +- set(LIB_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) ++ set(LIB_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_LIBDIR}) + set(LIB_NAME ${LIB_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}LLVM) + set(LIB_PATH ${LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) + set(LIB_EXPORTS_PATH ${LIB_NAME}.exports) +diff -up llvm-3.9.1.src/tools/lto/CMakeLists.txt.instdirs llvm-3.9.1.src/tools/lto/CMakeLists.txt +--- llvm-3.9.1.src/tools/lto/CMakeLists.txt.instdirs 2016-07-11 21:01:22.000000000 -0600 ++++ llvm-3.9.1.src/tools/lto/CMakeLists.txt 2017-02-13 13:36:44.007154709 -0700 +@@ -19,7 +19,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CU + add_llvm_library(LTO SHARED ${SOURCES}) + + install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h +- DESTINATION include/llvm-c ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c + COMPONENT LTO) + + if (APPLE) diff --git a/SPECS/ghc.spec b/SPECS/ghc.spec new file mode 100644 index 0000000..b5d00f0 --- /dev/null +++ b/SPECS/ghc.spec @@ -0,0 +1,1758 @@ +# perf production build (disable for quick build) +%bcond_without perf_build + +# to handle RCs +%global ghc_release %{version} + +# make sure ghc libraries' ABI hashes unchanged +%bcond_without abicheck + +# run testsuite +%bcond_with testsuite +# build profiling libraries +%bcond_without prof +# build docs (haddock and manuals) +# combined since disabling haddock seems to cause no manuals built +# +%bcond_without docs + +# 8.2 needs llvm-3.9 +%global llvm_major 3.9 +%global llvm_version %{llvm_major}.1 +%global ghc_llvm_archs armv7hl aarch64 + +Name: ghc +# ghc must be rebuilt after a version bump to avoid ABI change problems +Version: 8.2.2 +# Since library subpackages are versioned: +# - release can only be reset if *all* library versions get bumped simultaneously +# (sometimes after a major release) +# - minor release numbers for a branch should be incremented monotonically +Release: 68.3%{?dist} +Summary: Glasgow Haskell Compiler + +License: BSD and HaskellReport +URL: https://haskell.org/ghc/ +Source0: https://downloads.haskell.org/~ghc/%{ghc_release}/ghc-%{version}-src.tar.xz +%if %{with testsuite} +Source1: https://downloads.haskell.org/~ghc/%{ghc_release}/ghc-%{version}-testsuite.tar.xz +%endif +Source3: ghc-doc-index.cron +Source4: ghc-doc-index + +Source10: http://llvm.org/releases/%{llvm_version}/llvm-%{llvm_version}.src.tar.xz + +# absolute haddock path (was for html/libraries -> libraries) +Patch1: ghc-gen_contents_index-haddock-path.patch +Patch2: ghc-Cabal-install-PATH-warning.patch +# https://github.com/haskell/cabal/issues/4728 +# https://ghc.haskell.org/trac/ghc/ticket/14381 +# https://phabricator.haskell.org/D4159 +Patch4: D4159.patch +# https://github.com/ghc/ghc/pull/143 +Patch5: ghc-configure-fix-sphinx-version-check.patch + +Patch12: ghc-armv7-VFPv3D16--NEON.patch + +# Debian patches: +# doesn't apply to 8.2 +#Patch24: ghc-Debian-buildpath-abi-stability.patch +Patch26: ghc-Debian-no-missing-haddock-file-warning.patch +Patch27: ghc-Debian-reproducible-tmp-names.patch +Patch28: ghc-Debian-x32-use-native-x86_64-insn.patch + +# llvm3.9 patches + 100 +Patch106: llvm-install_dirs.patch +Patch174: llvm-D25865-cmakeshlib.patch + +# fedora ghc has been bootstrapped on +# %%{ix86} x86_64 ppc ppc64 armv7hl s390 s390x ppc64le aarch64 +# and retired arches: alpha sparcv9 armv5tel +# see also deprecated ghc_arches defined in /etc/rpm/macros.ghc-srpm by redhat-rpm-macros + +BuildRequires: ghc-compiler +# for ABI hash checking +%if %{with abicheck} +BuildRequires: ghc +%endif +BuildRequires: ghc-rpm-macros-extra >= 1.8 +BuildRequires: ghc-binary-devel +BuildRequires: ghc-bytestring-devel +BuildRequires: ghc-containers-devel +BuildRequires: ghc-directory-devel +BuildRequires: ghc-pretty-devel +BuildRequires: ghc-process-devel +BuildRequires: gmp-devel +BuildRequires: libffi-devel +# for terminfo +BuildRequires: ncurses-devel +# for man and docs +BuildRequires: perl-interpreter +BuildRequires: %{_bindir}/python3 +%if %{with docs} +# python2-sphinx needs python2-babel +BuildRequires: python3-sphinx +%endif +# patch5 +BuildRequires: autoconf +%ifarch armv7hl +# patch12 +BuildRequires: autoconf, automake +%endif + +# llvm +%ifarch %{ghc_llvm_archs} +BuildRequires: cmake3 +BuildRequires: zlib-devel +BuildRequires: libedit-devel +BuildRequires: libffi-devel +BuildRequires: ncurses-devel +#BuildRequires: python-sphinx +BuildRequires: valgrind-devel +BuildRequires: libstdc++-static +%endif + +Requires: ghc-compiler = %{version}-%{release} +%if %{with docs} +Requires: ghc-doc-cron = %{version}-%{release} +%endif +Requires: ghc-ghc-devel = %{version}-%{release} +Requires: ghc-libraries = %{version}-%{release} +%if %{with docs} +Requires: ghc-manual = %{version}-%{release} +%endif + +%description +GHC is a state-of-the-art, open source, compiler and interactive environment +for the functional language Haskell. Highlights: + +- GHC supports the entire Haskell 2010 language plus a wide variety of + extensions. +- GHC has particularly good support for concurrency and parallelism, + including support for Software Transactional Memory (STM). +- GHC generates fast code, particularly for concurrent programs. + Take a look at GHC's performance on The Computer Language Benchmarks Game. +- GHC works on several platforms including Windows, Mac, Linux, + most varieties of Unix, and several different processor architectures. +- GHC has extensive optimisation capabilities, including inter-module + optimisation. +- GHC compiles Haskell code either directly to native code or using LLVM + as a back-end. GHC can also generate C code as an intermediate target for + porting to new platforms. The interactive environment compiles Haskell to + bytecode, and supports execution of mixed bytecode/compiled programs. +- Profiling is supported, both by time/allocation and various kinds of heap + profiling. +- GHC comes with several libraries, and thousands more are available on Hackage. + + +%package compiler +Summary: GHC compiler and utilities +License: BSD +Requires: gcc%{?_isa} +Requires: ghc-base-devel%{?_isa} +# for alternatives +Requires(post): chkconfig +Requires(postun): chkconfig +# added in f14 +Obsoletes: ghc-doc < 6.12.3-4 +%if %{without docs} +Obsoletes: ghc-doc-cron < %{version}-%{release} +# added in f28 +Obsoletes: ghc-doc-index < %{version}-%{release} +%endif + +%description compiler +The package contains the GHC compiler, tools and utilities. + +The ghc libraries are provided by ghc-libraries. +To install all of ghc (including the ghc library), +install the main ghc package. + + +%if %{with docs} +%package doc-cron +Summary: GHC library documentation indexing cronjob +License: BSD +Requires: ghc-compiler = %{version}-%{release} +Requires: crontabs +# added in f28 +Obsoletes: ghc-doc-index < %{version}-%{release} +BuildArch: noarch + +%description doc-cron +The package provides a cronjob for re-indexing installed library development +documention. +%endif + + +%if %{with docs} +%package manual +Summary: GHC manual +License: BSD +BuildArch: noarch + +%description manual +This package provides the User Guide and Haddock manual. +%endif + + +# ghclibdir also needs ghc_version_override for bootstrapping +%global ghc_version_override %{version} + +# EL7 rpm supports fileattrs ghc.attr +%if 0%{?rhel} && 0%{?rhel} < 7 +# needs ghc_version_override for bootstrapping +%global _use_internal_dependency_generator 0 +%global __find_provides /usr/lib/rpm/rpmdeps --provides +%global __find_requires %{_rpmconfigdir}/ghc-deps.sh %{buildroot}%{ghclibdir} +%endif + +%global ghc_pkg_c_deps ghc-compiler = %{ghc_version_override}-%{release} + +%global BSDHaskellReport %{quote:BSD and HaskellReport} + +# use "./libraries-versions.sh" to check versions +%if %{defined ghclibdir} +%ghc_lib_subpackage -d -l BSD Cabal-2.0.1.0 +%ghc_lib_subpackage -d -l %BSDHaskellReport array-0.5.2.0 +%ghc_lib_subpackage -d -l %BSDHaskellReport -c gmp-devel%{?_isa},libffi-devel%{?_isa} base-4.10.1.0 +%ghc_lib_subpackage -d -l BSD binary-0.8.5.1 +%ghc_lib_subpackage -d -l BSD bytestring-0.10.8.2 +%ghc_lib_subpackage -d -l %BSDHaskellReport containers-0.5.10.2 +%ghc_lib_subpackage -d -l %BSDHaskellReport deepseq-1.4.3.0 +%ghc_lib_subpackage -d -l %BSDHaskellReport directory-1.3.0.2 +%ghc_lib_subpackage -d -l BSD filepath-1.4.1.2 +%define ghc_pkg_obsoletes ghc-bin-package-db-devel < 0.0.0.0-12 +# in ghc not ghc-libraries: +%ghc_lib_subpackage -d -x ghc-%{ghc_version_override} +%undefine ghc_pkg_obsoletes +%ghc_lib_subpackage -d -x -l BSD ghc-boot-%{ghc_version_override} +%ghc_lib_subpackage -d -l BSD ghc-boot-th-%{ghc_version_override} +%ghc_lib_subpackage -d -l BSD ghc-compact-0.1.0.0 +%ghc_lib_subpackage -d -l BSD -x ghci-%{ghc_version_override} +%ghc_lib_subpackage -d -l BSD haskeline-0.7.4.0 +%ghc_lib_subpackage -d -l BSD hoopl-3.10.2.2 +%ghc_lib_subpackage -d -l BSD hpc-0.6.0.3 +%ghc_lib_subpackage -d -l BSD pretty-1.1.3.3 +%ghc_lib_subpackage -d -l %BSDHaskellReport process-1.6.1.0 +%ghc_lib_subpackage -d -l BSD template-haskell-2.12.0.0 +%ghc_lib_subpackage -d -l BSD -c ncurses-devel%{?_isa} terminfo-0.4.1.0 +%ghc_lib_subpackage -d -l BSD time-1.8.0.2 +%ghc_lib_subpackage -d -l BSD transformers-0.5.2.0 +%ghc_lib_subpackage -d -l BSD unix-2.7.2.2 +%if %{with docs} +%ghc_lib_subpackage -d -l BSD xhtml-3000.2.2 +%endif +%endif + +%global version %{ghc_version_override} + +%package libraries +Summary: GHC development libraries meta package +License: BSD and HaskellReport +Requires: ghc-compiler = %{version}-%{release} +Obsoletes: ghc-devel < %{version}-%{release} +Provides: ghc-devel = %{version}-%{release} +Obsoletes: ghc-prof < %{version}-%{release} +Provides: ghc-prof = %{version}-%{release} +# since f15 +Obsoletes: ghc-libs < 7.0.1-3 +%{?ghc_packages_list:Requires: %(echo %{ghc_packages_list} | sed -e "s/\([^ ]*\)-\([^ ]*\)/ghc-\1-devel = \2-%{release},/g")} + +%description libraries +This is a meta-package for all the development library packages in GHC +except the ghc library, which is installed by the toplevel ghc metapackage. + + +%prep +%ifarch %{ghc_llvm_archs} +%setup -q -n %{name}-%{version} %{?with_testsuite:-b1} -a10 +( +cd llvm-%{llvm_version}.src +%patch106 -p1 -b .instdirs +%patch174 -p1 -b .julia4 +) +%else +%setup -q -n %{name}-%{version} %{?with_testsuite:-b1} +%endif + +%patch1 -p1 -b .orig + +%patch2 -p1 -b .orig +%patch4 -p1 -b .orig +%patch5 -p1 -b .orig + +%if 0%{?fedora} || 0%{?rhel} > 6 +rm -r libffi-tarballs +%endif + +%ifarch armv7hl +%patch12 -p1 -b .orig +%endif + +#%%patch24 -p1 -b .orig +%patch26 -p1 -b .orig +%patch27 -p1 -b .orig +%patch28 -p1 -b .orig + +%global gen_contents_index gen_contents_index.orig +%if %{with docs} +if [ ! -f "libraries/%{gen_contents_index}" ]; then + echo "Missing libraries/%{gen_contents_index}, needed at end of %%install!" + exit 1 +fi +%endif + + +%build +%ifarch %{ghc_llvm_archs} +( +cd llvm-%{llvm_version}.src +mkdir -p _build +cd _build +%cmake3 .. \ + -DBUILD_SHARED_LIBS:BOOL=OFF \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_SHARED_LINKER_FLAGS="-Wl,-Bsymbolic -static-libstdc++" \ + -DCMAKE_INSTALL_PREFIX=%{ghclibdir}/llvm \ + -DLLVM_TARGETS_TO_BUILD="X86;AArch64" \ + -DLLVM_ENABLE_LIBCXX:BOOL=OFF \ + -DLLVM_ENABLE_ZLIB:BOOL=ON \ + -DLLVM_ENABLE_FFI:BOOL=ON \ + -DLLVM_ENABLE_RTTI:BOOL=ON \ + \ + -DLLVM_BUILD_RUNTIME:BOOL=ON \ + \ + -DLLVM_INCLUDE_TOOLS:BOOL=ON \ + -DLLVM_BUILD_TOOLS:BOOL=ON \ + \ + -DLLVM_INCLUDE_TESTS:BOOL=OFF \ + -DLLVM_BUILD_TESTS:BOOL=OFF \ + \ + -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF \ + -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ + \ + -DLLVM_INCLUDE_UTILS:BOOL=OFF \ + -DLLVM_INSTALL_UTILS:BOOL=OFF \ + \ + -DLLVM_INCLUDE_DOCS:BOOL=OFF \ + -DLLVM_BUILD_DOCS:BOOL=OFF \ + -DLLVM_ENABLE_SPHINX:BOOL=OFF \ + -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \ + -DSPHINX_OUTPUT_HTML:BOOL=OFF \ + -DSPHINX_WARNINGS_AS_ERRORS:BOOL=OFF \ + \ + -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \ + -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ + -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \ + -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \ + +make %{?_smp_mflags} +) +%endif + +# http://hackage.haskell.org/trac/ghc/wiki/Platforms +# cf https://github.com/gentoo-haskell/gentoo-haskell/tree/master/dev-lang/ghc +cat > mk/build.mk << EOF +%if %{with perf_build} +%ifarch %{ghc_llvm_archs} +BuildFlavour = perf-llvm +%else +BuildFlavour = perf +%endif +%else +%ifarch %{ghc_llvm_archs} +BuildFlavour = quick-llvm +%else +BuildFlavour = quick +%endif +%endif +GhcLibWays = v dyn %{?with_prof:p} +%if %{with docs} +HADDOCK_DOCS = YES +BUILD_MAN = YES +%else +HADDOCK_DOCS = NO +BUILD_MAN = NO +%endif +EXTRA_HADDOCK_OPTS += --hyperlinked-source +BUILD_SPHINX_PDF = NO +EOF +## for verbose build output +#GhcStage1HcOpts=-v4 +## enable RTS debugging: +## (http://ghc.haskell.org/trac/ghc/wiki/Debugging/RuntimeSystem) +#EXTRA_HC_OPTS=-debug + +# for patch12 +%ifarch armv7hl +autoreconf +%else +# for patch5 +autoconf +%endif + +%if 0%{?fedora} > 28 || 0%{?rhel} > 7 +%ghc_set_cflags +%else +# -Wunused-label is extremely noisy +%ifarch aarch64 s390x +CFLAGS="${CFLAGS:-$(echo %optflags | sed -e 's/-Wall -Werror=format-security //')}" +%else +CFLAGS="${CFLAGS:-%optflags}" +%endif +export CFLAGS +%endif +export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}" +# for ghc-8.2 +export CC=%{_bindir}/gcc +# * %%configure induces cross-build due to different target/host/build platform names +./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \ + --bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \ + --datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \ + --libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} \ + --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \ + --docdir=%{_docdir}/ghc \ +%ifarch %{ghc_llvm_archs} + --with-llc=$PWD/llvm-%{llvm_version}.src/_build/bin/llc --with-opt=$PWD/llvm-%{llvm_version}.src/_build/bin/opt \ +%else + --with-llc=%{_bindir}/llc-%{llvm_major} --with-opt=%{_bindir}/opt-%{llvm_major} \ +%endif +%if 0%{?fedora} || 0%{?rhel} > 6 + --with-system-libffi \ +%endif +%{nil} + +# avoid "ghc: hGetContents: invalid argument (invalid byte sequence)" +export LANG=en_US.utf8 +make %{?_smp_mflags} + + +%install +%ifarch %{ghc_llvm_archs} +( +cd llvm-%{llvm_version}.src +cd _build +make install DESTDIR=%{buildroot} +) +%endif + +make DESTDIR=%{buildroot} install + +%if %{defined _ghcdynlibdir} +mv %{buildroot}%{ghclibdir}/*/libHS*ghc%{ghc_version}.so %{buildroot}%{_libdir}/ +for i in $(find %{buildroot} -path %{buildroot}%{ghclibdir}/llvm -prune -o -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \; -print); do + chrpath -d $i +done +for i in %{buildroot}%{ghclibdir}/package.conf.d/*.conf; do + sed -i -e 's!^dynamic-library-dirs: .*!dynamic-library-dirs: %{_libdir}!' $i +done +%endif + +for i in %{ghc_packages_list}; do +name=$(echo $i | sed -e "s/\(.*\)-.*/\1/") +ver=$(echo $i | sed -e "s/.*-\(.*\)/\1/") +%ghc_gen_filelists $name $ver +%if 0%{?rhel} && 0%{?rhel} < 8 +echo "%%doc libraries/$name/LICENSE" >> ghc-$name.files +%else +echo "%%license libraries/$name/LICENSE" >> ghc-$name.files +%endif +done + +echo "%%dir %{ghclibdir}" >> ghc-base%{?_ghcdynlibdir:-devel}.files + +%ghc_gen_filelists ghc-boot %{ghc_version_override} +%ghc_gen_filelists ghc %{ghc_version_override} +%ghc_gen_filelists ghci %{ghc_version_override} +%ghc_gen_filelists ghc-prim 0.5.1.1 +%ghc_gen_filelists integer-gmp 1.0.1.0 + +%define merge_filelist()\ +cat ghc-%1.files >> ghc-%2.files\ +cat ghc-%1-devel.files >> ghc-%2-devel.files\ +cp -p libraries/%1/LICENSE libraries/LICENSE.%1\ +%if 0%{?rhel} && 0%{?rhel} < 8\ +echo "%%doc libraries/LICENSE.%1" >> ghc-%2.files\ +%else\ +echo "%%license libraries/LICENSE.%1" >> ghc-%2.files\ +%endif + +%merge_filelist integer-gmp base +%merge_filelist ghc-prim base + +# add rts libs +%if %{defined _ghcdynlibdir} +echo "%{ghclibdir}/rts" >> ghc-base-devel.files +%else +echo "%%dir %{ghclibdir}/rts" >> ghc-base.files +ls -d %{buildroot}%{ghclibdir}/rts/lib*.a >> ghc-base-devel.files +%endif +ls %{buildroot}%{?_ghcdynlibdir}%{!?_ghcdynlibdir:%{ghclibdir}/rts}/libHSrts*.so >> ghc-base.files +%if 0%{?rhel} && 0%{?rhel} < 7 +ls %{buildroot}%{ghclibdir}/rts/libffi.so.* >> ghc-base.files +%endif +%if %{defined _ghcdynlibdir} +sed -i -e 's!^library-dirs: %{ghclibdir}/rts!&\ndynamic-library-dirs: %{_libdir}!' %{buildroot}%{ghclibdir}/package.conf.d/rts.conf +%endif + +ls -d %{buildroot}%{ghclibdir}/package.conf.d/rts.conf %{buildroot}%{ghclibdir}/include >> ghc-base-devel.files +%if 0%{?rhel} && 0%{?rhel} < 7 +ls %{buildroot}%{ghclibdir}/rts/libffi.so >> ghc-base-devel.files +%endif + +sed -i -e "s|^%{buildroot}||g" ghc-base*.files + +# these are handled as alternatives +for i in hsc2hs runhaskell; do + if [ -x %{buildroot}%{_bindir}/$i-ghc ]; then + rm %{buildroot}%{_bindir}/$i + else + mv %{buildroot}%{_bindir}/$i{,-ghc} + fi + touch %{buildroot}%{_bindir}/$i +done + +%ghc_strip_dynlinked + +%if %{with docs} +mkdir -p %{buildroot}%{_sysconfdir}/cron.hourly +install -p --mode=0755 %SOURCE3 %{buildroot}%{_sysconfdir}/cron.hourly/ghc-doc-index +mkdir -p %{buildroot}%{_localstatedir}/lib/ghc +touch %{buildroot}%{_localstatedir}/lib/ghc/pkg-dir.cache{,.new} +install -p --mode=0755 %SOURCE4 %{buildroot}%{_bindir}/ghc-doc-index + +# generate initial lib doc index +cd libraries +sh %{gen_contents_index} --intree --verbose +cd .. +%endif + +# we package the library license files separately +find %{buildroot}%{ghc_html_libraries_dir} -name LICENSE -exec rm '{}' ';' + +# fix llvm paths +%ifarch %{ghc_llvm_archs} +sed -i -e "s!$PWD/llvm-%{llvm_version}.src/_build!%{ghclibdir}/llvm!" %{buildroot}%{ghclibdir}/settings +%endif + + +%check +export LANG=en_US.utf8 +# stolen from ghc6/debian/rules: +GHC=inplace/bin/ghc-stage2 +# Do some very simple tests that the compiler actually works +rm -rf testghc +mkdir testghc +echo 'main = putStrLn "Foo"' > testghc/foo.hs +$GHC testghc/foo.hs -o testghc/foo +[ "$(testghc/foo)" = "Foo" ] +# doesn't seem to work inplace: +#[ "$(inplace/bin/runghc testghc/foo.hs)" = "Foo" ] +rm testghc/* +echo 'main = putStrLn "Foo"' > testghc/foo.hs +$GHC testghc/foo.hs -o testghc/foo -O2 +[ "$(testghc/foo)" = "Foo" ] +rm testghc/* +echo 'main = putStrLn "Foo"' > testghc/foo.hs +$GHC testghc/foo.hs -o testghc/foo -dynamic +[ "$(testghc/foo)" = "Foo" ] +rm testghc/* + +# check the ABI hashes +%if %{with abicheck} +if [ "%{version}" = "$(ghc --numeric-version)" ]; then + echo "Checking package ABI hashes:" + for i in %{ghc_packages_list}; do + old=$(ghc-pkg field $i id --simple-output || :) + if [ -n "$old" ]; then + new=$(/usr/lib/rpm/ghc-pkg-wrapper %{buildroot}%{ghclibdir} field $i id --simple-output) + if [ "$old" != "$new" ]; then + echo "ABI hash for $i changed!:" >&2 + echo " $old -> $new" >&2 + ghc_abi_hash_change=yes + else + echo "($old unchanged)" + fi + else + echo "($i not installed)" + fi + done + if [ "$ghc_abi_hash_change" = "yes" ]; then + echo "ghc ABI hash change: aborting build!" >&2 + exit 1 + fi +else + echo "ABI hash checks skipped: GHC changed from $(ghc --numeric-version) to %{version}" +fi +%endif + +%if %{with testsuite} +make test +%endif + + +%post compiler +# Alas, GHC, Hugs, and nhc all come with different set of tools in +# addition to a runFOO: +# +# * GHC: hsc2hs +# * Hugs: hsc2hs, cpphs +# * nhc: cpphs +# +# Therefore it is currently not possible to use --slave below to form +# link groups under a single name 'runhaskell'. Either these tools +# should be disentangled from the Haskell implementations, or all +# implementations should have the same set of tools. *sigh* + +update-alternatives --install %{_bindir}/runhaskell runhaskell \ + %{_bindir}/runghc 500 +update-alternatives --install %{_bindir}/hsc2hs hsc2hs \ + %{_bindir}/hsc2hs-ghc 500 + +%preun compiler +if [ "$1" = 0 ]; then + update-alternatives --remove runhaskell %{_bindir}/runghc + update-alternatives --remove hsc2hs %{_bindir}/hsc2hs-ghc +fi + + +%files + +%files compiler +%license LICENSE +%doc ANNOUNCE +%{_bindir}/ghc +%{_bindir}/ghc-%{version} +%{_bindir}/ghc-pkg +%{_bindir}/ghc-pkg-%{version} +%{_bindir}/ghci +%{_bindir}/ghci-%{version} +%{_bindir}/hp2ps +%{_bindir}/hpc +%ghost %{_bindir}/hsc2hs +%{_bindir}/hsc2hs-ghc +%{_bindir}/runghc* +%ghost %{_bindir}/runhaskell +%{_bindir}/runhaskell-ghc +%dir %{ghclibdir}/bin +%{ghclibdir}/bin/ghc +%{ghclibdir}/bin/ghc-pkg +%{ghclibdir}/bin/hpc +%{ghclibdir}/bin/hsc2hs +%{ghclibdir}/bin/ghc-iserv +%{ghclibdir}/bin/ghc-iserv-dyn +%ifarch %{ghc_llvm_archs} +%license llvm-3.9.1.src/LICENSE.TXT +%{ghclibdir}/llvm +%endif +%if %{with prof} +%{ghclibdir}/bin/ghc-iserv-prof +%endif +%{ghclibdir}/bin/runghc +%ifnarch s390 s390x %{mips} +%{ghclibdir}/bin/ghc-split +%endif +%{ghclibdir}/bin/hp2ps +%{ghclibdir}/bin/unlit +%{ghclibdir}/ghc-usage.txt +%{ghclibdir}/ghci-usage.txt +%dir %{ghclibdir}/package.conf.d +%ghost %{ghclibdir}/package.conf.d/package.cache +%{ghclibdir}/package.conf.d/package.cache.lock +%{ghclibdir}/platformConstants +%{ghclibdir}/settings +%{ghclibdir}/template-hsc.h +%dir %{_docdir}/ghc +%dir %{ghc_html_dir} +%if %{with docs} +%{_bindir}/ghc-doc-index +%{_bindir}/haddock +%{_bindir}/haddock-ghc-%{version} +%{ghclibdir}/bin/haddock +%{ghclibdir}/html +%{ghclibdir}/latex +%if %{with docs} +# https://ghc.haskell.org/trac/ghc/ticket/12939 +%{_mandir}/man1/ghc.1* +%endif +%dir %{ghc_html_dir}/libraries +%{ghc_html_dir}/libraries/gen_contents_index +%{ghc_html_dir}/libraries/prologue.txt +%ghost %{ghc_html_dir}/libraries/doc-index*.html +%ghost %{ghc_html_dir}/libraries/haddock-util.js +%ghost %{ghc_html_dir}/libraries/hslogo-16.png +%ghost %{ghc_html_dir}/libraries/index*.html +%ghost %{ghc_html_dir}/libraries/minus.gif +%ghost %{ghc_html_dir}/libraries/ocean.css +%ghost %{ghc_html_dir}/libraries/plus.gif +%ghost %{ghc_html_dir}/libraries/synopsis.png +%dir %{_localstatedir}/lib/ghc +%ghost %{_localstatedir}/lib/ghc/pkg-dir.cache +%ghost %{_localstatedir}/lib/ghc/pkg-dir.cache.new +%endif + +%if %{with docs} +%files doc-cron +%config(noreplace) %{_sysconfdir}/cron.hourly/ghc-doc-index +%endif + +%files libraries + + +%if %{with docs} +%files manual +## needs pandoc +#%%{ghc_html_dir}/Cabal +%{ghc_html_dir}/haddock +%{ghc_html_dir}/index.html +%{ghc_html_dir}/users_guide +%endif + + +%changelog +* Tue Aug 14 2018 Petr Viktorin - 8.2.2-68.3 +- Fix BuildRequires for /usr/bin/python3 +- Resolves: #1615517 + +* Sat Jun 2 2018 Jens Petersen - 8.2.2-68.2 +- do not delete RPATH for bundled llvm +- fix docs config +- add llvm-D25865-cmakeshlib.patch from llvm3.9 + +* Thu May 31 2018 Jens Petersen - 8.2.2-68.1 +- apply install_dirs.patch from llvm3.9 to fix llvm RPATHs +- use ghc_set_cflags +- turn off the testsuite + +* Thu May 31 2018 Jens Petersen - 8.2.2-68 +- fix sphinx-build version detection +- merge bcond for haddock and manual + +* Tue May 29 2018 Jens Petersen +- bundle llvm-3.9 with ghc-compiler for aarch64 + +* Mon May 28 2018 Jens Petersen - 8.2.2-67 +- move manuals to new ghc-manual (noarch) +- rename ghc-doc-index to ghc-doc-cron (noarch) +- ghost the ghc-doc-index local state files +- ghost some newer libraries index files +- simplify and extend bcond for build configuration +- drop bootstrap builds and do ABI hash checks unless ghc version changed +- no longer need autotools on aarch64 + +* Tue Apr 10 2018 Jens Petersen - 8.2.2-66 +- ghc-pkg: silence the abi-depends warnings + +* Fri Feb 09 2018 Igor Gnatenko - 8.2.2-65 +- Escape macros in %%changelog + +* Wed Feb 07 2018 Fedora Release Engineering - 8.2.2-64 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 30 2018 Jens Petersen - 8.2.2-63 +- apply Phabricator D4159.patch to workaround + https://ghc.haskell.org/trac/ghc/ticket/14381 + +* Thu Jan 25 2018 Jens Petersen - 8.2.2-62 +- 8.2.2 perf build +- https://downloads.haskell.org/~ghc/8.2.2/docs/html/users_guide/8.2.1-notes.html +- https://downloads.haskell.org/~ghc/8.2.2/docs/html/users_guide/8.2.2-notes.html + +* Wed Jan 24 2018 Jens Petersen - 8.2.2-61 +- 8.2.2 bootstrap build +- install ghc libs in libdir and remove RUNPATHs +- add shadowed-deps.patch (haskell/cabal#4728) +- new ghc-compact library +- exclude ghc-boot for ghc-libraries + +* Thu Oct 26 2017 Jens Petersen - 8.0.2-60 +- fix space in BSDHaskellReport license macro for rpm-4.14 +- mark other subpackages correctly as BSD license +- drop ghc-boot from ghc-libraries + +* Wed Aug 02 2017 Fedora Release Engineering - 8.0.2-59 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 8.0.2-58 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 17 2017 Jens Petersen - 8.0.2-57 +- 8.0.2 perf build +- http://downloads.haskell.org/~ghc/8.0.2/docs/html/users_guide/8.0.1-notes.html +- http://downloads.haskell.org/~ghc/8.0.2/docs/html/users_guide/8.0.2-notes.html + +* Fri Feb 17 2017 Jens Petersen - 8.0.2-56 +- update to GHC 8.0 (bootstrap build) +- backport changes from http://github.com/fedora-haskell/ghc + adding some new patches from Debian +- use llvm3.7 on ARM archs +- user guide now built with sphinx + +* Mon Feb 13 2017 Jens Petersen - 7.10.3-55 +- use new ghc_lib_subpackage -d option to fix handling of .files +- configure llc-3.5 and opt-3.5 explicitly for all arch's + +* Fri Feb 10 2017 Fedora Release Engineering - 7.10.3-54 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Jan 12 2017 Igor Gnatenko - 7.10.3-53 +- Rebuild for readline 7.x + +* Wed Oct 26 2016 Jens Petersen - 7.10.3-52 +- use license macro +- update subpackaging for latest ghc-rpm-macros +- minor spec file cleanups +- drop old dph and feldspar obsoletes +- obsoletes ghc-doc-index when without_haddock +- BR perl + +* Tue Jul 12 2016 Jens Petersen - 7.10.3-51 +- obsolete haskell98 and haskell2010 +- add an ABI change check to prevent unexpected ghc package hash changes + +* Fri Jun 3 2016 Jens Petersen - 7.10.3-50 +- perf build +- http://downloads.haskell.org/~ghc/7.10.3/docs/html/users_guide/release-7-10-1.html +- http://downloads.haskell.org/~ghc/7.10.3/docs/html/users_guide/release-7-10-2.html +- http://downloads.haskell.org/~ghc/7.10.3/docs/html/users_guide/release-7-10-3.html + +* Wed Jun 1 2016 Jens Petersen - 7.10.3-49 +- quick build +- use 7.10.3b respin tarballs +- no longer need: + - ghc-glibc-2.20_BSD_SOURCE.patch + - ghc-7.8-arm-use-ld-gold.patch + - ghc-7.8-arm7_saner-linker-opt-handling-9873.patch + - ghc-config.mk.in-Enable-SMP-and-GHCi-support-for-Aarch64.patch + - build_minimum_smp +- add Debian packages: + - buildpath-abi-stability + - no-missing-haddock-file-warning + - reproducible-tmp-names +- use llvm35 +- add libraries-versions.sh script +- all library versions updates except xhtml +- BR ghc-rpm-macros-extra for all OS versions +- support building on EL6 +- deprecated libraries: haskell2010, haskell98, old-locale, old-time +- symlink for integer-gmp2 +- add llvm_major + +* Tue Mar 8 2016 Michal Toman - 7.8.4-48 +- do not package ghc-split on MIPS (#1294873) + +* Wed Feb 03 2016 Fedora Release Engineering - 7.8.4-47 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jun 16 2015 Jens Petersen - 7.8.4-46 +- rebuild + +* Thu Jun 11 2015 Jens Petersen - 7.8.4-45 +- use ld.gold on aarch64 like for armv7 (Erik de Castro Lopo, #1195231) + +* Wed Apr 22 2015 Jens Petersen - 7.8.4-44 +- turn on SMP and ghci for aarch64 (Erik de Castro Lopo, #1203951) +- use "make -j2" for s390 (#1212374) + +* Mon Mar 30 2015 Jens Petersen - 7.8.4-43 +- aarch64 production build + +* Mon Mar 23 2015 Jens Petersen - 7.8.4-42.2 +- aarch64 bootstrap build +- must use "make -j16" for Intel arches to preserve ABI hashes + (-j12 changed array's hash on i686) + +* Wed Mar 18 2015 Jens Petersen - 7.8.4-42.1 +- fix build.mk BuildFlavour setup +- improve the smp make setup with build_minimum_smp +- bootstrap for aarch64 without ghci (#1195231) +- disable ld hardening for F23 on 64bit and armv7hl + +* Sat Feb 14 2015 Jens Petersen - 7.8.4-42 +- try "make -j16" on Intel arches to keep ABI hashes same as -40 + +* Mon Feb 9 2015 Jens Petersen - 7.8.4-41 +- update the arm64 patch for 7.8.4 +- all archs have bindir/ghci + +* Sun Jan 18 2015 Jens Petersen - 7.8.4-40 +- production build +- version doc htmldirs again + +* Sat Jan 17 2015 Jens Petersen - 7.8.4-39 +- update to 7.8.4 +- bump release over haskell-platform xhtml +- https://www.haskell.org/ghc/docs/7.8.4/html/users_guide/release-7-8-1.html +- https://www.haskell.org/ghc/docs/7.8.4/html/users_guide/release-7-8-2.html +- https://www.haskell.org/ghc/docs/7.8.4/html/users_guide/release-7-8-3.html +- https://www.haskell.org/ghc/docs/7.8.4/html/users_guide/release-7-8-4.html +- bootstrap build +- provides haskeline, terminfo and xhtml libraries +- shared libraries on all archs +- bindir/ghci only on ghc_arches_with_ghci +- use ld.gold on ARMv7 (see https://ghc.haskell.org/trac/ghc/ticket/8976) + [thanks to Joachim Breitner for workaround patches posted upstream] + +* Tue Nov 18 2014 Jens Petersen - 7.6.3-28 +- remove the build hack to switch from llvm to llvm34 (#1161049) +- use rpm internal dependency generator with ghc.attr on F21+ +- fix bash-ism in ghc-doc-index (#1146733) +- do "quick" build when bootstrapping +- setup LDFLAGS + +* Mon Nov 17 2014 Jens Petersen - 7.6.3-27 +- use llvm34 instead of llvm-3.5 for arm (#1161049) + +* Sat Aug 16 2014 Fedora Release Engineering - 7.6.3-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jul 15 2014 Jens Petersen - 7.6.3-25 +- configure ARM with VFPv3D16 and without NEON (#995419) +- only apply the Cabal unversion docdir patch to F21 and later +- hide llvm version warning on ARM now up to 3.4 + +* Fri Jun 6 2014 Jens Petersen - 7.6.3-24 +- add aarch64 with Debian patch by Karel Gardas and Colin Watson +- patch Stg.h to define _DEFAULT_SOURCE instead of _BSD_SOURCE to quieten + glibc 2.20 warnings (see #1067110) + +* Fri May 30 2014 Jens Petersen - 7.6.3-23 +- bump release + +* Fri May 30 2014 Jens Petersen - 7.6.3-22 +- add ppc64le support patch from Debian by Colin Watson + (thanks to Jaromir Capik for Fedora ppc64le bootstrap) + +* Wed Jan 29 2014 Jens Petersen - 7.6.3-21 +- fix segfault on i686 when using ffi double-mapping for selinux (#907515) + see http://hackage.haskell.org/trac/ghc/ticket/7629 + (thanks Garrett Mitchener for patch committed upstream) + +* Wed Oct 30 2013 Jens Petersen - 7.6.3-20 +- enable debuginfo for C code bits (#989593) +- back to production build + +* Tue Oct 29 2013 Jens Petersen - 7.6.3-19 +- fix rts hang on 64bit bigendian archs (patch by Gustavo Luiz Duarte, #989593) +- generate and ship library doc index for ghc bundled libraries +- build with utf8 encoding (needed for verbose ghc output + and makes better sense anyway) +- change ghc-cabal to make library html docdirs unversioned +- bootstrap build + +* Sat Jul 27 2013 Jóhann B. Guðmundsson - 7.6.3-18 +- ghc-doc-index requires crontabs and mark cron file config noreplace + (http://fedoraproject.org/wiki/Packaging:CronFiles) + +* Wed Jul 24 2013 Jens Petersen - 7.6.3-17 +- silence warnings about unsupported llvm version (> 3.1) on ARM + +* Thu Jul 11 2013 Jens Petersen - 7.6.3-16 +- revert the executable stack patch since it didn't fully fix the problem + and yet changed the ghc library hash + +* Wed Jul 10 2013 Jens Petersen - 7.6.3-15 +- turn off executable stack flag in executables (#973512) + (thanks Edward Zhang for upstream patch and Dhiru Kholia for report) + +* Tue Jun 25 2013 Jens Petersen - 7.6.3-14 +- fix compilation with llvm-3.3 (#977652) + see http://hackage.haskell.org/trac/ghc/ticket/7996 + +* Thu Jun 20 2013 Jens Petersen - 7.6.3-13 +- production perf -O2 build +- see release notes: + http://www.haskell.org/ghc/docs/7.6.3/html/users_guide/release-7-6-1.html + http://www.haskell.org/ghc/docs/7.6.3/html/users_guide/release-7-6-2.html + http://www.haskell.org/ghc/docs/7.6.3/html/users_guide/release-7-6-3.html + +* Thu Jun 20 2013 Jens Petersen - 7.6.3-12 +- bootstrap 7.6.3 +- all library versions bumped except pretty +- ghc-7.4-add-support-for-ARM-hard-float-ABI-fixes-5914.patch, and + ghc-7.4-silence-gen_contents_index.patch are no longer needed +- build with ghc-rpm-macros-extra +- no longer filter type-level package from haddock index +- process obsoletes process-leksah +- do production build with BuildFlavour perf (#880135) + +* Tue Feb 5 2013 Jens Petersen - 7.4.2-11 +- ghclibdir should be owned at runtime by ghc-base instead of ghc-compiler + (thanks Michael Scherer, #907671) + +* Thu Jan 17 2013 Jens Petersen - 7.4.2-10 +- rebuild for F19 libffi soname bump + +* Wed Nov 21 2012 Jens Petersen - 7.4.2-9 +- fix permissions of ghc-doc-index and only run when root +- ghc-doc-index cronjob no longer looks at /etc/sysconfig/ghc-doc-index + +* Sat Nov 17 2012 Jens Petersen - 7.4.2-8 +- production 7.4.2 build + http://www.haskell.org/ghc/docs/7.4.2/html/users_guide/release-7-4-2.html + +* Sat Nov 17 2012 Jens Petersen - 7.4.2-7 +- 7.4.2 bootstrap +- update base and unix library versions +- ARM StgCRun patches not longer needed +- use Karel Gardas' ARM hardfloat patch committed upstream +- use _smp_mflags again +- disable Cabal building ghci lib files +- silence the doc re-indexing script and move the doc indexing cronjob + to a new ghc-doc-index subpackage (#870694) +- do not disable hscolour in build.mk +- drop the explicit hscolour BR +- without_hscolour should now be set by ghc-rpm-macros for bootstrapping + +* Thu Jul 19 2012 Fedora Release Engineering - 7.4.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jun 15 2012 Jens Petersen - 7.4.1-5 +- use ghc_lib_subpackage instead of ghc_binlib_package (ghc-rpm-macros 0.91) + +* Wed May 2 2012 Jens Petersen - 7.4.1-4 +- add ghc-wrapper-libffi-include.patch to workaround "missing libffi.h" + for prof compiling on secondary archs + +* Sat Apr 28 2012 Jens Petersen - 7.4.1-3 +- build with llvm-3.0 on ARM +- remove ARM from unregisterised_archs +- add 4 Debian ARM patches for armel and armhf (Iain Lane) + +* Wed Mar 21 2012 Jens Petersen - 7.4.1-2 +- full build + +* Wed Feb 15 2012 Jens Petersen - 7.4.1-1 +- update to new 7.4.1 major release + http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/release-7-4-1.html +- all library versions bumped +- binary package replaces ghc-binary +- random library dropped +- new hoopl library +- deepseq is now included in ghc +- Cabal --enable-executable-dynamic patch is upstream +- add Cabal-fix-dynamic-exec-for-TH.patch +- sparc linking fix is upstream +- use Debian's system-libffi patch by Joachim Breitner +- setup ghc-deps.sh after ghc_version_override for bootstrapping +- drop ppc64 config, pthread and mmap patches +- do not set GhcUnregisterised explicitly +- add s390 and s390x to unregisterised_archs +- Cabal manual needs pandoc + +* Thu Jan 19 2012 Jens Petersen - 7.0.4-42 +- move ghc-ghc-devel from ghc-libraries to the ghc metapackage + +* Fri Jan 13 2012 Fedora Release Engineering - 7.0.4-41 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Nov 14 2011 Jens Petersen - 7.0.4-40 +- do alternatives handling correctly (reported by Giam Teck Choon, #753661) + see https://fedoraproject.org/wiki/Packaging:Alternatives + +* Sat Nov 12 2011 Jens Petersen - 7.0.4-39 +- move ghc-doc and ghc-libs obsoletes +- add HaskellReport license also to the base and libraries subpackages + +* Thu Nov 10 2011 Jens Petersen - 7.0.4-38 +- the post and postun scripts are now for the compiler subpackage + +* Wed Nov 2 2011 Jens Petersen - 7.0.4-37 +- rename ghc-devel metapackage to ghc-libraries +- require ghc-rpm-macros-0.14 + +* Tue Nov 1 2011 Jens Petersen - 7.0.4-36 +- move compiler and tools to ghc-compiler +- the ghc base package is now a metapackage that installs all of ghc, + ie ghc-compiler and ghc-devel (#750317) +- drop ghc-doc provides + +* Fri Oct 28 2011 Jens Petersen - 7.0.4-35.1 +- rebuild against new gmp + +* Fri Oct 28 2011 Jens Petersen - 7.0.4-35 +- add HaskellReport license tag to some of the library subpackages + which contain some code from the Haskell Reports + +* Thu Oct 20 2011 Marcela Mašláňová - 7.0.4-34.1 +- rebuild with new gmp without compat lib + +* Thu Oct 20 2011 Jens Petersen - 7.0.4-34 +- setup ghc-deps.sh after ghc_version_override for bootstrapping + +* Tue Oct 18 2011 Jens Petersen - 7.0.4-33 +- add armv5tel (ported by Henrik Nordström) +- also use ghc-deps.sh when bootstrapping (ghc-rpm-macros-0.13.13) + +* Mon Oct 17 2011 Jens Petersen - 7.0.4-32 +- remove libffi_archs: not allowed to bundle libffi on any arch +- include the ghc (ghci) library in ghc-devel (Narasim) + +* Tue Oct 11 2011 Peter Schiffer - 7.0.4-31.1 +- rebuild with new gmp + +* Fri Sep 30 2011 Jens Petersen - 7.0.4-31 +- build with ghc-rpm-macros >= 0.13.11 to fix provides and obsoletes versions + in library devel subpackages + +* Thu Sep 29 2011 Jens Petersen - 7.0.4-30 +- no need to specify -lffi in build.mk (Henrik Nordström) + +* Wed Sep 28 2011 Jens Petersen - 7.0.4-29 +- port to armv7hl by Henrik Nordström (#741725) + +* Wed Sep 14 2011 Jens Petersen - 7.0.4-28 +- setup ghc-deps.sh when not bootstrapping! + +* Wed Sep 14 2011 Jens Petersen - 7.0.4-27 +- setup dependency generation with ghc-deps.sh since it was moved to + ghc_lib_install in ghc-rpm-macros + +* Fri Jun 17 2011 Jens Petersen - 7.0.4-26 +- BR same ghc version unless ghc_bootstrapping defined +- add libffi_archs +- drop the quick build profile +- put dyn before p in GhcLibWays +- explain new bootstrapping mode using ghc_bootstrap (ghc-rpm-macros-0.13.5) + +* Thu Jun 16 2011 Jens Petersen - 7.0.4-25 +- update to 7.0.4 bugfix release + http://haskell.org/ghc/docs/7.0.4/html/users_guide/release-7-0-4.html +- strip static again (upstream #5004 fixed) +- Cabal updated to 1.10.2.0 +- re-enable testsuite +- update summary and description + +* Tue Jun 14 2011 Jens Petersen - 7.0.2-24 +- finally change from ExclusiveArch to ExcludeArch to target more archs + +* Sat May 21 2011 Jens Petersen - 7.0.2-23 +- obsolete dph libraries and feldspar-language + +* Mon May 16 2011 Jens Petersen - 7.0.2-22 +- merge prof subpackages into the devel subpackages with ghc-rpm-macros-0.13 + +* Wed May 11 2011 Jens Petersen - 7.0.2-21 +- configure with /usr/bin/gcc to help bootstrapping to new archs + (otherwise ccache tends to get hardcoded as gcc, which not in koji) +- posttrans scriplet for ghc_pkg_recache is redundant + +* Mon May 9 2011 Jens Petersen - 7.0.2-20 +- make devel and prof meta packages require libs with release +- make ghc-*-devel subpackages require ghc with release + +* Wed May 04 2011 Jiri Skala - 7.0.2-19.1 +- fixes path to gcc on ppc64 arch + +* Tue Apr 26 2011 Jens Petersen - 7.0.2-19 +- add upstream ghc-powerpc-linker-mmap.patch for ppc64 (Jiri Skala) + +* Thu Apr 21 2011 Jiri Skala - 7.0.2-18 +- bootstrap to ppc64 + +* Fri Apr 1 2011 Jens Petersen - 7.0.2-17 +- rebuild against ghc-rpm-macros-0.11.14 to provide ghc-*-doc + +* Fri Apr 1 2011 Jens Petersen - 7.0.2-16 +- provides ghc-doc again: it is still a buildrequires for libraries +- ghc-prof now requires ghc-devel +- ghc-devel now requires ghc explicitly + +* Wed Mar 30 2011 Jens Petersen - 7.0.2-15 +- do not strip static libs since it breaks ghci-7.0.2 loading libHSghc.a + (see http://hackage.haskell.org/trac/ghc/ticket/5004) +- no longer provide ghc-doc +- no longer obsolete old haddock + +* Tue Mar 29 2011 Jens Petersen - 7.0.2-14 +- fix back missing LICENSE files in library subpackages +- drop ghc_reindex_haddock from install script + +* Thu Mar 10 2011 Jens Petersen - 7.0.2-13 +- rebuild against 7.0.2 + +* Wed Mar 9 2011 Jens Petersen - 7.0.2-12 +- update to 7.0.2 release +- move bin-package-db into ghc-ghc +- disable broken testsuite + +* Wed Feb 23 2011 Fabio M. Di Nitto 7.0.1-11 +- enable build on sparcv9 +- add ghc-fix-linking-on-sparc.patch to fix ld being called + at the same time with --relax and -r. The two options conflict + on sparc. +- bump BuildRequires on ghc-rpm-macros to >= 0.11.10 that guarantees + a correct build on secondary architectures. + +* Sun Feb 13 2011 Jens Petersen +- without_shared renamed to ghc_without_shared + +* Thu Feb 10 2011 Jens Petersen - 7.0.1-10 +- rebuild + +* Thu Feb 10 2011 Jens Petersen - 7.0.1-9 +- fix without_shared build (thanks Adrian Reber) +- disable system libffi for secondary archs +- temporarily disable ghc-*-devel BRs for ppc + +* Tue Feb 08 2011 Fedora Release Engineering - 7.0.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 31 2011 Jens Petersen - 7.0.1-7 +- include LICENSE files in the shared lib subpackages + +* Sat Jan 22 2011 Jens Petersen - 7.0.1-6 +- patch Cabal to add configure option --enable-executable-dynamic +- exclude huge ghc API library from devel and prof metapackages + +* Thu Jan 13 2011 Jens Petersen - 7.0.1-5 +- fix no doc and no manual builds + +* Thu Jan 13 2011 Jens Petersen - 7.0.1-4 +- add BRs for various subpackaged ghc libraries needed to build ghc +- condition rts .so libraries for non-shared builds + +* Thu Dec 30 2010 Jens Petersen - 7.0.1-3 +- subpackage all the libraries with ghc-rpm-macros-0.11.1 +- put rts, integer-gmp and ghc-prim in base, and ghc-binary in bin-package-db +- drop the libs mega-subpackage +- prof now a meta-package for backward compatibility +- add devel meta-subpackage to easily install all ghc libraries +- store doc cronjob package cache file under /var (#664850) +- drop old extralibs bcond +- no longer need to define or clean buildroot +- ghc base package now requires ghc-base-devel +- drop ghc-time obsoletes + +* Wed Nov 24 2010 Jens Petersen - 7.0.1-2 +- require libffi-devel + +* Tue Nov 16 2010 Jens Petersen - 7.0.1-1 +- update to 7.0.1 release +- turn on system libffi now + +* Mon Nov 8 2010 Jens Petersen - 6.12.3-9 +- disable the libffi changes for now since they break libHSffi*.so + +* Thu Nov 4 2010 Jens Petersen - 6.12.3-8 +- add a cronjob for doc indexing +- disable gen_contents_index when not run with --batch for cron +- use system libffi with ghc-use-system-libffi.patch from debian +- add bcond for system libffi + +* Thu Nov 4 2010 Jens Petersen - 6.12.3-7 +- skip huge type-level docs from haddock re-indexing (#649228) + +* Thu Sep 30 2010 Jens Petersen - 6.12.3-6 +- move gtk2hs obsoletes to ghc-glib and ghc-gtk +- drop happy buildrequires +- smp build with max 4 cpus + +* Fri Jul 30 2010 Jens Petersen - 6.12.3-5 +- obsolete old gtk2hs packages for smooth upgrades + +* Thu Jul 15 2010 Jens Petersen - 6.12.3-4 +- merge ghc-doc into base package +- obsolete ghc-time and ghc-ghc-doc (ghc-rpm-macros-0.8.0) +- note that ghc-6.12.3 is part of haskell-platform-2010.2.0.0 + +* Thu Jun 24 2010 Jens Petersen - 6.12.3-3 +- drop the broken summary and description args to the ghc-ghc package + and use ghc-rpm-macros-0.6.1 + +* Wed Jun 23 2010 Jens Petersen - 6.12.3-2 +- strip all dynlinked files not just shared objects (ghc-rpm-macros-0.5.9) + +* Mon Jun 14 2010 Jens Petersen - 6.12.3-1 +- 6.12.3 release: + http://darcs.haskell.org/download/docs/6.12.3/html/users_guide/release-6-12-3.html +- build with hscolour +- use ghc-rpm-macro-0.5.8 for ghc_strip_shared macro + +* Fri May 28 2010 Jens Petersen - 6.12.2.20100521-1 +- 6.12.3 rc1 +- ghost package.cache +- drop ghc-utf8-string obsoletes since it is no longer provided +- run testsuite fast +- fix description and summary of ghc internal library (John Obbele) + +* Fri Apr 23 2010 Jens Petersen - 6.12.2-1 +- update to 6.12.2 +- add testsuite with bcond, run it in check section, and BR python + +* Mon Apr 12 2010 Jens Petersen - 6.12.1-6 +- ghc-6.12.1 is part of haskell-platform-2010.1.0.0 +- drop old ghc682, ghc681, haddock09 obsoletes +- drop haddock_version and no longer provide haddock explicitly +- update ghc-rpm-macros BR to 0.5.6 for ghc_pkg_recache + +* Mon Jan 11 2010 Jens Petersen - 6.12.1-5 +- drop ghc-6.12.1-no-filter-libs.patch and extras packages again +- filter ghc-ghc-prof files from ghc-prof +- ghc-mtl package was added to fedora + +* Mon Jan 11 2010 Jens Petersen - 6.12.1-4 +- ghc-rpm-macros-0.5.4 fixes wrong version requires between lib subpackages + +* Mon Jan 11 2010 Jens Petersen - 6.12.1-3 +- ghc-rpm-macros-0.5.2 fixes broken pkg_name requires for lib subpackages + +* Tue Dec 22 2009 Jens Petersen - 6.12.1-2 +- include haskeline, mtl, and terminfo for now with + ghc-6.12.1-no-filter-libs.patch +- use ghc_binlibpackage, grep -v and ghc_gen_filelists to generate + the library subpackages (ghc-rpm-macros-0.5.1) +- always set GhcLibWays (Lorenzo Villani) +- use ghcdocbasedir to revert html doc path to upstream's html/ for consistency + +* Wed Dec 16 2009 Jens Petersen - 6.12.1-1 +- pre became 6.12.1 final +- exclude ghc .conf file from package.conf.d in base package +- use ghc_reindex_haddock +- add scripts for ghc-ghc-devel and ghc-ghc-doc +- add doc bcond +- add ghc-6.12.1-gen_contents_index-haddock-path.patch to adjust haddock path + since we removed html/ from libraries path +- require ghc-rpm-macros-0.3.1 and use ghc_version_override + +* Sat Dec 12 2009 Jens Petersen - 6.12.1-0.2 +- remove redundant mingw and perl from ghc-tarballs/ +- fix exclusion of ghc internals lib from base packages with -mindepth +- rename the final file lists to PKGNAME.files for clarity + +* Fri Dec 11 2009 Jens Petersen - 6.12.1-0.1 +- update to ghc-6.12.1-pre +- separate bcond options into enabled and disabled for clarity +- only enable shared for intel x86 archs (Lorenzo Villani) +- add quick build profile (Lorenzo Villani) +- remove package_debugging hack (use "make install-short") +- drop sed BR (Lorenzo Villani) +- put all build.mk config into one cat block (Lorenzo Villani) +- export CFLAGS to configure (Lorenzo Villani) +- add dynamic linking test to check section (thanks Lorenzo Villani) +- remove old ghc66 obsoletes +- subpackage huge ghc internals library (thanks Lorenzo Villani) + - BR ghc-rpm-macros >= 0.3.0 +- move html docs to docdir/ghc from html subdir (Lorenzo Villani) +- disable smp build for now: broken for 8 cpus at least + +* Wed Nov 18 2009 Jens Petersen - 6.12.0.20091121-1 +- update to 6.12.1 rc2 +- build shared libs, yay! and package in standalone libs subpackage +- add bcond for manual and extralibs +- reenable ppc secondary arch +- don't provide ghc-haddock-* +- remove obsolete post requires policycoreutils +- add vanilla v to GhcLibWays when building without prof +- handle without hscolour +- can't smp make currently +- lots of filelist fixes for handling shared libs +- run ghc-pkg recache posttrans +- no need to install gen_contents_index by hand +- manpage is back + +* Thu Nov 12 2009 Bryan O'Sullivan - 6.12.0.20091010-8 +- comprehensive attempts at packaging fixes + +* Thu Nov 12 2009 Bryan O'Sullivan - 6.12.0.20091010-7 +- fix package.conf stuff + +* Thu Nov 12 2009 Bryan O'Sullivan - 6.12.0.20091010-6 +- give up trying to install man pages + +* Thu Nov 12 2009 Bryan O'Sullivan - 6.12.0.20091010-5 +- try to install man pages + +* Thu Nov 12 2009 Bryan O'Sullivan - 6.12.0.20091010-3 +- fix %%check + +* Sun Oct 11 2009 Bryan O'Sullivan - 6.12.0.20091010-2 +- disable ppc for now (seems unsupported) +- buildreq ncurses-devel + +* Sun Oct 11 2009 Bryan O'Sullivan - 6.12.0.20091010-1 +- Update to 6.12 RC 1 + +* Thu Oct 1 2009 Jens Petersen +- selinux file context no longer needed in post script +- (for ghc-6.12-shared) drop ld.so.conf.d files + +* Fri Jul 24 2009 Fedora Release Engineering - 6.10.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jul 21 2009 Bryan O'Sullivan - 6.10.4-1 +- update to 6.10.4 + +* Sat May 30 2009 Jens Petersen - 6.10.3-3 +- add haddock_version and use it to obsolete haddock and ghc-haddock-* + +* Fri May 22 2009 Jens Petersen - 6.10.3-2 +- update haddock provides and obsoletes +- drop ghc-mk-pkg-install-inplace.patch: no longer needed with new 6.11 buildsys +- add bcond for extralibs +- rename doc bcond to manual + +* Wed May 13 2009 Jens Petersen - 6.10.3-1 +- update to 6.10.3 +- haskline replaces editline, so it is no longer needed to build +- macros.ghc moved to ghc-rpm-macros package +- fix handling of hscolor files in filelist generation + +* Tue Apr 28 2009 Jens Petersen - 6.10.2-4 +- add experimental bcond hscolour +- add experimental support for building shared libraries (for ghc-6.11) + - add libs subpackage for shared libraries + - create a ld.conf.d file for libghc*.so + - BR libffi-devel +- drop redundant setting of GhcLibWays in build.mk for no prof +- drop redundant setting of HADDOCK_DOCS +- simplify filelist names +- add a check section based on tests from debian's package +- be more careful about doc files in filelist + +* Fri Apr 24 2009 Jens Petersen - 6.10.2-3 +- define ghc_version in macros.ghc in place of ghcrequires +- drop ghc-requires script for now + +* Sun Apr 19 2009 Jens Petersen - 6.10.2-2 +- add ghc-requires rpm script to generate ghc version dependencies + (thanks to Till Maas) +- update macros.ghc: + - add %%ghcrequires to call above script + - pkg_libdir and pkg_docdir obsoleted in packages and replaced + by ghcpkgdir and ghcdocdir inside macros.ghc + - make filelist also for docs + +* Wed Apr 08 2009 Bryan O'Sullivan - 6.10.2-1 +- Update to 6.10.2 + +* Fri Feb 27 2009 Jens Petersen - 6.10.1-13 +- ok let's stick with ExclusiveArch for brevity + +* Fri Feb 27 2009 Jens Petersen - 6.10.1-12 +- drop ghc_archs since it breaks koji +- fix missing -devel in ghc_gen_filelists +- change from ExclusiveArch to ExcludeArch ppc64 since alpha was bootstrapped + by oliver + +* Wed Feb 25 2009 Jens Petersen - 6.10.1-11 +- use %%ix86 for change from i386 to i586 in rawhide +- add ghc_archs macro in macros.ghc for other packages +- obsolete haddock09 +- use %%global instead of %%define +- use bcond for doc and prof +- rename ghc_gen_filelists lib filelist to -devel.files + +* Tue Feb 24 2009 Fedora Release Engineering - 6.10.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Feb 13 2009 Jens Petersen - 6.10.1-9 +- require and buildrequire libedit-devel > 2.11-2 +- protect ghc_register_pkg and ghc_unregister_pkg + +* Fri Jan 23 2009 Jens Petersen - 6.10.1-8 +- fix to libedit means can drop ncurses-devel BR workaround (#481252) + +* Mon Jan 19 2009 Jens Petersen - 6.10.1-7 +- buildrequire ncurses-devel to fix build of missing editline package needed + for ghci line-editing (#478466) +- move spec templates to cabal2spec package for easy updating +- provide correct haddock version + +* Mon Dec 1 2008 Jens Petersen - 6.10.1-6 +- update macros.ghc to latest proposed revised packaging guidelines: + - use runghc + - drop trivial cabal_build and cabal_haddock macros + - ghc_register_pkg and ghc_unregister_pkg replace ghc_preinst_script, + ghc_postinst_script, ghc_preun_script, and ghc_postun_script +- library templates prof subpackage requires main library again +- make cabal2spec work on .cabal files too, and + read and check name and version directly from .cabal file +- ghc-prof does not need to own libraries dirs owned by main package + +* Tue Nov 25 2008 Jens Petersen - 6.10.1-5 +- add cabal2spec and template files for easy cabal hackage packaging +- simplify script macros: make ghc_preinst_script and ghc_postun_script no-ops + and ghc_preun_script only unregister for uninstall + +* Tue Nov 11 2008 Jens Petersen - 6.10.1-4 +- fix broken urls to haddock docs created by gen_contents_index script +- avoid haddock errors when upgrading by making doc post script posttrans + +* Wed Nov 05 2008 Bryan O'Sullivan - 6.10.1-3 +- libraries/prologue.txt should not have been ghosted + +* Tue Nov 04 2008 Bryan O'Sullivan - 6.10.1-2 +- Fix a minor packaging glitch + +* Tue Nov 04 2008 Bryan O'Sullivan - 6.10.1-1 +- Update to 6.10.1 + +* Thu Oct 23 2008 Jens Petersen - 6.10.0.20081007-9 +- remove redundant --haddockdir from cabal_configure +- actually ghc-pkg no longer seems to create package.conf.old backups +- include LICENSE in doc + +* Thu Oct 23 2008 Jens Petersen - 6.10.0.20081007-8 +- need to create ghost package.conf.old for ghc-6.10 + +* Thu Oct 23 2008 Jens Petersen - 6.10.0.20081007-7 +- use gen_contents_index to re-index haddock +- add %%pkg_docdir to cabal_configure +- requires(post) ghc for haddock for doc +- improve doc file lists +- no longer need to create ghost package.conf.old +- remove or rename alternatives files more consistently + +* Tue Oct 14 2008 Bryan O'Sullivan - 6.10.0.20081007-6 +- Update macros to install html and haddock bits in the right places + +* Tue Oct 14 2008 Bryan O'Sullivan - 6.10.0.20081007-5 +- Don't use a macro to update the docs for the main doc package + +* Tue Oct 14 2008 Bryan O'Sullivan - 6.10.0.20081007-4 +- Add ghc_haddock_reindex macro +- Generate haddock index after installing ghc-doc package + +* Mon Oct 13 2008 Jens Petersen - 6.10.0.20081007-3 +- provide haddock = 2.2.2 +- add selinux file context for unconfined_execmem following darcs package +- post requires policycoreutils + +* Sun Oct 12 2008 Bryan O'Sullivan - 6.10.0.20081007-2.fc10 +- Use libedit in preference to readline, for BSD license consistency +- With haddock bundled now, obsolete standalone versions (but not haddock09) +- Drop obsolete freeglut-devel, openal-devel, and haddock09 dependencies + +* Sun Oct 12 2008 Bryan O'Sullivan - 6.10.0.20081007-1.fc10 +- Update to 6.10.1 release candidate 1 + +* Wed Oct 1 2008 Bryan O'Sullivan - 6.10.0.20080921-1.fc10 +- Drop unneeded haddock patch +- Rename hsc2hs to hsc2hs-ghc so the alternatives symlink to it will work + +* Wed Sep 24 2008 Jens Petersen - 6.8.3-5 +- bring back including haddock-generated lib docs, now under docdir/ghc +- fix macros.ghc filepath (#460304) +- spec file cleanups: +- fix the source urls back +- drop requires chkconfig +- do not override __spec_install_post +- setup docs building in build.mk +- no longer need to remove network/include/Typeable.h +- install binaries under libdir not libexec +- remove hsc2hs and runhaskell binaries since they are alternatives + +* Wed Sep 17 2008 Jens Petersen - 6.8.3-4 +- add macros.ghc for new Haskell Packaging Guidelines (#460304) + +* Wed Jun 18 2008 Bryan O'Sullivan - 6.8.3-3 +- Add symlinks from _libdir, where ghc looks, to _libexecdir +- Patch libraries/gen_contents_index to use haddock-0.9 + +* Wed Jun 18 2008 Bryan O'Sullivan - 6.8.3-2 +- Remove unnecessary dependency on alex + +* Wed Jun 18 2008 Bryan O'Sullivan - 6.8.3-1 +- Upgrade to 6.8.3 +- Drop the ghc682-style naming scheme, obsolete those packages +- Manually strip binaries + +* Tue Apr 8 2008 Jens Petersen - 6.8.2-10 +- another rebuild attempt + +* Thu Feb 14 2008 Jens Petersen - 6.8.2-9 +- remove unrecognized --docdir and --htmldir from configure +- drop old buildrequires on libX11-devel and libXt-devel +- rebuild with gcc43 + +* Sun Jan 06 2008 Bryan O'Sullivan - 6.8.2-7 +- More attempts to fix docdir + +* Sun Jan 06 2008 Bryan O'Sullivan - 6.8.2-6 +- Fix docdir + +* Wed Dec 12 2007 Bryan O'Sullivan - 6.8.2-1 +- Update to 6.8.2 + +* Fri Nov 23 2007 Bryan O'Sullivan - 6.8.1-2 +- Exclude alpha + +* Thu Nov 8 2007 Bryan O'Sullivan - 6.8.1-2 +- Drop bit-rotted attempts at making package relocatable + +* Sun Nov 4 2007 Michel Salim - 6.8.1-1 +- Update to 6.8.1 + +* Sat Sep 29 2007 Bryan O'Sullivan - 6.8.0.20070928-2 +- add happy to BuildRequires + +* Sat Sep 29 2007 Bryan O'Sullivan - 6.8.0.20070928-1 +- prepare for GHC 6.8.1 by building a release candidate snapshot + +* Thu May 10 2007 Bryan O'Sullivan - 6.6.1-3 +- install man page for ghc + +* Thu May 10 2007 Bryan O'Sullivan - 6.6.1-2 +- exclude ppc64 for now, due to lack of time to bootstrap + +* Wed May 9 2007 Bryan O'Sullivan - 6.6.1-1 +- update to 6.6.1 release + +* Mon Jan 22 2007 Jens Petersen - 6.6-2 +- remove truncated duplicate Typeable.h header in network package + (Bryan O'Sullivan, #222865) + +* Fri Nov 3 2006 Jens Petersen - 6.6-1 +- update to 6.6 release +- buildrequire haddock >= 0.8 +- fix summary of ghcver package (Michel Salim, #209574) + +* Thu Sep 28 2006 Jens Petersen - 6.4.2-4 +- turn on docs generation again + +* Mon Sep 25 2006 Jens Petersen - 6.4.2-3.fc6 +- ghost package.conf.old (Gérard Milmeister) +- set unconfined_execmem_exec_t context on executables with ghc rts (#195821) +- turn off building docs until haddock is back + +* Sat Apr 29 2006 Jens Petersen - 6.4.2-2.fc6 +- buildrequire libXt-devel so that the X11 package and deps get built + (Garrett Mitchener, #190201) + +* Thu Apr 20 2006 Jens Petersen - 6.4.2-1.fc6 +- update to 6.4.2 release + +* Thu Mar 2 2006 Jens Petersen - 6.4.1-3.fc5 +- buildrequire libX11-devel instead of xorg-x11-devel (Kevin Fenzi, #181024) +- make ghc-doc require ghc (Michel Salim, #180449) + +* Tue Oct 11 2005 Jens Petersen - 6.4.1-2.fc5 +- turn on build_doc since haddock is now in Extras +- no longer specify ghc version to build with (Ville Skyttä, #170176) + +* Tue Sep 20 2005 Jens Petersen - 6.4.1-1.fc5 +- 6.4.1 release + - the following patches are now upstream: ghc-6.4-powerpc.patch, + rts-GCCompact.h-x86_64.patch, ghc-6.4-dsforeign-x86_64-1097471.patch, + ghc-6.4-rts-adjustor-x86_64-1097471.patch + - builds with gcc4 so drop %%_with_gcc32 + - x86_64 build restrictions (no ghci and split objects) no longer apply + +* Tue May 31 2005 Jens Petersen +- add %%dist to release + +* Thu May 12 2005 Jens Petersen - 6.4-8 +- initial import into Fedora Extras + +* Thu May 12 2005 Jens Petersen +- add build_prof and build_doc switches for -doc and -prof subpackages +- add _with_gcc32 switch since ghc-6.4 doesn't build with gcc-4.0 + +* Wed May 11 2005 Jens Petersen - 6.4-7 +- make package relocatable (ghc#1084122) + - add post install scripts to replace prefix in driver scripts +- buildrequire libxslt and docbook-style-xsl instead of docbook-utils and flex + +* Fri May 6 2005 Jens Petersen - 6.4-6 +- add ghc-6.4-dsforeign-x86_64-1097471.patch and + ghc-6.4-rts-adjustor-x86_64-1097471.patch from trunk to hopefully fix + ffi support on x86_64 (Simon Marlow, ghc#1097471) +- use XMLDocWays instead of SGMLDocWays to build documentation fully + +* Mon May 2 2005 Jens Petersen - 6.4-5 +- add rts-GCCompact.h-x86_64.patch to fix GC issue on x86_64 (Simon Marlow) + +* Thu Mar 17 2005 Jens Petersen - 6.4-4 +- add ghc-6.4-powerpc.patch (Ryan Lortie) +- disable building interpreter rather than install and delete on x86_64 + +* Wed Mar 16 2005 Jens Petersen - 6.4-3 +- make ghc require ghcver of same ver-rel +- on x86_64 remove ghci for now since it doesn't work and all .o files + +* Tue Mar 15 2005 Jens Petersen - 6.4-2 +- ghc requires ghcver (Amanda Clare) + +* Sat Mar 12 2005 Jens Petersen - 6.4-1 +- 6.4 release + - x86_64 build no longer unregisterised +- use sed instead of perl to tidy filelists +- buildrequire ghc64 instead of ghc-6.4 +- no epoch for ghc64-prof's ghc64 requirement +- install docs directly in docdir + +* Fri Jan 21 2005 Jens Petersen - 6.2.2-2 +- add x86_64 port + - build unregistered and without splitobjs + - specify libdir to configure and install +- rename ghc-prof to ghcXYZ-prof, which obsoletes ghc-prof + +* Mon Dec 6 2004 Jens Petersen - 6.2.2-1 +- move ghc requires to ghcXYZ + +* Wed Nov 24 2004 Jens Petersen - 6.2.2-0.fdr.1 +- ghc622 + - provide ghc = %%version +- require gcc, gmp-devel and readline-devel + +* Fri Oct 15 2004 Gerard Milmeister - 6.2.2-0.fdr.1 +- New Version 6.2.2 + +* Mon Mar 22 2004 Gerard Milmeister - 6.2.1-0.fdr.1 +- New Version 6.2.1 + +* Tue Dec 16 2003 Gerard Milmeister - 6.2-0.fdr.1 +- New Version 6.2 + +* Tue Dec 16 2003 Gerard Milmeister - 6.0.1-0.fdr.3 +- A few minor specfile tweaks + +* Mon Dec 15 2003 Gerard Milmeister - 6.0.1-0.fdr.2 +- Different file list generation + +* Mon Oct 20 2003 Gerard Milmeister - 6.0.1-0.fdr.1 +- First Fedora release +- Added generated html docs, so that haddock is not needed + +* Wed Sep 26 2001 Manuel Chakravarty +- small changes for 5.04 + +* Wed Sep 26 2001 Manuel Chakravarty +- split documentation off into a separate package +- adapt to new docbook setup in RH7.1 + +* Mon Apr 16 2001 Manuel Chakravarty +- revised for 5.00 +- also runs autoconf automagically if no ./configure found + +* Thu Jun 22 2000 Sven Panne +- removed explicit usage of hslibs/docs, it belongs to ghc/docs/set + +* Sun Apr 23 2000 Manuel Chakravarty +- revised for ghc 4.07; added suggestions from Pixel +- added profiling package + +* Tue Dec 7 1999 Manuel Chakravarty +- version for use from CVS + +* Thu Sep 16 1999 Manuel Chakravarty +- modified for GHC 4.04, patchlevel 1 (no more 62 tuple stuff); minimises use + of patch files - instead emits a build.mk on-the-fly + +* Sat Jul 31 1999 Manuel Chakravarty +- modified for GHC 4.04 + +* Wed Jun 30 1999 Manuel Chakravarty +- some more improvements from vbzoli + +* Fri Feb 26 1999 Manuel Chakravarty +- modified for GHC 4.02 + +* Thu Dec 24 1998 Zoltan Vorosbaranyi +- added BuildRoot +- files located in /usr/local/bin, /usr/local/lib moved to /usr/bin, /usr/lib + +* Tue Jul 28 1998 Manuel Chakravarty +- original version