ALT Linux Distributions development
 help / color / mirror / Atom feed
From: Michael Shigorin <mike@altlinux.org>
To: devel-distro@lists.altlinux.org
Subject: [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры
Date: Mon, 22 Nov 2021 21:45:14 +0300
Message-ID: <20211122184518.10821-1-mike@altlinux.org> (raw)
In-Reply-To: <20211122182425.GH24863@imap.altlinux.org>

	Здравствуйте.
Изначально казалось странным, что в форме pkg@arch нельзя
указать как минимум несколько архитектур -- с несколькими
пакетами было всё-таки неясно (хотя ситуация с libreoffice
намекает, что выбор между a b c d@arch как "a b c d"@arch
или "a" "b" "c" "d@arch" стоило делать в пользу первого).

Ну не получилось у меня сразу сделать такую раскрывалку;
собственно, сегодня тоже практически весь день и ушёл
по мотивам накропанного было:

-java-11-openjdk@!mipsel
+java-11-openjdk@X86
+java-11-openjdk@ARM
+java-11-openjdk@ppc64le
+jre@mipsel
+jre@E2K

Но зато с предлагаемыми коммитами теперь можно так:

pkg@ARCHES1,arch2
pkg@!ARCHES3,arch4

Прошу смотреть, испытывать и если всё хорошо -- забрать.
Не гонял особо тщательно примерно вот такое (и не уверен,
что такое надо уметь, хотя и хорошо бы для завершённости):

pkg1@... pkg2@!... pkg3@...

---

С переделкой же под обработку всей строки до @ как подлежащей
фильтрации (на текущие pkg.in/lists/ это не окажет какого-либо
влияния, я проверил, что '^[^#].* .*@' там отсутствуют)
застрял вот на чём (и это противоречит той "завершённости",
поскольку выбирает другую):

--- bin/archdep-filter  2021-11-22 21:19:00.169564135 +0300
+++ bin/archdep-filter2 2021-11-22 21:19:46.657753727 +0300
@@ -36,13 +36,14 @@
 cat ${f:+"$f"} |
 sed -r  ':loop; s/^((([^@]+@!)[^,]+)+),([a-zA-Z0-9_]+)/\1@!\4/; t loop' |
 sed -r  ':loop; s/^((([^@]+@)[^,]+)+),([a-zA-Z0-9_]+)/\1\n\3\4/; t loop' |
-sed -rn "s/\<([^@ ]*)\>|\<([^@ ]*)@$A\>[^ ]*\>/\1\2/pg" |
-sed -rn "s/\<([^@ ]*)\>|\<[^@ ]*@\!$A\>[^ ]*\> */\1/pg" |
-sed -r  "s/\<([^@ ]*)@IA32\>/\1@i586 i586-\1@x86_64/g" |
-sed -rn "s/\<([^@ ]*)\>|\<([^@ ]*)@$a\>[^ ]*\>/\1\2/pg" |
-sed -rn "s/\<([^@ ]*)\>|\<[^ ]*@\!$a\>[^ ]*\> */\1/pg" |
-sed -r  "s/\<([^@ ]*)@\![^ ]+\>/\1/g" |
-sed -r  "s/\<([^@ ]*)@[^@ ]+\> *//g" |
+sed -rn "s/\<([^@]*)\>|\<([^@]*)@$A\>[^ ]*\>/\1\2/pg" |
+sed -rn "s/\<([^@]*)\>|\<[^@]*@\!$A\>[^ ]*\> */\1/pg" |
+tee /dev/stderr |
+sed -r  "s/\<([^@]*)@IA32\>/\1@i586 i586-\1@x86_64/g" |
+sed -rn "s/\<([^@]*)\>|\<([^@]*)@$a\>[^ ]*\>/\1\2/pg" |
+sed -rn "s/\<([^@]*)\>|\<[^ ]*@\!$a\>[^ ]*\> */\1/pg" |
+sed -r  "s/\<([^@]*)@\![^ ]+\>/\1/g" |
+sed -r  "s/\<([^@]*)@[^@]+\> *//g" |
 sed -r  "s/^ +//;s/ +$//;/^$/d" |
 if [ -n "$f" ]; then
        cat > "$t" && mv "$t" "$f"

$ echo -e 'a_b c d@!X86,aarch64' | sh bin/archdep-filter2 -a aarch64 
a_b c d@!X86@!aarch64
a_b c d@!

$ echo -e 'a_b c d@!X86,aarch64' | sh bin/archdep-filter2 -a aarch64 >/dev/null 
a_b c d@!X86@!aarch64

Бишь где-то лишний маркер "@!" остаётся.
Но сегодня уже никакой возможности это добивать нет.

Michael Shigorin (4):
  bin/archdep-filter: implement multi-matching
  bin/archdep-filter: implement multi-!matching too
  bin/archdep-filter: cosmetic cleanups
  bin/archdep-filter: a debugging note

 bin/archdep-filter | 20 +++++++++++++-------
 doc/archdep.txt    |  6 ++++++
 2 files changed, 19 insertions(+), 7 deletions(-)

-- 
2.33.0



  parent reply	other threads:[~2021-11-22 18:45 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-22 18:24 [devel-distro] архитектуры, java-11-openjdk и LibreOffice* Michael Shigorin
2021-11-22 18:36 ` Антон Мидюков
2021-11-22 18:50   ` Michael Shigorin
2021-11-23 10:20     ` Mikhail Efremov
2021-11-22 18:45 ` Michael Shigorin [this message]
2021-11-22 18:45   ` [devel-distro] [PATCH 1/4] bin/archdep-filter: implement multi-matching Michael Shigorin
2021-11-22 18:45   ` [devel-distro] [PATCH 2/4] bin/archdep-filter: implement multi-!matching too Michael Shigorin
2021-11-29 16:44     ` Michael Shigorin
2021-11-29 16:49       ` Антон Мидюков
2021-12-04 15:10         ` Антон Мидюков
2021-11-22 18:45   ` [devel-distro] [PATCH 3/4] bin/archdep-filter: cosmetic cleanups Michael Shigorin
2021-11-22 18:45   ` [devel-distro] [PATCH 4/4] bin/archdep-filter: a debugging note Michael Shigorin
2021-11-29  8:21   ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Антон Мидюков

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=20211122184518.10821-1-mike@altlinux.org \
    --to=mike@altlinux.org \
    --cc=devel-distro@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

ALT Linux Distributions development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/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 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \
		devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com
	public-inbox-index devel-distro

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


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