Re: [-SPAM-] [PATCH RFC v6 00/19] Modernize the build system

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 13, 2024 at 03:30:20AM +0000, Ramsay Jones wrote:
> On 12/11/2024 17:02, Patrick Steinhardt wrote:
> > Hi,
> > 
> > this patch series modernizes our build infrasturcture. It refactors
> > various parts of it to make it possible to perform out-of-tree builds in
> > theory.
> > 
> > The series then continues to wire up Meson as a proposed alternative as
> > a modern replacement for our current build systems. It provides better
> > integration into IDEs than our Makefiles, better usability than our
> > Makefiles and CMake, better configuration and discoverability thereof
> > than autoconf and CMake (which is of course my personal opinion).
> > 
> > The intent is to have Meson replace autoconf, which is mostly unused and
> > broken. Eventually, the plan would to also replace CMake and our
> > Makefiles in case we figure out that this replacement is indeed a net
> > benefit for the project, but all of this would happen over the course of
> > multiple releases.
> > 
> > Changes in v6:
> > 
> >   - Add documentation for how to use Meson.
> > 
> >   - Fix compilation in case libintl exists, but required tools like
> >     msgfmt and related don't. Instead of failing, we now automatically
> >     compile with the equivalent of NO_GETTEXT=YesPlease.
> > 
> >   - Update last patch that fixes semantic merge conflics with in-flight
> >     topics in "seen".
> > 
> >   - I've changed the series to be based on "master" at b31fb630c0 (Merge
> >     https://github.com/j6t/git-gui, 2024-11-11) as all prereqs of this
> >     series have since landed. This doesn't make any difference though
> >     as there aren't any merge conflicts or additional changes caused by
> >     this. I mostly mention this so that there is no confusion around the
> >     changed base commit.
> > 
> 
> Tested this version, without issue, on Linux and cygwin (build + test).

Thanks for verifying!

> On cygwin, the unit test now no longer times out:
> 
>   $ cd git/build
>   $ tail test-out
>   1030/1030 t9902-completion                               OK             114.74s
> 
>   Ok:                 1030
>   Expected Fail:      0   
>   Fail:               0   
>   Unexpected Pass:    0   
>   Skipped:            0   
>   Timeout:            0   
> 
>   Full log written to /home/ramsay/git/build/meson-logs/testlog.txt
>   $ 

Great.

> Having said that, I was expecting to see an 'Unexpected Pass', since
> meson decides to not set NO_REGEX. (The 'make' build on cygwin will
> set 'NO_REGEX = UnfortunatelyYes' in the config.mak.uname).
> 
> In the meson-logs/testlog.txt file, for the t7815-grep-binary.sh test
> stdout, we find:
> 
> ----------------------------------- stdout -----------------------------------
> ok 1 - setup
> ok 2 - git grep ina a
> ok 3 - git grep -ah ina a
> ok 4 - git grep -I ina a
> ok 5 - git grep -c ina a
> ok 6 - git grep -l ina a
> ok 7 - git grep -L bar a
> ok 8 - git grep -q ina a
> ok 9 - git grep -F ile a
> ok 10 - git grep -Fi iLE a
> ok 11 - git grep ile a
> ok 12 - git grep .fi a # TODO known breakage vanished
> ok 13 - grep respects binary diff attribute
> ok 14 - grep --cached respects binary diff attribute
> ok 15 - grep --cached respects binary diff attribute (2)
> ok 16 - grep revision respects binary diff attribute
> ok 17 - grep respects not-binary diff attribute
> ok 18 - setup textconv filters
> ok 19 - grep does not honor textconv
> ok 20 - grep --textconv honors textconv
> ok 21 - grep --no-textconv does not honor textconv
> ok 22 - grep --textconv blob honors textconv
> # 1 known breakage(s) vanished; please update test(s)
> # passed all remaining 21 test(s)
> 1..22
> ==============================================================================
> 
> Note the 'TODO known breakage vanished' on test 12.

Interesting. Right now we don't parse the output of the test executions
themselves, so we only operate on the level of whether or not the whole
test suite passed. So it's expected that this does not get reported as
an unexpected pass.

While Meson can itself generate TAP output, I don't think that it has
support for _reading_ the TAP format.

> Setting NO_REGEX on cygwin is for 'reasons' (not necessarily good) and we
> need a way to override it's decision here. (In general, we need to be able
> to use *any* of the many build variables to override meson's automatic
> setting of these build variables).

I can add an option for this. Out of curiosity, what is the reason? Is
this anything that we can autodetect?

Patrick




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux