mkimage-profiles/bin
Michael Shigorin 1b5b309bf8 bin/archdep-filter: implement multi-!matching too
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).
2021-12-04 22:11:50 +07:00
..
archdep-filter bin/archdep-filter: implement multi-!matching too 2021-12-04 22:11:50 +07:00
check-pkg-list bin/check-pkg-list: return error, if lists contain unavailable packages 2021-08-23 20:53:19 +07:00
check-recipe check-recipe: generalize dependency control 2017-01-29 15:50:58 +03:00
cleanlog cleanlog, reports.mk: factor the script out 2019-06-10 19:47:14 +03:00
columnize more readable `make help', finally 2012-04-02 17:16:27 +03:00
metadep-expander bin/metadep-expander: do not abort build, if metapackage not available 2021-08-23 20:53:19 +07:00
mktmpdir mktmpdir: refer to docs 2016-12-26 15:56:46 +03:00
mp-commit mp-commit: disable git hooks 2017-02-08 23:04:24 +03:00
mp-showref git usage refactoring 2012-08-10 00:12:46 +03:00
pkgdups READMEs: pkglist related clarification 2012-04-09 22:21:10 +03:00
report-filter initial target tracing support and reporting 2012-03-19 19:23:38 +02:00
report-targets report-targets: tweak targets 2017-01-29 15:02:05 +03:00
report-targets2vars initial target tracing support and reporting 2012-03-19 19:23:38 +02:00
tags2lists tags2lists: skip backup files too 2014-01-16 15:52:12 +04:00
tar2fs tar2fs: start partitions from 34 MiB for riscv64 2021-11-22 22:30:28 +07:00