Theppitak's blog

My personal blog.

29 มกราคม 2556

LibThai 0.1.19

LibThai 0.1.19 ออกแล้ว โดยในรุ่นนี้ นอกจากการปรับปรุงพจนานุกรมตัดคำตามปกติแล้ว ก็ยังมีการเพิ่ม API สำหรับการตรวจแก้ลำดับการพิมพ์ใน input method คือ th_validate_leveled() ตามความต้องการที่เกิดขึ้นขณะพัฒนา ibus-libthai ด้วย

อธิบายสักเล็กน้อย เดิมนั้น API th_validate() ใช้สำหรับวิเคราะห์การตรวจแก้ลำดับการพิมพ์ โดยรับอาร์กิวเมนต์ขาเข้าแค่สองตัว คือเซลล์ก่อนหน้าเคอร์เซอร์ กับอักขระใหม่ที่เพิ่งกดเข้ามา แล้วจะคืนรายละเอียดการตรวจแก้มาในอาร์กิวเมนต์ที่สาม เกณฑ์การตรวจลำดับ ก็จะใช้ค่าคงที่ตายตัวเป็นแบบ strict เสมอ แต่ใน ibus-libthai มีเครื่องมือตั้งค่าเลือกระดับการตรวจลำดับได้ (pass through, basic, strict) จึงเกิดความคิดว่าควรให้การตรวจแก้สามารถกำหนดระดับการตรวจได้ด้วย จึงต้องเพิ่ม API th_validate_leveled() ที่รับอาร์กิวเมนต์อีกตัวเป็นค่าระดับการตรวจด้วย และ th_validate() เดิม ก็จะกลายเป็นเพียงกรณีเฉพาะของ API ใหม่นี้

เพื่อรักษาความเข้ากันได้กับซอฟต์แวร์เดิมที่ยังเรียกใช้ th_validate() ตัวเก่าอยู่ จึงใช้วิธีเพิ่ม API แทนที่จะแก้ API ซึ่งในอนาคตอาจค่อย ๆ เลิกใช้ API เก่าอีกที

และแน่นอนว่ารุ่นนี้ออกโดยใช้ tarball แบบบีบอัดด้วย XZ ตามประกาศ LTN แล้ว ซึ่งขนาด tarball ที่ได้เล็กลงถึง 30%:

-rw-r--r--  1 thep thep 537508 มิ.ย.  12  2012 libthai-0.1.18.tar.gz
-rw-r--r--  1 thep thep 373420 ม.ค.  29 12:47 libthai-0.1.19.tar.xz

อัปโหลด 0.1.19-1 เข้า Debian experimental แล้วด้วยครับ รอ Wheezy ออกแล้วค่อยย้ายเข้า Sid อีกที การออกรุ่น libthai นี้ เป็นขั้นแรกของการทำ ibus-libthai เพราะจะทำให้สามารถ build ibus-libthai ได้ พร้อมกันนี้ก็ได้ file ITP สำหรับ ibus-libthai รอไว้แล้วด้วย รอทิ้งช่วงสักระยะเพื่อให้ชุมชน Debian ได้พิจารณาก่อนที่จะออกรุ่นจริงแล้วทำแพกเกจต่อไป

ป้ายกำกับ:

24 มกราคม 2556

libdatrie 0.2.6

ออก libdatrie 0.2.6 ไปแล้วเมื่อวานนี้ โดยเป็นรุ่นแรกและเป็น tarball แรกของ LTN ที่ ใช้การบีบอัดแบบ XZ ตามที่ได้ ซาวเสียง ในกลุ่มเมล

การเปลี่ยนแปลงหลัก ๆ ของรุ่นนี้ เป็นเรื่องการลิสต์รายการคำใน trie โดยได้รับความช่วยเหลือจาก Mikhail Korobov จากรัสเซีย ตามที่เคย blog ไปเมื่อเกือบ 6 เดือนที่แล้ว ถือว่าดองไว้นานมากเหมือนกัน เนื่องจากติดภารกิจต่าง ๆ

อัปโหลด 0.2.6-1 เข้าที่ Debian experimental แล้วครับ ไว้รอย้ายเข้า Sid หลังจากที่ Wheezy ออกแล้ว

ป้ายกำกับ:

