Erwann,

This case was approved during ARC business today.
I have attached the updated proposal that is also
in the case directory.

Thanks,

John

On Sun, 2008-02-17 at 06:21, Erwann Chenede wrote:
> Hi Danek,
> 
> Danek Duvall wrote:
> > On Fri, Feb 15, 2008 at 06:38:39PM +0100, Erwann Chenede wrote:
> >
> >   
> >>> So is there any point in putting compiz-configure in /usr/bin?  Seems like
> >>> it's a Private implementation detail at the moment.
> >>>       
> >> True, what is the preferred location installation for these Private 
> >> implementation detail ?
> >>     
> >
> > /usr/lib.  Make a subdirectory if you're finding that a bunch of things
> > from your project are ending up there.
> >   
> Ok, I'll put that in /usr/lib/compiz as the name space is already used 
> for compiz plugins.
> >   
> >>> On a related note, are either the plugin API or ABI Public interfaces?
> >>>   
> >>>       
> >> The plugin API is private as it is evolving from version to version. This 
> >> is why I didn't mentioned it. Should I mention it ?
> >>     
> >
> > It's probably worth mentioning, yeah, just so everyone's aware it's not a
> > Public interface.  Though the ABI is more interesting as a Private
> > interface, since end-users will still have to deal with the consequences of
> > it evolving.
> >   
> Ok, I'll mention it.
> 
> JohnF can you add in 4.5 :
> compiz plugin API                Private                interface used 
> by compiz to interact with its plugins.
> compiz plugin ABI                Private                this ABI doesn't 
> yet reflect a standard it is changing from version to version.
> >   
> >>>>>> /usr/bin/gtk-window-decorator   Uncommitted    Executable of gtk 
> >>>>>> decorator
> >>>>>>             
> >>> Is it something the user would ever run, or is it an implementation detail
> >>> of compiz?
> >>>       
> >> Yes,users can switch between decorators as other window decorators exist 
> >> for example emerald (http://wiki.compiz-fusion.org/Decorators/Emerald)
> >>     
> >
> > Ah, I see.  gtk-window-decorator is a window decorator, just like emerald.
> > I was expecting it to be a generic window decorator which then took plugins
> > like emerald.  I was going to ask about the name, since it seems more
> > specific to gtk than to compiz, but I see now.
> >
> > I presume there's a gui way of changing decorators, too?
> >   
> Yes, via gconf-editor or ccsm or via the command line by running the 
> decorators command line with  --replace as an argument.
> 
>     Erwann
> > Danek
> >   
> 
> 
> -- 
>               Erwann Ch?ned?,
>  Desktop Group, Sun Microsystems, Grenoble
>  Phone  : +33 476 188 358       ext: 38358
> [ I speak for myself, not for my employer ]
> 
> 
-------------- next part --------------
Template Version: @(#)onepager.txt 1.35 07/11/07 SMI
Copyright 2008 Sun Microsystems

1. Introduction
   1.1. Project/Component Working Name: 
        Compiz: Compositing window manager
        
   1.2. Name of Document Author/Supplier: 
        Erwann Chenede, Chris Wang
        
   1.3. Date of This Document: 
        12/02/08
        
   1.4. Name of Major Document Customer(s)/Consumer(s):
        1.4.1. The PAC or CPT you expect to review your project:
                Solaris PAC
        1.4.2. The ARC(s) you expect to review your project:
                LSARC
        1.4.3. The Director/VP who is "Sponsoring" this project:
                robert.odea at sun.com
        1.4.4. The name of your business unit:
                OPG / OpenSource.

   1.5. Email Aliases:
        1.5.1. Responsible Manager: 
                leo.binchy at sun.com

        1.5.2. Responsible Engineer: 
                erwann.chenede at sun.com 

        1.5.3. Marketing Manager:
                dan.roberts at sun.com

        1.5.4. Interest List:
                desktop-discuss at opensolaris.org

2. Project Summary
   2.1. Project Description:

        Compiz is one of the first compositing window managers for the X 
        Window System that is able to take advantage of OpenGL-acceleration.
        The integration allows it to perform compositing effects in window
        management, such as a minimization effect and a cube workspace.

        Compiz is built on the Composite extension to X and the
        GLX_EXT_texture_from_pixmap extension to OpenGL. 
        
        Compiz is designed with a highly extensible plugin system (like
        Firefox's plugin system). These plugins can extend the basic
        functionality of Compiz, only giving you the features you want.
        Everything inside compiz is controlled by the plugins, 
        even basic functionality like moving windows is enabled as a plugin.

        The frame decoration UI is also managed as a plugin. Multiple 
        decorator are available. We are only providing the one provided 
        by the core compiz package (gtk-window-decorator)

   2.2. Risks and Assumptions:

        Compiz conforms to the ICCCM standard and as such can substitute 
        for the default Metacity in GNOME. 
        Compiz make use of video drivers features that might not have been 
        tested in depth previously. This could indirectly cause system 
        instability due to the use of these functionalities.

4. Technical Description:
    4.1. Details:
      
        Compiz will be made available as a optional window manager.
        Enabling compiz in the GNOME is achieved by adding 
        a new tab in the gnome-appearance-properties applet. 

        This tab will allow the user to switch between metacity and 
        compiz. Compiz will only be available as a choice if the user 
        X server is supported and configured properly. If this X server 
        is not configured properly but the underlying driver does support 
        compiz an option is made available to modify the X server 
        configuration file.
        This is provided by compiz-configure. This depends on a private 
        contract with the Xserver to use /etc/X11/.xorg.conf

        To configure compiz' numerous options the CompizeConfigs CompizConfig 
        settings manager GUI (ccsm) will be delivered. This is a python gtk 
        GUI. This application required additional widgets that are delivered 
        by libsexy.
        (http://www.chipx86.com/wiki/Libsexy)

        Compiz is controlled almost solely by plugins. These plugins 
        have been categorized into 3 categories: 
         *  main - These plugins are required compiz will not work
            properly without them. 
         *  extra - Additional plugins which provide many usability
            enhancements. 
         *  unsupported - Additional plugins that are not supported by 
            the community.

        We are only delivering the main and extra plugins.
        
        These plugins are installed on /usr/lib/compiz. Note that 
        each user can install additional plugins into the 
        $(HOME)/compiz/plugins directory.

        To manage the user settings using gconf as the rest of the GNOME 
        desktop does the plugin/library compiz-config is used. 

    4.5. Interfaces:
        
        Exported Interfaces 
        Interface             Stability        Comments 
        --------------------- ---------------- ----------------------
         SUNWcompiz             Uncommitted      Package name 
         /usr/bin/compiz        Uncommitted      Executable of compiz
         /usr/bin/gtk-window-decorator   
                                Uncommitted      Executable of gtk decorator
         /usr/bin.compiz-configure      
                                Volatile         Detect whether the hardware
                                                 meet the requirement to run
                                                 compiz. configure the 
xorg.conf 
                                                 file is required.
         /usr/lib/compiz/*.so   Private          Compiz Plugins see (5.1 for
                                                 details)
         /usr/share/compiz      Uncommitted      Contains all image files
         ~./.compiz/plugins     Uncommitted      Contains all user installed
                                                 plugins
         ~./.compiz/images      Uncommitted      Contains all images using by
                                                 user installed plugins

         SUNWlibcompizconfig    Uncommitted      Package name for configuration
                                                 plugin
         lib/compizconfig/backends/libini.so
                                Private          init file style configuration 
                                                 plugin

         SUNWcompizconfig-gconf Uncommitted      Package name for the 
                                                 configuration plugin gconf 
                                                 backend.
         lib/compizconfig/backends/libgconf.so    
                                 Private         gconf backend to compiz
                                                 config plugin                  
                        
         SUNWcompizconfig-python Uncommitted     Package name for the python
                                                 bindings for compiz-config 
                                                 (used by ccsm)
         lib/python.../vendor-packages/compizconfig.so 
                                Private          python bindings for
                                                 compiz-config
         SUNWlibsexy            Uncommitted      Package name for extra 
                                                 gtk widget library
         lib/libsexy.so         Uncommitted      extra gtk widget library
         SUNWsexy-python        Uncommitted      Package name for libsexy
                                                 python bindings.
         lib/python.../vendor-packages/sexy.so
                                Uncommitted      libsexy python bindings
         SUNWcompiz-fusion-main Uncommitted      Package name for the 
                                                 main compiz plugins
         SUNWcompiz-fusion-extra
                                Uncommitted      Package name for the extra
                                                 plugins

        compiz plugin API       Project Private  interface used by compiz 
                                                 to interact with its 
                                                 plugins.
        compiz plugin ABI       Project Private  this ABI doesn't yet 
                                                 reflect a standard it is 
                                                 changing from version to 
                                                 version.

        Imported Interfaces 
        Interface             Stability        Comments 
        --------------------- ---------------- ----------------------
         libpng                 Evolving         LSARC/2003/568
         dbus                   Volatile         LSARC/2006/368
         GTK                    Evolving         LSARC/2001/384
         Glib                   Evolving         LSARC/2001/384
         Gconf                  External         LSARC/2002/146
         metacity               External         LSARC/2001/420
         OpenGL                 External         LSARC 2005/109,
                                                 LSARC/2005/700, 
                                                 LSARC/1999/410
         Damage Extension X server extension
                                External         LSARC/2003/506
         XFixes X server extension 
                                External         PSARC/2004/318
         Composite X server extension 
                                External         PSARC/2007/240
                                
    4.6. Doc Impact:
         manpages will be provided for the binaries
    
    4.7. Admin/Config Impact:
         see 4.1 for UI changes.
    
    4.8. HA Impact:
         N/A
    
    4.9. I18N/L10N Impact:
         The JDS team and the G11N are working together to evaluate and
         provide I18N/L10N support 
      
    4.10. Packaging & Delivery:
         The project will be delivering the following packages:
         SUNWcompiz                     compiz and plugin binaries
         SUNWcompiz-root                compiz configuration files
         SUNWcompiz-fusion-extra        compiz fusion extra plugin binaries
         SUNWcompiz-fusion-extra-root   extra plugins configuration files
         SUNWcompiz-fusion-main         compiz fusion main plugin binaries
         SUNWcompiz-fusion-main-root    main plugins configuration files
         SUNWccsm                       compiz config settings manager binary
         SUNWlibcompizconfig            compiz config library plugin
         SUNWlibcompizconfig-root       compiz config library plugin
                                        configuration file
         SUNWcompizconfig-gconf         compiz config gconf bindings
         SUNWcompizconfig-python        compiz config python bindings
         SUNWlibsexy                    extra gtk widgets
         SUNWsexy-python                libsexy python bindings

    4.11. Security Impact:
         compiz is a user application without specific priviledges. The 
         security impact will be the same as metacity.
    
5. Reference Documents:
        Compiz home page http://www.compiz.org/
        compiz fusion plugins : http://wiki.compiz-fusion.org/
        Compiz on solaris : http://blogs.sun.com/erwann/

5.1 Plugins details 

        Exported Interfaces 
        Interface             Stability        Comments 
        --------------------- ---------------- ----------------------

                          All the subsequent plugins are 
                          located in lib/compiz
                          Part of SUNWcompiz


         libannotate.so         Private          draw things on top of all 
                                                 windows
         libblur.so             Private          Provides support for blurring
                                                 windows and contents behind
                                                 translucent windows.
         libclone.so            Private          duplicate output on two screens
         libcube.so             Private          each virtual desktop becomes
                                                 a face on a cube
         libdbus.so             Private          dbus interfacing
         libdecoration.so       Private          a plugin to communicate
                                                 decoration settings to a
                                                 decorator
         libfade.so             Private          windows fade in and out
         libgconf.so            Private          settings come from GNOME
         libini.so              Private          Flat file configuration 
                                                 backend.
         libminimize.so         Private          windows minimize (and maximize)
                                                 with an animation effect
         libmove.so             Private          window moving
         libplace.so            Private          placement of new windows
         libplane.so            Private          slide across workspaces
         libpng.so              Private          allows plugin developers to
                                                 load PNG files as textures
                                                 without worrying about the
                                                 image format.
         libregex.so            Private          provides regular expression
                                                 matching for window title and
                                                 other string properties.
         libresize.so           Private          window resizing
         librotate.so           Private          the desktop cube can be rotated
         libscale.so            Private          an overview of all open windows
         libscreenshot.so       Private          take the screenshot
         libsvg.so              Private          allows plugin developers to
                                                 load svg files as textures.
                                                 Other image plugins can be
                                                 added so that extra image 
                                                 types will be seamlessly
                                                 supported.
         libswitcher.so         Private          active window can be chosen
                                                 with Alt-Tab
         libvideo.so            Private          Plugin that provide a
                                                 composited video interface for
                                                 efficient video playback.
         libwater.so            Private          ripples trailing mouse and 
                                                 rain effect
         libwobbly.so           Private          windows ripple while they move
         libzoom.so             Private          magnifies a part of screen
         lib/compiz/libccp.so   Private          compiz configuration plugin

                          All the subsequent plugins are 
                          located in lib/compiz
                          Part of SUNWcompiz-fusion-main

         libanimation.so        Private          plugin that provides
                                                 animations for opening, 
                                                 closing, minimising, shading,
                                                 and focusing windows
         libcolorfilter.so      Private          plugin to alter color
                                                 rendering. Used for a11y
         libexpo.so             Private          plugin to see all of 
                                                 your viewports at once
         libezoom.so            Private          Enhanced zoom plugin
         libimgjpeg.so          Private          Plugin to allow other 
                                                 plugin to render jpeg 
                                                 images
         libneg.so              Private          Improve contrast by 
                                                 inverting the colours 
                                                 in a particular window 
                                                 or across the whole screen.
         libopacify.so          Private          Cause overlapping windows 
                                                 to automatically fade out 
                                                 when your mouse pointer 
                                                 hovers over a partially 
                                                 obscured window.
         libput.so              Private          Move a window into the 
                                                 centre of the screen
         libresizeinfo.so       Private          Display size info while 
                                                 resizing
         libring.so             Private          application switcher which
                                                 present apps in a 3D ring
         libscaleaddon.so       Private          Addons to the scale plugin
         libshift.so            Private          Coverflow like application 
                                                 switcher
         libsnap.so             Private          make windows snap to edges
         libtext.so             Private          Allow compiz to render text
         libthumbnail.so        Private          Display small thumbnail of 
                                                 a window when your mouse 
                                                 cursor hovers over its 
                                                 button in the taskbar
         libvpswitch.so         Private          keybinding to switch
                                                 between workspaces
         libwall.so             Private          Arrange your viewports into 
                                                 a grid, which you can 
                                                 freely slide across
         libwinrules.so         Private          Window matching plugin used 
                                                 by other plugin (e.g. scale)
         libworkarounds.so      Private          provides workaround of 
                                                 legacy apps that do not 
                                                 respect ICCCM

                          All the subsequent plugins are 
                          located in lib/compiz
                          Part of SUNWcompiz-fusion-extra
                                                 plugins
         libaddhelper.so        Private          Darken none focused window
         libbench.so            Private          display the number of frame 
                                                 per second rendered
         libcrashhandler.so     Private          Display a debugging backtrace 
                                                 when Compiz crashes
         libcubecaps.so         Private          Decorate the top and bottom 
                                                 faces of the cube
         libcubereflex.so       Private          Add a reflective ground to 
                                                 the Compiz Cube plugin
         libextrawm.so          Private          add keyboard shortcuts to
                                                 windows actions.
         libfadedesktop.so      Private          Fade windows out to reveal 
                                                 the desktop
         libfirepaint.so        Private          Draw fire anywhere on your 
                                                 screen
         libgears.so            Private          Display glxgears inside the 
                                                 cube plugin
         libgroup.so            Private          Arrange windows into groups
                                                 to move and resize them
         libmblur.so            Private          Display a motion blur for 
                                                 different screen animations
         libreflex.so           Private          Give translucent windows a 
                                                 reflective look 
         libscalefilter.so      Private          add a search feature to the
                                                 scale plugin
         libshowdesktop.so      Private          Slide all windows toward 
                                                 the edges or corners of the 
                                                 screen to reveal the desktop
         libsplash.so           Private          Show an animated logo image 
                                                 when Compiz starts
         libtrailfocus.so       Private          Progressively dims window 
                                                 as they loose focus.
         libwidget.so           Private          Place windows of your choice
                                                 onto a widget layer that can 
                                                 be shown or hidden with a 
                                                 shortcut key
                          
                                                 
         

Reply via email to