Theppitak's blog

My personal blog.

06 พฤษภาคม 2549

Intro to Debian Process (3)

ตอนก่อน:

ก่อนจะพูดเรื่องประเด็นปลีกย่อยของการสร้างแพกเกจ คิดว่าพูดถึงกระบวนการต่อให้จบก่อนดีกว่า

Debian Developer

ก่อนอื่น พูดถึงสภาเจไดก่อน ผู้ที่จะมีสิทธิ์อัปโหลดแพกเกจเข้า debian pool ได้ จะต้องเป็นผู้ที่มี OpenPGP public key อยู่ใน debian keyring ซึ่งกว่าจะได้เอากุญแจไปคล้องได้ ก็ต้องผ่านกระบวนการทำงานต่างๆ เพื่อเป็นการรับประกันว่า คนคนนั้นมีคุณสมบัติเพียงพอที่จะร่วมพัฒนา debian อย่างมีคุณภาพได้ ซึ่งผมก็ได้รับการบอกเล่ามาว่า ต้องใช้เวลาเป็นปีๆ จนหลายคนถอดใจไปก่อน ดังนั้น เวลาที่ได้พบ Debian Developer ผมจึงรู้สึกเหมือน apprentice ได้พบเจได หรือสาวกได้พบนักบุญถ้าเปรียบเทียบกับประชากรในศาสนา ปานนั้นเลย

ตอนนี้ มี Debian Developer (DD) ร่วมๆ สองพันคน จากทั่วโลก นี่ถ้านับ maintainer ทั้งหลายที่ยังไม่ได้ตำแหน่ง DD อีกเยอะแยะ รวมกับ user community ที่คึกคัก ก็นับได้ว่า debian เป็นโครงการที่ใหญ่และเป็นสากลมากโครงการหนึ่ง

ผู้ที่จะเข้าเป็น DD ได้ จะต้องผ่าน New Maintainer Process หรือเรียกย่อๆ ว่า NM (อย่าเพิ่งแปลกใจครับ debian เขายังมีตัวย่ออีกเยอะให้ใช้ เป็นการเจาะจงศัพท์เทคนิคว่าไม่ใช่หมายถึงคำทั่วไป) ซึ่งถ้าดูจาก Checklist แล้ว จะเห็นว่าผู้สมัคร NM จะต้องมีประสบการณ์ทำงานกับ debian มาระยะหนึ่งแล้ว จนมี DD ไว้วางใจ สามารถ advocate ผู้สมัครคนนั้นได้ แล้วก็จะมีการสอบสัมภาษณ์ความเข้าใจในปรัชญาต่างๆ ของ debian ทดสอบความชำนาญต่างๆ จนผ่านทุกขั้นตอนแล้ว จึงจะได้เป็น DD

Web of Trust

ใน NM checklist จะมีขั้นตอนแรกๆ ขั้นตอนหนึ่งที่สำคัญที่ควรกล่าวถึง คือการยืนยันตัวตนด้วย OpenPGP key ที่มี Web of Trust ที่แน่นหนา กล่าวคือ มีผู้เซ็นยืนยันตัวตนของเจ้าของกุญแจเยอะพอ ว่ากุญแจนี้เป็นของคนคนนี้จริงๆ (เพราะในอินเทอร์เน็ต ใครๆ ก็สร้างกุญแจได้ โดยอาจจะแอบอ้างว่าเป็นของธนาคารก็ได้ ถ้าไม่มีการตรวจสอบตัวตนดังกล่าว เป็นต้น แต่กรณีของธนาคาร อาจใช้การตรวจสอบผ่าน Certificate Authorities (CA) มากกว่าแบบกระจายด้วย Web of Trust) และกุญแจนี้ จะใช้ในการเซ็นรับรอง debian package ในวันข้างหน้าเมื่อได้ทำหน้าที่ DD ว่าแพกเกจมาจาก maintainer ตัวจริง หรือมาจากแหล่งที่เชื่อถือได้ โดยตรวจสอบกับ public key ที่ไปคล้องไว้ใน debian keyring เพื่อกันแพกเกจปลอมปนที่จะเข้ามาใน debian pool

เพื่อรับประกัน web of trust นี้ เวลาคน debian มีการพบปะกัน จึงมักถือโอกาสจัด Key Signing Party เสมอๆ เพราะเป็นโอกาสที่จะได้เซ็นยืนยันเจ้าของกุญแจเมื่อได้พบตัวจริง โดยในการเซ็นนั้น จะมีขั้นตอนการตรวจสอบพอควร เช่น ต้องมีบัตรประจำตัวประชาชน หรือหนังสือเดินทาง มายืนยัน (เพื่อไม่ให้มีใครมาแอบอ้างง่ายๆ ว่าตนคือบิล เกตส์ หรือ RMS อะไรทำนองนี้) รวมทั้งคอมพิวเตอร์ที่ใช้ในการเซ็นก็จะต้องแน่ใจว่าปราศจากการปลอมแปลงคำสั่งด้วย

Package Sponsoring

แล้วก็มาถึงคำถามยอดฮิตที่ผมถูกผู้อ่าน blog ถาม และผมเองก็เคยสงสัยเป็นอันดับต้นๆ เหมือนกัน ว่าการ sponsor แพกเกจมันหมายถึงอะไร

จากขั้นตอนการกลั่นกรอง DD สุดหินที่ได้กล่าวไป ความจริงเป็นการรับประกันคุณภาพของ debian เอง แต่ขณะเดียวกัน ก็เปิดโอกาสให้ผู้ที่ไม่ได้เป็น DD ได้ร่วมพัฒนาได้ด้วย โดยอาจจะแสดงความจำนงขอดูแลแพกเกจได้ แต่เมื่อจะอัปโหลดเข้า debian pool ซึ่งจำเป็นต้องมีลายเซ็น DD กำกับ ก็สามารถร้องขอให้ DD คนใดคนหนึ่งช่วยเซ็นและอัปโหลดให้ได้ ซึ่งการเซ็นและอัปโหลดให้ดังกล่าวนี่แหละ ที่เรียกว่าการ sponsor แพกเกจ

แน่นอนว่าลายเซ็นนั้น หมายถึงการร่วมรับผิดชอบกับ maintainer ด้วยส่วนหนึ่ง แม้ข้อมูลในแพกเกจจะแสดงชื่อของ maintainer ว่าเป็นเจ้าของ ไม่ใช่ DD เจ้าของลายเซ็น แต่ในคิวสำหรับอัปโหลดก็จะมีการบันทึกไว้ ว่า DD คนไหนอัปโหลดให้ ดังนั้น กว่าจะเซ็นให้ได้ DD จะต้องตรวจสอบคุณภาพของแพกเกจเสียก่อน โดยปกติจึงมีการตรวจแก้ก่อนอัปโหลด

มีหลายวิธีที่ maintainer จะหา sponsor อาจจะด้วยการทำงานร่วมกันอย่างใดอย่างหนึ่งมาก่อน เช่น คุยงานผ่าน mailing list หรือคุยกันในงานประชุม แต่กรณีอย่างนั้นคงครอบคลุมแพกเกจทั้งหมดได้ยาก โดยทั่วไปจึงมักใช้ debian-mentors mailing list หรือ IRC ห้อง #debian-mentors ที่ irc.debian.org รายละเอียดต่างๆ อ่านได้จาก debian-mentors FAQ

เนื่องจากความยากลำบากในการหา sponsor เมื่อได้ sponsor แล้ว จึงควรถือโอกาสแก้ปัญหาต่างๆ ในแพกเกจตามที่ sponsor ชี้ให้ได้มากที่สุด ด้านหนึ่ง เป็นโอกาสที่จะได้ปรับปรุงคุณภาพแพกเกจ และอีกด้านหนึ่ง เป็นการลดภาระที่ต้องรบกวน sponsor อีกบ่อยๆ ในอนาคต

NEW Queue

สำหรับการอัปโหลดที่มีไฟล์ซอร์สใหม่ที่ไม่เคยอยู่ใน debian pool มาก่อน (ไม่นับ debian diff ที่เป็นเพียงการออก release ใหม่) แพกเกจที่อัปโหลดจะเข้าไปอยู่ในคิว NEW เพื่อรอตรวจรับโดยทีม ftp-master โดยเป็นการตรวจสอบทั่วไปเพื่อกันความเสี่ยงเรื่องการฝังม้าโทรจันหรืออะไรทำนองนี้ โดยปกติจะใช้เวลาเฉลี่ยไม่เกินหนึ่งเดือน

แพกเกจใหม่ที่ผ่านการตรวจรับในคิว NEW แล้ว หรือแพกเกจที่เพียงออกรุ่นใหม่โดยไม่ได้มีซอร์สที่ไม่เคยอัปโหลดมาก่อน ก็จะตรงเข้าสู่ incoming เพื่อรอเข้าสู่ unstable หรือ experimental pool ต่อไป แล้วแต่กรณี

เมื่อแพกเกจสถิตอยู่ใน unstable ครบกำหนด 10 วันโดยไม่มี bug ร้ายแรง แพกเกจนั้นก็จะเคลื่อนเข้าสู่ testing โดยอัตโนมัติ

วันนี้ยาวหน่อย เพราะจะเก็บรายละเอียดที่สำคัญให้ครบ ตอนหน้าน่าจะเขียนถึงประเด็นที่พบบ่อยในการ build debian package ได้

0 ความเห็น:

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

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

hacker emblem