File: 0001-Use-libomemo.patch

package info (click to toggle)
profanity 0.16.0-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 5,204 kB
  • sloc: ansic: 78,705; makefile: 543; python: 212; sh: 179
file content (163 lines) | stat: -rw-r--r-- 4,234 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
From: Martin Dosch <martin@mdosch.de>
Date: Sat, 21 Mar 2026 12:58:27 +0100
Subject: Use libomemo.

---
 meson.build        | 14 ++++++++++----
 meson_options.txt  |  7 +++++++
 src/omemo/crypto.c |  5 +++++
 src/omemo/crypto.h |  5 +++++
 src/omemo/omemo.c  |  9 +++++++++
 src/omemo/store.c  |  3 +--
 src/omemo/store.h  |  4 ++++
 7 files changed, 41 insertions(+), 6 deletions(-)

diff --git a/meson.build b/meson.build
index 42dda2e..199ffdf 100644
--- a/meson.build
+++ b/meson.build
@@ -145,7 +145,7 @@ dl_dep = disabler()
 gpgme_dep = disabler()
 libotr_dep = disabler()
 gdk_pixbuf_dep = disabler()
-libsignal_dep = disabler()
+omemo_dep = disabler()
 gcrypt_dep = disabler()
 qrencode_dep = disabler()
 
@@ -235,7 +235,13 @@ endif
 
 # OMEMO support
 if get_option('omemo').enabled()
-  libsignal_dep = dependency('libsignal-protocol-c', version: '>= 2.3.2', required: true)
+  omemo_backend = get_option('omemo-backend')
+  if omemo_backend == 'libsignal'
+    omemo_dep = dependency('libsignal-protocol-c', version: '>= 2.3.2', required: true)
+  elif omemo_backend == 'libomemo-c'
+    omemo_dep = dependency('libomemo-c', version: '>= 0.5.1', required: true)
+    conf_data.set('HAVE_LIBOMEMO_C', 1)
+  endif
   gcrypt_dep = dependency('libgcrypt', version: '>= 1.7.0', required: true)
   build_omemo = true
   conf_data.set('HAVE_OMEMO', 1)
@@ -321,8 +327,8 @@ if gdk_pixbuf_dep.found()
   profanity_deps += gdk_pixbuf_dep
 endif
 
-if libsignal_dep.found()
-  profanity_deps += libsignal_dep
+if omemo_dep.found()
+  profanity_deps += omemo_dep
 endif
 
 if gcrypt_dep.found()
diff --git a/meson_options.txt b/meson_options.txt
index 11ba0d2..363c636 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -35,6 +35,13 @@ option('omemo',
   description: 'Enable OMEMO encryption'
 )
 
+option('omemo-backend',
+  type: 'combo',
+  choices: ['libsignal', 'libomemo-c'],
+  value: 'libsignal',
+  description: 'Select OMEMO backend library'
+)
+
 option('xscreensaver',
   type: 'feature',
   value: 'disabled',
diff --git a/src/omemo/crypto.c b/src/omemo/crypto.c
index f63f340..f2b8516 100644
--- a/src/omemo/crypto.c
+++ b/src/omemo/crypto.c
@@ -35,8 +35,13 @@
 #include "config.h"
 
 #include <assert.h>
+#ifdef HAVE_LIBOMEMO_C
+#include <omemo/signal_protocol.h>
+#include <omemo/signal_protocol_types.h>
+#else
 #include <signal/signal_protocol.h>
 #include <signal/signal_protocol_types.h>
+#endif
 
 #include "log.h"
 #include "omemo/omemo.h"
diff --git a/src/omemo/crypto.h b/src/omemo/crypto.h
index 4d51099..3a53a02 100644
--- a/src/omemo/crypto.h
+++ b/src/omemo/crypto.h
@@ -34,9 +34,14 @@
  */
 #include <stdio.h>
 #include <stdbool.h>
+#ifdef HAVE_LIBOMEMO_C
+#include <omemo/signal_protocol_types.h>
+#else
 #include <signal/signal_protocol_types.h>
+#endif
 #include <gcrypt.h>
 
+
 #define AES128_GCM_KEY_LENGTH 16
 #define AES128_GCM_IV_LENGTH  12
 #define AES128_GCM_TAG_LENGTH 16
diff --git a/src/omemo/omemo.c b/src/omemo/omemo.c
index 7e8b3a9..0a6a1cb 100644
--- a/src/omemo/omemo.c
+++ b/src/omemo/omemo.c
@@ -42,11 +42,20 @@
 #include <errno.h>
 #include <glib.h>
 #include <pthread.h>
+
+#ifdef HAVE_LIBOMEMO_C
+#include <omemo/key_helper.h>
+#include <omemo/protocol.h>
+#include <omemo/signal_protocol.h>
+#include <omemo/session_builder.h>
+#include <omemo/session_cipher.h>
+#else
 #include <signal/key_helper.h>
 #include <signal/protocol.h>
 #include <signal/signal_protocol.h>
 #include <signal/session_builder.h>
 #include <signal/session_cipher.h>
+#endif
 
 #include "config/account.h"
 #include "config/files.h"
diff --git a/src/omemo/store.c b/src/omemo/store.c
index fd085a5..465e9d5 100644
--- a/src/omemo/store.c
+++ b/src/omemo/store.c
@@ -33,8 +33,7 @@
  *
  */
 #include <glib.h>
-#include <signal/signal_protocol.h>
-
+#include <omemo/signal_protocol.h>
 #include "config.h"
 #include "log.h"
 #include "omemo/omemo.h"
diff --git a/src/omemo/store.h b/src/omemo/store.h
index 742ac2a..710762c 100644
--- a/src/omemo/store.h
+++ b/src/omemo/store.h
@@ -32,7 +32,11 @@
  * source files in the program, then also delete it here.
  *
  */
+#ifdef HAVE_LIBOMEMO_C
+#include <omemo/signal_protocol.h>
+#else
 #include <signal/signal_protocol.h>
+#endif
 
 #include "config.h"