From: Michael Shigorin <mike@altlinux.org>
To: devel-distro@lists.altlinux.org
Subject: [devel-distro] [PATCH 1/4] bin/archdep-filter: implement multi-matching
Date: Mon, 22 Nov 2021 21:45:15 +0300
Message-ID: <20211122184518.10821-2-mike@altlinux.org> (raw)
In-Reply-To: <20211122184518.10821-1-mike@altlinux.org>
This has been inspired by a few commits that cared
for package availability reasons on a particular
architecture; the problem at hand is that pkglists
might need to include groups of packages that are
(un)available on groups of arches, and tackling that
with plain pkg@arch just results in combinatorial
explosion of that matrix.
Arches are handled one-by-one with a few hardcoded
macro substitutions.
Exploding a "pkg@arch1,arch2" string into a set of:
pkg@arch1
pkg@arch2
with subsequent archdep pruning would do the trick;
so here's another sed oneliner that does just that:
$ echo 'pkg@X86,ARM,ppc64le' |
sed -r ':loop; s/^((([^@]+@)[^,]+)+),([^,]+)/\1\n\3\4/; t loop'
pkg@X86
pkg@ARM
pkg@ppc64le
See-also: 9601a9e7ce92c7a521fd154f59d8e17524f12a95
See-also: 5581dc91ec6f3330c338995d1cdfbca285298011
See-also: http://stackoverflow.com/a/55781741/561921
---
bin/archdep-filter | 1 +
doc/archdep.txt | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/bin/archdep-filter b/bin/archdep-filter
index 69ff9c0a4..58cd076e9 100755
--- a/bin/archdep-filter
+++ b/bin/archdep-filter
@@ -34,6 +34,7 @@ esac
# NB: pipe runs in parallel => faster than -e -e
cat ${f:+"$f"} |
+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" |
diff --git a/doc/archdep.txt b/doc/archdep.txt
index 4a33233ef..d1a1c3e91 100644
--- a/doc/archdep.txt
+++ b/doc/archdep.txt
@@ -48,6 +48,11 @@
ARM (armh или aarch64), а также выборка "для любой архитектуры, кроме"
(например, @!E2K, или "@!ARM).
+С версии 1.4.21 поддерживается перечисление архитектур через запятую
+после "@":
+
+ LibreOffice-still@X86,aarch64,ppc64le,mipsel
+
Для преобразования можно воспользоваться следующей командой:
sed -r -e 's/@I586_ONLY@([^\t ]+)/\1@i586/g' \
--
2.33.0
next prev 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 ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Michael Shigorin
2021-11-22 18:45 ` Michael Shigorin [this message]
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-2-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