From d487f29eda2326abd05f25767f8bf6aebf65426c Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sun, 24 Apr 2011 21:18:06 +0100 Subject: [PATCH] Invert how files are split among binary packages: rather than code in debian/rules to remove files we don't want, add dh_install configuration to declare the files we do want. This means a little more repetition for platform-specific programs, but it seems less confusing and easier to extend. --- debian/changelog | 5 ++ debian/clean | 1 + debian/grub-common.install | 2 - debian/grub-common.install.amd64.in | 2 + debian/grub-common.install.i386.in | 2 + debian/grub-common.install.in | 37 +++++++++++++ debian/grub-common.install.linux.in | 2 + debian/grub-common.install.powerpc.in | 2 + debian/grub-common.install.ppc64.in | 2 + debian/grub-common.install.sparc.in | 4 ++ debian/grub-emu.install | 4 ++ debian/grub-ieee1275.install.sparc.in | 2 + debian/grub-mount-udeb.install | 1 + debian/grub-pc.install.in | 8 ++- debian/install.in | 24 ++++++--- debian/rules | 78 ++++++++++++++++----------- 16 files changed, 133 insertions(+), 43 deletions(-) create mode 100644 debian/clean delete mode 100644 debian/grub-common.install create mode 100644 debian/grub-common.install.amd64.in create mode 100644 debian/grub-common.install.i386.in create mode 100644 debian/grub-common.install.in create mode 100644 debian/grub-common.install.linux.in create mode 100644 debian/grub-common.install.powerpc.in create mode 100644 debian/grub-common.install.ppc64.in create mode 100644 debian/grub-common.install.sparc.in create mode 100644 debian/grub-emu.install create mode 100644 debian/grub-ieee1275.install.sparc.in create mode 100644 debian/grub-mount-udeb.install diff --git a/debian/changelog b/debian/changelog index a175088bb..6945799e7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -60,6 +60,11 @@ grub2 (1.99~rc2-1) UNRELEASED; urgency=low reuse that. * Build with GCC 4.5 on all architectures. * Update Lintian overrides for changes in Lintian 2.5.0~rc1. + * Invert how files are split among binary packages: rather than code in + debian/rules to remove files we don't want, add dh_install configuration + to declare the files we do want. This means a little more repetition + for platform-specific programs, but it seems less confusing and easier + to extend. [ Updated translations ] * Belarusian (Viktar Siarheichyk). Closes: #606864 diff --git a/debian/clean b/debian/clean new file mode 100644 index 000000000..521d6e405 --- /dev/null +++ b/debian/clean @@ -0,0 +1 @@ +debian/grub-common.install diff --git a/debian/grub-common.install b/debian/grub-common.install deleted file mode 100644 index cf5d52a73..000000000 --- a/debian/grub-common.install +++ /dev/null @@ -1,2 +0,0 @@ -debian/presubj usr/share/bug/grub-common -debian/apport/source_grub2.py usr/share/apport/package-hooks/ diff --git a/debian/grub-common.install.amd64.in b/debian/grub-common.install.amd64.in new file mode 100644 index 000000000..f5f3231fd --- /dev/null +++ b/debian/grub-common.install.amd64.in @@ -0,0 +1,2 @@ +usr/bin/grub-mkrescue +usr/share/man/man1/grub-mkrescue.1 diff --git a/debian/grub-common.install.i386.in b/debian/grub-common.install.i386.in new file mode 100644 index 000000000..f5f3231fd --- /dev/null +++ b/debian/grub-common.install.i386.in @@ -0,0 +1,2 @@ +usr/bin/grub-mkrescue +usr/share/man/man1/grub-mkrescue.1 diff --git a/debian/grub-common.install.in b/debian/grub-common.install.in new file mode 100644 index 000000000..39c9c6234 --- /dev/null +++ b/debian/grub-common.install.in @@ -0,0 +1,37 @@ +../../debian/presubj usr/share/bug/grub-common +../../debian/apport/source_grub2.py usr/share/apport/package-hooks/ + +etc/bash_completion.d +etc/grub.d +usr/bin/grub-bin2h +usr/bin/grub-editenv +usr/bin/grub-fstest +usr/bin/grub-kbdcomp +usr/bin/grub-menulst2cfg +usr/bin/grub-mkfont +usr/bin/grub-mkimage +usr/bin/grub-mklayout +usr/bin/grub-mkpasswd-pbkdf2 +usr/bin/grub-mkrelpath +usr/bin/grub-script-check +usr/lib/grub/grub-mkconfig_lib +usr/lib/grub/update-grub_lib +usr/sbin/grub-mkconfig +usr/sbin/grub-mkdevicemap +usr/sbin/grub-probe +usr/share/grub +usr/share/info +usr/share/locale +usr/share/man/man1/grub-bin2h.1 +usr/share/man/man1/grub-editenv.1 +usr/share/man/man1/grub-fstest.1 +usr/share/man/man1/grub-menulst2cfg.1 +usr/share/man/man1/grub-mkfont.1 +usr/share/man/man1/grub-mkimage.1 +usr/share/man/man1/grub-mklayout.1 +usr/share/man/man1/grub-mkpasswd-pbkdf2.1 +usr/share/man/man1/grub-mkrelpath.1 +usr/share/man/man1/grub-script-check.1 +usr/share/man/man8/grub-mkconfig.8 +usr/share/man/man8/grub-mkdevicemap.8 +usr/share/man/man8/grub-probe.8 diff --git a/debian/grub-common.install.linux.in b/debian/grub-common.install.linux.in new file mode 100644 index 000000000..a1fc71c47 --- /dev/null +++ b/debian/grub-common.install.linux.in @@ -0,0 +1,2 @@ +usr/bin/grub-mount +usr/share/man/man1/grub-mount.1 diff --git a/debian/grub-common.install.powerpc.in b/debian/grub-common.install.powerpc.in new file mode 100644 index 000000000..f5f3231fd --- /dev/null +++ b/debian/grub-common.install.powerpc.in @@ -0,0 +1,2 @@ +usr/bin/grub-mkrescue +usr/share/man/man1/grub-mkrescue.1 diff --git a/debian/grub-common.install.ppc64.in b/debian/grub-common.install.ppc64.in new file mode 100644 index 000000000..f5f3231fd --- /dev/null +++ b/debian/grub-common.install.ppc64.in @@ -0,0 +1,2 @@ +usr/bin/grub-mkrescue +usr/share/man/man1/grub-mkrescue.1 diff --git a/debian/grub-common.install.sparc.in b/debian/grub-common.install.sparc.in new file mode 100644 index 000000000..db95a6df4 --- /dev/null +++ b/debian/grub-common.install.sparc.in @@ -0,0 +1,4 @@ +usr/bin/grub-mkrescue +usr/sbin/grub-ofpathname +usr/share/man/man1/grub-mkrescue.1 +usr/share/man/man8/grub-ofpathname.8 diff --git a/debian/grub-emu.install b/debian/grub-emu.install new file mode 100644 index 000000000..b995c5fda --- /dev/null +++ b/debian/grub-emu.install @@ -0,0 +1,4 @@ +usr/bin/grub-emu +usr/bin/grub-emu-lite +usr/lib/grub/*-*/ +usr/share/man/man1/grub-emu.1 diff --git a/debian/grub-ieee1275.install.sparc.in b/debian/grub-ieee1275.install.sparc.in new file mode 100644 index 000000000..2f1e450c7 --- /dev/null +++ b/debian/grub-ieee1275.install.sparc.in @@ -0,0 +1,2 @@ +usr/sbin/grub-setup +usr/share/man/man8/grub-setup.8 diff --git a/debian/grub-mount-udeb.install b/debian/grub-mount-udeb.install new file mode 100644 index 000000000..d72b73ad4 --- /dev/null +++ b/debian/grub-mount-udeb.install @@ -0,0 +1 @@ +usr/bin/grub-mount diff --git a/debian/grub-pc.install.in b/debian/grub-pc.install.in index 21494dc2a..e1681b153 100644 --- a/debian/grub-pc.install.in +++ b/debian/grub-pc.install.in @@ -1,2 +1,6 @@ -debian/legacy/update-grub usr/lib/grub-legacy -debian/legacy/upgrade-from-grub-legacy usr/sbin +../../debian/legacy/update-grub usr/lib/grub-legacy +../../debian/legacy/upgrade-from-grub-legacy usr/sbin + +usr/bin/grub-ntldr-img +usr/sbin/grub-setup +usr/share/man/man8/grub-setup.8 diff --git a/debian/install.in b/debian/install.in index f16fe5bbb..3ef9c5001 100644 --- a/debian/install.in +++ b/debian/install.in @@ -1,7 +1,17 @@ -debian/presubj usr/share/bug/@PACKAGE@ -debian/script usr/share/bug/@PACKAGE@ -debian/default usr/share/grub -debian/grub.d etc -debian/update-grub usr/sbin -debian/kernel/zz-update-grub etc/kernel/postinst.d -debian/kernel/zz-update-grub etc/kernel/postrm.d +../../debian/presubj usr/share/bug/@PACKAGE@ +../../debian/script usr/share/bug/@PACKAGE@ +../../debian/default usr/share/grub +../../debian/grub.d etc +../../debian/update-grub usr/sbin +../../debian/kernel/zz-update-grub etc/kernel/postinst.d +../../debian/kernel/zz-update-grub etc/kernel/postrm.d + +usr/lib/grub/*-*/ +usr/sbin/grub-install +usr/sbin/grub-mknetdir +usr/sbin/grub-reboot +usr/sbin/grub-set-default +usr/share/man/man8/grub-install.8 +usr/share/man/man8/grub-mknetdir.8 +usr/share/man/man8/grub-reboot.8 +usr/share/man/man8/grub-set-default.8 diff --git a/debian/rules b/debian/rules index a61fb7a3d..8c0d685eb 100755 --- a/debian/rules +++ b/debian/rules @@ -6,6 +6,8 @@ upstream_version := $(shell echo $(deb_version) | sed -e "s/-[^-]*$$//") package := grub2 +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH 2>/dev/null) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null) DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null) HOST_CFLAGS := -g -Wall @@ -35,7 +37,7 @@ confflags = PACKAGE_VERSION="$(deb_version)" PACKAGE_STRING="GRUB $(deb_version) AUTOGEN_DEB_FILES = examples manpages config templates preinst postinst postrm dirs install links BUILD_PACKAGES := $(strip $(shell dh_listpackages)) -REAL_PACKAGES = grub-common grub-emu grub-pc grub-coreboot grub-efi-ia32 grub-efi-amd64 grub-ieee1275 grub-firmware-qemu grub-yeeloong +REAL_PACKAGES = grub-emu grub-pc grub-coreboot grub-efi-ia32 grub-efi-amd64 grub-ieee1275 grub-firmware-qemu grub-yeeloong ifneq (,$(filter i386 amd64,$(DEB_HOST_ARCH_CPU))) COMMON_PLATFORM := pc @@ -50,9 +52,9 @@ endif %: dh $@ --with quilt -override_dh_auto_configure: $(patsubst %,configure/%,$(filter-out grub-common,$(BUILD_PACKAGES))) +override_dh_auto_configure: $(patsubst %,configure/%,$(BUILD_PACKAGES)) -override_dh_auto_build: $(patsubst %,build/%,$(filter-out grub-common,$(BUILD_PACKAGES))) +override_dh_auto_build: $(patsubst %,build/%,$(BUILD_PACKAGES)) override_dh_auto_install: $(patsubst %,install/%,$(BUILD_PACKAGES)) @@ -180,33 +182,28 @@ build/stamps/build-grub-rescue-efi-amd64: build/stamps/build-grub-efi-amd64 touch $@ install/grub-pc install/grub-efi-ia32 install/grub-efi-amd64 install/grub-ieee1275 install/grub-coreboot install/grub-emu install/grub-yeeloong: - dh_auto_install --destdir=debian/$(package) - - # shipped with grub-common - rm -rf $(CURDIR)/debian/$(package)/etc/grub.d - rm -rf $(CURDIR)/debian/$(package)/etc/bash_completion.d - rm -f $(CURDIR)/debian/$(package)/usr/{sbin,share/man/man8}/{grub-dumpbios,grub-probe,grub-mkconfig,grub-mkdevicemap,grub-ofpathname}{,.8} - rm -f $(CURDIR)/debian/$(package)/usr/{bin,share/man/man1}/{grub-bin2h,grub-mkelfimage,grub-mkfont,grub-mkimage,grub-editenv,grub-mkrescue,grub-mkrelpath,grub-script-check,grub-mkpasswd-pbkdf2,grub-menulst2cfg,grub-mklayout,grub-kbdcomp,grub-fstest,grub-mount}{,.1} - rm -f $(CURDIR)/debian/$(package)/usr/lib/grub/{grub-mkconfig_lib,update-grub_lib} - rm -rf $(CURDIR)/debian/$(package)/usr/share/{grub,info,locale}/ - rm -rf $(CURDIR)/debian/$(package)/usr/include - - if [ "$@" = "install/grub-emu" ] ; then \ - rm -f $(CURDIR)/debian/$(package)/usr/{sbin,share/man/man8}/{grub-reboot,grub-set-default,grub-mknetdir}{,.8} ; \ - fi + dh_auto_install --destdir=debian/tmp-$(package) if [ "$@" != "install/grub-emu" ] ; then \ - for i in $(AUTOGEN_DEB_FILES) ; do \ + set -e ; for i in $(AUTOGEN_DEB_FILES) ; do \ sed debian/$$i.in \ -e "s/@PACKAGE@/$(package)/g" \ > debian/$(package).$$i ; \ - done ; \ - fi - - # grub-pc is a bit special. It includes a few overlays for autogen files. - if [ "$@" = "install/grub-pc" ] ; then \ - for i in templates install dirs ; do \ - cat debian/grub-pc.$$i.in >> debian/grub-pc.$$i ; \ + if [ -e debian/$(package).$$i.in ] ; then \ + sed debian/$(package).$$i.in \ + -e "s/@PACKAGE@/$(package)/g" \ + >> debian/$(package).$$i ; \ + fi ; \ + if [ -e debian/$(package).$$i.$(DEB_HOST_ARCH).in ] ; then \ + sed debian/$(package).$$i.$(DEB_HOST_ARCH).in \ + -e "s/@PACKAGE@/$(package)/g" \ + >> debian/$(package).$$i ; \ + fi ; \ + if [ -e debian/$(package).$$i.$(DEB_HOST_ARCH_OS).in ] ; then \ + sed debian/$(package).$$i.$(DEB_HOST_ARCH_OS).in \ + -e "s/@PACKAGE@/$(package)/g" \ + >> debian/$(package).$$i ; \ + fi ; \ done ; \ fi @@ -236,14 +233,30 @@ install/grub-pc install/grub-efi-ia32 install/grub-efi-amd64 install/grub-ieee12 fi install/grub-common: - dh_auto_install --destdir=debian/$(package) - rm -rf $(CURDIR)/debian/$(package)/usr/lib/grub/{i386,powerpc,sparc64,mips}-* - rm -f $(CURDIR)/debian/$(package)/usr/{sbin,share/man/man8}/{update-grub,grub-install,grub-setup,grub-reboot,grub-set-default,grub-mknetdir}{,.8} - rm -f $(CURDIR)/debian/$(package)/usr/{bin,share/man/man1}/grub-ntldr-img{,.1} - rm -f $(CURDIR)/debian/$(package)/usr/share/info/dir* + set -e ; for i in $(AUTOGEN_DEB_FILES) ; do \ + if [ -e debian/grub-common.$$i.in ] ; then \ + cat debian/grub-common.$$i.in \ + > debian/grub-common.$$i ; \ + fi ; \ + if [ -e debian/grub-common.$$i.$(DEB_HOST_ARCH).in ] ; then \ + cat debian/grub-common.$$i.$(DEB_HOST_ARCH).in \ + >> debian/grub-common.$$i ; \ + fi ; \ + if [ -e debian/grub-common.$$i.$(DEB_HOST_ARCH_OS).in ] ; then \ + cat debian/grub-common.$$i.$(DEB_HOST_ARCH_OS).in \ + >> debian/grub-common.$$i ; \ + fi ; \ + done -install/grub-mount-udeb: - dh_install build/grub-$(COMMON_PLATFORM)/grub-mount usr/bin +override_dh_install: + dh_install -pgrub2 -pgrub-linuxbios -pgrub-efi -pgrub-rescue-pc -pgrub-rescue-efi-amd64 -pgrub-firmware-qemu + set -e; for package in grub-common grub-mount-udeb; do \ + dh_install -p$$package --sourcedir=debian/tmp-grub-$(COMMON_PLATFORM); \ + done + rm -f debian/grub-common/usr/share/info/dir* + set -e; for package in grub-pc grub-efi-ia32 grub-efi-amd64 grub-ieee1275 grub-coreboot grub-emu grub-yeeloong; do \ + dh_install -p$$package --sourcedir=debian/tmp-$$package; \ + done override_dh_installdocs: dh_installdocs -A AUTHORS NEWS README THANKS TODO @@ -263,6 +276,7 @@ override_dh_clean: debian/legacy/update-grub debian/grub-extras for i in $(AUTOGEN_DEB_FILES) ; do \ rm -f debian/grub-{pc,efi-*,ieee1275,coreboot,yeeloong}.$$i ; \ done + rm -rf debian/tmp-*/ # make sure PO files are always up-to-date debconf-updatepo