3 %bcond_without tests # build without tests
7 Summary: FFI Extensions for Ruby
8 Summary(pl.UTF-8): Rozszerzenia FFI dla języka Ruby
13 Group: Development/Languages
14 Source0: http://rubygems.org/gems/%{pkgname}-%{version}.gem
15 # Source0-md5: 37284a51e5464443f7122b388329a2a0
16 Patch0: %{name}-platform.patch
17 Patch1: failed-tests.patch
18 URL: https://wiki.github.com/ffi/ffi
19 BuildRequires: libffi-devel >= %{ffi_req}
20 BuildRequires: rpm-rubyprov
21 BuildRequires: rpmbuild(macros) >= 1.665
22 BuildRequires: ruby-devel
24 BuildRequires: ruby-rspec
25 BuildRequires: ruby-rspec-mocks
27 Requires: libffi >= %{ffi_req}
28 ExclusiveArch: %{ix86} %{x8664} arm ia64 mips mipsel ppc s390 s390x sparc sparcv9
29 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
32 Ruby-FFI is a Ruby extension for programmatically loading dynamic
33 libraries, binding functions within them, and calling those functions
34 from Ruby code. Moreover, a Ruby-FFI extension works without changes
35 on Ruby and JRuby. Discover why should you write your next extension
36 using Ruby-FFI here: <http://wiki.github.com/ffi/ffi/why-use-ffi>.
38 %description -l pl.UTF-8
39 Ruby-FFI to rozszerzenie języka Ruby do programowego ładowania
40 bibliotek dynamicznych, wiązania obecnych w nich funkcji oraz
41 wywoływania tych funkcji z kodu w języku Ruby. Co więcej, rozszerzenie
42 Ruby-FFI działa bez zmian w implementacji Ruby oraz JRuby. Informacje,
43 dlaczego nowe rozszerzenia powinny używać Ruby-FFI, można znaleźć na
44 stronie <http://wiki.github.com/ffi/ffi/why-use-ffi>.
47 %setup -q -n %{pkgname}-%{version}
51 # be sure to use system ffi
52 %{__rm} -r ext/ffi_c/libffi
54 # drop not our targets
55 %{__rm} -r lib/ffi/platform/*-{aix,cygwin,darwin,gnu,*bsd,solaris,windows}
56 # provide only definitions for package architecture
58 %{__rm} -r lib/ffi/platform/arm-*
61 %{__rm} -r lib/ffi/platform/i386-*
64 %{__rm} -r lib/ffi/platform/ia64-*
67 %{__rm} -r lib/ffi/platform/mips-*
70 %{__rm} -r lib/ffi/platform/mipsel-*
73 %{__rm} -r lib/ffi/platform/powerpc-*
76 %{__rm} -r lib/ffi/platform/s390-*
79 %{__rm} -r lib/ffi/platform/s390x-*
82 %{__rm} -r lib/ffi/platform/sparc-*
85 %{__rm} -r lib/ffi/platform/x86_64-*
89 cp -p %{_datadir}/setup.rb .
91 # cleanup backups after patching
92 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
101 ldflags="%{rpmldflags}" \
102 optflags="%{rpmcflags} -fPIC"
106 %{__make} -f libtest/GNUmakefile \
108 OFLAGS='%{rpmcflags} $(JFLAGS)' \
111 %{__make} -C spec/ffi/fixtures \
113 OFLAGS='%{rpmcflags} $(JFLAGS)' \
116 ruby -Ilib:ext/ffi_c -S \
121 rm -rf $RPM_BUILD_ROOT
122 install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_vendorarchdir}/ffi,%{ruby_specdir}}
123 cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
124 install -p ext/ffi_c/ffi_c.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}
125 %{__mv} $RPM_BUILD_ROOT%{ruby_vendorlibdir}/ffi/platform $RPM_BUILD_ROOT%{ruby_vendorarchdir}/ffi
126 cp -p %{pkgname}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
129 rm -rf $RPM_BUILD_ROOT
132 %defattr(644,root,root,755)
133 %doc README.md LICENSE
134 %{ruby_vendorlibdir}/ffi.rb
135 %{ruby_vendorlibdir}/ffi
136 %attr(755,root,root) %{ruby_vendorarchdir}/ffi_c.so
137 %dir %{ruby_vendorarchdir}/ffi
138 %{ruby_vendorarchdir}/ffi/platform
139 %{ruby_specdir}/%{pkgname}-%{version}.gemspec