[Mono-winforms-list] Solutions to several 0.31/Winforms problems

R. Wayne Arenz rarenz@columbus.rr.com
Sun, 21 Mar 2004 11:32:57 -0500


In an earlier post I mentioned I was encountering the same issues Xantrix
encountered.  I have also encountered the more recently posted "can't fine
winelib.so.dll".  Here are steps that led to my solutions on SuSE 9.0

a) [I hope you can ignore this one] As I've got recent source disks, a
high-speed cable ISP connection, and had little to lose, I blew away my SuSE
install and regenerated.  You may not need to be so radical, but my nature
has always been to get frustrated, tear it up, and start over.  I mean I
re-formatted out my SuSE partitions and re-installed the whole
kit-and-kaboodle.  This time I installed just about everything SuSE had to
offer (not the default install) and then updated everything across the Web
using the YaST updater.

a') I installed Red-Carpet. [Installation of Red-Carpet is another note I
could do ... write me and I'll be glad to either put in the list or tell you
personally.  A key trick is to do "xhost +" or "xhost +localhost" prior to
becoming su].

B) As su (root), I did fresh mono-channel installs using Red-Carpet.  This
caught all the dependencies automagically, except for one (winelib) I'll
mention in a moment.  I also installed the -devel packages for mono, icu,
etc. just to be on the safe side.  These are often required for builds if
one is doing CVS pull-down, etc.

C) ***VERY IMPORTANT****  I noticed that Red Carpet suggested the wine
install, and I took the suggestion.  I DISCOVERED THAT THE WINE VERSION USED
IS 8/2003!!!!  This is NOT the most recent version.  I don't know whether
this is/was the source of the problems Xantrix and I had or not -- prior to
installing mono 0.31 I had installed the most recent Wine of 2004 vintage --
but I'm not going to try to find out at this point.

D) Download the Winelib source from the go-mono downloads ... it is NOT a
package install.  Then build.  I personally think the procedure for building
in the 0.31 Release notes are in shorthand and thus slightly in error if
taken face value:
Unpack the tar.gz.
cd to the UNPACKED folder (not to ".tar.gz" as the Release notes indicate)
./configure --prefix=/usr/local            (note the prefix option; add to
be "on the safe side" ... this is missing from the Release notes but
something Peter is getting at)
make       (note the Release notes say "make install" ... I think the "make"
is necessary before make install)
make install

E) environment.   "which wine", "which mono", and "which mcs" should give
response and show where the executables are located.  On my system it is
/usr/bin.  HOWEVER, the support libraries are equally important and these
are not being set up automagically.  The prime mono Winforms (SWF) libs,
such as System.Windows.Forms.dll are (on my machine) in /usr/lib.  The
winelib.so.dll is in /usr/local/lib.  Therefore, edit your .profile (or
export from your bash shell, or whatever one does in your particular shell)
to add AT LEAST /usr/lib to your PATH or path or Path or whatever.
(usr/local/lib MAY be optional)

E') Was this important?  I don't know.  I happened to do a "wine -v" to
check the version.  Wine went through some initialization.  IF I had to
guess, it MAY have been creating configuration files that MAY be stored in a
.wine folder of one's home, similar to what setup did when using the
mono-winelib of 0.28 version days.

F) Finally, Peter gave advice re. the winelib.so.dll ... I THINK MAYBE,
perhaps, as a developer, he MAY have missed how the person involved had made
his installations ... I THINK perhaps that person did his/her installs via a
package manger as I have, in which case there isn't a whole lot of
flexibility about where the package contents get stuffed (unless there are
options available when using the rpm package manager or Red Carpet Express
or ).  DESPITE STATEMENTS I THINK I'VE SEEN TO THE CONTRARY, I fixed my
"can't load/find winelib.so.dll" problem by adding a LD_LIBRARY_PATH entry
to my environment that pointed to the winelib.so.dll. I.e. edit the .profile
or "export LD_LIBRARAY_PATH=/usr/local/lib" (or wherever you find your
winelib.so.dll).

I've not tested my setup extensively yet, and I've little time today to do
so.  But I ***think*** these steps have finally gotten me there.  My little
"more complex" SWF C# program is running now.

Thanks to Miguel, Peter, and all others for their time and patience with me
to this point.  I'm looking forward to seeing what they've wrought, and what
maybe I can do to help.

Best regards,


R. Wayne Arenz
preferred: rarenz@columbus.rr.com
secondary: atari6502@yahoo.com
"Any fool can write code that a computer can understand.
Good programmers write code that humans can understand."
--- Martin Fowler, Refactoring: Improving the Design of Existing Code