Since 2.6.35 the kernel version string for user-built kernels may have a plus-sign-appended (e.g. 2.6.36+). This causes KV_to_int to fail (e.g. when called from check-kernel in udev-mount at boot). Reproducible: Always Steps to Reproduce: 1. $ source /lib/udev/shell-compat-KV.sh 2. $ KV_to_int 2.6.36+ Actual Results: actual output: bash: 2 * 65536 + 6 * 256 + 36+ : syntax error: operand expected (error token is "+ ") Expected Results: expected output: 132644 This applies to all versions of udev using shell-compat-KV.sh (i.e. 136, 147, 151-r4, 156, 161). The kernel version string gets a plus sign appended if the kernel is built from a non-tagged head commit (see kernel commit 85a256d8e0116c8f5ad276730830f5d4d473344d for details).
Created attachment 251919 [details, diff] fix broken KV_to_int This patch fixes KV_to_int by deleting the longest matching suffix not starting with a digit (i.e. [^0-9]*) from KV_MICRO instead of the longest matching suffix matching starting with a dot (i.e. .*).
I see nothing PMS related here. Removing from CC.
KV_to_int is now in /etc/init.d/udev and by the looks of it, it is fixed already for next stable >=197-r2, >=udev-init-scripts-19