mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-23 03:18:59 +00:00
Add docker file for building app image
The official, signed AppImage will be build locally for now for security of my key, but I still want it to be built in a clean, controlled environment based off a suitably old Linux distribution for maximal portability in the AppImage.
This commit is contained in:
parent
ac4cca7c26
commit
30380b64e3
@ -27,7 +27,17 @@
|
|||||||
* libqpdf/QPDF.cc
|
* libqpdf/QPDF.cc
|
||||||
* manual/qpdf-manual.xml
|
* manual/qpdf-manual.xml
|
||||||
`make_dist` verifies this consistency.
|
`make_dist` verifies this consistency.
|
||||||
* Generate a signed AppImage. To do this, have the gpg key available and run `./appimage/build-appimage --sign`. Rename the AppImage in appimage/build to qpdf-<version>-x86_64.AppImage and include it in the set of files to be released.
|
* Generate a signed AppImage using the docker image in appimage. Arguments to the docker container are arguments to git clone. The build should be made off the exact commit that will be officially tagged as the release but built prior to tagging the release.
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
cd appimage
|
||||||
|
docker build -t qpdfbuild .
|
||||||
|
rm -rf /tmp/build
|
||||||
|
mkdir -p /tmp/build
|
||||||
|
cp -rLp ~/.gnupg/. /tmp/build/.gnupg
|
||||||
|
docker run --privileged -ti --rm -v /tmp/build:/tmp/build qpdfbuild https://github.com/jberkenbilt/qpdf -b work
|
||||||
|
```
|
||||||
|
Rename the AppImage in appimage/build to qpdf-<version>-x86_64.AppImage and include it in the set of files to be released.
|
||||||
* Update release date in `manual/qpdf-manual.xml`. Remember to ensure that the entities at the top of the document are consistent with the release notes for both version and release date.
|
* Update release date in `manual/qpdf-manual.xml`. Remember to ensure that the entities at the top of the document are consistent with the release notes for both version and release date.
|
||||||
* Check `TODO` file to make sure all planned items for the release are done or retargeted.
|
* Check `TODO` file to make sure all planned items for the release are done or retargeted.
|
||||||
* Each year, update copyright notices. Just do a case-insensitive search for copyright. Don't forget copyright in manual. Also update debian copyright in debian package. Last updated: 2018.
|
* Each year, update copyright notices. Just do a case-insensitive search for copyright. Don't forget copyright in manual. Also update debian copyright in debian package. Last updated: 2018.
|
||||||
|
11
appimage/Dockerfile
Normal file
11
appimage/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
FROM ubuntu:14.04
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get -y install screen autoconf git \
|
||||||
|
build-essential zlib1g-dev libjpeg-dev \
|
||||||
|
docbook-xsl fop xsltproc \
|
||||||
|
imagemagick wget fuse && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY entrypoint /entrypoint
|
||||||
|
RUN chmod +x /entrypoint
|
||||||
|
ENTRYPOINT [ "/entrypoint" ]
|
22
appimage/entrypoint
Executable file
22
appimage/entrypoint
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
if [ $(id -u) = 0 ]; then
|
||||||
|
if [ ! -d /tmp/build/.gnupg ]; then
|
||||||
|
echo "/tmp/build must exist and must contain .gnupg"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
id=$(stat -c %u /tmp/build)
|
||||||
|
adduser --home /tmp/build --no-create-home --uid $id --disabled-password --gecos build build
|
||||||
|
exec sudo -iu build $0 "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd /tmp/build
|
||||||
|
if [ ! -d qpdf ]; then
|
||||||
|
if [ "$1" == "" ]; then
|
||||||
|
echo "A repository and optional git clone arguments must be given"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
git clone "$@" qpdf
|
||||||
|
fi
|
||||||
|
cd qpdf
|
||||||
|
./appimage/build-appimage --sign
|
Loading…
Reference in New Issue
Block a user