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:
GNOME 2.22
1.2. Name of Document Author/Supplier:
Author: Jedy Wang
1.3 Date of This Document:
21 March, 2008
4. Technical Description
===================================================
GNOME 2.22 ARC Proposal
Date: Jan 31, 2008 Jerry Yu <jijun.yu at sun.com>
===================================================
===============
1. Introduction
===============
1.1. Project/Component Working Name:
GNOME 2.22
1.2. Name of Document Author/Supplier:
Jerry Yu (jijun.yu at sun.com)
Jedy Wang (jedy.wang at sun.com)
Irene Huang (irene.huang at sun.com)
Brian Cameron (brian.cameron at sun.com)
Li Yuan (li.yuan at sun.com)
1.3. Email Aliases:
1.3.1. Responsible Manager: paul.mei at sun.com
leo.binchy at sun.com
1.3.2. Responsible Engineer: jijun.yu at sun.com
jedy.wang at sun.com
irene.huang at sun.com
brian.cameron at sun.com
li.yuan at sun.com
1.3.3. Marketing Manager: Dan.Roberts at Sun.COM
1.3.4. Interest List: desktop-cteam at sun.com
accessprogramoffice at sun.com
trusted-jds at sun.com
gnome222-arc at sun.com
==================
2. Project Summary
==================
2.1. Project Description
This project continues on LSARC 2007/520 to provide a newer version of
GNOME, as part of the Java Desktop System (JDS), targeted for Nevada.
More formally, this project will integrate GNOME 2.22 along with some
other components that aren't currently part of the official community
release.
2.2. Risks and Assumptions
2.2.1. Schedule
This project is targeted to be bundled with Nevada, with an intended
integration date of Nevada build 88 (04/07/08), of the current Solaris
OS release schedule. This is for a minor release only.
2.2.2. Accessibility
Accessibility is still a key concern in the GNOME desktop.
Although the community has realized the importance of A11Y, and has
contributed a great deal to the project, the core parts of the desktop
may not be fully accessible. The project team is adding resources
according to need and associating time to market schedules.
2.2.3. GPL Licensed Libraries
The following issues are associated with GPL libraries (please find the
proposed rule about GPL license libraries here:
http://webhome.sfbay/OFR/GPL-LGPLArchRules.html)
1. No LGPL'd libraries should be depending on GPL'd libraries.
2. GPL'd libraries should not be shipped in standard path.
3. Change "GPLv2 or later" to "GPLv2".
About the first issue,
This issue occurs when a non-GPL (e.g. LGPL) library links against a
GPL library. The investigation shows that libgtop is still shipped and
libgtop is not depended on by LGPL'd libraries (dependencies include
/usr/bin/baobab and /usr/bin/gnome-system-monitor).
About the second issue,
The GPL rules are still being discussed. We will make sure that new
projects with GPL'd libraries are not depended by non-GPL'd libraries.
About the third issue,
This is a legal issue, and not an ARC issue. We include this
information here only for reference.
========================
3. Technical Description
========================
This project will build on the base we built with "LSARC 2007/520
GNOME 2.20", and provide a newer version of the GNOME desktop into
Nevada.
The GNOME Project's focus on users and usability continues in GNOME 2.22
with its hundreds of bug fixes and user-requested improvements. This
project provides many usability improvements, performance tunings,
improved configuration, and updated branding. More details on specific
improvements can be found on the GNOME community release notes [not
yet released]
- http://www.gnome.org/start/2.22/notes/
Currently, the GNOME 2.22 draft release note is available at:
- http://live.gnome.org/TwoPointTwentyone/ReleaseNotes
Where possible, we will coordinate with those components that are
shipped as part of the official GNOME community release. JDS may
deviate from the GNOME community release, but only where there is an
appropriate business justification or engineering impact.
3.1. Interface classification summary.
In LSARC 2005/734, cairo was defined to be "Unstable". However,
it is listed as Volatile in the cairo and gnome-interface manpages.
Starting with GNOME 2.22, the JDS team would like to more clearly
define cairo interfaces as being Uncommitted.
Refer to the LSARC 2005/734 mail log, message dated Tue, 07 March, 2006
with the Subject "New LSARC Materials Submitted LSARC 2005/734" for
more information about when this interface was defined to be
"Unstable".
3.1.1. Changes of Committed interfaces
Refer to manpages [5] and gnome-interfaces [6].
Minor changes are introduced in GNOME 2.22 for
Committed Libraries changes
---------------------------
o libglib-2.0
o libpango-1.0
Committed CLIs changes
----------------------
None
Committed Configuration Files
-----------------------------
Starting with GDM 2.22 the JDS team would like to change the
interface level of the GDM configuration files from "Committed"
to "Volatile". GDM is currently being rewritten and will unlikely
use the same configuration mechanisms. Since these interfaces have
only been declared as Committed in Nevada, since GDM is not yet the
default login program, and since the SXDE/SXCE customer base
understands that they are using bleeding edge software and things will
change, we feel that the impact will be manageable. Therefore, it is
our understanding that the EOF/EOL process does not apply (i.e. no
1 year time, no notice needed).
Other changes that are included
-------------------------------
None
Please refer to ./committed-API-changes.txt [4] for details.
3.1.2. New Components
The following are new proposed components to be added to the desktop
release.
---------------
mousetweaks
---------------
MouseTweaks is a collection of enhancements to the handling of mouse
input in Gnome Desktop environment. It improves general usability and
accessibility of a desktop product. It provides more detailed
configuration of mouse cursor behavior and a range of accessibility
enhancements as well a power-user features, including mouse gestures.
MouseTweaks could not be a replacement for current GOK (Gnome On-screen
Keyboard). It can be used for motor difficulty users to control mouse
cursor, with mouse or Head/Eye tracker, free of click and press&hold
action. It works in dwell mode to implement mouse actions (single
click, double click and drag&drop). It does not support switch devices.
---------------
GIO/GVFS
---------------
GIO is the new I/O library for gnome, scheduled to replace
gnome-vfs. Its functionality is quite close to the functionality
provided by Gnome-VFS. There are a few differences though. The first
one is that GIO does not depend on third party libraries, so its use
only implies the application to be linked against glib. The second one
is that the most complex file system handlers such as ftp or webdav
have been moved to a separate application called GVFS. GVFS implements
a userspace virtual filesystem. The initial communication between GIO
and GVFS is made via D-Bus. It is shipped with glib as a separate
library called "libgio-2.0". Libgio contains abstractions for file I/O,
file types and things like that. It also contains default
implementations for local file I/O. Gvfs uses daemons to handle each
mount and D-Bus to talk to these daemons.
GIO and GVFS are going to be marked as Volatile for their first
releases. Even though GIO is included within the glib bundle, and
therefore its API is supposed to be stable, there is still some
development and bug fixing going on. In this case, there are odds
the community end up being forced to change the API. And our plan is
to make them "Committed" in the GNOME 2.24 cycle, if the community
demonstrates these remain stable.
GVFS includes a FTP, SFTP, Trash, Computer and Burn modules so
far. However, the upcoming releases will include more modules that
currently are under development such as WebDAV and ObexFTP.
GVFS also relies on some trivial libhal functions that debuted in HAL
0.5.10 which will be introduced in PSARC/2008/199.
GIO and GVFS will deprecate Gnome-VFS eventually, although there
are still quite a few applications that depend on Gnome-VFS.
Hence, we will continue depending on Gnome-VFS until all the
applications are property ported to the new stack. And we plan to make
gnome-vfs "Deprecated" in the 2.22 cycle.
---------------
python-numpy
---------------
NumPy (Numeric Python) is the fundamental package providing scientific
computing with Python. It contains:
* a powerful N-dimensional array object
* sophisticated (broadcasting) functions
* basic linear algebra functions
* basic Fourier transforms
* sophisticated random number capabilities
* tools for integrating Fortran code.
* tools for integrating C/C++ code
Besides its obvious scientific uses, NumPy can also be used as an
efficient multi-dimensional container of generic data. Arbitrary
data-types can be defined. This allows NumPy to seamlessly and speedily
integrate with a wide-variety of databases. NumPy derives from the old
Numeric code base and can be used as a replacement for Numeric. It also
adds the features introduced by Numarray and can also be used to
replace Numarray.
The main reason for adding NumPy is because it is an optional
dependancy of PyGtk. With NumPy available, the following PyGtk
functions are enabled:
When PyGtk is built with NumPy support, then the following PyGtk
functions become available for use: get_pixels_array,
pixbuf_new_from_array and the pixels.array attribute. Refer here:
http://www.pygtk.org/pygtk2reference/class-gdkpixbuf.html
So, this improves the ability for Python programs to work with programs
that use these PyGtk pixbuf functions. I did a search of programs that
we ship that use these functions. At the moment, only the gnome-sudoku
game is using these PyGtk functions.
-------------------
xdg-user-dirs-gtk
-------------------
Provides GNOME integration for the xdg-user-dirs Freedesktop project.
The integration features for GNOME are:
- Automatically runs in a GNOME session startup.
- Prompt user for a decision on updating of directory names.
- Allow user to disable prompting for decision on changes.
3.1.3 Modules previously included in other components
-------------
libgweather
-------------
libgweather is a library to access weather information from online
services for numerous locations.
libgweather is not supported in the devel platform, which means OS
vendors won't guarantee the API/ABI long-term, but authors of open
source apps should feel free to use libgweather as users can always
recompile against a new version.
To use libgweather in your code, you need to define the
GWEATHER_I_KNOW_THIS_IS_UNSTABLE preprocessor symbol, e.g. by adding
-DGWEATHER_I_KNOW_THIS_IS_UNSTABLE to your CFLAGS.
---------------------
gnome-settings-daemon
---------------------
gnome-settings-daemon has been split from gnome-control-center which
was previously a GNOME module.
---------------------
totem-pl-parser
---------------------
totem-pl-parse has been split from totem which was already a GNOME
module. This module provides a simple GObject-based library to
parse and save a variety of playlist formats. It was originally
written for use in totem, but is now used by other modules, such
as rhythmbox.
-------------
libggz
-------------
libggz used to be bundled directly with gnome-games (it was added
to gnome-games in GNOME 2.18), but is now a separate module.
libggz is the GGZ base library, used by the GGZ Gaming Zone server
(ggzd), the ggzcore library and other components.
libggz provides commonly used functions and low-level communications
between client modules and the GGZ server. GGZ interfaces can be
used by games to support network gaming features, so that people can
play games with other people over the internet.
---------------
ggz-client-libs
---------------
ggz-client-libs used to be bundled directly with gnome-games (it was
added to gnome-games in GNOME 2.18), but is now a separate module.
Contains two libraries for the C programming language: ggzcore for GGZ
core clients, and ggzmod for game clients. Also, the tools ggz-config,
ggz-wrapper and ggzwrap are included. This is currently used by
gnibbles, iagno, and gnect - three games shipped with the gnome-games
module.
3.1.4. Clarification of GNOME Python interfaces
LSARC 2005/506 Support Libraries for the Orca Screen Reader/Magnifier
declared PyGtk as "Evolving", PyORBit, and gnome-python as "Unstable".
The JDS team would like to clarify that these interfaces have the
following interface stability levels moving forward.
PyGtk = Uncommitted
PyORBit = Volatile
gnome-python = Volatile
Note gnome-python includes bindings for GConf, libgnome, libgnomeui,
libgnomecanvas, libgnomeprint, gnome-vfs, libbonobo, and libbonoboui
This is appropriate since all of the above interfaces are Volatile
except for GTK+, which is Committed.
3.1.5. Removed Components
None.
3.2. Interface tables
Interface tables can be found in [3].
Refer to the modulediffs [1] report for a list of modules which
have been updated to a new version.
Please refer to the gtk-docs [8] that are installed to the system
with this release of the JDS desktop.
Changes to packaging are highlighted in the pkgcmp report. [2] The
case materials also includes the list of related pkgmap files for
all installed packages. [8]
3.3 I18N Impact
It was noticed by the JDS team that many recent JDS ARC Fasttracks
were inappropriately specifying "None" or "N/A" in relation to I18N
readyness questions. The JDS ARC team has spent the past several
weeks working with the G11N team to ensure that all I18N issues are
being properly addressed in the JDS stack. No serious issues were
discovered in this review, but it became clear that the JDS engineers
need to have better communication with the G11N team.
For example, we discovered that the G11N was reviewing the C-team
mail list to determine which new modules were being integrated,
and then they would start working to address any G11N issues.
To improve our process, we are now making sure to notify the G11N
team more early, when we are preparing ARC materials. This gives
the G11N team more time to investigate, do their pre-evaluations,
and address any issues. Furthermore, we can include any input from
the G11N pre-evaluations on our future ARC forms.
======================
4. Reference Documents
======================
GNOME Public Websites:
http://www.gnome.org/
http://developer.gnome.org/
http://www.freedesktop.org/
GNOME 2.22 Release Notes:
http://www.gnome.org/start/2.22/notes/
http://live.gnome.org/TwoPointTwentyone/ReleaseNotes
External Dependencies of GNOME 2.21.x
http://live.gnome.org/TwoPointTwentyone/ExternalDependencies
JDS Engineering Internal Website:
http://jds.ireland/
GGZ (Gaming Zone), home of libggz and ggz-client-libs
http://www.ggzgamingzone.org/
Mousetweaks Home Page:
https://launchpad.net/mousetweaks
Python-numpy Home Page:
http://numpy.scipy.org/
Xdg-user-dirs-gtk Relevant Link:
http://www.freedesktop.org/wiki/Software/xdg-user-dirs
Other Related ARC Cases:
PSARC 2008/199 libhal support for GNOME 2.22
PSARC 2008/164 Move TCP Wrappers from /usr/sfw to /usr
LSARC 2008/158 Firefox 3 for Solaris Nevada
LSARC 2008/132 id3lib
PSARC 2008/122 Python zope-interfaces
PSARC 2008/121 Python Twisted
PSARC 2008/120 SQLite3.x
PSARC 2008/117 PySQLite
LSARC 2008/116 XDG User Dirs
LSARC 2008/115 Compiz: Compositing window manager
PSARC 2008/105 gst-python
LSARC 2008/104 XDG Utils
PSARC 2008/103 Python XDG Module
PSARC 2008/102 Python Imaging Library (PIL)
PSARC 2008/101 Gnome Python Extras
LSARC 2008/088 libcddb
PSARC 2008/084 Python Setuptools
LSARC 2008/083 rdesktop
PSARC 2008/081 MySQL Python
PSARC 2008/078 postrun - delayed execution environment for
procedural package scripts
LSARC 2008/074 Gtkmm, Glibmm, Cairomm and libsigc++ for Indiana
LSARC 2008/068 Libgc for Indiana
LSARC 2008/067 Gmime for Indiana
LSARC 2008/061 Indiana fast track check list
LSARC 2008/059 SQLite
LSARC 2008/058 dcraw
PSARC 2008/043 Phase 1 of OSS for Solaris
PSARC 2008/034 Defining Workstation Owner Infrastructure
PSARC 2008/033 Xsun removal
PSARC 2008/032 libxml2 upgrade to 2.6.31
PSARC 2008/021 HAL Power Management Support
LSARC 2007/702 GNOME Power Manager
PSARC 2007/685 3-Dimensional driver for ATI Redeon graphics cards
PSARC 2007/679 CPUFreq HAL
LSARC 2007/657 StarOffice 8 Update 8 bundled into SXDE
PSARC 2007/652 Move GNU liby from /usr/sfw to /usr/gnu
LSARC 2007/648 Removal of CDE
PSARC 2007/635 GNU gettext 0.16.1
PSARC 2007/634 More compatibility with GNU gettext in gettext(3c)
LSARC 2007/625 vncviewer
PSARC 2007/557 GNU libtool 1.5.22
WSARC 2007/548 NSPR/NSS/JSS Reclassification
PSARC 2007/545 Xvnc
LSARC 2007/531 Removal of dtcm
LSARC 2007/299 Berkeley Database 4.5.20
LSARC 2007/520 Gnome 2.20
References:
[1] ./modulediffs.txt
[2] ./pkgcmp/
[3] ./interface-table.txt
[4] ./committed-API-changes.txt
[5] ./manpages
[6] ./manpages/gnome-interfaces.5
[7] ./gtk-docs
[8] ./pkgmaps
=========================
5. Resources and Schedule
=========================
5.1. Projected Availability
This project will be included in Solaris Nevada.
5.2. Cost of Effort
Refer to the PLC documentation which includes P&L for the project.
5.3. Cost of Capital Resources
Refer to the PLC documentation which includes P&L for the project.
5.4. ARC review type: [Standard/FastTrack/SelfReview]
FastTrack
=========================
6. Prototype Availability
=========================
6.1. Prototype Availability
Development versions of GNOME 2.22 are available here:
http://dlc.sun.com/osol/jds/downloads/current/
6.2. Prototype Cost
The JDS team works to provide the latest desktop stack in development
so that people internally can have access to the latest code for testing
and early access to new features. These builds are also used by the
desktop team for doing ongoing development and testing. Therefore, the
cost of providing the these "prototype" builds are a part of the cost
the development team requires to provide the next release of GNOME into
Solaris. Since much of the desktop stack is developed externally, the
cost of development is shared by many organizations, including Sun.
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