Boost logo

Boost :

Subject: Re: [boost] [boost-ci] Build failures for repositories using boost-ci
From: James E. King III (jking_at_[hidden])
Date: 2019-04-19 16:31:50


On Wed, Apr 17, 2019 at 8:42 AM James E. King III <jking_at_[hidden]> wrote:
>
> Recent changes to boost have exposed some shortcomings in the boost-ci
> infrastructure, specifically the use of CXXFLAGS as a variable to hold
> b2-specific "cxxflags=" content is now getting passed through to the
> bootstrap build and going to the compiler, and failing.
>
> I'm aware of the issue and I am working on a fix that will be
> backwards compatible with existing Travis CI scripts that use boost-ci
> to drive their builds. There may also be changes for Windows, but I
> haven't looked at that yet.
>
> This affects the majority of the CMT repositories as well as
> date_time, format, uuid, function, move, and signals2, and possibly
> others.
>
> More information to follow...
>
> - Jim

Issues with Boost CI have been resolved.
If your repository uses Boost CI with appveyor, there is an action you
need to take in step 3, otherwise it's just informational.
I recommend you refresh your .travis.yml and appveyor.yml from the
templates provided in Boost CI if you use it.

Boost CI was designed to make it easier to add CI to boost repositories:
https://github.com/boostorg/boost-ci

Details of the issues:

1. The existing .travis.yml that use Boost CI define variables like
CXXFLAGS which are intended to deliver the b2 "cxxflags=" options to
b2, however https://github.com/boostorg/build/commit/eb92f67532b15703efaf53a63ac60ac5b5cae182#diff-ec23e7c7df5ded08392dfd961031e1d3R435
made it so that these were passed to the compiler directly for
bootstrap. Given CXXFLAGS was a bad choice of environment variable to
use (my bad), all the .travis.yml variables for Boost-CI are now
prefixed with B2_. Existing .travis.yml that use the older non-B2_
prefixed variables also still work but you will get a warning in your
build log.

2. A similar issue occurred in the windows bootstrap
(https://github.com/boostorg/build/commit/76663ef7224bef7c8edaace9338b52b127ee0eb3#diff-dd107c2c786291c148ab9be98cc7b2efR189),
again CXXFLAGS being passed to the compiler which is quite normal,
except for Boost CI's poor use of that variable. To fix existing
appveyor.yml scripts that use Boost CI, Boost CI will hide CXXFLAGS
and B2_CXXFLAGS from the bootstrap call. The template for
appveyor.yml has been updated to use B2_ prefixed variables, and I
encourage folks to update theirs if the copy in their repository if
they use Boost CI.

3. The appveyor VS2013 system image seems to be corrupt and builds are
failing; I have switched the appveyor template to use the VS2015 image
which contains MSVC 2010, 2012, and 2013, and builds are working. If
you use Boost-CI with Appveyor, you must change your MSVC
2010,2012,2013 job to use the 2015 appveyor image to fix this issue.
The template for appveyor.yml has been updated to reflect this and I
encourage folks to update theirs if the copy in their repository if
they use Boost CI.

4. The coverity job was failing due to a stale or missing CA in the
xenial image.

In addition,

The appveyor template was updated to include a Visual Studio 2019
Preview job however it is marked as allowed failure, and not working.
The travis template was updated to use the xenial image provided by travis.
The travis templates cut back on the number of language levels tested
with each compiler version.

- Jim


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk