git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 00/10] Platform compatibility fixes

From
Patrick Steinhardt <ps@pks.im>
Date
Oct 15, 2024, 11:45 UTC
Message-ID
<cover.1728992306.git.ps@pks.im>
In-Reply-To
<cover.1728906490.git.ps@pks.im>
Hi,

this is the second version of my patch series that includes various different platform compatibility fixes.

Changes compared to v1:
  - Provide a more in-depth explanation of the gitweb fix.
  - Fix up a stale comment in "lib-gitweb.sh".
  - Add a missing signoff.
Thanks!
Patrick
Patrick Steinhardt (10):
  t/test-lib: fix quoting of TEST_RESULTS_SAN_FILE
  t/test-lib: wire up NO_ICONV prerequisite
  t/lib-gitweb: test against the build version of gitweb
  t/lib-gpg: fix setup of GNUPGHOME in MinGW
  t1401: make invocation of tar(1) work with Win32-provided one
  t3404: work around platform-specific behaviour on macOS 10.15
  t5500, t5601: skip tests which exercise paths with '[::1]' on Cygwin
  t7300: work around platform-specific behaviour with long paths on
    MinGW
  builtin/credential-cache: fix missing parameter for stub function
  http: fix build error on FreeBSD
 Makefile                                     |   1 +
 builtin/credential-cache.c                   |   3 +-
 contrib/buildsystems/CMakeLists.txt          |   6 ++
 http.c                                       |  10 +-
 t/lib-gitweb.sh                              |   4 +-
 t/lib-gpg.sh                                 |   2 +-
 t/t0028-working-tree-encoding.sh             |   6 ++
 t/t1401-symbolic-ref.sh                      |   2 +-
 t/t2082-parallel-checkout-attributes.sh      |   2 +-
 t/t3404-rebase-interactive.sh                |  26 +++--
 t/t3434-rebase-i18n.sh                       |   6 ++
 t/t3900-i18n-commit.sh                       |   6 ++
 t/t3901-i18n-patch.sh                        |   6 ++
 t/t4041-diff-submodule-option.sh             |  16 ++-
 t/t4059-diff-submodule-not-initialized.sh    |  16 ++-
 t/t4060-diff-submodule-option-diff-format.sh |  17 ++--
 t/t4201-shortlog.sh                          |   8 +-
 t/t4205-log-pretty-formats.sh                | 102 +++++++++++--------
 t/t4210-log-i18n.sh                          |   6 ++
 t/t4254-am-corrupt.sh                        |   6 ++
 t/t5100-mailinfo.sh                          |  14 ++-
 t/t5500-fetch-pack.sh                        |  14 ++-
 t/t5550-http-fetch-dumb.sh                   |   4 +-
 t/t5601-clone.sh                             |  11 +-
 t/t6006-rev-list-format.sh                   |  54 ++++++----
 t/t7102-reset.sh                             |  40 +++++---
 t/t7300-clean.sh                             |   2 +-
 t/t8005-blame-i18n.sh                        |   6 ++
 t/t9300-fast-import.sh                       |   2 +-
 t/t9350-fast-export.sh                       |  10 +-
 t/test-lib.sh                                |   3 +-
 31 files changed, 274 insertions(+), 137 deletions(-)
