Get your FLOSS problems solved

Post on 10-May-2015

9.528 views 0 download

description

Talk gave at Hacking Camp 2011.

Transcript of Get your FLOSS problems solved

1

Get your FLOSS problems solved

Rex Tsaichihchun@kalug.linux.org.tw

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

29

Do you homework first

https://lkml.org/lkml/2011/3/16/172

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