changelog
- Sat, 09 Aug 2025 18:21:54 -0500
- by Gong Zhile <gongzl@stu.hebust.edu.cn> [Sat, 09 Aug 2025 18:21:54 -0500] rev 43308
- Add builtin library dependency for introspection
Without specifying, gir defaults to the system pidgin/purple libraries by default,
which fails the build when new symbols were added and gir failed to link for them.
The failed build log before patch:
```
FAILED: pidgin/Pidgin-3.0.gir
...
/usr/bin/ld: /usr/local/lib/x86_64-linux-gnu/libpidgin3.so: undefined reference to `purple_image_get_filename'
collect2: error: ld returned 1 exit status
linking of temporary binary failed: Command '['ccache', 'cc', '-o', '/home/goodspeed/Development/pidgin/build/tmp-introspectineovzv0/Pidgin-3.0', '/home/goodspeed/Development/pidgin/build/tmp-introspectineovzv0/Pidgin-3.0.o', '-L.', '-Wl,-rpath,.', '-Wl,--no-as-needed', '-L/home/goodspeed/Development/pidgin/build/libpurple', '-Wl,-rpath,/home/goodspeed/Development/pidgin/build/libpurple', '-L/usr/local/lib/x86_64-linux-gnu', '-Wl,-rpath,/usr/local/lib/x86_64-linux-gnu', '-L/home/goodspeed/Development/pidgin/build/pidgin', '-Wl,-rpath,/home/goodspeed/Development/pidgin/build/pidgin', '-L/home/goodspeed/Development/pidgin/build/libpurple', '-Wl,-rpath,/home/goodspeed/Development/pidgin/build/libpurple', '-L/usr/local/lib/x86_64-linux-gnu', '-Wl,-rpath,/usr/local/lib/x86_64-linux-gnu', '-L/usr/local/lib/x86_64-linux-gnu', '-Wl,-rpath,/usr/local/lib/x86_64-linux-gnu', '-lpidgin3', '-lpurple3', '-lglib-2.0', '-lgplugin-gtk4', '-lgplugin', '-lgmodule-2.0', '-lgtk-4', '-lpangocairo-1.0', '-lpango-1.0', '-lharfbuzz', '-lgdk_pixbuf-2.0', '-lcairo-gobject', '-lcairo', '-lvulkan', '-lgraphene-1.0', '-lgio-2.0', '-lgobject-2.0', '-lgtksourceview-5', '-ljson-glib-1.0', '-ladwaita-1', '-lspelling-1', '-lm', '-lbirb', '-lgstreamer-1.0', '-lsoup-3.0', '-lxml2', '-lgstapp-1.0', '-lgstbase-1.0', '-lseagull', '-lsqlite3', '-lgirepository-1.0', '-lgio-2.0', '-lgobject-2.0', '-Wl,--export-dynamic', '-lgmodule-2.0', '-pthread', '-lglib-2.0', '-lglib-2.0']' returned non-zero exit status 1.
ninja: build stopped: subcommand failed.
```
Testing Done:
Succeed building pidgin with an out-of-date pidgin installed on system. Introspection no longer uses the system library and links fine now.
Reviewed at https://reviews.imfreedom.org/r/4098/
- Sat, 09 Aug 2025 18:15:57 -0500
- by Gary Kramlich <grim@reaperworld.com> [Sat, 09 Aug 2025 18:15:57 -0500] rev 43307
- Mark messages sent in the demo protocol as delivered
Testing Done:
Sent some messages with the demo protocol plugin and didn't see any errors.
Reviewed at https://reviews.imfreedom.org/r/4094/
- Sat, 09 Aug 2025 18:12:12 -0500
- by Gong Zhile <gongzl@stu.hebust.edu.cn> [Sat, 09 Aug 2025 18:12:12 -0500] rev 43306
- Fix the birb header path
The birb header referred would only work with birb provided by wrap casuing
build to fail because of system-installed birb dependency. The commit points
it to the correct path <birb.h>.
See: https://keep.imfreedom.org/birb/birb/file/5bf00c7d7f80/birb/meson.build#l77
Testing Done:
Succeed in both compiling with wrap birb and the system birb.
Reviewed at https://reviews.imfreedom.org/r/4097/
- Sat, 09 Aug 2025 18:12:31 +0800
- by Gong Zhile <gongzl@stu.hebust.edu.cn> [Sat, 09 Aug 2025 18:12:31 +0800] rev 43305
- Add builtin library dependency for introspection
Without specifying, gir defaults to the system pidgin/purple libraries by default,
which fails the build when new symbols were added and gir failed to link for them.
- Sat, 09 Aug 2025 17:37:27 +0800
- by Gong Zhile <gongzl@stu.hebust.edu.cn> [Sat, 09 Aug 2025 17:37:27 +0800] rev 43304
- Fix the birb header path
The birb header referred would only work with birb provided by wrap casuing
build to fail because of system-installed birb dependency. The commit points
it to the correct path <birb.h>.
See: https://keep.imfreedom.org/birb/birb/file/5bf00c7d7f80/birb/meson.build#l77
- Sat, 09 Aug 2025 02:43:31 -0500
- by Gary Kramlich <grim@reaperworld.com> [Sat, 09 Aug 2025 02:43:31 -0500] rev 43303
- Fix some broken logic in Purple.Conversation.send_message_async
The callback was doing some nonsense trying to give the user an error if
Purple.ProtocolConversation.send_message_async returned false without setting
error. This was then clearing the error using g_clear_error even if error was
set, but G.Task.return_error takes ownership of the error which is what lead
to the crash.
This wasn't caught by the unit tests because we don't have a test for
purple_conversation_send_message_async and
purple_conversation_send_message_finish. We should add one at some point as we
also weren't exposing purple_conversation_send_message_finish which I
discovered while debugging this.
Anyways, we should implement a unit test for this but it needs a protocol
as well and I didn't want to bother with this right now as the fix is more
important.
Testing Done:
Modified the demo protocol to return errors and verified the crash was gone. Reverted that and verified that sending messages worked.
Also called in the turtles.
Reviewed at https://reviews.imfreedom.org/r/4095/
- Thu, 07 Aug 2025 21:40:13 -0500
- by Gary Kramlich <grim@reaperworld.com> [Thu, 07 Aug 2025 21:40:13 -0500] rev 43302
- Add an avatar-for-display property to Purple.ContactInfo
Testing Done:
Ran the tests under valgrind and called in the turtles.
Reviewed at https://reviews.imfreedom.org/r/4086/
- Thu, 07 Aug 2025 21:34:33 -0500
- by Gary Kramlich <grim@reaperworld.com> [Thu, 07 Aug 2025 21:34:33 -0500] rev 43301
- Replace Purple.Avatar with Purple.Image
Purple.Avatar was unnecessary and this just moves everything to Purple.Image
which should work just fine.
Testing Done:
Loaded a demo account and verified that the avatars were shown in the contact list properly. Also called in the turtles.
Reviewed at https://reviews.imfreedom.org/r/4084/
- Thu, 07 Aug 2025 21:32:18 -0500
- by Gary Kramlich <grim@reaperworld.com> [Thu, 07 Aug 2025 21:32:18 -0500] rev 43300
- Clean up and modernize PurpleImage
Testing Done:
Ran the tests under valgrind and called in the turtles.
Reviewed at https://reviews.imfreedom.org/r/4074/
- Thu, 31 Jul 2025 20:57:19 -0500
- by Gary Kramlich <grim@reaperworld.com> [Thu, 31 Jul 2025 20:57:19 -0500] rev 43299
- Remove Purple.CircularBuffer
This was primarily used for file transfer, which should be using GIOStreams
instead.
Testing Done:
Called in the turtles.
Reviewed at https://reviews.imfreedom.org/r/4083/