On 12/23/2021 11:58 am, Andrew Dunstan wrote:


Oh, you need to be building with the buildfarm client's git tip, not the
released code. Alternatively, apply this patch:


https://github.com/PGBuildFarm/client-code/commit/75c762ba74fdec96ebf6c2433d61d3eeead825c3



with git tip:
output attached.

I can give access if needed.

$ grep -v secret conf/gerenuk.conf
# -*-perl-*- hey - emacs - this is a perl file

=comment

Copyright (c) 2003-2010, Andrew Dunstan

See accompanying License file for license details

=cut

package PGBuild;

use strict;

use warnings FATAL => 'qw';

use vars qw(%conf);

# use vars qw($VERSION); $VERSION = 'REL_4.19';

my $branch;
{
    no warnings qw(once);
    $branch = $main::branch;
}

%conf =(

    # identity
    animal => "gerenuk",

    # source code
    scm => 'git', # or 'cvs'
    git_keep_mirror => 1,  # manage a git mirror in the build root
git_ignore_mirror_failure => 1, # ignore failures in fetching to mirror

    # use symlinked git repo from non-HEAD branches,
    # like git-new-workdir does
    git_use_workdirs => 1,

    scmrepo => undef, # default is community repo for either type
scm_url => undef, # webref for diffs on server - use default for community
    # git_reference => undef, # for --reference on git repo
    # cvsmethod => 'update', # or 'export'
    use_git_cvsserver => undef, # or 'true' if repo is a git cvsserver

    # external commands and control
make => 'gmake', # or gmake if required. can include path if necessary.
    make_jobs => 10, # >1 for parallel "make" and "make check" steps
    tar_log_cmd => undef, # default is "tar -z -cf runlogs.tgz *.log"
    # replacement must have the same effect

    # max time in seconds allowed for a single branch run
    # undef/0 means unlimited
    wait_timeout => undef,

    # where and how to build
    # must be absolute, can be either Unix or Windows style for MSVC
    # undef means default, buildroot dir in script directory
build_root => '/home/pgbuildfarm/buildroot', , # or '/path/to/buildroot',
    use_vpath => undef, # set true to do vpath builds

    # path to directory with auxiliary web script
    # if relative, the must be relative to buildroot/branch
    # Now only used on older Msys installations
    # aux_path => "../..",

    keep_error_builds => 0,
    core_file_glob => "*.core*",   # Linux style, use "*.core" for BSD

    # where to report status
    target => "https://buildfarm.postgresql.org/cgi-bin/pgstatus.pl";,

    # where to report change in OS version or compiler version
upgrade_target => "https://buildfarm.postgresql.org/cgi-bin/upgrade.pl";,

    # change this to a true value if using MSVC, in which case also
    # see MSVC section below

    using_msvc => undef,

# if force_every is a scalar it will be used on all branches, like this
    # for legacy reasons:
# force_every => 336 , # max hours between builds, undef or 0 = unforced # we now prefer it to be a hash with branch names as the keys, like this
    #
# this setting should be kept conservatively high, or not used at all -
    # for the most part it's best to let the script decide if something
    # has changed that requires a new run for the branch.
    #
    # an entry with a name of 'default' matches any branch not named
    force_every => {

        # HEAD => 48,
        # REL8_3_STABLE => 72,
        # default => 168,
    },

# alerts are triggered if the server doesn't see a build on a branch after
    # this many hours, and then sent out every so often,

    alerts => {

        #HEAD          => { alert_after => 72,  alert_every => 24 },
        # REL8_1_STABLE => { alert_after => 240, alert_every => 48 },
    },

    # include / exclude patterns for files that trigger a build
    # if both are specified then they are both applied as filters
    # undef means don't ignore anything.
    # exclude qr[^doc/|\.po$] to ignore changes to docs and po files
    # (recommended)
    # undef means null filter.
    trigger_exclude => qr[^doc/|\.po$],
    trigger_include => undef,

    # settings for mail notices - default to notifying nobody
    # these lists contain addresses to be notified
# must be complete email addresses, as the email is sent from the server

    mail_events =>{
        all => [], # unconditional
        fail => ["ler\@lerctr.org"], # if this build fails
change => ["ler\@lerctr.org"], # if this build causes a state change green => ["ler\@lerctr.org"], # if this build causes a state change to/from OK
    },

# if this flag is set and ccache is used, an unsuccessful run will result # in the removal of the ccache directory (and you need to make sure that # its parent is writable). The default is off - ccache should be able to # handle failures, although there have been suspicions in the past that # it's not quite as reliable as we'd want, and thus we have this option.

    ccache_failure_remove => undef,

# set this if you want to use ccache with the default ccache directory
    # location, effectively $buildroot/ccache-$animal.

    use_default_ccache_dir => 0,

    # env settings to apply within build/report process
    # these settings will be seen by all the processes, including the
    # configure process.

    build_env =>{

        # use a dedicated cache for the build farm. this should give us
        # very high hit rates and slightly faster cache searching.
        #
        # only set this if you want to set your own path for the ccache
        # directory
        #CCACHE_DIR => "/home/pgbuildfarm/misc/ccache",

        ### use these settings for CYGWIN
        # CYGWIN => 'server',
        # MAX_CONNECTIONS => '3',

        ### set this if you need a proxy setting for the
        # outbound web transaction that reports the results
        # BF_PROXY => 'http://my.proxy.server:portnum/',

        # see below for MSVC settings

        # possibly set this to something high if you get pg_ctl failures
        # default is 120
        # PGCTLTIMEOUT => '120',
        INCLUDES=>"-I/usr/local/include",
        LDFLAGS=>"-L/usr/local/lib",

    },

# env settings to pass to configure. These settings will only be seen by
    # configure.
    config_env =>{

        # comment out if not using ccache
        # CC => 'ccache clang',
        CFLAGS => '-O2 -fPIC',
    },

    # don't use --prefix or --with-pgport here
    # they are set up by the script
    # per-branch config can be done here or
    # more simply by using the examples below.
# (default ldap flag is below because it's not supported in all branches)

    # see below for MSVC config

    config_opts =>[
        qw(
          --enable-cassert
          --enable-debug
          --enable-nls
          --enable-tap-tests
          --with-perl
          )
    ],

    # per-branch contents of extra config for check stages.
    # each branch has an array of setting lines (no \n required)
    # a DEFAULT entry is used for all branches, before any
    # branch-specific settings.
    extra_config =>{
        DEFAULT => [
            q(log_line_prefix = '%m [%p:%l] %q%a '),
            "log_connections = 'true'",
            "log_disconnections = 'true'",
            "log_statement = 'all'",
            "fsync = off"
        ],
    },

    optional_steps =>{

        # which optional steps to run and when to run them
# valid keys are: branches, dow, min_hours_since, min_hour, max_hour
        # find_typedefs => { branches => ['HEAD'], dow => [1,4],
        #                                      min_hours_since => 25 },
        # build_docs => {min_hours_since => 24},
    },

    # locales to test

    locales => [qw( C )],

# port number actually used will be based on this param and the branch,
    # so we ensure they don't collide

    base_port => 5678,

    modules => [qw(TestUpgrade TestDecoding)],

    #
);

if ($branch eq 'global')
{

$conf{branches_to_build} = [qw( REL9_2_STABLE REL9_3_STABLE REL9_4_STABLE
                REL9_5_STABLE REL9_6_STABLE)]

    # or 'HEAD_PLUS_LATEST' or 'HEAD_PLUS_LATEST2'
    # or [qw( HEAD RELx_y_STABLE etc )]

# set this if you are running multiple animals and want them coordinated

    # $conf{global_lock_dir} = '/path/to/lockdir';

}

# MSVC setup

if ($conf{using_msvc})
{

    # all this stuff is to support MSVC builds - it's literally what
    # a VS Command Prompt sets for me.
# make sure it's what your sets for you. There can be subtle differences. # Note: we need to set here whatever would be set in buildenv.bat, as
    # we aren't going to write that file. This supercedes it. In
# particular, the PATH possibly needs to include the path to perl, bison,
    # flex etc., as well as CVS if that's not in the path.

    my %extra_buildenv =(

        VSINSTALLDIR => 'C:\Program Files\Microsoft Visual Studio 8',
        VCINSTALLDIR => 'C:\Program Files\Microsoft Visual Studio 8\VC',
        VS80COMNTOOLS =>
          'C:\Program Files\Microsoft Visual Studio 8\Common7\Tools',
        FrameworkDir => 'C:\WINDOWS\Microsoft.NET\Framework',
        FrameworkVersion => 'v2.0.50727',
FrameworkSDKDir =>'C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0', DevEnvDir => 'C:\Program Files\Microsoft Visual Studio 8\Common7\IDE',

        PATH => join(';',
            'C:\Program Files\Microsoft Visual Studio 8\Common7\IDE',
            'C:\Program Files\Microsoft Visual Studio 8\VC\BIN',
            'C:\Program Files\Microsoft Visual Studio 8\Common7\Tools',
'C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\bin', 'C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin',
            'C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin',
            'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727',
            'C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages',
            'C:\Perl\Bin',
            'c:\prog\pgdepend\bin',
            $ENV{PATH}),
        INCLUDE => join(';',
'C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE',
            'C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE',
'C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include', 'C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include',
            $ENV{INCLUDE}),

        LIB => join(';',
            'C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB',
            'C:\Program Files\Microsoft Visual Studio 8\VC\LIB'
.'C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib',
            'C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib'
              .$ENV{LIB}),

        LIBPATH => join(';',
            'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727',
            'C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB'),
    );

    %{$conf{build_env}} = (%{$conf{build_env}}, %extra_buildenv);

    # MSVC needs a somewhat different style of config opts (why??)
    # What we write here will be literally (via Data::Dumper) put into
    # the config.pl file for the MSVC build.

    $conf{config_opts} ={
        asserts=>1,                     # --enable-cassert
        integer_datetimes=>1,           # --enable-integer-datetimes
        nls=>undef,                     # --enable-nls=<path>
        tcl=>'c:\tcl',                  # --with-tcl=<path>
        perl=>'c:\perl',                # --with-perl=<path>
        python=>'c:\python25',          # --with-python=<path>
        krb5=> undef,                   # --with-krb5=<path>
        ldap=>0,                        # --with-ldap
        openssl=> undef,                # --with-ssl=<path>
        xml=> undef,                    # --with-libxml=<path>
        xslt=> undef,                   # --with-libxslt=<path>,
        iconv=> undef,                  # path to iconv library
        zlib=> undef,                   # --with-zlib=<path>
    };

}

##################################
#
# examples of per branch processing
# tailor as required for your site.
#
##################################
if ($branch eq 'HEAD')
{

    #   push(@{$conf{config_opts}},"--enable-depend");
}
elsif ($branch =~ /^REL7_/)
{

    #    push(@{$conf{config_opts}},"--without-tk");
}

1;
$

--
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 214-642-9640                 E-Mail: l...@lerctr.org
US Mail: 5708 Sabbia Dr, Round Rock, TX 78665-2106
Thu Dec 23 18:33:48 2021: buildfarm run for gerenuk:REL9_2_STABLE starting
gerenuk:REL9_2_STABLE [18:33:48] checking out source ...
gerenuk:REL9_2_STABLE [18:33:51] checking if build run needed ...
gerenuk:REL9_2_STABLE [18:33:51] copying source to pgsql.build ...
gerenuk:REL9_2_STABLE [18:33:53] running configure ...
gerenuk:REL9_2_STABLE [18:34:19] running make ...
gerenuk:REL9_2_STABLE [18:36:02] running make check ...
gerenuk:REL9_2_STABLE [18:36:29] running make contrib ...
gerenuk:REL9_2_STABLE [18:36:39] running make install ...
gerenuk:REL9_2_STABLE [18:36:45] running make contrib install ...
gerenuk:REL9_2_STABLE [18:36:48] checking pg_upgrade
gerenuk:REL9_2_STABLE [18:37:57] running make check miscellaneous modules ...
gerenuk:REL9_2_STABLE [18:37:57] setting up db cluster (C)...
gerenuk:REL9_2_STABLE [18:38:00] starting db (C)...
gerenuk:REL9_2_STABLE [18:38:01] running make installcheck (C)...
gerenuk:REL9_2_STABLE [18:38:27] restarting db (C)...
gerenuk:REL9_2_STABLE [18:38:30] running make isolation check ...
gerenuk:REL9_2_STABLE [18:38:46] restarting db (C)...
gerenuk:REL9_2_STABLE [18:38:49] running make PL installcheck (C)...
gerenuk:REL9_2_STABLE [18:38:51] restarting db (C)...
gerenuk:REL9_2_STABLE [18:38:54] running make contrib installcheck (C)...
gerenuk:REL9_2_STABLE [18:39:11] stopping db (C)...
gerenuk:REL9_2_STABLE [18:39:13] running make ecpg check ...
gerenuk:REL9_2_STABLE [18:39:46] OK
Branch: REL9_2_STABLE
All stages succeeded
Thu Dec 23 18:39:47 2021: buildfarm run for gerenuk:REL9_3_STABLE starting
gerenuk:REL9_3_STABLE [18:39:47] checking out source ...
gerenuk:REL9_3_STABLE [18:39:52] checking if build run needed ...
gerenuk:REL9_3_STABLE [18:39:52] copying source to pgsql.build ...
gerenuk:REL9_3_STABLE [18:39:54] running configure ...
gerenuk:REL9_3_STABLE [18:40:23] running make ...
gerenuk:REL9_3_STABLE [18:42:06] running make check ...
gerenuk:REL9_3_STABLE [18:42:31] running make contrib ...
gerenuk:REL9_3_STABLE [18:42:42] running make install ...
gerenuk:REL9_3_STABLE [18:42:45] running make contrib install ...
gerenuk:REL9_3_STABLE [18:42:47] checking pg_upgrade
gerenuk:REL9_3_STABLE [18:43:59] running make check miscellaneous modules ...
gerenuk:REL9_3_STABLE [18:44:00] setting up db cluster (C)...
gerenuk:REL9_3_STABLE [18:44:05] starting db (C)...
gerenuk:REL9_3_STABLE [18:44:06] running make installcheck (C)...
gerenuk:REL9_3_STABLE [18:44:38] restarting db (C)...
gerenuk:REL9_3_STABLE [18:44:41] running make isolation check ...
gerenuk:REL9_3_STABLE [18:45:42] restarting db (C)...
gerenuk:REL9_3_STABLE [18:45:45] running make PL installcheck (C)...
gerenuk:REL9_3_STABLE [18:45:47] restarting db (C)...
gerenuk:REL9_3_STABLE [18:45:50] running make contrib installcheck (C)...
gerenuk:REL9_3_STABLE [18:46:11] stopping db (C)...
gerenuk:REL9_3_STABLE [18:46:13] running make ecpg check ...
gerenuk:REL9_3_STABLE [18:46:47] OK
Branch: REL9_3_STABLE
All stages succeeded
Thu Dec 23 18:46:48 2021: buildfarm run for gerenuk:REL9_4_STABLE starting
gerenuk:REL9_4_STABLE [18:46:48] checking out source ...
gerenuk:REL9_4_STABLE [18:46:54] checking if build run needed ...
gerenuk:REL9_4_STABLE [18:46:54] copying source to pgsql.build ...
gerenuk:REL9_4_STABLE [18:46:55] running configure ...
gerenuk:REL9_4_STABLE [18:47:18] running make ...
gerenuk:REL9_4_STABLE [18:49:12] running make check ...
gerenuk:REL9_4_STABLE [18:49:38] running make contrib ...
gerenuk:REL9_4_STABLE [18:49:49] running make install ...
gerenuk:REL9_4_STABLE [18:49:52] running make contrib install ...
gerenuk:REL9_4_STABLE [18:49:54] checking pg_upgrade
gerenuk:REL9_4_STABLE [18:51:00] checking test-decoding
gerenuk:REL9_4_STABLE [18:52:03] running make check miscellaneous modules ...
gerenuk:REL9_4_STABLE [18:52:03] running bin test initdb ...
Branch: REL9_4_STABLE
Stage initdbCheck failed with status 2
Thu Dec 23 18:52:11 2021: buildfarm run for gerenuk:REL9_5_STABLE starting
gerenuk:REL9_5_STABLE [18:52:12] checking out source ...
gerenuk:REL9_5_STABLE [18:52:17] checking if build run needed ...
gerenuk:REL9_5_STABLE [18:52:17] copying source to pgsql.build ...
gerenuk:REL9_5_STABLE [18:52:18] running configure ...
gerenuk:REL9_5_STABLE [18:52:41] running make ...
gerenuk:REL9_5_STABLE [18:54:41] running make check ...
gerenuk:REL9_5_STABLE [18:55:10] running make contrib ...
gerenuk:REL9_5_STABLE [18:55:20] running make testmodules ...
gerenuk:REL9_5_STABLE [18:55:21] running make install ...
gerenuk:REL9_5_STABLE [18:55:25] running make contrib install ...
gerenuk:REL9_5_STABLE [18:55:27] running make testmodules install ...
gerenuk:REL9_5_STABLE [18:55:27] checking pg_upgrade
gerenuk:REL9_5_STABLE [18:56:39] checking test-decoding
gerenuk:REL9_5_STABLE [18:57:45] running make check miscellaneous modules ...
gerenuk:REL9_5_STABLE [18:57:45] running bin test initdb ...
Branch: REL9_5_STABLE
Stage initdbCheck failed with status 2
Thu Dec 23 18:57:49 2021: buildfarm run for gerenuk:REL9_6_STABLE starting
gerenuk:REL9_6_STABLE [18:57:50] checking out source ...
gerenuk:REL9_6_STABLE [18:57:55] checking if build run needed ...
gerenuk:REL9_6_STABLE [18:57:55] copying source to pgsql.build ...
gerenuk:REL9_6_STABLE [18:57:57] running configure ...
gerenuk:REL9_6_STABLE [18:58:22] running make ...
gerenuk:REL9_6_STABLE [19:00:30] running make check ...
gerenuk:REL9_6_STABLE [19:01:00] running make contrib ...
gerenuk:REL9_6_STABLE [19:01:10] running make testmodules ...
gerenuk:REL9_6_STABLE [19:01:11] running make install ...
gerenuk:REL9_6_STABLE [19:01:15] running make contrib install ...
gerenuk:REL9_6_STABLE [19:01:17] running make testmodules install ...
gerenuk:REL9_6_STABLE [19:01:17] checking pg_upgrade
gerenuk:REL9_6_STABLE [19:02:34] checking test-decoding
gerenuk:REL9_6_STABLE [19:03:31] running make check miscellaneous modules ...
gerenuk:REL9_6_STABLE [19:03:31] running bin test initdb ...
Branch: REL9_6_STABLE
Stage initdbCheck failed with status 2

Reply via email to