← Back to team overview

kicad-developers team mailing list archive

Mac packaging plans for V5 and beyond


Hi folks!

I have some things I've been working on for KiCad for quite a long
time, and I'd like to wait to show them off once they're finished, but
I want to announce them before the feature freeze for v5 (and maybe
even get some help).

1) Reworking how python is included.  I'm now following the way Apple
suggests, and this seems to fix some long-standing bugs with people
who have already had things installed.  This is basically ready today,
and could be incorporated into our nightlies at almost any time (with
buy-in from Nick and everyone else who does those), but could also
wait until #4.

2) Signing.  I got an Apple key for my business so I can sign binaries
and they won't pop up that annoying warning.  I have this working on
my system, however, it cannot work with the symlink method that we're
using right now for macOS packaging.  Chris and I have been talking
about changing this on and off--it definitely won't happen before V5,
but I'd like to get it in the works so it's finished by V6.

The remaining work on this is to document the issues with the symlink
method, brainstorm ideas to see if there's an option Chris and I
missed, and get buy-in and schedule the work before the V6 freeze.

3) Builds!  A good friend of mine tried to get KiCad to build based on
our build page, and he spent nearly two weeks and was unable to get it
to build on macOS or Linux, and he does software development for a
living!  Based on that, I thought I could help out.  I wrote some
simple scripts, and now I am creating a new VM for a variety of OSes
from a clean template, telling them to patch themselves with all the
latest security patches, and then running an extremely minimal build
script that just tests to see if it builds.  I am currently doing this
for Ubuntu 16.04, 16.10, 17.04, 17.10, and macOS 10.12, everyday.  (I
will be adding macOS 10.13 and 10.9-10.11, as well as Fedora 25 and 26
shortly.)  This is not for packaging, this is just for developers to
see that "hey, if you follow this short list of instructions, you
should be able to get kicad building on your system".

I remember all the pain we had supporting builds on the developer list
in the past, and I do not want to bring that back, but this should
help warn us if the dependency names change, or if something breaks on
those systems.

The remaining work on this is mostly documentation.  I need to
document how other people can use these scripts, and also, if we have
buy-in, rework the builds page so that it's easier for new developers
to get started building KiCad.

4) Reworking the macOS build scripts.  I have been talking about this
for three years.  I am reworking the macOS build scripts, and actually
basing them on CMake :)  I have Python, wxwidgets, wxpython, and kicad
building already working.  Next I will be adding docs, packaging a
dmg, packaging the extras dmg.

Right now I'm using them with Clion to add a feature to KiCad, and
they're pretty slick!

The next steps here are for me to get it so this has the same output
as the current system, and then get buy-in to switch to it for
nightlies.  Once this has happened, I can use this to make stable
builds in a VM.  This is important, because the way the V4 stable
builds were made, using some tricks with homebrew, has been
discontinued and it will be trickier and trickier to make new stable
releases that way.

#4 is the actual top priority-I want to replace nightlies and stable
with that new packaging script before V5 comes out, and I'm working on
it every day.

I can do most of them on my own if it isn't interesting work to other
people, but if people want to help, let me know and I can set them up
on Github and set up some issues.  I have to say, most of these items
have been on my radar for awhile, and I'm glad I finally spent the
time and read the 100+ page docs from Apple and did a bunch of
experiments and finally made some breakthroughs!

Adam Wolf

Follow ups