ymir-linux / void-packages

The Void source libre packages collection
https://voidlinux.org
Other
7 stars 2 forks source link

The packages are not fully libre yet #8

Open reback00 opened 4 years ago

reback00 commented 4 years ago

GNU has this weird but necessary philosophy that no software should even mention the name of a nonfree software. This is very hard to achieve and someone might say unnecessary. But RMS has been proven right over and over again. So there might be some weight to it.

Parabola's blacklist.txt has nearly a thousand packages with major or minor issues. This file lists the offending packages in a : separated list. Let's say they are columns. As far as I know, packages with major issues have an empty second column and ones with minor issues have the same value on second column as the first column. Second column seems to be kind of like a whitelist for minor offenses. We can utilize this and prepare an awk command to make it more readable:

wget https://git.parabola.nu/blacklist.git/plain/blacklist.txt
sed 's/FIXME:/FIXME_/g' blacklist.txt | awk -F ':' '{ if ($1==$2) { print "\033[0;36m" $1 "\033[0m: has \033[0;33mminor\033[0m issues, reason: " $5 } else { print "\033[0;36m" $1 "\033[0m: has \033[0;31mmajor\033[0m issues, reason: " $5 } }'

Which should output something like this:

blacklist-cmd-2

The major issues may be hard (or even impossible) to fix, but minor ones should be fixable. I mean Parabola project already did this. Anybody can check their Packages, search for a package, and see its source to understand how they did it. We can add | grep 'minor' | wc -l at the end of the awk command above, and it returns 202 packages, which is doable I think.

We can have a whitelist.txt on your-freedom and when we liberate a package, we can just add it to that file. Once we liberate those ~200 packages, we can uncomment the line to allow all the minor packages. Our work then would be to maintain those packages with upstream. But let me know your thoughts.

drake-newell commented 4 years ago

I like that idea! xbps-src should make that pretty easy because you can just put patches in the patches folder of a program. Do you know if Parabola has libre patches somewhere in its git repo, or do you think we'll need to diff the sources ourselves?

reback00 commented 4 years ago

Yes, I think patches will make it easier.

Parabola has patches inside each package. Like this one for minitube. For some other they have minor changes in the PKGBUILD (template equivalent). Like you can check out engrampa for arch and parabola. They just basically removed unace and unrar dependencies.

reback00 commented 4 years ago

I'm soooo happy to say that we're more than halfway there to liberating these ~200 packages.

I have a list here. It lists the packages and has a x at the beginning of the packages that have been processed (meaning that we don't need to think about it anymore). We can have a done-percentage from this:

wget https://gitlab.com/-/snippets/2035588/raw/master/list.txt || curl -LO https://gitlab.com/-/snippets/2035588/raw/master/list.txt
echo $(echo "scale=2; $(grep '^x ' list.txt | wc -l) / $(cat list.txt | wc -l) * 100" | bc)"%"

Right now it returns 52.00%. Yaaayyy!

drake-newell commented 4 years ago

Yay! Great job!

ghost commented 2 years ago

How is progress on this currently? Been a year now, after all. I'm a bit confused about how Ymir Linux works, are its patched packages significantly behind Void Linux or is it mostly fine?