convert no-th linux build to use cabal.config with pinned versions for reproducability of builds
This commit is contained in:
parent
068b99f09f
commit
9dbd2ff6c2
2 changed files with 227 additions and 15 deletions
208
standalone/linux/cabal.config
Normal file
208
standalone/linux/cabal.config
Normal file
|
@ -0,0 +1,208 @@
|
|||
constraints: Crypto ==4.2.5.1,
|
||||
DAV ==1.0.3,
|
||||
HTTP ==4000.2.17,
|
||||
HUnit ==1.2.5.2,
|
||||
IfElse ==0.85,
|
||||
MissingH ==1.2.1.0,
|
||||
MonadRandom ==0.1.13,
|
||||
QuickCheck ==2.7.6,
|
||||
SHA ==1.6.1,
|
||||
SafeSemaphore ==0.10.1,
|
||||
aeson ==0.7.0.6,
|
||||
ansi-terminal ==0.6.1.1,
|
||||
ansi-wl-pprint ==0.6.7.1,
|
||||
appar ==0.1.4,
|
||||
asn1-encoding ==0.8.1.3,
|
||||
asn1-parse ==0.8.1,
|
||||
asn1-types ==0.2.3,
|
||||
async ==2.0.1.5,
|
||||
attoparsec ==0.11.3.4,
|
||||
attoparsec-conduit ==1.1.0,
|
||||
authenticate ==1.3.2.10,
|
||||
base-unicode-symbols ==0.2.2.4,
|
||||
base16-bytestring ==0.1.1.6,
|
||||
base64-bytestring ==1.0.0.1,
|
||||
bifunctors ==4.1.1.1,
|
||||
bloomfilter ==2.0.0.0,
|
||||
byteable ==0.1.1,
|
||||
byteorder ==1.0.4,
|
||||
case-insensitive ==1.2.0.1,
|
||||
cereal ==0.4.0.1,
|
||||
cipher-aes ==0.2.8,
|
||||
cipher-des ==0.0.6,
|
||||
cipher-rc4 ==0.1.4,
|
||||
clientsession ==0.9.0.3,
|
||||
comonad ==4.2,
|
||||
conduit ==1.1.6,
|
||||
conduit-extra ==1.1.3,
|
||||
connection ==0.2.3,
|
||||
contravariant ==0.6.1.1,
|
||||
cookie ==0.4.1.2,
|
||||
cprng-aes ==0.5.2,
|
||||
crypto-api ==0.13.2,
|
||||
crypto-cipher-types ==0.0.9,
|
||||
crypto-numbers ==0.2.3,
|
||||
crypto-pubkey ==0.2.4,
|
||||
crypto-pubkey-types ==0.4.2.2,
|
||||
crypto-random ==0.0.7,
|
||||
cryptohash ==0.11.6,
|
||||
cryptohash-conduit ==0.1.1,
|
||||
css-text ==0.1.2.1,
|
||||
shakespeare-text ==1.0.2,
|
||||
data-default ==0.5.3,
|
||||
data-default-class ==0.0.1,
|
||||
data-default-instances-base ==0.0.1,
|
||||
data-default-instances-containers ==0.0.1,
|
||||
data-default-instances-dlist ==0.0.1,
|
||||
data-default-instances-old-locale ==0.0.1,
|
||||
dataenc ==0.14.0.7,
|
||||
dbus ==0.10.8,
|
||||
distributive ==0.4.4,
|
||||
dlist ==0.7.0.1,
|
||||
dns ==1.3.0,
|
||||
edit-distance ==0.2.1.2,
|
||||
either ==4.3,
|
||||
email-validate ==1.0.0,
|
||||
entropy ==0.2.1,
|
||||
errors ==1.4.7,
|
||||
exceptions ==0.6.1,
|
||||
failure ==0.2.0.3,
|
||||
fast-logger ==2.1.5,
|
||||
fdo-notify ==0.3.1,
|
||||
feed ==0.3.9.2,
|
||||
file-embed ==0.0.6,
|
||||
fingertree ==0.1.0.0,
|
||||
free ==4.9,
|
||||
gnuidn ==0.2,
|
||||
gnutls ==0.1.4,
|
||||
gsasl ==0.3.5,
|
||||
hS3 ==0.5.7,
|
||||
hamlet ==1.1.9.2,
|
||||
hashable ==1.2.1.0,
|
||||
hinotify ==0.3.5,
|
||||
hjsmin ==0.1.4.7,
|
||||
hslogger ==1.2.1,
|
||||
http-client ==0.3.8.2,
|
||||
http-client-tls ==0.2.2,
|
||||
http-conduit ==2.1.2.3,
|
||||
http-date ==0.0.2,
|
||||
http-types ==0.8.5,
|
||||
hxt ==9.3.1.4,
|
||||
hxt-charproperties ==9.1.1.1,
|
||||
hxt-regex-xmlschema ==9.0.4,
|
||||
hxt-unicode ==9.0.2.2,
|
||||
idna ==0.2,
|
||||
iproute ==1.2.11,
|
||||
json ==0.5,
|
||||
keys ==3.10.1,
|
||||
language-javascript ==0.5.13,
|
||||
lens ==4.4.0.2,
|
||||
libxml-sax ==0.7.5,
|
||||
mime-mail ==0.4.1.2,
|
||||
mime-types ==0.1.0.4,
|
||||
mmorph ==1.0.3,
|
||||
monad-control ==0.3.2.2,
|
||||
monad-logger ==0.3.6.1,
|
||||
monad-loops ==0.4.2.1,
|
||||
monads-tf ==0.1.0.2,
|
||||
mtl ==2.1.2,
|
||||
nats ==0.1.2,
|
||||
network ==2.4.1.2,
|
||||
network-conduit ==1.1.0,
|
||||
network-info ==0.2.0.5,
|
||||
network-multicast ==0.0.10,
|
||||
network-protocol-xmpp ==0.4.6,
|
||||
network-uri ==2.6.0.1,
|
||||
optparse-applicative ==0.10.0,
|
||||
parallel ==3.2.0.4,
|
||||
path-pieces ==0.1.4,
|
||||
pem ==0.2.2,
|
||||
persistent ==1.3.3,
|
||||
persistent-template ==1.3.2.2,
|
||||
pointed ==4.0,
|
||||
prelude-extras ==0.4,
|
||||
profunctors ==4.0.4,
|
||||
publicsuffixlist ==0.1,
|
||||
punycode ==2.0,
|
||||
random ==1.0.1.1,
|
||||
ranges ==0.2.4,
|
||||
reducers ==3.10.2.1,
|
||||
reflection ==1.2.0.1,
|
||||
regex-base ==0.93.2,
|
||||
regex-compat ==0.95.1,
|
||||
regex-posix ==0.95.2,
|
||||
regex-tdfa ==1.2.0,
|
||||
resource-pool ==0.2.1.1,
|
||||
resourcet ==1.1.2.3,
|
||||
safe ==0.3.8,
|
||||
securemem ==0.1.3,
|
||||
semigroupoids ==4.2,
|
||||
semigroups ==0.15.3,
|
||||
shakespeare ==1.2.1.1,
|
||||
shakespeare-css ==1.0.7.4,
|
||||
shakespeare-i18n ==1.0.0.5,
|
||||
shakespeare-js ==1.2.0.4,
|
||||
silently ==1.2.4.1,
|
||||
simple-sendfile ==0.2.14,
|
||||
skein ==1.0.9,
|
||||
socks ==0.5.4,
|
||||
split ==0.2.2,
|
||||
stm ==2.4.2,
|
||||
stm-chans ==3.0.0.2,
|
||||
streaming-commons ==0.1.4.1,
|
||||
stringprep ==0.1.5,
|
||||
stringsearch ==0.3.6.5,
|
||||
syb ==0.4.0,
|
||||
system-fileio ==0.3.14,
|
||||
system-filepath ==0.4.12,
|
||||
tagged ==0.7.2,
|
||||
tagsoup ==0.13.1,
|
||||
tagstream-conduit ==0.5.5.1,
|
||||
tasty ==0.10,
|
||||
tasty-hunit ==0.9,
|
||||
tasty-quickcheck ==0.8.1,
|
||||
tasty-rerun ==1.1.3,
|
||||
text ==1.1.1.0,
|
||||
text-icu ==0.6.3.7,
|
||||
tf-random ==0.5,
|
||||
tls ==1.2.9,
|
||||
transformers ==0.3.0.0,
|
||||
transformers-base ==0.4.1,
|
||||
transformers-compat ==0.3.3.3,
|
||||
unbounded-delays ==0.1.0.8,
|
||||
unix-compat ==0.4.1.3,
|
||||
unix-time ==0.2.2,
|
||||
unordered-containers ==0.2.5.0,
|
||||
utf8-string ==0.3.7,
|
||||
uuid ==1.3.3,
|
||||
vault ==0.3.0.3,
|
||||
vector ==0.10.0.1,
|
||||
void ==0.6.1,
|
||||
wai ==3.0.1.1,
|
||||
wai-app-static ==3.0.0.1,
|
||||
wai-extra ==3.0.1.2,
|
||||
wai-logger ==2.1.1,
|
||||
warp ==3.0.0.5,
|
||||
warp-tls ==3.0.0,
|
||||
word8 ==0.1.1,
|
||||
x509 ==1.4.11,
|
||||
x509-store ==1.4.4,
|
||||
x509-system ==1.4.5,
|
||||
x509-validation ==1.5.0,
|
||||
xml ==1.3.13,
|
||||
xml-conduit ==1.2.1,
|
||||
xml-hamlet ==0.4.0.9,
|
||||
xml-types ==0.3.4,
|
||||
xss-sanitize ==0.3.5.2,
|
||||
yaml ==0.8.9.3,
|
||||
yesod ==1.2.6.1,
|
||||
yesod-auth ==1.3.4.6,
|
||||
yesod-core ==1.2.20.1,
|
||||
yesod-default ==1.2.0,
|
||||
yesod-form ==1.3.16,
|
||||
yesod-persistent ==1.2.3.1,
|
||||
yesod-routes ==1.2.0.7,
|
||||
yesod-static ==1.2.4,
|
||||
zlib ==0.5.4.1,
|
||||
bytestring ==0.10.4.0,
|
||||
scientific ==0.3.3.1
|
|
@ -3,13 +3,10 @@
|
|||
# to all the necessary haskell packages being installed, with the
|
||||
# necessary patches to work on architectures that lack template haskell.
|
||||
#
|
||||
# Note that the newest version of packages are installed.
|
||||
# It attempts to reuse patches for older versions, but
|
||||
# new versions of packages often break cross-compilation by adding TH,
|
||||
# etc
|
||||
#
|
||||
# Future work: Convert to using the method used here:
|
||||
# https://github.com/kaoskorobase/ghc-ios-cabal-scripts/
|
||||
# The cabal.config is used to pin the haskell packages to the last
|
||||
# versions that have been gotten working. To update, delete the
|
||||
# cabal.config, run this script with an empty cabal and fix up the broken
|
||||
# patches, and then use cabal freeze to generate a new cabal.config.
|
||||
|
||||
set -e
|
||||
|
||||
|
@ -26,14 +23,22 @@ cabalinstall () {
|
|||
|
||||
patched () {
|
||||
pkg=$1
|
||||
shift 1
|
||||
cabal unpack $pkg$1
|
||||
ver=$2
|
||||
if [ -z "$ver" ]; then
|
||||
ver="$(grep " $pkg " ../cabal.config | cut -d= -f 3 | sed 's/,$//')"
|
||||
fi
|
||||
if [ -z "$ver" ]; then
|
||||
cabal unpack $pkg
|
||||
else
|
||||
cabal unpack $pkg-$ver
|
||||
fi
|
||||
cd $pkg*
|
||||
git init
|
||||
git config user.name dummy
|
||||
git config user.email dummy@example.com
|
||||
git add .
|
||||
git commit -m "pre-patched state of $pkg"
|
||||
ln -sf ../../cabal.config
|
||||
for patch in ../../haskell-patches/${pkg}_* ../../../no-th/haskell-patches/${pkg}_*; do
|
||||
if [ -e "$patch" ]; then
|
||||
echo trying $patch
|
||||
|
@ -45,16 +50,19 @@ patched () {
|
|||
fi
|
||||
done
|
||||
cabalinstall
|
||||
rm -rf $pkg*
|
||||
rm -f cabal.config
|
||||
cd ..
|
||||
rm -rf $pkg*
|
||||
}
|
||||
|
||||
installgitannexdeps () {
|
||||
pushd ../..
|
||||
ln -sf standalone/linux/cabal.config
|
||||
echo "cabal install QuickCheck -f-templateHaskell"
|
||||
cabal install -j1 QuickCheck -f-templateHaskell
|
||||
echo cabal install --only-dependencies "$@"
|
||||
cabal install -j1 --only-dependencies "$@"
|
||||
rm -f cabal.config
|
||||
popd
|
||||
}
|
||||
|
||||
|
@ -74,11 +82,7 @@ install_pkgs () {
|
|||
patched yesod-core
|
||||
patched persistent
|
||||
patched persistent-template
|
||||
# Newer versions of file-embed cause ghc -ddump-splices
|
||||
# to output invalid character codes.
|
||||
# Note that the system generating the splices should also
|
||||
# use this version of file-embed.
|
||||
patched file-embed -0.0.6
|
||||
patched file-embed
|
||||
patched process-conduit
|
||||
patched yesod-static
|
||||
patched yesod-persistent
|
||||
|
|
Loading…
Reference in a new issue