[Dev] [RFC] blacklist/your-freedom conflicts/replaces stragegy

Luke Shumaker lukeshu at lukeshu.com
Sat Sep 16 15:18:39 GMT 2017


Hi all,

In blacklist.txt, the first 2 columns are

    arch-package:parabola-replacement:...

If parabola-replacement != "", then your-freedom *doesn't*
conflicts=(arch-package), because it assumes that parabola-replacement

    replaces=(arch-package)
    provides=(arch-package)
    conflicts=(arch-package)

And if your-freedom conflicts=(arch-package), then it would also
conflict with Parabola's replacement, because of the provides=().

This isn't quite right all the time.  For example, if a user wants to
install firefox and iceweasel side-by-side, the conflict should be
happening with your-freedom->firefox, not iceweasel->firefox.  Another
example is if a user wants to install linux and linux-libre
side-by-side.

What we need is a way of specifying in blacklist.txt whether
parabola-replacement provides=/conflicts=(arch-package), or if it just
replaces=() it.

That is, when a Parabola package replaces an arch-package, it should
have 2 options:

  - Choice 1

      replaces=(arch-package)
      provides=(arch-package)
      conflicts=(arch-package)

  - Choice 2

      replaces=(arch-package)
 
blacklist.txt need to know which it chooses, and if the Parabola
package chooses choice 1 (which it currently assumes), then
your-freedom needs to *not* conflict=(arch-package), but if the
Parabola package chooses choice 2 (the new option), your-freedom needs
*to* conflict=(arch-package).

This provides more satisfactory resolution to
https://labs.parabola.nu/issues/750 [1]

So, the remaining question is: What should the syntax in blacklist.txt
look like, and programs will need updated to deal with it?

-- 
Happy hacking,
~ Luke Shumaker

[1]: "Anonymous" there is of course Emulatorman.  I'm mildly miffed
     that they deleted their accounts when leaving, instead of just
     locking them.



More information about the Dev mailing list