From 07bed2fdbf587f4b7b6af8440dd79bdd638c8007 Mon Sep 17 00:00:00 2001 From: "Bradley M. Kuhn" Date: Fri, 7 Nov 2014 08:51:07 -0500 Subject: [PATCH] Host system requirements & instruction specificity Include a lesson learned for it, too. --- enforcement-case-studies.tex | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/enforcement-case-studies.tex b/enforcement-case-studies.tex index 11f52a2..808e45b 100644 --- a/enforcement-case-studies.tex +++ b/enforcement-case-studies.tex @@ -386,16 +386,23 @@ procedures to build and install a replacement firmware, the instructions are likely sufficient to meet GPL's requirements. However, in this case, the instructions are more abundant and give more detail. -** Since it appears that this source release will build on a wide range of - distributions, it was fine that no specific distribution was specified. - However, most source releases we see will only build on a very specific - distribution, due to a variety of assumptions made about the build - environment. While such a situation is not ideal in the general sense, it is - fine to specify a particular distribution that must be use to build the - source release (such as "Debian 7 amd64"), from a compliance perspective. - As an example, we noticed such an assumption later on in this source release, - but it would be easy to correct in the instructions in this situation (see - "`GLIBC\verb0_02.14' not found" below). +These instructions are more general than typical. Often, top-level build +instructions will specifically name a host distribution to use, such as +``Debian 7 installed on a amd64 system with the following packages +installed''. If the build will not complete on any other system, +instructions should have such details. However, in this case, the CCS can +build on a wide range of distributions, and thus no specific distribution was +specified. + +\label{thinkpenguin-specific-host-system} + +In this specific case, the developers of the libreCMC project (on which the +TPE-NWIFIROUTER is based) have clearly made effort to ensure the CCS builds +on a variety of host systems. The investigator was in fact dubious upon +seeing these instructions, since finicky embedded build processes usually +require a very specific host system. Even in this case, a +\hyperref[thinkpenguin-glibc-214-issue]{minor annoyance was found that more + detailed instructions would address}. % FIXME: Spend some time here (admittedly a digression: maybe refer to % another section later?) about how it's ok to specify a specific build @@ -684,6 +691,12 @@ are both more problematic infractions. These minor infractions were: to write programmed scripts to do everything. The ``script'' included can certainly be more like the script of a play and less like a Bash script. +\item {\bf Write build/install instructions to the appropriate level of + specificity}. The upstream engineers + in this case study \hyperref[thinkpenguin-specific-host-system]{clearly did + additional work to ensure functionality on a wide variety of host build + systems}; this is quite rare. When in doubt, include the maximum level + of detail build engineers can provide with the CCS instructions. \end{enumerate} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%