guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#44374] [PATCH 0/1] gnu: sdcc: Remove non-free code


From: Simon South
Subject: [bug#44374] [PATCH 0/1] gnu: sdcc: Remove non-free code
Date: Sun, 1 Nov 2020 11:53:28 -0500

This patch updates Guix to remove non-free code bundled with SDCC, a C
compiler that targets a variety of microcontroller families.

It also adds a patch that removes from SDCC

  - The "--disable-non-free" option to its "configure" script and the related
    build logic;

  - All references to the "device/non-free" source directory and the
    corresponding "non-free" installation directory; and

  - The "--use-non-free" and "--no-warn-non-free" compiler options and
    references to them in build scripts and compiler output.

The patch furthermore updates SDCC's documentation to reflect these changes
and to remove instructions encouraging the use of non-free software.

I've tested these changes on x86-64 and AArch64 and while neither I nor the
distribution has a comprehensive test suite available, the compiler appears to
work fine on both architectures.

The non-free code in question involves the library source code and headers
specific to a number of PIC microcontroller models. This code was generated
from files distributed by Microchip, the current owner of the PIC design, with
the requirement they be used only with "authentic" PIC-compatible devices from
Microchip themselves. This violates freedom 0[0], and not only are the files
themselves non-free, any software built with SDCC that links against the
resulting libraries is necessarily non-free as well.

Regarding my changes to the documentation, as I feel these may warrant
additional scrutiny:

Most of my changes are to the SDCC manual (which is in doc/sdccman.lyx and can
be viewed with LyX, i.e. "guix install lyx") and are only to remove references
to the now-absent "non-free" directories and related compiler
options. However, I have also replaced text in sections 1.2, 4.5.5 and 4.6.7
that explained how to find and use the non-free code with a notice that it has
been removed. (Search for "guix" to find these sections quickly.)

I've also added a statement to the "Acknowledgements" section at the end that
the manual has been modified from the original.

Section 4.6.10, "Adding New Devices to the Port", is tricky: Some of the
information it contains would be useful to a developer working to replace the
non-free code with a free alternative; on the other hand, it's clear the
intent of the section as written is to help people bring even more non-free
code into SDCC. Probably the section should be replaced with something
different but without knowing what the correct instructions would be, I have
simply removed it altogether for now.

SDCC's statements regarding licenses (in section 1.2 of the manual, in
doc/README.txt and in support/cinc2h.pl) consistently give instructions on
using the non-free code and in each case I have replaced this with a notice
saying the code has been removed. I assume this is of no legal significance
but thought I would point it out just in case.

Any and all feedback welcome.

[0] https://www.gnu.org/philosophy/free-sw.html

--
Simon South
simon@simonsouth.net


Simon South (1):
  gnu: sdcc: Remove non-free code.

 gnu/local.mk                                  |    1 +
 .../patches/sdcc-disable-non-free-code.patch  | 3643 +++++++++++++++++
 gnu/packages/sdcc.scm                         |   10 +-
 3 files changed, 3653 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/sdcc-disable-non-free-code.patch

-- 
2.28.0






reply via email to

[Prev in Thread] Current Thread [Next in Thread]