Browse Source

autogenerate makefile for vendor system

It can be useful to have a whole makefile available for vendor setup,
but by providing a basic one we can deal with the simple cases more
easily (and changes to the system are presumably easier).
debian/1.8.y
David Kalnischkies 9 years ago
parent
commit
fa19cc9573
  1. 4
      .gitignore
  2. 1
      doc/apt-verbatim.ent
  3. 17
      vendor/debian/makefile
  4. 8
      vendor/debian/sources.list.in
  5. 20
      vendor/getinfo
  6. 38
      vendor/makefile
  7. 16
      vendor/raspbian/makefile
  8. 2
      vendor/steamos/apt-vendor.ent
  9. 17
      vendor/steamos/makefile
  10. 4
      vendor/steamos/sources.list.in
  11. 1
      vendor/tanglu/apt-vendor.ent
  12. 16
      vendor/tanglu/makefile
  13. 8
      vendor/tanglu/sources.list.in
  14. 16
      vendor/ubuntu/makefile
  15. 21
      vendor/vendor.makefile

4
.gitignore

@ -39,5 +39,5 @@
/debian/libapt-inst*.install
/debian/libapt-pkg-dev.install
/vendor/current
/vendor/debian/sources.list
/vendor/ubuntu/sources.list
/vendor/*/sources.list
/vendor/*/makefile.auto

1
doc/apt-verbatim.ent

@ -226,7 +226,6 @@
<!ENTITY stable-codename "wheezy">
<!ENTITY testing-codename "jessie">
<!ENTITY stable-version "7">
<!ENTITY tanglu-codename "bartholomea">
<!ENTITY ubuntu-codename "trusty">
<!-- good and bad just refers to matching and not matching a pattern…

17
vendor/debian/makefile

@ -1,17 +0,0 @@
# -*- make -*-
BASE=../..
SUBDIR=vendor/debian
# Bring in the default rules
include ../../buildlib/defaults.mak
doc binary manpages: sources.list
sources.list: sources.list.in ../../doc/apt-verbatim.ent
sed -e 's#&stable-codename;#$(shell ../getinfo debian-stable-codename)#g' $< > $@
clean: clean/sources.list
clean/sources.list:
rm -f sources.list

8
vendor/debian/sources.list.in

@ -1,8 +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
deb http://ftp.us.debian.org/debian &debian-stable-codename; main contrib non-free
deb http://security.debian.org &debian-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
#deb-src http://ftp.us.debian.org/debian &debian-stable-codename; main contrib non-free
#deb-src http://security.debian.org &debian-stable-codename;/updates main contrib non-free

20
vendor/getinfo

@ -3,6 +3,7 @@
BASEDIR="$(readlink -f "$(dirname $0)")"
INFO="$(readlink -f "${BASEDIR}/current/apt-vendor.ent")"
VERBATIM="${BASEDIR}/../doc/apt-verbatim.ent"
if [ -z "$INFO" ] || [ ! -e "$INFO" ]; then
echo >&2 'The current vendor is not valid or not chosen by the buildsystem yet.'
@ -20,17 +21,20 @@ getfield() {
}
case "$1" in
debian-stable-codename)
getrawfield 'stable-codename' "${BASEDIR}/../doc/apt-verbatim.ent"
;;
tanglu-codename)
getrawfield 'tanglu-codename' "${BASEDIR}/../doc/apt-verbatim.ent"
debian-stable-codename|debian-oldstable-codename|debian-testing-codename)
getrawfield "${1#*-}" "$VERBATIM"
;;
ubuntu-codename)
getrawfield 'ubuntu-codename' "${BASEDIR}/../doc/apt-verbatim.ent"
getrawfield "$1" "$VERBATIM"
;;
keyring-package|keyring-filename|keyring-master-filename|keyring-removed-filename|keyring-uri|current-codename)
exec $0 'vendor' "$@"
;;
vendor)
getfield "$2"
;;
keyring-package|keyring-filename|keyring-master-filename|keyring-removed-filename|keyring-uri|current-distro-codename)
getfield "$1"
verbatim)
getfield "$2" "$VERBATIM"
;;
*)
echo >&2 "Unknown data field $1 requested"

38
vendor/makefile

@ -14,11 +14,9 @@ veryclean: veryclean/subdirs
dirs: dirs/subdirs
manpages: manpages/subdirs
all/subdirs binary/subdirs doc/subdirs dirs/subdirs manpages/subdirs:
$(MAKE) -C current $(patsubst %/subdirs,%,$@)
clean/subdirs veryclean/subdirs:
test ! -e current || $(MAKE) -C current $(patsubst %/subdirs,%,$@)
all/subdirs binary/subdirs doc/subdirs dirs/subdirs manpages/subdirs clean/subdirs veryclean/subdirs:
test ! -e current/makefile || $(MAKE) -C current $(patsubst %/subdirs,%,$@)
test ! -e current/makefile.auto || $(MAKE) -C current -f makefile.auto $(patsubst %/subdirs,%,$@)
current:
rm -f $@
@ -29,17 +27,29 @@ current:
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 $@ ) || \
(dpkg-vendor --derives-from tanglu && cp ln -s tanglu $@ ) || \
ln -s debian $@
# if we haven't found a specific, look for a deriving
# we do ubuntu and debian last as those are the biggest families
# and would therefore potentially 'shadow' smaller families
# (especially debian as it sorts quiet early)
if ! test -e $@; then \
find -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2 | while read DISTRO; do \
if [ "$$DISTRO" = 'debian' -o "$$DISTRO" = 'ubuntu' ]; then continue; fi; \
if dpkg-vendor --derives-from $$DISTRO; then \
ln -s $$DISTRO $@; \
break; \
fi; \
done; \
test -e $@ || \
(dpkg-vendor --derives-from ubuntu && cp ln -s ubuntu $@ ) || \
ln -s debian $@; \
fi
if test ! -e current/makefile; then \
sed "s#@@VENDOR@@#$(notdir $(shell readlink -f current))#" vendor.makefile > current/makefile.auto; \
fi
.PHONY: clean veryclean all binary vendor
.NOPARALLEL:
clean: clean/current
clean/current:
test ! -e current || $(MAKE) -C current clean
rm -f current
clean/current: clean/subdirs
rm -f current/makefile.auto current

