From 118e882a76d2984fa042cc079c61c868a17748e3 Mon Sep 17 00:00:00 2001 From: Toon Claes Date: Fri, 7 Mar 2025 13:28:02 +0100 Subject: [PATCH 1/3] Ensure zlib version is printed by git-version(1) I was trying to benchmark the difference between using zlib and zlib-ng. To be sure I was testing the correct version, I was interested if git-version(1) would tell which zlib library it uses. After some digging I saw it should be printing the zlib version number, but on my machine it wasn't. I discovered a regression caused by 41f1a8435a (git-compat-util: move include of "compat/zlib.h" into "git-zlib.h", 2025-01-28). In the first commit I'm addressing that regression. But I've noticed building against zlib-ng directly still didn't print the zlib version. This issue is resolved in the second commit. -- Toon Signed-off-by: Toon Claes Cc: Patrick Steinhardt --- b4-submit-tracking --- # This section is used internally by b4 prep for tracking purposes. { "series": { "revision": 1, "change-id": "20250307-toon-zlib-git-version-a7dcb9caa1ef", "prefixes": [] } } -- GitLab From 21abcc5841ec8b96eca449fbf0f7fe7ae4813d8c Mon Sep 17 00:00:00 2001 From: Toon Claes Date: Fri, 7 Mar 2025 14:05:55 +0100 Subject: [PATCH 2/3] help: include git-zlib.h to print zlib version In 41f1a8435a (git-compat-util: move include of "compat/zlib.h" into "git-zlib.h", 2025-01-28) some code was refactored to enable easier linking against zlib-ng. This removed `zlib.h` being indirectly included in `help.c`. As this file uses `ZLIB_VERSION` to print the version number of zlib when running git-version(1) with `--build-options`, this resulted in a regression. Include `git-zlib.h` directly into `help.c` to print zlib version information. This brings back the zlib version in the output of `git version --build-options`. Signed-off-by: Toon Claes --- help.c | 1 + 1 file changed, 1 insertion(+) diff --git a/help.c b/help.c index 8d91afe851d..707cd59b798 100644 --- a/help.c +++ b/help.c @@ -2,6 +2,7 @@ #define DISABLE_SIGN_COMPARE_WARNINGS #include "git-compat-util.h" +#include "git-zlib.h" #include "config.h" #include "builtin.h" #include "exec-cmd.h" -- GitLab From 2c99aff838e01237950f933002bed515cbaf4926 Mon Sep 17 00:00:00 2001 From: Toon Claes Date: Fri, 7 Mar 2025 14:12:44 +0100 Subject: [PATCH 3/3] help: print zlib-ng version number When building against zlib-ng, the header file `zlib.h` is not included, but `zlib-ng.h` is included instead. It's `zlib.h` that defines `ZLIB_VERSION` and that macro is used to print out zlib version in `git-version(1)` with `--build-options`. But when it's not defined, no version is printed. `zlib-ng.h` defines another macro: `ZLIBNG_VERSION`. Use that macro to print the zlib-ng version in `git version --build-options` when it's set. Otherwise fallback to `ZLIB_VERSION`. Signed-off-by: Toon Claes Helped-by: Patrick Steinhardt --- help.c | 4 +++- t/t0091-bugreport.sh | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/help.c b/help.c index 707cd59b798..c54bd9918a5 100644 --- a/help.c +++ b/help.c @@ -798,7 +798,9 @@ void get_version_info(struct strbuf *buf, int show_build_options) #if defined OPENSSL_VERSION_TEXT strbuf_addf(buf, "OpenSSL: %s\n", OPENSSL_VERSION_TEXT); #endif -#if defined ZLIB_VERSION +#if defined ZLIBNG_VERSION + strbuf_addf(buf, "zlib-ng: %s\n", ZLIBNG_VERSION); +#elif defined ZLIB_VERSION strbuf_addf(buf, "zlib: %s\n", ZLIB_VERSION); #endif } diff --git a/t/t0091-bugreport.sh b/t/t0091-bugreport.sh index e11d819b62a..e38ca7a9018 100755 --- a/t/t0091-bugreport.sh +++ b/t/t0091-bugreport.sh @@ -47,7 +47,8 @@ test_expect_success 'sanity check "System Info" section' ' # This is bound to differ from environment to environment, # so we just do some rather high-level checks. grep "uname: ." system && - grep "compiler info: ." system + grep "compiler info: ." system && + grep "zlib." system ' test_expect_success 'dies if file with same name as report already exists' ' -- GitLab