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@xxxxxx 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