Theppitak's blog

My personal blog.

03 กุมภาพันธ์ 2550

iceweasel-libthai bug

เมื่อวาน MrChoke มาโวยว่า iceweasel ที่ patch libthai มีปัญหาเรื่องตัวสี่เหลี่ยมกับ NL ซึ่งผมไม่เคยเจอ เพราะใช้แต่ epiphany เป็นหลัก ก็เลยจัดการ build iceweasel-libthai 2.0.0.1 เพื่อทดสอบบน debian (ความจริงรอ Prach ทำให้อยู่ แต่ต้องรอเขาเซ็ตเครื่องใหม่ก่อน หลังจากกลับไปอยู่โคราช)

build เสร็จก็ไม่พบอาการที่ว่าบน debian เอ๊ะ ยังไงกัน สรุปว่าเป็นแต่กับ ubuntu รึนี่ ไม่รู้ละ ไหนๆ ก็ build amd64 deb เสร็จแล้ว ก็เข้าห้อง #tlwg ไปหาคนช่วย build i386 deb สำหรับ debian ซึ่ง peorth ก็อาสา build ให้ thanks หลายๆ

วันนี้ ตื่นขึ้นมาก็ลุยงานแปลต่อเลย ก็ปรากฏว่า MrChoke ยังมาสะกิดต่อ ผมสลับไปดูโค้ดให้นิดนึงแต่ก็พะวงงานแปล เลยขอตัวเร่งงานแปลให้เสร็จก่อน ค่อยกลับไปดูทีเดียว จะได้ไม่ห่วงหน้าพะวงหลัง.. ซึ่งระหว่างนั้น MrChoke สามารถวิเคราะห์อาการจนพบว่าอาการที่แสดงออกบน debian กับ ubuntu มันต่างกันเท่านั้นเอง คงเป็นเพราะค่า fontconfig ที่ต่างกัน แต่ข้อมูลที่เพิ่มขึ้นก็ทำให้เดาสาเหตุได้ง่ายกว่าเดิม

ค่ำๆ แปลเสร็จเลยกลับมาลุย อาการก็คือ white space ใน HTML ที่อยู่หลังข้อความจะถูก render ตรงๆ แทนที่จะถูกตีความเป็น delimiter ของข้อความตามไวยากรณ์ HTML เลยตั้งสมมุติฐานว่าคงอยู่ที่จุดตัดคำที่ส่งมาตั้งแต่ libthai พอไล่ไปไล่มาก็พบว่าใช่จริงๆ ก็จัดการแก้ซะ แล้ว commit เข้า CVS

อะ มีเวลาเหลืออีก เลยคิดว่าควร build deb ใหม่ให้ชาวบ้านใช้เสีย เพราะเห็นบ่นกันอยู่หลายแห่งในเว็บ ปล่อยให้เขาเดือดร้อนกันต่อไปคงไม่งาม เลยได้ libthai 0.1.7-5 ที่แก้ปัญหานี้แล้ว อยู่ที่ LTN APT นะครับ พร้อมกับ iceweasel-libthai 2.0.0.1+dfsg-2thai1 สำหรับ amd64 (ส่วน i386 รอ deb จาก peorth) และคาดว่าปัญหา xulrunner ที่คุณ cwt เคยพบ ก็อาจถูกแก้พร้อมกันด้วย (ช่วยยืนยันด้วยครับ) ..ทั้งหมดนี้สำหรับ debian นะครับ ส่วนสำหรับ ubuntu คาดว่าทีม TLE คงรอทำให้อยู่แล้ว

เรื่องราวหลายๆ เรื่อง ที่เดิมคิดว่าเป็นสิ่งชั่วคราว เมื่อผ่านกาลเวลานานเข้า มันก็กลายเป็นสิ่งที่เริ่มถาวร เหมือนกับรูทีนตัดคำไทยตัวใหม่ใน libthai 0.1.7 ที่ผมเองคิดว่าจะปรับดีไซน์หลังจากออกรุ่นไปเมื่อกลางเดือนตุลาปีที่แล้ว ถ้าจะมีปัญหาอะไรในรุ่นนี้ ตามแผนที่คิดไว้ก็คงจะเป็นไม่นาน แต่พอติดงานอย่างอื่นมาเป็นลำดับ จากเรื่องหนึ่งสู่อีกเรื่องหนึ่งต่อๆ กันมา เผลอแผล็บเดียวก็ผ่านไปสามเดือนครึ่งแล้ว จนป่านนี้ก็ยังไม่ได้เริ่ม.. เวลาไม่อำนวยจริงๆ อยากได้เวลาทำงานที่ต่อเนื่องกว่านี้เหมือนกัน.. ระหว่างนี้ก็แก้ไปตามมีตามเกิดก่อน

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

