Theppitak's blog

My personal blog.

24 กรกฎาคม 2550

Mozilla Pango-Break Backported

backport Mozilla pango-break patch จาก trunk มา 1.8 branch ละ เพื่อใช้กับ debian ต่อไป โดยทำ xulrunner ก่อน

1.8.1.5-1thai2 deb สำหรับ amd64 พร้อมใช้แล้วที่ LTN Apt ส่วน i386 รวมทั้ง iceweasel รอนิวตรอนมาทำให้

ด้วย patch ใหม่ (ดึงออกมาจาก dpatch ที่เพิ่มใน deb) นี้ xulrunner-libthai จะไม่จำเป็นอีกต่อไป เพราะเรียกผ่าน Pango แทน

ขอเขียนสั้น ๆ นะครับ แสบตา :P

ป้ายกำกับ: , ,

12 ความเห็น:

  • 25 กรกฎาคม 2550 21:38 , Blogger widhaya แถลง…

    นอกเรื่องนิดนึงนะครับ
    ถามว่าคุณเทพใช้จอภาพ CRT หรือ LCD กี่นิ้วครับ

     
  • 6 สิงหาคม 2550 12:28 , Blogger Thep แถลง…

    ผมใช้จอ LCD widescreen 14" ของโน้ตบุกครับ เป็นจอแบบ super-bright ไม่รู้ว่ามีผลอะไรหรือเปล่า

     
  • 25 สิงหาคม 2550 20:58 , Blogger t·o·o แถลง…

    ถ้าผมใช้ epiphany+xulrunner การตัดคำไทยก็จะใช้ pango ผมเข้าใจถูกมั้ยครับ

    ปล. firefox อ้วนไปล่ะจะใช่ epiphany

     
  • 25 สิงหาคม 2550 21:10 , Blogger Thep แถลง…

    t·o·o, ใช่แล้วครับ

     
  • 26 สิงหาคม 2550 16:46 , Blogger t·o·o แถลง…

    ลองใช้ patchกับ xulrunner 1.8.1.6 มัน reject ไฟล์ nsJISx4501LineBreaker.cpp.rej
    ---------------------------------
    ***************
    *** 493,499 ****
    *oNeedMoreText = PR_FALSE;
    return NS_OK;
    }
    - if (IS_CJK_CHAR(aText[cur]))
    goto ROUTE_CJK_NEXT;
    }
    *oNext = aLen;
    --- 513,519 ----
    *oNeedMoreText = PR_FALSE;
    return NS_OK;
    }
    + if (IS_CJK_CHAR(aText[cur]) || IS_THAI(aText[cur]))
    goto ROUTE_CJK_NEXT;
    }
    *oNext = aLen;
    ---------------------------------

    ผมเลยห่อใหม่ xulrunner-1.8.1.6-pango-break.patch

    ลองเปรียบเทียบกับการใช้ xulrunner-1.8.1.6-cttex-wbr-b4a.patch

    แล้วให้ผลต่างกันครับ

    cttex-wbr-b4a vs. pango-break

    ผมเลยไม่แน่ใจว่า xulrunner-1.8.1.6-pango-break.patch ที่ผมห่อใหม่ มันผิดจากของเดิมหรือเปล่า ดูเหมือนมันไม่ตัดคำครับ

    ผมใช้ Epiphany-2.18.3, Xulrunner-1.8.1.6, Pango-1.16.5

     
  • 26 สิงหาคม 2550 18:29 , Blogger Thep แถลง…

    ที่ patch apply ไม่ได้ คงเป็นเพราะลำดับการ patch.. พอดีบน debian ผมเลื่อนขึ้นมาก่อน patch unichar alignment ก็เลยไม่มีฟังก์ชัน GetUnichar() มาเกี่ยวข้อง (gentoo ก็มี patch นี้เหมือนกันเหรอเนี่ย.. ทำไม mozilla ไม่รับ patch ซะทีเนาะ)

    แต่ทำไมไม่ตัดคำ อืมม์.. pango บน gentoo ได้ build แบบมี libthai support หรือเปล่าครับ (มีไฟล์ /usr/lib/pango/1.6.0/modules/pango-thai-lang.so หรือเปล่า? และใช้ ldd เช็กแล้ว มันโยงไปถึง libthai.so.0 หรือเปล่า? อืม หรือเอาง่าย ๆ GTK+ app เช่น gedit ตัดคำหรือเปล่า?)

     
  • 26 สิงหาคม 2550 21:21 , Blogger t·o·o แถลง…

    ผมไม่แน่ใจครับ ไฟล์ของแพ็กเกจ pango ที่เกี่ยวกับ thai แค่สองไฟล์


    /usr/lib/pango/1.6.0/modules/pango-thai-fc.la
    /usr/lib/pango/1.6.0/modules/pango-thai-fc.so

    ldd /usr/lib/pango/1.6.0/modules/pango-thai-fc.so
    linux-gate.so.1 => (0xb7f47000)
    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7ef4000)
    libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7ef1000)
    libdl.so.2 => /lib/libdl.so.2 (0xb7eed000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7e5e000)
    libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7e22000)
    libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7df8000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7dcf000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7d59000)
    libz.so.1 => /lib/libz.so.1 (0xb7d48000)
    libc.so.6 => /lib/libc.so.6 (0xb7c21000)
    /lib/ld-linux.so.2 (0x80000000)
    libm.so.6 => /lib/libm.so.6 (0xb7bfd000)
    libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7aeb000)


    อ่า... ไม่มี libthai T_T

    ลองรัน ./configure เช็คดูก็เจอนี่ครับ

    checking for LIBTHAI... no

    โอ้...ไม่ยอม ไม่มี libthai ebuild !!

    สงสัยผมต้องไปงมทำ overlay เองอีกล่ะ

     
  • 27 สิงหาคม 2550 14:46 , Blogger t·o·o แถลง…

    ผมลอง build pango(1.16.5)+libthai(0.1.8)+libdatrie(0.1.2) ได้ pango module เพิ่มมาอีกอัน

    ldd /usr/lib/pango/1.6.0/modules/pango-thai-lang.so
    linux-gate.so.1 => (0xb7fc2000)
    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7f73000)
    libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7f70000)
    libdl.so.2 => /lib/libdl.so.2 (0xb7f6c000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7edd000)
    libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7ea1000)
    libthai.so.0 => /usr/lib/libthai.so.0 (0xb7e9a000)
    libdatrie.so.0 => /usr/lib/libdatrie.so.0 (0xb7e95000)
    libc.so.6 => /lib/libc.so.6 (0xb7d6e000)
    /lib/ld-linux.so.2 (0x80000000)
    libm.so.6 => /lib/libm.so.6 (0xb7d4b000)

    แล้วลอง build epiphany+xulrunner+pango-break การตัดคำไทยก็ได้ผลดีพอๆกับ cttex-wbr-b4a

    แต่ก็มี delay/lag บ้างครับ เวลาผมเปลี่ยนขนาด window ของ epiphany ที่กำลัง view เว็บที่มีฟอนต์ไทยเยอะๆ

    บน debian มีอาการนี้มั้ยครับ

     
  • 27 สิงหาคม 2550 14:53 , Blogger t·o·o แถลง…

    อ่า... ผมเจอ error ประมาณนี้

    (epiphany:14483): Gtk-CRITICAL **: gtk_window_group_remove_window: assertion `GTK_IS_WINDOW_GROUP (window_group)' failed


    สงสัยอาจเป็นที่ระบบผมเอง

    ปล. ยังไงก็อยากใช้ patch นี้ครับ
    ปล. ตอนนี้มอง epiphany+webkit ล่ะ :-))

     
  • 27 สิงหาคม 2550 15:24 , Blogger Thep แถลง…

    เรื่องอืดนี่เป็น known problem ครับ เพราะ mozilla 1.8 จะเรียกตัวตัดคำค่อนข้างพร่ำเพรื่อ แต่ใน 1.9 (firefox 3) จะเร็วขึ้นเยอะ

    คุณ t·o·o ได้ร่วมทำงานกับ gentoo ด้วยหรือเปล่าครับ? อยากให้ช่วยผลักดัน libthai เข้า gentoo จัง

    เรื่อง webkit.. คิดเหมือนกันครับ ตอนนี้ package เข้า debian sid มาได้พักนึงแล้ว ว่าจะลอง rebuild epiphany อยู่เหมือนกัน

     
  • 27 สิงหาคม 2550 16:12 , Blogger t·o·o แถลง…

    อ่อครับ แสดงว่าเป็นที่ xulruuner-1.8 งั้น รอ 1.9 หรือไม่ก็ ถึงเวลาทดลอง gnome-2.19.x แล้ว :-)

    อย่างไงขอให้ข้อมูลเพิ่มเติมน่ะครับ ผมลองเปิดเว็บที่มีฟอนต์ไทยเยอะๆ ไว้ซักสองสาม tabs/windows เวลาผมสลับระหว่าง tabs/windows epiphany ก็จะอืดครับ หรือสลับไปมาระหว่าง gnome-terminal มา epiphany (ที่กำลังแสดงเว็บที่มีฟอนต์ไทยเยอะๆ) ก็อืด ไม่มีอาการนี้หากใช้แพ็จ cttex-wbr-b4a

    ผมเป็นแค่ gentoo desktop user ครับ แต่ก็อยากผลักดันให้ gentoo สนับสนุนระบบภาษาไทยดีกว่านี้ แต่ปัญหาก็คือ

    "มีคน(คนไทย)อื่นอีกมั้ย ที่ยังใช้ gentoo เป็น desktop?" lol จะได้มาช่วยกันผลักดัน

    ภาษาอังกฤษผมก็ห่วยซ่ะเหลือเกิน ที่จะติดต่อกลับ devs อิอิ Gnome ก็ดูเหมือนมีคน(gentooer) ใช้น้อย

    ขอวกมาเรื่อง libthai ทำไมไม่รวม libdatrie เข้าไปใน แพ็กเกจ libthai อีกด้วยเลยครับ ผมแอบเห็น libthai.spec แพ็กเกจของ fedora7 ดูเหมือนเค้าจะรวม เพื่อให้ dependencies มันลดลง หรือยังไง :-)

     
  • 27 สิงหาคม 2550 17:00 , Blogger Thep แถลง…

    libthai ใช้คนละ algorithm กับ cttex ครับ cttex จะใช้ depth-first search ซึ่งจะให้ผลเป็น longest matching (หาคำที่ยาวที่สุด) ส่วน libthai จะใช้ best-first search ซึ่งให้ผลเป็น maximal matching (ตัดให้ได้จำนวนคำน้อยที่สุด) มีการสำรวจ case มากกว่า การ search เลยกินเวลามากกว่า

    เรื่อง gentoo อาจจะลองถามคุณ กำธร ดู ว่ายังใช้ gentoo อยู่หรือเปล่า เผื่อจะช่วยกันได้ :-)

    libdatrie ไม่ได้รวมกับ libthai เพราะมีคนทำตัดคำคนอื่นอยากใช้ datrie ด้วยน่ะครับ

     

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem
No PAD No UDD
No Violent Mob