The case has been approved as the timer has been expired with +1 (thanks, Sebastien).
Fuyuki Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI This information is Copyright 2009 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: iBus integration 1.2. Name of Document Author/Supplier: Author: Fuyuki Hasegawa 1.3 Date of This Document: 17 September, 2009 2. Project Summary 2.1. Project Description: This project is to integrate next generation Input Method framework, iBus and its various IMEs (Input Method Engines). Release binding is Micro/Patch and initial integration is OpenSolaris (Nevada). COMPONENT VERSION LICENSE LANGUAGES ------------------------------------------------------------------------ ibus: 1.1.0 LGPLv2.1 IM framework Available IMEs: ibus-anthy: 1.1.0 GPLv2 Japanese ibus-pinyin: 1.1.0 GPLv2 Simplified Chinese ibus-chewing: 1.1.0 GPLv2 Traditional Chinese ibus-hangul: 1.1.0 GPLv2 Korean ibus-m17n: 1.1.0 GPLv2 libm17n[4] Umbrella Engine ibus-table: 1.1.0 GPLv2 code-table Umbrella Engine Codetables for ibus-table ibus-table-array30 1.2.0 GPLv2 Traditional Chinese ibus-table-cangjie 1.1.0 GPLv2 Traditional Chinese ibus-table-erbi 1.1.0 GPLv2 Simplified Chinese ibus-table-quick 1.1.0 GPLv2 Simplified Chinese ibus-table-translit 1.1.0 GPLv2 Cyrillic ibus-table-wubi 1.1.0 GPLv2 Simplified Chinese ibus-table-xinhua 1.1.0 GPLv2 Simplified Chinese ibus-table-yong 1.1.0 GPLv2 Simplified Chinese ibus-table-zhengma 1.1.0 GPLv2 Simplified Chinese 2.2. Risks and Assumptions: iBus requires python 2.5+ in runtime, but currently opensolaris still uses python 2.4 as default. We need python2.6 to be the default in OpenSolaris. 4. Technical Description 4.1. Details: 4.1.1 iBus Overview: iBus (http://code.google.com/p/ibus) leverages many design ideas and principles in the CJK input method SPI specification conference, which many experienced IM developers (among iiimf, scim communities and us) joined and contributed. It's mainly developed by Peng Huang, who works for Redhat. And it's a very active community, much more active than iiimf and scim. ibus delivered 1.1.0 stable release on July 2009. It had been adopted as default IM framework on Fedora 11, and it will also be used as the default on next Ubuntu release Karmic (https://wiki.ubuntu.com/desktop- karmic-input-methods). It's already in Debian/Ubuntu package repo. Integrating ibus does not mean to obsolete iiimf or scim, but we would put them in maintenance state. +------------+ +--------+ +-----------+ | GtkApp | | X11App | | QtApp | +------------+ +--------+ +-----------+ |ibus-gtk-imm| |ximcp.so| |ibus-qt-imm| +----^-------+ +----^---+ +-----^-----+ | | | | +-------V---------+ | | |ibus-xim-frontend| | | +-------^---------+ | | | | /---V----------------V--------------V-------\ / ibus message bus \ \ daemon in C / \---^--------^-----------^------------^-----/ | | | | +--V--- +--V--+ +-----V-----+ +---V----+ |IME A| |IME B| | panel GUI | | config | +-----+ +-----+ +-----------+ +--------+ This 'bus-centric' architecture is introduced to resolve the following weakness in 'server-centric' architecture. * There's usually only 1 server per desktop session, which loads all IMEs as shared objects. So one buggy IME would crash the entire server. * IMEs are developed with either C or C++, it's difficult to add other language bindings. Adding a binding basically means plugging an interpreter into server's process space. * IMEs are not able to be loaded or unloaded on the fly. All components in above diagram uses DBus as IPC. And iBus largely uses python, such as panel GUI, config backend, or even IMEs. 4.1.2 Switching between iBus, SCIM and IIIMF iBus services are started by gnome-session(1). User could simply enable or disable the service via gnome-session-properties(1). With the help of startup scripts shipped with iiimf and scim, user could set GTK_IM_MODULE environment variable in $HOME/.profile to select iBus, IIIMF or SCIM. We plan to change default IM framework from iiimf to ibus in Solaris Next. 4.4. Out of Scope: KDE/Qt support through ibus-qt-imm is out of scope this time. Qt applications will be connected through XIM frontend. 4.5. Interfaces: INTERFACE NAME STABILITY NOTE ----------------------------------------------------------------------- /usr/bin/ibus-daemon Volatile message bus daemon /usr/bin/ibus-setup Volatile setup launcher The following are all Project Private. INTERFACE NAME STABILITY NOTE ----------------------------------------------------------------------- /usr/lib/ibus/ibus-x11 Private ibus XIM fontend/agend /usr/lib/ibus/ibus-gconf Private config backend by gconf-python /usr/lib/ibus/ibus-ui-gtk Private panel GUI by pygtk /usr/lib/libibus.so.0 Private ibus C binding SDK library /usr/include/ibus-1.0/* Private ibus C binding header files /usr/share/gtk-doc/html/ Private ibus developor documents ibus/* /usr/lib/python2.6/ Private ibus Python binding site-packages/ibus/* /usr/lib/gtk-2.0/2.10.0/ Private ibus gtk-im-module immodules/im-ibus*.so /usr/lib/{amd64,sparcv9}/ Private 64bits version of ibus gtk-2.0/2.10.0/immodules/ gtk-im-module im-ibus*.so /usr/share/ibus/setup/* Private ibus-setup modules /usr/share/ibus/ui/gtk/* Private panel GUI by pygtk /usr/share/ibus/ Private ibus components registry components/* like ibus-gconf, ibus-ui-gtk and IMEs /usr/lib/ibus/ Private IME launcher ibus-engine-<IME_NAME> /usr/lib/ibus/ Private IME setup launcher ibus-setup-<IME_NAME> /usr/share/ibus-<IME_NAME> Private IME modules *IME_NAME is among [anthy, chewing, hangul, m17n, pinyin, table] /usr/share/ibus-table/* Private ibus-table engine and code-tables -> It was suggested to move ibus-<IME_NAME> under /usr/share/ibus. The community will examine it in future ibus version (1.2~). 4.10. Packaging & Delivery: SUNWibus SUNWibus-root SUNWibus-devel SUNWibus-chewing SUNWibus-chewing-root SUNWibus-anthy SUNWibus-pinyin SUNWibus-hangul SUNWibus-m17n SUNWibus-table SUNWibus-table-devel SUNWibus-table-data-cangjie SUNWibus-table-data-erbi SUNWibus-table-data-quick SUNWibus-table-data-translit SUNWibus-table-data-wubi SUNWibus-table-data-xinhua SUNWibus-table-data-yong SUNWibus-table-data-zhengma SUNWibus-table-extraphrase SUNWibus-table-extraphrase-devel 4.12. Dependencies: We need python2.6 to be the default in OpenSolaris. -> It was suggested to make ibus independent on python default version. Project team has agreed it. 5. Reference Documents: 1). IIIMF project http://www.openi18n.org/iiimf PSARC 2005/525 IIIMF upgrade to revision 12 2). SCIM project http://www.scim-im.org PSARC 2008/418 Integrate SCIM to Solaris 3). Server-Centric vs. Bus-Centric Architectures http://docs.google.com/present/view?id=ahtgvwdt62tk_24ftz4nsft 4). Supported Input Methods in libm17n http://www.m17n.org/m17n-lib-en/support_input_sum.html PSARC 2008/624 Integrate libm17n and scim-m17n to Solaris 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: G11N 6.5. ARC review type: FastTrack 6.6. ARC Exposure: approved