Hi Ben,

thanks very much for your so informative reply!

On 13 Apr 2014, at 12:28 , Ben Cooksley <bcooks...@kde.org> wrote:
> Not exactly, however the infrastructure we have for our Linux builds
> should be nearly completely portable to OSX without too much trouble
> (in theory at least - i've never done any compilation on OSX).
That sounds good.
I am willing to give it a try then. :-)

Just for the record:

        Yesterday I've built KMyMoney via MacPorts from scratch (on a fresh OSX 
VM machine “2.5GHz Mac Mini").
If I subtract the time I needed to set up the environment and some intermediate 
steps, I end up with 3h11m install time for kmymoney4-devel and all its 
dependencies (kdepimlibs, kde4-runtime, kdelibs4, virtuoso, nepomuk, mysql5, 
soprano and last but not at all least qt4-mac). This still sounds a lot, but 
given the number of libraries and programs to install it is already VERY FAST 
compared to pre-buildbot times of 24hrs or so. Most of the time had to be spent 
on 14 ports which cannot be distributed as binaries, for that see [1]. Once we 
get rid of Nepomuk (with KDE 4.13) many of those dependencies will disappear 
according to Ian. That would speed things up tremendously! But 3h on a VM isn’t 
bad, considering! :-D

> The actual requirements aren't written anywhere, but you might find
> the documentation i've written for the CI system to be of some use.
> See 
> http://quickgit.kde.org/?p=websites%2Fbuild-kde-org.git&a=tree&h=48c561bdfa467b0a09d6591491abc168b63197ce&hb=f2d024f155bed23a9e81b0175e5c7d752d6d8f14&f=documentation
I’ll have a look at it. Thanks!

> A basic run down of what the CI system needs however:
> 
> 1) Python 2.x, with json and lxml support (for the scripts which conduct 
> builds)
Ports python 2.[4-7] and python 3.1.5 - 3.4.0 are available.

Regarding json and lxml we have for 2.7 these ports:
—
py27-anyjson @0.3.3 (python, www)    Wrap the best available JSON 
implementation in a common API
py27-cjson @1.0.5 (python)    Fast JSON encoder/decoder for Python
py27-demjson @1.6 (python)    encoder, decoder, and validator for JSON 
compliant with RFC 4627
py27-geojson @1.0.6 (python, gis)    Python bindings and utilities for GeoJSON
py27-simplejson @3.4.0 (python, www)    Simple, fast, extensible JSON 
encoder/decoder for Python
py27-lxml @3.3.4 (python, devel)    Powerful and Pythonic XML processing library
—

> 2) Java (for the Jenkins node agent itself)
—
$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
—

> 3) RSync and SSH (for the transferral of completed builds between nodes)
—
$ port list rsync ssh
rsync                          @3.0.9          net/rsync
$ which ssh
/usr/bin/ssh
$ ssh -v
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
—

> 4) Git, Subversion, Bazaar, wget and GNU Tar (to access source code)
—
$ port list git-core subversion bazaar wget gnutar
git-core                       @1.9.2          devel/git-core
subversion                     @1.8.8          devel/subversion
bazaar                         @1.4.2          devel/bazaar
wget                           @1.15           net/wget
gnutar                         @1.27.1         archivers/gnutar
—

> 5) GNU Patch (for applying custom patches, used in certain builds)
—
$ patch -v
patch 2.5.8
—

> 6) A compiler, usable by CMake, QMake and autotools based build systems
Well, in principle there is Apple’s standard compiler: CLANG on the newer 
versions of OSX, but you can configure MacPorts to use many compilers.
—
$ port list gcc*
gcc42                          @4.2.4          lang/gcc42
gcc43                          @4.3.6          lang/gcc43
gcc44                          @4.4.7          lang/gcc44
gcc45                          @4.5.4          lang/gcc45
gcc46                          @4.6.4          lang/gcc46
gcc47                          @4.7.3          lang/gcc47
gcc48                          @4.8.2          lang/gcc48
gcc49                          @4.9-20140406   lang/gcc49
gcc_select                     @0.1            sysutils/gcc_select
gccmakedep                     @1.0.2          x11/gccmakedep
gccxml-devel                   @20130919       lang/gccxml-devel
$ port list clang*
clang-2.9                      @2.9            lang/llvm-2.9
clang-3.0                      @3.0            lang/llvm-3.0
clang-3.1                      @3.1            lang/llvm-3.1
clang-3.2                      @3.2            lang/llvm-3.2
clang-3.3                      @3.3            lang/llvm-3.3
clang-3.4                      @3.4            lang/llvm-3.4
clang-3.5                      @3.5-r206116    lang/llvm-3.5
clang_select                   @0.1            sysutils/clang_select
—

> 8) GNU Make, Automake, Autoconf (for carrying out the build, and
> configuring it in certain rare cases)
—
$ which make
/usr/bin/make
$ make -v
GNU Make 3.81
$ port installed automake autoconf
automake                       @1.14.1         devel/automake
autoconf                       @2.69           devel/autoconf
—

> We'll need to make adjustments to ensure the system doesn't attempt to
> launch Xvfb or a X11 Window Manager, which it currently will do when
> executing tests. These should be fairly easy to do however.
OK.

> To build certain projects, the compiler will need to support C# and a
> certain level of C++11 as well. The Mono bindings will not be
> buildable if C# support is unavailable.
Well, that should be built in on OSX, or not?

> Under no circumstance should a CI node have Qt installed at the system
> level in any form, as this is provided directly by the CI system
> itself.

That should be no problem. :-)


That’s all for now. Please note that the above program versions are those which 
are currently or could be installed on my Mavericks system. Versions for make, 
patch, ssh and java might/should differ for other versions of OSX.

So, I could install all the requirements listed by you, which would in fact 
only be bazaar, gnutar and probably those python modules. Apart from that all 
exists.
The question would then be how to proceed from there. 
I guess I’d need a walk-through on how to set up the build environment properly.

Greets,
Marko

[1] http://mail.kde.org/pipermail/kde-mac/2014-April/000881.html

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

Reply via email to