I include below patches that fix many problems with zinf that I see on my Fedora 7 system.
Problems:
Problem 1. When running zinf, you get an error like the following:
(<unknown>:2854): Gdk-WARNING **: Attempt to draw a drawable with depth 24 to a drawable with depth 32
(<unknown>:2854): Gdk-WARNING **: Attempt to draw a drawable with depth 24 to a drawable with depth 32
(<unknown>:2854): Gdk-WARNING **: Attempt to draw a drawable with depth 24 to a drawable with depth 32
(<unknown>:2854): Gdk-CRITICAL **: gdk_window_set_back_pixmap: assertion `pixmap == NULL || gdk_drawable_get_depth (window) == gdk_drawable_get_depth (pixmap)' failed
The program '<unknown>' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
(Details: serial 1333 error_code 8 request_code 62 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Workaround 1. Set XLIB_SKIP_ARGB_VISUALS=1 in your environment variables.
Problem 2. When zinf exits, you get a backtrace with an error related to g_free().
Solution 2. Apply the patch below.
Problem 3. The compiler gives various compile errors when trying to compile zinf, including errors associated with Player::SetEQData(), Player::SendVisBuf(), assert(), and url_type().
Solution 3. Apply the patch below.
Problem 4. When running 'make install', the make fails with an error trying to execute ./config/mkinstalldirs.
Solution 4. Use the build script below to build zinf.
Problem 5. You get compile errors associated with c4_Row::Select() or
boost::filesystem.
Solution 5. Use the build script below to build zinf.
I hope this is helpful.
-- David Wagner, daw@cs.berkeley.edu
Build script
Logged In: YES
user_id=1879887
Originator: NO
I couldn't figure out how to attach the patch, so here is the patch.
diff --exclude='*{arch}*' -u -r zinf--cvstrunk--1--patch-19/base/include/player.h daw-working/base/include/player.h
--- zinf--cvstrunk--1--patch-19/base/include/player.h 2007-08-30 20:52:22.000000000 -0700
+++ daw-working/base/include/player.h 2007-08-30 18:57:46.000000000 -0700
@@ -156,13 +156,13 @@
#define _EQUALIZER_ENABLE_
#ifdef _EQUALIZER_ENABLE_
- void Player::SetEQData(Event *pEvent);
+ void SetEQData(Event *pEvent);
#endif // _EQUALIZER_ENABLE_
#undef _EQUALIZER_ENABLE_
#define _VISUAL_ENABLE_
#ifdef _VISUAL_ENABLE_
- void Player::SendVisBuf(Event *pEvent);
+ void SendVisBuf(Event *pEvent);
#endif // _VISUAL_ENABLE_
#undef _VISUAL_ENABLE_
diff --exclude='*{arch}*' -u -r zinf--cvstrunk--1--patch-19/base/include/queue.h daw-working/base/include/queue.h
--- zinf--cvstrunk--1--patch-19/base/include/queue.h 2007-08-30 20:52:22.000000000 -0700
+++ daw-working/base/include/queue.h 2007-08-30 19:12:13.000000000 -0700
@@ -26,6 +26,7 @@
#include "config.h"
#include "mutex.h"
+#include "assert.h"
template<class T>
class Queue {
diff --exclude='*{arch}*' -u -r zinf--cvstrunk--1--patch-19/mdb/treemetadata.cpp daw-working/mdb/treemetadata.cpp
--- zinf--cvstrunk--1--patch-19/mdb/treemetadata.cpp 2007-08-30 20:52:22.000000000 -0700
+++ daw-working/mdb/treemetadata.cpp 2007-08-30 19:11:13.000000000 -0700
@@ -1,6 +1,8 @@
#include <iostream>
#include "facontext.h"
+// hack: DAW
+#define EXPERIMENTAL
#include "utility.h"
#include "treemetadata.h"
diff --exclude='*{arch}*' -u -r zinf--cvstrunk--1--patch-19/ui/zinf/unix/src/GTKFont.cpp daw-working/ui/zinf/unix/src/GTKFont.cpp
--- zinf--cvstrunk--1--patch-19/ui/zinf/unix/src/GTKFont.cpp 2007-08-30 20:52:22.000000000 -0700
+++ daw-working/ui/zinf/unix/src/GTKFont.cpp 2007-08-30 20:38:01.000000000 -0700
@@ -231,8 +231,8 @@
//shot in the dark. is this right?
if (G_IS_OBJECT(layout))
g_object_unref(layout);
- // if (G_IS_OBJECT(pango_context))
- g_free(pango_context);
+ if (G_IS_OBJECT(pango_context))
+ g_object_unref(pango_context);
gdk_threads_leave();
}
Also here is the build script (same as what is attached);
#!/bin/sh
make clean
./autoclean.sh
cp /usr/share/aclocal/libtool.m4 aclocal.m4
./autogen.sh
cp ./tmpwrk*/archive/mkinstalldirs config/
CFLAGS='-g' CXXFLAGS='-g' LIBS='-lmk4 -lboost_filesystem' ./configure --enable-static --enable-debug --enable-dmalloc --enable-experimental
make clean
make