• Re: linuxcnc licensing issues

    From Andrew M.A. Cater@21:1/5 to Adam Ant on Thu Dec 1 14:40:01 2022
    On Thu, Dec 01, 2022 at 01:38:28PM +0100, Adam Ant wrote:

    [Stripping HTML formatting where I see it - could you please use plain text]

    Large portions of the core code base are labeled as LGPL-2 - There is no such > licence. It is either GPL-2 or LGPL-2.1

    A bit of history:

    Linuxcnc was forked from a National Institue of Standards and Technology
    project called the Enhanced Machine Control (EMC).
    https://www.nist.gov/publications/enhanced-machine-controller-architecture -overview

    As part of the project NIST released code in to the public domain free from
    copyright or licence - This code base was then munged for the want of a better word by a few individuals outside of NIST and additional code added. The munged code had copyright and licence notices added without the consent of NIST.

    Whilst public domain code can be used in a FOSS licenced project, without copyright (which by its very nature, public domain code is free from), any licence becomes unenforcable. There is also the moral question of taking
    public domain code and claiming copyright over it.

    Would the experts of Debian-Legal care to comment ?

    Disclaimer: I trained as a lawyer years ago but I'm not a US lawyer - this
    is NOT a legally binding opinion.

    With respect, I think you misunderstand both US copyright and licensing law
    for the specific case of software produced by the US Government and its employees.

    Copyright for what the NIST employees have written remains with the NIST.
    The originator of any code - in this case the US Govt.- retains the moral
    right to be identified as the author for those parts that it has written.

    Because it has been paid for out of US tax dollars, the US Government
    requires it to be released to the public as public domain in the US.
    In this instance, the US Govt. is about the only thing left in the US copyright system that can do this.
    "Public domain" doesn't exist in most of the rest of the world. https://en.wikipedia.org/wiki/Public_domain_in_the_United_States https://en.wikipedia.org/wiki/Copyright_status_of_works_by_the_federal_government_of_the_United_States

    By the same token, anyone rewriting/modifying that code also has copyright.
    The author of code can apply any license they like (and can distribute the
    code themselves with no licence or a licence that means that no-one else
    could ever distribute it because of a conflict of licences).

    LGPL-2 is a valid licence. https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License - 2.1 was a point release which also renamed it but retains LGPL
    as the abbreviation.

    Hope this helps

    Andy Cater



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mihai Moldovan@21:1/5 to Adam Ant on Thu Dec 1 15:30:01 2022
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------TVJ13KmV9O4AOqDNx0uSjbiu
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    Hello Adam


    Thank you for pointing out such issues and providing context.

    * On 12/1/22 13:38, Adam Ant wrote:
    Large portions of the core code base are labeled as LGPL-2 - There is no such licence. It is either GPL-2 or LGPL-2.1

    Technically, there is a LGPL 2.0 license, although deprecated, so if that is what was meant, it would be correct. Looking at the source code, the authors really specified "LGPL-2", which the packager just copied verbatim.

    Now, the COPYING.more file contains a copy of the LGPL 2.1. It is very likely this standard license was meant to be referenced, but the author was inexperienced in how to specify it (note that the source files also omit the standard short notice that is customary to include for such licenses) and has simply messed up. The packager, maybe also inexperienced, did not catch and rectify it.

    I suggest you file one or multiple bug reports to:
    - change the license string to a standard Debian or SPDX (compatible)
    identifier in both debian/copyright and the source files
    - add the standard short notice for the different licenses to source files.


    A bit of history:
    Linuxcnc was forked from a National Institue of Standards & Technology project
    called the Enhanced Machine Control (EMC).

    https://www.nist.gov/publications/enhanced-machine-controller-architecture-overview
    As part of the project NIST released code in to the public domain free from copyright or licence - This code base was then munged for the want of a better
    word by a few individuals outside of NIST and additional code added. The munged
    code had copyright & licence notices added without the consent of NIST.
    Here, things get a lot more complicated. First, let me point you to https://wiki.debian.org/DFSGLicenses#Public_Domain which provides a short FAQ about public domain.

    While code released under public domain is DFSG-free, not all jurisdictions have
    such a concept. While technically PD disclaims ownership of and does not explicitly license the code, that is only true for jurisdictions which do have the notion of things in the public domain. In others, authorship and ownership are retained, as far as I know. My personal suggestion is to avoid placing software into public domain and to explicitly choose a standard free software license instead, preferably one that has been tried and tested in a lot of jurisdictions already. However, it is moot for the original EMC1 code, which has
    obviously already been put into public domain.

    The other part is more concerning. You are claiming that the original EMC1 code was taken, modified, relicensed without the original authors's permission and then published as linuxcnc.

    Relicensing is a highly complicated matter. I have only experienced one project doing it and they were very meticulous in their approach, requiring consent (or dissent) from all past contributors.

    In the linuxcnc case, it probably was meant well, but that does not mean that it
    was done well. Stuffing a different license (or, for that matter, any license to
    begin with) onto work for which does not have authorship rights and without asking the original author for permission does not feel legal.

    However, I have no idea how code in the public domain would interact with that. Given that placing code into the public domain explicitly dismisses author's rights, would one not be free to do anything with it, including relicensing it freely? Probably not, but I really do not know.

    Personally, I would view linuxcnc as a problematic piece of software and would not even want to include it in Debian until such issues are resolved, but I also
    have to stress that my opinion has no weight whatsoever.


    Whilst public domain code can be used in a FOSS licenced project, without copyright (which by its very nature, public domain code is free from), any licence becomes unenforcable.
    This is true for jurisdictions that have exactly this notion of public domain. For others (and, frankly, probably MOST others), author's rights and copyrights cannot be dismissed, even if the author intended to do so. This would certainly make the relicensing illegal at worst, unenforceable at best.


    There is also the moral question of taking public domain code and claiming
    copyright over it.
    This is not something I wish to discuss.


    Best regards,



    Mihai

    --------------TVJ13KmV9O4AOqDNx0uSjbiu--

    -----BEGIN PGP SIGNATURE-----

    wsF5BAABCAAjFiEEbhHQj3UzgcdE8cg8H9Yu2W4lOocFAmOIuCcFAwAAAAAACgkQH9Yu2W4lOoeO EA/7B09sxuk6w2D31pX3WjYGb6pdtS/kwy5yf6xc5B6qp1daItVth4aPqBcD8GxECF9vORihQULC sU5uJOEY/XeSIOnkEaf7ZN5flBp5trGB6ug/SmD79UAWHW91Qw4egInkN02zENVuRGFcYOmYNliQ p8YPieuq72pKN1cTQNsifv5Y7yrIE8Pcfwn4OWuYzmN0r5ESt28UJnnIeNYZ06c2JbhQ5I+wVmwE BUfdP09JH9n5WbrzQtw7Jp6EcgTgXUrj6jpfAv+/YUz54JZyj8XUGtLuhblljphcM8i9Ew5vRA95 GPG1W5kFnlNqALSJ+P8YYze+dLU7/Wb5/mKVR1wImCTDVl+6dwgjUJleUVOKY8LHLH/WbvSeTOeJ KHSjRGy+9e2MGRKULf0/VvBmhKUiJ5pUw00NDbHPPn+QGz6SDBo3GxaMPx28Nbi26feqPOfCndA5 QM597iuC6IszEBW0wiGJm23HM5EfWXONPSM0zzVjhYOA/t7jIPAlq11rZVdK3azeP46GII1bu/Ya SHbqpqFd9QeQ6AZW+Hm5tNonaYM62Zh9Me4X3ydnd60waKvrKgL3DVIq6gh2E6745Vt0ei8r8+gy wNCAdKVYikbkeol/gGP5xID787XuMyv17zzYUK0HDhiulqMAWEQdJhm+WJ3Hzxf4E7kSmoE/trhk cxs=
    =SQvn
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Adam Ant@21:1/5 to All on Fri Dec 2 01:10:02 2022
    Sent: Thursday, December 01, 2022 at 2:20 PM
    From: "Mihai Moldovan" <[email protected]>
    To: [email protected]
    Subject: Re: linuxcnc licensing issues

    Hello Adam


    Thank you for pointing out such issues and providing context.

    * On 12/1/22 13:38, Adam Ant wrote:
    Large portions of the core code base are labeled as LGPL-2 - There is no such
    licence. It is either GPL-2 or LGPL-2.1

    Technically, there is a LGPL 2.0 license, although deprecated, so if that is what was meant, it would be correct. Looking at the source code, the authors really specified "LGPL-2", which the packager just copied verbatim.

    Now, the COPYING.more file contains a copy of the LGPL 2.1. It is very likely this standard license was meant to be referenced, but the author was inexperienced in how to specify it (note that the source files also omit the standard short notice that is customary to include for such licenses) and has simply messed up. The packager, maybe also inexperienced, did not catch and rectify it.

    I suggest you file one or multiple bug reports to:
    - change the license string to a standard Debian or SPDX (compatible)
    identifier in both debian/copyright and the source files
    - add the standard short notice for the different licenses to source files.


    A bit of history:
    Linuxcnc was forked from a National Institue of Standards & Technology project
    called the Enhanced Machine Control (EMC).

    https://www.nist.gov/publications/enhanced-machine-controller-architecture-overview
    As part of the project NIST released code in to the public domain free from copyright or licence - This code base was then munged for the want of a better
    word by a few individuals outside of NIST and additional code added. The munged
    code had copyright & licence notices added without the consent of NIST.
    Here, things get a lot more complicated. First, let me point you to https://wiki.debian.org/DFSGLicenses#Public_Domain which provides a short FAQ about public domain.

    While code released under public domain is DFSG-free, not all jurisdictions have
    such a concept. While technically PD disclaims ownership of and does not explicitly license the code, that is only true for jurisdictions which do have
    the notion of things in the public domain. In others, authorship and ownership
    are retained, as far as I know. My personal suggestion is to avoid placing software into public domain and to explicitly choose a standard free software license instead, preferably one that has been tried and tested in a lot of jurisdictions already. However, it is moot for the original EMC1 code, which has
    obviously already been put into public domain.

    The other part is more concerning. You are claiming that the original EMC1 code
    was taken, modified, relicensed without the original authors's permission and then published as linuxcnc.

    Relicensing is a highly complicated matter. I have only experienced one project
    doing it and they were very meticulous in their approach, requiring consent (or
    dissent) from all past contributors.

    In the linuxcnc case, it probably was meant well, but that does not mean that it
    was done well. Stuffing a different license (or, for that matter, any license to
    begin with) onto work for which does not have authorship rights and without asking the original author for permission does not feel legal.

    However, I have no idea how code in the public domain would interact with that.
    Given that placing code into the public domain explicitly dismisses author's rights, would one not be free to do anything with it, including relicensing it
    freely? Probably not, but I really do not know.

    Personally, I would view linuxcnc as a problematic piece of software and would
    not even want to include it in Debian until such issues are resolved, but I also
    have to stress that my opinion has no weight whatsoever.

    Also have grave concerns here. Questionable claims of copyright are not just limited
    to the PD portions of the code base. As an example: https://github.com/LinuxCNC/linuxcnc/blob/master/src/rtapi/procfs_macros.h
    The original file can be found here: http://svn.savannah.gnu.org/viewvc/rtai/magma/base/include/rtai_proc_fs.h?view=markup

    With this particular example, the licence remains the same (GPL2+), but not the author.
    Perhaps a well intentioned assignment, but I wouldn't like to speculate.


    Whilst public domain code can be used in a FOSS licenced project, without copyright (which by its very nature, public domain code is free from), any licence becomes unenforcable.
    This is true for jurisdictions that have exactly this notion of public domain.
    For others (and, frankly, probably MOST others), author's rights and copyrights
    cannot be dismissed, even if the author intended to do so. This would certainly
    make the relicensing illegal at worst, unenforceable at best.


    There is also the moral question of taking public domain code and claiming
    copyright over it.
    This is not something I wish to discuss.


    Best regards,



    Mihai


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)