Subject: Re: phoronix-test-suite downloads nonfree software (+ question on collaboration with Parabola on this package)

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 02 Aug 2022 22:28:56 -0400

Hi Denis,

Denis 'GNUtoo' Carikli <[email-masked]> writes:

> Hi,
>
> Thanks a lot for working on having a recent FSDG compliant versions of
> phoronix-test-suite.
>
> I've found a minor issue with phoronix-test-suite and I've a couple of
> questions to help synchronize between Parabola and Guix to prevent
> accidental installation of nonfree software.

Thanks for reaching out!

> Nonfree software downloaded by phoronix-test-suite:
> ---------------------------------------------------
> According to Debian, Linux has the following nonfree files:
>> Documentation/netlabel/draft-ietf-cipso-ipsecurity-01.txt
>> arch/powerpc/platforms/8xx/micropatch.c
>> drivers/media/usb/dvb-usb/af9005-script.h drivers/media/i2c/vs6624.c
>> drivers/net/appletalk/cops*
>> drivers/video/fbdev/nvidia
>> drivers/video/fbdev/riva
>
> The GNU project also mention that ("nonfree blobs are shipped with
> Linux, the kernel") in the list of distros that are not FSDG
> compliant[1].
>
> When running 'phoronix-test-suite test build-linux-kernel' (and
> selecting Yes(Y) to install the test), phoronix-test-suite downloads
> a tarball of Linux.
>
> So I assume that the tarball downloaded also have nonfree software like
> arch/powerpc/platforms/8xx/micropatch.c. So we also need to filter-out
> two tests (to keep being FSDG compliant):
>> pts/build-linux-kernel
>> pts/unpack-linux
>
> As I understand, the other build should be fine.

The test is probably marked as free (as in freedom) by the metadata
included in the test; we should rectify that in a source snippet and
open an issue upstream so that the correct metadata gets added.  Looking
a it, the unpack-firefox would fall in the same category I believe.

> Question on the package description and collaborating with Parabola:
> --------------------------------------------------------------------
> If I run 'phoronix-test-suite list' on a fresh Guix installation, it
> lists nonfree software like BioShock Infinite, Hitman, which are games
> that have not been released under free licenses (according to
> Wikipedia).

I confirm:

$ phoronix-test-suite list-all-tests | grep -iE '(hitman|bioshock)'
pts/bioshock-infinite     BioShock Infinite                                 Graphics
pts/hitman                HITMAN                                            Graphics

And the reason why:

--8<---------------cut here---------------start------------->8---
$ grep License $(guix build phoronix-test-suite)/ob-cache/test-profiles/pts/hitman-1.0.1/test-definition.xml
    <License>Free</License>

$ grep License /gnu/store/bdjf3g5c0xv0hhygag1rwjsvq11y7j1h-phoronix-test-suite-10.8.3/share/phoronix-test-suite/ob-cache/test-profiles/pts/bioshock-infinite-1.0.1/test-definition.xml
    <License>Free</License>
--8<---------------cut here---------------end--------------->8---

We definitely should report these upstream, if they haven't been fixed
yet (there's a separate repository for the test metadata).

> If it didn't download any nonfree games, we could update the package
> description to explain how this FSDG compliance is done to not make
> users afraid and prevent invalid bug reports.

Good idea.

> I also saw there is a python script[2] that somehow is supposed to take
> care of FSDG compliance. How does it work in practice?

phoronix-test-suite comes with the test metadata so that it can at list
them offline upon first use.  Normally, it fetches updates of this
metadata but this gets disabled in our packaging of it, so only our
cleaned up offline metadata gets used.

So the Python script takes care of pruning nonfree tests from the
metadata, based on the metadata of the tests themselves (normally their
'License' field is set to 'Free' for free software).

I hope that helps clearing how it works.

Would you like to try preparing a snippet patch turning the above 'Free'
into 'Proprietary' or the likes so that the Python script can remove
them?  Otherwise I can look into it.

Thanks,

Maxim