Skip to content

Commit d99db45

Browse files
committed
Release 0.17.0
Signed-off-by: Michael Vetter <jubalh@iodoru.org>
1 parent 24f7d16 commit d99db45

112 files changed

Lines changed: 6433 additions & 5 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,216 @@
1+
0.17.0 (2026-03-26)
2+
===================
3+
4+
Special thanks to our sponsor Matthew Fennell!
5+
6+
3 people contributed to this release: @botantony, @sjaeckel and @jubalh.
7+
8+
The last release (0.16.0) was the first that could be compiled with the Meson build system.
9+
It provided a tarball for autotools and a separate one for meson. The autotools tarball was done
10+
so that distributions don't need dependencies on automake, autoconf and libtool.
11+
12+
Several distributions are dropping vendor tarballs and use git checkouts or autogenerated tarballs nowadays.
13+
Meaning they need to run the above mentioned tools in the case of the autotools build anyways.
14+
15+
So this release will only be shipped with tarballs generated with meson. Profanity can still be compiled with both autotools or meson for easier adjustments. Autotols users just need to generate configure first. The next release will only use Meson. So we enourage everybody to build with Meson arleady and report any bugs they encounter.
16+
17+
We finally reenabled functional tests (along with our existing unit tests) again!
18+
It would be appreciated if we could find people who want to help us expand the unit and functional tests so we are less likely to introduce regressions when we rewrite existing code.
19+
20+
Features:
21+
- Add OMEMO trust status indicators to the titlebar (#2104)
22+
- Add command autocompletion for /stamp (#2126)
23+
- Add jid_is_valid_user_jid() to check for valid user JIDs (#2102)
24+
- Add unified quality-check script and git hook support (#2099)
25+
- Display incoming reports (XEP-0377) (#2117)
26+
- Handle and allow JIDs with trailing slashes (#2102)
27+
- Implement color coded status messages for file transfers (#2131)
28+
- Implement dynamic pad resizing (#2122)
29+
- Improve XEP-0377 support with report-origin and third-party elements (#2117)
30+
- Improve feedback during OMEMO session Initiation (#2104)
31+
- Improve validation of JIDs (#2102)
32+
- Notify users when new OMEMO devices or fingerprints are discovered (#2104)
33+
- Only request receipts when supported (#2101)
34+
- Provide descriptive fallback messages for OMEMO decryption failures (#2104)
35+
- Provide detailed encryption failure messages for OMEMO (#2104)
36+
- Sanitize illegal XML characters from outgoing messages (#2116)
37+
- Show active and trust status in /omemo fingerprint (#2104)
38+
- Support UTF-8 characters in autocompletion (#2115)
39+
- Suppress "new device" alerts for already known devices (#2113)
40+
- Suppress redundant `session already exists` messages (#2113)
41+
- Suppress repetitive missing device ID warnings (#2113)
42+
- Introduce `prof_date_time_format_iso8601()`. (#2112)
43+
- Optimize random data generation. (#2109)
44+
45+
Bug Fixes:
46+
- Allow adding own JID to roster (#2127)
47+
- Check for necessary pointers in omemo_receive_message
48+
- Correct handling of create_fulljid without resource (#2102)
49+
- Database return NULL if no history limits are found (#2102)
50+
- Define `prefs_changes_print` outside of `prefs_changes` (#2090)
51+
- Dont OMEMO trust check so often (#2108)
52+
- Fix -Wanalyzer-deref-before-check warning in cmd_ac_complete (#2095)
53+
- Fix Floating Point Exception in OMEMO session building (#2096)
54+
- Fix NULL dereference and memory leak in _mam_rsm_id_handler (#2094)
55+
- Fix NULL dereference and memory leaks in OX logic (#2094)
56+
- Fix api_get_current_occupants() memory problems (#2094)
57+
- Fix custom outgoing stamp and fix stamp command help (#2126)
58+
- Fix file autocompletion bugs and restore cycling (#2100)
59+
- Fix memory leak and potential crash in iq_id_handler_add (#2094)
60+
- Fix not saving first created account (#2107)
61+
- Fix rare memleak (#2123)
62+
- Fix redundant error reporting in http download (#2094)
63+
- Fix usage error in /time command (#2101)
64+
- Handle potential NULL from malloc in OMEMO fingerprint decoding (#2094)
65+
- Ignore self-presence for untracked MUC rooms (#2097)
66+
- Improve status reporting and filename handling for /url save (#2131)
67+
- Incorrect omemo decryption error for Key Transport Messages (#2130)
68+
- Increase max arguments for /connect to 9 (#2101)
69+
- Initialize OMEMO pointers and add NULL checks (#2094)
70+
- Missing plugins_post_chat_message_display calls (#2118)
71+
- Only allow /msg with valid JIDs (#2102)
72+
- Sanitize account names (#2105)
73+
- Segfault when using /command help (#2094)
74+
- Use <body> tag for spam reporting (XEP-0377) (#2117)
75+
- Fix -Wanalyzer-deref-before-check warning in get_message_from_editor (#2095)
76+
- Fix potential double free. (#2112)
77+
- Fix potential segfault. (#2109)
78+
- Flush OMEMO store only after encrypting for all recipients. (#2109)
79+
- Check connection state before accepting command. (#2124)
80+
81+
Documentation:
82+
- Add Conventional Commit Structure
83+
- Add a section explaining how to write functional tests (#2101)
84+
- Add information about footers in git commit messages
85+
- Add note about sanitizers overhead (#2101)
86+
- Add section explaining how to run functional tests (#2101)
87+
- Expand the build section in CONTRIBUTING.md (#2099)
88+
- Explain how to turn clang-format of for some blocks of code (#2099)
89+
- Explain how to write unit tests (#2099)
90+
- Improve help for /blocked (#2117)
91+
- Mention generated html pages in release guide
92+
- Sort entries in theme_template
93+
- Update implemented XEPs
94+
- Update theme_template with missing options
95+
96+
Cleanup:
97+
- Adapt loop counter to proper type (#2089)
98+
- Adapt type and cast to get ride of warnings (#2089)
99+
- Add a defensive check in cmd_process_input() (#2094)
100+
- Be a bit more defensive in (#2094)
101+
- Be a bit more defensive in server_events.c (#2094)
102+
- Cast device ids in omemo.c (#2089)
103+
- Cast g_hash_table_lookup return to function pointer (#2089)
104+
- Cast to get rid of warnings (#2089)
105+
- Check for strdup() success in stanza_create_http_upload_request() (#2094)
106+
- Cleanup log modul (#2094)
107+
- Cleanup types (#2104)
108+
- Correct comparison in cons_show_wins() (#2089)
109+
- Fix cast function type warnings in pgp.c (#2089)
110+
- Fix potential NULL dereference and leaks in cmd_sendfile (#2094)
111+
- Fix potential NULL dereference in cmd_omemo_(un)trust (#2094)
112+
- Fix potential null pointer dereference (#2094)
113+
- Fix uninitialized field in color_distance() (#2089)
114+
- Initialize GOptionEntry entries correctly (#2089)
115+
- Initialize optional fields in profModule (#2089)
116+
- Initialize waittime to 0 (#2094)
117+
- Make _connection_handler() safer (#2094)
118+
- Make muc_nick() return const char* (#2089)
119+
- Map test files according to structure in src (#2099)
120+
- Move loop var from int to size_t in cmd_funcs.c (#2089)
121+
- Move loop var from int to size_t in omemo.c (#2089)
122+
- Move more functions from int to guint in statusbar.c (#2089)
123+
- Move some variables from int to guint in statusbar.c (#2089)
124+
- Refactor account_eval_password to use glib (#2094)
125+
- Use auto_FILE and handle fopen failure in command_docgen (#2094)
126+
- Use g_malloc and auto_gchar in _win_print_wrapped (#2094)
127+
- Use g_new() instead of malloc in prof_add_shutdown_routine() (#2094)
128+
- Use g_new0 and g_strdup for alias allocation (#2094)
129+
- Use g_new0 instead of malloc in buffer_get_entry_by_id() (#2094)
130+
- Wrap release handler in iq.c (#2089)
131+
- The buffer API should use `unsigned` types. (#2112)
132+
133+
Tests:
134+
- Add prof_send_raw (#2115)
135+
- Add test for get_expanded_path() (#2093)
136+
- Add test for get_mentions() (#2093)
137+
- Add test for release_is_new() (#2093)
138+
- Add test for string_to_verbosity() (#2093)
139+
- Add test for tab autocompletion of /msg (#2115)
140+
- Add test for valid_tls_policy_option() (#2093)
141+
- Add tests for string_matches_one_of() (#2093)
142+
- Add tests for strtoi_range() (#2093)
143+
- Apply coding style to unit tests (#2099)
144+
- Check for binary before starting functional tests
145+
- Don't build functional test with analyzer and increase timeouts (#2101)
146+
- Fix functional presence tests (#2101)
147+
- Fix functional test connect_shows_presence_updates (#2101)
148+
- Fix functional test message_receive_chatwin (#2101)
149+
- Fix functional test message_send (#2101)
150+
- Fix functional test ping_jid (#2101)
151+
- Fix functional test ping_responds_to_server_request (#2101)
152+
- Fix functional test receive_carbon (#2101)
153+
- Fix functional test resets_to_barejid_after_presence_received (#2101)
154+
- Fix functional test rooms_query (#2101)
155+
- Fix functional test send_receipt_on_request (#2101)
156+
- Fix functional test sends_room_join (#2101)
157+
- Fix functional test test_ping (#2101)
158+
- Fix passing of special characters to prof_expect() (#2101)
159+
- Improve autocomplete unit tests (#2093)
160+
- Reenable functional tests (#2101)
161+
- Remove apparently unused code (#2101)
162+
- Standardize naming convention (#2099)
163+
- Try two places for profanity binary (#2101)
164+
- Update unit tests (#2094)
165+
166+
Build System:
167+
- Add --enable-functional-tests switch (#2123)
168+
- Add -Wpointer-arith flag (#2095)
169+
- Add -fstack-protector-strong compiler flag (#2094)
170+
- Add .gitattributes to exclude development files from exports (#2123)
171+
- Add support for libomemo-c as OMEMO backend (#2120)
172+
- Enable -fanalyzer for static analysis (#2094)
173+
- Enable _FORTIFY_SOURCE and -Og optimization (#2094)
174+
- Enable more warnings in debug mode (#2089)
175+
- Set -Qunused-arguments depending on compiler not os
176+
177+
Refactorings:
178+
- Centralize validation within jid_is_valid (#2102)
179+
- Change vcard_print() checks (#2094)
180+
- Fix clang-format expansion of table (#2099)
181+
- Improve key transport message handling and deduplicate errors (#2130)
182+
- Make Jid use glib functions (#2094)
183+
- Make Resource use glib functions (#2094)
184+
- Make _writecsv safer and with better performance (#2094)
185+
- Modernize cmd_ac_complete_filepath and simplify path handling (#2094)
186+
- Move pgp module to gchar (#2094)
187+
- Optimize prof_occurrences() (#2093)
188+
- Partly move plugins to glib (#2094)
189+
- Refactor OMEMO error handling and add non-null attributes (#2104)
190+
- Refactor form_set_value to use glib list management (#2095)
191+
- Replace calloc with g_new0 for struct allocations (#2094)
192+
- Replace malloc with g_new0 in many occasions (#2094)
193+
- Roster export uses GString and g_file_set_contents now (#2094)
194+
- Start to standardize on gchar (#2094)
195+
- Use g_malloc0 instead of calloc in get_random_string() (#2094)
196+
- Use g_new in message_pubsub_event_handler_add() (#2094)
197+
- Use p_contact_new instead of malloc in p_contact_new() (#2094)
198+
199+
Chores:
200+
- Add 0.16.0 to release in doap file
201+
- Add README explaining the purpose and usage of helper scripts (#2128)
202+
- Add XEP comparison script
203+
- Add changelog-helper script (#2128)
204+
- Add copyright header to C files who had none
205+
- Add linter file to be ignored upon export
206+
- Make meson doublecheck only available if the script exists
207+
- Move to SPDX license header
208+
- Require DCO from now on (#2123)
209+
- Unify build configuration script into one (#2128)
210+
- Updat clang-format action to 4.16.0
211+
- Update valgrind suppression file (#2123)
212+
- Use more descriptive names for helper scripts (#2128)
213+
1214
0.16.0 (2026-02-23)
2215
===================
3216

configure.ac

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Process this file with autoconf to produce a configure script.
22

33
AC_PREREQ([2.69])
4-
AC_INIT([profanity],[0.16.0],[jubalh@iodoru.org],[profanity],[https://profanity-im.github.io/])
4+
AC_INIT([profanity],[0.17.0],[jubalh@iodoru.org],[profanity],[https://profanity-im.github.io/])
55
AC_CONFIG_AUX_DIR([build-aux])
66
AC_CONFIG_MACRO_DIR([m4])
77
AC_CONFIG_SRCDIR([src/main.c])
@@ -24,7 +24,7 @@ AS_CASE([$target_os],
2424

2525
AM_INIT_AUTOMAKE([foreign subdir-objects])
2626

27-
PACKAGE_STATUS="development"
27+
PACKAGE_STATUS="release"
2828

2929
## Get git branch and revision if in development
3030
if test "x$PACKAGE_STATUS" = xdevelopment; then

docs/profanity-about.1

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.TH man 1 "2026-03-26" "0.17.0" "Profanity XMPP client"
2+
3+
.SH NAME
4+
/about
5+
6+
.SH DESCRIPTION
7+
Show version and license information.
8+
9+
.SH SYNOPSIS
10+
/about
11+
12+
.LP

0 commit comments

Comments
 (0)