Можно ли включить патч в текущую версию? Если так, то как?


15

Некоторое время назад я сообщил об ошибке в плагине Compiz's Place Window . Судя по сообщениям, это довольно серьезный регресс для людей, затронутых этим: в основном для тех, кто использует Gnome-Fallback.

Через некоторое время появился патч. Я создал PPA для тестирования, и все участники до сих пор сообщают, что проблемы устранены. Это даже исправляет другую ошибку . Я провел тестирование со стандартным рабочим столом Unity и могу сказать (для моего тестирования) никаких побочных эффектов не было видно.

Я хочу отправить это в Ubuntu прямо сейчас по двум основным причинам:

  • Я эгоист. Я не хочу обновлять свой PPA каждый раз, когда новая версия Compiz выдвигается до 12.04.
  • Я не хочу, чтобы пользователи Ubuntu видели, как их окна летают из-за глупой маленькой ошибки.

Я хочу, чтобы этот патч был добавлен в версию Compiz для Ubuntu как можно скорее, чтобы мы могли пометить эти ошибки как исправленные и продолжить свою жизнь.

Чью ногу я должен протолкнуть, чтобы втянуть это в Ubuntu прямо сейчас?

Я не поддерживаю этот проект, и это является основной задачей, но это довольно неотъемлемая часть Ubuntu. Я мог бы пойти в Compiz, но я представляю, что если они примут патч, пройдут месяцы (по крайней мере, релиз), прежде чем он появится где-то рядом с Ubuntu.

И когда я найду нужного человека, как я могу сделать процесс максимально гладким для них?

Я хочу, чтобы они увидели мою просьбу, иди «Да, все выглядит отлично, готово», и это будет так. Я не хочу семнадцать раундов электронных писем, касающихся аспектов патча. Что еще более важно, я тоже не хочу тратить их время.

И что я должен им предоставить? Мои навыки упаковки ... плачевны. Это была моя первая попытка установить пакет для перераспределения, поэтому я, вероятно, сделал каждую ошибку пакета известной человеку. Будут ли они довольны оригинальным патчем (чтобы они могли применить его сами) или я должен переупаковать вещи, чтобы diff / changelog стал немного чище (мне потребовалось несколько раз, и версирование повсюду).

Примечание: Этот вопрос является о Compiz , но я бы предпочел , если ответы могут обращаться другими стилями пакета тоже так мы имеем авторитетную и всеобъемлющую нить , как получить вещи фиксированы.

Ответы:


14

Как отметил Добей, для того, чтобы патч был принят в уже выпущенную версию Ubuntu, он должен пройти через процесс стабильного обновления (SRU). Запрет на въезд для SRU довольно высок. Простой способ подвести итог мышлению, стоящему за этим процессом, может быть следующим: «Ошибка, которую мы знаем, лучше ошибки, о которой мы не знаем». На практике это означает, что разрешены только целевые исправления ошибок, а не слишком «навязчивые» изменения.

Существует ряд требований, которые должны быть выполнены, чтобы продолжить работу с SRU:

  • Ошибка исправлена ​​в текущем выпуске разработки (т.е. количественном).
  • Описание отчета об ошибке должно быть обновлено, чтобы включить обоснование необходимости исправления в стабильном выпуске, контрольный пример для воспроизведения ошибки и проверки ее исправления, а также обсуждение регрессионного потенциала исправления.
  • Команда Launchpad ubuntu-sruдолжна быть подписана на отчет об ошибке.
  • Затем пакет загружается в релиз.-proposed Для того, чтобы это произошло, вам необходимо пройти процедуру спонсорства (подробнее см. Ниже).

После всего, что произошло, команда SRU проверит, что пакет -proposedисправляет ошибку. Затем посылка будет сдана -updatesпосле того, как прошло минимум 7 дней.

Найти правильного человека

Ваш вопрос намекает на тот факт, что иногда Launchpad выглядит так, как будто патчи исчезают. К сожалению, если вы не знаете процесс, он может чувствовать себя так, но я клянусь, это не так уж плохо. К счастью, главное, что вам нужно знать, это просто. Проверьте процесс спонсорства для всех деталей и некоторых подсказок, но самая важная часть состоит в том, чтобы подписать ubuntu-sponsorsкоманду на сообщение об ошибке. Это гарантирует, что он появится в очереди на спонсорство и будет проверен честным богом разработчиком Ubuntu.

Если вам нужно что-то обсудить в режиме реального времени, #ubuntu-develна Freenode IRC справится. Проверьте тему канала для текущего пилотного патча. Они там, чтобы помочь вам. Если нет дежурного пилота, не стесняйтесь просить о помощи на канале, но, пожалуйста, будьте терпеливы.

Готовимся к работе

Чтобы ускорить процесс, нужно сделать несколько вещей.

Обновите описание ошибки, чтобы оно выглядело так:

[Влияние]

Вот объяснение влияния ошибки на пользователей и обоснование для переноса исправления в стабильный выпуск

[Прецедент]

  1. шаг

  2. По

  3. шаг

  4. инструкции

  5. Проверять

  6. Исправление

[Потенциал регрессии]

Вот обсуждение любого потенциала регрессий.

[Оригинальный отчет]

Все, что было в описании, сохранено ниже.

Далее подготовьте свои патчи. Ситуация пойдет намного быстрее, если вы предоставите debdiffs, который позаботится обо всех битах упаковки, а не исправит исходный код. Это включает в себя использование системы исправлений пакетов, если она ее использует. К счастью , add-patchот убунту-DEV-инструментыУстановите Ubuntu-Dev-инструменты могут позаботиться о том , что для вас.

Давайте пройдемся по этому. Сначала возьмите источник и патч в отчете об ошибке:

$ pull-lp-source compiz precise
$ wget https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/974242/+attachment/3141645/+files/fix-974242.patch 

Теперь мы добавим патч к исходному пакету:

$ cd compiz-0.9.7.8/
$ add-patch ../fix-974242.patch

Это добавит исправление debian/patchesи запустит его, dchпредложив добавить новую запись в debian/changelogполе «Настроить запись для целевой цели» и увеличить номер версии так, чтобы он был ниже следующей версии, загруженной в выпуск для разработки. Вот так:

compiz (1:0.9.7.8-0ubuntu1.1) precise-proposed; urgency=low

  * debian/patches/fix-974242.patch: [DESCRIBE CHANGES HERE]

 -- Your Name <you@example.com>  Mon, 11 Jun 2012 17:37:59 -0400

В файле debian/patches/fix-974242.patchтакже есть несколько заголовков, которые вы можете редактировать:

## Description: add some description
## Origin/Author: add some origin or author
## Bug: bug URL

Теперь создайте новый пакет с исходным кодом:

$ debuild -S -us

И создайте debdiff:

$ cd ..
$ debdiff compiz_0.9.7.8-0ubuntu1.dsc compiz_0.9.7.8-0ubuntu1.1.dsc > sru-for-lp-974242.debdiff

Теперь вы можете прикрепить полученный debdiffфайл к вашему сообщению об ошибке.


отличный ответ, хороший материал. Вы можете заметить, что команда хотя бы 12.04 / 12.10 pull-lp-source. Не было раньше, чтобы увидеть, если / когда это былоpull-launchpad-source
Doug

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.