Name:		fio
Version:	3.42
Release:	4
Summary:	Multithreaded IO generation tool

License:	GPL-2.0-only
URL:		http://git.kernel.dk/?p=fio.git;a=summary
Source0:	http://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2

Patch0001:	0001-server-reap-child-processes-on-SIGINT-to-prevent-assertion-crash.patch
Patch0002:	0002-parse-ignore-leading-minus-sign-when-splitting-options.patch
Patch0003:	0003-blktrace-fix-three-bugs-in-merge_blktrace_iologs-pat.patch

BuildRequires:  gcc
BuildRequires:	libaio-devel
BuildRequires:	zlib-devel
BuildRequires:	python3-devel
BuildRequires:	libcurl-devel
BuildRequires:	openssl-devel
%ifnarch s390
BuildRequires:  gperftools-devel
%endif
%ifarch x86_64 ppc64le
BuildRequires:	libpmem-devel
BuildRequires:	libpmemblk-devel
%endif

BuildRequires: make
Requires: python3-pandas

%global __provides_exclude_from ^%{_libdir}/fio/


%description
fio is an I/O tool that will spawn a number of threads or processes doing
a particular type of io action as specified by the user.  fio takes a
number of global parameters, each inherited by the thread unless
otherwise parameters given to them overriding that setting is given.
The typical use of fio is to write a job file matching the io load
one wants to simulate.
	

%package_help

%prep
%autosetup -p1

pathfix.py -i %{__python3} -pn \
 tools/fio_jsonplus_clat2csv \
 tools/fiologparser.py \
 tools/hist/*.py \
 tools/plot/fio2gnuplot \
 t/steadystate_tests.py

# Edit /usr/local/lib path in os/os-linux.h to match Fedora conventions.
sed -e 's,/usr/local/lib/,%{_libdir}/,g' -i os/os-linux.h

%build
./configure --disable-optimizations --dynamic-libengines

EXTFLAGS="%{build_cflags}" LDFLAGS="%{build_ldflags}" %make_build

%install
make install prefix=%{_prefix} mandir=%{_mandir} libdir=%{_libdir}/fio DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"

%check
make test

%files
%license COPYING
%{_bindir}/*
%{_datadir}/%{name}
%{_libdir}/fio/*.so

%files help
%doc REPORTING-BUGS examples MORAL-LICENSE GFIO-TODO SERVER-TODO STEADYSTATE-TODO
%{_mandir}/man1/*


%changelog
* Mon Aug 10 2026 liuh <liuhuan01@kylinos.cn> - 3.42-4
- blktrace: fix three bugs in merge_blktrace_iologs path

* Fri Jul 10 2026 cenhuilin <cenhuilin@kylinos.cn> - 3.42-3
- parse: ignore leading minus sign when splitting options

* Thu Jul 02 2026 cenhuilin <cenhuilin@kylinos.cn> - 3.42-2
- server: reap child processes on SIGINT to prevent assertion crash

* Wed Apr 22 2026 yaoxin <1024769339@qq.com> - 3.42-1
- Update to 3.42

* Mon Oct 13 2025 Funda Wang <fundawang@yeah.net> - 3.41-1
- update to 3.41

* Fri Aug 29 2025 wangkai <13474090681@163.com> - 3.40-1
- Update to 3.40

* Fri Aug 22 2025 cenhuilin <cenhuilin@kylinos.cn> - 3.39-2
- Add Zhaoxin support to enable tsc_reliable and arch_random features

* Mon Feb 17 2025 lvfei <lvfei@kylinos.cn> - 3.39-1
- upgrade to 3.39
- t/run-fio-tests: remove redundant pre_success lines
- t/jobs/t0036,0037: add tests for verify_state_save/load option

* Sun Nov 03 2024 Funda Wang <fundawang@yeah.net> - 3.38-1
- update to 3.38

* Fri Jul 05 2024 wangkai <13474090681@163.com> - 3.37-1
- Update to 3.37
- Change: https://git.kernel.dk/?p=fio.git;a=shortlog;h=refs/tags/fio-3.37

* Tue Jun 4 2024 zhangyaqi <zhangyaqi@kylinos.cn> - 3.36-3
- engines/http: Fix memory leak 

* Mon Apr 15 2024 cenhuilin <cenhuilin@kylinos.cn> - 3.36-2
- iolog: fix disk stats issue

* Thu Mar 14 2024 xu_ping <707078654@qq.com> - 3.36-1
- Update to 3.36

* Tue Mar 5 2024 wangxiaomeng <wangxiaomeng@klinos.cn> - 3.34-2
- Add BuildRequires gperftools-devel to link tcmalloc.

* Thu Apr 27 2023 liyanan <thistleslyn@163.com> - 3.34-1
- Update to 3.34

* Sun Nov 6 2022 huyab<1229981468@qq.com> - 3.32-1
- update version to 3.32-1

* Sun Aug 14 2022 tianlijing <tianlijing@kylinos.cn> - 3.30-1
- upgrade to 3.30

* Fri Jan 14 2022 caodongxia <caodongxia@huawei.com> - 3.29-1
- Upgrade 3.29

* Fri Jul 30 2021 linjiaxin5 <linjiaxin5@huawei.com> - 3.7-11
- Fix failure caused by GCC upgrade to 10

* Wed Jul 21 2021 lingsheng <lingsheng@huawei.com> - 3.7-10
- Remove unnecessary buildrequire gdb

* Wed Jun 2 2021 baizhonggui <baizhonggui@huawei.com> - 3.7-9
- Fix building error: configure: failed to find compiler
- Add gcc in BuildRequires

* Tue Nov 03 2020 lingsheng <lingsheng@huawei.com> - 3.7-8
- fio2gnuplot: fix TabErrors when running with Python 3

* Sat Sep 19 2020 yanan li <liyanan032@huawei.com> - 3.7-7
- Modify python2.7 to python3 with requires

* Thu Jul 23 2020 wutao<wutao61@huawei.com> - 3.7-5
- fix build error because of updating glibc

* Sat Mar 21 2020 huzunhao<huzunhao@huawei.com> - 3.7-4
- Type: NA
- ID: NA
- SUG: NA
- DESC: add buildrequire gdb

* Wed Nov 27 2019 likexin<likexin4@huawei.com> - 3.7-3
- Package init