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