Building Mono and Its Applications in a Tinderbox
pgj at FreeBSD.org
Wed Mar 11 16:43:48 EDT 2009
I am working on a port, titled fsharp , but I have some problems
with testing it in a Tinderbox environment. In brief, fsharp (usually
written as F#) is a programming language for the .NET platform. To
build and run on "non-Microsoft" systems (i.e. Linux and FreeBSD,
etc.), it requires Mono 2.x. Fortunately, support for Mono 2.x has
been officially integrated to the FreeBSD ports tree recently.
Due to its dependency on lang/mono, Tinderbox tries to build mono when
testing fsharp, and it almost works fine for me. I mean lang/mono
builds without problems in 6-STABLE and 7-STABLE jails , but not in
a 8-CURRENT one . (My base system is a 7.1-STABLE.) As the log
shows (at least for me), it dies out of a "sem_wait failed" error -- I
assume it is because it has problems with using semaphores.
I have already reported this to the mono@ mailing list, and I was
answered by "please, set security.jail.sysvipc_allowed to 1". Later
on, Wesley Shields pointed out that Tinderbox jails are not real
FreeBSD jails, only chroot environments. Indeed, I found that
security.jail.jailed is 0, when entering a build, hence I do not think
setting security.jail.sysvipc_allowed will really help me. (Just for
the record, I have tried it that way, and I got the very same
results.) Note that lang/mono builds on the pointyhat cluster as it
has a package for 8-current (for i386, for example ). Romain
Tartiere of the mono team also mentioned that he managed to build mono
2.x on a real 8-CURRENT system, so I do not think there is any problem
with the base system (though one never knows :P).
By manually installing the Mono package for the 8-CURRENT jail
(therefore skipping its build), I have managed to tinderbuild only my
fsharp port, but I got familiar results: it builds for 6-STABLE and
7-STABLE jails , but results in a "sem_wait failed" for 8-CURRENT
. As you can see from the port, it does not do too much "magic",
it just unpacks some files, install them, and then calls gacutil (from
Mono) to install the corresponding .NET assemblies. Error "sem_wait
failed" is emitted by gacutil, so I assume that Mono and Mono
applications are unable to run in a 8-CURRENT jail for some reason
I have a Tinderbox 3.1.2 (i386), installed from ports-mgmt/tinderbox (3.1.2_2).
Am I missing something? Do you have any suggestions? Can this be
fixed or "worked around" somehow?
Thank you for your replies in advance.
More information about the tinderbox-list