summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2014-02-24 00:25:29 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2014-03-13 13:57:34 +0100
commitfa19cc9573aac19cfbf43364d4b5660c9ab645bc (patch)
treea2e24bd5efb311d6e1c637de2b34219dba9c7459
parent9ec748ff103840c4c65471ca00d3b72984131ce4 (diff)
downloadapt-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--.gitignore4
-rw-r--r--doc/apt-verbatim.ent1
-rw-r--r--vendor/debian/makefile17
-rw-r--r--vendor/debian/sources.list.in8
-rwxr-xr-xvendor/getinfo20
-rw-r--r--vendor/makefile38
-rw-r--r--vendor/raspbian/makefile16
-rw-r--r--vendor/steamos/apt-vendor.ent2
-rw-r--r--vendor/steamos/makefile17
-rw-r--r--vendor/steamos/sources.list.in4
-rw-r--r--vendor/tanglu/apt-vendor.ent1
-rw-r--r--vendor/tanglu/makefile16
-rw-r--r--vendor/tanglu/sources.list.in8
-rw-r--r--vendor/ubuntu/makefile16
-rw-r--r--vendor/vendor.makefile21
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 &current-codename; main contrib non-free
+deb-src http://repo.steampowered.com/steamos &current-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 &current-codename; main contrib non-free
+#deb-src http://archive.tanglu.org/tanglu &current-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 &current-codename;-updates main contrib non-free
+#deb-src http://archive.tanglu.org/tanglu &current-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#&current-codename;#$(shell ../getinfo current-codename)#g' \
+ $< > $@
+
+clean: clean/sources.list
+
+clean/sources.list:
+ rm -f sources.list