Skip to content
This repository has been archived by the owner on Feb 12, 2019. It is now read-only.

Future of jabberd2 #182

Open
YmrDtnJu opened this issue Jun 23, 2018 · 6 comments
Open

Future of jabberd2 #182

YmrDtnJu opened this issue Jun 23, 2018 · 6 comments

Comments

@YmrDtnJu
Copy link
Contributor

YmrDtnJu commented Jun 23, 2018

I have seen on the mailing list archives, that the current maintainer wants to step down. First, of course, thank you for your work over all these years. Second it may be time to think about jabberd2's future.

As far as I know, jabberd2 is the only XMPP server implementation in C. I think, that makes it worth to at least maintain the code and maybe also improve it. I would be happy to contribute more by fixing bugs and cleaning up the code.

But the most pressing problem with jabberd2 is lack of support for PEP and Message Carbons. PEP is required for OMEMO and Message Carbons allows you to get all messages from others and yourself on all your connected devices. Both are features most users expect today from an instant messaging service. Implementing those is not that easy. Although PEP is a subset of PubSub it is still quite complex. The same is true for Message Carbons.

I would therefore start with cleaning up the code and fixing bugs. I would like to remove some features, to get smaller and maintainable code.

  • First I would like to remove support for Windows. I am not sure if jabberd2 is used on Windows that much and if, with the new Linux Subsystem, it should not be a problem to run jabberd2's Linux based code on Windows.
  • Limit support for other Unix platforms to a set for which there is at lease one maintainer per platform that can give input and file bug reports or even better provide pull requests. I can write ebuilds for Gentoo. It would be nice to have people for other Linux distributions and maybe for FreeBSD too.
  • PBX support. It seems old but still has no support for the STATUS command. Does anyone use it or does anyone know someone who uses it?
  • Cleanup configure.ac and the build system.
  • Find a way to fuse the four daemons router, sm, c2s, s2s into one daemon called xmppd and add support for standard features of daemons like e.g. setuid. Add optional systemd support.
  • Use any easier syntax for the configuration file.

The following topics are non-technical ones.

  • Try to find already existing patches and upstream them. If I interpret the number correctly, there are currently 175 forks on github for jabberd2. Maybe there is some code available that can be commited. Ask those people to provide pull requests. Additionally, check Linux distributions for their patches.
  • What should be done with the website jabber2.org and the mailinglist? I personally would like to use Github as a basis for collaboration. Most people have an account here and Github has quite a log of features, that make it easy to contribute. Maybe people are not happy with Microsoft as new owner of Gitub, but for now I cannot see any problem here. This may change in the future.

Please discuss.

@YmrDtnJu
Copy link
Contributor Author

YmrDtnJu commented Jul 5, 2018

@smokku May I ask, if we can create a new release for jabberd2? I would volunteer to create one.

@smokku
Copy link
Member

smokku commented Jul 5, 2018

Building a release is trivial. I will do it.
(Also, you don't have my PGP key to generate the signatures ;-) )

  • Cleanup configure.ac and the build system.
  • Find a way to fuse the four daemons router, sm, c2s, s2s into one daemon called xmppd and add support for standard features of daemons like e.g. setuid. Add optional systemd support.

You may want to take a look at https://github.com/smokku/jabberd3/tree/master/src

@YmrDtnJu
Copy link
Contributor Author

YmrDtnJu commented Jul 5, 2018

Thank you. I will take a look at the link. I will also create more patches for configure.ac and probably for some things I mentioned in this bug report.

One question is openssl. I would strongly suggest to at least require 1.0.2, but this will require people to use a more recent distribution that Ubuntu 14, which is used in the Travis CI tests.

@smokku
Copy link
Member

smokku commented Jul 5, 2018

Please do.
I have no problem in adding repo write rights to the people submitting consistently good PRs.

And if you live up to your promises, I will gladly transfer the ownership of jabbed2 organization to you. :)

@Neustradamus
Copy link

Any news?

@YmrDtnJu
Copy link
Contributor Author

YmrDtnJu commented Feb 7, 2019

I am sorry, but its too much work. I took another look at the code and I am quite sure, it is a lot more work than I thought. A great part of the code needs to be rewritten. Others need to contribute to keep support for Windows and other Unix-like OS working. I only use Linux. I guess everybody should switch to prosody or other xmpp servers. I guess, it would even be easier to write a new xmpp in c from scratch than to update jabberd2. jabberd2 should clearly be marked as unmaintained and people should be told not to use it anymore.

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

No branches or pull requests

3 participants