Upload
rex-tsai
View
9.527
Download
0
Embed Size (px)
DESCRIPTION
Talk gave at Hacking Camp 2011.
Citation preview
1
Get your FLOSS problems solved
Hacking Camp @ 宜蘭縣 頭城 大溪國小2011-07-16
Sponsored by OSSF / OSSACC
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
3
Software sucks
● 使用問題 / Questions● 回報臭蟲 / Bugs● 期待新功能 / Missed features
How to get your problem solved?How to get your problem solved?
4
Solutions
● Talk to the developer directly (irc, email, IM)● File a bug report● Submit a patch
Ask right question in right placeAsk right question in right place
5
Guidelines
● Be specific. ( 要明確 )● Be verbose. ( 要詳細 )● Be careful of pronouns. ( 注意代名詞 )● Read what you wrote. ( 注意措辭 )● Follow RFC 1855 - Netiquette Guidelines ( 有禮
節 )
6
Be specific.
"It doesn't work."
7
Be verbose
Every information counts.
8
Pronouns
你告訴我的這個在他說得那個上不能用
9
Netiquette
Follow the protocol(s).
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 大多數人非常樂意與用心的人平等地交流。
http://code.google.com/p/smartquestions/wiki/Introductionhttp://www.catb.org/~esr/faqs/smart-questions.html
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
12
How to ask questions (2)
● Don't 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.● Don't expect immediate response, you talk to global
developers● Be especially careful with sarcasm for different cultures● Know whom to contact for help.
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.
● Don't cross post your questions.
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 you're a programmer, try to find an answer by
reading the source code.
http://www.catb.org/~esr/faqs/smart-questions.html
爬文
15
Other questions
● Support requests, feature and policy discussions, and development ideas all have their own dedicated mailing lists or forums.
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.
17
How the open source projects cooperate with others?
Governance, Foundations, Organizations, Commercial entity, Projects, Distributions?
18
Distros
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions (often called distros for short) are Operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications. The operating system will consist of the Linux kernel and, usually, a set of libraries and utilities from the GNU project, with graphics support from the X Window System.
http://en.wikipedia.org/wiki/Linux_distributionhttp://distrowatch.com/
19
Upstream and distros
● Distros integrate upstream software projects like GNOME, KDE, Linux Kernel, Xorg, …
● Standardization, Quality Assurance
20
Child distros
Upstream projects(GNOME, KDE, Xorg)
Upstream projects(GNOME, KDE, Xorg)
http://www.debian.org/misc/children-distros
21
Tools for support the user community
● IRC● Forum● Issue trackers● Crash reporter (like Bug Buddy, Ubuntu
apport, Mozilla breakpad)
22
IRC
● Instant response● But developers may not available for you.
23
User communities
● 17k Questions● 31k Answers● 19k User● 21k Visits/Day● 81% of questions
have accepted answers
http://andrewsomething.wordpress.com/2011/07/14/can-i-haz-answers/
24
Local User Communities
● tw.bbs.comp.linux aka ptt linux 版● Ubuntu-TW http://www.ubuntu-tw.org/● Ubuntu-CN http://www.ubuntu.org.cn/● MOTO http://moto.debian.org.tw/● So on...
阿鬼,講中文好嗎
25
Issue trackers
● Launchpad (Ubuntu)● Debian BTS (Debian)● Bugzilla (fedora, redhat, gnome)● Google Code● Sourceforge● Github● OSSF
26
Where to report bug ?
● File the bug in upstream project● File the bug in upstream distro● File bug in distro's issue tracker
27
distro work with upstream bug reports
https://edge.launchpad.net/ubuntu/+upstreamreporthttps://wiki.ubuntu.com/Bugs/Upstream/UpstreamReport
28
30
Good issue reports improve software quality
ITP: jidanni -- a natural intelligence to find many bugs
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=576184
http://code.google.com/p/smartquestions/wiki/QuestionsNotToAskhttp://code.google.com/p/smartquestions/wiki/GoodandBadQuestions
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.
32
References● How To Ask Questions The Smart Way http://www.catb.org/~esr/faqs/smart-questions.html
● 提問的智慧 http://code.google.com/p/smartquestions/wiki/Introduction
● 7 tips to file useful Debian bug reports and get your problem solved http://raphaelhertzog.com/2011/07/11/7-tips-to-file-useful-debian-bug-reports-and-get-your-problem-solved/
● How to Report Bugs Effectively http://www.chiark.greenend.org.uk/~sgtatham/bugs.htmlhttp://www.chiark.greenend.org.uk/~sgtatham/bugs-tw.html
● 如何有效地報告錯誤 http://www.chiark.greenend.org.uk/~sgtatham/bugs-tw.html
● Netiquette Guidelines http://www.dtcc.edu/cs/rfc1855.html
● Software Release Practice HOWTO http://en.tldp.org/HOWTO/Software-Release-Practice-HOWTO/index.html
● How to piss off a kernel subsystem maintainer
● http://www.kroah.com/log/linux/maintainer.html
● http://www.kroah.com/log/linux/maintainer-02.html
● http://www.kroah.com/log/linux/maintainer-03.html
● http://www.kroah.com/log/linux/maintainer-04.html
● http://www.kroah.com/log/linux/maintainer-05.html