How to build .deb package

จะช่วยพี่เทพทดสอบ patch ของบั๊ก libthai ใน Ubuntu Feisty ก็พบปัญหาแบบงี่เง่าสุดๆ คือ build .deb ไม่เป็น (ทำเป็นแต่ RPM)

สุดท้ายก็ทำได้ด้วยความช่วยเหลือจากคุณ sugree (อีกแล้ว) เลยต้องจดไว้กันลืม ถือโอกาสยกตัวอย่างของจริงเลย

  • ดาวน์โหลด source package (.tar.gz) จากที่นี่ แล้วแตก tar xvfz
  • ดาวน์โหลด patch (diff.gz) มาไว้ในไดเรคทอรีที่สร้างไว้จากข้อตะกี้
  • patch มันซะ แต่ว่ามันเป็นไฟล์ gzip มาอีกชั้น เลยต้องมีทริกนิดนึง ใช้ zcat ช่วย
    zcat pango-libthai_0.1.6-3ubuntu1.diff.gz | patch -p1

  • ทำการสร้าง .deb ด้วยคำสั่ง
    debuild -i -us -uc -b

  • เนื่องจาก Feisty ลงใหม่ยังไม่มีอะไรเลย มันจึงไม่มี debuild แต่ตอนนี้โลกพัฒนาไปมาก มี command-not-found แสนจะสะดวกสบาย ลงแพกเกจ devscripts เพิ่ม
  • pango-libthai ต้องการ dependency สองสามตัวที่ไม่ลงมาในระบบมาตรฐาน วิธีแก้ก็ก็อปตัวที่มันฟ้องมา sudo apt-get install จากนั้นสั่ง debuild ใหม่
  • แพกเกจที่ได้จะอยู่นอกไดเรคทอรีนั้นหนึ่งชั้น เป็นไฟล์ .deb ทดสอบติดตั้งแพกจเกจโดยสั่ง sudo dpkg -i

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

Comments

ขอบคุณมากที่ช่วย comment ในบั๊ก ตอนนี้เขาทำให้ทันใจเลย โดย build pango ตัวใหม่แบบเปิด libthai แทนการใช้ pango-libthai ข้างนอก ก็เป็นสิ่งที่ตอนแรกไม่คิดว่าจะได้ก่อน feisty ด้วยซ้ำ ยังคิดว่าต้องใช้ pango-libthai ไปก่อน รอใช้ upstream module หลัง feisty อยู่เลย :-)

พูดถึงการ build deb.. ตอนบอกผมก็ลืมคิด ว่ามาร์คอาจจะไม่ได้ใช้ amd64 เหมือนผม อาจต้อง build เอง ขออภัยอย่างแรง..

วิธี build deb ที่ง่ายและตรงที่สุด:

$ dget http://linux.thai.net/~thep/ubuntu/source/pango-libthai/pango-libthai_0.1.6-3ubuntu1.dsc
$ dpkg-source -x pango-libthai_0.1.6-3ubuntu1.dsc
$ sudo apt-get build-dep pango-libthai
$ cd pango-libthai-0.1.6
$ debuild

อัพเดตของ Feisty มาเมื่อคืน บอกว่าต้องเอา pango-libthai ออก อ่านเจอแล้วยิ้มเลย

เพิ่งรู้ว่ามี dget ด้วยนะเนี่ย!

ป.ล. อยากให้พวกสาวกโปรแกรมค่ายต่างๆ หันมา contribute เยอะๆ แบบพี่เทพจัง