GNOME Bugzilla – Bug 125061
glibmm should use libsigc++2
Last modified: 2004-12-22 21:47:04 UTC
Version is unspecified since libsigc++2 is not stable yet. However I'm attaching a preliminary patch that makes glibmm compile against libsigc++-1.9.9 (or higher) instead of libsigc++-1.2. TODO: - Test thoroughly if the patch breaks anything. - Include sigc++/compatibility.h. - Complete compatibility module. - Create a patch for gtkmm. - Wait for libsigc++-2.0.0.
Created attachment 20825 [details] [review] glibmm_use_libsigc2.diff: Initial revision of the patch.
Great. The code looks better than before. Before, applying this, I would like: - To release gtkmm 2.3.0 without this change, to isolate other problems. - To make gtkmm 2.3 libsigc++-2 ready as well, so that we don't break the CVS build. - To see whether a compatibility API is possible. - libsigc++ 2 and gtkmm must work with the SUN Forte compiler. - We must warn people that gtkmm 2.3 will not work with gcc <3.2.
One question: Would you prefer to use the compatibility module in glibmm/gtkmm itself, i.e. leave occurencies of SigC::Slot0<void>, etc. untouched? In the first patch I changed them to sigc::slot<void>, etc.
> Would you prefer to use the compatibility module in > glibmm/gtkmm itself No, we would port to the latest non-deprecated libsigc++ API.
We need to ask on the list whether people can live without gcc 2.9*.
So, we have officially abandoned gcc 2.9*. We now need to patch gtkmm as well.
What's the deadline? I'm really busy these days ...
February 16th. I will try if nobody else, does though I have lots of other gtkmm API stuff to do as well: http://www.gnome.org/start/2.5/bindings/#ApiFreeze I am also talking to people at SUN about getting a login so we can use Forte C++, but I am not confident of a good response.
We still desperately need to test libsigc++2 with the Forte compiler, but here (glibmm_sigc2_v2.patch) is an update glibmm patch that also updates gmmproc so that it generates appropriate code. I am working on the gtkmm patch. By the way, I really like the code simplification - it's nice to lose the proxy and SlotBase and impl() stuff. Thanks.
Created attachment 24130 [details] [review] glibmm_sigc2_v2.patch
Created attachment 24268 [details] [review] gtkmm_sigc2.patch
Martin, here is the gtkmm part (gtkmm_sigc2.patch). I would appreciate it if you could check that for me. I am committing these now. We _might_ have to revert this if we discover a libsigc++2 problem on SUN Forte soon, but it's not our fault if nobody will try it.
Martin, please do review these patches.
The glibmm patch looks fine. I committed some further fixes in the documentation, comments and the tread example to cvs. I'm running out of time so I have to finish reviewing the gtkmm patch tomorrow. The changes to the examples look fine so far. You probably forgot to remove some "using ..." and some includes. I will fix this tomorrow and also have a look at the TODO entry you added in the cellrenderercustom example.
<off topic> Grr, I don't manage to install gtk+ 2.4 in parallel of gtk+ 2.2. The pango check in configure aborts after configure:28079: gcc -o conftest -O2 -I/opt/gtk24/include -Wall -I/opt/gtk24/inc lude/pango-1.0 -I/usr/X11R6/include -I/usr/local/include/freetype2 -I/usr/local/ include -I/opt/gtk24/include/glib-2.0 -I/opt/gtk24/lib/glib-2.0/include -O2 -I /opt/gtk24/include -L/opt/gtk24/lib conftest.c -Wl,--export-dynamic -L/opt/gtk24 /lib -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib- 2.0 -lintl -liconv >&5 /usr/bin/ld: warning: libpango-1.0.so.200, needed by /opt/gtk24/lib/libpangoxft- 1.0.so, may conflict with libpango-1.0.so.300 etc. I have no clue whatsoever, why /usr/X11R6/lib/libpango-1.0.so is used in the linking process when only -L/opt/gtk24/lib is given ... </off topic> Anyway, I am attaching gtkmm_sigc2_v2+.patch (against cvs). It contains some documentation fixes, updates in the tutorial and tries to solve some issues in GtkMainConnectionNode. I cannot test it because of my problems above. Please check whether it compiles and the demos run; then I'll commit to cvs.
Created attachment 24416 [details] [review] gtkmm_sigc2_v2+.patch
Yes, GTK+ 2.4 can not be installed in parallel unless you use a different prefix. I'll check the patch while I'm offline. Thanks.
> Yes, GTK+ 2.4 can not be installed in parallel unless you use a > different prefix. That's what I tried (configure --prefix=/opt/gtk24). Glib, glibmm, atk and pango all went into /opt/gtk24 like one would expect. > I'll check the patch while I'm offline. Thanks. Great!
I highly recommend jhbuild.
I tried this patch out and it needed a few minor changes. Here is the updated patch.
Created attachment 24829 [details] [review] gtkmm_sigc2_v3.patch
OK, that's committed. Thanks everyone. Please patch the ChangeLog in future.