Compare commits
6 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 0b1d7c1f4f | |||
| 8c6ee60d36 | |||
| 7b76402c80 | |||
| 299e3221b7 | |||
| dbaaaf45b2 | |||
| da9b59877a |
3
znc-1.10.1.tar.gz
Normal file
3
znc-1.10.1.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4e6e76851dbf2606185972b53ec5decad68fe53b63a56e4df8b8b3c0a6c46800
|
||||
size 2310976
|
||||
BIN
znc-1.10.1.tar.gz.sig
Normal file
BIN
znc-1.10.1.tar.gz.sig
Normal file
Binary file not shown.
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e8a7cf80e19aad510b4e282eaf61b56bc30df88ea2e0f64fadcdd303c4894f3c
|
||||
size 2236498
|
||||
Binary file not shown.
118
znc-swig-4.4.patch
Normal file
118
znc-swig-4.4.patch
Normal file
@@ -0,0 +1,118 @@
|
||||
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()
|
||||
+
|
||||
47
znc.changes
47
znc.changes
@@ -1,3 +1,50 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 2 10:14:11 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Add znc-swig-4.4.patch: Fix build against swig 4.4
|
||||
Patch submitted at https://github.com/znc/znc/pull/1986
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 3 07:51:26 UTC 2025 - Richard Rahl <rrahl0@opensuse.org>
|
||||
|
||||
- update to 1.10.1:
|
||||
* Fix use-after-free in capabilities handling. The visible effect of this was
|
||||
either crash, or some capabilities having wrong state
|
||||
* Fix nullptr dereference in TAGMSG handling
|
||||
* Preserve `DisableClientCap/DisableServerCap` settings when writing config
|
||||
* The listening unix socket can now be configured to belong to a specific
|
||||
group and/or to have a specific file access mode. The syntax for AddPort
|
||||
command is `unix:ssl,group=mygroup,mode=666:/path`, some of these options
|
||||
can be skipped if the feature is not needed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 10 14:48:13 UTC 2025 - Richard Rahl <rrahl0@opensuse.org>
|
||||
|
||||
- update to 1.10.0:
|
||||
* SASL v3.1 and v3.2 for clients
|
||||
* Added a way to disable capabilities
|
||||
* Warn user if flood protection is delaying the messages for too long
|
||||
* Added experimental support for unix sockets
|
||||
* `znc --makepem` now takes the CN from `gethostname()` and `uname()` if available
|
||||
* Fixed high CPU usage when ZNC is connecting to a server
|
||||
* Sped up capability negotiation with the server
|
||||
* Don't forward client JOINs during registration
|
||||
* Fixed the translation pipeline again
|
||||
* Fixed sending server passwords with spaces in them
|
||||
* CTCP sent to `*status` shouldn't reach server
|
||||
* Made PING skip the flood protection queue just like PONG does
|
||||
* Made CTCP flood timer use monotonic time
|
||||
* certauth: it's no longer required to send a garbage password via `PASS` command, if
|
||||
the client uses SASL EXTERNAL
|
||||
* log: don't log user quits to logs of channels that are disabled
|
||||
* modperl: removed usage of deprecated keywords `given`/`when`
|
||||
* sasl: if RequireAuth is set, but SASL failed, don't disable the network anymore
|
||||
* webadmin:
|
||||
- fixed editing fields which are allowed to be edited while
|
||||
`DenySetNetwork` is set.
|
||||
- removed old compatibility code for pre-0.090 versions of parsing
|
||||
arguments to module to open another web port.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 17 16:12:05 UTC 2024 - Richard Rahl <rrahl0@opensuse.org>
|
||||
|
||||
|
||||
90
znc.spec
90
znc.spec
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package znc
|
||||
#
|
||||
# Copyright (c) 2024 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
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: znc
|
||||
Version: 1.9.1
|
||||
Version: 1.10.1
|
||||
Release: 0
|
||||
Summary: Advanced IRC Bouncer
|
||||
License: Apache-2.0
|
||||
@@ -27,12 +27,13 @@ Source1: %{url}/releases/%{name}-%{version}.tar.gz.sig
|
||||
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
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gettext
|
||||
BuildRequires: libboost_locale-devel
|
||||
BuildRequires: libboost_locale-devel >= 1.70
|
||||
BuildRequires: perl
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: swig >= 4.0.1
|
||||
@@ -160,86 +161,87 @@ getent passwd %{name} >/dev/null || useradd -r -g %{name} -s /bin/false -c "znc
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_unitdir}/%{name}.service
|
||||
%{_sbindir}/rc%{name}
|
||||
%{_bindir}/%{name}
|
||||
%attr(750,%{name},%{name}) %{_var}/lib/%{name}
|
||||
%dir %{_libdir}/%{name}
|
||||
%{_libdir}/%{name}/autoattach.so
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/%{name}
|
||||
%{_libdir}/%{name}/admindebug.so
|
||||
%{_libdir}/%{name}/adminlog.so
|
||||
%{_libdir}/%{name}/alias.so
|
||||
%{_libdir}/%{name}/autoattach.so
|
||||
%{_libdir}/%{name}/autocycle.so
|
||||
%{_libdir}/%{name}/autoop.so
|
||||
%{_libdir}/%{name}/autoreply.so
|
||||
%{_libdir}/%{name}/autovoice.so
|
||||
%{_libdir}/%{name}/awaynick.so
|
||||
%{_libdir}/%{name}/awaystore.so
|
||||
%{_libdir}/%{name}/block_motd.so
|
||||
%{_libdir}/%{name}/blockuser.so
|
||||
%{_libdir}/%{name}/bouncedcc.so
|
||||
%{_libdir}/%{name}/buffextras.so
|
||||
%{_libdir}/%{name}/cert.so
|
||||
%{_libdir}/%{name}/certauth.so
|
||||
%{_libdir}/%{name}/chansaver.so
|
||||
%{_libdir}/%{name}/clearbufferonmsg.so
|
||||
%{_libdir}/%{name}/clientnotify.so
|
||||
%{_libdir}/%{name}/controlpanel.so
|
||||
%{_libdir}/%{name}/corecaps.so
|
||||
%{_libdir}/%{name}/crypt.so
|
||||
%{_libdir}/%{name}/ctcpflood.so
|
||||
%{_libdir}/%{name}/cyrusauth.so
|
||||
%{_libdir}/%{name}/dcc.so
|
||||
%{_libdir}/%{name}/disconkick.so
|
||||
%{_libdir}/%{name}/fail2ban.so
|
||||
%{_libdir}/%{name}/flooddetach.so
|
||||
%{_libdir}/%{name}/identfile.so
|
||||
%{_libdir}/%{name}/imapauth.so
|
||||
%{_libdir}/%{name}/keepnick.so
|
||||
%{_libdir}/%{name}/kickrejoin.so
|
||||
%{_libdir}/%{name}/nickserv.so
|
||||
%{_libdir}/%{name}/perform.so
|
||||
%{_libdir}/%{name}/raw.so
|
||||
%{_libdir}/%{name}/sample.so
|
||||
%{_libdir}/%{name}/savebuff.so
|
||||
%{_libdir}/%{name}/schat.so
|
||||
%{_libdir}/%{name}/shell.so
|
||||
%{_libdir}/%{name}/simple_away.so
|
||||
%{_libdir}/%{name}/stickychan.so
|
||||
%{_libdir}/%{name}/watch.so
|
||||
%{_libdir}/%{name}/webadmin.so
|
||||
%{_libdir}/%{name}/awaystore.so
|
||||
%{_libdir}/%{name}/controlpanel.so
|
||||
%{_libdir}/%{name}/cyrusauth.so
|
||||
%{_libdir}/%{name}/missingmotd.so
|
||||
%{_libdir}/%{name}/modules_online.so
|
||||
%{_libdir}/%{name}/sasl.so
|
||||
%{_libdir}/%{name}/adminlog.so
|
||||
%{_libdir}/%{name}/autoreply.so
|
||||
%{_libdir}/%{name}/autovoice.so
|
||||
%{_libdir}/%{name}/block_motd.so
|
||||
%{_libdir}/%{name}/blockuser.so
|
||||
%{_libdir}/%{name}/buffextras.so
|
||||
%{_libdir}/%{name}/cert.so
|
||||
%{_libdir}/%{name}/certauth.so
|
||||
%{_libdir}/%{name}/clearbufferonmsg.so
|
||||
%{_libdir}/%{name}/ctcpflood.so
|
||||
%{_libdir}/%{name}/disconkick.so
|
||||
%{_libdir}/%{name}/flooddetach.so
|
||||
%{_libdir}/%{name}/lastseen.so
|
||||
%{_libdir}/%{name}/listsockets.so
|
||||
%{_libdir}/%{name}/log.so
|
||||
%{_libdir}/%{name}/missingmotd.so
|
||||
%{_libdir}/%{name}/modules_online.so
|
||||
%{_libdir}/%{name}/nickserv.so
|
||||
%{_libdir}/%{name}/notes.so
|
||||
%{_libdir}/%{name}/notify_connect.so
|
||||
%{_libdir}/%{name}/perform.so
|
||||
%{_libdir}/%{name}/raw.so
|
||||
%{_libdir}/%{name}/route_replies.so
|
||||
%{_libdir}/%{name}/send_raw.so
|
||||
%{_libdir}/%{name}/stripcontrols.so
|
||||
%{_libdir}/%{name}/sample.so
|
||||
%{_libdir}/%{name}/samplewebapi.so
|
||||
%{_libdir}/%{name}/corecaps.so
|
||||
%{_datadir}/%{name}
|
||||
%{_libdir}/%{name}/sasl.so
|
||||
%{_libdir}/%{name}/saslplainauth.so
|
||||
%{_libdir}/%{name}/savebuff.so
|
||||
%{_libdir}/%{name}/schat.so
|
||||
%{_libdir}/%{name}/send_raw.so
|
||||
%{_libdir}/%{name}/shell.so
|
||||
%{_libdir}/%{name}/simple_away.so
|
||||
%{_libdir}/%{name}/stickychan.so
|
||||
%{_libdir}/%{name}/stripcontrols.so
|
||||
%{_libdir}/%{name}/watch.so
|
||||
%{_libdir}/%{name}/webadmin.so
|
||||
%{_mandir}/man?/%{name}.?%{?ext_man}
|
||||
%attr(750,%{name},%{name}) %{_var}/lib/%{name}
|
||||
%{_sbindir}/rc%{name}
|
||||
%{_unitdir}/%{name}.service
|
||||
|
||||
%files lang -f %{name}.lang
|
||||
|
||||
%files perl
|
||||
%{_libdir}/%{name}/modperl.so
|
||||
%dir %{_libdir}/%{name}/modperl
|
||||
%{_libdir}/%{name}/modperl.so
|
||||
%{_libdir}/%{name}/modperl/ZNC.pm
|
||||
%{_libdir}/%{name}/modperl/ZNC.so
|
||||
%{_libdir}/%{name}/modperl/startup.pl
|
||||
%{_libdir}/%{name}/perleval.pm
|
||||
|
||||
%files python3
|
||||
%{_libdir}/%{name}/pyeval.py
|
||||
%{_libdir}/%{name}/modpython.so
|
||||
%dir %{_libdir}/%{name}/modpython/
|
||||
%{_libdir}/%{name}/modpython.so
|
||||
%{_libdir}/%{name}/modpython/_znc_core.so
|
||||
%{_libdir}/%{name}/modpython/znc.py
|
||||
%{_libdir}/%{name}/modpython/znc_core.py
|
||||
%{_libdir}/%{name}/pyeval.py
|
||||
|
||||
%files tcl
|
||||
%{_libdir}/%{name}/modtcl.so
|
||||
|
||||
Reference in New Issue
Block a user