• [gentoo-dev] [PATCH v2 1/2] kernel-2.eclass: Replace bit-shift arithmet

    From =?UTF-8?q?Ulrich=20M=C3=BCller?=@21:1/5 to All on Sat Aug 28 07:50:01 2021
    There are kernel versions like 4.9.280, therefore shifting version
    components by 8 bits in kernel_is() may fail.

    Signed-off-by: Ulrich Müller <ulm@gentoo.org>
    ---
    v2: Protect against empty KV_{MAJOR,MINOR,PATCH}

    eclass/kernel-2.eclass | 9 +++++----
    1 file changed, 5 insertions(+), 4 deletions(-)

    diff --git a/eclass/kernel-2.eclass b/eclass/kernel-2.eclass
    index 8c1740998272..05c07c4d153e 100644
    --- a/eclass/kernel-2.eclass
    +++ b/eclass/kernel-2.eclass
    @@ -560,7 +560,7 @@ kernel_is() {
    [[ ${n} -eq 1 ]] && detect_version

    # Now we can continue
    - local operator test value
    + local operator

    case ${1#-} in
    lt) operator="-lt"; shift;;
    @@ -572,9 +572,10 @@ kernel_is() {
    esac
    [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters"

    - : $(( test = (KV_MAJOR << 16) + (KV_MINOR << 8) + KV_PATCH ))
    - : $(( value = (${1:-${KV_MAJOR}} << 16) + (${2:-${KV_MINOR}} << 8) + ${3:-${KV_PATCH}} ))
    - [ ${test} ${operator} ${value} ]
    + ver_test \
    + "${KV_MAJOR:-0}.${KV_MINOR:-0}.${KV_PATCH:-0}" \
    + "${operator}" \
    + "${1:-${KV_MAJOR:-0}}.${2:-${KV_MINOR:-0}}.${3:-${KV_PATCH:-0}}"
    }

    # Capture the sources type and s
  • From =?UTF-8?q?Ulrich=20M=C3=BCller?=@21:1/5 to All on Sat Aug 28 07:50:01 2021
    There are kernel versions like 4.9.280, therefore shifting version
    components by 8 bits in kernel_is() may fail.

    Signed-off-by: Ulrich Müller <ulm@gentoo.org>
    ---
    v2: Protect against empty KV_{MAJOR,MINOR,PATCH}

    eclass/linux-info.eclass | 9 +++++----
    1 file changed, 5 insertions(+), 4 deletions(-)

    diff --git a/eclass/linux-info.eclass b/eclass/linux-info.eclass
    index 124fb70e78ad..8edd17c317d4 100644
    --- a/eclass/linux-info.eclass
    +++ b/eclass/linux-info.eclass
    @@ -395,7 +395,7 @@ kernel_is() {
    linux-info_get_any_version

    # Now we can continue
    - local operator test value
    + local operator

    case ${1#-} in
    lt) operator="-lt"; shift;;
    @@ -407,9 +407,10 @@ kernel_is() {
    esac
    [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters"

    - : $(( test = (KV_MAJOR << 16) + (KV_MINOR << 8) + KV_PATCH ))
    - : $(( value = (${1:-${KV_MAJOR}} << 16) + (${2:-${KV_MINOR}} << 8) + ${3:-${KV_PATCH}} ))
    - [ ${test} ${operator} ${value} ]
    + ver_test \
    + "${KV_MAJOR:-0}.${KV_MINOR:-0}.${KV_PATCH:-0}" \
    + "${operator}" \
    + "${1:-${KV_MAJOR:-0}}.${2:-${KV_MINOR:-0}}.${3:-${KV_PATCH:-0}}"
    }

    get_localversion() {
    --
    2.33