]>
Commit | Line | Data |
---|---|---|
4c2fe1f1 JB |
1 | # TODO: |
2 | # - HDFS (hadoop, --enable-libhdfs, requires also java) | |
3 | # - fusion-aw (nvm-primitives): http://opennvm.github.io/ | |
2a2ed291 JB |
4 | # - cuda (--enable-cuda, --enable-libcufile) |
5 | # - daos (https://daos.io/) | |
bc626f25 JB |
6 | # |
7 | # Conditional build: | |
404b5111 | 8 | %bcond_without ceph # RBD (CephFS) support |
bc626f25 JB |
9 | %bcond_without glusterfs # GFAPI support |
10 | %bcond_without gtk # GTK+ based GUI (gfio) | |
2a2ed291 JB |
11 | %bcond_without nbd # NBD support (libnbd) |
12 | %bcond_without iscsi # iSCSI support (libiscsi) | |
bc626f25 | 13 | %bcond_without numa # NUMA support |
a8074df1 | 14 | %bcond_without pmem # NVM support (using PMDK) |
bc626f25 | 15 | # |
a8074df1 JB |
16 | %ifnarch %{x8664} aarch64 |
17 | %undefine with_pmem | |
18 | %endif | |
c1909f35 | 19 | Summary: I/O tool for benchmark and stress/hardware verification |
5f5044a2 | 20 | Summary(pl.UTF-8): Narzędzie do mierzenia wydajności I/O i sprawdzania sprawności sprzętu |
c1909f35 | 21 | Name: fio |
2a4f58ab JB |
22 | Version: 3.30 |
23 | Release: 1 | |
017f0e28 | 24 | License: GPL v2+ |
bc626f25 | 25 | Group: Applications/System |
2a4f58ab JB |
26 | Source0: https://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2 |
27 | # Source0-md5: 002f32fd2ff7667d3ab49352c38007a9 | |
29dcb038 | 28 | Patch0: %{name}-config.patch |
c1909f35 | 29 | URL: http://git.kernel.dk/?p=fio.git;a=summary |
bc626f25 JB |
30 | BuildRequires: bison |
31 | %{?with_ceph:BuildRequires: ceph-devel} | |
2a4f58ab | 32 | BuildRequires: curl-devel |
bc626f25 JB |
33 | BuildRequires: flex |
34 | %{?with_glusterfs:BuildRequires: glusterfs-devel} | |
c1909f35 | 35 | BuildRequires: libaio-devel |
bc626f25 | 36 | BuildRequires: libibverbs-devel |
2a2ed291 JB |
37 | %{?with_iscsi:BuildRequires: libiscsi-devel >= 1.9.0} |
38 | %{?with_nbd:BuildRequires: libnbd-devel >= 0.9.8} | |
29dcb038 | 39 | BuildRequires: libnfs-devel |
bc626f25 | 40 | BuildRequires: librdmacm-devel |
2a2ed291 | 41 | BuildRequires: libzbc-devel >= 5 |
bc626f25 | 42 | BuildRequires: numactl-devel |
2a4f58ab | 43 | BuildRequires: openssl-devel |
29dcb038 | 44 | BuildRequires: pkgconfig |
a8074df1 | 45 | %{?with_pmem:BuildRequires: pmdk-devel} |
bc626f25 JB |
46 | BuildRequires: sed >= 4.0 |
47 | BuildRequires: zlib-devel | |
48 | %if %{with gtk} | |
49 | BuildRequires: cairo-devel | |
50 | BuildRequires: glib2-devel >= 2.0 | |
51 | BuildRequires: gtk+2-devel >= 2:2.18.0 | |
52 | BuildRequires: pkgconfig | |
53 | %endif | |
2a2ed291 JB |
54 | %{?with_iscsi:Requires: libiscsi >= 1.9.0} |
55 | %{?with_nbd:Requires: libnbd >= 0.9.8} | |
56 | Requires: libzbc >= 5 | |
bc626f25 JB |
57 | # x86 features detection relies on cpuid |
58 | ExcludeArch: i386 i486 | |
c1909f35 | 59 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
60 | ||
61 | %description | |
62 | fio is an I/O tool meant to be used both for benchmark and | |
63 | stress/hardware verification. It has support for 9 different types of | |
64 | I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null, | |
65 | network, syslet), I/O priorities (for newer Linux kernels), rate I/O, | |
66 | forked or threaded jobs, and much more. It can work on block devices | |
67 | as well as files. fio accepts job descriptions in a | |
68 | simple-to-understand text format. Several example job files are | |
69 | included. fio displays all sorts of I/O performance information. It | |
70 | supports Linux, FreeBSD, and OpenSolaris. | |
71 | ||
5f5044a2 JB |
72 | %description -l pl.UTF-8 |
73 | fio to narzędzie do mierzenia wydajności I/O oraz sprawdzania | |
3552df17 | 74 | sprawności sprzętu pod dużym obciążeniem. Obsługuje 9 różnych rodzajów |
75 | silników I/O (sync, mmap, libaio, posixaio, SG v3, splice, null, | |
76 | network, syslet), priorytety I/O (dla nowszych jąder Linuksa), | |
5f5044a2 | 77 | przepustowość I/O, zadania wieloprocesowe lub wielowątkowe i wiele |
3552df17 | 78 | więcej. Może działać na urządzeniach blokowych oraz na plikach. fio |
79 | przyjmuje opisy zadań w formacie tekstowym prostym do zrozumienia. Ma | |
80 | załączone kilka przykładowych plików zadań. Wyświetla wszystkie | |
81 | rodzaje informacji o wydajności I/O. Obsługuje Linuksa, FreeBSD i | |
82 | OpenSolarisa. | |
c1909f35 | 83 | |
b1b35878 JB |
84 | %package devel |
85 | Summary: Header files for developing FIO engine modules | |
86 | Summary(pl.UTF-8): Pliki nagłówkowe do tworzenia modułów silników FIO | |
87 | Group: Development/Libraries | |
b1b35878 JB |
88 | |
89 | %description devel | |
90 | Header files for developing FIO engine modules. | |
91 | ||
92 | %description devel -l pl.UTF-8 | |
93 | Pliki nagłówkowe do tworzenia modułów silników FIO. | |
94 | ||
bc626f25 JB |
95 | %package -n gfio |
96 | Summary: GTK+ based graphical front-end for fio | |
97 | Summary(pl.UTF-8): Oparty na GTK+ graficzny interfejs do fio | |
98 | Group: X11/Applications | |
99 | Requires: %{name} = %{version}-%{release} | |
100 | ||
101 | %description -n gfio | |
102 | gfio is a GTK+ based graphical front-end for fio. It is often | |
103 | installed on the testers workstation whereas fio would be installed on | |
104 | the server. | |
105 | ||
106 | %description -n gfio -l pl.UTF-8 | |
107 | gfio to oparty na GTK+ graficzny interfejs do fio. Zwykle jest | |
108 | instalowany na komputerze testerów, podczas gdy fio jest zainstalowany | |
109 | na serwerze. | |
110 | ||
c1909f35 | 111 | %prep |
112 | %setup -q | |
4c2fe1f1 | 113 | %patch0 -p1 |
bc626f25 | 114 | |
d43e2f3c | 115 | %{__sed} -i -e '1s,/usr/bin/bash,/bin/bash,' tools/genfio |
7973b834 | 116 | %{__sed} -i -e '1s,/usr/bin/env python3$,%{__python3},' tools/{hist/fio-histo-log-pctiles.py,plot/fio2gnuplot,hist/fiologparser_hist.py,fiologparser.py,fio_jsonplus_clat2csv} |
c1909f35 | 117 | |
118 | %build | |
bc626f25 JB |
119 | ./configure \ |
120 | --cc="%{__cc}" \ | |
121 | --extra-cflags="%{rpmcflags} %{rpmcppflags}" \ | |
7a2c019f | 122 | %{!?with_glusterfs:--disable-gfapi} \ |
bc626f25 | 123 | %{?with_gtk:--enable-gfio} \ |
2a2ed291 JB |
124 | %{?with_iscsi:--enable-libiscsi} \ |
125 | %{?with_nbd:--enable-libnbd} \ | |
126 | --disable-native \ | |
bc626f25 | 127 | %{!?with_numa:--disable-numa} \ |
a8074df1 | 128 | %{!?with_pmem:--disable-pmem} \ |
ec72b7a3 | 129 | %{!?with_ceph:--disable-rbd} |
bc626f25 | 130 | |
c1909f35 | 131 | %{__make} \ |
c1909f35 | 132 | LDFLAGS="%{rpmldflags}" \ |
8f621653 | 133 | V=1 |
c1909f35 | 134 | |
135 | %install | |
136 | rm -rf $RPM_BUILD_ROOT | |
137 | ||
138 | %{__make} install \ | |
139 | prefix="%{_prefix}" \ | |
4ac72107 | 140 | mandir="%{_mandir}" \ |
c1909f35 | 141 | DESTDIR=$RPM_BUILD_ROOT |
142 | ||
b1b35878 | 143 | # development files for fio modules |
7175f834 | 144 | install -d $RPM_BUILD_ROOT%{_includedir}/fio/{arch,crc,compiler,engines,lib,os/linux,oslib} |
803c3af8 | 145 | 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 |
b1b35878 JB |
146 | cp -p arch/arch.h $RPM_BUILD_ROOT%{_includedir}/fio/arch |
147 | %ifarch %{ix86} %{x8664} x32 | |
148 | cp -p arch/arch-x86.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
149 | %endif | |
150 | %ifarch %{x8664} x32 | |
151 | cp -p arch/arch-x86_64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
152 | %endif | |
153 | %ifarch %{ix86} %{x8664} x32 | |
154 | cp -p arch/arch-x86-common.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
155 | %endif | |
156 | %ifarch ppc ppc64 | |
157 | cp -p arch/arch-ppc.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
158 | %endif | |
159 | %ifarch ia64 | |
160 | cp -p arch/arch-ia64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
161 | %endif | |
162 | %ifarch alpha | |
163 | cp -p arch/arch-ia64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
164 | %endif | |
165 | %ifarch s390 s390x | |
166 | cp -p arch/arch-s390.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
167 | %endif | |
168 | %ifarch sparc sparcv9 sparc64 | |
169 | cp -p arch/arch-sparc.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
170 | %endif | |
171 | %ifarch sparc64 | |
172 | cp -p arch/arch-sparc64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
173 | %endif | |
486892f6 | 174 | %ifarch %{arm} aarch64 |
b1b35878 JB |
175 | cp -p arch/arch-arm.h $RPM_BUILD_ROOT%{_includedir}/fio/arch |
176 | %endif | |
177 | %ifarch mips | |
178 | cp -p arch/arch-mips.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
179 | %endif | |
180 | %ifarch sh | |
181 | cp -p arch/arch-sh.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
182 | %endif | |
183 | %ifarch hppa | |
184 | cp -p arch/arch-hppa.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
185 | %endif | |
186 | %ifarch aarch64 | |
187 | cp -p arch/arch-aarch64.h $RPM_BUILD_ROOT%{_includedir}/fio/arch | |
188 | %endif | |
486892f6 | 189 | %ifnarch %{ix86} %{x8664} x32 ppc ppc64 ia64 alpha s390 s390x sparc sparcv9 sparc64 %{arm} mips sh hppa aarch64 |
b1b35878 JB |
190 | cp -p arch/arch-generic.h $RPM_BUILD_ROOT%{_includedir}/fio/arch |
191 | %endif | |
7973b834 | 192 | cp -p compiler/compiler.h $RPM_BUILD_ROOT%{_includedir}/fio/compiler |
7175f834 | 193 | 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 |
0a723646 | 194 | 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 |
a8074df1 | 195 | cp -p os/{os,os-linux,os-linux-syscall}.h $RPM_BUILD_ROOT%{_includedir}/fio/os |
7175f834 | 196 | cp -p os/linux/io_uring.h $RPM_BUILD_ROOT%{_includedir}/fio/os/linux |
0a723646 | 197 | 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 |
b1b35878 | 198 | |
c1909f35 | 199 | %clean |
200 | rm -rf $RPM_BUILD_ROOT | |
201 | ||
202 | %files | |
203 | %defattr(644,root,root,755) | |
2a4f58ab | 204 | %doc GFIO-TODO HOWTO.rst MORAL-LICENSE README.rst REPORTING-BUGS SERVER-TODO STEADYSTATE-TODO examples |
bc626f25 JB |
205 | %attr(755,root,root) %{_bindir}/fio |
206 | %attr(755,root,root) %{_bindir}/fio-btrace2fio | |
207 | %attr(755,root,root) %{_bindir}/fio-dedupe | |
208 | %attr(755,root,root) %{_bindir}/fio-genzipf | |
803c3af8 | 209 | %attr(755,root,root) %{_bindir}/fio-histo-log-pctiles.py |
4c2fe1f1 | 210 | %attr(755,root,root) %{_bindir}/fio-verify-state |
bc626f25 JB |
211 | %attr(755,root,root) %{_bindir}/fio2gnuplot |
212 | %attr(755,root,root) %{_bindir}/fio_generate_plots | |
a8074df1 | 213 | %attr(755,root,root) %{_bindir}/fio_jsonplus_clat2csv |
7e44be1f JB |
214 | %attr(755,root,root) %{_bindir}/fiologparser.py |
215 | %attr(755,root,root) %{_bindir}/fiologparser_hist.py | |
bc626f25 JB |
216 | %attr(755,root,root) %{_bindir}/genfio |
217 | %{_datadir}/fio | |
218 | %{_mandir}/man1/fio.1* | |
219 | %{_mandir}/man1/fio2gnuplot.1* | |
220 | %{_mandir}/man1/fio_generate_plots.1* | |
7e44be1f | 221 | %{_mandir}/man1/fiologparser_hist.py.1* |
bc626f25 | 222 | |
b1b35878 JB |
223 | %files devel |
224 | %defattr(644,root,root,755) | |
225 | %{_includedir}/fio | |
226 | ||
bc626f25 JB |
227 | %if %{with gtk} |
228 | %files -n gfio | |
229 | %defattr(644,root,root,755) | |
230 | %doc GFIO-TODO | |
231 | %attr(755,root,root) %{_bindir}/gfio | |
232 | %endif |