Merge branch 'master' of github.com:fpco/stackage

This commit is contained in:
Michael Snoyman 2015-04-30 20:48:26 +03:00
commit 550de5589b
12 changed files with 222 additions and 13 deletions

View File

@ -1,4 +1,4 @@
FROM ubuntu:12.04
FROM ubuntu:14.04
ENV HOME /home/stackage
ENV LANG en_US.UTF-8
@ -7,17 +7,17 @@ RUN mkdir /home/stackage -p
RUN locale-gen en_US.UTF-8
RUN DEBIAN_FRONTEND=noninteractive apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common python-software-properties
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common python-software-properties git
RUN DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:hvr/ghc -y
ADD debian-bootstrap.sh /tmp/debian-bootstrap.sh
RUN DEBIAN_FRONTEND=noninteractive bash /tmp/debian-bootstrap.sh
RUN rm /tmp/debian-bootstrap.sh
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
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
ENV 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
RUN cabal update
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
RUN cabal install hscolour cabal-install && cp $HOME/.cabal/bin/* /usr/local/bin && rm -rf $HOME/.cabal $HOME/.ghc /tmp/stackage
RUN 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

View File

@ -17,6 +17,11 @@ project information. In addition, we have the following repositories:
* [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)
* [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)
* [lts-haskell](https://github.com/fpco/lts-haskell)
* [stackage-nightly](https://github.com/fpco/stackage-nightly)
* [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)
* [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)
* [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)
* [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)
Get your package included
-------------------------

10
automated/.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
/auth-token
/bin/
/gitconfig
/hackage-creds
/ssh-nightly/
/ssh-lts/
/nighlty/
/lts-*/
/stackage-curator/
/stackage-update/

73
automated/build.sh Executable file
View File

@ -0,0 +1,73 @@
#!/usr/bin/env bash
set -eux
ROOT=$(cd $(dirname $0) ; pwd)
TARGET=$1
TROOT=$ROOT/$(echo $TARGET | cut -d. -f 1)
PLAN_FILE=current-plan.yaml
BUNDLE_FILE=current.bundle
CABAL_DIR=$ROOT/cabal
GHC_DIR=$ROOT/ghc
CURATOR_DIR=$ROOT/stackage-curator
UPDATE_DIR=$ROOT/stackage-update
WORKDIR=$TROOT/work
SSH_DIR=$ROOT/ssh-$(echo $TARGET | cut -d- -f 1)
mkdir -p \
"$CABAL_DIR" \
"$GHC_DIR" \
"$CURATOR_DIR" \
"$UPDATE_DIR" \
"$WORKDIR" \
"$SSH_DIR"
GITCONFIG=$ROOT/gitconfig
cat >$GITCONFIG <<EOF
[user]
email = michael+stackage-build@fpcomplete.com
name = Stackage Build host
EOF
cat >$SSH_DIR/known_hosts <<EOF
|1|Qn0iij8BnxGZXbyFSozS9zWkH+Q=|YrKKNp2KHO3/oc4UBFIe1zOvhDc= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
|1|RxBEt2ljiEppr019szMIhbY12m0=|0FZ2Oji1LphRbPLLEQhFzTmL69I= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
EOF
AUTH_TOKEN=$ROOT/auth-token
HACKAGE_CREDS=$ROOT/hackage-creds
function require_400_file {
if [ ! -f "$1" ]
then
echo File not found: "$1"
exit 1
fi
chmod 400 "$1"
}
require_400_file "$SSH_DIR/id_rsa"
require_400_file "$AUTH_TOKEN"
require_400_file "$HACKAGE_CREDS"
mkdir -p $ROOT/bin
BINDIR=$(cd $ROOT/bin ; pwd)
(
cd $BINDIR
rm -f stackage-curator stackage-curator.bz2
wget https://s3.amazonaws.com/stackage-travis/stackage-curator/stackage-curator.bz2
bunzip2 stackage-curator.bz2
chmod +x stackage-curator
)
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"
ARGS_PREBUILD="$ARGS_COMMON -v $CABAL_DIR:/home/stackage/.cabal -v $GHC_DIR:/home/stackage/.ghc -v $UPDATE_DIR:/home/stackage/.stackage-update"
ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:/home/stackage/.cabal:ro -v $GHC_DIR:/home/stackage/.ghc:ro"
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"
# Use cabal update first to initialize ~/.cabal.config, then use stackage-curator update to get it securely
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"
docker run $ARGS_BUILD snoyberg/stackage stackage-curator make-bundle --plan-file $PLAN_FILE --bundle-file $BUNDLE_FILE --target $TARGET
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"

View File

@ -60,7 +60,9 @@ packages:
- cairo
- cassava
- Chart
- Chart-diagrams
# https://github.com/fpco/stackage/issues/541
# - Chart-diagrams
- compdata
- configurator
- convertible
@ -95,6 +97,10 @@ packages:
- stackage
- stackage-curator
- stackage-types
- stackage-update
- stackage-upload
- stackage-cli
- stackage-install
- statistics-linreg
- th-expand-syns
- thyme
@ -373,6 +379,7 @@ packages:
- accelerate
"Dan Burton <danburton.email@gmail.com>":
- yesod-gitrev
- basic-prelude
- composition
- io-memoize
@ -568,6 +575,15 @@ packages:
- yesod-auth-hashdb
"Toralf Wittner <tw@dtex.org>":
- bytestring-conversion
- cql
- cql-io
- redis-resp
- redis-io
- swagger
- tinylog
- wai-predicates
- wai-routing
- zeromq4-haskell
"trupill@gmail.com":
@ -737,6 +753,12 @@ packages:
- sdl2
"Leon Mergen leon@solatis.com @solatis":
- base58string
- bitcoin-block
- bitcoin-script
- bitcoin-tx
- bitcoin-types
- hexstring
- network-attoparsec
- network-anonymous-i2p
@ -762,6 +784,7 @@ packages:
"Adam C. Foltzer acfoltzer@galois.com @acfoltzer":
- cryptol
- gitrev
- persistent-refs
"Luke Taylor tekul.hs@gmail.com @tekul":
- jose-jwt
@ -798,6 +821,7 @@ packages:
- amazonka-kinesis
- amazonka-kms
- amazonka-lambda
- amazonka-ml
- amazonka-opsworks
- amazonka-rds
- amazonka-redshift
@ -813,6 +837,7 @@ packages:
- amazonka-sts
- amazonka-support
- amazonka-swf
- amazonka-workspaces
- ede
- pagerduty
- semver
@ -863,19 +888,42 @@ packages:
"Stefan Saasen <stefan@saasen.me>":
- jwt
"Sven Bartscher sven.bartscher@weltraumschlangen.de @kritzefitz":
- setlocale
"Taylor Fausak <taylor@fausak.me> @tfausak":
- flow
"Marios Titas <redneb@gmx.com> @redneb":
- btrfs
- disk-free-space
- hxt-css
- islink
- linux-file-extents
- linux-namespaces
"Will Coster <willcoster@gmail.com> @fimad":
- scalpel
"Smirnov Alexey <chemistmail@gmail.com> @chemist":
- snmp
- agentx
"David Raymond Christiansen <david@davidchristiansen.dk> @david-christiansen":
- annotated-wl-pprint
"Stackage upper bounds":
# GHC 7.8 uppdate bound
- haddock-api < 2.16
- haddock-library < 1.2
- hdocs < 0.4.2
- haskell-packages < 0.3
- compdata < 0.10
# Force a specific version that's compatible with transformers 0.3
- transformers-compat == 0.4.0.3
# https://github.com/fpco/stackage/issues/467
- lens < 4.8
# https://github.com/fpco/stackage/issues/476
- vector-space < 0.10
@ -904,8 +952,14 @@ packages:
# https://github.com/Happstack/happstack-server/issues/6
- happstack-server < 7.4.3
# https://github.com/mgajda/json-autotype/issues/5
- json-autotype < 0.4
# https://github.com/fpco/stackage/issues/531
- sbv < 4.3
# https://github.com/fpco/stackage/issues/537
- zlib < 0.6
# https://github.com/fpco/stackage/issues/549
- tttool < 1.4
# Package flags are applied to individual packages, and override the values of
# global-flags
@ -976,6 +1030,13 @@ package-flags:
cabal-debian:
pretty-112: false
hledger:
old-locale: true
hledger-lib:
old-locale: true
hledger-web:
old-locale: true
# By skipping a test suite, we do not pull in the build dependencies
skipped-tests:
- ReadArgs # old version of hspec
@ -1211,6 +1272,8 @@ expected-test-failures:
# Requires running server
- consul-haskell
- hedis
- redis-io
# Haddocks which are expected to fail. Same concept as expected test failures.
expected-haddock-failures:
@ -1227,6 +1290,9 @@ expected-haddock-failures:
# builds. Could consider special-casing this requirement.
- gtk
# Not sure why, but it's a temporary package anyway
- Cabal-ide-backend
# Benchmarks which should not be built. Note that Stackage does *not* generally
# build benchmarks. The difference here will be whether dependencies for these
# benchmarks are included or not.

View File

@ -10,9 +10,8 @@
# instructions, see:
# http://www.stackage.org/install
add-apt-repository -y ppa:chris-lea/zeromq
add-apt-repository -y ppa:floe/libtisch
add-apt-repository -y ppa:zoogie/sdl2-snapshots
apt-get update
apt-get install -y \
build-essential \
@ -21,7 +20,6 @@ apt-get install -y \
wget \
m4 \
texlive-full \
libgmp3c2 \
libgmp3-dev \
zlib1g-dev \
libedit2 \

5
stackage/ChangeLog.md Normal file
View File

@ -0,0 +1,5 @@
## 0.7.0.0
* First release of this incarnation of the stackage package. Previously, this
package provided completely different functionality. That functionality has
since moved to stackage-curator.

20
stackage/LICENSE Normal file
View File

@ -0,0 +1,20 @@
Copyright (c) 2015 FP Complete
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

2
stackage/README.md Normal file
View File

@ -0,0 +1,2 @@
This is a dummy wrapper package, forcing installation of other packages which
provide real functionality.

2
stackage/Setup.hs Normal file
View File

@ -0,0 +1,2 @@
import Distribution.Simple
main = defaultMain

View File

@ -0,0 +1,3 @@
-- | This module does absolutely nothing. It's present so that cabal can more
-- easily track whether the stackage package is installed.
module Stackage.Dummy () where

25
stackage/stackage.cabal Normal file
View File

@ -0,0 +1,25 @@
name: stackage
version: 0.7.1.0
synopsis: Dummy package forcing installation of other Stackage packages
homepage: https://www.stackage.org/
license: MIT
license-file: LICENSE
author: Michael Snoyman
maintainer: michael@snoyman.com
category: Development
build-type: Simple
extra-source-files: README.md ChangeLog.md
cabal-version: >=1.10
library
exposed-modules: Stackage.Dummy
build-depends: base < 10
, stackage-cli
, stackage-update
, stackage-upload
, stackage-install
default-language: Haskell2010
source-repository head
type: git
location: git://github.com/fpco/stackage.git