bug-gnubg
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-gnubg] Building gnubg on windows - A newbies voyage


From: macherius
Subject: [Bug-gnubg] Building gnubg on windows - A newbies voyage
Date: Mon, 31 Jan 2005 14:23:25 +0100

Hello,

it all started with the attempt to write a fibs bot. I had wrapped
"gnubg-no.gui.exe" into a java.util.Process and was redirecting the output
back into my program. But "doh!", the prompt which I planned to use as a
parsing token did not show. So i went to the CVS to see that an evil
"isatty" was between me an my plan. Only one thing could help: compiling
gnubg.

My first attemps were done using Cygwin, and the first bummer was the
autoconfiguration. Long storys short, "autoreconfig --force" pushed the
scripts into the world of the most recent Cygwin version. But more problems
lurked, some of the files in gnubg's "m4" directory collided with my more
recent versions. After endless installs of "*-dev" packages I was finally
able to delete most of them, keeping just gtkglext-1.0.m4, esd.m4,
audiofile.m4, artsc.m4 and the Makefiles. Soon i had my own "no-gui" binary,
hurray.

I became more daring and thought about creating JNI (Java Native Interface)
code to get rid of the clumsy in-process wrapping. However, Java's
DLL-loader crashes with Cygwin-compiled dll. The official Cygwin lists
clearly says they do not intend that nay time soon. Dead end here.

Next stop was Visual C. Of great help was Superfly's project file I found in
the archives of this very list. After adding and changing it to cover some
of the more recent sources, I was set for my first compiler run. It took
some source changes to convince Microsoft's compiler of the validity of the
sources, but finally I had another version of gnubg-no-gui.exe.

And as if this was not enough, I reached for the ultimate -- creating the
GUI version. Naively  i just grabbed all the required libs in recent
versions and tried to build. Some days later I actually succeded, with this
set of 3rd party libs:

http://gladewin32.sourceforge.net/
A collection of the following (useable), all in up-to-date versions:
gtk+ / gdk 2.6.1
zlib1
pango
libxml2
glib
atk
gtkglext
intl
iconv

Some libraries did not work and made the resulting binary immediately:
freetype2
libpng
libart2_lgpl

For freetype I was able to create a working replacement dll from the
freetype sources. I still do not have a working png dll, but linking a
static lib created from the libpng sources works. libart was not yet
tackled. So if you count the config options, I had a binary only missing
libart2 compared to the standard distribution. GladeWin32 is really a big
time saver, compared to single package download. And still no mingw-gcc
touched :)

See this screenshot for an impression of the result:
http://web2.vs4222.vserver4free.de/gnubg_cvs_20050105_with_gtk+_2.6.1_window
s_theme.png

I dsitributed the binary to 3 users and they liked the improvments offered
by gtk 2.6, e.g. improved startup times, mouse wheel support and the overall
slicker look and feel.

In case you want to judge yourself, here are results for download:

A complete, run-of-the box version of gnubg.exe, all libs and supplementary
files from the regular distribution. It misses libart and libpng. (18.5 MB)
http://web2.vs4222.vserver4free.de/gnubg-0.14.3-msdev-gtk2.6.1-inim-20050129
.zip

A version of gnubg.exe to drop into the above environment, in addition
statically linked with libpng (1.8 MB)
http://web2.vs4222.vserver4free.de/gnubg_msdev.exe

To my big suprise GTK+ Version 2.6.1 did not trigger too many bugs in gnubg,
here is my list:

Known build issues with gladewin32 libs:

- Linking libpng12.dll makes gnubg crash during init
  Workaround: Linked against a static version from libpng sources
- Linking freetype6.dll makes gnubg crash during init
  Workaround: Compiled new DLL from freetype sources
- Linking libart_lpgl.dll makes gnubg crash during init
  Workaround: Not included in configuration 

Known Bugs in the GUI with GTK+ 2.6.1

- error message when no config was saved before and gui shut down
- window closes way before sound finishes playing on exit
- calibration window OK button not responding when calibration runs 
- File dialogs have mixed national languages
- Appearence dialog freezes for long time when configuration files are
missing
- pulldown menus and icons gone after hide/restore panels
- pulldown menus and icons gone after dock/undock panels panels
- when closing some dialogs, main window puts itself behind other windows
- preferences not shared with release version

- windows-theme: about dialog fonzsize too big
- windows-theme: sometimes highlighting relics for text in messages 
- windows-theme: empty commentary window should have white background, too
- windows-theme: Analyze->*-statistics window table too small (left/right)
- windows-theme: Move list panel buttons too wide
- windows-theme: Setting dialogs many backgrounds too dark (wrong grey)

Having said and done all this, I'd like to learn more about the "correct"
way of building the gnubg GUI. E.g. what are the library versions used, and
are they used precompiled or from source? Furthermore I would be glad to
hear how you like the 2.6 version, and if there is a chanche to move the
official version into that direction. I'd be glad to help with this and to
share whatever you are interested in w/r to my compile setup.

Best Regards,
Ingo Macherius

P.S. The URL given above will not be long lived, maybe 4 weeks from now.
This is work in progress ...





reply via email to

[Prev in Thread] Current Thread [Next in Thread]