จากที่ขึ้นหัวข้อข่าวมาสักระยะหนึ่ง วันนี้แอบมางาน Thailand Mini Debcon 2010 แบบงงๆ เพราะไม่ได้ตั้งตัว เนื่องจากการเมืองที่คุกรุ่นการจะกลับไปกรุงเทพในช่วงนี้คงต้องพิจารณาสีกหน่อย เอาเป็นว่าเสร็จกิจกรรมจากงาน IT Esaan ที่จังหวัดนครราชสีมา ผมก็เลยเดินทางต่อมายังจังหวัดขอนแก่น งาน Thailand mini debcamp 2010 จัดขึ้นที่ อาคารสารสนเทศ งานนี้ได้พ่องานคือชุมชน Debian ในประเทศไทยจัดงานนี้ขึ้นขึ้นมา สำหรับบล็อกหัวข้อนี้จะเป็นรายงานสด ตามรายกิจกรรมที่เกิดขึ้นในวันนี้ ซึ่งหัวข้อหลักวันนี้คือ
Debian Social Contract (DSC) & Debian Free Software Guidelines
บรรยายโดยคุณ Paul Wise ขอสรุปความสั้นๆ ละกันนะครับ วันนี้เป็นวันแรกสำหรับการเตรียมตัวและทำความเข้าใจถึงแนวทางการพัฒนาซอฟต์แวร์เสรีบน Debian ซึ่งทีมงาน DD อธิบายให้พวกเราเข้าใจถึง Debian Social Contract ซึ่งเป็นเหมือนสัญญาใจระหว่างนักพัฒนาซึ่งแนวทางและจุดมุ่งหมายเพื่อการพัฒนาซอฟต์แวร์เสรีร่วมกัน สำหรับข้อมูลเพิ่มเติมสามารถดูได้ที่ Debian Social Contract
สำหรับ Debian Free Software Guidelines จะพูดถึงเรื่องสัญญาอนุญาติที่ระบุใช้ในซอฟต์แวร์เสรี ซึ่งสัญญาอนุญาติหลักที่มีการเลือกใช้ได้แก่ GPL, LGPL, AGPL รวมไปถึง Creative Common เช่นกัน
Debian Packaging Short Demo
บรรยายโดยคุณ Yukiharu YABUKI มา demo โครงการ debian package ให้เราดูว่าใน debian package จะต้องมีส่วนประกอบอะไรบ้าง ซึ่งการที่จะเข้าใจโครงการสร้างของ debian package ได้ง่ายโดยยกตัวอย่าง package ชื่อ ulogd เป็นตัวอย่าง คุณ YABUKI ใช้เครื่องมือจัดการ package อย่าง aptitude ช่วยในการดาวน์โหลดซอร์สโค้ด apt-get source <package-name>
จาก resporitory และติดตั้ง dependency package aptitude build-dep <package-name>
สำหรับใช้ build package ตัวอย่างข้างต้น เมื่อได้ dependency package ครบแล้ว ก็สั่ง build โดย Debian จะมีเครื่องมือในการตรวจสอบ package ด้วยชื่อ lintian ซึ่ง lintian จะเป็นตัวบอกและแนะนำเราถึงปัญหาและการแก้ปัญหาในการ build package นั้นๆ
Debian Package policy
พี่เทพ มาแนะนำวิธีการ maintain debian package โดยแนะนำให้อ่านข้อมูลขั้นตอน กรอบวิธีและนโยบายที่เว็บไซต์ http://debian.org/devel
- New Maintainer 's Guide
- Developer 's referance
- Debian policy manual
ส่วนที่ต้องอ่านเพิ่มเติมคือ debconf และเอกสารเกี่ยวกับ filesystem hierarchy standard ซึ่งต้องเข้าใจ directory พื้นฐานของระบบปฏิบัติการ Linux
พี่เทพมาต่อเรื่อง Debian Package อีกนิดหน่อยเรื่องโครงการสร้างของ package โดยยกตัวอย่างจาก libdatrie อธิบายโครงสร้างของ package, rules และ control files ต่อด้วย
YABUKI มาคุยเรื่อง package modify ต่อโดยยกตัวอย่าง package ที่ชื่อ migemo
พี่เทพมาอธิบายเรื่อง Deb Helper ในไฟล์ rules ความหมายของคำสั่งต่างๆ ที่กำหนดในไฟล์ rules อันนี้อธิบายใน DH6 จากนั้น Wise อธิบายเกี่ยวกับ DH7 เพิ่มเติม เรื่องการ override dh_strip ในไฟล์ rules เพื่อให้ง่ายในการจัดการขั้นตอนต่างๆ rules อีกทั้งยัง
YABUKI อธิบายเรื่อง CDBS ต่อ แต่รู้สึกยังงงๆ เพราะกำลังพยายามหาความแตกต่างระหว่าง DH กับ CDBS เท่าที่ฟังคำอธิบายพบว่าเราสามารถเรียกใช้ class ของภาษาต่างๆ ได้โดยตรง ไม่ว่าจะเป็น Perl, Ruby หรือ Python จาก CDBS rules ได้
Wise มาอธิบายเพิ่ม เกี่ยวกับการ patch แพคเกจ ไฟล์ debian/patches/series จะเก็บไฟล์ patch เอาไว้ วิธีการจัดการไฟล์ patch ง่ายๆ ใช้โปรแกรม quilt เพื่อจัดการ series ของไฟล์ patch ซึ่งใช้คำสั่ง push/pop ลง stack ตัวแปร QUILT_PATCHES กำหนดที่อยู่ของไฟล์ patch เช่น debian/patch นอกจากนี้ยังสามารถสร้าง patch ไฟล์ได้โดยใช้ quilt ได้ด้วยเช่นกัน จบด้วย Debian Source format รุ่น 3
-- จบวันแรก --