diff options
Diffstat (limited to '')
39 files changed, 2390 insertions, 0 deletions
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 <Mario_Limonciello@Dell.com> + +------------ + +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 new file mode 100644 index 0000000..a5d87cd --- /dev/null +++ b/debian/changelog @@ -0,0 +1,1177 @@ +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 <anbe@debian.org> 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.) + * 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 <anbe@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <aron@debian.org> 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 <dimitri.ledkov@canonical.com> 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 <aron@debian.org> 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 <locutusofborg@debian.org> 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 <aron@debian.org> 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 <aron@debian.org> 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 <aron@debian.org> 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 <dimitri.ledkov@canonical.com> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <dimitri.ledkov@canonical.com> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <anbe@debian.org> 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 <anbe@debian.org> 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 <anbe@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <anbe@debian.org> 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 <marcelo.cerri@canonical.com> 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 <aron@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <raphael@offensive-security.com> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> Mon, 29 Jul 2019 15:36:18 +0200 + +dkms (2.7.1-1) unstable; urgency=medium + + * QA upload + * Upload to unstable + + -- Gianfranco Costamagna <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> Tue, 25 Jun 2019 10:45:13 +0200 + +dkms (2.6.1-4) unstable; urgency=medium + + * Remove shim-signed break + + -- Gianfranco Costamagna <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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 <locutusofborg@debian.org> 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) + * 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 <aron@debian.org> 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 <aron@debian.org> 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 <aron@debian.org> 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 <aron@debian.org> 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 <aron@debian.org> 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 <aron@debian.org> 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 <pere@debian.org> 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 <pere@debian.org> 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 <pere@debian.org> 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 <iuculano@debian.org> 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 <biebl@debian.org> 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 <christoph@debian.org> 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 <debian@abeckmann.de> 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 <mario_limonciello@dell.com> 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 <Mario_Limonciello@Dell.com> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 + <fbriere@fbriere.net> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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 <iuculano@debian.org> 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/<kernelversion>/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 <giuseppe@iuculano.it> 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 <giuseppe@iuculano.it> 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 <giuseppe@iuculano.it> 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/<version>/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 <giuseppe@iuculano.it> 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 <mario_limonciello@dell.com> 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 <mario_limonciello@dell.com> 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 <mario_limonciello@dell.com> Mon, 18 Feb 2008 09:40:18 -0600 + +dkms (2.0.17.4-0ubuntu4) hardy; urgency=low + + * Fix -x call. + + -- Scott James Remnant <scott@ubuntu.com> 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 <scott@ubuntu.com> 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 <Matt_Domsch@dell.com> 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 <Matt_Domsch@dell.com> 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 new file mode 100644 index 0000000..69d328c --- /dev/null +++ b/debian/control @@ -0,0 +1,65 @@ +Source: dkms +Section: kernel +Priority: optional +Maintainer: Dynamic Kernel Module System Team <dkms@packages.debian.org> +Uploaders: David Paleino <dapal@debian.org>, + Petter Reinholdtsen <pere@debian.org>, + Aron Xu <aron@debian.org>, + Mario Limonciello <Mario_Limonciello@dell.com>, + Andreas Beckmann <anbe@debian.org>, +Build-Depends: debhelper-compat (= 13) +Standards-Version: 4.6.2 +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 + +Package: dkms +Architecture: all +Multi-Arch: foreign +Pre-Depends: lsb-release +Depends: ${misc:Depends}, + kmod | kldutils, + gcc | c-compiler, + dpkg-dev, + make | build-essential, + patch, +Recommends: fakeroot, + sudo, + linux-headers-generic | linux-headers-686-pae | linux-headers-amd64 | linux-headers, +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. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..4a7e34d --- /dev/null +++ b/debian/copyright @@ -0,0 +1,39 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Source: https://github.com/dell/dkms +Upstream-Contact: they are listed on AUTHORS file + +Files: * +Copyright: Ā© 2003-2022, Dell, Inc. <dkms-devel@lists.us.dell.com> +License: GPL-2+ + + +Files: debian/* +Copyright: Ā© 2008-2009, David Paleino <d.paleino@gmail.com> + Ā© 2005-2008, Matt Domsch <Matt_Domsch@dell.com> + Ā© 2008-2009, Mario Limonciello <Mario_Limonciello@dell.com> + Ā© 2008-2009, Giuseppe Iuculano <giuseppe@iuculano.it> + Ā© 2019-2023, Gianfranco Costamagna <locutusofborg@debian.org> + Ā© 2020-2023, Andreas Beckmann <anbe@debian.org> +License: GPL-2+ + +Files: debian/HOWTO.Debian +Copyright: Ā© 2008-2020, Dell, Inc. <dkms-devel@lists.us.dell.com> +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.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..385ab3b --- /dev/null +++ b/debian/dkms.maintscript @@ -0,0 +1,20 @@ +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~ 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..c5342da --- /dev/null +++ b/debian/dkms.postinst @@ -0,0 +1,18 @@ +#!/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 diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..cabf8bc --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,3 @@ +[DEFAULT] +pristine-tar = True +debian-branch = bookworm diff --git a/debian/gitlab-ci.yml b/debian/gitlab-ci.yml new file mode 100644 index 0000000..0c22dc4 --- /dev/null +++ b/debian/gitlab-ci.yml @@ -0,0 +1,3 @@ +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml diff --git a/debian/patches/0001-default-built_module_name-0-to-PACKAGE_NAME.patch b/debian/patches/0001-default-built_module_name-0-to-PACKAGE_NAME.patch new file mode 100644 index 0000000..ae73d88 --- /dev/null +++ b/debian/patches/0001-default-built_module_name-0-to-PACKAGE_NAME.patch @@ -0,0 +1,24 @@ +From 78bc5aa693ec9928778836469b815d2da5434e19 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <anbe@debian.org> +Date: Mon, 27 Mar 2023 01:39:01 +0200 +Subject: [PATCH] default built_module_name[0] to $PACKAGE_NAME + +$module is not yet set in add_source_tree +--- + dkms.in | 2 +- + run_test.sh | 13 ++++++++----- + 2 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/dkms.in b/dkms.in +index 25d4b9e..6069e82 100644 +--- a/dkms.in ++++ b/dkms.in +@@ -540,7 +540,7 @@ read_conf() + # If unset, set by defaults + [[ ! ${built_module_name[$index]} ]] && \ + ((${#DEST_MODULE_LOCATION[@]} == 1)) && \ +- built_module_name[$index]=$module ++ built_module_name[$index]=$PACKAGE_NAME + [[ ! ${dest_module_name[$index]} ]] && \ + dest_module_name[$index]=${built_module_name[$index]} + [[ ${built_module_location[$index]} && \ diff --git a/debian/patches/0002-man-clarify-dkms-add-arguments.patch b/debian/patches/0002-man-clarify-dkms-add-arguments.patch new file mode 100644 index 0000000..16a1693 --- /dev/null +++ b/debian/patches/0002-man-clarify-dkms-add-arguments.patch @@ -0,0 +1,55 @@ +From 93461d6737f79bf53be3ce2e2b3b613fe1795aff Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <anbe@debian.org> +Date: Thu, 30 Mar 2023 18:48:01 +0200 +Subject: [PATCH] man: clarify 'dkms add' arguments + +--- + dkms.8.in | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +diff --git a/dkms.8.in b/dkms.8.in +index a3af903..47655e6 100644 +--- a/dkms.8.in ++++ b/dkms.8.in +@@ -55,13 +55,16 @@ is a framework which allows kernel modules to be dynamically built + for each kernel on your system in a simplified and organized fashion. + .SH ACTIONS + .SY add +-.OP module/module\-version +-.OP /path/to/source\-tree +-.OP /path/to/tarball.tar ++.OP "module/module\-version | /path/to/source\-tree | /path/to/tarball.tar" + .YS + .IP "" 4 + Adds a module/module\-version combination to the tree for builds and installs. +-If module/module\-version, \-m module/module\-version, or \-m module\ \-v version are passed as options, this command ++If ++.IR module/module\-version , ++.IR "\-m module/module\-version" , ++or ++.I \-m module\ \-v module\-version ++are passed as options, this command + requires source in + .I /usr/src/<module>\-<module\-version>/ + as well as a properly +@@ -74,7 +77,7 @@ is passed as an option, and source-tree contains a + file, it will copy + .I /path/to/source\-tree + to +-.I /usr/src/module\-module\-version. ++.IR /usr/src/module\-module\-version . + If + .I /path/to/tarball.tar + is passed, this command behaves like the +@@ -755,7 +758,7 @@ Used by the common postinst for DKMS modules. It controls if the build should be + line equivalent. + .TP + .B $sign_file +-This is the path of the ++This is the path of the + .I sign-file + kernel binary that is used to sign the kernel modules. The variable + .B $kernelver +-- +2.20.1 + diff --git a/debian/patches/0003-print-a-warning-if-proc-is-not-mounted.patch b/debian/patches/0003-print-a-warning-if-proc-is-not-mounted.patch new file mode 100644 index 0000000..dd0ee6f --- /dev/null +++ b/debian/patches/0003-print-a-warning-if-proc-is-not-mounted.patch @@ -0,0 +1,46 @@ +From 0285b2ad62086f868c23414fe46d0ccdcbe8c6db Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <anbe@debian.org> +Date: Fri, 31 Mar 2023 09:45:00 +0200 +Subject: [PATCH] print a warning if /proc is not mounted + +--- + dkms.in | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/dkms.in b/dkms.in +index 3f5fc41..6a52a55 100644 +--- a/dkms.in ++++ b/dkms.in +@@ -672,7 +672,7 @@ get_module_verinfo(){ + ;; + esac + done < <(modinfo "$1") +- ++ + echo -E "${ver}" + # Use obsolete checksum info if srcversion is not available + echo -E "${srcver:-$checksum}" +@@ -767,7 +767,7 @@ check_version_sanity() + return 0 + fi + local dkms_module=$(compressed_or_uncompressed "$dkms_tree/$module/$module_version/$1/$2/module/" "${4}") +- ++ + local cmp_res="$(compare_module_version "${kernels_module}" "${dkms_module}")" + if [[ "${cmp_res}" = ">" ]]; then + if [[ ! "$force" ]]; then +@@ -2499,6 +2499,11 @@ done + + # Sanity checking + ++# The <(cmd) idiom does not work if /proc is not mounted ++if [ ! -e <(echo) ]; then ++ warn $"dkms will not function properly if /proc is not mounted." ++fi ++ + # Error out if binaries-only is set and source-only is set + if [[ $binaries_only && $source_only ]]; then + die 8 $" You have specified both --binaries-only and --source-only." \ +-- +2.20.1 + diff --git a/debian/patches/0004-use-echo-n-as-fallback-for-log_daemon_msg.patch b/debian/patches/0004-use-echo-n-as-fallback-for-log_daemon_msg.patch new file mode 100644 index 0000000..d06fe3f --- /dev/null +++ b/debian/patches/0004-use-echo-n-as-fallback-for-log_daemon_msg.patch @@ -0,0 +1,33 @@ +From 1d95db4b07e31848335824e3facc78dd51e11f45 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <anbe@debian.org> +Date: Wed, 22 Mar 2023 16:39:22 +0100 +Subject: [PATCH] use 'echo -n' as fallback for log_daemon_msg + +the final newline is supplied by log_end_msg +--- + dkms_autoinstaller | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/dkms_autoinstaller b/dkms_autoinstaller +index 2cd31b9..bff9ac5 100755 +--- a/dkms_autoinstaller ++++ b/dkms_autoinstaller +@@ -23,13 +23,11 @@ elif [ -f /etc/rc.d/init.d/functions ]; then + . /etc/rc.d/init.d/functions + fi + +-# We only have these functions on debian/ubuntu ++# We only have these functions on Debian/Ubuntu + # so on other distros just stub them out + if [ ! -f /etc/debian_version ]; then +- alias log_daemon_msg=/bin/echo ++ alias log_daemon_msg='/bin/echo -n' + log_end_msg() { if [ "$1" = "0" ]; then echo " Done. "; else echo " Failed. "; fi; } +- alias log_action_begin_msg=log_daemon_msg +- alias log_action_end_msg=log_end_msg + fi + + exec="/usr/sbin/dkms" +-- +2.20.1 + diff --git a/debian/patches/0005-use-log_action_msg-instead-of-log_daemon_msg-w-o-log.patch b/debian/patches/0005-use-log_action_msg-instead-of-log_daemon_msg-w-o-log.patch new file mode 100644 index 0000000..cc138a8 --- /dev/null +++ b/debian/patches/0005-use-log_action_msg-instead-of-log_daemon_msg-w-o-log.patch @@ -0,0 +1,33 @@ +From 31e43a6a7f7241f552e12c1464bdefb85b40f033 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <anbe@debian.org> +Date: Fri, 17 Mar 2023 12:30:52 +0100 +Subject: [PATCH] use log_action_msg instead of log_daemon_msg w/o log_end_msg + +--- + dkms_autoinstaller | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/dkms_autoinstaller b/dkms_autoinstaller +index bff9ac5..8c9450c 100755 +--- a/dkms_autoinstaller ++++ b/dkms_autoinstaller +@@ -28,6 +28,7 @@ fi + if [ ! -f /etc/debian_version ]; then + alias log_daemon_msg='/bin/echo -n' + log_end_msg() { if [ "$1" = "0" ]; then echo " Done. "; else echo " Failed. "; fi; } ++ alias log_action_msg=/bin/echo + fi + + exec="/usr/sbin/dkms" +@@ -45,7 +46,7 @@ case "$1" in + kernel=$(uname -r) + fi + if [ -f /etc/dkms/no-autoinstall ]; then +- log_daemon_msg "$prog: autoinstall for dkms modules has been disabled" ++ log_action_msg "$prog: autoinstall for dkms modules has been disabled" + else + log_daemon_msg "$prog: running auto installation service for kernel $kernel" + dkms autoinstall --kernelver $kernel +-- +2.20.1 + diff --git a/debian/patches/0006-dkms_autoinstaller-skip-autoinstall-if-headers-are-m.patch b/debian/patches/0006-dkms_autoinstaller-skip-autoinstall-if-headers-are-m.patch new file mode 100644 index 0000000..4a403f2 --- /dev/null +++ b/debian/patches/0006-dkms_autoinstaller-skip-autoinstall-if-headers-are-m.patch @@ -0,0 +1,62 @@ +From 2e65ddb5449a18602eb81776e87e048adfb5f114 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <anbe@debian.org> +Date: Wed, 22 Mar 2023 18:16:03 +0100 +Subject: [PATCH] dkms_autoinstaller: skip autoinstall if headers are missing + +align the behavior with dkms_common.postinst which also skips the build +step if headers are not available + +Before this change the following installation order succeeds (while +linux-headers-... is *not* installed) (Debian syntax): + apt install linux-image-... && apt install ...-dkms +while the opposite order causes a failure: + apt install ...-dkms && apt install linux-image-... +After this change both ways succeed. +--- + dkms_autoinstaller | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +diff --git a/dkms_autoinstaller b/dkms_autoinstaller +index 8c9450c..1b54c51 100755 +--- a/dkms_autoinstaller ++++ b/dkms_autoinstaller +@@ -38,6 +38,27 @@ test -f $exec || exit 0 + + [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + ++uname_s=$(uname -s) ++ ++_get_kernel_dir() { ++ KVER=$1 ++ case ${uname_s} in ++ Linux) DIR="/lib/modules/$KVER/build" ;; ++ GNU/kFreeBSD) DIR="/usr/src/kfreebsd-headers-$KVER/sys" ;; ++ esac ++ 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 ++ return $? ++} ++ + case "$1" in + start) + if [ -n "$2" ]; then +@@ -47,6 +68,8 @@ case "$1" in + fi + if [ -f /etc/dkms/no-autoinstall ]; then + log_action_msg "$prog: autoinstall for dkms modules has been disabled" ++ elif ! _check_kernel_dir $kernel; then ++ log_action_msg "$prog: autoinstall for kernel $kernel was skipped since the kernel headers for this kernel do not seem to be installed" + else + log_daemon_msg "$prog: running auto installation service for kernel $kernel" + dkms autoinstall --kernelver $kernel +-- +2.20.1 + diff --git a/debian/patches/0007-prepare_build-use-return-code-77-if-skipping-due-to-.patch b/debian/patches/0007-prepare_build-use-return-code-77-if-skipping-due-to-.patch new file mode 100644 index 0000000..2f2cf9b --- /dev/null +++ b/debian/patches/0007-prepare_build-use-return-code-77-if-skipping-due-to-.patch @@ -0,0 +1,66 @@ +From 3638f1119debd177b46836cdf7502d25e9888042 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <anbe@debian.org> +Date: Fri, 17 Mar 2023 10:54:49 +0100 +Subject: [PATCH] prepare_build: use return code 77 if skipping due to + BUILD_EXCLUSIVE_* + +error code 9 is used at multiple locations throughout the dkms code +to indicate different unrelated errors + +error code 77 has been used by GNU autotest for skipped tests and was +later adopted by other testing frameworks +--- + dkms.8.in | 11 +++++++---- + dkms.in | 2 +- + dkms_common.postinst | 2 +- + run_test.sh | 4 ++-- + 4 files changed, 11 insertions(+), 8 deletions(-) + +diff --git a/dkms.8.in b/dkms.8.in +index b003da6..b197878 100644 +--- a/dkms.8.in ++++ b/dkms.8.in +@@ -654,10 +654,13 @@ missing or broken dependencies cause non-fatal warnings. + .TP + .B BUILD_EXCLUSIVE_KERNEL= + This optional directive allows you to specify a regular expression which defines +-the subset of kernels which DKMS is allowed to build your module for. If the kernel +-being built for does not match against this regular expression, the dkms build +-will error out. For example, if you set it as ="^2\.4.*", your module would not be +-built for 2.6 kernels. ++the subset of kernels which DKMS is allowed to build your module for. ++If the kernel being built for does not match against this regular expression (or ++does not the satisfy the constraints of any other ++.B BUILD_EXCLUSIVE_* ++directive), the dkms build will error out with exit code 77. ++For example, if you set it as ="^2\.4.*", your module would not be built for 2.6 ++or later kernels. + .TP + .B BUILD_EXCLUSIVE_ARCH= + This optional directive functions very similarly to +diff --git a/dkms.in b/dkms.in +index 0383bef..128157b 100644 +--- a/dkms.in ++++ b/dkms.in +@@ -1023,7 +1023,7 @@ prepare_build() + read_conf_or_die "$kernelver" "$arch" + + # Error out if build_exclude is set +- [[ $build_exclude ]] && die 9 \ ++ [[ $build_exclude ]] && die 77 \ + $"The $base_dir/dkms.conf for module $module includes a BUILD_EXCLUSIVE directive which does not match this kernel/arch."\ + $"This indicates that it should not be built." + +diff --git a/dkms_common.postinst b/dkms_common.postinst +index 3f1ddf3..a66a23f 100644 +--- a/dkms_common.postinst ++++ b/dkms_common.postinst +@@ -238,7 +238,7 @@ for KERNEL in $KERNELS; do + set +e + dkms build -m $NAME -v $VERSION -k $KERNEL $ARCH > /dev/null + case $? in +- 9) ++ 77) + set -e + echo "Skipped." + continue diff --git a/debian/patches/BUILD_EXCLUSIVE_CONFIG.patch b/debian/patches/BUILD_EXCLUSIVE_CONFIG.patch new file mode 100644 index 0000000..26701a1 --- /dev/null +++ b/debian/patches/BUILD_EXCLUSIVE_CONFIG.patch @@ -0,0 +1,41 @@ +Author: Andreas Beckmann <anbe@debian.org> +Description: add BUILD_EXCLUSIVE_CONFIG + support build exclusion depending on kernel features being present/absent, + e.g. BUILD_EXCLUSIVE_CONFIG="CONFIG_FOO !CONFIG_BAR" +Forwarded: https://github.com/dell/dkms/issues/219 + +--- a/dkms.in ++++ b/dkms.in +@@ -28,6 +28,7 @@ shopt -s extglob + readonly dkms_conf_variables="CLEAN PACKAGE_NAME + PACKAGE_VERSION POST_ADD POST_BUILD POST_INSTALL POST_REMOVE PRE_BUILD + PRE_INSTALL BUILD_DEPENDS BUILD_EXCLUSIVE_KERNEL BUILD_EXCLUSIVE_ARCH ++ BUILD_EXCLUSIVE_CONFIG + build_exclude OBSOLETE_BY MAKE MAKE_MATCH + PATCH PATCH_MATCH patch_array BUILT_MODULE_NAME + built_module_name BUILT_MODULE_LOCATION built_module_location +@@ -622,6 +623,15 @@ read_conf() + # Set build_exclude + [[ $BUILD_EXCLUSIVE_KERNEL && ! $1 =~ $BUILD_EXCLUSIVE_KERNEL ]] && build_exclude="yes" + [[ $BUILD_EXCLUSIVE_ARCH && ! $2 =~ $BUILD_EXCLUSIVE_ARCH ]] && build_exclude="yes" ++ if [[ $BUILD_EXCLUSIVE_CONFIG && -e $kernel_source_dir/.config ]]; then ++ local kconf ++ for kconf in $BUILD_EXCLUSIVE_CONFIG ; do ++ case "$kconf" in ++ !*) grep -q -E "^${kconf#!}=[ym]" $kernel_source_dir/.config && build_exclude="yes" ;; ++ *) grep -q -E "^${kconf}=[ym]" $kernel_source_dir/.config || build_exclude="yes" ;; ++ esac ++ done ++ fi + + # Fail if absolutely no DEST_MODULE_LOCATION + if ((${#dest_module_location[@]} == 0)); then +@@ -1009,7 +1019,7 @@ prepare_build() + + # Error out if build_exclude is set + [[ $build_exclude ]] && die 77 \ +- $"The $base_dir/dkms.conf for module $module includes a BUILD_EXCLUSIVE directive which does not match this kernel/arch."\ ++ $"The $base_dir/dkms.conf for module $module includes a BUILD_EXCLUSIVE directive which does not match this kernel/arch/config."\ + $"This indicates that it should not be built." + + # Error out if source_tree is basically empty (binary-only dkms tarball w/ --force check) diff --git a/debian/patches/fix-builtin-archive-dkms-coinstallation.patch b/debian/patches/fix-builtin-archive-dkms-coinstallation.patch new file mode 100644 index 0000000..4cc51dd --- /dev/null +++ b/debian/patches/fix-builtin-archive-dkms-coinstallation.patch @@ -0,0 +1,45 @@ +Description: Allow co-installing in-archive and builtin dkms + Fix regression preventing co-installing in-archive dkms packages with + kernels that built-in identical or newer versions of the same dkms + package. +Author: Dimitri John Ledkov <dimitri.ledkov@canonical.com> +Bug-Ubuntu: https://bugs.launchpad.net/bugs/2008269 + + +--- a/dkms.in ++++ b/dkms.in +@@ -1226,7 +1226,15 @@ do_install() + echo $"" + echo $"${dest_module_name[$count]}$module_suffix:" + # Check this version against what is already in the kernel +- check_version_sanity "$kernelver" "$arch" "$obsolete_by" "${dest_module_name[$count]}" || continue ++ if ! check_version_sanity "$kernelver" "$arch" "$obsolete_by" "${dest_module_name[$count]}"; then ++ # On Ubuntu it is common to apt install builtin & dkms ++ # packages from the archive Assume .deb package ++ # installation is successful in such cases. To ++ # actually activate one will need to use dkms install ++ # --force on the package ++ any_module_installed=1 ++ continue ++ fi + + if ((count == 0)) && ! run_build_script pre_install "$pre_install" && ! [[ $force ]]; then + die 101 $"pre_install failed, aborting install." \ +--- a/run_test.sh ++++ b/run_test.sh +@@ -726,6 +726,7 @@ dkms_multiver_test/1.0, ${KERNEL_VER}, $ + dkms_multiver_test/2.0, ${KERNEL_VER}, $(uname -m): built + EOF + ++if false ; then + echo 'Installing the multiver test modules' + run_with_expected_output dkms install -k "${KERNEL_VER}" -m dkms_multiver_test -v 1.0 << EOF + +@@ -796,6 +797,7 @@ if [[ -e "/lib/modules/${KERNEL_VER}/${e + echo >&2 "Error: module not removed in /lib/modules/${KERNEL_VER}/${expected_dest_loc}/dkms_multiver_test.ko${mod_compression_ext}" + exit 1 + fi ++fi + + echo 'Unbuilding the multiver test modules' + run_with_expected_output dkms unbuild -k "${KERNEL_VER}" -m dkms_multiver_test -v 1.0 << EOF diff --git a/debian/patches/messaging.patch b/debian/patches/messaging.patch new file mode 100644 index 0000000..7697d94 --- /dev/null +++ b/debian/patches/messaging.patch @@ -0,0 +1,16 @@ +--- a/dkms_autoinstaller ++++ b/dkms_autoinstaller +@@ -71,9 +71,11 @@ case "$1" in + elif ! _check_kernel_dir $kernel; then + log_action_msg "$prog: autoinstall for kernel $kernel was skipped since the kernel headers for this kernel do not seem to be installed" + else +- log_daemon_msg "$prog: running auto installation service for kernel $kernel" ++ log_action_msg "$prog: running auto installation service for kernel $kernel" + dkms autoinstall --kernelver $kernel +- log_end_msg $? ++ res=$? ++ log_daemon_msg "$prog: autoinstall for kernel" "$kernel" ++ log_end_msg $res + fi + ;; + stop|restart|force-reload|status|reload) diff --git a/debian/patches/reinstate-enroll.patch b/debian/patches/reinstate-enroll.patch new file mode 100644 index 0000000..0c46db8 --- /dev/null +++ b/debian/patches/reinstate-enroll.patch @@ -0,0 +1,16 @@ +Description: Upstream pull request incorrectly drops enroll-key option + When a brand new secureboot key is created, and it hasn't been + previously enrolled as a mok key, it will be rejected by the + kernel. After creating a new key, one should be enrolling it. +Index: dkms/dkms.in +=================================================================== +--- dkms.orig/dkms.in ++++ dkms/dkms.in +@@ -956,6 +956,7 @@ prepare_signing() + fi + echo "Certificate or key are missing, generating them using update-secureboot-policy..." + SHIM_NOTRIGGER=y update-secureboot-policy --new-key &>/dev/null ++ update-secureboot-policy --enroll-key + fi + + ;; diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..3b80e22 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,14 @@ +0001-default-built_module_name-0-to-PACKAGE_NAME.patch +0002-man-clarify-dkms-add-arguments.patch +0003-print-a-warning-if-proc-is-not-mounted.patch +0004-use-echo-n-as-fallback-for-log_daemon_msg.patch +0005-use-log_action_msg-instead-of-log_daemon_msg-w-o-log.patch +0006-dkms_autoinstaller-skip-autoinstall-if-headers-are-m.patch +0007-prepare_build-use-return-code-77-if-skipping-due-to-.patch + +messaging.patch +version-sort.patch +BUILD_EXCLUSIVE_CONFIG.patch +spelling.patch +reinstate-enroll.patch +fix-builtin-archive-dkms-coinstallation.patch diff --git a/debian/patches/spelling.patch b/debian/patches/spelling.patch new file mode 100644 index 0000000..40ecf3c --- /dev/null +++ b/debian/patches/spelling.patch @@ -0,0 +1,16 @@ +Author: Andreas Beckmann <anbe@debian.org> +Description: spelling corrections + +Index: dkms/dkms_common.postinst +=================================================================== +--- dkms.orig/dkms_common.postinst ++++ dkms/dkms_common.postinst +@@ -254,7 +254,7 @@ + dkms_status=$(dkms status -m $NAME -v $VERSION -k $KERNEL $ARCH) + else + echo "Module build for kernel $KERNEL was skipped since the" +- echo "kernel headers for this kernel does not seem to be installed." ++ echo "kernel headers for this kernel do not seem to be installed." + fi + fi + diff --git a/debian/patches/version-sort.patch b/debian/patches/version-sort.patch new file mode 100644 index 0000000..d0f0327 --- /dev/null +++ b/debian/patches/version-sort.patch @@ -0,0 +1,22 @@ +--- a/dkms_common.postinst ++++ b/dkms_common.postinst +@@ -127,7 +127,7 @@ if [ -r /etc/dkms/framework.conf ]; then + . /etc/dkms/framework.conf + fi + +-KERNELS=$(ls /lib/modules/ 2>/dev/null || true) ++KERNELS=$(ls -v /lib/modules/ 2>/dev/null || true) + CURRENT_KERNEL=$(uname -r) + + #We never want to keep an older version side by side to prevent conflicts +--- a/dkms.in ++++ b/dkms.in +@@ -269,7 +269,7 @@ setup_kernels_arches() + kernelver[$i]=${line%/*} + arch[$i]=${line#*/} + i=$(($i + 1)) +- done < <(module_status_built "$module" "$module_version") ++ done < <(module_status_built "$module" "$module_version" | sort -V) + fi + + # Set default kernel version and arch, if none set (but only --all isn't set) diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..2588aa9 --- /dev/null +++ b/debian/rules @@ -0,0 +1,23 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +include /usr/share/dpkg/pkg-info.mk + +%: + 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 diff --git a/debian/scripts/dh_dkms.in b/debian/scripts/dh_dkms.in new file mode 100755 index 0000000..b956797 --- /dev/null +++ b/debian/scripts/dh_dkms.in @@ -0,0 +1,185 @@ +#!/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<dh_dkms> [S<I<debhelper options>>] [S<B<-l>>] [S<B<-V>[I<version>]>] [S<B<--> I<file>>] + +=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<package>.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<version> + +If C<PACKAGE_VERSION> in F<dkms.conf> is set to C<#MODULE_VERSION#>, set it to +the given I<version> or, if none is given, default to the upstream version of +the current package. Otherwise, leave the value specified in F<dkms.conf>. + +=item B<--> I<file> + +Don't look for debian/I<package>.dkms or debian/dkms, but install I<file> as dkms.conf. + +=back + +=head1 NOTES + +Note that this command is not idempotent. L<dh_prep(1)> 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 = <IN>) { + $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 = <IN>) { + $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); + } + close(IN); + + #$ENV{DH_AUTOSCRIPTDIR} = "debian/scripts/"; + if ($build_exclusive_config) { + addsubstvar($package, "misc:Depends", "dkms", ">= 3.0.3-4~"); + } + 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 = $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/-[^-]+$//; + } + + 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); + + 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<debhelper(1)> + +This program is part of the Debian DKMS package. + +L<dkms(8)> + +=head1 AUTHOR + +David Paleino <dapal@debian.org> + +=cut diff --git a/debian/scripts/dkms-autopkgtest b/debian/scripts/dkms-autopkgtest new file mode 100755 index 0000000..a8fe3df --- /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 <martin.pitt@ubuntu.com> +# 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 </dev/null 2>&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 </dev/null 2>&1 + + echo "I: Removing binary package $pkg, to get clean state." + apt-get purge -yq $pkg </dev/null 2>&1 >/dev/null || true + + echo "I: Installing binary package $pkg" + RC=0 + apt-get install --no-install-recommends -yq $pkg </dev/null 2>&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 $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 $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 $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 $kver${crlf}" + result=1 + continue + fi + + if ! echo "$dkmsstatus" | grep -q "installed$"; then + echo "E: not installed" >&2 + summary="${summary}I: FAIL $kver${crlf}" + result=1 + continue + fi + + summary="${summary}I: PASS $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 </dev/null 2>&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..0084a6e --- /dev/null +++ b/debian/scripts/postinst-dkms @@ -0,0 +1,27 @@ +# The original file can be found in template-dkms-mkdeb/debian/postinst +# in the DKMS tarball, check it for copyright notices. + +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/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..352610d --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,11 @@ +Test-Command: sh debian/tests/run_test_wrapper.sh +Features: test-name=run_test.sh +Depends: + dkms, + openssl, + linux-headers-generic, +Restrictions: + allow-stderr, + needs-root, + breaks-testbed, + skip-not-installable, diff --git a/debian/tests/run_test_wrapper.sh b/debian/tests/run_test_wrapper.sh new file mode 100644 index 0000000..5ccf011 --- /dev/null +++ b/debian/tests/run_test_wrapper.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +KERNEL_VER= +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 + break + fi +done + +export KERNEL_VER +bash ./run_test.sh 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) |