[PATCH v2 0/5] GIT-VERSION-GEN: fix overriding values
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Dec 20, 2024, 12:22 UTC
- Message-ID
- <20241220-b4-pks-git-version-via-environment-v2-0-f1457a5e8c38@pks.im>
- In-Reply-To
- <20241219-b4-pks-git-version-via-environment-v1-0-9393af058240@pks.im>
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 informationDocumentation/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