Theppitak's blog

My personal blog.

04 กุมภาพันธ์ 2552

GNOME non-source-dir build

แล้วก็มาถึงเรื่อง VPATH build สำหรับ GNOME เสียที ซึ่งก็ปรากฏว่าไม่ได้ง่ายแบบทีเดียวออกเหมือน Mozilla เนื่องจาก GNOME มีแพกเกจแยกย่อย และใช้มอดูลภายนอกประกอบด้วยมากมาย

ถ้าคุณยังไม่มีพื้นฐานเรื่องการใช้ JHBuild ก็มี ชุดบทความภาษาไทย เขียนไว้ที่ GNOME ไทย และสามารถอ่าน คู่มือฉบับล่าสุด จาก GNOME Library ได้ และยังมีข้อมูลบางอย่างที่เป็นประโยชน์ที่ GNOME Live ด้วย

หลังจากตั้งค่า config ต่าง ๆ ของ JHBuild แล้ว ก็สามารถกำหนดให้ JHBuild คอมไพล์โปรแกรมนอก source tree ได้ โดยกำหนดตัวแปร buildroot ใน ~/.jhbuildrc เช่น:

buildroot = os.path.expanduser('~/build/gnome')

แค่นี้แหละ สำหรับการตั้งค่า JHBuild ง่ายมากใช่ไหม? แต่สิ่งที่ตามมานั้น ไม่ได้ง่ายอย่างที่คิด เพราะปรากฏว่ามีหลายมอดูลทีเดียวที่ build นอก source tree ไม่ผ่าน!

นี่น่าจะเป็นเหตุผลที่แฟ้ม sample.jhbuildrc ที่มากับ JHBuild ไม่ได้มีตัวอย่างการตั้ง buildroot เลย หรือในทางกลับกัน อาจเป็นเพราะไม่มีตัวอย่างนี่เอง ที่ทำให้แทบไม่มีใครสนใจจะทดสอบการ build แบบนี้เลย

ไม่เป็นไร ไหน ๆ เราก็มีสิทธิ์ชงเองได้ ในบรรดามอดูลที่ build ไม่ผ่านนั้น สามารถแบ่งได้เป็น 2 พวก:

  1. พวกไม่รองรับ VPATH build เลย ซึ่งส่วนมากเป็นมอดูลภายนอก เช่น samba4, opal, ptlib บางโครงการไม่ใช้ automake หรือแม้กระทั่ง autoconf เลยด้วยซ้ำ
  2. พวกที่รองรับ VPATH build แต่มีข้อผิดพลาดในกฎการ make หรือในซอร์สโค้ด โดยเฉพาะมอดูลที่มีการ generate source ทั้งหลาย

หลังจากอ่านคู่มือ JHBuild ในส่วนที่เกี่ยวกับ Module Set File Syntax ก็พบว่าสามารถกำหนดให้ยกเว้นการ build นอก source tree สำหรับมอดูลที่ไม่รองรับได้ เพียงแต่ module set ปัจจุบันของ JHBuild ยังไม่มีข้อมูลพวกนี้เท่านั้น ก็เลยชงเองซะ โดย file GNOME #569778 เพื่อไล่เติมข้อมูลสำหรับมอดูลที่ไม่รองรับ พร้อมทั้งแก้บั๊กในแพกเกจที่รองรับแต่มีข้อผิดพลาดด้วย

สำหรับแพกเกจที่มีปัญหา ก็ file bug ไปที่แพกเกจนั้น ๆ เป็นรายตัว โดยดูรายชื่อได้จาก dependency ของบั๊กดังกล่าว ตลอด 5 วันที่ผ่านมา ก็ file ไป 15 บั๊ก ปิดไปแล้ว 8 สนุกใช่เล่น เพราะแต่ละบั๊ก ลักษณะปัญหาจะไม่เหมือนกัน ต้องวิเคราะห์ไปตามกรณี ช่วยตัวเองแล้ว ยังได้ contribute ให้ GNOME ไปในตัว

สรุปว่าตอนนี้ก็ build ผ่านไปเกือบหมดแล้วครับ ที่เหลือก็ตามตรวจแก้มอดูลที่เหลือต่อไป และรอเขารับแพตช์

ป้ายกำกับ:

0 ความเห็น:

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem