← Back to team overview

kicad-developers team mailing list archive

Re: KiCad patch sets break build

 

On 11/14/2013 10:28 AM, Andrew Plumb wrote:
> On 2013-11-14, at 8:28 AM, Wayne Stambaugh <stambaughw@xxxxxxxxxxx
> <mailto:stambaughw@xxxxxxxxxxx>> wrote:
>> On 11/13/2013 10:44 PM, Andrew Plumb wrote:
> [deletia]
>>> Follow-up question time.  What's the motivation for telling
>>> CMakeLists.txt to explicitly build boost from scratch:
>>>
>>> include( download_boost )
>>>
>>> ...instead of trying something like
>>>
>>> find_package(Boost REQUIRED COMPONENTS date_time filesystem iostreams
>>> locale program_options regex system thread )
>>
>> Andrew,
>>
>> The long answer: there are three reasons.
>>
>> 1) Boost has a known bug in it's geometry library which requires patching.
>> 2) The KiCad developers were spending way too much time helping Windows
>> developers with Boost build and install issues.
>> 3) Many of the Linux distros Boost versions were lagging behind what we
>> needed.  In a perfect world, your solution is preferable.  Unfortunately
>> (or fortunately depending on your point of view) we don't live in a
>> perfect world so until the Boost geometry library is fixed, building and
>> installing Boost on Windows becomes less painful, and all the major
>> Linux distros package the latest version of Boost, we will continue to
>> build it as part of the the project.
>>
>> The short answer: it's the best solution for the largest target of
>> developers at the moment.
>>
>> Maybe this should be added to the FAQ on Launchpad.  I'm sure your not
>> the only person to wonder why we build Boost as part of the project.
>>
>> Wayne
> 
> Hi Wayne,
> 
> Many thanks for the insight!  The boost_cstdint.patch appears to be
> addressed in boost 1.55.0, so that should "go away" in the not too
> distant future.  The boost_minkowski.patch seems to be more of an
> unused-variables/compiler-warning resolution patch than
> function-breaking bug fix; devil's in the details so I wouldn't be
> surprised if it turns out to be more subtle than that.

Until it is accepted into Boost, we will have to use a patched version.

> 
> In light of these reasons, here's how I've reworked my patch to
> CMakeLists.txt to be APPLE-specific:
> 
> 
> 
> 
> You're welcome to integrate it into the main code-stream if it's
> acceptable, otherwise I'll be applying it externally so I can continue
> playing with KiCad.  I'm in no hurry to return to Eagle. ;-)

It's incomplete so I will not commit the changes.  Of course you are
free to use it in your own branch.  The problem is assuming that Boost
1.55 solves all of our problems (a dangerous assumption without
testing), your fix will happily use any version of Boost that it finds
not necessarily 1.55.  This is one of the limitations of CMake.  Many of
the find package macros do not allow you to define a version test.  Of
course, you could always write one.  If you decide to use your changes,
please make sure if you file any geometry (PCB zones) bug reports, that
you specifically state that you are not using the patched version of
Boost.  Otherwise, you'll waste developers time chasing down bugs that
may have already been fixed.

> 
> Thanks!
> 
> Andrew.
> 
> --
> 
> "The future is already here.  It's just not very evenly distributed" --
> William Gibson
> 
> Me: http://clothbot.com/wiki/
> 
> 
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 



Follow ups

References