- 04 Dec, 2021 1 commit
-
-
Michael Shigorin authored
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).
-
- 23 Nov, 2021 1 commit
-
-
Michael Shigorin authored
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
-
- 20 Jul, 2021 1 commit
-
-
Anton Midyukov authored
-
- 23 Oct, 2019 1 commit
-
-
Michael Shigorin authored
Those willing to reuse archdep-filter elsewhere will likely have to figure it out from Makefiles anyway, so probably not worth overdocumenting...
-
- 25 Jul, 2018 1 commit
-
-
Michael Shigorin authored
doc/archdep.txt was the reason to look closer, and some other files needed a bit of facelift by now too (would be better to do that in sync).
-
- 25 Jun, 2018 1 commit
-
-
Michael Shigorin authored
See commit 2d257a42 for details, this just brings those to pkg.in/profiles/ (along with the generic archdep support, of course).
-
- 14 Mar, 2018 1 commit
-
-
Michael Shigorin authored
The former ("proper 32-bit x86 package form") has been suggested by zerg@ quite some time ago but the desired interface wasn't clear at the moment IIRC; a quiet morning helped me realize that ICAClient-preinstall@IA32 is rather more readable than ICAClient-preinstall@i586 i586-ICAClient-preinstall@x86_64 so here's the (trivial) implementation; and I actually needed the latter, @X86 ("any-x86") to mark x86-only packages so xorg-drv-intel@X86 is now equivalent to xorg-drv-intel@i586 xorg-drv-intel@x86_64
-
- 04 May, 2015 1 commit
-
-
Michael Shigorin authored
Build process would choke on "unescaped" stuff otherwise, and these blocks should be blockquotes in the first place.
-
- 20 Apr, 2015 1 commit
-
-
Michael Shigorin authored
This is an initial implementation of architecture dependent contents handling for package lists more or less in the vein of mkimage-profiles-desktop's one *but* using suffix part to filter words in or out *not* prefix part to replace it with a comment marker (thus filtering out lines). The syntax should be pretty obvious: a b@i586 c@x86_64 will get "a b" given ARCH=i586 and "a c" given ARCH=x86_64; please see doc/archdep.txt for a more elaborate description and a conversion script.
-