@@ -27,7 +27,7 @@ Section: admin
Priority: optional
Pre-Depends: dpkg (>= 1.10.24)
Provides: linux-image, linux-image-2.6, fuse-module, =PROVIDES=
-Depends: ${misc:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda
+Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda
Conflicts: hotplug (<< 0.0.20040105-1)
Recommends: BOOTLOADER
Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER
@@ -3,7 +3,7 @@ Section: devel
Priority: optional
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Standards-Version: 3.8.4.0
-Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386 lpia], device-tree-compiler [powerpc]
+Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386 lpia], device-tree-compiler [powerpc], libelf-dev, binutils-dev
Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils
Build-Conflicts: findutils (= 4.4.1-1ubuntu1)
Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-lucid.git
@@ -119,6 +119,12 @@ do_common_headers_indep=true
# add a 'full source' mode
do_full_source=false
+# build tools
+do_tools=false
+ifneq ($(wildcard $(CURDIR)/tools),)
+do_tools=true
+endif
+
# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
#
# These 2 environment variables set the -j value of the kernel build. For example,
@@ -99,6 +99,7 @@ endif
@echo "do_libc_dev_package = $(do_libc_dev_package)"
@echo "do_common_headers_indep = $(do_common_headers_indep)"
@echo "do_full_source = $(do_full_source)"
+ @echo "do_tools = $(do_tools)"
printchanges:
@baseCommit=$$(git log --pretty=format:'%H %s' | \
@@ -24,6 +24,12 @@ $(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(arc
cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$*"/' > $(builddir)/build-$*/.config
find $(builddir)/build-$* -name "*.ko" | xargs rm -f
$(build_cd) $(kmake) $(build_O) silentoldconfig prepare scripts
+ifeq ($(do_tools),true)
+ install -d $(builddir)/tools-$*
+ for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools-$*/; done
+ rm $(builddir)/tools-$*/tools
+ rsync -a tools/ $(builddir)/tools-$*/tools/
+endif
touch $@
@@ -35,6 +41,9 @@ $(stampdir)/stamp-build-%: prepare-%
@echo "Building $*..."
$(build_cd) $(kmake) $(build_O) $(conc_level) $(build_image)
$(build_cd) $(kmake) $(build_O) $(conc_level) modules
+ifeq ($(do_tools),true)
+ cd $(builddir)/tools-$*/tools/perf && make
+endif
@touch $@
# Install the finished build
@@ -93,6 +102,13 @@ endif
$(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \
fi
+ # Add the tools.
+ifeq ($(do_tools),true)
+ install -d $(pkgdir)/usr/bin
+ install -s -m755 $(builddir)/tools-$*/tools/perf/perf \
+ $(pkgdir)/usr/bin/perf_$(abi_release)-$*
+endif
+
# Now the image scripts
install -d $(pkgdir)/DEBIAN
for script in postinst postrm preinst prerm; do \
@@ -258,6 +274,7 @@ binary-%: install-%
dh_compress -p$(pkgimg)
dh_fixperms -p$(pkgimg)
dh_installdeb -p$(pkgimg)
+ dh_shlibdeps -p$(pkgimg)
dh_gencontrol -p$(pkgimg)
dh_md5sums -p$(pkgimg)
dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9
The kernel source now carries the source for tools which are very closly tied to the kernel version, initially the perf tool. These tools are included because they are tightly tied to the kernel internal ABIs. Build these tools as part of the kernel build process and package them up with the binary kernel packages. As we can have more than one version of the kernel available and because you need to use the version which matches the version of the kernel that you are booted from, install them using the kernel version number and flavour: /usr/bin/perf-2.6.32-15-generic Signed-off-by: Andy Whitcroft <apw@canonical.com> --- debian.master/control.d/flavour-control.stub | 2 +- debian.master/control.stub.in | 2 +- debian/rules.d/0-common-vars.mk | 6 ++++++ debian/rules.d/1-maintainer.mk | 1 + debian/rules.d/2-binary-arch.mk | 17 +++++++++++++++++ 5 files changed, 26 insertions(+), 2 deletions(-)