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