Subject: Re: [PATCH v2 0/7] gitweb: fix "make" not including "gitweb" without NOOP run slowdowns

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Fri, 24 Jun 2022 01:45:35 +0200

On Thu, Jun 23 2022, Junio C Hamano wrote:

> Ævar Arnfjörð Bjarmason <[email-masked]> writes:
>
>>> We could easily add "cd .. && make gitweb" to gitweb/Makefile with
>>> the same "minor hassle" but that needs to be done just once, instead
>>> of having to be done once per packager, so I am not sure the above
>>> argues for a good tradeoff.
>>
>> True, but I think critically in this case we've never documented that
>> you should be running gitweb/Makefile directly. I.e. the gitweb/INSTALL
>> has always documented and assumed that you run these from the top-level.
>
> Well, I do not think Makefiles document much of their targets in
> general.  If its first/default target has a reasonable name, like
> "all", people expect "cd there && make all" would do the right
> thing.
>
> So I do not think "we never documented" is a good excuse.  What the
> current users have been doing and are expecting to keep working is
> what counts.  If they are used to see "cd gitweb && make" working,
> perhaps instead of giving an unfriendly $(error do not run) at the
> beginning of gitweb/Makefile that is designed to trigger only when
> they did that (instead of running 'make gitweb' from the top), it
> would be trivial to have the rule to "cd .. && $(MAKE) gitweb"
> there, no?

I can re-roll it with that change if you insist. It would close the door
on further unifying the two Makefiles in the future (well, we could keep
the wrapper in place).

I have a script I use to see how big the impact of this sort of thing
would be in practice, i.e. I download downstream package recipies, which
are found at (name, relative path & urls). I also manually get the AIX
package:
	
	freebsd-ports   devel/git       https://github.com/freebsd/freebsd-ports.git 
	openbsd-ports   devel/git       https://github.com/openbsd/ports.git 
	netbsd-pkgsrc   devel/git-base  https://github.com/NetBSD/pkgsrc.git 
	dragonflybsd-dports     devel/git       https://github.com/DragonFlyBSD/DPorts.git 
	fedora  .       https://src.fedoraproject.org/rpms/git 
	debian  debian  https://repo.or.cz/git/debian.git 
	gentoo  dev-vcs/git     https://github.com/gentoo/gentoo.git 
	arch    git/trunk       https://github.com/archlinux/svntogit-packages.git 
	nix     pkgs/applications/version-management/git-and-tools/git  https://github.com/NixOS/nixpkgs.git 
	alpine  main/git        https://github.com/alpinelinux/aports.git       https://git.alpinelinux.org/aports 
	git_osx_installer       .       https://github.com/timcharper/git_osx_installer.git 
	homebrew-core   Formula/git.rb  https://github.com/Homebrew/homebrew-core.git 
	macports-ports  devel/git       https://github.com/macports/macports-ports.git

Looking through all of those none of them do anything with
gitweb/Makefile. I.e. all "make gitweb" at the top-level, or simply rely
on "make install" to install it.

FreeBSD and NetBSD are monkeypatching our Makefile to emulate a "I don't
want gitweb please!", which they'll need to do before/after this series
(but we could helpfully provide them a config knob).

Anyway, if you want "make gitweb" and "make gitweb-install" in the
subdirectory to work I can patch it, but per the above I think it would
be useful to pretty much nobody.

I could use around the same amount of effort to give FreeBSD and NetBSD
a "don't install gitweb please" know instead, what do you think?:)