• Rasmus Villemoes's avatar
    scripts/setlocalversion: also consider annotated tags of the form vx.y.z-${file_localversion} · 01e89a4a
    Rasmus Villemoes authored
    Commit 6ab7e1f9 ("setlocalversion: use only the correct release
    tag for git-describe") was absolutely correct to limit which annotated
    tags would be used to compute the -01234-gabcdef suffix. Otherwise, if
    some random annotated tag exists closer to HEAD than the vX.Y.Z one,
    the commit count would be too low.
    
    However, since the version string always includes the
    ${file_localversion} part, now the problem is that the count can be
    too high. For example, building an 6.4.6-rt8 kernel with a few patches
    on top, I currently get
    
    $ make -s kernelrelease
    6.4.6-rt8-00128-gd78b7f406397
    
    But those 128 commits include the 100 commits that are in
    v6.4.6..v6.4.6-rt8, so this is somewhat misleading.
    
    Amend the logic so that, in addition to the linux-next consideration,
    the script also looks for a tag corresponding to the 6.4.6-rt8 part of
    what will become the `uname -r` string. With this patch (so 29 patches
    on top of v6.4.6-rt8), one instead gets
    
    $ make -s kernelrelease
    6.4.6-rt8-00029-gd533209291a2
    
    While there, note that the line
    
      git describe --exact-match --match=$tag $tag 2>/dev/null
    
    obviously asks if $tag is an annotated tag, but it does not actually
    tell if the commit pointed to has any relation to HEAD. So remove both
    uses of --exact-match, and instead just ask if the description
    generated is identical to the tag we provided. Since we then already
    have the result of
    
      git describe --match=$tag
    
    we also end up reducing the number of times we invoke "git describe".
    Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    01e89a4a
setlocalversion 4.59 KB