1<?xml version="1.0" encoding="utf-8"?>
2<!-- synced with r23225 -->
3<appendix id="bugreports">
4<title>Jak hlásit chyby</title>
5
6<para>
7Dobrá hlášení chyb jsou velmi cenným příspěvkem do vývoje jakéhokoli
8softwarového projektu. Ale je to s nimi jako se psaním dobrého
9programu, sepsání dobrého hlášení problému vyžaduje trochu práce.
10Prosím berte na vědomí, že většina vývojářů je velmi zaneprázdněna a
11dostává kvanta e-mailů. Takže ačkoli je vaše zpětná vazba kritická pro
12vylepšování <application>MPlayer</application>u a velmi ceněná, prosíme
13pochopte, že musíte poskytnout <emphasis role="bold">veškeré</emphasis>
14informace které požadujeme a postupovat přesně podle instrukcí v tomto
15dokumentu.
16</para>
17
18
19<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
20
21
22<sect1 id="bugreports_security">
23<title>Hlášení bezpečnostních chyb</title>
24
25<para>
26V případě že jste nalezli exploitovatelnou chybu, chtěli byste udělat správnou
27věc a nechali nás ji opravit než ji odhalíte, budeme rádi, když nám pošlete
28bezpečnostní hlášení na
29<ulink url="mailto:&#115;&#101;&#99;&#117;&#114;&#105;&#116;&#121;&#64;&#109;&#112;&#108;&#97;&#121;&#101;&#114;&#104;&#113;&#46;&#104;&#117;">&#115;&#101;&#99;&#117;&#114;&#105;&#116;&#121;&#64;&#109;&#112;&#108;&#97;&#121;&#101;&#114;&#104;&#113;&#46;&#104;&#117;</ulink>.
30Do hlavičky prosíme přidejte [SECURITY] nebo [ADVISORY].
31Ujistěte se, že vaše hlášení obsahuje úplnou a podrobnou analýzu chyby.
32Zaslání opravy je velice žádoucí.
33Prosíme neodkládejte hlášení do doby než vytvoříte 'dokazovací' exploit, ten nám
34můžete zaslat dalším mailem.
35</para>
36</sect1>
37
38
39<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
40
41
42<sect1 id="bugreports_fix">
43<title>Jak napravovat chyby</title>
44
45<para>
46Pokud si myslíte, že máte potřebné schopnosti, pak vás vybízíme abyste
47opravil(a) chybu samostatně. Nebo jste to již udělal(a)? Přečtěte si prosím
48<ulink url="../../tech/patches.txt">tento krátký dokument</ulink>, abyste se
49dozvěděli jak zahrnout váš kód do <application>MPlayer</application>u.
50Lidé z konference
51<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">MPlayer-dev-eng</ulink>
52vám pomohou, pokud budete mít otázky.
53</para>
54</sect1>
55
56
57<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
58
59
60<sect1 id="bugreports_regression_test">
61<title>Jak provádět regresní testování pomocí Subversion</title>
62
63<para>
64Občas nastane problém typu 'předtím to fungovalo, teď už ne...'.
65Zde přinášíme postup krok za krokem, jak vyhledat, kdy problém
66nastal. Toto <emphasis role="bold">není</emphasis> určeno příležitostným
67uživatelům.
68</para>
69
70<para>
71Nejprve si musíte opatřit zdrojové kódy MPlayeru ze Subversion.
72Instrukce lze nalést v
73<ulink url="http://www.mplayerhq.hu/design7/dload.html#svn">sekci Subversion stránky download</ulink>.
74</para>
75
76<para>
77Tak dostanete v adresáři mplayer/ obraz Subversion stromu na straně klienta.
78Nyní aktualizujte tento obraz k datu, které chcete:
79<screen>
80cd mplayer/
81svn update -r {"2004-08-23"}
82</screen>
83Formát data je YYYY-MM-DD HH:MM:SS.
84Požití tohoto datového formátu zajišťuje, že budete schopni extrahovat
85patche podle data, kdy byly zapsány (commit) stejně, jak jsou v
86<ulink url="http://lists.mplayerhq.hu/pipermail/mplayer-cvslog/">MPlayer-cvslog archivu</ulink>.
87</para>
88
89<para>
90A teď proveďte sestavení jako při normální aktualizaci:
91<screen>
92./configure
93make
94</screen>
95</para>
96
97<para>
98Pokud to čte nějaký neprogramátor, nejrychlejší metodou, jak se dostat
99k bodu, kde problém nastal, je použití binárního vyhledávání &ndash; to je
100vyhledávání data poruchy opakovaným dělením vyhledávacího intervalu napůl.
101Například pokud problém nastal v 2003, začneme v polovině roku a ptáme se,
102„Už je tu problém?“.
103Pokud ano, vraťte se na prvního dubna; pokud ne, běžte na prvního října
104a tak dále.
105</para>
106
107<para>
108Pokud máte spoustu místa na disku (plná kompilace obvykle zabírá 100 MB
109a kolem 300&ndash;350 MB, pokud jsou zapnuty debugovací symboly), zkopírujte
110nejstarší známou funkční verzi před jejím updatem; to vám ušetří čas,
111pokud se budete vracet.
112(Obvykla je nutné spustit 'make distclean' před rekompilací starší verze,
113takže pokud si neuděláte záložní kopii originálního zdrojového stromu,
114budete v něm muset rekompilovat vše, až se vrátíte do současnosti.)
115</para>
116
117<para>
118Pokud jste našli den, kdy k problému došlo, pokračujte v hledání pomocí
119archivu mplayer-cvslog (řazeného podle data) a preciznějším cvs update
120s uvedením hodiny, minuty a sekundy:
121<screen>
122cvs update -PAd -D "2004-08-23 15:17:25"
123</screen>
124To vám umožní lehce najít patch, který problém způsobil.
125</para>
126
127<para>
128Pokud jste našli patch, který je příčinou problému, máte téměř vyhráno;
129ohlaste to do
130<ulink url="http://bugzilla.mplayerhq.hu/">MPlayer Bugzilly</ulink> nebo
131se přihlaste do
132<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users">MPlayer-users</ulink>
133a pošlete to tam.
134Je šance, že autor navrhne opravu.
135Rovněž si můžete patch rozpitvat, dokud z něj nevytlučete, kde je chyba :-).
136</para>
137</sect1>
138
139
140<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
141
142
143<sect1 id="bugreports_report">
144<title>Jak oznamovat chyby</title>
145
146<para>
147Nejprve, prosím, vyzkoušejte poslední Subversion verzi
148<application>MPlayer</application>u, jelikož vaše chyba již mohla být
149odstraněna. Vývoj je velmi rychlý, většina chyb v oficiálních balíčcích je
150nahlášena během několika dnů, nebo dokonce hodin, takže prosím používejte
151<emphasis role="bold">pouze Subversion</emphasis> pro hlášení chyb. To zahrnuje binární
152balíčky <application>MPlayer</application>u. Subversion instrukce naleznete na konci
153<ulink url="http://www.mplayerhq.hu/dload.html">této stránky</ulink>,
154nebo v souboru README. Pokud to nepomůže, prostudujte si prosím seznam
155známých chyb a zbytek dokumentace. Pokud je váš
156problém neznámý nebo jej nelze řešit pomocí našich instrukcí pak jej nahlaste
157jako chybu.
158</para>
159
160<para>
161Prosíme, neposílejte hlášení chyb soukromě jednotlivým vývojářům. Toto je týmová
162práce a proto se o ně může zajímat více lidí. Čas od času měli ostatní uživatelé
163stejný problém a vědí jak jej obejít, dokonce i když se jedná o chybu v kódu
164<application>MPlayer</application>u.
165</para>
166
167<para>
168Prosíme popište svůj problém tak podrobně, jak je to jen možné. Proveďte malé
169pátrání po okolnostech za kterých problém nastává. Projevuje se ta chyba jen
170v určitých situacích? Je vlastní určitým souborům nebo typům souborů? Stává se
171pouze s jedním kodekem, nebo je nezávislá na použitém kodeku? Dokážete ji
172zopakovat se všemi výstupními rozhraními nebo ovladači?
173Čím více nám poskytnete informací, tím je větší šance na odstranění problému.
174Nezapomeňte také připojit hodnotné informace požadované níže, jinak nebudeme
175schopni stanovit příčinu problému.
176</para>
177
178<para>
179Skvělá, dobře napsaná příručka jak se ptát ve veřejných konferencích je
180<ulink url="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</ulink> od
181<ulink url="http://www.catb.org/~esr/">Erica S. Raymonda</ulink>.
182Další příručka je
183<ulink url="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">How to Report Bugs Effectively</ulink>
184od <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/">Simona Tathama</ulink>.
185Pokud budete postupovat podle těchto rad, jistě se vám dostane pomoci. Pochopte
186však, že my všichni sledujeme konference dobrovolně ve svém volném čase. Máme
187mnoho práce a nemůžeme vám zaručit že vyřešíme váš problém nebo že vůbec
188dostanete odpověď.
189</para>
190</sect1>
191
192
193<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
194
195
196<sect1 id="bugreports_where">
197<title>Kam hlásit chyby</title>
198
199<para>
200Přihlaste se do e-mailové konference MPlayer-users:
201<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users"/>
202a pošlete své hlášení o chybách na adresu
203<ulink url="mailto:mplayer-users@mplayerhq.hu"/> kde o tom můžeme diskutovat.
204</para>
205
206<para>
207Pokud chcete, můžete místo toho použít zbrusu novou
208<ulink url="http://bugzilla.mplayerhq.hu/">Bugzillu</ulink>.
209</para>
210
211<para>
212Jazykem konference je <emphasis role="bold">Angličtina</emphasis>.
213Zachovávejte prosím
214<ulink url="http://www.ietf.org/rfc/rfc1855.txt">Pravidla Netikety</ulink> a
215<emphasis role="bold">neposílejte HTML mail</emphasis> do žádné z našich
216konferencí. Jinak můžete být ignorováni nebo vyhozeni. Pokud nevíte co je to
217HTML mail, nebo proč je tak zatracován, přečtěte si tento
218<ulink url="http://efn.no/html-bad.html">výborný dokument</ulink>. Zde se
219dovíte detaily včetně instrukcí pro vypnutí HTML. Poznamenejme též, že nebudeme
220individuálně dělat CC (kopie) lidem, takže je dobré se přihlásit, abyste
221obdrželi svou odpověď.
222</para>
223</sect1>
224
225
226<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
227
228
229<sect1 id="bugreports_what">
230<title>Co nahlásit</title>
231
232<para>
233Bude potřeba připojit log, konfiguraci nebo vzorky souborů ke svému hlášení chyb.
234Pokud jsou některé z nich opravdu velké, pak je raději nahrajte na náš
235<ulink url="http://streams.videolan.org/upload/">HTTP server</ulink>
236v komprimovaném formátu (preferujeme gzip a bzip2) a do zprávy zahrňte pouze
237cestu a název souboru. Naše konference mají limit velikosti zprávy 80k, pokud
238máte něco většího, musíte to zkomprimovat a nahrát na FTP.
239</para>
240
241<!-- ********** -->
242
243<sect2 id="bugreports_system">
244<title>Systémové informace</title>
245
246<para>
247<itemizedlist>
248<listitem><para>
249  Vaše Linuxová distribuce nebo operační systém a jeho verze jako:
250  <itemizedlist>
251    <listitem><para>Red Hat 7.1</para></listitem>
252    <listitem><para>Slackware 7.0 + devel packs from 7.1 ...</para></listitem>
253  </itemizedlist>
254</para></listitem>
255<listitem><para>
256  verze jádra:
257  <screen>uname -a</screen>
258</para></listitem>
259<listitem><para>
260  verze libc:
261  <screen>ls -l /lib/libc[.-]*</screen>
262</para></listitem>
263<listitem><para>
264  verze gcc a ld:
265  <screen>
266gcc -v
267ld -v<!--
268  --></screen>
269</para></listitem>
270<listitem><para>
271  verze binutils:
272  <screen>as --version</screen>
273</para></listitem>
274<listitem><para>
275  Pokud máte problémy s celoobrazovkovým režimem:
276  <itemizedlist>
277    <listitem><para>Druh Window manageru a jeho verze</para></listitem>
278  </itemizedlist>
279</para></listitem>
280<listitem><para>
281  Pokud máte problémy s XVIDIX:
282  <itemizedlist>
283  <listitem><para>
284    Hloubka barev v X:
285    <screen>xdpyinfo | grep "depth of root"</screen>
286  </para></listitem>
287  </itemizedlist>
288</para></listitem>
289<listitem><para>
290  Pokud je chybné pouze GUI:
291  <itemizedlist>
292    <listitem><para>verze GTK</para></listitem>
293    <listitem><para>verze GLIB</para></listitem>
294    <listitem><para>GUI situace kdy se chyba projevila</para></listitem>
295  </itemizedlist>
296</para></listitem>
297</itemizedlist>
298</para>
299</sect2>
300
301<!-- ********** -->
302
303<sect2 id="bugreports_hardware">
304<title>Hardware a rozhraní (ovladače)</title>
305
306<para>
307<itemizedlist>
308<listitem><para>
309  CPU info (to funguje pouze v Linuxu):
310  <screen>cat /proc/cpuinfo</screen>
311</para></listitem>
312<listitem><para>
313  Výrobce a model videokarty, např:
314  <itemizedlist>
315    <listitem><para>ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM</para></listitem>
316    <listitem><para>Matrox G400 DH 32MB SGRAM</para></listitem>
317  </itemizedlist>
318</para></listitem>
319<listitem><para>
320  Typ video ovladače a jeho verze, např.:
321  <itemizedlist>
322    <listitem><para>vestavěný ovladač z X</para></listitem>
323    <listitem><para>nVidia 0.9.623</para></listitem>
324    <listitem><para>Utah-GLX CVS 2001-02-17</para></listitem>
325    <listitem><para>DRI z X 4.0.3</para></listitem>
326  </itemizedlist>
327</para></listitem>
328<listitem><para>
329  Typ zvukové karty a ovladač, např.:
330  <itemizedlist>
331    <listitem><para>Creative SBLive! Gold s OSS ovladačem od oss.creative.com</para></listitem>
332    <listitem><para>Creative SB16 s OSS ovladači z jádra</para></listitem>
333    <listitem><para>GUS PnP s ALSA OSS emulací</para></listitem>
334  </itemizedlist>
335</para></listitem>
336<listitem><para>
337  Pokud si nejste jisti a používáte systém Linux, přidejte výstup
338  z <command>lspci -vv</command>.
339</para></listitem>
340</itemizedlist>
341</para>
342</sect2>
343
344<!-- ********** -->
345
346<sect2 id="bugreports_configure">
347<title>Problémy s konfigurací</title>
348
349<para>
350Pokud nastanou chyby během běhu <command>./configure</command>, nebo selže
351autodetekce něčeho, prostudujte <filename>config.log</filename>. Možná
352naleznete odpověď zde. Například několik verzí stejné knihovny v systému, nebo
353jste zapomněli nainstalovat vývojový (devel) balíček (to jsou ty s koncovkou
354-dev). Pokud si myslíte, že je zde chyba, přidejte
355<filename>config.log</filename> do svého hlášení.
356</para>
357</sect2>
358
359<sect2 id="bugreports_compilation">
360<title>Problémy s kompilací</title>
361<para>
362Zahrňte prosím tyto soubory:
363<itemizedlist>
364  <listitem><para>config.h</para></listitem>
365  <listitem><para>config.mak</para></listitem>
366</itemizedlist>
367</para>
368</sect2>
369
370<!-- ********** -->
371
372<sect2 id="bugreports_playback">
373<title>Problémy s přehráváním</title>
374
375<para>
376Zahrňte prosíme výstup <application>MPlayer</application>u v upovídaném
377režimu úrovně 1 ale dejte pozor, abyste jej
378<emphasis role="bold">nezkrátili</emphasis>
379při kopírování do mailu. Vývojáři potřebují všechny zprávy pro dobrou diagnózu
380problému. Takto můžete přesměrovat výstup do souboru:
381<screen>
382mplayer -v <replaceable>volby</replaceable> <replaceable>film</replaceable> &gt; mplayer.log 2&gt;&amp;1
383</screen>
384</para>
385
386<para>
387Pokud se problém vztahuje k jednomu nebo více souborům, pak prosím nahrajte
388potížisty na:
389<ulink url="http://streams.videolan.org/upload/"/>
390</para>
391
392<para>
393Rovněž zde nahrajte malý textový soubor se stejným základním jménem a příponou
394.txt. Popište problém který máte s daným souborem a připojte svůj e-mail a také
395výstup <application>MPlayer</application>u v upovídaném režimu úrovně 1.
396Pro reprodukci problému stačí obvykle prvních 1-5 MB souboru, ale pro jistotu
397vás žádáme o:
398<screen>
399dd if=<replaceable>váš_soubor</replaceable> of=<replaceable>malý_soubor</replaceable> bs=1024k count=5
400</screen>
401To vezme prvních pět megabajtů '<emphasis role="bold">vašeho_souboru</emphasis>'
402a zapíše je do '<emphasis role="bold">malého_souboru</emphasis>'. Pak znovu
403zkuste tento malý vzorek a pokud se na něm chyba projeví, pak je tento vzorek
404pro nás dostatečný.
405Prosíme <emphasis role="bold">nikdy</emphasis> neposílejte tyto soubory e-mailem!
406Nahrajte je na FTP a pošlete pouze cestu/název_souboru daného souboru na FTP
407serveru. Pokud je soubor přístupný na internetu, pak stačí poslat
408<emphasis role="bold">přesnou</emphasis> adresu URL.
409</para>
410</sect2>
411
412<!-- ********** -->
413
414<sect2 id="bugreports_crash">
415<title>Pády</title>
416
417<para>
418Musíte spustit <application>MPlayer</application> z <command>gdb</command>
419a poslat nám úplný výstup nebo pokud máte <filename>core</filename> dump
420z pádu, můžete nám vyextrahovat užitečné informace ze souboru Core.
421Jak to udělat:
422</para>
423
424
425<sect3 id="bugreports_debug">
426<title>Jak uchovat informace o zopakovatelném pádu</title>
427
428<para>
429Překompilujte <application>MPlayer</application> se zapnutým debugovacím kódem:
430<screen>
431./configure --enable-debug=3
432make
433</screen>
434a spusťte <application>MPlayer</application> z gdb pomocí:
435<screen>gdb ./mplayer</screen>
436Nyní jste v gdb. Zadejte:
437<screen>
438run -v <replaceable>volby-pro-mplayer</replaceable> <replaceable>soubor</replaceable>
439</screen>
440a zopakujte pád. Jakmile to dokážete, vrátí se gdb do režimu příkazového řádku,
441kde musíte zadat
442<screen>
443bt
444disass $pc-32,$pc+32
445info all-registers
446</screen>
447</para>
448</sect3>
449
450
451<sect3 id="bugreports_core">
452<title>Jak získat smysluplné informace z core dump</title>
453
454<para>
455Vytvořte následující příkazový řádek:
456<screen>
457bt
458disass $pc-32,$pc+32
459info all-registers
460</screen>
461Pak jednoduše spusťte tento příkaz:
462<screen>
463gdb mplayer --core=core -batch --command=příkazový_soubor &gt; mplayer.bug
464</screen>
465</para>
466</sect3>
467</sect2>
468</sect1>
469
470
471<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
472
473
474<sect1 id="bugreports_advusers">
475<title>Vím co dělám...</title>
476
477<para>
478Pokud jste vytvořili příkladné hlášení chyby pomocí výšeuvedených kroků a
479jste si jisti, že chyba je v <application>MPlayer</application>u, nikoli
480v kompilátoru nebo poškozený soubor, již jste si přečetli dokumentaci,
481ale nenalezli řešení, vaše ovladače zvuku jsou OK, pak byste se měli
482přihlásit do konference MPlayer-advusers a poslat hlášení chyb zde,
483abyste dostali lepší a rychlejší odpověď.
484</para>
485
486<para>
487Mějte na paměti, že pokud zde pošlete nováčkovské otázky nebo otázky zodpovězené
488v manuálu, budete ignorováni nebo peskováni, místo abyste dostali vhodnou odpověď.
489Takže nám nenadávejte a přihlaste se do -advusers pouze pokud opravdu víte co
490děláte a cítíte se být pokročilým uživatelem <application>MPlayer</application>u,
491nebo vývojářem. Pokud splňujete tato kritéria, nebude pro vás těžké se
492přihlásit...
493</para>
494</sect1>
495
496</appendix>
497