[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: Running KDE apps on Apple OS X
From:       mk-lists () email ! de
Date:       2014-04-13 11:45:42
Message-ID: B29CCC9E-AB50-423D-8727-654D73221BDD () email ! de
[Download RAW message or body]

Hi Ben,

thanks very much for your so informative reply!

On 13 Apr 2014, at 12:28 , Ben Cooksley <bcooksley@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=48c561bdfa467b0 \
> a09d6591491abc168b63197ce&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 <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic