LINUX.ORG.RU
ФорумTalks

Патчи в kernel - личный опыт

 , ,


0

5

В fs/unicode до сих пор Unicode 12.1, а во дворах уже давно 15.0, и есть корректирующий черновик 15.1.

Думаю отправить им патч, которым пользуюсь более полугода.

У кого был опыт отправки патчей? Как лучше поступить?

★★★★★
Ответ на: комментарий от dataman

А что оно тебе даст? Это же зависит от миллиона факторов: от качества посылаемого кода, нужности предлагаемого функционала, умения посылаемого оформить email, адресата на той стороне, настроения у адресата, и еще десятка факторов.

urxvt ★★★★★
()
Ответ на: комментарий от dataman

А что тут детектировать то, я и не говорил, что я слал патчи в Ядро. Слал в другие проекты — как результативно, так и не очень (мягко говоря).

urxvt ★★★★★
()
Ответ на: комментарий от neocrust

Скромность, стеснительность и лень.

dataman ★★★★★
() автор топика

Наверное патчи бывают разной нужности и полезности.

Но вообще говоря забавно, конечно. Сломали мне мышь в 6.1. Написал «самопатч», ну и меня-то работает и чудненько. В общем и не думал, что в таком виде его приличные люди куда-то там примут.

Забавность в том, что уже после меня пришел нормальный ядерный программист с правильным, красивым патчем. Аж 16го января пришел. И его поставили в очередь на... 6.3 ядро )

Toxo2 ★★★★
()
Ответ на: комментарий от dataman

А если я выложу патч куда-нибудь, и вы его по проторенной дорожке, так сказать…

Выложи его в список рассылки через email.

hateyoufeel ★★★★★
()
Ответ на: комментарий от dataman

А если я выложу патч куда-нибудь, и вы его по проторенной дорожке, так сказать…

Теоретически тот кто отсылает патч и тот кто написал патч могут быть разными людьми.

В email с патчем первой строчкой нужно лишь добавить:

From: Имя_того_кто_написал_патч <eго@имейл.ru>

Но в реальности же по идее скажут что нужно что-то править в патче, и тот кто пошлёт сам потом дописывать будет или как?

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от urxvt

Или тебе сложно email оформить?

Для меня например непосильно справиться с этой технологией древних. Благо что Wine недавно на GitLab перешёл.

X512 ★★★★★
()
Ответ на: комментарий от urxvt

Так отправь, в чем проблема то? Или тебе сложно email оформить?

Патчи через email настолько ущербная технология, что множеству людей это невозможно сделать, да.

Мне хоть и удалось это сделать, но эта технология ужасна после божественного Github.

fsb4000 ★★★★★
()
Ответ на: комментарий от dataman

А если я выложу патч куда-нибудь, и вы его по проторенной дорожке, так сказать…

Можешь на гитхабе создать ветку ядра Linux с твоим патчем.

В сообщении в коммите добавь описание что это за патч и в конце сообщения добавь:

Signed-off-by: Твоё_Имя_На_Английском <твой@email.com>

как тут: https://github.com/torvalds/linux/commit/a5575df58004e8444e5a2a307407c3f1a6ecf175

сможем отправить твой патч.

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от fsb4000

Спасибо!

Уж очень не хочется клонировать всё «зеркало» со всей историей.

Если не ошибаюсь, то $ git clone --filter=blob:none --depth 1 ... ни на что не повлияет?

dataman ★★★★★
() автор топика
Ответ на: комментарий от X512

Благо что Wine недавно на GitLab перешёл.

Фу фу фу. Я наоборот не смог даже зарегиться (года 4 назад) в новом иксовом багтрекере с их дурацким гитлабом. Хорошо что в багзилле они регу не закрыли и оттуда их бот миграции мой коммент с фиксом перенёс в гитлаб. Впрочем, они всё равно его проигнорили.

firkax ★★★★★
()
Ответ на: комментарий от dataman

P.S. С 1 всё ok.

Чтобы создать ветку и запушить изменения 1 достаточно. А для создания патча видимо нет. У меня при выполнении команды

git format-patch -1

патч неправильный создался (на 1.5 гигабайта со всеми файлами)

Сейчас делаю клон, как сделается посмотрю проходит ли патч проверки и попробую отправить с указанием твоего авторства.

fsb4000 ★★★★★
()
Ответ на: комментарий от dataman

Вот пока такие команды вводил:

git format-patch -1

./scripts/checkpatch.pl 0001-fs-update-Unicode-version-to-15.0.patch

Вот что выдало:

WARNING: Missing commit description - Add an appropriate one

total: 0 errors, 1 warnings, 6369 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

0001-fs-update-Unicode-version-to-15.0.patch has style problems, please review.

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.

Я посмотрел патч и предыдущие несколько патчей и нашёл этот:

https://github.com/data-man/linux/commit/1215d239e791c54a3abb135553d32c9b91ae96ef

Тут меняли 3 файла, а не два. Так что наверное тебе нужно поменять файл utf8-selftest.c

также добавь commit description как у того чувака:

Regenerate utf8data.c_shipped based on the latest UCD files and run tests against the latest version.

через git commit --amend и git push --force

fsb4000 ★★★★★
()
Ответ на: комментарий от firkax

Я наоборот не смог даже зарегиться (года 4 назад) в новом иксовом багтрекере с их дурацким гитлабом.

Я с первого раза зашёл по акаунту GitHub.

X512 ★★★★★
()
Ответ на: комментарий от dataman

Ok.

То есть вот в итоге что я сделал:

  1. Убедиться что в коммите есть Signed-off-by: имя <имейл>

  2. Создать патч

git format-patch -1
  1. Проверить на очевидные ошибки
./scripts/checkpatch.pl 0001-unicode-update-unicode-database-unicode-version-15.0.patch

total: 0 errors, 0 warnings, 6385 lines checked

0001-unicode-update-unicode-database-unicode-version-15.0.patch has no obvious style problems and is ready for submission.
  1. Найти имейлы куда слать патч:
./scripts/get_maintainer.pl 0001-unicode-update-unicode-database-unicode-version-15.0.patch

Gabriel Krisman Bertazi <krisman@collabora.com> (supporter:UNICODE SUBSYSTEM)
linux-fsdevel@vger.kernel.org (open list:UNICODE SUBSYSTEM)
linux-kernel@vger.kernel.org (open list)
  1. Послать имейл, его содержимое в целом написано в патч файле. Единственное, если имейл с которого посылают патч не совпадает с имейлом который в Signed-off-by, то нужно добавить первой строкой From: ...

https://imgur.com/a/gPjRATt

Теперь по идее патч должен появиться тут https://patchwork.kernel.org/project/linux-fsdevel/list/

Но пока нету, и это всегда раздражает, так как не ясно это вся система где-то глючит или я что-то не то сделал…

Update: на LKML появился: https://lkml.org/lkml/2023/3/5/18

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от fsb4000

Патчи через email настолько ущербная технология, что множеству людей это невозможно сделать, да.

Потому что смайликов под сообщениями нет?

urxvt ★★★★★
()
Ответ на: комментарий от firkax

Фу фу фу. Я наоборот не смог даже зарегиться (года 4 назад) в новом иксовом багтрекере с их дурацким гитлабом. Хорошо что в багзилле они регу не закрыли и оттуда их бот миграции мой коммент с фиксом перенёс в гитлаб. Впрочем, они всё равно его проигнорили.

У меня сейчас аналогичная проблема, не могу в дебиановской Salsa зарегистрироваться (500).

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

Потому что смайликов под сообщениями нет?

  1. Чтобы отправить патч из многих коммитов, нужно слать много имейлов с разными заголовками, где можно сбиться со счёта.

  2. Нет подсветки синтаксиса.

  3. Ревьюверы могут лишь писать комменты, а не сразу править всё.

  4. Ревьюверы не могут писать свои предложения.

  5. После исправлений замечаний ревьюверов опять нужно слать имейлы, а не просто запушить комит в ветку.

fsb4000 ★★★★★
()
Ответ на: комментарий от fsb4000

Вот как пример: https://github.com/microsoft/STL/pull/3495

Я сделал PR, и пошёл спать :), а когда проснулся увидел что ревьюверы сами там поправили имена в тестах, добавили чуток тестов и заапрувили.

С патчами по почте это растянулось бы дней на 3-5…

fsb4000 ★★★★★
()
Ответ на: комментарий от fsb4000

С патчами по почте это растянулось бы дней на 3-5

В LLVM не лучше:

DO NOT FILE A PULL REQUEST

This repository does not accept pull requests.

dataman ★★★★★
() автор топика
Ответ на: комментарий от X512

Ты не понимаешь, это удобно и правильно, ведь там нет свистелок и перделок

Original_1
()

Одно время пользовался какими-то третьесторонними драйверами, которые есть и в ядре но сильно более старой версии. На мой вопрос автору, а чего б ему патч в ядро не засабмитить, последовал ответ, что там всё очень жёстко и по стилю, и по структуре кода, и его форк подогнать под их стандарты уже нереально.

pr849
()
Ответ на: комментарий от pr849

Ну, надеюсь с моим патчем будет проще, так как он примитивный и большей частью сгенерирован их же утилитой.

dataman ★★★★★
() автор топика
Ответ на: комментарий от fsb4000

Чтобы отправить патч из многих коммитов, нужно слать много имейлов с разными заголовками, где можно сбиться со счёта.

Это какой-то бредовый аргумент. Если хочешь весь патч за 1 раз то по логике это должен быть один коммит. Если там много коммитов то разумно их отдельно обсуждать.

Нет подсветки синтаксиса.

Где нет? email это протокол, а у себя в софте (которым ты патчи редактируешь) делай какие хочешь подсветки.

Ревьюверы могут лишь писать комменты, а не сразу править всё.

Если все толпой будут править патч то получится помойка. Комменты это хорошо.

После исправлений замечаний ревьюверов опять нужно слать имейлы, а не просто запушить комит в ветку.

Конечно не запушить, у тебя прав пуша нет. Да и вдруг замечания новые появятся - надо обсудить.

Вобщем, все твои претензии полностью левые. Если что, я до этого ни разу не видел как работает приём патчей к линукс-ядре.

firkax ★★★★★
()
Ответ на: комментарий от fsb4000

Чтобы отправить патч из многих коммитов, нужно слать много имейлов с разными заголовками, где можно сбиться со счёта.

Ещё один не осилил git send-email. Или ты думал кто-то это всё руками делает?

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от dataman

Чтобы можно было посмотреть хотя бы последние коммиты. Они обычнов весят весьма мало, но да, с 1 тоже работает.

Xenius ★★★★★
()
  1. Пиши развернутый cover letter
  2. Разбивай патчи на логические составляющие
  3. Целься в merge window
  4. Пингуй раз в пару недель

P.S. Лидирую команду которая шлет патчи раз в пару недель.

P.P.S. Актуальнный гайд: https://www.kernel.org/doc/html/latest/process/submitting-patches.html

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 2)
Ответ на: комментарий от fsb4000

Я сделал PR, и пошёл спать :), а когда проснулся увидел что ревьюверы сами там поправили имена в тестах, добавили чуток тестов и заапрувили.

Не понимаю что мешает мейнтейнерам сделать то же самое с твоим патчем.

cumvillain
()
Ответ на: комментарий от cumvillain

Не понимаю что мешает мейнтейнерам сделать то же самое с твоим патчем.

Ок, они могут взять патч как есть и доделать его где-то у себя, но они не могут доделать и изменить в том же обсуждении, и продолжить обсуждение.

Неужели это неочевидно?

На github будет одно обсуждение в конкретном Pull Request.

А в списках рассылки будут разные темы, и их ещё все найти нужно.

темы типа:

[PATCH] dt-bindings: i2c: aspeed: support

[PATCH v2] dt-bindings: i2c: aspeed: support

[PATCH v3] dt-bindings: i2c: aspeed: support

[PATCH v4] dt-bindings: i2c: aspeed: support

[PATCH v5] dt-bindings: i2c: aspeed: support

[PATCH v6] dt-bindings: i2c: aspeed: support

fsb4000 ★★★★★
()
Ответ на: комментарий от fsb4000

Нет, очевидно:

def lolkek_test_name():

I think this name is not very descriptive, gonna change it to foobar_test_name().

Everything else looks good, merged.

Вот и все. Ты себе проблему на ровном месте придумал и с ней борешься зачем-то.

cumvillain
()
Ответ на: комментарий от dataman

Появился! :)

Да.

https://patchwork.kernel.org/project/linux-fsdevel/patch/2665411678005021@qv3fkcoxxqni3b7f.myt.yp-c.yandex.net/

Я просто ошибся. Я думал я есть в этом patchwork, а я был в другом patchwork :)

Первый email там всегда долго подтверждают, потом по идее должны без премодерации идти патчи.

Я вот в этот patchwork https://patchwork.ozlabs.org/ несколько патчей закомитил в Open Virtual Network development

fsb4000 ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)