Firefox ICU patch ใน Gentoo

อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ

www.tanabutr.co.th/photobook


คุณโชครายงานมาว่าออก Firefox 1.0 ที่ลง patch ICU ไว้ตัดคำภาษาไทยในลินุกซ์ทะเลรุ่นใหม่แล้วเลยอยากมาลองกับ Firefox ใน Gentoo บ้าง. ทำแบบนี้ครับ.

  1. ดึงข้อมูลแพกเกจล่าสุดมาก่อน.
    # emerge sync
    
  2. ดาว์นโหลด patch ไปไว้ที่ได้เรกทอรี files. รู้สึกว่ามันเป็น patch สำหรับ 0.9.2 แต่ก็น่าจะใช้ได้, ต้องลองดู.

    # cd  /usr/portage/net-www/mozilla-firefox/files
    # wget -nd ftp://ftp.opentle.org/people/mrchoke/patches/firefox-0.9.2-icu-thai-lwbr.patch
    
  3. emerge icu ก่อนถ้ายังไม่มีในระบบ.

    # emerge icu
    
  4. ตรวจสอบดูว่า firefox รุ่นล่าสุดคืออันไหน.

    # emerge -pv mozilla-firefox
     
    These are the packages that I would merge, in order:
     
    Calculating dependencies ...done!
    [ebuild     U ] net-www/mozilla-firefox-1.0-r3 [1.0-r2] -debug +gnome +java +ldap 
    -mozdevelop -moznoxft -mozsvg -mozxmlterm -xinerama -xprint 0 kB
     
    Total size of downloads: 0 kB
     
    
  5. ในกรณีนี้คือ 1.0-r3 เพราะฉะนั้นไปแก้ไฟล์ mozilla-firefox-1.0-r3.ebuild ที่อยู่ในไดเรกทอรี /usr/portage/net-www/mozilla-firefox. เพิ่มบรรทัด

            epatch ${FILESDIR}/firefox-0.9.2-icu-thai-lwbr.patch
    

    ต่อจากบรรทัด

            epatch ${FILESDIR}/mozilla-firefox-1.0-kp_separator.patch
    
    
  6. ตรงบรรทัด

     mozconfig_annotate '' --enable-oji --enable-mathml
    

    แก้เป็น

     mozconfig_annotate '' --enable-ctl --enable-oji --enable-mathml
    

    คือเพิ่มความสามารถ complex text layout ไปด้วย. จะแสดงสระไม่ลอย.

  7. emerge
    # USER="xprint" emerge mozilla-firefox
    Calculating dependencies ...done!
    >>> emerge (1 of 1) net-www/mozilla-firefox-1.0-r3 to /
    >>> md5 src_uri ;-) firefox-1.0-source.tar.bz2
    >>> Unpacking source...
    >>> Unpacking firefox-1.0-source.tar.bz2 to /var/tmp/portage/mozilla-firefox-1.0-r3/work
     * Applying mozilla-firefox-1.0-4ft2.patch ...                            [ ok ] 
     * Applying mozilla-firefox-1.0-kp_separator.patch ...                    [ ok ] 
     * Applying firefox-0.9.2-icu-thai-lwbr.patch ...                         [ ok ]
    >>> Source unpacked.
    ~x86
    ...
        --enable-ctl                    mozilla.org default
    ...
    

    ดูตอนคอมไพล์ว่าต้องเป็นอย่างตัวอย่างข้างบนครับคือมีการ patch และ --enable-ctl.

  8. ขั้นสุดท้ายเกี่ยวกับ ctl ต้องไปแก้ไฟล์ /usr/lib/MozillaFirefox/res/fonts/fontEncoding.properties. เพิ่มบรรทัดต่อไปนี้
    encoding.loma.ttf = x-thaittf-0.wide
    encoding.kinnari.ttf = x-thaittf-0.wide
    encoding.tlwgtypewriter.ttf = x-thaittf-0.wide
    encoding.tlwgmono.ttf = x-thaittf-0.wide
    encoding.purisa.ttf = x-thaittf-0.wide
    

    ถัดจากบรรทัด

    encoding.norasi.ttf = x-thaittf-0.wide
    encoding.garuda.ttf = x-thaittf-0.wide
    encoding.dbthaitext.ttf = x-thaittf-0.wide
    

    ตรงนี้จะแก้ที่รหัสต้นฉบับก่อนคอมไพล์ก็ได้แต่ลืมครับ.

หน้าจอจะเป็นแบบนี้ครับ.

ขยายจอออกอีกนิดจะเห็นว่าตัดคำได้สวย, และสระวรรณยุกต์ไม่ลอย. ต้องขอขอบคุณคนทำ patch จริงๆNATTAPOL KRITSUTHIKUL สำหรับ patch อันนี้และคุณสัมพันธ์สำหรับ patch อันใหม่.

อันนี้เป็น patch เก่า, ใช้ได้ดีแต่ช้าไปหนึ่งวินาทีถ้ามีการย่น/ขยายหน้าจอ. เห็นคุณโชคบอกว่า patch อันใหม่เร็วขึ้นแต่ผมลองแล้วไม่เห็นตัดคำให้เลย. แล้วจะลองใหม่ครับ.