From 5ccb132f8c6a5dde6dbb8f0cbbd0860d3e60a1b9 Mon Sep 17 00:00:00 2001 From: ferreo Date: Wed, 20 Nov 2024 14:25:28 +0000 Subject: [PATCH] Enhance DKMS package with new upstream version and debian directory updates, including autotests and improved installation scripts --- .github/release-nest-v3 | 2 +- debian/HOWTO.Debian | 40 + debian/changelog | 1304 ++++++++++++++++- debian/clean | 2 + debian/control | 98 +- debian/copyright | 37 + debian/dh-dkms.install | 4 + debian/dkms-noautoinstall-test-dkms.dkms | 1 + debian/dkms-noautoinstall-test-dkms.install | 1 + debian/dkms-test-dkms.dkms | 1 + debian/dkms-test-dkms.install | 1 + debian/dkms.docs | 1 + debian/dkms.install | 1 + debian/dkms.lintian-overrides | 5 + debian/dkms.maintscript | 22 + debian/dkms.modprobe | 4 + debian/dkms.postinst | 57 + debian/gbp.conf | 4 + ...ants-of-log_action_msg-from-dkms_aut.patch | 29 + debian/patches/0002-Drop-GNU-kFreeBSD.patch | 151 ++ .../1001-remove-trailing-whitespace.patch | 84 ++ ...variables-that-can-contain-cleanup-c.patch | 24 + debian/patches/1003-add-help-h-options.patch | 51 + ...source-etc-dkms-framework.conf.d-.co.patch | 32 + ...pm-queries-on-Debian-Ubuntu-Arch-bas.patch | 50 + ...ly-autobuild-AUTOINSTALL-yes-modules.patch | 16 + .../rebuild-modules-on-header-upgrade.patch | 22 + debian/patches/series | 10 + debian/rules | 85 +- debian/scripts/dh_dkms.in | 192 +++ debian/scripts/dkms-autopkgtest | 229 +++ debian/scripts/dkms.pm | 8 + debian/scripts/postinst-dkms | 24 + debian/scripts/prerm-dkms | 10 + debian/tests/control | 99 ++ debian/tests/run_test_wrapper.sh | 17 + debian/upstream/metadata | 4 + debian/watch | 7 + 38 files changed, 2647 insertions(+), 82 deletions(-) create mode 100644 debian/HOWTO.Debian create mode 100644 debian/clean create mode 100644 debian/dh-dkms.install create mode 100644 debian/dkms-noautoinstall-test-dkms.dkms create mode 100644 debian/dkms-noautoinstall-test-dkms.install create mode 100644 debian/dkms-test-dkms.dkms create mode 100644 debian/dkms-test-dkms.install create mode 100644 debian/dkms.docs create mode 100644 debian/dkms.install create mode 100644 debian/dkms.lintian-overrides create mode 100644 debian/dkms.maintscript create mode 100644 debian/dkms.modprobe create mode 100644 debian/dkms.postinst create mode 100644 debian/gbp.conf create mode 100644 debian/patches/0001-Remove-last-remnants-of-log_action_msg-from-dkms_aut.patch create mode 100644 debian/patches/0002-Drop-GNU-kFreeBSD.patch create mode 100644 debian/patches/1001-remove-trailing-whitespace.patch create mode 100644 debian/patches/1002-initially-clear-variables-that-can-contain-cleanup-c.patch create mode 100644 debian/patches/1003-add-help-h-options.patch create mode 100644 debian/patches/1004-common.postinst-source-etc-dkms-framework.conf.d-.co.patch create mode 100644 debian/patches/2001-do-not-perform-rpm-queries-on-Debian-Ubuntu-Arch-bas.patch create mode 100644 debian/patches/only-autobuild-AUTOINSTALL-yes-modules.patch create mode 100644 debian/patches/rebuild-modules-on-header-upgrade.patch create mode 100644 debian/patches/series create mode 100755 debian/scripts/dh_dkms.in create mode 100755 debian/scripts/dkms-autopkgtest create mode 100644 debian/scripts/dkms.pm create mode 100644 debian/scripts/postinst-dkms create mode 100644 debian/scripts/prerm-dkms create mode 100644 debian/tests/control create mode 100644 debian/tests/run_test_wrapper.sh create mode 100644 debian/upstream/metadata create mode 100644 debian/watch diff --git a/.github/release-nest-v3 b/.github/release-nest-v3 index 56a6051..d8263ee 100644 --- a/.github/release-nest-v3 +++ b/.github/release-nest-v3 @@ -1 +1 @@ -1 \ No newline at end of file +2 \ No newline at end of file diff --git a/debian/HOWTO.Debian b/debian/HOWTO.Debian new file mode 100644 index 0000000..532e5b9 --- /dev/null +++ b/debian/HOWTO.Debian @@ -0,0 +1,40 @@ +HOWTO Build DKMS debs w/ Debian & Ubuntu systems +Copyright 2008 Dell Inc. + Author: Mario Limonciello + +------------ + +A dkms deb is a common representation of a DKMS package that can be distributed across multiple machines. +After you have a functional DKMS package, you can follow these steps to build a DKMS deb. + +1) Start out by putting together a tree in /usr/src/PACKAGE-VERSION. For our example, we are going to use +the PACKAGE lirc and VERSION 0.8.3~pre1. Create a dkms.conf per the recommendations in the DKMS guide. + +2) "Add" the package to the dkms tree system: + dkms add -m lirc -v 0.8.3~pre1 + +3) "Build" the binary modules for the current kernel: + dkms build -m lirc -v 0.8.3~pre1 + +4) Make the deb and/or dsc for the package: + dkms mkdeb -m lirc -v 0.8.3~pre1 + dkms mkdsc -m lirc -v 0.8.3~pre1 + +The end result will be a deb and/or dsc in /var/lib/dkms/lirc/0.8.3~pre1/deb or /var/lib/dkms/lirc/0.8.3~pre1/dsc + +------------ +If you would prefer not to contaminate your system with the changes from building these debs, you should +create a framework.conf that contains these variables (adjust for your use case): + + source_tree="/path/to/source/tree" + dkms_tree="/path/to/dkms/tree" + +You will then call DKMS with an extra variable, '--dkmsframework'. Here is an example of how this would work +using the same lirc example above: + + dkms add -m lirc -v 0.8.3~pre1 --dkmsframework framework.conf + dkms build -m lirc -v 0.8.3~pre1 --dkmsframework framework.conf + dkms mkdeb -m lirc -v 0.8.3~pre1 --dkmsframework framework.conf + dkms mkdsc -m lirc -v 0.8.3~pre1 --dkmsframework framework.conf + +The end result will be both a debian binary package and a debian source package that you can use. diff --git a/debian/changelog b/debian/changelog index 6d8d068..cf276be 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,1303 @@ -upstream-name (1.0-101pika1) pika; urgency=medium +dkms (3.1.1-1git-101pika2) unstable; urgency=medium - * Initial release. (Closes: #nnnn) + * New upstream release. - -- ferreo Wed, 18 Jan 2023 21:48:14 +0000 + -- Andreas Beckmann Fri, 18 Oct 2024 03:45:43 +0200 + +dkms (3.1.0-1) unstable; urgency=medium + + * New upstream release. + * Refresh patches. + * Bump Standards-Version to 4.7.0, no changes needed. + + -- Andreas Beckmann Fri, 18 Oct 2024 03:45:43 +0200 + +dkms (3.0.13-1) unstable; urgency=medium + + * New upstream release. + * Refresh patches. + * Downgrade compiler dependency to Recommends to ease cross installation. + The linux-headers-* packages have a proper compiler dependency. + + -- Andreas Beckmann Thu, 07 Mar 2024 11:33:57 +0100 + +dkms (3.0.12-5) unstable; urgency=medium + + * dkms: Use saner compression defaults. (Closes: #1061427) + + -- Andreas Beckmann Wed, 07 Feb 2024 20:54:03 +0100 + +dkms (3.0.12-4) unstable; urgency=medium + + * common.postinst: Use bash for extracting AUTOINSTALL from dkms.conf. + (Closes: #1059885) + * Stop recommending linux-headers-*. + (Closes: #1059895, #918918, #968763, #637877, #755942, #762061, #951404) + * postinst: Be less greedy and don't remove module source while cleaning up + module builds with empty $arch from the dkms tree. (Closes: #1059900) + + -- Andreas Beckmann Wed, 03 Jan 2024 20:16:57 +0100 + +dkms (3.0.12-3) unstable; urgency=medium + + * Autodetect module compression during tests. (Closes: #1059894) + * Upload to unstable. + + -- Andreas Beckmann Tue, 02 Jan 2024 14:10:36 +0100 + +dkms (3.0.12-2) experimental; urgency=medium + + * Cherry-pick upstream patches: + - Use 'unbuild' instead of 'remove' in kernel prerm script to keep the + modules in 'added' state. (Closes: #621846, #894250) + - Document MOK key *and* cert recreation behavior if MOK key *or* cert is + missing. (Closes: #1052243) + * kernel/header_postinst.d hook: On header upgrades w/o package name change, + 'unbuild' all 'autoinstall'ed modules built against the old version first + to ensure they get rebuilt against the upgraded headers on the next + 'autoinstall'. (Closes: #1040401, #1034013) + * common.postinst: Only build AUTOINSTALL="yes" modules on installation. + * Clean up obsolete /etc/kernel/install.d/dkms, renamed to 40-dkms.install. + (Closes: #1056949) + * postinst: Clean up modules with empty $arch from dkms tree. (Cf. #1036033) + * postinst: Clean up dangling source links from dkms tree. (LP: #830915) + * dh_dkms: Strip epoch from upstream version. (Closes: #660043) + * dh_dkms: Error out on invalid package versions. + * dh_dkms: Always substitute #MODULE_VERSION#. (Closes: #736803) + * Add dkms-noautoinstall-test-dkms package with a trivial kernel module for + dkms tests. + * Add autopkgtests using dkms-noautoinstall-test-dkms. + * Upload to experimental. + + -- Andreas Beckmann Wed, 06 Dec 2023 00:48:28 +0100 + +dkms (3.0.12-1) unstable; urgency=medium + + * New upstream release. + * Refresh patches. + * New autopkgtest: Test 32-bit i386 userspace with 64-bit kernel. + * Only enumerate kernels that potentially have headers installed. + (Closes: #1011317) + * Clean up after depmod if modules.dep is empty. + * postinst: Clean up leftover depmod files from removed kernels/headers. + + -- Andreas Beckmann Sat, 25 Nov 2023 02:36:21 +0100 + +dkms (3.0.11-3) unstable; urgency=medium + + * autopkgtest fixes. + * Drop Ubuntu-specific patch. + + -- Andreas Beckmann Fri, 16 Jun 2023 17:15:58 +0200 + +dkms (3.0.11-2) unstable; urgency=medium + + * dh_dkms: Bump generated dkms dependency for new BUILD_EXCLUSIVE + directives. + * Fix and unify CC detection. + * Fail early if $arch detection fails. (Closes: #1036033, #842596) + * Add Breaks against obsolete *-dkms packages that are incompatible with the + Linux 6.1 kernel in bookworm. (Closes: #1037425) + * Upload to unstable. + + -- Andreas Beckmann Tue, 13 Jun 2023 19:02:14 +0200 + +dkms (3.0.11-1) experimental; urgency=medium + + * New upstream release. + - Adds BUILD_EXCLUSIVE_{CONFIG,_KERNEL_{MIN,MAX}}. (Closes: #911665) + - Fixes BUILD_EXCLUSIVE matches propagating as error. (Closes: #1031561) + * Drop patches that were applied upstream. + * Avoid unnecessary rpm comands on Debian based systems. (Closes: #741399) + (LP: #1069350) + + -- Andreas Beckmann Thu, 27 Apr 2023 18:12:51 +0200 + +dkms (3.0.10-9) experimental; urgency=medium + + * Add dkms-test-dkms package with a trivial kernel module for dkms tests. + * New autopkgtest: Install some-dkms after linux-headers. + * New autopkgtest: Install linux-headers after some-dkms. + * New autopkgtest: Install some-dkms after linux-image w/o linux-headers. + * New autopkgtest: Install linux-image after some-dkms w/o linux-headers. + * Upload to experimental. + + -- Andreas Beckmann Fri, 31 Mar 2023 14:19:59 +0200 + +dkms (3.0.10-8+deb12u1) bookworm; urgency=medium + + * Add Breaks against obsolete *-dkms packages that are incompatible with the + Linux 6.1 kernel in bookworm. (Closes: #1037425) + + -- Andreas Beckmann Wed, 12 Jul 2023 13:43:22 +0200 + +dkms (3.0.10-8) unstable; urgency=medium + + * Disable tests broken by fix-builtin-archive-dkms-coinstallation.patch. + (Closes: #1033396) + * Run autopkgtest for all architectures using the headers from the + linux-headers-generic (virtual) meta-package. + * Generate dh_dkms.1 at build time. + * Clean up /boot/*.old-dkms on upgrades from bullseye. (Closes: #717584) + * Clean up obsolete /etc/dkms/sign_helper.sh on upgrades. (Closes: #1019563) + * dkms-autopkgtest: Try to 'dkms install' its BUILD_DEPENDS before testing a + module. (Single level only, without recursion.) (Closes: #1034303) + * Fix fallback value for BUILD_MODULE_NAME[0]. (Closes: #651973) + * dkms.8: Clarify 'dkms add' arguments. (Closes: #704917) + * Print a warning if /proc is not mounted. (Closes: #810665, #968074) + * dkms_autoinstaller: Skip autoinstall if headers are missing (like + dkms_common.postinst). (Closes: #1030595) + * Use return code 77 if skipping due to BUILD_EXCLUSIVE_*. + * Sort kernels by version. + + -- Andreas Beckmann Fri, 31 Mar 2023 14:01:26 +0200 + +dkms (3.0.10-7) unstable; urgency=medium + + [ Dimitri John Ledkov ] + * Fix release regression preventing co-installing in-archive dkms + packages with kernels that built-in identical or newer versions of the + same dkms package. LP: #2008269 + + -- Gianfranco Costamagna Wed, 22 Mar 2023 00:02:08 +0100 + +dkms (3.0.10-6) unstable; urgency=medium + + * Fix test failure on s390x due to typo in "linux" package installation + name. + + -- Gianfranco Costamagna Tue, 14 Feb 2023 09:37:48 +0100 + +dkms (3.0.10-5) unstable; urgency=medium + + * dkms-autopkgtest: fix typo in variable name + + -- Aron Xu Wed, 08 Feb 2023 11:14:35 +0800 + +dkms (3.0.10-4) unstable; urgency=medium + + * dkms-autopkgtest: fix build vs install checks + + -- Dimitri John Ledkov Tue, 07 Feb 2023 19:02:02 +0000 + +dkms (3.0.10-3) unstable; urgency=medium + + [ Andreas Beckmann ] + * dkms: Drop Depends: dh-dkms, the B-D: dkms have migrated to + B-D: dh-sequence-dkms or B-D: dh-dkms. + * Provide virtual package dkms-autopkgtest. + * dkms-autopkgtest: Accept a list of packages to be tested as parameters. + * dkms-autopkgtest: Ensure dctrl-tools and openssl are installed. + * Bump Standards-Version to 4.6.2, no changes needed. + * dh_dkms: Error out if dkms.conf cannot be read. (Closes: #1028331) + * dh_dkms: Fall back to debian/tmp when looking up the dkms.conf template. + + [ Aron Xu ] + * add autopkgtest for dkms itself + + -- Aron Xu Tue, 07 Feb 2023 14:55:19 +0800 + +dkms (3.0.10-2) unstable; urgency=medium + + * dkms-autopkgtest: + - Use dkms --force to force installation and build + if the module is already found (e.g. provided by kernel) + + -- Gianfranco Costamagna Tue, 31 Jan 2023 10:16:53 +0100 + +dkms (3.0.10-1) unstable; urgency=medium + + [ Gianfranco Costamagna ] + * Drop gencontrol hack, now that the Breaks has been removed + + [ Aron Xu ] + * New upstream version 3.0.10 (Closes: #1025783, #1026822) + * Drop patch merged upstream + + -- Aron Xu Tue, 10 Jan 2023 22:08:49 +0800 + +dkms (3.0.9-1) unstable; urgency=medium + + * New upstream version 3.0.9 (Closes: #1019425) + * Remove patches merged upstream and refresh remainders + * Remove unused override: source/maintainer-manual-page + * Remove unused "Breaks: ${dkms:Breaks}" from d/control + * Fix bash term in dkms_common.postinst + + -- Aron Xu Tue, 13 Dec 2022 18:01:38 +0800 + +dkms (3.0.8-3) unstable; urgency=high + + * Revert back to 3.0.8-1 behavior to prevent breakages for sid users + (Closes: #1025214, #1025171) + + -- Aron Xu Fri, 02 Dec 2022 19:49:16 +0800 + +dkms (3.0.8-2) unstable; urgency=medium + + * export-CC, exact-cc: Merge and improve the two patches. Ensure that + compiler is set and exported as early in the prepartion stage as + possible, is not subsequently unset (already unset at the start of the + dkms script), and also export MAKEFLAGS to ensure that environment CC + variable is used by kernel's Makefile. Fixes LP: #1997841 + * Drop dangling unapplied patch from git. + + -- Dimitri John Ledkov Thu, 24 Nov 2022 14:59:45 +0000 + +dkms (3.0.8-1) unstable; urgency=medium + + [ Andreas Beckmann ] + * Update watch file. + * Make messages more consistent. + + [ Gianfranco Costamagna ] + * New upstream version 3.0.7 (Closes: #1019330, #1021966) + * New upstream version 3.0.8 + * Drop upstream patches: + - 2b76d4aa29e65ae4ed8e89685c4e729f1276c5fc + - 3ca52f8769bdf7ebdc83735355fff7c5c0664152 + - 7f3c4b03c506e40f0a5ce9315a8ade88b108ce0f + - 8d60956f6dcda0679066954215eb8be4045413b4 + - 985bfd584f0e87bc726865bfdc17887d4713c854 + * Refresh patches + + -- Gianfranco Costamagna Fri, 18 Nov 2022 22:34:50 +0100 + +dkms (3.0.6-4) unstable; urgency=medium + + [ Dimitri John Ledkov ] + * Fix dkms signing regressions with cherry-picks from 3.0.7 upstream + git. LP: #1991725 + - Reinstate enroll call, as it causes dpkg-trigger action during dpkg + transaction to enroll newly created key, if it wasn't enrolled yet. + + -- Gianfranco Costamagna Thu, 20 Oct 2022 21:04:14 +0200 + +dkms (3.0.6-3) unstable; urgency=medium + + * Export exact CC compiler earlier, before pre_build script is run. Some + dkms modules already perform compilation in pre_build script, and thus + need correct CC variable earlier. LP: #1991664 + + -- Dimitri John Ledkov Tue, 04 Oct 2022 15:22:46 +0100 + +dkms (3.0.6-2) unstable; urgency=medium + + * debian/patches/7f3c4b03c506e40f0a5ce9315a8ade88b108ce0f.patch + - Apply upstream patch suggested by Marinelli Giorgio, to fix an issue due + to an extra $ character. + * debian/patches/49d647b6476d605feb10548e33fc3807415ec724.patch + - Apply another upstream hotfix. + + -- Gianfranco Costamagna Wed, 07 Sep 2022 12:27:13 +0200 + +dkms (3.0.6-1) unstable; urgency=medium + + [ Andreas Beckmann ] + * dkms-autopkgtest: Print a summary for all tested kernels. + * Update Lintian overrides. + + [ Dimitri John Ledkov ] + * Use exact compiler for dkms as used to build the kernel, when possible. + * Fix dkms-autopkgtest when a given dkms package is built into the kernel + already of the same version. (i.e. zfs-linux on Ubuntu). + + [ Gianfranco Costamagna ] + * New upstream version 3.0.4 (Closes: #665774) + * New upstream version 3.0.6 + * Refresh patches for new release + + -- Gianfranco Costamagna Wed, 07 Sep 2022 10:11:13 +0200 + +dkms (3.0.3-4) unstable; urgency=medium + + * Make deprecation warnings less noisy and more informative. + (Closes: #1012043) + * Add new feature BUILD_EXCLUSIVE_CONFIG="CONFIG_FOO !CONFIG_BAR". + * dh_dkms: Bump generated dependency if BUILD_EXCLUSIVE_CONFIG is used. + * Upload to unstable. + + -- Andreas Beckmann Tue, 14 Jun 2022 09:28:22 +0200 + +dkms (3.0.3-3) experimental; urgency=medium + + * dkms-autopkgtest: Try not to fail if linux-doc is not installed. + * Set 'our $VERSION' in dh_dkms to show it along autoscripts. + * Move dh-dkms into a separate package. (Closes: #966601) + * Regenerate dh_dkms(1). + * Clean up obsolete conffiles from /etc/dkms/template*/*. + (Closes: #1012285, #1009148) + * Upload to experimental. + + -- Andreas Beckmann Thu, 02 Jun 2022 23:49:20 +0200 + +dkms (3.0.3-2) unstable; urgency=medium + + [ Andreas Beckmann ] + * dkms-autopkgtest: Only install linux-headers-* packages matching the + source version of linux-doc (a dependency generated by autodep8 for + autopkgtest-pkg-dkms). Mixing different versions may fail if multiple + distros (e.g. testing and unstable) are enabled and pinning is used. + (Closes: #1010883) + * Provide versioned virtual package dh-dkms. + * Drop maintainer script code handling upgrades from versions predating + squeeze/trusty. + * Properly clean up ancient /etc/bash_completion.d/dkms. + * Clean up ancient /etc/dkms/kernel_install.d_dkms. (Closes: #996812) + * Add debian/upstream/metadata. + * Bump Standards-Version to 4.6.1, no changes needed. + * Add myself to Uploaders. + + [ Debian Janitor ] + * Remove constraints unnecessary since buster. + - dkms: Drop versioned constraint on coreutils in Depends. + + -- Andreas Beckmann Fri, 27 May 2022 16:12:46 +0200 + +dkms (3.0.3-1) unstable; urgency=low + + * New upstream version 2.8.8 (Closes: #650331, #763534) + * New upstream version 3.0.3 (Closes: #996104, #1005812, #996648) + * Drop examples removed upstream + * Drop patches now part of upstream codebase: + - 149.patch + - do-not-load-modules.patch + * Refresh export-CC patch + + [ Andreas Beckmann ] + * dkms-autopkgtest: If no linux-headers-* packages are installed, install + all available ones before building modules. (Closes: #945594) + + -- Gianfranco Costamagna Thu, 07 Apr 2022 12:08:47 +0200 + +dkms (2.8.7-2) unstable; urgency=medium + + * Drop old conffile moved upstream (Closes: #990138) + + -- Gianfranco Costamagna Mon, 11 Oct 2021 09:16:04 +0200 + +dkms (2.8.7-1) unstable; urgency=medium + + [ Gianfranco Costamagna ] + * New upstream version 2.8.7 + * Refresh patches + * Bump std-version to 4.6.0 + * Remove AUTHORS file, dropped upstream + * override_dh_auto_install to fix double installation and failure in second gzip of manpage + + [ Dimitri John Ledkov ] + * dkms-autopkgtest: only test dkms builds against kernel abi in the ADT + trigger such that results are reported only for the requested kernel + flavour. This is to catch cases when dkms module builds for a + derivative kernel, but not for generic (or any other flavour) that may + be installed on the test system in addition to the requested kernel + flavour. + + -- Gianfranco Costamagna Fri, 08 Oct 2021 10:23:02 +0200 + +dkms (2.8.4-4) unstable; urgency=medium + + * debian/patches/149.patch: + - upstream proposed patch to fix wrong bash interpreter (Closes: #986674) + + -- Gianfranco Costamagna Fri, 09 Apr 2021 14:28:48 +0200 + +dkms (2.8.4-3) unstable; urgency=medium + + [ Gianfranco Costamagna ] + * Team upload. + + [ Andreas Beckmann ] + * Export the CC variable from .kernelvariables in the kernel source to allow + module build systems use the kernel's compiler also outside of Kbuild. + (Closes: #984929) + + -- Andreas Beckmann Wed, 10 Mar 2021 12:11:42 +0100 + +dkms (2.8.4-2) unstable; urgency=medium + + [ Gianfranco Costamagna ] + * Team upload + + [ Andreas Beckmann ] + * Add Provides: dh-sequence-dkms to help reverse-dependencies use it. (Closes: #981395) + + [ Marcelo Henrique Cerri ] + * dkms-autopkgtest: Also select binary packages that depends on dkms for testing (LP: #1915051) + Closes: #982315 + + -- Marcelo Henrique Cerri Thu, 11 Feb 2021 11:56:32 -0300 + +dkms (2.8.4-1) unstable; urgency=medium + + [ Debian Janitor ] + * Fix day-of-week for changelog entry 2.0.17.5-0ubuntu1. + + [ Aron Xu ] + * New upstream version 2.8.4 + * Refresh patch do-not-load-module.patch + + -- Aron Xu Tue, 22 Dec 2020 14:32:22 +0800 + +dkms (2.8.3-4) unstable; urgency=medium + + * Silently source dkms.conf files, to help iptables-netflow work + in autopkgtests (Addresses: #966483) + + -- Gianfranco Costamagna Tue, 11 Aug 2020 12:03:25 +0200 + +dkms (2.8.3-3) unstable; urgency=medium + + * dynamically generate breaks for shim-signed in Ubuntu and Derivates + + -- Gianfranco Costamagna Wed, 29 Jul 2020 10:30:50 +0200 + +dkms (2.8.3-2) unstable; urgency=medium + + * tweak dkms-autopkgtest script to avoid cases where some files called "dkms.conf" + are stored somewhere else (e.g. /etc). + This fixes e.g. + dpkg -L broadcom-sta-dkms |grep "dkms.conf" + /etc/modprobe.d/broadcom-sta-dkms.conf + /usr/src/broadcom-sta-6.30.223.271/dkms.conf + and others (8168-dkms) (Closes: #959910) + * Make copyright file machine readable and add myself to it + * Add R^3: no + + -- Gianfranco Costamagna Wed, 29 Jul 2020 09:28:05 +0200 + +dkms (2.8.3-1) unstable; urgency=medium + + * New upstream version 2.8.3 + * Drop patches: + - 130, + - no-autoinstall-flag-file, + - 885f8275aa65fb11be1e17bc28a0b0ea734dc585: upstream + * Refresh patch do-not-load-modules + + -- Gianfranco Costamagna Tue, 28 Jul 2020 18:44:36 +0200 + +dkms (2.8.2-2) unstable; urgency=medium + + [ Gianfranco Costamagna ] + * Tweak previous patch to do bash string comparison (Closes: #956245) + thanks Thorsten Glaser for the reminder! + + [ Andreas Beckmann ] + * use /etc/dkms/no-autoinstall as flag file to disable autoinstall + * improve dkms-autopkgtest (Closes: #959910) + + [ Seth Forshee ] + * Cherry-pick upstream fix for dkms failure with signed kernel modules + - debian/patches/885f8275aa65fb11be1e17bc28a0b0ea734dc585.patch: + + -- Gianfranco Costamagna Wed, 17 Jun 2020 10:00:12 +0200 + +dkms (2.8.2-1) unstable; urgency=medium + + * New upstream version 2.8.2 (Closes: #585771) + * Drop verboselog patch: upstreamed + * Refresh do-not-load-modules patch + * Bump std-version to 4.5.0 + * Bump debhelper compat level to 13 + * Bump watch file version to 4 + * Add upstream proposed patch to close Debian bug 956245. (Closes: #956245) + + -- Gianfranco Costamagna Mon, 15 Jun 2020 11:21:01 +0200 + +dkms (2.8.1-5) unstable; urgency=medium + + * Team upload. + * Patch dkms to not load random modules during dkms install + Closes: #931017 + * Replace maintainer email address with dkms@packages.debian.org + * Drop Depends on lsb-release, we have Pre-Depends already. + + -- Raphaël Hertzog Wed, 22 Jan 2020 12:42:37 +0100 + +dkms (2.8.1-4) unstable; urgency=medium + + [ Gianfranco Costamagna ] + * Team upload + * Import Ubuntu patch + + [ Dimitri John Ledkov ] + * Some dkms modules are included by the Ubuntu kernel and not overriden + by default. That's ok, as long as they are installed. Do not fail + autopkgtest in this case. See virtualbox dkms test. + + -- Gianfranco Costamagna Sun, 22 Dec 2019 10:00:44 +0100 + +dkms (2.8.1-3) unstable; urgency=medium + + * Suggest e2fsprogs (Closes: #887263) + * Add some verbosity on log messages (Closes: #840620) + * Depend on lsb-release (Closes: #896814) + * Do not depend anymore on python3-apport, removed even from experimental + (Closes: #881709) + * Add back the pre-depends on lsb-release (Closes: #826928) + + -- Gianfranco Costamagna Fri, 08 Nov 2019 12:39:25 +0100 + +dkms (2.8.1-2) unstable; urgency=medium + + * QA upload + * Fix build by dropping patch revert + + -- Gianfranco Costamagna Thu, 07 Nov 2019 23:27:29 +0100 + +dkms (2.8.1-1) unstable; urgency=medium + + * New upstream version 2.8.1 + * Drop all the patches, all of them are now upstream + - 0001-688904.patch + - 0002-757758.patch + - 0003-Do-not-ignore-kernelsourcedir.patch + - 0004-mkbmdeb-support-for-lean-binary-package-with-only-th.patch + - 0008-Don-t-assume-boot-config-exists-test-first.patch + - 0009-Add-support-for-UEFI-Secure-Boot-validation-toggling.patch + - 0015-change-arch-in-mkdeb-template.patch + - 0017-fix-OBSOLETE_BY-in-DKMS.CONF-Closes-81.patch + - lp-1827697.patch + - 0008-man-fix-manpage-has-errors-from-man-lintina-warning.patch + - 0019-add-force-version-override-and-dkms-_version-overrid.patch + - 0020-versioned-provides.patch + * Bump std-version to 4.4.1, no changes required + + -- Gianfranco Costamagna Thu, 07 Nov 2019 17:49:54 +0100 + +dkms (2.7.1-5) unstable; urgency=medium + + [ Aron Xu ] + * Allow any c-compiler to satisfy the required Depends (Closes: #620754) + * Only test "-dkms" packages in dkms-autopkgtest (Closes: #903588) + + [ Alex Tu ] + * revert 0019-fix-OBSOLETE_BY-be-blocked-by-force-Closes-89.patch + * cherry-pick from upstream 9bbef17 for issue #89 #42 + - 0019-add-force-version-override-and-dkms-_version-overrid.patch + (LP: #1838921) + + [ Martijn Grendelman ] + * Add versioned provides to mkbmdeb (Closes: #943484) + + [ Gianfranco Costamagna ] + * QA upload. + * Add Ubuntu patch, now upstream + * Drop old patch + * Add patch from Martijn Grendelman to add versioned provides to dkms + + -- Gianfranco Costamagna Sat, 26 Oct 2019 12:47:11 +0200 + +dkms (2.7.1-4) unstable; urgency=medium + + * QA upload. + * Cherry-pick two other Ubuntu/Upstream patches: + - 0017-fix-OBSOLETE_BY-in-DKMS.CONF-Closes-81.patch + - lp-1827697.patch + + -- Gianfranco Costamagna Fri, 06 Sep 2019 10:17:59 +0200 + +dkms (2.7.1-3) unstable; urgency=medium + + * QA upload + + [ You-Sheng Yang ] + * Fix lintian warnings related to manpages typos + * Add debian/ci yaml file + * Fix lintian warning about python shebang + + [ Dimitri John Ledkov] + * Try to improve dkms-autopkgtest when testing incompatible dkms + modules. Ensure package is purged first, as make.log is not + regenerated upon second installation. Also, before checking the + make.log check if the package in question is a dkms.conf one, as + otherwise empty tarball is created. This should now unbreak + testability of multi-binary packages, which have build-excluded dkms + modules. + + [ Timo Aaltonen ] + * dkms: cherry-pick from upstream a35d981 for issue #89 + 0019-fix-OBSOLETE_BY-be-blocked-by-force-Closes-89.patch (LP: #1838921) + + -- Gianfranco Costamagna Fri, 06 Sep 2019 10:08:19 +0200 + +dkms (2.7.1-2) unstable; urgency=medium + + * QA upload + [ Seth Forshee ] + * debian/dkms-autopkgtest: skip testing when package is disabled from + building by a BUILD_EXCLUSIVE directive. + + -- Gianfranco Costamagna Mon, 29 Jul 2019 15:36:18 +0200 + +dkms (2.7.1-1) unstable; urgency=medium + + * QA upload + * Upload to unstable + + -- Gianfranco Costamagna Tue, 02 Jul 2019 09:41:26 +0200 + +dkms (2.7.1-1~exp2) experimental; urgency=medium + + * QA upload + * Drop trailing newlines + * Use DEB_VERSION_UPSTREAM to guess upstream revision + * Drop old get-orig-source target + * Bump compat level to 12 + * Bump std-version to 4.3.0, no changes required + * Apply UEFI patch from Ubuntu, + it is not applied in Debian (removed in debian/rules conditional statement) + + -- Gianfranco Costamagna Tue, 25 Jun 2019 11:09:04 +0200 + +dkms (2.7.1-1~exp1) experimental; urgency=medium + + * New upstream release + * QA upload + * Drop upstream patches: + - {63,6ef1a48eda99ec0d728302830483fd0137174d17,bash-completions}.patch + + -- Gianfranco Costamagna Tue, 25 Jun 2019 10:45:13 +0200 + +dkms (2.6.1-4) unstable; urgency=medium + + * Remove shim-signed break + + -- Gianfranco Costamagna Tue, 15 Jan 2019 13:27:05 +0100 + +dkms (2.6.1-3) unstable; urgency=medium + + * debian/patches/63.patch: + - cherry-pick upstream fix when default shell is zsh (Closes: #910526) + * Install bash completion script in usr/share new location (Closes: #912849) + + -- Gianfranco Costamagna Wed, 02 Jan 2019 18:06:43 +0100 + +dkms (2.6.1-2) unstable; urgency=medium + + * Team upload (salsa shared repo) + * Add dpkg-dev dependency, needed for dpkg-architecture calls (Closes: #884658) + * cherry-pick shim-signed break relationship from Ubuntu + - (will be needed if Debian shim-signed is updated) + * debian/patches/6ef1a48eda99ec0d728302830483fd0137174d17.patch: + cherry-pick upstream fix for kernel version parsing + * debian/patches/0015-change-arch-in-mkdeb-template.patch: cherry-pick + Ubuntu applied fix for mkbmdeb (Closes: #832558) + + -- Gianfranco Costamagna Wed, 02 Jan 2019 16:15:32 +0100 + +dkms (2.6.1-1) unstable; urgency=medium + + [ Petter Reinholdtsen ] + * Remove Giuseppe Iuculano as uploader on request from the MIA team. + (Closes: #866839) + + [ Aron Xu ] + * New upstream version 2.4.0 (Closes: #848608, #904869) + * New upstream version 2.6.1 + * Drop patches not used + * Use @tracker.d.o address + * Use salsa.d.o Git URLs + * Set std-ver to 4.1.4 + + -- Aron Xu Sun, 05 Aug 2018 01:52:35 +0800 + +dkms (2.3-3) unstable; urgency=medium + + * Upstream post-2.3 cherry-picks for apport (LP: #1661843) + + -- Aron Xu Tue, 07 Feb 2017 23:27:25 +0800 + +dkms (2.3-2) unstable; urgency=medium + + [ Adam Cornad ] + * Don't assume /boot/config-* exists, test first. + + [ Aron Xu ] + * d/control: update VCS-*, std-ver: 3.9.8 + * d/rules: add shim support for Ubuntu derivatives + + -- Aron Xu Wed, 28 Dec 2016 19:57:32 +0800 + +dkms (2.3-1) unstable; urgency=medium + + [ Adel Belhouane ] + * Update mkbmdeb behavior (Closes: #830670) + + [ Aron Xu ] + * Downgrade menu from Recommends to Suggests (Closes: #744054) + * Imported Upstream version 2.3 + * Upstream post-release cherry-picks + * d/compat: 7 -> 9 + + [ D. Jared Dominguez ] + * update URLs + + -- Aron Xu Wed, 26 Oct 2016 14:26:44 +0800 + +dkms (2.2.1.0+git20160527-1) unstable; urgency=medium + + * Rebase to upstream commit eb402f72b9a71ccdd0d3610db8570195eb048f1f + * Update patches + + -- Aron Xu Tue, 23 Aug 2016 14:24:38 +0800 + +dkms (2.2.0.3-5) unstable; urgency=medium + + [ Aron Xu ] + * Remove obsolete virtual package 'linux-image' from Recommends (Closes: #724566) + * Do not ignore --kernelsourcedir (Closes: #653176) + * Update upstream link to github + * Use gbp-pq to manage patches + + [ Daniel Kahn Gillmor ] + * Make dh_dkms name and version parsing more proper (Closes: #829123) + + [ Dirk Griesbach ] + * Port apport hook to python3 and add python3-apport to Suggests (Closes: #707008) + + [ Thijs Kinkhorst ] + * mkbmdeb: support for lean binary package with only the built modules (Closes: #554843) + + -- Aron Xu Wed, 06 Jul 2016 05:51:37 +0800 + +dkms (2.2.0.3-4) unstable; urgency=medium + + * Acknowledge 2.2.0.3-2.1 NMU. (Closes: #822351) + * Make sure apport code write files in binary mode. (Closes: #684377) + * Build modules using all CPU cores. (Closes: #663114) + * Improve message printed when kernel headers are missing. (Closes: #690866) + * Add gbp.conf to ensure pristine-tar feature is used. + + -- Petter Reinholdtsen Sun, 01 May 2016 15:27:22 +0200 + +dkms (2.2.0.3-3) unstable; urgency=medium + + [ Petter Reinholdtsen ] + * Correct indentation of mkdeb in dkms(8) manual page. (Closes: #690865) + * Drop the unneeded quilt build dependency. (Closes: #728550) + * Added myself and Aron Xu as uploaders. + + [ Aron Xu ] + * Added patches from Darik Horn and Ubuntu: + - Add support for BUILD_DEPENDS (Closes: #729015) + - Correct handling of POST_BUILD (Closes: #704989) + + -- Petter Reinholdtsen Wed, 27 Apr 2016 10:20:15 +0200 + +dkms (2.2.0.3-2.1) unstable; urgency=medium + + * Non-maintainer upload. + * Add dkms-autopkgtest script from Ubuntu (Closes: #769095). + * Updated Standards-Version from 3.9.2 to 3.9.7. + + -- Petter Reinholdtsen Sat, 23 Apr 2016 19:55:25 +0200 + +dkms (2.2.0.3-2) unstable; urgency=low + + * [49fccbc] Depends on kmod | kldutils (Closes: #761728) + * [9064776] Fixed "sed without options" issue. + Thanks to Cristian Ionescu-Idbohrn (Closes: #757758, #762324, #763929) + * [1fa1a31] fixes have_one_kernel for non-zero return code. + Thanks to Mario Limonciello (Closes: #659672, #735181) + * [ba6140d] Added Multi-Arch: foreign. + Thanks to Ben Hutchings (Closes: #693634) + + -- Giuseppe Iuculano Sat, 04 Oct 2014 19:51:23 +0200 + +dkms (2.2.0.3-1.3) unstable; urgency=medium + + * Non-maintainer upload. + * Replace dependency on transitional module-init-tools package with kmod. + (Closes: #733695) + + -- Michael Biebl Thu, 21 Aug 2014 05:43:30 +0200 + +dkms (2.2.0.3-1.2) unstable; urgency=low + + * Non-maintainer upload. + * Don't fail if kernel major version number is not single-digit (like on + kfreebsd-10) (Closes: #688904) + + -- Christoph Egger Fri, 05 Oct 2012 20:52:34 -0700 + +dkms (2.2.0.3-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Do not fail if /lib/modules does not exist. (Closes: #666023) + * Remove the directory where the module was installed. (Closes: #657145) + + -- Andreas Beckmann Thu, 19 Jul 2012 22:20:45 +0200 + +dkms (2.2.0.3-1) unstable; urgency=low + + * [e24a52f] Imported Upstream version 2.2.0.3 + * [09da5c7] bump standards version + * [713ebfd] add missing debhelper token to preinst + * [8970435] add versioned build depends for debhelper + * [db4238c] switch to dh7 + * [13a34c7] update lintian override for DKMS apport rule + + -- Mario Limonciello Wed, 07 Dec 2011 13:21:33 -0600 + +dkms (2.2.0.2-1) unstable; urgency=low + + [ Mario Limonciello ] + * [c5846b6] Imported Upstream version 2.2.0.2 + - Doesn't leave files in /tmp (Closes: #633802) + - Autoinstall works on multiple kernels (Closes: #634979) (LP: #812979) + - PRE_BUILD command working directory fix. (LP: #812088) + * [83b5f6e] Drop kfreebsd.patch. Merged upstream + + [ Giuseppe Iuculano ] + * [a80ecc5] Updated VCS control field + + -- Mario Limonciello Fri, 22 Jul 2011 13:36:32 -0500 + +dkms (2.2.0.1-3) unstable; urgency=low + + * [c9f7ed0] Fixed kFreeBSD subdirs check + * [57c5c9d] Removed improved-error-messages.patch + * [370ff7b] Remove debian-lsb.patch. Now Ubuntu can sync from Debian + + -- Giuseppe Iuculano Fri, 15 Jul 2011 16:44:11 +0200 + +dkms (2.2.0.1-2) unstable; urgency=low + + * [6b2d392] Run depmod command only in Linux. + Thanks to Robert Millan (Closes: #631657) + + -- Giuseppe Iuculano Fri, 15 Jul 2011 16:00:05 +0200 + +dkms (2.2.0.1-1) unstable; urgency=low + + * [18353fe] Imported Upstream version 2.2.0.1 + * [2a56b4e] Refreshed and removed patches merged upstream. + * [c552af9] Use linux-headers-686-pae and linux-headers-amd64 in Recommends + (Closes: #628873) + + -- Giuseppe Iuculano Fri, 15 Jul 2011 12:56:08 +0200 + +dkms (2.1.1.2-6) unstable; urgency=low + + [ Michael Gilbert ] + * [430b97f] Fix logging for compound make statements (closes: #577972) + - Thanks to Anders Kaseorg! + * [935ae61] Check for debhelper when using 'dkms mkdeb' (closes: #592863) + * [e739e8c] fixup logging patch + + [ Giuseppe Iuculano ] + * [46cc01a] Merge from Ubuntu: Before using the current kernel we need to make + sure that this kernel doesn't belong to the host of a chroot and we should + also be more careful when adding kernels to the candidates list + (LP: #602408). - Thanks to Alberto Milone + * [313d661] Merge from Ubuntu: depend on patch instead of recommending it, if + its missing the "patches" feature of dkms will no longer work and that will + cause build failures (LP: #653899) Thanks to Michael Vogt + + -- Giuseppe Iuculano Sat, 12 Mar 2011 11:07:47 +0100 + +dkms (2.1.1.2-5) unstable; urgency=low + + * [bd3b35d] Set DISTRIB_ID=Debian in case lsb_release is missing + * [2465627] Removed lsb-release from Pre-Depends + * [1732998] Do not use lsb_release to determine the distribution, add + a static assignment (Closes: #547353) + * [d00ff09] Do not return error if /etc/dkms/framework.conf is missing + (LP: #613407) - thanks to pasadrul + * [618efc8] Copy from the right directory with mkdsc and copy + source.changes when building with mkdsc (LP: #611652) - thanks to + David Henningsson + * [f23d6b0] Bump to standards-version 3.9.1, no changes needed + + -- Giuseppe Iuculano Wed, 04 Aug 2010 16:03:16 +0200 + +dkms (2.1.1.2-4) unstable; urgency=low + + * [f649aa1] Added coreutils >= 7.4 in Depends (Closes: #586356) + * [01c7c14] Remove old modules when removing a kernel (Closes: #586724) + - thanks to Jan Muszynski + * [b6182ba] Bump to Standards-Version 3.9.0, no changes needed + * [eaeddb3] dkms_common.postinst: handle dkms build error gracefully + by skipping build for the non matching kernels. (Closes: #588585) - + thanks to Jan-Marek Glogowski + * [73533c2] Promote lsb-release to Pre-Depends (Closes: #589308) + + -- Giuseppe Iuculano Sat, 17 Jul 2010 13:23:43 +0200 + +dkms (2.1.1.2-3) unstable; urgency=low + + [ Michael Gilbert ] + * Update to source format 3 (quilt) for better patch management/handling. + * Improve the status info displayed during the kernel postinst, and + provide informative/useful messages when things go awry. + * Fix bashism in dkms_common.postinst (closes: #581079). + * Document odd behavior of MAKE[#] (closes: #553625). + * Document package naming convention (closes: #571753). + * Use system TMPDIR setting in all scripts (closes: #581568). + + [ Giuseppe Iuculano ] + * [208b229] Added a lintian override for python-script-but-no-python- + dep, dkms.py is an apport hook + + -- Giuseppe Iuculano Fri, 04 Jun 2010 13:53:23 +0200 + +dkms (2.1.1.2-2) unstable; urgency=low + + * [67fb76a] Do not remove /etc/header_postinst.d/dkms in preinst. Hopefully + now Ubuntu can sync dkms from Debian + + -- Giuseppe Iuculano Tue, 23 Feb 2010 10:02:40 +0100 + +dkms (2.1.1.2-1) unstable; urgency=low + + [ David Paleino ] + * [ff95487] dh_dkms: continue the loop if there's nothing to do on the + current package. (Closes: #568580) + * [73dd83f] dh_dkms: specify that version mangling only happens if + PACKAGE_VERSION=#MODULE_VERSION# in dkms.conf + * [cdda61c] debian/scripts/postinst-dkms: really make sure the error + is thrown when nothing is found. (Closes: #568591) + + [ Frédéric Brière ] + * [2930aa9] Insert the package version directly into postinst at + creation time + * [9ccbdc7] Skip prerm removal if there are no modules for that + version + + [ Giuseppe Iuculano ] + * [898ab8c] Imported Upstream version 2.1.1.2 + * [4fff928] Removed 01_shell_error.patch, merged in upstream + * [c5566c7] Removed 02_header_postinst.patch to avoid delta with + Ubuntu. Hopefully /etc/kernel/header_postinst.d directory will be + supported in Debian soon + * [e8aeb49] Add a comment in debian/patches/series and fix quilt- + build-dep-but-no-series-file lintian warning + * [bc89600] Fixed a minor spelling error in dh_dkms man page + + -- Giuseppe Iuculano Mon, 22 Feb 2010 15:34:12 +0100 + +dkms (2.1.1.1-2) unstable; urgency=low + + [ David Paleino ] + * [d56bce9] Add -V flag to dh_dkms, thanks to Frédéric Brière + for the patch. (Closes: #568589) + * [dc7e358] dh_dkms: don't return an error if there's nothing to do + (Closes: #568580) + * [ecfc1c7] debian/scripts/postinst-dkms: don't exit on success, only + do it on errors (Closes: #568591) + + [ Giuseppe Iuculano ] + * [adb3042] Really remove obsolete conffiles + * [3fe380c] Do not install /etc/header_postinst.d/dkms, at this moment + Debian kernel doesn't support it + * [ad6a1f2] Bump Standards-Version (no changes). + + -- Giuseppe Iuculano Sun, 14 Feb 2010 12:02:42 +0100 + +dkms (2.1.1.1-1) unstable; urgency=low + + [ David Paleino ] + * [19ac85e] Added DKMS debhelper script (Closes: #553665) + + [ Giuseppe Iuculano ] + * [9d66264] Imported Upstream version 2.1.1.1 + * [0735c11] Removed 01_upstart.patch + * [ec26539] Merge from Ubuntu: Remove the init script and Upstart job. + There is no reason that DKMS needs to run on boot; you can build + modules for non-running kernels just fine at installation time. + * [48ff9a4] Correct a minor shell error in dkms_autoinstaller + * [5c76a45] Fixed a minor spelling error in dh_dkms man page + * [c611461] debian/preinst: Use set -e + + -- Giuseppe Iuculano Wed, 27 Jan 2010 10:02:27 +0100 + +dkms (2.1.1.0-2) unstable; urgency=low + + * [8510207] Do not install upstart job file + + -- Giuseppe Iuculano Tue, 15 Dec 2009 08:57:24 +0100 + +dkms (2.1.1.0-1) unstable; urgency=low + + * [3122b6c] Imported Upstream version 2.1.1.0 + * [ac6fb91] Removed patches applied in upstream + * [d40faf7] debian/rules: Use new make install-debian target + * [5d2e1e4] debian/rules: Do not stop /etc/init.d/dkms_autoinstaller + on upgrade + + -- Giuseppe Iuculano Mon, 14 Dec 2009 22:38:54 +0100 + +dkms (2.1.0.1-4) unstable; urgency=low + + * [fdaa289] Use new upstream patch for optimized init. (Closes: #560267) + + -- Giuseppe Iuculano Fri, 11 Dec 2009 09:11:01 +0100 + +dkms (2.1.0.1-3) unstable; urgency=low + + [ David Paleino ] + * [d3f1e76] debian/control: updated my email address + + [ Giuseppe Iuculano ] + * [ad96cbc] Updated vcs control fields + * [40941ad] /etc/init.d/dkms_autoinstaller: + - optimize with a single find call instead of multiple loops with ls. + - port to POSIX sh and drop the /bin/bash from the shebang. + - drop localization of the usage message - this is inconsistent with all + other init scripts on the system. + - use case instead of grep for string matching + - Patch based on work done by Steve Langasek, thanks (LP: #484386) + + -- Giuseppe Iuculano Sun, 06 Dec 2009 18:36:43 +0100 + +dkms (2.1.0.1-2) unstable; urgency=low + + [ David Paleino ] + * [47e453e] debian/patches/02-improve_error_message.patch: improve + error message, and add Debian/Ubuntu specific suggestion. + (Closes: #553600) + + [ Giuseppe Iuculano ] + * [27f707a] Do not build as a nobody user and don't chown the build + directory, no files should be owned by nobody. (Closes: #554168) + + -- Giuseppe Iuculano Tue, 03 Nov 2009 22:52:30 +0100 + +dkms (2.1.0.1-1) unstable; urgency=low + + * [34e006a] debian/patches/02_dkms.8.patch: Fix typos in the man page, + thanks A. Costa (Closes: #534662) + * [7735c89] Imported Upstream version 2.1.0.1 + * [3bdb6c1] Removed all patches, they are now merged in upstream. + Thanks to Mario Limonciello. + * [dbb778c] debian/rules: template-dkms-mkdeb/debian/postrm was + removed in upstream, do not chmod it + * [09cd9d3] Updated to standards version 3.8.3 (No changes needed) + * [96663f0] Updated my email address and removed DM-Upload-Allowed + control field. Thanks to Ben Hutchings for his previous sponsorship + * [4848db2] debian/patches/01_init.patch: Added dkms_autoinstaller in + Provides and fixed init.d-script-does-not-provide-itself lintian + warning + + -- Giuseppe Iuculano Sat, 03 Oct 2009 11:12:04 +0200 + +dkms (2.0.22.0-1) unstable; urgency=low + + * [023618e] Imported Upstream version 2.0.22.0 + * [d6e0b15] Deleted patches merged in upstream: 01-fix_manpage.patch + 02-fix_distribution.patch 04-use_su-to-root.patch 05- + do_not_check_admin_group.patch 06-fakeroot.patch 07-exit-if-build- + fails.patch 09-lilo_detection.patch 10-lsb.patch 11-bash- + completion.patch 12-use_invoke-rc.d.patch 13-template.patch + 14_new_module-init-tools.patch 08-support_kernel-img.conf.patch + * [c5b7822] debian/patches/15_modprobe.patch: do not create an empty + /etc/modprobe.d/package_name.conf. It is opened and parsed every + time modprobe is run (and it is run very often at boot time). Create + it only if necessary. + * [3731c00] debian/patches/08-support_kernel-img.conf.patch: Use + update-initramfs, it is the default in Debian/Ubuntu and it also computes + and stores some checksums. (Closes: #529038) + * [f4a197f] debian/patches/16_old_module.patch: Do not move away the old + module, by default dkms install the new one in + /lib/modules//updates/dkms (Closes: #529059) + * [db7ffe7] debian/patches/01_kernel_postinst.patch: shut up "which" in the + the kernel kernel_postinst.d script, only the exit code is needed. + + -- Giuseppe Iuculano Fri, 05 Jun 2009 22:00:35 +0200 + +dkms (2.0.21.1-1) unstable; urgency=low + + * [bcda131] Imported Upstream version 2.0.21.1 + * [487ad26] debian/patches/13-template.patch: + Updated template-dkms-mkdeb Changes: + - Bump to debhelper 7 compatibility levels + - Updated to standards version 3.8.1 + - Use Dynamic Kernel Modules Support Team as maintainer field + - Remove bash and add ${misc:Depends} in Depends + - Use dh_prep instead of dh_clean -k + * [c75e860] Updated to standards version 3.8.1 (No changes needed) + * [0d14f3e] Update dkms to check for /etc/modprobe.d/dkms.conf, + dh_installmodules now gives files in /etc/modprobe.d a .conf syntax, + as required by new module-init-tools. + * [ceff6d3] Move to kernel section as by ftpmasters override + * [aa84c76] debian/control: Fix VCS-Browser field + * [6cd45ec] debian/patches/15_modprobe.patch: Do not install + /etc/modprobe.d/dkms, it only contains comments and is opened and + parsed every time modprobe is run (and it is run very often at boot + time). Use instead (and create if necessary) + /etc/modprobe.d/package_name.conf. (Closes: #525379) + * [171907c] debian/postinst: if /etc/modprobe.d/dkms is modified, put + its content in /etc/modprobe.d/dkms.conf and remove it. + * [426868b] update debian/copyright to add Giuseppe Iuculano to + copyright on debian/* + * [1ffb2cd] Removed 03-use-new-header_postinst.d_directory.patch, + /etc/kernel/header_postinst.d is used only by kernel-package. dkms + must use /etc/kernel/postinst.d/ directory. + * [eff2f3e] debian/control: demoted linux-headers and linux-image in + Recommends, removed kernel-package and build-essential from Depends, + and added only gcc and make. + * [508c115] debian/postinst: Remove also + /etc/kernel/header_postinst.d/dkms and do an init script remove to + un-do the "bad" links created by previous version + + [ Mario Limonciello ] + * [848d7f9] update debian/copyright to add Mario Limonciello to + copyright on debian/* + * [791fc37] Update debian/rules to only run DKMS on the startup + targets. This change was proposed from Ubuntu some time back as DKMS + doesn't do anything on shutdown. + + + -- Giuseppe Iuculano Mon, 04 May 2009 09:55:18 +0200 + +dkms (2.0.21.0-1) unstable; urgency=low + + * [0c2c36b] New Upstream version 2.0.21.0 + * First Debian release (Closes: #481590) + * [6723982] debian/patches/: Refreshed patches, and deleted + 03-remove_dkms_lib_directory_if_empty.patch (now it is in upstream) + * [592acec] debian/patches/04-use_su-to-root.patch: Do not test for $DISPLAY + as su-to-root does not require an X display + * [22d2ce2] debian/patches/09-lilo_detection.patch: grep for + do_bootloader instead of postinst_hook + * [b910eb3] debian/patches/03-use-new- + header_postinst.d_directory.patch: Use new + /etc/kernel/header_postinst.d directory introduced in kernel-package + 11.017 + * [f59cc66] debian/control: Add kernel-package (>= 11.017) in Depends + * [6ebb0c4] Removed debian/postinst and debian/prerm + + -- Giuseppe Iuculano Mon, 16 Feb 2009 11:06:58 +0100 + +dkms (2.0.20.4-1) unstable; urgency=low + + [ David Paleino ] + * debian/control: + - using new Homepage field in source stanza + - setting team as Maintainer + - adding myself and Mario Limonciello as Uploaders + - removed awk and bash dependencies: they are "essential" (de facto) + packages (LP: #314774) + - DM-Upload-Allowed set + - added menu|sudo to Recommends + * debian/copyright: + - updated to machine-readable format + - clarified license for debian/HOWTO.Debian + * debian/compat bumped to 7 + * debian/docs: + - sample.{conf,spec} moved to debian/examples + * debian/rules updated + * debian/patches/01-fix_manpage.patch added, to fix hyphen-used-as-minus-sign + lintian warning + * debian/postinst added + * debian/HOWTO.Debian from Ubuntu package added + * debian/modprobe added + * debian/prerm: + - use sed instead of tricky grep hack + - always do the default thing + * added get-svn-source to debian/rules + * debian/patches/08-use_update-initramfs.patch: updated to parse + /etc/kernel-img.conf + * debian/patches/11-bash-completion.patch: + - better usage of bash builtins + - _filename_parts(): fix wrong behaviour when /usr/src/ is a symlink + - added patch description + + [ Giuseppe Iuculano ] + * Added myself as Uploader + * Standards-Version bumped to 3.8.0 + - Add debian/README.source to document quilt usage + * debian/prerm: quiet grep, do not write anything to standard output. + * debian/rules: + - remove some pointless blank lines + - fix dh-clean-k-is-deprecated lintian warning, use dh_prep instead of + dh_clean -k + * debian/patches/03-remove_dkms_lib_directory_if_empty.patch: Merge from + Ubuntu, ensure that the /lib/modules//updates/dkms directory is + removed if it is empty after a removal. This allows the modules directory + to be removed as it becomes empty. + * debian/patches/04-use_su-to-root.patch: Use su-to-root if available + * debian/patches/05-do_not_check_admin_group.patch: + - Do not check for admin group, this isn't a Debian standard group. + - added a g modifier to replace all underscores in function make_debian() + * debian/patches/06-fakeroot.patch: Do not use fakeroot for source- + only build, and use -rfakeroot for binary build + * debian/patches/07-exit-if-build-fails.patch: Fix exit when build + fails + * debian/patches/08-support_kernel-img.conf.patch: Use update-initramfs + if ramdisk value in /etc/kernel-img.conf is missing + * debian/patches/09-lilo_detection.patch: check /etc/kernel-img.conf + to find if user is using grub + * debian/patches/10-lsb.patch: + - /etc/lsb-release is not present in Debian, so run run lsb_release + - Added Debian as known distro in override_dest_module_location() + * debian/control: + - Added lsb-release in Recommends + - Updated VCS control field + - Added build-essential in Depends (LP: #304014), + Removed ${shlibs:Depends} from Depends and removed make, dpkg-dev and + gcc from Recommends + * debian/patches/11-bash-completion.patch: Improve bash-completion + support (Origin Mandriva) + * debian/patches/01-fix_manpage.patch: fix wrong path into man page + (LP: #292289) + * debian/patches/12-use_invoke-rc.d.patch: Use invoke-rc.d in + kernel_postinst.d_dkms and fix script-calls-init-script-directly lintian + warning + + -- Giuseppe Iuculano Thu, 08 Jan 2009 15:01:39 +0100 + +dkms (2.0.19-0ubuntu2) hardy; urgency=low + + * Depend on awk instead of gawk. All variants of awk provide the + currently required functionality. + + -- Mario Limonciello Wed, 26 Mar 2008 16:51:33 -0500 + +dkms (2.0.19-0ubuntu1) hardy; urgency=low + + * New upstream version. + - Fixes appending date to debian/changelog in mkdeb. + + -- Mario Limonciello Wed, 26 Mar 2008 10:46:52 -0500 + +dkms (2.0.17.6-0ubuntu1) hardy; urgency=low + + [ Matt Domsch ] + * Correct kernel uninstall trigger (LP: #192240) + * Call udevadm trigger if present, fall back to udevtrigger (LP: #192241) + * Fix uninstallation with weak modules (Red Hat BZ#429410) + * debian/control: + - Update standards version to 3.7.3 + - Add Vcs-git repository. + + -- Mario Limonciello Mon, 18 Feb 2008 09:40:18 -0600 + +dkms (2.0.17.4-0ubuntu4) hardy; urgency=low + + * Fix -x call. + + -- Scott James Remnant Fri, 14 Dec 2007 16:52:51 +0000 + +dkms (2.0.17.4-0ubuntu3) hardy; urgency=low + + * dkms: call udevadm instead of udevtrigger + + -- Scott James Remnant Fri, 14 Dec 2007 16:15:13 +0000 + +dkms (2.0.17.5-0ubuntu1) hardy; urgency=low + + * Correct DKMS file install/uninstall problems (LP: #151644) + - call udevtrigger if we install a module for the currently running kernel + - uninstall from /extra before DEST_MODULE_LOCATION + - Run depmod after uninstall + + -- Matt Domsch Wed, 10 Oct 2007 16:50:00 -0500 + +dkms (2.0.17.4-0ubuntu1) gutsy; urgency=low + + * initial debian packaging for Ubuntu (LP: #121676) + + -- Matt Domsch Mon, 17 Sep 2007 09:58:46 -0500 diff --git a/debian/clean b/debian/clean new file mode 100644 index 0000000..bacc8b2 --- /dev/null +++ b/debian/clean @@ -0,0 +1,2 @@ +debian/scripts/dh_dkms +debian/scripts/dh_dkms.1 diff --git a/debian/control b/debian/control index 0bcd8e0..6808393 100644 --- a/debian/control +++ b/debian/control @@ -1,19 +1,87 @@ -Source: upstream-name -Section: admin +Source: dkms +Section: kernel Priority: optional -Maintainer: name -Standards-Version: 4.6.1 +Maintainer: Dynamic Kernel Module System Team +Uploaders: David Paleino , + Petter Reinholdtsen , + Aron Xu , + Mario Limonciello , + Andreas Beckmann , Build-Depends: debhelper-compat (= 13) +Standards-Version: 4.7.0 +Homepage: https://github.com/dell/dkms +Vcs-Git: https://salsa.debian.org/debian/dkms.git +Vcs-Browser: https://salsa.debian.org/debian/dkms Rules-Requires-Root: no +Testsuite: autopkgtest-pkg-dkms -Package: pkgname1 -Architecture: linux-any -# Delete any of these lines if un-used -Depends: ${misc:Depends}, depends -Recommends: high priority optdepends -Conflicts: conflicts -Suggests: low priority optdepends -Breaks: also conflicts!? -Provides: provides -# -Description: pkgdesc +Package: dkms +Architecture: all +Multi-Arch: foreign +Pre-Depends: lsb-release +Depends: ${misc:Depends}, + kmod, + dpkg-dev, + make | build-essential, + patch, +Recommends: + gcc | c-compiler, + fakeroot, + sudo, +Suggests: menu, e2fsprogs +Breaks: +# in buster, not in bullseye + sl-modem-dkms (<< 2.9.11~20110321-16.0), +# in stretch, not in buster + blktap-dkms (<< 2.0.93-0.10.0), +# in jessie, not in stretch + oss4-dkms (<< 4.2-build2020-1~), +# in wheezy, not in jessie + blcr-dkms (<< 0.8.6~b3-1.0), +Provides: + dkms-autopkgtest (= ${binary:Version}), +Description: Dynamic Kernel Module System (DKMS) + DKMS is a framework designed to allow individual kernel modules to be upgraded + without changing the whole kernel. It is also very easy to rebuild modules as + you upgrade kernels. + +Package: dh-dkms +Architecture: all +Multi-Arch: foreign +Depends: + ${perl:Depends}, + ${misc:Depends}, +Breaks: + dkms (<< 3.0.3-3~), +Replaces: + dkms (<< 3.0.3-3~), +Provides: + dh-sequence-dkms, +Description: debhelper addon for the Dynamic Kernel Module System (DKMS) + DKMS is a framework designed to allow individual kernel modules to be upgraded + without changing the whole kernel. It is also very easy to rebuild modules as + you upgrade kernels. + . + This package provides a debhelper add-on 'dkms' that simplifies packaging of + dkms kernel module source packages. + +Package: dkms-test-dkms +Architecture: all +Depends: + ${misc:Depends}, +Description: trivial dkms test kernel module + This package provides the dkms source code for the dkms_test kernel module. + . + This package is only intended for ci tests and not expected to be installed + on regular systems + +Package: dkms-noautoinstall-test-dkms +Architecture: all +Depends: + ${misc:Depends}, +Description: trivial dkms noautoinstall test kernel module + This package provides the dkms source code for the dkms_noautoinstall_test + kernel module. + . + This package is only intended for ci tests and not expected to be installed + on regular systems diff --git a/debian/copyright b/debian/copyright index e69de29..abc0837 100644 --- a/debian/copyright +++ b/debian/copyright @@ -0,0 +1,37 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Source: https://github.com/dell/dkms + +Files: * +Copyright: © 2003-2022, Dell, Inc. +License: GPL-2+ + +Files: debian/* +Copyright: © 2008-2009, David Paleino + © 2005-2008, Matt Domsch + © 2008-2009, Mario Limonciello + © 2008-2009, Giuseppe Iuculano + © 2019-2023, Gianfranco Costamagna + © 2020-2024, Andreas Beckmann +License: GPL-2+ + +Files: debian/HOWTO.Debian +Copyright: © 2008-2020, Dell, Inc. +License: GPL-2+ + +License: GPL-2+ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, + or (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + . + On Debian systems, the complete text of the GNU General Public License + can be found in /usr/share/common-licenses/GPL-2 file. diff --git a/debian/dh-dkms.install b/debian/dh-dkms.install new file mode 100644 index 0000000..bc5fcae --- /dev/null +++ b/debian/dh-dkms.install @@ -0,0 +1,4 @@ +debian/scripts/dh_dkms usr/bin +debian/scripts/dh_dkms.1 usr/share/man/man1/ +debian/scripts/*-dkms usr/share/debhelper/autoscripts/ +debian/scripts/dkms.pm usr/share/perl5/Debian/Debhelper/Sequence/ diff --git a/debian/dkms-noautoinstall-test-dkms.dkms b/debian/dkms-noautoinstall-test-dkms.dkms new file mode 100644 index 0000000..140aa74 --- /dev/null +++ b/debian/dkms-noautoinstall-test-dkms.dkms @@ -0,0 +1 @@ +test/dkms_noautoinstall_test-1.0/dkms.conf diff --git a/debian/dkms-noautoinstall-test-dkms.install b/debian/dkms-noautoinstall-test-dkms.install new file mode 100644 index 0000000..c5da104 --- /dev/null +++ b/debian/dkms-noautoinstall-test-dkms.install @@ -0,0 +1 @@ +test/dkms_noautoinstall_test-1.0 usr/src/ diff --git a/debian/dkms-test-dkms.dkms b/debian/dkms-test-dkms.dkms new file mode 100644 index 0000000..f1876da --- /dev/null +++ b/debian/dkms-test-dkms.dkms @@ -0,0 +1 @@ +test/dkms_test-1.0/dkms.conf diff --git a/debian/dkms-test-dkms.install b/debian/dkms-test-dkms.install new file mode 100644 index 0000000..3cad773 --- /dev/null +++ b/debian/dkms-test-dkms.install @@ -0,0 +1 @@ +test/dkms_test-1.0 usr/src/ diff --git a/debian/dkms.docs b/debian/dkms.docs new file mode 100644 index 0000000..b017ad0 --- /dev/null +++ b/debian/dkms.docs @@ -0,0 +1 @@ +debian/HOWTO.Debian diff --git a/debian/dkms.install b/debian/dkms.install new file mode 100644 index 0000000..fc647cc --- /dev/null +++ b/debian/dkms.install @@ -0,0 +1 @@ +debian/scripts/dkms-autopkgtest usr/lib/dkms/ diff --git a/debian/dkms.lintian-overrides b/debian/dkms.lintian-overrides new file mode 100644 index 0000000..42abd78 --- /dev/null +++ b/debian/dkms.lintian-overrides @@ -0,0 +1,5 @@ +# dependency is provided by apport +python3-script-but-no-python3-dep python3 (does not satisfy python3:any | python3-minimal:any) [usr/share/apport/package-hooks/dkms_packages.py] + +# this location is used by multiple external scripts to find dkms bits +executable-in-usr-lib diff --git a/debian/dkms.maintscript b/debian/dkms.maintscript new file mode 100644 index 0000000..b33c374 --- /dev/null +++ b/debian/dkms.maintscript @@ -0,0 +1,22 @@ +rm_conffile /etc/bash_completion.d/dkms 3.0.3-2~ +rm_conffile /etc/dkms/kernel_install.d_dkms 3.0.3-2~ +rm_conffile /etc/dkms/template-dkms-mkdeb/debian/rules 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkdeb/debian/prerm 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkdeb/debian/postinst 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkdeb/debian/dirs 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkdeb/debian/copyright 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkdeb/debian/control 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkdeb/debian/compat 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkdeb/debian/changelog 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkdeb/debian/README.Debian 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkdeb/Makefile 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkbmdeb/debian/rules 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkbmdeb/debian/copyright 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkbmdeb/debian/control 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkbmdeb/debian/compat 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkbmdeb/debian/changelog 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkbmdeb/debian/README.Debian 3.0.3-3~ +rm_conffile /etc/dkms/template-dkms-mkbmdeb/Makefile 3.0.3-3~ +rm_conffile /etc/dkms/sign_helper.sh 3.0.10-8~ +mv_conffile /etc/kernel/install.d/dkms /etc/kernel/install.d/40-dkms.install 3.0.12-1~ +rm_conffile /etc/kernel/install.d/dkms 3.0.12-2~ diff --git a/debian/dkms.modprobe b/debian/dkms.modprobe new file mode 100644 index 0000000..508b7f4 --- /dev/null +++ b/debian/dkms.modprobe @@ -0,0 +1,4 @@ +# modprobe information used for DKMS modules +# +# This is a stub file, should be edited when needed, +# used by default by DKMS. diff --git a/debian/dkms.postinst b/debian/dkms.postinst new file mode 100644 index 0000000..8582961 --- /dev/null +++ b/debian/dkms.postinst @@ -0,0 +1,57 @@ +#!/bin/sh +set -e + +#DEBHELPER# + +if dpkg --compare-versions "$2" lt-nl "3.0.3-3~" ; then + for d in /etc/dkms/template-dkms-mkdeb/debian /etc/dkms/template-dkms-mkdeb /etc/dkms/template-dkms-mkbmdeb/debian /etc/dkms/template-dkms-mkbmdeb + do + test ! -d $d || rmdir --ignore-fail-on-non-empty $d + done +fi + +if dpkg --compare-versions "$2" lt-nl "3.0.10-8~" ; then + for f in /boot/*.old-dkms + do + test ! -f "$f" || rm -fv "$f" + done +fi + +if dpkg --compare-versions "$2" lt-nl "3.0.12" ; then + for d in /lib/modules/* + do + # clean up leftover depmod files if modules.dep is empty + # i.e. dkms called depmod after removing the last kernel module + if [ -f "$d/modules.dep" ] && [ ! -s "$d/modules.dep" ]; then + rm -fv \ + "$d/modules.alias" \ + "$d/modules.dep" \ + "$d/modules.devname" \ + "$d/modules.softdep" \ + "$d/modules.symbols" \ + "$d"/modules.*.bin + rmdir --ignore-fail-on-non-empty "$d" + test -d "$d" || echo "removed directory $d" + fi + done +fi + +if dpkg --compare-versions "$2" lt-nl "3.0.12-2~" ; then + # missing $arch in the path, #1036033 + rm -rfv /var/lib/dkms/*/*/[1-6].*/module/ + rm -rfv /var/lib/dkms/*/*/[1-6].*/log/ + + # /usr/src/$module-$version was already removed, + # but /var/lib/dkms/$module/$version/source still points there + for source in /var/lib/dkms/*/*/source + do + test -h "$source" || continue + test -f "$source/dkms.conf" || rm -fv "$source" + done + + for mdir in /var/lib/dkms/*/ + do + test -d "$mdir" || continue + find "$mdir" -depth -type d -exec sh -c 'd="{}"; rmdir --ignore-fail-on-non-empty "$d" ; test -d "$d" || echo "removed directory $d"' \; + done +fi diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..8bfe87a --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,4 @@ +[DEFAULT] +debian-branch = main +pristine-tar = True +upstream-vcs-tag = v%(version)s diff --git a/debian/patches/0001-Remove-last-remnants-of-log_action_msg-from-dkms_aut.patch b/debian/patches/0001-Remove-last-remnants-of-log_action_msg-from-dkms_aut.patch new file mode 100644 index 0000000..02232d0 --- /dev/null +++ b/debian/patches/0001-Remove-last-remnants-of-log_action_msg-from-dkms_aut.patch @@ -0,0 +1,29 @@ +From 8c502778eb2277b2f16b215f0820545909bf1833 Mon Sep 17 00:00:00 2001 +From: Simone Caronni +Date: Sat, 5 Oct 2024 17:06:59 +0200 +Subject: [PATCH 1/2] Remove last remnants of log_action_msg from + dkms_autoinstaller.in + +--- + dkms_autoinstaller.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dkms_autoinstaller.in b/dkms_autoinstaller.in +index 31c382e..358e3d1 100755 +--- a/dkms_autoinstaller.in ++++ b/dkms_autoinstaller.in +@@ -59,9 +59,9 @@ case "$1" in + kernel=$(uname -r) + fi + if [ -f /etc/dkms/no-autoinstall ]; then +- log_action_msg "Automatic installation of modules has been disabled." ++ echo "Automatic installation of modules has been disabled." + elif ! _check_kernel_dir $kernel; then +- log_action_msg "Automatic installation of modules for kernel $kernel was skipped since the kernel headers for this kernel do not seem to be installed." ++ echo "Automatic installation of modules for kernel $kernel was skipped since the kernel headers for this kernel do not seem to be installed." + else + dkms autoinstall --kernelver $kernel + res=$? +-- +2.39.5 + diff --git a/debian/patches/0002-Drop-GNU-kFreeBSD.patch b/debian/patches/0002-Drop-GNU-kFreeBSD.patch new file mode 100644 index 0000000..eb88eca --- /dev/null +++ b/debian/patches/0002-Drop-GNU-kFreeBSD.patch @@ -0,0 +1,151 @@ +From cf6973e4e09fea041df3832300861d4ecd4c8760 Mon Sep 17 00:00:00 2001 +From: Simone Caronni +Date: Sat, 5 Oct 2024 17:14:06 +0200 +Subject: [PATCH 2/2] Drop GNU/kFreeBSD + +--- + dkms.in | 16 ++-------------- + dkms_autoinstaller.in | 11 ++--------- + dkms_common.postinst.in | 11 ++--------- + kernel_postinst.d_dkms.in | 23 ++++------------------- + 4 files changed, 10 insertions(+), 51 deletions(-) + +diff --git a/dkms.in b/dkms.in +index 1cd55b1..a8f2c6a 100644 +--- a/dkms.in ++++ b/dkms.in +@@ -55,10 +55,7 @@ readonly mv_re='^([^/]*)/(.*)$' + _get_kernel_dir() { + if [[ -z $ksourcedir_fromcli ]]; then + KVER=$1 +- case ${current_os} in +- Linux) DIR="$install_tree/$KVER/build" ;; +- GNU/kFreeBSD) DIR="/usr/src/kfreebsd-headers-$KVER/sys" ;; +- esac ++ DIR="$install_tree/$KVER/build" + echo $DIR + else + echo $kernel_source_dir +@@ -67,11 +64,7 @@ _get_kernel_dir() { + + _check_kernel_dir() { + DIR=$(_get_kernel_dir $1) +- case ${current_os} in +- Linux) test -e $DIR/include ;; +- GNU/kFreeBSD) test -e $DIR/kern && test -e $DIR/conf/kmod.mk ;; +- *) return 1 ;; +- esac ++ test -e $DIR/include + return $? + } + +@@ -406,11 +399,6 @@ override_dest_module_location() + local orig_location="$1" + [[ ${addon_modules_dir} ]] && echo "/${addon_modules_dir}" && return + +- if [[ $current_os = GNU/kFreeBSD ]] ; then +- # Does not support subdirs, regardless of distribution +- echo "" && return +- fi +- + case "$running_distribution" in + fedora* | rhel* | ovm*) + echo "/extra" && return +diff --git a/dkms_autoinstaller.in b/dkms_autoinstaller.in +index 358e3d1..eee0352 100755 +--- a/dkms_autoinstaller.in ++++ b/dkms_autoinstaller.in +@@ -34,20 +34,13 @@ uname_s=$(uname -s) + + _get_kernel_dir() { + KVER=$1 +- case ${uname_s} in +- Linux) DIR="@MODDIR@/$KVER/build" ;; +- GNU/kFreeBSD) DIR="/usr/src/kfreebsd-headers-$KVER/sys" ;; +- esac ++ DIR="@MODDIR@/$KVER/build" + echo $DIR + } + + _check_kernel_dir() { + DIR=$(_get_kernel_dir $1) +- case ${uname_s} in +- Linux) test -e $DIR/include ;; +- GNU/kFreeBSD) test -e $DIR/kern && test -e $DIR/conf/kmod.mk ;; +- *) return 1 ;; +- esac ++ test -e $DIR/include + return $? + } + +diff --git a/dkms_common.postinst.in b/dkms_common.postinst.in +index fe5d037..2c54058 100644 +--- a/dkms_common.postinst.in ++++ b/dkms_common.postinst.in +@@ -10,20 +10,13 @@ uname_s=$(uname -s) + + _get_kernel_dir() { + KVER=$1 +- case ${uname_s} in +- Linux) DIR="@MODDIR@/$KVER/build" ;; +- GNU/kFreeBSD) DIR="/usr/src/kfreebsd-headers-$KVER/sys" ;; +- esac ++ DIR="@MODDIR@/$KVER/build" + echo $DIR + } + + _check_kernel_dir() { + DIR=$(_get_kernel_dir $1) +- case ${uname_s} in +- Linux) test -e $DIR/include ;; +- GNU/kFreeBSD) test -e $DIR/kern && test -e $DIR/conf/kmod.mk ;; +- *) return 1 ;; +- esac ++ test -e $DIR/include + return $? + } + +diff --git a/kernel_postinst.d_dkms.in b/kernel_postinst.d_dkms.in +index f4ccc95..d73fcb7 100755 +--- a/kernel_postinst.d_dkms.in ++++ b/kernel_postinst.d_dkms.in +@@ -7,32 +7,17 @@ uname_s=$(uname -s) + + _get_kernel_dir() { + KVER=$1 +- case ${uname_s} in +- Linux) DIR="@MODDIR@/$KVER/build" ;; +- GNU/kFreeBSD) DIR="/usr/src/kfreebsd-headers-$KVER/sys" ;; +- esac ++ DIR="@MODDIR@/$KVER/build" + echo "$DIR" + } + + _check_kernel_dir() { + DIR=$(_get_kernel_dir "$1") +- case ${uname_s} in +- Linux) test -e "$DIR/include" ;; +- GNU/kFreeBSD) test -e "$DIR/kern" && test -e "$DIR/conf/kmod.mk" ;; +- *) false ;; +- esac ++ test -e "$DIR/include" + } + +-case "${uname_s}" in +- Linux) +- header_pkg="linux-headers-$inst_kern" +- kernel="Linux" +- ;; +- GNU/kFreeBSD) +- header_pkg="kfreebsd-headers-$inst_kern" +- kernel="kFreeBSD" +- ;; +-esac ++header_pkg="linux-headers-$inst_kern" ++kernel="Linux" + + if [ -x @LIBDIR@/dkms_autoinstaller ]; then + exec @LIBDIR@/dkms_autoinstaller start "$inst_kern" +-- +2.39.5 + diff --git a/debian/patches/1001-remove-trailing-whitespace.patch b/debian/patches/1001-remove-trailing-whitespace.patch new file mode 100644 index 0000000..6d12070 --- /dev/null +++ b/debian/patches/1001-remove-trailing-whitespace.patch @@ -0,0 +1,84 @@ +From 0ed79841a3898fde8bbab673563ee672974c468b Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Fri, 18 Oct 2024 01:45:04 +0200 +Subject: [PATCH] remove trailing whitespace + +--- + dkms.8.in | 4 ++-- + dkms.in | 16 ++++++++-------- + 2 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/dkms.8.in b/dkms.8.in +index 5c829d9..634c697 100644 +--- a/dkms.8.in ++++ b/dkms.8.in +@@ -333,8 +333,8 @@ combinations on the other kernel. + .TP + .B \-\-force + This option can be used in conjunction with +-.B build, install +-and ++.B build, install ++and + .B ldtarball + to force copying over existing files. + .TP +diff --git a/dkms.in b/dkms.in +index a8f2c6a..371290a 100644 +--- a/dkms.in ++++ b/dkms.in +@@ -96,19 +96,19 @@ invoke_command() + local cmd_mode="$4" + local exitval=0 + local progresspid +- ++ + [[ $verbose ]] && echo -e "$cmd" || echo -en "$cmd_description..." + + if [[ $cmd_mode == background && ! $verbose && $package_name != dkms*_test ]]; then +- while true ; do ++ while true ; do + sleep 3 + echo -n "." + done & + progresspid=$! + fi + +- if [[ -n "$cmd_output_file" ]]; then +- ( eval "$cmd" ) >> "$cmd_output_file" 2>&1 ++ if [[ -n "$cmd_output_file" ]]; then ++ ( eval "$cmd" ) >> "$cmd_output_file" 2>&1 + exitval=$? + elif [[ -z "$cmd_output_file" && $cmd_mode == background && ! $verbose ]]; then + ( eval "$cmd" ) >/dev/null 2>&1 +@@ -119,15 +119,15 @@ invoke_command() + fi + + [ -n "$progresspid" ] && kill "$progresspid" >/dev/null 2>&1 +- +- if (( exitval > 0)); then ++ ++ if (( exitval > 0 )); then + echo -en "(bad exit status: $exitval)" + # Print the failing command without the clunky redirection + [[ ! $verbose ]] && echo -en "\nFailed command:\n$1" + else + echo " done." + fi +- ++ + return "$exitval" + } + +@@ -1941,7 +1941,7 @@ make_tarball() + die 6 "Failed to make tarball." + fi + +- eval "$make_tarball_rm_temp_dir_name" ++ eval "$make_tarball_rm_temp_dir_name" + unset make_tarball_rm_temp_dir_name + } + +-- +2.39.5 + diff --git a/debian/patches/1002-initially-clear-variables-that-can-contain-cleanup-c.patch b/debian/patches/1002-initially-clear-variables-that-can-contain-cleanup-c.patch new file mode 100644 index 0000000..300c362 --- /dev/null +++ b/debian/patches/1002-initially-clear-variables-that-can-contain-cleanup-c.patch @@ -0,0 +1,24 @@ +From 4bc1a61cc942fe2d54462f2afc121064c11dd781 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Fri, 18 Oct 2024 02:14:25 +0200 +Subject: [PATCH] initially clear variables that can contain cleanup code + +--- + dkms.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dkms.in b/dkms.in +index 371290a..2815b53 100644 +--- a/dkms.in ++++ b/dkms.in +@@ -81,6 +81,7 @@ on_exit() + exit $exitcode_on_exit + } + ++unset make_tarball_rm_temp_dir_name load_tarball_rm_temp_dir_name + trap on_exit EXIT + + # Run a command that we may or may not want to be detailed about. +-- +2.39.5 + diff --git a/debian/patches/1003-add-help-h-options.patch b/debian/patches/1003-add-help-h-options.patch new file mode 100644 index 0000000..5d59511 --- /dev/null +++ b/debian/patches/1003-add-help-h-options.patch @@ -0,0 +1,51 @@ +From 8521870c3c0b97f3d0648648e9e199f9e1d0fbad Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Fri, 18 Oct 2024 02:23:02 +0200 +Subject: [PATCH] add --help / -h options + +--- + dkms.8.in | 3 +++ + dkms.in | 6 +++++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/dkms.8.in b/dkms.8.in +index 634c697..30e28e7 100644 +--- a/dkms.8.in ++++ b/dkms.8.in +@@ -292,6 +292,9 @@ Quiet. + .B \-V, \-\-version + Prints the currently installed version of dkms and exits. + .TP ++.B \-h, \-\-help ++Prints a short usage message and exits. ++.TP + .B \-c + The location of the + .I dkms.conf +diff --git a/dkms.in b/dkms.in +index 2815b53..93a080f 100644 +--- a/dkms.in ++++ b/dkms.in +@@ -190,7 +190,7 @@ show_usage() + echo " [--kernelsourcedir=source-location] [--rpm_safe_upgrade]" + echo " [--dkmstree path] [--sourcetree path] [--installtree path]" + echo " [--binaries-only] [--source-only] [--verbose]" +- echo " [--no-depmod] [--modprobe-on-install] [-j number] [--version]" ++ echo " [--no-depmod] [--modprobe-on-install] [-j number] [--version] [--help]" + } + + VER() +@@ -2532,6 +2532,10 @@ while (($# > 0)); do + -j) + read_arg parallel_jobs "$1" "$2" || shift + ;; ++ --help|-h) ++ show_usage ++ exit 0 ++ ;; + -*) + error " Unknown option: $1" + show_usage +-- +2.39.5 + diff --git a/debian/patches/1004-common.postinst-source-etc-dkms-framework.conf.d-.co.patch b/debian/patches/1004-common.postinst-source-etc-dkms-framework.conf.d-.co.patch new file mode 100644 index 0000000..9105e64 --- /dev/null +++ b/debian/patches/1004-common.postinst-source-etc-dkms-framework.conf.d-.co.patch @@ -0,0 +1,32 @@ +From f56a77d7bcd06a968eb37f64bffc599b67f39766 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Fri, 18 Oct 2024 02:33:42 +0200 +Subject: [PATCH] common.postinst: source /etc/dkms/framework.conf.d/*.conf, + too + +--- + dkms_common.postinst.in | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/dkms_common.postinst.in b/dkms_common.postinst.in +index 2c54058..e290028 100644 +--- a/dkms_common.postinst.in ++++ b/dkms_common.postinst.in +@@ -114,9 +114,11 @@ if [ -f /etc/dkms/no-autoinstall ]; then + fi + + # read framework configuration options +-if [ -r /etc/dkms/framework.conf ]; then +- . /etc/dkms/framework.conf +-fi ++for fwcf in /etc/dkms/framework.conf /etc/dkms/framework.conf.d/*.conf ; do ++ if [ -f "$fwcf" ] && [ -r "$fwcf" ]; then ++ . "$fwcf" ++ fi ++done + + KERNELS=$(ls -dv @MODDIR@/*/build 2>/dev/null | cut -d/ -f4 || true) + CURRENT_KERNEL=$(uname -r) +-- +2.39.5 + diff --git a/debian/patches/2001-do-not-perform-rpm-queries-on-Debian-Ubuntu-Arch-bas.patch b/debian/patches/2001-do-not-perform-rpm-queries-on-Debian-Ubuntu-Arch-bas.patch new file mode 100644 index 0000000..ec6b704 --- /dev/null +++ b/debian/patches/2001-do-not-perform-rpm-queries-on-Debian-Ubuntu-Arch-bas.patch @@ -0,0 +1,50 @@ +From 0e69615135244378ade7063ea6da76c7d68474ba Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Wed, 19 Apr 2023 17:37:54 +0200 +Subject: [PATCH] do not perform rpm queries on Debian/Ubuntu/Arch based + distributions + +Closes #329 +--- + dkms.in | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +--- a/dkms.in ++++ b/dkms.in +@@ -312,6 +312,11 @@ setup_kernels_arches() + kernelver[0]=$(uname -r) + fi + if [[ ! $arch ]]; then ++ case "$running_distribution" in ++ debian* | ubuntu* | arch*) ++ arch[0]=$(uname -m) ++ ;; ++ *) + kernelver_rpm=$(rpm -qf "$install_tree/$kernelver" 2>/dev/null | \ + grep -v "not owned by any package" | grep kernel | head -n 1) + if ! arch[0]=$(rpm -q --queryformat "%{ARCH}" "$kernelver_rpm" 2>/dev/null); then +@@ -320,6 +325,8 @@ setup_kernels_arches() + arch[0]="ia32e" + fi + fi ++ ;; ++ esac + fi + if [[ ! $arch ]]; then + die 12 "Could not determine architecture." +@@ -1557,7 +1564,15 @@ do_uninstall() + while [[ ${dir_to_remove} != ${dir_to_remove#/} ]]; do + dir_to_remove="${dir_to_remove#/}" + done ++ ++ case "$running_distribution" in ++ debian* | ubuntu* | arch*) ++ (if cd "$install_tree/$1"; then rmdir -p --ignore-fail-on-non-empty "${dir_to_remove}"; fi || true) ++ ;; ++ *) + (if cd "$install_tree/$1"; then rpm -qf "${dir_to_remove}" >/dev/null 2>&1 || rmdir -p --ignore-fail-on-non-empty "${dir_to_remove}"; fi || true) ++ ;; ++ esac + else + echo "Module was not found within $install_tree/$1/" + fi diff --git a/debian/patches/only-autobuild-AUTOINSTALL-yes-modules.patch b/debian/patches/only-autobuild-AUTOINSTALL-yes-modules.patch new file mode 100644 index 0000000..a1464bc --- /dev/null +++ b/debian/patches/only-autobuild-AUTOINSTALL-yes-modules.patch @@ -0,0 +1,16 @@ +--- a/dkms_common.postinst.in ++++ b/dkms_common.postinst.in +@@ -155,6 +155,13 @@ if [ -z "$autoinstall" ]; then + exit 0 + fi + ++dkms_conf="/var/lib/dkms/$NAME/$VERSION/source/dkms.conf" ++autoinstall=$(bash -c 'AUTOINSTALL=; . "'"$dkms_conf"'" >/dev/null 2>&1; echo $AUTOINSTALL') ++if [ -z "$autoinstall" ]; then ++ echo "Not building the $NAME module which does not have AUTOINSTALL enabled." ++ exit 0 ++fi ++ + # On 1st installation, let us look for a directory + # in @MODDIR@ which matches $(uname -r). If none + # is found it is possible that buildd is being used diff --git a/debian/patches/rebuild-modules-on-header-upgrade.patch b/debian/patches/rebuild-modules-on-header-upgrade.patch new file mode 100644 index 0000000..c944d62 --- /dev/null +++ b/debian/patches/rebuild-modules-on-header-upgrade.patch @@ -0,0 +1,22 @@ +--- a/kernel_postinst.d_dkms.in ++++ b/kernel_postinst.d_dkms.in +@@ -19,6 +19,19 @@ _check_kernel_dir() { + header_pkg="linux-headers-$inst_kern" + kernel="Linux" + ++case $0 in *header_postinst.d*) ++ # unbuild all autoinstalled modules for this kernel to ensure they get ++ # rebuilt against the updated headers by the next autoinstall below ++ for mod_ver in $(dkms status -k "$inst_kern" 2>/dev/null | grep ': installed' | cut -d, -f1 | sort -u) ++ do ++ dkms_conf="/var/lib/dkms/$mod_ver/source/dkms.conf" ++ autoinstall=$(bash -c 'AUTOINSTALL=; . "'"$dkms_conf"'" >/dev/null 2>&1; echo $AUTOINSTALL') ++ test -n "$autoinstall" || continue ++ dkms unbuild -k "$inst_kern" "$mod_ver" ++ done ++ ;; ++esac ++ + if [ -x @LIBDIR@/dkms_autoinstaller ]; then + exec @LIBDIR@/dkms_autoinstaller start "$inst_kern" + fi diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..86f8d8c --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,10 @@ +0001-Remove-last-remnants-of-log_action_msg-from-dkms_aut.patch +0002-Drop-GNU-kFreeBSD.patch + +1001-remove-trailing-whitespace.patch +1002-initially-clear-variables-that-can-contain-cleanup-c.patch +1003-add-help-h-options.patch +1004-common.postinst-source-etc-dkms-framework.conf.d-.co.patch +2001-do-not-perform-rpm-queries-on-Debian-Ubuntu-Arch-bas.patch +rebuild-modules-on-header-upgrade.patch +only-autobuild-AUTOINSTALL-yes-modules.patch diff --git a/debian/rules b/debian/rules index 64a084a..e2ae425 100755 --- a/debian/rules +++ b/debian/rules @@ -1,67 +1,26 @@ -#! /usr/bin/make -f +#!/usr/bin/make -f +# -*- makefile -*- -## See debhelper(7) (uncomment to enable). -## Output every command that modifies files on the build system. -export DH_VERBOSE = 1 -export PIKA_BUILD_ARCH = $(shell cat ../pika-build-arch) +include /usr/share/dpkg/pkg-info.mk -## === the chain of command === -## debuild runs a chain of dh functions in the following order: -## dh_testdir -## dh_clean -## dh_auto_clean -## dh_update_autotools_config -## dh_autoreconf -## dh_auto_configure -## dh_prep -## dh_build -## dh_auto_build -## dh_install -## dh_auto_install -## dh_installdocs -## dh_installchangelogs -## dh_perl -## dh_link -## dh_strip_nondeterminism -## dh_compress -## dh_fixperms -## dh_missing -## dh_dwz -## dh_strip -## dh_makeshlibs -## dh_shlibdeps -## dh_installdeb -## dh_gencontrol -## but you are most likely to only need to override the following: -## dh_clean -## dh_auto_configure -## dh_build -## dh_install - -## === End end of region === - -## === overriding dh functions === -## by default all dh functions will run a specific command based on the build system selected by "dh $@" -## if you have a makefile that does everything you need this is fine, -## but most likely you have no MakeFile and you want to add your own commands -## Note : overrides must be places above %: -## So here's a few examples: - -## overriding dh_clean to make it not delete rust vendor files: -#override_dh_clean: -# echo "disabled" - -## overriding dh_auto_configure to add custom configs: -#override_dh_auto_configure: -# $(srcdir)/configure -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_DATADIR=/usr/share -DCMAKE_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu -DBUILD_PLUGIN=OFF - -## overriding dh_install to install files to a package: -#override_dh_auto_configure: -# mkdir -p debian/pikman/usr/bin -# cp pikman debian/pikman/usr/bin/ - -## === End end of region === - -## This here will start the build: %: dh $@ + +debian/scripts/dh_dkms: debian/scripts/dh_dkms.in + sed -r "s,^#VERSION#,our \$$VERSION = \"$(DEB_VERSION)\";," $< > $@ + chmod +x $@ + +debian/scripts/dh_dkms.1: debian/scripts/dh_dkms + pod2man \ + --center "DKMS Debhelper" \ + --release $(DEB_VERSION_UPSTREAM) \ + $< > $@ + +override_dh_auto_build: debian/scripts/dh_dkms +override_dh_auto_build: debian/scripts/dh_dkms.1 + +override_dh_auto_install: + $(MAKE) install-debian DESTDIR=$(CURDIR)/debian/dkms + +execute_after_dh_install: + DH_AUTOSCRIPTDIR=debian/scripts debian/scripts/dh_dkms diff --git a/debian/scripts/dh_dkms.in b/debian/scripts/dh_dkms.in new file mode 100755 index 0000000..2af732a --- /dev/null +++ b/debian/scripts/dh_dkms.in @@ -0,0 +1,192 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_dkms - correctly handle DKMS usage by a kernel module package + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [S>] [S[I]>] [S I>] + +=head1 DESCRIPTION + +dh_dkms is a debhelper program that is responsible for correctly setting +postinst, postrm and dependencies in kernel module packages using DKMS. + +If a file named debian/package.dkms exists, then different actions are +performed, depending on its contents. + +=head1 FILES + +=over 4 + +=item debian/I.dkms + +=item debian/dkms + +It can be a proper configuration file, and in this case it would be installed +in the proper directory as dkms.conf. + +It can also point to another file (this should be used when the configuration +is provided by upstream), and in this case that file will be installed as dkms.conf +in the proper directory. + +This file can only miss if a filename is provided when calling dh_dkms. + +=back + +=head1 OPTIONS + +=over 4 + +=item B<-l>, B<--legacy> + +Add code to also support DKMS versions < 2.1.0.0. + +=item B<-V>, B<-V> I + +If C in F is set to C<#MODULE_VERSION#>, set it to +the given I or, if none is given, default to the upstream version of +the current package. Otherwise, leave the value specified in F. + +=item B<--> I + +Don't look for debian/I.dkms or debian/dkms, but install I as dkms.conf. + +=back + +=head1 NOTES + +Note that this command is not idempotent. L should be called +between invocations of this command. Otherwise, it may cause multiple +instances of the same text to be added to maintainer scripts. + +=cut + +# placeholder substituted at build time +# is shown along generated autoscripts +#VERSION# + +init(options => { + "l|legacy" => \$dh{LEGACY_DKMS}, +}); + +foreach my $package (@{$dh{DOPACKAGES}}) { + #next if is_udeb($package); + + my $tmp = tmpdir($package); + my $dkms_dir = "/usr/lib/dkms/"; + my $dkms_conf = pkgfile($package, "dkms"); + my $is_snippet = 0; + my @other_conf; + my $name; + my $package_name; + my $package_version; + my $build_exclusive_config; + + if ($dkms_conf) { + # let's see if it's a proper snippet + open(IN, "< $dkms_conf"); + while (my $l = ) { + $l =~ /PACKAGE_NAME=(["'])(.*)\1/ && ($is_snippet = 1); + } + close(IN); + + if ($is_snippet) { + $name = $dkms_conf; + } + else { + my @search_dirs = ($dh{SOURCEDIR} // '.', default_sourcedir($package)); + @other_conf = filearray($dkms_conf, \@search_dirs); + if ($#other_conf > 1) { + error "cannot list more than one file in $dkms_conf!"; + } + else { + $name = $other_conf[0]; + } + } + } + elsif ($#ARGV == 0) { + $name = $ARGV[0]; + } + else { + next; + } + verbose_print "installing $name as dkms.conf"; + + # now, parse our configuration file + open(IN, "< $name") || error("cannot read $name: $!"); + while (my $l = ) { + $l =~ /PACKAGE_NAME=(["']?)(.*)\1/ && ($is_snippet = 1 && $package_name = $2); + $l =~ /PACKAGE_VERSION=(["']?)(.*)\1/ && ($package_version = $2); + $l =~ /BUILD_EXCLUSIVE_CONFIG=(["']?)(.*)\1/ && ($build_exclusive_config = $2); + $l =~ /BUILD_EXCLUSIVE_KERNEL_MIN=(["']?)(.*)\1/ && ($build_exclusive_config = "yes"); + $l =~ /BUILD_EXCLUSIVE_KERNEL_MAX=(["']?)(.*)\1/ && ($build_exclusive_config = "yes"); + } + close(IN); + + #$ENV{DH_AUTOSCRIPTDIR} = "debian/scripts/"; + if ($build_exclusive_config) { + addsubstvar($package, "misc:Depends", "dkms", ">= 3.0.11"); + } + elsif ($dh{LEGACY_DKMS}) { + doit("install", "-p", "-D", "-m755", "$dkms_dir/common.postinst", "$tmp/usr/share/$package/postinst"); + addsubstvar($package, "misc:Depends", "dkms"); + } + else { + addsubstvar($package, "misc:Depends", "dkms", ">= 2.1.0.0"); + } + + if ($dh{V_FLAG_SET} || $package_version eq "#MODULE_VERSION#") { + $package_version = $dh{V_FLAG} || ""; + if ($package_version eq "") { + # Call isnative because it sets $dh{VERSION} + # as a side effect. + isnative($package); + $package_version = $dh{VERSION}; + # Remove the Debian revision + $package_version =~ s/-[^-]+$//; + # Remove the Debian epoch + $package_version =~ s/^\d+://; + } + + my $old_name = $name; + $name = "debian/".pkgext($package)."dkms.debhelper"; + doit("cp", "-a", $old_name, $name); + doit("sed", "-i", "s/#MODULE_VERSION#/$package_version/g", $name); + } + + error "could not determine package name" + unless defined($package_name); + + error "could not determine package version" + unless defined($package_version); + + error "invalid package version '$package_version'" + unless $package_version =~ /^[-+.~:0-9a-zA-Z]+$/; + + autoscript($package, "prerm", "prerm-dkms", + "s/#MODULE_NAME#/$package_name/;s/#MODULE_VERSION#/$package_version/"); + autoscript($package, "postinst", "postinst-dkms", + "s/#MODULE_NAME#/$package_name/;s/#MODULE_VERSION#/$package_version/"); + doit("install", "-p", "-D", "-m644", "$name", "$tmp/usr/src/$package_name-$package_version/dkms.conf"); +} + +=head1 SEE ALSO + +L + +This program is part of the Debian DKMS package. + +L + +=head1 AUTHOR + +David Paleino + +=cut diff --git a/debian/scripts/dkms-autopkgtest b/debian/scripts/dkms-autopkgtest new file mode 100755 index 0000000..7444368 --- /dev/null +++ b/debian/scripts/dkms-autopkgtest @@ -0,0 +1,229 @@ +#!/bin/sh +# Common autopkgtest script for testing a dkms source package. +# Author: Martin Pitt +# Copyright: (C) 2014 Canonical Ltd. +set -eu + +export DEBIAN_FRONTEND=noninteractive + +result=0 +summary= +crlf=" +" + +header_packages= +check_for_linux_headers() { + # Act only on the first run. + if [ -n "$header_packages" ]; then + return + fi + + # Which Linux header packages are installed? + header_packages=$(dpkg-query -f '${Status} ${Package}\n' -W 'linux-headers-*' 2>/dev/null | sed -r -n 's/^install ok installed //p') + if [ -n "$header_packages" ]; then + echo "I: Using the following Linux header packages that were already installed:" + for p in $header_packages ; do + echo "I: $p" + done + return + fi + + # Which Linux header packages could be installed? + # linux-doc is a dependency generated by autodep8 for autopkgtest-pkg-dkms + # install only linux-headers-* matching the source version of linux-doc + wanted_source_version=$(dpkg-query -f '${source:Version}' -W linux-doc 2>/dev/null || true) + candidates=$(apt-cache search --names-only '^linux-headers-' | awk '{print $1}' | grep -v -E -e '-common(-rt)?$') + echo "I: No Linux header packages are installed." + echo "I: Installing all available ones from src:linux $wanted_source_version:" + for p in $candidates ; do + if [ -z "$wanted_source_version" ]; then + echo "I: $p" + header_packages="$header_packages $p" + continue + fi + source_versions=$(apt-cache show $p | perl -ne 'if (/^$/) { print $s || $v, "\n"; $s=$v=""; } $s=$1 if /^Source: .* \((.*)\)$/; $v=$1 if /^Version: (.*)$/;') + for sv in $source_versions ; do + if [ "$sv" = "$wanted_source_version" ]; then + echo "I: install $p" + header_packages="$header_packages $p" + continue 2 + fi + done + echo "I: skip $p" + done + RC=0 + apt-get install --no-install-recommends -yq $header_packages &1 || RC=$? + if [ "$RC" -ne 0 ]; then + echo "E: Linux headers failed to install." >&2 + exit 1 + fi +} + +run_pkg() { + pkg="$1" + + test -x /usr/bin/openssl || apt-get install --no-install-recommends -yq openssl &1 + + echo "I: Removing binary package $pkg, to get clean state." + apt-get purge -yq $pkg &1 >/dev/null || true + + echo "I: Installing binary package $pkg" + RC=0 + apt-get install --no-install-recommends -yq $pkg &1 || RC=$? + if [ "$RC" -ne 0 ]; then + echo "E: Package $pkg failed to install." >&2 + result=1 + return + fi + + # Try and remove dkms to spot packages which miss a dkms dependency + echo "I: Checking for missing dkms dependency by trying to deinstall dkms" + dpkg --remove dkms || true + + if ! dkms_conf=$(dpkg -L $pkg | grep '/usr/src' | grep '/dkms.conf$'); then + echo "I: Package $pkg has no dkms.conf, skipping." + return + fi + + check_for_linux_headers + + echo "I: Testing binary package $pkg" + + dkms_pkg=$(bash -c ". $dkms_conf > /dev/null; echo \$PACKAGE_NAME" 2>/dev/null) + dkms_ver=$(bash -c ". $dkms_conf > /dev/null; echo \$PACKAGE_VERSION" 2>/dev/null) + build_depends=$(bash -c ". $dkms_conf > /dev/null; echo \$BUILD_DEPENDS" 2>/dev/null) + versioned_build_depends= + + for bd in $build_depends + do + bdpath=$(ls -d /usr/src/${bd}-*) + versioned_build_depends="$versioned_build_depends ${bd}/${bdpath#/usr/src/${bd}-}" + done + + for k in $(ls -dv /lib/modules/*/build) + do + test -d "$k" || continue + kver="${k%/build}" + kver="${kver#/lib/modules/}" + + # If any linux-meta is in triggers, only test abistems that + # match triggers otherwise continue. This helps integration + # with adt-matrix which specifically requests test results + # against each individual linux-meta and tracks unique results + # per kernel abi. + abistem=$(echo $kver | sed 's/-[a-z]*$//') + case "${ADT_TEST_TRIGGERS-}" in + *linux-meta*) + case "$ADT_TEST_TRIGGERS" in + *"$abistem"*) + ;; + *) + continue + ;; + esac + esac + + for bdv in $versioned_build_depends + do + echo "I: Trying to install build dependency $bdv for $kver" + dkms install "$bdv" -k "$kver" || test $? = 77 + done + + echo "I: Trying to build $dkms_pkg/$dkms_ver for $kver" + res=0 + dkms build -m "$dkms_pkg" -v "$dkms_ver" -k "$kver" || res=$? + + if [ "$res" = 77 ]; then + echo "I: $dkms_pkg/$dkms_ver is not supported on $kver (BUILD_EXCLUSIVE directive), skipping." + summary="${summary}I: SKIP $dkms_pkg/$dkms_ver $kver${crlf}" + continue + fi + + if [ "$res" != 0 ]; then + echo "E: $dkms_pkg/$dkms_ver failed to build for $kver" >&2 + makelog="/var/lib/dkms/$dkms_pkg/$dkms_ver/build/make.log" + echo "========== $makelog ==========" >&2 + cat "$makelog" >&2 || true + echo "====================" >&2 + summary="${summary}I: FAIL $dkms_pkg/$dkms_ver $kver${crlf}" + result=1 + continue + fi + + if ! dkms install --force -m "$dkms_pkg" -v "$dkms_ver" -k "$kver" ; then + echo "E: $dkms_pkg/$dkms_ver failed to install for $kver" >&2 + summary="${summary}I: FAIL $dkms_pkg/$dkms_ver $kver${crlf}" + result=1 + continue + fi + + echo "I: Testing if $dkms_pkg modules are correctly installed." + dkmsstatus="$(dkms status $dkms_pkg -k $kver)" + echo "$dkmsstatus" + if [ -z "$dkmsstatus" ]; then + echo "E: dkms status output is empty!" >&2 + summary="${summary}I: FAIL $dkms_pkg/$dkms_ver $kver${crlf}" + result=1 + continue + fi + + if ! echo "$dkmsstatus" | grep -q "installed$"; then + echo "E: not installed" >&2 + summary="${summary}I: FAIL $dkms_pkg/$dkms_ver $kver${crlf}" + result=1 + continue + fi + + summary="${summary}I: PASS $dkms_pkg/$dkms_ver $kver${crlf}" + + done + + # collect build logs as artifacts + if [ -d /var/lib/dkms ]; then + (cd /var/lib/dkms; find $dkms_pkg -name "make.log" -print0 | xargs -r -0 tar cvz) > "${AUTOPKGTEST_ARTIFACTS:-.}/$pkg-make-logs.tar.gz" + fi + + # skip modprobing for now; this fails too often (needs particular + # hardware/firmware/etc) + # for mod in $(awk -F '"' '/^BUILT_MODULE_NAME/ {print $2}' $dkms_conf); do + # echo "I: modprobe $mod" + # if ! modprobe $mod; then + # echo "E: Failed to modprobe module $mod" >&2 + # exit 1 + # else + # echo "I: $modname loaded" + # fi + # done +} + +# Do not (fail to) build the modules upon linux-header-* and *-dkms package +# installation, which can cause apt-get to fail. We will do this later with +# improved error reporting. +# (This only works if the *-dkms package is not yet installed.) +touch /etc/dkms/no-autoinstall + +pkg_list="$*" +if [ -z "$pkg_list" ]; then + test -x /usr/bin/grep-dctrl || apt-get install --no-install-recommends -yq dctrl-tools &1 + pkg_list="$(grep-dctrl -FDepends -e '(^| )dkms' -o -FPackage -e '\-dkms' debian/control -sPackage -n)" +fi + +for pkg in $pkg_list; do + # package might be arch: restriction or udeb etc. + if ! apt-cache show $pkg >/dev/null 2>&1; then + echo "I: Skipping unavailable package $pkg" + continue + fi + run_pkg $pkg +done + +if [ -n "$summary" ]; then + echo "I: Summary:" + echo -n "$summary" +fi + +rm -f /etc/dkms/no-autoinstall + +exit $result + +# vim: sw=4:ts=4:et diff --git a/debian/scripts/dkms.pm b/debian/scripts/dkms.pm new file mode 100644 index 0000000..a337a9c --- /dev/null +++ b/debian/scripts/dkms.pm @@ -0,0 +1,8 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Debian::Debhelper::Dh_Lib; + +insert_before("dh_installinit", "dh_dkms"); + +1; diff --git a/debian/scripts/postinst-dkms b/debian/scripts/postinst-dkms new file mode 100644 index 0000000..ef80983 --- /dev/null +++ b/debian/scripts/postinst-dkms @@ -0,0 +1,24 @@ +DKMS_NAME=#MODULE_NAME# +DKMS_PACKAGE_NAME=$DKMS_NAME-dkms +DKMS_VERSION=#MODULE_VERSION# + +postinst_found=0 + +case "$1" in + configure) + for DKMS_POSTINST in /usr/lib/dkms/common.postinst /usr/share/$DKMS_PACKAGE_NAME/postinst; do + if [ -f $DKMS_POSTINST ]; then + $DKMS_POSTINST $DKMS_NAME $DKMS_VERSION /usr/share/$DKMS_PACKAGE_NAME "" $2 + postinst_found=1 + break + fi + done + if [ "$postinst_found" -eq 0 ]; then + echo "ERROR: DKMS version is too old and $DKMS_PACKAGE_NAME was not" + echo "built with legacy DKMS support." + echo "You must either rebuild $DKMS_PACKAGE_NAME with legacy postinst" + echo "support or upgrade DKMS to a more current version." + exit 1 + fi + ;; +esac diff --git a/debian/scripts/prerm-dkms b/debian/scripts/prerm-dkms new file mode 100644 index 0000000..6e93a1b --- /dev/null +++ b/debian/scripts/prerm-dkms @@ -0,0 +1,10 @@ +DKMS_NAME=#MODULE_NAME# +DKMS_VERSION=#MODULE_VERSION# + +case "$1" in + remove|upgrade|deconfigure) + if [ "$(dkms status -m $DKMS_NAME -v $DKMS_VERSION)" ]; then + dkms remove -m $DKMS_NAME -v $DKMS_VERSION --all + fi + ;; +esac diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..61159ee --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,99 @@ +Test-Command: sh debian/tests/run_test_wrapper.sh +Features: test-name=run_test.sh +Depends: + dkms, + openssl, + linux-headers-generic + | linux-headers-rpi [armel] +Restrictions: + allow-stderr, + needs-root, + breaks-testbed, + skip-not-installable, + +# install some-dkms after linux-headers +Test-Command: apt-get install -yf dkms-test-dkms && dkms status +Features: test-name=install_some-dkms_after_linux-headers +Architecture: amd64 +Depends: + dkms, + linux-headers-generic, +Restrictions: + allow-stderr, + needs-root, + breaks-testbed, + +# install linux-headers after some-dkms +Test-Command: apt-get install -yf linux-headers-generic && dkms status +Features: test-name=install_linux-headers_after_some-dkms +Architecture: amd64 +Depends: + dkms-test-dkms, +Restrictions: + allow-stderr, + needs-root, + breaks-testbed, + +# install some-dkms after linux-image w/o linux-headers +Test-Command: apt-get install -yf dkms-test-dkms && dkms status +Features: test-name=install_some-dkms_after_linux-image_without_linux-headers +Architecture: amd64 +Depends: + dkms, + linux-image-generic, +Restrictions: + allow-stderr, + needs-root, + breaks-testbed, + +# install linux-image after some-dkms w/o linux-headers +Test-Command: apt-get install -yf linux-image-generic && dkms status +Features: test-name=install_linux-image_after_some-dkms_without_linux-headers +Architecture: amd64 +Depends: + dkms-test-dkms, +Restrictions: + allow-stderr, + needs-root, + breaks-testbed, + +# install some-noautoinstall-dkms after linux-headers +Test-Command: apt-get install -yf dkms-noautoinstall-test-dkms && dkms status +Features: test-name=install_some-noautoinstall-dkms_after_linux-headers +Architecture: amd64 +Depends: + dkms, + linux-headers-generic, +Restrictions: + allow-stderr, + needs-root, + breaks-testbed, + +# install linux-headers after some-noautoinstall-dkms +Test-Command: apt-get install -yf linux-headers-generic && dkms status +Features: test-name=install_linux-headers_after_some-noautoinstall-dkms +Architecture: amd64 +Depends: + dkms-noautoinstall-test-dkms, +Restrictions: + allow-stderr, + needs-root, + breaks-testbed, + +# 32-bit userspace with 64-bit kernel +# cf. https://bugs.debian.org/1042993 +# workaround: apt-get install -yf linux-compiler-gcc-13-x86:amd64 +Test-Command: + dpkg --add-architecture amd64 && + apt-get update && + apt-get install -yf linux-headers-amd64 && + /usr/lib/dkms/dkms-autopkgtest dkms-test-dkms +Features: test-name=32-bit_userspace_with_64-bit_kernel +Architecture: i386 +Depends: + dkms, +Restrictions: + allow-stderr, + needs-root, + breaks-testbed, + flaky, diff --git a/debian/tests/run_test_wrapper.sh b/debian/tests/run_test_wrapper.sh new file mode 100644 index 0000000..8d27992 --- /dev/null +++ b/debian/tests/run_test_wrapper.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +KERNEL_VER= +NO_SIGNING_TOOL= +for kver in $(dpkg-query -W -f '${Package}\n' 'linux-headers-*' | sed s/linux-headers-//) +do + if [ -d "/lib/modules/$kver/build" ] + then + KERNEL_VER=$kver + grep -q "^CONFIG_MODULE_SIG_HASH=" "/lib/modules/$kver/build/.config" || + NO_SIGNING_TOOL="--no-signing-tool" + break + fi +done + +export KERNEL_VER +bash ./run_test.sh $NO_SIGNING_TOOL diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 0000000..9b54dee --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,4 @@ +Bug-Database: https://github.com/dell/dkms/issues +Bug-Submit: https://github.com/dell/dkms/issues/new +Repository: https://github.com/dell/dkms.git +Repository-Browse: https://github.com/dell/dkms diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..3a13323 --- /dev/null +++ b/debian/watch @@ -0,0 +1,7 @@ +version=4 + +#we no longer are hosted on linux.dell.com +#http://linux.dell.com/dkms/permalink/dkms-(.*)\.tar\.gz + +https://github.com/dell/dkms/tags \ +.*[^n]/(?:|v|version-|r|REL_|rel-|dkms(?:_|-))(\d[^\s/]*)\.(?:tar\.xz|txz|tar\.bz2|tbz2|tar\.gz|tgz)