Gtkmm, Glibmm, Cairomm and libsigc++ for Indiana [LSARC/2008/074 FastTrack timeout 02/13/2008]

Irene Huang Irene.Huang at sun.com
Fri Feb 1 18:46:50 PST 2008


Including lsarc-ext since this case is open.

Thanks

--Irene
Shi-Ying Irene Huang wrote:
> Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
> This information is Copyright 2008 Sun Microsystems
>
> 1. Introduction
>    1.1. Project/Component Working Name:  sigcpp, glibmm, cairomm, and gtkmm 
> 	
>    1.2. Name of Document Author/Supplier: Ghee Teo, Chris Wang, Elaine Xiong, Simon Zheng  
> 	
>    1.3. Date of This Document: 01/30/08
> 	
>    1.5. Email Aliases:
>     	1.5.1. Responsible Manager: leo.binchy at sun.com
>     	1.5.2. Responsible Engineer:ghee.teo at sun.com, 
>                                     chris.wang at sun.com,
>                                     elaine.xiong at sun.com,
>                                     simon.zheng at sun.com  
>
> 2. Project Summary
>    2.1. Project Description:
>         libsigc++ implements a typesafe callback system for use in widget libraries, 
>         abstract interfaces, and general programming. It allows users to define 
>         signals and to connect those signals to any callback function, either global
>         or a member function, regardless of whether it is static or virtual.
>         It contains adaptor classes for connecting dissimilar callbacks and has an ease 
>         of use unmatched by other C++ callback libraries.
>
> 	cairomm is a C++ wrapper for the cairo graphics library. It offers all the power
> 	of cairo with an interface familiar to C++ developers, including use of the 
> 	Standard Template Library where it makes sense. Even though cairomm can be used 
> 	on its own, it is often used together with the higher level toolkit C++ wrapper, gtkmm.
>  
>         glibmm is a set of C++ bindings for Glib2 Library, including cross-platform 
>         APIs such as a std::string-like UTF8 string class, string utility 
>         methods, such as a text encoding converter API, file access, and 
>         threads.
>
>         gtkmm is the official C++ interface for the popular GUI library GTK+. 
>         Highlights include typesafe callbacks, and a comprehensive set of widgets
>         that are easily extensible via inheritance. You can create user interfaces either in 
>         code or with the Glade User Interface designer, using libglademm. There's
>         extensive documentation, including API reference and a tutorial.
>
>         
>
>    2.2. Risks and Assumptions:
>        gtkmm and glibmm follow the official GNOME Platform Bindings release schedule. This guarantees
>        API/ABI-stability and new releases on a predictable schedule, delivering C++ API for 
>        the underlying GTK+ and GNOME APIs as soon as possible. 
>       
>        The problem we need deal with is that of the different C++ ABIs of Sun Studio CC and
>        GNU g++. Now that Sun Studio is available as a free download it's not such a big problem,
>        but there are modules that won't build with Sun Studio. However Sun Studio C++ has maintained
>        a stable C++ ABI for over a decade. Considering the g++ compiler in Solaris can't build 
>        any 64-bit binaries that are actually usable, we only deliver these packages build with
>        Sun Studio. For those modules that won't build with Sun Studio, It is maintainer's 
>        responsibility to fix the build problems.
>      
> 4. Technical Description:
>     4.1. Details:
>        libsigc++ provides the following Features:
>
>          - Compile time typesafe callbacks (faster than run time checks)
>          - Typesafety violations report line number correctly with template names 
>            (no tracing template failures into headers)
>          - No compiler extensions or meta compilers required
>          - Proper handling of dynamic objects and signals (deleted objects will not cause seg faults)
>          - Extendable API at any level: signal, slot, connection and trackable
>          - Extensions do not require alteration of basic components
>          - User definable accumulators
>          - A variety of adaptors to change the callback signature: bind, hide, retype,
>            compose and lambda call groups
>          - Various compilers and platforms are supported: gcc, cygwin, mingw32, MS .NET 2003,
>            Sun Forte C++, Compaq C++, Intel C++, IBM AIX, Tru64, IRIX MipsPro.
>
> 	cairomm is part of the gtkmm (gtk--) framework to allow developers to make full use
> 	of the capabilities of Object Oriented Programming language features as in C++.
>
>         Cairo is a graphics description and rendering library. Cairomm provides classes
> 	 that allow the cairo API to be accessed in an Object Oriented constructs. Cairo allow graphics 
> 	 to be created programmatical in its own language and the be rendered onto surfaces of specific
> 	 target file formats, such as PostScript,PDF and so on.
> 	 Current supported rendering surfaces are:
>   	  - Image Surface (memory buffers)
>   	  - PDF Surface
>   	  - PostScript Surface
>   	  - SVG Surface
>   	  - Xlib Surface (X11 based systems)
>   	  - Win32 Surface (Windows)
>   	  - Quartz Surface (MacOS)
>   	 - Glitz (OpenGL-accelerated, experimental not fully supported)
>
> 	 These surfaces can then be augmented with the upper layer of libraries like that of gtkmm
> 	 to create GUI application.
>   
>        glibmm develivers a tool called gmmproc that can create gtkmm-style wrapper of
>        glib/GObject-based libraries. For example, gtkmm uses this to generate most of
>        its source code, using .defs files that describe the API of C libraries in a lisp format
>
>        gtkmm provides the following Features:
>          - Use inheritance to derive custom widgets.
>          - Type-safe signal handlers, in standard C++.
>          - Polymorphism.
>          - Use of Standard C++ Library, including strings, containers, and iterators.
>          - Full internationalisation with UTF8.
>          - Complete C++ memory management
>              - Object composition
>              - Automatic deallocation of dynamically allocated widgets.
>          - Full use of C++ namespaces.
>          - No macros.
>          - Cross-platform: Linux (gcc), FreeBSD (gcc), NetBSD (gcc), Solaris (gcc, Forte),
>            Win32 (gcc, MSVC++ .Net 2003), MacOS X (gcc), others
>            Free software and free of cost for both Open Source and proprietary development.
>          - Discussed, designed and implemented in public.
>
>         
>     4.5. Interfaces:
> 	
>         Exported Interfaces 
>         Interface                                           Stability        Comments 
>         ---------------------                               ---------------- ----------------------
>         SUNWsigcpp                                          Uncommitted      Package names 
>         SUNWsigcpp-devel                                    Uncommitted
> 	SUNWcairomm			                    Uncommitted
> 	SUNWcairomm-devel           			    Uncommitted
>         SUNWglibmm                                          Uncommitted   
>         SUNWglibmm-devel                                    Uncommitted
>         SUNWgtkmm	                                    Uncommitted
>         SUNWgtkmm-devel                                     Uncommitted
>
>         /usr/lib/libsigc-2.0.so                             Volatile       
>         /usr/lib/libcairomm-1.0.so                          Volatile
>         /usr/lib/libglibmm-2.4.so                           Volatile                 
>         /usr/lib/libglibmm_generate_extra_defs-2.4.so       Volatile
>         /usr/lib/glibmm-2.4/proc/gmmproc                    Volatile    
>         /usr/liblibatkmm-1.6.so                             Volatile
>         /usr/lib/libgtkmm-2.4.so                            Volatile
>         /usr/lib/libgdkmm-2.4.so                            Volatile
>         /usr/lib/libpangomm-1.4.so                          Volatile
>         /usr/lib/glibmm-2.4/include/glibmmconfig.h          Volatile            
>         /usr/lib/sigc++-2.0/include/sigc++config.h          Volatile
>
>         /usr/include/sigc++-2.0                             Volatile         Directory for hearder files
> 	/usr/include/cairomm-1.0                	    Volatile	     Directory for header files
>         /usr/include/glibmm-2.4/glibmm                      Volatile         Header files directory
>         /usr/include/glibmm-2.4/glibmm_generate_extra_defs  Volatile         Header files directory
> 	/usr/include/atkmm-1.6                              Volatile         Directory for atkmm headfiles
>         /usr/include/gtkmm-2.4                              Volatile         Directory for pangomm headfiles
>         /usr/include/pangomm-1.4                            Volatile         Directory for gdkmm headfiles 
>         /usr/demo/jds/bin/gtkmm-demo                        Volatile
>
>         /usr/lib/pkgconfig/atkmm-1.6.pc                     Volatile
>         /usr/lib/pkgconfig/gtkmm-2.4.pc                     Volatile
>         /usr/lib/pkgconfig/pangomm-1.4.pc                   Volatile
> 	/usr/lib/pkgconfig/cairomm-1.0.pc 		    Volatile
>         /usr/lib/pkgconfig/sigc++-2.0.pc                    Volatile
>         /usr/lib/pkgconfig/glibmm-2.4.pc                    Volatile
>
>         Imported Interfaces 
>         Interface                             Stability        Comments 
>         ---------------------                 ---------------- ----------------------
>          
>         GNOME Committed Platform Libraries    Committed        LSARC/2007/520          
>                                                                GNOME 2.20 
> 							       GTK+ library
>     
>     4.9. I18N/L10N Impact:
> 	 The JDS team and the G11N are working together to evaluation and
>        provide I18N/L10N support 
>
>     4.10. Packaging & Delivery:
>          The project will be delivering the following packages:
>          SUNWgtkmm 
> 	   SUNWgtkmm-devel
>          SUNWglibmm
>          SUNWglibmm-devel
> 	   SUNWcairomm
> 	   SUNWcairomm-devel
> 	   SUNWsigcpp
>          SUNWsigcpp-devel
>         
>   
> 5. Reference Documents:
>    gtkmm glibmm homepage http://www.gtkmm.org/
>    cairomm homepage - http://cairographics.org/cairomm
>    cairomm download: http://cairographics.org/releases/
>    libsigc++ Homepage - http://libsigc.sourceforge.net
>    libsigc++ Tutorial - http://libsigc.sourceforge.net/libsigc2/docs/manual/html/
>    libsigc++ API Reference - http://libsigc.sourceforge.net/libsigc2/docs/
>
>
> 6. Resources and Schedule
>     6.4. Steering Committee requested information
>    	6.4.1. Consolidation C-team Name:
> 		JDS
>     6.5. ARC review type: FastTrack
>     6.6. ARC Exposure: open
>
>   




More information about the opensolaris-arc mailing list