Skip to content

Commit 40b8ff5

Browse files
vdyederrickstolee
authored andcommitted
Merge pull request #472 from vdye/ms/macos-build-options
Fixes for MacOS release build & build options
2 parents a8ceba0 + daa3fc2 commit 40b8ff5

3 files changed

Lines changed: 21 additions & 5 deletions

File tree

.github/workflows/build-git-installers.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,9 @@ jobs:
351351
cp git/git-$VERSION.tar.gz git/git-manpages-$VERSION.tar.gz git_osx_installer/build/ ||
352352
die "Could not copy .tar.gz files"
353353
354+
GIT_BUILT_FROM_COMMIT=$(gunzip -c git/git-$VERSION.tar.gz | git get-tar-commit-id) ||
355+
die "Could not determine commit for build"
356+
354357
# drop the -isysroot `GIT_SDK` hack
355358
sed -i .bak -e 's/ -isysroot .(SDK_PATH)//' git_osx_installer/Makefile || die "Could not drop the -isysroot hack"
356359
@@ -368,6 +371,7 @@ jobs:
368371
369372
PATH=/usr/local/bin:$PATH \
370373
make -C git_osx_installer \
374+
GIT_BUILT_FROM_COMMIT=$GIT_BUILT_FROM_COMMIT \
371375
OSX_VERSION=10.15 C_INCLUDE_PATH="$C_INCLUDE_PATH" V=1 image ||
372376
die "Build failed"
373377

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
/fuzz-pack-headers
44
/fuzz-pack-idx
55
/GIT-BUILD-OPTIONS
6+
/GIT-BUILT-FROM-COMMIT
67
/GIT-CFLAGS
78
/GIT-LDFLAGS
89
/GIT-PREFIX

Makefile

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,10 @@ include shared.mak
398398
# Define GIT_USER_AGENT if you want to change how git identifies itself during
399399
# network interactions. The default is "git/$(GIT_VERSION)".
400400
#
401+
# Define GIT_BUILT_FROM_COMMIT if you want to force the commit hash identified
402+
# in 'git version --build-options' to a specific value. The default is the
403+
# commit hash of the current HEAD.
404+
#
401405
# Define DEFAULT_HELP_FORMAT to "man", "info" or "html"
402406
# (defaults to "man") if you want to have a different default when
403407
# "git help" is called without a parameter specifying the format.
@@ -2177,6 +2181,15 @@ GIT-USER-AGENT: FORCE
21772181
echo '$(GIT_USER_AGENT_SQ)' >GIT-USER-AGENT; \
21782182
fi
21792183

2184+
GIT_BUILT_FROM_COMMIT = $(eval GIT_BUILT_FROM_COMMIT := $$(shell \
2185+
GIT_CEILING_DIRECTORIES="$$(CURDIR)/.." \
2186+
git rev-parse -q --verify HEAD 2>/dev/null))$(GIT_BUILT_FROM_COMMIT)
2187+
GIT-BUILT-FROM-COMMIT: FORCE
2188+
@if test x'$(GIT_BUILT_FROM_COMMIT)' != x"`cat GIT-BUILT-FROM-COMMIT 2>/dev/null`" ; then \
2189+
echo >&2 " * new built-from commit"; \
2190+
echo '$(GIT_BUILT_FROM_COMMIT)' >GIT-BUILT-FROM-COMMIT; \
2191+
fi
2192+
21802193
ifdef DEFAULT_HELP_FORMAT
21812194
BASIC_CFLAGS += -DDEFAULT_HELP_FORMAT='"$(DEFAULT_HELP_FORMAT)"'
21822195
endif
@@ -2291,13 +2304,11 @@ PAGER_ENV_CQ_SQ = $(subst ','\'',$(PAGER_ENV_CQ))
22912304
pager.sp pager.s pager.o: EXTRA_CPPFLAGS = \
22922305
-DPAGER_ENV='$(PAGER_ENV_CQ_SQ)'
22932306

2294-
version.sp version.s version.o: GIT-VERSION-FILE GIT-USER-AGENT
2307+
version.sp version.s version.o: GIT-VERSION-FILE GIT-USER-AGENT GIT-BUILT-FROM-COMMIT
22952308
version.sp version.s version.o: EXTRA_CPPFLAGS = \
22962309
'-DGIT_VERSION="$(GIT_VERSION)"' \
22972310
'-DGIT_USER_AGENT=$(GIT_USER_AGENT_CQ_SQ)' \
2298-
'-DGIT_BUILT_FROM_COMMIT="$(shell \
2299-
GIT_CEILING_DIRECTORIES="$(CURDIR)/.." \
2300-
git rev-parse -q --verify HEAD 2>/dev/null)"'
2311+
'-DGIT_BUILT_FROM_COMMIT="$(GIT_BUILT_FROM_COMMIT)"'
23012312

23022313
$(BUILT_INS): git$X
23032314
$(QUIET_BUILT_IN)$(RM) $@ && \
@@ -3359,7 +3370,7 @@ dist: git-archive$(X) configure
33593370
@$(MAKE) -C git-gui TARDIR=../.dist-tmp-dir/git-gui dist-version
33603371
./git-archive --format=tar \
33613372
$(GIT_ARCHIVE_EXTRA_FILES) \
3362-
--prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar
3373+
--prefix=$(GIT_TARNAME)/ HEAD > $(GIT_TARNAME).tar
33633374
@$(RM) -r .dist-tmp-dir
33643375
gzip -f -9 $(GIT_TARNAME).tar
33653376

0 commit comments

Comments
 (0)