lang/ghc: Starting with GHC 9.2.7 switch to the Hadrian build system.
Hadrian is a new build system for GHC which is written in Haskell and requires bootstrapping process. Ugh. Luckily, we only prepare a source bootstrap archive as bootstrap GHC has everything needed to build it. Hadrian also fails to build GHC on i386 so build it the old way for now.
This commit is contained in:
parent
809d194919
commit
ddc73a4bb4
7 changed files with 5441 additions and 20 deletions
|
@ -1,5 +1,6 @@
|
|||
PORTNAME= cabal-install
|
||||
PORTVERSION= 3.10.1.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= devel haskell
|
||||
EXTRACT_ONLY= ${DISTNAME_DEFAULT}${_GITHUB_EXTRACT_SUFX}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
PORTNAME= ghc
|
||||
PORTVERSION= ${GHC_VERSION}
|
||||
PORTREVISION?= 1
|
||||
CATEGORIES= lang haskell
|
||||
MASTER_SITES= https://www.haskell.org/ghc/dist/${PORTVERSION}/:source \
|
||||
LOCAL/arrowd/:boot
|
||||
|
@ -20,6 +21,7 @@ USES= autoreconf compiler:c11 gmake iconv:patch,translit \
|
|||
|
||||
GNU_CONFIGURE= yes
|
||||
CONFIGURE_ARGS+= --docdir=${DOCSDIR}
|
||||
CONFIGURE_ENV= ALEX=/usr/bin/true HAPPY=/usr/bin/true
|
||||
INSTALL_TARGET= install-strip
|
||||
USE_LOCALE= en_US.UTF-8
|
||||
USE_PERL5= build
|
||||
|
@ -43,16 +45,18 @@ PROFILE_DESC= Add support for performance profiling
|
|||
BOOT_CONFIGURE_ENV= GHC=${LOCALBASE}/bin/ghc
|
||||
BOOT_CONFIGURE_ENV_OFF= GHC=${BOOT_GHC} LLC=llc${BOOT_LLVM_VERSION} OPT=opt${BOOT_LLVM_VERSION}
|
||||
|
||||
DOCS_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx
|
||||
DOCS_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx \
|
||||
xelatex:print/tex-xetex \
|
||||
${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf:x11-fonts/dejavu
|
||||
DOCS_VARS= enable_docs=YES
|
||||
DOCS_VARS_OFF= enable_docs=NO
|
||||
DOCS_VARS_OFF= enable_docs=NO hadrian_docs_arg=--docs=none
|
||||
|
||||
DYNAMIC_CONFIGURE_WITH= system-libffi \
|
||||
ffi-includes=${LOCALBASE}/include \
|
||||
ffi-libraries=${LOCALBASE}/lib
|
||||
DYNAMIC_LIB_DEPENDS= libffi.so:devel/libffi
|
||||
DYNAMIC_VARS= enable_dynamic=YES
|
||||
DYNAMIC_VARS_OFF= enable_dynamic=NO
|
||||
DYNAMIC_VARS= enable_dynamic=YES hadrian_setting_dynamic=True
|
||||
DYNAMIC_VARS_OFF= enable_dynamic=NO hadrian_setting_dynamic=False
|
||||
|
||||
# do not replace this with GMP_CONFIGURE_WITH
|
||||
# it adds "--without-gmp-*" when the option is OFF, which results in "no" value
|
||||
|
@ -60,15 +64,16 @@ DYNAMIC_VARS_OFF= enable_dynamic=NO
|
|||
GMP_CONFIGURE_ON= --with-gmp-includes=${LOCALBASE}/include \
|
||||
--with-gmp-libraries=${LOCALBASE}/lib
|
||||
GMP_LIB_DEPENDS= libgmp.so:math/gmp
|
||||
GMP_VARS_OFF= hadrian_gmp_arg=--bignum=native
|
||||
|
||||
PROFILE_VARS= enable_profile=YES
|
||||
PROFILE_VARS_OFF= enable_profile=NO
|
||||
PROFILE_VARS= enable_profile=YES hadrian_setting_profile=True
|
||||
PROFILE_VARS_OFF= enable_profile=NO hadrian_setting_profile=False
|
||||
|
||||
GHC_VERSION?= 9.2.7
|
||||
LLVM_VERSION?= 12
|
||||
BOOT_GHC_VERSION= 8.10.7
|
||||
BOOT_GHC_VERSION?= 8.10.7
|
||||
# LLVM version that bootstrap compiler uses
|
||||
BOOT_LLVM_VERSION= 10
|
||||
BOOT_LLVM_VERSION?= 10
|
||||
|
||||
BASE_PACKAGES?= Cabal-3.6.3.0 array-0.5.4.0 base-4.16.4.0 binary-0.8.9.0 \
|
||||
bytestring-0.11.4.0 containers-0.6.5.1 deepseq-1.4.6.1 \
|
||||
|
@ -99,6 +104,29 @@ BUILD_MK= DYNAMIC_GHC_PROGRAMS=${ENABLE_DYNAMIC} \
|
|||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${GHC_VERSION:C/\..*//g} >= 9 && ${ARCH} != i386
|
||||
# hadrian build on i386 fails due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269570
|
||||
# relocation R_386_TLS_LE cannot be used with -shared
|
||||
USE_HADRIAN= yes
|
||||
.endif
|
||||
|
||||
.ifdef USE_HADRIAN
|
||||
LIB_DEPENDS+= libffi.so:devel/libffi
|
||||
.undef DYNAMIC_CONFIGURE_WITH
|
||||
CONFIGURE_ARGS+= --with-system-libffi --with-ffi-includes=${LOCALBASE}/include --with-ffi-libraries=${LOCALBASE}/lib
|
||||
SHEBANG_FILES+= hadrian/bootstrap/bootstrap.py
|
||||
HADRIAN_CMD= ${WRKSRC}/hadrian/bootstrap/_build/bin/hadrian ${HADRIAN_DOCS_ARG} ${HADRIAN_GMP_ARG}
|
||||
DO_MAKE_BUILD= ${SETENV} ${MAKE_ENV} ${HADRIAN_CMD} ${_MAKE_JOBS} --flavour=ports
|
||||
ALL_TARGET= binary-dist-dir
|
||||
INSTALL_WRKSRC= ${WRKSRC}/_build/bindist/ghc-${GHC_VERSION}-${GHC_ARCH}-portbld-freebsd
|
||||
INSTALL_TARGET= install
|
||||
PLIST= ${.CURDIR}/pkg-plist.hadrian
|
||||
|
||||
. if (empty(PORT_OPTIONS:MDYNAMIC) || empty(PORT_OPTIONS:MPROFILE))
|
||||
IGNORE= Building with Hadrian requires both DYNAMIC and PROFILE for now
|
||||
. endif
|
||||
.endif
|
||||
|
||||
.if ${SLAVE_PORT} != "yes"
|
||||
PORTDOCS= *
|
||||
.endif
|
||||
|
@ -115,6 +143,9 @@ BUILD_DEPENDS+= ${LOCALBASE}/lib/compat/libncursesw.so.8:misc/compat12x
|
|||
|
||||
.if empty(PORT_OPTIONS:MBOOT)
|
||||
DISTFILES+= ghc-${BOOT_GHC_VERSION}-boot-${ARCH}-freebsd${EXTRACT_SUFX}:boot
|
||||
. if !defined(IGNORE_MISSING_HADRIAN) && defined(USE_HADRIAN)
|
||||
DISTFILES+= hadrian-${GHC_VERSION}-boot.tar.gz:boot
|
||||
. endif
|
||||
.endif # MBOOT
|
||||
|
||||
.if ${ARCH} == aarch64 || ${ARCH:Marmv*}
|
||||
|
@ -138,6 +169,11 @@ post-patch:
|
|||
.for line in ${BUILD_MK}
|
||||
${ECHO_CMD} ${line} >> ${WRKSRC}/mk/build.mk
|
||||
.endfor
|
||||
.ifdef USE_HADRIAN
|
||||
${SED} -e 's|%%DYNAMIC%%|${HADRIAN_SETTING_DYNAMIC}|' \
|
||||
-e 's|%%PROFILE%%|${HADRIAN_SETTING_PROFILE}|' \
|
||||
${PATCHDIR}/UserSettings.hs > ${WRKSRC}/hadrian/src/UserSettings.hs
|
||||
.endif
|
||||
|
||||
# TODO: remove this after rerolling all bootstraps
|
||||
post-patch-BOOT-off:
|
||||
|
@ -154,11 +190,28 @@ pre-configure:
|
|||
cd ${BOOT_DIR} && ${CONFIGURE_ENV} ${CONFIGURE_CMD} --prefix=${BOOT_DIR}
|
||||
cd ${BOOT_DIR} && PACKAGES='' ${MAKE_CMD} install
|
||||
.endif
|
||||
.ifdef USE_HADRIAN
|
||||
# Compile Hadrian
|
||||
cd ${WRKSRC}/hadrian/bootstrap && \
|
||||
./bootstrap.py -w ${BOOT_GHC} -s ${DISTDIR}/hadrian-${GHC_VERSION}-boot.tar.gz
|
||||
.endif
|
||||
|
||||
.ifdef USE_HADRIAN
|
||||
pre-install:
|
||||
cd ${INSTALL_WRKSRC} && ${CONFIGURE_ENV} ${CONFIGURE_CMD} --prefix=${PREFIX}
|
||||
.endif
|
||||
|
||||
post-install:
|
||||
${FIND} ${STAGEDIR}${DOCSDIR}/html -name .buildinfo -delete
|
||||
.ifdef USE_HADRIAN
|
||||
# Hadrian doesn't have --docdir
|
||||
${MV} ${STAGEDIR}${DOCSDIR}-${GHC_VERSION} ${STAGEDIR}${DOCSDIR}
|
||||
# These includes are duplicated in lib/ghc-X.Y.Z/lib/<triple>/rts-X.Y.Z/include
|
||||
${RM} -r ${STAGEDIR}${PREFIX}/include/*
|
||||
.endif
|
||||
${FIND} ${STAGEDIR}${DOCSDIR} -name .buildinfo -delete
|
||||
# For some reason, INSTALL_TARGET=install-strip doesn't cause libraries to be stripped
|
||||
# Run strip on them manually
|
||||
${FIND} ${STAGEDIR}${PREFIX}/lib/ghc-${GHC_VERSION} -type f -perm +111 -exec ${STRIP_CMD} {} +
|
||||
${FIND} ${STAGEDIR}${PREFIX}/lib/ghc-${GHC_VERSION} -name '*.so' -exec ${STRIP_CMD} {} +
|
||||
${RM} ${STAGEDIR}${PREFIX}/bin/haddock
|
||||
.if ${SLAVE_PORT} == "yes"
|
||||
|
@ -189,34 +242,78 @@ fixup-plist:
|
|||
# Set all OPTIONS to OFF when generating bootstraps
|
||||
.PHONY: create-bootstrap
|
||||
create-bootstrap:
|
||||
.ifndef USE_HADRIAN
|
||||
cd ${WRKSRC} \
|
||||
&& ${ECHO} "BIN_DIST_NAME=ghc-${GHC_VERSION}-boot" >> mk/build.mk \
|
||||
&& ${ECHO} "BIN_DIST_TAR=ghc-${GHC_VERSION}-boot.tar" >> mk/build.mk \
|
||||
&& ${ECHO} "HADDOCK_DOCS=NO" >> mk/build.mk \
|
||||
&& ${ECHO_CMD} "BIN_DIST_NAME=ghc-${GHC_VERSION}-boot" >> mk/build.mk \
|
||||
&& ${ECHO_CMD} "BIN_DIST_TAR=ghc-${GHC_VERSION}-boot.tar" >> mk/build.mk \
|
||||
&& ${ECHO_CMD} "HADDOCK_DOCS=NO" >> mk/build.mk \
|
||||
&& ${GMAKE} binary-dist TAR_COMP=xz \
|
||||
&& ${MV} ${WRKSRC}/ghc-${GHC_VERSION}-boot-${GHC_ARCH}-portbld-freebsd.tar.xz /tmp/ghc-${GHC_VERSION}-boot-${ARCH}-freebsd.tar.xz
|
||||
.else
|
||||
cd ${WRKSRC} \
|
||||
&& ${HADRIAN_CMD} binary-dist-xz \
|
||||
&& ${MV} ${WRKSRC}/_build/bindist/ghc-${GHC_VERSION}-${GHC_ARCH}-portbld-freebsd.tar.xz /tmp/ghc-${GHC_VERSION}-boot-${ARCH}-freebsd.tar.xz
|
||||
.endif
|
||||
|
||||
cd /tmp \
|
||||
@cd /tmp \
|
||||
&& sha256 ghc-${GHC_VERSION}-boot-${ARCH}-freebsd.tar.xz \
|
||||
&& ${ECHO} -n "SIZE (ghc-${GHC_VERSION}-boot-${ARCH}-freebsd.tar.xz) = " \
|
||||
&& ${ECHO_CMD} -n "SIZE (ghc-${GHC_VERSION}-boot-${ARCH}-freebsd.tar.xz) = " \
|
||||
&& ${STAT} -f %z ghc-${GHC_VERSION}-boot-${ARCH}-freebsd.tar.xz
|
||||
|
||||
# Much like create-bootstrap, just different naming and output format
|
||||
# Set DYNAMIC, GMP and PROFILE to ON, and DOCS to OFF when generating Stack bindist
|
||||
.PHONY: create-stack-bindist
|
||||
create-stack-bindist:
|
||||
.ifndef USE_HADRIAN
|
||||
cd ${WRKSRC} \
|
||||
&& ${GMAKE} binary-dist TAR_COMP=xz \
|
||||
&& ${MV} ${WRKSRC}/ghc-${GHC_VERSION}-${GHC_ARCH}-portbld-freebsd.tar.xz /tmp/
|
||||
.else
|
||||
cd ${WRKSRC} \
|
||||
&& ${HADRIAN_CMD} binary-dist-xz \
|
||||
&& ${MV} ${WRKSRC}/_build/bindist/ghc-${GHC_VERSION}-${GHC_ARCH}-portbld-freebsd.tar.xz /tmp/
|
||||
.endif
|
||||
|
||||
cd /tmp \
|
||||
&& ${ECHO} "${GHC_VERSION}:" \
|
||||
&& ${ECHO} "url: \"http://distcache.FreeBSD.org/local-distfiles/arrowd/stack-bindists/ghc-${GHC_VERSION}-${GHC_ARCH}-portbld-freebsd.tar.xz\"" \
|
||||
&& ${ECHO} -n "content-length: " \
|
||||
&& ${ECHO_CMD} "${GHC_VERSION}:" \
|
||||
&& ${ECHO_CMD} "url: \"http://distcache.FreeBSD.org/local-distfiles/arrowd/stack-bindists/ghc-${GHC_VERSION}-${GHC_ARCH}-portbld-freebsd.tar.xz\"" \
|
||||
&& ${ECHO_CMD} -n "content-length: " \
|
||||
&& ${STAT} -f %z ghc-${GHC_VERSION}-${GHC_ARCH}-portbld-freebsd.tar.xz \
|
||||
&& ${ECHO} -n "sha1: " \
|
||||
&& ${ECHO_CMD} -n "sha1: " \
|
||||
&& sha1 -q ghc-${GHC_VERSION}-${GHC_ARCH}-portbld-freebsd.tar.xz \
|
||||
&& ${ECHO} -n "sha256: " \
|
||||
&& ${ECHO_CMD} -n "sha256: " \
|
||||
&& sha256 -q ghc-${GHC_VERSION}-${GHC_ARCH}-portbld-freebsd.tar.xz
|
||||
|
||||
.PHONY: create-hadrian-bootstrap
|
||||
create-hadrian-bootstrap:
|
||||
.if !empty(PORT_OPTIONS:MBOOT)
|
||||
@${ECHO_CMD} "Generating Hadrian bootstrap without bootstrap GHC isn't supported"
|
||||
${FALSE}
|
||||
.endif
|
||||
${MAKE} -C ${.CURDIR} patch build-depends IGNORE_MISSING_HADRIAN=yes
|
||||
# We always would need to create our own plan.json file and put it into PATCHDIR:
|
||||
# Predefined plans use integer-gmp, while we build bootstraps with integer-simple
|
||||
# Predefined plans aren't pretty-printed, so we can't easily patch them
|
||||
cd ${WRKSRC}/hadrian/bootstrap && \
|
||||
./bootstrap.py -w ${BOOT_GHC} --deps ${PATCHDIR}/plan-bootstrap-${BOOT_GHC_VERSION:C/\./_/g}.json fetch -o /tmp/hadrian-${GHC_VERSION}-boot
|
||||
|
||||
@cd /tmp \
|
||||
&& sha256 hadrian-${GHC_VERSION}-boot.tar.gz \
|
||||
&& ${ECHO_CMD} -n "SIZE (hadrian-${GHC_VERSION}-boot.tar.gz) = " \
|
||||
&& ${STAT} -f %z hadrian-${GHC_VERSION}-boot.tar.gz
|
||||
@${ECHO_CMD}
|
||||
@${ECHO_CMD} "Remember to check that hadrian bootstrap builds fine by running \"make check-hadrian-bootstrap\""
|
||||
|
||||
.PHONY: check-hadrian-bootstrap
|
||||
check-hadrian-bootstrap:
|
||||
.if !empty(PORT_OPTIONS:MBOOT)
|
||||
@${ECHO_CMD} "Generating Hadrian bootstrap without bootstrap GHC isn't supported"
|
||||
${FALSE}
|
||||
.endif
|
||||
# Install bootstrap GHC
|
||||
${MAKE} -C ${.CURDIR} pre-configure
|
||||
# Compile Hadrian
|
||||
cd ${WRKSRC}/hadrian/bootstrap && \
|
||||
./bootstrap.py -w ${BOOT_GHC} -s /tmp/hadrian-${GHC_VERSION}-boot.tar.gz
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
|
@ -3,6 +3,10 @@ SHA256 (ghc-9.2.7-src.tar.xz) = a253567a17b734a4c0dd0ffa296d33c2a5b5a54a77df9888
|
|||
SIZE (ghc-9.2.7-src.tar.xz) = 24610432
|
||||
SHA256 (ghc-8.10.7-src.tar.xz) = e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d
|
||||
SIZE (ghc-8.10.7-src.tar.xz) = 19932668
|
||||
SHA256 (hadrian-9.2.7-boot.tar.gz) = e332380ecf69fee189e6d9bc305435954c0b93427ad52bf0da0b9539b6461e54
|
||||
SIZE (hadrian-9.2.7-boot.tar.gz) = 1472978
|
||||
SHA256 (ghc-9.2.7-boot-amd64-freebsd.tar.xz) = 97a5e4b9974086db535e36da44d0dec5ddf5557983cf97d1d5ef7acc9e00cfbc
|
||||
SIZE (ghc-9.2.7-boot-amd64-freebsd.tar.xz) = 118525952
|
||||
SHA256 (ghc-8.10.7-boot-amd64-freebsd.tar.xz) = 5adfeceee2c3aa1208da174390cbb8e8c1d0a333b7c4a3a676a63f93beaf3126
|
||||
SIZE (ghc-8.10.7-boot-amd64-freebsd.tar.xz) = 70607916
|
||||
SHA256 (ghc-8.10.7-boot-i386-freebsd.tar.xz) = d841a6abf2b97e34feb9c71a85520a78dd667bfb6d6a7f401fa8a92b558928dc
|
||||
|
|
74
lang/ghc/files/UserSettings.hs
Normal file
74
lang/ghc/files/UserSettings.hs
Normal file
|
@ -0,0 +1,74 @@
|
|||
-- Ensure we don't expose any unfoldings to guarantee quick rebuilds
|
||||
{-# OPTIONS_GHC -O0 #-}
|
||||
|
||||
-- If you want to customise your build you should copy this file from
|
||||
-- hadrian/src/UserSettings.hs to hadrian/UserSettings.hs and edit your copy.
|
||||
-- If you don't copy the file your changes will be tracked by git and you can
|
||||
-- accidentally commit them.
|
||||
--
|
||||
-- See doc/user-settings.md for instructions, and src/Flavour.hs for auxiliary
|
||||
-- functions for manipulating flavours.
|
||||
-- Please update doc/user-settings.md when committing changes to this file.
|
||||
module UserSettings (
|
||||
userFlavours, userPackages, userDefaultFlavour,
|
||||
verboseCommand, buildProgressColour, successColour, finalStage
|
||||
) where
|
||||
|
||||
import Flavour
|
||||
import Expression
|
||||
import {-# SOURCE #-} Settings.Default
|
||||
|
||||
-- See doc/user-settings.md for instructions.
|
||||
-- Please update doc/user-settings.md when committing changes to this file.
|
||||
|
||||
-- | Name of the default flavour, i.e the one used when no --flavour=<name>
|
||||
-- argument is passed to Hadrian.
|
||||
userDefaultFlavour :: String
|
||||
userDefaultFlavour = "default"
|
||||
|
||||
-- | User-defined build flavours. See 'userFlavour' as an example.
|
||||
userFlavours :: [Flavour]
|
||||
userFlavours = [userFlavour] -- Add more build flavours if need be.
|
||||
|
||||
-- | This is an example user-defined build flavour. Feel free to modify it and
|
||||
-- use by passing @--flavour=user@ from the command line.
|
||||
userFlavour :: Flavour
|
||||
userFlavour = defaultFlavour {
|
||||
name = "ports"
|
||||
, libraryWays = remove ws defaultLibraryWays
|
||||
, dynamicGhcPrograms = pure %%DYNAMIC%%
|
||||
-- , ghcProfiled = %%PROFILE%%
|
||||
}
|
||||
where
|
||||
ws = concat [
|
||||
if %%DYNAMIC%% then [] else [dynamic]
|
||||
, if %%PROFILE%% then [] else [profiling]]
|
||||
|
||||
-- | Add user-defined packages. Note, this only lets Hadrian know about the
|
||||
-- existence of a new package; to actually build it you need to create a new
|
||||
-- build flavour, modifying the list of packages that are built by default.
|
||||
userPackages :: [Package]
|
||||
userPackages = []
|
||||
|
||||
-- | Set to 'True' to print full command lines during the build process. Note:
|
||||
-- this is a 'Predicate', hence you can enable verbose output only for certain
|
||||
-- targets, e.g.: @verboseCommand = package ghcPrim@.
|
||||
verboseCommand :: Predicate
|
||||
verboseCommand = do
|
||||
verbosity <- expr getVerbosity
|
||||
return $ verbosity >= Loud
|
||||
|
||||
-- | Set colour for build progress messages (e.g. executing a build command).
|
||||
buildProgressColour :: BuildProgressColour
|
||||
buildProgressColour = mkBuildProgressColour (Dull Magenta)
|
||||
|
||||
-- | Set colour for success messages (e.g. a package is built successfully).
|
||||
successColour :: SuccessColour
|
||||
successColour = mkSuccessColour (Dull Green)
|
||||
|
||||
-- | Stop after building the StageN compiler.
|
||||
-- For example, setting the 'finalStage' to 'Stage1' will just build the
|
||||
-- 'Stage1' compiler. Setting it to 'Stage3' will build the 'Stage3'
|
||||
-- compiler. Setting it to 'Stage0' will mean nothing gets built at all.
|
||||
finalStage :: Stage
|
||||
finalStage = Stage2
|
255
lang/ghc/files/plan-bootstrap-8_10_7.json
Normal file
255
lang/ghc/files/plan-bootstrap-8_10_7.json
Normal file
|
@ -0,0 +1,255 @@
|
|||
{
|
||||
"dependencies": [
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c",
|
||||
"revision": 0,
|
||||
"src_sha256": "46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35",
|
||||
"flags": [
|
||||
"-optimised-mixer"
|
||||
],
|
||||
"package": "splitmix",
|
||||
"version": "0.1.0.3"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3",
|
||||
"revision": 6,
|
||||
"src_sha256": "e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de",
|
||||
"flags": [],
|
||||
"package": "random",
|
||||
"version": "1.2.0"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa",
|
||||
"revision": 0,
|
||||
"src_sha256": "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3",
|
||||
"flags": [
|
||||
"-old-random",
|
||||
"+templatehaskell"
|
||||
],
|
||||
"package": "QuickCheck",
|
||||
"version": "2.14.2"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "473ffd59765cc67634bdc55b63c699a85addf3a024089073ec2a862881e83e2a",
|
||||
"revision": 0,
|
||||
"src_sha256": "0b5db110c703e68b251d5883253a934b012110b45393fc65df1b095eb9a4e461",
|
||||
"flags": [
|
||||
"-llvm"
|
||||
],
|
||||
"package": "clock",
|
||||
"version": "0.8.2"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "f1dec740f0f2025790c540732bfd52c556ec55bde4f5dfd7cf18e22bd44ff3d0",
|
||||
"revision": 0,
|
||||
"src_sha256": "f66e26a63b216f0ca33665a75c08eada0a96af192ace83a18d87839d79afdf9d",
|
||||
"flags": [],
|
||||
"package": "extra",
|
||||
"version": "1.7.9"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "aec816ff25418d1b03ba75189e568f490eb86efc47f586d43363fa338e422e81",
|
||||
"revision": 0,
|
||||
"src_sha256": "d92912ee0db0b8c50d6b2ffdc1ae91ee30e2704b47896aa325b42b58a2fcf65b",
|
||||
"flags": [],
|
||||
"package": "filepattern",
|
||||
"version": "0.1.2"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "d965e098e06cc585b201da6137dcb31c40f35eb7a937b833903969447985c076",
|
||||
"revision": 0,
|
||||
"src_sha256": "8061823a4ac521b53912edcba36b956f3159cb885b07ec119af295a6568ca7c4",
|
||||
"flags": [
|
||||
"-integer-gmp"
|
||||
],
|
||||
"package": "hashable",
|
||||
"version": "1.3.1.0"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "66b19fcd813b0e4db3e0bac541bd46606c3b13d3d081d9f9666f4be0f5ff14b8",
|
||||
"revision": 0,
|
||||
"src_sha256": "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd",
|
||||
"flags": [],
|
||||
"package": "heaps",
|
||||
"version": "0.4"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
|
||||
"revision": 0,
|
||||
"src_sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
|
||||
"flags": [],
|
||||
"package": "js-dgtable",
|
||||
"version": "0.5.2"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
|
||||
"revision": 0,
|
||||
"src_sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
|
||||
"flags": [],
|
||||
"package": "js-flot",
|
||||
"version": "0.8.3"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "59ab6c79159549ef94b584abce8e6d3b336014c2cce1337b59a8f637e2856df5",
|
||||
"revision": 0,
|
||||
"src_sha256": "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b",
|
||||
"flags": [],
|
||||
"package": "js-jquery",
|
||||
"version": "3.3.1"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "29de6bfd0cf8ba023ceb806203dfbec0e51e3524e75ffe41056f70b4229c6f0f",
|
||||
"revision": 3,
|
||||
"src_sha256": "6bebecfdf2a57787d9fd5231bfd612b65a92edd7b33a973b2a0f11312b89a3f0",
|
||||
"flags": [],
|
||||
"package": "primitive",
|
||||
"version": "0.7.1.0"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "6310c636f92ed4908fdd0de582b6be31c2851c7b5f2ec14e9f416eb94df7a078",
|
||||
"revision": 0,
|
||||
"src_sha256": "86b01369ab8eb311383a052d389337e2cd71a63088323f02932754df4aa37b55",
|
||||
"flags": [
|
||||
"-debug"
|
||||
],
|
||||
"package": "unordered-containers",
|
||||
"version": "0.2.13.0"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
|
||||
"revision": 0,
|
||||
"src_sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
|
||||
"flags": [],
|
||||
"package": "utf8-string",
|
||||
"version": "1.0.2"
|
||||
},
|
||||
{
|
||||
"source": "hackage",
|
||||
"cabal_sha256": "be81f7c69137e639812380047dfbbdd253ca536cc919504c3bc0f14517e80eb9",
|
||||
"revision": 0,
|
||||
"src_sha256": "5bae8873f628113604159f650802edb249dfbe5802c4612751f680ac987d73ee",
|
||||
"flags": [
|
||||
"-cloud",
|
||||
"-embed-files",
|
||||
"-portable"
|
||||
],
|
||||
"package": "shake",
|
||||
"version": "0.19.4"
|
||||
},
|
||||
{
|
||||
"source": "local",
|
||||
"cabal_sha256": null,
|
||||
"revision": null,
|
||||
"src_sha256": null,
|
||||
"flags": [
|
||||
"+threaded"
|
||||
],
|
||||
"package": "hadrian",
|
||||
"version": "0.1.0.0"
|
||||
}
|
||||
],
|
||||
"builtin": [
|
||||
{
|
||||
"package": "rts",
|
||||
"version": "1.0.1"
|
||||
},
|
||||
{
|
||||
"package": "ghc-prim",
|
||||
"version": "0.6.1"
|
||||
},
|
||||
{
|
||||
"package": "integer-simple",
|
||||
"version": "0.1.2.0"
|
||||
},
|
||||
{
|
||||
"package": "base",
|
||||
"version": "4.14.3.0"
|
||||
},
|
||||
{
|
||||
"package": "array",
|
||||
"version": "0.5.4.0"
|
||||
},
|
||||
{
|
||||
"package": "deepseq",
|
||||
"version": "1.4.4.0"
|
||||
},
|
||||
{
|
||||
"package": "bytestring",
|
||||
"version": "0.10.12.0"
|
||||
},
|
||||
{
|
||||
"package": "containers",
|
||||
"version": "0.6.5.1"
|
||||
},
|
||||
{
|
||||
"package": "binary",
|
||||
"version": "0.8.8.0"
|
||||
},
|
||||
{
|
||||
"package": "filepath",
|
||||
"version": "1.4.2.1"
|
||||
},
|
||||
{
|
||||
"package": "time",
|
||||
"version": "1.9.3"
|
||||
},
|
||||
{
|
||||
"package": "unix",
|
||||
"version": "2.7.2.2"
|
||||
},
|
||||
{
|
||||
"package": "directory",
|
||||
"version": "1.3.6.0"
|
||||
},
|
||||
{
|
||||
"package": "transformers",
|
||||
"version": "0.5.6.2"
|
||||
},
|
||||
{
|
||||
"package": "mtl",
|
||||
"version": "2.2.2"
|
||||
},
|
||||
{
|
||||
"package": "ghc-boot-th",
|
||||
"version": "8.10.7"
|
||||
},
|
||||
{
|
||||
"package": "pretty",
|
||||
"version": "1.1.3.6"
|
||||
},
|
||||
{
|
||||
"package": "template-haskell",
|
||||
"version": "2.16.0.0"
|
||||
},
|
||||
{
|
||||
"package": "text",
|
||||
"version": "1.2.4.1"
|
||||
},
|
||||
{
|
||||
"package": "parsec",
|
||||
"version": "3.1.14.0"
|
||||
},
|
||||
{
|
||||
"package": "process",
|
||||
"version": "1.6.13.2"
|
||||
},
|
||||
{
|
||||
"package": "Cabal",
|
||||
"version": "3.2.1.0"
|
||||
}
|
||||
]
|
||||
}
|
4990
lang/ghc/pkg-plist.hadrian
Normal file
4990
lang/ghc/pkg-plist.hadrian
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
|||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
PKGNAMESUFFIX= 810
|
||||
|
||||
LIB_DEPENDS= ${GMP_LIB_DEPENDS}
|
||||
|
|
Loading…
Reference in a new issue