{"thread":{"id":"66316","subject":"[PATCH] ci: drop no-op gettext link on macOS","startedAt":"2026-09-12T07:55:42Z","lastAt":"2026-09-26T13:34:05Z","messageCount":8,"participants":["Harald Nordgren via GitGitGadget","Patrick Steinhardt","Harald Nordgren","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"552620","messageId":"pull.2402.git.git.1789199739368.gitgitgadget@gmail.com","threadId":"66316","inReplyTo":null,"subject":"[PATCH] ci: drop no-op gettext link on macOS","fromName":"Harald Nordgren via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2026-09-12T07:55:39Z","receivedAt":"2026-09-12T07:55:42Z","isPatch":true,"body":"From: Harald Nordgren <haraldnordgren@gmail.com>\n\ngettext ships already linked on the macOS CI runner image, so this\ncommand never links anything. It only emits a spurious \"Already\nlinked\" warning in every macOS job's log.\n\nSigned-off-by: Harald Nordgren <haraldnordgren@gmail.com>\n---\n    ci: drop no-op gettext link on macOS\n    \n    Gettext is already linked on the macOS CI runner image, so the forced\n    relink was a no-op that only produced a spurious \"Already linked\"\n    warning in every macOS job's log.\n\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2402%2FHaraldNordgren%2Fci-drop-noop-gettext-link-v1\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2402/HaraldNordgren/ci-drop-noop-gettext-link-v1\nPull-Request: https://github.com/git/git/pull/2402\n\n ci/install-dependencies.sh | 1 -\n 1 file changed, 1 deletion(-)\n\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 2f61fbb07c..2903c39fab 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -117,7 +117,6 @@ macos-*)\n \texport HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1\n \t# Uncomment this if you want to run perf tests:\n \t# brew install gnu-time\n-\tbrew link --force gettext\n \n \tmkdir -p \"$CUSTOM_PATH\"\n \twget -q \"$P4WHENCE/bin.macosx12arm64/helix-core-server.tgz\" &&\n\nbase-commit: 47ce80527c56f462cb97db4ca8125342204d3783\n-- \ngitgitgadget\n"},{"id":"552666","messageId":"aqeTas30Vs3aGE9D@pks.im","threadId":"66316","inReplyTo":"pull.2402.git.git.1789199739368.gitgitgadget@gmail.com","subject":"Re: [PATCH] ci: drop no-op gettext link on macOS","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-09-14T06:25:46Z","receivedAt":"2026-09-14T06:25:58Z","isPatch":true,"body":"On Sat, Sep 12, 2026 at 07:55:39AM +0000, Harald Nordgren via GitGitGadget wrote:\n> From: Harald Nordgren <haraldnordgren@gmail.com>\n> \n> gettext ships already linked on the macOS CI runner image, so this\n> command never links anything. It only emits a spurious \"Already\n> linked\" warning in every macOS job's log.\n\nI feel like this is oversimplifying things a bit. The commit message\ndoesn't explain why we even orignially had it, and consequently it's not\nreally explaining why we don't anymore.\n\nThe gettext dependency in Homebrew is keg-only, which means that it will\ntypically never be linked anywhere visible into your system. Instead, it\nis only being installed into your Homebrew cellar, which means that it\nwill not interfer with anything. And trying to link such a dependency\nwill not do anything, as Homebrew refuses such an operation.\n\nBy using `brew link --force` though you override that and thus override\nany system-provided equivalents by symlinking the dependency into a\ncentral place. Now the question is whether this is still needed. But\nthat question is not answered by your commit message. The warning that\nyou mention is this one:\n\n  + brew link --force gettext\n  ✔︎ JSON API formula_tap_migrations.jws.json\n  ✔︎ JSON API cask_tap_migrations.jws.json\n  Warning: Already linked: /opt/homebrew/Cellar/gettext/1.0\n  To relink, run:\n    brew unlink gettext && brew link gettext\n\nBut that warning only complains that gettext is already linked into your\ncellar. It does not say whether it may have linked the library into your\nsystem's path now.\n\nSo I'm still left wondering whether it really isn't required anymore,\nand if so why it stopped being required. Links to passing GitHub and\nGitLab pipelines with that change would've in this case also helped to\ndemonstrate that it works without that line.\n\nThanks!\n\nPatrick\n"},{"id":"552669","messageId":"CAHwyqnUG_ta=m5e7rk-35D0Dve+GeQX3eNuFf_U4kSd5+Sqy+g@mail.gmail.com","threadId":"66316","inReplyTo":"aqeTas30Vs3aGE9D@pks.im","subject":"Re: [PATCH] ci: drop no-op gettext link on macOS","fromName":"Harald Nordgren","fromEmail":"haraldnordgren@gmail.com","sentAt":"2026-09-14T06:57:49Z","receivedAt":"2026-09-14T06:58:27Z","isPatch":true,"body":"> So I'm still left wondering whether it really isn't required anymore,\n> and if so why it stopped being required. Links to passing GitHub and\n> GitLab pipelines with that change would've in this case also helped to\n> demonstrate that it works without that line.\n\nIt passed on GitHub: https://github.com/git/git/pull/2402\n\nI'll take a look at the rest of your comments as well, thanks for the help!\n\n\n\nHarald\n"},{"id":"552670","messageId":"pull.2402.v2.git.git.1789369749450.gitgitgadget@gmail.com","threadId":"66316","inReplyTo":"pull.2402.git.git.1789199739368.gitgitgadget@gmail.com","subject":"[PATCH v2] ci: drop no-op gettext link on macOS","fromName":"Harald Nordgren via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2026-09-14T07:09:09Z","receivedAt":"2026-09-14T07:09:12Z","isPatch":true,"body":"From: Harald Nordgren <haraldnordgren@gmail.com>\n\nHomebrew's gettext formula used to be keg-only, meaning brew would\ninstall it into the Cellar without linking its headers, libraries, or\nutilities like msgfmt anywhere on the default search paths, to avoid\nclashing with software that already ships its own gettext. `brew link\n--force gettext` overrode that restriction so the keg-only install\nbecame visible on the paths git's build and tests rely on.\n\nHomebrew dropped gettext's keg-only status in 2020\n(https://github.com/Homebrew/homebrew-core/pull/53489), so a fresh\ninstall now links into the prefix by itself. `brew link --force`\nagainst an already-linked keg has nothing left to override, and only\nproduces a spurious \"Already linked\" warning in every macOS job's\nlog.\n\nSigned-off-by: Harald Nordgren <haraldnordgren@gmail.com>\n---\n    ci: drop no-op gettext link on macOS\n    \n    Gettext is already linked on the macOS CI runner image, so the forced\n    relink was a no-op that only produced a spurious \"Already linked\"\n    warning in every macOS job's log.\n    \n    Changes in v2:\n    \n     * Clarify problem in commit message.\n\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2402%2FHaraldNordgren%2Fci-drop-noop-gettext-link-v2\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2402/HaraldNordgren/ci-drop-noop-gettext-link-v2\nPull-Request: https://github.com/git/git/pull/2402\n\nRange-diff vs v1:\n\n 1:  9af619d085 ! 1:  39922c8e97 ci: drop no-op gettext link on macOS\n     @@ Metadata\n       ## Commit message ##\n          ci: drop no-op gettext link on macOS\n      \n     -    gettext ships already linked on the macOS CI runner image, so this\n     -    command never links anything. It only emits a spurious \"Already\n     -    linked\" warning in every macOS job's log.\n     +    Homebrew's gettext formula used to be keg-only, meaning brew would\n     +    install it into the Cellar without linking its headers, libraries, or\n     +    utilities like msgfmt anywhere on the default search paths, to avoid\n     +    clashing with software that already ships its own gettext. `brew link\n     +    --force gettext` overrode that restriction so the keg-only install\n     +    became visible on the paths git's build and tests rely on.\n     +\n     +    Homebrew dropped gettext's keg-only status in 2020\n     +    (https://github.com/Homebrew/homebrew-core/pull/53489), so a fresh\n     +    install now links into the prefix by itself. `brew link --force`\n     +    against an already-linked keg has nothing left to override, and only\n     +    produces a spurious \"Already linked\" warning in every macOS job's\n     +    log.\n      \n          Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>\n      \n\n\n ci/install-dependencies.sh | 1 -\n 1 file changed, 1 deletion(-)\n\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 2f61fbb07c..2903c39fab 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -117,7 +117,6 @@ macos-*)\n \texport HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1\n \t# Uncomment this if you want to run perf tests:\n \t# brew install gnu-time\n-\tbrew link --force gettext\n \n \tmkdir -p \"$CUSTOM_PATH\"\n \twget -q \"$P4WHENCE/bin.macosx12arm64/helix-core-server.tgz\" &&\n\nbase-commit: 47ce80527c56f462cb97db4ca8125342204d3783\n-- \ngitgitgadget\n"},{"id":"552678","messageId":"aqen3lVdecDqo89w@pks.im","threadId":"66316","inReplyTo":"CAHwyqnUG_ta=m5e7rk-35D0Dve+GeQX3eNuFf_U4kSd5+Sqy+g@mail.gmail.com","subject":"Re: [PATCH] ci: drop no-op gettext link on macOS","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-09-14T07:53:02Z","receivedAt":"2026-09-14T07:53:09Z","isPatch":true,"body":"On Mon, Sep 14, 2026 at 08:57:49AM +0200, Harald Nordgren wrote:\n> > So I'm still left wondering whether it really isn't required anymore,\n> > and if so why it stopped being required. Links to passing GitHub and\n> > GitLab pipelines with that change would've in this case also helped to\n> > demonstrate that it works without that line.\n> \n> It passed on GitHub: https://github.com/git/git/pull/2402\n> \n> I'll take a look at the rest of your comments as well, thanks for the help!\n\nIf you look at the pipeline though you can see that almost all of the\njobs were skippped. And in particular, macOS wasn't tested at all.\n\nPatrick\n"},{"id":"552684","messageId":"CAHwyqnUESiKcfrUM_vrOGY0EKgcurM3bG0wSOtboB4Bkh-cfUg@mail.gmail.com","threadId":"66316","inReplyTo":"aqen3lVdecDqo89w@pks.im","subject":"Re: [PATCH] ci: drop no-op gettext link on macOS","fromName":"Harald Nordgren","fromEmail":"haraldnordgren@gmail.com","sentAt":"2026-09-14T08:50:46Z","receivedAt":"2026-09-14T08:51:26Z","isPatch":true,"body":"> > It passed on GitHub: https://github.com/git/git/pull/2402\n> >\n> > I'll take a look at the rest of your comments as well, thanks for the help!\n>\n> If you look at the pipeline though you can see that almost all of the\n> jobs were skippped. And in particular, macOS wasn't tested at all.\n\nThat's after I pushed to update the commit message, it didn't\nre-trigger because the code was the same I think.\n\nHere is an earlier test run when macOS tests were successfully run:\nhttps://github.com/git/git/actions/runs/34655661080\n\n\nHarald\n"},{"id":"553340","messageId":"xmqqik3ssk5z.fsf@gitster.g","threadId":"66316","inReplyTo":"pull.2402.v2.git.git.1789369749450.gitgitgadget@gmail.com","subject":"Re: [PATCH v2] ci: drop no-op gettext link on macOS","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-09-26T04:36:56Z","receivedAt":"2026-09-26T04:36:59Z","isPatch":true,"body":"\"Harald Nordgren via GitGitGadget\" <gitgitgadget@gmail.com> writes:\n\n> From: Harald Nordgren <haraldnordgren@gmail.com>\n>\n> Homebrew's gettext formula used to be keg-only, meaning brew would\n> install it into the Cellar without linking its headers, libraries, or\n> utilities like msgfmt anywhere on the default search paths, to avoid\n> clashing with software that already ships its own gettext. `brew link\n> --force gettext` overrode that restriction so the keg-only install\n> became visible on the paths git's build and tests rely on.\n>\n> Homebrew dropped gettext's keg-only status in 2020\n> (https://github.com/Homebrew/homebrew-core/pull/53489), so a fresh\n> install now links into the prefix by itself. `brew link --force`\n> against an already-linked keg has nothing left to override, and only\n> produces a spurious \"Already linked\" warning in every macOS job's\n> log.\n>\n> Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>\n> ---\n\nSorry, but I lost track.  There were review exchanges on the\nprevious round, which crossed with this new iteration.  Is this\npatch still relevant and do folks on macOS need this?\n\nThanks.\n"},{"id":"553357","messageId":"CAHwyqnWriajr9HHeMhRxO639aeottL3oux_cro6Jukn5L5yXYQ@mail.gmail.com","threadId":"66316","inReplyTo":"xmqqik3ssk5z.fsf@gitster.g","subject":"Re: [PATCH v2] ci: drop no-op gettext link on macOS","fromName":"Harald Nordgren","fromEmail":"haraldnordgren@gmail.com","sentAt":"2026-09-26T13:33:27Z","receivedAt":"2026-09-26T13:34:05Z","isPatch":true,"body":"> Sorry, but I lost track.  There were review exchanges on the\n> previous round, which crossed with this new iteration.  Is this\n> patch still relevant and do folks on macOS need this?\n\nHi, no worries!\n\nYes, it’s still relevant. It’s not for local macOS development, but to\nsilence a warning message on the GitHub CI builds for macOS.\n\n\nHarald\n"}]}