From: D. Ben Knoble Date: Tue, 17 Feb 2026 21:54:14 GMT Subject: Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile. Message-ID: In-Reply-To: On Tue, Feb 17, 2026 at 1:05 PM Koji Nakamaru wrote: > > On Tue, Feb 17, 2026 at 10:12 PM D. Ben Knoble wrote: > > > > On Tue, Feb 17, 2026 at 8:10 AM D. Ben Knoble wrote: > > > > > > On Mon, Feb 16, 2026 at 8:09 PM Koji Nakamaru wrote: > > > > > > > > On Tue, Feb 17, 2026 at 8:45 AM D. Ben Knoble 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. > 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 Fails as stated. > # 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