diff --git a/radvd-configure-c99.patch b/radvd-configure-c99.patch new file mode 100644 index 0000000000000000000000000000000000000000..e7e2cfeaf471958492167844611fec63d4677f4b --- /dev/null +++ b/radvd-configure-c99.patch @@ -0,0 +1,47 @@ +commit 5acb1c64766dfaf37c9745632f99feecf11d1403 +Author: Sam James +Date: Fri Feb 3 02:33:13 2023 +0000 + + configure.ac: Fix -Wint-conversion warnings + + These become fatal with Clang 15 and may lead to incorrect configure + test results. + + ``` + -ignoreme: warning: incompatible pointer to integer conversion initializing 'int' with an expression of type 'uint16_t[8]' (aka 'unsigned short[8]') [-Wint-conversion] + +ignoreme: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'uint16_t[8]' (aka 'unsigned short[8]') [-Wint-conversion] + int u = in6_u.s6_addr16; + ^ ~~~~~~~~~~~~~~~ + ``` + + Signed-off-by: Sam James + +diff --git a/configure.ac b/configure.ac +index 23c21e7b4abedca1..a3976b605fa096e9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -174,15 +174,19 @@ AC_HEADER_TIME + + dnl Checks for typedefs, structures, and compiler characteristics. + AC_MSG_CHECKING(whether struct sockaddr_in6 has sin6_scope_id) +-AC_TRY_COMPILE([#include +-#include ], [static struct sockaddr_in6 ac_sin6; int ac_size = +-sizeof (ac_sin6.sin6_scope_id);], [AC_MSG_RESULT(yes); AC_DEFINE([HAVE_SIN6_SCOPE_ID], ++AC_TRY_COMPILE([#include ++#include ++#include ], [ ++static struct sockaddr_in6 ac_sin6; ++uint32_t ac_size = sizeof (ac_sin6.sin6_scope_id); ++], [AC_MSG_RESULT(yes); AC_DEFINE([HAVE_SIN6_SCOPE_ID], + 1, [whether struct sockaddr_in6 has sin6_scope_id])], + AC_MSG_RESULT(no)) + + AC_MSG_CHECKING(whether struct in6_addr has u6_addrXX and defines s6_addrXX) +-AC_TRY_COMPILE([#include ], [static struct in6_addr in6_u; +-int u = in6_u.s6_addr16;], [AC_MSG_RESULT(yes); AC_DEFINE([HAVE_IN6_ADDR_S6_ADDR], ++AC_TRY_COMPILE([#include ++#include ], [static struct in6_addr in6_u; ++uint16_t u = in6_u.s6_addr16[0];], [AC_MSG_RESULT(yes); AC_DEFINE([HAVE_IN6_ADDR_S6_ADDR], + 1, [whether struct in6_addr has u6_addrXX and defines s6_addrXX])], + AC_MSG_RESULT(no)) + diff --git a/radvd.spec b/radvd.spec index fe42cf2c3c0e9212228208fd5f299c5573183808..d2df7a065644422ac254b3e2f3652cb10d5644b6 100644 --- a/radvd.spec +++ b/radvd.spec @@ -1,17 +1,18 @@ -%define anolis_release 1 +%define anolis_release 2 Summary: A Router Advertisement daemon Name: radvd -Version: 2.19 +Version: 2.19 Release: %{anolis_release}%{?dist} # The code includes the advertising clause, so it's GPL-incompatible License: BSD with advertising URL: http://www.litech.org/radvd/ -Source0: %{url}dist/%{name}-%{version}.tar.xz -Source1: radvd.sysusers +Source0: http://www.litech.org/radvd/dist/radvd-2.19.tar.xz +Source1: radvd.sysusers Patch0: radvd-c99-1.patch Patch1: radvd-c99-2.patch +Patch2: radvd-configure-c99.patch BuildRequires: make BuildRequires: gcc @@ -107,5 +108,7 @@ make check %doc CHANGES INTRO.html README TODO %changelog +* Tue Oct 28 2025 wenyuzifang - 2.19-17 +- Fix compilation errors with Clang 15 by correcting type mismatches in configure tests * Wed Mar 15 2023 happy_orange - 2.19-1 - init package from upstream