22 มกราคม 2556

swath vulnerability

เมื่ออาทิตย์ที่แล้ว มีรายงาน Debian #698189 ว่า swath มีช่องโหว่ด้านการรักษาความปลอดภัย คือสามารถเกิด buffer overflow และนำไปสู่การ execute คำสั่งด้วยสิทธิ์ของผู้ใช้ได้

ปฏิกิริยาแรกที่เห็นรายงานนี้คือ ผมไม่แปลกใจเลย เพราะก็เคยบ่นไปบ้างในหลาย ๆ โอกาส ว่าเป็นโค้ดที่ยังต้องทำความสะอาดอีกเยอะ (โดยที่ไม่ใช่โค้ดของตัวเอง) ดังนั้น พอเห็นรายงานบั๊กนี้ ครั้งแรกเลยอยากข้ามไปเสีย แล้วบอกเขาว่า คุณจะเจออีกเยอะเลยแหละ ไม่ใช่แค่จุดนี้ แต่จะตอบแบบนั้นมันก็ซี้ซั้วไปหน่อย ความรับผิดชอบเรายังต้องมีอยู่ ก็เลยดำเนินการแก้ security bug นี้ตามกระบวนการในที่สุด คือ

  1. แก้บั๊กที่ upstream SVN (rev 238)
  2. backport แพตช์มาที่รุ่นใน Sid โดยต้องปรับแพตช์เล็กน้อย แล้วอัปโหลดเป็นรุ่น 0.4.3-3
  3. request ขอ unblock 0.4.3-3 เพื่อให้แพกเกจได้ย้ายเข้า Wheezy ที่กำลัง freeze อยู่
  4. backport แพตช์มาที่รุ่นใน Squeeze โดยต้องปรับแพตช์อีกครั้ง เตรียมแพกเกจรุ่น 0.4.0-4+squeeze1 เอาไว้ แล้วติดต่อ security team ของ Debian เพื่อขออัปโหลดเข้า security.debian.org แต่ปรากฏว่าทีม security เห็นว่าเป็นช่องโหว่ไม่ร้ายแรง สามารถรอได้ จึงบอกให้ผมอัปโหลดเข้า stable-proposed-updates แทน อย่างไรก็ดี ทีม security ได้สร้าง security tracker แบบไม่มีเลขอ้างอิง DSA ให้เพื่อติดตามการแก้ปัญหา
  5. build package ใหม่อีกครั้งโดยเปลี่ยนเป้าหมายจาก stable-security เป็น stable แล้ว request ขอ upload เข้า stable พอได้รับอนุญาตแล้วจึงอัปโหลด จากนั้นก็รอ Debian ออกรุ่น stable update ครั้งต่อไป

ไม่ใช่เรื่องเล่น ๆ เลยนะนี่ กับบั๊กเล็ก ๆ อย่างนี้ กับโค้ดที่เขียนโดยไม่ระวัง ดังนั้น ต่อไปนี้คงต้องพยายามมากขึ้นที่จะทำความสะอาดโค้ดของ swath

สำหรับ swath รุ่นถัดไป โค้ดมีการยกเครื่องขนานใหญ่ ตามที่เคย blog ไป จึงมีการทำความสะอาดบ้างตามสมควร แต่คงยังเหลือให้ทำอีกเยอะ ก็อาจจะทยอยตัดรุ่นออกมาเรื่อย ๆ ให้ช่วยกันทดสอบต่อไปครับ ใครจะมาช่วยกันวิจารณ์โค้ดก็ยินดีครับ

ป้ายกำกับ: ,

02 มกราคม 2556

Thanks

ขอขอบคุณ ผู้สนับสนุนงานพัฒนาของผมในเดือนธันวาคมที่ผ่านมา คือคุณศิลา (หิน) ชุณห์วิจิตรา และบุคคลนิรนามที่ได้เปิดเผยตัวกับผมหลังจากที่ได้โอนเงินสนับสนุนให้ผมเป็นประจำทุกเดือนในปี 2555 ที่ผ่านมา แต่ท่านได้ขอสงวนสิทธิ์ไม่เปิดเผยตัวต่อสาธารณะ

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

Happy GNU Year 2013 ครับ!

ป้ายกำกับ:

hacker emblem