=================================================== GNOME 2.26 ARC Proposal Date: Feb 18, 2009 Jedy Wang =================================================== =============== 1. Introduction =============== 1.1. Project/Component Working Name: GNOME 2.26 1.2. Name of Document Author/Supplier: Jeff Cai (jeff.cai@sun.com) Ke Wang (ke.wang@sun.com) Jedy Wang (jedy.wang@sun.com) 1.3. Email Aliases: 1.3.1. Responsible Manager: leo.binchy@sun.com paul.mei@sun.com harry.lu@sun.com helen.wang@sun.com 1.3.2. Responsible Engineer: jeff.cai@sun.com ke.wang@sun.com jedy.wang@sun.com brian.cameron@sun.com 1.3.3. Marketing Manager: Glynn.Foster@Sun.COM 1.3.4. Interest List: desktop-cteam@sun.com accessprogramoffice@sun.com trusted-jds@sun.com ================== 2. Project Summary ================== 2.1. Project Description This project continues on LSARC 2008/618 to provide a newer version of GNOME, as part of the Solaris Desktop, targeted for Nevada. More formally, this project will integrate GNOME 2.26 along with some other components that are not 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 115 (05/04/09), 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 contributed a great deal to the project, the core parts of the desktop may not be fully accessible. In the upstream community, A11Y is moving away from using CORBA and towards using D-Bus. This significant change does not affect the current release, but will be a risk moving forward in future releases. 2.2.3. Library consolidation The GNOME community is in the process of consolidating a number of external libraries into GTK+, and deprecating a number of libraries. This is known as Project Ridley within the GNOME community. The GTK+ community plans to release GTK+3.0 in the next year and there are plans that GNOME 2.30 will instead released as GNOME 3.0 and depend on GTK+3.0. Current plans are that GTK+ 3.0 will not be ABI compatible with GTK+ 2.x, so this change will require some significant work to integrate. The plan is that GNOME 3.0 will have a much smaller set of more stable Platform libraries. For example, the following libraries are planned for deprecation in the GNOME 3.0 time frame. o libgnome o libgnomeui o libgnomeprint22 o libgnomeprintui22 o libglade o libgnomecanvas o libegg o libeel o gtkglext In the short-term, changes to the GNOME stack relating to this work has caused complications. For example, many GNOME applications are depending more on modules like PolicyKit which are not a part of GNOME on Solaris. There is some risk and complication associated with keeping GNOME working on Solaris amid these changes. 2.2.4 The adoption of DeviceKit and DeviceKit Power From GNOME 2.26, gnome-power-manager now depends on DeviceKit and DeviceKit-Power and has abandoned the dependency of HAL. Because DeviceKit and DeviceKit-Power is not shipped in Solaris currently, we plan to continue to ship gnome-power-manager 2.24 in GNOME 2.26. Currently, only gnome-power-manager is impacted by the adoption of DeviceKit and DeviceKit-Power. The team which owns HAL is currently working to integrate DeviceKit modules into Solaris, so we will update to the new gnome-power-manager when this becomes available. ======================== 3. Technical Description ======================== This project will build on the base we built with "LSARC 2008/618 GNOME 2.24 Addendum", and provide a newer version of the GNOME desktop into Nevada. The GNOME Project's focus on users and usability continues in GNOME 2.26 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 - http://www.gnome.org/start/2.26/notes/ Where possible, we will coordinate with those components that are shipped as part of the official GNOME community release. Solaris Desktop may deviate from the GNOME community release, but only where there is an appropriate business justification or engineering impact. 3.1. Interface classification summary. 3.1.1. Changes of Committed interfaces Refer to committed-API-changes.txt [4] Minor changes are introduced in GNOME 2.26 for Committed Libraries changes --------------------------- o libatk-1.0 o libgdk-x11-2.0 o libglib-2.0 o libgtk-x11-2.0 o libnogmecanvas-2.0 o libpangoft-1.0 o libpangox-1.0 Committed CLIs changes ---------------------- None. Committed Configuration Files ----------------------------- None. Other changes that are included ------------------------------- None. Please refer to ./interface-table.txt [3] for details. 3.1.2. New Components Python 2.6 bindings for many desktop modules are shipped with this release. Other new components have been ARC-ed in separate ARC cases. Refer to Section 4 Other related ARC Cases. 3.1.3. Removed Components The following are old components to be removed from the desktop release. - gnome-volume-manager Unused component and functionality replaced by nautilus. - SSE2 support for some modules SSE2 support for flac, ekiga and libSDL is removed. Some users were having problems using the SSE2 binaries provided on Solaris because the binaries were integrated into the /usr/bin/pentium_pro+mmx and /usr/lib/pentium_pro+mmx directories and these directories do not guarantee SSE2 support. In other words, the SSE2 binaries and libraries were making use of the obsolete $ORIGIN/$ISALIST interface. To correct this it would be necessary to instead make use of the $ORIGIN/$HWCAP when installing SSE2 specific binaries and libraries. However, in our testing we found that the performance gain for flac, ekiga and libSDL was not significant enough to warrant reworking this. Instead we simply drop special SSE2 support for these modules. 3.1.4. OSS Integration This release coincides with OSSv4 (Open Sound System) integration. To best support OSSv4, a new GStreamer OSSv4 plugin will be included in the release. Thus, all GStreamer-based programs will use OSSv4 audio interfaces directly instead of using SunAudio interfaces. Also, the libcanberra module will use OSSv4 interfaces directly for playing system sounds instead of using SunAudio interfaces via GStreamer. The Sun Audio GStreamer plugin will continue to be distributed and supported so that users who want to use the older interfaces with GStreamer-based programs can do so. This is useful, for example, on Sun Ray which does not yet support the OSSv4 interfaces. Note that GStreamer tries to first use the OSSv4 plugin by default and if they are non-functional will fallback to the SunAudio plugin automatically. So Sun Ray users should not need to modify their configuration to get the right plugin they need. 3.1.5. cdda2wav GStreamer CDDA Integration The new /usr/lib/gstreamer-0.10/libgstcdda2wav.so plugin provides CDDA support by interfacing directly with the /usr/bin/cdda2wav application. This replaces the older ioctl-based CDDA plugin named /usr/lib/gstreamer-0.10/libgstcddasrc.so. Since cdda2wav uses SCSI interfaces for interacting with CD devices, it tends to provide better CD device support and better error correction when reading CDDA data. So GStreamer-based applications that read CDDA data, such as /usr/bin/sound-juicer, now use this more reliable cdda2wav-based plugin instead of the older ioctl-based plugin. 3.1.6 Brasero, rhythmbox, totem, and sound-juicer Note that brasero, rhythmbox, totem, and sound-juicer changes are being discussed in separate cases: - LSARC 2009/201 Update to Brasero 2.25.x - LSARC 2009/202 Update to GNOME 2.26 media applications 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 [6] that are installed to the system with this release of the Solaris Desktop. Changes to packaging are highlighted in the pkgcmp report. [2] ====================== 4. Reference Documents ====================== GNOME Public Websites: http://www.gnome.org/ http://developer.gnome.org/ FreeDesktop Website: http://www.freedesktop.org/ GNOME Documentation (including API documentation): http://library.gnome.org/ GNOME 2.26 Release Notes: http://www.gnome.org/start/2.26/notes/ http://library.gnome.org/misc/release-notes/2.26/ External Dependencies of GNOME 2.25.x http://live.gnome.org/TwoPointTwentyfive/ExternalDependencies Solaris Desktop Engineering Internal Website: http://desktop.ireland/ Other Related ARC Cases: LSARC 2009/202 Update to GNOME 2.26 media applications LSARC 2009/201 Update to Brasero 2.25.x LSARC 2009/199 Coherence PSARC 2009/176 pyOpenSSL 2.6 PSARC 2009/115 CPU Idle Notification PSARC 2009/112 sys-suspend(1) LSARC 2009/098 Gnutls update to 2.6 PSARC 2009/097 Move libusb from /usr/sfw to /usr PSARC 2009/089 EOF Announcement for Various SPARC Graphics LSARC 2009/088 libproxy LSARC 2009/085 Thunderbird 3.0.x LSARC 2009/066 OpenGL 3.0 for the NVIDIA graphics driver PSARC 2009/043 Python 2.6 and 3.0 PSARC 2009/041 Virtual Keyboard Input Method PSARC 2009/023 SQLite3 update to 3.6.9 PSARC 2009/021 Xorg server 1.5 PSARC 2009/016 Laptop Hotkey Support LSARC 2008/782 WebKit PSARC 2008/777 cpupm keyword mode extensions LSARC 2008/776 GNU Developer Collection LSARC 2008/763 EOF of sys-suspend PSARC 2008/757 SPARC support for AST graphics PSARC 2008/742 SDcard Framework Suspend & Resume PSARC 2008/736 NWAM Picea Addenda LSARC 2008/735 Firefox 3.1 for Solaris Nevada PSARC 2008/732 DRM IOCTL Addition for i915 Driver PSARC 2008/724 Print Manager for CUPS LSARC 2008/722 simplejson LSARC 2008/721 Gftp for OpenSolaris LSARC 2008/720 Empathy for OpenSolaris LSARC 2008/719 diveintopython 5.4 PSARC 2008/714 Dante: A Socks server and client implementation LSARC 2008/713 elisa, elisa-plugins-good, elisa-plugins-bad LSARC 2008/709 codeina LSARC 2008/708 Vinagre for OpenSolaris LSARC 2008/707 gtk-vnc for OpenSolaris PSARC 2008/705 pyOpenSSL LSARC 2008/704 flash player plugin upgrade in solaris LSARC 2008/703 Gegl for OpenSolaris LSARC 2008/702 Babl for OpenSolaris LSARC 2008/701 dia - Diagram Editor LSARC 2008/700 lynx 2.8.6 LSARC 2008/699 Hamster for OpenSolaris LSARC 2008/698 libvisual and plugins for opensolaris LSARC 2008/692 EOL of GNOME-keyring-manager LSARC 2008/677 Libical for OpenSolaris PSARC 2008/676 Python YAML PSARC 2008/670 Twisted update to 8.1 and adding Twisted-Web2 LSARC 2008/669 EOF of gnome-sys-suspend LSARC 2008/668 pigment and pigment-python PSARC 2008/667 ast SPARC graphics drivers PSARC 2008/666 EOF of zulu, gfb and gfxp graphics support LSARC 2008/664 Seahorse for OpenSolaris PSARC 2008/663 CPU Deep Idle Keyword PSARC 2008/662 GDM system user home directory LSARC 2008/658 CSSutils LSARC 2008/657 pthread-stubs LSARC 2008/650 Ekiga 3.0 LSARC 2008/637 pixman PSARC 2008/624 Integrate libm17n and scim-m17n to Solaris LSARC 2008/620 NetBeans DTrace GUI Plug-in PSARC 2008/318 OSS Audio For Solaris References: [1] ./additional.materials/modulediffs.txt [2] http://src.opensolaris.org/source/xref/jds/arc-documents/trunk/ gnome226/pkgcmpd [3] ./interface-table.txt [4] ./committed-API-changes.txt [5] http://src.opensolaris.org/source/xref/jds/arc-documents/trunk/ gnome226/additional-materials/manpages.tar.gz [6] http://src.opensolaris.org/source/xref/jds/arc-documents/trunk/ gnome226/additional-materials/gtk-doc.tar.gz ========================= 5. Resources and Schedule ========================= 5.1. Projected Availability This project will be included in Solaris Nevada and OpenSolaris. 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.26 are available here: /net/mhw.prc.sun.com/builds/vermillion/devel/ 6.2. Prototype Cost The Solaris Desktop 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.