[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: xfree86 plea



Salaam Nadim,
I understand your urge:) but I will try to explain exactly what's at stake
here (I'm not assuming anything so my apologies if anything I say seems
silly).
Pango, unlike Gnome or KDE is not an application framework.
Let's suppose the following schema is the current XFree86 architecture with
the libs that allow us to program applications "out of the box", native X
apps.

[    Xlib and many other libs, fonts, datafiles, etc... ]

That doesn't include Pango libs or Xft. If someone is experienced (and
masochist;)) enough to download the XFree86 sources or site's binaries to
install them by hand, he'll get just that bare minimum. That isn't enough to
do anything with Arabic.
Now if we succeed in convincing them to add an Arabic glyphs file (encoding is
definitely not important for shaping) we'd still have the exact same
architecture. So when you write your app, you'd have this schema in terms of
code if you want to have Arabic support in your app:

[ Your app's original code ][your added code for Arabic support: bidi,
shaping, rtl]
[ Xlib and many other libs, fonts, datafiles, our Arabic shapes file included,
etc...]

It happens that the solution they suggest is to use Freetype's Xft server,
which means we'd have the following schema:

[ Your app's original code ][your added code for Arabic support: bidi,
shaping, rtl]
[ Xlib and many other libs, fonts, datafiles, etc...][Freetype server with
Arabic glyphs files on the client side]

So our 7ammooda (our experienced and masochist geek who does everything by
hand without going through distributions install;)) would have to install on
his X client machines the Xft server with some Arab glyphs files that the
Freetype project delivers, if we want these glyph files to be part of a given
standard that is. In practice, though Freetype is not part of XFree86, the
XFree86 are now acting with assumption that future machines will have it, and
any distro I am aware of installs it. So what does this leave us with? the
[your added code for Arabic support: bidi, shaping, rtl] part. We could decide
we have a standard code portion that does it, instead of rewriting it
everytime, maybe something, supposing we can convince the XFree86 people to
integrate our code as part of their standard, that would become part of
XFree86. This would give us the following schema:

[ Your app's original code ]
[ Xlib and many other libs, fonts, datafiles, etc...][Freetype server with
Arabic glyphs files on the client side][our standard code for Arabic support:
bidi, shaping, rtl]

Now why create our own Arabic support code since Pango is already there (Pango
unlike QT or GTK is not a graphical toolkit either, it's an
internationalization toolkit for X)? We could, but that would just amount at
rewriting Panga (Pango clone). So in the case you think for some reason it
would be better that we ourselves write a Panga, just search/replace the
following references to Pango by Panga:)

[ Your app's original code ]
[ Xlib and many other libs, fonts, datafiles, etc...][Freetype server with
Arabic glyphs files on the client side][Pango]

What we could do instead would rather be to convince, if that's possible, to
integrate Pango as part of the XFree86 standard. Intermediate summary:
7ammooda would now have to install XFree86, Xft and Pango, to get Arabic by
hand. Newbie user relying on a distro would just have to install X (which will
most likely install Xft as well on the clients), and select Pango manually if
the distro is flocked up enough (Pango should become a standard in every
distro with the Gnome 2.0 which, unlike QT/KDE doesn't have I18N support at
the native/GTK level but relies on Pango instead), knowing that, if we suppose
VIM's Pango based Arabic would become part of the soft package, Pango would
automatically be installed if the newbie (or the distro) decides to install
VIM.

Now what happens with that heb string you mentionned? For the sake of the
example so you understand what most probably happens there:
They do have a font deliver on the server side X, and we definitely would like
to see one, so we can write what is probably a little hack, to get such things
as those little greetings.
I am supposing that for the Hebrew greeting, what they probably do is to write
it directly in hard coded reverse string:
M-L-SH
instead of the standard
SH-L-M
This is of course unusable for any realistic and more than absolutely
insignificant work with either Hebrew or Arabic of course, but it's okay for
such a greeting. We'd have a glyph file, very non portable but where we'd know
the glyph position, hard code the Arabic shapes and direction in a
M-L-S
with a end word M glyph, midword L glyph, begining S glyph instead of the
standard (and Correct Way)
S-L-M
in ISO/CP/Unicode whatever *encoding* (not glyph).
Which would make us have a

[ Greeting application ]
[ Xlib and many other libs, fonts, datafiles, our Arabic shapes file included,
etc...]

Which is nice but unusable in any real Arabic supporting program without
additional code.
Conclusion:
We have to:
1) Convince the XFree86 to at least integrate one shapes file on the server
side
2) Optionally convince the Freetype folks to integrate some given font files
in their standard packages (already done? see the fonts used by KDE)
3) Decide Pango/our Panga/whatever is THE library for Arabization (i.e. the
additional code necessary for Arabic support)

OR

Convince the main distribution to automatize the installation of necessary
pieces for Arabic suppot under X (which imho will come very soon, Pango being
mandatory soon with Gnome 2.0, Xft already there, and Arabic shapes already
existing as well for KDE for example, and which could be reused for any Arabic
program/application framework)

I hope I made things a bit more clear as to what has to be done:)
Salaam,
Chahine

Nadim Shaikli a *crit :

> Mohammed/Chahine, I don't mean to keep banging my head against the wall
> here, but I really really want to impress upon you both the importance
> of having arabic native support in Xfree86 "out-of-the-box".  I know that
> pango/QT offer what we need, but still that is 'not good enough', I know,
> I know.  Bare with me - I realize it is foolish NOT to run under those
> session management systems, but for those of us that are into a certain
> application (like vim or emacs or pine) should be able to reinvent the
> wheel if we so desire (so please don't forget us and try to cater to us).
> Arabeyes should bring Arabic to the masses not through pango/QT, but
> through the availability of linux/unix (& xfree86) in large.
>
> I don't expect to sway you guys from your opinions, and I realize that
> we are dealing with giants here (xfree86), but with some help (roozbeh
> noted that she CAN help and is WILLING to do so) I think we can make
> our voice heard.  Keep in mind that this decision will affect all Arabs
> (our decisions should not be taken lightly) and we should give all Arabs
> all the options they might want (its not upto us to limit who does what
> and why) - we are to bring linux/unix to ALL arabs.
>
> If this amounts to simply having a 10x20ar file - so be it, but that should
> be installed whenever anyone installs Xfree86 (why are we always left out
> to ride someone else's coat-tails).
>
> Don't get me wrong, I'm simply stating that we must pursue this (inclusion
> of Arabic into fonts at all costs) and not settle for library solutions
> which might not encompass everyone.  I want to see "Salam Alykoom" when I
> login into Solaris for instance (heb is there), why are we left out of
> that ??  Same reasoning in my mind.  I would be willing to code whatever
> is necessary to make this a reality - so I implore you on making a quick
> stance and making the incomplete decision.
>
> As I've said to Mohammed :-) keep this statement in mind,
> "we went to the moon not because it was easy, but because it was HARD"
>
> We are in no position to compromise, not now; that's what they expect.
>
> PS. please no flames, simply being emotional that all.
>
>  - Nadim
>
> __________________________________________________
> Do You Yahoo!?
> Send FREE video emails in Yahoo! Mail!
> http://promo.yahoo.com/videomail/
> _______________________________________________
> Core mailing list
> Core at arabeyes dot org
> http://arabeyes.org/mailman/listinfo/core