As maintainers of fink sigc++2 and cairomm1 packages you might be interested about this:
a bug in OS X or libsigc++ (depends on how you want to see it) that causes cairomm (among others?) not to compile. -asko Edelleenlähetetty viesti alkaa: > Lähettäjä: Asko Kauppi <[EMAIL PROTECTED]> > Päiväys: 28. lokakuuta 2008 klo 20:50.35 > Vastaanottaja: Murray Cumming <[EMAIL PROTECTED]> > Kopio: [EMAIL PROTECTED], [EMAIL PROTECTED] > Aihe: Vastaus: [cairo] Unable to compile cairomm 1.7.0 (OS X fink) > > > Oops, that was interesting. > > Seems libsigc++ 2.5 is prepared for this: > > > http://ardour.sourcearchive.com/documentation/2.5/functor__trait_8h-source.html > > #ifdef nil > /* stupid OS X, defining nil */ > #undef nil > #endif > > > But current fink version is 2.2.3. I will contact the maintainer > to make sure (s)he is notified. > > Seems fitting the same first aid block in front of including <sigc++/ > slot.h> in both cairomm/fontface.h and cairomm/surface.h does the > same trick. > > Thanks! > > -asko > > > Murray Cumming kirjoitti 28.10.2008 kello 19:53: > >> On Mon, 2008-10-27 at 21:24 +0200, Asko Kauppi wrote: >>> I tried compiling Cairomm 1.7.0 on OS X with fink tools. This is >>> what >>> I got after >>> >>> ./configure >>> make >>> >>> Would you have ideas of what's wrong? >>> >>> Which version of libsigc++ is required? >>> >>> The line 37 of functor_trait.h is: >>> << >>> /** nil struct type. >>> * The nil struct type is used as default template argument in the >>> * unnumbered sigc::signal and sigc::slot templates. >>> * >>> * @ingroup signal >>> * @ingroup slot >>> */ >>> struct nil; <<-- line 37 >> >> Yes. nil is typedefed to something on MacOS X, so libsigc++ has >> problems >> there. I am surprised that you could build libsigc++. >> >> Unfortunately, we can't change that identifier to something else >> without >> breaking ABI (due to mangled C++ names) in other libraries that use >> libsigc++, such as gtkmm. >> >> vmware had this problem (they use gtkmm for the vmware UI). I'm sure >> there's a patch somewhere that they apply, but I can't find it now in >> bugzilla. fink should probably apply the patch. >> >> I've CCed Philip Langdale, who I think was the vmware guy who >> mentioned >> this. Maybe he knows where to find the bug or the patch. >> >> >> -- >> [EMAIL PROTECTED] >> www.murrayc.com >> www.openismus.com >> > Edelleenlähetetty viesti alkaa: > Lähettäjä: Asko Kauppi <[EMAIL PROTECTED]> > Päiväys: 27. lokakuuta 2008 klo 21:24.20 > Vastaanottaja: [EMAIL PROTECTED] > Aihe: Unable to compile cairomm 1.7.0 (OS X fink) > > > I tried compiling Cairomm 1.7.0 on OS X with fink tools. This is > what I got after > > ./configure > make > > Would you have ideas of what's wrong? > > Which version of libsigc++ is required? > > The line 37 of functor_trait.h is: > << > /** nil struct type. > * The nil struct type is used as default template argument in the > * unnumbered sigc::signal and sigc::slot templates. > * > * @ingroup signal > * @ingroup slot > */ > struct nil; <<-- line 37 > << > > - asko > > ... > g++ -DHAVE_CONFIG_H -I. -I.. -I/sw/include/libpng12 -I/sw/include -I/ > sw/lib/freetype219/include/freetype2 -I/sw/lib/freetype219/include - > I/sw/include/pixman-1 -I/sw/include/cairo -I/sw/include/sigc++-2.0 - > I/sw/lib/sigc++-2.0/include -I/usr/X11R6/include -I/usr/X11/include - > g -O2 -MT quartz_font.lo -MD -MP -MF .deps/quartz_font.Tpo -c > quartz_font.cc -fno-common -DPIC -o .libs/quartz_font.o > /sw/include/sigc++-2.0/sigc++/functors/functor_trait.h:37: error: > expected identifier before '__null' > /sw/include/sigc++-2.0/sigc++/functors/functor_trait.h:37: error: > expected unqualified-id before '__null' > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1088: error: expected > type-specifier before '__null' > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1088: error: expected > `>' before '__null' > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg2' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg3' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg4' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg5' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg6' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg7' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template > argument 3 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template > argument 4 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template > argument 5 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template > argument 6 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template > argument 7 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template > argument 8 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg2' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg3' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg4' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg5' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg6' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg7' > was not declared in this scope > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template > argument 3 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template > argument 4 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template > argument 5 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template > argument 6 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template > argument 7 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template > argument 8 is invalid > /sw/include/sigc++-2.0/sigc++/functors/slot.h: In constructor > 'sigc::slot<T_return, T_arg1>::slot(const T_functor&)': > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1102: error: 'typedef > int sigc::slot<T_return, T_arg1>::parent_type' is not a non-static > data member of 'sigc::slot<T_return, T_arg1>' > /sw/include/sigc++-2.0/sigc++/functors/slot.h: In copy constructor > 'sigc::slot<T_return, T_arg1>::slot(const sigc::slot<T_return, > T_arg1>&)': > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1105: error: 'typedef > int sigc::slot<T_return, T_arg1>::parent_type' is not a non-static > data member of 'sigc::slot<T_return, T_arg1>' > /sw/include/sigc++-2.0/sigc++/functors/slot.h: At global scope: > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1117: error: wrong > number of template arguments (8, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1144: error: wrong > number of template arguments (8, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1171: error: wrong > number of template arguments (8, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1198: error: wrong > number of template arguments (8, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1225: error: wrong > number of template arguments (8, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1252: error: wrong > number of template arguments (8, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1279: error: wrong > number of template arguments (8, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > ../cairomm/fontface.h:187: error: wrong number of template arguments > (4, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > ../cairomm/fontface.h:239: error: wrong number of template arguments > (4, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > ../cairomm/fontface.h:301: error: wrong number of template arguments > (5, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > ../cairomm/fontface.h:360: error: wrong number of template arguments > (6, should be 2) > /sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided > for 'template<class T_return, class T_arg1> class sigc::slot' > make[3]: *** [quartz_font.lo] Error 1 > make[2]: *** [all-recursive] Error 1 > make[1]: *** [all] Error 2 > > > > > > Jonathon Jongsma kirjoitti 26.10.2008 kello 6:46: > >> ********************** >> NOTE: This is an UNSTABLE release and contains MANY changes, >> including >> some API changes (in addition to the normal API additions and >> bugfixes). >> I have provided justifications for the API changes below, so please >> read through them carefully and provide feedback if you disagree with >> any of them. If you'd like to view the API documentation online as >> you >> read through the list of changes below, you can do so at >> http://www.cairographics.org/documentation/cairomm/reference/ >> ********************** >> >> cairomm is a C++ API for the cairo graphics library. For more >> information, see http://cairographics.org/cairomm >> >> A new cairomm release 1.7.0 is now available from: >> >> http://cairographics.org/releases/cairomm-1.7.0.tar.gz >> >> which can be verified with: >> >> http://cairographics.org/releases/cairomm-1.7.0.tar.gz.sha1 >> 6d19e71717abf559ffb868423669ba23860fc94b cairomm-1.7.0.tar.gz >> >> http://cairographics.org/releases/cairomm-1.7.0.tar.gz.sha1.asc >> (signed by Jonathon Jongsma) >> >> WHAT'S NEW >> ========== >> >> * API Changes >> * ScaledFont: Change fontface constructor parameter to be a RefPtr >> * This is an API/ABI break, but the old interface was essentially >> unusably >> broken >> * Cairo::Matrix now inherits from cairo_matrix_t >> * Previously, we had used Cairo::Matrix throughout our API, but >> Cairo::Matrix was just a typedef for cairo_matrix_t >> * This could be considered an API change, but the new >> Cairo::Matrix still >> is-a cairo_matrix_t even if it's not exactly a >> cairo_matrix_t. This >> change does not break ABI either, as there are no data members >> or virtual >> functions. So I believe this is a safe change, but feedback is >> appreciated. >> * Provides a much more C++-friendly API for handling matrices >> * Also added a set of standalone 'generator' functions for >> generating >> starting matrices: >> * Cairo::identity_matrix(), rotation_matrix(), >> translation_matrix(), >> scaled_matrix(). This allows for convenient use such as: >> cr->set_matrix(Cairo::identity_matrix()); >> rather than something like what was required before: >> Cairo::Matrix identity_matrix; >> cairo_matrix_init_identity(&identity_matrix); >> cr->set_matrix(identity_matrix); >> * Pattern: get/set_matrix() functions were using a cairo_matrix_t >> parameter in >> the API. This is the only place where we used this type and so >> it was >> inconsistent with every other matrix-related API in cairomm. >> Previously >> this wasn't really an issue since cairo_matrix_t and >> Cairo::Matrix >> were >> typedefed to the same type. However, with the the change to >> Cairo::Matrix >> mentioned above, this because a much bigger issue. >> * This is an ABI-compatible change, but it is a minor API change >> that could >> result in some warnings or compile problems in some situations` >> * New API (some of these are new in cairo 1.8, some are older API >> that >> were >> not wrapped in cairomm previously) >> * Add Context::get/set_scaled_font() >> * add Context::show_text_glyphs() >> * add Context::get_font_options() >> * Add Surface::has_show_text_glyphs() >> * Add Surface::get_content() + test >> * Added Surface::get_fallback_resolution() >> * Add ScaledFont::text_to_glyphs() >> * Add PsSurface::get_eps() >> * Add missing Win32Surface API: create_with_ddb(), >> create_with_dib(), and get_image() >> * Add Win32PrintingSurface >> * Vastly improved font support >> * ToyFontFace >> * UserFontFace >> * Add Freetype font support (FtFontFace, etc) >> * Add win32 font support (Win32FontFace, etc) >> * Add quartz font support (QuartzFontFace, etc) >> * Add ScaledFont::get_scale_matrix() >> * Fix API inconsistencies by adding overloads and deprecating old >> versions >> * Deprecated FontFace::extents() in favor of >> FontFace::get_extents() >> * Deprecated FontFace::text_extents() in favor of >> FontFace::get_text_extents() >> * Deprecated FontFace::glyph_extents() in favor of >> FontFace::get_glyph_extents() >> * Add sigc::slot versions of all of the functions that take a >> cairo_write_func_t or cairo_read_func_t >> * This adds a new dependency on libsigc++, but offers a much more >> flexible >> and C++-like solution >> * Old API using cairo_write_func_t / cairo_read_func_t still >> exist, but are >> deprecated in favor of the new API >> * Add a default value for the font_options parameter of the >> ScaledFont constructor >> * Added new macros for determining library version: >> * CAIROMM_MAJOR_VERSION, CAIROMM_MINOR_VERSION, and >> CAIROMM_MICRO_VERSION >> * Add a bunch of extra .pc files for additional functionality >> * like cairo, create convenience .pc files for using some of the >> optional >> features. For example, cairomm-ft-1.0, cairomm-pdf-1.0, >> cairomm-xlib-1.0, etc. >> * Numerous windows build improvements >> * Added a *lot* of automated tests >> >> -- >> jonner >> _______________________________________________ >> cairo-announce mailing list >> [EMAIL PROTECTED] >> http://lists.cairographics.org/mailman/listinfo/cairo-announce >> _______________________________________________ >> cairo mailing list >> [EMAIL PROTECTED] >> http://lists.cairographics.org/mailman/listinfo/cairo > Edelleenlähetetty viesti alkaa: > Lähettäjä: Asko Kauppi <[EMAIL PROTECTED]> > Päiväys: 26. lokakuuta 2008 klo 10:05.46 > Vastaanottaja: Jonathon Jongsma <[EMAIL PROTECTED]> > Aihe: Vastaus: [cairo] [cairo-announce] cairomm release 1.7.0 > (UNSTABLE) now available > > > Thanks! > > Just to let you know, I am about to start crafting a Lua binding for > Cairo, based on cairomm interface. > > This approach has proven good earlier with other libraries; reusing > the documentation and class design that has already been crafted, > but implementing it in Lua. > > I know there are multiple Cairo bindings already, but they each lack > either in features, presenting their own interfacing, or both. > > -asko > > > Jonathon Jongsma kirjoitti 26.10.2008 kello 6:46: > >> ********************** >> NOTE: This is an UNSTABLE release and contains MANY changes, >> including >> some API changes (in addition to the normal API additions and >> bugfixes). >> I have provided justifications for the API changes below, so please >> read through them carefully and provide feedback if you disagree with >> any of them. If you'd like to view the API documentation online as >> you >> read through the list of changes below, you can do so at >> http://www.cairographics.org/documentation/cairomm/reference/ >> ********************** >> >> cairomm is a C++ API for the cairo graphics library. For more >> information, see http://cairographics.org/cairomm >> >> A new cairomm release 1.7.0 is now available from: >> >> http://cairographics.org/releases/cairomm-1.7.0.tar.gz >> >> which can be verified with: >> >> http://cairographics.org/releases/cairomm-1.7.0.tar.gz.sha1 >> 6d19e71717abf559ffb868423669ba23860fc94b cairomm-1.7.0.tar.gz >> >> http://cairographics.org/releases/cairomm-1.7.0.tar.gz.sha1.asc >> (signed by Jonathon Jongsma) >> >> WHAT'S NEW >> ========== >> >> * API Changes >> * ScaledFont: Change fontface constructor parameter to be a RefPtr >> * This is an API/ABI break, but the old interface was essentially >> unusably >> broken >> * Cairo::Matrix now inherits from cairo_matrix_t >> * Previously, we had used Cairo::Matrix throughout our API, but >> Cairo::Matrix was just a typedef for cairo_matrix_t >> * This could be considered an API change, but the new >> Cairo::Matrix still >> is-a cairo_matrix_t even if it's not exactly a >> cairo_matrix_t. This >> change does not break ABI either, as there are no data members >> or virtual >> functions. So I believe this is a safe change, but feedback is >> appreciated. >> * Provides a much more C++-friendly API for handling matrices >> * Also added a set of standalone 'generator' functions for >> generating >> starting matrices: >> * Cairo::identity_matrix(), rotation_matrix(), >> translation_matrix(), >> scaled_matrix(). This allows for convenient use such as: >> cr->set_matrix(Cairo::identity_matrix()); >> rather than something like what was required before: >> Cairo::Matrix identity_matrix; >> cairo_matrix_init_identity(&identity_matrix); >> cr->set_matrix(identity_matrix); >> * Pattern: get/set_matrix() functions were using a cairo_matrix_t >> parameter in >> the API. This is the only place where we used this type and so >> it was >> inconsistent with every other matrix-related API in cairomm. >> Previously >> this wasn't really an issue since cairo_matrix_t and >> Cairo::Matrix >> were >> typedefed to the same type. However, with the the change to >> Cairo::Matrix >> mentioned above, this because a much bigger issue. >> * This is an ABI-compatible change, but it is a minor API change >> that could >> result in some warnings or compile problems in some situations` >> * New API (some of these are new in cairo 1.8, some are older API >> that >> were >> not wrapped in cairomm previously) >> * Add Context::get/set_scaled_font() >> * add Context::show_text_glyphs() >> * add Context::get_font_options() >> * Add Surface::has_show_text_glyphs() >> * Add Surface::get_content() + test >> * Added Surface::get_fallback_resolution() >> * Add ScaledFont::text_to_glyphs() >> * Add PsSurface::get_eps() >> * Add missing Win32Surface API: create_with_ddb(), >> create_with_dib(), and get_image() >> * Add Win32PrintingSurface >> * Vastly improved font support >> * ToyFontFace >> * UserFontFace >> * Add Freetype font support (FtFontFace, etc) >> * Add win32 font support (Win32FontFace, etc) >> * Add quartz font support (QuartzFontFace, etc) >> * Add ScaledFont::get_scale_matrix() >> * Fix API inconsistencies by adding overloads and deprecating old >> versions >> * Deprecated FontFace::extents() in favor of >> FontFace::get_extents() >> * Deprecated FontFace::text_extents() in favor of >> FontFace::get_text_extents() >> * Deprecated FontFace::glyph_extents() in favor of >> FontFace::get_glyph_extents() >> * Add sigc::slot versions of all of the functions that take a >> cairo_write_func_t or cairo_read_func_t >> * This adds a new dependency on libsigc++, but offers a much more >> flexible >> and C++-like solution >> * Old API using cairo_write_func_t / cairo_read_func_t still >> exist, but are >> deprecated in favor of the new API >> * Add a default value for the font_options parameter of the >> ScaledFont constructor >> * Added new macros for determining library version: >> * CAIROMM_MAJOR_VERSION, CAIROMM_MINOR_VERSION, and >> CAIROMM_MICRO_VERSION >> * Add a bunch of extra .pc files for additional functionality >> * like cairo, create convenience .pc files for using some of the >> optional >> features. For example, cairomm-ft-1.0, cairomm-pdf-1.0, >> cairomm-xlib-1.0, etc. >> * Numerous windows build improvements >> * Added a *lot* of automated tests >> >> -- >> jonner >> _______________________________________________ >> cairo-announce mailing list >> [EMAIL PROTECTED] >> http://lists.cairographics.org/mailman/listinfo/cairo-announce >> _______________________________________________ >> cairo mailing list >> [EMAIL PROTECTED] >> http://lists.cairographics.org/mailman/listinfo/cairo > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel