Browse Source

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
debian/1.8.y
David Kalnischkies 6 years ago
parent
commit
7fa4f5e122
  1. 8
      vendor/debian/apt-vendor.ent
  2. 2
      vendor/debian/sources.list.in
  3. 2
      vendor/getinfo
  4. 5
      vendor/makefile
  5. 11
      vendor/vendor.makefile

8
vendor/debian/apt-vendor.ent

@ -6,14 +6,14 @@
<!ENTITY keyring-master-filename "">
<!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
URIs: http://httpredir.debian.org/debian
Suites: &stable-codename;
Suites: &debian-stable-codename;
Components: main contrib non-free
Types: deb
URIs: http://security.debian.org
Suites: &stable-codename;/updates
Suites: &debian-stable-codename;/updates
Components: main contrib non-free">

2
vendor/debian/sources.list.in

@ -3,5 +3,5 @@
&sourceslist-list-format;
# 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

2
vendor/getinfo

@ -11,7 +11,7 @@ if [ -z "$INFO" ] || [ ! -e "$INFO" ]; then
fi
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() {

5
vendor/makefile

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

11
vendor/vendor.makefile

@ -8,14 +8,21 @@ 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' \
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-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
veryclean: clean/sources.list
clean/sources.list:
rm -f sources.list

Loading…
Cancel
Save