* [devel-distro] архитектуры, java-11-openjdk и LibreOffice*
@ 2021-11-22 18:24 Michael Shigorin
2021-11-22 18:36 ` Антон Мидюков
2021-11-22 18:45 ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Michael Shigorin
0 siblings, 2 replies; 13+ messages in thread
From: Michael Shigorin @ 2021-11-22 18:24 UTC (permalink / raw)
To: devel-distro
[-- Attachment #1: Type: text/plain, Size: 1367 bytes --]
Здравствуйте.
Коллеги, удивлён коммитами в antohami/master:
3fbf1a5827672504e08d6a188cf8fcd916fe2c6b (sem@)
5581dc91ec6f3330c338995d1cdfbca285298011 (sem@)
9601a9e7ce92c7a521fd154f59d8e17524f12a95 (sem@)
8f0f5f7d3c6765c97bd7c57819de67cbbfc0d6d6 (cas@)
Понятно, что кроме меня никого не волнует,
что java11 пока нет в sisyphus_e2k
(прилагаю исправление для education.mk).
Непонятно, зачем делать для armh отдельный список,
если достаточно воспользоваться @armh в имеющемся?
Досадно, что реализация bin/archdep-filter не умеет
списки архитектур (тогда регэксы были бы совсем уже
нечитаемые, я думал над этим) -- но давайте тогда
в таких случаях выписывать хотя бы списки архитектур.
Хотя тут есть другая опасность -- выплеснуть нечаянно
какой-либо пакет или список, как это уже произошло
с workstation/vlc на не-x86 (похоже, без замены чем-либо
другим вообще, см. conf.d/basealt.mk).
Сейчас отдельно пришлю коммиты для обсуждения.
PS: хотя... если попробовать сперва раскладывать
"(@!*)([a-zA-Z0-9]+,)+" в "\1\2 \1\3 ...",
то может и получиться относительно изящно/понятно;
как-то так: http://stackoverflow.com/a/55781741/561921
(но с вычитанием сложнее).
PPS: в общем, написал такое, только не смог добить
ещё одно изменение поведения (может, и ладно).
--
---- WBR, Michael Shigorin / http://altlinux.org
------ http://opennet.ru / http://anna-news.info
[-- Attachment #2: 0001-e2k-education.mk-soft-revert-java11-commit.patch --]
[-- Type: text/x-patch, Size: 1555 bytes --]
>From a4f441fcfbf5c8735f961057bcf2f10a84cd5517 Mon Sep 17 00:00:00 2001
From: Michael Shigorin <mike@altlinux.org>
Date: Fri, 29 Oct 2021 08:19:37 +0300
Subject: [PATCH] [e2k] education.mk: soft-revert java11 commit
It was encumbered, it's only java11 part that should be
archdep as e2k-alt-linux lacks that one so far.
See-also: 8f0f5f7d3c6765c97bd7c57819de67cbbfc0d6d6
---
conf.d/education.mk | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/conf.d/education.mk b/conf.d/education.mk
index a79200cdf..50cc60ef9 100644
--- a/conf.d/education.mk
+++ b/conf.d/education.mk
@@ -18,7 +18,11 @@ mixin/education: \
@$(call add,THE_BRANDING,menu xfce-settings system-settings)
@$(call add,THE_LISTS,slinux/xfce-base)
@$(call add,THE_LISTS,education/misc)
- @$(call add,THE_PACKAGES,java-11-openjdk)
+ifeq (,$(filter-out e2k%,$(ARCH)))
+ @$(call add,THE_PACKAGES,jre)
+else
+ @$(call add,LIVE_PACKAGES,java-11-openjdk)
+endif
@$(call add,THE_PACKAGES,thunderbird)
@$(call add,THE_LISTS,$(call tags,base l10n))
@$(call add,BASE_LISTS,workstation/3rdparty)
@@ -39,7 +43,11 @@ ifeq (,$(filter-out i586 x86_64 aarch64,$(ARCH)))
endif
@$(call add,LIVE_PACKAGES,mc-full)
@$(call add,LIVE_PACKAGES,remmina remmina-plugins)
+ifeq (,$(filter-out e2k%,$(ARCH)))
+ @$(call add,LIVE_PACKAGES,jre)
+else
@$(call add,LIVE_PACKAGES,java-11-openjdk)
+endif
@$(call add,LIVE_PACKAGES,xorg-conf-libinput-touchpad)
@$(call add,LIVE_LISTS,$(call tags,base rescue))
@$(call add,LIVE_LISTS,$(call tags,base extra))
--
2.33.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel-distro] архитектуры, java-11-openjdk и LibreOffice*
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-22 18:45 ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Michael Shigorin
1 sibling, 1 reply; 13+ messages in thread
From: Антон Мидюков @ 2021-11-22 18:36 UTC (permalink / raw)
To: devel-distro
23.11.2021 01:24, Michael Shigorin пишет:
> Здравствуйте.
> Коллеги, удивлён коммитами в antohami/master:
>
> 3fbf1a5827672504e08d6a188cf8fcd916fe2c6b (sem@)
> 5581dc91ec6f3330c338995d1cdfbca285298011 (sem@)
> 9601a9e7ce92c7a521fd154f59d8e17524f12a95 (sem@)
> 8f0f5f7d3c6765c97bd7c57819de67cbbfc0d6d6 (cas@)
>
> Понятно, что кроме меня никого не волнует,
> что java11 пока нет в sisyphus_e2k
> (прилагаю исправление для education.mk).
Я не стараюсь создавать несовместимости с профилями коллег
на ровном месте. Если серьёзных претензий нет, беру как есть.
>
> Непонятно, зачем делать для armh отдельный список,
> если достаточно воспользоваться @armh в имеющемся?
О каких списках речь то?
>
> Досадно, что реализация bin/archdep-filter не умеет
> списки архитектур (тогда регэксы были бы совсем уже
> нечитаемые, я думал над этим) -- но давайте тогда
> в таких случаях выписывать хотя бы списки архитектур.
>
> Хотя тут есть другая опасность -- выплеснуть нечаянно
> какой-либо пакет или список, как это уже произошло
> с workstation/vlc на не-x86 (похоже, без замены чем-либо
> другим вообще, см. conf.d/basealt.mk).
>
> Сейчас отдельно пришлю коммиты для обсуждения.
>
> PS: хотя... если попробовать сперва раскладывать
> "(@!*)([a-zA-Z0-9]+,)+" в "\1\2 \1\3 ...",
> то может и получиться относительно изящно/понятно;
> как-то так: http://stackoverflow.com/a/55781741/561921
> (но с вычитанием сложнее).
>
> PPS: в общем, написал такое, только не смог добить
> ещё одно изменение поведения (может, и ладно).
>
>
У меня возник вопрос по присланному патчу:
diff --git a/conf.d/education.mk b/conf.d/education.mk
index a79200cdf..50cc60ef9 100644
--- a/conf.d/education.mk
+++ b/conf.d/education.mk
@@ -18,7 +18,11 @@ mixin/education: \
@$(call add,THE_BRANDING,menu xfce-settings system-settings)
@$(call add,THE_LISTS,slinux/xfce-base)
@$(call add,THE_LISTS,education/misc)
- @$(call add,THE_PACKAGES,java-11-openjdk)
+ifeq (,$(filter-out e2k%,$(ARCH)))
+ @$(call add,THE_PACKAGES,jre)
+else
+ @$(call add,LIVE_PACKAGES,java-11-openjdk)
+endif
@$(call add,THE_PACKAGES,thunderbird)
@$(call add,THE_LISTS,$(call tags,base l10n))
@$(call add,BASE_LISTS,workstation/3rdparty)
Было
@$(call add,THE_PACKAGES,java-11-openjdk)
Стало
@$(call add,LIVE_PACKAGES,java-11-openjdk)
Ошибка или так задумано?
--
С уважением, Антон Мидюков <antohami@altlinux.org>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel-distro] архитектуры, java-11-openjdk и LibreOffice*
2021-11-22 18:36 ` Антон Мидюков
@ 2021-11-22 18:50 ` Michael Shigorin
2021-11-23 10:20 ` Mikhail Efremov
0 siblings, 1 reply; 13+ messages in thread
From: Michael Shigorin @ 2021-11-22 18:50 UTC (permalink / raw)
To: devel-distro
On Tue, Nov 23, 2021 at 01:36:03AM +0700, Антон Мидюков wrote:
> > Коллеги, удивлён коммитами в antohami/master:
> > 3fbf1a5827672504e08d6a188cf8fcd916fe2c6b (sem@)
> > 5581dc91ec6f3330c338995d1cdfbca285298011 (sem@)
> > 9601a9e7ce92c7a521fd154f59d8e17524f12a95 (sem@)
> > 8f0f5f7d3c6765c97bd7c57819de67cbbfc0d6d6 (cas@)
> > Понятно, что кроме меня никого не волнует,
> > что java11 пока нет в sisyphus_e2k
> > (прилагаю исправление для education.mk).
> Я не стараюсь создавать несовместимости с профилями коллег
> на ровном месте. Если серьёзных претензий нет, беру как есть.
Это понятно -- упомянул, что они именно в таком виде
и были предложены/прошли.
> > Непонятно, зачем делать для armh отдельный список,
> > если достаточно воспользоваться @armh в имеющемся?
> О каких списках речь то?
pkg.in/lists/workstation/libreoffice
pkg.in/lists/workstation/libreoffice-latest
> У меня возник вопрос по присланному патчу:
> Было
> @$(call add,THE_PACKAGES,java-11-openjdk)
> Стало
> @$(call add,LIVE_PACKAGES,java-11-openjdk)
> Ошибка или так задумано?
Моя ошибка при rebase (во втором месте там именно LIVE_PACKAGES,
скопировал невнимательно и не исправил). Спасибо за бдительность.
Поправь, если заберёшь.
--
---- WBR, Michael Shigorin / http://altlinux.org
------ http://opennet.ru / http://anna-news.info
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel-distro] архитектуры, java-11-openjdk и LibreOffice*
2021-11-22 18:50 ` Michael Shigorin
@ 2021-11-23 10:20 ` Mikhail Efremov
0 siblings, 0 replies; 13+ messages in thread
From: Mikhail Efremov @ 2021-11-23 10:20 UTC (permalink / raw)
To: devel-distro
On Mon, 22 Nov 2021 21:50:14 +0300 Michael Shigorin wrote:
> On Tue, Nov 23, 2021 at 01:36:03AM +0700, Антон Мидюков wrote:
> > > Коллеги, удивлён коммитами в antohami/master:
> > > 3fbf1a5827672504e08d6a188cf8fcd916fe2c6b (sem@)
> > > 5581dc91ec6f3330c338995d1cdfbca285298011 (sem@)
> > > 9601a9e7ce92c7a521fd154f59d8e17524f12a95 (sem@)
> > > 8f0f5f7d3c6765c97bd7c57819de67cbbfc0d6d6 (cas@)
> > > Понятно, что кроме меня никого не волнует,
> > > что java11 пока нет в sisyphus_e2k
Ну лично я действительно об этом не задумывался, я все же для тех
архитектур, на которых собираю, изменения делаю.
> > > (прилагаю исправление для education.mk).
> > Я не стараюсь создавать несовместимости с профилями коллег
> > на ровном месте. Если серьёзных претензий нет, беру как есть.
>
> Это понятно -- упомянул, что они именно в таком виде
> и были предложены/прошли.
>
> > > Непонятно, зачем делать для armh отдельный список,
> > > если достаточно воспользоваться @armh в имеющемся?
> > О каких списках речь то?
>
> pkg.in/lists/workstation/libreoffice
> pkg.in/lists/workstation/libreoffice-latest
Вот именно потому, что нельзя для нескольких архитектур фильтр сделать.
В списке libreoffice уже было LibreOffice-still@!E2K, как при этом его
еще и для armh одновременно исключить?
--
WBR, Mikhail Efremov
^ permalink raw reply [flat|nested] 13+ messages in thread
* [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры
2021-11-22 18:24 [devel-distro] архитектуры, java-11-openjdk и LibreOffice* Michael Shigorin
2021-11-22 18:36 ` Антон Мидюков
@ 2021-11-22 18:45 ` Michael Shigorin
2021-11-22 18:45 ` [devel-distro] [PATCH 1/4] bin/archdep-filter: implement multi-matching Michael Shigorin
` (4 more replies)
1 sibling, 5 replies; 13+ messages in thread
From: Michael Shigorin @ 2021-11-22 18:45 UTC (permalink / raw)
To: devel-distro
Здравствуйте.
Изначально казалось странным, что в форме 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
^ permalink raw reply [flat|nested] 13+ messages in thread
* [devel-distro] [PATCH 1/4] bin/archdep-filter: implement multi-matching
2021-11-22 18:45 ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Michael Shigorin
@ 2021-11-22 18:45 ` Michael Shigorin
2021-11-22 18:45 ` [devel-distro] [PATCH 2/4] bin/archdep-filter: implement multi-!matching too Michael Shigorin
` (3 subsequent siblings)
4 siblings, 0 replies; 13+ messages in thread
From: Michael Shigorin @ 2021-11-22 18:45 UTC (permalink / raw)
To: devel-distro
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
^ permalink raw reply [flat|nested] 13+ messages in thread
* [devel-distro] [PATCH 2/4] bin/archdep-filter: implement multi-!matching too
2021-11-22 18:45 ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Michael Shigorin
2021-11-22 18:45 ` [devel-distro] [PATCH 1/4] bin/archdep-filter: implement multi-matching Michael Shigorin
@ 2021-11-22 18:45 ` Michael Shigorin
2021-11-29 16:44 ` Michael Shigorin
2021-11-22 18:45 ` [devel-distro] [PATCH 3/4] bin/archdep-filter: cosmetic cleanups Michael Shigorin
` (2 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Michael Shigorin @ 2021-11-22 18:45 UTC (permalink / raw)
To: devel-distro
This has been clearly lacking while making the previous commit
but the implementation isn't that clear so let it be a separate
step.
The problem requiring the change in subsequent processors
is that these relied upon "@arch" as a flag to be inspected,
and "pkg@!arch1,arch2" on arch2 needs to take out *all* of that
fragment *including* arch1 mention as well.
Part of the cause is difference in handling: "positive" multi-match
would explode its "client" line into multiple lines to filter down
the pipeline, while "negative" multi-match *has* to keep that line
on a similarly single line (otherwise we'd end up with N-1 of those
slipping past the filter for particular architecture thus defeating
the whole purpose of "negative" matching semantics):
$ echo 'pkg@!E2K,mipsel,riscv64' |
sed -r ':loop; s/^((([^@]+@!)[^,]+)+),([a-zA-Z0-9_]+)/\1@!\4/; t loop'
pkg@!E2K@!mipsel@!riscv64
I've tried my best to test this specific change but it still might
introduce a regression in some corner case; feel free to report;
looks like there's a space for improvement in m-p's automated
tests department as well.
So now we can do:
pkg@!ARCHES1,ARCHES2,arch3,arch4
and have pkg excluded on arches mentioned; the previous approach
could only offer explicit whitelists (not that it was entirely
wrong but then again, we have both ExclusiveArch and ExcludeArch
rpmtags in our spec files).
---
bin/archdep-filter | 11 ++++++-----
doc/archdep.txt | 3 ++-
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/bin/archdep-filter b/bin/archdep-filter
index 58cd076e9..674c2e1cc 100755
--- a/bin/archdep-filter
+++ b/bin/archdep-filter
@@ -34,13 +34,14 @@ esac
# NB: pipe runs in parallel => faster than -e -e
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 -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 -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/ +$//" |
if [ -n "$f" ]; then
diff --git a/doc/archdep.txt b/doc/archdep.txt
index d1a1c3e91..845e6acdf 100644
--- a/doc/archdep.txt
+++ b/doc/archdep.txt
@@ -49,9 +49,10 @@ ARM (armh или aarch64), а также выборка "для любой ар
(например, @!E2K, или "@!ARM).
С версии 1.4.21 поддерживается перечисление архитектур через запятую
-после "@":
+после "@" или "@!":
LibreOffice-still@X86,aarch64,ppc64le,mipsel
+ java-11-openjdk@!E2K,mipsel
Для преобразования можно воспользоваться следующей командой:
--
2.33.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel-distro] [PATCH 2/4] bin/archdep-filter: implement multi-!matching too
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 ` Антон Мидюков
0 siblings, 1 reply; 13+ messages in thread
From: Michael Shigorin @ 2021-11-29 16:44 UTC (permalink / raw)
To: devel-distro
On Mon, Nov 22, 2021 at 09:45:16PM +0300, Michael Shigorin wrote:
> So now we can do:
>
> pkg@!ARCHES1,ARCHES2,arch3,arch4
Возможно, мне стоит дополнить документацию -- сделал по случаю
в pkg.in/lists/slinux/misc-base:
java-11-openjdk@!mipsel,E2K
и получил на выходе "java-11-openjdk@!"; похоже, сперва надо
указывать "сборные" архитектуры, затем конкретные, вот так
slinux.iso опять собрался:
-java-11-openjdk@!mipsel,E2K
+java-11-openjdk@!E2K,mipsel
Ну или уже код доработать, чтоб работало и так, и сяк...
(но пока неясно, когда на это опять найдётся внимание)
--
---- WBR, Michael Shigorin / http://altlinux.org
------ http://opennet.ru / http://anna-news.info
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel-distro] [PATCH 2/4] bin/archdep-filter: implement multi-!matching too
2021-11-29 16:44 ` Michael Shigorin
@ 2021-11-29 16:49 ` Антон Мидюков
2021-12-04 15:10 ` Антон Мидюков
0 siblings, 1 reply; 13+ messages in thread
From: Антон Мидюков @ 2021-11-29 16:49 UTC (permalink / raw)
To: devel-distro
29.11.2021 23:44, Michael Shigorin пишет:
> On Mon, Nov 22, 2021 at 09:45:16PM +0300, Michael Shigorin wrote:
>> So now we can do:
>>
>> pkg@!ARCHES1,ARCHES2,arch3,arch4
>
> Возможно, мне стоит дополнить документацию -- сделал по случаю
> в pkg.in/lists/slinux/misc-base:
>
> java-11-openjdk@!mipsel,E2K
>
> и получил на выходе "java-11-openjdk@!"; похоже, сперва надо
> указывать "сборные" архитектуры, затем конкретные, вот так
> slinux.iso опять собрался:
>
> -java-11-openjdk@!mipsel,E2K
> +java-11-openjdk@!E2K,mipsel
>
> Ну или уже код доработать, чтоб работало и так, и сяк...
> (но пока неясно, когда на это опять найдётся внимание)
>
Во как. Погляжу. Это надо бы до релиза исправить, либо отложить твои коммиты
до следующего релиза.
--
С уважением, Антон Мидюков <antohami@altlinux.org>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel-distro] [PATCH 2/4] bin/archdep-filter: implement multi-!matching too
2021-11-29 16:49 ` Антон Мидюков
@ 2021-12-04 15:10 ` Антон Мидюков
0 siblings, 0 replies; 13+ messages in thread
From: Антон Мидюков @ 2021-12-04 15:10 UTC (permalink / raw)
To: devel-distro
29.11.2021 23:49, Антон Мидюков пишет:
> 29.11.2021 23:44, Michael Shigorin пишет:
>> On Mon, Nov 22, 2021 at 09:45:16PM +0300, Michael Shigorin wrote:
>>> So now we can do:
>>>
>>> pkg@!ARCHES1,ARCHES2,arch3,arch4
>>
>> Возможно, мне стоит дополнить документацию -- сделал по случаю
>> в pkg.in/lists/slinux/misc-base:
>>
>> java-11-openjdk@!mipsel,E2K
>>
>> и получил на выходе "java-11-openjdk@!"; похоже, сперва надо
>> указывать "сборные" архитектуры, затем конкретные, вот так
>> slinux.iso опять собрался:
>>
>> -java-11-openjdk@!mipsel,E2K
>> +java-11-openjdk@!E2K,mipsel
>>
>> Ну или уже код доработать, чтоб работало и так, и сяк...
>> (но пока неясно, когда на это опять найдётся внимание)
>>
>
> Во как. Погляжу. Это надо бы до релиза исправить, либо отложить твои коммиты
> до следующего релиза.
>
Долго же я глядел :-)
diff --git a/bin/archdep-filter b/bin/archdep-filter
index 28681e10da..7ed175364a 100755
--- a/bin/archdep-filter
+++ b/bin/archdep-filter
@@ -37,7 +37,7 @@ 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 -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" |
Лишняя собачка. Наконец-то сообразил сравнить строчки с !$A и !$a.
--
С уважением, Антон Мидюков <antohami@altlinux.org>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [devel-distro] [PATCH 3/4] bin/archdep-filter: cosmetic cleanups
2021-11-22 18:45 ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Michael Shigorin
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-22 18:45 ` 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 и множественные архитектуры Антон Мидюков
4 siblings, 0 replies; 13+ messages in thread
From: Michael Shigorin @ 2021-11-22 18:45 UTC (permalink / raw)
To: devel-distro
"-a arch" is not requisite either; and having bunches
of empty lines in the resulting pkglists that are user
visible at least within the conventional installer's
alterator-pkg (groups selection) module wouldn't be nice.
I chose to sacrifice empty-line separators for clarity;
the really good cleanup would save *single* empty lines
between chunks of non-empty ones (not at the pkglist's
start or end); feel free to implement that as well.
---
bin/archdep-filter | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/bin/archdep-filter b/bin/archdep-filter
index 674c2e1cc..7802e7e15 100755
--- a/bin/archdep-filter
+++ b/bin/archdep-filter
@@ -2,7 +2,7 @@
# filter stdin or file for words related to
# the specified target architecture
#
-# args: -a arch [-i file]
+# args: [-a arch] [-i file]
if [ "$1" = "-a" -a -n "$2" ]; then
a="$2"
@@ -43,7 +43,7 @@ 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/ +$//" |
+sed -r "s/^ +//;s/ +$//;/^$/d" |
if [ -n "$f" ]; then
cat > "$t" && mv "$t" "$f"
else
--
2.33.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [devel-distro] [PATCH 4/4] bin/archdep-filter: a debugging note
2021-11-22 18:45 ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Michael Shigorin
` (2 preceding siblings ...)
2021-11-22 18:45 ` [devel-distro] [PATCH 3/4] bin/archdep-filter: cosmetic cleanups Michael Shigorin
@ 2021-11-22 18:45 ` Michael Shigorin
2021-11-29 8:21 ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Антон Мидюков
4 siblings, 0 replies; 13+ messages in thread
From: Michael Shigorin @ 2021-11-22 18:45 UTC (permalink / raw)
To: devel-distro
...just to have it handy when it's in need next time.
---
bin/archdep-filter | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/bin/archdep-filter b/bin/archdep-filter
index 7802e7e15..28681e10d 100755
--- a/bin/archdep-filter
+++ b/bin/archdep-filter
@@ -49,3 +49,7 @@ if [ -n "$f" ]; then
else
cat
fi
+
+# stick this for debugging sed pipeline and run the script
+# with >/dev/null to see what flows in a particular place:
+# tee /dev/stderr |
--
2.33.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры
2021-11-22 18:45 ` [devel-distro] [PATCH 0/4] archdep-filter и множественные архитектуры Michael Shigorin
` (3 preceding siblings ...)
2021-11-22 18:45 ` [devel-distro] [PATCH 4/4] bin/archdep-filter: a debugging note Michael Shigorin
@ 2021-11-29 8:21 ` Антон Мидюков
4 siblings, 0 replies; 13+ messages in thread
From: Антон Мидюков @ 2021-11-29 8:21 UTC (permalink / raw)
To: devel-distro
23.11.2021 01:45, Michael Shigorin пишет:
> Здравствуйте.
> Изначально казалось странным, что в форме 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(-)
>
--
С уважением, Антон Мидюков <antohami@altlinux.org>
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2021-12-04 15:10 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [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 и множественные архитектуры Антон Мидюков
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