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() +
