From Bugzilla Helper: User-Agent: Mozilla/5.0 (compatible; Konqueror/3.0.0-10; Linux) Description of problem: there is a find command in the kernel spec file: list=`find ../../savedheaders/*/*/modules/*.ver -exec basename '{}' \; | sort -u` that will fail when you have too many "platforms" or too many modules to compile for, this is due to find being passed too many arguments on the command line. The packaging will finish and rpm will not terminate with an error but modversioning will be broken in the generated kernel-source rpm. The quick fix is to change the line to: list=`find ../../savedheaders/* -name '*.ver' -exec basename '{}' \; | sort -u` Version-Release number of selected component (if applicable): How reproducible: Sometimes Steps to Reproduce: 1. Compile kernel from spec after adding a few modules or adding a new platform Actual Results: The packaging will finish and rpm will not terminate with an error but modversioning will be broken in the generated kernel-source rpm, because the *.ver files are not saved. Expected Results: *.ver files should be saved in kernel-source Additional info:
looks good; added for the next build. Thanks!
The proposed change (still missing in 2.4.18-10 !!) does reduce a length of arguments for 'find' but $list also may end up too long so this may only may prevent failures for a while. The real fix would be to replace this construct: list=`find .... | sort -u` mkdir modules for l in $list ; do <whatever> done with something following this pattern: mkdir modules find ../../savedheaders/* -name '*.ver' -exec basename '{}' \; | sort -u | \ while read l ; do <whatever - the same as above> done and then we do not have problems with $list which is too long. (Should this bug be reopened?)
The bug is "closed" but it shows up in recent kernel-2.4.18-17.7.x specs again. Just got bitten by it. Lack of attention but it is easy to forget and miss in specs of that size. Sigh!