diff --git a/.gitignore b/.gitignore index aca547c..a135c37 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,38 @@ userspace-rcu-0.4.1.tar.bz2 /userspace-rcu-0.7.7.tar.bz2 /userspace-rcu-0.7.9.tar.bz2 /userspace-rcu-0.8.1.tar.bz2 +/userspace-rcu-0.8.5.tar.bz2 +/userspace-rcu-0.8.6.tar.bz2 +/userspace-rcu-0.9.2.tar.bz2 +/userspace-rcu-0.9.3.tar.bz2 +/userspace-rcu-0.10.0.tar.bz2 +/userspace-rcu-0.10.1.tar.bz2 +/userspace-rcu-0.10.2.tar.bz2 +/userspace-rcu-0.11.0.tar.bz2 +/userspace-rcu-0.11.1.tar.bz2 +/userspace-rcu-0.12.0.tar.bz2 +/userspace-rcu-0.12.1.tar.bz2 +/userspace-rcu-0.12.2.tar.bz2 +/userspace-rcu-0.12.2.tar.bz2.asc +/userspace-rcu-0.13.0.tar.bz2 +/userspace-rcu-0.13.0.tar.bz2.asc +/userspace-rcu-0.13.2.tar.bz2 +/userspace-rcu-0.13.2.tar.bz2.asc +/userspace-rcu-0.14.0.tar.bz2 +/userspace-rcu-0.14.0.tar.bz2.asc +/userspace-rcu-0.14.1.tar.bz2 +/userspace-rcu-0.14.1.tar.bz2.asc +/userspace-rcu-0.15.0.tar.bz2 +/userspace-rcu-0.15.0.tar.bz2.asc +/userspace-rcu-0.15.1.tar.bz2 +/userspace-rcu-0.15.1.tar.bz2.asc +/userspace-rcu-0.15.2.tar.bz2 +/userspace-rcu-0.15.2.tar.bz2.asc +/userspace-rcu-0.15.3.tar.bz2 +/userspace-rcu-0.15.3.tar.bz2.asc +/userspace-rcu-0.15.4.tar.bz2 +/userspace-rcu-0.15.4.tar.bz2.asc +/userspace-rcu-0.15.5.tar.bz2 +/userspace-rcu-0.15.5.tar.bz2.asc +/userspace-rcu-0.15.6.tar.bz2 +/userspace-rcu-0.15.6.tar.bz2.asc diff --git a/gpgkey-2A0B4ED915F2D3FA45F5B16217280A9781186ACF.gpg b/gpgkey-2A0B4ED915F2D3FA45F5B16217280A9781186ACF.gpg new file mode 100644 index 0000000..93013f5 Binary files /dev/null and b/gpgkey-2A0B4ED915F2D3FA45F5B16217280A9781186ACF.gpg differ diff --git a/regtest-without-bench.patch b/regtest-without-bench.patch new file mode 100644 index 0000000..8497367 --- /dev/null +++ b/regtest-without-bench.patch @@ -0,0 +1,12 @@ +Remove the benchmarks from the regtest target, they timeout on the buildds. + +--- a/tests/Makefile.am.orig 2019-06-03 15:46:16.380163423 -0400 ++++ b/tests/Makefile.am 2019-06-03 15:46:26.099004417 -0400 +@@ -8,7 +8,6 @@ + cd benchmark && $(MAKE) $(AM_MAKEFLAGS) long_bench + regtest: + cd regression && $(MAKE) $(AM_MAKEFLAGS) regtest +- cd benchmark && $(MAKE) $(AM_MAKEFLAGS) regtest + + check-loop: + while [ 0 ]; do \ diff --git a/sources b/sources index f6f14fd..18cd228 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -c0c0613bcce3b6954a050faa6dec6f51 userspace-rcu-0.8.1.tar.bz2 +SHA512 (userspace-rcu-0.15.6.tar.bz2) = 53c28821dabfc1e8803c4299f6a9e589c9949d0062dd8aaa4aabb6d77641dfbd2b2c035c50680991d9f228499c12b9b23469044726a6ffce5e84f21f17cabff3 +SHA512 (userspace-rcu-0.15.6.tar.bz2.asc) = cd1b0fac74c01ef82d6e09a909b65026ccccec9b7bf042ec38783631c6a9e99993b570b2200ba814303483c99aaa44dc6ac2e58d7cd24ee5e5027becff724ff0 diff --git a/userspace-rcu-aarch64.patch b/userspace-rcu-aarch64.patch deleted file mode 100644 index d6bc574..0000000 --- a/userspace-rcu-aarch64.patch +++ /dev/null @@ -1,36 +0,0 @@ -From: Dimitri John Ledkov -Date: Wed, 12 Mar 2014 12:17:51 +0000 (-0400) -Subject: Use gcc atomics on aarch64/powerpc64le -X-Git-Url: http://git.lttng.org/?p=userspace-rcu.git;a=commitdiff_plain;h=3913336f0e763b4ab614aa6b6e41e20b481e50c3 - -Use gcc atomics on aarch64/powerpc64le - -Currently there are two fairly recent architectures, which at the -moment can only be compiled with "gcc atomics" code path. -The two new architectures are (GNU Types): -* aarch64-linux-gnu (aka ARMv8, ARM64, AARCH64, etc) -* powerpc64le-linux-gnu - -Signed-off-by: Mathieu Desnoyers ---- - -diff --git a/configure.ac b/configure.ac -index 079c145..3368b33 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -69,6 +69,7 @@ AS_CASE([$host_cpu], - [powerpc], [ARCHTYPE="ppc"], - [ppc64], [ARCHTYPE="ppc"], - [powerpc64], [ARCHTYPE="ppc"], -+ [powerpc64le], [ARCHTYPE="gcc"], - [ppc], [ARCHTYPE="ppc"], - [s390], [ARCHTYPE="s390"], - [s390x], [ARCHTYPE="s390"], -@@ -77,6 +78,7 @@ AS_CASE([$host_cpu], - [alpha*], [ARCHTYPE="alpha"], - [ia64], [ARCHTYPE="gcc"], - [arm*], [ARCHTYPE="arm"], -+ [aarch64], [ARCHTYPE="gcc"], - [mips*], [ARCHTYPE="mips"], - [tile*], [ARCHTYPE="gcc"], - [ARCHTYPE="unknown"] diff --git a/userspace-rcu.spec b/userspace-rcu.spec index 9f6ef93..df6ede8 100644 --- a/userspace-rcu.spec +++ b/userspace-rcu.spec @@ -1,17 +1,23 @@ Name: userspace-rcu -Version: 0.8.1 -Release: 5%{?dist} -Summary: RCU (read-copy-update) implementation in user space +Version: 0.15.6 +Release: 2%{?dist} +Summary: RCU (read-copy-update) implementation in user-space +License: LGPL-2.1-or-later +URL: https://liburcu.org -Group: System Environment/Libraries -License: LGPLv2+ -URL: http://lttng.org/urcu/ -Source0: http://lttng.org/files/urcu/%{name}-%{version}.tar.bz2 -Patch0: userspace-rcu-aarch64.patch -BuildRequires: autoconf automake libtool -BuildRequires: pkgconfig -# Upstream do not yet support mips -ExcludeArch: mips +Source0: https://lttng.org/files/urcu/%{name}-%{version}.tar.bz2 +Source1: https://lttng.org/files/urcu/%{name}-%{version}.tar.bz2.asc +# gpg2 --export --export-options export-minimal 2A0B4ED915F2D3FA45F5B16217280A9781186ACF > gpgkey-2A0B4ED915F2D3FA45F5B16217280A9781186ACF.gpg +Source2: gpgkey-2A0B4ED915F2D3FA45F5B16217280A9781186ACF.gpg +Patch0: regtest-without-bench.patch +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: libtool +BuildRequires: make +BuildRequires: multilib-rpm-config +BuildRequires: pkgconfig %description This data synchronization library provides read-side access which scales @@ -22,59 +28,220 @@ reclamation is possible. %package devel Summary: Development files for %{name} -Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} %description devel -The %{name}-devel package contains libraries and header files for -developing applications that use %{name}. +This package contains libraries and header files for developing applications +that use %{name} %prep -%setup -q -%patch0 -p1 - +%autosetup -p1 %build -# Patch for AArch64 and PPC64LE needs it -autoreconf -vif -%configure --disable-static -#Remove Rpath from build system -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +# Reinitialize libtool with the fedora version to remove Rpath +autoreconf -vif -W all,error +%configure --disable-static --enable-compiler-atomic-builtins V=1 make %{?_smp_mflags} %install make install DESTDIR=$RPM_BUILD_ROOT -rm -vf $RPM_BUILD_ROOT%{_libdir}/*.la - +find %{buildroot} -type f -name "*.la" -delete +rm %{buildroot}/%{_docdir}/%{name}/LICENSE.md +# Replace arch-dependent header file with arch-independent stub (when needed). +%multilib_fix_c_header --file %{_includedir}/urcu/config.h +%multilib_fix_c_header --file %{_includedir}/urcu/arch.h +%multilib_fix_c_header --file %{_includedir}/urcu/uatomic.h %check -#TODO greenscientist: make check currently fail in mockbuild -#make check +make check +make regtest -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig +%ldconfig_scriptlets %files -%doc LICENSE gpl-2.0.txt lgpl-relicensing.txt lgpl-2.1.txt -%{_docdir}/%{name}/README -%{_docdir}/%{name}/ChangeLog -%{_libdir}/*.so.* +%license LICENSE.md lgpl-relicensing.md +%doc ChangeLog README.md +%{_libdir}/liburcu-bp.so.8* +%{_libdir}/liburcu-cds.so.8* +%{_libdir}/liburcu-common.so.8* +%{_libdir}/liburcu-mb.so.8* +%{_libdir}/liburcu-memb.so.8* +%{_libdir}/liburcu-qsbr.so.8* +%{_libdir}/liburcu.so.8* %files devel +%doc %{_pkgdocdir}/examples %{_includedir}/* -%{_libdir}/*.so +%{_libdir}/liburcu-bp.so +%{_libdir}/liburcu-cds.so +%{_libdir}/liburcu-common.so +%{_libdir}/liburcu-mb.so +%{_libdir}/liburcu-memb.so +%{_libdir}/liburcu-qsbr.so +%{_libdir}/liburcu.so %{_libdir}/pkgconfig/liburcu*.pc -%{_docdir}/%{name}/README -%{_docdir}/%{name}/*.txt +%{_docdir}/%{name}/cds-api.md +%{_docdir}/%{name}/rcu-api.md +%{_docdir}/%{name}/solaris-build.md +%{_docdir}/%{name}/uatomic-api.md %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 0.15.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Fri Jan 30 2026 Michael Jeanson - 0.15.6-1 +- New upstream release + +* Sat Jan 17 2026 Fedora Release Engineering - 0.15.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Nov 12 2025 Michael Jeanson - 0.15.5-1 +- New upstream release + +* Mon Nov 10 2025 Michael Jeanson - 0.15.4-1 +- New upstream release + +* Fri Jul 25 2025 Fedora Release Engineering - 0.15.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue May 20 2025 Michael Jeanson - 0.15.3-1 +- New upstream release + +* Tue Apr 15 2025 Michael Jeanson - 0.15.2-1 +- New upstream release + +* Tue Feb 18 2025 Michael Jeanson - 0.15.1-1 +- New upstream release + +* Thu Jan 16 2025 Michael Jeanson - 0.15.0-1 +- New upstream release +- The 'signal' flavour of liburcu was removed upstream +- Enable compiler atomics + +* Tue Sep 03 2024 Kienan Stewart - 0.14.1-1 +- New upstream release + +* Sat Jul 20 2024 Fedora Release Engineering - 0.14.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 0.14.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 0.14.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon May 08 2023 Michael Jeanson - 0.14.0-2 +- migrated to SPDX license + +* Thu Apr 27 2023 Michael Jeanson - 0.14.0-1 +- New upstream release + +* Sat Jan 21 2023 Fedora Release Engineering - 0.13.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Oct 28 2022 Michael Jeanson - 0.13.2-1 +- New upstream release + +* Sat Jul 23 2022 Fedora Release Engineering - 0.13.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 0.13.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.13.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Michael Jeanson - 0.13.0-2 +- New upstream release +- Bump SONAME to 8 + +* Thu Feb 18 2021 Michael Jeanson - 0.12.2-1 +- New upstream release + +* Wed Feb 17 2021 Michael Jeanson - 0.12.1-4 +- Fix conflicts in userspace-rcu-devel multilib packages (#1886615) + +* Wed Jan 27 2021 Fedora Release Engineering - 0.12.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 0.12.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Apr 22 2020 Michael Jeanson - 0.12.1-1 +- New upstream release + +* Tue Apr 14 2020 Michael Jeanson - 0.12.0-1 +- New upstream release + +* Fri Jan 31 2020 Fedora Release Engineering - 0.11.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jul 27 2019 Fedora Release Engineering - 0.11.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jun 03 2019 Michael Jeanson - 0.11.1-1 +- New upstream release + +* Fri May 03 2019 Michael Jeanson - 0.10.2-1 +- New upstream release + +* Sun Feb 03 2019 Fedora Release Engineering - 0.10.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 0.10.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu May 10 2018 Peter Robinson 0.10.1-3 +- Use %%license, spec cleanups + +* Fri Feb 09 2018 Fedora Release Engineering - 0.10.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 23 2018 Michael Jeanson - 0.10.1-1 +- New upstream release + +* Thu Aug 03 2017 Fedora Release Engineering - 0.10.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 0.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jun 22 2017 Michael Jeanson - 0.10.0-1 +- New upstream release + +* Sat Feb 11 2017 Fedora Release Engineering - 0.9.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Nov 30 2016 Michael Jeanson - 0.9.3-1 +- New upstream release + +* Wed Jun 22 2016 Michael Jeanson - 0.9.2-2 +- Re-add rpath removing + +* Tue Jun 21 2016 Michael Jeanson - 0.9.2-1 +- New upstream release +- Dropped aarch64 patch merged upstream + +* Sun May 15 2016 Yaakov Selkowitz - 0.8.6-4 +- Fix %%doc usage (#1001239) + +* Fri Feb 05 2016 Fedora Release Engineering - 0.8.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jun 19 2015 Fedora Release Engineering - 0.8.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Feb 26 2015 Scott Tsai - 0.8.6-1 +- New upstream release + +* Sun Nov 02 2014 Suchakra Sharma - 0.8.5-1 +- New upstream release + * Mon Aug 18 2014 Fedora Release Engineering - 0.8.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild