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
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
|
<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r23225 -->
<appendix id="bugreports">
<title>Как сообщать об ошибках</title>
<para>
Хорошие сообщения об ошибках вносят значительный вклад в разработку любого
программного продукта. Но, как и написание хорошей программы, хорошее сообщение
об ошибке включает в себя некую долю работы. Пожалуйста, осознайте, что
большинство разработчиков — занятые люди, получающие огромное количество
писем. Поэтому, хотя Ваши отзывы необходимы для улучшения <application>MPlayer</application>'а, хотя
они очень приветствуются, пожалуйста поймите, что Вы должны предоставить
<emphasis role="bold">Всю</emphasis> требуемую нами информацию, поэтому точно
следуйте инструкциям в этом документе.
</para>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="bugreports_security">
<title>Отчеты об ошибках безопасности</title>
<para>
В случае, если вы нашли уязвимость и хотите позволить нам исправить ее до того, как она будет
обнародована, мы будем рады получить ваше уведомление по адресу
<ulink url="mailto:security@mplayerhq.hu">security@mplayerhq.hu</ulink>.
Пожалуйста добавьте [SECURITY] или [ADVISORY] к теме письма.
Убедитесь, что ваш отчет содержит полный и подробный анализ ошибки.
Желательно также прислать и исправление уязвимости.
Пожалуйста, не откладывайте отчет для написания подтверждающего ошибку эксплойта.
Вы можете отослать его позже другим письмом.
</para>
</sect1>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="bugreports_fix">
<title>Как исправить ошибку</title>
<para>
Если Вы ощущаете в себе достаточно сил и умения для самостоятельного решения
проблемы, пожалуйста, сделайте это. Или может быть Вы уже это сделали?
Пожалуйста, прочитайте <ulink url="../../tech/patches.txt">этот короткий
документ</ulink>, чтобы узнать, как сделать так, чтобы Ваш код включили
в <application>MPlayer</application>. Люди из рассылки
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">mplayer-dev-eng</ulink>
помогут Вам, если у Вас есть вопросы.
</para>
</sect1>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="bugreports_regression_test">
<title>Как провести проверку на деградацию, используя Subversion</title>
<para>
Иногда возникает проблема 'раньше это работало, а теперь - нет'. Здесь представлена
пошаговая процедура определения момента возникновения ошибки.
Но она <emphasis role="bold">не для</emphasis> рядовых пользователей.
</para>
<para>
Во-первых, вам нужно получить исходный код MPlayer из Subversion.
Инструкции могут быть найдены в
<ulink url="http://www.mplayerhq.hu/design7/dload.html#svn">разделе Subversion
страницы закачки</ulink>.
</para>
<para>
После этого в каталоге mplayer/ вы будете иметь образ дерева Subversion.
Теперь обновите этот образ на желаемую дату:
<screen>
cd mplayer/
svn update -r {"2004-08-23"}
</screen>
Формат даты: YYYY-MM-DD HH:MM:SS.
Использование этого формата, гарантирует, что вы сможете извлечь патчи по дате их
внесения, которые указаны в
<ulink url="http://lists.mplayerhq.hu/pipermail/mplayer-cvslog/">архиве MPlayer-cvslog</ulink>.
</para>
<para>
Далее выполняйте как при обычном обновлении:
<screen>
./configure
make
</screen>
</para>
<para>
Для непрограммистов, читающих эту страницу, сообщим, то самый быстрый способ найти место
возникновения ошибки - использование бинарного поиска, т.е. поиск даты,
деля интервал поиска пополам раз за разом.
Например, если проблема возникла в 2003 году, начните с середины года и
выясните присутствует ли проблема. Если да, то переходите к проверке
начала Апреля, иначе - к началу Октября. Повторяйте этот процесс, уменьшая интервал
поиска вдвое, пока не выясните искомую дату.
</para>
<para>
Если у вас имеется достаточно свободного места на жестком диске (полная
компиляция требует около 100Мб, или 300-350 если включена отладочная
информация), скопируйте последнюю работающую версию перед обновлением,
это сэкономит время при необходимости вернуться назад.
(Как правило необходимо выполнять 'make distclean' до перекомпиляции
более ранней версии, поэтому при отсутствии сохраненной копии
вам придется перекомпилировать весь проект.)
</para>
<para>
Как только вы нашли дату, продолжайте поиск, используя архив mplayer-cvslog
(отсортированный по дате) до получения более точного времени, включая
час, минуту, секунду:
<screen>
svn update -r {"2004-08-23 15:17:25"}
</screen>
Это позволит легко выделить патч, явившийся источником проблемы.
</para>
<para>
Если вы нашли нужный патч, то вы практически победили; сообщите о нем в
<ulink url="http://bugzilla.mplayerhq.hu/">MPlayer Bugzilla</ulink> или
подпишитесь на
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users">MPlayer-users</ulink>
и отправте сообщение туда.
Есть шанс, что автор исправит ошибку.
Вы также можете долго и пристально вглядываться в патч, пока сами не увидите ошибку :).
</para>
</sect1>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="bugreports_report">
<title>Как сообщить об ошибке</title>
<para>
Прежде всего, пожалуйста, попробуйте использовать новейшую Subversion версию
<application>MPlayer</application>'а, поскольку Ваша ошибка уже может быть исправлена.
Разработка продвигается очень быстро, большинство проблем в официальных релизах
сообщается в течение дней, и даже часов, после релиза, поэтому, пожалуйста, для
сообщений об ошибках используйте <emphasis role="bold">только Subversion</emphasis>.
Это включает и бинарные пакеты <application>MPlayer</application>'а. Вы найдёте
инструкции по Subversion внизу
<ulink url="http://www.mplayerhq.hu/dload.html">этой страницы</ulink>
или в README. Если это не помогло, пожалуйста, обратитесь к списку
<link linkend="bugs">известных ошибок</link> и остальной документации. Если
Ваша проблема не известна или не решается с помощью наших инструкций,
пожалуйста, сообщите об ошибке.
</para>
<para>
Пожалуйста, не присылайте сообщения об ошибках лично какому-нибудь разработчику.
Это командная работа, и, поэтому, Вашим сообщением могут заинтересоваться
несколько человек. Довольно часто бывает, что пользователи уже сталкивались
с Вашей проблемой и знают, как обойти проблему, даже если это ошибка в коде
<application>MPlayer</application>'а.
</para>
<para>
Пожалуйста, опишите Вашу проблему настолько подробно, насколько возможно.
Проведите маленькое расследование, чтобы выяснить условия, при которых возникает
проблема. Проявляется ли ошибка только в каких-то конкретных ситуациях?
Она специфична только для каких-то файлов или типов файлов? Происходит ли это
с каким-то одним кодеком, или это не зависит от кодека? Можете ли Вы
воспроизвести это со всеми драйверами вывода? Чем больше Вы предоставите
информации, тем выше вероятность того, что мы сможем исправить ошибку.
Пожалуйста, не забудьте включить важную информацию, которую мы просим ниже,
иначе мы не сможем должным образом диагностировать Вашу проблему.
</para>
<para>
Великолепное, отлично написанное руководство по задаванию вопросов
на общедоступных форумах — это
<ulink url="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask
Questions The Smart Way[Как Задавать Вопросы. Правильный Путь.]</ulink>,
написанное <ulink url="http://www.catb.org/~esr/">Eric S. Raymond</ulink>.
Есть и другое —
<ulink url="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">How to Report
Bugs Effectively[Как Эффективно Сообщить об Ошибке]</ulink>, написанное <ulink
url="http://www.chiark.greenend.org.uk/~sgtatham/">Simon Tatham</ulink>.
Если Вы будете следовать этим указаниям, Вы сможете получить помощь. Но,
пожалуйста, учтите, что мы добровольно отслеживаем рассылки в свободное время.
Мы очень заняты и не можем гарантировать, что Вы получите решение для Вашей
проблемы (или хотя бы ответ).
</para>
</sect1>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="bugreports_where">
<title>Куда сообщать об ошибках</title>
<para>
Подпишитесь на рассылку mplayer-users:
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users"/>
и отошлите Ваше сообщение на:
<ulink url="mailto:mplayer-users@mplayerhq.hu"/>,
где Вы сможете его обсудить.
</para>
<para>
Или, если хотите, Вы можете использовать нашу новую
<ulink url="http://bugzilla.mplayerhq.hu/">Bugzilla</ulink>.
</para>
<para>
Язык этой рассылки — <emphasis role="bold">английский</emphasis>.
Пожалуйста, следуйте стандарту <ulink url="http://www.ietf.org/rfc/rfc1855.txt">
Netiquette Guidelines[Руководство по Сетевому Этикету]</ulink> и
<emphasis role="bold">не присылайте HTML почту</emphasis> ни на какую из наших
рассылок. Вас просто проигнорируют или забанят. Если Вы хотите узнать, что такое
HTML почта и почему это — зло, прочтите
<ulink url="http://expita.com/nomime.html">этот документ</ulink>. Он объяснит
Вам все детали и содержит инструкции по отключению HTML. Также обратите
внимание, что мы не будем индивидуально CC (отсылать копии) людям, а поэтому
подписаться — хорошая идея, если Вы хотите получить ответ.
</para>
</sect1>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="bugreports_what">
<title>Что сообщать</title>
<para>
Вам необходимо включить лог, конфигурацию или примеры файлов в сообщение
об ошибке. Если что-то из этого большое, то лучше загрузить это на наш
<ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/">FTP сервер</ulink>
в сжатом виде (предпочтительно gzip или bzip2) и включить в сообщение
об ошибке только путь и имя файла. На наших рассылках стоит ограничение размера
сообщения в 80Кб. Если у Вас что-то большее, то сожмите или загрузите это.
</para>
<!-- ********** -->
<sect2 id="bugreports_system">
<title>Системная информация</title>
<para>
<itemizedlist>
<listitem><para>
Ваш дистрибутив Linux или операционная система и версия, например:
<itemizedlist>
<listitem><para>Red Hat 7.1</para></listitem>
<listitem><para>Slackware 7.0 + пакеты разработки из 7.1 ...</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
версию ядра:
<screen>uname -a</screen>
</para></listitem>
<listitem><para>
версию libc:
<screen>ls -l /lib/libc[.-]*</screen>
</para></listitem>
<listitem><para>
версии gcc и ld:
<screen>
gcc -v
ld -v<!--
--></screen>
</para></listitem>
<listitem><para>
версия binutils:
<screen>as --version</screen>
</para></listitem>
<listitem><para>
Если у Вас проблемы с полноэкранным режимом:
<itemizedlist>
<listitem><para>Тип оконного менеджера и версия</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
Если у Вас проблема с XVIDIX:
<itemizedlist>
<listitem><para>глубина цвета X'ов:
<screen>xdpyinfo | grep "depth of root"</screen>
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
Если глючит только GUI:
<itemizedlist>
<listitem><para>версия GTK</para></listitem>
<listitem><para>версия GLIB</para></listitem>
<listitem><para>ситуация с GUI, в которых проявляется проблема</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</para>
</sect2>
<!-- ********** -->
<sect2 id="bugreports_hardware">
<title>Аппаратура и драйверы</title>
<para>
<itemizedlist>
<listitem><para>
Информация о CPU (это сработает только под Linux):
<screen>cat /proc/cpuinfo</screen>
</para></listitem>
<listitem><para>
Производитель и модель видео карты, например:
<itemizedlist>
<listitem><para>ASUS V3800U чип: nVidia TNT2 Ultra pro 32MB SDRAM</para></listitem>
<listitem><para>Matrox G400 DH 32MB SGRAM</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
Тип драйвера и версия, например:
<itemizedlist>
<listitem><para>Встроенный в X'ы</para></listitem>
<listitem><para>nVidia 0.9.623</para></listitem>
<listitem><para>Utah-GLX CVS 2001-02-17</para></listitem>
<listitem><para>DRI из X 4.0.3</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
Тип и драйвер звуковой карты, например:
<itemizedlist>
<listitem><para>Creative SBLive! Gold с OSS драйверами от oss.creative.com</para></listitem>
<listitem><para>Creative SB16 с OSS драйверами из ядра</para></listitem>
<listitem><para>GUS PnP с ALSA OSS эмуляцией</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
Если Вы сомневаетесь, на Linux системах включите вывод
<command>lspci -vv</command>.
</para></listitem>
</itemizedlist>
</para>
</sect2>
<!-- ********** -->
<sect2 id="bugreports_configure">
<title>Проблемы конфигурации</title>
<para>
Если Вы получаете ошибку при выполнении <command>./configure</command>, или если
автоопределение чего-то не срабатывает, прочитайте <filename>configure.log
</filename>. Там Вы можете обнаружить ответ, например если у Вас стоят несколько
версий одной библиотеки, или если Вы забыли установить пакет разработки (тот
самый, с суффиксом -dev). Если Вы думаете, что это ошибка, включите в сообщение
файл <filename>configure.log</filename>.
</para>
</sect2>
<sect2 id="bugreports_compilation">
<title>Проблемы компиляции</title>
<para>
Пожалуйста, включите эти файлы:
<itemizedlist>
<listitem><para>config.h</para></listitem>
<listitem><para>config.mak</para></listitem>
</itemizedlist>
</para>
</sect2>
<!-- ********** -->
<sect2 id="bugreports_playback">
<title>Проблемы при воспроизведении</title>
<para>
Пожалуйста, включите вывод <application>MPlayer</application>'а с уровнем
"многословности" [verbose] 1, но запомните: <emphasis role="bold">не
сокращайте вывод</emphasis>, когда Вы его вставляете в почту. Разработчикам
понадобятся все сообщения, чтобы правильно диагностировать проблему. Вы можете
направить вывод в файл, например так:
<screen>
mplayer -v <replaceable>options</replaceable> <replaceable>filename</replaceable> > mplayer.log 2>&1
</screen>
</para>
<para>
Если проблема специфична для одного или нескольких файлов,
пожалуйста, загрузите проблемные файлы на:
<ulink url="ftp://mplayerhq.hu/MPlayer/incoming/"/>
</para>
<para>
Также загрузите маленький текстовый файл с базовым именем как у Вашего файла и
расширением <filename>.txt</filename>. Опишите проблему, возникающую у Вас
с соответствующим файлом и включите ваш электронный адрес и вывод
<application>MPlayer</application>'а
с уровнем "многословности" 1. Куска файла размером 1-5 Мб обычно
бывает достаточно, чтобы воспроизвести проблему, но чтобы быть уверенными,
мы просим вас сделать:
<screen>
dd if=<replaceable>yourfile</replaceable> of=<replaceable>smallfile</replaceable> bs=1024k count=5
</screen>
Это запишет первые 5 Мб файла '<emphasis role="bold">your-file</emphasis>' и
запишет в файл '<emphasis role="bold">small-file</emphasis>'. Теперь снова
попытайтесь с эти маленьким файлом, и если проблема все ещё проявляется,
тогда этого примера будет достаточно для нас. Пожалуйста,
<emphasis role="bold">никогда</emphasis> не отсылайте эти файлы по почте!
Загрузите его и отошлите только путь/имя файла не FTP-сервере. Если файл
доступен по сети, тогда просто пришлите <emphasis role="bold">точный</emphasis>
URL, и этого будет достаточно.
</para>
</sect2>
<!-- ********** -->
<sect2 id="bugreports_crash">
<title>Краши[crash]</title>
<para>
Вы должны запустить <application>MPlayer</application> внутри <command>gdb</command>
и прислать нам полный вывод, или , если у Вас есть <filename>core</filename>
dump поломки, Вы можете извлечь необходимую полезную информацию из файла
core. Вот как:
</para>
<sect3 id="bugreports_debug">
<title>Как сохранить информацию о воспроизводимом краше</title>
<para>
Перекомпилируйте <application>MPlayer</application> с включённым кодом отладки:
<screen>
./configure --enable-debug=3
make
</screen>
и запустите <application>MPlayer</application> внутри gdb:
<screen>gdb ./mplayer</screen>
Теперь вы в gdb. Наберите:
<screen>
run -v <replaceable>опции-для-mplayer</replaceable> <replaceable>имя-файла</replaceable>
</screen>
и воспроизведите краш. Как только Вы это сделаете, gdb вернёт Вас к приглашению
командной строки, где Вы должны набрать
<screen>
bt
disass $pc-32 $pc+32
info all-registers
</screen>
</para>
</sect3>
<sect3 id="bugreports_core">
<title>Как извлечь полезную информацию из дампа [core dump]</title>
<para>
Создайте следующий командный файл:
<screen>
bt
disass $pc-32 $pc+32
info all-registers
</screen>
Теперь просто выполните такую команду:
<screen>
gdb mplayer --core=core -batch --command=командный-файл > mplayer.bug
</screen>
</para>
</sect3>
</sect2>
</sect1>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="bugreports_advusers">
<title>Я знаю, что я делаю...</title>
<para>
Если Вы создали правильное сообщение об ошибке так, как рассказано выше, и Вы
уверены, что это ошибка в <application>MPlayer</application>'е, а не ошибка компилятора или плохой файл,
Вы уже прочли всю документацию и не можете найти решение, ваши звуковые драйвера
в порядке, тогда Вы можете подписаться на рассылку mplayer-advusers и прислать
сообщение об ошибке туда, чтобы получить более точный и быстрый ответ.
</para>
<para>
Обратите внимание, что если Вы будете отсылать туда вопросы новичков или
вопросы, на которые ответы присутствуют в документации, то Вас проигнорируют
или обругают вместо того, чтобы ответить. Поэтому не заваливайте нас мелочами
и подписывайтесь на -advusers только, если Вы действительно знаете, что Вы
делаете, и ощущаете себя продвинутым пользователем или разработчиком <application>MPlayer</application>'а.
Если подходите под этот критерий, Вам не составит труда понять, как надо
подписаться...
</para>
</sect1>
</appendix>
|