diff --git a/sources b/sources index 9b6b7b1..8d14540 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (gpgkey-1D2D2B03A0B68ED11D68A24BA7A21B0A108FF4A9.gpg) = b17e72bc242e606fc660a851676317326ea0a1f3b501cf199a6f59edd999444b957bd52a359e3aa6ceb6c54cba4001e1b94116793c3e0c815eb03df139e1239d -SHA512 (unrealircd-6.1.0.tar.gz) = 9e43289b30dbb3f03ba524dda17bea8323f63f122351c9d1b859fbb7dea75c183f170b0ecd5847295361a620e3dc82f509973a609ffc7c840bdc550f527c68e9 -SHA512 (unrealircd-6.1.0.tar.gz.asc) = f0079e887bb1b76f0f9befd633bb26ae57f0f56b076cb599c3bb154700c17d4a1d7b862b5a739bfc3c1335fddf0416b24f5390af7a4aebb3149da65bdb9c45cf +SHA512 (unrealircd-6.1.10.tar.gz) = f682ccc24b8b92fd02729585bff9cdcfcd37c64a7d2ca4a91df6e982adfb57a50fffed7e46bd517328db9ed35f98303bb2ae90132321621dccc7287259498508 +SHA512 (unrealircd-6.1.10.tar.gz.asc) = 6d4b3c5ba5bb4148f0907c4f3110833630fab6b5fff0aa341a9153dcdaa15c2f7cf74730f482e1dcf9cd38f9a9c42e746de5f163421ace65f1697871c8cad29a diff --git a/unrealircd-6.0.7-pcre2-10.00.patch b/unrealircd-6.0.7-pcre2-10.00.patch deleted file mode 100644 index 77146dd..0000000 --- a/unrealircd-6.0.7-pcre2-10.00.patch +++ /dev/null @@ -1,95 +0,0 @@ -Patch by Robert Scheck for UnrealIRCd >= 6.0.7 to disable the -UTF8-aware spamfilter which raised the PCRE2 requirement from 10.00 to 10.36. However, Red -Hat Enterprise Linux 7 and 8 (including derivatives) are shipping PCRE2 < 10.36. - ---- unrealircd-6.0.7/configure 2023-03-24 13:35:32.000000000 +0100 -+++ unrealircd-6.0.7/configure.pcre2-10.00 2023-03-26 04:23:36.642082639 +0200 -@@ -7940,12 +7940,12 @@ - pkg_cv_PCRE2_CFLAGS="$PCRE2_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.36\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "libpcre2-8 >= 10.36") 2>&5 -+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.00\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "libpcre2-8 >= 10.00") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_PCRE2_CFLAGS=`$PKG_CONFIG --cflags "libpcre2-8 >= 10.36" 2>/dev/null` -+ pkg_cv_PCRE2_CFLAGS=`$PKG_CONFIG --cflags "libpcre2-8 >= 10.00" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -7957,12 +7957,12 @@ - pkg_cv_PCRE2_LIBS="$PCRE2_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.36\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "libpcre2-8 >= 10.36") 2>&5 -+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.00\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "libpcre2-8 >= 10.00") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_PCRE2_LIBS=`$PKG_CONFIG --libs "libpcre2-8 >= 10.36" 2>/dev/null` -+ pkg_cv_PCRE2_LIBS=`$PKG_CONFIG --libs "libpcre2-8 >= 10.00" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -7983,9 +7983,9 @@ - _pkg_short_errors_supported=no - fi - if test $_pkg_short_errors_supported = yes; then -- PCRE2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpcre2-8 >= 10.36" 2>&1` -+ PCRE2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpcre2-8 >= 10.00" 2>&1` - else -- PCRE2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpcre2-8 >= 10.36" 2>&1` -+ PCRE2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpcre2-8 >= 10.00" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$PCRE2_PKG_ERRORS" >&5 ---- unrealircd-6.0.7/configure.ac 2023-03-24 13:35:32.000000000 +0100 -+++ unrealircd-6.0.7/configure.ac.pcre2-10.00 2023-03-26 04:23:43.806113288 +0200 -@@ -585,7 +585,7 @@ - dnl Use system pcre2 when available, unless --without-system-pcre2. - has_system_pcre2="no" - AS_IF([test "x$with_system_pcre2" = "xyes"],[ --PKG_CHECK_MODULES([PCRE2], libpcre2-8 >= 10.36,[has_system_pcre2=yes -+PKG_CHECK_MODULES([PCRE2], libpcre2-8 >= 10.00,[has_system_pcre2=yes - AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libpcre2*])],[has_system_pcre2=no])]) - - AS_IF([test "$has_system_pcre2" = "no"], [ ---- unrealircd-6.0.7/src/conf.c 2023-03-24 13:35:33.000000000 +0100 -+++ unrealircd-6.0.7/src/conf.c.pcre2-10.00 2023-03-25 12:53:43.709639532 +0100 -@@ -7739,10 +7739,6 @@ - { - tempiConf.spamfilter_stop_on_first_match = config_checkval(cepp->value, CFG_YESNO); - } -- else if (!strcmp(cepp->name, "utf8")) -- { -- tempiConf.spamfilter_utf8 = config_checkval(cepp->value, CFG_YESNO); -- } - } - } - else if (!strcmp(cep->name, "default-bantime")) -@@ -8875,9 +8871,6 @@ - if (!strcmp(cepp->name, "stop-on-first-match")) - { - } else -- if (!strcmp(cepp->name, "utf8")) -- { -- } else - { - config_error_unknown(cepp->file->filename, - cepp->line_number, "set::spamfilter", ---- unrealircd-6.0.7/src/match.c 2023-03-24 13:35:33.000000000 +0100 -+++ unrealircd-6.0.7/src/match.c.pcre2-10.00 2023-03-25 12:56:01.834259313 +0100 -@@ -406,7 +406,7 @@ - char buf2[512]; - - if (iConf.spamfilter_utf8) -- options = PCRE2_CASELESS|PCRE2_MATCH_INVALID_UTF; -+ { /* No PCRE2_MATCH_INVALID_UTF in older PCRE2 versions */ } - else - options = PCRE2_CASELESS|PCRE2_NEVER_UTF|PCRE2_NEVER_UCP; - diff --git a/unrealircd-6.1.0-geoip.patch b/unrealircd-6.1.8-geoip.patch similarity index 76% rename from unrealircd-6.1.0-geoip.patch rename to unrealircd-6.1.8-geoip.patch index bb68e74..c642aee 100644 --- a/unrealircd-6.1.0-geoip.patch +++ b/unrealircd-6.1.8-geoip.patch @@ -1,4 +1,4 @@ -Nasty hack by Robert Scheck for UnrealIRCd >= 6.1.0 which disables all +Nasty hack by Robert Scheck for UnrealIRCd >= 6.1.8 which disables all default upstream GeoIP functionalities in UnrealIRCd, because: As of writing, the origin of the two GeoIP Legacy databases provided by UnrealIRCd upstream is, at @@ -22,24 +22,37 @@ See also: - https://blog.maxmind.com/2020/06/01/retirement-of-geoip-legacy-downloadable-databases-in-may-2022/ - https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/ ---- unrealircd-6.1.0/doc/conf/modules.default.conf 2023-05-05 08:01:48.000000000 +0200 -+++ unrealircd-6.1.0/doc/conf/modules.default.conf.geoip 2023-05-06 23:15:36.297501633 +0200 -@@ -207,7 +207,7 @@ +--- unrealircd-6.1.8/doc/conf/modules.default.conf 2024-10-11 07:39:38.000000000 +0200 ++++ unrealircd-6.1.8/doc/conf/modules.default.conf.geoip 2024-10-12 23:36:25.053387669 +0200 +@@ -218,10 +218,10 @@ loadmodule "extbans/timedban"; /* +b ~time (old ~t mode, timed bans / temporary bans) */ loadmodule "extbans/partmsg"; /* +b ~partmsg (old ~p mode, hide part/quit message) */ loadmodule "extbans/securitygroup"; /* +b ~security-group (old ~G mode, security group) */ --loadmodule "extbans/country"; /* +b ~country (country/geoip) */ -+// loadmodule "extbans/country"; /* +b ~country (country/geoip) */ /* Disabled by Fedora intentionally, please read the end of this file */ +-loadmodule "extbans/country"; /* +b ~country (country via geoip) */ ++// loadmodule "extbans/country"; /* +b ~country (country via geoip) */ /* Disabled by Fedora intentionally, please read the end of this file */ loadmodule "extbans/msgbypass"; /* +e ~msgbypass (old ~m mode, bypass message restrictions) */ loadmodule "extbans/flood"; /* +e ~flood (flood exemption for chanmode +f/+F) */ +-loadmodule "extbans/asn"; /* +b ~asn (ASN via geoip) */ ++// loadmodule "extbans/asn"; /* +b ~asn (ASN via geoip) */ /* Disabled by Fedora intentionally, please read the end of this file */ + loadmodule "extbans/inherit"; /* +b ~inherit (inherit bans from another channel) */ -@@ -280,10 +280,34 @@ + +@@ -288,18 +288,42 @@ + loadmodule "connthrottle"; /* see https://www.unrealircd.org/docs/Connthrottle */ + loadmodule "userip-tag"; /* unrealircd.org/userip tag for ircops (IP address) */ + loadmodule "userhost-tag"; /* unrealircd.org/userhost tag for ircops (real host) */ +-loadmodule "geoip-tag"; /* unrealircd.org/geoip tag for ircops (country) */ ++// loadmodule "geoip-tag"; /* unrealircd.org/geoip tag for ircops (country) */ /* Disabled by Fedora intentionally, please read the end of this file */ + loadmodule "json-log-tag"; /* unrealircd.org/json-log tag and CAP for ircops */ + loadmodule "issued-by-tag"; /* unrealircd.org/issued-by tag for servers and ircops */ loadmodule "real-quit-reason"; /* unrealircd.org/real-quit-reason for servers only */ loadmodule "targetfloodprot"; /* set::anti-flood::target-flood protection */ loadmodule "watch-backend"; /* used by watch and other modules */ -loadmodule "geoip_base"; /* needed for ALL geoip functions */ +// loadmodule "geoip_base"; /* needed for ALL geoip functions */ /* Disabled by Fedora intentionally, please read the end of this file */ loadmodule "websocket_common"; /* helper functions for websocket (internal) */ + loadmodule "spamreport"; /* Spam reporting to a blacklist */ + loadmodule "crule"; /* Rules in spamfilter::rule and deny link::rule */ -loadmodule "geoip_classic"; +/* As of writing, the origin of the two GeoIP Legacy databases provided by UnrealIRCd upstream is, at diff --git a/unrealircd.spec b/unrealircd.spec index 7f70943..bc1819d 100644 --- a/unrealircd.spec +++ b/unrealircd.spec @@ -2,11 +2,12 @@ %global sslkey %{_sysconfdir}/pki/%{name}/server.key.pem %bcond_without maxmind +%global pcre2 10.44 Summary: Open Source IRC server Name: unrealircd -Version: 6.1.0 -Release: 1%{?dist} +Version: 6.1.10 +Release: 5%{?dist} # UnrealIRCd declares itself as GPL-2.0-or-later as it's the common denominator for # a GPL-1.0-or-later and GPL-2.0-or-later mixture, breakdown of other source codes: # BSD-3-Clause: include/mempool.h and src/mempool.c @@ -24,30 +25,25 @@ Source5: %{name}.sysusersd # Apply Fedora system-wide crypto policy Patch0: unrealircd-6.0.6-crypto-policy.patch # Disable GeoIP to avoid dependency to legacy GeoIP -Patch1: unrealircd-6.1.0-geoip.patch +Patch1: unrealircd-6.1.8-geoip.patch # Same options like in unrealircd(ctl) shell script Patch2: unrealircd-6.0.3-unrealircdctl.patch -# Disable UTF8-aware spamfilter for PCRE2 < 10.36 -Patch3: unrealircd-6.0.7-pcre2-10.00.patch BuildRequires: gnupg2 BuildRequires: gcc BuildRequires: make BuildRequires: %{_bindir}/openssl -%if 0%{?fedora} || 0%{?rhel} > 7 BuildRequires: openssl-devel -%else -BuildRequires: openssl11-devel -%endif -%if 0%{?fedora} || 0%{?rhel} > 8 +%if 0%{?fedora} || 0%{?rhel} >= 9 BuildRequires: pcre2-devel >= 10.36 %else -BuildRequires: pcre2-devel >= 10.00 +Provides: bundled(pcre2) = %{pcre2} %endif BuildRequires: libargon2-devel >= 20161029 BuildRequires: libsodium-devel >= 1.0.16 BuildRequires: c-ares-devel >= 1.6.0 BuildRequires: jansson-devel >= 2.0.0 BuildRequires: libcurl-devel +BuildRequires: libxcrypt-devel BuildRequires: systemd-rpm-macros Requires(post): %{_bindir}/openssl %{?systemd_requires} @@ -64,7 +60,7 @@ flood and anti-spam systems, swear filtering and module support. %if %{with maxmind} %package maxmind Summary: GeoIP module using MaxMind databases for UnrealIRCd -%if 0%{?fedora} || 0%{?rhel} > 8 +%if 0%{?fedora} || 0%{?rhel} >= 9 BuildRequires: libmaxminddb-devel >= 1.4.3 %else BuildRequires: libmaxminddb-devel >= 1.2.0 @@ -81,27 +77,36 @@ GeoIP2 C library and databases. %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %setup -q -%if 0%{?fedora} || 0%{?rhel} >= 8 -%patch0 -p1 -b .crypto-policy +%patch -P0 -p1 -b .crypto-policy touch -c -r doc/conf/examples/example.conf{.crypto-policy,} -%endif -%patch1 -p1 -b .geoip +%patch -P1 -p1 -b .geoip touch -c -r doc/conf/modules.default.conf{.geoip,} -%patch2 -p1 -b .unrealircdctl -%if 0%{?rhel} && 0%{?rhel} < 9 -%patch3 -p1 -b .pcre2-10.00 -%endif +%patch -P2 -p1 -b .unrealircdctl + +# Ensure the bundled PCRE2 tarball matches the version in this spec file +! tar tfz extras/pcre2.tar.gz | grep -E -m 1 -v '^pcre2-%{pcre2}/' %build -%if 0%{?rhel} == 7 +%if 0%{?rhel} == 8 +# Bundling option for PCRE2 in UnrealIRCd itself is not really suitable for +# distribution packaging, thus build it first and pretend it as system one. +BUNDLED=$PWD/extras/pcre2 +tar xfz extras/pcre2.tar.gz -C extras +cd extras/pcre2-%{pcre2}/ +export CFLAGS="$RPM_OPT_FLAGS -fPIC" +%configure --enable-jit --enable-shared=no +%make_build +%make_install DESTDIR=$BUNDLED +cd $OLDPWD sed \ - -e 's|include/openssl/|include/openssl11/openssl/|g' \ - -e 's|\(CRYPTOLIB="-lssl -lcrypto\).*|\1 -L%{_libdir}/openssl11"\nCFLAGS="$CFLAGS -I%{_includedir}/openssl11"|' \ - -i configure + -e "s|^libdir=.*|libdir=$BUNDLED%{_libdir}|" \ + -e "s|^includedir=.*|includedir=$BUNDLED%{_includedir}|" \ + -i $BUNDLED%{_libdir}/pkgconfig/libpcre2-8.pc +export PKG_CONFIG_PATH="$BUNDLED%{_libdir}/pkgconfig" %endif # https://github.com/unrealircd/unrealircd/pull/183 -%if %{with maxmind} && 0%{?rhel} && 0%{?rhel} < 9 +%if %{with maxmind} && 0%{?rhel} == 8 sed -e 's|libmaxminddb >= 1.4.3|libmaxminddb >= 1.2.0|g' -i configure %endif @@ -226,6 +231,88 @@ fi %endif %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 6.1.10-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jun 13 2026 Yaakov Selkowitz - 6.1.10-4 +- Rebuilt for openssl 4.0 + +* Sat Jan 17 2026 Fedora Release Engineering - 6.1.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Jul 25 2025 Fedora Release Engineering - 6.1.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Mar 08 2025 Robert Scheck 6.1.10-1 +- Upgrade to 6.1.10 (#2345958) + +* Sat Feb 01 2025 Björn Esser - 6.1.9.1-3 +- Add explicit BR: libxcrypt-devel + +* Sun Jan 19 2025 Fedora Release Engineering - 6.1.9.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Dec 13 2024 Robert Scheck 6.1.9.1-1 +- Upgrade to 6.1.9.1 (#2327604) + +* Tue Oct 22 2024 Richard W.M. Jones - 6.1.8.1-2 +- Rebuild for Jansson 2.14 + (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3PYINSQGKQ4BB25NQUI2A2UCGGLAG5ND/) + +* Sat Oct 19 2024 Robert Scheck 6.1.8.1-1 +- Upgrade to 6.1.8.1 (#2319754) + +* Sat Oct 12 2024 Robert Scheck 6.1.8-1 +- Upgrade to 6.1.8 (#2315105) + +* Sat Sep 14 2024 Robert Scheck 6.1.7.2-1 +- Upgrade to 6.1.7.2 (#2297919) + +* Sat Jul 20 2024 Fedora Release Engineering - 6.1.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jun 15 2024 Robert Scheck 6.1.6-1 +- Upgrade to 6.1.6 (#2290902) + +* Sun May 12 2024 Robert Scheck 6.1.5-1 +- Upgrade to 6.1.5 (#2276377) + +* Sat Jan 27 2024 Fedora Release Engineering - 6.1.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Dec 16 2023 Robert Scheck 6.1.4-1 +- Upgrade to 6.1.4 (#2254828) + +* Sat Dec 09 2023 Robert Scheck 6.1.3-1 +- Upgrade to 6.1.3 (#2252372) + +* Sun Nov 05 2023 Robert Scheck 6.1.2.3-2 +- Build upstream's bundled recent PCRE2 version for RHEL 7 and 8 + +* Mon Oct 16 2023 Robert Scheck 6.1.2.3-1 +- Upgrade to 6.1.2.3 (#2238031) + +* Sun Oct 08 2023 Robert Scheck 6.1.2.2-1 +- Upgrade to 6.1.2.2 (#2238031) + +* Thu Oct 05 2023 Robert Scheck 6.1.2.1-1 +- Upgrade to 6.1.2.1 (#2238031) + +* Thu Oct 05 2023 Robert Scheck 6.1.2-1 +- Upgrade to 6.1.2 (#2238031) + +* Thu Oct 05 2023 Remi Collet - 6.1.1.1-3 +- rebuild for new libsodium + +* Sat Jul 22 2023 Fedora Release Engineering - 6.1.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jun 16 2023 Robert Scheck 6.1.1.1-1 +- Upgrade to 6.1.1.1 (#2215598) + +* Wed Jun 14 2023 Robert Scheck 6.1.1-1 +- Upgrade to 6.1.1 (#2211354) + * Sat May 06 2023 Robert Scheck 6.1.0-1 - Upgrade to 6.1.0 (#2185257)