diff --git a/fio-3.36.tar.bz2 b/fio-3.36.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..038eefc9c6c4ab9ad482f46c9aececabbfb94e12 Binary files /dev/null and b/fio-3.36.tar.bz2 differ diff --git a/fio-3.36.tar.bz2.asc b/fio-3.36.tar.bz2.asc new file mode 100644 index 0000000000000000000000000000000000000000..8654919612b1445bb574fda5f32061f26a01af43 --- /dev/null +++ b/fio-3.36.tar.bz2.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- + +iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmUyhUMQHGF4Ym9lQGtl +cm5lbC5kawAKCRD301j7KXHgpgnqEACb1nDL1FDGt9lSvXwKH6A+5IZLI+VfB0BP +Tz8z5W6G+cMprWyeaLL4uNgVwd3VDV1TwPjp3AiimB6bsU+fYGwyL/FKbyO82AaS +m75VR3iKCIPagxVtOoT3if4joJOje98IakDfAUIg9fdJwMHpQNz1MCOvz2EfFejd +QijWSfHp2Y2M2IbU1663qY3dhyLzt7b7pmwbp6L75kE3z2nv8kEC8AohdISncrS/ +j3/Cvwl/wdIQvI/MUQs+yHxZm5v+aiORt3BcRmtRcZfhGi+N0f0NYhX8341vOCzf ++gvLL3tBPwsWs1FXcP335nqwdh/iOX/VI43yFIqPG+Mgz1coC2CzW0vxd51rRDfQ +L4quCQajNYLetaKFwkU/Dqx8JDnhtzAvjdP1H38jD4zyK7FlODL/FLVsOIJ4wNy7 +WCHPbpivJry6N2my/lS8fNuqzI3gbbqIcOx933N1/m3D7wif8yjdHz0cK6IXo/Mp +/cHD1aa69GH+5LoQtmBe6Y879P0pn9KLpOoTEDOpNd/ZKvRptZhuHjWhKA1qN6vh +Y9qHtKok7efByqjNJaNUkq3urp2zB80EP5H2soEYYo5x7RrXhaqcmDUCxQjhtZvV +RdUPDNUQQ15EXk6xPIDD8Sv/V1fpDlicSOMnKKN7vqbDVQMgnAYiJeg9e5OFlqM9 +RL1NjhlLVw== +=Rfyc +-----END PGP SIGNATURE----- diff --git a/fio.spec b/fio.spec index f67b6e79e5d01196aa6f88930c71306d5d5f7db6..d478ab3ab92e4db0f17a284ba932b1eb5d813cb3 100644 --- a/fio.spec +++ b/fio.spec @@ -1,25 +1,36 @@ -%define anolis_release 1 -%bcond_with nbd -%bcond_with rbd -%bcond_with rados -%bcond_with +ExclusiveArch: x86_64 aarch64 +%define anolis_release 2 +%if 0%{?rhel} && 0%{?rhel} < 10 +%bcond_without nbd +%ifarch x86_64 ppc64le +%bcond_without pmem +%endif +%ifnarch %{arm} %{ix86} +%bcond_without rbd +%bcond_without rados +%endif +%else +%bcond nbd 1 +%ifarch x86_64 ppc64le +%bcond pmem %{undefined rhel} +%endif +%ifnarch %{arm} %{ix86} +%bcond rbd 1 +%bcond rados 1 +%endif +%endif Name: fio -Version: 3.34 +Version: 3.36 Release: %{anolis_release}%{?dist} Summary: Multithreaded IO generation tool -License: GPLv2 +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 Source1: https://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2.asc Source2: https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/plain/keys/F7D358FB2971E0A6.asc -Patch0001: 0001-engines-io_uring-add-sqthread_poll_percpu-option.patch -Patch0002: 0002-engines-io_uring-use-correct-type-for-fio_nvme_get_i.patch -Patch0003: 0003-engines-nvme-cast-__u64-to-unsigned-long-long-for-pr.patch -Patch0004: 0004-t-io_uring-fix-max_blocks-calculation-in-nvme-passth.patch - BuildRequires: gcc BuildRequires: gnupg2 BuildRequires: libaio-devel @@ -30,30 +41,33 @@ BuildRequires: libnbd-devel %endif BuildRequires: libcurl-devel BuildRequires: openssl-devel -%ifarch x86_64 +%if %{with pmem} BuildRequires: libpmem-devel -BuildRequires: libpmemblk-devel %endif %if %{with rbd} BuildRequires: librbd1-devel %endif +%ifnarch %{arm} BuildRequires: numactl-devel BuildRequires: librdmacm-devel +%endif BuildRequires: make # Don't create automated dependencies for the fio engines. %global __provides_exclude_from ^%{_libdir}/fio/ +# Main fio package has soft dependencies on all the engine +# subpackages, but allows the engines to be uninstalled if not needed +# or if the dependencies are too onerous. Recommends: %{name}-engine-libaio Recommends: %{name}-engine-http %if %{with nbd} Recommends: %{name}-engine-nbd %endif -%ifarch x86-64 +%if %{with pmem} Recommends: %{name}-engine-dev-dax -Recommends: %{name}-engine-pmemblk Recommends: %{name}-engine-libpmem %endif %if %{with rados} @@ -62,12 +76,12 @@ Recommends: %{name}-engine-rados %if %{with rbd} Recommends: %{name}-engine-rbd %endif +%ifnarch %{arm} Recommends: %{name}-engine-rdma - -%ifarch x86_64 -Obsoletes: %{name}-engine-pmemblk < %{version}-%{release} %endif + + %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 @@ -99,7 +113,7 @@ Requires: %{name} = %{version}-%{release} Network Block Device (NBD) engine for %{name}. %endif -%ifarch x86_64 +%if %{with pmem} %package engine-dev-dax Summary: PMDK dev-dax engine for %{name}. Requires: %{name} = %{version}-%{release} @@ -110,18 +124,7 @@ Read and write using device DAX to a persistent memory device (e.g., /dev/dax0.0) through the PMDK libpmem library. %endif -%ifarch x86_64 -%package engine-pmemblk -Summary: PMDK pmemblk engine for %{name}. -Requires: %{name} = %{version}-%{release} - -%description engine-pmemblk -pmemblk engine for %{name}. -Read and write using filesystem DAX to a file on a filesystem mounted with -DAX on a persistent memory device through the PMDK libpmemblk library. -%endif - -%ifarch x86_64 +%if %{with pmem} %package engine-libpmem Summary: PMDK pmemblk engine for %{name}. Requires: %{name} = %{version}-%{release} @@ -150,12 +153,14 @@ Requires: %{name} = %{version}-%{release} Rados Block Device (RBD) engine for %{name}. %endif +%ifnarch %{arm} %package engine-rdma Summary: RDMA engine for %{name}. -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %description engine-rdma RDMA engine for %{name}. +%endif %package doc Summary: Documentation files for %{name} @@ -169,6 +174,14 @@ The %{name}-doc package contains documentation files for %{name}. %autosetup -p1 %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%{__python3} %{_rpmconfigdir}/redhat/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 @@ -181,40 +194,31 @@ EXTFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" make V=1 %{?_smp_mflags} %install make install prefix=%{_prefix} mandir=%{_mandir} libdir=%{_libdir}/fio DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" -%generate_compatibility_deps %files +%doc README.rst REPORTING-BUGS HOWTO.rst examples +%doc MORAL-LICENSE GFIO-TODO SERVER-TODO STEADYSTATE-TODO %license COPYING %dir %{_datadir}/%{name} %dir %{_libdir}/fio/ %{_bindir}/* %{_mandir}/man1/* %{_datadir}/%{name}/* -%dir %{abidir} -%{abidir}/genfio-option.list -%{abidir}/fio-option.list -%{abidir}/fio-genzipf-option.list -%{abidir}/fio-histo-log-pctiles.py-option.list -%{abidir}/fiologparser.py-option.list - -%ifarch x86_64 + +%if %{with pmem} %files engine-dev-dax %{_libdir}/fio/fio-dev-dax.so -%{abidir}/fio-dev-dax.dump %endif %files engine-http %{_libdir}/fio/fio-http.so -%{abidir}/fio-http.dump %files engine-libaio %{_libdir}/fio/fio-libaio.so -%{abidir}/fio-libaio.dump -%ifarch x86_64 +%if %{with pmem} %files engine-libpmem %{_libdir}/fio/fio-libpmem.so -%{abidir}/fio-libpmem.dump %endif %if %{with nbd} @@ -232,15 +236,24 @@ make install prefix=%{_prefix} mandir=%{_mandir} libdir=%{_libdir}/fio DESTDIR=$ %{_libdir}/fio/fio-rbd.so %endif +%ifnarch %{arm} %files engine-rdma %{_libdir}/fio/fio-rdma.so -%{abidir}/fio-rdma.dump - -%files doc -%doc MORAL-LICENSE GFIO-TODO SERVER-TODO STEADYSTATE-TODO -%doc README.rst REPORTING-BUGS HOWTO.rst examples +%endif %changelog +* Mon Feb 13 2024 wency_cn - 3.36-2 +- Update to match upstream specfile version 3.36 +- Sync build requirements and configuration with upstream +- Add architecture-specific conditional builds +- Adjust conditional build flags for Anolis OS packaging +- Improve RDMA engine conditional packaging for ARM architectures +- Related: packaging synchronization with upstream + +* Fri Oct 20 2023 Pavel Reichl - 3.36-1 +- Rebase to upstream version 3.36 +- Related: rhbz#2245247 + * Wed Jun 21 2023 Joseph Qi 3.34-1 - update to 3.34 to support io_uring nvme passthrough