Initial import of MPlayer SVN rev 28382 and FFmpeg SVN rev 16846.
[vaapi:athaifas-mplayer.git] / DOCS / xml / ru / .svn / text-base / bugreports.xml.svn-base
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- synced with r23225 -->
3 <appendix id="bugreports">
4 <title>Как сообщать об ошибках</title>
5
6 <para>
7 Хорошие сообщения об ошибках вносят значительный вклад в разработку любого
8 программного продукта. Но, как и написание хорошей программы, хорошее сообщение
9 об ошибке включает в себя некую долю работы. Пожалуйста, осознайте, что
10 большинство разработчиков &mdash; занятые люди, получающие огромное количество
11 писем. Поэтому, хотя Ваши отзывы необходимы для улучшения <application>MPlayer</application>'а, хотя
12 они очень приветствуются, пожалуйста поймите, что Вы должны предоставить
13 <emphasis role="bold">Всю</emphasis> требуемую нами информацию, поэтому точно
14 следуйте инструкциям в этом документе.
15 </para>
16
17
18 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
19
20
21 <sect1 id="bugreports_security">
22 <title>Отчеты об ошибках безопасности</title>
23
24 <para>
25 В случае, если вы нашли уязвимость и хотите позволить нам исправить ее до того, как она будет
26 обнародована, мы будем рады получить ваше уведомление по адресу 
27 <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>.
28 Пожалуйста добавьте [SECURITY] или [ADVISORY] к теме письма.
29 Убедитесь, что ваш отчет содержит полный и подробный анализ ошибки.
30 Желательно также прислать и исправление уязвимости.
31 Пожалуйста, не откладывайте отчет для написания подтверждающего ошибку эксплойта.
32 Вы можете отослать его позже другим письмом.
33 </para>
34 </sect1>
35
36
37 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
38
39
40 <sect1 id="bugreports_fix">
41 <title>Как исправить ошибку</title>
42 <para>
43 Если Вы ощущаете в себе достаточно сил и умения для самостоятельного решения
44 проблемы, пожалуйста, сделайте это. Или может быть Вы уже это сделали?
45 Пожалуйста, прочитайте <ulink url="../../tech/patches.txt">этот короткий
46 документ</ulink>, чтобы узнать, как сделать так, чтобы Ваш код включили
47 в <application>MPlayer</application>.  Люди из рассылки
48 <ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">mplayer-dev-eng</ulink>
49 помогут Вам, если у Вас есть вопросы.
50 </para>
51 </sect1>
52
53
54 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
55
56
57 <sect1 id="bugreports_regression_test">
58 <title>Как провести проверку на деградацию, используя Subversion</title>
59
60 <para>
61 Иногда возникает проблема 'раньше это работало, а теперь - нет'. Здесь представлена 
62 пошаговая процедура определения момента возникновения ошибки.
63 Но она <emphasis role="bold">не для</emphasis> рядовых пользователей.
64 </para>
65
66 <para>
67 Во-первых, вам нужно получить исходный код MPlayer из Subversion.
68 Инструкции могут быть найдены в
69 <ulink url="http://www.mplayerhq.hu/design7/dload.html#svn">разделе Subversion
70 страницы закачки</ulink>.
71 </para>
72
73 <para>
74 После этого в каталоге mplayer/ вы будете иметь образ дерева Subversion.
75 Теперь обновите этот образ на желаемую дату:
76 <screen>
77 cd mplayer/
78 svn update -r {"2004-08-23"}
79 </screen>
80 Формат даты: YYYY-MM-DD HH:MM:SS.
81 Использование этого формата, гарантирует, что вы сможете извлечь патчи по дате их
82 внесения, которые указаны в 
83 <ulink url="http://lists.mplayerhq.hu/pipermail/mplayer-cvslog/">архиве MPlayer-cvslog</ulink>.
84 </para>
85
86 <para>
87 Далее выполняйте как при обычном обновлении:
88 <screen>
89 ./configure
90 make
91 </screen>
92 </para>
93
94 <para>
95 Для непрограммистов, читающих эту страницу, сообщим, то самый быстрый способ найти место 
96 возникновения ошибки - использование бинарного поиска, т.е. поиск даты,
97 деля интервал поиска пополам раз за разом.
98 Например, если проблема возникла в 2003 году, начните с середины года и 
99 выясните присутствует ли проблема. Если да, то переходите к проверке 
100 начала Апреля, иначе - к началу Октября. Повторяйте этот процесс, уменьшая интервал 
101 поиска вдвое, пока не выясните искомую дату.
102 </para>
103
104 <para>
105 Если у вас имеется достаточно свободного места на жестком диске (полная 
106 компиляция требует около 100Мб, или 300-350 если включена отладочная 
107 информация), скопируйте последнюю работающую версию перед обновлением,
108 это сэкономит время при необходимости вернуться назад.
109 (Как правило необходимо выполнять 'make distclean' до перекомпиляции
110 более ранней версии, поэтому при отсутствии сохраненной копии
111 вам придется перекомпилировать весь проект.)
112 </para>
113
114 <para>
115 Как только вы нашли дату, продолжайте поиск, используя архив mplayer-cvslog 
116 (отсортированный по дате) до получения более точного времени, включая
117 час, минуту, секунду:
118 <screen>
119 svn update -r {"2004-08-23 15:17:25"}
120 </screen>
121 Это позволит легко выделить патч, явившийся источником проблемы.
122 </para>
123
124 <para>
125 Если вы нашли нужный патч, то вы практически победили; сообщите о нем в
126 <ulink url="http://bugzilla.mplayerhq.hu/">MPlayer Bugzilla</ulink> или
127 подпишитесь на 
128 <ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users">MPlayer-users</ulink>
129 и отправте сообщение туда.
130 Есть шанс, что автор исправит ошибку.
131 Вы также можете долго и пристально вглядываться в патч, пока сами не увидите ошибку :).
132 </para>
133 </sect1>
134
135
136 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
137
138
139 <sect1 id="bugreports_report">
140 <title>Как сообщить об ошибке</title>
141 <para>
142 Прежде всего, пожалуйста, попробуйте использовать новейшую Subversion версию
143 <application>MPlayer</application>'а, поскольку Ваша ошибка уже может быть исправлена. 
144 Разработка продвигается очень быстро, большинство проблем в официальных релизах 
145 сообщается в течение дней, и даже часов, после релиза, поэтому, пожалуйста, для 
146 сообщений об ошибках используйте <emphasis role="bold">только Subversion</emphasis>. 
147 Это включает и бинарные пакеты <application>MPlayer</application>'а. Вы найдёте 
148 инструкции по Subversion внизу
149 <ulink url="http://www.mplayerhq.hu/dload.html">этой страницы</ulink>
150 или в README. Если это не помогло, пожалуйста, обратитесь к списку
151 <link linkend="bugs">известных ошибок</link> и остальной документации. Если
152 Ваша проблема не известна или не решается с помощью наших инструкций,
153 пожалуйста, сообщите об ошибке.
154 </para>
155
156 <para>
157 Пожалуйста, не присылайте сообщения об ошибках лично какому-нибудь разработчику.
158 Это командная работа, и, поэтому, Вашим сообщением могут заинтересоваться
159 несколько человек. Довольно часто бывает, что пользователи уже сталкивались
160 с Вашей проблемой и знают, как обойти проблему, даже если это ошибка в коде
161 <application>MPlayer</application>'а.
162 </para>
163
164 <para>
165 Пожалуйста, опишите Вашу проблему настолько подробно, насколько возможно.
166 Проведите маленькое расследование, чтобы выяснить условия, при которых возникает
167 проблема. Проявляется ли ошибка только в каких-то конкретных ситуациях?
168 Она специфична только для каких-то файлов или типов файлов? Происходит ли это
169 с каким-то одним кодеком, или это не зависит от кодека? Можете ли Вы
170 воспроизвести это со всеми драйверами вывода? Чем больше Вы предоставите
171 информации, тем выше вероятность того, что мы сможем исправить ошибку.
172 Пожалуйста, не забудьте включить важную информацию, которую мы просим ниже,
173 иначе мы не сможем должным образом диагностировать Вашу проблему.
174 </para>
175
176 <para>
177 Великолепное, отлично написанное руководство по задаванию вопросов
178 на общедоступных форумах &mdash; это 
179 <ulink url="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask
180 Questions The Smart Way[Как Задавать Вопросы. Правильный Путь.]</ulink>,
181 написанное <ulink url="http://www.catb.org/~esr/">Eric S. Raymond</ulink>.
182 Есть и другое &mdash;
183 <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">How to Report
184 Bugs Effectively[Как Эффективно Сообщить об Ошибке]</ulink>, написанное <ulink
185 url="http://www.chiark.greenend.org.uk/~sgtatham/">Simon Tatham</ulink>.
186 Если Вы будете следовать этим указаниям, Вы сможете получить помощь. Но,
187 пожалуйста, учтите, что мы добровольно отслеживаем рассылки в свободное время.
188 Мы очень заняты и не можем гарантировать, что Вы получите решение для Вашей
189 проблемы (или хотя бы ответ).
190 </para>
191 </sect1>
192
193
194 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
195
196
197 <sect1 id="bugreports_where">
198 <title>Куда сообщать об ошибках</title>
199
200 <para>
201 Подпишитесь на рассылку mplayer-users:
202 <ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users"/>
203 и отошлите Ваше сообщение на:
204 <ulink url="mailto:mplayer-users@mplayerhq.hu"/>,
205 где Вы сможете его обсудить.
206 </para>
207
208 <para>
209 Или, если хотите, Вы можете использовать нашу новую
210 <ulink url="http://bugzilla.mplayerhq.hu/">Bugzilla</ulink>.
211 </para>
212
213 <para>
214 Язык этой рассылки &mdash; <emphasis role="bold">английский</emphasis>.
215 Пожалуйста, следуйте стандарту <ulink url="http://www.ietf.org/rfc/rfc1855.txt">
216 Netiquette Guidelines[Руководство по Сетевому Этикету]</ulink> и
217 <emphasis role="bold">не присылайте HTML почту</emphasis> ни на какую из наших
218 рассылок. Вас просто проигнорируют или забанят. Если Вы хотите узнать, что такое
219 HTML почта и почему это &mdash; зло, прочтите
220 <ulink url="http://expita.com/nomime.html">этот документ</ulink>. Он объяснит
221 Вам все детали и содержит инструкции по отключению HTML. Также обратите
222 внимание, что мы не будем индивидуально CC (отсылать копии) людям, а поэтому
223 подписаться &mdash; хорошая идея, если Вы хотите получить ответ.
224 </para>
225 </sect1>
226
227
228 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
229
230
231 <sect1 id="bugreports_what">
232 <title>Что сообщать</title>
233
234 <para>
235 Вам необходимо включить лог, конфигурацию или примеры файлов в сообщение
236 об ошибке. Если что-то из этого большое, то лучше загрузить это на наш
237 <ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/">FTP сервер</ulink>
238 в сжатом виде (предпочтительно gzip или bzip2) и включить в сообщение
239 об ошибке только путь и имя файла. На наших рассылках стоит ограничение размера
240 сообщения в 80Кб. Если у Вас что-то большее, то сожмите или загрузите это.
241 </para>
242
243 <!-- ********** -->
244
245 <sect2 id="bugreports_system">
246 <title>Системная информация</title>
247 <para>
248 <itemizedlist>
249 <listitem><para>
250   Ваш дистрибутив Linux или операционная система и версия, например:
251   <itemizedlist>
252     <listitem><para>Red Hat 7.1</para></listitem>
253     <listitem><para>Slackware 7.0 + пакеты разработки из 7.1 ...</para></listitem>
254   </itemizedlist>
255 </para></listitem>
256 <listitem><para>
257   версию ядра:
258   <screen>uname -a</screen>
259 </para></listitem>
260 <listitem><para>
261   версию libc:
262   <screen>ls -l /lib/libc[.-]*</screen>
263 </para></listitem>
264 <listitem><para>
265   версии gcc и ld:
266   <screen>
267 gcc -v
268 ld -v<!--
269   --></screen>
270 </para></listitem>
271 <listitem><para>
272   версия binutils:
273   <screen>as --version</screen>
274 </para></listitem>
275 <listitem><para>
276   Если у Вас проблемы с полноэкранным режимом:
277   <itemizedlist>
278     <listitem><para>Тип оконного менеджера и версия</para></listitem>
279   </itemizedlist>
280 </para></listitem>
281 <listitem><para>
282   Если у Вас проблема с XVIDIX:
283   <itemizedlist>
284     <listitem><para>глубина цвета X'ов:
285     <screen>xdpyinfo | grep "depth of root"</screen>
286   </para></listitem>
287   </itemizedlist>
288 </para></listitem>
289 <listitem><para>
290   Если глючит только GUI:
291   <itemizedlist>
292     <listitem><para>версия GTK</para></listitem>
293     <listitem><para>версия GLIB</para></listitem>
294     <listitem><para>ситуация с GUI, в которых проявляется проблема</para></listitem>
295   </itemizedlist>
296 </para></listitem>
297 </itemizedlist>
298 </para>
299 </sect2>
300
301 <!-- ********** -->
302
303 <sect2 id="bugreports_hardware">
304 <title>Аппаратура и драйверы</title>
305 <para>
306 <itemizedlist>
307 <listitem><para>
308   Информация о CPU (это сработает только под Linux):
309   <screen>cat /proc/cpuinfo</screen>
310 </para></listitem>
311 <listitem><para>
312   Производитель и модель видео карты, например:
313   <itemizedlist>
314     <listitem><para>ASUS V3800U чип: nVidia TNT2 Ultra pro 32MB SDRAM</para></listitem>
315     <listitem><para>Matrox G400 DH 32MB SGRAM</para></listitem>
316   </itemizedlist>
317 </para></listitem>
318 <listitem><para>
319 Тип драйвера и версия, например:
320   <itemizedlist>
321     <listitem><para>Встроенный в X'ы</para></listitem>
322     <listitem><para>nVidia 0.9.623</para></listitem>
323     <listitem><para>Utah-GLX CVS 2001-02-17</para></listitem>
324     <listitem><para>DRI из X 4.0.3</para></listitem>
325   </itemizedlist>
326 </para></listitem>
327 <listitem><para>
328   Тип и драйвер звуковой карты, например:
329   <itemizedlist>
330     <listitem><para>Creative SBLive! Gold с OSS драйверами от oss.creative.com</para></listitem>
331     <listitem><para>Creative SB16 с OSS драйверами из ядра</para></listitem>
332     <listitem><para>GUS PnP с ALSA OSS эмуляцией</para></listitem>
333   </itemizedlist>
334 </para></listitem>
335 <listitem><para>
336   Если Вы сомневаетесь, на Linux системах включите вывод
337 <command>lspci -vv</command>.
338 </para></listitem>
339 </itemizedlist>
340 </para>
341 </sect2>
342
343 <!-- ********** -->
344
345 <sect2 id="bugreports_configure">
346 <title>Проблемы конфигурации</title>
347 <para>
348 Если Вы получаете ошибку при выполнении <command>./configure</command>, или если
349 автоопределение чего-то не срабатывает, прочитайте <filename>configure.log
350 </filename>. Там Вы можете обнаружить ответ, например если у Вас стоят несколько
351 версий одной библиотеки, или если Вы забыли установить пакет разработки (тот
352 самый, с суффиксом -dev). Если Вы думаете, что это ошибка, включите в сообщение
353 файл <filename>configure.log</filename>.
354 </para>
355 </sect2>
356
357 <sect2 id="bugreports_compilation">
358 <title>Проблемы компиляции</title>
359 <para>
360 Пожалуйста, включите эти файлы:
361 <itemizedlist>
362   <listitem><para>config.h</para></listitem>
363   <listitem><para>config.mak</para></listitem>
364 </itemizedlist>
365 </para>
366 </sect2>
367
368 <!-- ********** -->
369
370 <sect2 id="bugreports_playback">
371 <title>Проблемы при воспроизведении</title>
372 <para>
373 Пожалуйста, включите вывод <application>MPlayer</application>'а с уровнем
374 "многословности" [verbose] 1, но запомните: <emphasis role="bold">не
375 сокращайте вывод</emphasis>, когда Вы его вставляете в почту. Разработчикам
376 понадобятся все сообщения, чтобы правильно диагностировать проблему. Вы можете
377 направить вывод в файл, например так:
378 <screen>
379 mplayer -v <replaceable>options</replaceable> <replaceable>filename</replaceable> &gt; mplayer.log 2&gt;&amp;1
380 </screen>
381 </para>
382
383 <para>
384 Если проблема специфична для одного или нескольких файлов, 
385 пожалуйста, загрузите проблемные файлы на:
386 <ulink url="ftp://mplayerhq.hu/MPlayer/incoming/"/>
387 </para>
388
389 <para>
390 Также загрузите маленький текстовый файл с базовым именем как у Вашего файла и
391 расширением <filename>.txt</filename>. Опишите проблему, возникающую у Вас
392 с соответствующим файлом и включите ваш электронный адрес и вывод 
393 <application>MPlayer</application>'а
394 с уровнем "многословности" 1. Куска файла размером 1-5 Мб обычно
395 бывает достаточно, чтобы воспроизвести проблему, но чтобы быть уверенными,
396 мы просим вас сделать:
397 <screen>
398 dd if=<replaceable>yourfile</replaceable> of=<replaceable>smallfile</replaceable> bs=1024k count=5
399 </screen>
400 Это запишет первые 5 Мб файла '<emphasis role="bold">your-file</emphasis>' и
401 запишет в файл '<emphasis role="bold">small-file</emphasis>'. Теперь снова
402 попытайтесь с эти маленьким файлом, и если проблема все ещё проявляется,
403 тогда этого примера будет достаточно для нас.  Пожалуйста,
404 <emphasis role="bold">никогда</emphasis> не отсылайте эти файлы по почте!
405 Загрузите его и отошлите только путь/имя файла не FTP-сервере. Если файл
406 доступен по сети, тогда просто пришлите <emphasis role="bold">точный</emphasis>
407 URL, и этого будет достаточно.
408 </para>
409 </sect2>
410
411 <!-- ********** -->
412
413 <sect2 id="bugreports_crash">
414 <title>Краши[crash]</title>
415 <para>
416 Вы должны запустить <application>MPlayer</application> внутри <command>gdb</command>
417 и прислать нам полный вывод, или , если у Вас есть <filename>core</filename>
418 dump поломки, Вы можете извлечь необходимую полезную информацию из файла
419 core. Вот как:
420 </para>
421
422
423 <sect3 id="bugreports_debug">
424 <title>Как сохранить информацию о воспроизводимом краше</title>
425
426 <para>
427 Перекомпилируйте <application>MPlayer</application> с включённым кодом отладки:
428 <screen>
429 ./configure --enable-debug=3
430 make
431 </screen>
432 и запустите <application>MPlayer</application> внутри gdb:
433 <screen>gdb ./mplayer</screen>
434 Теперь вы в gdb. Наберите:
435 <screen>
436 run -v <replaceable>опции-для-mplayer</replaceable> <replaceable>имя-файла</replaceable>
437 </screen>
438 и воспроизведите краш. Как только Вы это сделаете, gdb вернёт Вас к приглашению
439 командной строки, где Вы должны набрать
440 <screen>
441 bt
442 disass $pc-32 $pc+32
443 info all-registers
444 </screen>
445 </para>
446 </sect3>
447
448
449 <sect3 id="bugreports_core">
450 <title>Как извлечь полезную информацию из дампа [core dump]</title>
451
452 <para>
453 Создайте следующий командный файл:
454 <screen>
455 bt
456 disass $pc-32 $pc+32
457 info all-registers
458 </screen>
459 Теперь просто выполните такую команду:
460 <screen>
461 gdb mplayer --core=core -batch --command=командный-файл &gt; mplayer.bug
462 </screen>
463 </para>
464 </sect3>
465 </sect2>
466 </sect1>
467
468
469 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
470
471
472 <sect1 id="bugreports_advusers">
473 <title>Я знаю, что я делаю...</title>
474 <para>
475 Если Вы создали правильное сообщение об ошибке так, как рассказано выше, и Вы
476 уверены, что это ошибка в <application>MPlayer</application>'е, а не ошибка компилятора или плохой файл,
477 Вы уже прочли всю документацию и не можете найти решение, ваши звуковые драйвера
478 в порядке, тогда Вы можете подписаться на рассылку mplayer-advusers и прислать
479 сообщение об ошибке туда, чтобы получить более точный и быстрый ответ.
480 </para>
481
482 <para>
483 Обратите внимание, что если Вы будете отсылать туда вопросы новичков или
484 вопросы, на которые ответы присутствуют в документации, то Вас проигнорируют
485 или обругают вместо того, чтобы ответить. Поэтому не заваливайте нас мелочами
486 и подписывайтесь на -advusers только, если Вы действительно знаете, что Вы
487 делаете, и ощущаете себя продвинутым пользователем или разработчиком <application>MPlayer</application>'а.
488 Если подходите под этот критерий, Вам не составит труда понять, как надо
489 подписаться...
490 </para>
491 </sect1>
492
493 </appendix>