Improved linux tar.gz creation and added Dockerfile to repository.
This commit is contained in:
parent
6756e23f94
commit
74fd00b5f6
4 changed files with 111 additions and 0 deletions
31
linux/Dockerfile
Normal file
31
linux/Dockerfile
Normal file
|
@ -0,0 +1,31 @@
|
|||
# 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
|
||||
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 --local-bin-path /usr/bin hsb2hs
|
||||
RUN stack install --stack-yaml stack.pkg.yaml --only-dependencies \
|
||||
--flag 'pandoc:embed_data_files' \
|
||||
--test --ghc-options '-O2 -optc-Os -optl-static -fPIC' \
|
||||
pandoc pandoc-citeproc
|
||||
COPY make_deb.sh .
|
||||
COPY make_tarball.sh .
|
||||
CMD git pull && \
|
||||
git checkout -b work $TREE && \
|
||||
stack install --stack-yaml stack.pkg.yaml \
|
||||
--local-bin-path /artifacts --flag 'pandoc:embed_data_files' \
|
||||
--test --ghc-options '-O2 -optc-Os -optl-static -fPIC' \
|
||||
pandoc pandoc-citeproc && \
|
||||
bash make_deb.sh && \
|
||||
bash make_tarball.sh
|
14
linux/Makefile
Normal file
14
linux/Makefile
Normal file
|
@ -0,0 +1,14 @@
|
|||
TREE?=HEAD
|
||||
ARTIFACTS=`pwd`/artifacts
|
||||
REVISION?=1
|
||||
|
||||
build:
|
||||
mkdir -p $(ARTIFACTS)
|
||||
docker build -t alpine-pandoc .
|
||||
docker run --env TREE=$(TREE) --env REVISION=$(REVISION) \
|
||||
-v $(ARTIFACTS):/artifacts alpine-pandoc
|
||||
|
||||
setup:
|
||||
docker pull alpine:edge
|
||||
|
||||
.PHONY: build setup
|
51
linux/make_deb.sh
Executable file
51
linux/make_deb.sh
Executable file
|
@ -0,0 +1,51 @@
|
|||
set -e
|
||||
|
||||
MACHINE=$(uname -m)
|
||||
case "$MACHINE" in
|
||||
x86_64) ARCHITECTURE=amd64;;
|
||||
i686) ARCHITECTURE=i386;;
|
||||
i386) ARCHITECTURE=i386;;
|
||||
esac
|
||||
|
||||
ARTIFACTS=/artifacts
|
||||
|
||||
VERSION=$(grep -e '^Version' pandoc.cabal | awk '{print $2}')
|
||||
REVISION=${REVISION:-1}
|
||||
DEBVER=$VERSION-$REVISION
|
||||
BASE=pandoc-$DEBVER-$ARCHITECTURE
|
||||
DIST=`pwd`/$BASE
|
||||
DEST=$DIST/usr
|
||||
COPYRIGHT=$DEST/share/doc/pandoc/copyright
|
||||
|
||||
PANDOC_CITEPROC_VERSION=`$ARTIFACTS/pandoc-citeproc --version | awk '{print $2;}'`
|
||||
|
||||
mkdir -p $DEST/bin
|
||||
mkdir -p $DEST/share/man/man1
|
||||
mkdir -p $DEST/share/doc/pandoc
|
||||
|
||||
make man/pandoc.1
|
||||
|
||||
mkdir -p $DEST/share/doc/pandoc-citeproc
|
||||
find $DIST -type d | xargs chmod 755
|
||||
cp $ARTIFACTS/pandoc $DEST/bin/
|
||||
cp $ARTIFACTS/pandoc-citeproc $DEST/bin/
|
||||
cp man/pandoc.1 $DEST/share/man/man1/pandoc.1
|
||||
/artifacts/pandoc-citeproc --man > $DEST/share/man/man1/pandoc-citeproc.1
|
||||
gzip -9 $DEST/share/man/man1/pandoc.1
|
||||
gzip -9 $DEST/share/man/man1/pandoc-citeproc.1
|
||||
|
||||
cp COPYRIGHT $COPYRIGHT
|
||||
echo "" >> $COPYRIGHT
|
||||
echo "pandoc-citeproc" >> $COPYRIGHT
|
||||
/artifacts/pandoc-citeproc --license >> $COPYRIGHT
|
||||
|
||||
INSTALLED_SIZE=$(du -k -s $DEST | awk '{print $1}')
|
||||
mkdir $DIST/DEBIAN
|
||||
perl -pe "s/VERSION/$DEBVER/" deb/control.in | \
|
||||
perl -pe "s/ARCHITECTURE/$ARCHITECTURE/" | \
|
||||
perl -pe "s/INSTALLED_SIZE/$INSTALLED_SIZE/" \
|
||||
> $DIST/DEBIAN/control
|
||||
|
||||
fakeroot dpkg-deb --build $DIST
|
||||
rm -rf $DIST
|
||||
cp $BASE.deb /artifacts/
|
15
linux/make_tarball.sh
Normal file
15
linux/make_tarball.sh
Normal file
|
@ -0,0 +1,15 @@
|
|||
set -e
|
||||
|
||||
VERSION=$(grep -e '^Version' pandoc.cabal | awk '{print $2}')
|
||||
TARGET=pandoc-$VERSION
|
||||
|
||||
cd /artifacts
|
||||
mkdir $TARGET
|
||||
mkdir $TARGET/bin $TARGET/man $TARGET/man/man1
|
||||
./pandoc-citeproc --man > $TARGET/man/man1/pandoc-citeproc.1
|
||||
cp /usr/src/pandoc/man/pandoc.1 $TARGET/man/man1
|
||||
mv pandoc pandoc-citeproc $TARGET/bin
|
||||
gzip -9 $TARGET/man/man1/pandoc.1
|
||||
gzip -9 $TARGET/man/man1/pandoc-citeproc.1
|
||||
tar cvzf $TARGET.tar.gz $TARGET
|
||||
rm -r $TARGET
|
Loading…
Add table
Reference in a new issue