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