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

Re: [PATCH v3 02/10] t/test-lib: wire up NO_ICONV prerequisite

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Oct 17, 2024, 01:10 UTC
Message-ID
<ZxBj-VEU6M2TVL2W@tapette.crustytoothpaste.net>
In-Reply-To
<c046e5f03bf9e3eeda803133b88c3ae414fd0c69.1729060405.git.ps@pks.im>
On 2024-10-16 at 08:12:53, Patrick Steinhardt wrote:
Show 10 quoted lines
> The iconv library is used by Git to reencode files, commit messages and
> other things. As such it is a rather integral part, but given that many
> platforms nowadays use UTF-8 everywhere you can live without support for
> reencoding in many situations. It is thus optional to build Git with
> iconv, and some of our platforms wired up in "config.mak.uname" disable
> it. But while we support building without it, running our test suite
> with "NO_ICONV=Yes" causes many test failures.
> 
> Wire up a new test prerequisite ICONV that gets populated via our
> GIT-BUILD-OPTIONS. Annotate failing tests accordingly.

I don't really have a strong opinion on this patch, but this has been a part of POSIX since the 2001 revision, so everyone except Windows should have it by default (and Git for Windows ships with their own version). Perhaps if people are not seeing the tests fail, that's because everyone is building with iconv enabled?

I will also add that as much as we might like people to be using UTF-8 everywhere (and to be clear, I very much would), many repositories still have commits encoded in older ways (such as the Linux kernel) and there are unfortunately many people using working-tree-encoding to convert to UTF-16LE-BOM for compatibility with legacy Windows software, so in general, only users in highly restricted Unix-only environments would be able to confidently run without support for more encodings than UTF-8.

I think this patch is fine for now, but given what I mentioned above, maybe we want to add a weather balloon in a future series to see if anyone is compiling with NO_ICONV. After all, if everybody has easy access to iconv(3), then we might be able to drop support for NO_ICONV and the work maintaining it entails without negatively impacting anyone.

-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 46 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.