Mon, 03 Jun 2024 20:17:06 -0500
IRCv3: Require Ibis 0.1.0 and wire up SASL
Testing Done:
Connected to my local ergo instance and verified it authenticated correctly by looking at the sniffed traffic.
Verified the sasl-login-name account property was set when sasl auth was successful.
Ran the turtles.
Reviewed at https://reviews.imfreedom.org/r/3222/
|
41750
7ab7d79ac0c5
Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | IRCV3_SOURCES = [ |
|
41783
5ea6c18ef7a8
Add the ability to connect to IRCv3
Gary Kramlich <grim@reaperworld.com>
parents:
41774
diff
changeset
|
2 | 'purpleircv3connection.c', |
|
41916
4ee9cb957595
Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents:
41822
diff
changeset
|
3 | 'purpleircv3core.c', |
|
4ee9cb957595
Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents:
41822
diff
changeset
|
4 | 'purpleircv3messagehandlers.c', |
|
4ee9cb957595
Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents:
41822
diff
changeset
|
5 | 'purpleircv3protocol.c', |
|
42320
21cab78fb7d2
IRCv3: Move from ProtocolIM to ProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
42229
diff
changeset
|
6 | 'purpleircv3protocolconversation.c', |
|
41916
4ee9cb957595
Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents:
41822
diff
changeset
|
7 | ] |
|
4ee9cb957595
Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents:
41822
diff
changeset
|
8 | |
|
4ee9cb957595
Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents:
41822
diff
changeset
|
9 | IRCV3_HEADERS = [ |
|
41783
5ea6c18ef7a8
Add the ability to connect to IRCv3
Gary Kramlich <grim@reaperworld.com>
parents:
41774
diff
changeset
|
10 | 'purpleircv3connection.h', |
|
41774
170078e728c0
Implement a parser for ircv3 and add unit tests to it.
Gary Kramlich <grim@reaperworld.com>
parents:
41750
diff
changeset
|
11 | 'purpleircv3core.h', |
|
41796
ebe4ff278b02
Use the parser on ircv3 messages and handle pings
Gary Kramlich <grim@reaperworld.com>
parents:
41783
diff
changeset
|
12 | 'purpleircv3messagehandlers.h', |
|
41750
7ab7d79ac0c5
Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | 'purpleircv3protocol.h', |
|
42320
21cab78fb7d2
IRCv3: Move from ProtocolIM to ProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents:
42229
diff
changeset
|
14 | 'purpleircv3protocolconversation.h', |
|
41750
7ab7d79ac0c5
Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | ] |
|
7ab7d79ac0c5
Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
17 | if not DYNAMIC_IRCV3 |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
18 | subdir_done() |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
19 | endif |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
20 | |
|
42772
4103b1b41a29
IRCv3: Require Ibis 0.1.0 and wire up SASL
Gary Kramlich <grim@reaperworld.com>
parents:
42769
diff
changeset
|
21 | ibis_dep = dependency('ibis', version : '>= 0.1.0') |
|
42769
c488d7af2923
Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents:
42652
diff
changeset
|
22 | |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
23 | ircv3_filebase = f'purple-@purple_major_version@-ircv3' |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
24 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
25 | ircv3_includes = include_directories('.') |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
26 | ircv3_include_base = purple_include_base / 'protocols/ircv3' |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
27 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
28 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
29 | ircv3_resources = gnome.compile_resources('ircv3resource', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
30 | 'resources/ircv3.gresource.xml', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
31 | source_dir : 'resources', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
32 | c_name : 'purple_ircv3') |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
33 | IRCV3_SOURCES += ircv3_resources |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
34 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
35 | ircv3_h_includes = [] |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
36 | foreach header : IRCV3_HEADERS |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
37 | ircv3_h_includes += f'#include <@header@>' |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
38 | endforeach |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
39 | ircv3_h_conf = configuration_data() |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
40 | ircv3_h_conf.set('IRCV3_H_INCLUDES', '\n'.join(ircv3_h_includes)) |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
41 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
42 | ircv3_h = configure_file(input : 'purpleircv3.h.in', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
43 | output : 'purpleircv3.h', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
44 | configuration : ircv3_h_conf, |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
45 | install : true, |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
46 | install_dir : get_option('includedir') / ircv3_include_base) |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
47 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
48 | install_headers(IRCV3_HEADERS, |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
49 | subdir : ircv3_include_base) |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
50 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
51 | ircv3_prpl = shared_library('ircv3', IRCV3_SOURCES + IRCV3_HEADERS + [ircv3_h], |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
52 | c_args : ['-DPURPLE_IRCV3_COMPILATION', '-DG_LOG_USE_STRUCTURED', '-DG_LOG_DOMAIN="Purple-IRCv3"'], |
|
42472
409148c5c5b7
Add symbol visibility on IRCv3 protocol plugin
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42372
diff
changeset
|
53 | gnu_symbol_visibility : 'hidden', |
|
42769
c488d7af2923
Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents:
42652
diff
changeset
|
54 | dependencies : [birb_dep, libpurple_dep, glib, gio, hasl, ibis_dep], |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
55 | install : true, |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
56 | install_dir : PURPLE_PLUGINDIR) |
|
41750
7ab7d79ac0c5
Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
57 | |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
58 | ircv3_dep = declare_dependency( |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
59 | sources : [IRCV3_SOURCES, IRCV3_HEADERS], |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
60 | include_directories : ircv3_includes, |
|
42769
c488d7af2923
Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents:
42652
diff
changeset
|
61 | dependencies : [birb_dep, libpurple_dep, glib, gio, hasl, ibis_dep]) |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
62 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
63 | pkgconfig.generate( |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
64 | # we purposely don't put the library here because you should not be |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
65 | # linking to the plugin, everything will be resolved during runtime. |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
66 | name : 'ircv3', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
67 | description : 'a purple3 protocol plugin for IRCv3', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
68 | version : meson.project_version(), |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
69 | subdirs : [ircv3_include_base], |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
70 | filebase : ircv3_filebase, |
|
42489
0edea2beaa95
Use libraries when generating pkgconfig files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42472
diff
changeset
|
71 | libraries : [gio, glib, hasl, libpurple]) |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
72 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
73 | meson.override_dependency(ircv3_filebase, ircv3_dep) |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
74 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
75 | devenv.append('PURPLE_PLUGIN_PATH', meson.current_build_dir()) |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
76 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
77 | if get_option('introspection') |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
78 | GPLUGIN_INTROSPECTION = dependency('gplugin-introspection') |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
79 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
80 | plugin_filename = ircv3_prpl.full_path() |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
81 | |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
82 | ircv3_introspection_stub = executable('ircv3generategir', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
83 | sources : 'ircv3generategir.c', |
|
42533
c4ea929fde6f
Remove unused winsock linkage
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42530
diff
changeset
|
84 | dependencies : [ircv3_dep, libpurple_dep, glib, gio, hasl, GPLUGIN_INTROSPECTION], |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
85 | c_args : ['-DPURPLE_IRCV3_COMPILATION', f'-DPLUGIN_FILENAME="@plugin_filename@"'], |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
86 | install : false) |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
87 | |
|
42372
ba3a49903905
Remove unused Meson variables
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42336
diff
changeset
|
88 | gnome.generate_gir( |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
89 | ircv3_introspection_stub, |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
90 | sources : [IRCV3_SOURCES, IRCV3_HEADERS], |
|
42769
c488d7af2923
Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents:
42652
diff
changeset
|
91 | includes : ['Birb-1.0', 'GLib-2.0', 'GObject-2.0', 'GPlugin-1.0', 'Ibis-1.0', libpurple_gir[0]], |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
92 | namespace : 'PurpleIRCv3', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
93 | symbol_prefix : 'purple_ircv3', |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
94 | nsversion : '1.0', |
|
41941
355bd17297f0
Set the C standard to C99 and set warning_level to 2 for the IRCv3 Protocol Plugin
Gary Kramlich <grim@reaperworld.com>
parents:
41916
diff
changeset
|
95 | install : true, |
|
42769
c488d7af2923
Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents:
42652
diff
changeset
|
96 | dependencies: [birb_dep, gplugin_dep, ibis_dep], |
|
42229
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
97 | export_packages : ['ircv3'], |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
98 | extra_args : ['-DPURPLE_IRCV3_COMPILATION', '--verbose']) |
|
605f8cba9704
Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents:
42081
diff
changeset
|
99 | endif |