Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Omemo-Support to Chatty #3

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

meisterlampe
Copy link

As discussed in #2 I'm opening a pull request for supporting omemo in chatty.

This is still work in progress and I'm with @mariohock who wants to keep chatty simple.
So please feel free to suggest changes that help to hide omemo's complexity.

My first goal was to enable chatty responding to encrypted messages the same way as it does to unencrypted messages. Without any new configuration options.
Afterwards (in another branch/pull request) I would like to have a configuration option, where one can optionally set the keys of allowed contacts. If keys are present, they should be checked, otherwise, the default behaviour is used.

@meisterlampe
Copy link
Author

So what about extracting the class XMPPconnector to an own file as first step? That whould move nearly 200 lines of code out of the main file. Is this done
From that point we could continue refactoring..

@meisterlampe
Copy link
Author

I'll try my best to implemented any suggestion. But it can always take some time, as I'm a bit busy (like everyone is these days :D)

@mariohock
Copy link
Owner

This sounds good. I'll try to merge it later today. But for now, I would like to have it in its own feature-branch (e.g. "omemo") where all the improvements and refactoring can take place.

@meisterlampe
Copy link
Author

Cool.
I also think, this should definitely be an own branch.
I could also try optimize the PR first (but without adding new features), before you merge it. But it would also be ok for me to make other PRs including some refactorings.. as you prefer :)

@mariohock
Copy link
Owner

There is actually one thing left to do before I can merge the pull request: Clearing any copyright issues and adapting the LICENSE file.

I'm using the minimalistic BSD 2-Clause "Simplified" License. It basically allows anything, but it is still important to have a license. Contributers (like you) may keep their copyright, if they use the same license for their pull request. So basically you have to give yourself credit for your work and include the change in the pull request. I would say that the git log should be sufficient to track which code was contributed by which author, so we should just list any contributors in the LICENSE file.

However, there is one thing: You mentioned that your code is based on a Slixmpp example and they use the GPL license. This means that their code can only be used in other GPL software. So we either need their permission (and might also note this in the LICENSE file) or we also have to use the GPL.

I don't want to change the license of Chatty to GPL and any contribution should be BSD licensed. If there is no other option, we could think about a dual license: BSD license for all code written by ourselfs, GPL for the whole OMEMO branch that includes the 3rd party code. But, actually this is kind of ugly and cumbersome.

If you only took a non-substantial part from their examples, this might not be covered by any copyright, but I haven't checked that. Maybe this should be discussed directly with the Slixmpp authors.

Sorry for making this a little complicated, but license stuff have to be done right.

@meisterlampe
Copy link
Author

Hu.. Sorry, I didn't thought about licensing stuff. And you are absolutely right, that this should be respected.
Right now, most of the code is just copied from their example. So this definitely would be GPL.
Dual license is very ugly, I fully agree with that.

We could also just stop at this point and wait.
Maybe the license problems goes away by itself some day:
Here they state, that the underlying library python-omemo is working on switching to MIT.

@meisterlampe
Copy link
Author

meisterlampe commented Mar 16, 2020

python-omemo also list switching to MIT as one of their main goals in their README.md themselfs

@mariohock
Copy link
Owner

We can use GPL temporarily, as long as we make sure we can easily switch back to BSD/MIT anytime (after the omemo license is changed). So we should definitely avoid taking in additional contributions under the GPL; so keep the master on BSD and only the omemo branch under GPL.

@meisterlampe
Copy link
Author

Hm okay.. so I copied their license-file to this branch. Is this ok?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants