From: Koji Nakamaru Date: Wed, 18 Feb 2026 04:06:56 GMT Subject: Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile. Message-ID: In-Reply-To: On Wed, Feb 18, 2026 at 6:54 AM D. Ben Knoble wrote: > > 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! Thank you for testing the modification. I'll submit an updated patch later and also submit it to homebrew (for the current 2.53.0). -- Koji Nakamaru