1. 04 Dec, 2021 1 commit
    • Michael Shigorin's avatar
      bin/archdep-filter: implement multi-!matching too · 1b5b309b
      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).
      1b5b309b
  2. 23 Nov, 2021 1 commit
    • Michael Shigorin's avatar
      bin/archdep-filter: implement multi-matching · 2bc28a9c
      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
      2bc28a9c
  3. 20 Jul, 2021 1 commit
  4. 23 Oct, 2019 1 commit
  5. 25 Jul, 2018 1 commit
    • Michael Shigorin's avatar
      doc: assorted updates/fixups · f8a264bb
      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).
      f8a264bb
  6. 25 Jun, 2018 1 commit
  7. 14 Mar, 2018 1 commit
    • Michael Shigorin's avatar
      lists, doc: introduce @IA32, @X86 archdep macros · 2d257a42
      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
      2d257a42
  8. 04 May, 2015 1 commit
  9. 20 Apr, 2015 1 commit
    • Michael Shigorin's avatar
      pkg.in/lists: archdep suffices for pkglists · ac5dbb4b
      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.
      ac5dbb4b