2 # - HDFS (hadoop, --enable-libhdfs, requires also java)
3 # - fusion-aw (nvm-primitives): http://opennvm.github.io/
7 %bcond_without ceph # RBD (CephFS) support
8 %bcond_without glusterfs # GFAPI support
9 %bcond_without gtk # GTK+ based GUI (gfio)
10 %bcond_without numa # NUMA support
11 %bcond_without pmem # NVM support (using PMDK)
13 %ifnarch %{x8664} aarch64
16 Summary: I/O tool for benchmark and stress/hardware verification
17 Summary(pl.UTF-8): Narzędzie do mierzenia wydajności I/O i sprawdzania sprawności sprzętu
22 Group: Applications/System
23 Source0: http://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2
24 # Source0-md5: 5cf2eabf487c51001aceada90f961555
25 Patch0: %{name}-guasi.patch
26 Patch1: %{name}-no-common.patch
27 Patch2: %{name}-config.patch
28 URL: http://git.kernel.dk/?p=fio.git;a=summary
30 %{?with_ceph:BuildRequires: ceph-devel}
32 %{?with_glusterfs:BuildRequires: glusterfs-devel}
33 BuildRequires: guasi-devel
34 BuildRequires: libaio-devel
35 BuildRequires: libibverbs-devel
36 BuildRequires: librdmacm-devel
37 BuildRequires: libzbc-devel
38 BuildRequires: numactl-devel
39 %{?with_pmem:BuildRequires: pmdk-devel}
40 BuildRequires: sed >= 4.0
41 BuildRequires: zlib-devel
43 BuildRequires: cairo-devel
44 BuildRequires: glib2-devel >= 2.0
45 BuildRequires: gtk+2-devel >= 2:2.18.0
46 BuildRequires: pkgconfig
48 # x86 features detection relies on cpuid
49 ExcludeArch: i386 i486
50 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
53 fio is an I/O tool meant to be used both for benchmark and
54 stress/hardware verification. It has support for 9 different types of
55 I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null,
56 network, syslet), I/O priorities (for newer Linux kernels), rate I/O,
57 forked or threaded jobs, and much more. It can work on block devices
58 as well as files. fio accepts job descriptions in a
59 simple-to-understand text format. Several example job files are
60 included. fio displays all sorts of I/O performance information. It
61 supports Linux, FreeBSD, and OpenSolaris.
63 %description -l pl.UTF-8
64 fio to narzędzie do mierzenia wydajności I/O oraz sprawdzania
65 sprawności sprzętu pod dużym obciążeniem. Obsługuje 9 różnych rodzajów
66 silników I/O (sync, mmap, libaio, posixaio, SG v3, splice, null,
67 network, syslet), priorytety I/O (dla nowszych jąder Linuksa),
68 przepustowość I/O, zadania wieloprocesowe lub wielowątkowe i wiele
69 więcej. Może działać na urządzeniach blokowych oraz na plikach. fio
70 przyjmuje opisy zadań w formacie tekstowym prostym do zrozumienia. Ma
71 załączone kilka przykładowych plików zadań. Wyświetla wszystkie
72 rodzaje informacji o wydajności I/O. Obsługuje Linuksa, FreeBSD i
76 Summary: Header files for developing FIO engine modules
77 Summary(pl.UTF-8): Pliki nagłówkowe do tworzenia modułów silników FIO
78 Group: Development/Libraries
79 # doesn't require base
83 Header files for developing FIO engine modules.
85 %description devel -l pl.UTF-8
86 Pliki nagłówkowe do tworzenia modułów silników FIO.
89 Summary: GTK+ based graphical front-end for fio
90 Summary(pl.UTF-8): Oparty na GTK+ graficzny interfejs do fio
91 Group: X11/Applications
92 Requires: %{name} = %{version}-%{release}
95 gfio is a GTK+ based graphical front-end for fio. It is often
96 installed on the testers workstation whereas fio would be installed on
99 %description -n gfio -l pl.UTF-8
100 gfio to oparty na GTK+ graficzny interfejs do fio. Zwykle jest
101 instalowany na komputerze testerów, podczas gdy fio jest zainstalowany
110 %{__sed} -i -e '1s,/usr/bin/bash,/bin/bash,' tools/genfio
111 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' tools/{hist/fio-histo-log-pctiles.py,plot/fio2gnuplot}
116 --extra-cflags="%{rpmcflags} %{rpmcppflags}" \
117 %{!?with_glusterfs:--enable-gfapi} \
118 %{?with_gtk:--enable-gfio} \
119 %{!?with_numa:--disable-numa} \
120 %{!?with_pmem:--disable-pmem} \
121 %{!?with_ceph:--disable-rbd}
124 LDFLAGS="%{rpmldflags}" \
128 rm -rf $RPM_BUILD_ROOT
131 prefix="%{_prefix}" \
132 mandir="%{_mandir}" \
133 DESTDIR=$RPM_BUILD_ROOT
135 # development files for fio modules
136 install -d $RPM_BUILD_ROOT%{_includedir}/fio/{arch,crc,compiler,engines,lib,os/linux,oslib}
137 cp -p blktrace_api.h blktrace.h cairo_text_helpers.h cgroup.h client.h config-host.h debug.h diskutil.h err.h fifo.h file.h filehash.h filelock.h fio.h fio_sem.h fio_time.h flist.h flow.h gclient.h gcompat.h gerror.h gettime.h gfio.h ghelpers.h goptions.h graph.h hash.h helpers.h helper_thread.h idletime.h io_ddir.h ioengines.h iolog.h io_u.h io_u_queue.h json.h log.h minmax.h optgroup.h options.h parse.h printing.h profile.h pshared.h rate-submit.h rwlock.h server.h smalloc.h stat.h steadystate.h td_error.h thread_options.h tickmarks.h trim.h verify.h verify-state.h workqueue.h zbd.h zbd_types.h zone-dist.h $RPM_BUILD_ROOT%{_includedir}/fio
138 cp -p arch/arch.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
139 %ifarch %{ix86} %{x8664} x32
140 cp -p arch/arch-x86.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
143 cp -p arch/arch-x86_64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
145 %ifarch %{ix86} %{x8664} x32
146 cp -p arch/arch-x86-common.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
149 cp -p arch/arch-ppc.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
152 cp -p arch/arch-ia64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
155 cp -p arch/arch-ia64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
158 cp -p arch/arch-s390.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
160 %ifarch sparc sparcv9 sparc64
161 cp -p arch/arch-sparc.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
164 cp -p arch/arch-sparc64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
166 %ifarch %{arm} aarch64
167 cp -p arch/arch-arm.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
170 cp -p arch/arch-mips.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
173 cp -p arch/arch-sh.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
176 cp -p arch/arch-hppa.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
179 cp -p arch/arch-aarch64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
181 %ifnarch %{ix86} %{x8664} x32 ppc ppc64 ia64 alpha s390 s390x sparc sparcv9 sparc64 %{arm} mips sh hppa aarch64
182 cp -p arch/arch-generic.h $RPM_BUILD_ROOT%{_includedir}/fio/arch
184 cp -p compiler/{compiler,compiler-gcc*}.h $RPM_BUILD_ROOT%{_includedir}/fio/compiler
185 cp -p crc/{crc{16,32,32c,64,7},fnv,md5,murmur3,sha{1,256,3,512},test,xxhash}.h $RPM_BUILD_ROOT%{_includedir}/fio/crc
186 cp -p lib/{axmap,bloom,bswap,ffz,fls,gauss,getrusage,hweight,ieee754,lfsr,memalign,memcpy,mountcheck,nowarn_snprintf,num2str,output_buffer,pattern,pow2,prio_tree,rand,rbtree,seqlock,strntol,types,zipf}.h $RPM_BUILD_ROOT%{_includedir}/fio/lib
187 cp -p os/{os,os-linux,os-linux-syscall}.h $RPM_BUILD_ROOT%{_includedir}/fio/os
188 cp -p os/linux/io_uring.h $RPM_BUILD_ROOT%{_includedir}/fio/os/linux
189 cp -p oslib/{asprintf,getopt,inet_aton,libmtd_common,libmtd,libmtd_int,libmtd_xalloc,linux-dev-lookup,strcasestr,strlcat,strndup,strsep}.h $RPM_BUILD_ROOT%{_includedir}/fio/oslib
192 rm -rf $RPM_BUILD_ROOT
195 %defattr(644,root,root,755)
196 %doc GFIO-TODO HOWTO MORAL-LICENSE README REPORTING-BUGS SERVER-TODO STEADYSTATE-TODO examples
197 %attr(755,root,root) %{_bindir}/fio
198 %attr(755,root,root) %{_bindir}/fio-btrace2fio
199 %attr(755,root,root) %{_bindir}/fio-dedupe
200 %attr(755,root,root) %{_bindir}/fio-genzipf
201 %attr(755,root,root) %{_bindir}/fio-histo-log-pctiles.py
202 %attr(755,root,root) %{_bindir}/fio-verify-state
203 %attr(755,root,root) %{_bindir}/fio2gnuplot
204 %attr(755,root,root) %{_bindir}/fio_generate_plots
205 %attr(755,root,root) %{_bindir}/fio_jsonplus_clat2csv
206 %attr(755,root,root) %{_bindir}/fiologparser.py
207 %attr(755,root,root) %{_bindir}/fiologparser_hist.py
208 %attr(755,root,root) %{_bindir}/genfio
210 %{_mandir}/man1/fio.1*
211 %{_mandir}/man1/fio2gnuplot.1*
212 %{_mandir}/man1/fio_generate_plots.1*
213 %{_mandir}/man1/fiologparser_hist.py.1*
216 %defattr(644,root,root,755)
221 %defattr(644,root,root,755)
223 %attr(755,root,root) %{_bindir}/gfio