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

Re: [PATCH v2 1/4] t4xxx: don't use iconv(1) without ICONV prereq

From
Christian Couder <christian.couder@gmail.com>
Date
Feb 17, 2026, 14:48 UTC
Message-ID
<CAP8UFD23MdTF3qVFhDFBDcnqh4dqiehvFz_3c-keMhSOa92Dpw@mail.gmail.com>
In-Reply-To
<20260217-b4-pks-ci-msvc-iconv-fixes-v2-1-25491bc8dbf8@pks.im>
On Tue, Feb 17, 2026 at 2:58 PM Patrick Steinhardt <ps@pks.im> wrote:
Show 8 quoted lines
>
> We've got a couple of tests that all use the iconv(1) executable to
> convert the encoding of a commit message. All of these tests are
> prepared to handle a missing ICONV prereq, in which case they will
> simply use UTF-8 encoding.
>
> But even if the ICONV prerequisite has failed we try to use the iconv(1)
> executable. But it's not a safe to assume that the executable exists in
s/not a safe/not safe/
Show 13 quoted lines
> that case. And besides that, it's also unnecessary to use iconv(1) in
> the first place, as we would only use it to convert from UTF-8 to UTF-8,
> which should be equivalent to a no-op.
>
> In fact, Git for Windows has recently (unintentionally) shipped a change
> where the iconv(1) binary is not getting installed anymore [1]. And as
> we use Git for Windows directly in MSVC+Meson jobs in GitLab CI this has
> exposed the issue. The missing iconv(1) binary is considered a bug that
> will be fixed in Git for Windows, but regardless of that it makes sense
> to not assume the binary to always exist.
>
> Fix the issue and skip the call to iconv(1) in case the prerequisite is
> not set. This makes tests work on systems that don't have iconv at all.
Nit: when reading this, it's not clear if this commit is enough to fix
all the MSVC+Meson jobs in GitLab CI or only those related to the
t4xxx tests.
> Extend the ICONV prerequisite to cover these new semantics so that we
> know to skip tests in case the iconv(1) binary doesn't exist.
[...]
Show 10 quoted lines
> +test_lazy_prereq ICONV '
> +       # We require Git to be built with iconv support, and we require the
> +       # iconv binary to exist.
> +       #
> +       # NEEDSWORK: We might eventually want to split this up into two
> +       # prerequisites: one for NO_ICONV, and one for the iconv(1) binary, as
> +       # some tests only depend on either of these.
> +       test -z "$NO_ICONV" &&
> +       iconv -f utf8 -t utf8 </dev/null
> +'

Yeah, I think it works to actually test if iconv works and to document the small discrepancy between the ICONV prereq and NO_ICONV here.

Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 16 of 38 in “Fix tests with missing iconv(1) executable”
  1. 0/4 Fix tests with missing iconv(1) executablePatrick Steinhardt, Feb 9, 2026
  2. 1/4 t4xxx: don't use iconv(1) without ICONV prereqPatrick Steinhardt, Feb 9, 2026
  3. Junio C HamanoFeb 9, 2026
  4. Torsten BögershausenFeb 10, 2026
  5. Patrick SteinhardtFeb 10, 2026
  6. Junio C HamanoFeb 10, 2026
  7. 2/4 t4205: improve handling of ICONV prerequisitePatrick Steinhardt, Feb 9, 2026
  8. 3/4 t5550: add ICONV prereq to tests that use "$HTTPD_URL/error"Patrick Steinhardt, Feb 9, 2026
  9. 4/4 t6006: don't use iconv(1) without ICONV prereqPatrick Steinhardt, Feb 9, 2026
  10. Christian CouderFeb 16, 2026
  11. Patrick SteinhardtFeb 17, 2026
  12. Christian CouderFeb 16, 2026
  13. Patrick SteinhardtFeb 17, 2026
  14. 0/4 Fix tests with missing iconv(1) executablePatrick Steinhardt, Feb 17, 2026
  15. 1/4 t4xxx: don't use iconv(1) without ICONV prereqPatrick Steinhardt, Feb 17, 2026
  16. Christian CouderFeb 17, 2026
  17. Patrick SteinhardtFeb 17, 2026
  18. 2/4 t4205: improve handling of ICONV prerequisitePatrick Steinhardt, Feb 17, 2026
  19. 3/4 t5550: add ICONV prereq to tests that use "$HTTPD_URL/error"Patrick Steinhardt, Feb 17, 2026
  20. 4/4 t6006: don't use iconv(1) without ICONV prereqPatrick Steinhardt, Feb 17, 2026
  21. 0/5 Fix tests with missing iconv(1) executablePatrick Steinhardt, Feb 18, 2026
  22. 1/5 t: don't set ICONV prereq when iconv(1) is missingPatrick Steinhardt, Feb 18, 2026
  23. 2/5 t40xx: don't use iconv(1) without ICONV prereqPatrick Steinhardt, Feb 18, 2026
  24. 3/5 t4205: improve handling of ICONV prerequisitePatrick Steinhardt, Feb 18, 2026
  25. 4/5 t5550: add ICONV prereq to tests that use "$HTTPD_URL/error"Patrick Steinhardt, Feb 18, 2026
  26. Eric SunshineFeb 19, 2026
  27. Patrick SteinhardtFeb 20, 2026
  28. 5/5 t6006: don't use iconv(1) without ICONV prereqPatrick Steinhardt, Feb 18, 2026
  29. Junio C HamanoFeb 18, 2026
  30. Christian CouderFeb 18, 2026
  31. Patrick SteinhardtFeb 18, 2026
  32. 0/5 Fix tests with missing iconv(1) executablePatrick Steinhardt, Feb 20, 2026
  33. 1/5 t: don't set ICONV prereq when iconv(1) is missingPatrick Steinhardt, Feb 20, 2026
  34. 2/5 t40xx: don't use iconv(1) without ICONV prereqPatrick Steinhardt, Feb 20, 2026
  35. 3/5 t4205: improve handling of ICONV prerequisitePatrick Steinhardt, Feb 20, 2026
  36. 4/5 t5550: add ICONV prereq to tests that use "$HTTPD_URL/error"Patrick Steinhardt, Feb 20, 2026
  37. 5/5 t6006: don't use iconv(1) without ICONV prereqPatrick Steinhardt, Feb 20, 2026
  38. Junio C HamanoFeb 20, 2026

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.