Subject: Re: [PATCH RFC 1/3] meson: add infrastructure to build internal Rust library

From: "brian m. carlson" <[email-masked]>
Date: Thu, 4 Sep 2025 22:06:43 +0000

On 2025-09-04 at 14:26:43, Patrick Steinhardt wrote:
> Add the infrastructure into Meson to build an internal Rust library.
> Building the Rust parts of Git are for now entirely optional, as they
> are mostly intended as a test balloon for both Git developers, but also
> for distributors of Git. So for now, they may contain:
> 
>   - New features that are not mission critical to Git and that users can
>     easily live without.
> 
>   - Alternative implementations of small subsystems.
> 
> If these test balloons are successful, we will eventually make Rust a
> mandatory dependency for our build process in Git 3.0.
> 
> The availability of a Rust toolchain will be auto-detected by Meson at
> setup time. This behaviour can be tweaked via the `-Drust=` feature
> toggle.
> 
> Next to the linkable Rust library, also wire up tests that can be
> executed via `meson test`. This allows us to use the native unit testing
> capabilities of Rust.

I don't see any changes in this series that wire up the Makefile to do
the same thing.  Lots of people use the Makefile, or things based on the
Makefile like the autotools, so we'll want to make sure this
autodetection works there.  For instance, I build with the Makefile, we
build with it at work, and Debian builds only with the Makefile.

We also probably need to test this configuration in CI as well.

> diff --git a/meson.build b/meson.build
> index e8ec0eca165..1c0e98bbc14 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1702,8 +1702,21 @@ version_def_h = custom_target(
>  )
>  libgit_sources += version_def_h
>  
> +libgit_libraries = [ ]
> +
> +if meson.version().version_compare('>=1.9.0')

I think we need a different approach.  Debian 13, which was just
released, only supports meson 1.7.0, and you have to use testing or
unstable to get 1.9.0.  There are no versions of Ubuntu, released or
not, that support meson 1.9.0.

If we require this version, practically nobody is going to actually test
this case.

Our platform support policy implies that we should be requiring nothing
greater than meson 0.56.2, which is available in Debian 11 and has LTS
support until 2026-08-31.  Ubuntu 22.04 offers 0.61.2.
-- 
brian m. carlson (they/them)
Toronto, Ontario, CA