mbox series

[v2,0/5] GIT-VERSION-GEN: fix overriding values

Message ID 20241220-b4-pks-git-version-via-environment-v2-0-f1457a5e8c38@pks.im (mailing list archive)
Headers show
Series GIT-VERSION-GEN: fix overriding values | expand

Message

Patrick Steinhardt Dec. 20, 2024, 12:22 p.m. UTC
Hi,

Peff reported that overriding GIT_VERSION and GIT_DATE broke recently
due to the refactoring of GIT-VERSION-GEN. This small commit series
fixes those cases, but also fixes the equivalent issue with
GIT_BUILT_FROM_COMMIT.

Changes in v2:

  - Don't strip leading `v`s when `GIT_VERSION` was set explicitly.
  - Allow setting build info via "config.mak" again.
  - Wire up build info options for Meson.
  - Link to v1: https://lore.kernel.org/r/20241219-b4-pks-git-version-via-environment-v1-0-9393af058240@pks.im

Thanks!

Patrick

---
Patrick Steinhardt (5):
      GIT-VERSION-GEN: fix overriding version via environment
      GIT-VERSION-GEN: fix overriding GIT_BUILT_FROM_COMMIT and GIT_DATE
      Makefile: drop unneeded indirection for GIT-VERSION-GEN outputs
      Makefile: respect build info declared in "config.mak"
      meson: add options to override build information

 Documentation/Makefile    |  6 ++----
 Documentation/meson.build |  1 +
 GIT-VERSION-GEN           | 25 +++++++++++++++++++++----
 Makefile                  |  6 ++----
 meson.build               | 13 +++++++++++++
 meson_options.txt         | 10 ++++++++++
 shared.mak                |  7 +++++++
 7 files changed, 56 insertions(+), 12 deletions(-)

Range-diff versus v1:

1:  3560d0934f ! 1:  f9aabaa9b7 GIT-VERSION-GEN: fix overriding version via environment
    @@ GIT-VERSION-GEN: export GIT_CEILING_DIRECTORIES
      then
      	VN=$(cat "$SOURCE_DIR"/version) || VN="$DEF_VER"
      elif {
    +@@ GIT-VERSION-GEN: else
    + 	VN="$DEF_VER"
    + fi
    + 
    +-GIT_VERSION=$(expr "$VN" : v*'\(.*\)')
    ++# Only strip leading `v` in case we have derived VN manually. Otherwise we
    ++# retain whatever the user has set in their environment.
    ++if test -z "$GIT_VERSION"
    ++then
    ++    GIT_VERSION=$(expr "$VN" : v*'\(.*\)')
    ++fi
    ++
    + GIT_BUILT_FROM_COMMIT=$(git -C "$SOURCE_DIR" rev-parse -q --verify HEAD 2>/dev/null)
    + GIT_DATE=$(git -C "$SOURCE_DIR" show --quiet --format='%as' 2>/dev/null)
    + if test -z "$GIT_USER_AGENT"
2:  ec7477d14e ! 2:  2db637757e GIT-VERSION-GEN: fix overriding GIT_BUILT_FROM_COMMIT and GIT_DATE
    @@ Commit message
     
      ## GIT-VERSION-GEN ##
     @@ GIT-VERSION-GEN: then
    - else
    - 	VN="$DEF_VER"
    +     GIT_VERSION=$(expr "$VN" : v*'\(.*\)')
      fi
    --
    - GIT_VERSION=$(expr "$VN" : v*'\(.*\)')
    + 
     -GIT_BUILT_FROM_COMMIT=$(git -C "$SOURCE_DIR" rev-parse -q --verify HEAD 2>/dev/null)
     -GIT_DATE=$(git -C "$SOURCE_DIR" show --quiet --format='%as' 2>/dev/null)
    -+
     +if test -z "$GIT_BUILT_FROM_COMMIT"
     +then
     +    GIT_BUILT_FROM_COMMIT=$(git -C "$SOURCE_DIR" rev-parse -q --verify HEAD 2>/dev/null)
-:  ---------- > 3:  1024d10b46 Makefile: drop unneeded indirection for GIT-VERSION-GEN outputs
-:  ---------- > 4:  14a2e5d7bb Makefile: respect build info declared in "config.mak"
-:  ---------- > 5:  974ab29b35 meson: add options to override build information

---
base-commit: d882f382b3d939d90cfa58d17b17802338f05d66
change-id: 20241219-b4-pks-git-version-via-environment-035490abec26

Comments

Jeff King Dec. 20, 2024, 3:56 p.m. UTC | #1
On Fri, Dec 20, 2024 at 01:22:44PM +0100, Patrick Steinhardt wrote:

> Changes in v2:
> 
>   - Don't strip leading `v`s when `GIT_VERSION` was set explicitly.
>   - Allow setting build info via "config.mak" again.
>   - Wire up build info options for Meson.
>   - Link to v1: https://lore.kernel.org/r/20241219-b4-pks-git-version-via-environment-v1-0-9393af058240@pks.im

Thanks, I confirmed that this fixes the doc-diff issue, and setting
values in config.mak works.

I left some small comments on patch 1. Patches 2-4 look good to me, and
I'm not qualified to comment on meson patches. ;)

-Peff