buildsys: import sa-update key from tarball

`make sa-updates.tgz` runs sa-update with a temporary directory and packs the
gathered rules into a tarball, which gets extracted during dpkg-buildpackage.

This patch creates a gpg-homedir and imports the sa-update-key distributed with
the upstream tarball, and changes the call to sa-update to use this directory
instead of the default '/etc/mail/spamassassin/sa-update-keys'.
In addition to being a bit more self-contained this also enables running
`make sa-updates.tgz` without being root.

The temporary gpg-homedir is added to '.gitignore'

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
This commit is contained in:
Stoiko Ivanov 2019-06-04 16:12:02 +02:00 committed by Thomas Lamprecht
parent 5c391e88fb
commit ae1e4fd862
2 changed files with 14 additions and 3 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.sa-update-gpghome

View File

@ -24,6 +24,8 @@ DEB = proxmox-spamassassin_${SAVER}-${PKGREL}_amd64.deb
EXTRA_RULES = KAM.cf
SA_UPDATE_GPG_DIR = .sa-update-gpghome
#${DEB}: ${OPKGNAME}.tar.gz
${DEB}: ${OPKGNAME}.tar.gz sa-updates.tgz ${EXTRA_RULES}
-rm -rf ${OPKGNAME} ${NPKGNAME}
@ -40,16 +42,24 @@ KAM.cf:
wget http://www.pccc.com/downloads/SpamAssassin/contrib/KAM.cf -O $@.tmp
mv KAM.cf.tmp $@
sa-updates.tgz:
${SA_UPDATE_GPG_DIR}/.prepared: ${OPKGNAME}.tar.gz
rm -rf ${SA_UPDATE_GPG_DIR}
mkdir --mode=0700 -p ${SA_UPDATE_GPG_DIR}
tar --strip-components 2 -xzf ${OPKGNAME}.tar.gz ${OPKGNAME}/rules/sa-update-pubkey.txt
sa-update --gpghomedir ${SA_UPDATE_GPG_DIR} --import sa-update-pubkey.txt
rm sa-update-pubkey.txt
touch $@
sa-updates.tgz: ${SA_UPDATE_GPG_DIR}/.prepared
rm -rf updates.tmp
sa-update --updatedir updates.tmp --channel updates.spamassassin.org
sa-update --gpghomedir ${SA_UPDATE_GPG_DIR} --updatedir updates.tmp --channel updates.spamassassin.org
tar cvzf sa-updates.tgz --exclude=local.cf --exclude=regression_tests.cf --exclude=*.txt --exclude=MIRRORED.BY -C updates.tmp/updates_spamassassin_org/ .
.PHONY: upload
upload: ${DEB}
tar cf - ${DEB} | ssh -X repoman@repo.proxmox.com -- upload --product pmg --dist stretch
CLEANFILES = *~ debian/*~ *.deb proxmox-spamassassin_* updates.tmp
CLEANFILES = *~ debian/*~ *.deb proxmox-spamassassin_* updates.tmp ${SA_UPDATE_GPG_DIR}
.PHONY: clean
clean: