Pre-release kernel versioning

Thorsten Leemhuis fedora at leemhuis.info
Mon Apr 30 18:04:45 UTC 2007


Dave Jones schrieb:
> On Mon, Apr 30, 2007 at 07:09:31PM +0200, Thorsten Leemhuis wrote:
> 
>  > And sure, I fully understand that compiling a external module might
>  > break if the API that gets used changes between x, (x+1)-rc1 and (x+1).
>  > But that doesn't happen that often.
> Exactly the opposite, the bulk of the changes happen between x and x+1-rc1
> It's neither .20, nor .21 at that point.

Argh, my wording was bad. Sure I know that it's changing a lot between X
and x+1-rc1. But it doesn't happen often that it changes twice (what was
what I was up to).

To get back to the specific example to show the annoying problem of the
Fedora packaging in more detail:

Download madwifi 0.93 from
http://sourceforge.net/project/downloading.php?group_id=82936&use_mirror=switch&filename=madwifi-0.9.3.tar.bz2&2919227

Extract it and run this to not get confused by a different problem:
sed -i 's|COPTS+=.*-Werror||' Makefile.inc

Madwifi 0.93 includes a adjustment that was integrated weeks ago (e.g.
weeks before 2.6.21 even was released) to make it compile with both
2.6.20 and 2.6.21.

See include/compat.h ; relevant part:

#include <linux/version.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)
#define ATH_REGISTER_SYSCTL_TABLE(t) register_sysctl_table(t, 1)
#else
#define ATH_REGISTER_SYSCTL_TABLE(t) register_sysctl_table(t)
#endif

Compiling it against a recent 2.6.21 kernel from rawhide works just fine:

> $ LC_ALL=C make KERNELPATH=/usr/src/kernels/2.6.21-1.3116.fc7-i686/  KERNELRELEASE=2.6.21-1.3116.fc7 UUDECODE=/usr/bin/uudecode modules
> Checking requirements... ok.
> Checking kernel configuration... ok.
> make -C /usr/src/kernels/2.6.21-1.3116.fc7-i686/ SUBDIRS=/home/thl/tmp/madwifi-0.9.3 modules
> make[1]: Entering directory `/usr/src/kernels/2.6.21-1.3116.fc7-i686'
>   CC [M]  /home/thl/tmp/madwifi-0.9.3/ath/if_ath.o
[...]
>   LD [M]  /home/thl/tmp/madwifi-0.9.3/net80211/wlan_wep.ko
>   CC      /home/thl/tmp/madwifi-0.9.3/net80211/wlan_xauth.mod.o
>   LD [M]  /home/thl/tmp/madwifi-0.9.3/net80211/wlan_xauth.ko
> make[1]: Leaving directory `/usr/src/kernels/2.6.21-1.3116.fc7-i686'
> $ echo $?
> 0

Compiling it against the kernel from test4, which is nearly the same as
the final 2.6.21, fails, because Fedora is playing stupid tricks with
version in Makefile:

> $ LC_ALL=C make KERNELPATH=/usr/src/kernels/2.6.20-1.3104.fc7-i686/  KERNELRELEASE=2.6.20-1.3104.fc7 UUDECODE=/usr/bin/uudecode modules
> Checking requirements... ok.
> Checking kernel configuration... ok.
> make -C /usr/src/kernels/2.6.20-1.3104.fc7-i686/ SUBDIRS=/home/thl/tmp/madwifi-0.9.3 modules
> make[1]: Entering directory `/usr/src/kernels/2.6.20-1.3104.fc7-i686'
>   CC [M]  /home/thl/tmp/madwifi-0.9.3/ath/if_ath.o
> cc1: warnings being treated as errors
> /home/thl/tmp/madwifi-0.9.3/ath/if_ath.c: In function 'ath_sysctl_halparam':
> /home/thl/tmp/madwifi-0.9.3/ath/if_ath.c:9315: warning: comparison of unsigned expression < 0 is always false
> /home/thl/tmp/madwifi-0.9.3/ath/if_ath.c:9327: warning: comparison of unsigned expression < 0 is always false
> /home/thl/tmp/madwifi-0.9.3/ath/if_ath.c:9337: warning: comparison of unsigned expression < 0 is always false
> /home/thl/tmp/madwifi-0.9.3/ath/if_ath.c: In function 'ath_dynamic_sysctl_register':
> /home/thl/tmp/madwifi-0.9.3/ath/if_ath.c:9600: error: too many arguments to function 'register_sysctl_table'
> /home/thl/tmp/madwifi-0.9.3/ath/if_ath.c: In function 'ath_sysctl_register':
> /home/thl/tmp/madwifi-0.9.3/ath/if_ath.c:9754: error: too many arguments to function 'register_sysctl_table'
> make[3]: *** [/home/thl/tmp/madwifi-0.9.3/ath/if_ath.o] Error 1
> make[2]: *** [/home/thl/tmp/madwifi-0.9.3/ath] Error 2
> make[1]: *** [_module_/home/thl/tmp/madwifi-0.9.3] Error 2
> make[1]: Leaving directory `/usr/src/kernels/2.6.20-1.3104.fc7-i686'
> make: *** [modules] Error 2

This is just annoying, makes life harder for packagers of kernel-modules
in 3rd party repos and confuses users a lot. For no good reason IMHO.

CU
thl




More information about the Fedora-kernel-list mailing list