Host system requirements & instruction specificity

Include a lesson learned for it, too.
This commit is contained in:
Bradley M. Kuhn 2014-11-07 08:51:07 -05:00
parent 31220d4762
commit 07bed2fdbf

View file

@ -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 likely sufficient to meet GPL's requirements. However, in this case, the
instructions are more abundant and give more detail. instructions are more abundant and give more detail.
** Since it appears that this source release will build on a wide range of These instructions are more general than typical. Often, top-level build
distributions, it was fine that no specific distribution was specified. instructions will specifically name a host distribution to use, such as
However, most source releases we see will only build on a very specific ``Debian 7 installed on a amd64 system with the following packages
distribution, due to a variety of assumptions made about the build installed''. If the build will not complete on any other system,
environment. While such a situation is not ideal in the general sense, it is instructions should have such details. However, in this case, the CCS can
fine to specify a particular distribution that must be use to build the build on a wide range of distributions, and thus no specific distribution was
source release (such as "Debian 7 amd64"), from a compliance perspective. specified.
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 \label{thinkpenguin-specific-host-system}
"`GLIBC\verb0_02.14' not found" below).
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 % FIXME: Spend some time here (admittedly a digression: maybe refer to
% another section later?) about how it's ok to specify a specific build % 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 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. 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} \end{enumerate}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%