From 7c349084932d6f022189b3759f96ef198329b558 Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Mon, 15 Aug 2022 10:09:32 -0700 Subject: [PATCH] Improve linux/make_artifacts. Structure code more cleanly. Make separate deb, tarball for pandoc-server. --- linux/make_artifacts.sh | 89 ++++++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 41 deletions(-) diff --git a/linux/make_artifacts.sh b/linux/make_artifacts.sh index 7eb2df164..cb9343808 100644 --- a/linux/make_artifacts.sh +++ b/linux/make_artifacts.sh @@ -34,54 +34,61 @@ cabal v2-install --bindir=$ARTIFACTS for f in $(find dist-newstyle -name 'pandoc' -type f -perm /400); do cp $f $ARTIFACTS/; done for f in $(find dist-newstyle -name 'pandoc-server' -type f -perm /400); do cp $f /$ARTIFACTS/; done -# make deb +# make deb for EXE +make_deb() { + VERSION=`$ARTIFACTS/$EXE --version | awk '{print $2; exit;}'` + REVISION=${REVISION:-1} + DEBVER=$VERSION-$REVISION + BASE=$EXE-$DEBVER-$ARCHITECTURE + DIST=`pwd`/$BASE + DEST=$DIST/usr + COPYRIGHT=$DEST/share/doc/$EXE/copyright -VERSION=`$ARTIFACTS/pandoc --version | awk '{print $2; exit;}'` -REVISION=${REVISION:-1} -DEBVER=$VERSION-$REVISION -BASE=pandoc-$DEBVER-$ARCHITECTURE -DIST=`pwd`/$BASE -DEST=$DIST/usr -COPYRIGHT=$DEST/share/doc/pandoc/copyright + mkdir -p $DEST/bin + mkdir -p $DEST/share/man/man1 -mkdir -p $DEST/bin -mkdir -p $DEST/share/man/man1 -mkdir -p $DEST/share/doc/pandoc + find $DIST -type d | xargs chmod 755 + cp $ARTIFACTS/$EXE $DEST/bin/ + strip $DEST/bin/$EXE + cp /mnt/man/$EXE.1 $DEST/share/man/man1/$EXE.1 + gzip -9 $DEST/share/man/man1/$EXE.1 -find $DIST -type d | xargs chmod 755 -cp $ARTIFACTS/pandoc $DEST/bin/ -strip $DEST/bin/pandoc -cp /mnt/man/pandoc.1 $DEST/share/man/man1/pandoc.1 -gzip -9 $DEST/share/man/man1/pandoc.1 + cp /mnt/COPYRIGHT $COPYRIGHT + echo "" >> $COPYRIGHT -cp /mnt/COPYRIGHT $COPYRIGHT -echo "" >> $COPYRIGHT + INSTALLED_SIZE=$(du -k -s $DEST | awk '{print $1}') + mkdir $DIST/DEBIAN + perl -pe "s/VERSION/$DEBVER/" linux/control.in | \ + perl -pe "s/ARCHITECTURE/$ARCHITECTURE/" | \ + perl -pe "s/INSTALLED_SIZE/$INSTALLED_SIZE/" \ + > $DIST/DEBIAN/control -INSTALLED_SIZE=$(du -k -s $DEST | awk '{print $1}') -mkdir $DIST/DEBIAN -perl -pe "s/VERSION/$DEBVER/" linux/control.in | \ - perl -pe "s/ARCHITECTURE/$ARCHITECTURE/" | \ - perl -pe "s/INSTALLED_SIZE/$INSTALLED_SIZE/" \ - > $DIST/DEBIAN/control + # we limit compression to avoid OOM error + fakeroot dpkg-deb -Zgzip -z9 --build $DIST + rm -rf $DIST + cp $BASE.deb $ARTIFACTS/ +} -# we limit compression to avoid OOM error -fakeroot dpkg-deb -Zgzip -z9 --build $DIST -rm -rf $DIST -cp $BASE.deb $ARTIFACTS/ +# Make tarball for EXE +make_tarball() { + TARGET=$EXE-$VERSION + cd $ARTIFACTS + rm -rf $TARGET + mkdir $TARGET + mkdir $TARGET/bin $TARGET/share $TARGET/share/man $TARGET/share/man/man1 + cp /mnt/man/$EXE.1 $TARGET/share/man/man1 + mv $EXE $TARGET/bin + strip $TARGET/bin/$EXE + gzip -9 $TARGET/share/man/man1/$EXE.1 -# Make tarball + tar cvzf $TARGET-linux-$ARCHITECTURE.tar.gz $TARGET + rm -r $TARGET +} -TARGET=pandoc-$VERSION -cd $ARTIFACTS -rm -rf $TARGET -mkdir $TARGET -mkdir $TARGET/bin $TARGET/share $TARGET/share/man $TARGET/share/man/man1 -cp /mnt/man/pandoc.1 $TARGET/share/man/man1 -mv pandoc $TARGET/bin -strip $TARGET/bin/pandoc -gzip -9 $TARGET/share/man/man1/pandoc.1 - -tar cvzf $TARGET-linux-$ARCHITECTURE.tar.gz $TARGET -rm -r $TARGET +for EXE in pandoc pandoc-server +do + make_deb + make_tarball +done exit 0