[mono-packagers] Need help building moonlight 2.4.1

Richard Shaw hobbes1069 at gmail.com
Fri Sep 30 15:35:12 EDT 2011


I'm trying to package moonlight for possible inclusion at RPM Fusion
but I'm having some issues.

1. pkg-config problem:

I'm currently working on version 2.4.1 moonlight since it's the latest
stable. It apparently is supposed to work with mono 2.6 but 2.10 is
what F15 has, hopefully 2.6 is only a minimum.

I've already had to hack the main Makefile because of what I think is a
pkg-config issue with mono.

By default, the moonlight Makefile uses:

$ pkg-config --cflags mono

which returns nothing, while:

$ pkg-config --cflags mono-2
-D_REENTRANT -I/usr/lib64/pkgconfig/../../include/mono-2.0

^ returns what I need. ^

2. After that I'm getting most of the way though the compile but it's
failing looking for Mono.Cecil.dll. It's looking for it in a rather
strange place so I may have to hack the Makefile a bit to get it to
find it in the right place.

Here's the error I'm getting:
make[3]: Entering directory
`/home/build/rpmbuild/moonlight/BUILD/moonlight-2.4.1/class'
make[3]: *** No rule to make target
`/usr/bin/class/lib/net_1_1/Mono.Cecil.dll', needed by
`copy-mcs-assemblies'.  Stop.

I don't have a problem hacking the makefile to look in the right place
except the file (assuming I found the right one) is in an odd
directoy:

$ locate Mono.Cecil.dll
/usr/lib64/mono/gac/Mono.Cecil/0.9.4.0__0738eb9f132ed756/Mono.Cecil.dll

pkg-config --variable=Libraries cecil will give me the above path but
in it's description it says it's an internal library and "do not
use"... It seems the Makefile is setup for building from a tarball or
svn/git/whatever source, not from a system installed version of mono.

I'd like to get this fixed but I got around it temporarily using
--disable-browser-support and then I ran into a bunch of C# errors:

./System.Windows/Rect.cs(36,17): error CS0171: Field
`System.Windows.Rect.x' must be fully assigned before control leaves
the constructor
./System.Windows/Rect.cs(36,17): error CS0171: Field
`System.Windows.Rect.y' must be fully assigned before control leaves
the constructor
./System.Windows/Rect.cs(36,17): error CS0171: Field
`System.Windows.Rect.w' must be fully assigned before control leaves
the constructor
./System.Windows/Rect.cs(36,17): error CS0171: Field
`System.Windows.Rect.h' must be fully assigned before control leaves
the constructor
./System.Windows/Size.cs(35,25): error CS0188: The `this' object
cannot be used before all of its fields are assigned to
./System.Windows/Size.cs(36,25): error CS0188: The `this' object
cannot be used before all of its fields are assigned to
./System.Windows/Size.cs(34,17): error CS0171: Field
`System.Windows.Size.w' must be fully assigned before control leaves
the constructor
./System.Windows/Size.cs(34,17): error CS0171: Field
`System.Windows.Size.h' must be fully assigned before control leaves
the constructor

There's a lot more, that's just a sample.

Any ideas?

Thanks,
Richard


More information about the mono-packagers-list mailing list