use a substvar to set the archive-keyring in debian/control
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 30 Nov 2013 21:07:38 +0000 (22:07 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 30 Nov 2013 22:34:15 +0000 (23:34 +0100)
Adds a small helper to extract the small information bits we store in
apt-vendor.ent and uses it in debian/rules to set apt:keyring as a
substvar for debian/control populated with the &keyring-package; info

debian/control
debian/rules
vendor/debian/makefile
vendor/getinfo [new file with mode: 0755]
vendor/ubuntu/makefile

index 84d6155..c70d0e9 100644 (file)
@@ -17,7 +17,7 @@ XS-Testsuite: autopkgtest
 
 Package: apt
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, debian-archive-keyring, gnupg
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${apt:keyring}, gnupg
 Replaces: manpages-pl (<< 20060617-3~), manpages-it (<< 2.80-4~)
 Breaks: manpages-pl (<< 20060617-3~), manpages-it (<< 2.80-4~)
 Conflicts: python-apt (<< 0.7.93.2~)
index 28525af..f4f7ec0 100755 (executable)
@@ -219,7 +219,7 @@ apt: build-binary build-manpages debian/apt.install
        dh_fixperms -p$@
        dh_installdeb -p$@
        dh_shlibdeps -p$@
-       dh_gencontrol -p$@
+       dh_gencontrol -p$@ -- -Vapt:keyring="$(shell ./vendor/getinfo keyring-package)"
        dh_md5sums -p$@
        dh_builddeb -p$@
 
index 41202c6..dd35a70 100644 (file)
@@ -8,4 +8,4 @@ include ../../buildlib/defaults.mak
 doc: sources.list
 
 sources.list: sources.list.in ../../doc/apt-verbatim.ent
-       sed -e 's#&stable-codename;#$(shell grep --max-count=1 '^<!ENTITY stable-codename "' ../../doc/apt-verbatim.ent | cut -d'"' -f 2)#g' $^ > $@
+       sed -e 's#&stable-codename;#$(shell ../getinfo debian-stable-codename)#g' $< > $@
diff --git a/vendor/getinfo b/vendor/getinfo
new file mode 100755 (executable)
index 0000000..df5a44e
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+# small helper to extract information form *.ent files
+
+BASEDIR="$(readlink -f "$(dirname $0)")"
+INFO="$(readlink -f "${BASEDIR}/current/apt-vendor.ent")"
+
+if [ -z "$INFO" ] || [ ! -e "$INFO" ]; then
+       echo >&2 'The current vendor is not valid or not chosen by the buildsystem yet.'
+       exit 1
+fi
+
+getrawfield() {
+       grep --max-count=1 "^<!ENTITY $1 \"" "${2:-$INFO}" | cut -d'"' -f 2
+}
+
+getfield() {
+       local FIELD="$(getrawfield "$@")"
+       FIELD="${FIELD#*>}"
+       echo "${FIELD%<*}"
+}
+
+case "$1" in
+debian-stable-codename)
+       getrawfield 'stable-codename' "${BASEDIR}/../doc/apt-verbatim.ent"
+       ;;
+ubuntu-codename)
+       getrawfield 'stable-codename' "${BASEDIR}/../doc/apt-verbatim.ent"
+       ;;
+keyring-package)
+       getfield "$1"
+       ;;
+*)
+       echo >&2 "Unknown data field $1 requested"
+       exit 2
+       ;;
+esac
index 388a529..ea67e6e 100644 (file)
@@ -8,4 +8,4 @@ include ../../buildlib/defaults.mak
 doc: sources.list
 
 sources.list: sources.list.in ../../doc/apt-verbatim.ent
-       sed -e 's#&ubuntu-codename;#$(shell grep --max-count=1 '^<!ENTITY ubuntu-codename "' ../../doc/apt-verbatim.ent | cut -d'"' -f 2)#g' $^ > $@
+       sed -e 's#&ubuntu-codename;#$(shell ../getinfo ubuntu-codename)#g' $< > $@