* ./configure fails to link test program due to missing dependencies
@ 2024-09-14 22:57 Henrik Holst
2024-09-15 16:37 ` Junio C Hamano
0 siblings, 1 reply; 31+ messages in thread
From: Henrik Holst @ 2024-09-14 22:57 UTC (permalink / raw)
To: git@vger.kernel.org
Hej and hello!
I am tinkering with LFS 12.1 and I ran into a problem to compile git 2.44.0 with https/curl support due to an error in the ./configure script for the libcurl detection.
The relevant section of config.log:
configure:5462: checking for curl_global_init in -lcurl
configure:5485: gcc -o conftest -g -O2 conftest.c -lcurl >&5
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/libcurl.a(libcurl_la-content_encoding.o): in function `zstd_do_close':
content_encoding.c:(.text+0x78): undefined reference to `ZSTD_freeDStream'
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/libcurl.a(libcurl_la-content_encoding.o): in function `zstd_do_write':
content_encoding.c:(.text+0x112): undefined reference to `ZSTD_decompressStream'
/usr/bin/ld: content_encoding.c:(.text+0x11a): undefined reference to `ZSTD_isError'
...
If I set LDFLAGS to whatever pkg-config --libs libcurl says on my system (actually: -lcurl -lssl -lcrypto -lzstd -lbrotlidec -lz) then it compiles just fine. If I add LDFLAGS to the configure environment it will accept that test, and then detect, as expected, the pkg-config settings for libcurl.
Should not ./configure FIRST check for a pkg-config environment without assuming that even the most trivial curl programs should compile without any additional dependencies like zstd etc?
Thank you for your help and have a great weekend!
Henrik Holst
[System Info]
git version:
git version 2.44.0
cpu: x86_64
no commit associated with this build
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
compiler info: gnuc: 13.2
libc info: glibc: 2.39
$SHELL (typically, interactive shell): /usr/bin/fish
[Enabled Hooks]
not run from a git repository - no hooks to show
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-14 22:57 ./configure fails to link test program due to missing dependencies Henrik Holst
@ 2024-09-15 16:37 ` Junio C Hamano
2024-09-15 16:47 ` brian m. carlson
` (2 more replies)
0 siblings, 3 replies; 31+ messages in thread
From: Junio C Hamano @ 2024-09-15 16:37 UTC (permalink / raw)
To: Henrik Holst; +Cc: git@vger.kernel.org
Henrik Holst <henrik.holst@outlook.com> writes:
> If I set LDFLAGS to whatever pkg-config --libs libcurl says on my system (actually: -lcurl -lssl -lcrypto -lzstd -lbrotlidec -lz) then it compiles just fine. If I add LDFLAGS to the configure environment it will accept that test, and then detect, as expected, the pkg-config settings for libcurl.
>
> Should not ./configure FIRST check for a pkg-config environment without assuming that even the most trivial curl programs should compile without any additional dependencies like zstd etc?
Looking at configure.ac, pkg-config is not used for any package.
Specifically for curl, it seems that "curl-config --libs" is used.
Presumably the reason behind the current behaviour is combination of
(1) ./configure is an after-thought in the build infrastructure for
this project, (2) pkg-config was not ubiquitous back when autoconf
support was written for this project, and (3) nobody considered
"upgrading" our use of "curl-config" and our manual detection of
dependency detection for other libraries to just use "pkg-config".
Patches welcome ;-)
Thanks.
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-15 16:37 ` Junio C Hamano
@ 2024-09-15 16:47 ` brian m. carlson
2024-09-16 7:50 ` Patrick Steinhardt
2024-09-24 14:31 ` Eli Schwartz
2 siblings, 0 replies; 31+ messages in thread
From: brian m. carlson @ 2024-09-15 16:47 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Henrik Holst, git@vger.kernel.org
[-- Attachment #1: Type: text/plain, Size: 1837 bytes --]
On 2024-09-15 at 16:37:34, Junio C Hamano wrote:
> Henrik Holst <henrik.holst@outlook.com> writes:
>
> > If I set LDFLAGS to whatever pkg-config --libs libcurl says on my system (actually: -lcurl -lssl -lcrypto -lzstd -lbrotlidec -lz) then it compiles just fine. If I add LDFLAGS to the configure environment it will accept that test, and then detect, as expected, the pkg-config settings for libcurl.
> >
> > Should not ./configure FIRST check for a pkg-config environment without assuming that even the most trivial curl programs should compile without any additional dependencies like zstd etc?
>
> Looking at configure.ac, pkg-config is not used for any package.
> Specifically for curl, it seems that "curl-config --libs" is used.
>
> Presumably the reason behind the current behaviour is combination of
> (1) ./configure is an after-thought in the build infrastructure for
> this project, (2) pkg-config was not ubiquitous back when autoconf
> support was written for this project, and (3) nobody considered
> "upgrading" our use of "curl-config" and our manual detection of
> dependency detection for other libraries to just use "pkg-config".
I'll also note that the traditional expectation is that users are using
dynamic libraries, where this would have worked because libcurl would
have been linked against all its dependencies, and not static libraries,
where all dependencies must be specified explicitly.
You almost certainly don't want to statically link libcurl or OpenSSL
because you'll have a security issue as soon as one of those packages
issues a security update, which will require that you recompile Git to
apply the update. With dynamic libraries, security updates are applied
as soon as a new process is spawned.
--
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-15 16:37 ` Junio C Hamano
2024-09-15 16:47 ` brian m. carlson
@ 2024-09-16 7:50 ` Patrick Steinhardt
2024-09-18 10:04 ` Phillip Wood
2024-09-24 14:31 ` Eli Schwartz
2 siblings, 1 reply; 31+ messages in thread
From: Patrick Steinhardt @ 2024-09-16 7:50 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Henrik Holst, git@vger.kernel.org, Johannes Schindelin
On Sun, Sep 15, 2024 at 09:37:34AM -0700, Junio C Hamano wrote:
> Henrik Holst <henrik.holst@outlook.com> writes:
>
> > If I set LDFLAGS to whatever pkg-config --libs libcurl says on my system (actually: -lcurl -lssl -lcrypto -lzstd -lbrotlidec -lz) then it compiles just fine. If I add LDFLAGS to the configure environment it will accept that test, and then detect, as expected, the pkg-config settings for libcurl.
> >
> > Should not ./configure FIRST check for a pkg-config environment without assuming that even the most trivial curl programs should compile without any additional dependencies like zstd etc?
>
> Looking at configure.ac, pkg-config is not used for any package.
> Specifically for curl, it seems that "curl-config --libs" is used.
>
> Presumably the reason behind the current behaviour is combination of
> (1) ./configure is an after-thought in the build infrastructure for
> this project, (2) pkg-config was not ubiquitous back when autoconf
> support was written for this project, and (3) nobody considered
> "upgrading" our use of "curl-config" and our manual detection of
> dependency detection for other libraries to just use "pkg-config".
I sometimes wonder whether we should move on and discard one of the
three build systems we have: plain GNU Make, autoconf and CMake. And
from these three I'd rather want to throw the autoconf-based thing away:
- The Makefile is probably what most people use, so throwing it out is
a no-go right now.
- CMake is really useful because it has support for IDEs and
alternatives to GNU Make like Ninja, which builds Git way faster
than Makefiles. It also has support for out-of-tree builds, which I
find rather useful.
So is there a path forward to move CMake support out of contrib/, make
it an officially supported way to build Git and then throw away the
autoconf-based infra? I'm not the biggest fan of CMake myself and very
much prefer Meson, but we already have it wired up and thus I'm trying
to be at least a bit pragmatic.
(I'd honestly prefer to end up with a single build system, but also
throwing our Makefiles out would be a step too far at this point in
time.)
Patrick
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-16 7:50 ` Patrick Steinhardt
@ 2024-09-18 10:04 ` Phillip Wood
2024-09-18 22:39 ` Junio C Hamano
0 siblings, 1 reply; 31+ messages in thread
From: Phillip Wood @ 2024-09-18 10:04 UTC (permalink / raw)
To: Patrick Steinhardt, Junio C Hamano
Cc: Henrik Holst, git@vger.kernel.org, Johannes Schindelin
Hi Patrick
On 16/09/2024 08:50, Patrick Steinhardt wrote:
>
> I sometimes wonder whether we should move on and discard one of the
> three build systems we have: plain GNU Make, autoconf and CMake. And
> from these three I'd rather want to throw the autoconf-based thing away:
>
> - The Makefile is probably what most people use, so throwing it out is
> a no-go right now.
>
> - CMake is really useful because it has support for IDEs and
> alternatives to GNU Make like Ninja, which builds Git way faster
> than Makefiles. It also has support for out-of-tree builds, which I
> find rather useful.
>
> So is there a path forward to move CMake support out of contrib/, make
> it an officially supported way to build Git and then throw away the
> autoconf-based infra? I'm not the biggest fan of CMake myself and very
> much prefer Meson, but we already have it wired up and thus I'm trying
> to be at least a bit pragmatic.
We seem to get fairly regular bug reports about the configure script,
presumably because most contributors are using the Makefile. It would
certainly be nice if we could get the CMake support into a state where
we could consider dropping the configure script.
Best Wishes
Phillip
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-18 10:04 ` Phillip Wood
@ 2024-09-18 22:39 ` Junio C Hamano
2024-09-24 12:10 ` Patrick Steinhardt
0 siblings, 1 reply; 31+ messages in thread
From: Junio C Hamano @ 2024-09-18 22:39 UTC (permalink / raw)
To: Phillip Wood
Cc: Patrick Steinhardt, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin
Phillip Wood <phillip.wood123@gmail.com> writes:
> We seem to get fairly regular bug reports about the configure script,
> presumably because most contributors are using the Makefile. It would
> certainly be nice if we could get the CMake support into a state where
> we could consider dropping the configure script.
While I would agree that two is better than having to support three
build procedures, I am not sure how improvement of CMake support
needs to be a prerequisite for removal of autoconf.
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-18 22:39 ` Junio C Hamano
@ 2024-09-24 12:10 ` Patrick Steinhardt
2024-09-24 13:59 ` Eli Schwartz
2024-09-24 17:39 ` Junio C Hamano
0 siblings, 2 replies; 31+ messages in thread
From: Patrick Steinhardt @ 2024-09-24 12:10 UTC (permalink / raw)
To: Junio C Hamano
Cc: Phillip Wood, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Eli Schwartz, Jonathan Nieder
On Wed, Sep 18, 2024 at 03:39:13PM -0700, Junio C Hamano wrote:
> Phillip Wood <phillip.wood123@gmail.com> writes:
>
> > We seem to get fairly regular bug reports about the configure script,
> > presumably because most contributors are using the Makefile. It would
> > certainly be nice if we could get the CMake support into a state where
> > we could consider dropping the configure script.
>
> While I would agree that two is better than having to support three
> build procedures, I am not sure how improvement of CMake support
> needs to be a prerequisite for removal of autoconf.
I'm mostly coming from the angle that autoconf is likely used by systems
that are not perfectly supported by our current, static configuration. I
don't want to make the life of such system integrators harder by having
to figure out what kind of arcane functions they have to set manually
now to make things build on their platform again.
I'm not really sure whether distros _do_ actually use autoconf. Checking
a few distros:
- Arch doesn't.
- Cygwin uses autoconf.
- Debian doesn't.
- FreeBSD uses autoconf.
- Gentoo doesn't.
- NixOS uses autoconf.
- OpenBSD uses autoconf.
- Ubuntu doesn't.
So basically, we'd be making the life harder of anybody who doesn't
conform to the "standard" way of doing things in Linux, which I think is
not exactly a nice thing to do.
And that's why I think we should have an alternative way to configure
and build Git that can act as a replacement for autoconf, with my vote
going to either CMake or Meson. They are a proper replacement for
autoconf that makes the downstream maintainer's jobs easier while also
bringing additional features to the table that we don't currently have.
Eli makes a couple of good remarks in [1] about things that both CMake
and Meson bring to the table in addition to that, while also mentioning
some of the benefits of Meson over CMake.
I would be okay to make Git work with such a build system myself. The
current CMake build instructions can be used to _build_ Git, but AFAIU
they cannot yet run the Git test suite. Dscho pointed me to a couple of
patches from Ævar that work into this direction, and I'd be happy to
revive them. I'd also be okay with picking Meson over CMake if that is
what people want. But my ultimate goal would then be that we have at
least one CI job build and test against such a build system and give it
the "official blessing" as an alternative way to build Git.
[1]: <0864bd25-d5c4-45ac-a59e-e6f7d24002de@gentoo.org>
Patrick
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-24 12:10 ` Patrick Steinhardt
@ 2024-09-24 13:59 ` Eli Schwartz
2024-09-24 14:25 ` Paul Smith
2024-09-25 4:36 ` Patrick Steinhardt
2024-09-24 17:39 ` Junio C Hamano
1 sibling, 2 replies; 31+ messages in thread
From: Eli Schwartz @ 2024-09-24 13:59 UTC (permalink / raw)
To: Patrick Steinhardt, Junio C Hamano
Cc: Phillip Wood, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
[-- Attachment #1.1: Type: text/plain, Size: 5305 bytes --]
On 9/24/24 8:10 AM, Patrick Steinhardt wrote:
Thanks for the CC to this interesting thread. :)
> On Wed, Sep 18, 2024 at 03:39:13PM -0700, Junio C Hamano wrote:
>> Phillip Wood <phillip.wood123@gmail.com> writes:
>>
>>> We seem to get fairly regular bug reports about the configure script,
>>> presumably because most contributors are using the Makefile. It would
>>> certainly be nice if we could get the CMake support into a state where
>>> we could consider dropping the configure script.
>>
>> While I would agree that two is better than having to support three
>> build procedures, I am not sure how improvement of CMake support
>> needs to be a prerequisite for removal of autoconf.
>
> I'm mostly coming from the angle that autoconf is likely used by systems
> that are not perfectly supported by our current, static configuration. I
> don't want to make the life of such system integrators harder by having
> to figure out what kind of arcane functions they have to set manually
> now to make things build on their platform again.
>
> I'm not really sure whether distros _do_ actually use autoconf. Checking
> a few distros:
>
> - Arch doesn't.
> - Cygwin uses autoconf.
> - Debian doesn't.
> - FreeBSD uses autoconf.
> - Gentoo doesn't.
> - NixOS uses autoconf.
> - OpenBSD uses autoconf.
> - Ubuntu doesn't.
>
> So basically, we'd be making the life harder of anybody who doesn't
> conform to the "standard" way of doing things in Linux, which I think is
> not exactly a nice thing to do.
I think we'd probably like to use the configure script rather than the
raw Makefile, if the configure script was supported.
It would fix things like git failing to cross-compile because
curl-config doesn't work for that, assuming that --
Oh yeah, the configure script isn't maintained well and doesn't use
pkg-config. :)
See e.g. https://bugs.gentoo.org/738218 which mentions pkg-config, even.
> And that's why I think we should have an alternative way to configure
> and build Git that can act as a replacement for autoconf, with my vote
> going to either CMake or Meson. They are a proper replacement for
> autoconf that makes the downstream maintainer's jobs easier while also
> bringing additional features to the table that we don't currently have.
Let's say, rather, that they are an alternative for autoconf. And one of
the good qualities of them as an alternative for autoconf is that you
can actually build on Windows, without needing a mingw toolchain to run
a shell script.
An actually maintained autoconf script makes the downstream maintainer's
job easier in all cases...
... and also makes the upstream maintainer's job easier in some ways and
harder in other ways, because autoconf is hard/annoying to get right as
a maintainer. This is due to the complexities of m4 and mixing that
inline into "m4sh" -- which was a logical tradeoff in the past, when
Windows wasn't as relevant and the GNU project wanted to design a build
system that maximized the benefits for end users, including "do not need
to install any software to run ./configure", even if that sometimes
meant making maintainers' jobs harder. I've never seen a project with a
*well-maintained, correctly written* autotools build system where the
*unix* end users had complaints about the use of autotools. The
complaint is inevitably that autotools wasn't correctly used
Still I would prefer meson over autotools any day of the week. I'd also
prefer autotools over cmake, mind you.
> Eli makes a couple of good remarks in [1] about things that both CMake
> and Meson bring to the table in addition to that, while also mentioning
> some of the benefits of Meson over CMake.
>
> I would be okay to make Git work with such a build system myself. The
> current CMake build instructions can be used to _build_ Git, but AFAIU
> they cannot yet run the Git test suite. Dscho pointed me to a couple of
> patches from Ævar that work into this direction, and I'd be happy to
> revive them. I'd also be okay with picking Meson over CMake if that is
> what people want. But my ultimate goal would then be that we have at
> least one CI job build and test against such a build system and give it
> the "official blessing" as an alternative way to build Git.
Like, erm, many people :D I spend vast portions of my day inside git. I
am not very good at C, though -- and the likelihood of git being
completely rewritten in python is quite low -- so I generally do not try
very hard to repay that by getting involved in git development (I have
some humble patches consisting of a single patch series, which I do feel
pretty proud of since it enabled a very useful workflow, but still:
ultimately amounts to a one-off event).
I do know build systems pretty well though! :) And I'd be happy to
collaborate on Meson and help maintain the build system support in the
long term, assuming the consensus is that people think it would be a
neat idea to add meson support (regardless of whether it serves as a
primary or secondary build system).
Although I'm uninterested in personally working on cmake, as you
probably predicted.
--
Eli Schwartz
Gentoo Developer and Meson Build maintainer
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-24 13:59 ` Eli Schwartz
@ 2024-09-24 14:25 ` Paul Smith
2024-09-25 4:36 ` Patrick Steinhardt
1 sibling, 0 replies; 31+ messages in thread
From: Paul Smith @ 2024-09-24 14:25 UTC (permalink / raw)
To: git@vger.kernel.org
On Tue, 2024-09-24 at 09:59 -0400, Eli Schwartz wrote:
> Still I would prefer meson over autotools any day of the week. I'd
> also prefer autotools over cmake, mind you.
Just to point out that relying on ever-more-esoteric build tools is a
recipe for frustration for those of us who want to build from source.
Yes, I know meson is somewhat popular and definitely has a following,
but in the grand scheme of things it's still rare to find projects
requiring it, especially at the base level of software. I build a lot
of software and I have never once had to install it, for example.
I maintain a minimalist set of tools and libraries that we compile
locally from source so we can control the full toolchain. Every time a
package we want to add requires some new, different build tool it's a
massive annoyance. As of today everything builds with either make or
cmake (mainly for Windows support).
On the other hand, now that all the systems we use have "good enough"
native versions of Git we have stopped building it in our environment.
So in that sense it no longer matters to me directly :).
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-15 16:37 ` Junio C Hamano
2024-09-15 16:47 ` brian m. carlson
2024-09-16 7:50 ` Patrick Steinhardt
@ 2024-09-24 14:31 ` Eli Schwartz
2 siblings, 0 replies; 31+ messages in thread
From: Eli Schwartz @ 2024-09-24 14:31 UTC (permalink / raw)
To: Junio C Hamano, Henrik Holst; +Cc: git@vger.kernel.org
[-- Attachment #1.1: Type: text/plain, Size: 1673 bytes --]
On 9/15/24 12:37 PM, Junio C Hamano wrote:
> Looking at configure.ac, pkg-config is not used for any package.
> Specifically for curl, it seems that "curl-config --libs" is used.
>
> Presumably the reason behind the current behaviour is combination of
> (1) ./configure is an after-thought in the build infrastructure for
> this project, (2) pkg-config was not ubiquitous back when autoconf
> support was written for this project, and (3) nobody considered
> "upgrading" our use of "curl-config" and our manual detection of
> dependency detection for other libraries to just use "pkg-config".
>
> Patches welcome ;-)
As an aside: I am skeptical of this explanation.
pkg-config's first git commit in 2005 is an import of a 2001 commit from
another version control system (probably GNU Arch -- author "Arch
Librarian"). The changelog it includes starts a year earlier, in 2000.
Wikipedia agrees, claiming the initial release of pkg-config was in 2000
and citing gtk-devel mailing list discussions from June of that year.
git added a configure.ac script 6 years later. Curl itself had installed
a .pc file for 7 months at that time, and OpenSSL had installed one for
nearly 4 years.
But git's configure script looked -- and still looks -- for -lcurl only
to set NO_CURL for the Makefile. In 2018, ./configure started using
curl-config, in order to set CURL_LDFLAGS.
I suppose it was copied by rote from the Makefile, which has less
flexibility to try pkg-config and fall back to curl-config.
Part 1 of the explanation is valid: ./configure was an after-thought. :)
--
Eli Schwartz
Gentoo Developer and Meson Build maintainer
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 963 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-24 12:10 ` Patrick Steinhardt
2024-09-24 13:59 ` Eli Schwartz
@ 2024-09-24 17:39 ` Junio C Hamano
2024-09-25 15:33 ` Paul Smith
1 sibling, 1 reply; 31+ messages in thread
From: Junio C Hamano @ 2024-09-24 17:39 UTC (permalink / raw)
To: Patrick Steinhardt
Cc: Phillip Wood, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Eli Schwartz, Jonathan Nieder
Patrick Steinhardt <ps@pks.im> writes:
> I'm not really sure whether distros _do_ actually use autoconf. Checking
> a few distros:
>
> - Arch doesn't.
> - Cygwin uses autoconf.
> - Debian doesn't.
> - FreeBSD uses autoconf.
> - Gentoo doesn't.
> - NixOS uses autoconf.
> - OpenBSD uses autoconf.
> - Ubuntu doesn't.
>
> So basically, we'd be making the life harder of anybody who doesn't
> conform to the "standard" way of doing things in Linux, which I think is
> not exactly a nice thing to do.
If we stopped shipping configure (in our tarballs) and configure.in
(in the sources), would distros in the above list that do currently
use autoconf be able to build purely by having reasonable setting in
config.mak.uname already?
> And that's why I think we should have an alternative way to configure
> and build Git that can act as a replacement for autoconf, with my vote
> going to either CMake or Meson.
I guess the above question from me is a semi- tongue-in-cheek vote
for config.mak.uname as that alternative way.
> They are a proper replacement for autoconf that makes the
> downstream maintainer's jobs easier while also bringing additional
> features to the table that we don't currently have.
>
> Eli makes a couple of good remarks in [1] about things that both CMake
> and Meson bring to the table in addition to that, while also mentioning
> some of the benefits of Meson over CMake.
>
> I would be okay to make Git work with such a build system myself. The
> current CMake build instructions can be used to _build_ Git, but AFAIU
> they cannot yet run the Git test suite. Dscho pointed me to a couple of
> patches from Ævar that work into this direction, and I'd be happy to
> revive them. I'd also be okay with picking Meson over CMake if that is
> what people want. But my ultimate goal would then be that we have at
> least one CI job build and test against such a build system and give it
> the "official blessing" as an alternative way to build Git.
I already said that having to support two is better than having to
support three in another thread ;-). If adding the fourth would
allow us to drop all other three eventually, that would be nice.
Our dependance of heavy use of GNU-ism in our Makefiles makes an
argument that make is the common denominator a fairly weak one, so
the single one that eventually we use does not have to be "make",
but it has to be something available widely and easy to learn.
Thanks.
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-24 13:59 ` Eli Schwartz
2024-09-24 14:25 ` Paul Smith
@ 2024-09-25 4:36 ` Patrick Steinhardt
2024-09-25 6:02 ` Eli Schwartz
1 sibling, 1 reply; 31+ messages in thread
From: Patrick Steinhardt @ 2024-09-25 4:36 UTC (permalink / raw)
To: Eli Schwartz
Cc: Junio C Hamano, Phillip Wood, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
On Tue, Sep 24, 2024 at 09:59:52AM -0400, Eli Schwartz wrote:
> On 9/24/24 8:10 AM, Patrick Steinhardt wrote:
> Still I would prefer meson over autotools any day of the week. I'd also
> prefer autotools over cmake, mind you.
Is that a typo or do you really prefer autotools over CMake? :)
> > Eli makes a couple of good remarks in [1] about things that both CMake
> > and Meson bring to the table in addition to that, while also mentioning
> > some of the benefits of Meson over CMake.
> >
> > I would be okay to make Git work with such a build system myself. The
> > current CMake build instructions can be used to _build_ Git, but AFAIU
> > they cannot yet run the Git test suite. Dscho pointed me to a couple of
> > patches from Ævar that work into this direction, and I'd be happy to
> > revive them. I'd also be okay with picking Meson over CMake if that is
> > what people want. But my ultimate goal would then be that we have at
> > least one CI job build and test against such a build system and give it
> > the "official blessing" as an alternative way to build Git.
>
> Like, erm, many people :D I spend vast portions of my day inside git. I
> am not very good at C, though -- and the likelihood of git being
> completely rewritten in python is quite low -- so I generally do not try
> very hard to repay that by getting involved in git development (I have
> some humble patches consisting of a single patch series, which I do feel
> pretty proud of since it enabled a very useful workflow, but still:
> ultimately amounts to a one-off event).
>
> I do know build systems pretty well though! :) And I'd be happy to
> collaborate on Meson and help maintain the build system support in the
> long term, assuming the consensus is that people think it would be a
> neat idea to add meson support (regardless of whether it serves as a
> primary or secondary build system).
People with different skillsets can repay in different ways, and that's
not a bad thing. Not that anybody really has to repay anything. But in
any case, I would certainly appreciate a second pair of eyes from
somebody with expert knowledge on Meson once I have something to show.
I had a deeper look at the CMake build infra that we have and figured
that it does make a whole lot of assumptions that autoconf wouldn't
make. Those assumptions can of course be removed, and I'd be okay with
doing that eventually.
But for now I'm hacking up an initial iteration of Meson that is good
enough to build, install and hopefully test Git. The intent here isn't
quite to preclude us from using CMake as "official" build system, but
rather to make it possible to compare the different build systems with
actual code, where our choices will be plain Make, autoconf, Meson and
CMake.
That should hopefully lead to a more informed discussion.
> Although I'm uninterested in personally working on cmake, as you
> probably predicted.
Fair.
Patrick
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-25 4:36 ` Patrick Steinhardt
@ 2024-09-25 6:02 ` Eli Schwartz
2024-09-25 6:04 ` Patrick Steinhardt
2024-09-25 19:15 ` Patrick Steinhardt
0 siblings, 2 replies; 31+ messages in thread
From: Eli Schwartz @ 2024-09-25 6:02 UTC (permalink / raw)
To: Patrick Steinhardt
Cc: Junio C Hamano, Phillip Wood, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
[-- Attachment #1.1: Type: text/plain, Size: 3674 bytes --]
On 9/25/24 12:36 AM, Patrick Steinhardt wrote:
> On Tue, Sep 24, 2024 at 09:59:52AM -0400, Eli Schwartz wrote:
>> On 9/24/24 8:10 AM, Patrick Steinhardt wrote:
>> Still I would prefer meson over autotools any day of the week. I'd also
>> prefer autotools over cmake, mind you.
>
> Is that a typo or do you really prefer autotools over CMake? :)
POSIX sh (used by autotools) has a more powerful and capable type system
than CMakeLists.txt (this is not a typo either! compare CMake's
"semicolon;delimited;string" type to POSIX sh's "$@" type)
m4 is less painful to debug than successfully configuring, spending 4
hours compiling a ginormous project, then failing at the end with (this
is because of the type system again, since there is no type for
dependency-was-not-found they smuggle it along as a string value with
special meaning):
ld: cannot find -lCURL-NOTFOUND: No such file or directory
If you enable cmake's test system, but you do it inside a subdir e.g.
inside tests/CMakeLists.txt, you cannot run "ctest" (or make test)
except inside that subdir. ctest will exit 0, and no rules will be
generated to descend into the correct directory instead. This has bitten
me a *bunch* of times in Gentoo packaging and it always throws me for a
loop. I don't understand the point of such a design.
I have never had autotools refuse point-blank to detect that another
package is installed and usable for ***shared linkage*** because my
distro automatically removes static libraries when a corresponding
shared library exists, and
CMake Error at /usr/lib64/cmake/libssh2/Libssh2Config.cmake:92 (message):
The imported target "Libssh2::libssh2_static" references the file
"/usr/lib64/libssh2.a"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
"/usr/lib64/cmake/libssh2/Libssh2Config-relwithdebinfo.cmake"
but not all the files it references.
autotools projects have never harmed me by running the square of my make
-j$(nproc) count due to recursively running cmake inside of generated
Makefiles -- perhaps that isn't strictly the fault of CMake but cmake
does very little to discourage it: https://bugs.gentoo.org/921309
autotools doesn't have much in the way of built-in tooling for detecting
"packages" instead of "libraries" for arbitrary system dependencies. It
allows you to use pkg-config or code your own (foo-config scripts were
popular once and in some circles still are). You might think this is a
negative, but it's actually a positive compared to cmake, which includes
builtin dependency finders for e.g. zlib that break on a simple version
update because they locate the header file, open it up and use regular
expressions to extract a #define for the package version instead of
asking the preprocessor... a very brittle regex, too:
https://gitlab.kitware.com/cmake/cmake/-/issues/25200
autotools projects don't automatically detect your end-to-end
integration test's dummy project, integrate its results into your build,
and install some of your project files twice, once with bad values, but
only when you run the project tests (this one was very fun):
https://github.com/nlohmann/json/issues/2907#issuecomment-890580081
...
I'm probably biased, but some of these failure modes are *weird*. And
they basically never require the CMakeLists.txt to do something
considered non-idiomatic in order to trigger the issue.
--
Eli Schwartz
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-25 6:02 ` Eli Schwartz
@ 2024-09-25 6:04 ` Patrick Steinhardt
2024-09-26 13:55 ` Phillip Wood
2024-09-25 19:15 ` Patrick Steinhardt
1 sibling, 1 reply; 31+ messages in thread
From: Patrick Steinhardt @ 2024-09-25 6:04 UTC (permalink / raw)
To: Eli Schwartz
Cc: Junio C Hamano, Phillip Wood, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
On Wed, Sep 25, 2024 at 02:02:34AM -0400, Eli Schwartz wrote:
> On 9/25/24 12:36 AM, Patrick Steinhardt wrote:
> > On Tue, Sep 24, 2024 at 09:59:52AM -0400, Eli Schwartz wrote:
> >> On 9/24/24 8:10 AM, Patrick Steinhardt wrote:
> >> Still I would prefer meson over autotools any day of the week. I'd also
> >> prefer autotools over cmake, mind you.
> >
> > Is that a typo or do you really prefer autotools over CMake? :)
>
>
> POSIX sh (used by autotools) has a more powerful and capable type system
> than CMakeLists.txt (this is not a typo either! compare CMake's
> "semicolon;delimited;string" type to POSIX sh's "$@" type)
>
>
> m4 is less painful to debug than successfully configuring, spending 4
> hours compiling a ginormous project, then failing at the end with (this
> is because of the type system again, since there is no type for
> dependency-was-not-found they smuggle it along as a string value with
> special meaning):
> ld: cannot find -lCURL-NOTFOUND: No such file or directory
>
>
> If you enable cmake's test system, but you do it inside a subdir e.g.
> inside tests/CMakeLists.txt, you cannot run "ctest" (or make test)
> except inside that subdir. ctest will exit 0, and no rules will be
> generated to descend into the correct directory instead. This has bitten
> me a *bunch* of times in Gentoo packaging and it always throws me for a
> loop. I don't understand the point of such a design.
>
>
> I have never had autotools refuse point-blank to detect that another
> package is installed and usable for ***shared linkage*** because my
> distro automatically removes static libraries when a corresponding
> shared library exists, and
>
> CMake Error at /usr/lib64/cmake/libssh2/Libssh2Config.cmake:92 (message):
> The imported target "Libssh2::libssh2_static" references the file
>
> "/usr/lib64/libssh2.a"
>
> but this file does not exist. Possible reasons include:
>
> * The file was deleted, renamed, or moved to another location.
>
> * An install or uninstall procedure did not complete successfully.
>
> * The installation package was faulty and contained
>
> "/usr/lib64/cmake/libssh2/Libssh2Config-relwithdebinfo.cmake"
>
> but not all the files it references.
>
>
> autotools projects have never harmed me by running the square of my make
> -j$(nproc) count due to recursively running cmake inside of generated
> Makefiles -- perhaps that isn't strictly the fault of CMake but cmake
> does very little to discourage it: https://bugs.gentoo.org/921309
>
>
> autotools doesn't have much in the way of built-in tooling for detecting
> "packages" instead of "libraries" for arbitrary system dependencies. It
> allows you to use pkg-config or code your own (foo-config scripts were
> popular once and in some circles still are). You might think this is a
> negative, but it's actually a positive compared to cmake, which includes
> builtin dependency finders for e.g. zlib that break on a simple version
> update because they locate the header file, open it up and use regular
> expressions to extract a #define for the package version instead of
> asking the preprocessor... a very brittle regex, too:
> https://gitlab.kitware.com/cmake/cmake/-/issues/25200
>
>
> autotools projects don't automatically detect your end-to-end
> integration test's dummy project, integrate its results into your build,
> and install some of your project files twice, once with bad values, but
> only when you run the project tests (this one was very fun):
> https://github.com/nlohmann/json/issues/2907#issuecomment-890580081
>
>
> ...
>
>
> I'm probably biased, but some of these failure modes are *weird*. And
> they basically never require the CMakeLists.txt to do something
> considered non-idiomatic in order to trigger the issue.
All of this is very valuable data to make my case for Meson instead of
CMake. Appreciated, thanks!
Patrick
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-24 17:39 ` Junio C Hamano
@ 2024-09-25 15:33 ` Paul Smith
2024-09-26 1:35 ` Eli Schwartz
0 siblings, 1 reply; 31+ messages in thread
From: Paul Smith @ 2024-09-25 15:33 UTC (permalink / raw)
To: git@vger.kernel.org
On Tue, 2024-09-24 at 10:39 -0700, Junio C Hamano wrote:
> Our dependance of heavy use of GNU-ism in our Makefiles makes an
> argument that make is the common denominator a fairly weak one, so
> the single one that eventually we use does not have to be "make",
> but it has to be something available widely and easy to learn.
Regardless of what one might imagine :), I am not advocating GNU Make
as the perfect solution: it certainly has downsides and disadvantages.
But, it also has benefits that should not be ignored: for example, it's
highly portable and it consists of a single binary that can be copied
anywhere and run from anywhere with no other prerequisites or need for
any setup or privileges. Also it's extremely flexible since it just
runs shell scripts. That also makes portability much more "do it
yourself" than other tools of course.
Meson is portable, but that's because it's written in Python: that
means you have to have a Python interpreter already available
(currently Python 3.7 or better), and the ability to add new modules to
it. Admittedly this is not a super-high bar in 2024, but it's a non-
trivial requirement if you're trying to start from scratch.
Things like cmake provide abstractions that can make building code
simple, but it can be surprisingly difficult to get them to perform
more advanced tricks like generating source files, linker map files,
etc. It can be done, but it's... not always easy. And it has some
weird behaviors (for example how cached variables are handled will
certainly confuse you at first).
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-25 6:02 ` Eli Schwartz
2024-09-25 6:04 ` Patrick Steinhardt
@ 2024-09-25 19:15 ` Patrick Steinhardt
2024-09-25 19:17 ` Patrick Steinhardt
1 sibling, 1 reply; 31+ messages in thread
From: Patrick Steinhardt @ 2024-09-25 19:15 UTC (permalink / raw)
To: Eli Schwartz
Cc: Junio C Hamano, Phillip Wood, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
Hey Eli,
dropping the mailing list for a bit: I really want Meson to start become
a thing in Git. I very much feel that the current build infrastructure
is antiquated and has lots of issues. And while we do have CMake wired
up somewhat already, it neither is a replacement due to it lacking heaps
of features/autodetection, nor is it a direction I really want to go.
It also seems to be the right point in time: Junio hasn't really been a
fan of converting our build system in the past, but his response to my
ramblings was surprisingly positive. The session I hosted during the Git
contributor's summit also seemed positive overall, but I naturally still
anticipate some bikeshedding.
So I highly appreciate all the info that you've been posting in this
context, as it helps to solidify my stance quite a bit! Which brings me
to my ask: would you be willing to do an off-list review before I post
things to the Git mailing list? The intent here is to mostly make things
look as nice as possible and work out-of-the-box to hopefully sway the
list more into favor of Meson.
My current state is that I've got libgit.a set up while detecting many
of the important platform-specific bits, the Git executable links just
fine and I've got unit tests wired up and executing correctly. Still
missing is documentation, Perl modules, and fixing some last remaining
bugs around locales in t0200 and t7816.
Anyway, the current version of this can be found at [1]. Feel free to
have a look and provide any feedback, either on the merge request or as
a patch on top. It can be built with `meson setup -Dpython=disabled
-Dperl=disabled`, enabling these options breaks a bunch more stuff.
Thanks!
Patrick
[1]: https://gitlab.com/gitlab-org/git/-/merge_requests/217
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-25 19:15 ` Patrick Steinhardt
@ 2024-09-25 19:17 ` Patrick Steinhardt
0 siblings, 0 replies; 31+ messages in thread
From: Patrick Steinhardt @ 2024-09-25 19:17 UTC (permalink / raw)
To: Eli Schwartz
Cc: Junio C Hamano, Phillip Wood, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
On Wed, Sep 25, 2024 at 09:15:36PM +0200, Patrick Steinhardt wrote:
> Hey Eli,
>
> dropping the mailing list for a bit: I really want Meson to start become
> a thing in Git. I very much feel that the current build infrastructure
> is antiquated and has lots of issues. And while we do have CMake wired
> up somewhat already, it neither is a replacement due to it lacking heaps
> of features/autodetection, nor is it a direction I really want to go.
Well, so much for dropping the mailing list :P Anyway, it's not like
there's anything in here that I haven't already said in the context of
the Git contributor's summit.
Patrick
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-25 15:33 ` Paul Smith
@ 2024-09-26 1:35 ` Eli Schwartz
2024-09-26 19:42 ` Paul Smith
0 siblings, 1 reply; 31+ messages in thread
From: Eli Schwartz @ 2024-09-26 1:35 UTC (permalink / raw)
To: paul, git@vger.kernel.org
[-- Attachment #1.1: Type: text/plain, Size: 3498 bytes --]
On 9/25/24 11:33 AM, Paul Smith wrote:
> On Tue, 2024-09-24 at 10:39 -0700, Junio C Hamano wrote:
>> Our dependance of heavy use of GNU-ism in our Makefiles makes an
>> argument that make is the common denominator a fairly weak one, so
>> the single one that eventually we use does not have to be "make",
>> but it has to be something available widely and easy to learn.
>
> Regardless of what one might imagine :), I am not advocating GNU Make
> as the perfect solution: it certainly has downsides and disadvantages.
:)
I've read your article about why people should use autoconf!
(By the way: I had a bit of a... chuckle, when I read in your previous
email that as the GNU maintainer of Make, you build lots of projects
with Make or CMake, but not with GNU autoconf / automake. I assume that
was just bad wording?)
> But, it also has benefits that should not be ignored: for example, it's
> highly portable and it consists of a single binary that can be copied
> anywhere and run from anywhere with no other prerequisites or need for
> any setup or privileges. Also it's extremely flexible since it just
> runs shell scripts. That also makes portability much more "do it
> yourself" than other tools of course.
>
> Meson is portable, but that's because it's written in Python: that
> means you have to have a Python interpreter already available
> (currently Python 3.7 or better), and the ability to add new modules to
> it. Admittedly this is not a super-high bar in 2024, but it's a non-
> trivial requirement if you're trying to start from scratch.
FWIW: you don't need the ability to add new modules to python, you can
run meson by acquiring its sources (tarball or git clone, either one
works) and running meson as
$ python3 mesonsources/meson.py ....
No installation required.
You can also make a single-file executable using the "create_zipapp.py"
packer that ships in the meson sources. It uses python's ability to
execute a .zip archive by expecting the root of the zip file to contain
a) the file __main__.py containing the program entrypoint
b) any additional modules that should be available at runtime
You do still need python3, sure.
There are a few different tools available for creating single-file
executables that don't require a python interpreter. What they do is
create a self-extracting executable that includes its own python and
internalized support files. Meson uses https://pyinstaller.org to do
this in order to create the Windows .msi and macOS .dmg installer
bundles without requiring the user to install python. I've used it to
create Linux executable installers of meson too -- but I have no strong
feelings about linux executable installers existing, so I only bother
doing so in order to run tests on the packing process e.g. when I want
to verify that the Windows installers are ok without actually running
Windows.
It's not that hard to build a more or less standalone python that only
depends on "glibc from CentOS 7 or newer" to use as your base. There's
an unofficial project that hosts some precompiled versions at
https://gregoryszorc.com/docs/python-build-standalone/main/index.html
Single-file executables are alive and flourishing. :)
The same could probably be done for other operating systems and not just
"the big 3", but I lack direct personal experience with deploying
software to such systems so I can't really say for sure.
--
Eli Schwartz
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 963 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-25 6:04 ` Patrick Steinhardt
@ 2024-09-26 13:55 ` Phillip Wood
2024-09-26 14:02 ` Patrick Steinhardt
` (2 more replies)
0 siblings, 3 replies; 31+ messages in thread
From: Phillip Wood @ 2024-09-26 13:55 UTC (permalink / raw)
To: Patrick Steinhardt, Eli Schwartz
Cc: Junio C Hamano, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
Hi Patrick
On 25/09/2024 07:04, Patrick Steinhardt wrote:
> On Wed, Sep 25, 2024 at 02:02:34AM -0400, Eli Schwartz wrote:
>
>> I'm probably biased, but some of these failure modes are *weird*. And
>> they basically never require the CMakeLists.txt to do something
>> considered non-idiomatic in order to trigger the issue.
>
> All of this is very valuable data to make my case for Meson instead of
> CMake. Appreciated, thanks!
One thing to bear in mind is why our CMakeLists.txt was introduced in
the first place [1]. Visual Studio's CMake integration means that so
long as git-for-windows is installed building git is simply a case of
clicking on a button, there is no need to install extra software or
plugins. I'm not sure the same is true for meson and I don't think we
want to end up supporting both.
Best Wishes
Phillip
[1]
https://lore.kernel.org/git/nycvar.QRO.7.76.6.2004251354390.18039@tvgsbejvaqbjf.bet/
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-26 13:55 ` Phillip Wood
@ 2024-09-26 14:02 ` Patrick Steinhardt
2024-09-27 10:10 ` Phillip Wood
2024-09-26 16:04 ` Eli Schwartz
2024-09-26 16:22 ` Junio C Hamano
2 siblings, 1 reply; 31+ messages in thread
From: Patrick Steinhardt @ 2024-09-26 14:02 UTC (permalink / raw)
To: phillip.wood
Cc: Eli Schwartz, Junio C Hamano, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
On Thu, Sep 26, 2024 at 02:55:52PM +0100, Phillip Wood wrote:
> Hi Patrick
>
> On 25/09/2024 07:04, Patrick Steinhardt wrote:
> > On Wed, Sep 25, 2024 at 02:02:34AM -0400, Eli Schwartz wrote:
> >
> > > I'm probably biased, but some of these failure modes are *weird*. And
> > > they basically never require the CMakeLists.txt to do something
> > > considered non-idiomatic in order to trigger the issue.
> >
> > All of this is very valuable data to make my case for Meson instead of
> > CMake. Appreciated, thanks!
>
> One thing to bear in mind is why our CMakeLists.txt was introduced in the
> first place [1]. Visual Studio's CMake integration means that so long as
> git-for-windows is installed building git is simply a case of clicking on a
> button, there is no need to install extra software or plugins. I'm not sure
> the same is true for meson and I don't think we want to end up supporting
> both.
>
> Best Wishes
>
> Phillip
>
> [1] https://lore.kernel.org/git/nycvar.QRO.7.76.6.2004251354390.18039@tvgsbejvaqbjf.bet/
Fair enough. The final discussion about which build system to pick is of
course still to be had. Having worked with both CMake and Meson quite a
bit in the past I'm strongly in favor of Meson myself, and so I will try
to make a strong case for it. But points like this of course need to be
considered when we have the discussion.
The nice thing is that we'll then have all serious contenders (that I am
aware of) wired up, even though the level of support will be different
across them. But it should allow folks to come to a better understanding
of what they will be signing up for.
In any case, I'm now in a state where the Meson-based build works and
tests just fine, except for t0200, which requires a bit more plumbing to
set up xgettext infra. Once I'm done with that I'll go off and test with
both macOS and Windows to check how the experience is over there. I hope
to be done with that somewhen next week, at which point I'll send things
to the mailing list.
Patrick
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-26 13:55 ` Phillip Wood
2024-09-26 14:02 ` Patrick Steinhardt
@ 2024-09-26 16:04 ` Eli Schwartz
2024-09-27 10:00 ` phillip.wood123
2024-09-26 16:22 ` Junio C Hamano
2 siblings, 1 reply; 31+ messages in thread
From: Eli Schwartz @ 2024-09-26 16:04 UTC (permalink / raw)
To: phillip.wood, Patrick Steinhardt
Cc: Junio C Hamano, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
[-- Attachment #1.1: Type: text/plain, Size: 2287 bytes --]
On 9/26/24 9:55 AM, Phillip Wood wrote:
> One thing to bear in mind is why our CMakeLists.txt was introduced in
> the first place [1]. Visual Studio's CMake integration means that so
> long as git-for-windows is installed building git is simply a case of
> clicking on a button, there is no need to install extra software or
> plugins. I'm not sure the same is true for meson and I don't think we
> want to end up supporting both.
I can't really offer suggestions on what may or may not come
preinstalled in Visual Studio. That thread does suggest the major
problem cmake was trying to solve is:
- having to install the git-for-windows sdk at all (is it still
necessary? I guess so, because POSIX shell and perl and mingw
runtimes. Unsure how either meson or cmake could solve this.)
- people who are *unfamiliar with the command line and want a GUI*
Meson has a trivially installable VS Code plugin that is supposed to
handle setting up the project for you. You can generate either ninja
projects or Visual Studio solutions. "One may need to install a plugin"
is hopefully not as big a barrier to entry as "install a bunch of stuff
then go to a shell and run make vcxproj". Is the criteria truly "must be
one button click"?
I'm aware that Visual Studio and VS Code are different IDEs but I know
nothing really about the former, SEO for distinguishing between the two
is *atrocious*, they use the same exact plugins marketplace, and I
figure using VS Code ought to be easy enough for such users if
necessary, anyway.
I think that discussion between Meson / CMake / GNU Make / etc. should
be based on technical merit with attention paid to ease of use without
coalescing down to "unfortunately, our choice has been made for us. We
must support a *specific* Windows IDE and use whichever build system is
preinstalled inside that IDE, because it must be a one-button solution
with no dependencies".
Stuff like "how painful is it for a Windows contributor to set up an SDK
and then also go mess around with Makefile targets and then load the
result into their IDE" is an interesting discussion to have but not
quite the same as saying "go to the marketplace and install such and
such plugin" is an obstacle.
--
Eli Schwartz
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-26 13:55 ` Phillip Wood
2024-09-26 14:02 ` Patrick Steinhardt
2024-09-26 16:04 ` Eli Schwartz
@ 2024-09-26 16:22 ` Junio C Hamano
2024-09-29 17:56 ` Johannes Schindelin
2 siblings, 1 reply; 31+ messages in thread
From: Junio C Hamano @ 2024-09-26 16:22 UTC (permalink / raw)
To: Phillip Wood
Cc: Patrick Steinhardt, Eli Schwartz, Henrik Holst,
git@vger.kernel.org, Johannes Schindelin, Jonathan Nieder
Phillip Wood <phillip.wood123@gmail.com> writes:
> Hi Patrick
>
> On 25/09/2024 07:04, Patrick Steinhardt wrote:
>> On Wed, Sep 25, 2024 at 02:02:34AM -0400, Eli Schwartz wrote:
>>
>>> I'm probably biased, but some of these failure modes are *weird*. And
>>> they basically never require the CMakeLists.txt to do something
>>> considered non-idiomatic in order to trigger the issue.
>> All of this is very valuable data to make my case for Meson instead
>> of
>> CMake. Appreciated, thanks!
>
> One thing to bear in mind is why our CMakeLists.txt was introduced in
> the first place [1]. Visual Studio's CMake integration means that so
> long as git-for-windows is installed building git is simply a case of
> clicking on a button, there is no need to install extra software or
> plugins. I'm not sure the same is true for meson and I don't think we
> want to end up supporting both.
Is CMake the _only_ thing that is integrated into Visual Studio?
Are there other possible candidates that could also be used to build
for non-Windows and is usable by this project?
> Best Wishes
>
> Phillip
>
> [1]
> https://lore.kernel.org/git/nycvar.QRO.7.76.6.2004251354390.18039@tvgsbejvaqbjf.bet/
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-26 1:35 ` Eli Schwartz
@ 2024-09-26 19:42 ` Paul Smith
0 siblings, 0 replies; 31+ messages in thread
From: Paul Smith @ 2024-09-26 19:42 UTC (permalink / raw)
To: git@vger.kernel.org
On Wed, 2024-09-25 at 21:35 -0400, Eli Schwartz wrote:
> On 9/25/24 11:33 AM, Paul Smith wrote:
> > On Tue, 2024-09-24 at 10:39 -0700, Junio C Hamano wrote:
> > > Our dependance of heavy use of GNU-ism in our Makefiles makes an
> > > argument that make is the common denominator a fairly weak one,
> > > so
> > > the single one that eventually we use does not have to be "make",
> > > but it has to be something available widely and easy to learn.
> >
> > Regardless of what one might imagine :), I am not advocating GNU
> > Make as the perfect solution: it certainly has downsides and
> > disadvantages.
>
> :)
>
> I've read your article about why people should use autoconf!
>
> (By the way: I had a bit of a... chuckle, when I read in your
> previous email that as the GNU maintainer of Make, you build lots of
> projects with Make or CMake, but not with GNU autoconf / automake. I
> assume that was just bad wording?)
This is actually part of my $DAYJOB, not as the maintainer of GNU Make.
It's not even part of my job there, but I like to have modern tools and
I hate to mandate certain distributions and distro releases for
everyone, so I build a complete toolchain including its own sysroot
that everyone checks out from a Git repo to build our product.
At my $DAYJOB we use CMake, actually, so I'm also very familiar with
it.
But when I said "make" previously I meant to encompass autoconf
projects. You're right, it's not really precise to compare make to
cmake since cmake build makefiles as well. It's more accurate to
compare it to autoconf.
So, I should have said "autoconf and cmake" :)
However there are also projects that use raw makefiles and no build
generator tools.
I certainly didn't mean to imply that requiring Python is a show-
stopper for Git. There are lots of options depending on needs. But it
can't be argued that it's not more work for the builder than using GNU
Make.
Maybe this is will be deemed not worth worrying about given the
alternatives, and I wouldn't argue with that. I just raise it so it
can be given consideration before a decision is made to (for example)
drop support for makefiles.
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-26 16:04 ` Eli Schwartz
@ 2024-09-27 10:00 ` phillip.wood123
0 siblings, 0 replies; 31+ messages in thread
From: phillip.wood123 @ 2024-09-27 10:00 UTC (permalink / raw)
To: Eli Schwartz, phillip.wood, Patrick Steinhardt
Cc: Junio C Hamano, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
Hi Eli
Thanks for this, it's useful to know how meson works with Visual Studio
On 26/09/2024 17:04, Eli Schwartz wrote:
> On 9/26/24 9:55 AM, Phillip Wood wrote:
>> One thing to bear in mind is why our CMakeLists.txt was introduced in
>> the first place [1]. Visual Studio's CMake integration means that so
>> long as git-for-windows is installed building git is simply a case of
>> clicking on a button, there is no need to install extra software or
>> plugins. I'm not sure the same is true for meson and I don't think we
>> want to end up supporting both.
>
>
> I can't really offer suggestions on what may or may not come
> preinstalled in Visual Studio. That thread does suggest the major
> problem cmake was trying to solve is:
>
> - having to install the git-for-windows sdk at all (is it still
> necessary? I guess so, because POSIX shell and perl and mingw
> runtimes. Unsure how either meson or cmake could solve this.)
If you've got git-for-windows installed then it has the POSIX and perl
bits that are required to run git and the CMake build uses those and
downloads any libraries it needs with vcpkg so you don't need the sdk.
> - people who are *unfamiliar with the command line and want a GUI*
>
>
> Meson has a trivially installable VS Code plugin that is supposed to
> handle setting up the project for you. You can generate either ninja
> projects or Visual Studio solutions. "One may need to install a plugin"
> is hopefully not as big a barrier to entry as "install a bunch of stuff
> then go to a shell and run make vcxproj". Is the criteria truly "must be
> one button click"?
Personally I think so long as there is a simple way to build git without
resorting to the command line that should be fine. It sounds like that's
the case with meson.
> [...]
> Stuff like "how painful is it for a Windows contributor to set up an SDK
> and then also go mess around with Makefile targets and then load the
> result into their IDE" is an interesting discussion to have but not
> quite the same as saying "go to the marketplace and install such and
> such plugin" is an obstacle.
Agreed
Best Wishes
Phillip
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-26 14:02 ` Patrick Steinhardt
@ 2024-09-27 10:10 ` Phillip Wood
0 siblings, 0 replies; 31+ messages in thread
From: Phillip Wood @ 2024-09-27 10:10 UTC (permalink / raw)
To: Patrick Steinhardt, phillip.wood
Cc: Eli Schwartz, Junio C Hamano, Henrik Holst, git@vger.kernel.org,
Johannes Schindelin, Jonathan Nieder
Hi Patrick
On 26/09/2024 15:02, Patrick Steinhardt wrote:
> On Thu, Sep 26, 2024 at 02:55:52PM +0100, Phillip Wood wrote:
>> Hi Patrick
>>
>> On 25/09/2024 07:04, Patrick Steinhardt wrote:
>>> On Wed, Sep 25, 2024 at 02:02:34AM -0400, Eli Schwartz wrote:
>>>
>>>> I'm probably biased, but some of these failure modes are *weird*. And
>>>> they basically never require the CMakeLists.txt to do something
>>>> considered non-idiomatic in order to trigger the issue.
>>>
>>> All of this is very valuable data to make my case for Meson instead of
>>> CMake. Appreciated, thanks!
>>
>> One thing to bear in mind is why our CMakeLists.txt was introduced in the
>> first place [1]. Visual Studio's CMake integration means that so long as
>> git-for-windows is installed building git is simply a case of clicking on a
>> button, there is no need to install extra software or plugins. I'm not sure
>> the same is true for meson and I don't think we want to end up supporting
>> both.
>>
>> Best Wishes
>>
>> Phillip
>>
>> [1] https://lore.kernel.org/git/nycvar.QRO.7.76.6.2004251354390.18039@tvgsbejvaqbjf.bet/
>
> Fair enough. The final discussion about which build system to pick is of
> course still to be had. Having worked with both CMake and Meson quite a
> bit in the past I'm strongly in favor of Meson myself, and so I will try
> to make a strong case for it. But points like this of course need to be
> considered when we have the discussion.
From what Eli said, we should have a reasonable story for building with
meson in Visual Studio
> The nice thing is that we'll then have all serious contenders (that I am
> aware of) wired up, even though the level of support will be different
> across them. But it should allow folks to come to a better understanding
> of what they will be signing up for.
Yes, that will be helpful
> In any case, I'm now in a state where the Meson-based build works and
> tests just fine, except for t0200, which requires a bit more plumbing to
> set up xgettext infra. Once I'm done with that I'll go off and test with
> both macOS and Windows to check how the experience is over there. I hope
> to be done with that somewhen next week, at which point I'll send things
> to the mailing list.
It sounds like you're making good progress, I look forward to seeing the
patches
Best Wishes
Phillip
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-26 16:22 ` Junio C Hamano
@ 2024-09-29 17:56 ` Johannes Schindelin
2024-09-29 18:10 ` Eli Schwartz
0 siblings, 1 reply; 31+ messages in thread
From: Johannes Schindelin @ 2024-09-29 17:56 UTC (permalink / raw)
To: Junio C Hamano
Cc: Phillip Wood, Patrick Steinhardt, Eli Schwartz, Henrik Holst,
git@vger.kernel.org, Jonathan Nieder
Hi Junio,
On Thu, 26 Sep 2024, Junio C Hamano wrote:
> Phillip Wood <phillip.wood123@gmail.com> writes:
>
> > On 25/09/2024 07:04, Patrick Steinhardt wrote:
> >> On Wed, Sep 25, 2024 at 02:02:34AM -0400, Eli Schwartz wrote:
> >>
> >>> I'm probably biased, but some of these failure modes are *weird*.
> >>> And they basically never require the CMakeLists.txt to do something
> >>> considered non-idiomatic in order to trigger the issue.
> >>
> >> All of this is very valuable data to make my case for Meson instead
> >> of CMake. Appreciated, thanks!
> >
> > One thing to bear in mind is why our CMakeLists.txt was introduced in
> > the first place [1]. Visual Studio's CMake integration means that so
> > long as git-for-windows is installed building git is simply a case of
> > clicking on a button, there is no need to install extra software or
> > plugins. I'm not sure the same is true for meson and I don't think we
> > want to end up supporting both.
>
> Is CMake the _only_ thing that is integrated into Visual Studio? Are
> there other possible candidates that could also be used to build for
> non-Windows and is usable by this project?
There is one other build system that is highly integrated into Visual
Studio, and that is MSBuild, using `.vcxproj` files. I do not need three
guesses to find out what you think about porting Git over to that system.
Other than that, there really is only CMake support:
https://learn.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio
Meson came up as an alternative, so the obvious question is whether it
could be used conveniently from within Visual Studio. It takes but one
look at https://mesonbuild.com/Using-with-Visual-Studio.html to see that
no, the instructions ask the developed to use a command-line interface,
which is the opposite of integrating well with an IDE.
In short: If we're serious that we want to stop treating Windows-based
developers as if they were unwanted here, we'll need to stick to CMake.
Ciao,
Johannes
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-29 17:56 ` Johannes Schindelin
@ 2024-09-29 18:10 ` Eli Schwartz
2024-09-30 8:50 ` Phillip Wood
0 siblings, 1 reply; 31+ messages in thread
From: Eli Schwartz @ 2024-09-29 18:10 UTC (permalink / raw)
To: Johannes Schindelin, Junio C Hamano
Cc: Phillip Wood, Patrick Steinhardt, Henrik Holst,
git@vger.kernel.org, Jonathan Nieder
[-- Attachment #1.1: Type: text/plain, Size: 701 bytes --]
On 9/29/24 1:56 PM, Johannes Schindelin wrote:
> Meson came up as an alternative, so the obvious question is whether it
> could be used conveniently from within Visual Studio. It takes but one
> look at https://mesonbuild.com/Using-with-Visual-Studio.html to see that
> no, the instructions ask the developed to use a command-line interface,
> which is the opposite of integrating well with an IDE.
>
> In short: If we're serious that we want to stop treating Windows-based
> developers as if they were unwanted here, we'll need to stick to CMake.
Hi,
I guess you didn't read the previous comments in this thread? Maybe you
should take more than one look. :)
--
Eli Schwartz
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-29 18:10 ` Eli Schwartz
@ 2024-09-30 8:50 ` Phillip Wood
2024-09-30 13:57 ` Eli Schwartz
2024-09-30 16:05 ` Johannes Schindelin
0 siblings, 2 replies; 31+ messages in thread
From: Phillip Wood @ 2024-09-30 8:50 UTC (permalink / raw)
To: Eli Schwartz, Johannes Schindelin, Junio C Hamano
Cc: Patrick Steinhardt, Henrik Holst, git@vger.kernel.org,
Jonathan Nieder
On 29/09/2024 19:10, Eli Schwartz wrote:
> On 9/29/24 1:56 PM, Johannes Schindelin wrote:
>> Meson came up as an alternative, so the obvious question is whether it
>> could be used conveniently from within Visual Studio. It takes but one
>> look at https://mesonbuild.com/Using-with-Visual-Studio.html to see that
>> no, the instructions ask the developed to use a command-line interface,
>> which is the opposite of integrating well with an IDE.
>>
>> In short: If we're serious that we want to stop treating Windows-based
>> developers as if they were unwanted here, we'll need to stick to CMake.
>
> Hi,
>
> I guess you didn't read the previous comments in this thread? Maybe you
> should take more than one look. :)
We cannot expect everyone who wants to build git using meson in Visual
Studio to read this thread and find the message that mentions installing
a plugin. It is much more likely that they, like Johannes, will find the
documentation on the meson website and conclude they need to run some
commands on the commandline. That's a problem with the documentation,
not the person reading it. Even if they do find the plugin [1] it is not
clear that it helps - no where does it say "this enables you to build
software with meson", instead it talks about syntax highlighting, code
snippets and linting for meson files.
Best Wishes
Phillip
[1]
https://marketplace.visualstudio.com/items?itemName=mesonbuild.mesonbuild
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-30 8:50 ` Phillip Wood
@ 2024-09-30 13:57 ` Eli Schwartz
2024-09-30 16:31 ` Junio C Hamano
2024-09-30 16:05 ` Johannes Schindelin
1 sibling, 1 reply; 31+ messages in thread
From: Eli Schwartz @ 2024-09-30 13:57 UTC (permalink / raw)
To: phillip.wood, Johannes Schindelin, Junio C Hamano
Cc: Patrick Steinhardt, Henrik Holst, git@vger.kernel.org,
Jonathan Nieder
[-- Attachment #1.1: Type: text/plain, Size: 1499 bytes --]
On 9/30/24 4:50 AM, Phillip Wood wrote:
> We cannot expect everyone who wants to build git using meson in Visual
> Studio to read this thread and find the message that mentions installing
> a plugin. It is much more likely that they, like Johannes, will find the
> documentation on the meson website and conclude they need to run some
> commands on the commandline. That's a problem with the documentation,
> not the person reading it. Even if they do find the plugin [1] it is not
> clear that it helps - no where does it say "this enables you to build
> software with meson", instead it talks about syntax highlighting, code
> snippets and linting for meson files.
Sure. And I'm happy to (help) improve the documentation. I've already
pushed a fix to the page Johannes linked, since it was many years out of
date (???) and didn't reflect the fact that meson will automatically
detect the Visual Studio toolset for you.
(Note that since meson will "automatically do the right thing" here,
that means it is practical for a plugin to run meson under the hood for
you... much like how cmake plugins handle things.)
As far as reading this thread goes, though, I assume that in such a
future, people who want to build git using meson in Visual Studio would
be optimally served by a slight reorganization to ./INSTALL to provide
guidance on where to find meson and what plugin to use, which provides
an additional entrypoint for clarification. :)
--
Eli Schwartz
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-30 8:50 ` Phillip Wood
2024-09-30 13:57 ` Eli Schwartz
@ 2024-09-30 16:05 ` Johannes Schindelin
1 sibling, 0 replies; 31+ messages in thread
From: Johannes Schindelin @ 2024-09-30 16:05 UTC (permalink / raw)
To: phillip.wood
Cc: Eli Schwartz, Junio C Hamano, Patrick Steinhardt, Henrik Holst,
git@vger.kernel.org, Jonathan Nieder
Hi Phillip,
On Mon, 30 Sep 2024, Phillip Wood wrote:
> On 29/09/2024 19:10, Eli Schwartz wrote:
> > On 9/29/24 1:56 PM, Johannes Schindelin wrote:
> > > Meson came up as an alternative, so the obvious question is whether it
> > > could be used conveniently from within Visual Studio. It takes but one
> > > look at https://mesonbuild.com/Using-with-Visual-Studio.html to see that
> > > no, the instructions ask the developed to use a command-line interface,
> > > which is the opposite of integrating well with an IDE.
> > >
> > > In short: If we're serious that we want to stop treating Windows-based
> > > developers as if they were unwanted here, we'll need to stick to CMake.
> >
> > I guess you didn't read the previous comments in this thread? Maybe you
> > should take more than one look. :)
>
> We cannot expect everyone who wants to build git using meson in Visual Studio
> to read this thread and find the message that mentions installing a plugin. It
> is much more likely that they, like Johannes, will find the documentation on
> the meson website and conclude they need to run some commands on the
> commandline. That's a problem with the documentation, not the person reading
> it. Even if they do find the plugin [1] it is not clear that it helps - no
> where does it say "this enables you to build software with meson", instead it
> talks about syntax highlighting, code snippets and linting for meson files.
I had actually read it. Not wanting to be xkcd 386, I had decided to
refrain from replying. But it would appear that I have to.
> [1] https://marketplace.visualstudio.com/items?itemName=mesonbuild.mesonbuild
Thank you for providing an actual link, it was missing in this thread
(handwaving is not really good enough, I would say).
On that page, we see a serious flaw in the argument made in
https://lore.kernel.org/git/71ed5967-0302-42bc-97c7-81886408d688@gentoo.org/:
Visual Studio Code>Programming Languages>Meson
[...]
Meson for Visual Studio Code
Now, I am the first to admit that it is confusing that there is Visual
Studio Code and then there is Visual Studio, and those two products share
mostly the "Visual Studio" in their name, but little else.
Most notably, you cannot install VS Code Extensions into Visual Studio,
and vice versa Visual Studio extensions cannot be installed into VS Code.
See https://www.freecodecamp.org/news/visual-studio-vs-visual-studio-code/
or https://dev.to/hadil/the-difference-between-visual-studio-vs-visual-studio-code-35oh
for more detailed explanations.
And when you navigate on that Marketplace to the Visual Studio extensions
(sans "Code"), you will find that, frustratingly,
https://marketplace.visualstudio.com/search?term=meson&target=VS comes up
empty:
Your search for 'meson' didn't match any extensions
In other words: Visual Studio, _the_ most prevalent IDE for Windows-based
C/C++ developers, has no Meson support worth talking about. None.
Now, how about instead suggesting VS Code to direct Windows-based
developers who are eager to contribute to Git? Alas, VS Code does not come
with a C/C++ compiler. Not even a canonical extension to compile C. Even
if there were, the user experience of having to scour around for plugins
and 3rd-party software to install, and _then_ somehow getting the needed
libraries like libcurl into that setup, _just_ to build Git (and we are
not even yet talking about running tests from Git's test suite that do not
eagerly lend themselves to be run from common test frameworks that would
be supported by VS Code _extensions_) is about 100x worse than telling
contributors to simply open their git.git checkout in Visual Studio and
let CMake do its thing.
Yes, I made up that "100x" from thin air, but it's easy to imagine that
some (most?) developers would contend that this is a few orders of
magnitude too generous.
Personally, I have to admit that I find very, very little consolation in
the suggestion that these days, Meson will "automatically do the right
thing", without requiring to be run in a VS Developer Prompt:
_These commands still have to be run in a Command Prompt_, i.e. completely
outside of Visual Studio, in a text-based terminal that Windows-based
developers will find off-putting to the point of rolling their eyes at the
suggestion.
In summary: From my perspective, these quite serious flaws put quite a
huge dent into the credibility of these arguments pro Meson (and contra
CMake). Forcing Windows-based developers away from CMake and toward Meson
would definitely make the developer experience substantially worse. To be
honest, I hoped that we would make the experience better. Certainly not
worse.
Ciao,
Johannes
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: ./configure fails to link test program due to missing dependencies
2024-09-30 13:57 ` Eli Schwartz
@ 2024-09-30 16:31 ` Junio C Hamano
0 siblings, 0 replies; 31+ messages in thread
From: Junio C Hamano @ 2024-09-30 16:31 UTC (permalink / raw)
To: Eli Schwartz
Cc: phillip.wood, Johannes Schindelin, Patrick Steinhardt,
Henrik Holst, git@vger.kernel.org, Jonathan Nieder
Eli Schwartz <eschwartz@gentoo.org> writes:
> Sure. And I'm happy to (help) improve the documentation. I've already
> pushed a fix to the page Johannes linked, since it was many years out of
> date (???) and didn't reflect the fact that meson will automatically
> detect the Visual Studio toolset for you.
>
> (Note that since meson will "automatically do the right thing" here,
> that means it is practical for a plugin to run meson under the hood for
> you... much like how cmake plugins handle things.)
>
>
> As far as reading this thread goes, though, I assume that in such a
> future, people who want to build git using meson in Visual Studio would
> be optimally served by a slight reorganization to ./INSTALL to provide
> guidance on where to find meson and what plugin to use, which provides
> an additional entrypoint for clarification. :)
Yup, whenever a procedure changes, documentation to guide folks
along the procedure need to change. Otherwise they will be lost.
And it is very good that we see people are improving the candidates
being offered that way, not just enumerating how it is superior to
the status quo (in their opinion) once adopted, but making sure it
would not inconvenience or alienate existing users who are used to
the way proposed for deprecation.
^ permalink raw reply [flat|nested] 31+ messages in thread
end of thread, other threads:[~2024-09-30 16:31 UTC | newest]
Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-14 22:57 ./configure fails to link test program due to missing dependencies Henrik Holst
2024-09-15 16:37 ` Junio C Hamano
2024-09-15 16:47 ` brian m. carlson
2024-09-16 7:50 ` Patrick Steinhardt
2024-09-18 10:04 ` Phillip Wood
2024-09-18 22:39 ` Junio C Hamano
2024-09-24 12:10 ` Patrick Steinhardt
2024-09-24 13:59 ` Eli Schwartz
2024-09-24 14:25 ` Paul Smith
2024-09-25 4:36 ` Patrick Steinhardt
2024-09-25 6:02 ` Eli Schwartz
2024-09-25 6:04 ` Patrick Steinhardt
2024-09-26 13:55 ` Phillip Wood
2024-09-26 14:02 ` Patrick Steinhardt
2024-09-27 10:10 ` Phillip Wood
2024-09-26 16:04 ` Eli Schwartz
2024-09-27 10:00 ` phillip.wood123
2024-09-26 16:22 ` Junio C Hamano
2024-09-29 17:56 ` Johannes Schindelin
2024-09-29 18:10 ` Eli Schwartz
2024-09-30 8:50 ` Phillip Wood
2024-09-30 13:57 ` Eli Schwartz
2024-09-30 16:31 ` Junio C Hamano
2024-09-30 16:05 ` Johannes Schindelin
2024-09-25 19:15 ` Patrick Steinhardt
2024-09-25 19:17 ` Patrick Steinhardt
2024-09-24 17:39 ` Junio C Hamano
2024-09-25 15:33 ` Paul Smith
2024-09-26 1:35 ` Eli Schwartz
2024-09-26 19:42 ` Paul Smith
2024-09-24 14:31 ` Eli Schwartz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).