Subject: Re: [RFC PATCH v4 00/19] Modernize the build system

From: Patrick Steinhardt <[email-masked]>
Date: Thu, 14 Nov 2024 09:15:58 +0100

On Wed, Nov 13, 2024 at 11:46:32PM -0500, Eli Schwartz wrote:
> On 11/13/24 11:24 PM, Junio C Hamano wrote:
> > Is there a way to disable that?  These symbolic-links pretending to
> > be installed files are quite annoying---when the target file is lost,
> > the links become useless.
> 
> INSTALL_SYMLINKS=1 in the existing Makefile is of course the one true
> way... (and really, why would you expect the target file to be lost for
> any reason).
> 
> That being said, it doesn't appear the patch series implements any of
> the other multiplicity of choice in what kind of filesystem object gets
> used for multiple copies of the same file. No hardlink or copy support
> has been rigged up.
> 
> (Meson doesn't have a builtin function for performing hardlinks, by the
> way. I don't really think I've seen people desire to do this outside of
> one project being discussed right here right now. hardlinks are mainly
> good at fooling people who look at them into not understanding the
> association between the two, and at breaking across multiple
> filesystems. It's definitely impossible to get it right automatically,
> and asking users to make an informed choice here is just not something
> that projects other than git seem to find valuable, for whatever reason.
> So basically, it's fairly understandable that meson hasn't previously
> added hardlink support.)

Yeah, for now we exclusively use symlinks for this and I didn't wire up
an alternative. This was mostly to keep things simple while still ending
up with a fully functional Git distribution. I also couldn't think of a
scenario where symlinks would be an issue -- Meson also supports them on
Windows, so that would not be an issue.

If this is a requirement I can adapt though. While Meson does not
support hardlinks natively, we can of of course manually wire up them
if required.

Patrick