[mono-packagers] binaries in tarball

Timotheus Pokorra timotheus.pokorra at solidcharity.com
Fri Apr 10 09:08:57 UTC 2015


Hello Jo,

First I want to thank you and Xamarin for providing uptodate Mono
packages for various Linux distributions.

But as it has been stated on the Mono mailing list before [1], the end
goal is to have uptodate Mono packages provided by the Linux
distributions themselves.

I am trying to help to get a newer version of Mono into Fedora.
I don't have so much experience with packaging like yourself, so I
would like to ask for some advice.

According to the Fedora rules [2] and [3], the packages must build
from source completely.
I think this is the same for Debian.
There are many dlls in the tarball, in
mono-4.0.0/external/binary-reference-assemblies/v4.0

I have checked the latest version that you built for Debian:
https://packages.debian.org/source/testing/mono
I have learned that you create your own tarball: eg mono_3.2.8+dfsg.orig.tar.gz
This happens in the debian/rules file:
find $(TARBALL_DIR) -name "*.dll" -not -path
"$(TARBALL_DIR)/mcs/class/lib/monolite/*" -print -delete
find $(TARBALL_DIR) -name "*.exe" -not -path
"$(TARBALL_DIR)/mcs/class/lib/monolite/*" -print -delete

There was no directory external/binary-reference-assemblies/ in 3.2.8.
What will you do for 4.0 for the Debian packages?

Can we join efforts to build the external binaries somehow during the
package build process?
Or do we need to create separate packages for the external binaries?

Another question about monolite: Did you negotiate in the Debian
project to keep the monolite binaries, so that you can build Mono
without requiring Mono during the build?
I have just tested to build Mono without monolite on Fedora 21:

build/common/basic-profile-check.cs(40,30): error CS0117:
`System.Version' does not contain a definition for `TryParse'
/usr/lib/mono/2.0/mscorlib.dll (Location of the symbol related to
previous error)
build/common/basic-profile-check.cs(43,21): error CS0165: Use of
unassigned local variable `version'
Compilation failed: 2 error(s), 0 warnings
build/profiles/basic.make:93: recipe for target
'build/deps/basic-profile-check.exe' failed
make[6]: *** [build/deps/basic-profile-check.exe] Error 1
*** The compiler 'mcs' doesn't appear to be usable.
*** You need Mono version 3.8 or better installed to build MCS
*** Check mono README for information on how to bootstrap a Mono installation.
*** The version of 'mcs' is: Mono C# compiler version 2.10.8.0.
build/profiles/basic.make:60: recipe for target 'do-profile-check' failed

It seems that Mono 4 Alpha 1 does not build with the old Fedora Mono
2.10 packages anymore.

What do you think?

Thanks,
  Timotheus

[1]: http://lists.ximian.com/pipermail/mono-list/2014-April/050830.html
[2]: https://fedoraproject.org/wiki/Packaging:Guidelines#No_inclusion_of_pre-built_binaries_or_libraries
[3]: https://fedoraproject.org/wiki/Packaging:Mono#Distributing_Prebuilt_Assemblies


More information about the mono-packagers-list mailing list