]> git.pld-linux.org Git - packages/fio.git/blob - fio.spec
- fix devel deps
[packages/fio.git] / fio.spec
1 # TODO:
2 # - HDFS (hadoop, --enable-libhdfs, requires also java)
3 # - fusion-aw (nvm-primitives): http://opennvm.github.io/
4 #
5 # Conditional build:
6 %bcond_without  ceph            # RBD (CephFS) support
7 %bcond_without  glusterfs       # GFAPI support
8 %bcond_without  gtk             # GTK+ based GUI (gfio)
9 %bcond_without  numa            # NUMA support
10 #
11 Summary:        I/O tool for benchmark and stress/hardware verification
12 Summary(pl.UTF-8):      Narzędzie do mierzenia wydajności I/O i sprawdzania sprawności sprzętu
13 Name:           fio
14 Version:        2.19
15 Release:        3
16 License:        GPL v2+
17 Group:          Applications/System
18 Source0:        http://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2
19 # Source0-md5:  83275de968ca2c5e9429e7b83710d20e
20 Patch0:         %{name}-guasi.patch
21 URL:            http://git.kernel.dk/?p=fio.git;a=summary
22 BuildRequires:  bison
23 %{?with_ceph:BuildRequires:     ceph-devel}
24 BuildRequires:  flex
25 %{?with_glusterfs:BuildRequires:        glusterfs-devel}
26 BuildRequires:  guasi-devel
27 BuildRequires:  libaio-devel
28 BuildRequires:  libibverbs-devel
29 BuildRequires:  librdmacm-devel
30 BuildRequires:  numactl-devel
31 BuildRequires:  sed >= 4.0
32 BuildRequires:  zlib-devel
33 %if %{with gtk}
34 BuildRequires:  cairo-devel
35 BuildRequires:  glib2-devel >= 2.0
36 BuildRequires:  gtk+2-devel >= 2:2.18.0
37 BuildRequires:  pkgconfig
38 %endif
39 # x86 features detection relies on cpuid
40 ExcludeArch:    i386 i486
41 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42
43 %description
44 fio is an I/O tool meant to be used both for benchmark and
45 stress/hardware verification. It has support for 9 different types of
46 I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null,
47 network, syslet), I/O priorities (for newer Linux kernels), rate I/O,
48 forked or threaded jobs, and much more. It can work on block devices
49 as well as files. fio accepts job descriptions in a
50 simple-to-understand text format. Several example job files are
51 included. fio displays all sorts of I/O performance information. It
52 supports Linux, FreeBSD, and OpenSolaris.
53
54 %description -l pl.UTF-8
55 fio to narzędzie do mierzenia wydajności I/O oraz sprawdzania
56 sprawności sprzętu pod dużym obciążeniem. Obsługuje 9 różnych rodzajów
57 silników I/O (sync, mmap, libaio, posixaio, SG v3, splice, null,
58 network, syslet), priorytety I/O (dla nowszych jąder Linuksa),
59 przepustowość I/O, zadania wieloprocesowe lub wielowątkowe i wiele
60 więcej. Może działać na urządzeniach blokowych oraz na plikach. fio
61 przyjmuje opisy zadań w formacie tekstowym prostym do zrozumienia. Ma
62 załączone kilka przykładowych plików zadań. Wyświetla wszystkie
63 rodzaje informacji o wydajności I/O. Obsługuje Linuksa, FreeBSD i
64 OpenSolarisa.
65
66 %package devel
67 Summary:        Header files for developing FIO engine modules
68 Summary(pl.UTF-8):      Pliki nagłówkowe do tworzenia modułów silników FIO
69 Group:          Development/Libraries
70 # doesn't require base
71 Requires:       guasi-devel
72
73 %description devel
74 Header files for developing FIO engine modules.
75
76 %description devel -l pl.UTF-8
77 Pliki nagłówkowe do tworzenia modułów silników FIO.
78
79 %package -n gfio
80 Summary:        GTK+ based graphical front-end for fio
81 Summary(pl.UTF-8):      Oparty na GTK+ graficzny interfejs do fio
82 Group:          X11/Applications
83 Requires:       %{name} = %{version}-%{release}
84
85 %description -n gfio
86 gfio is a GTK+ based graphical front-end for fio. It is often
87 installed on the testers workstation whereas fio would be installed on
88 the server.
89
90 %description -n gfio -l pl.UTF-8
91 gfio to oparty na GTK+ graficzny interfejs do fio. Zwykle jest
92 instalowany na komputerze testerów, podczas gdy fio jest zainstalowany
93 na serwerze.
94
95 %prep
96 %setup -q
97 %patch0 -p1
98
99 %{__sed} -i -e '1s,/usr/bin/env bash,/bin/bash,' tools/genfio
100 %{__sed} -i -e '1s,/usr/bin/env python,/usr/bin/python,' tools/plot/fio2gnuplot
101
102 %build
103 ./configure \
104         --cc="%{__cc}" \
105         --extra-cflags="%{rpmcflags} %{rpmcppflags}" \
106         %{!?with_glusterfs:--enable-gfapi} \
107         %{?with_gtk:--enable-gfio} \
108         %{!?with_numa:--disable-numa} \
109         %{!?with_ceph:--disable-rbd} \
110
111 %{__make} \
112         LDFLAGS="%{rpmldflags}" \
113         V=1
114
115 %install
116 rm -rf $RPM_BUILD_ROOT
117
118 %{__make} install \
119         prefix="%{_prefix}" \
120         mandir="%{_mandir}" \
121         DESTDIR=$RPM_BUILD_ROOT
122
123 # development files for fio modules
124 install -d $RPM_BUILD_ROOT%{_includedir}/fio/{arch,compiler,engines,lib,os,oslib}
125 cp -p client.h config-host.h debug.h diskutil.h fifo.h file.h fio.h fio_time.h flist.h flow.h gettime.h helper_thread.h helpers.h io_ddir.h io_u.h io_u_queue.h ioengines.h iolog.h json.h log.h minmax.h mutex.h options.h parse.h profile.h server.h stat.h steadystate.h td_error.h thread_options.h workqueue.h $RPM_BUILD_ROOT%{_includedir}/fio
126 cp -p arch/arch.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
127 %ifarch %{ix86} %{x8664} x32
128 cp -p arch/arch-x86.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
129 %endif
130 %ifarch %{x8664} x32
131 cp -p arch/arch-x86_64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
132 %endif
133 %ifarch %{ix86} %{x8664} x32
134 cp -p arch/arch-x86-common.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
135 %endif
136 %ifarch ppc ppc64
137 cp -p arch/arch-ppc.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
138 %endif
139 %ifarch ia64
140 cp -p arch/arch-ia64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
141 %endif
142 %ifarch alpha
143 cp -p arch/arch-ia64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
144 %endif
145 %ifarch s390 s390x
146 cp -p arch/arch-s390.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
147 %endif
148 %ifarch sparc sparcv9 sparc64
149 cp -p arch/arch-sparc.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
150 %endif
151 %ifarch sparc64
152 cp -p arch/arch-sparc64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
153 %endif
154 %ifarch arm aarch64
155 cp -p arch/arch-arm.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
156 %endif
157 %ifarch mips
158 cp -p arch/arch-mips.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
159 %endif
160 %ifarch sh
161 cp -p arch/arch-sh.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
162 %endif
163 %ifarch hppa
164 cp -p arch/arch-hppa.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
165 %endif
166 %ifarch aarch64
167 cp -p arch/arch-aarch64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
168 %endif
169 %ifnarch %{ix86} %{x8664} x32 ppc ppc64 ia64 alpha s390 s390x sparc sparcv9 sparc64 arm mips sh hppa aarch64
170 cp -p arch/arch-generic.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
171 %endif
172 cp -p compiler/{compiler,compiler-gcc*}.h $RPM_BUILD_ROOT%{_includedir}/fio/compiler
173 cp -p lib/{axmap,ffz,gauss,ieee754,lfsr,output_buffer,pattern,rand,rbtree,types,zipf}.h $RPM_BUILD_ROOT%{_includedir}/fio/lib
174 cp -p os/{binject,os,os-linux,os-linux-syscall}.h $RPM_BUILD_ROOT%{_includedir}/fio/os
175 cp -p oslib/{getopt,strlcat}.h $RPM_BUILD_ROOT%{_includedir}/fio/oslib
176
177 %clean
178 rm -rf $RPM_BUILD_ROOT
179
180 %files
181 %defattr(644,root,root,755)
182 %doc HOWTO MORAL-LICENSE README REPORTING-BUGS SERVER-TODO examples
183 %attr(755,root,root) %{_bindir}/fio
184 %attr(755,root,root) %{_bindir}/fio-btrace2fio
185 %attr(755,root,root) %{_bindir}/fio-dedupe
186 %attr(755,root,root) %{_bindir}/fio-genzipf
187 %attr(755,root,root) %{_bindir}/fio-verify-state
188 %attr(755,root,root) %{_bindir}/fio2gnuplot
189 %attr(755,root,root) %{_bindir}/fio_generate_plots
190 %attr(755,root,root) %{_bindir}/fio_latency2csv.py
191 %attr(755,root,root) %{_bindir}/fiologparser.py
192 %attr(755,root,root) %{_bindir}/fiologparser_hist.py
193 %attr(755,root,root) %{_bindir}/genfio
194 %{_datadir}/fio
195 %{_mandir}/man1/fio.1*
196 %{_mandir}/man1/fio2gnuplot.1*
197 %{_mandir}/man1/fio_generate_plots.1*
198 %{_mandir}/man1/fiologparser_hist.py.1*
199
200 %files devel
201 %defattr(644,root,root,755)
202 %{_includedir}/fio
203
204 %if %{with gtk}
205 %files -n gfio
206 %defattr(644,root,root,755)
207 %doc GFIO-TODO
208 %attr(755,root,root) %{_bindir}/gfio
209 %endif
This page took 0.10293 seconds and 3 git commands to generate.