diff options
author | David Kalnischkies <david@kalnischkies.de> | 2014-02-24 00:25:29 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2014-03-13 13:57:34 +0100 |
commit | fa19cc9573aac19cfbf43364d4b5660c9ab645bc (patch) | |
tree | a2e24bd5efb311d6e1c637de2b34219dba9c7459 | |
parent | 9ec748ff103840c4c65471ca00d3b72984131ce4 (diff) | |
download | apt-fa19cc9573aac19cfbf43364d4b5660c9ab645bc.tar.gz |
autogenerate makefile for vendor system
It can be useful to have a whole makefile available for vendor setup,
but by providing a basic one we can deal with the simple cases more
easily (and changes to the system are presumably easier).
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | doc/apt-verbatim.ent | 1 | ||||
-rw-r--r-- | vendor/debian/makefile | 17 | ||||
-rw-r--r-- | vendor/debian/sources.list.in | 8 | ||||
-rwxr-xr-x | vendor/getinfo | 20 | ||||
-rw-r--r-- | vendor/makefile | 38 | ||||
-rw-r--r-- | vendor/raspbian/makefile | 16 | ||||
-rw-r--r-- | vendor/steamos/apt-vendor.ent | 2 | ||||
-rw-r--r-- | vendor/steamos/makefile | 17 | ||||
-rw-r--r-- | vendor/steamos/sources.list.in | 4 | ||||
-rw-r--r-- | vendor/tanglu/apt-vendor.ent | 1 | ||||
-rw-r--r-- | vendor/tanglu/makefile | 16 | ||||
-rw-r--r-- | vendor/tanglu/sources.list.in | 8 | ||||
-rw-r--r-- | vendor/ubuntu/makefile | 16 | ||||
-rw-r--r-- | vendor/vendor.makefile | 21 |
15 files changed, 71 insertions, 118 deletions
diff --git a/.gitignore b/.gitignore index 69a229c3e..2c619ab57 100644 --- a/.gitignore +++ b/.gitignore @@ -39,5 +39,5 @@ /debian/libapt-inst*.install /debian/libapt-pkg-dev.install /vendor/current -/vendor/debian/sources.list -/vendor/ubuntu/sources.list +/vendor/*/sources.list +/vendor/*/makefile.auto diff --git a/doc/apt-verbatim.ent b/doc/apt-verbatim.ent index 6ff45e228..75aa02c8f 100644 --- a/doc/apt-verbatim.ent +++ b/doc/apt-verbatim.ent @@ -226,7 +226,6 @@ <!ENTITY stable-codename "wheezy"> <!ENTITY testing-codename "jessie"> <!ENTITY stable-version "7"> -<!ENTITY tanglu-codename "bartholomea"> <!ENTITY ubuntu-codename "trusty"> <!-- good and bad just refers to matching and not matching a pattern… diff --git a/vendor/debian/makefile b/vendor/debian/makefile deleted file mode 100644 index 25bc0350c..000000000 --- a/vendor/debian/makefile +++ /dev/null @@ -1,17 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=vendor/debian - -# Bring in the default rules -include ../../buildlib/defaults.mak - -doc binary manpages: sources.list - -sources.list: sources.list.in ../../doc/apt-verbatim.ent - sed -e 's#&stable-codename;#$(shell ../getinfo debian-stable-codename)#g' $< > $@ - -clean: clean/sources.list - -clean/sources.list: - rm -f sources.list - diff --git a/vendor/debian/sources.list.in b/vendor/debian/sources.list.in index 745e32cbe..2e430296a 100644 --- a/vendor/debian/sources.list.in +++ b/vendor/debian/sources.list.in @@ -1,8 +1,8 @@ # See sources.list(5) manpage for more information # Remember that CD-ROMs, DVDs and such are managed through the apt-cdrom tool. -deb http://ftp.us.debian.org/debian &stable-codename; main contrib non-free -deb http://security.debian.org &stable-codename;/updates main contrib non-free +deb http://ftp.us.debian.org/debian &debian-stable-codename; main contrib non-free +deb http://security.debian.org &debian-stable-codename;/updates main contrib non-free # Uncomment if you want the apt-get source function to work -#deb-src http://ftp.us.debian.org/debian &stable-codename; main contrib non-free -#deb-src http://security.debian.org &stable-codename;/updates main contrib non-free +#deb-src http://ftp.us.debian.org/debian &debian-stable-codename; main contrib non-free +#deb-src http://security.debian.org &debian-stable-codename;/updates main contrib non-free diff --git a/vendor/getinfo b/vendor/getinfo index 4422f5d78..d45c0fca2 100755 --- a/vendor/getinfo +++ b/vendor/getinfo @@ -3,6 +3,7 @@ BASEDIR="$(readlink -f "$(dirname $0)")" INFO="$(readlink -f "${BASEDIR}/current/apt-vendor.ent")" +VERBATIM="${BASEDIR}/../doc/apt-verbatim.ent" if [ -z "$INFO" ] || [ ! -e "$INFO" ]; then echo >&2 'The current vendor is not valid or not chosen by the buildsystem yet.' @@ -20,17 +21,20 @@ getfield() { } case "$1" in -debian-stable-codename) - getrawfield 'stable-codename' "${BASEDIR}/../doc/apt-verbatim.ent" - ;; -tanglu-codename) - getrawfield 'tanglu-codename' "${BASEDIR}/../doc/apt-verbatim.ent" +debian-stable-codename|debian-oldstable-codename|debian-testing-codename) + getrawfield "${1#*-}" "$VERBATIM" ;; ubuntu-codename) - getrawfield 'ubuntu-codename' "${BASEDIR}/../doc/apt-verbatim.ent" + getrawfield "$1" "$VERBATIM" + ;; +keyring-package|keyring-filename|keyring-master-filename|keyring-removed-filename|keyring-uri|current-codename) + exec $0 'vendor' "$@" + ;; +vendor) + getfield "$2" ;; -keyring-package|keyring-filename|keyring-master-filename|keyring-removed-filename|keyring-uri|current-distro-codename) - getfield "$1" +verbatim) + getfield "$2" "$VERBATIM" ;; *) echo >&2 "Unknown data field $1 requested" diff --git a/vendor/makefile b/vendor/makefile index 619c603fb..0701a03eb 100644 --- a/vendor/makefile +++ b/vendor/makefile @@ -14,11 +14,9 @@ veryclean: veryclean/subdirs dirs: dirs/subdirs manpages: manpages/subdirs -all/subdirs binary/subdirs doc/subdirs dirs/subdirs manpages/subdirs: - $(MAKE) -C current $(patsubst %/subdirs,%,$@) - -clean/subdirs veryclean/subdirs: - test ! -e current || $(MAKE) -C current $(patsubst %/subdirs,%,$@) +all/subdirs binary/subdirs doc/subdirs dirs/subdirs manpages/subdirs clean/subdirs veryclean/subdirs: + test ! -e current/makefile || $(MAKE) -C current $(patsubst %/subdirs,%,$@) + test ! -e current/makefile.auto || $(MAKE) -C current -f makefile.auto $(patsubst %/subdirs,%,$@) current: rm -f $@ @@ -29,17 +27,29 @@ current: break; \ fi; \ done - # if we haven't found a specific, look for a deriving in hardcoded order - test -e $@ || \ - (dpkg-vendor --derives-from ubuntu && cp ln -s ubuntu $@ ) || \ - (dpkg-vendor --derives-from tanglu && cp ln -s tanglu $@ ) || \ - ln -s debian $@ + # if we haven't found a specific, look for a deriving + # we do ubuntu and debian last as those are the biggest families + # and would therefore potentially 'shadow' smaller families + # (especially debian as it sorts quiet early) + if ! test -e $@; then \ + find -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2 | while read DISTRO; do \ + if [ "$$DISTRO" = 'debian' -o "$$DISTRO" = 'ubuntu' ]; then continue; fi; \ + if dpkg-vendor --derives-from $$DISTRO; then \ + ln -s $$DISTRO $@; \ + break; \ + fi; \ + done; \ + test -e $@ || \ + (dpkg-vendor --derives-from ubuntu && cp ln -s ubuntu $@ ) || \ + ln -s debian $@; \ + fi + if test ! -e current/makefile; then \ + sed "s#@@VENDOR@@#$(notdir $(shell readlink -f current))#" vendor.makefile > current/makefile.auto; \ + fi .PHONY: clean veryclean all binary vendor -.NOPARALLEL: clean: clean/current -clean/current: - test ! -e current || $(MAKE) -C current clean - rm -f current +clean/current: clean/subdirs + rm -f current/makefile.auto current diff --git a/vendor/raspbian/makefile b/vendor/raspbian/makefile deleted file mode 100644 index c4464900f..000000000 --- a/vendor/raspbian/makefile +++ /dev/null @@ -1,16 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=vendor/raspbian - -# Bring in the default rules -include ../../buildlib/defaults.mak - -doc binary manpages: sources.list - -sources.list: sources.list.in ../../doc/apt-verbatim.ent - sed -e 's#&stable-codename;#$(shell ../getinfo debian-stable-codename)#g' $< > $@ - -clean: clean/sources.list - -clean/sources.list: - rm -f sources.list diff --git a/vendor/steamos/apt-vendor.ent b/vendor/steamos/apt-vendor.ent index 69bb254ef..dc1b798e6 100644 --- a/vendor/steamos/apt-vendor.ent +++ b/vendor/steamos/apt-vendor.ent @@ -3,6 +3,6 @@ <!ENTITY keyring-package "<package>valve-archive-keyring</package>"> <!ENTITY keyring-filename "<filename>/usr/share/keyrings/valve-archive-keyring.gpg</filename>"> <!ENTITY keyring-removed-filename "<filename>/usr/share/keyrings/valve-archive-removed-keys.gpg</filename>"> -<!ENTITY current-distro-codename "alchemist"> <!ENTITY keyring-master-filename ""> <!ENTITY keyring-uri ""> +<!ENTITY current-codename "alchemist"> diff --git a/vendor/steamos/makefile b/vendor/steamos/makefile deleted file mode 100644 index 9ee0e65a2..000000000 --- a/vendor/steamos/makefile +++ /dev/null @@ -1,17 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=vendor/steamos - -# Bring in the default rules -include ../../buildlib/defaults.mak - -doc binary manpages: sources.list - -sources.list: sources.list.in ../../doc/apt-verbatim.ent - sed -e 's#&stable-codename;#$(shell ../getinfo debian-stable-codename)#g' $< | sed -e 's#&steamos-codename;#$(shell ../getinfo current-distro-codename)#g' > $@ - -clean: clean/sources.list - -clean/sources.list: - rm -f sources.list - diff --git a/vendor/steamos/sources.list.in b/vendor/steamos/sources.list.in index fed6c3818..69174d090 100644 --- a/vendor/steamos/sources.list.in +++ b/vendor/steamos/sources.list.in @@ -1,5 +1,5 @@ # See sources.list(5) manpage for more information # Remember that CD-ROMs, DVDs and such are managed through the apt-cdrom tool. -deb http://repo.steampowered.com/steamos &steamos-codename; main contrib non-free -deb-src http://repo.steampowered.com/steamos &steamos-codename; main contrib non-free +deb http://repo.steampowered.com/steamos ¤t-codename; main contrib non-free +deb-src http://repo.steampowered.com/steamos ¤t-codename; main contrib non-free diff --git a/vendor/tanglu/apt-vendor.ent b/vendor/tanglu/apt-vendor.ent index 4b70a5f82..d2442209c 100644 --- a/vendor/tanglu/apt-vendor.ent +++ b/vendor/tanglu/apt-vendor.ent @@ -5,3 +5,4 @@ <!ENTITY keyring-removed-filename "<filename>/usr/share/keyrings/tanglu-archive-removed-keys.gpg</filename>"> <!ENTITY keyring-master-filename ""> <!ENTITY keyring-uri ""> +<!ENTITY current-codename "bartholomea"> diff --git a/vendor/tanglu/makefile b/vendor/tanglu/makefile deleted file mode 100644 index 9fe680bc6..000000000 --- a/vendor/tanglu/makefile +++ /dev/null @@ -1,16 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=vendor/tanglu - -# Bring in the default rules -include ../../buildlib/defaults.mak - -doc binary manpages: sources.list - -sources.list: sources.list.in ../../doc/apt-verbatim.ent - sed -e 's#&tanglu-codename;#$(shell ../getinfo tanglu-codename)#g' $< > $@ - -clean: clean/sources.list - -clean/sources.list: - rm -f sources.list diff --git a/vendor/tanglu/sources.list.in b/vendor/tanglu/sources.list.in index dfa219046..ce95e70c2 100644 --- a/vendor/tanglu/sources.list.in +++ b/vendor/tanglu/sources.list.in @@ -1,7 +1,7 @@ # See sources.list(5) manpage for more information -deb http://archive.tanglu.org/tanglu &tanglu-codename; main contrib non-free -#deb-src http://archive.tanglu.org/tanglu &tanglu-codename; main contrib non-free +deb http://archive.tanglu.org/tanglu ¤t-codename; main contrib non-free +#deb-src http://archive.tanglu.org/tanglu ¤t-codename; main contrib non-free -#deb http://archive.tanglu.org/tanglu &tanglu-codename;-updates main contrib non-free -#deb-src http://archive.tanglu.org/tanglu &tanglu-codename;-updates main contrib non-free +#deb http://archive.tanglu.org/tanglu ¤t-codename;-updates main contrib non-free +#deb-src http://archive.tanglu.org/tanglu ¤t-codename;-updates main contrib non-free diff --git a/vendor/ubuntu/makefile b/vendor/ubuntu/makefile deleted file mode 100644 index afcaaf718..000000000 --- a/vendor/ubuntu/makefile +++ /dev/null @@ -1,16 +0,0 @@ -# -*- make -*- -BASE=../.. -SUBDIR=vendor/ubuntu - -# Bring in the default rules -include ../../buildlib/defaults.mak - -doc binary manpages: sources.list - -sources.list: sources.list.in ../../doc/apt-verbatim.ent - sed -e 's#&ubuntu-codename;#$(shell ../getinfo ubuntu-codename)#g' $< > $@ - -clean: clean/sources.list - -clean/sources.list: - rm -f sources.list diff --git a/vendor/vendor.makefile b/vendor/vendor.makefile new file mode 100644 index 000000000..40b35ea3d --- /dev/null +++ b/vendor/vendor.makefile @@ -0,0 +1,21 @@ +# -*- make -*- +BASE=../.. +SUBDIR=vendor/@@VENDOR@@ + +# Bring in the default rules +include ../../buildlib/defaults.mak + +doc binary manpages: sources.list + +sources.list: sources.list.in ../../doc/apt-verbatim.ent + sed -e 's#&debian-stable-codename;#$(shell ../getinfo debian-stable-codename)#g' \ + -e 's#&debian-oldstable-codename;#$(shell ../getinfo debian-oldstable-codename)#g' \ + -e 's#&debian-testing-codename;#$(shell ../getinfo debian-testing-codename)#g' \ + -e 's#&ubuntu-codename;#$(shell ../getinfo ubuntu-codename)#g' \ + -e 's#¤t-codename;#$(shell ../getinfo current-codename)#g' \ + $< > $@ + +clean: clean/sources.list + +clean/sources.list: + rm -f sources.list |