Make-initrd development discussion
 help / color / mirror / Atom feed
From: Arseny Maslennikov <arseny@altlinux.org>
To: make-initrd@lists.altlinux.org
Subject: [make-initrd] broken patches? (Re: [PATCH v4 0/4] split pipeline into 4 features)
Date: Wed, 13 Oct 2021 21:50:26 +0300
Message-ID: <YWcqcsq/22AFpqC5@cello> (raw)
In-Reply-To: <90978b29-a2f6-ff0d-afdb-2bc3b4f7933c@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 11017 bytes --]

On Wed, Oct 13, 2021 at 08:20:53PM +0300, Leonid Krivoshein wrote:
> Привет!
> 
> 
> Пробный шар -- не чтобы апстримить, а чтобы оценить самую сложную часть.
> Если всё хорошо, за ней будут ещё коммиты, которые разделяются довольно
> просто. Но первые четыре коммита -- это разделение pipeline на четыре части,
> нет смысл такое апстримить как форк ради форка, в таком виде не добавляется
> дополнительная функциональность.
> 

Патчи почему-то получаются битые; не знаю, как они у Алексея
прикладываются.

  % git am < split-pipeline-into-4-features.mbox
  warning: Patch sent with format=flowed; space at the end of lines might be lost.
  Applying: Separate new feature of bootchain-core from pipeline
  error: corrupt patch at line 181
  Patch failed at 0001 Separate new feature of bootchain-core from pipeline
  hint: Use 'git am --show-current-patch=diff' to see the failed patch
  When you have resolved this problem, run "git am --continue".
  If you prefer to skip this patch, run "git am --skip" instead.
  To restore the original branch and stop patching, run "git am --abort".
  [128] %

Например:

  index 89d9de5..1e95e7d 100755
  --- a/features/pipeline/data/etc/rc.d/init.d/pipeline
  +++ b/features/bootchain-core/data/etc/rc.d/init.d/bootchain
  @@ -1,6 +1,6 @@
    #!/bin/bash
    ### BEGIN INIT INFO
  -# Provides:            pipeline
  +# Provides:            bootchain
    # Required-Start:      uevent udev
    # Should-Start:
    # Required-Stop:

Здесь написано, что строки контекста в файле `f/p/d/etc/rc.d/init.d/p`
начинаются с пробела и потом #, а подменяемая строка, где Provides,
начинается с самого #. В самом том инит-скрипте вся преамбула начинается
с первого символа #.

  @@ -13,14 +13,14 @@
    . /.initrd/initenv
    . /etc/init.d/template
    -NAME=pipelined
  +NAME=bootchained
    PIDFILE="/var/run/$NAME.pid"
    ARGS="--lockfile $LOCKFILE --pidfile $PIDFILE --name $NAME 
  --displayname $NAME"

