on master help sign in
Merge branch 'master' of github.com:fpco/stackage
commit550de5589b4c60abea051e70f66ed31c8fd31df4 authorMichael Snoyman <michael@snoyman.com> dateThu 30 Apr 2015, 20:48 (11 years ago) parent26baa8545930de
12 files changed+222−13
Dockerfile+4−4 README.md+5 automated/.gitignore+10 automated/build.sh+73 build-constraints.yaml+72−6 debian-bootstrap.sh+1−3 stackage/ChangeLog.md+5 stackage/LICENSE+20 stackage/README.md+2 stackage/Setup.hs+2 stackage/Stackage/Dummy.hs+3 stackage/stackage.cabal+25
Dockerfile+4−4
@@ -1,4 +1,4 @@
1−FROM ubuntu:12.04
1+FROM ubuntu:14.04
22
33ENV HOME /home/stackage
44ENV LANG en_US.UTF-8
@@ -7,17 +7,17 @@ RUN mkdir /home/stackage -p
77RUN locale-gen en_US.UTF-8
88
99RUN DEBIAN_FRONTEND=noninteractive apt-get update
10−RUN DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common python-software-properties
10+RUN DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common python-software-properties git
1111RUN DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:hvr/ghc -y
1212
1313ADD debian-bootstrap.sh /tmp/debian-bootstrap.sh
1414RUN DEBIAN_FRONTEND=noninteractive bash /tmp/debian-bootstrap.sh
1515RUN rm /tmp/debian-bootstrap.sh
1616
17−RUN DEBIAN_FRONTEND=noninteractive apt-get install -y cabal-install-1.20 ghc-7.8.4 alex-3.1.3 happy-1.19.4 sudo
17+RUN DEBIAN_FRONTEND=noninteractive apt-get install -y cabal-install-1.20 ghc-7.8.4 ghc-7.8.4-htmldocs alex-3.1.3 happy-1.19.4 sudo
1818
1919ENV PATH /home/stackage/.cabal/bin:/usr/local/sbin:/usr/local/bin:/opt/ghc/7.8.4/bin:/opt/cabal/1.20/bin:/opt/alex/3.1.3/bin:/opt/happy/1.19.4/bin:/usr/sbin:/usr/bin:/sbin:/bin
2020
2121RUN cabal update
22−RUN cabal install hscolour cabal-install --constraint "Cabal < 1.22" && cp $HOME/.cabal/bin/* /usr/local/bin && rm -rf $HOME/.cabal $HOME/.ghc /tmp/stackage
22+RUN cabal install hscolour cabal-install && cp $HOME/.cabal/bin/* /usr/local/bin && rm -rf $HOME/.cabal $HOME/.ghc /tmp/stackage
2323RUN wget https://s3.amazonaws.com/stackage-travis/stackage-curator/stackage-curator.bz2 && bunzip2 stackage-curator.bz2 && chmod +x stackage-curator && mv stackage-curator /usr/local/bin
README.md+5
@@ -17,6 +17,11 @@ project information. In addition, we have the following repositories:
1717* [stackage-curator](https://github.com/fpco/stackage-curator) [![Build Status](https://travis-ci.org/fpco/stackage-curator.svg?branch=master)](https://travis-ci.org/fpco/stackage-curator)
1818* [stackage-types](https://github.com/fpco/stackage-types) [![Build Status](https://travis-ci.org/fpco/stackage-types.svg?branch=master)](https://travis-ci.org/fpco/stackage-types)
1919* [lts-haskell](https://github.com/fpco/lts-haskell)
20+* [stackage-nightly](https://github.com/fpco/stackage-nightly)
21+* [stackage-cli](https://github.com/fpco/stackage-cli) [![Build Status](https://travis-ci.org/fpco/stackage-cli.svg?branch=master)](https://travis-ci.org/fpco/stackage-cli)
22+* [stackage-update](https://github.com/fpco/stackage-update) [![Build Status](https://travis-ci.org/fpco/stackage-update.svg?branch=master)](https://travis-ci.org/fpco/stackage-update)
23+* [stackage-upload](https://github.com/fpco/stackage-upload) [![Build Status](https://travis-ci.org/fpco/stackage-upload.svg?branch=master)](https://travis-ci.org/fpco/stackage-upload)
24+* [stackage-install](https://github.com/fpco/stackage-install) [![Build Status](https://travis-ci.org/fpco/stackage-install.svg?branch=master)](https://travis-ci.org/fpco/stackage-install)
2025
2126Get your package included
2227-------------------------
automated/.gitignorenew file+10
@@ -0,0 +1,10 @@
1+/auth-token
2+/bin/
3+/gitconfig
4+/hackage-creds
5+/ssh-nightly/
6+/ssh-lts/
7+/nighlty/
8+/lts-*/
9+/stackage-curator/
10+/stackage-update/
automated/build.shnew file+73
@@ -0,0 +1,73 @@
1+#!/usr/bin/env bash
2+
3+set -eux
4+
5+ROOT=$(cd $(dirname $0) ; pwd)
6+TARGET=$1
7+TROOT=$ROOT/$(echo $TARGET | cut -d. -f 1)
8+PLAN_FILE=current-plan.yaml
9+BUNDLE_FILE=current.bundle
10+
11+CABAL_DIR=$ROOT/cabal
12+GHC_DIR=$ROOT/ghc
13+CURATOR_DIR=$ROOT/stackage-curator
14+UPDATE_DIR=$ROOT/stackage-update
15+WORKDIR=$TROOT/work
16+SSH_DIR=$ROOT/ssh-$(echo $TARGET | cut -d- -f 1)
17+
18+mkdir -p \
19+ "$CABAL_DIR" \
20+ "$GHC_DIR" \
21+ "$CURATOR_DIR" \
22+ "$UPDATE_DIR" \
23+ "$WORKDIR" \
24+ "$SSH_DIR"
25+
26+GITCONFIG=$ROOT/gitconfig
27+cat >$GITCONFIG <<EOF
28+[user]
29+ email = michael+stackage-build@fpcomplete.com
30+ name = Stackage Build host
31+EOF
32+
33+cat >$SSH_DIR/known_hosts <<EOF
34+|1|Qn0iij8BnxGZXbyFSozS9zWkH+Q=|YrKKNp2KHO3/oc4UBFIe1zOvhDc= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
35+|1|RxBEt2ljiEppr019szMIhbY12m0=|0FZ2Oji1LphRbPLLEQhFzTmL69I= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
36+EOF
37+
38+AUTH_TOKEN=$ROOT/auth-token
39+HACKAGE_CREDS=$ROOT/hackage-creds
40+
41+function require_400_file {
42+ if [ ! -f "$1" ]
43+ then
44+ echo File not found: "$1"
45+ exit 1
46+ fi
47+
48+ chmod 400 "$1"
49+}
50+
51+require_400_file "$SSH_DIR/id_rsa"
52+require_400_file "$AUTH_TOKEN"
53+require_400_file "$HACKAGE_CREDS"
54+
55+mkdir -p $ROOT/bin
56+BINDIR=$(cd $ROOT/bin ; pwd)
57+(
58+cd $BINDIR
59+rm -f stackage-curator stackage-curator.bz2
60+wget https://s3.amazonaws.com/stackage-travis/stackage-curator/stackage-curator.bz2
61+bunzip2 stackage-curator.bz2
62+chmod +x stackage-curator
63+)
64+
65+ARGS_COMMON="--rm -u $USER -v $WORKDIR:/home/stackage/work -w /home/stackage/work -v $BINDIR/stackage-curator:/usr/local/bin/stackage-curator:ro -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro"
66+ARGS_PREBUILD="$ARGS_COMMON -v $CABAL_DIR:/home/stackage/.cabal -v $GHC_DIR:/home/stackage/.ghc -v $UPDATE_DIR:/home/stackage/.stackage-update"
67+ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:/home/stackage/.cabal:ro -v $GHC_DIR:/home/stackage/.ghc:ro"
68+ARGS_UPLOAD="$ARGS_COMMON -v $AUTH_TOKEN:/auth-token:ro -v $HACKAGE_CREDS:/hackage-creds:ro -v $CURATOR_DIR:/home/stackage/.stackage-curator -v $SSH_DIR:/home/ubuntu/.ssh:ro -v $GITCONFIG:/home/stackage/.gitconfig:ro"
69+
70+# Use cabal update first to initialize ~/.cabal.config, then use stackage-curator update to get it securely
71+docker run $ARGS_PREBUILD snoyberg/stackage /bin/bash -c "cabal update && stackage-curator update && stackage-curator create-plan --plan-file $PLAN_FILE --target $TARGET && stackage-curator check --plan-file $PLAN_FILE && stackage-curator fetch --plan-file $PLAN_FILE && cabal install random cabal-install"
72+docker run $ARGS_BUILD snoyberg/stackage stackage-curator make-bundle --plan-file $PLAN_FILE --bundle-file $BUNDLE_FILE --target $TARGET
73+docker run $ARGS_UPLOAD snoyberg/stackage /bin/bash -c "stackage-curator upload --bundle-file $BUNDLE_FILE && stackage-curator hackage-distro --plan-file $PLAN_FILE --target $TARGET && stackage-curator upload-github --plan-file $PLAN_FILE --target $TARGET"
build-constraints.yaml+72−6
@@ -60,7 +60,9 @@ packages:
6060 - cairo
6161 - cassava
6262 - Chart
63− - Chart-diagrams
63+
64+ # https://github.com/fpco/stackage/issues/541
65+ # - Chart-diagrams
6466 - compdata
6567 - configurator
6668 - convertible
@@ -95,6 +97,10 @@ packages:
9597 - stackage
9698 - stackage-curator
9799 - stackage-types
100+ - stackage-update
101+ - stackage-upload
102+ - stackage-cli
103+ - stackage-install
98104 - statistics-linreg
99105 - th-expand-syns
100106 - thyme
@@ -373,6 +379,7 @@ packages:
373379 - accelerate
374380
375381 "Dan Burton <danburton.email@gmail.com>":
382+ - yesod-gitrev
376383 - basic-prelude
377384 - composition
378385 - io-memoize
@@ -568,6 +575,15 @@ packages:
568575 - yesod-auth-hashdb
569576
570577 "Toralf Wittner <tw@dtex.org>":
578+ - bytestring-conversion
579+ - cql
580+ - cql-io
581+ - redis-resp
582+ - redis-io
583+ - swagger
584+ - tinylog
585+ - wai-predicates
586+ - wai-routing
571587 - zeromq4-haskell
572588
573589 "trupill@gmail.com":
@@ -737,6 +753,12 @@ packages:
737753 - sdl2
738754
739755 "Leon Mergen leon@solatis.com @solatis":
756+ - base58string
757+ - bitcoin-block
758+ - bitcoin-script
759+ - bitcoin-tx
760+ - bitcoin-types
761+ - hexstring
740762 - network-attoparsec
741763 - network-anonymous-i2p
742764
@@ -762,6 +784,7 @@ packages:
762784 "Adam C. Foltzer acfoltzer@galois.com @acfoltzer":
763785 - cryptol
764786 - gitrev
787+ - persistent-refs
765788
766789 "Luke Taylor tekul.hs@gmail.com @tekul":
767790 - jose-jwt
@@ -798,6 +821,7 @@ packages:
798821 - amazonka-kinesis
799822 - amazonka-kms
800823 - amazonka-lambda
824+ - amazonka-ml
801825 - amazonka-opsworks
802826 - amazonka-rds
803827 - amazonka-redshift
@@ -813,6 +837,7 @@ packages:
813837 - amazonka-sts
814838 - amazonka-support
815839 - amazonka-swf
840+ - amazonka-workspaces
816841 - ede
817842 - pagerduty
818843 - semver
@@ -863,19 +888,42 @@ packages:
863888
864889 "Stefan Saasen <stefan@saasen.me>":
865890 - jwt
891+
892+ "Sven Bartscher sven.bartscher@weltraumschlangen.de @kritzefitz":
893+ - setlocale
894+
895+ "Taylor Fausak <taylor@fausak.me> @tfausak":
896+ - flow
897+
898+ "Marios Titas <redneb@gmx.com> @redneb":
899+ - btrfs
900+ - disk-free-space
901+ - hxt-css
902+ - islink
903+ - linux-file-extents
904+ - linux-namespaces
905+
906+ "Will Coster <willcoster@gmail.com> @fimad":
907+ - scalpel
908+
909+ "Smirnov Alexey <chemistmail@gmail.com> @chemist":
910+ - snmp
911+ - agentx
912+
913+ "David Raymond Christiansen <david@davidchristiansen.dk> @david-christiansen":
914+ - annotated-wl-pprint
866915
867916 "Stackage upper bounds":
868917 # GHC 7.8 uppdate bound
869918 - haddock-api < 2.16
870919 - haddock-library < 1.2
871920 - hdocs < 0.4.2
921+ - haskell-packages < 0.3
922+ - compdata < 0.10
872923
873924 # Force a specific version that's compatible with transformers 0.3
874925 - transformers-compat == 0.4.0.3
875926
876− # https://github.com/fpco/stackage/issues/467
877− - lens < 4.8
878−
879927 # https://github.com/fpco/stackage/issues/476
880928 - vector-space < 0.10
881929
@@ -904,8 +952,14 @@ packages:
904952 # https://github.com/Happstack/happstack-server/issues/6
905953 - happstack-server < 7.4.3
906954
907− # https://github.com/mgajda/json-autotype/issues/5
908− - json-autotype < 0.4
955+ # https://github.com/fpco/stackage/issues/531
956+ - sbv < 4.3
957+
958+ # https://github.com/fpco/stackage/issues/537
959+ - zlib < 0.6
960+
961+ # https://github.com/fpco/stackage/issues/549
962+ - tttool < 1.4
909963
910964# Package flags are applied to individual packages, and override the values of
911965# global-flags
@@ -976,6 +1030,13 @@ package-flags:
9761030 cabal-debian:
9771031 pretty-112: false
9781032
1033+ hledger:
1034+ old-locale: true
1035+ hledger-lib:
1036+ old-locale: true
1037+ hledger-web:
1038+ old-locale: true
1039+
9791040# By skipping a test suite, we do not pull in the build dependencies
9801041skipped-tests:
9811042 - ReadArgs # old version of hspec
@@ -1211,6 +1272,8 @@ expected-test-failures:
12111272
12121273 # Requires running server
12131274 - consul-haskell
1275+ - hedis
1276+ - redis-io
12141277
12151278# Haddocks which are expected to fail. Same concept as expected test failures.
12161279expected-haddock-failures:
@@ -1227,6 +1290,9 @@ expected-haddock-failures:
12271290 # builds. Could consider special-casing this requirement.
12281291 - gtk
12291292
1293+ # Not sure why, but it's a temporary package anyway
1294+ - Cabal-ide-backend
1295+
12301296# Benchmarks which should not be built. Note that Stackage does *not* generally
12311297# build benchmarks. The difference here will be whether dependencies for these
12321298# benchmarks are included or not.
debian-bootstrap.sh+1−3
@@ -10,9 +10,8 @@
1010# instructions, see:
1111# http://www.stackage.org/install
1212
13−add-apt-repository -y ppa:chris-lea/zeromq
14−add-apt-repository -y ppa:floe/libtisch
1513add-apt-repository -y ppa:zoogie/sdl2-snapshots
14+
1615apt-get update
1716apt-get install -y \
1817 build-essential \
@@ -21,7 +20,6 @@ apt-get install -y \
2120 wget \
2221 m4 \
2322 texlive-full \
24− libgmp3c2 \
2523 libgmp3-dev \
2624 zlib1g-dev \
2725 libedit2 \
stackage/ChangeLog.mdnew file+5
@@ -0,0 +1,5 @@
1+## 0.7.0.0
2+
3+* First release of this incarnation of the stackage package. Previously, this
4+ package provided completely different functionality. That functionality has
5+ since moved to stackage-curator.
stackage/LICENSEnew file+20
@@ -0,0 +1,20 @@
1+Copyright (c) 2015 FP Complete
2+
3+Permission is hereby granted, free of charge, to any person obtaining
4+a copy of this software and associated documentation files (the
5+"Software"), to deal in the Software without restriction, including
6+without limitation the rights to use, copy, modify, merge, publish,
7+distribute, sublicense, and/or sell copies of the Software, and to
8+permit persons to whom the Software is furnished to do so, subject to
9+the following conditions:
10+
11+The above copyright notice and this permission notice shall be included
12+in all copies or substantial portions of the Software.
13+
14+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
stackage/README.mdnew file+2
@@ -0,0 +1,2 @@
1+This is a dummy wrapper package, forcing installation of other packages which
2+provide real functionality.
stackage/Setup.hsnew file+2
@@ -0,0 +1,2 @@
1+import Distribution.Simple
2+main = defaultMain
stackage/Stackage/Dummy.hsnew file+3
@@ -0,0 +1,3 @@
1+-- | This module does absolutely nothing. It's present so that cabal can more
2+-- easily track whether the stackage package is installed.
3+module Stackage.Dummy () where
stackage/stackage.cabalnew file+25
@@ -0,0 +1,25 @@
1+name: stackage
2+version: 0.7.1.0
3+synopsis: Dummy package forcing installation of other Stackage packages
4+homepage: https://www.stackage.org/
5+license: MIT
6+license-file: LICENSE
7+author: Michael Snoyman
8+maintainer: michael@snoyman.com
9+category: Development
10+build-type: Simple
11+extra-source-files: README.md ChangeLog.md
12+cabal-version: >=1.10
13+
14+library
15+ exposed-modules: Stackage.Dummy
16+ build-depends: base < 10
17+ , stackage-cli
18+ , stackage-update
19+ , stackage-upload
20+ , stackage-install
21+ default-language: Haskell2010
22+
23+source-repository head
24+ type: git
25+ location: git://github.com/fpco/stackage.git