[Dev] [RFC] blacklist/your-freedom conflicts/replaces stragegy
Isaac David
isacdaavid at isacdaavid.info
Sat Sep 16 18:40:03 GMT 2017
Luke Shumaker wrote :
> 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)
agreed 100%
> So, the remaining question is: What should the syntax in blacklist.txt
> look like
obviously it would have an extra field (i'm calling it CONFLICT) that
allows for only 2 options. their meanings could be specified in a
number of equivalent ways, so i'm not deeply worried about those.
syntax-wise though, because CONFLICT is _necessary_ only in the
context of libre-replacement, it's easy to imagine something like the
following:
1.
original-package:[libre-replacement:CONFLICT]:[ref]:[id]:short-description
however the variable-length format could complicate things too
much for programs parsing blacklist.txt, such as libreblacklist.
2. this could be avoided by explicitly distinguishing
[libre-replacement<SEPARATOR>CONFLICT] from top-level fields:
original-package:[libre-replacement+CONFLICT]:[ref]:[id]:short-description
3. finally, we can always keep CONFLICT and libre-replacement each on
its own top-level field...
original-package:[libre-replacement]:[CONFLICT]:[ref]:[id]:short-description
...and be prepared to deal with errors like:
flashplugin::ALREADY_CONFLICTED:::nonfree package with no
replacement
> and [what] programs will need updated to deal with it?
libreblacklist is the elephant in the room. ideally all other programs
would restrict themselves to this interface. your-freedom & co. still
_need_ to parse blacklist.txt directly nonetheless:
conflicts=($(
< blacklist-${_gitver}.txt \
libreblacklist normalize |
cut -d: -f1,2 |
sed -n 's/:$//p' |
sort -u
))
i can't think of any other after you changed dbscripts to use
libreblacklist.
by the way, libreblacklist should be advertised more prominently on
the wiki to average users. it's much more elegant and discoverable
than blacklist.git. also, would you accept a patch to add a
get-ref/get-url function? have you noticed that get-reason doesn't
quite do what it says?:
$ libreblacklist |& grep get-reason
get-reason Prints only the reason field of the blacklist line(s)
$ libreblacklist cat | libreblacklist get-reason | tail -n 1
parabola:1457:[semifree] recommends unfree projects from same author
--
Isaac David
GPG: 38D33EF29A7691134357648733466E12EC7BA943
Tox:
0C730E0156E96E6193A1445D413557FF5F277BA969A4EA20AC9352889D3B390E77651E816F0C
More information about the Dev
mailing list