Allow new gnutls and gsasl
sha1 from gnutls now

The one in gsasl was deprecated and then removed
No more monads-tf
635de446 — Vekhir 5 months ago
GHC 9.6 support

Hey there,

I'm working on updating the Arch packages to build with GHC 9.6, and 'network-protocol-xmpp' is one of them.
Alas, it is not possible to build it because the dependency 'gnutls' doesn't build with GHC 9.6 and is seemingly unmaintained.

This particular issue seems to only affect `lib/Network/Protocol/XMPP/Handle.hs`.

That rewrite apart, I can of course manually patch the issue myself, so I can build 'network-protocol-xmpp'. This unveiled several
errors in various files with regards to 'Control.Monad.Error' which was replaced with 'Control.Monad.Except'.

The attached patch makes 'network-protocol-xmpp' compatible with GHC 9.6. Please make a new release once you've applied it.

Update to work with network 3.0
Call TLS.getBytes again on EAGAIN

Since that's what the manpage says to do, and without it we sometimes
end up crashing when calling again would have worked.
Purge OverloadedStrings
Not compatible with 3.0 network package
Fix some whitespace
Don't need typable for exceptions anymore
Add Internal module
A message with no "type" is of type "normal"
Less warnings, use Haskell2010
Workaround for stream-xmlns issue

From my notes:

I discovered that it expects "{jabber:component:accept}jid" instead of
"{jabber:component:accept}id" for the stream id, which is against the spec.
Additionally, if the server sets the default xmlns to jabber:component:accept
it seems that the id attribute is parsed as having no xmlns and so does not
get found.