Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Get your FLOSS problems solved


Published on

Talk gave at Hacking Camp 2011.

Published in: Technology
  • Login to see the comments

  • Be the first to like this

Get your FLOSS problems solved

  1. 1. Get your FLOSS problems solved Rex Tsai Hacking Camp @ 宜蘭縣 頭城 大溪國小 2011-07-16 Sponsored by OSSF / OSSACC 1
  2. 2. Agenda● Fix your issue effectively with the developer ● What kind of questions do hackers expect ? ● How to ask a questions ?● Understand the projects and distributions ● Upstream and downstream, release cycle,● Learn how project manage issues ● Mailing lists, net news, issue tracker, irc ● Example of good and bad bug reports ● Tips to submit a patch 2
  3. 3. Software sucks● 使用問題 / Questions● 回報臭蟲 / Bugs● 期待新功能 / Missed features How to get your problem solved? 3
  4. 4. Solutions● Talk to the developer directly (irc, email, IM)● File a bug report● Submit a patch Ask right question in right place 4
  5. 5. Guidelines● Be specific. ( 要明確 )● Be verbose. ( 要詳細 )● Be careful of pronouns. ( 注意代名詞 )● Read what you wrote. ( 注意措辭 )● Follow RFC 1855 - Netiquette Guidelines ( 有禮 節) 5
  6. 6. Be specific."It doesnt work." 6
  7. 7. Be verboseEvery information counts. 7
  8. 8. Pronouns你告訴我的這個在他說得那個上不能用 8
  9. 9. NetiquetteFollow the protocol(s). 9
  10. 10. What developer expect? ● hackers actually like hard problems and good, thought- provoking questions about them. 駭客們喜愛有挑戰性 的問題,或者能激發他們思維的好問題。 ● Despite this, hackers have a reputation for meeting simple questions with what looks like hostility or arrogance 蔑視–不願思考或在發問前不作功課的人。 ● Hacker re (largely) volunteers. 在很大程度上屬於志願 者,從繁忙的生活中抽出自己的時間來解惑答。 ● most of us would love nothing more than to deal with you as an equal and welcome you into our culture 大多 數人非常樂意與用心的人平等地交流。 10
  11. 11. How to ask questions (1)● Try to reproduce the bug● Do your best to identify the faulty package● Verify that the bug is not already reported and/or fixed● Use tools to collect info (reportbug, apport)● Describe the problem so that the developer can reproduce it● Be kind and willing to help 11
  12. 12. How to ask questions (2)● Dont send heated messages (flames)● Be specific on subject. Mail should have a subject heading which reflects the content of the message.● Be careful with addressing mail.● Dont expect immediate response, you talk to global developers● Be especially careful with sarcasm for different cultures● Know whom to contact for help. 12
  13. 13. How to ask questions (3)● Check message layout, no more then 65 chars one line.● Send subscribe and unsubscribe messages to the appropriate address.● Dont cross post your questions. 13
  14. 14. How to ask questions (4)● Try to find an answer by searching the archives of the forum you plan to post to.● Try to find an answer by searching the Web.● Try to find an answer by reading the manual.● Try to find an answer by reading a FAQ.● Try to find an answer by inspection or experimentation.● Try to find an answer by asking a skilled friend.● If youre a programmer, try to find an answer by reading the source code. 爬文 14
  15. 15. Other questions● Support requests, feature and policy discussions, and development ideas all have their own dedicated mailing lists or forums. 15
  16. 16. Software vulnerability / Security Issues● Coordinated Vulnerability Disclosure aka responsible disclosure.● report to the vendor privately, or to a private service that will likewise report to the vendor privately.● Do not distribute exploits. 16
  17. 17. How the open source projects cooperate with others? Governance, Foundations, Organizations, Commercial entity, Projects, Distributions? 17
  18. 18. DistrosA Linux distribution is a member of the family of Unix-likeoperating systems built on top of the Linux kernel. Suchdistributions (often called distros for short) are Operatingsystems including a large collection of softwareapplications such as word processors, spreadsheets, mediaplayers, and database applications. The operating systemwill consist of the Linux kernel and, usually, a set oflibraries and utilities from the GNU project, with graphicssupport from the X Window System. 18
  19. 19. Upstream and distros● Distros integrate upstream software projects like GNOME, KDE, Linux Kernel, Xorg, …● Standardization, Quality Assurance 19
  20. 20. Child distros Upstream projects Upstream projects (GNOME, KDE, Xorg) (GNOME, KDE, Xorg) 20
  21. 21. Tools for support the user community● IRC● Forum● Issue trackers● Crash reporter (like Bug Buddy, Ubuntu apport, Mozilla breakpad) 21
  22. 22. IRC● Instant response● But developers may not available for you. 22
  23. 23. User communities ● 17k Questions ● 31k Answers ● 19k User ● 21k Visits/Day ● 81% of questions have accepted answers 23
  24. 24. Local User Communities● tw.bbs.comp.linux aka ptt linux 版● Ubuntu-TW● Ubuntu-CN● MOTO● So on... 阿鬼,講中文好嗎 24
  25. 25. Issue trackers● Launchpad (Ubuntu)● Debian BTS (Debian)● Bugzilla (fedora, redhat, gnome)● Google Code● Sourceforge● Github● OSSF 25
  26. 26. Where to report bug ?● File the bug in upstream project● File the bug in upstream distro● File bug in distros issue tracker 26
  27. 27. distro work with upstream bug reports 27
  28. 28. 28
  29. 29. Do you homework first 29
  30. 30. Good issue reports improve software qualityITP: jidanni -- a natural intelligence to find many bugs bug=576184 30
  31. 31. Submit a good patch● Send patch, not tarball. ● Delete the auto-generated files.● Works on development branch● Send one feature/bug fix in one patch● Be careful the license and copyright● Follow the coding style ● Include (useful) comments and explanations ● Read guidelines● Build and test before you send. 31
  32. 32. References● How To Ask Questions The Smart Way● 提問的智慧● 7 tips to file useful Debian bug reports and get your problem solved● How to Report Bugs Effectively ● 如何有效地報告錯誤● Netiquette Guidelines● Software Release Practice HOWTO● How to piss off a kernel subsystem maintainer ● ● ● ● ● 32