Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
On Tue, Feb 17, 2026 at 1:05 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
Show 68 quoted lines
>
> On Tue, Feb 17, 2026 at 10:12 PM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> >
> > On Tue, Feb 17, 2026 at 8:10 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > >
> > > On Mon, Feb 16, 2026 at 8:09 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
> > > >
> > > > On Tue, Feb 17, 2026 at 8:45 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > > > > ...
> > > > >
> > > > > Homebrew picked this patch on top of 2.53.0, and on a recent build on
> > > > > older macOS I needed to
> > > > >
> > > > > mkdir contrib/credential/osxkeychain/.depend
> > > > >
> > > > > in order to make their build work, since otherwise:
> > > > >
> > > > > error: error opening
> > > > > 'contrib/credential/osxkeychain/.depend/git-credential-osxkeychain.o.d':
> > > > > No such file or directory
> > > > > 1 error generated.
> > > > > make[1]: ***
> > > > > [contrib/credential/osxkeychain/git-credential-osxkeychain.o] Error 1
> > > >
> > > > I tried to reproduce this using the current Homebrew formula for git [1]
> > > > on macOS 15.7.4 and 14.8.4 (both relatively newer) with the following
> > > > steps:
> > > >
> > > > brew tap --force homebrew/core
> > > > cd "$(brew --repository homebrew/core)"
> > > > git checkout -B main origin/main
> > > > git pull
> > > > HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall --build-from-source git
> > > >
> > > > In my environment, the build finished successfully. The patch doesn't
> > > > seem to trigger any issues during a local "make" either. How exactly are
> > > > you performing your build?
> > > >
> > > > [1] https://github.com/Homebrew/homebrew-core/blob/9ec3da0dcd3ccd1cd4d892a71377b251770212d7/Formula/g/git.rb
> > >
> > > macOS 12.7.6 ;) hence tier 3 Homebrew support + all packages build
> > > from source. So just
> > >
> > > brew upgrade git
> > >
> > > built 2.53.0 + patches from source. "brew --version" says I have
> > > "Homebrew 5.0.14-59-g45db1ce"; it doesn't print a homebrew-core line,
> > > so I'm not sure off-hand if that includes the core tap version or not
> > > anymore.
> >
> > To rule out differing versions, I also diff'd the Homebrew formula
> > from GitHub against "brew edit git", and the only difference is the
> > bottle stanza on GitHub.
> >
> > > I ended up having to use `brew upgrade --debug git`, fix the build
> > > error ("mkdir …") and manually perform a few steps when it arose, etc.
>
> Thank you for the details. The current Makefile rule performs the
> following to generate dependency files
>
> contrib/credential/osxkeychain/git-credential-osxkeychain.o:
> contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
> $(QUIET_CC)$(CC) -o $@ -c $(dep_args) $(compdb_args)
> $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
>
> where the compiler implicitly creates
> contrib/credential/osxkeychain/.depend/ if it doesn't exist. This
> behavior seems to be supported at least since Apple clang 15.0.0.Aha! I have clang 13. That probably explains it.
Show 18 quoted lines
> The
> following should work for older versions of clang that might not support
> this behavior.
>
> contrib/credential/osxkeychain/git-credential-osxkeychain.o:
> contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
> @mkdir -p contrib/credential/osxkeychain/.depend
> $(QUIET_CC)$(CC) -o $@ -c $(dep_args) $(compdb_args)
> $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
>
> Can you try this modification in your environment? You can confirm
> whether this works as below.
>
> git clone https://github.com/git/git.git
> cd git
> git checkout v2.53.0
> curl https://raw.githubusercontent.com/Homebrew/homebrew-core/46d746f92167fd0559af22f4ccb79c9ff35fbe33/Patches/git/2.53.0-osxkeychain-top-level-makefile.patch
> | patch
Using git-am worked (patch doesn't apply it)
> # The next should fail in your environment.
> make contrib/credential/osxkeychain/git-credential-osxkeychain
> # Please edit Makefile as described and try again. This should
> # succeed.
> make contrib/credential/osxkeychain/git-credential-osxkeychain
With the (now obvious!) proposal, indeed succeeds.
Thanks!
--
D. Ben Knoble