=================================================== GNOME 2.26 ARC Proposal Update Date: Apr 29th, 2009 Jeff Cai =================================================== =============== 1. Introduction =============== 1.1. Project/Component Working Name: GNOME 2.26 Addendum 1.2. Name of Document Author/Supplier: Jeff Cai (jeff.cai@sun.com) Jedy Wang (jedy.wang@sun.com) Ke Wang (ke.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 jedy.wang@sun.com ke.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 2009/203 to reflect the latest changes in the GNOME desktop which took place after LSARC 2009/203 was filed. 2.2. Risks and Assumptions Please refer to LSARC 2009/203. ======================== 3. Technical Description ======================== 3.1. Split the package SUNWgnome-base-libs into small packages The purpose of splitting the package SUNWgnome-base-libs is to minimize the dependencies among packages. Split SUNWgnome-base-libs into 8 packages and keep SUNWgnome-base-libs as empty packages, which depend on all split packages for the dependency compatibility. SUNWglib2/-devel SUNWcairo/-devel SUNWpango/-devel/-root SUNWlibatk/-devel SUNWgnome-base-libs/-root/-devel ------> SUNWgtk2/-devel/-root SUNWlibglade/-devel SUNWlibart/-devel SUNWlibgnomecanvas/-devel 3.2. New Components SUNWdesktop-cache 3.2.1 Description SUNWdesktop-cache is a colleciton of 6 SMF services responsible for updating the various desktop related caches, thus ensuring the desktop functions as expected. The services included in this package were designed to replace all cache update functionality catered for by the SUNWpostrun service. This functionality was contained in the post install section of SVR4 packages on Solaris. The SUNWpostrun service and package are not be obsoleted as they are still used in some places, namely Staroffice. The IPS (Image Packaging System) does not cater for post install functionality, SUNWdesktop-cache was designed to replace this functionality on OpenSolaris. Integrating this functionality into Solaris and removing SUNWpostrun functionality from all OSD packages will result in having just one cache update facility on both Solaris and OpenSolaris and increase maintainability. Each of these services provides two methods, "start" and "refresh". The "start" method is used for normal service startup at boot time or a restart. The "refresh" method initiates a complete refresh of the specific cache. The 6 cache update services are : 1. Desktop Mime Cache. svc:/application/desktop-cache/desktop-mime-cache:default Ensure /usr/share/applications/mimeinfo.cache contains current MIME information for all .desktop application files installed, thus ensuring correct applications get launched for specific file types. If new .desktop files are installed to /usr/share/applications or existing ones are updated, mimeinfo.cache will be updated to reflect possible changes. /usr/bin/update-desktop-database is used to update the MIME cache. 2. GConf Cache. svc:/application/desktop-cache/gconf-cache:default Ensure /etc/gconf/gconf.xml.defaults/%gconf-tree.xml GConf schema cache is kept up to date for all GConf schema files installed to /etc/gconf/schemas. This ensures valid GConf defaults are used for GConf keys that a user has not specifically set. If new schema files are installed to /etc/gconf/schemas or existing ones have been updated, the GConf cache should be updated to reflect any possible changes. /usr/bin/gconftool-2 is used to update the cache. 3. Icon Cache. svc:/application/desktop-cache/icon-cache:default Ensure /usr/share/icons/*/icon-theme.cache is kept current for all icon themes that have a index.theme file installed. This ensure correct icons are displayed for the current theme chosen by the user. If a new icon theme as been installed under /usr/share/icons or icons have been updated in an existing theme, the icon-theme.cache files requires updating. /usr/bin/gtk-update-icon-cache is used to update the cache files. 4. Input Method Cache svc:/application/desktop-cache/input-method-cache:default The location of the input method cache is dependent on architecture as follows : amd64 : /etc/amd64/gtk-2.0/gtk.immodules sparcv9 : /etc/sparcv9/gtk-2.0/gtk.immodules 32-bit : /etc/gtk-2.0/gtk.immodules The output from "/bin/isainfo -k" is used to determine correct location of the correct input method cache. Ensure this cache is updated for all shared libraries installed to /usr/lib/$ARCH/gtk-2.0/*/immodules. This facilitates the input of internationalized character sets. If any new shared libraries are installed to /usr/lib/$ARCH/gtk-2.0/*/immodules or updated the gtk.immodules cache requires updating. /usr/bin/$ARCH/gtk-query-immodules-2.0 is used to update the cache. 5. MIME Types Cache svc:/application/desktop-cache/mime-types-cache:default Ensure /usr/share/mime/mime.cache is maintained up to date for any new packages installed to /usr/share/mime/packages. This keeps the known list of MIME types current, and facilitates the correct determination of file MIME types. Installing new packages to /usr/share/mime/packages or updating existing packages will require updating of mime.cache. /usr/bin/update-mime-database is used to update this cache. 6. Pixbuf Loaders Installer. svc:/application/desktop-cache/pixbuf-loaders-installer:default Similar to input method cache in that this cache is architecture dependent. The output from "/bin/isainfo -k" is used to determine architecture and cache file location can be : amd64 : /etc/amd64/gtk-2.0/gdk-pixbuf.loaders sparcv9 : /etc/sparcv9/gtk-2.0/gdk-pixbuf.loaders 32-bit : /etc/gtk-2.0/gdk-pixbuf.loaders Ensure this cache is updated for all shared libraries installed to /usr/lib/$ARCH/gtk-2.0/*/loaders. This cache defines the default set of pixbuf loaders used by GTK+. If not present GTK+ will fail to load pixbuf images. Installing new shared libraries or updating existing ones under /usr/lib/$ARCH/gtk-2.0/*/loaders will require updating of this cache. /usr/bin/$ARCH/gdk-pixbuf-query-loaders is used to update this cache. 3.2.2 Interfaces for SUNWdesktop-cache Exported Interfaces Interfaces Stability Comments -------------------------------------------- ----------- ----------------- /var/svc/manifest/application/desktop-cache/desktop-mime-cache.xml Volatile SMF Manifest /var/svc/manifest/application/desktop-cache/gconf-cache.xml Volatile SMF Manifest /var/svc/manifest/application/desktop-cache/icon-cache.xml Volatile SMF Manifest /var/svc/manifest/application/desktop-cache/input-method-cache.xml Volatile SMF Manifest /var/svc/manifest/application/desktop-cache/mime-types-cache.xml Volatile SMF Manifest /var/svc/manifest/application/desktop-cache/pixbuf-loaders-installer.xml Volatile SMF Manifest /lib/svc/method/desktop-mime-cache Uncommitted SMF Method Script /lib/svc/method/gconf-cache Uncommitted SMF Method Script /lib/svc/method/icon-cache Uncommitted SMF Method Script /lib/svc/method/input-method-cache Uncommitted SMF Method Script /lib/svc/method/mime-types-cache Uncommitted SMF Method Script /lib/svc/method/pixbuf-loaders-installer Uncommitted SMF Method Script svc:/application/desktop-cache/desktop-mime-cache:default Uncommitted SMF Name svc:/application/desktop-cache/gconf-cache:default Uncommitted SMF Name svc:/application/desktop-cache/icon-cache:default Uncommitted SMF Name svc:/application/desktop-cache/input-method-cache:default Uncommitted SMF Name svc:/application/desktop-cache/mime-types-cache:default Uncommitted SMF Name svc:/application/desktop-cache/pixbuf-loaders-installer:default Uncommitted SMF Name Imported Interfaces Interfaces Stability Package/Comment ------------------------------------------ ----------- ----------------- /usr/bin/update-desktop-database Committed SUNWdesktop-prefs /usr/bin/gtk-update-icon-cache Committed SUNWgnome-base-libs /usr/bin/gconftool-2 Volatile SUNWgnome-config /usr/bin/$ARCH/gtk-query-immodules-2.0 Committed SUNWgnome-base-libs /usr/bin/update-mime-database Committed SUNWgnome-vfs /usr/bin/$ARCH/gdk-pixbuf-query-loaders Committed SUNWgnome-base-libs /bin/isainfo Committed SUNWcsu /usr/share/applications/mimeinfo.cache Committed Desktop MIME cache /usr/share/applications Committed Default .desktop install location /etc/gconf/gconf.xml.defaults Committed GConf schema cache /etc/gconf/schemas Committed GConf Schemas instlal location /usr/share/icons/*/icon-theme.cache Committed Icon theme cache /etc/amd64/gtk-2.0/gtk.immodules Committed AMD 64 bit input method cache /etc/sparcv9/gtk-2.0/gtk.immodules Committed 64 Bit Sparc input method cache /etc/gtk-2.0/gtk.immodules Committed 32 bit input method cache /usr/share/mime/mime.cache Committed MIME cache /etc/amd64/gtk-2.0/gdk-pixbuf.loaders Committed AMD 64 bit pixbuf loader cache /etc/sparcv9/gtk-2.0/gdk-pixbuf.loaders Committed 64 but Sparc pixbuf loader cache /etc/gtk-2.0/gdk-pixbuf.loaders Committed 32 bit pixbuf loader cache 3.2.3. References update-desktop-database(1), gtk-update-icon-cache(1), gconftool-2(1), gtk-query-immodules-2.0(1), update-mime-database(1), gdk-pixbuf-query-loaders(1) Related ARC Case : PSARC 2008/078 postrun 3.3. Interfaces for other modules 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 OSD desktop. Changes to packaging are highlighted in the pkgcmp report. [2] ====================== 4. Reference Documents ====================== References: [1] ./modulediffs.txt [2] http://src.opensolaris.org/source/xref/jds/arc-documents/trunk/ gnome226a/pkgcmpd [3] ./interface-table.txt [4] ./committed-API-changes.txt [5] http://src.opensolaris.org/source/xref/jds/arc-documents/trunk/ gnome226a/additional-materials/manpages.tar.gz [6] http://src.opensolaris.org/source/xref/jds/arc-documents/trunk/ gnome226a/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