Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package postsrsd for openSUSE:Factory 
checked in at 2026-06-08 14:24:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/postsrsd (Old)
 and      /work/SRC/openSUSE:Factory/.postsrsd.new.2375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "postsrsd"

Mon Jun  8 14:24:20 2026 rev:16 rq:1357940 version:2.0.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/postsrsd/postsrsd.changes        2025-04-14 
12:57:52.058952419 +0200
+++ /work/SRC/openSUSE:Factory/.postsrsd.new.2375/postsrsd.changes      
2026-06-08 14:28:58.822168125 +0200
@@ -1,0 +2,7 @@
+Mon Jun  8 10:08:27 UTC 2026 - Jan Engelhardt <[email protected]>
+
+- Update to release 2.0.12
+  * PostSRSd will give a proper diagnostic instead of crashing if
+    no SRS domain is configured.
+
+-------------------------------------------------------------------

Old:
----
  2.0.11.tar.gz

New:
----
  2.0.12.tar.gz

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

Other differences:
------------------
++++++ postsrsd.spec ++++++
--- /var/tmp/diff_new_pack.FU9lFL/_old  2026-06-08 14:28:59.554198500 +0200
+++ /var/tmp/diff_new_pack.FU9lFL/_new  2026-06-08 14:28:59.554198500 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package postsrsd
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           postsrsd
-Version:        2.0.11
+Version:        2.0.12
 Release:        0
 Summary:        Sender Rewriting Support for postfix
 License:        GPL-2.0-only
@@ -47,7 +47,7 @@
        -DUSE_APPARMOR=1 -DINIT_FLAVOR=systemd \
        -DWITH_SQLITE=BOOL:ON -DBUILD_TESTING:BOOL=OFF \
        -DPOSTSRSD_USER=postsrsd
-%make_jobs
+%cmake_build
 
 %install
 %cmake_install

++++++ 2.0.11.tar.gz -> 2.0.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/.github/workflows/ci.yml 
new/postsrsd-2.0.12/.github/workflows/ci.yml
--- old/postsrsd-2.0.11/.github/workflows/ci.yml        2025-04-12 
16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/.github/workflows/ci.yml        2026-06-07 
20:01:53.000000000 +0200
@@ -34,7 +34,7 @@
         run: |
           mkdir _build
           cd _build
-          cmake .. -DDEVELOPER_BUILD=ON -DWITH_${{ matrix.milter }} -DWITH_${{ 
matrix.sqlite }} -DWITH_${{ matrix.redis }} ${{ matrix.deps == 'system-deps' && 
'-DFETCHCONTENT_FULLY_DISCONNECTED=ON 
-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS' || '' }}
+          cmake .. -DDEVELOPER_BUILD=ON -DTESTS_WITH_ASAN=ON -DWITH_${{ 
matrix.milter }} -DWITH_${{ matrix.sqlite }} -DWITH_${{ matrix.redis }} ${{ 
matrix.deps == 'system-deps' && '-DFETCHCONTENT_FULLY_DISCONNECTED=ON 
-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS' || '' }}
           cmake --build . --verbose
       - name: Run tests
         run: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/.pre-commit-config.yaml 
new/postsrsd-2.0.12/.pre-commit-config.yaml
--- old/postsrsd-2.0.11/.pre-commit-config.yaml 2025-04-12 16:51:32.000000000 
+0200
+++ new/postsrsd-2.0.12/.pre-commit-config.yaml 2026-06-07 20:01:53.000000000 
+0200
@@ -2,14 +2,14 @@
 # See https://pre-commit.com/hooks.html for more hooks
 repos:
 -   repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v5.0.0
+    rev: v6.0.0
     hooks:
     -   id: trailing-whitespace
     -   id: end-of-file-fixer
     -   id: check-yaml
     -   id: check-added-large-files
 -   repo: https://github.com/pre-commit/mirrors-clang-format
-    rev: v20.1.0
+    rev: v21.1.0
     hooks:
     -   id: clang-format
 -   repo: https://github.com/psf/black
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/CHANGELOG.rst 
new/postsrsd-2.0.12/CHANGELOG.rst
--- old/postsrsd-2.0.11/CHANGELOG.rst   2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/CHANGELOG.rst   2026-06-07 20:01:53.000000000 +0200
@@ -7,6 +7,31 @@
 Changelog
 #########
 
+2.0.12
+======
+
+Fixed
+-----
+
+* PostSRSd will give a proper diagnostic instead of crashing
+  if no SRS domain is configured.
+* The sysusers.d snippet will never be installed for the "nobody"
+  user.
+
+Changed
+-------
+
+* The build will always look for installed system dependencies first.
+* Updated vendored dependencies for Hiredis and SQLite to latest release.
+* If PostSRSd is installed to `/usr/local`, the systemd files are also
+  installed there instead of `/etc`.
+
+Added
+-----
+
+* New CMake switch `INSTALL_SYSTEMD_SYSUSERS` for sysusers.d snippet
+  installation.
+
 2.0.11
 ======
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/CMakeLists.txt 
new/postsrsd-2.0.12/CMakeLists.txt
--- old/postsrsd-2.0.11/CMakeLists.txt  2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/CMakeLists.txt  2026-06-07 20:01:53.000000000 +0200
@@ -14,10 +14,10 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
-cmake_minimum_required(VERSION 3.14...3.29)
+cmake_minimum_required(VERSION 3.14...4.2)
 project(
     postsrsd
-    VERSION 2.0.11
+    VERSION 2.0.12
     LANGUAGES C
     DESCRIPTION "Sender Rewriting Scheme daemon for Postfix"
     HOMEPAGE_URL "https://github.com/roehling/postsrsd";
@@ -73,7 +73,7 @@
        OFF
 )
 add_feature_info(WITH_REDIS WITH_REDIS "use Redis as database backend")
-option(TESTS_WITH_ASAN "Run test suite with AddressSanitizer" ON)
+option(TESTS_WITH_ASAN "Run test suite with AddressSanitizer" OFF)
 option(DEVELOPER_BUILD "Add strict compiler options for development only" OFF)
 option(GENERATE_SRS_SECRET "Generate and install a postsrsd.secret" ON)
 add_feature_info(
@@ -86,6 +86,13 @@
     INSTALL_SYSTEMD_SERVICE INSTALL_SYSTEMD_SERVICE
     "install the systemd postsrsd.service unit"
 )
+option(INSTALL_SYSTEMD_SYSUSERS "Install a systemd sysusers.d/postsrsd.conf"
+       ${INSTALL_SYSTEMD_SERVICE}
+)
+add_feature_info(
+    INSTALL_SYSTEMD_SYSUSERS DO_INSTALL_SYSTEMD_SYSUSERS
+    "instruct systemd to create the PostSRSd user \"${POSTSRSD_USER}\""
+)
 find_systemd_unit_destination(DETECTED_SYSTEMD_UNITDIR)
 set(SYSTEMD_UNITDIR
     "${DETECTED_SYSTEMD_UNITDIR}"
@@ -114,11 +121,23 @@
     set(CHROOTABLE_DATADIR "${POSTSRSD_DATADIR}")
 endif()
 
+if(INSTALL_SYSTEMD_SERVICE
+   AND INSTALL_SYSTEMD_SYSUSERS
+   AND NOT POSTSRSD_USER STREQUAL "nobody"
+)
+    set(DO_INSTALL_SYSTEMD_SYSUSERS TRUE)
+else()
+    set(DO_INSTALL_SYSTEMD_SYSUSERS FALSE)
+endif()
+
 mark_as_advanced(
     TESTS_WITH_ASAN
     GENERATE_SRS_SECRET
+    INSTALL_SYSTEMD_SERVICE
+    INSTALL_SYSTEMD_SYSUSERS
     DEVELOPER_BUILD
     SYSTEMD_UNITDIR
+    SYSTEMD_SYSUSERSDIR
     POSTSRSD_CONFIGDIR
     POSTSRSD_CHROOTDIR
     POSTSRSD_DATADIR
@@ -130,25 +149,29 @@
     URL 
https://github.com/libconfuse/libconfuse/releases/download/v3.3/confuse-3.3.tar.gz
     URL_HASH
         
SHA3_256=da895d91a7755941872e73ff6522fd16810f1599862990df569459a0eee94515
+    FIND_PACKAGE_ARGS
 )
 
 FetchContent_Declare(
     Hiredis
     GIT_REPOSITORY https://github.com/redis/hiredis
-    GIT_TAG c14775b4e48334e0262c9f168887578f4a368b5d
+    GIT_TAG 67c88a05bb97c40d5c29d0680e51828627e4f362
+    FIND_PACKAGE_ARGS
 )
 
 FetchContent_Declare(
     LibMilter
     GIT_REPOSITORY https://github.com/roehling/libmilter
     GIT_TAG 3661f3c5ac5e47205f26775031d2ac276d6d47ca
+    FIND_PACKAGE_ARGS
 )
 
 FetchContent_Declare(
     sqlite3
-    URL https://sqlite.org/2023/sqlite-amalgamation-3410200.zip
+    URL https://sqlite.org/2026/sqlite-amalgamation-3530200.zip
     URL_HASH
-        
SHA3_256=c51ca72411b8453c64e0980be23bc9b9530bdc3ec1513e06fbf022ed0fd02463
+        
SHA3_256=81142986038e18f96c4a54e1a72562ae17e502a916f2a7701eff43388cbf1a40
+    FIND_PACKAGE_ARGS
 )
 
 FetchContent_Declare(
@@ -156,6 +179,7 @@
     URL 
https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz
     URL_HASH
         
SHA3_256=bfb856a68c0ea4d930803f6bd16c1eed38910a231c9e0f0009e69310e35e7a5d
+    FIND_PACKAGE_ARGS
 )
 
 set(saved_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
@@ -216,6 +240,16 @@
         CACHE BOOL "" FORCE
     )
     FetchContent_MakeAvailable(Hiredis)
+    mark_as_advanced(
+        ENABLE_ASYNC_TESTS
+        ENABLE_SSL_TESTS
+        ENABLE_SSL
+        ENABLE_NUGET
+        ENABLE_EXAMPLES
+        DISABLE_TESTS
+        BUILD_SHARED_LIBS
+        hiredis_export_name
+    )
     if(IS_DIRECTORY "${hiredis_SOURCE_DIR}")
         set_property(
             DIRECTORY "${hiredis_SOURCE_DIR}" PROPERTY EXCLUDE_FROM_ALL TRUE
@@ -364,10 +398,13 @@
 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.conf"
         DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/${PROJECT_NAME}"
 )
+
 if(INSTALL_SYSTEMD_SERVICE)
     install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.service"
             DESTINATION "${SYSTEMD_UNITDIR}"
     )
+endif()
+if(INSTALL_SYSTEMD_SYSUSERS AND NOT POSTSRSD_USER STREQUAL "nobody")
     install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sysusers.d/${PROJECT_NAME}.conf"
             DESTINATION "${SYSTEMD_SYSUSERSDIR}"
     )
@@ -382,6 +419,7 @@
         NAMES urandom random
         PATHS /dev
     )
+    mark_as_advanced(DD BASE64 OPENSSL RANDOM_SOURCE)
     if(BASE64)
         set(BASE64_ENCODE "${BASE64}")
     elseif(OPENSSL)
@@ -416,6 +454,10 @@
 
 if(BUILD_TESTING)
     FetchContent_MakeAvailable(Check)
+    mark_as_advanced(
+        AWK_PATH CHECK_ENABLE_GCOV CHECK_ENABLE_TESTS
+        CHECK_ENABLE_TIMEOUT_TESTS ENABLE_MEMORY_LEAKING_TESTS INSTALL_CHECKMK
+    )
     if(IS_DIRECTORY "${check_SOURCE_DIR}")
         # Workaround for https://github.com/roehling/postsrsd/issues/161
         file(REMOVE "${check_SOURCE_DIR}/src/check.h")
@@ -431,6 +473,13 @@
 
 feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
 
+if(DEFINED INIT_FLAVOR)
+    message(
+        WARNING
+            "The INIT_FLAVOR option is no longer used by PostSRSd 2.x and will 
be ignored"
+    )
+endif()
+
 set(CPACK_SET_DESTDIR ON)
 set(CPACK_PACKAGE_NAME "postsrsd")
 set(CPACK_PACKAGE_VENDOR "Timo Röhling")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/README.rst 
new/postsrsd-2.0.12/README.rst
--- old/postsrsd-2.0.11/README.rst      2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/README.rst      2026-06-07 20:01:53.000000000 +0200
@@ -33,8 +33,7 @@
 will be much less of a maintenance burden.
 
 If you are interested in packaging PostSRSd for a Linux distribution, have a
-look at the packaging_ notes. In particular, we are currently looking for a new
-Debian maintainer (`#145 <https://github.com/roehling/postsrsd/issues/145>`_).
+look at the packaging_ notes.
 
 .. _packaging: doc/packaging.rst
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/cmake/utils.cmake 
new/postsrsd-2.0.12/cmake/utils.cmake
--- old/postsrsd-2.0.11/cmake/utils.cmake       2025-04-12 16:51:32.000000000 
+0200
+++ new/postsrsd-2.0.12/cmake/utils.cmake       2026-06-07 20:01:53.000000000 
+0200
@@ -14,6 +14,7 @@
     FetchContent_MakeAvailable(${name})
     if(NOT TARGET ${arg_EXPORTED_TARGET})
         find_program(MAKE_EXECUTABLE NAMES gmake make mingw32-make REQUIRED)
+        mark_as_advanced(MAKE_EXECUTABLE)
         set(library_file
             
"${CMAKE_STATIC_LIBRARY_PREFIX}${arg_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
         )
@@ -74,6 +75,11 @@
                 PARENT_SCOPE
             )
         endif()
+    elseif(CMAKE_INSTALL_PREFIX MATCHES "^/usr/local/?$")
+        set(${var}
+            "/usr/local/lib/systemd/system"
+            PARENT_SCOPE
+        )
     else()
         set(${var}
             "/etc/systemd/system"
@@ -97,6 +103,11 @@
                 PARENT_SCOPE
             )
         endif()
+    elseif(CMAKE_INSTALL_PREFIX MATCHES "^/usr/local/?$")
+        set(${var}
+            "/usr/local/lib/sysusers.d"
+            PARENT_SCOPE
+        )
     else()
         set(${var}
             "/etc/sysusers.d"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/src/config.c 
new/postsrsd-2.0.12/src/config.c
--- old/postsrsd-2.0.11/src/config.c    2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/src/config.c    2026-06-07 20:01:53.000000000 +0200
@@ -220,7 +220,7 @@
                 break;
         }
     }
-    if (config_file)
+    if (config_file != NULL)
     {
         switch (cfg_parse(cfg, config_file))
         {
@@ -237,17 +237,17 @@
         }
         set_string(&config_file, NULL);
     }
-    if (pid_file)
+    if (pid_file != NULL)
     {
         cfg_setstr(cfg, "pid-file", pid_file);
         set_string(&pid_file, NULL);
     }
-    if (unprivileged_user)
+    if (unprivileged_user != NULL)
     {
         cfg_setstr(cfg, "unprivileged-user", unprivileged_user);
         set_string(&unprivileged_user, NULL);
     }
-    if (chroot_dir)
+    if (chroot_dir != NULL)
     {
         cfg_setstr(cfg, "chroot-dir", chroot_dir);
         set_string(&chroot_dir, NULL);
@@ -297,7 +297,7 @@
         return NULL;
     }
     char* faketime = getenv("POSTSRSD_FAKETIME");
-    if (faketime)
+    if (NONEMPTY_STRING(faketime))
     {
         char* eptr;
         long stamp = strtol(faketime, &eptr, 10);
@@ -326,7 +326,7 @@
     *local_domains = domain_set_create();
     char* domain;
     domain = cfg_getstr(cfg, "srs-domain");
-    if (domain && domain[0])
+    if (NONEMPTY_STRING(domain))
         *srs_domain = strdup(domain[0] == '.' ? domain + 1 : domain);
     unsigned ndomains = cfg_size(cfg, "domains");
     for (unsigned i = 0; i < ndomains; ++i)
@@ -340,7 +340,7 @@
         }
     }
     char* domains_file = cfg_getstr(cfg, "domains-file");
-    if (domains_file && domains_file[0])
+    if (NONEMPTY_STRING(domains_file))
     {
         FILE* f = fopen(domains_file, "r");
         if (f)
@@ -360,7 +360,7 @@
                 end = domain + strlen(domain);
                 while (end != domain && isspace(*(end - 1)))
                     *--end = 0;
-                if (domain[0] == 0)
+                if (NULL_OR_EMPTY_STRING(domain))
                     continue;
                 if (is_valid_domain_name(domain))
                 {
@@ -384,6 +384,11 @@
             goto fail;
         }
     }
+    if (*srs_domain == NULL)
+    {
+        log_error("no SRS domain configured");
+        goto fail;
+    }
     return true;
 fail:
     domain_set_destroy(*local_domains);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/src/endpoint.c 
new/postsrsd-2.0.12/src/endpoint.c
--- old/postsrsd-2.0.11/src/endpoint.c  2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/src/endpoint.c  2026-06-07 20:01:53.000000000 +0200
@@ -199,7 +199,7 @@
     {
         path = &s[6];
     }
-    if (path)
+    if (path != NULL)
     {
         int fd = create_unix_socket(path);
         if (fd < 0)
@@ -228,7 +228,7 @@
         addr = strdup(&s[6]);
         family = AF_INET6;
     }
-    if (addr)
+    if (addr != NULL)
     {
         int ret = create_inet_sockets(addr, family, max_fds, fds);
         free(addr);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/src/milter.c 
new/postsrsd-2.0.12/src/milter.c
--- old/postsrsd-2.0.11/src/milter.c    2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/src/milter.c    2026-06-07 20:01:53.000000000 +0200
@@ -255,7 +255,7 @@
         log_error("cannot start milter: failed to open socket");
         goto done;
     }
-    if (milter_path)
+    if (milter_path != NULL)
     {
         if (chmod(milter_path, 0666) < 0)
         {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/src/netstring.c 
new/postsrsd-2.0.12/src/netstring.c
--- old/postsrsd-2.0.11/src/netstring.c 2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/src/netstring.c 2026-06-07 20:01:53.000000000 +0200
@@ -28,7 +28,7 @@
         return NULL;
     strncpy(&buffer[i], data, length);
     buffer[length + i] = ',';
-    if (encoded_length)
+    if (encoded_length != NULL)
         *encoded_length = length + i + 1;
     return buffer;
 }
@@ -47,7 +47,7 @@
     if (netstring[i] != ':' || netstring[length + i + 1] != ',')
         return NULL;
     strncpy(buffer, &netstring[i + 1], length);
-    if (decoded_length)
+    if (decoded_length != NULL)
         *decoded_length = length;
     buffer[length] = 0;
     return buffer;
@@ -67,7 +67,7 @@
         return NULL;
     if (fgetc(f) != ',')
         return NULL;
-    if (decoded_length)
+    if (decoded_length != NULL)
         *decoded_length = length;
     buffer[length] = 0;
     return buffer;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/src/srs.c 
new/postsrsd-2.0.12/src/srs.c
--- old/postsrsd-2.0.11/src/srs.c       2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/src/srs.c       2026-06-07 20:01:53.000000000 +0200
@@ -38,6 +38,15 @@
         log_debug("<%s> not rewritten: no domain", addr);
         return NULL;
     }
+    if (domain == NULL)
+    {
+        log_error("<%s> not rewritten: no SRS domain configured", addr);
+        if (error != NULL)
+            *error = true;
+        if (info != NULL)
+            *info = "Configuration error.";
+        return NULL;
+    }
     const char* input_domain = at + 1;
     if (domain_set_contains(local_domains, input_domain))
     {
@@ -57,9 +66,9 @@
         if (db_alias == NULL)
         {
             log_warn("<%s> not rewritten: aliasing error", addr);
-            if (error)
+            if (error != NULL)
                 *error = true;
-            if (info)
+            if (info != NULL)
                 *info = "Aliasing error.";
             return NULL;
         }
@@ -146,9 +155,9 @@
         else
         {
             log_warn("<%s> not reversed: no database for alias", addr);
-            if (error)
+            if (error != NULL)
                 *error = true;
-            if (info)
+            if (info != NULL)
                 *info = "No database for alias.";
             return NULL;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/src/util.c 
new/postsrsd-2.0.12/src/util.c
--- old/postsrsd-2.0.11/src/util.c      2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/src/util.c      2026-06-07 20:01:53.000000000 +0200
@@ -269,7 +269,7 @@
     for (unsigned i = 0; i < sizeof(D->c) / sizeof(D->c[0]); ++i)
         if (D->c[i])
             domain_set_destroy(D->c[i]);
-    if (D->s)
+    if (D->s != NULL)
         domain_set_destroy(D->s);
     free(D);
 }
@@ -278,7 +278,7 @@
 {
     char* dot = strrchr(domain, '.');
     char* subdomain = domain;
-    if (dot)
+    if (dot != NULL)
     {
         subdomain = dot + 1;
         *dot = 0;
@@ -304,7 +304,7 @@
         }
         D = D->c[ch];
     }
-    if (dot)
+    if (dot != NULL)
     {
         if (D->s == NULL)
         {
@@ -406,7 +406,7 @@
 {
     if (L == NULL)
         return;
-    if (deleter)
+    if (deleter != NULL)
     {
         for (size_t i = 0; i < L->size; ++i)
         {
@@ -425,6 +425,40 @@
     free(L);
 }
 
+struct file_watch
+{
+    int fd;
+};
+
+file_watch_t* file_watch_create()
+{
+    file_watch_t* W = malloc(sizeof(file_watch_t));
+    if (W != NULL)
+    {
+        W->fd = -1;
+    }
+    return W;
+}
+
+int file_watch_poll_fd(file_watch_t* W)
+{
+    return W != NULL ? W->fd : -1;
+}
+
+void file_watch_process_events(file_watch_t* W)
+{
+    MAYBE_UNUSED(W);
+}
+
+void file_watch_destroy(file_watch_t* W)
+{
+    if (W != NULL)
+    {
+        close(W->fd);
+        free(W);
+    }
+}
+
 static char* swap_host_port(const char* s, size_t prefix_len)
 {
     char* port = strchr(s + prefix_len, ':');
@@ -566,7 +600,7 @@
 void log_perror(int err, const char* prefix)
 {
     char* msg = strerror(err);
-    if (prefix)
+    if (NONEMPTY_STRING(prefix))
         log_error("%s: %s", prefix, msg);
     else
         log_error("%s", msg);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postsrsd-2.0.11/src/util.h 
new/postsrsd-2.0.12/src/util.h
--- old/postsrsd-2.0.11/src/util.h      2025-04-12 16:51:32.000000000 +0200
+++ new/postsrsd-2.0.12/src/util.h      2026-06-07 20:01:53.000000000 +0200
@@ -36,6 +36,8 @@
 struct list;
 typedef struct list list_t;
 typedef void (*list_deleter_t)(void*);
+struct file_watch;
+typedef struct file_watch file_watch_t;
 
 void set_string(char** var, char* value);
 char* b32h_encode(const char* data, size_t length, char* buffer,
@@ -65,6 +67,11 @@
 void list_clear(list_t* L, list_deleter_t deleter);
 void list_destroy(list_t* L, list_deleter_t deleter);
 
+file_watch_t* file_watch_create();
+int file_watch_poll_fd(file_watch_t* W);
+void file_watch_process_events(file_watch_t* W);
+void file_watch_destroy(file_watch_t* W);
+
 char* endpoint_for_milter(const char* s);
 char* endpoint_for_redis(const char* s, int* port);
 

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.FU9lFL/_old  2026-06-08 14:28:59.782207961 +0200
+++ /var/tmp/diff_new_pack.FU9lFL/_new  2026-06-08 14:28:59.786208127 +0200
@@ -1,5 +1,5 @@
-mtime: 1744484353
-commit: 96fb443188e77065f1fdef4c513a552d8f2708dedfbcea75378ed360d941e9b1
+mtime: 1780916648
+commit: 0ca3cb73c3a1e50f3f5976ab25dde73f08e00087f54c9f9bb2b14e10f998efb0
 url: https://src.opensuse.org/jengelh/postsrsd
 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-06-08 13:04:08.000000000 +0200
@@ -0,0 +1 @@
+.osc

Reply via email to