Re: [PATCH] config.mak.uname: use iconv from Homebrew on macOS
- From
Carlo Marcelo Arenas Belón <carenas@gmail.com>
- Date
- Dec 11, 2025, 11:17 UTC
- Message-ID
- <vxi7g67b322sre7ylkcfwujf3n34j3f5vtpl62zhrj4ds6f675@hyyh2rxhaib6>
- In-Reply-To
- <xmqq7buthgq4.fsf@gitster.g>
On Thu, Dec 11, 2025 at 11:53:07AM -0800, Junio C Hamano wrote:
Show 10 quoted lines
> René Scharfe <l.s.r@web.de> writes: > > >> Slightly off topic, but should another patch that adds a `NO_HOMEBREW` > >> Makefile flag similar to `NO_FINK` or `NO_APPLE_PORTS` be added to help > >> drive this? > > > > Sounds like a it could be useful to someone. > > Hmph, how? When you personally use fink or homebrew or whatever, > but are building binaries for others?
correct; I think microsoft's git keeps a patch to do something like that for other dependencies already.
the OS (at least up to the point were they drop support for Intel) has EVERYTHING compiled as a fat binary.
% file /bin/ls /bin/ls: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e] /bin/ls (for architecture x86_64): Mach-O 64-bit executable x86_64 /bin/ls (for architecture arm64e): Mach-O 64-bit executable arm64e
it gets even more interesting when you look at the older releases that also include support for 32-bit Intel/ARM/PowerPC.
Show 26 quoted lines
> I am looking at relevant parts of Makefile > > # Define NO_FINK if you are building on Darwin/Mac OS X, have Fink > # installed in /sw, but don't want GIT to link against any libraries > # installed there. If defined you may specify your own (or Fink's) > # include directories and library directories by defining CFLAGS > # and LDFLAGS appropriately. > # > # Define NO_DARWIN_PORTS if you are building on Darwin/Mac OS X, > # have DarwinPorts installed in /opt/local, but don't want GIT to > # link against any libraries installed there. If defined you may > # specify your own (or DarwinPort's) include directories and > # library directories by defining CFLAGS and LDFLAGS appropriately. > > and notice that /opt/local/ is mentioned for DarwinPorts. The patch > that started this thread talks about defaulting ICONVDIR to that of > Homebrew if available, but the new code checks /opt/homebrew and > then /usr/local/ (and let it override it). Should the log message > be talking about DarwinPorts as well? > > > As a workaround, set the default libiconv location to > /opt/homebrew when the user has one from Homebrew, or > to /opt/local when the user has one from MacPorts. > > or something along the line?
Since the original patch was only meant to help with Homebrew it might not be worth mentioning the OTHER package managers IMHO.
I am hoping also there might be someone else that might be using PKGSRC (usually in NetBSD) or even gentoo's portage for that.
But I agree with you that the way we assume Homebrew is THE user package manager that the OS uses might be problematic long term.
> By the way, for macOS newbies (like me), I wonder if a patch like > the attached may help?
Did I read that correctly and you had found yourself forced into running macOS at least somewhere?
Show 28 quoted lines
> ----- >8 ----- > Subject: [PATCH] Makefile: help macOS novices by mentioning MacPorts > > Since Aug 2006, the DarwinPorts project renamed themselves as > MacPorts. Those who are not intimately familiar with the Opensource > ecosystem around macOS from olden days, the name DarwinPorts may not > ring a bell, even when they are using MacPorts. > > Signed-off-by: Junio C Hamano <gitster@pobox.com> > --- > Makefile | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git c/Makefile w/Makefile > index 7e0f77e298..be027218a5 100644 > --- c/Makefile > +++ w/Makefile > @@ -95,7 +95,8 @@ include shared.mak > # and LDFLAGS appropriately. > # > # Define NO_DARWIN_PORTS if you are building on Darwin/Mac OS X, > -# have DarwinPorts installed in /opt/local, but don't want GIT to > +# have DarwinPorts (which is an old name for MacPorts) installed > +# in /opt/local, but don't want GIT to > # link against any libraries installed there. If defined you may > # specify your own (or DarwinPort's) include directories and > # library directories by defining CFLAGS and LDFLAGS appropriately. >
It took years, but I woukd be honoured to provide a:
Reviewed-by: Carlo Marcelo Arenas Belon <carenas@gmail.com>
Carlo
PS. Sorry about the mispelling of my own name, but had yet to figure out how to configure UTF-8 correctly in my latest setup.