introduce a vendor system to change sources.list
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 30 Nov 2013 13:01:28 +0000 (14:01 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 30 Nov 2013 21:15:31 +0000 (22:15 +0100)
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

.gitignore
Makefile
doc/apt-verbatim.ent
doc/makefile
vendor/debian/makefile [new file with mode: 0644]
vendor/debian/sources.list.in [moved from doc/examples/sources.list.in with 100% similarity]
vendor/makefile [new file with mode: 0644]
vendor/ubuntu/makefile [new file with mode: 0644]
vendor/ubuntu/sources.list.in [new file with mode: 0644]

index 3e07e24..d840ae4 100644 (file)
@@ -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
index fb84398..394149b 100644 (file)
--- 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
 
index 0d0d95c..30b0c7f 100644 (file)
 <!-- 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…
index 274fbc2..ebaca90 100644 (file)
@@ -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 (file)
index 0000000..41202c6
--- /dev/null
@@ -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/vendor/makefile b/vendor/makefile
new file mode 100644 (file)
index 0000000..a6d53ab
--- /dev/null
@@ -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 (file)
index 0000000..388a529
--- /dev/null
@@ -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 (file)
index 0000000..b9aa8c3
--- /dev/null
@@ -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