Free System Distribution Checklist

From LibrePlanet
Jump to: navigation, search

Below is a checklist of practical steps you can take to see whether or not a particular distribution complies with the Free System Distribution Guidelines.

This list is inherently imperfect. Much like there's too much software in a modern distribution to expect developers to audit it all, the guidelines cover too many issues for any of us to check them all. This list suggests practical checks for common issues that prevent a distribution from complying with the guidelines. If you find something that might be an uncommon issue, don't hesitate to investigate it further.

We will add checks to this list as we discover new issues and ways to catch them. Feel free to make your own suggestions here, on the discussion page, or on the gnu-linux-libre mailing list.

Only Includes Free Software

  • If you're evaluating a distribution that's based on another, and it's easy to get a list of the other distribution's nonfree packages (for example, because they're all in a separate repository), then it would be ideal to take that list and confirm that none of the packages in it are in the free distribution. With a little shell munging, it shouldn't be too difficult to do a comprehensive search along the lines of grep -F nonfree-pkg-names distro-pkg-listings.

    If a list like that isn't available, then the next best check is probably to get a list of nonfree packages from a big distribution, and compare that against the list in the free distribution. This is not as good because it might be thwarted by minor details like differences in package names, but it's probably still more effective than trying to do any other more manual checks.

  • You can do a similar check to see if any of the packages listed on the List of software that does not respect the Free System Distribution Guidelines are included in the distribution. Don't assume that there's a problem just because the distribution includes a package named on that page, though: a lot of the entries suggest solutions that help the software comply with the guidelines without removing it completely. You'll have to check yourself to see whether or not the free distribution has taken those steps. Usually, that's as simple as comparing version numbers.
  • Check to see if the distribution uses linux-libre. If it doesn't, check to see whether it includes any nonfree firmware from Linux's firmware directory, or from some of the files that include inline firmware that linux-libre deblobs. Here are some example files like that in Linux 2.6.36:
    • drivers/media/dvb/dvb-usb/af9005-script.h
    • drivers/net/appletalk/cops_ffdrv.h
    • drivers/net/appletalk/cops_ltdrv.h
    • drivers/staging/wlags49_h2/ap_h2.c
    • drivers/staging/wlags49_h2/sta_h2.c
    • drivers/staging/wlags49_h2/ap_h25.c
    • drivers/staging/wlags49_h2/sta_h25.c
    • sound/pci/cs46xx/cs46xx_image.h
    • sound/pci/cs46xx/imgs/cwc4630.h
    • sound/pci/cs46xx/imgs/cwcasync.h
    • sound/pci/cs46xx/imgs/cwcsnoop.h

Only Suggests Free Software

  • Does the distribution's web site display advertisements that are programmatically selected and displayed based on the page's text? If so, the maintainers must take great care to ensure that advertisements for proprietary software are not included in the rotation. Write them to ask what steps they've taken to do that, and discuss it on the mailing list to see if anybody knows about other best practices.
  • If the distribution has forums where users can post what the like (mailing lists, web forums, wikis, etc.) check over those to see if recommendations for or discussion about nonfree software appear regularly. They shouldn't be a common occurrence, and they should be discouraged if someone brings them up.

Bug Handling

  • Search the distribution's bug database for reports about nonfree software or other violations of the guidelines, whether they're open or resolved. Check to see whether those reports receive due attention, and that the solutions implemented (if any yet) correctly address the issue at hand.


  • Check at least a few packages and make sure that the distribution provides source for them. Ideally, that means rebuilding the binary package from that source, and testing it to see if it works.

This page was a featured resource in June 2011.