What is the state of OS X development?

Asked by JamesHagerman

After trying a pretty large number of different ways to compile KiCad from the current source tree, I have still not been able to get the code to compile correctly. The errors depend on the method I tried but usually the error is related to Boost.

As far as I can tell, no one is currently doing nightly builds of KiCad for OS X. Wherever OS X is mentioned on the KiCad site, dead links abound. The documentation that does exist is pretty far out of date and usually buried inside some no-longer active forum.

KiCad clearly isn't dead... But the OS X support is pretty bad off right now.

Is there any current developer working on KiCad for OS X?

If not, I would like to try my hand at it.

Any information would be wonderful.

James Hagerman

Question information

Language:
English Edit question
Status:
Answered
For:
KiCad Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Wayne Stambaugh (stambaughw) said :
#1

Try following the OSX link at http://www.kicad-pcb.org/display/KICAD/Download. I cannot vouch for the quality of this builder. It's fairly new so perhaps the developer who wrote the KiCadOSXBuilder can help you out. As far as I know none of the lead developers have access to OSX so it is not as well supported and Linux and Windows. If your a developer, please consider helping to make OSX builds on par with the Linux and Windows. I'm sure there are a few OSX users that would appreciate your efforts.

Revision history for this message
JamesHagerman (james-hagerman) said :
#2

Thanks for the link! That builder is one of the many compile methods I tried. It failed because Boost failed to compile.

The issue has been described in that builders GitHub repo but the author has not replied yet:
https://github.com/mangelajo/KicadOSXBuilder/issues/14

I have more to say on this topic but I'm wondering if I should post it here or in the developers area...

Revision history for this message
JamesHagerman (james-hagerman) said :
#3

Well... the dev team doesn't have a questions area. That's no good.

I guess I'll just post my comments here for now:

If nothing else, the "fixes" to the OS X build scripts included in this KicadOSXBuilder GitHub project should be pulled into KiCad's build system if they allow for a working build.

Honestly, Boost being embedded into the KiCad build system is pretty silly for a number of reasons. Boost is a touchy library to compile on it's own. Embedding it into KiCad's build system makes the KiCad depend on the upstream version of Boost being stable... Which, as history has shown, it isn't!

Ripping Boost out would make maintaining an OS X build much easier... for devs that don't have access to OS X.

Non-OS X devs could make changes to KiCad without having to continue patching the build scripts that call out to Boost. From there, any issues caused by Boost itself would become "library issues" instead of being "KiCad issues". And generally, library issues are easier to track down on their own instead of having to track down issues with a projects build system...

So, maybe I'll just turn off the Boost builds for OS X?? But then I'd need to dig through and figure out exactly what features of Boost KiCad is using...

Revision history for this message
Wayne Stambaugh (stambaughw) said :
#4

On 11/20/2013 3:46 PM, JamesHagerman wrote:
> Question #239499 on KiCad changed:
> https://answers.launchpad.net/kicad/+question/239499
>
> JamesHagerman posted a new comment:
> Well... the dev team doesn't have a questions area. That's no good.
>
> I guess I'll just post my comments here for now:
>
> If nothing else, the "fixes" to the OS X build scripts included in this
> KicadOSXBuilder GitHub project should be pulled into KiCad's build
> system if they allow for a working build.

I don't recall any patches from this project being submitted but I may
have missed them. I would not object to patches that resolve OSX build
issues assuming they meet the KiCad coding policy and don't break
anything else.

>
> Honestly, Boost being embedded into the KiCad build system is pretty
> silly for a number of reasons. Boost is a touchy library to compile on
> it's own. Embedding it into KiCad's build system makes the KiCad depend
> on the upstream version of Boost being stable... Which, as history has
> shown, it isn't!

KiCad does not depend on the latest upstream version of Boost. It
depends on a very specific version of Boost (1.54 as of now) for just
the reason you described. This is one of the primary reasons (see below
for the other one) building Boost from source was added to the KiCad
build system. We now can control which version of Boost gets used.
Before this we were constantly chasing our tails with Boost version
specific bugs and Windows developer issues building Boost with
MinGW/MSYS. Yes, it is a PITA to maintain this but it is significantly
less of a PITA then other way.

>
> Ripping Boost out would make maintaining an OS X build much easier...
> for devs that don't have access to OS X.
>
> Non-OS X devs could make changes to KiCad without having to continue
> patching the build scripts that call out to Boost. From there, any
> issues caused by Boost itself would become "library issues" instead of
> being "KiCad issues". And generally, library issues are easier to track
> down on their own instead of having to track down issues with a projects
> build system...
>
> So, maybe I'll just turn off the Boost builds for OS X?? But then I'd
> need to dig through and figure out exactly what features of Boost KiCad
> is using...
>

Please do not do this. Boost has bugs that require patching in order to
work properly with KiCad. Some have them been fixed in the 1.55 release
but not all of them so do not assume you can use Boost 1.55. The KiCad
CMake builder applies these patches and builds the necessary binary
libraries so that you can be assured that KiCad will build and function
properly. Getting Boost to build on Windows with MinGW/MSYS is a tricky
proposition. Maybe the same is true for OSX. Although, I don't
understand why. I thought OSX is a Posix compliant OS which has a
usable shell and uses GCC as it's default compiler. You should modify
the CMakeModules/download_boost.cmake file to build Boost with OSX. I
would start by downloading the 1.54 Boost source and running
bootstrap.sh and the b2 command specified in download_boost.cmake. Once
you have those two pieces working, modify download_boost.cmake
accordingly and submit the patch.

Revision history for this message
JamesHagerman (james-hagerman) said :
#5

Thanks for the response!

Thanks for the explanation of why boost is embedded in KiCad. I wasn't aware of how specific the version had to be so that answers that question.

A patch fix was JUST posted for the KicadOSXBuilder project on GitHub. And the author commented that they would push the fix into KiCad itself this weekend. But I just tried the patch manually and it didn't fix the issue I was having.

The patch mentioned in the github build project specifically modifies the download_boost.cmake find you mentioned. I've tried a few different things but I still can't get it to compile correctly.

I guess I'll keep poking at it...

Thanks again for the information! It's helpful!

Revision history for this message
Wayne Stambaugh (stambaughw) said :
#6

If you do come up with a fix. Please send a patch to the developers mailing list follow the steps in patch FAQ at https://answers.launchpad.net/kicad/+faq/1049. I'm sure other OSX developers and users will appreciate your efforts.

Revision history for this message
JamesHagerman (james-hagerman) said :
#7

Well, just a few minutes ago I was able to build an i386 only version of KiCad for OS X. I'm trying a Universal build (i386 and x86_64) now.

What would have to happen to host this OS X binary on the KiCad site?

Can you help with this problem?

Provide an answer of your own, or ask JamesHagerman for more information if necessary.

To post a message you must log in.