PGBuildFarm / server-code

PostgreSQL Build Farm Server
https://buildfarm.postgresql.org
Other
13 stars 11 forks source link

show_status.pl ignores `-Dnls=disabled` #14

Open wolfgangwalther opened 6 months ago

wolfgangwalther commented 6 months ago

In my config I set -Dnls=disabled for the animal dogfish. It still shows as building with nls on the status page, though.

wolfgangwalther commented 6 months ago

It also seems like the default of -Dbuildtype=debugoptimized is not recognized as "debug". For meson animals the debug icon is only shown, when --debug is passed. It seems like the sample conf in the client-code intended to set "debug" as the default for both autoconf and meson, so this should be reflected in the icons on the status page, too.

wolfgangwalther commented 6 months ago

The problem is here:

https://github.com/PGBuildFarm/server-code/blob/8572ac748743ba22334f1890a5bbb576a58a4da9/cgi-bin/pgstatus.pl#L405-L410

For the nls case, this removes the =disabled flag. I do have a -Dnls=enabled before. So I could work around that by removing this instead.

For the debug case.. all values are stripped out, so a buildtype= will never be recognized this way.

adunstan commented 6 months ago

This is simply untrue. For the two builds where the flags contained nls you in fact had -Dnls=enabled. For the two where you did not have it enabled the flags do not contain nls.

wolfgangwalther commented 6 months ago

his is simply untrue. For the two builds where the flags contained nls you in fact had -Dnls=enabled.

Nope, not possible. It doesn't even build successfully with nls enabled.

I had -Dnls=enabled (taken from the example config) followed by -Dnls=disabled. But the disabled flag was removed on import by the lines cited above, so it doesn't even show up online.

I later changed this, so that I only had the disabled flag and not the enabled flag anymore, that's why the icon doesn't show up anymore. This is the workaround I described above.

This is still an issue, though, because you'd expect to be able to use both enabled and disabled flags together. And the buildtype/debug related issue wasn't even adressed.

wolfgangwalther commented 6 months ago

This was the first run we are talking about: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=dogfish&dt=2024-03-29%2012%3A52%3A21

It has this:

'meson_opts' => [
                                     '-Dcassert=true',
                                     '-Dbuildtype=debugoptimized',
                                     '-Dnls=enabled',
[...]
                                     '-Dnls=disabled',
                                     '-Dicu=disabled'
                                   ],

But with the lines quoted above the entry in build_flags in the database will still have nls.

adunstan commented 6 months ago

You are wasting my time with nonsense. Here's proof from the database:

pgbfprod=> create function find_meson_nls(t text) returns text language plperl as $$ my $t = shift; if ($t =~ /(-Dnls=.*)/) { return $1; }; return ""; $$;
CREATE FUNCTION

pgbfprod=> select snapshot, branch, find_meson_nls(conf_sum), build_flags from build_status where sysname = 'dogfish' \gx
-[ RECORD 1 ]--+------------------------------------------------------------------------------------------------------------------------------------------------------------------------
snapshot       | 2024-03-29 12:52:30
branch         | REL_16_STABLE
find_meson_nls | -Dnls=enabled',
build_flags    | {cassert,buildtype,nls,plperl,plpython,pltcl,gssapi,ssl,ldap,libxml,libxslt,zlib,readline,lz4,llvm,pam,tap_tests,uuid,zstd,libedit_preferred,meson,git}
-[ RECORD 2 ]--+------------------------------------------------------------------------------------------------------------------------------------------------------------------------
snapshot       | 2024-03-29 12:52:21
branch         | HEAD
find_meson_nls | -Dnls=enabled',
build_flags    | {cassert,buildtype,nls,plperl,plpython,pltcl,gssapi,ssl,ldap,libxml,libxslt,zlib,readline,lz4,llvm,pam,tap_tests,uuid,zstd,libedit_preferred,meson,git}
-[ RECORD 3 ]--+------------------------------------------------------------------------------------------------------------------------------------------------------------------------
snapshot       | 2024-03-30 03:36:49
branch         | REL_16_STABLE
find_meson_nls | 
build_flags    | {cassert,buildtype,plperl,plpython,pltcl,gssapi,ssl,ldap,libxml,libxslt,zlib,readline,PG_TEST_EXTRA,debug,llvm,lz4,pam,tap_tests,uuid,zstd,libedit_preferred,meson,git}
-[ RECORD 4 ]--+------------------------------------------------------------------------------------------------------------------------------------------------------------------------
snapshot       | 2024-03-30 03:48:30
branch         | HEAD
find_meson_nls | 
build_flags    | {cassert,buildtype,plperl,plpython,pltcl,gssapi,ssl,ldap,libxml,libxslt,zlib,readline,PG_TEST_EXTRA,debug,llvm,lz4,pam,tap_tests,uuid,zstd,libedit_preferred,meson,git}
-[ RECORD 5 ]--+------------------------------------------------------------------------------------------------------------------------------------------------------------------------
snapshot       | 2024-03-30 10:46:25
branch         | REL_16_STABLE
find_meson_nls | 
build_flags    | {cassert,buildtype,plperl,plpython,pltcl,gssapi,ssl,ldap,libxml,libxslt,zlib,readline,PG_TEST_EXTRA,debug,llvm,lz4,pam,tap_tests,uuid,zstd,libedit_preferred,meson,git}
wolfgangwalther commented 6 months ago

Here's proof from the database:

Which proves exactly my point.

You are wasting my time with nonsense.

Ok, no worries - I won't provide any feedback for the buildfarm anymore.

adunstan commented 6 months ago

It doesn't prove anything of the sort. It does prove these things:

  1. in none of these builds is -Dnls=disabled specified
  2. The flags only contain nls where you actually specified -Dnls=enabled. The system is working as intended.
wolfgangwalther commented 6 months ago
1. in none of these builds is `-Dnls=disabled` specified

Please open this URL https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=dogfish&dt=2024-03-29%2012%3A52%3A21 and search for nls=disabled.

adunstan commented 6 months ago

Wait

adunstan commented 6 months ago

Wait, you had both enabled and disabled set? Why on earth would you do that? No, we don't cater for that.

wolfgangwalther commented 6 months ago

Wait, you had both enabled and disabled set? Why on earth would you do that?

Yes, I mentioned that repeatedly above.

I do so, because I don't write a full config, but instead import the sample config and "extend" it. This way I will get the benefit of receiving all the defaults you might change in the future automatically.

See https://github.com/technowledgy/postgresql-buildfarm-alpine/blob/main/shared.conf and https://github.com/technowledgy/postgresql-buildfarm-alpine/blob/main/meson.conf. The code now filters out the -Dnls=enabled from the sample file, but previously just added a -Dnls=disabled on top.

No, we don't cater for that.

It's a valid way to call configure/meson, so we should.

adunstan commented 6 months ago

shrug I regard it as very low on my list of priorities. Nobody's ever complained about this in approximately 20 years.