9 ความเห็น:

  • 3 กุมภาพันธ์ 2550 01:15 , Blogger cwt แถลง…

    เดี๋ยวขอเวลากำจัดแมลงใน project ของที่ office ก่อนนะครับ แล้วจะรายงานผลให้ทราบ (ดีใจ จะได้ใช้ libthai ตัดคำ แทน rule-based)

     
  • 3 กุมภาพันธ์ 2550 04:17 , Blogger cwt แถลง…

    ไม่สำเร็จครับ [xulrunner-1.8.1.1, libthai-cvs (HEAD)]มาตายที่นี่...

    c++ -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -march=k8 -msse3 -O2 -pipe -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -march=k8 -msse3 -O2 -pipe -fPIC -shared -Wl,-z,defs -Wl,-h,libmozlibthai.so -o libmozlibthai.so nsLibThaiLineBreaker.o nsLibThaiModule.o -L/usr/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lthai -ldatrie -Wl,--version-script -Wl,../../../../build/unix/gnu-ld-scripts/components-version-script -Wl,-Bsymbolic -ldl -lm
    nsLibThaiModule.o: In function `NSGetModule':
    nsLibThaiModule.cpp:(.text+0x23): undefined reference to `NS_NewGenericModule2(nsModuleInfo const*, nsIModule**)'
    collect2: ld returned 1 exit status
    make[6]: *** [libmozlibthai.so] Error 1

     
  • 3 กุมภาพันธ์ 2550 10:41 , Blogger Thep แถลง…

    อ๋า.. เล่นของใหม่เหรอครับ ลองแก้ใน debian/patches/35_mozlibthai.dpatch โดยแทนที่ $(XPCOM_STANDALONE_GLUE_LDOPTS) ด้วย $(MOZ_COMPONENT_LIBS) นะครับ [ไฟล์ที่มีผลหลัง patch คือ intl/lwbrk/components/libthai/Makefile.in ]

     
  • 5 กุมภาพันธ์ 2550 13:07 , Blogger cwt แถลง…

    ยังคงไม่สำเร็จครับ ผมใช้ parch ตัดคำไทยจาก http://linux.thai.net/pub/thailinux/cvs/software/mozilla+thai/libthai-wbr/mozilla-mozlibthai-wbr.patch และในนั้นไม่มี $(XPCOM_STANDALONE_GLUE_LDOPTS) มีแต่ $(XPCOM_GLUE_LDOPTS) ครับ ลองแทนที่ด้วย $(MOZ_COMPONENT_LIBS) ก็ใช้ไม่ได้ครับ และในที่ๆ ผม build ก็ไม่มี libxpcom.* ด้วย error ล่าสุดหลังจากแทนที่ ด้วย $(MOZ_COMPONENT_LIBS) คือ

    /usr/bin/ld: cannot find -lxpcom

     
  • 5 กุมภาพันธ์ 2550 14:09 , Blogger Thep แถลง…

    patch นั้นเก่าแล้วนะครับ อาจต้องไปเอาจาก source ของ xulrunner deb นะครับ ที่ http://linux.thai.net/apt/xulrunner ดึงเอา .diff.gz มาแล้วแยก patch ที่ผมพูดถึงออกมาอีกที

     
  • 6 กุมภาพันธ์ 2550 04:34 , Blogger cwt แถลง…

    สำเร็จแล้วครับ แกะ patch ออกมาจาก debian ตามที่คุณเทพแนะนำ แต่เหมือนเครื่องผมจะมีปัญหากับ nss/nspr เลยใส่ option --without-system-nss --without-system-nspr เข้าไป แล้ว disable python/xpcom ซะ ก็ใช้ได้ครับ

    เท่าที่ลองดูกับเว็บที่เคยเกิดปัญหาดูเหมือนว่าจะไม่มีปัญหาเรื่องการแสดงผลแล้ว แต่ผมจะทราบได้อย่างไรว่าขณะนี้ xulrunner ใช้การตัดคำของ libthai จริงๆ ครับ?

     
  • 6 กุมภาพันธ์ 2550 11:48 , Blogger Thep แถลง…

    grep mozlibthai /proc/<pid>/maps
    (<pid> = epiphany pid)

     
  • 9 กุมภาพันธ์ 2550 23:11 , Blogger cwt แถลง…

    ลองดูแล้วนะครับ เหมือนมันไม่ได้ load mozlibthai เลย การตัดคำก็แปลกๆ ผมเลยลองพยายาม build กับ xulrunner-1.8.0.9 ดู แต่มาตายตรงนี้ทุกที

    c++ -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -march=k8 -msse3 -O2 -pipe -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -march=k8 -msse3 -O2 -pipe -o xpcshell xpcshell.o -L../../../../dist/bin -L../../../../dist/lib -L../../../../dist/bin -lmozjs -L../../../../dist/bin -Wl,-rpath-link,../../../../dist/bin -lxpcom -lxul -L../../../../dist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -ldl -lm
    ../../../../dist/bin/libxul.so: undefined reference to `pango_xft_get_font_map'
    collect2: ld returned 1 exit status
    make[4]: *** [xpcshell] Error 1

     
  • 10 กุมภาพันธ์ 2550 01:25 , Blogger cwt แถลง…

    โหะๆ แก้ได้แล้วครับ โดยการ disable pango ไปเลย แล้วไหนๆ ก็ทำแล้ว เลยจัดการ patch ตัวแก้เรื่อง justified text ไปด้วย ตอนนี้ confirm ครับว่าใช้ libthai ตัดคำแล้ว และไม่มีอักขระประหลาดๆ โผล่มาอีก

    ปล. ขอโทษที่ทำให้ blog คุณเทพกลายเป็น bugzilla :-P

     

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

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

hacker emblem