อัปเดทไลบรารี icu ใน Gentoo
www.tanabutr.co.th/photobook
ลองคอมไพล์ Firefox + icu patch ให้เหมือนกับ Linux TLE แต่ยังมันก็ไม่ตัดคำให้เสียที. เลยสงสัยว่าอาจจะเป็นเพราะไลบรารี icu ใน Gentoo มันเก่าไป. ตอนนี้ไลบรารี icu ที่มากับ Gentoo ยังอยู่ที่ 2.8 แต่ไลบรารี icu ที่ใช้ใน Linux TLE เป็นเวอร์ชัน 3.0. กรณีนี้ emerge sync ก็ยังไม่มีเวอร์ชันใหม่เลยต้องสร้าง ebuild เอง.
วิธีสร้างไฟล์ ebuild แบบง่ายที่สุดเห็นจะเป็นก็อปปี้จากไฟล์ที่มีอยู่แล้ว.
# cd /usr/portage/dev-libs/icu # cp icu-2.8.ebuild icu-3.2.ebuild
หลังจากนั้นต้องสร้างไฟล์ digest ที่เก็บข้อมูลว่าไฟล์มีรหัสต้นฉบับมีขนาดเท่าไร, เอาไว้ใช้ตรวจสอบเมื่อดาว์นโหลดเสร็จแล้วว่าไฟล์ที่ดาว์นโหลดมาถูกต้องหรือไม่.
# ebuild icu-3.2.ebuild digest
เสร็จแล้วก็ emerge ต่อได้เลย.
# emerge icu
ถ้าดูในไฟล์ icu-3.2.ebuild จะเห็นว่ามีบอกไว้ว่าต้องดาว์นโหลดไฟล์รหัสต้นฉบับจากที่ไหน. เมื่อสั่ง emerge หรือ ebuild ก็จะดาว์นโหลดไฟล์นั้นมาไว้ที่ระบบครับ. สาเหตุที่ก็อปปี้แล้วเปลี่ยนชื่อเวอร์ชันอย่างเดียวแล้วใช้ได้เลยเพราะไฟล์ ebuild ของ icu เขาเขียนไว้ดีอยู่แล้ว. ถ้าดูในไฟล์จะเห็นว่ามีบรรทัดต่อไปนี้.
DESCRIPTION="IBM Internationalization Components for Unicode"
SRC_URI="ftp://www-126.ibm.com/pub/icu/${PV}/${P}.tgz"
HOMEPAGE="http://oss.software.ibm.com/icu/"
ตรง SRC_URI เป็น URI ไฟล์ต้นฉบับ. PV หมายถึง Package Version ซึ่งคือ 3.2. P หมายถึง Package name ซึ่งก็คือ icu-3.2. โดยปรกติ Gentoo จะพยายามดาว์นโหลดไฟล์รหัสต้นฉบับจาก mirror ที่กำหนดไว้ใน make.conf ก่อน, ถ้าหาไม่เจอสุดท้ายจะไปดาว์นโหลดจากแหล่งต้นกำเนิดที่ระบุไว้ในตัวแปร SRC_URI ครับ.
แล้วเดี๋ยวจะลองคอมไพล์ Thunderbird + icu patch อีกที. ขึ้เกียจคอมไพล์ Firefox ใหม่เพราะในเครื่องใช้ภาษาไทย (cttex) ได้แล้ว.