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).
tags/devuan/2.0.1+devuan1
David Kalnischkies 6 years ago
parent
commit
fa19cc9573
15 changed files with 71 additions and 118 deletions
  1. +2
    -2
      .gitignore
  2. +0
    -1
      doc/apt-verbatim.ent
  3. +0
    -17
      vendor/debian/makefile
  4. +4
    -4
      vendor/debian/sources.list.in
  5. +12
    -8
      vendor/getinfo
  6. +24
    -14
      vendor/makefile
  7. +0
    -16
      vendor/raspbian/makefile
  8. +1
    -1
      vendor/steamos/apt-vendor.ent
  9. +0
    -17
      vendor/steamos/makefile
  10. +2
    -2
      vendor/steamos/sources.list.in
  11. +1
    -0
      vendor/tanglu/apt-vendor.ent
  12. +0
    -16
      vendor/tanglu/makefile
  13. +4
    -4
      vendor/tanglu/sources.list.in
  14. +0
    -16
      vendor/ubuntu/makefile
  15. +21
    -0
      vendor/vendor.makefile

+ 2
- 2
.gitignore View File

@@ -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

+ 0
- 1
doc/apt-verbatim.ent View File

@@ -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…


+ 0
- 17
vendor/debian/makefile View File

@@ -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


+ 4
- 4
vendor/debian/sources.list.in View File

@@ -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

+ 12
- 8
vendor/getinfo View File

@@ -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"


+ 24
- 14
vendor/makefile View File

@@ -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

+ 0
- 16
vendor/raspbian/makefile View File

@@ -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

+ 1
- 1
vendor/steamos/apt-vendor.ent View File

@@ -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">

+ 0
- 17
vendor/steamos/makefile View File

@@ -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


+ 2
- 2
vendor/steamos/sources.list.in View File

@@ -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
- 0
vendor/tanglu/apt-vendor.ent View File

@@ -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">

+ 0
- 16
vendor/tanglu/makefile View File

@@ -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

+ 4
- 4
vendor/tanglu/sources.list.in View File

@@ -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

+ 0
- 16
vendor/ubuntu/makefile View File

@@ -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
- 0
vendor/vendor.makefile View File

@@ -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