From 5a7a3f15d28e19c6c0f30817824a2b78ccc874e0 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sun, 22 Oct 2017 14:29:20 -0700 Subject: Linux package: new debian-based non-static build. --- linux/Dockerfile | 29 +++++++++-------------------- linux/Dockerfile.alpine | 30 ++++++++++++++++++++++++++++++ linux/Makefile | 8 ++++---- linux/make_linux.sh | 2 +- 4 files changed, 44 insertions(+), 25 deletions(-) create mode 100644 linux/Dockerfile.alpine (limited to 'linux') 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 -- cgit v1.2.3