manifoldco / promptui

Interactive prompt for command-line applications
https://www.manifold.co
BSD 3-Clause "New" or "Revised" License
6.07k stars 336 forks source link

3-clause BSDL might be incompatible with LGPLv3 (juju/ansiterm) #173

Closed AkihiroSuda closed 3 years ago

AkihiroSuda commented 3 years ago

IIUC, 3-clause BSDL is incompatible with LGPLv3 which applies to the dependency on juju/ansiterm: https://github.com/manifoldco/promptui/blob/981a3cab68f6f3481bf42c6a98521af7fbd14fae/select.go#L11

Could you consider removing dependency on the LGPLv3 library?

abhay-krishna commented 3 years ago

@luizbranco We are consuming PromptUI indirectly, but this dependency on an LGPLv3 licensed project makes it incompatible for our use-case. Could you look into this please? Thank you!

AkihiroSuda commented 3 years ago

Note: juju/ansiterm applies the following exception rule to LGPLv3

As a special exception to the GNU Lesser General Public License version 3
("LGPL3"), the copyright holders of this Library give you permission to
convey to a third party a Combined Work that links statically or dynamically
to this Library without providing any Minimal Corresponding Source or
Minimal Application Code as set out in 4d or providing the installation
information set out in section 4e, provided that you comply with the other
provisions of LGPL3 and provided that you meet, for the Application the
terms and conditions of the license(s) which apply to the Application.

Except as stated in this special exception, the provisions of LGPL3 will
continue to comply in full to this Library. If you modify this Library, you
may apply this exception to your version of this Library, but you are not
obliged to do so. If you do not wish to do so, delete this exception
statement from your version. This exception does not (and cannot) modify any
license terms which apply to the Application, with which you must still
comply.

So maybe this is compatible with 3BSDL, but I'm not sure. An interpretation from a legal professional would be highly appreciated.

abhay-krishna commented 3 years ago

Thank you for the reference :100: How about its compatibility with licenses such as Apache 2.0 and MIT? Even if it were compatible, Legal would still be apprehensive about using it going forward, hence pushing on this issue. If this issue fails to get traction, then we have to request an exemption from Legal or drop this dependency. I also see the ansiterm dependency being used in only one file select.go, so a contribution to replace that might be worth the effort.

jbowes commented 3 years ago

I've merged the fix from @nguyer (thank you!) and released v0.9.0.

Thanks for your patience.