From 00b51c62fa29999bffed0cfa38e2cd0d73021f6e Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 5 Sep 2012 15:09:14 +0100 Subject: [PATCH] Add per-platform *-dbg packages containing files needed to use GRUB's GDB stub. These are relatively large and thus worth splitting out. --- debian/changelog | 2 + debian/control | 72 +++++++++++++++++++++++ debian/grub-coreboot-bin.install.in | 1 + debian/grub-emu-dbg.install | 4 ++ debian/grub-emu.install | 7 ++- debian/grub-ieee1275-bin.install.amd64.in | 1 + debian/grub-ieee1275-bin.install.i386.in | 1 + debian/grub-pc-bin.install.in | 3 + debian/grub-pc-dbg.install.in | 1 + debian/install-bin.in | 6 +- debian/install-dbg.in | 4 ++ debian/rules | 28 ++++++++- 12 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 debian/grub-coreboot-bin.install.in create mode 100644 debian/grub-emu-dbg.install create mode 100644 debian/grub-ieee1275-bin.install.amd64.in create mode 100644 debian/grub-ieee1275-bin.install.i386.in create mode 100644 debian/grub-pc-dbg.install.in create mode 100644 debian/install-dbg.in diff --git a/debian/changelog b/debian/changelog index 77cfe5f2b..0d120d100 100644 --- a/debian/changelog +++ b/debian/changelog @@ -31,6 +31,8 @@ grub2 (2.00-1) UNRELEASED; urgency=low * Build-depend on gcc-4.6-multilib on kfreebsd-i386 and hurd-i386 as well as the other i386 architectures, since we need it to build efiemu32.o and efiemu64.o. + * Add per-platform *-dbg packages containing files needed to use GRUB's + GDB stub. These are relatively large and thus worth splitting out. -- Christian Perrier Sat, 02 Jun 2012 19:51:35 +0200 diff --git a/debian/control b/debian/control index 739bd498c..7891177a2 100644 --- a/debian/control +++ b/debian/control @@ -97,6 +97,15 @@ Description: GRand Unified Bootloader, version 2 (emulated version) This package contains grub-emu, an emulated version of GRUB. It is only provided for debugging purposes. +Package: grub-emu-dbg +Section: debug +Architecture: any-i386 any-amd64 any-powerpc +Depends: grub-emu (= ${binary:Version}), grub-common (= ${binary:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (emulated debug files) + This package contains debugging files for grub-emu. You only need these if + you are trying to debug GRUB using its GDB stub. + Package: grub-pc-bin Priority: optional Architecture: any-i386 any-amd64 @@ -123,6 +132,15 @@ Description: GRand Unified Bootloader, version 2 (PC/BIOS binaries) as the active boot loader, nor will it automatically update grub.cfg on upgrade, so most people should install grub-pc instead. +Package: grub-pc-dbg +Section: debug +Architecture: any-i386 any-amd64 +Depends: grub-pc-bin (= ${binary:Version}), grub-common (= ${binary:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (PC/BIOS debug files) + This package contains debugging files for grub-pc-bin. You only need these + if you are trying to debug GRUB using its GDB stub. + Package: grub-pc Priority: optional Architecture: any-i386 any-amd64 @@ -180,6 +198,15 @@ Description: GRand Unified Bootloader, version 2 (Coreboot binaries) GRUB as the active boot loader, nor will it automatically update grub.cfg on upgrade, so most people should install grub-coreboot instead. +Package: grub-coreboot-dbg +Section: debug +Architecture: any-i386 any-amd64 +Depends: grub-coreboot-bin (= ${binary:Version}), grub-common (= ${binary:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Coreboot debug files) + This package contains debugging files for grub-coreboot-bin. You only need + these if you are trying to debug GRUB using its GDB stub. + Package: grub-coreboot Architecture: any-i386 any-amd64 Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-coreboot-bin (= ${binary:Version}), ucf @@ -220,6 +247,15 @@ Description: GRand Unified Bootloader, version 2 (EFI-IA32 binaries) GRUB as the active boot loader, nor will it automatically update grub.cfg on upgrade, so most people should install grub-efi-ia32 instead. +Package: grub-efi-ia32-dbg +Section: debug +Architecture: any-i386 any-amd64 +Depends: grub-efi-ia32-bin (= ${binary:Version}), grub-common (= ${binary:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (EFI-IA32 debug files) + This package contains debugging files for grub-efi-ia32-bin. You only need + these if you are trying to debug GRUB using its GDB stub. + Package: grub-efi-ia32 Architecture: any-i386 any-amd64 Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-efi-ia32-bin (= ${binary:Version}), ucf @@ -261,6 +297,15 @@ Description: GRand Unified Bootloader, version 2 (EFI-AMD64 binaries) GRUB as the active boot loader, nor will it automatically update grub.cfg on upgrade, so most people should install grub-efi-amd64 instead. +Package: grub-efi-amd64-dbg +Section: debug +Architecture: i386 kopensolaris-i386 any-amd64 +Depends: grub-efi-amd64-bin (= ${binary:Version}), grub-common (= ${binary:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (EFI-AMD64 debug files) + This package contains debugging files for grub-efi-amd64-bin. You only + need these if you are trying to debug GRUB using its GDB stub. + Package: grub-efi-amd64 Architecture: i386 kopensolaris-i386 any-amd64 Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-efi-amd64-bin (= ${binary:Version}), ucf @@ -300,6 +345,15 @@ Description: GRand Unified Bootloader, version 2 (IA64 binaries) nor will it automatically update grub.cfg on upgrade, so most people should install grub-efi-ia64 instead. +Package: grub-efi-ia64-dbg +Section: debug +Architecture: any-ia64 +Depends: grub-efi-ia64-bin (= ${binary:Version}), grub-common (= ${binary:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (IA64 debug files) + This package contains debugging files for grub-efi-ia64-bin. You only need + these if you are trying to debug GRUB using its GDB stub. + Package: grub-efi-ia64 Architecture: any-ia64 Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-efi-ia64-bin (= ${binary:Version}), ucf @@ -339,6 +393,15 @@ Description: GRand Unified Bootloader, version 2 (Open Firmware binaries) the active boot loader, nor will it automatically update grub.cfg on upgrade, so most people should install grub-ieee1275 instead. +Package: grub-ieee1275-dbg +Section: debug +Architecture: any-i386 any-amd64 any-powerpc any-ppc64 any-sparc +Depends: grub-ieee1275-bin (= ${binary:Version}), grub-common (= ${binary:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Open Firmware debug files) + This package contains debugging files for grub-ieee1275-bin. You only + need these if you are trying to debug GRUB using its GDB stub. + Package: grub-ieee1275 Architecture: any-i386 any-amd64 any-powerpc any-ppc64 any-sparc Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-ieee1275-bin (= ${binary:Version}), ucf @@ -397,6 +460,15 @@ Description: GRand Unified Bootloader, version 2 (Yeeloong binaries) active boot loader, nor will it automatically update grub.cfg on upgrade, so most people should install grub-yeeloong instead. +Package: grub-yeeloong-dbg +Section: debug +Architecture: any-mipsel +Depends: grub-yeeloong-bin (= ${binary:Version}), grub-common (= ${binary:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Yeeloong debug files) + This package contains debugging files for grub-yeeloong-bin. You only + need these if you are trying to debug GRUB using its GDB stub. + Package: grub-yeeloong Architecture: any-mipsel Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-yeeloong-bin (= ${binary:Version}), ucf diff --git a/debian/grub-coreboot-bin.install.in b/debian/grub-coreboot-bin.install.in new file mode 100644 index 000000000..b1648eb71 --- /dev/null +++ b/debian/grub-coreboot-bin.install.in @@ -0,0 +1 @@ +usr/lib/grub/@CPU_PLATFORM@/efiemu*.o diff --git a/debian/grub-emu-dbg.install b/debian/grub-emu-dbg.install new file mode 100644 index 000000000..05719dc7f --- /dev/null +++ b/debian/grub-emu-dbg.install @@ -0,0 +1,4 @@ +usr/lib/grub/*-*/*.exec +usr/lib/grub/*-*/*.module +usr/lib/grub/*-*/gdb_grub +usr/lib/grub/*-*/gmodule.pl diff --git a/debian/grub-emu.install b/debian/grub-emu.install index b995c5fda..e59a767e4 100644 --- a/debian/grub-emu.install +++ b/debian/grub-emu.install @@ -1,4 +1,9 @@ usr/bin/grub-emu usr/bin/grub-emu-lite -usr/lib/grub/*-*/ +usr/lib/grub/*-*/*.img +usr/lib/grub/*-*/*.lst +usr/lib/grub/*-*/*.mod +usr/lib/grub/*-*/*.o +usr/lib/grub/*-*/config.h +usr/lib/grub/*-*/modinfo.sh usr/share/man/man1/grub-emu.1 diff --git a/debian/grub-ieee1275-bin.install.amd64.in b/debian/grub-ieee1275-bin.install.amd64.in new file mode 100644 index 000000000..b1648eb71 --- /dev/null +++ b/debian/grub-ieee1275-bin.install.amd64.in @@ -0,0 +1 @@ +usr/lib/grub/@CPU_PLATFORM@/efiemu*.o diff --git a/debian/grub-ieee1275-bin.install.i386.in b/debian/grub-ieee1275-bin.install.i386.in new file mode 100644 index 000000000..b1648eb71 --- /dev/null +++ b/debian/grub-ieee1275-bin.install.i386.in @@ -0,0 +1 @@ +usr/lib/grub/@CPU_PLATFORM@/efiemu*.o diff --git a/debian/grub-pc-bin.install.in b/debian/grub-pc-bin.install.in index 9cbe5b6d1..d3341dffd 100644 --- a/debian/grub-pc-bin.install.in +++ b/debian/grub-pc-bin.install.in @@ -1,2 +1,5 @@ usr/bin/grub-ntldr-img usr/lib/grub/@CPU_PLATFORM@ +usr/lib/grub/@CPU_PLATFORM@/efiemu*.o +usr/lib/grub/@CPU_PLATFORM@/g2hdr.bin +usr/lib/grub/@CPU_PLATFORM@/g2ldr.mbr usr/sbin/grub-bios-setup usr/lib/grub/@CPU_PLATFORM@ diff --git a/debian/grub-pc-dbg.install.in b/debian/grub-pc-dbg.install.in new file mode 100644 index 000000000..2770f6de7 --- /dev/null +++ b/debian/grub-pc-dbg.install.in @@ -0,0 +1 @@ +usr/lib/grub/@CPU_PLATFORM@/*.image diff --git a/debian/install-bin.in b/debian/install-bin.in index 50ebf49ed..698005155 100644 --- a/debian/install-bin.in +++ b/debian/install-bin.in @@ -1,6 +1,10 @@ ../../debian/presubj usr/share/bug/@PACKAGE@ ../../debian/script usr/share/bug/@PACKAGE@ -usr/lib/grub/@CPU_PLATFORM@/ +usr/lib/grub/@CPU_PLATFORM@/*.img +usr/lib/grub/@CPU_PLATFORM@/*.lst +usr/lib/grub/@CPU_PLATFORM@/*.mod +usr/lib/grub/@CPU_PLATFORM@/config.h +usr/lib/grub/@CPU_PLATFORM@/modinfo.sh usr/sbin/grub-install usr/lib/grub/@CPU_PLATFORM@ usr/sbin/grub-mknetdir usr/lib/grub/@CPU_PLATFORM@ diff --git a/debian/install-dbg.in b/debian/install-dbg.in new file mode 100644 index 000000000..dfea16414 --- /dev/null +++ b/debian/install-dbg.in @@ -0,0 +1,4 @@ +usr/lib/grub/@CPU_PLATFORM@/*.exec +usr/lib/grub/@CPU_PLATFORM@/*.module +usr/lib/grub/@CPU_PLATFORM@/gdb_grub +usr/lib/grub/@CPU_PLATFORM@/gmodule.pl diff --git a/debian/rules b/debian/rules index d374a584e..0fe1f2b29 100755 --- a/debian/rules +++ b/debian/rules @@ -72,7 +72,9 @@ build/stamps/build-%: export DH_OPTIONS = -p$(package) -Bbuild/$(package) install/%: package = $(subst install/,,$@) install/%: package_bin = $(package)-bin +install/%: package_dbg = $(package)-dbg install/grub-emu: package_bin = grub-emu +install/grub-emu: package_dbg = grub-emu-dbg install/%: export DH_OPTIONS = -p$(package) -Bbuild/$(patsubst grub-common,grub-$(COMMON_PLATFORM),$(package)) build/stamps/autogen: autogen.sh configure.ac Makefile.util.def grub-core/Makefile.core.def @@ -189,6 +191,12 @@ install/grub-pc install/grub-efi-ia32 install/grub-efi-amd64 install/grub-efi-ia $(call platform_subst,$(package_bin).$$i.$(DEB_HOST_ARCH_CPU).in,$(package_bin),$$i); \ $(call platform_subst,$(package_bin).$$i.$(DEB_HOST_ARCH_OS).in,$(package_bin),$$i); \ [ -s debian/$(package_bin).$$i ] || rm -f debian/$(package_bin).$$i; \ + > debian/$(package_dbg).$$i; \ + $(call platform_subst,$$i-dbg.in,$(package_dbg),$$i); \ + $(call platform_subst,$(package_dbg).$$i.in,$(package_dbg),$$i); \ + $(call platform_subst,$(package_dbg).$$i.$(DEB_HOST_ARCH_CPU).in,$(package_dbg),$$i); \ + $(call platform_subst,$(package_dbg).$$i.$(DEB_HOST_ARCH_OS).in,$(package_dbg),$$i); \ + [ -s debian/$(package_dbg).$$i ] || rm -f debian/$(package_dbg).$$i; \ done ; \ fi @@ -220,6 +228,22 @@ install/grub-pc install/grub-efi-ia32 install/grub-efi-amd64 install/grub-efi-ia >> $(CURDIR)/debian/$(package_bin)/usr/share/lintian/overrides/$(package_bin) ; \ fi + mkdir -p $(CURDIR)/debian/$(package_dbg)/usr/share/lintian/overrides + echo "$(package_dbg): unstripped-binary-or-object *.module" \ + >> $(CURDIR)/debian/$(package_dbg)/usr/share/lintian/overrides/$(package_dbg) + echo "$(package_dbg): statically-linked-binary *.image" \ + >> $(CURDIR)/debian/$(package_dbg)/usr/share/lintian/overrides/$(package_dbg) + cd debian/tmp-$(package) && find usr/lib/grub -name kernel.exec \ + | sed -e "s%.*%$(package_dbg): statically-linked-binary &%g" \ + >> $(CURDIR)/debian/$(package_dbg)/usr/share/lintian/overrides/$(package_dbg) + if [ "$@" = "install/grub-efi-amd64" ] && [ "$(DEB_HOST_ARCH_CPU)" = "i386" ] ; then \ + echo "$(package_dbg): binary-from-other-architecture *.module" \ + >> $(CURDIR)/debian/$(package_dbg)/usr/share/lintian/overrides/$(package_dbg) ; \ + cd debian/tmp-$(package) && find usr/lib/grub -name kernel.exec \ + | sed -e "s%.*%$(package_dbg): binary-from-other-architecture &%g" \ + >> $(CURDIR)/debian/$(package_dbg)/usr/share/lintian/overrides/$(package_dbg) ; \ + fi + install/grub-common: set -e ; for i in $(AUTOGEN_DEB_FILES) ; do \ if [ -e debian/grub-common.$$i.in ] ; then \ @@ -245,8 +269,10 @@ override_dh_install: set -e; for package in grub-pc grub-efi-ia32 grub-efi-amd64 grub-efi-ia64 grub-ieee1275 grub-coreboot grub-yeeloong; do \ dh_install -p$$package --sourcedir=debian/tmp-$$package; \ dh_install -p$$package-bin --sourcedir=debian/tmp-$$package; \ + dh_install -p$$package-dbg --sourcedir=debian/tmp-$$package; \ done dh_install -pgrub-emu --sourcedir=debian/tmp-grub-emu + dh_install -pgrub-emu-dbg --sourcedir=debian/tmp-grub-emu override_dh_installdocs: dh_installdocs -pgrub-common -pgrub-rescue-pc -pgrub-firmware-qemu -A AUTHORS NEWS README THANKS TODO @@ -265,7 +291,7 @@ override_dh_clean: debian/legacy/update-grub debian/grub-extras chmod +x debian/{script,grub.d/*,legacy/*,kernel/*} for i in $(AUTOGEN_DEB_FILES) ; do \ - rm -f debian/grub-{pc,efi-*,ieee1275,coreboot,yeeloong}{,-bin}.$$i ; \ + rm -f debian/grub-{pc,efi-*,ieee1275,coreboot,yeeloong}{,-bin,-dbg}.$$i ; \ done rm -rf debian/tmp-*/