diff --git a/docker/xenial/repogen/.gitignore b/docker/xenial/repogen/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..89ca4e51d3543deb9897c15944aab4d79b2ace0c --- /dev/null +++ b/docker/xenial/repogen/.gitignore @@ -0,0 +1,4 @@ +repodir/Packages +repodir/Release +repodir/Release.gpg + diff --git a/docker/xenial/repogen/Dockerfile b/docker/xenial/repogen/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..89162368e426776fab2ba056d45ba4a645679aff --- /dev/null +++ b/docker/xenial/repogen/Dockerfile @@ -0,0 +1,13 @@ +FROM ubuntu:16.04 +MAINTAINER Mate Farkas <mate.farkas@sch.hu> + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get -y update && apt-get install -y \ + apt-utils + +ADD usr/local/bin/generate-apt-metadata /usr/local/bin/generate-apt-metadata +RUN chmod a+x /usr/local/bin/generate-apt-metadata + +CMD /usr/local/bin/generate-apt-metadata + diff --git a/docker/xenial/repogen/Makefile b/docker/xenial/repogen/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..e21ef97459ad652992fd8990bd14438bc646cad6 --- /dev/null +++ b/docker/xenial/repogen/Makefile @@ -0,0 +1,8 @@ +TAG='matefarkas/xenial:repogen' + +all: + docker build --tag ${TAG} ${PWD} + +test: + docker run -it --rm --volume ${PWD}/repodir/:/build/ --volume ~/.gnupg/:/root/.gnupg/:ro ${TAG} + diff --git a/docker/xenial/repogen/README.md b/docker/xenial/repogen/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ce3d7832661cf30fe2b8217290baf7ac0a80f724 --- /dev/null +++ b/docker/xenial/repogen/README.md @@ -0,0 +1,8 @@ +# matefarkas/xenial:repogen + +DEB repo metadata generator. + +## alias + + alias repogen-apt='docker run -it --rm --volume $PWD:/build/ --volume ~/.gnupg/:/root/.gnupg/:ro matefarkas/xenial:repogen' + diff --git a/docker/xenial/repogen/repodir/indeed.key b/docker/xenial/repogen/repodir/indeed.key new file mode 100644 index 0000000000000000000000000000000000000000..446d38d7d7f689001f695a1021a637df5db7ec4d --- /dev/null +++ b/docker/xenial/repogen/repodir/indeed.key @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQINBFjmwNEBEACpG3M2mxamjG2w8o4Ll+qI0YkhldMfKCjjr/3T3P+mT+7QNmCS +2eK6esmyrlpOwBk2uAAcD28iuewxfbMK1MXQVWZ1KP/XE9zzVgjenuu4bvaPfQ1G +YMl5q6pxy4AWeBnMiOzDGiZ7uoa2Hx79aUg9HWR63lygZcqGaioPm2td57wTiwXf +zqJiFSFL0zLqUwUVV/SkwWuVFd1tApWcz5Fj0JJKcP/OTj3i6ZBbCunwsWvab4Dq +9IO9SLzXFkges35wZCbe3SWimj43l//kEsEE3gT9gCumaAifOPUUWy9OmwHrNs3Z +s+qku8wKMP7IOFW2OjttDiTcAW8b2ioLSuIl5HFRiond9QO2CzrHKErajtbV+f/F +L/wMrUSdvqJt7ECeMfOdK4g5szDaO7wjdg8gqFUp4Frivt81onzB7u0m3ihfqoZ1 +qNRTswRknGI49o21SHDzt1Game/SAiencqSuqlNYSDdEn+84/aLjZe9jLF4FS9hg +jCRJT/ZAtKpAgj7/VTxdx/PaCR6t/WtHbv/fxxUGZ9nVzdN4Dw4BphganyNobHrJ +4mLqEsrndaVTROQyuOM83TeEeR1IDopiK057CI/cxJFajj7L7OQ2SNV++JtZkA/2 +1XEhJjAff5Jw1d/ZCG+ARNR6inPHqDTZSUFh7vfhmWfbXMRqDWC6ut2t8wARAQAB +tCBNYXRlIEZhcmthcyA8bWF0ZS5mYXJrYXNAc2NoLmh1PokCOAQTAQIAIgUCWObA +0QIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQw6OkRgNq+pNW3w/+LZ7u +iLmnjWcfMNUDQwmJzMt3f/SkEqEp9F/osYlVqQSFyx5mbhYLAZ0HAe1c5wed4LQ5 +H3m+dbcgXs3dp3YxMxA15fkPfbP65gy+KLR03kGstrINZb2zQtc7K6QGGzf6l7Ys +OwHm0pku5iFR97QYf8k8/givImNqc00P4dpG2RqMV2EfIszDcevCrAOnQ+D/uww0 +3M7VQU5fB817cHTvjO7SRuAX5lJ/pAtE9kDYS2q0yNUvp60UoV3WoxDbrPNHdSYa +MmumdjQvWsOmGChKKUjHsrWSf1wn+JKpzWf0pD4wchBeQGgWPr8eqb8yRj0fk/H/ +MAv2V7sqK3DMNnEMxdavKBD0ZWuRzlL0Bok7QWs/oDm2XVYFvrAj4Vg7GOKYyvqI +4YtWMj36Vjb5bR7ZR6bg+sb6joOGLXoF3VZfdppbxvO+cXAsoGcZIedDEAtaASeq +ZD53aoF8blmucpcIJZiobInsMp/oevp7nf3u6Ep0YItlsJ0JOkNi3DCS5XXqsOxY +uo90gwOVwWsAX/O1x3vIi17M6+THB8TqqvOkB4QUCah4S01w84j97atJA5TM06XZ +bO2/syBsfDly8piZ/vkJ8gidfBx6o6vp5A9lhukfEOwNe0t2RMUN1k5X1wduXOew +ulkpoRHCkvxxZccI3JwAOQhaaUDQLJF6dl0Pw9c= +=D1iS +-----END PGP PUBLIC KEY BLOCK----- diff --git a/docker/xenial/repogen/repodir/indeed.list b/docker/xenial/repogen/repodir/indeed.list new file mode 100644 index 0000000000000000000000000000000000000000..ad3fc00c6a4096c9f978c0866e7a2f5fafce01b7 --- /dev/null +++ b/docker/xenial/repogen/repodir/indeed.list @@ -0,0 +1,2 @@ +deb http://indeed.sch.bme.hu/apt/ / + diff --git a/docker/xenial/repogen/repodir/pool/hello_1.0.0_all.deb b/docker/xenial/repogen/repodir/pool/hello_1.0.0_all.deb new file mode 100644 index 0000000000000000000000000000000000000000..37c0363ed248d754025cd7da59f7ca5136ec98ec Binary files /dev/null and b/docker/xenial/repogen/repodir/pool/hello_1.0.0_all.deb differ diff --git a/docker/xenial/repogen/usr/local/bin/generate-apt-metadata b/docker/xenial/repogen/usr/local/bin/generate-apt-metadata new file mode 100644 index 0000000000000000000000000000000000000000..b84d5445e62765575a659f9ca5e2ad4abdcf88b8 --- /dev/null +++ b/docker/xenial/repogen/usr/local/bin/generate-apt-metadata @@ -0,0 +1,32 @@ +#!/bin/bash + +REPO_DIR=/build/ +PERMISSIONS=0444 + +if [ ! -d $REPO_DIR ] +then + echo "ERROR: ${REPO_DIR} doesn't exist." + exit 1 +fi + +uid=`stat -c '%u' $REPO_DIR` +gid=`stat -c '%g' $REPO_DIR` + +cd $REPO_DIR +apt-ftparchive packages $REPO_DIR > Packages +sed -i "s|^Filename: ${REPO_DIR}|Filename: |" Packages +apt-ftparchive release $REPO_DIR > Release + +chown $uid:$gid Packages Release +chmod $PERMISSIONS Packages Release + +if [ ! -d ~/.gnupg/ ] +then + echo "ERROR: GPG config is missing." + exit 1 +fi + +gpg --armor --detach-sign --digest-algo SHA256 --sign --no-random-seed-file --output Release.gpg Release +chown $uid:$gid Release.gpg +chmod $PERMISSIONS Release.gpg +