[Mono-devel-list] Problems with Mono 1.0.5 build, documentation

jrodman at mono-list.spamportal.net jrodman at mono-list.spamportal.net
Thu Jan 27 17:15:35 EST 2005


Hi folks,

I may be a little less than fully dilligent in researching the problems
outlined in this email.  Please bear with me as the situation is more
than a little overwhelming.

Since mono 1.0.5 binaries as provided by both Debian and by Ximian for
SuSE segfault out of the box on a 2.6.10 vanilla kernel for x86_64, I am
attempting to build 1.0.5 from source myself for the first time, and not
succeeding.

A query: If a prior mono is running when make install for mono starts,
it will not complete.  This appears to be from some kind of interaction
between the processes/handler daemons via the $HOME/.wapi files.

  Since this problem has been known since at least April of 2004 [1], is
  it considered to be unfixable and fundamental to the mono / .Net way
  of doing things, or is it not yet fixed?  

  Is it not unwise to have all mono processes globally dependent on each
  other so that one misbehaving mono process can adversely affect any
  other unrelated mono process?  I ask not merely out of spite, but
  because I have encountered real world problems both with the use of
  the home directory as a site for IPC, and with attempting to determine
  how to reasonably start and stop mono services with unix style scripts
  when phantom extra handler daemon processes exist which have names
  associated with processes which in reality have exited long ago.

With that hurdle past, and all mono processes shut down, make install
for mono-1.0.5 succeeds.  However, it is not clear from the
documentation supplied in mcs-1.0.5 how to proceed.

INSTALL.txt suggests what to do for snapshot, for updates from cvs, but
is silent on the matter of released source packages.  The snapshot
suggestions mention autogen.sh, which is of course not present in the
release tarball.

When reading mono's README, instead of INSTALL (one file for
installation instructions please), it in turn says to configure, make
and make install, but says nothing about the install of mcs.  Thus, the
build documentation as provided in the release is certainly incomplete
and needs fixing.

I have found some build instructions on the website on the Compiling
Mono page[2], but they do not work.  They recommend building mono in the
same way as the README file, which as above works, but for mcs, they
recommend './configure --profiles=atomic; make'.  I cannot determine if
the absence of the --prefix supplied in the mono example is an oversight
or intentional.  It does not work in either case, however.

	surfboard:/usr/src/packages/mono/scratch/mcs # ./configure --profile=atomic --prefix=/opt/mono105

	MCS module configured

	     Profile selected: atomic
	     Prefix:           /opt/mono105

	surfboard:/usr/src/packages/mono/scratch/mcs # make

	/opt/mono105/lib/I18N.dll does not exist.

	This probably means that you are building from a miniature
	distribution of MCS or don't yet have an installed MCS at all.
	The current build profile needs a complete installation of
	MCS to build against; you need to build using the default
	profile. Use this command:

	    make PROFILE=default

	make: *** [profile-check] Error 1

Note that I18N.dll is certainly installed, it is just not located in the directory in which the mcs build is looking:

	# locate I18N.dll |grep opt/mono105
	/opt/mono105/lib/mono/1.0/I18N.dll
	/opt/mono105/lib/mono/gac/I18N/1.0.5000.0__0738eb9f132ed756/I18N.dll

This seems infuriating.  At this point I start to create random symlinks
to try to make the build happy.

Why cannot the one package place the dll in the location required by the
other package?  For that matter, why not just supply the entirety of
mono 1.0.5 as a single build, so that the user can have some hope of
figuring how to invoke it?


It seems that the 'default' profile works, but at the end of it all, I'm
left without an /opt/mono105/bin/mono.  Is this because my arch is
amd64?

Perhaps the web page on building needs amending to explain what atomic
is for.  Or perhaps the build instructions supplied with the source
should exist.  I'm sending this unclear email because I don't know.  It
feels like a big mess to me and I'm really unsure what part needs
changing, but hopefully you can make some productive use of my venting.

-josh

1.  http://www.gotmono.com/cgi-bin/yabb/YaBB.pl?board=news;action=display;num=1085146090
2. http://www.mono-project.com/contributing/compiling.html



More information about the Mono-devel-list mailing list