Hi Brian/Takao, All,
Thanks for your all information!
According to your feedback information, and after I did some
investigation. I think I got solution plan.
For Opensolaris could load locale specific X fonts path. I'd to modify
/etc/X11/xinit/xinitrc.d/0110.fonts scrcipt.
so that X fonts paths could be add by xset when desktop startup except
failsafe terminal login.
What's current issue? (What need I modified?)
I tested and read 0110.fonts, find that X fonts path could not be set on
Opensolaris.
It will be set as default. "/usr/X11/bin/xset fp default" would be last
command be run in 0110.fonts.
The root cause is in Opensolaris there are not X fonts path infor file
OWfontpath.(Add no locale X fonts files either.) such as,
/usr/X11/lib/locale/${Lang}/OWfontpath
or
/usr/openwin/lib/locale/${Lang}/OWfontpath
or
/usr/dt/config/xfonts
or
/etc/dt/config/xfonts
....
Solution 1:
Add /usr/X11/lib/locale/${Lang} to Opensolaris, this could be a symbolic
link from /usr/openwin/lib/locale/${Lang}
This is easy way, but they need IPS package filter convert from Nevada
package.
It is not convenience, and because /usr/openwin/ is a symbolic from
/usr/X11 in Opensolaris, this maybe mess.
Solution 2:
Create a directory to include X fonts. for example,
/etc/X11/fontpath.d/locale/${Lang}, then add check this directory
action into 0110.fonts.
Which options do you prefer? I'd like to hear your all feedback. Your
feedback/comments will be helpful for me!
Thank you very much!
Btw, Alan, if I create new directories, it means change the interface.
Do I need a onepager to record it ?
Thanks!
Regards,
William
Brian Cameron ??:
>
> Xue:
>
>>> This is probably not a problem. The purpose of the failsafe session is
>>> that it avoids running as much setup as possible. Users typically use
>>> the failsafe session if they are having troubles logging in normally,
>>> typically because there is a problem in the session startup. By
>>> avoiding sourcing normal configuration files (such as $HOME/.profile)
>>> this helps to ensure that any errors in the startup scripts do not
>>> cause the login to fail, allowing the user to try and fix the problem.
>>> The failsafe session is not intended to be pretty.
>> From your explain, it seems that failsafe do not load more X fonts at
>> all. It's reasonable.
>> So, xinitrc.d/0110.fonts would be a property place to add fonts path,
>> which Takao-san already
>> done. I just need to do some modify. :-)
>
> Sounds reasonable to me. Though it would be handy if you could share
> a proposed patch for review that shows the changes you intend to make.
>
>>> I don't think we should duplicate code. Note that all scripts in the
>>> /etc/X11/xinit/xinitrc.d directory get sourced. They are run in numeric
>>> order, so a script with the name 0100.foo gets run before 0110.fonts.
>>> Couldn't you just add a new script to this directory rather than
>>> changing the existing scripts?
>>
>> Oh, sorry, I guess my description is not clear. I do not want to add
>> new script beside 0110.fonts.
>> I mean replace the 0110.fonts script with similar function. But it
>> may be called by different place,
>> eg. called by Xsession or Init/Default.
>
> Yes, that seems reasonable also. Modifying the script so it is more
> generally useful and can be called from other purposes seems a good
> idea.
>
>>>> > Create a evn variable in XFONT_LOCALE to record the specific locale.
>>>
>>> What process or script would set this?
>>>
>>>> > Let Init/Default call set_fonts_path script, and set current
>>>> locale to XFONT_LOCALE.
>>>
>>> Why not just edit Init/Default to set XFONT_LOCALE and run the
>>> 0110.fonts script rather than duplicating code?
>>>
>>>> > In xinit/xinitrc.d/0110.fonts, Check XFONT_LOCALE, if it is NULL,
>>>> or not same with current
>>>> locale value, cleanup current locale specific X fonts path. and
>>>> re-set it according to current locale.
>>>
>>> Couldn't you create a new script 0105.locale to cleanup locale specific
>>> X fonts path and reset it to current locale?
>> Could this function be done at Xsession?
>
> There are probably many different ways we could solve this problem.
> The /etc/X11/gdm/Xsession script already sources the files in
> /etc/X11/xinit/xinitrc.d. So, you could probably fix this by making
> changes in the Xsession script directly.
>
> However, note that this Xsession script is really a part of the GDM
> module, while the files in /etc/X11/xinit/xinitrc.d are in a package
> owned by Sun which contains Sun-specific modifications to how the
> session startup should work.
>
> Therefore, the /etc/X11/xinit/xinitrc.d scripts are a better place to
> put Sun-specific configuration. Putting distro-specific code in the
> GDM Xsession script is not ideal since we then have to maintain a Sun
> specific patch to make the change. Such changes are hard to get
> upstream. So, if it is possible to address this issue in the
> /etc/X11/xinit/xinitrc.d scripts, that is a better solution for making
> distro-specific configuration.
>
> Note that the scripts in the /etc/X11/xinit/xinitrc.d directory are
> sourced in numeric order, so a script which starts with 0105 in the
> filename is run before a script which starts with 0110 in the
> filename, and so on.
>
> Does this make sense?
>
> Brian