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

  • Done
  • quality assurance status badge
Details
2 participants
  • Marius Bakke
  • Simon South
Owner
unassigned
Submitted by
Simon South
Severity
normal
S
S
Simon South wrote on 1 Nov 2020 17:53
(address . guix-patches@gnu.org)(address . simon@simonsouth.net)
cover.1604237602.git.simon@simonsouth.net
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.


--
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
S
S
Simon South wrote on 1 Nov 2020 17:56
[PATCH 1/1] gnu: sdcc: Remove non-free code.
(address . 44374@debbugs.gnu.org)(address . simon@simonsouth.net)
716addbb18ad1101a7b943cc6ddab8fc8e8aa73c.1604237602.git.simon@simonsouth.net
* gnu/packages/sdcc.scm (sdcc)[source]: Add snippet to remove bundled non-free
source code.
Add patch to disable use of non-free code in build scripts and compiler and
update documentation to match.
* gnu/packages/patches/sdcc-disable-non-free-code.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
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

Toggle diff (516 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 3332f10df8..4c6e9779e7 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1415,6 +1415,7 @@ dist_patch_DATA = \
%D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/samba-fix-fcntl-hint-detection.patch \
+ %D%/packages/patches/sdcc-disable-non-free-code.patch \
%D%/packages/patches/sdl-pango-api_additions.patch \
%D%/packages/patches/sdl-pango-blit_overflow.patch \
%D%/packages/patches/sdl-pango-fillrect_crash.patch \
diff --git a/gnu/packages/patches/sdcc-disable-non-free-code.patch b/gnu/packages/patches/sdcc-disable-non-free-code.patch
new file mode 100644
index 0000000000..545f0cbd69
--- /dev/null
+++ b/gnu/packages/patches/sdcc-disable-non-free-code.patch
@@ -0,0 +1,3643 @@
+This patch disables the use of non-free code distributed with SDCC by
+removing
+
+ - The "--disable-non-free" option to "configure" and the build logic
+ it controls;
+
+ - 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.
+
+It also updates SDCC's documentation to reflect these changes and to
+remove instructions that encourage the use of SDCC with non-free
+software.
+
+diff --git a/Makefile.common.in b/Makefile.common.in
+index 4c75cfa..9fa306d 100644
+--- a/Makefile.common.in
++++ b/Makefile.common.in
+@@ -65,7 +65,6 @@ OPT_DISABLE_PACKIHX = @OPT_DISABLE_PACKIHX@
+ OPT_DISABLE_SDBINUTILS = @OPT_DISABLE_SDBINUTILS@
+ OPT_DISABLE_SDCPP = @OPT_DISABLE_SDCPP@
+ OPT_DISABLE_UCSIM = @OPT_DISABLE_UCSIM@
+-OPT_DISABLE_NON_FREE = @OPT_DISABLE_NON_FREE@
+
+ SLIB = $(top_builddir)/support/util
+
+diff --git a/Makefile.in b/Makefile.in
+index aac442e..dd73e40 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -82,9 +82,6 @@ endif
+ ifeq ($(OPT_DISABLE_DEVICE_LIB), 0)
+ TARGETS += sdcc-device-lib
+ PKGS += device/lib
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+-PKGS += device/non-free/lib
+-endif
+ endif
+
+ ifeq ($(OPT_DISABLE_PACKIHX), 0)
+@@ -105,9 +102,6 @@ endif
+ TARGETS += sdcc-libs sdcc-cc sdcc-device-inc sdcc-as sdcc-ld sdcc-scripts
+
+ PKGS += $(SDCC_LIBS) src device/include
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+-PKGS += device/non-free/include
+-endif
+ PKGS += $(SDCC_AS) sdas/linksrc $(SDCC_LIBRARIAN) $(SDCC_SCRIPTS)
+
+ PORTS = $(shell cat ports.build)
+@@ -156,21 +150,12 @@ sdcc-sdbinutils:
+
+ sdcc-device-inc:
+ $(MAKE) -C device/include
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+- $(MAKE) -C device/non-free/include
+-endif
+
+ sdcc-device-lib: sdcc-cc sdcc-as sdcc-ld $(SDCC_BINUTILS)
+ $(MAKE) -C device/lib
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+- $(MAKE) -C device/non-free/lib
+-endif
+
+ sdcc-device-tini:
+ $(MAKE) -C device/include
+-ifeq ($(OPT_DISABLE_NON_FREE), 0)
+- $(MAKE) -C device/non-free/include
+-endif
+ $(MAKE) -C device/lib model-ds390 model-ds400
+
+ # doc depends on latex and latex2html
+diff --git a/configure b/configure
+index 42b1c7d..00ecb51 100755
+--- a/configure
++++ b/configure
+@@ -632,7 +632,6 @@ LATEX
+ LATEX2HTML
+ LYX
+ OPT_ENABLE_DOC
+-OPT_DISABLE_NON_FREE
+ OPT_DISABLE_SDBINUTILS
+ OPT_DISABLE_SDCDB
+ OPT_DISABLE_SDCPP
+@@ -654,10 +653,7 @@ OPT_DISABLE_R2K
+ OPT_DISABLE_Z180
+ OPT_DISABLE_Z80
+ OPT_DISABLE_MCS51
+-non_free_lib_dir_suffix
+ lib_dir_suffix
+-non_free_include_dir_suffix
+-non_free_inclib_dir_suffix
+ include_dir_suffix
+ inclib_dir_suffix
+ LIB_TYPE
+@@ -771,7 +767,6 @@ enable_packihx
+ enable_sdcpp
+ enable_sdcdb
+ enable_sdbinutils
+-enable_non_free
+ enable_doc
+ enable_libgc
+ '
+@@ -792,10 +787,7 @@ sdccconf_h_dir_separator
+ LIB_TYPE
+ inclib_dir_suffix
+ include_dir_suffix
+-non_free_inclib_dir_suffix
+-non_free_include_dir_suffix
+ lib_dir_suffix
+-non_free_lib_dir_suffix
+ docdir'
+ ac_subdirs_all='support/cpp
+ support/packihx
+@@ -803,9 +795,7 @@ sim/ucsim
+ debugger/mcs51
+ support/sdbinutils
+ device/lib/pic14
+-device/non-free/lib/pic14
+-device/lib/pic16
+-device/non-free/lib/pic16'
++device/lib/pic16'
+
+ # Initialize some variables set by options.
+ ac_init_help=
+@@ -1452,7 +1442,6 @@ Optional Features:
+ --disable-sdcpp Disables building sdcpp
+ --disable-sdcdb Disables building sdcdb
+ --disable-sdbinutils Disables configuring and building of sdbinutils
+- --disable-non-free Disables non-free runtime library parts
+ --enable-doc Enables building the documentation
+ --enable-libgc Use the Bohem memory allocator. Lower runtime
+ footprint.
+@@ -1481,16 +1470,8 @@ Some influential environment variables:
+ appended to datadir to define SDCC's include/lib directory
+ include_dir_suffix
+ appended to datadir to define SDCC's include directory
+- non_free_inclib_dir_suffix
+- appended to datadir to define SDCC's non-free include/lib
+- directory
+- non_free_include_dir_suffix
+- appended to datadir to define SDCC's non-free include directory
+ lib_dir_suffix
+ appended to datadir to define SDCC's library root directory
+- non_free_lib_dir_suffix
+- appended to datadir to define SDCC's non-free library root
+- directory
+ docdir documentation installation directory
+
+ Use these variables to override the choices made by `configure' or to help
+@@ -7236,19 +7217,6 @@ if test "${include_dir_suffix}" = ""; then
+ include_dir_suffix="${inclib_dir_suffix}/include"
+ fi
+
+-
+-if test "${non_free_inclib_dir_suffix}" = ""; then
+- non_free_inclib_dir_suffix="sdcc/non-free"
+-fi
+-
+-# non_free_include_dir_suffix:
+-# *nix default: "sdcc/non-free/include"
+-
+-
+-if test "${non_free_include_dir_suffix}" = ""; then
+- non_free_include_dir_suffix="${non_free_inclib_dir_suffix}/include"
+-fi
+-
+ # lib_dir_suffix:
+ # *nix default: "sdcc/lib"
+
+@@ -7256,13 +7224,6 @@ if test "${lib_dir_suffix}" = ""; then
+ lib_dir_suffix="${inclib_dir_suffix}/lib"
+ fi
+
+-# non_free_lib_dir_suffix:
+-# *nix default: "sdcc/non-free/lib"
+-
+-if test "${non_free_lib_dir_suffix}" = ""; then
+- non_free_lib_dir_suffix="${non_free_inclib_dir_suffix}/lib"
+-fi
+-
+ # docdir:
+ # *nix default: "${datadir}/sdcc/doc"
+
+@@ -7429,24 +7390,6 @@ cat >>confdefs.h <<_ACEOF
+ #define INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}"
+ _ACEOF
+
+-norm_non_free_inc_dir_suffix=${non_free_include_dir_suffix}
+-case ":$norm_non_free_inc_dir_suffix:" in
+- ::) norm_non_free_inc_dir_suffix='.' ;;
+- :*[\\/]:) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,[\\/]*$,,'` ;;
+- :*:) ;;
+-esac
+-case $sdccconf_h_dir_separator in
+-
+- *\\*) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+- s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-
+-cat >>confdefs.h <<_ACEOF
+-#define NON_FREE_INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_non_free_inc_dir_suffix}"
+-_ACEOF
+-
+
+ norm_lib_dir_suffix=${lib_dir_suffix}
+ case ":$norm_lib_dir_suffix:" in
+@@ -7466,24 +7409,6 @@ cat >>confdefs.h <<_ACEOF
+ #define LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_lib_dir_suffix}"
+ _ACEOF
+
+-norm_non_free_lib_dir_suffix=${non_free_lib_dir_suffix}
+-case ":$norm_non_free_lib_dir_suffix:" in
+- ::) norm_non_free_lib_dir_suffix='.' ;;
+- :*[\\/]:) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,[\\/]*$,,'` ;;
+- :*:) ;;
+-esac
+-case $sdccconf_h_dir_separator in
+-
+- *\\*) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+- s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-
+-cat >>confdefs.h <<_ACEOF
+-#define NON_FREE_LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_non_free_lib_dir_suffix}"
+-_ACEOF
+-
+
+ # relative paths
+ for _lcl_i in expanded_bindir:expanded_datadir:bin2data_dir; do
+@@ -8411,28 +8336,6 @@ _ACEOF
+
+
+
+- # Check whether --enable-non-free was given.
+-if test "${enable_non_free+set}" = set; then :
+- enableval=$enable_non_free;
+-fi
+-
+-
+- arg1=`echo non-free | sed s/-/_/`
+-
+- if test "`eval echo \\$enable_$arg1`" = "no"; then
+- OPT_DISABLE_NON_FREE=1
+- else
+- OPT_DISABLE_NON_FREE=0
+- fi
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define OPT_DISABLE_NON_FREE $OPT_DISABLE_NON_FREE
+-_ACEOF
+-
+-
+-
+-
+
+ # Check whether --enable-doc was given.
+ if test "${enable_doc+set}" = set; then :
+@@ -8827,20 +8730,12 @@ if test $OPT_DISABLE_PIC14 = 0; then
+
+ test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic14"
+
+-fi
+-if test $OPT_DISABLE_PIC14 = 0 && test $OPT_DISABLE_NON_FREE = 0; then
+- test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/non-free/lib/pic14"
+-
+ fi
+ if test $OPT_DISABLE_PIC16 = 0; then
+ ac_config_files="$ac_config_files src/pic16/Makefile"
+
+ test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic16"
+
+-fi
+-if test $OPT_DISABLE_PIC16 = 0 && test $OPT_DISABLE_NON_FREE = 0; then
+- test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/non-free/lib/pic16"
+-
+ fi
+
+ if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0; then
+@@ -8885,15 +8780,9 @@ fi
+
+ test $OPT_DISABLE_DEVICE_LIB = 0 && ac_config_files="$ac_config_files device/lib/Makefile"
+
+-test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && ac_config_files="$ac_config_files device/non-free/lib/Makefile"
+-
+
+ ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile device/include/Makefile sdas/linksrc/Makefile support/librarian/Makefile support/makebin/Makefile support/regression/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in"
+
+-if test $OPT_DISABLE_NON_FREE = 0; then
+- ac_config_files="$ac_config_files device/non-free/include/Makefile"
+-
+-fi
+ cat >confcache <<\_ACEOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+@@ -9621,7 +9510,6 @@ do
+ "sdas/asstm8/Makefile") CONFIG_FILES="$CONFIG_FILES sdas/asstm8/Makefile" ;;
+ "device/lib/stm8/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/stm8/Makefile" ;;
+ "device/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/Makefile" ;;
+- "device/non-free/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/lib/Makefile" ;;
+ "main.mk") CONFIG_FILES="$CONFIG_FILES main.mk:main_in.mk" ;;
+ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+ "device/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/include/Makefile" ;;
+@@ -9634,7 +9522,6 @@ do
+ "support/regression/ports/host/spec.mk") CONFIG_FILES="$CONFIG_FILES support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "Makefile.common") CONFIG_FILES="$CONFIG_FILES Makefile.common:Makefile.common.in" ;;
+- "device/non-free/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/include/Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+@@ -10443,54 +10330,6 @@ esac
+ incPath3=`echo "$incPath3" | sed 's,\\\\\\\\,\\\\,g'`
+
+
+-nonFreeIncPath1=`echo "/${prefix2data_dir}/${norm_non_free_inc_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeIncPath1:" in
+- ::) nonFreeIncPath1='.' ;;
+- :*[\\/]:) nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,[\\/]*$,,'` ;;
+- :*:) ;;
+-esac
+-case $dirch in
+-
+- *\\*) nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+- s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+-nonFreeIncPath2=`echo "/${bin2data_dir}/${norm_non_free_inc_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeIncPath2:" in
+- ::) nonFreeIncPath2='.' ;;
+- :*[\\/]:) nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,[\\/]*$,,'` ;;
+- :*:) ;;
+-esac
+-case $dirch in
+-
+- *\\*) nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+- s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+-nonFreeIncPath3=`echo "${expanded_datadir}/${norm_non_free_inc_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeIncPath3:" in
+- ::) nonFreeIncPath3='.' ;;
+- :*[\\/]:) nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,[\\/]*$,,'` ;;
+- :*:) ;;
+-esac
+-case $dirch in
+-
+- *\\*) nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+- s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+
+ libPath1=`echo "/${prefix2data_dir}/${norm_lib_dir_suffix}" | sed 's,/\./,/,g'`
+ case ":$libPath1:" in
+@@ -10540,54 +10379,6 @@ esac
+ libPath3=`echo "$libPath3" | sed 's,\\\\\\\\,\\\\,g'`
+
+
+-nonFreeLibPath1=`echo "/${prefix2data_dir}/${norm_non_free_lib_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeLibPath1:" in
+- ::) nonFreeLibPath1='.' ;;
+- :*[\\/]:) nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,[\\/]*$,,'` ;;
+- :*:) ;;
+-esac
+-case $dirch in
+-
+- *\\*) nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+- s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+-nonFreeLibPath2=`echo "/${bin2data_dir}/${norm_non_free_lib_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeLibPath2:" in
+- ::) nonFreeLibPath2='.' ;;
+- :*[\\/]:) nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,[\\/]*$,,'` ;;
+- :*:) ;;
+-esac
+-case $dirch in
+-
+- *\\*) nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+- s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+-nonFreeLibPath3=`echo "${expanded_datadir}/${norm_non_free_lib_dir_suffix}" | sed 's,/\./,/,g'`
+-case ":$nonFreeLibPath3:" in
+- ::) nonFreeLibPath3='.' ;;
+- :*[\\/]:) nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,[\\/]*$,,'` ;;
+- :*:) ;;
+-esac
+-case $dirch in
+-
+- *\\*) nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g
+- s,^[\\/],\\\\\\\\,'` ;;
+-
+- *) nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;;
+-esac
+-nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\\\\\\\\,\\\\,g'`
+-
+-
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result:
+ sdcc ${VERSION} is now configured for
+
+@@ -10618,7 +10409,6 @@ sdcc ${VERSION} is now configured for
+ tlcs90 ${enable_tlcs90_port}
+ stm8 ${enable_stm8_port}
+
+- Disable non-free lib: ${OPT_DISABLE_NON_FREE}
+ Disable packihx: ${OPT_DISABLE_PACKIHX}
+ Disable ucsim: ${OPT_DISABLE_UCSIM}
+ Disable device lib: ${OPT_DISABLE_DEVICE_LIB}
+@@ -10633,9 +10423,6 @@ sdcc ${VERSION} is now configured for
+ include/library files: ${datadir}/${inclib_dir_suffix}
+ include files: ${datadir}/${include_dir_suffix}
+ library files: ${datadir}/${lib_dir_suffix}
+- non-free files: ${datadir}/${non_free_inclib_dir_suffix}
+- non-free include files: ${datadir}/${non_free_include_dir_suffix}
+- non-free library files: ${datadir}/${non_free_lib_dir_suffix}
+ documentation: ${docdir}
+
+ prefix: ${prefix}
+@@ -10647,15 +10434,9 @@ sdcc ${VERSION} is now configured for
+ include files: ${incPath1}
+ path(argv[0])${incPath2}
+ ${incPath3}
+- ${nonFreeIncPath1}
+- path(argv[0])${nonFreeIncPath2}
+- ${nonFreeIncPath3}
+ library files: \$SDCC_HOME${libPath1}${dirch}<model>
+ path(argv[0])${libPath2}${dirch}<model>
+ ${libPath3}${dirch}<model>
+- \$SDCC_HOME${nonFreeLibPath1}${dirch}<model>
+- path(argv[0])${nonFreeLibPath2}${dirch}<model>
+- ${nonFreeLibPath3}${dirch}<model>
+ " >&5
+ $as_echo "
+ sdcc ${VERSION} is now configured for
+@@ -10687,7 +10468,6 @@ sdcc ${VERSION} is now configured for
+ tlcs90 ${enable_tlcs90_port}
+ stm8 ${enable_stm8_port}
+
+- Disable non-free lib: ${OPT_DISABLE_NON_FREE}
+ Disable packihx: ${OPT_DISABLE_PACKIHX}
+ Disable ucsim: ${OPT_DISABLE_UCSIM}
+ Disable device lib: ${OPT_DISABLE_DEVICE_LIB}
+@@ -10702,9 +10482,6 @@ sdcc ${VERSION} is now configured for
+ include/library files: ${datadir}/${inclib_dir_suffix}
+ include files: ${datadir}/${include_dir_suffix}
+ library files: ${datadir}/${lib_dir_suffix}
+- non-free files: ${datadir}/${non_free_inclib_dir_suffix}
+- non-free include files: ${datadir}/${non_free_include_dir_suffix}
+- non-free library files: ${datadir}/${non_free_lib_dir_suffix}
+ documentation: ${docdir}
+
+ prefix: ${prefix}
+@@ -10716,14 +10493,8 @@ sdcc ${VERSION} is now configured for
+ include files: ${incPath1}
+ path(argv[0])${incPath2}
+ ${incPath3}
+- ${nonFreeIncPath1}
+- path(argv[0])${nonFreeIncPath2}
+- ${nonFreeIncPath3}
+ library files: \$SDCC_HOME${libPath1}${dirch}<model>
+ path(argv[0])${libPath2}${dirch}<model>
+ ${libPath3}${dirch}<model>
+- \$SDCC_HOME${nonFreeLibPath1}${dirch}<model>
+- path(argv[0])${nonFreeLibPath2}${dirch}<model>
+- ${nonFreeLibPath3}${dirch}<model>
+ " >&6; }
+ # End of configure/configure.in
+diff --git a/configure.ac b/configure.ac
+index 3a16e42..bfba129 100644
+--- a/configure.ac
This message was truncated. Download the full message here.
M
M
Marius Bakke wrote on 10 Nov 2020 22:06
Re: [bug#44374] [PATCH 0/1] gnu: sdcc: Remove non-free code
(address . simon@simonsouth.net)
87sg9gdir2.fsf@gnu.org
Simon South <simon@simonsouth.net> writes:

Toggle quote (3 lines)
> This patch updates Guix to remove non-free code bundled with SDCC, a C
> compiler that targets a variety of microcontroller families.

Oh my, does this mean we have been shipping non-free code all this time?

I have mixed feelings about the 3643-line patch. On the one hand it is
great to adjust the documentation to match, OTOH it looks non-trivial to
maintain. It also takes a good second place in the "longest patch
contest".

However since you already did the work, and this is a rather serious
issue, I went along and committed the patch. Thank you very much!

As you've been delivering a steady stream of high-quality patches I
assume you'll be around for a while to maintain it. :-)
-----BEGIN PGP SIGNATURE-----

iQFDBAEBCgAtFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl+rANEPHG1hcml1c0Bn
bnUub3JnAAoJEKKgbfKjOlT6EKEH/0Kp7S7BmfDnjImhuPcGKhLLpPR1NignJdYG
tfE4crSHsi9JprJga2tEXE3mzHvw2QEuYzlaUF/iOSezFsmNs2kirBRhpWxU3ykA
z1VJCkI7hQri4FlhdJkIZSPFWGj8JImopw9MkzoUr8+Gyfhf0TsKmtByXW6N+D0s
NWXSMQmNnHxG5AMKmXE4YGmjrnZ2EDC5Xsb9xLAgzXUBRSXz7eR/p3e2lDWwsVHt
2rZNwOVYXRCYbCgZ6NOlw8PnTYYQQwAUd1hHCMYwM71NMYeW93PT2WQYY6nREExs
DDz2V4BcBXh4VZYu7+x0g1ejcAGHa9TiW9tnzIa4yaDd2u+a2L0=
=o1jl
-----END PGP SIGNATURE-----

Closed
S
S
Simon South wrote on 10 Nov 2020 22:52
(name . Marius Bakke)(address . marius@gnu.org)(address . 44374-done@debbugs.gnu.org)
87wnyshobt.fsf@simonsouth.net
Marius Bakke <marius@gnu.org> writes:
Toggle quote (3 lines)
> As you've been delivering a steady stream of high-quality patches I
> assume you'll be around for a while to maintain it. :-)

You are correct. Thanks for the review and the commit.

--
Simon South
simon@simonsouth.net
Closed
?