16
vendor/raspbian/makefile

@ -1,16 +0,0 @@
# -*- make -*-
BASE=../..
SUBDIR=vendor/raspbian
# Bring in the default rules
include ../../buildlib/defaults.mak
doc binary manpages: sources.list
sources.list: sources.list.in ../../doc/apt-verbatim.ent
sed -e 's#&stable-codename;#$(shell ../getinfo debian-stable-codename)#g' $< > $@
clean: clean/sources.list
clean/sources.list:
rm -f sources.list

2
vendor/steamos/apt-vendor.ent

@ -3,6 +3,6 @@
<!ENTITY keyring-package "<package>valve-archive-keyring</package>">
<!ENTITY keyring-filename "<filename>/usr/share/keyrings/valve-archive-keyring.gpg</filename>">
<!ENTITY keyring-removed-filename "<filename>/usr/share/keyrings/valve-archive-removed-keys.gpg</filename>">
<!ENTITY current-distro-codename "alchemist">
<!ENTITY keyring-master-filename "">
<!ENTITY keyring-uri "">
<!ENTITY current-codename "alchemist">

17
vendor/steamos/makefile

@ -1,17 +0,0 @@
# -*- make -*-
BASE=../..
SUBDIR=vendor/steamos
# Bring in the default rules
include ../../buildlib/defaults.mak
doc binary manpages: sources.list
sources.list: sources.list.in ../../doc/apt-verbatim.ent
sed -e 's#&stable-codename;#$(shell ../getinfo debian-stable-codename)#g' $< | sed -e 's#&steamos-codename;#$(shell ../getinfo current-distro-codename)#g' > $@
clean: clean/sources.list
clean/sources.list:
rm -f sources.list

4
vendor/steamos/sources.list.in

@ -1,5 +1,5 @@
# See sources.list(5) manpage for more information
# Remember that CD-ROMs, DVDs and such are managed through the apt-cdrom tool.
deb http://repo.steampowered.com/steamos &steamos-codename; main contrib non-free
deb-src http://repo.steampowered.com/steamos &steamos-codename; main contrib non-free
deb http://repo.steampowered.com/steamos &current-codename; main contrib non-free
deb-src http://repo.steampowered.com/steamos &current-codename; main contrib non-free

1
vendor/tanglu/apt-vendor.ent

@ -5,3 +5,4 @@
<!ENTITY keyring-removed-filename "<filename>/usr/share/keyrings/tanglu-archive-removed-keys.gpg</filename>">
<!ENTITY keyring-master-filename "">
<!ENTITY keyring-uri "">
<!ENTITY current-codename "bartholomea">

16
vendor/tanglu/makefile

@ -1,16 +0,0 @@
# -*- make -*-
BASE=../..
SUBDIR=vendor/tanglu
# Bring in the default rules
include ../../buildlib/defaults.mak
doc binary manpages: sources.list
sources.list: sources.list.in ../../doc/apt-verbatim.ent
sed -e 's#&tanglu-codename;#$(shell ../getinfo tanglu-codename)#g' $< > $@
clean: clean/sources.list
clean/sources.list:
rm -f sources.list

8
vendor/tanglu/sources.list.in

@ -1,7 +1,7 @@
# See sources.list(5) manpage for more information
deb http://archive.tanglu.org/tanglu &tanglu-codename; main contrib non-free
#deb-src http://archive.tanglu.org/tanglu &tanglu-codename; main contrib non-free
deb http://archive.tanglu.org/tanglu &current-codename; main contrib non-free
#deb-src http://archive.tanglu.org/tanglu &current-codename; main contrib non-free
#deb http://archive.tanglu.org/tanglu &tanglu-codename;-updates main contrib non-free
#deb-src http://archive.tanglu.org/tanglu &tanglu-codename;-updates main contrib non-free
#deb http://archive.tanglu.org/tanglu &current-codename;-updates main contrib non-free
#deb-src http://archive.tanglu.org/tanglu &current-codename;-updates main contrib non-free

16
vendor/ubuntu/makefile

@ -1,16 +0,0 @@
# -*- make -*-
BASE=../..
SUBDIR=vendor/ubuntu
# Bring in the default rules
include ../../buildlib/defaults.mak
doc binary manpages: sources.list
sources.list: sources.list.in ../../doc/apt-verbatim.ent
sed -e 's#&ubuntu-codename;#$(shell ../getinfo ubuntu-codename)#g' $< > $@
clean: clean/sources.list
clean/sources.list:
rm -f sources.list

21
vendor/vendor.makefile

@ -0,0 +1,21 @@
# -*- make -*-
BASE=../..
SUBDIR=vendor/@@VENDOR@@
# Bring in the default rules
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' \
-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
clean/sources.list:
rm -f sources.list
Loading…
Cancel
Save