Respectfully, Richard, I disagree with your analysis:

There is a fundamental conceptual difference between
(1) a mode of usage you don't know how to invoke, and
(2) a mode of usage you are prohibited from utilizing.

Freedom 0 is meant to prevent (2).  For instance, if the developer
claims that you are forbidden to run a program unless you have a
contract to permit it, that is an example of (2).  Freedom 0
means that everyone who gets a copy has authorization to run it.


The technological problem is that switching on the full features
of a device can require a password that is unique to the device
and that can only be obtained separately. For example, it is
common for manufacturers to require a user to register
personal information with them in order to activate the device.

Making the software that operates the machine libre is not
sufficient if that software can not do its job unless the
user discloses personal information to the manufacturer's
web site -- and that is a real thing going on today.

My understanding is that this is common practice among manufacturers
of cell phones, and that it has begun happening with music
making devices.

I think a rough draft of the principles might be this:

  1. If a device connects to other computing systems,
     complete documentation of the protocols MUST be
     provided.  Users MUST be free to share this
     documentation including a right to create clearly
     identified derived works and share those.
     The protocol documentation MUST be complete in the
     sense that the user can fully use the device while not
     being required to obtain any other information about the
     device.  There MUST be no restrictions that prohibit or
     inhibit anyone from implementing the protocols.

  2. If the device is programmable, the internal software interfaces
     MUST be fully documented similarly, and there should be
     no limitations preventing users from using only their own
     choice of software on the device. The interface documentation
     MUST also be complete so that the user can fully operate the
     device while not being required to obtain any other
     information about the device.

  3. If the device contains software stored in read-only memory,
     the software SHOULD be free software.  When practical, the
     physical design of the machine should allow users to replace
     the read-only memory with a substitute (for example, ROM
     chips should be socketed.)  There MUST be no restrictions
     against creating and using free software ROM replacements.

  4. All software bundled with a device SHOULD be free software.

I could be wrong but I think you already agree with those statements
or at least something close to them.

I'm trying to consolidate them into a set of principles and
objective standards that hardware vendors can be seen either to
embrace or violate.

The 4 freedom-respecting principles for hardware should have a name
and perhaps there should be a process for certifying that a device
complies (much as there are processes for certifying that a software
license is a free software license).  This can help educate both
users and device makers about the issues, and facilitate a
movement to promote these principles.

-t


On 2022-01-31 21:07, Richard Stallman wrote:
[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > In the music making world, it is distressingly common to sell
  > hardware such as MIDI controllers (think: fancy game controllers
  > but for music making) with capabilities that can not be accessed
  > without difficult feats of reverse engineering, or else having
  > to use proprietary software.  Often, the proprietary software
  > further requires users to provide economically valuable
  > personal information to the hardware making corporation.

There is a fundamental conceptual difference between
(1) a mode of usage you don't know how to invoke, and
(2) a mode of usage you are prohibited from utilizing.

Freedom 0 is meant to prevent (2).  For instance, if the developer
claims that you are forbidden to run a program unless you have a
contract to permit it, that is an example of (2).  Freedom 0
means that everyone who gets a copy has authorization to run it.

As for (1), releasing the source code enables users to
find the undocumented commands, thus how to invoke
whatever features exist.

_______________________________________________
libreplanet-discuss mailing list
libreplanet-discuss@libreplanet.org
https://lists.libreplanet.org/mailman/listinfo/libreplanet-discuss

Reply via email to