A question for LSARC regarding these libs:

Given that these are c++ libs, is it acceptable to ship
duplicate copies built with g++ (/usr/sfw/bin/g++) and if
so, where should they be installed?

Why would that be useful?  For building gtkmm-based
applications that are difficult (to say the least) to
compile with Sun Studio.  An example of such an app is
the Inkscape SVG editor.  Inkscape builds fine with
/usr/sfw/bin/g++, but I was unable to get it built with
Sun Studio CC even with the help of the author.  The
Inkscape codebase is complex and uses lots of template
code.  When we fixed an error reported by Sun Studio,
the new code failed with g++.  Obviously, one of the
compilers is wrong, but it's also clear that fixing
the one that is wrong will require breaking its
compatibility.  Shipping a g++-built copy of these
libs would enable us to build Inkscape without major
effort and code changes that cannot be pushed upstream
and would potentially allow customers to build other
gtkmm-based apps (Gobby?  GParted? MySQL Administrator?)
that may be difficult to build with Sun Studio.

Thanks,
Laca

On Sat, 2008-02-02 at 10:46 +0800, Irene Huang wrote:
> 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
> >
> >   
> 


Reply via email to