Range-diff against v1:
 1:  601670912ee =  1:  a514f5d14a7 t/test-lib: fix quoting of TEST_RESULTS_SAN_FILE
 2:  f1d74c46aa2 =  2:  f6a8582c34a t/test-lib: wire up NO_ICONV prerequisite
 3:  eda73d81139 !  3:  2e2d208ef1b t/lib-gitweb: test against the build version of gitweb
    @@ Commit message
         t/lib-gitweb: test against the build version of gitweb
     
         When testing gitweb we set up the CGI script as "gitweb.perl", which is
    -    the source file of the build target "gitweb.cgi". This works alright as
    -    long as we run in-tree tests. But we're about to make out-of-tree tests
    -    a reality, and there things will break because "gitweb.perl" will not be
    -    found in the build directory.
    +    the source file of the build target "gitweb.cgi". This file doesn't have
    +    a patched shebang and still contains `++REPLACEMENT++` markers, but
    +    things generally work because we replace the configuration with our own
    +    test configuration.
     
    -    Fix this by using "gitweb.cgi" instead.
    +    But this only works as long as "$GIT_BUILD_DIR" actually points to the
    +    source tree, because "gitweb.cgi" and "gitweb.perl" happen to sit next
    +    to each other. This is not the case though once you have out-of-tree
    +    builds like with CMake, where the source and built versions live in
    +    different directories. Consequently, "$GIT_BUILD_DIR/gitweb/gitweb.perl"
    +    won't exist there.
    +
    +    While we could ask build systems with out-of-tree builds to instead set
    +    up GITWEB_TEST_INSTALLED, which allows us to override the location of
    +    the script, it goes against the spirit of this environment variable. We
    +    _don't_ want to test against an installed version, we want to use the
    +    version we have just built.
    +
    +    Fix this by using "gitweb.cgi" instead. This means that you cannot run
    +    test scripts without building that file, but in general we do expect
    +    developers to build stuff before they test it anyway.
     
         Signed-off-by: Patrick Steinhardt <ps@pks.im>
     
      ## t/lib-gitweb.sh ##
     @@ t/lib-gitweb.sh: EOF
    + 		test -f "$SCRIPT_NAME" ||
      		error "Cannot find gitweb at $GITWEB_TEST_INSTALLED."
      		say "# Testing $SCRIPT_NAME"
    - 	else # normal case, use source version of gitweb
    +-	else # normal case, use source version of gitweb
     -		SCRIPT_NAME="$GIT_BUILD_DIR/gitweb/gitweb.perl"
    ++	else # normal case, use built version of gitweb
     +		SCRIPT_NAME="$GIT_BUILD_DIR/gitweb/gitweb.cgi"
      	fi
      	export SCRIPT_NAME
 4:  f5700647839 =  4:  cc94f6fa648 t/lib-gpg: fix setup of GNUPGHOME in MinGW
 5:  d082cd92af3 !  5:  58691dd652b t1401: make invocation of tar(1) work with Win32-provided one
    @@ Commit message
         Drop the trailing slash. Other tests that use tar(1) work alright, this
         is the only instance where it has been failing.
     
    +    Signed-off-by: Patrick Steinhardt <ps@pks.im>
    +
      ## t/t1401-symbolic-ref.sh ##
     @@ t/t1401-symbolic-ref.sh: reset_to_sane() {
      test_expect_success 'setup' '
 6:  a82a6b3df70 =  6:  1daadd82766 t3404: work around platform-specific behaviour on macOS 10.15
 7:  e1b9617f943 =  7:  374f47bf3de t5500, t5601: skip tests which exercise paths with '[::1]' on Cygwin
 8:  b94fd876adb =  8:  13c06a8129b t7300: work around platform-specific behaviour with long paths on MinGW
 9:  8cce69e5ba6 =  9:  5fd78b6d535 builtin/credential-cache: fix missing parameter for stub function
10:  deb30e12a58 = 10:  9963dc73988 http: fix build error on FreeBSD
base-commit: ef8ce8f3d4344fd3af049c17eeba5cd20d98b69f
-- 
2.47.0.72.gef8ce8f3d4.dirty
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 22 of 58 in “Platform compatibility fixes”
  1. 00/10 Platform compatibility fixesPatrick Steinhardt, Oct 14, 2024
  2. 01/10 t/test-lib: fix quoting of TEST_RESULTS_SAN_FILEPatrick Steinhardt, Oct 14, 2024
  3. Taylor BlauOct 14, 2024
  4. 02/10 t/test-lib: wire up NO_ICONV prerequisitePatrick Steinhardt, Oct 14, 2024
  5. 03/10 t/lib-gitweb: test against the build version of gitwebPatrick Steinhardt, Oct 14, 2024
  6. Taylor BlauOct 14, 2024
  7. Patrick SteinhardtOct 15, 2024
  8. 04/10 t/lib-gpg: fix setup of GNUPGHOME in MinGWPatrick Steinhardt, Oct 14, 2024
  9. Taylor BlauOct 14, 2024
  10. 05/10 t1401: make invocation of tar(1) work with Win32-provided onePatrick Steinhardt, Oct 14, 2024
  11. Eric SunshineOct 14, 2024
  12. Taylor BlauOct 15, 2024
  13. 06/10 t3404: work around platform-specific behaviour on macOS 10.15Patrick Steinhardt, Oct 14, 2024
  14. 07/10 t5500, t5601: skip tests which exercise paths with '[::1]' on CygwinPatrick Steinhardt, Oct 14, 2024
  15. Taylor BlauOct 14, 2024
  16. 08/10 t7300: work around platform-specific behaviour with long paths on MinGWPatrick Steinhardt, Oct 14, 2024
  17. 09/10 builtin/credential-cache: fix missing parameter for stub functionPatrick Steinhardt, Oct 14, 2024
  18. Taylor BlauOct 14, 2024
  19. 10/10 http: fix build error on FreeBSDPatrick Steinhardt, Oct 14, 2024
  20. Taylor BlauOct 14, 2024
  21. Patrick SteinhardtOct 15, 2024
  22. 00/10 Platform compatibility fixesPatrick Steinhardt, Oct 15, 2024
  23. 01/10 t/test-lib: fix quoting of TEST_RESULTS_SAN_FILEPatrick Steinhardt, Oct 15, 2024
  24. 02/10 t/test-lib: wire up NO_ICONV prerequisitePatrick Steinhardt, Oct 15, 2024
  25. Taylor BlauOct 15, 2024
  26. Patrick SteinhardtOct 16, 2024
  27. Taylor BlauOct 16, 2024
  28. Taylor BlauOct 16, 2024
  29. Patrick SteinhardtOct 17, 2024
  30. 03/10 t/lib-gitweb: test against the build version of gitwebPatrick Steinhardt, Oct 15, 2024
  31. 04/10 t/lib-gpg: fix setup of GNUPGHOME in MinGWPatrick Steinhardt, Oct 15, 2024
  32. James LiuOct 16, 2024
  33. 05/10 t1401: make invocation of tar(1) work with Win32-provided onePatrick Steinhardt, Oct 15, 2024
  34. James LiuOct 16, 2024
  35. 06/10 t3404: work around platform-specific behaviour on macOS 10.15Patrick Steinhardt, Oct 15, 2024
  36. James LiuOct 16, 2024
  37. 07/10 t5500, t5601: skip tests which exercise paths with '[::1]' on CygwinPatrick Steinhardt, Oct 15, 2024
  38. 08/10 t7300: work around platform-specific behaviour with long paths on MinGWPatrick Steinhardt, Oct 15, 2024
  39. James LiuOct 16, 2024
  40. James LiuOct 16, 2024
  41. 09/10 builtin/credential-cache: fix missing parameter for stub functionPatrick Steinhardt, Oct 15, 2024
  42. 10/10 http: fix build error on FreeBSDPatrick Steinhardt, Oct 15, 2024
  43. 00/10 Platform compatibility fixesPatrick Steinhardt, Oct 16, 2024
  44. 01/10 t/test-lib: fix quoting of TEST_RESULTS_SAN_FILEPatrick Steinhardt, Oct 16, 2024
  45. 02/10 t/test-lib: wire up NO_ICONV prerequisitePatrick Steinhardt, Oct 16, 2024
  46. brian m. carlsonOct 17, 2024
  47. Patrick SteinhardtOct 17, 2024
  48. Josh SteadmonOct 25, 2024
  49. t6006: fix prereq handling with `test_format ()`Patrick Steinhardt, Oct 28, 2024
  50. Taylor BlauOct 28, 2024
  51. 03/10 t/lib-gitweb: test against the build version of gitwebPatrick Steinhardt, Oct 16, 2024
  52. 04/10 t/lib-gpg: fix setup of GNUPGHOME in MinGWPatrick Steinhardt, Oct 16, 2024
  53. 05/10 t1401: make invocation of tar(1) work with Win32-provided onePatrick Steinhardt, Oct 16, 2024
  54. 06/10 t3404: work around platform-specific behaviour on macOS 10.15Patrick Steinhardt, Oct 16, 2024
  55. 07/10 t5500, t5601: skip tests which exercise paths with '[::1]' on CygwinPatrick Steinhardt, Oct 16, 2024
  56. 08/10 t7300: work around platform-specific behaviour with long paths on MinGWPatrick Steinhardt, Oct 16, 2024
  57. 09/10 builtin/credential-cache: fix missing parameter for stub functionPatrick Steinhardt, Oct 16, 2024
  58. 10/10 http: fix build error on FreeBSDPatrick Steinhardt, Oct 16, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.