]> git.pld-linux.org Git - packages/ruby-ffi.git/blame - ruby-ffi.spec
- ruby 2.1 rebuild
[packages/ruby-ffi.git] / ruby-ffi.spec
CommitLineData
4ae334f6 1#
bac43acd
ER
2# Conditional build:
3%bcond_without tests # build without tests
4
33015431 5%define ffi_req 7:3.2
7f59e59c 6%define pkgname ffi
5d8a12a9 7Summary: FFI Extensions for Ruby
4ae334f6 8Summary(pl.UTF-8): Rozszerzenia FFI dla języka Ruby
7f59e59c 9Name: ruby-%{pkgname}
5a192f4b 10Version: 1.9.6
a7b987f4 11Release: 3
947bc9d0 12License: BSD
5d8a12a9 13Group: Development/Languages
7f59e59c 14Source0: http://rubygems.org/gems/%{pkgname}-%{version}.gem
5a192f4b 15# Source0-md5: 8606c263037322ae957e1959245841be
4ae334f6 16Patch0: %{name}-platform.patch
b21e7534 17Patch1: failed-tests.patch
5d8a12a9 18URL: http://wiki.github.com/ffi/ffi
33015431 19BuildRequires: libffi-devel >= %{ffi_req}
5d8a12a9 20BuildRequires: rpm-rubyprov
60db665a 21BuildRequires: rpmbuild(macros) >= 1.665
d2209b89 22BuildRequires: ruby-devel
5d8a12a9 23BuildRequires: setup.rb
bac43acd
ER
24%if %{with tests}
25BuildRequires: ruby-rspec
ed0d1fdb 26BuildRequires: ruby-rspec-mocks
bac43acd 27%endif
33015431 28Requires: libffi >= %{ffi_req}
4ae334f6 29ExclusiveArch: %{ix86} %{x8664} arm ia64 mips mipsel ppc s390 s390x sparc sparcv9
5d8a12a9
ER
30BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
31
32%description
4ae334f6 33Ruby-FFI is a Ruby extension for programmatically loading dynamic
5d8a12a9
ER
34libraries, binding functions within them, and calling those functions
35from Ruby code. Moreover, a Ruby-FFI extension works without changes
36on Ruby and JRuby. Discover why should you write your next extension
37using Ruby-FFI here: <http://wiki.github.com/ffi/ffi/why-use-ffi>.
38
4ae334f6
JB
39%description -l pl.UTF-8
40Ruby-FFI to rozszerzenie języka Ruby do programowego ładowania
41bibliotek dynamicznych, wiązania obecnych w nich funkcji oraz
42wywoływania tych funkcji z kodu w języku Ruby. Co więcej, rozszerzenie
43Ruby-FFI działa bez zmian w implementacji Ruby oraz JRuby. Informacje,
44dlaczego nowe rozszerzenia powinny używać Ruby-FFI, można znaleźć na
45stronie <http://wiki.github.com/ffi/ffi/why-use-ffi>.
46
5d8a12a9 47%prep
7f59e59c 48%setup -q -n %{pkgname}-%{version}
4ae334f6 49%patch0 -p1
b21e7534 50%patch1 -p1
5d8a12a9 51
336d53d2 52# be sure to use system ffi
4ae334f6 53%{__rm} -r ext/ffi_c/libffi
336d53d2 54
76689d2a
ER
55# drop bundled blobs (compiled for osx)
56%{__rm} spec/ffi/fixtures/*.o
57
a2262c61 58# drop not our targets
4ae334f6
JB
59%{__rm} -r lib/ffi/platform/*-{aix,cygwin,darwin,gnu,*bsd,solaris,windows}
60# provide only definitions for package architecture
61%ifnarch arm
62%{__rm} -r lib/ffi/platform/arm-*
63%endif
64%ifnarch %{ix86}
65%{__rm} -r lib/ffi/platform/i386-*
66%endif
67%ifnarch ia64
68%{__rm} -r lib/ffi/platform/ia64-*
69%endif
70%ifnarch mips
71%{__rm} -r lib/ffi/platform/mips-*
72%endif
73%ifnarch mipsel
74%{__rm} -r lib/ffi/platform/mipsel-*
75%endif
76%ifnarch powerpc
77%{__rm} -r lib/ffi/platform/powerpc-*
78%endif
79%ifnarch s390
80%{__rm} -r lib/ffi/platform/s390-*
81%endif
82%ifnarch s390x
83%{__rm} -r lib/ffi/platform/s390x-*
84%endif
85%ifnarch sparc
86%{__rm} -r lib/ffi/platform/sparc-*
87%endif
88%ifnarch %{x8664}
89%{__rm} -r lib/ffi/platform/x86_64-*
90%endif
a2262c61 91
5d8a12a9
ER
92# ext build
93cp -p %{_datadir}/setup.rb .
94
705bedfd
ER
95# cleanup backups after patching
96find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
97
5d8a12a9 98%build
60db665a
ER
99%__gem_helper spec
100
5d8a12a9
ER
101%{__ruby} setup.rb config \
102 --rbdir=%{ruby_rubylibdir} \
0cbc2159
ER
103 --sodir=%{ruby_archdir} \
104 --makeprog=true
5d8a12a9
ER
105
106%{__ruby} setup.rb setup
107
0cbc2159
ER
108%{__make} -C ext/ffi_c \
109 CC="%{__cc}"
110
5d8a12a9 111%if %{with tests}
0cbc2159
ER
112%{__make} -f libtest/GNUmakefile \
113 CCACHE= \
eefd29d5 114 OFLAGS='%{rpmcflags} $(JFLAGS)' \
0cbc2159 115 CC="%{__cc}"
eefd29d5
ER
116
117%{__make} -C spec/ffi/fixtures \
118 CCACHE= \
119 OFLAGS='%{rpmcflags} $(JFLAGS)' \
120 CC="%{__cc}"
121
ed0d1fdb
ER
122ruby -Ilib:ext/ffi_c -S \
123 rspec spec
5d8a12a9
ER
124%endif
125
126%install
127rm -rf $RPM_BUILD_ROOT
4ae334f6 128install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_vendorarchdir}/ffi,%{ruby_specdir}}
5d8a12a9
ER
129cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
130install -p ext/ffi_c/ffi_c.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}
4ae334f6 131%{__mv} $RPM_BUILD_ROOT%{ruby_vendorlibdir}/ffi/platform $RPM_BUILD_ROOT%{ruby_vendorarchdir}/ffi
60db665a 132cp -p %{pkgname}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
5d8a12a9
ER
133
134%clean
135rm -rf $RPM_BUILD_ROOT
136
137%files
138%defattr(644,root,root,755)
947bc9d0 139%doc README.md LICENSE
5d8a12a9
ER
140%{ruby_vendorlibdir}/ffi.rb
141%{ruby_vendorlibdir}/ffi
142%attr(755,root,root) %{ruby_vendorarchdir}/ffi_c.so
4ae334f6
JB
143%dir %{ruby_vendorarchdir}/ffi
144%{ruby_vendorarchdir}/ffi/platform
7f59e59c 145%{ruby_specdir}/%{pkgname}-%{version}.gemspec
This page took 0.098752 seconds and 4 git commands to generate.