]> git.saurik.com Git - apt.git/commitdiff
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/examples/sources.list.in [deleted file]
doc/makefile
vendor/debian/makefile [new file with mode: 0644]
vendor/debian/sources.list.in [new file with mode: 0644]
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 3e07e241bea35b7c35a3ef9eaf939b3c7a131dda..d840ae48ce0c0decbddf8e8ab503b380ce78f9b8 100644 (file)
@@ -35,3 +35,6 @@
 /debian/libapt-pkg*.install
 /debian/libapt-inst*.install
 /debian/libapt-pkg-dev.install
 /debian/libapt-pkg*.install
 /debian/libapt-inst*.install
 /debian/libapt-pkg-dev.install
+/vendor/current
+/vendor/debian/sources.list
+/vendor/ubuntu/sources.list
index fb843983ceeaf9ac463f0982b0f9ef8f0f5bd902..394149bf1a8dc76e8e59c93a7d39d5f23fa3db8a 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:
 
 .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 $@
        $(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 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
 
 
 all headers library clean veryclean binary program doc manpages debiandoc test update-po: startup dirs
 
index 0d0d95c7afb905c636dd9e636b4dc4a48cdcf2b0..30b0c7fe01de1cd1d48ef5e4be3b7963ab21e069 100644 (file)
 <!-- this will be updated by 'prepare-release' -->
 <!ENTITY apt-product-version "0.9.7.6ubuntu2">
 
 <!-- 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 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…
 <!ENTITY ubuntu-codename "precise">
 
 <!-- good and bad just refers to matching and not matching a pattern…
diff --git a/doc/examples/sources.list.in b/doc/examples/sources.list.in
deleted file mode 100644 (file)
index 745e32c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# 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
-
-# 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
index 274fbc2783d8c8b20298bd81cbe4c08bb049f946..ebaca908fb0a8a572a6429525ce2719d192a6313 100644 (file)
@@ -12,8 +12,9 @@ include $(DEBIANDOC_H)
 
 doc: manpages debiandoc
 
 
 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
 
 # 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
 
 
 .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
 
 manpages: manpages/subdirs
 debiandoc: debiandoc/subdirs
 
@@ -41,6 +42,9 @@ debiandoc/subdirs manpages/subdirs clean/subdirs veryclean/subdirs:
                $(MAKE) -C $$dir $(patsubst %/subdirs,%,$@); \
        done
 
                $(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
 
 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/debian/sources.list.in b/vendor/debian/sources.list.in
new file mode 100644 (file)
index 0000000..745e32c
--- /dev/null
@@ -0,0 +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
+
+# 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
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