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:security@mplayerhq.hu">security@mplayerhq.hu</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í – 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–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> > mplayer.log 2>&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 > 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