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

Reply via email to