Compare commits

...

18 Commits

Author SHA256 Message Date
2b5db2104b Gromox 2.46 2025-05-28 17:02:59 +02:00
601dfdee7f gromox 2.45 2025-04-15 23:48:24 +02:00
8729858c78 Trim excess keys from keyring 2025-03-27 00:18:01 +01:00
5f35cf00d8 gromox 2.44 2025-03-19 19:48:39 +01:00
71f725abe7 Gromox 2.43 2025-03-06 18:25:43 +01:00
81320d95a4 gromox 2.42 2025-02-19 18:41:36 +01:00
872ac32a00 Gromox 2.41 2025-02-07 11:40:23 +01:00
411e216a6b Gromox 2.40 2025-01-28 16:45:51 +01:00
a89c2f72d9 gromox 2.39 2025-01-22 01:30:05 +01:00
f39ff584af gromox 2.38 2024-12-07 12:31:36 +01:00
58428fa92c Gromox 2.37 2024-11-20 12:05:29 +01:00
a8a3c49feb Gromox 2.36 2024-11-06 17:02:58 +01:00
fbc8d5d4df Gromox 2.35 2024-10-15 14:13:39 +02:00
cc345f8843 gromox 2.34 2024-10-08 20:14:21 +02:00
3493ed7aa4 gromox 2.33 2024-10-01 22:16:01 +02:00
c94e92d821 gromox 2.32 2024-09-04 21:13:44 +02:00
cd650e4cb5 Gromox 2.31 2024-08-14 11:29:32 +02:00
4267ab0073 Gromox 2.30 2024-06-21 22:16:24 +02:00
11 changed files with 347 additions and 321 deletions

View File

@ -1,5 +1 @@
gromox (2.29-0) unstable; urgency=low
* Update.
-- Gromox <null@gromox.com> Thu, 02 May 2024 00:00:00 +0000
gromox (0) unstable; urgency=low

View File

@ -11,7 +11,7 @@ Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends},
php-cli, php-fpm, php-mysql, php-simplexml, php-soap,
system-user-grommunio, system-user-gromox (>= 4), w3m,
libhx32 (>= 4.12)
libhx32 (>= 4.27)
Provides: php-mapi-gromox
Description: Groupware server (backend) with RPCH, IMAP and Z-MAPI support
.

View File

@ -17,39 +17,38 @@ set_perms()
xpostinst()
{
set_perms grommunio gromoxcf 0755 /etc/gromox || :
for i in /var/lib/gromox \
/var/lib/gromox/domain \
/var/lib/gromox/user \
/var/lib/gromox/queue \
/var/lib/gromox/queue/cache \
/var/lib/gromox/queue/mess \
/var/lib/gromox/queue/save \
/var/lib/gromox/queue/timer; do
set_perms gromox gromox 0770 "$i" || :
done
set_perms gromox gromox 0750 /var/log/gromox || :
set_perms grommunio gromoxcf 0755 /etc/gromox || :
for i in /var/lib/gromox \
/var/lib/gromox/domain \
/var/lib/gromox/user \
/var/lib/gromox/queue \
/var/lib/gromox/queue/cache \
/var/lib/gromox/queue/mess \
/var/lib/gromox/queue/save \
/var/lib/gromox/queue/timer; do
set_perms gromox gromox 0770 "$i" || :
done
set_perms gromox gromox 0750 /var/log/gromox || :
# %post
if test -x /usr/bin/systemd-tmpfiles; then
systemd-tmpfiles --create tmpfiles-gromox.conf || :
else
echo "There is no systemd-tmpfiles present in the system. /run/gromox may not have been created."
fi
if test -x /usr/bin/systemctl; then
systemctl daemon-reload || :
systemctl try-restart gromox-delivery.service \
gromox-delivery-queue.service gromox-event.service \
gromox-http.service gromox-imap.service gromox-midb.service \
gromox-pop3.service gromox-timer.service gromox-zcore.service \
grommunio-chat.service \
php7.4-fpm.service php8.0-fpm.service php8.1-fpm.service \
php8.2-fpm.service \
saslauthd.service 2>/dev/null || :
fi
# %post
if test -x /usr/bin/systemd-tmpfiles; then
systemd-tmpfiles --create tmpfiles-gromox.conf || :
else
echo "There is no systemd-tmpfiles present in the system. /run/gromox may not have been created."
fi
if test -x /usr/bin/systemctl; then
systemctl daemon-reload || :
systemctl try-restart gromox-delivery.service \
gromox-delivery-queue.service gromox-event.service \
gromox-http.service gromox-imap.service gromox-midb.service \
gromox-pop3.service gromox-timer.service gromox-zcore.service \
grommunio-chat.service \
php7.4-fpm.service php8.0-fpm.service php8.1-fpm.service \
php8.2-fpm.service php8.3-fpm.service \
saslauthd.service 2>/dev/null || :
fi
}
case "$1" in
configure|reconfigure)
xpostinst

View File

@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQQr2lY+nd5Gr3HMFx2utpQaL5yZRAUCZl5NgwAKCRCutpQaL5yZ
RMCnAPwOgYVQVjp8zqtWAfn5VhHwLtIAo1eliTkZMsnb1RUWvAD9EdVn4pZsAPF5
p/k/PgJMmKGkKfrLH/cY3gKvRL8cFgY=
=C8Wb
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a3362573ae62145991fc1324e8604269bdd935f3b4a85e5a3c053ff14725e6ec
size 2109301

7
gromox-2.46.tar.asc Normal file
View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQQr2lY+nd5Gr3HMFx2utpQaL5yZRAUCaDcY5AAKCRCutpQaL5yZ
RFkFAP9xMLrDhpjRwGiU2q4qQ/elc2rw43Dhkl3KITA1NotMHgD/cV7JfjFdDBwV
s2WN4aDz4QkwYzvuJx2uY+Vkab6VTgY=
=HSwo
-----END PGP SIGNATURE-----

BIN
gromox-2.46.tar.zst (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,3 +1,282 @@
-------------------------------------------------------------------
Wed May 28 15:02:51 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.46
* cgkrepair: detect Change Keys with impossibly high values
* cgkrepair: retain a PCL's foreign XIDs
* ical2mapi: support FREQ=MONTHLY recurrences using BYDAY= but
no BYSETPOS= * mt2exm: the -B option now supports numeric
identifiers
* ical2mapi: expand E-2718 error into new codes E-28xx with
extended reason
* imap: allow '%' '*' and '?' in folder names
* daemons: the default log destination is now "automatic"
(stderr/syslog autodetect) rather than "stderr"
* mapi2ical: deal with strange allday events that do not
start/end on midnight
* htmltotext: w3m is now instructed on charsets and does not
need to guess anymore
* exch: value for the PR_MAX_SUBMIT_MESSAGE_SIZE property was
off by a factor of 1024, which has been fixed
* mkprivate/mkpublic: generate a PR_MAPPING_SIGNATURE value
distinct from PR_STORE_RECORD_KEY for newly-initialized
stores
* ical2mt, vcf2mt: messages are no longer emitted with an
anchor, which now allows free placement with mt2exm -B
* ical2mapi: ignore unreasonable requests like BYMONTHDAY=32
-------------------------------------------------------------------
Tue Apr 15 21:48:13 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.45
* emsmdb: avoid emissions of PR_MESSAGE_SIZE in fastdownctx
streams (this makes PST export possible).
* email_lib: fix a lost space in IMAP BODYSTRUCTURE response.
* mysql_adaptor: add support for nesting mlists in permission
checks.
* Recognize the IANA Character Set names `utf-16le`, `utf-16be`
(and 32) when converting from RFC5322 to MAPI.
-------------------------------------------------------------------
Wed Mar 26 23:17:52 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Trim excess keys from keyring
-------------------------------------------------------------------
Wed Mar 19 18:47:59 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.44
* mysql_adaptor: do not fail organization-level GAL population
when a domain belonging to the org has zero members
* gab: resolve assertion when traversing GAL
* mysql_adaptor: fix OOB when reading PT_DOUBLE entries from
user_properties
* emsmdb: fix OOB write when computing PR_MAILBOX_OWNER_NAME_A
* mbop: make clear-profile nuke all profile parts again
-------------------------------------------------------------------
Thu Mar 6 16:57:28 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.43
* oxm2mt: support embedded messages
* mysql_adaptor: add TLS connection config directives
* imap: reduce memory footprint when FETCHing messages
* imap: resolve shutdown ordering crash
* exmdb: upgrade 0-length PR_ENTRYIDs to fake 1 byte to soothe
Outlook Cached Mode syncer
-------------------------------------------------------------------
Wed Feb 19 14:33:49 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.42
* exmdb_local: plug memory leak resulting from RPC execution
* alias_resolve: plug memory leak resulting from GAB refreshes
* alias_resolve: avoid unnecessary GAB refresh on shutdown
* oxdisco: recognize /mail/config-v1.1.xml URI
* New internal addressbook implementation backing the
NSPI-provided and Zcore-provided AB functionality
-------------------------------------------------------------------
Fri Feb 7 10:36:28 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.41
* ldap_adaptor: plug two memory leaks
* exmdb: plug a memory leak related to subscription destruction
* oxcical: do process TRIGGER duration value type for reminders
* midb: resolve flakey update of flagged/replied/forwarded status
* midb: when a MAPI message has changed and requires a new
IMAPUID, convey the expunge of the old IMAPUID much sooner to
IMAP clients
* pop3: resolve a NULL deref/crash during RETR command
* imap: restore SEARCH command looking at right portion of a
QP-encoded message
* mkprivate: new message stores now have `frightsVisible` set
on the calendar folder
-------------------------------------------------------------------
Tue Jan 28 15:26:48 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.40
* zcore: avoid unwrapping Content-Transfer-Encoding twice for
clearsigned S/MIME
* ews: calculate timezone offsets for local time only
* imap, pop3: multi-server capability, replacing direct disk
I/O by network RPCs to the exmdb storage backend
-------------------------------------------------------------------
Tue Jan 21 22:05:13 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.39
* midb: synchronize "Answered", "Forwarded" and "Flagged" flags
between MAPI and midb
* midb: pass message flag modification notifications
(answered/forwarded/flagged/read/etc.) to imapd
* mbop: new foreach.* command group which replaces for-all-users
-------------------------------------------------------------------
Sat Dec 7 11:21:28 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.38
* oxcical: ignore zero-length PidLidTimeZoneStruct on export
rather than failing the operation
* freebusy: process events with recurrence patterns > 510 bytes
* mbop-get-freeubsy: respect the absence of start_time,end_time
(-a/-b) parameters
* mapi_lib: support TNEF export of messages without
PR_INTERNET_CPID
* email_lib: no longer reject import of time-based recurrent
series (`RRULE` line with `UNTIL` specifier) with a single
occurrence
* midb: deal with folder changes that occurr during times when
midb is not running
* exm2eml: add TNEF file export support
* imap: reject creating extant folder
* midb: change M-COPY from a read-write cycle to server-side
copy, thereby preserving mail headers from now on
* midb/imapd: folder names are now treated case-sensitive, just
like MAPI did it already
-------------------------------------------------------------------
Wed Nov 20 10:58:49 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.37
* exmdb: fix garbage being returned to clients when reading v1z
files from cid/
* exmdb: stop an SQL error from appearing when `gromox-mbop
recalc-sizes` is used on an empty store
* oxcical: evaluate all, instead of just two, STANDARD/DAYLIGHT
tzprops for determining the relevant DST timezone
* ews: fix time elements, e.g. in OOF settings, always having
value 1970-01-01
* email_lib: on vCard ingestion, treat ORG lines as the
structured field that they are specified as, rather than as
one text value
* exmdb_local: autovivify new named properties on delivery,
fixing log message ``D-1220`` when ingesting a vCard message
into an empty store via SMTP/LMTP
* dbop_sqlite: avoid use of the ``UNIXEPOCH`` function since it
is not available in AlmaLinux 9
* lib: add missing chown call on newly-created logfiles to
account for subsequent privilege separation
* dscli: evaluate not just one AutoDiscover URL but multiple as
the specifation asks for
* mbop: stop printing the help text multiple times when the
"for-all-users" subcommand was used but options were rejected
* gromox-mbsize: new debug utility for mailbox size analysis
* gromox-tnef2mt: add support for importing standalone TNEF files
-------------------------------------------------------------------
Wed Nov 6 15:51:31 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.36
* ews: fix an ABA locking problem when EWS unsubscribe actions
were processed
* genimport: fix a data juggling issue that led to mt2exm
printing ``proptag … from input stream has no named property
info``
* mbck: do not attempt to repair allocated_eids if repair mode
was not selected, fixing mbck printing ``sqlite3_prep(INSERT
INTO allocated_eids) ... inside a readonly TXN``.
* exmdb: fix an issue where creating new embedded messages
could lead to ``sqlite3_exec(… INSERT INTO messages ...
VALUES (65536, …): UNIQUE constraint failed: messages.message_id (19)``
* mkprivate et al: fix an issue where force-overwriting
databases would print "database is locked"
* mbop: new commands "ping", "for-all-users", "echo-username"
* exmdb: faster process shutdown through parallelized closing
of sqlite files
* exmdb: better location diagnostics for RO-RO transactions,
for RW-in-RO, and ROLLBACK issues
* exmdb: deactivate implicit integrity check when upgrading a
mailbox's database schema, it takes too much time
(Integrity checks can still be done offline with ``mkprivate
-U --integ``)
-------------------------------------------------------------------
Tue Oct 15 11:24:31 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.35
* alias_resolve: resolve nullptr deref crash
* ews: resolve nullptr deref crash
* mapi_lib: fix out-of-bounds access in PROBLEM_ARRAY::transform
* mapi_lib: rop_util_get_gc_value used the wrong mask, which
caused "Change commit failed because the object was changed
separately"
* exmdb: let PR_ACCESS include permissions from all group
memberships
-------------------------------------------------------------------
Tue Oct 8 15:20:02 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.34
* php_mapi: cure crash occurring with mapi_getidsfromnames
* midb: resolve "inside a readonly TXN" warnings during message
deletion
* exmdb: emit notifications only after SQL transactions are
complete
* imap: resolve unstable EXPUNGE observability
-------------------------------------------------------------------
Tue Oct 1 14:13:21 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.33
* oxcmail: Implement MIME fragment joining for the construction
of the contents of PR_HTML.
* dscli: add --ac option to test Mail Autoconfig (what
Thunderbird uses in leu of AutoDiscover)
* http: credential caching for HTTP Basic (config directive
``http_basic_auth_cred_caching``, defaulting to 60s)
* oxcical: revert commit which evaluates different MAPI
timezone properties to generate DTSTART/DTEND's TZID value
-------------------------------------------------------------------
Wed Sep 4 08:17:15 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.32
* mysql_adaptor: re-speedup queries that came to ran without an
index
* mbop: make the "clear-profile" operation do clear g-web
settings again
* zcore: workaround potential hang during shutdown
* emsmdb, zcore: allow "Empty Folder" operations in public stores
* exmdb: increased verbosity during shutdown phase so it does
not appear like a hang
-------------------------------------------------------------------
Wed Aug 14 07:50:17 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.31
* freebusy: get_freebusy erroneously underreported occurrences
for yearly occurrences
* freebusy: the get_freebusy routine erroneously landed in an
infinite loop if a yearly-recurring February 29 appointment
was originally created in a year not divisible by 12.
* oxcmail: take /etc/mime.types under consideration when adding
extensions to attachments
* oxcmail: priorities for MIME parts have been rectified for
multipart/alternative and non-alternative containers; the
conversion routine is no longer making picks across multiple
container siblings.
-------------------------------------------------------------------
Fri Jun 21 14:09:43 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2.30
* oxcical: emit VTIMEZONE for events without
PidLidAppointmentTimeZoneDefinitionStartDisplay
* gromox-mbop: new subcommand ``set-locale`` to change store
language
* exmdb: add more SQLite transactions and make concurrent read
access for stores possible
* ruleproc: initial autoprocessing for meeting requests
* conflict detection, response sending for conflicts,
automatic addition to calendar
* needs to be enabled with gromox.cfg:``lda_mrautoproc``=yes
* imap, pop3, delivery-queue: HAProxy protocol support
(send-proxy-v2)
* zcore: show private distribution lists the grommunio-web
address book
-------------------------------------------------------------------
Mon Jun 3 23:17:28 UTC 2024 - Jan Engelhardt <jengelh@inai.de>

View File

@ -1,7 +1,7 @@
Format: 1.0
Source: gromox
Architecture: any
Version: 2.29
Version: 2.46
DEBTRANSFORM-RELEASE: 1
Maintainer: Gromox <null@gromox.com>
Homepage: https://gromox.com
@ -21,7 +21,7 @@ Build-Depends:
libcurl4-openssl-dev,
libesedb-dev,
libfmt-dev (>= 8),
libhx-dev (>= 4.12),
libhx-dev (>= 4.27),
libjsoncpp-dev (>= 1.4.0),
libkrb5-dev,
libldap2-dev,
@ -34,7 +34,6 @@ Build-Depends:
libtinyxml2-dev (>= 8),
libtool (>= 2),
libtool-bin (>= 2) | libtool (>= 2),
libvmime-dev (>= 0.9.2),
libxml2-dev,
libxxhash-dev,
libzstd-dev,
@ -47,5 +46,6 @@ Build-Depends:
sed,
systemd,
uuid-dev,
wmime-dev (>= 1),
zlib1g-dev
Files:

View File

@ -1,269 +1,13 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
Ag==
=nzyx
mDMEZgh6SxYJKwYBBAHaRw8BAQdA1luEX2LWdc7GOs5yPM7dbdT+vpFBIiZDYT5+
gu8QyX+0IEphbiBFbmdlbGhhcmR0IDxqZW5nZWxoQGluYWkuZGU+iJUEExYKAD0W
IQQr2lY+nd5Gr3HMFx2utpQaL5yZRAUCZgh6SwIbAwUJCWYBgAQLCQgHBRUKCQgL
BRYCAwEAAh4FAheAAAoJEK62lBovnJlE3a4BAJqaDko3Ouehjef/fenl9MoR57cY
R1P3t+35rn4BthF2AP4l9g4ThCqKppji7/j0hSsoKFDK07NmUvzXmydqu8z0ALg4
BGYIeksSCisGAQQBl1UBBQEBB0DuC8BZYQ/7Kao8laJUOYjp+UprZxDJnz0a+uI0
n1anMAMBCAeIfgQYFgoAJhYhBCvaVj6d3kavccwXHa62lBovnJlEBQJmCHpLAhsM
BQkJZgGAAAoJEK62lBovnJlEpJ8BAOomwoXHkBEdxK0DU6ClRH/JO//kUeDZYmQI
VNVav7TPAQC9UA3iHYE3w+4ryEhwg4egAU1HUpyPige3TpMzjwRAAg==
=y4FN
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,7 +1,7 @@
#
# spec file for package gromox
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -19,7 +19,7 @@
%define _libexecdir %_prefix/libexec
Name: gromox
Version: 2.29
Version: 2.46
Release: 0
Summary: Groupware server backend with RPC, IMAP,POP3, PHP-MAPI support
License: AGPL-3.0-or-later AND GPL-2.0-only AND GPL-3.0-or-later
@ -29,7 +29,11 @@ Source: https://github.com/grommunio/gromox/releases/download/%name-%ver
Source2: https://github.com/grommunio/gromox/releases/download/%name-%version/%name-%version.tar.asc
Source8: %name.keyring
BuildRequires: fdupes
%if 0%{?suse_version} && 0%{?suse_version} < 1600
BuildRequires: gcc14-c++
%else
BuildRequires: gcc-c++
%endif
%if 0%{?suse_version}
BuildRequires: libmysqlclient-devel >= 5.6
BuildRequires: openldap2-devel
@ -46,13 +50,12 @@ BuildRequires: php8-devel
%else
BuildRequires: php-devel >= 7
%endif
BuildRequires: libvmime-devel >= 0.9.2+g175
BuildRequires: zstd
BuildRequires: group(gromox)
BuildRequires: pkgconfig(fmt) >= 8
BuildRequires: pkgconfig(jsoncpp) >= 1.4.0
BuildRequires: pkgconfig(krb5-gssapi)
BuildRequires: pkgconfig(libHX) >= 4.12
BuildRequires: pkgconfig(libHX) >= 4.27
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libesedb)
@ -64,6 +67,7 @@ BuildRequires: pkgconfig(libxxhash)
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(tinyxml2) >= 8
BuildRequires: pkgconfig(wmime) >= 1
BuildRequires: pkgconfig(zlib)
BuildRequires: user(grommunio)
BuildRequires: user(gromox)
@ -92,6 +96,7 @@ Requires(pre): user(gromox)
Requires(pre): group(gromox)
Provides: php-mapi-gromox = %version-%release
Conflicts: grommunio-admin-api < 1.10.7
Recommends: mapitags
%{?systemd_ordering}
%if !0%{?_pamdir:1}
%define _pamdir /%_lib/security
@ -117,7 +122,11 @@ ready-to-run installation of Gromox.
%autosetup -p1
%build
%configure
%configure \
%if 0%{?suse_version} && 0%{?suse_version} < 1600
CC=gcc-14 CXX=g++-14 \
%endif
%nil
%make_build V=1
%install
@ -228,7 +237,6 @@ fi
%attr(0755,grommunio,gromoxcf) %dir %_sysconfdir/%name/
%_sbindir/gromox-*
%_libdir/*.so.*
%_libdir/%name/
%_libdir/php*/
%_libexecdir/%name/
%_pamdir/