changelog
- Thu, 06 Oct 2022 22:46:38 -0500
- by Gary Kramlich <grim@reaperworld.com> [Thu, 06 Oct 2022 22:46:38 -0500] rev 41788
- Use the preprocess attribute in gresource xml files to minimize and validate xml and json
Testing Done:
Compiled, also forced some failures in the XML and JSON to verify that they now cause build failures.
Reviewed at https://reviews.imfreedom.org/r/1901/
- Thu, 06 Oct 2022 22:45:43 -0500
- by Gary Kramlich <grim@reaperworld.com> [Thu, 06 Oct 2022 22:45:43 -0500] rev 41787
- Fix the ircv3 protocol id
Testing Done:
Compiled
Reviewed at https://reviews.imfreedom.org/r/1900/
- Wed, 05 Oct 2022 22:05:17 -0500
- by Gary Kramlich <grim@reaperworld.com> [Wed, 05 Oct 2022 22:05:17 -0500] rev 41786
- Work around a timing issues with accounts that have no passwords.
There will be a better fix for this, but it's going to be a bit involved. The
problem stems from `purple_account_set_enabled` which is bringing the account
online as soon as that is set. At startup, the accounts are unserialized from
accounts.xml, which sets the enabled property, which causes the account to
connect before the rest of the core is started.
Testing Done:
Started pidgin3 with an account that fails to connect 100% of the time and verified nothing crashed.
Reviewed at https://reviews.imfreedom.org/r/1896/
- Wed, 05 Oct 2022 22:04:08 -0500
- by Gary Kramlich <grim@reaperworld.com> [Wed, 05 Oct 2022 22:04:08 -0500] rev 41785
- Use purple_debug_info on unknown irc messages
Previously, this was using purple_debug_error which maps to g_critical and makes
it annoying to run with G_DEBUG=fatal-warnings when connecting an IRC account.
Testing Done:
ran via `G_DEBUG=fatal-warnings gdb pidgin3` from a devenv and verified `pidgin3` didn't get paused when connecting to libera when it got `PRIVMSG`'s to `*` which was triggering the previous pause in `gdb`.
Reviewed at https://reviews.imfreedom.org/r/1895/
- Wed, 05 Oct 2022 02:15:13 -0500
- by Elliott Sales de Andrade <quantum.analyst@gmail.com> [Wed, 05 Oct 2022 02:15:13 -0500] rev 41784
- Remove support for XEP 0115 Legacy Format
This was made legacy in v1.5, which was released in 2008, so I think it's time to remove support for the older format. We ourselves do not send it either.
Moving to 1.5-only means the `hash` attribute is now mandatory, and we ignore `ext`, so a whole bunch of code to track the latter can be deleted. Since there are no longer multiple requests made to determine capabilities, there is no longer any need to ref-count callback data.
Testing Done:
In my existing `xmpp-caps.xml`, there are 1176 clients, of which 912 are announcing 53 unique ext identifiers.
There are 6 that do so without a `hash` (meaning older than 1.5) and without an identity (xpath: `'/*/client[not(@hash) and ext and not(identity)]'`), and are either Google Talk, or Pidgin/Telepathy advertising Google Talk features.
For the ones that don't have a `hash` (again, meaning older than 1.5) and _with_ an identity:
* The Google Talk/Chat/mail/whatever identifiers (`camera-v1`, `location-v1`, `phone-v1`, `pmuc-v1`, `share-v1`, `sidebar`, `sms-v1`, `vavinvite-v1`, `video-v1`, `voice-v1`) can be ignored now.
* The iChat identifiers (`audio`, `auxvideo`, `avavail`, `avcap`, `ice`, `maudio`, `mvideo`, `rdclient`, `rdmuxing`, `rdserver`, `recauth`, `video`) can also be ignored now.
* We don't support the Miranda extension `mir_notes` anyway.
* `activity` and `mood` are advertised by Miranda older than 0.95.3.11706 which is from 2015, but they are for XEP-0107 and XEP-0108 and should be found the normal way.
* `adiumcmd` is advertised by older Pidgin to be `http://jabber.org/protocol/commands`, but we definitely advertise that the new way now, and there's no need to be compatible with Adium.
* `avatar`, `avatardata`, `avatarmeta`, `bob`, `buzz`, `ibb`, `mood`, `moodn`, `smileys`, `tune`, `tunen`, are all advertised by old Pidgin; didn't bother looking for the XEPs because we no longer advertise this way anyway. And by 'old Pidgin', I mean `2.6.0devel`, aka pre-2009, (and some random `3.0.2gobject-devel` version).
* `cmds` is advertised by QIP Infium <9045, but there's been QIP 2010 and 2012 since then. I don't have any caps from the latter, but they're ~8-11 years old.
* `ca`, `cs`, `cv`, `ep-notify`, `ep-notify-2` `e-time`, `html`, `last-act` `mr`, `nick`, `nickn`, `sxe`, `whiteboard` are advertised by Psi+ < 0.16, which seems ancient as they merged back into Psi in 2017, and I'm seeing Psi+ with hashes so it's doing it the new way now.
* `cstates` is advertised by Gajim 0.11.4 (14 years ago according to their GitLab), but current versions use the new method.
* `jingle-audio` and `jingle-video` are advertised by Telepathy, but at the same time they advertise the new way.
Reviewed at https://reviews.imfreedom.org/r/1881/
- Wed, 05 Oct 2022 02:13:21 -0500
- by Gary Kramlich <grim@reaperworld.com> [Wed, 05 Oct 2022 02:13:21 -0500] rev 41783
- Add the ability to connect to IRCv3
This does't login or do anything protocol wise, it is only establishing a TCP
connection.
Testing Done:
Connected to a local ergo instance over a plaintext connection and verified I saw the `Successfully connected` message in my output.
Reviewed at https://reviews.imfreedom.org/r/1880/
- Wed, 05 Oct 2022 00:50:12 -0500
- by Elliott Sales de Andrade <quantum.analyst@gmail.com> [Wed, 05 Oct 2022 00:50:12 -0500] rev 41782
- Merge purple_status_set_active_with_attrs{,_dict}
Its docs say it should only be called by the account, conversation, and buddy
APIs, and all of those use the `_dict` version, so the other can be dropped,
and we might as well rename it at the same time.
Testing Done:
Compiled and opened demo account, which indirectly call this through buddy statuses.
Reviewed at https://reviews.imfreedom.org/r/1861/
- Wed, 05 Oct 2022 00:29:30 -0500
- by Elliott Sales de Andrade <quantum.analyst@gmail.com> [Wed, 05 Oct 2022 00:29:30 -0500] rev 41781
- Add introspectable versions of purple_protocol_got_{account,user}_status
Also a bit of minor cleanup to those docs.
Testing Done:
Compiled, and launched with demo protocol, which calls `purple_protocol_got_user_status` and buddies had status messages.
Nothing appears to call `purple_protocol_got_account_status` to test.
Reviewed at https://reviews.imfreedom.org/r/1860/
- Tue, 04 Oct 2022 02:33:44 -0500
- by Elliott Sales de Andrade <quantum.analyst@gmail.com> [Tue, 04 Oct 2022 02:33:44 -0500] rev 41780
- Remove extra focus targets from Account Editor
We only want the row's activatable widgets to get focus, not the rows themselves.
Testing Done:
Opened new Account, selected XMPP with the keyboard, and focus went directly to the Username entry, instead of the row around it. Similarly, switching proxy on focused the Hostname entry directly instead of the row it's in.
Tabbing from the Username then continued down the entries only, the "Require password" switch, the "Use custom avatar" switch (and the image/remove buttons if I toggled that on), the activatable widgets in the Advanced Options (if enabled), and similar for the Proxy fields.
Reviewed at https://reviews.imfreedom.org/r/1889/
- Tue, 04 Oct 2022 02:25:35 -0500
- by Elliott Sales de Andrade <quantum.analyst@gmail.com> [Tue, 04 Oct 2022 02:25:35 -0500] rev 41779
- Fix warnings when adding new account
Testing Done:
Opened the Add Account dialog and didn't see warnings.
Reviewed at https://reviews.imfreedom.org/r/1888/