Skip to content
Snippets Groups Projects
  • Rasmus Villemoes's avatar
    5c02350f
    scripts/setlocalversion: sync with linux v6.9 · 5c02350f
    Rasmus Villemoes authored and Tom Rini's avatar Tom Rini committed
    
    The changes upstream since the last sync (2ed1b242
    "scripts/setlocalversion: sync with linux 5.8") are
    
    (5) 548b8b5168c9 scripts/setlocalversion: make git describe output more reliable
        77a88274dc1a kbuild: replace LANG=C with LC_ALL=C
        2a73cce2dad3 scripts/setlocalversion: remove mercurial, svn and git-svn supports
        a2be76a352f1 scripts/setlocalversion: remove workaround for old make-kpkg
        ffaf62a8050b scripts/setlocalversion: add more comments to -dirty flag detection
        630ff0faf84e scripts/setlocalversion: factor out 12-chars hash construction
        042da426f8eb scripts/setlocalversion: simplify the short version part
        5df99bec210a scripts/setlocalversion: fix a bug when LOCALVERSION is empty
    (1) 7d153696e5db kbuild: do not include include/config/auto.conf from shell scripts
    (2) 129ab0d2d9f3 kbuild: do not quote string values in include/config/auto.conf
        f6e09b07cc12 kbuild: do not put .scmversion into the source tarball
        992ebfab2a75 setlocalversion: simplify the construction of the short version
        75280bdf49b2 setlocalversion: make indentation shallower
    (3) ec31f868ec67 setlocalversion: absorb $(KERNELVERSION)
        eed36d775177 setlocalversion: clean up the construction of version output
    (4) 6ab7e1f95e96 setlocalversion: use only the correct release tag for git-describe
        05e96e96a315 kbuild: use git-archive for source package creation
        3354c64d4184 scripts/setlocalversion: clean up stale comment
        01e89a4acefc scripts/setlocalversion: also consider annotated tags of the form vx.y.z-${file_localversion}
    
    The only thing U-Boot has been applying on top was to deal with not
    sourcing include/config/auto.conf but instead using awk to extract the
    right value. Commit (1) did a very similar thing upstream, so we no
    longer need to do that. However, upstream then went a step further (2)
    and changed the convention for what goes into auto.conf, so RHS no
    longer contain double-quotes. That commit thus changed the sed pattern
    to no longer match those quotes, but as U-Boot has not yet adopted
    that change, we have to deal with that. In order to be a little
    forward-compatible, I did that in a way that should work both ways:
    
     # version string from CONFIG_LOCALVERSION
    -config_localversion=$(sed -n 's/^CONFIG_LOCALVERSION=\(.*\)$/\1/p' include/config/auto.conf)
    +config_localversion=$(sed -n 's/^CONFIG_LOCALVERSION=\(.*\)$/\1/p' include/config/auto.conf | tr -d '"')
    
    Furthermore, (3) now requires that there is an appropriate
    KERNELVERSION environment variable set. One way to deal with that
    would be to just modify the script to use UBOOTVERSION instead, but
    for now I've instead opted to let the Makefile provide
    KERNELVERSION=$(UBOOTVERSION) to keep the setlocalversion changes
    minimal.
    
    That variable is further put to use in (4). Note that the logic for
    mapping *VERSION -> [upstream annotated tag to look for] works
    unchanged in U-Boot for the current versioning scheme 20XX.YY(-rcN)?.
    
    My motivation for wanting to do this sync is to get (4) and (5), in
    order to get the setlocalversion output both more predictable and
    consistent across different build environments, i.e. independent of
    random local .gitconfig settings, total number of git objects and/or
    existence of unrelated tags (possibly from some tracked fork).
    
    Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
    5c02350f
    History
    scripts/setlocalversion: sync with linux v6.9
    Rasmus Villemoes authored and Tom Rini's avatar Tom Rini committed
    
    The changes upstream since the last sync (2ed1b242
    "scripts/setlocalversion: sync with linux 5.8") are
    
    (5) 548b8b5168c9 scripts/setlocalversion: make git describe output more reliable
        77a88274dc1a kbuild: replace LANG=C with LC_ALL=C
        2a73cce2dad3 scripts/setlocalversion: remove mercurial, svn and git-svn supports
        a2be76a352f1 scripts/setlocalversion: remove workaround for old make-kpkg
        ffaf62a8050b scripts/setlocalversion: add more comments to -dirty flag detection
        630ff0faf84e scripts/setlocalversion: factor out 12-chars hash construction
        042da426f8eb scripts/setlocalversion: simplify the short version part
        5df99bec210a scripts/setlocalversion: fix a bug when LOCALVERSION is empty
    (1) 7d153696e5db kbuild: do not include include/config/auto.conf from shell scripts
    (2) 129ab0d2d9f3 kbuild: do not quote string values in include/config/auto.conf
        f6e09b07cc12 kbuild: do not put .scmversion into the source tarball
        992ebfab2a75 setlocalversion: simplify the construction of the short version
        75280bdf49b2 setlocalversion: make indentation shallower
    (3) ec31f868ec67 setlocalversion: absorb $(KERNELVERSION)
        eed36d775177 setlocalversion: clean up the construction of version output
    (4) 6ab7e1f95e96 setlocalversion: use only the correct release tag for git-describe
        05e96e96a315 kbuild: use git-archive for source package creation
        3354c64d4184 scripts/setlocalversion: clean up stale comment
        01e89a4acefc scripts/setlocalversion: also consider annotated tags of the form vx.y.z-${file_localversion}
    
    The only thing U-Boot has been applying on top was to deal with not
    sourcing include/config/auto.conf but instead using awk to extract the
    right value. Commit (1) did a very similar thing upstream, so we no
    longer need to do that. However, upstream then went a step further (2)
    and changed the convention for what goes into auto.conf, so RHS no
    longer contain double-quotes. That commit thus changed the sed pattern
    to no longer match those quotes, but as U-Boot has not yet adopted
    that change, we have to deal with that. In order to be a little
    forward-compatible, I did that in a way that should work both ways:
    
     # version string from CONFIG_LOCALVERSION
    -config_localversion=$(sed -n 's/^CONFIG_LOCALVERSION=\(.*\)$/\1/p' include/config/auto.conf)
    +config_localversion=$(sed -n 's/^CONFIG_LOCALVERSION=\(.*\)$/\1/p' include/config/auto.conf | tr -d '"')
    
    Furthermore, (3) now requires that there is an appropriate
    KERNELVERSION environment variable set. One way to deal with that
    would be to just modify the script to use UBOOTVERSION instead, but
    for now I've instead opted to let the Makefile provide
    KERNELVERSION=$(UBOOTVERSION) to keep the setlocalversion changes
    minimal.
    
    That variable is further put to use in (4). Note that the logic for
    mapping *VERSION -> [upstream annotated tag to look for] works
    unchanged in U-Boot for the current versioning scheme 20XX.YY(-rcN)?.
    
    My motivation for wanting to do this sync is to get (4) and (5), in
    order to get the setlocalversion output both more predictable and
    consistent across different build environments, i.e. independent of
    random local .gitconfig settings, total number of git objects and/or
    existence of unrelated tags (possibly from some tracked fork).
    
    Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>