Kaynağa Gözat

evaluate sourceslist-list-format entity in vendors sources.list

Parsing XML entity files in shell isn't exactly nice and causing the
substitution with a while-read loop isn't either, but it seems to be
good enough for the moment without changing too much.

Thanks: Niels Thykier for reporting on IRC
David Kalnischkies 10 yıl önce
ebeveyn
işleme
7fa4f5e122

+ 4 - 4
vendor/debian/apt-vendor.ent

@@ -6,14 +6,14 @@
 <!ENTITY keyring-master-filename "">
 <!ENTITY keyring-master-filename "">
 <!ENTITY keyring-uri "">
 <!ENTITY keyring-uri "">
 
 
-<!ENTITY sourceslist-list-format "deb http://httpredir.debian.org/debian &stable-codename; main contrib non-free
-deb http://security.debian.org &stable-codename;/updates main contrib non-free">
+<!ENTITY sourceslist-list-format "deb http://httpredir.debian.org/debian &debian-stable-codename; main contrib non-free
+deb http://security.debian.org &debian-stable-codename;/updates main contrib non-free">
 <!ENTITY sourceslist-sources-format "Types: deb
 <!ENTITY sourceslist-sources-format "Types: deb
 URIs: http://httpredir.debian.org/debian
 URIs: http://httpredir.debian.org/debian
-Suites: &stable-codename;
+Suites: &debian-stable-codename;
 Components: main contrib non-free
 Components: main contrib non-free
 
 
 Types: deb
 Types: deb
 URIs: http://security.debian.org
 URIs: http://security.debian.org
-Suites: &stable-codename;/updates
+Suites: &debian-stable-codename;/updates
 Components: main contrib non-free">
 Components: main contrib non-free">

+ 1 - 1
vendor/debian/sources.list.in

@@ -3,5 +3,5 @@
 &sourceslist-list-format;
 &sourceslist-list-format;
 
 
 # Uncomment if you want the apt-get source function to work
 # Uncomment if you want the apt-get source function to work
-#deb-src http://ftp.us.debian.org/debian &debian-stable-codename; main contrib non-free
+#deb-src http://httpredir.debian.org/debian &debian-stable-codename; main contrib non-free
 #deb-src http://security.debian.org &debian-stable-codename;/updates main contrib non-free
 #deb-src http://security.debian.org &debian-stable-codename;/updates main contrib non-free

+ 1 - 1
vendor/getinfo

@@ -11,7 +11,7 @@ if [ -z "$INFO" ] || [ ! -e "$INFO" ]; then
 fi
 fi
 
 
 getrawfield() {
 getrawfield() {
-	grep --max-count=1 "^<!ENTITY $1 \"" "${2:-$INFO}" | cut -d'"' -f 2
+	awk "/<!ENTITY $1/ {f=NR} f && NR-1==f { print; exit 0 }" RS='"' "${2:-$INFO}"
 }
 }
 
 
 getfield() {
 getfield() {

+ 4 - 1
vendor/makefile

@@ -50,6 +50,9 @@ current:
 .PHONY: clean veryclean all binary vendor
 .PHONY: clean veryclean all binary vendor
 
 
 clean: clean/current
 clean: clean/current
-
 clean/current: clean/subdirs
 clean/current: clean/subdirs
 	rm -f current/makefile.auto current
 	rm -f current/makefile.auto current
+
+veryclean: veryclean/current
+veryclean/current: veryclean/subdirs
+	rm -f current/makefile.auto current

+ 9 - 2
vendor/vendor.makefile

@@ -8,14 +8,21 @@ include ../../buildlib/defaults.mak
 doc binary manpages: sources.list
 doc binary manpages: sources.list
 
 
 sources.list: sources.list.in ../../doc/apt-verbatim.ent
 sources.list: sources.list.in ../../doc/apt-verbatim.ent
-	sed -e 's#&debian-stable-codename;#$(shell ../getinfo debian-stable-codename)#g' \
+	while read line; do \
+		if [ "$${line}" = '&sourceslist-list-format;' ]; then \
+			$(BASE)/vendor/getinfo vendor sourceslist-list-format ; \
+		else \
+			echo "$${line}"; \
+		fi \
+	done < $< | 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-oldstable-codename;#$(shell ../getinfo debian-oldstable-codename)#g' \
 		-e 's#&debian-testing-codename;#$(shell ../getinfo debian-testing-codename)#g' \
 		-e 's#&debian-testing-codename;#$(shell ../getinfo debian-testing-codename)#g' \
 		-e 's#&ubuntu-codename;#$(shell ../getinfo ubuntu-codename)#g' \
 		-e 's#&ubuntu-codename;#$(shell ../getinfo ubuntu-codename)#g' \
 		-e 's#&current-codename;#$(shell ../getinfo current-codename)#g' \
 		-e 's#&current-codename;#$(shell ../getinfo current-codename)#g' \
-		$< > $@
+		> $@
 
 
 clean: clean/sources.list
 clean: clean/sources.list
+veryclean: clean/sources.list
 
 
 clean/sources.list:
 clean/sources.list:
 	rm -f sources.list
 	rm -f sources.list