summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2013-11-30 14:01:28 +0100
committerDavid Kalnischkies <kalnischkies@gmail.com>2013-11-30 22:15:31 +0100
commiteef71f11a5836eb82df133cb4e24cb4806642188 (patch)
treee58a2b15c0ae4df9f0f23fdf7f8a2ebb15ffc7b3
parenta40310a5e60d880ce1bd82f0513c5d6658bb48ef (diff)
downloadapt-eef71f11a5836eb82df133cb4e24cb4806642188.tar.gz
introduce a vendor system to change sources.list
Many derivatives make quiet a few simple changes to apt introducing silly diffs just to change examples and co making it harder for them to update apt and harder for us to merge real changes back. First stop: doc/examples/sources.list
-rw-r--r--.gitignore3
-rw-r--r--Makefile3
-rw-r--r--doc/apt-verbatim.ent4
-rw-r--r--doc/makefile12
-rw-r--r--vendor/debian/makefile11
-rw-r--r--vendor/debian/sources.list.in (renamed from doc/examples/sources.list.in)0
-rw-r--r--vendor/makefile42
-rw-r--r--vendor/ubuntu/makefile11
-rw-r--r--vendor/ubuntu/sources.list.in10
9 files changed, 89 insertions, 7 deletions
diff --git a/.gitignore b/.gitignore
index 3e07e241b..d840ae48c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,3 +35,6 @@
/debian/libapt-pkg*.install
/debian/libapt-inst*.install
/debian/libapt-pkg-dev.install
+/vendor/current
+/vendor/debian/sources.list
+/vendor/ubuntu/sources.list
diff --git a/Makefile b/Makefile
index fb843983c..394149bf1 100644
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,7 @@ default: startup all
.PHONY: headers library clean veryclean all binary program doc test update-po
all headers library clean veryclean binary program doc manpages debiandoc test update-po startup dirs:
+ $(MAKE) -C vendor $@
$(MAKE) -C apt-pkg $@
$(MAKE) -C apt-inst $@
$(MAKE) -C apt-private $@
@@ -20,7 +21,7 @@ all headers library clean veryclean binary program doc manpages debiandoc test u
$(MAKE) -C dselect $@
$(MAKE) -C doc $@
$(MAKE) -C po $@
- $(MAKE) -C test $@
+ $(MAKE) -C test $@
all headers library clean veryclean binary program doc manpages debiandoc test update-po: startup dirs
diff --git a/doc/apt-verbatim.ent b/doc/apt-verbatim.ent
index 0d0d95c7a..30b0c7fe0 100644
--- a/doc/apt-verbatim.ent
+++ b/doc/apt-verbatim.ent
@@ -221,11 +221,11 @@
<!-- this will be updated by 'prepare-release' -->
<!ENTITY apt-product-version "0.9.7.6ubuntu2">
-<!-- Codenames for debian releases -->
+<!-- (Code)names for various things used all over the place -->
<!ENTITY oldstable-codename "squeeze">
<!ENTITY stable-codename "wheezy">
<!ENTITY testing-codename "jessie">
-<!ENTITY stable-version "7.0">
+<!ENTITY stable-version "7">
<!ENTITY ubuntu-codename "precise">
<!-- good and bad just refers to matching and not matching a pattern…
diff --git a/doc/makefile b/doc/makefile
index 274fbc278..ebaca908f 100644
--- a/doc/makefile
+++ b/doc/makefile
@@ -12,8 +12,9 @@ include $(DEBIANDOC_H)
doc: manpages debiandoc
-examples/sources.list: examples/sources.list.in apt-verbatim.ent
- sed -e 's#&stable-codename;#$(shell grep --max-count=1 '^<!ENTITY stable-codename "' apt-verbatim.ent | cut -d'"' -f 2)#g' examples/sources.list.in > examples/sources.list
+examples/sources.list: ../vendor/current/sources.list
+ ln -sf $(shell readlink -f $^) $@
+
# Examples
SOURCE = examples/apt.conf examples/sources.list examples/configure-index examples/apt-https-method-example.conf
@@ -23,8 +24,8 @@ include $(COPY_H)
.PHONY: clean clean/subdirs veryclean veryclean/subdirs manpages/subdirs debiandoc/subdirs all binary doc stats
-clean: clean/subdirs
-veryclean: veryclean/subdirs
+clean: clean/subdirs clean/examples
+veryclean: veryclean/subdirs clean/examples
manpages: manpages/subdirs
debiandoc: debiandoc/subdirs
@@ -41,6 +42,9 @@ debiandoc/subdirs manpages/subdirs clean/subdirs veryclean/subdirs:
$(MAKE) -C $$dir $(patsubst %/subdirs,%,$@); \
done
+clean/examples:
+ rm -f examples/sources.list
+
stats:
for i in po/*.po; do echo -n "$$i: "; msgfmt --output-file=/dev/null --statistics $$i; done
diff --git a/vendor/debian/makefile b/vendor/debian/makefile
new file mode 100644
index 000000000..41202c6a0
--- /dev/null
+++ b/vendor/debian/makefile
@@ -0,0 +1,11 @@
+# -*- make -*-
+BASE=../..
+SUBDIR=vendor/debian
+
+# Bring in the default rules
+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' $^ > $@
diff --git a/doc/examples/sources.list.in b/vendor/debian/sources.list.in
index 745e32cbe..745e32cbe 100644
--- a/doc/examples/sources.list.in
+++ b/vendor/debian/sources.list.in
diff --git a/vendor/makefile b/vendor/makefile
new file mode 100644
index 000000000..a6d53abd0
--- /dev/null
+++ b/vendor/makefile
@@ -0,0 +1,42 @@
+# -*- make -*-
+BASE=..
+SUBDIR=vendor
+
+# Bring in the default rules
+include ../buildlib/defaults.mak
+
+all headers library binary program doc manpages debiandoc test update-po startup dirs: current
+all: all/subdirs
+binary: binary/subdirs
+doc: doc/subdirs
+clean: clean/subdirs
+veryclean: veryclean/subdirs
+dirs: dirs/subdirs
+
+all/subdirs binary/subdirs doc/subdirs dirs/subdirs:
+ $(MAKE) -C current $(patsubst %/subdirs,%,$@)
+
+clean/subdirs veryclean/subdirs:
+ test ! -e current || $(MAKE) -C current $(patsubst %/subdirs,%,$@)
+
+current:
+ rm -f $@
+ # search for an exact match to use the correct sources.list example
+ find -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2 | while read DISTRO; do \
+ if dpkg-vendor --is $$DISTRO; then \
+ ln -s $$DISTRO $@; \
+ 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 $@ ) || \
+ ln -s debian $@
+
+.PHONY: clean veryclean all binary vendor
+
+clean: clean/current
+
+clean/current:
+ test ! -e current || $(MAKE) -C current clean
+ rm -f current
diff --git a/vendor/ubuntu/makefile b/vendor/ubuntu/makefile
new file mode 100644
index 000000000..388a529a9
--- /dev/null
+++ b/vendor/ubuntu/makefile
@@ -0,0 +1,11 @@
+# -*- make -*-
+BASE=../..
+SUBDIR=vendor/ubuntu
+
+# Bring in the default rules
+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' $^ > $@
diff --git a/vendor/ubuntu/sources.list.in b/vendor/ubuntu/sources.list.in
new file mode 100644
index 000000000..b9aa8c3d0
--- /dev/null
+++ b/vendor/ubuntu/sources.list.in
@@ -0,0 +1,10 @@
+ # See sources.list(5) manpage for more information
+ # Remember that CD-ROMs, DVDs and such are managed through the apt-cdrom tool.
+deb http://us.archive.ubuntu.com/ubuntu &ubuntu-codename; main restricted
+deb-src http://us.archive.ubuntu.com/ubuntu &ubuntu-codename; main restricted
+
+deb http://security.ubuntu.com/ubuntu &ubuntu-codename;-security main restricted
+deb-src http://security.ubuntu.com/ubuntu &ubuntu-codename;-security main restricted
+
+deb http://us.archive.ubuntu.com/ubuntu &ubuntu-codename;-updates main restricted
+deb-src http://us.archive.ubuntu.com/ubuntu &ubuntu-codename;-updates main restricted