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

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

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

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

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

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

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

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

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

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

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

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

2 ответа

Решение

Как упоминал Доби, для того, чтобы патч был принят в уже выпущенную версию 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 из Ubuntu-Dev-Tools Установите 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. См. https://wiki.ubuntu.com/StableReleaseUpdates для получения информации о допустимых типах исправлений и процедуре их получения.

Другие вопросы по тегам