diff --git a/libsigsegv.spec b/libsigsegv.spec index d3ac975..91f2bf6 100644 --- a/libsigsegv.spec +++ b/libsigsegv.spec @@ -1,15 +1,19 @@ +%define multilib_arches i386 x86_64 ppc ppc64 s390 s390x sparc sparc64 + Summary: Library for handling page faults in user mode Name: libsigsegv Version: 2.4 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv2+ URL: http://libsigsegv.sourceforge.net/ -Source: http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-%{version}.tar.gz +Source0: http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-%{version}.tar.gz Group: System Environment/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Source1: sigsegv-wrapper.h + %description This is a library for handling page faults in user mode. A page fault occurs when a program tries to access to a region of memory that is @@ -28,6 +32,13 @@ Requires: %{name} = %{version}-%{release} %description devel %{summary}. +%package static +Summary: Static libraries for %{name} +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} +%description static +%{summary}. + %prep %setup -q @@ -46,6 +57,13 @@ rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT +%ifarch %{multilib_arches} +# hack to allow parallel installation on 32-bit and 64-bit + mv %{buildroot}%{_includedir}/sigsegv.h \ + %{buildroot}%{_includedir}/sigsegv-%{_arch}.h + install -p -m644 %{SOURCE1} %{buildroot}%{_includedir}/sigsegv.h +%endif + rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.la @@ -70,12 +88,18 @@ rm -rf $RPM_BUILD_ROOT %files devel %defattr(-,root,root,-) %{_libdir}/lib*.so -# TODO: package static lib separately +%{_includedir}/*.h + +%files static +%defattr(-,root,root,-) %{_libdir}/lib*.a -%{_includedir}/* %changelog +* Fri Feb 22 2008 Rex Dieter 2.4-6 +- multiarch conflicts (#342391) +- -static subpkg + * Tue Feb 19 2008 Fedora Release Engineering - 2.4-5 - Autorebuild for GCC 4.3 diff --git a/sigsegv-wrapper.h b/sigsegv-wrapper.h new file mode 100644 index 0000000..e99b3a2 --- /dev/null +++ b/sigsegv-wrapper.h @@ -0,0 +1,24 @@ +/* This file is here to prevent a file conflict on multiarch systems. A + * conflict will occur because sigsegv.h has arch-specific definitions. + * + * DO NOT INCLUDE THE NEW FILE DIRECTLY -- ALWAYS INCLUDE THIS ONE INSTEAD. */ + +#if defined(__x86_64__) +#include "sigsegv-x86_64.h" +#elif defined(__i386__) +#include "sigsegv-i386.h" +#elif defined(__powerpc64__) +#include "sigsegv-ppc64.h" +#elif defined(__powerpc__) +#include "sigsegv-ppc.h" +#elif defined(__s390x__) +#include "sigsegv-s390x.h" +#elif defined(__s390__) +#include "sigsegv-s390.h" +#elif defined(__sparc64__) +#include "sigsegv-sparc64.h" +#elif defined(__sparc__) +#include "sigsegv-sparc.h" +#else +#error "This libsigsegv-devel package does not work your architecture?" +#endif