reportbug - เมื่อคุณเจอบั๊ก

เช่นเดียวกับโครงการซอฟต์แวร์เสรีทั่วไป คุณสามารถรายงานบั๊กที่พบขณะใช้เดเบียน เพื่อช่วยให้นักพัฒนาสามารถปรับปรุงแก้ไขข้อบกพร่องได้

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

ถ้าระบบของคุณยังไม่มีแพกเกจนี้ ก็ติดตั้งก่อน

# apt-get install reportbug

สมมุติว่าคุณเซ็ตระบบเมลในเครื่องของคุณเรียบร้อยแล้ว เวลาจะรายงานบั๊กสำหรับแพกเกจ p (เปลี่ยนชื่อเอานะครับ) ก็เพียงสั่ง:

$ reportbug p

reportbug จะตรวจสอบรุ่นที่คุณติดตั้งก่อน ถ้าไม่ใช่รุ่นใหม่ล่าสุด ก็จะถามว่าจะลองปรับรุ่นก่อนหรือเปล่า เพื่อป้องกันการรายงานบั๊กเก่าที่อาจแก้ไขไปแล้ว คุณสามารถยกเลิกแล้วมาปรับรุ่นก่อนได้

จากนั้น reportbug ก็จะแสดงรายการบั๊กต่าง ๆ ของแพกเกจที่คุณรายงาน โดยคุณสามารถเลือกดูเนื้อหาของบั๊กต่าง ๆ ได้ โดยตอบเป็นหมายเลขตัวเลือก (ไม่ใช่หมายเลขบั๊ก) เช่น:

Bugs fixed in subsequent releases (7 bugs)
   1) #133348 [FIXED libx11 2:1.1.3-1]: xlibs-dev: XGetCommand man page lies
   2) #392618 [FIXED libx11 2:1.1.2-1]: Unneeded define in debian/rules.
   3) #400443 [FIXED 2]: libx11-6: multiple wrong calls to LockDisplay and Unlo
   4) #427296 [FIXED libx11 2:1.1.3-1]: xterm: xcb_xlib.c:50: xcb_xlib_unlock: 
   5) #225839 [FIXED libx11 2:1.1.2-1]: libx11-dev: XQueryBestCursor(3x) should
   6) #393434 [FIXED libx11 2:1.1.3-1]: libx11-dev: error in manual page for Xr
   7) #399094 [FIXED libx11 2:1.1.2-1]: mismatch between docs and header (struc

Outstanding bugs -- Important bugs; Unclassified (1 bug)
   8) #366355: libx11: ssh -X between Sarges XF86 and Sids Xorg7 broken

Outstanding bugs -- Normal bugs; Unclassified (2 bugs)
   9) #349251: CVE-2006-0197: XClientMessageEvent struct issue on 64 bit
  10) #364014: libx11-6: UTF-8 incorrectly displayed in ion window title

Outstanding bugs -- Normal bugs; More information needed (1 bug)
  11) #425445: libx11-6: fails to cross-build. tries to run cross-built makekey

Outstanding bugs -- Normal bugs; Will Not Fix (3 bugs)
  12) #216933: libx11-6: many clients get BadLength error from X_ChangeProperty
  13) #234556: libx11-6: apps crash with 'BadLength (poly request too large or 
  14) #261251: libx11-6: apps crash with 'BadLength (poly request too large or 
(1-14/36) Is the bug you found listed above [y|N|m|r|q|s|f|?]? 1

ในตัวอย่างข้างบน ผมตอบ 1 เพื่อดูรายละเอียดบั๊ก #133348 เป็นต้น

ถ้าดูหัวข้อบั๊กแล้ว ไม่มีตัวไหนเกี่ยวข้อง ก็ตอบ n หรือกด enter (เพราะ n คือคำตอบปริยาย) เพื่อดูชุดถัดไปไปเรื่อย ๆ ถ้าพบบั๊กที่ใช่ (คือมีคนรายงานไปแล้ว ไม่ควรรายงานซ้ำ) และตอบ y ก็จะมีคำถามถามหมายเลขบั๊กที่จะแสดงความเห็นเพิ่มเติม หรือถ้าจะไม่เพิ่มเติมอะไรก็กด enter เพื่อออก

แต่ถ้าคุณแน่ใจจริง ๆ ว่าไม่มีใครรายงานบั๊กนี้แล้ว หรือจะข้ามช่วงของบั๊กที่แก้ไปแล้ว ก็ตอบ s (skip) เพื่อข้ามไปเริ่มป้อนข้อมูลบั๊กทันทีได้ หรือถ้าจะเปลี่ยนใจไม่รายงานบั๊กแล้ว ก็ตอบ q (quit)

โอย จำไม่ไหว ตัวเลือกเยอะจัง กด '?' เพื่อขอดู help ได้ครับ รวมถึงคำตอบขณะดูเนื้อหาบั๊กแต่ละบั๊กด้วย คงไม่ต้องอธิบายคำตอบต่าง ๆ ในที่นี้แล้วนะครับ

ข้ามไปที่ขั้นรายงานบั๊ก จะมี prompt ให้กรอก subject ของบั๊ก พยายามใช้ข้อความที่กระชับแต่ได้ใจความ คือให้คนที่เจอบั๊กเดียวกับคุณเขามาอ่านทีหลังแล้วรู้ทันที ว่าใช่บั๊กเดียวกันหรือเปล่า

จากนั้นก็จะเป็นคำถามเกี่ยวกับความร้ายแรงของบั๊ก ขอให้อ่านรายละเอียดของแต่ละระดับให้แน่ใจนะครับ

  • critical (วิกฤติ) คือระดับความร้ายแรงสูงสุด บั๊กน้อยตัวนักที่จะอยู่ในขั้นนี้ มักเป็นบั๊กที่ทำให้ระบบพิการทั้งหมด หรือทำให้แพกเกจอื่นเสียหายไปด้วย หรือสร้างรูโหว่ด้านระบบรักษาความปลอดภัยสำหรับทั้งระบบ
  • grave (สาหัส) เป็นบั๊กที่ทำให้แพกเกจที่รายงานนี้ใช้การไม่ได้สำหรับผู้ใช้ส่วนใหญ่ หรือสร้างรูโหว่ด้านระบบรักษาความปลอดภัยของตัวแพกเกจเอง
  • serious (ร้ายแรง) ใช้กับการละเมิด Debian Policy ในข้อที่ใช้คำว่า 'must' หรือ 'required' แต่ถ้าเป็นการละเมิดกรณีอื่น ก็ไม่ใช่ความร้ายแรงขั้นนี้
  • important (สำคัญ) เป็นบั๊กที่ไม่ได้มีผลกับส่วนใหญ่ของแพกเกจ แต่ทำให้ผู้ใช้บางส่วนใช้การไม่ได้
  • does-not-build (คอมไพล์ไม่ผ่าน) คือบั๊กที่เรียกกันว่า FTBFS (Fails To Build From Source) เคยเป็นบั๊กในระดับ serious แต่ปัจจุบันแยกออกมาเป็นเอกเทศ
  • normal (ปกติ) ไม่ได้ทำให้แพกเกจใช้การไม่ได้ แต่เป็นปัญหาของบางส่วนของโปรแกรมเท่านั้น
  • minor (เล็กน้อย) เป็นบั๊กเกี่ยวกับตัวสะกด หรือหน้าตาที่ผิดเพี้ยนของหน้าจอ เป็นต้น โดยไม่ได้มีผลกับการทำงานของแพกเกจ
  • wishlist (ขอเพิ่ม) เป็นการขอเพิ่มความสามารถบางอย่าง หรือเพิ่มคำแปล

ผ่านขั้นนี้ไปแล้ว ก็เป็นรายละเอียดของบั๊กละ

Subject: libx11-6: Thai XIM does not filter keys when NumLock/CapsLock is on
Package: libx11-6
Version: 2:1.0.3-7
Severity: normal

*** Please type your report below this line ***
(ป้อนรายละเอียดที่นี่)

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=th_TH.UTF-8, LC_CTYPE=th_TH.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libx11-6 depends on:
ii  libc6                         2.6.1-5    GNU C Library: Shared libraries
ii  libx11-data                   2:1.0.3-7  X11 client-side library
ii  libxau6                       1:1.0.3-2  X11 authorisation library
ii  libxdmcp6                     1:1.0.2-2  X11 Display Manager Control Protoc
ii  x11-common                    1:7.3+2    X Window System (X.Org) infrastruc

libx11-6 recommends no packages.

-- no debconf information

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

เสร็จแล้ว สั่งบันทึก (เช่น ถ้าใช้ vi ก็ ':wq') แล้วตอบคำถามยืนยัน โปรแกรมจะส่งบั๊กผ่านทางเมลให้โดยอัตโนมัติ

เมื่อระบบบั๊กได้รับเมลของคุณ และสร้างรายการบั๊กให้แล้ว ก็จะมีเมลตอบมาพร้อมหมายเลขบั๊ก พร้อมคำอธิบายวิธีติดตามบั๊ก

เริ่มยาวแล้ว ไว้ตอนหน้ามาพูดถึงการปรับแต่ง reportbug สำหรับสถานการณ์บางอย่าง แล้วต่อด้วยการติดตามบั๊กที่รายงานไปครับ

Topic: 

Comments

บรรทัด Version ใส่มากกว่า 1 version ได้มั้ยครับ, เช่น,

Package: phpmyadmin
Version: 4:2.6.2-3sarge5
Version: 4:2.9.1.1-4

หรือ

Package: phpmyadmin
Version: 4:2.6.2-3sarge5, 4:2.9.1.1-4

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้