Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package znc for openSUSE:Factory checked in 
at 2025-12-02 17:22:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/znc (Old)
 and      /work/SRC/openSUSE:Factory/.znc.new.14147 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "znc"

Tue Dec  2 17:22:38 2025 rev:34 rq:1320845 version:1.10.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/znc/znc.changes  2025-07-06 17:10:02.508248445 
+0200
+++ /work/SRC/openSUSE:Factory/.znc.new.14147/znc.changes       2025-12-02 
17:22:40.337399721 +0100
@@ -1,0 +2,6 @@
+Tue Dec  2 10:14:11 UTC 2025 - Dominique Leuenberger <[email protected]>
+
+- Add znc-swig-4.4.patch: Fix build against swig 4.4
+  Patch submitted at https://github.com/znc/znc/pull/1986
+
+-------------------------------------------------------------------

New:
----
  znc-swig-4.4.patch

----------(New B)----------
  New:
- Add znc-swig-4.4.patch: Fix build against swig 4.4
  Patch submitted at https://github.com/znc/znc/pull/1986
----------(New E)----------

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

Other differences:
------------------
++++++ znc.spec ++++++
--- /var/tmp/diff_new_pack.an1XmF/_old  2025-12-02 17:22:41.329441413 +0100
+++ /var/tmp/diff_new_pack.an1XmF/_new  2025-12-02 17:22:41.333441582 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package znc
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 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
@@ -27,6 +27,7 @@
 Source2:        
https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xd5823cacb477191cac0075555ae420cc0209989e#/%{name}.keyring
 Source3:        %{name}.service
 Patch0:         no-timestamp.patch
+Patch1:         znc-swig-4.4.patch
 BuildRequires:  cmake >= 3.13
 BuildRequires:  doxygen
 BuildRequires:  fdupes


++++++ znc-swig-4.4.patch ++++++
Index: znc-1.10.1/modules/modpython/codegen.pl
===================================================================
--- znc-1.10.1.orig/modules/modpython/codegen.pl
+++ znc-1.10.1/modules/modpython/codegen.pl
@@ -49,6 +49,8 @@ print $out <<'EOF';
  * Don't change it manually.                                               *
  ***************************************************************************/
 
+#include "swig_version.h"
+
 namespace {
        inline swig_type_info* ZNC_SWIG_pchar_descriptor(void) {
                static int init = 0;
@@ -60,11 +62,10 @@ namespace {
                return info;
        }
 
-// SWIG 4.2.0 replaced SWIG_Python_str_AsChar with 
SWIG_PyUnicode_AsUTF8AndSize.
-// SWIG doesn't provide any good way to detect SWIG version (other than parsing
-// `swig -version`), but it also introduced SWIG_NULLPTR in 4.2.0.
-// So let's abuse that define to do different code for new SWIG.
-#ifdef SWIG_NULLPTR
+// SWIG_VERSION is defined as 0x040200 for 4.2.0.
+// We use this to detect modern SWIG versions and avoid the "abuse" of
+// SWIG_NULLPTR, which was removed in SWIG 4.4.
+#if defined(SWIG_VERSION) && SWIG_VERSION >= 0x040200
        // This is copied/adapted from SWIG 4.2.0 from pystrings.swg
        inline int ZNC_SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, 
size_t* psize, int *alloc) {
 #if PY_VERSION_HEX>=0x03000000
Index: znc-1.10.1/modules/modpython/CMakeLists.txt
===================================================================
--- znc-1.10.1.orig/modules/modpython/CMakeLists.txt
+++ znc-1.10.1/modules/modpython/CMakeLists.txt
@@ -29,6 +29,17 @@ if(APPLE)
 endif()
 
 if(SWIG_FOUND)
+       set(SWIG_VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/swig_version.h")
+
+       add_custom_command(
+           OUTPUT "${SWIG_VERSION_HEADER}"
+           COMMAND ${CMAKE_COMMAND}
+                   -DSWIG_EXECUTABLE=${SWIG_EXECUTABLE}
+                   -DSWIG_VERSION_HEADER=${SWIG_VERSION_HEADER}
+                   -P "${CMAKE_CURRENT_SOURCE_DIR}/generate_swig_version.cmake"
+           DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/generate_swig_version.cmake"
+       )
+
        add_custom_command(
                OUTPUT "pyfunctions.cpp"
                COMMAND "${PERL_EXECUTABLE}"
@@ -36,7 +47,7 @@ if(SWIG_FOUND)
                "${CMAKE_CURRENT_SOURCE_DIR}/functions.in"
                "pyfunctions.cpp"
                VERBATIM
-               DEPENDS codegen.pl functions.in)
+               DEPENDS codegen.pl functions.in "${SWIG_VERSION_HEADER}")
 
        add_custom_command(
                OUTPUT "swigpyrun.h"
Index: znc-1.10.1/modules/modpython/generate_swig_version.cmake
===================================================================
--- /dev/null
+++ znc-1.10.1/modules/modpython/generate_swig_version.cmake
@@ -0,0 +1,53 @@
+# generate_swig_version.cmake
+execute_process(
+    COMMAND ${SWIG_EXECUTABLE} -version
+    OUTPUT_VARIABLE SWIG_OUTPUT
+    ERROR_VARIABLE SWIG_ERROR
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+    ERROR_STRIP_TRAILING_WHITESPACE
+)
+
+set(FULL_OUTPUT "${SWIG_OUTPUT}\n${SWIG_ERROR}")
+
+string(REGEX MATCH "SWIG Version ([0-9]+)\\.([0-9]+)\\.([0-9]+)" MATCH_FOUND 
"${FULL_OUTPUT}")
+
+if(MATCH_FOUND)
+    # Extract capture groups
+    set(SWIG_VERSION_MAJOR ${CMAKE_MATCH_1})
+    set(SWIG_VERSION_MINOR ${CMAKE_MATCH_2})
+    set(SWIG_VERSION_PATCH ${CMAKE_MATCH_3})
+
+    message(STATUS "Found SWIG Version: 
${SWIG_VERSION_MAJOR}.${SWIG_VERSION_MINOR}.${SWIG_VERSION_PATCH}")
+
+    # Format: 0x<MAJ><MIN><PATCH> (assuming 8 bits per component)
+    # Calculation: (Major << 16) | (Minor << 8) | Patch
+    
+    math(EXPR VERSION_NUM 
+        "(${SWIG_VERSION_MAJOR} << 16) + (${SWIG_VERSION_MINOR} << 8) + 
${SWIG_VERSION_PATCH}"
+        OUTPUT_FORMAT HEXADECIMAL
+    )
+
+    set(HEADER_FILE "swig_version.h")
+    
+    file(WRITE ${SWIG_VERSION_HEADER} 
+"// Auto-generated by CMake
+#ifndef SWIG_VERSION_META_H
+#define SWIG_VERSION_META_H
+
+#define SWIG_VERSION_MAJOR ${SWIG_VERSION_MAJOR}
+#define SWIG_VERSION_MINOR ${SWIG_VERSION_MINOR}
+#define SWIG_VERSION_PATCH ${SWIG_VERSION_PATCH}
+
+// Hex format 0xMAJMINPAT (e.g. 4.1.0 -> 0x40100)
+#define SWIG_VERSION  ${VERSION_NUM}
+
+#endif // SWIG_VERSION_META_H
+"
+    )
+    
+    message(STATUS "Generated ${HEADER_FILE} with version ${VERSION_NUM}")
+
+else()
+    message(WARNING "Could not parse SWIG version from 
output:\n${FULL_OUTPUT}")
+endif()
+

Reply via email to