Commit 2bc28a9c authored by Michael Shigorin's avatar Michael Shigorin Committed by Anton Midyukov

bin/archdep-filter: implement multi-matching

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: 9601a9e7 See-also: 5581dc91 See-also: http://stackoverflow.com/a/55781741/561921
parent 9d699dce
......@@ -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" |
......
......@@ -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' \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment