[Pkg-dkms-commits] [dkms] 06/07: mkbmdeb: support for lean binary package with only the built modules (Closes: #554843)
Aron Xu
aron at debian.org
Tue Jul 5 22:00:56 UTC 2016
This is an automated email from the git hooks/post-receive script.
aron pushed a commit to branch master
in repository dkms.
commit a455f11865749433c67d21b9ef9f0cc733411cd9
Author: Thijs Kinkhorst <thijs at debian.org>
Date: Wed Jul 6 05:35:18 2016 +0800
mkbmdeb: support for lean binary package with only the built modules (Closes: #554843)
---
...port-for-lean-binary-package-with-only-th.patch | 277 +++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 278 insertions(+)
diff --git a/debian/patches/0014-mkbmdeb-support-for-lean-binary-package-with-only-th.patch b/debian/patches/0014-mkbmdeb-support-for-lean-binary-package-with-only-th.patch
new file mode 100644
index 0000000..6dca23d
--- /dev/null
+++ b/debian/patches/0014-mkbmdeb-support-for-lean-binary-package-with-only-th.patch
@@ -0,0 +1,277 @@
+From: Thijs Kinkhorst <thijs at debian.org>
+Date: Wed, 6 Jul 2016 05:34:43 +0800
+Subject: mkbmdeb: support for lean binary package with only the built modules
+
+ Creates a Debian binary package containing just the binary modules in the
+ /lib/modules installation path. This package does not depend on dkms and
+ does not require a toolchain to be installed on the target host. Useful
+ if you want to have a package to install on hosts identical to the build
+ system without installing the full toolchain on them.
+Bug-Debian: http://bugs.debian.org/554843
+---
+ Makefile | 4 +++
+ dkms | 19 ++++++++--
+ dkms.8 | 12 +++++++
+ template-dkms-mkbmdeb/Makefile | 18 ++++++++++
+ template-dkms-mkbmdeb/debian/README.Debian | 5 +++
+ template-dkms-mkbmdeb/debian/changelog | 6 ++++
+ template-dkms-mkbmdeb/debian/compat | 1 +
+ template-dkms-mkbmdeb/debian/control | 13 +++++++
+ template-dkms-mkbmdeb/debian/copyright | 2 ++
+ template-dkms-mkbmdeb/debian/rules | 57 ++++++++++++++++++++++++++++++
+ 10 files changed, 134 insertions(+), 3 deletions(-)
+ create mode 100644 template-dkms-mkbmdeb/Makefile
+ create mode 100644 template-dkms-mkbmdeb/debian/README.Debian
+ create mode 100644 template-dkms-mkbmdeb/debian/changelog
+ create mode 100644 template-dkms-mkbmdeb/debian/compat
+ create mode 100644 template-dkms-mkbmdeb/debian/control
+ create mode 100644 template-dkms-mkbmdeb/debian/copyright
+ create mode 100644 template-dkms-mkbmdeb/debian/rules
+
+diff --git a/Makefile b/Makefile
+index c64332e..2dc9cf8 100644
+--- a/Makefile
++++ b/Makefile
+@@ -81,6 +81,10 @@ install-debian: install install-doc
+ chmod +x $(ETC)/template-dkms-mkdeb/debian/postinst
+ chmod +x $(ETC)/template-dkms-mkdeb/debian/prerm
+ chmod +x $(ETC)/template-dkms-mkdeb/debian/rules
++ mkdir -p -m 0755 $(ETC)/template-dkms-mkbmdeb/debian
++ install -p -m 0664 template-dkms-mkbmdeb/Makefile $(ETC)/template-dkms-mkbmdeb/
++ install -p -m 0664 template-dkms-mkbmdeb/debian/* $(ETC)/template-dkms-mkbmdeb/debian/
++ chmod +x $(ETC)/template-dkms-mkbmdeb/debian/rules
+ rm $(DOCDIR)/COPYING*
+ rm $(DOCDIR)/sample*
+
+diff --git a/dkms b/dkms
+index bde0e27..0bc7766 100644
+--- a/dkms
++++ b/dkms
+@@ -122,7 +122,7 @@ show_usage()
+ {
+ echo $"Usage: $0 [action] [options]"
+ echo $" [action] = { add | remove | build | install | uninstall | match | autoinstall"
+- echo $" | mkdriverdisk | mktarball | ldtarball | mkrpm | mkkmp | mkdeb | status }"
++ echo $" | mkdriverdisk | mktarball | ldtarball | mkrpm | mkkmp | mkdeb | mkbmdeb | status }"
+ echo $" [options] = [-m module] [-v module-version] [-k kernel-version] [-a arch]"
+ echo $" [-d distro] [-c dkms.conf-location] [-q] [--force] [--all]"
+ echo $" [--templatekernel=kernel] [--directive='cli-directive=cli-value']"
+@@ -2829,6 +2829,8 @@ preproc_file()
+ local date_str="$(date -R)"
+ echo "modifying $1..."
+ sed -e "s/DEBIAN_PACKAGE/$debian_package/g" \
++ -e "s/DEBIAN_BUILD_ARCH/$debian_build_arch/g" \
++ -e "s/KERNEL_VERSION/$kernelver/g" \
+ -e "s/MODULE_NAME/$module/g" \
+ -e "s/MODULE_VERSION/$module_version/g" \
+ -e "s/DATE_STAMP/$date_str/" "$1" > "$1.dkms-pp"
+@@ -2885,6 +2887,7 @@ make_debian()
+ make_common_test "mk${create_type}"
+
+ debian_package=${module//_/-}
++ debian_build_arch=$(dpkg-architecture -qDEB_BUILD_ARCH)
+
+ # Read the conf file
+ read_conf_or_die "$kernelver" "$arch"
+@@ -2957,7 +2960,16 @@ make_debian()
+ die 7 $"There was a problem creating your ${create_type}."
+ echo $""
+ echo $"DKMS: mk${create_type} completed."
+- invoke_command "mv '$temp_dir/${debian_package}-dkms_${module_version}_all.deb' '$deb_basedir'" "Moving built files to $deb_basedir"
++ invoke_command "mv '$temp_dir/${debian_package}-dkms_${module_version}_${debian_build_arch}.deb' '$deb_basedir'" "Moving built files to $deb_basedir"
++ ;;
++ bmdeb)
++ export KVER="$kernelver"
++ export KARCH="$arch"
++ invoke_command "dpkg-buildpackage -rfakeroot -d -b -us -uc 1>/dev/null" "Building binary package" || \
++ die 7 $"There was a problem creating your ${create_type}."
++ echo $""
++ echo $"DKMS: mk${create_type} completed."
++ invoke_command "mv '$temp_dir/${debian_package}-dkms-bin_${module_version}_${debian_build_arch}.deb' '$deb_basedir'" "Moving built files to $deb_basedir"
+ ;;
+ esac
+ popd > /dev/null 2>&1
+@@ -3467,7 +3479,7 @@ die_is_fatal="yes"
+ [ -x /sbin/weak-modules ] && weak_modules='/sbin/weak-modules'
+ [ -x /usr/lib/module-init-tools/weak-modules ] && weak_modules='/usr/lib/module-init-tools/weak-modules'
+
+-action_re='^(remove|(auto|un)?install|match|mk(driverdisk|tarball|rpm|deb|dsc|kmp)|build|add|status|ldtarball)$'
++action_re='^(remove|(auto|un)?install|match|mk(driverdisk|tarball|rpm|deb|bmdeb|dsc|kmp)|build|add|status|ldtarball)$'
+
+ # Parse command line arguments
+ while (($# > 0)); do
+@@ -3583,6 +3595,7 @@ for action_to_run in $action; do
+ mktarball) make_tarball;;
+ mkrpm) make_rpm;;
+ mkdeb) make_debian "deb";;
++ mkbmdeb) make_debian "bmdeb";;
+ mkdsc) make_debian "dsc";;
+ mkkmp) have_one_kernel && make_kmp;;
+ status) show_status;;
+diff --git a/dkms.8 b/dkms.8
+index 0346a6d..80838ad 100644
+--- a/dkms.8
++++ b/dkms.8
+@@ -261,6 +261,18 @@ load this tarball, build and install modules on the end user's system. If you d
+ not want your debian package to contain any prebuilt binaries, be sure to specify
+ .B \-\-source\-only
+ in the mkdeb command.
++.SY mkbmdeb
++.OP module/module\-version
++.OP -k kernel/arch
++.YS
++.IP "" 4
++Creates a Debian binary package containing just the binary modules in the /lib/modules
++installation path. This package does not depend on dkms and does not require a toolchain
++to be installed on the target host. Useful if you want to have a package to install on
++hosts identical to the build system without installing the full toolchain on them.
++It uses a template debian directory found in
++.I /etc/dkms/template\-dkms\-mkbmdeb
++as the basis for the package.
+ .SY mkdsc
+ .OP module/module\-version
+ .OP -k kernel/arch
+diff --git a/template-dkms-mkbmdeb/Makefile b/template-dkms-mkbmdeb/Makefile
+new file mode 100644
+index 0000000..210b998
+--- /dev/null
++++ b/template-dkms-mkbmdeb/Makefile
+@@ -0,0 +1,18 @@
++#/usr/bin/make
++SRC = $(DESTDIR)/usr/src
++SHARE = $(DESTDIR)/usr/share/$(NAME)-dkms
++
++all:
++
++clean:
++
++install:
++
++#tarball, possibly with binaries
++ifeq ("$(wildcard $(NAME)-$(VERSION).dkms.tar.gz)", "$(NAME)-$(VERSION).dkms.tar.gz")
++ tar zxvf "$(NAME)-$(VERSION).dkms.tar.gz"
++ install -d "$(DESTDIR)/lib/modules/$(KVER)/updates/dkms/"
++ install -m 644 dkms_main_tree/$(KVER)/$(KARCH)/module/*.ko "$(DESTDIR)/lib/modules/$(KVER)/updates/dkms/"
++ rm -rf dkms_main_tree/ dkms_binaries_only/
++endif
++
+diff --git a/template-dkms-mkbmdeb/debian/README.Debian b/template-dkms-mkbmdeb/debian/README.Debian
+new file mode 100644
+index 0000000..f8495d9
+--- /dev/null
++++ b/template-dkms-mkbmdeb/debian/README.Debian
+@@ -0,0 +1,5 @@
++MODULE_NAME DKMS module for Debian
++
++This package was automatically generated by the DKMS system,
++for distribution on Debian based operating systems.
++
+diff --git a/template-dkms-mkbmdeb/debian/changelog b/template-dkms-mkbmdeb/debian/changelog
+new file mode 100644
+index 0000000..b6cc91d
+--- /dev/null
++++ b/template-dkms-mkbmdeb/debian/changelog
+@@ -0,0 +1,6 @@
++DEBIAN_PACKAGE-dkms-bin (MODULE_VERSION) stable; urgency=low
++
++ * Automatically packaged by DKMS.
++
++ -- Dynamic Kernel Modules Support Team <pkg-dkms-maint at lists.alioth.debian.org> DATE_STAMP
++
+diff --git a/template-dkms-mkbmdeb/debian/compat b/template-dkms-mkbmdeb/debian/compat
+new file mode 100644
+index 0000000..7f8f011
+--- /dev/null
++++ b/template-dkms-mkbmdeb/debian/compat
+@@ -0,0 +1 @@
++7
+diff --git a/template-dkms-mkbmdeb/debian/control b/template-dkms-mkbmdeb/debian/control
+new file mode 100644
+index 0000000..05fdeaf
+--- /dev/null
++++ b/template-dkms-mkbmdeb/debian/control
+@@ -0,0 +1,13 @@
++Source: DEBIAN_PACKAGE-dkms-bin
++Section: misc
++Priority: optional
++Maintainer: Dynamic Kernel Modules Support Team <pkg-dkms-maint at lists.alioth.debian.org>
++Build-Depends: debhelper (>= 7), dkms
++Standards-Version: 3.8.1
++
++Package: DEBIAN_PACKAGE-dkms-bin
++Architecture: DEBIAN_BUILD_ARCH
++Depends: ${misc:Depends}, linux-image-KERNEL_VERSION
++Description: DEBIAN_PACKAGE binary drivers for linux-image-KERNEL_VERSION
++ This package contains DEBIAN_PACKAGE drivers for the KERNEL_VERSION Linux kernel,
++ built from DEBIAN_PACKAGE-dkms for the DEBIAN_BUILD_ARCH architecture.
+diff --git a/template-dkms-mkbmdeb/debian/copyright b/template-dkms-mkbmdeb/debian/copyright
+new file mode 100644
+index 0000000..ad983f3
+--- /dev/null
++++ b/template-dkms-mkbmdeb/debian/copyright
+@@ -0,0 +1,2 @@
++
++This copyright has not been completed by the author of this package.
+diff --git a/template-dkms-mkbmdeb/debian/rules b/template-dkms-mkbmdeb/debian/rules
+new file mode 100644
+index 0000000..b931f5e
+--- /dev/null
++++ b/template-dkms-mkbmdeb/debian/rules
+@@ -0,0 +1,57 @@
++#!/usr/bin/make -f
++# -*- makefile -*-
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++DEB_NAME=DEBIAN_PACKAGE
++NAME=MODULE_NAME
++VERSION=MODULE_VERSION
++
++configure: configure-stamp
++configure-stamp:
++ dh_testdir
++ touch configure-stamp
++
++
++build: build-stamp
++
++build-stamp: configure-stamp
++ dh_testdir
++ $(MAKE)
++ touch $@
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp configure-stamp
++ -$(MAKE) clean
++ dh_clean
++
++install: build
++ dh_testdir
++ dh_testroot
++ dh_prep
++ dh_installdirs
++ $(MAKE) DESTDIR=$(CURDIR)/debian/$(DEB_NAME)-dkms-bin NAME=$(NAME) VERSION=$(VERSION) install
++
++binary-arch: build install
++
++binary-indep: build install
++ dh_testdir
++ dh_testroot
++ dh_link
++ dh_strip
++ dh_compress
++ dh_installmodules
++ dh_installdocs
++ dh_installchangelogs
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/debian/patches/series b/debian/patches/series
index d26ae3e..7858d75 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,3 +11,4 @@
0011-690866-helpmsg.patch
0012-Do-not-ignore-kernelsourcedir.patch
0013-Port-apport-hook-to-python3.patch
+0014-mkbmdeb-support-for-lean-binary-package-with-only-th.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-dkms/dkms.git
More information about the Pkg-dkms-commits
mailing list