# Conditional build:
%bcond_without tests # build without tests
+%define ffi_req 7:3.2
%define pkgname ffi
Summary: FFI Extensions for Ruby
Summary(pl.UTF-8): Rozszerzenia FFI dla języka Ruby
Name: ruby-%{pkgname}
-Version: 1.9.6
-Release: 1
+Version: 1.9.18
+Release: 4
License: BSD
Group: Development/Languages
Source0: http://rubygems.org/gems/%{pkgname}-%{version}.gem
-# Source0-md5: 8606c263037322ae957e1959245841be
+# Source0-md5: 37284a51e5464443f7122b388329a2a0
Patch0: %{name}-platform.patch
-URL: http://wiki.github.com/ffi/ffi
-BuildRequires: libffi-devel
+Patch1: failed-tests.patch
+URL: https://wiki.github.com/ffi/ffi
+BuildRequires: libffi-devel >= %{ffi_req}
BuildRequires: rpm-rubyprov
BuildRequires: rpmbuild(macros) >= 1.665
BuildRequires: ruby-devel
-BuildRequires: setup.rb
%if %{with tests}
BuildRequires: ruby-rspec
BuildRequires: ruby-rspec-mocks
%endif
-ExclusiveArch: %{ix86} %{x8664} arm ia64 mips mipsel ppc s390 s390x sparc sparcv9
+Requires: libffi >= %{ffi_req}
+ExclusiveArch: %{ix86} %{x8664} aarch64 arm ia64 mips mips64el mipsel powerpc64 ppc s390 s390x sparc sparcv9
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
%prep
%setup -q -n %{pkgname}-%{version}
%patch0 -p1
+%patch1 -p1
# be sure to use system ffi
%{__rm} -r ext/ffi_c/libffi
-# drop bundled blobs (compiled for osx)
-%{__rm} spec/ffi/fixtures/*.o
-
# drop not our targets
%{__rm} -r lib/ffi/platform/*-{aix,cygwin,darwin,gnu,*bsd,solaris,windows}
# provide only definitions for package architecture
+%ifnarch aarch64
+%{__rm} -r lib/ffi/platform/aarch64-*
+%endif
%ifnarch arm
%{__rm} -r lib/ffi/platform/arm-*
%endif
%ifnarch mipsel
%{__rm} -r lib/ffi/platform/mipsel-*
%endif
+%ifnarch mips64el
+%{__rm} -r lib/ffi/platform/mips64el-*
+%endif
%ifnarch powerpc
%{__rm} -r lib/ffi/platform/powerpc-*
%endif
+%ifnarch powerpc64
+%{__rm} -r lib/ffi/platform/powerpc64-*
+%endif
%ifnarch s390
%{__rm} -r lib/ffi/platform/s390-*
%endif
%{__rm} -r lib/ffi/platform/x86_64-*
%endif
-# ext build
-cp -p %{_datadir}/setup.rb .
-
# cleanup backups after patching
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
%build
%__gem_helper spec
-%{__ruby} setup.rb config \
- --rbdir=%{ruby_rubylibdir} \
- --sodir=%{ruby_archdir} \
- --makeprog=true
-
-%{__ruby} setup.rb setup
-
-%{__make} -C ext/ffi_c \
- CC="%{__cc}"
+cd ext/ffi_c
+%{__ruby} extconf.rb
+%{__make} \
+ CC="%{__cc}" \
+ ldflags="%{rpmldflags}" \
+ optflags="%{rpmcflags} -fPIC"
+cd -
%if %{with tests}
%{__make} -f libtest/GNUmakefile \