I am not a lawyer, and I am happy not to be one. Fortunately, I am a free citizen coming from a constitutional democracy (Germany) and living now in another one (Brazil), and in this respect I consider the U.S. a fortunate democracy as well. Constitutional means, the citizen's (our) rights are preserved in the constitution and in this respect everybody got the same rights, and nobody got special ones, neither lawyer, nor RMS and others who feel being entitled of standing above the constitution.
This preamble is necessary to understand my following take on the GPL and its enforcement.
Laws, Licenses, Directives, whatsoever MUST NOT be written in a way that only lawyers get their grip on it, since THIS WOULD BE unconstitutional.
This means the license by itself must be readable and understandable by mere mortals, and any Quick Guides to the GPL or FAQ's on the GPL are irrelevant. If somebody is able to draw any relevancy out of this additional material in law suits, then this would only prove a defect in the license itself and would render terms of it invalid. That means:
Let's read the license itself and focus only on the license, since this is the ONE and ONLY authoritative source:
In respect to the actual question, on how may we ship a physical device which got object code derived from GPL licensed source code on it, we need to read
Section 6 of the GPLv3 or
Section 3 of the GPLv2. Here comes a quote from the GPLv3:
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
- a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
- b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
- c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
- d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
- e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
Term 6b does clearly allow us to ship a FreeBSD system having object code installed on it which is based on unmodified GPL sources, and by option (2) allowing our users to access the sources by the way of the ports tree
"from a network server at no charge." My recommendation, keep
/usr/ports intact on devices which we ship, and we're fine. However, I would ship modified sources verbatim, according to 6b(1).
Note, there is not written, that it must be our server. I understand 6b(2) and I happily can live with it, and lawyers, who want to turn the meaning of 6b(2) to anything favorable to them by any means of a FAQ or a Guide, would miserably fail.
PS:
For my own code, I don't use GPL'ed libraries by no means, and therefore I do not need to ship the sources of my code.