GNOME 2.10 Tinderbox
ช่วง GNOME 2.5 นู้น ผมตาม patch source ของ GNOME จาก GARNOME ซึ่งเป็นระบบ build จากซอร์สตามลำดับโดยอัตโนมัติ คล้าย portage ของ FreeBSD หรือ emerge ของ Gentoo แต่ความยากลำบากของ GARNOME คือ เวลาจะ update แต่ละที ต้องรอดาวน์โหลด source tarball จนเงก ยิ่งเราตาม patch ใน development branch กระชั้นเท่าไหร่ ก็ต้องดาวน์โหลดบ่อยขึ้น แล้วก็จะเข้าใกล้วงจรชีวิตชาว gentoo ขึ้นเรื่อยๆ คือวันๆ เอาแต่โหลดซอร์สและคอมไพล์
มาถึงช่วง GNOME 2.7 เริ่มอาจหาญลองคอมไพล์จาก CVS snapshot ไปเลย เพราะไหนๆ bandwidth เราก็ต่ำ แถมตาม bleeding edge กระชั้นขนาดนี้ แบบนี้น่าจะเหมาะกว่า ช่วงแรกๆ ค่อนข้างหวั่นๆ กับการใช้ระบบที่ไม่เสถียรมากๆ กับงานในชีวิตประจำวัน แต่ริจะเป็นแฮ็กเกอร์ก็ต้องอยู่กับมันให้ได้
ระบบการ build GNOME จาก CVS มีเครื่องมือช่วยคือ jhbuild ซึ่งช่วย update CVS และช่วยคอมไพล์ตามลำดับโดยอัตโนมัติ ซึ่งใช้ไปๆ ก็รู้สึกเป็นธรรมชาติมากขึ้น สามารถ update ได้ถี่เท่าที่ต้องการ แถมไม่เปลือง bandwidth เหมือน GARNOME การคอมไพล์ก็เป็นแบบ incremental เหมือนตอนทำ project เอง ต่อมาภายหลัง ได้ CVS account ก็ commit ได้เลยทันที (ตามสิทธิที่ตกลงกับ maintainer)
ทั้ง GARNOME และ jhbuild จะติดตั้งและรันเวอร์ชันคอมไพล์เองแยกกับระบบปกติ ดังนั้น ถ้าช่วงไหน development branch เกิดความไม่เสถียรขึ้นมา ก็เปลี่ยน session ไปเข้ารุ่น stable ของ distro ตามปกติได้
ใช้ jhbuild ก็มีความสุขดี เห็นแว้บๆ มานานแล้วว่าทำ tinderbox ได้ด้วย แต่ก็ใช้วิธีสั่ง build แบบ interactive เรื่อยมา เพื่อควบคุมทุกขั้นตอนเอง แต่วันนี้เกิดอยากลองทำ tinderbox ดู รู้สึกมีความสุขขึ้น เพราะสามารถปล่อยมัน build เป็น background process ไปได้เลย แล้วไปทำงานอย่างอื่นตามปกติ เสร็จแล้วมันจะทำ tinderbox ให้โดยอัตโนมัติ แล้วเราก็กลับมาดูทีหลัง ว่าตัวไหนไม่ผ่านมั่ง ก็กลับไปแก้เป็นจุดๆ เอา (เทียบกับแบบ interactive คือ ต้องคอยชำเลืองดูหน้าต่างที่ build อยู่เรื่อยๆ)
ส่วนการเพิ่มความเร็วในการคอมไพล์ ก็ใช้ ccache ช่วย และก็ได้ลองใช้ distcc ช่วยกระจายงานไปคอมไพล์หลายเครื่องดู แต่พอดีที่บ้านมีไม่กี่เครื่อง แต่ละเครื่องสเปคต่ำๆ ทั้งนั้น distcc เลยไม่ได้ช่วยเท่าไหร่ พบว่าบางทีมีการหยุดรอเครื่องที่ช้าที่สุดอีกต่างหาก แต่ ccache นั้น ช่วยได้มากทีเดียว โดยเฉพาะเวลาที่ต้อง make distclean แล้ว configure ใหม่ เหอะๆ
ปล. พักนี้ออกมาแรดได้ เพราะลูกศิษย์ไปเข้าค่ายพักแรมกัน เลยลุยแปล GNOME ไปอีกนิดหน่อย วันนี้ได้ไฟล์แปลจาก Mark มาสมทบอีก ว้าวๆ อยากดู Weekly status ของอาทิตย์นี้จัง ^_^