JHBuild

คอมไพล์ GNOME ใช้เองด้วย JHBuild - เรียกใช้โปรแกรม

10 September, 2007 - 10:30
Submitted by thep

build กันเสร็จแล้ว ก็มาเริ่มใช้โปรแกรมที่ build กันนะครับ

เรื่องของ DBus

ก่อนจะเริ่มใช้ มีประเด็นเรื่อง DBus ที่เราวางแผนไว้ว่าจะใช้ของระบบ ปัญหาก็คือ โดยปกติ DBus จะรู้จัก service เฉพาะของระบบเท่านั้น ถ้าบังเอิญ GNOME รุ่นใหม่ที่เรา build มีการสร้าง service ใหม่โดยไม่ได้ register กับ DBus โปรแกรมบางโปรแกรมที่เรา build ก็จะเรียกไม่ขึ้น หรือไม่ก็ crash ไปดื้อ ๆ

เราทำให้ DBus รู้จัก service ของเราได้โดยเพิ่มแฟ้ม /etc/dbus-1/session-local.conf และ /etc/dbus-1/system-local.conf โดยมีเนื้อหาดังนี้:

คอมไพล์ GNOME ใช้เองด้วย JHBuild - คอมไพล์

7 September, 2007 - 10:27
Submitted by thep

ติดตั้ง JHBuild พร้อม config ไปแล้วก็ลงมือ build กัน

วิธีที่จะสั่ง build แพกเกจทั้งหมดที่ config ไว้ โดยเริ่มตั้งแต่ check out, configure, make, install ก็คือ:

$ jhbuild build

JHBuild จะตรวจสอบ dependency ของ module ที่กำหนด แล้วไล่ build ตั้งแต่ปลายสุดขึ้นมาตามลำดับ

แต่คุณก็เลือก build เฉพาะสิ่งที่ต้องการ แทนที่จะ build GNOME desktop ทั้งตัวได้เหมือนกัน:

$ jhbuild build gtk+

จะ build สิ่งที่ gtk+ ต้องการตามลำดับขึ้นมาจนถึงตัว gtk+ เอง

คอมไพล์ GNOME ใช้เองด้วย JHBuild - ติดตั้ง JHBuild

6 September, 2007 - 08:41
Submitted by thep

ตอนที่แล้ว วางแผนกันแล้ว คราวนี้มาเริ่มติดตั้ง JHBuild กัน

Check Out JHBuild

JHBuild รุ่นล่าสุดสำหรับ GNOME สามารถ check out ได้จาก GNOME SVN:

$ svn co http://svn.gnome.org/svn/jhbuild/trunk jhbuild

คุณสามารถใช้โพรโทคอล svn:// ก็ได้ ถ้า http:// ใช้ไม่ได้ในเครือข่ายของคุณ:

$ svn co svn://svn.gnome.org/svn/jhbuild/trunk jhbuild

(สำหรับคนที่มี svn account กับ GNOME ก็ใช้ svn+ssh:// นะครับ)

ติดตั้ง JHBuild

เมื่อ check out มาแล้ว สำรวจดูจะเห็น autogen.sh และ configure.ac ดูเหมือนต้องใช้ autotools แต่ไม่ต้องครับ กรณีนั้นใช้กับการ build พวกเอกสารเท่านั้น ถ้าคุณเพียงแต่จะใช้ build โปรแกรมอย่างเดียว ก็นี่เลย:

$ make -f Makefile.plain install

จะติดตั้ง jhbuild ไว้ที่ $HOME/bin ของคุณ แถมติดตั้งเมนูเรียก jhbuild แบบ GUI ไว้ที่เมนู Applications > Programming อีกต่างหาก.. แต่เอาเข้าจริง ผมไม่ได้ใช้ GUI หรอก เพราะส่วนมากจะสั่ง build แบบ background มากกว่า ดังจะกล่าวต่อไป

ตั้งค่า JHBuild

ค่า config ของ jhbuild กำหนดที่ ~/.jhbuildrc เป็นแฟ้มภาษา python โดยจะมีตัวอย่างของแฟ้มนี้อยู่ในแฟ้ม sample.jhbuildrc ใน source tree ของ jhbuild คัดลอกไปแก้ได้เลย ค่าสำคัญที่น่าสนใจได้แก่:

svnroots['svn.gnome.org']
สำหรับผู้ที่มี SVN account ก็ควรกำหนดเป็น svn+ssh://... URL จะได้ commit ได้ด้วย แต่สำหรับ anonymous user ก็ไม่จำเป็นต้องตั้งค่านี้ ยกเว้นกรณีที่ค่าปริยายใช้ไม่ได้ในเครือข่ายของคุณ
moduleset

คอมไพล์ GNOME ใช้เองด้วย JHBuild - วางแผน

5 September, 2007 - 15:14
Submitted by thep

จัดให้ตามคำขอครับ สำหรับผู้สนใจใช้ GNOME แบบ bleeding edge ซึ่งมีหลายวิธี ตามดีกรีความเป็น geek ของคุณ:

  • ใช้ distro package เช่น ใช้ ubuntu รุ่นที่ยังไม่ออก (ปัจจุบันคือ gutsy) หรือถ้าเป็น debian ก็ลองใช้จาก experimental แบบนี้อาจจะง่าย ไม่ต้องคอมไพล์เอง แต่ความสดใหม่อาจไม่เท่าวิธีอื่น
  • ใช้ GARNOME เป็นการคอมไพล์จาก released tarball เหมาะสำหรับผู้ติดตาม milestone ต่าง ๆ โดยเอาซอร์สโค้ดรุ่นล่าสุดที่ release (รวมทั้ง development branch ตั้งแต่ก่อน beta) มาคอมไพล์เอง
  • ใช้ JHBuild เป็นการคอมไพล์จาก SVN snapshot เหมาะสำหรับผู้ติดตามกระชั้นชิด และเชี่ยวชาญการแก้ปัญหาด้วยตัวเอง หรืออาจจะต้องการร่วมพัฒนาในระดับลึก

บทความนี้จะอธิบายวิธีที่ใช้ JHBuild นะครับ