I use to boot own git master vanilla kernel updates, which recently got a kernel release version string of x=$(uname -r)="2.6.39+". This kernel version isn't stripped in the right way by the expression in /lib/udev/shell-compat-KV.sh +17 local x=${1%%-*} which cuts of anything after the first "-" in the release version string. Reproducible: Always Expected Results: What we actually want is a stripped version string consisting of digits and DOTs ".", i.e. "2.6.39" in our case. so why not exchange line 17 with the expression of what we really want: local x=${1%%[^.0-9]*} which cuts off anything from the first character that isn't a DIGIT or a DOT. If you want to allow spaces too, you might, but they are not needed here.
Thanks for your report and suggested solution, assigning to udev maintainers
fixed in udev-171-r1
*** Bug 352116 has been marked as a duplicate of this bug. ***