2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-11-11 07:30:57 +00:00
qpdf/build-scripts/build-appimage
2022-09-06 12:45:12 -04:00

41 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
#
# Any extra args are passed to the docker run command before the
# invocation of qpdfbuild. This is useful for iterating locally as
# described in README-maintainer.
#
set -ex
cd appimage
docker build -t qpdfbuild .
rm -rf build
mkdir build
cd ..
git clone .git appimage/build/qpdf
docker run --privileged --rm \
-v $PWD/appimage/build:/tmp/build ${1+"$@"} qpdfbuild
rm -rf distribution
mkdir distribution
cp -p appimage/build/qpdf/appimage/build/qpdf*AppImage* distribution
for i in distribution/*; do
mv $i $(echo $i | sed -e 's/\.AppImage/-ci.AppImage/')
done
# Extract a standalone copy of binaries and libraries from the
# AppImage. This is suitable for use in AWS Lambda, docker, or other
# self-contained environments.
version=$(basename distribution/qpdf*AppImage | cut -d- -f 2)
./distribution/qpdf*AppImage --appimage-extract
D=$PWD/distribution
if ! (readelf -d squashfs-root/usr/bin/qpdf | \
grep RUNPATH | grep -q -F ..); then
# We are relying on the AppImage build to create an executable
# whose runpath is relative to the binary so that the extract zip
# file is relocatable.
echo "Standalone linux binary lacks relative RUNPATH"
fi
(cd squashfs-root/usr; \
zip -9 --symlinks $D/qpdf-$version-bin-linux-x86_64-ci.zip \
bin/{qpdf,fix-qdf,zlib-flate} lib/*)
sha256sum distribution/*