Thai Thunderbird กับ icu patch
www.tanabutr.co.th/photobook
วันก่อนลองคอมไพล์ Firefox กับแพชตัดคำภาษาไทยของพี่ฮุ้ยไปแล้ว. วันนี้เอาใหม่ใช้แพช icu ของคุณสัมพันธ์แต่เอาใช้กับ Thunderbird. และใช้วิธีสร้างคนและแบบกับคราวที่แล้ว. คราวนี้จะใช้ ebuild สร้างแทนที่จะใช้ emerge.
คำสั่ง ebuild เป็นคำสั่งสำหรับจัดการแพ็กเกจเป็นขั้นๆรวมถึงติดตั้งแพ็กเกจด้วย. ขั้นตอนที่สำคัญๆได้แก่ unpack, compile, install และ qmerge. ก่อนอื่นกระจายรหัสต้นฉบับของ Thunderbird ก่อน
# ebuild /usr/portage/mail-client/mozilla-thunderbird/mozilla-thunderbird-1.0.ebuild unpack
เสร็จแล้วจะได้รหัสต้นฉบับอยู่ที่ /var/tmp/portage/mozilla-thunderbird-1.0/work. หลังจากนั้นย้ายไปที่ไดเรกทอรีดังกล่าวแล้วแก้ด้วยมือครับ. วิธีนี้จะแตกต่างจากคราวที่แล้วคือใช้ในกรณีที่ต้องการแก้ไขต้นฉบับด้วยมือ, ไม่ต้องไปแก้ที่ไฟล์ .ebuild.
# cd /var/tmp/portage/mozilla-thunderbird-1.0/work # wget -nd ftp://linux.thai.net/pub/ThaiLinux/cvs/software/mozilla+thai/icu-wbr/mozilla-1.7.3-firefox-1.0-thunderbird-0.9-icuthai.patch # patch -p1 --dry-run < mozilla-1.7.3-firefox-1.0-thunderbird-0.9-icuthai.patch patching file mozilla/config/autoconf.mk.in Hunk #1 succeeded at 196 (offset 12 lines). patching file mozilla/intl/lwbrk/src/nsJISx4501LineBreaker.cpp patching file mozilla/intl/lwbrk/src/nsJISx4501LineBreaker.h # patch -p1 -b < mozilla-1.7.3-firefox-1.0-thunderbird-0.9-icuthai.patch patching file mozilla/config/autoconf.mk.in Hunk #1 succeeded at 196 (offset 12 lines). patching file mozilla/intl/lwbrk/src/nsJISx4501LineBreaker.cpp patching file mozilla/intl/lwbrk/src/nsJISx4501LineBreaker.h
ตอนที่สั่ง patch จะใช้ตัวเลือก --dry-run ดูก่อนว่าแพชได้ถูกต้องหรือมีปัญหาอะไรหรือไม่. ถ้าไม่มีปัญหาอะไรก็ใช้ตัวเลือก -b สร้างแบ็กอัปไฟล์ก่อนจะแพชไว้ด้วย. เช่นหลังจากที่แพชแล้วก็จะได้ไฟล์ nsJISx4501LineBreaker.cpp.orig ในไดเรกทอรีนั้นๆ.
ขั้นตอนต่อไปคือ compile, install และ qemerge.
# ebuild /usr/portage/mail-client/mozilla-thunderbird/mozilla-thunderbird-1.0.ebuild compile # ebuild /usr/portage/mail-client/mozilla-thunderbird/mozilla-thunderbird-1.0.ebuild install # ebuild /usr/portage/mail-client/mozilla-thunderbird/mozilla-thunderbird-1.0.ebuild qmerge
ตรงนี้จะสั่ง install โดยไม่สั่ง compile ก็ได้, ebuild จะคอมไพล์ให้ด้วยถ้ารู้ว่ายังไม่ได้ผ่านขั้นตอน compile. ส่วนขั้นตอน emerge เป็นการติดตั้งตัวโปรแกรมเข้าระบบจริง.
การใช้ ebuild แบบนี้สะดวกตรงที่ว่าถ้าคอมไพล์เสร็จแล้วอยากจะแก้รหัสต้นฉบับก็แก้เลยแล้วเข้าไปที่ไดเรกทอรี mozilla สั่ง make ด้วยมือใหม่ได้. ไม่ต้องทำทุกอย่างตั้งแต่ต้น. ถ้าเสร็จสมบูรณ์ทุกอย่างและต้องการลบรหัสต้นฉบับทิ้งก็สั่ง clean.
ครั้งนี้ใช้ icu เวอร์ชัน 3.2 แล้วตัดคำได้ไม่มีปัญหา. แต่ก่อนเคยลองกับ icu 2.8 แล้วไม่เวิร์กครับ.