diff --git a/libqb-fix-list-handling-gcc10.patch b/libqb-fix-list-handling-gcc10.patch new file mode 100644 index 0000000..670ce4f --- /dev/null +++ b/libqb-fix-list-handling-gcc10.patch @@ -0,0 +1,37 @@ +From 4f0a30f4e05e140e1325784195e79c5ec62c689c Mon Sep 17 00:00:00 2001 +From: Christine Caulfield +Date: Mon, 17 Feb 2020 16:28:57 +0000 +Subject: [PATCH] list: fix list handling for gcc10 + +--- + configure.ac | 1 - + include/qb/qblist.h | 4 ++-- + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index ec8736cb..108b2f18 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -558,7 +558,6 @@ + suggest-attribute=noreturn + suggest-attribute=format + strict-prototypes +- pointer-arith + write-strings + cast-align + bad-function-cast +diff --git a/include/qb/qblist.h b/include/qb/qblist.h +index e3ae3f18..8064c874 100644 +--- a/include/qb/qblist.h ++++ b/include/qb/qblist.h +@@ -193,8 +193,8 @@ static inline void qb_list_splice_tail(struct qb_list_head *list, + * @param type: the type of the struct this is embedded in. + * @param member: the name of the list_struct within the struct. + */ +-#define qb_list_entry(ptr,type,member)\ +- ((type *)((char *)(ptr)-(char*)(&((type *)0)->member))) ++#define qb_list_entry(ptr,type,member) ({ \ ++ ((type *)((void*)ptr - offsetof(type, member))); }) + + /** + * Get the first element from a list diff --git a/libqb.spec b/libqb.spec index 0722c57..0341066 100644 --- a/libqb.spec +++ b/libqb.spec @@ -2,21 +2,25 @@ Name: libqb Version: 1.0.5 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Library providing high performance logging, tracing, ipc, and poll License: LGPLv2+ URL: https://github.com/ClusterLabs/libqb Source0: https://github.com/ClusterLabs/libqb/releases/download/v%{version}/%{name}-%{version}.tar.xz Patch0: IPC-avoid-temporary-channel-priority-loss.patch +# https://github.com/ClusterLabs/libqb/pull/383 +Patch1: libqb-fix-list-handling-gcc10.patch -BuildRequires: autoconf automake libtool doxygen procps check-devel -# https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequires_and_Requires +BuildRequires: autoconf automake libtool +BuildRequires: check-devel +BuildRequires: doxygen BuildRequires: gcc +BuildRequires: procps # for ipc.test only (part of check scriptlet) BuildRequires: pkgconfig(glib-2.0) # git-style patch application -BuildRequires: git +BuildRequires: git-core %description libqb provides high-performance, reusable features for client-server @@ -24,23 +28,22 @@ architecture, such as logging, tracing, inter-process communication (IPC), and polling. %prep -%setup %autosetup -p1 -S git_am # for when patches around %build ./autogen.sh %configure --disable-static -make %{?_smp_mflags} V=1 +%{make_build} %if 0%{?with_check} %check -make VERBOSE=1 check \ - && make -C tests/functional/log_internal VERBOSE=1 check +make check V=1 \ + && make -C tests/functional/log_internal check V=1 %endif %install -make install DESTDIR=$RPM_BUILD_ROOT -find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' +%{make_install} +find $RPM_BUILD_ROOT -name '*.la' -delete rm -rf $RPM_BUILD_ROOT/%{_docdir}/* %ldconfig_scriptlets @@ -62,13 +65,16 @@ developing applications that use %{name}. %files devel %doc README.markdown -%license COPYING %{_includedir}/qb/ %{_libdir}/libqb.so %{_libdir}/pkgconfig/libqb.pc %{_mandir}/man3/qb*3* %changelog +* Mon Apr 6 2020 Peter Robinson 1.0.5-5 +- Upstream fix for test failures (fix FTBFS) +- spec cleanups + * Wed Jan 29 2020 Fedora Release Engineering - 1.0.5-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild