On Mon, Aug 6, 2012 at 8:08 PM, Osamu Aoki <os...@debian.org> wrote: > Hi, > > On Mon, Aug 06, 2012 at 01:25:51AM +0800, Aron Xu wrote: >> Package: src:im-config >> Severity: wishlist >> Tags: patch > > I assume this is patch aiming for Jessie. Too late for wheezy. >
I'd like to try to ask release team to unblock it because starting input method reliably is so important, and it bites people around me a lot... >> This patch alters the way of launching input methods during Xsession >> startup, as stated in the patch description: >> >> Traditionally im-swich and im-config start input method > im-switch >> framework in parallel with Xsession startup, this leaves >> modern input method frameworks utilizing technologies >> like dbus in an embrassing place, i.e. it's difficult to >> obtain the dbus session address when the input method >> framework is not initialized after dbus. > > Very true. > >> This patch alters the way of starting by introducing >> im-launch, which is used to perform all necessary actions >> during X session startup in a serial manner, ensuring all > > "serial" ? Hmmm... I see what you mean via the script. > > As I see /etc/X11/Xsession.d, $STARTUP is setup by: > > 20x11-common_process-args: STARTUP="$1" > 50x11-common_determine-startup: STARTUP=x-session-manager > 75dbus_dbus-launch: STARTUP="$DBUSLAUNCH --exit-with-session $STARTUP" > 90consolekit: STARTUP="$CK_LAUNCH_SESSION $STARTUP" > 90gpg-agent: STARTUP="$GPGAGENT --daemon --sh > --write-env-file=$PID_FILE $STARTUP" > 90x11-common_ssh-agent: STARTUP="$SSHAGENT $SSHAGENTARGS ${TMPDIR:+env > TMPDIR=$TMPDIR} $STARTUP" > > and executed at the end as: > > 99x11-common_start:exec $STARTUP > > Now we have $SRARTUP as: > > /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager > > You are talking to put im-launch here :-) Very good idea. > Yeah, that's the idea, and the $SRARTUP is correct. >> needed facilities are ready before input method framework >> gets launched. > > Yes. It has to start parralel process and wait for dbus etc. > >> Implementation detail here is to change the $STARTUP variable when >> Xsession is sourcing files from /etc/X11/Xsession.d/, which is the way >> that used by DBus. > > Interesting. > >> By running in this way we can ensure that input >> methods are always started when the DBus session for the very X >> session is available, so input methods can obtain the address and >> connect to it reliably. It was almost a probability problems in the >> traditional way and if the input method framework starts too quick it >> will trigger DBus auto-launch, which leaves functions like IM Modules >> not working properly. > > I guess $STARTUP will be like ... > > /usr/bin/ssh-agent /usr/bin/im-launch -s -- /usr/bin/dbus-launch > --exit-with-session x-session-manager > > I see this is the right direction to chase. > Yes, it is. >> The patch has been tested thoroughly to make sure its free from >> undesired side effects, the only thing to be mentioned is that an >> im-launch process will be left running for every X session, which is >> necessarily what dbus-launch does. > > The only questions remaining are: > > * aestetic of the command syntax for im-launch: > this is neither ssh-agent/gpg-agent style nor dbus-launch style It's because the restrictions of getopt command, which is used to parse the options in im-launch. I will research for better syntax or implement the command in C, if you don't mind C. > * can we think --exit-with-session so daemon will be killed upon exit > of x-session-manager. (Or this is not needed for im-launch) > I'm still thinking about it, but I need to find a bit more time this weekend to work on remaining issues like the syntax and this --exit-with-session feature. -- Regards, Aron Xu -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org