fortra / impacket

Impacket is a collection of Python classes for working with network protocols.
https://www.coresecurity.com
Other
13.49k stars 3.57k forks source link

Regarding packaging of examples #1635

Open stefan6419846 opened 1 year ago

stefan6419846 commented 1 year ago

I just had a look at this package and observed that it apparently ships with all of its examples and requires their dependencies as well, although the base library does not really require them. In my opinion, this is unnecessary and we should rather consider to use extras_require for anyone only using the library functionality, but not the examples.

The root cause for digging into this has been the package dsinternals, which is subject to the terms of the GPL-2.0-only license, while impacket uses the Apache-1.1 license in a modified version. According to the FSF, the Apache-1.1 license is incompatible to the GPL license family: https://www.gnu.org/licenses/license-list.html.en#apache1.1

IANAL, but this basically means that anyone who tries to ensure license compliance might run into trouble resolving this and will have to generate a modified distribution which resolves this incompatibilities.

anadrianmanrique commented 1 year ago

Thanks for the feedback. I created a new issue regarding dsinternal dependency. Regarding the packaging of the project, we are aware of the necessity of having examples (maybe) in a separate package ( with its own dependencies ). This is a nice example that pushes moving forward with this discussion.

p0dalirius commented 5 months ago

Hey,

I am the creator of pydsinternal used in some scripts.


Regarding the issue:

we should rather consider to use extras_require for anyone only using the library functionality, but not the examples.

==> I fully agree with this


Regarding the fix:

Since the code of pydsinternal has been reimplemented in impacket, without attribution, to bypass licence issues, just so you know, I will not maintain this code in impacket if I modify pydsinternals

Best regards,