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

Luke Shumaker lukeshu at lukeshu.com
Sun Sep 17 20:54:00 GMT 2017

On Sat, 16 Sep 2017 14:40:03 -0400,
Isaac David wrote:
> Luke Shumaker wrote :
> > What we need is a way of specifying in blacklist.txt whether
> > parabola-replacement provides=/conflicts=(arch-package)
> agreed 100%

Yay :)

> 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

I think that, in the short-term, this is the best option, as it means
no code needs changed and nothing will break.

That said, now I'm questioning more of the premise.  Does it even need
the libre-replacement, or does it just need a boolean of whether
another package has that name or provides that name?  Wouldn't that
better be served by querying the repos than by manually keeping a .txt
file in sync with them?

I think this comes down to: Is blacklist.txt meant for machines, or
for humans?  What if we edited a simpler file that didn't have
replacement info, and had a program that output a file more like the
current blacklist.txt?

> > 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.

I'm not sure it's 100% switched over.

> 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

I'm just wallowing in my backlog :) The libreblacklist tool hasn't
been updated since the ref/url fields were added.

I'll accept patches that do most anything!

Happy hacking,
~ Luke Shumaker

More information about the Dev mailing list