bd9b18
%global multilib_arches %{ix86} ppc ppc64 s390 s390x x86_64
bd9b18
bd9b18
Name:		libffi
bd9b18
Version:	3.0.13
bd9b18
Release:	16%{?dist}
bd9b18
Summary:	A portable foreign function interface library
bd9b18
bd9b18
Group:		System Environment/Libraries
bd9b18
License:	MIT and Public Domain
bd9b18
URL:		http://sourceware.org/libffi
bd9b18
Source0:	ftp://sourceware.org/pub/libffi/libffi-%{version}.tar.gz
bd9b18
# part of upstream commit 5feacad4
bd9b18
Source1:	ffi-multilib.h
bd9b18
Source2:	ffitarget-multilib.h
bd9b18
Patch0:		libffi-3.0.13-fix-include-path.patch
bd9b18
Patch1:		libffi-fix-ppc-tests.patch
bd9b18
# part of upstream commit 5feacad4
bd9b18
Patch10:	libffi-3.0.13-ppc64le-0.patch
bd9b18
Patch11:	libffi-3.0.13-ppc64le-1.patch
bd9b18
Patch12:	libffi-3.0.13-ppc64le-2.patch
bd9b18
Patch13:	libffi-3.0.13-ppc64le-3.patch
bd9b18
%ifarch ppc64le
bd9b18
BuildRequires:  autoconf automake libtool texinfo
bd9b18
%endif
bd9b18
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
bd9b18
bd9b18
%description
bd9b18
Compilers for high level languages generate code that follow certain
bd9b18
conventions.  These conventions are necessary, in part, for separate
bd9b18
compilation to work.  One such convention is the "calling convention".
bd9b18
The calling convention is a set of assumptions made by the compiler
bd9b18
about where function arguments will be found on entry to a function.  A
bd9b18
calling convention also specifies where the return value for a function
bd9b18
is found.  
bd9b18
bd9b18
Some programs may not know at the time of compilation what arguments
bd9b18
are to be passed to a function.  For instance, an interpreter may be
bd9b18
told at run-time about the number and types of arguments used to call a
bd9b18
given function.  `Libffi' can be used in such programs to provide a
bd9b18
bridge from the interpreter program to compiled code.
bd9b18
bd9b18
The `libffi' library provides a portable, high level programming
bd9b18
interface to various calling conventions.  This allows a programmer to
bd9b18
call any function specified by a call interface description at run time.
bd9b18
bd9b18
FFI stands for Foreign Function Interface.  A foreign function
bd9b18
interface is the popular name for the interface that allows code
bd9b18
written in one language to call code written in another language.  The
bd9b18
`libffi' library really only provides the lowest, machine dependent
bd9b18
layer of a fully featured foreign function interface.  A layer must
bd9b18
exist above `libffi' that handles type conversions for values passed
bd9b18
between the two languages.  
bd9b18
bd9b18
bd9b18
%package	devel
bd9b18
Summary:	Development files for %{name}
bd9b18
Group:		Development/Libraries
bd9b18
Requires:	%{name} = %{version}-%{release}
bd9b18
Requires:       pkgconfig
bd9b18
Requires(post): /sbin/install-info
bd9b18
Requires(preun): /sbin/install-info
bd9b18
bd9b18
%description	devel
bd9b18
The %{name}-devel package contains libraries and header files for
bd9b18
developing applications that use %{name}.
bd9b18
bd9b18
bd9b18
%prep
bd9b18
%setup -q
bd9b18
%patch0 -p1 -b .fixpath
bd9b18
%patch1 -p1 -b .fixpath
bd9b18
%ifarch ppc64le
bd9b18
%patch10 -p1 -b .ppc64le-0
bd9b18
%patch11 -p1 -b .ppc64le-1
bd9b18
%patch12 -p1 -b .ppc64le-2
bd9b18
%patch13 -p1 -b .ppc64le-3
bd9b18
bd9b18
autoreconf -vif
bd9b18
%endif
bd9b18
bd9b18
bd9b18
%build
bd9b18
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" %configure --disable-static
bd9b18
make %{?_smp_mflags}
bd9b18
bd9b18
bd9b18
%install
bd9b18
rm -rf $RPM_BUILD_ROOT
bd9b18
make install DESTDIR=$RPM_BUILD_ROOT
bd9b18
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
bd9b18
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
bd9b18
bd9b18
# Determine generic arch target name for multilib wrapper
bd9b18
basearch=%{_arch}
bd9b18
%ifarch %{ix86}
bd9b18
basearch=i386
bd9b18
%endif
bd9b18
bd9b18
%ifarch %{multilib_arches}
bd9b18
# Do header file switcheroo to avoid file conflicts on systems where you
bd9b18
# can have both a 32- and 64-bit version of the library, and they each need
bd9b18
# their own correct-but-different versions of the headers to be usable.
bd9b18
for i in ffi ffitarget; do
bd9b18
  mv $RPM_BUILD_ROOT%{_includedir}/$i.h $RPM_BUILD_ROOT%{_includedir}/$i-${basearch}.h
bd9b18
done
bd9b18
install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_includedir}/ffi.h
bd9b18
install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_includedir}/ffitarget.h
bd9b18
%endif
bd9b18
bd9b18
bd9b18
%clean
bd9b18
rm -rf $RPM_BUILD_ROOT
bd9b18
bd9b18
bd9b18
%post -p /sbin/ldconfig
bd9b18
bd9b18
%post devel
bd9b18
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libffi.info.gz
bd9b18
bd9b18
%preun devel
bd9b18
if [ $1 = 0 ] ;then
bd9b18
  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libffi.info.gz
bd9b18
fi
bd9b18
bd9b18
%postun -p /sbin/ldconfig
bd9b18
bd9b18
bd9b18
%files
bd9b18
%defattr(-,root,root,-)
bd9b18
%doc LICENSE README
bd9b18
%{_libdir}/*.so.*
bd9b18
bd9b18
%files devel
bd9b18
%defattr(-,root,root,-)
bd9b18
%{_libdir}/pkgconfig/*.pc
bd9b18
%{_includedir}/ffi*.h
bd9b18
%{_libdir}/*.so
bd9b18
%{_mandir}/man3/*.gz
bd9b18
%{_infodir}/libffi.info.gz
bd9b18
bd9b18
%changelog
bd9b18
* Tue Sep 02 2014 Dan HorĂ¡k <dhorak@redhat.com> - 3.0.13-16
bd9b18
- Drop ppc64le from the multilib list
bd9b18
- Use additional BR: only in ppc64le build
bd9b18
- Resolves: RHBZ1116945
bd9b18
bd9b18
* Tue Aug 26 2014 Andrew Haley <aph@redhat.com> - 3.0.13-15
bd9b18
- Add requires for libtool and texinfo
bd9b18
- Resolves: RHBZ1116945
bd9b18
bd9b18
* Tue Aug 26 2014 Andrew Haley <aph@redhat.com> - 3.0.13-14
bd9b18
- Add requires for automake
bd9b18
- Resolves: RHBZ1116945
bd9b18
bd9b18
* Tue Aug 26 2014 Andrew Haley <aph@redhat.com> - 3.0.13-13
bd9b18
- Add requires for autoconf
bd9b18
- Resolves: RHBZ1116945
bd9b18
bd9b18
* Tue Aug 26 2014 Andrew Haley <aph@redhat.com> - 3.0.13-12
bd9b18
- Merge from private-rhel-7.0-ppc64le branch
bd9b18
- Resolves: RHBZ1116945
bd9b18
bd9b18
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 3.0.13-11
bd9b18
- Mass rebuild 2014-01-24
bd9b18
bd9b18
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 3.0.13-10
bd9b18
- Mass rebuild 2013-12-27
bd9b18
bd9b18
* Wed Dec 18 2013 Deepak Bhole <dbhole@redhat.com> - 3.0.13-9
bd9b18
- Added -fno-strict-aliasing (pointed out by rpmdiff)
bd9b18
- Fixes RHBZ 1006261
bd9b18
bd9b18
* Fri Nov 15 2013 Jon VanAlten <jon.vanalten@redhat.com> - 3.0.13-8
bd9b18
- Patch test suite to fix errors on ppc64
bd9b18
- Fixes RHBZ 1006261
bd9b18
bd9b18
* Thu Aug 22 2013 Deepak Bhole <dbhole@redhat.com> - 3.0.13-7
bd9b18
- Removed temporarily introduced compat package for OpenJDk6 bootstrap
bd9b18
bd9b18
* Wed Aug 21 2013 Deepak Bhole <dbhole@redhat.com> - 3.0.13-6
bd9b18
- Temporarily build with a .so.5 compat package to allow OpenJDK6 bootstrap
bd9b18
bd9b18
* Mon Jul 15 2013 Jon VanAlten <jon.vanalten@redhat.com> - 3.0.13-5
bd9b18
- Correct spec license
bd9b18
bd9b18
* Tue May 28 2013 Tom Callaway <spot@fedoraproject.org> - 3.0.13-4
bd9b18
- fix typos in wrapper headers
bd9b18
bd9b18
* Mon May 27 2013 Tom Callaway <spot@fedoraproject.org> - 3.0.13-3
bd9b18
- make header files multilib safe
bd9b18
bd9b18
* Sat May 25 2013 Tom Callaway <spot@fedoraproject.org> - 3.0.13-2
bd9b18
- fix incorrect header pathing (and .pc file)
bd9b18
bd9b18
* Wed Mar 20 2013 Anthony Green <green@redhat.com> - 3.0.13-1
bd9b18
- update to 3.0.13
bd9b18
bd9b18
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.11-2
bd9b18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
bd9b18
bd9b18
* Mon Jan 14 2013 Dennis Gilmore <dennis@ausil.us> - 3.0.11-1
bd9b18
- update to 3.0.11
bd9b18
bd9b18
* Fri Nov 02 2012 Deepak Bhole <dbhole@redhat.com> - 3.0.10-4
bd9b18
- Fixed source location
bd9b18
bd9b18
* Fri Aug 10 2012 Dennis Gilmore <dennis@ausil.us> - 3.0.10-3
bd9b18
- drop back to 3.0.10, 3.0.11 was never pushed anywhere as the soname bump broke buildroots
bd9b18
- as 3.0.11 never went out no epoch needed.
bd9b18
bd9b18
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.11-2
bd9b18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
bd9b18
bd9b18
* Fri Apr 13 2012 Anthony Green <green@redhat.com> - 3.0.11-1
bd9b18
- Upgrade to 3.0.11.
bd9b18
bd9b18
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.10-2
bd9b18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
bd9b18
bd9b18
* Tue Aug 23 2011 Anthony Green <green@redhat.com> - 3.0.10-1
bd9b18
- Upgrade to 3.0.10. 
bd9b18
bd9b18
* Fri Mar 18 2011 Dan HorĂ¡k <dan[at]danny.cz> - 3.0.9-3
bd9b18
- added patch for being careful when defining relatively generic symbols
bd9b18
bd9b18
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.9-2
bd9b18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
bd9b18
bd9b18
* Tue Dec 29 2009 Anthony Green <green@redhat.com> - 3.0.9-1
bd9b18
- Upgrade
bd9b18
bd9b18
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.5-3
bd9b18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
bd9b18
bd9b18
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.5-2
bd9b18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
bd9b18
bd9b18
* Tue Jul 08 2008 Anthony Green <green@redhat.com> 3.0.5-1
bd9b18
- Upgrade to 3.0.5
bd9b18
bd9b18
* Fri Feb 15 2008 Anthony Green <green@redhat.com> 3.0.1-1
bd9b18
- Upgrade to 3.0.1
bd9b18
bd9b18
* Fri Feb 15 2008 Anthony Green <green@redhat.com> 2.99.9-1
bd9b18
- Upgrade to 2.99.9
bd9b18
- Require pkgconfig for the devel package.
bd9b18
- Update summary.
bd9b18
bd9b18
* Fri Feb 15 2008 Anthony Green <green@redhat.com> 2.99.8-1
bd9b18
- Upgrade to 2.99.8
bd9b18
bd9b18
* Thu Feb 14 2008 Anthony Green <green@redhat.com> 2.99.7-1
bd9b18
- Upgrade to 2.99.7
bd9b18
bd9b18
* Thu Feb 14 2008 Anthony Green <green@redhat.com> 2.99.6-1
bd9b18
- Upgrade to 2.99.6
bd9b18
bd9b18
* Thu Feb 14 2008 Anthony Green <green@redhat.com> 2.99.4-1
bd9b18
- Upgrade to 2.99.4
bd9b18
bd9b18
* Thu Feb 14 2008 Anthony Green <green@redhat.com> 2.99.3-1
bd9b18
- Upgrade to 2.99.3
bd9b18
bd9b18
* Thu Feb 14 2008 Anthony Green <green@redhat.com> 2.99.2-1
bd9b18
- Created.