Вот тут кто-то съел пробельные символы в начале строки, и
patch(1)/git-am(1) видят эту строчку как подлежащую удалению строчку с
содержанием `-displayname $NAME"`. Первый `-` оказывается служебным.

     prepare() {
    	local dir i n
    -	dir=/.initrd/pipeline/waitdev
  +	dir=/.initrd/bootchain/waitdev

Вот тут кто-то сдвинул минус с первой позиции на третью.
Чуть выше, где NAME=pipelined переименовывается в bootchained, тоже - и
+ не ровно стоят.

    	mkdir -p -- "$dir"
     	i=0
  @@ -32,7 +32,7 @@ prepare() {
     start() {
    	RETVAL=0
  -	if [ "${ROOT-}" = pipeline ]; then
  +	if [ "${ROOT-}" = bootchain ] || [ "${ROOT-}" = pipeline ]; then
    		prepare
    		start_daemon --background $ARGS "$NAME"
    		RETVAL=$?

Здесь идёт "кусок"/"фрагмент" (hunk, устоявшегося русского термина нет),
в заголовке которого заявлено, что 7 строк превращаются в 7 строк, но он
содержит всего 6: 2 строки контекста перед -+, одна строка подменяется,
3 строки контекста после. Кто-то украл одну строку контекста.
Если посмотреть в подвергаемый переименованию/запатчиванию файл,
окажется, что эта строка пуста, и её представление в файле с патчем —
это единственный пробел-маркер строки контекста и всё, перенос строки.

Таких повреждений патча там и в других коммитах больше.
Человек может напрячься, потратить время, провести расследование и
попробовать догадаться, что имелось в виду; программа patch этого делать
не будет (а git am — и подавно). Возможно, Thunderbird ломает патчи при
отправке.

Почта для переписки, почта для офиса/рекламы (аутлук-подобная) и почта
для патчей — это три разные почты, которые, как чудесным образом
получилось, используют некоторые общие сетевые протоколы для доступа в
ящик и для пересылки. На мой скромный взгляд, не стоит пытаться
инструменты для одной из этих почт использовать для работы с другими
двумя.
В очередной раз порекомендую пользоваться git-send-email, а если его
тяжело заставить посылать письма с GMail-ящика — можно попросить у
ldv@/glebfm@ доступ к серверу @altlinux.org по SMTP и посылать с адреса,
который в том же changelog пакетов используется.
Письма в гуглоящике тоже появятся, если их туда пришлёт рассылка или
если они будут проставлены в Cc, будь то явно или автоматически.

P.S. Очень приветствую это направление и благодарен за развитие
pipeline/bootchain! Очень пригодится. Надо догонять и обгонять дебиан
;).

> 
> 
> Leonid Krivoshein (4):
>   Separate new feature of bootchain-core from pipeline
>   kickstart: fix feature to work with bootchain-core
>   bootchain-core: move bootchain-sh-function to /bin
>   bootchain: separate getimage and waitdev features
> 
>  features/bootchain-core/README.md             | 81 +++++++++++++++++++
>  features/bootchain-core/config.mk             |  5 ++
>  .../data/bin/bootchain-sh-functions}          | 12 +--
>  .../data/etc/initrd/cmdline.d/bootchain-core  |  4 +
>  .../data/etc/rc.d/init.d/bootchain}           | 22 +----
>  .../data/lib/bootchain}/mountfs               |  2 +-
>  .../data/lib/bootchain}/overlayfs             |  2 +-
>  .../data/lib/bootchain}/rootfs                |  2 +-
>  .../data/lib/initrd/cmdline.d/bootchain       |  6 ++
>  .../data/lib/initrd/cmdline.d/pipeline        |  2 +-
>  .../data/sbin/bootchained}                    | 22 ++---
>  features/bootchain-core/rules.mk              |  3 +
>  features/bootchain-getimage/README.md         | 24 ++++++
>  features/bootchain-getimage/config.mk         |  5 ++
>  .../etc/initrd/cmdline.d/bootchain-getimage   |  1 +
>  .../data/lib/bootchain}/getimage              |  2 +-
>  features/bootchain-getimage/rules.mk          |  2 +
>  features/bootchain-waitdev/README.md          | 22 +++++
>  features/bootchain-waitdev/config.mk          |  6 ++
>  .../etc/initrd/cmdline.d/bootchain-waitdev    |  1 +
>  .../udev/rules.d/50-bootchain-waitdev.rules}  |  2 +-
>  .../data/lib/bootchain}/waitdev               |  4 +-
>  .../data/lib/initrd/pre/bootchain/300-waitdev | 12 +++
>  .../lib/uevent/filters/bootchain-waitdev}     |  4 +-
>  features/bootchain-waitdev/rules.mk           |  2 +
>  .../lib/{pipeline => bootchain}/kickstart     |  2 +-
>  features/pipeline/config.mk                   |  9 +--
>  .../data/etc/initrd/cmdline.d/pipeline        |  5 --
>  features/pipeline/rules.mk                    |  6 --
>  29 files changed, 207 insertions(+), 65 deletions(-)
>  create mode 100644 features/bootchain-core/README.md
>  create mode 100644 features/bootchain-core/config.mk
>  rename features/{pipeline/data/sbin/pipeline-sh-functions =>
> bootchain-core/data/bin/bootchain-sh-functions} (70%)
>  create mode 100644
> features/bootchain-core/data/etc/initrd/cmdline.d/bootchain-core
>  rename features/{pipeline/data/etc/rc.d/init.d/pipeline =>
> bootchain-core/data/etc/rc.d/init.d/bootchain} (63%)
>  rename features/{pipeline/data/lib/pipeline =>
> bootchain-core/data/lib/bootchain}/mountfs (91%)
>  rename features/{pipeline/data/lib/pipeline =>
> bootchain-core/data/lib/bootchain}/overlayfs (95%)
>  rename features/{pipeline/data/lib/pipeline =>
> bootchain-core/data/lib/bootchain}/rootfs (86%)
>  create mode 100755
> features/bootchain-core/data/lib/initrd/cmdline.d/bootchain
>  rename features/{pipeline =>
> bootchain-core}/data/lib/initrd/cmdline.d/pipeline (64%)
>  rename features/{pipeline/data/sbin/pipelined =>
> bootchain-core/data/sbin/bootchained} (78%)
>  create mode 100644 features/bootchain-core/rules.mk
>  create mode 100644 features/bootchain-getimage/README.md
>  create mode 100644 features/bootchain-getimage/config.mk
>  create mode 100644
> features/bootchain-getimage/data/etc/initrd/cmdline.d/bootchain-getimage
>  rename features/{pipeline/data/lib/pipeline =>
> bootchain-getimage/data/lib/bootchain}/getimage (93%)
>  create mode 100644 features/bootchain-getimage/rules.mk
>  create mode 100644 features/bootchain-waitdev/README.md
>  create mode 100644 features/bootchain-waitdev/config.mk
>  create mode 100644
> features/bootchain-waitdev/data/etc/initrd/cmdline.d/bootchain-waitdev
>  rename features/{pipeline/data/etc/udev/rules.d/50-pipeline-waitdev.rules
> => bootchain-waitdev/data/etc/udev/rules.d/50-bootchain-waitdev.rules} (77%)
>  rename features/{pipeline/data/lib/pipeline =>
> bootchain-waitdev/data/lib/bootchain}/waitdev (83%)
>  create mode 100755
> features/bootchain-waitdev/data/lib/initrd/pre/bootchain/300-waitdev
>  rename features/{pipeline/data/lib/uevent/filters/pipeline-waitdev =>
> bootchain-waitdev/data/lib/uevent/filters/bootchain-waitdev} (77%)
>  create mode 100644 features/bootchain-waitdev/rules.mk
>  rename features/kickstart/data/lib/{pipeline => bootchain}/kickstart (93%)
>  delete mode 100644 features/pipeline/data/etc/initrd/cmdline.d/pipeline
> 
> -- 
> 2.24.1
> 
> 
> _______________________________________________
> Make-initrd mailing list
> Make-initrd@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/make-initrd

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2021-10-13 18:50 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-13 17:20 [make-initrd] [PATCH v4 0/4] split pipeline into 4 features Leonid Krivoshein
2021-10-13 18:19 ` Alexey Gladkov
2021-10-13 18:50 ` Arseny Maslennikov [this message]
2021-10-13 19:04   ` [make-initrd] broken patches? (Re: [PATCH v4 0/4] split pipeline into 4 features) Leonid Krivoshein
2021-10-13 19:17     ` Alexey Gladkov
2021-10-13 19:41       ` Leonid Krivoshein
2021-10-14  0:25         ` Антон Мидюков
2021-10-13 19:14   ` Alexey Gladkov
2021-10-24 11:13   ` Leonid Krivoshein
2021-10-24 16:38     ` Vladimir D. Seleznev
2021-10-24 16:56       ` Leonid Krivoshein
2021-10-24 17:12         ` Leonid Krivoshein
2021-10-26 21:13 ` [make-initrd] [PATCH v4 0/4] split pipeline into 4 features Vladimir D. Seleznev
2021-10-26 22:09   ` Leonid Krivoshein
2021-10-26 22:18     ` Vladimir D. Seleznev
2021-11-06 13:28     ` Alexey Gladkov
2021-11-06 14:25       ` Leonid Krivoshein

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YWcqcsq/22AFpqC5@cello \
    --to=arseny@altlinux.org \
    --cc=make-initrd@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Make-initrd development discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \
		make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com
	public-inbox-index make-initrd

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.make-initrd


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git