aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-10-22 14:29:20 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2017-10-22 14:29:20 -0700
commit5a7a3f15d28e19c6c0f30817824a2b78ccc874e0 (patch)
tree7742eefa73c026aa7bd2006a17a1c5222e69a298
parent432be748ceaa5e19be62b14d8ae6dcdedb2de82b (diff)
downloadpandoc-5a7a3f15d28e19c6c0f30817824a2b78ccc874e0.tar.gz
Linux package: new debian-based non-static build.
-rw-r--r--linux/Dockerfile29
-rw-r--r--linux/Dockerfile.alpine30
-rw-r--r--linux/Makefile8
-rw-r--r--linux/make_linux.sh2
4 files changed, 44 insertions, 25 deletions
diff --git a/linux/Dockerfile b/linux/Dockerfile
index f75db2c89..075fd26c8 100644
--- a/linux/Dockerfile
+++ b/linux/Dockerfile
@@ -1,30 +1,19 @@
-# USE ALPINE LINUX
-FROM alpine:edge
-RUN echo "https://s3-us-west-2.amazonaws.com/alpine-ghc/8.0" >> /etc/apk/repositories
-ADD https://raw.githubusercontent.com/mitchty/alpine-ghc/master/mitch.tishmack%40gmail.com-55881c97.rsa.pub \
- /etc/apk/keys/mitch.tishmack@gmail.com-55881c97.rsa.pub
-RUN apk update
-RUN apk add alpine-sdk git ca-certificates ghc cabal stack zlib-dev \
- dpkg fakeroot sed gawk grep bash linux-headers
-RUN stack update
-RUN stack config set system-ghc --global true
+FROM debian:jessie-slim
+RUN apt-get update
+RUN apt-get -y install git ca-certificates zlib1g-dev curl \
+ dpkg fakeroot sed gawk grep bash xz-utils make build-essential clang \
+ libgmp-dev
+RUN curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C /usr/bin '*/stack'
RUN mkdir -p /etc/stack
-RUN echo "build: { split-objs: true }" > /etc/stack/config.yaml
+#RUN echo "build: { split-objs: true }" > /etc/stack/config.yaml
RUN mkdir -p /usr/src/
WORKDIR /usr/src/
RUN git clone https://github.com/jgm/pandoc
WORKDIR /usr/src/pandoc
+RUN stack setup
RUN stack install --stack-yaml stack.pkg.yaml --only-dependencies \
--flag 'pandoc:embed_data_files' \
- --ghc-options '-O2 -optc-Os -optl=-pthread -optl=-static -fPIC' \
pandoc pandoc-citeproc
CMD git pull && \
git checkout -b work $TREE && \
- stack install --stack-yaml stack.pkg.yaml \
- --flag 'pandoc:static' \
- --flag 'pandoc:embed_data_files' \
- --ghc-options '-O2 -optc-Os -optl=-pthread -optl=-static -fPIC' \
- --local-bin-path /artifacts \
- pandoc pandoc-citeproc && \
- bash linux/make_deb.sh && \
- bash linux/make_tarball.sh
+ ARTIFACTS=/artifacts sh make_linux.sh
diff --git a/linux/Dockerfile.alpine b/linux/Dockerfile.alpine
new file mode 100644
index 000000000..f75db2c89
--- /dev/null
+++ b/linux/Dockerfile.alpine
@@ -0,0 +1,30 @@
+# USE ALPINE LINUX
+FROM alpine:edge
+RUN echo "https://s3-us-west-2.amazonaws.com/alpine-ghc/8.0" >> /etc/apk/repositories
+ADD https://raw.githubusercontent.com/mitchty/alpine-ghc/master/mitch.tishmack%40gmail.com-55881c97.rsa.pub \
+ /etc/apk/keys/mitch.tishmack@gmail.com-55881c97.rsa.pub
+RUN apk update
+RUN apk add alpine-sdk git ca-certificates ghc cabal stack zlib-dev \
+ dpkg fakeroot sed gawk grep bash linux-headers
+RUN stack update
+RUN stack config set system-ghc --global true
+RUN mkdir -p /etc/stack
+RUN echo "build: { split-objs: true }" > /etc/stack/config.yaml
+RUN mkdir -p /usr/src/
+WORKDIR /usr/src/
+RUN git clone https://github.com/jgm/pandoc
+WORKDIR /usr/src/pandoc
+RUN stack install --stack-yaml stack.pkg.yaml --only-dependencies \
+ --flag 'pandoc:embed_data_files' \
+ --ghc-options '-O2 -optc-Os -optl=-pthread -optl=-static -fPIC' \
+ pandoc pandoc-citeproc
+CMD git pull && \
+ git checkout -b work $TREE && \
+ stack install --stack-yaml stack.pkg.yaml \
+ --flag 'pandoc:static' \
+ --flag 'pandoc:embed_data_files' \
+ --ghc-options '-O2 -optc-Os -optl=-pthread -optl=-static -fPIC' \
+ --local-bin-path /artifacts \
+ pandoc pandoc-citeproc && \
+ bash linux/make_deb.sh && \
+ bash linux/make_tarball.sh
diff --git a/linux/Makefile b/linux/Makefile
index 4e8eeb00a..cec1db797 100644
--- a/linux/Makefile
+++ b/linux/Makefile
@@ -4,15 +4,15 @@ REVISION?=1
build:
mkdir -p $(ARTIFACTS)
- docker build -t alpine-pandoc .
+ docker build -t debian-pandoc .
docker run --env TREE=$(TREE) --env REVISION=$(REVISION) \
- -v $(ARTIFACTS):/artifacts alpine-pandoc
+ -v $(ARTIFACTS):/artifacts debian-pandoc
interact:
docker run --env TREE=$(TREE) --env REVISION=$(REVISION) \
- -v $(ARTIFACTS):/artifacts -it alpine-pandoc bash
+ -v $(ARTIFACTS):/artifacts -it debian-pandoc bash
setup:
- docker pull alpine:edge
+ docker pull debian:jessie
.PHONY: build setup interact
diff --git a/linux/make_linux.sh b/linux/make_linux.sh
index fdc21ed41..90e84d06a 100644
--- a/linux/make_linux.sh
+++ b/linux/make_linux.sh
@@ -1,6 +1,6 @@
#!/bin/bash -e
-ARTIFACTS=`pwd`/linux/artifacts
+ARTIFACTS=?`pwd`/linux/artifacts
mkdir -p $ARTIFACTS
stack clean