Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes: > On Wed, Aug 12, 2020 at 4:16 AM Alexander Ost <ost@xxxxxxxx> wrote: >> Despite installing with `make NO_INSTALL_HARDLINKS=1 install', the >> installation process tries to create hard links, and the installation >> fails (a quick workaround is `sed -i git-gui/Makefile -e "s/ln /ln -s >> /g"'). >> >> make NO_INSTALL_HARDLINKS=1 install >> ln: failed to create hard link >> ‘/filesystem_without_hardlink_support/libexec/git-core/git-citool’ => >> ‘/filesystem_without_hardlink_support/libexec/git-core/git-gui’: >> Operation not permitted > > Indeed, it appears that the git-gui Makefile does not respect > NO_INSTALL_HARDLINKS. The git-gui project is maintained and developed > outside of the Git project (even though it gets bundled with Git), so > it has its own issue tracker. It would probably be best to re-submit > this bug report there: > > https://github.com/prati0100/git-gui/issues Thanks. Perhaps something along this line (which is totally untested), as the top-level Makefile already exports NO_INSTALL_HARDLINKS to submakes? Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index f10caedaa7..1cdbf8e504 100644 --- a/Makefile +++ b/Makefile @@ -44,6 +44,11 @@ endif ifndef INSTALL INSTALL = install endif +ifdef NO_INSTALL_HARDLINKS + LN = cp +else + LN = ln +endif RM_RF ?= rm -rf RMDIR ?= rmdir @@ -57,7 +62,7 @@ INSTALL_X1 = INSTALL_A0 = find # space is required here INSTALL_A1 = | cpio -pud INSTALL_L0 = rm -f # space is required here -INSTALL_L1 = && ln # space is required here +INSTALL_L1 = && $(LN) # space is required here INSTALL_L2 = INSTALL_L3 = @@ -87,7 +92,7 @@ ifndef V INSTALL_L0 = dst= INSTALL_L1 = && src= INSTALL_L2 = && dst= - INSTALL_L3 = && echo ' ' 'LINK ' `basename "$$dst"` '->' `basename "$$src"` && rm -f "$$dst" && ln "$$src" "$$dst" + INSTALL_L3 = && echo ' ' 'LINK ' `basename "$$dst"` '->' `basename "$$src"` && rm -f "$$dst" && $(LN) "$$src" "$$dst" CLEAN_DST = echo ' ' UNINSTALL REMOVE_D0 = dir=