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 <<