spec cleanup, better multilib fix

This commit is contained in:
Rex Dieter 2012-07-10 15:03:19 -05:00
parent 63e73d5ceb
commit a5a1628a70
2 changed files with 56 additions and 64 deletions

View File

@ -1,25 +1,24 @@
# Fedora Review Request #393041
# https://bugzilla.redhat.com/show_bug.cgi?id=393041
Name: libzip
Version: 0.10.1
Release: 1%{?dist}
Summary: C library for reading, creating, and modifying zip archives
%define multilib_archs x86_64 %{ix86} ppc64 ppc s390x s390 sparc64 sparcv9
Group: System Environment/Libraries
License: BSD
URL: http://www.nih.at/libzip/index.html
Source0: http://www.nih.at/libzip/libzip-%{version}.tar.bz2
Name: libzip
Version: 0.10.1
Release: 2%{?dist}
Summary: C library for reading, creating, and modifying zip archives
License: BSD
URL: http://www.nih.at/libzip/index.html
Source0: http://www.nih.at/libzip/libzip-%{version}.tar.bz2
#BuildRequires: automake libtool
BuildRequires: zlib-devel
# to handle multiarch headers, ex from mysql-devel package
Source1: zipconf.h
Source1: zipconf.h
# fonctionnal changes from php bundled library
Patch0: libzip-0.10-php.patch
Patch0: libzip-0.10-php.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: automake libtool
BuildRequires: zlib-devel
%description
libzip is a C library for reading, creating, and modifying zip archives. Files
@ -29,9 +28,7 @@ The API is documented by man pages.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
@ -43,49 +40,42 @@ developing applications that use %{name}.
%patch0 -p1 -b .forphp
# Avoid lib64 rpaths (FIXME: recheck this on newer releases)
#if "%{_libdir}" != "/usr/lib"
#sed -i -e 's|"/lib /usr/lib|"/%{_lib} %{_libdir}|' configure
autoreconf -f -i
#endif
%if "%{_libdir}" != "/usr/lib"
sed -i -e 's|"/lib /usr/lib|"/%{_lib} %{_libdir}|' configure
#autoreconf -f -i
%endif
%build
%configure --disable-static
%configure \
--disable-static
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p'
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
# Handle multiarch headers
case `uname -i` in
i386 | x86_64 | ppc | ppc64 | s390 | s390x | sparc | sparc64 )
# we only apply this to known Fedora multilib arches
mv $RPM_BUILD_ROOT%{_libdir}/libzip/include/zipconf.h \
$RPM_BUILD_ROOT%{_includedir}/zipconf_$(uname -i).h
install -pm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_includedir}/zipconf.h
;;
*)
# Other arch (ARM, ...)
mv $RPM_BUILD_ROOT%{_libdir}/libzip/include/zipconf.h \
$RPM_BUILD_ROOT%{_includedir}/zipconf.h
;;
esac
make install DESTDIR=%{buildroot} INSTALL='install -p'
## unpackaged files
rm -fv %{buildroot}%{_libdir}/lib*.la
%clean
rm -rf $RPM_BUILD_ROOT
## FIXME: someday fix consumers of libzip to properly handle
## header @ %%{_libdir}/libzip/include/zipconf.h -- rex
%ifarch %{multilib_archs}
cp -alf %{buildroot}%{_libdir}/libzip/include/zipconf.h \
%{buildroot}%{_includedir}/zipconf-%{__isa_bits}.h
install -D -m644 -p %{SOURCE1} %{buildroot}%{_includedir}/zipconf.h
%else
cp -alf %{buildroot}%{_libdir}/libzip/include/zipconf.h \
%{buildroot}%{_includedir}/zipconf.h
%endif
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%doc AUTHORS NEWS README THANKS TODO
%{_bindir}/zipcmp
%{_bindir}/zipmerge
@ -94,14 +84,19 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/*zip*
%files devel
%defattr(-,root,root,-)
%{_includedir}/zip*.h
%{_includedir}/zip.h
%{_includedir}/zipconf*.h
%dir %{_libdir}/libzip
%{_libdir}/libzip/include
%{_libdir}/libzip.so
%{_libdir}/pkgconfig/libzip.pc
%{_mandir}/man3/*zip*
%changelog
* Tue Jul 10 2012 Rex Dieter <rdieter@fedoraproject.org> 0.10.1-2
- spec cleanup, better multilib fix
* Wed Mar 21 2012 Remi Collet <remi@fedoraproject.org> - 0.10.1-1
- update to 0.10.1 (security fix only)
- fixes for CVE-2012-1162 and CVE-2012-1163

View File

@ -6,21 +6,18 @@
*
* To avoid breaking arches not explicitly supported by Fedora, we
* use this indirection file *only* on known multilib arches.
*/
#if defined(__x86_64__)
#include "zipconf_x86_64.h"
#elif defined(__i386__)
#include "zipconf_i386.h"
#elif defined(__ppc64__) || defined(__powerpc64__)
#include "zipconf_ppc64.h"
#elif defined(__ppc__) || defined(__powerpc__)
#include "zipconf_ppc.h"
#elif defined(__s390x__)
#include "zipconf_s390x.h"
#elif defined(__s390__)
#include "zipconf_s390.h"
#elif defined(__sparc__) && defined(__arch64__)
#include "zipconf_sparc64.h"
#elif defined(__sparc__)
#include "zipconf_sparc.h"
* DO NOT INCLUDE THE NEW FILE DIRECTLY -- ALWAYS INCLUDE THIS ONE INSTEAD. */
#ifndef ZIPCONF_MULTILIB_H
#define ZIPCONF_MULTILIB_H
#include <bits/wordsize.h>
#if __WORDSIZE == 32
#include "zipconf-32.h"
#elif __WORDSIZE == 64
#include "zipconf-64.h"
#else
#error "unexpected value for __WORDSIZE macro"
#endif
#endif