diff --git a/baselibs.conf b/baselibs.conf index ce5d351..5f2bffc 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1 +1,8 @@ -libunwind +libunwind8 + conflicts "libunwind-" +libunwind-coredump0 + conflicts "libunwind-" +libunwind-ptrace0 + conflicts "libunwind-" +libunwind-setjmp0 + conflicts "libunwind-" diff --git a/libunwind.changes b/libunwind.changes index cc04b4f..ccd74f6 100644 --- a/libunwind.changes +++ b/libunwind.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Wed May 18 07:52:13 UTC 2022 - Jan Engelhardt + +- Adjust baselibs.conf for shlib guideline. + +------------------------------------------------------------------- +Mon May 16 10:22:02 UTC 2022 - Jan Engelhardt + +- Add Conflict markers for earlier combined libunwind. + +------------------------------------------------------------------- +Fri May 13 06:35:55 UTC 2022 - Jan Engelhardt + +- Resolve rpmlint error "libunwind.x86_64: E: + shlib-policy-name-error SONAME: libunwind-coredump.so.0, + expected package suffix: 0" + ------------------------------------------------------------------- Fri May 6 09:25:52 UTC 2022 - Andreas Schwab diff --git a/libunwind.spec b/libunwind.spec index 5d6b7fb..7761fec 100644 --- a/libunwind.spec +++ b/libunwind.spec @@ -35,16 +35,60 @@ ExcludeArch: s390 %description A C programming interface (API) to determine the call chain of a program. +%package -n libunwind8 +Summary: Call chain detection library for process self-inspection +Group: System/Libraries +Conflicts: libunwind < %{version}-%{release} + +%description -n libunwind8 +A C programming interface (API) to determine the call chain of a +program from within the same process. + +%package -n libunwind-coredump0 +Summary: Call chain detection library for coredump images +Group: System/Libraries +Conflicts: libunwind < %{version}-%{release} + +%description -n libunwind-coredump0 +A C programming interface (API) to determine the call chains +of the threads in coredump images. + +%package -n libunwind-ptrace0 +Summary: Call chain detection library for ptraced processes +Group: System/Libraries +Conflicts: libunwind < %{version}-%{release} + +%description -n libunwind-ptrace0 +A C programming interface (API) to determine the call chains of +another process by means of using ptrace(2) on it. + +%package -n libunwind-setjmp0 +Summary: Non-local goto (setjmp/longmap) implementation based on libunwind +Group: System/Libraries +Conflicts: libunwind < %{version}-%{release} + +%description -n libunwind-setjmp0 +The unwind-setjmp library offers a libunwind-based implementation of +non-local gotos. This is a drop-in replacement for the normal, +system-provided routines of the same name. With this library, setting +up a non-local goto via setjmp is generally faster compared to the +system routines, at the cost of a much slower longjmp. + %package devel Summary: Headers for the Unwind library Group: Development/Libraries/C and C++ -Requires: %{name} = %{version} +Requires: libunwind-coredump0 = %{version}-%{release} +Requires: libunwind-ptrace0 = %{version}-%{release} +Requires: libunwind-setjmp0 = %{version}-%{release} +Requires: libunwind8 = %{version}-%{release} %description devel -A C programming interface (API) to determine the call chain of a program. +A set of C programming interfaces to determine the call chain within a running +program (libunwind), of a coredump image (libunwind-coredump), or of a separate +process (libunwind-ptrace). %prep -%setup -q +%autosetup %build %configure \ @@ -58,12 +102,48 @@ A C programming interface (API) to determine the call chain of a program. %install %make_install find %{buildroot} -iregex '.*\.l?a$' -delete -print +# Help packagers with %files +find %{buildroot}/%{_libdir} -type f | sort -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%post -n libunwind8 -p /sbin/ldconfig +%postun -n libunwind8 -p /sbin/ldconfig +%post -n libunwind-coredump0 -p /sbin/ldconfig +%postun -n libunwind-coredump0 -p /sbin/ldconfig +%post -n libunwind-ptrace0 -p /sbin/ldconfig +%postun -n libunwind-ptrace0 -p /sbin/ldconfig +%post -n libunwind-setjmp0 -p /sbin/ldconfig +%postun -n libunwind-setjmp0 -p /sbin/ldconfig -%files -%{_libdir}/lib*.so.* +%files -n libunwind8 +%{_libdir}/libunwind.so.8* +%ifarch %arm +%{_libdir}/libunwind-arm.so.8* +%else +%ifarch riscv32 riscv64 +%{_libdir}/libunwind-riscv.so.8* +%else +%ifarch %ix86 +%{_libdir}/libunwind-x86.so.8* +%else +%ifarch ppc ppc64 ppc64le +%{_libdir}/libunwind-ppc64.so.8* +%else +%{_libdir}/libunwind-%{_target_cpu}.so.8* +%endif +%endif +%endif +%endif + +%ifnarch ppc64 ppc64le s390x +%files -n libunwind-coredump0 +%{_libdir}/libunwind-coredump.so.0* +%endif + +%files -n libunwind-setjmp0 +%{_libdir}/libunwind-setjmp.so.0* + +%files -n libunwind-ptrace0 +%{_libdir}/libunwind-ptrace.so.0* %files devel %{_includedir}/*