blino's website

Free software developer and more

So, we want to have a better dkms support in 2008.0, to make kernel updates happen smoothly regarding external kernel modules (mainly proprietary video drivers), as detailled in #30907.

A part of this long endeavor is to make dkms packages (both source dkms and prebuilt dkms) have kmod(<modname>) rpm Provides, so that other packages, install and configuration tools can request a specific module.

I patched rpm-mandriva-setup some weeks ago to automatically generate these kmod provides (heavily based on Danny's work). But this requires all dkms packages to be resubmitted, since a part of this automatic provides scripts acts on the dkms.conf files, which are part of the dkms source packages.

I used the new mdvsys features to do that:

mdvsys update --message "rebuild for kmod provides" <package list>

It mostly worked, but a perl operator priority bug prevented my message argument to be used, and will make me a fool in the changelogs (they read "update to new version").

I (dearly) hate guillomovitch for that.

After some usual build system troubles, I finally got most of the source dkms package rebuilt, only a few don't build, as my (clearly not optimized) scriptlet shows:

$ for p in /RPMS/{main,contrib,non-free}/release/dkms-*; do \
   rpm -qp --provides $p | grep -q kmod || rpm -qp --qf '%{SOURCERPM}\n' $p \
   | perl -ne '/^(.*)-[^-]+-[^-]+/ and print "$1\n"'; \
  done | sort -u | grep -v '^dkms$'

At this point, it only means that the packages containing the module source code are fine, and not that the source code inside will build fine...

For example, while testing some 56k modems, I noticed that hsfmodem/hcfpcimodem did not build anymore. An upgrade to the upstream versions was not enough, it fixed some build issues, but not the weirdest one... The scripts that tried to detect the gcc version what running gcc -v and tried to make it match some pattern. But well, it didn't work very well with french locale :-p (using LC_ALL=C fixed it).

On the next laptop I tried, there was a modem on top of HDA (High Definition Audio) bus, with a Si3054 codec. It does not work with the proprietary slamr modules, and may work with the ALSA snd-hda-intel one. While looking for user reports, I stumbled upon a patch from Claudio: Slmodem: period size 48 not supported. It was worth being committed in the distro, I wonder why Claudio didn't :-/

Still, no luck with this particular modem, we'd need to investigate more.

The scanModem utility (from Linmodems support) proved to be very useful for these tests, it detects a lot of modem chipsets, which helps to find the correct dirver. But unfortunately, its license is unclear, I can't package it in the distro right now.

Anyway, I'm not done with my quest yet (and it's only the "rebuild packages" part of it...). Our source dkms packages have to be rebuilt for each of our kernel packages, so that users can install prebuilt dkms packages, without requiring the whole toolchain to build kernel modules.

To accomplish that, I still need to baby-sit Warly's powerful Iurt (the rebuild bot), and probably fight against the build system some more times /o\

fesrts wrote at 2007-12-18 19:45:

Hello I was very much helped by the information with this article. Many thanks at you very fascinating resource.<a href=> uitm student portal</a> <a href=> acs student loan consolidation</a> <a href=> cfs student loan consolidation</a> <a href=> student loan forgiveness</a> <a href=> citibank student loan consolidation</a> Bye

Comments are closed for this story.

Trackbacks are closed for this story.

blosxom Optimised for standards.
Olivier Blin (2005)