debian.org / О Debian Где взять Debian Поддержка Уголок разработчика Новости Wiki

Автор Тема: Подскажите, как правильно создать патчи для исходников  (Прочитано 678 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nihi1ist

  • Добрый Санта
  • Topic Author
  • Сообщений: 79
    • Путь юниксоида
  • Jabber: nihi1ist@jabber.ru
Здравствуйте.

Нашел репозиторий Github. Там есть патчи для Dante 1.4.1, подскажите как правильно создать патчи для 1.4.2? Насчет diff читал, даже пробовал исправить пару патчей. Но процесс сборки всё равно вываливается с ошибкой. До этого в тексте ошибки мне было понятно, какая часть патча не срабатывает, но после исправлений уже не могу разобраться. Точнее вижу, что скрипт не находит файл для применения патча, но почему он не может найти не пойму.
 

Оффлайн alsoijw

  • Fedora 25 GNOME 3 amd64
  • Сообщений: 1231
Форкаешь реп в гитхабе, клонируешь форк, меняешь исходники, заливаешь на гитхаб, шлёшь автору пул реквест, готово.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?
 

Оффлайн nihi1ist

  • Добрый Санта
  • Topic Author
  • Сообщений: 79
    • Путь юниксоида
  • Jabber: nihi1ist@jabber.ru
Форкаешь реп в гитхабе, клонируешь форк, меняешь исходники, заливаешь на гитхаб, шлёшь автору пул реквест, готово.
Я как бы совсем не про то, вы ошибку то посмотрите. Зачем посылать pull-request'ы, если патчи не работают? Надо сначала починить, а потом отсылать.
 

Оффлайн alsoijw

  • Fedora 25 GNOME 3 amd64
  • Сообщений: 1231
Там есть патчи для Dante 1.4.1
Собирается? Или же проблема возникает после модификации?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?
 

Оффлайн ZEN

  • Сообщений: 217
Бегло посмотрел на патчи. И результат следующей проверки показывает, что патч 01-rename-library.patch несовместим.

$ git clone https://github.com/notpeter/dante.git
$ cd dante
$ ls ../debian/patches/*.patch -1
01-rename-library.patch
02-rename-programs.patch
03-configure.patch
10-config-users.patch

$ git apply --check ../debian/patches/01-rename-library.patch
error: patch failed: dante/include/socks.h:471
error: dante/include/socks.h: patch does not apply
error: patch failed: dante/dlib/Makefile.in:406
error: dante/dlib/Makefile.in: patch does not apply
error: patch failed: dante/lib/Makefile.in:391
error: dante/lib/Makefile.in: patch does not apply

$ git apply --check ../debian/patches/02-rename-programs.patch
$ git apply --check ../debian/patches/03-configure.patch
$

Вопрос в том, нужен ли этот патч вообще. Если не нужен (например, правки из этого патча попали в ветку 1.4.2), то можно просто из файла debian/patches/series удалить строку "01-rename-library.patch" и попробовать собрать deb-пакет. В противном случае, нужно подгонять патч под основной код (по выводу выше видно, что мы не смогли пропатчить файлы dante/include/socks.h, dante/dlib/Makefile.in и dante/lib/Makefile.in) или создавать новый патч с нуля.
« Последнее редактирование: 07 Май 2017, 23:35:33 от ZEN »
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо
 

Оффлайн nihi1ist

  • Добрый Санта
  • Topic Author
  • Сообщений: 79
    • Путь юниксоида
  • Jabber: nihi1ist@jabber.ru
Вопрос в том, нужен ли этот патч вообще. Если не нужен (например, правки из этого патча попали в ветку 1.4.2), то можно просто из файла debian/patches/series удалить строку "01-rename-library.patch" и попробовать собрать deb-пакет. В противном случае, нужно подгонять патч под основной код (по выводу выше видно, что мы не смогли пропатчить файлы dante/include/socks.h, dante/dlib/Makefile.in и dante/lib/Makefile.in) или создавать новый патч с нуля.
Эти патчи предназначены для переименования названий исполняемых и библиотек в стиле Debian. Я специально внес вручную изменения в один из файлов и на основе него сделал патч. Но патч всё равно не сработал.
 

Оффлайн nihi1ist

  • Добрый Санта
  • Topic Author
  • Сообщений: 79
    • Путь юниксоида
  • Jabber: nihi1ist@jabber.ru
С работоспособностью патчей разобрался. Подскажите как создать патч для нескольких файлов?
 

Оффлайн nihi1ist

  • Добрый Санта
  • Topic Author
  • Сообщений: 79
    • Путь юниксоида
  • Jabber: nihi1ist@jabber.ru
Согласно статье создал ключ и добавил его:
apt-key add keyring.ascКлюч в списке ключей появился, но при сборке пакета все равно ругается на отсутствие закрытого ключа.
dpkg-genbuildinfo
 dpkg-genchanges  >../dante_1.4.2+dfsg-1_amd64.changes
dpkg-genchanges: инфо: в закачку включён весь исходный код
 dpkg-source --after-build dante-1.4.2
dpkg-buildpackage: инфо: закачка всего; родной пакет Debian (включены все пакеты исходного кода)
 signfile dante_1.4.2+dfsg-1.dsc
gpg: starting migration from earlier GnuPG versions
gpg: porting secret keys from '/root/.gnupg/secring.gpg' to gpg-agent
gpg: migration succeeded
gpg: пропущено "Sabir Abdurakhmanov <nihi1ist@zhasulan.com>": Нет закрытого ключа
gpg: dpkg-sign.ly7y66Xn/dante_1.4.2+dfsg-1.dsc: clear-sign failed: Нет закрытого ключа

Знаю, что можно использовать ключи uc us. Но, ключ то есть. Что я делаю не так?
 

Теги: