Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gromox for openSUSE:Factory checked 
in at 2026-09-28 10:44:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gromox (Old)
 and      /work/SRC/openSUSE:Factory/.gromox.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gromox"

Mon Sep 28 10:44:30 2026 rev:62 rq:1380729 version:3.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/gromox/gromox.changes    2026-08-22 
21:38:21.648977746 +0200
+++ /work/SRC/openSUSE:Factory/.gromox.new.383539/gromox.changes        
2026-09-28 10:44:40.583487490 +0200
@@ -1,0 +2,43 @@
+Thu Sep 24 10:57:55 UTC 2026 - Jan Engelhardt <[email protected]>
+
+- Update to release 3.11
+  * imap: implement FETCH BINARY / BINARY.SIZE
+  * lda: out-of-office replies now derive a subject from the
+    incoming message when the mailbox has none stored, e.g. when
+    OOF is set over EWS. The new config directive
+    gromox.cfg:``autoreply_subject_prefix`` was added.
+  * emsmdb, zcore: new per-mailbox settings MessageCopyForSentAs
+    and MessageCopyForSendOnBehalf.
+  * mbop: new "get-msgcopy", "set-msgcopy" and "clear-msgcopy"
+    commands
+  * delivery: the new gromox.cfg directive
+    ``lda_relay_unknown_recipients`` hands autoreplies and bounce
+    reports for mailbox-less addresses of local domains to the MTA,
+    for use in split domain setups
+  * The rule processor now logs the outcome of condition
+    evaluations.
+  * INET↔MAPI conversions specifically recognize OpenPGP MIME and
+    GpgOL messages.
+  * A delegate's answer to a meeting invitation is sent in the name
+    of the mailbox it was addressed to, rather than the delegate's
+    own.
+  * Meeting replies carry the ORGANIZER property that RFC 5546 asks
+    for, and name the delegate who answered in the attendee's
+    SENT-BY parameter.
+  * The rule processor executes Extended Rules' OP_MOVE/OP_COPY now
+    and matches string restrictions across PT_STRING8↔PT_UNICODE.
+  * zcore: When folder permissions are updated, the updated
+    delegate list for exmdb is now constructed from
+    PR_SCHDINFO_DELEGATE_ENTRYIDS rather than the recipients of the
+    "Schedule+ EMS Interface" rule, so that delegates who are to
+    not receive meeting copies actually get delegate permissions.
+  * During MAPI-to-iCalender conversions, TZID is now omitted when
+    exporting timeless DATE values.
+  * Repaired some instances where the by-time message lookup index
+    would go out of sync with a folder's message set and indicate
+    fewer messages present than there were.
+  * kdb2mt: An inefficiency that led to exponential time waste
+    processing deeply-nested messages was eliminated.
+- Add 0001-build-drop-D_TIME_BITS-64.patch, 0002-zombies.patch
+
+-------------------------------------------------------------------

Old:
----
  gromox-3.10.tar.asc
  gromox-3.10.tar.zst

New:
----
  0001-build-drop-D_TIME_BITS-64.patch
  0002-zombies.patch
  gromox-3.11.tar.asc
  gromox-3.11.tar.zst

----------(New B)----------
  New:    processing deeply-nested messages was eliminated.
- Add 0001-build-drop-D_TIME_BITS-64.patch, 0002-zombies.patch
  New:    processing deeply-nested messages was eliminated.
- Add 0001-build-drop-D_TIME_BITS-64.patch, 0002-zombies.patch
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gromox.spec ++++++
--- /var/tmp/diff_new_pack.gZoG3A/_old  2026-09-28 10:44:42.213555784 +0200
+++ /var/tmp/diff_new_pack.gZoG3A/_new  2026-09-28 10:44:42.215555868 +0200
@@ -19,7 +19,7 @@
 %define _libexecdir %_prefix/libexec
 
 Name:           gromox
-Version:        3.10
+Version:        3.11
 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,6 +29,8 @@
 Source2:        
https://github.com/grommunio/gromox/releases/download/%name-%version/%name-%version.tar.asc
 Source8:        %name.keyring
 Source15:       debian.gromox.config
+Patch1:         0001-build-drop-D_TIME_BITS-64.patch
+Patch2:         0002-zombies.patch
 BuildRequires:  fdupes
 %if 0%{?suse_version} && 0%{?suse_version} < 1600
 BuildRequires:  gcc12-c++
@@ -92,6 +94,7 @@
 Requires:       php-soap
 %endif
 Requires:       (chawan or w3m)
+Recommends:     pandoc
 Requires(pre):  user(grommunio)
 Requires(pre):  user(gromox)
 Requires(pre):  group(gromox)
@@ -120,9 +123,10 @@
 ready-to-run installation of Gromox.
 
 %prep
-%autosetup -p0
+%autosetup -p1
 
 %build
+autoreconf -fi
 %configure \
 %if 0%{?suse_version} && 0%{?suse_version} < 1600
        CC=gcc-12 CXX=g++-12 \
@@ -170,7 +174,9 @@
 %fdupes %buildroot/%_prefix
 
 %check
+%ifnarch %ix86 %arm
 %make_build check V=1
+%endif
 
 # Though services autoreconnect, starting them in the preferred order services 
is smoother
 %global services gromox-timer.service gromox-http.service gromox-zcore.service 
gromox-event.service gromox-midb.service gromox-imap.service 
gromox-pop3.service gromox-delivery.service gromox-delivery-queue.service 
gromox-snapshot.service gromox-snapshot.timer gromox-cleaner.service

++++++ 0001-build-drop-D_TIME_BITS-64.patch ++++++
>From 3b92a099b5970b0fc4982630f1e753b4dcd03340 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <[email protected]>
Date: Thu, 24 Sep 2026 13:34:16 +0200
Subject: [PATCH] build: drop -D_TIME_BITS=64

libvmime is built without -D_TIME_BITS, and the
`vmime::datetime::datetime(time_t, int)` constructor gets encoded in
the ABI as `_ZN5vmime8datetimeC1Eli`. Gromox however builds with
-D_TIME_BITS=64, and the symbol reference becomes
`_ZN5vmime8datetimeC1Exi`.

```
  CXXLD    tests/bodyconv
/usr/lib/gcc/i586-suse-linux/16/../../../../i586-suse-linux/bin/ld:
./.libs/libgromox_mapi.so: undefined reference to
`vmime::datetime::datetime(long long, int)'
```

Drop the two preprocessor flags. They are the default mode for 64-bit
userspaces anyway, and 32-bit environment builders need to
consistently present flags (e.g. Debian injects -D_TIME_BITS=64
globally for armhf).

Fixes: gromox-2.14-41-g91c37ac94
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 466a51df1..60908bf8f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,7 @@ saved_LDFLAGS="$LDFLAGS"
 saved_LIBS="$LIBS"
 AC_LANG_PUSH([C++])
 
-my_CPPFLAGS="-D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64"
+my_CPPFLAGS=""
 my_CFLAGS="-Wall -Wmissing-declarations -Wwrite-strings"
 my_CXXFLAGS="-Wall -Wmissing-declarations"
 my_LDFLAGS=""
-- 
2.55.0


++++++ 0002-zombies.patch ++++++
>From 809b35d405bb381e14c242b0ad863e8f157b0d20 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <[email protected]>
Date: Thu, 24 Sep 2026 23:50:02 +0200
Subject: [PATCH] mapi_lib: plug process leak when exercising internal
 rtftohtml

When a rtftohtml request is performed using the
GROMOX_RTFTOHTML=internal (`rtf_to_html_boring`) converter, finished
subprocesses pile up due to popenfd being exercised without a
matching wait() call.

References: GXF-2944
---
 lib/mapi/rtf.cpp | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/lib/mapi/rtf.cpp b/lib/mapi/rtf.cpp
index 6dabd4561..c631ca163 100644
--- a/lib/mapi/rtf.cpp
+++ b/lib/mapi/rtf.cpp
@@ -17,6 +17,7 @@
 #include <libHX/io.h>
 #include <libHX/scope.hpp>
 #include <libHX/string.h>
+#include <sys/wait.h>
 #include <gromox/element_data.hpp>
 #include <gromox/ext_buffer.hpp>
 #include <gromox/fileio.h>
@@ -3510,15 +3511,21 @@ static ec_error_t gxht_transform(std::string_view 
inbuf, std::string &outbuf,
     attachment_list *atlist) try
 {
        static constexpr const char *argv[] = {"gromox-rtftohtml", 
"--rtftogxht", nullptr};
-       int fin = -1, fout = -1;
+       int fin = -1, fout = -1, status = 0;
+       pid_t pid = -1;
+       auto cl_pid = HX::make_scope_exit([&]() {
+               if (pid > 0)
+                       waitpid(pid, &status, 0);
+       });
+       /* during destruction, fds need to be closed before wait()ing */
        auto cl_0 = HX::make_scope_exit([&]() {
                if (fin >= 0)
                        close(fin);
                if (fout >= 0)
                        close(fout);
        });
-       auto pid = popenfd(argv[0], argv, &fin, &fout, POPENFD_KEEP,
-                  const_cast<const char *const *>(environ));
+       pid = popenfd(argv[0], argv, &fin, &fout, POPENFD_KEEP,
+             const_cast<const char *const *>(environ));
        if (pid < 0)
                return ecError;
        if (HXio_fullwrite(fin, inbuf.data(), inbuf.size()) < 0)
@@ -3529,6 +3536,11 @@ static ec_error_t gxht_transform(std::string_view inbuf, 
std::string &outbuf,
        std::unique_ptr<char[], stdlib_delete> newbuf(HX_slurp_fd(fout, 
&fsize));
        if (newbuf == nullptr)
                return ecMAPIOOM;
+       /*
+        * Unlike convert_doc_with_program, the exit status is ignored here.
+        * The stream has length markers, so we can already detect incomplete
+        * data that way.
+        */
        if (fsize < 8 || memcmp(&newbuf[0], "GXHT0001", 8) != 0) {
                outbuf.assign(newbuf.get(), fsize); /* Try salvaging */
                return ecRpcFormat;
-- 
2.55.0


++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.gZoG3A/_old  2026-09-28 10:44:42.261557795 +0200
+++ /var/tmp/diff_new_pack.gZoG3A/_new  2026-09-28 10:44:42.267558046 +0200
@@ -1,5 +1,5 @@
-mtime: 1787396237
-commit: 08333de654322f62ef931e5b71e3a9fd207c28858d8514746fafe03aca2f09a6
+mtime: 1790368033
+commit: d858db51a66f4a84507bd56698bb27696e7178de782f715ac0915c5a16246ff0
 url: https://src.opensuse.org/jengelh/gromox
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-09-25 22:27:13.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.gZoG3A/_old  2026-09-28 10:44:42.403563744 +0200
+++ /var/tmp/diff_new_pack.gZoG3A/_new  2026-09-28 10:44:42.405563828 +0200
@@ -1,2 +1,2 @@
-gromox (3.9) UNRELEASED; urgency=low
+gromox (3.11) UNRELEASED; urgency=low
 

++++++ debian.control ++++++
--- /var/tmp/diff_new_pack.gZoG3A/_old  2026-09-28 10:44:42.428564792 +0200
+++ /var/tmp/diff_new_pack.gZoG3A/_new  2026-09-28 10:44:42.431564917 +0200
@@ -9,8 +9,16 @@
 Architecture: any
 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
+ php-cli,
+ php-fpm,
+ php-mysql,
+ php-simplexml,
+ php-soap,
+ grommunio-triggers,
+ system-user-grommunio,
+ system-user-gromox (>= 4),
+ w3m
+Recommends: media-types
 Provides: php-mapi-gromox
 Description: Groupware server (backend) with RPCH, IMAP and Z-MAPI support
  Gromox is the central groupware server component of grommunio. It is

++++++ debian.gromox.postinst ++++++
--- /var/tmp/diff_new_pack.gZoG3A/_old  2026-09-28 10:44:42.491567431 +0200
+++ /var/tmp/diff_new_pack.gZoG3A/_new  2026-09-28 10:44:42.494567557 +0200
@@ -37,8 +37,6 @@
                systemctl daemon-reload || :
                systemctl try-restart \
                        grommunio-chat.service grommunio-keycloak.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
 

++++++ gromox-3.10.tar.zst -> gromox-3.11.tar.zst ++++++
++++ 27719 lines of diff (skipped)

Reply via email to