diff --git a/.gitignore b/.gitignore index 0195a73..e09240a 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ /fio-3.20.tar.bz2 /fio-3.21.tar.bz2 /fio-3.23.tar.bz2 +/fio-3.24.tar.bz2 diff --git a/0001-fio-fix-dynamic-engines-soname-definition.patch b/0001-fio-fix-dynamic-engines-soname-definition.patch deleted file mode 100644 index 9039d24..0000000 --- a/0001-fio-fix-dynamic-engines-soname-definition.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 1b2f9943db0d74f4533567b7c8ed54d9c343e3f0 Mon Sep 17 00:00:00 2001 -From: Yigal Korman -Date: Thu, 17 Sep 2020 21:55:14 +0300 -Subject: [PATCH] fio: fix dynamic engines soname definition - -The SONAME of the engines should not match the name of the dependent -library. Otherwise it confuses the dynamic loader into thinking the -dependency is already resolved. - -Prefixing the name with fio make more sense here. - -Signed-off-by: Yigal Korman ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 8e1ebc90..e2d0833c 100644 ---- a/Makefile -+++ b/Makefile -@@ -256,7 +256,7 @@ define engine_template = - $(1)_OBJS := $$($(1)_SRCS:.c=.o) - $$($(1)_OBJS): CFLAGS := -fPIC $$($(1)_CFLAGS) $(CFLAGS) - engines/lib$(1).so: $$($(1)_OBJS) -- $$(QUIET_LINK)$(CC) -shared -rdynamic -fPIC -Wl,-soname,lib$(1).so.1 $$($(1)_LIBS) -o $$@ $$< -+ $$(QUIET_LINK)$(CC) -shared -rdynamic -fPIC -Wl,-soname,fio-$(1).so.1 $$($(1)_LIBS) -o $$@ $$< - ENGS_OBJS += engines/lib$(1).so - all install: $(ENGS_OBJS) - endef --- -2.17.1 - diff --git a/fio.spec b/fio.spec index a65bab6..bfe4a31 100644 --- a/fio.spec +++ b/fio.spec @@ -1,15 +1,12 @@ Name: fio -Version: 3.23 -Release: 5%{?dist} +Version: 3.24 +Release: 1%{?dist} Summary: Multithreaded IO generation tool License: GPLv2 URL: http://git.kernel.dk/?p=fio.git;a=summary Source: http://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2 -# Not upstream yet, see: -# https://bugzilla.redhat.com/show_bug.cgi?id=1884954#c8 -Patch1: 0001-fio-fix-dynamic-engines-soname-definition.patch BuildRequires: gcc BuildRequires: libaio-devel @@ -23,7 +20,7 @@ BuildRequires: libpmem-devel BuildRequires: libpmemblk-devel %endif -%ifnarch %{arm} i686 +%ifnarch %{arm} %{ix86} BuildRequires: librbd1-devel %endif @@ -40,13 +37,12 @@ BuildRequires: librdmacm-devel # 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 +Recommends: %{name}-engine-nbd %ifarch x86-64 Recommends: %{name}-engine-dev-dax -Recommends: %{name}-engine-http -%endif -Recommends: %{name}-engine-nbd -%ifarch x86_64 Recommends: %{name}-engine-pmemblk +Recommends: %{name}-engine-libpmem %endif %ifnarch %{arm} %{ix86} Recommends: %{name}-engine-rados @@ -71,21 +67,12 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description engine-libaio Linux libaio engine for %{name}. -%ifarch x86_64 -%package engine-dev-dax -Summary: PMDK dev-dax engine for %{name}. -Requires: %{name}%{?_isa} = %{version}-%{release} - -%description engine-dev-dax -PMDK dev-dax engine for %{name}. - %package engine-http Summary: HTTP engine for %{name}. Requires: %{name}%{?_isa} = %{version}-%{release} %description engine-http HTTP engine for %{name}. -%endif %package engine-nbd Summary: Network Block Device engine for %{name}. @@ -94,13 +81,37 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description engine-nbd Network Block Device (NBD) engine for %{name}. +%ifarch x86_64 +%package engine-dev-dax +Summary: PMDK dev-dax engine for %{name}. +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description engine-dev-dax +dev-dax engine for %{name}. +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}%{?_isa} = %{version}-%{release} %description engine-pmemblk -PMDK pmemblk engine for %{name}. +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 +%package engine-libpmem +Summary: PMDK pmemblk engine for %{name}. +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description engine-libpmem +libpmem engine for %{name}. +Read and write using mmap I/O to a file on a filesystem mounted with DAX +on a persistent memory device through the PMDK libpmem library. %endif %ifnarch %{arm} %{ix86} @@ -138,9 +149,8 @@ pathfix.py -i %{__python3} -pn \ tools/plot/fio2gnuplot \ t/steadystate_tests.py -# Edit /usr/lib path in os/os-linux.h to match Fedora conventions. -sed -e 's,/usr/lib/,%{_libdir}/,g' -i os/os-linux.h - +# 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 --enable-libnbd --dynamic-libengines @@ -159,39 +169,48 @@ make install prefix=%{_prefix} mandir=%{_mandir} libdir=%{_libdir}/fio DESTDIR=$ %{_mandir}/man1/* %{_datadir}/%{name}/* -%files engine-libaio -%{_libdir}/fio/libaio.so - %ifarch x86_64 %files engine-dev-dax -%{_libdir}/fio/libdev-dax.so +%{_libdir}/fio/fio-dev-dax.so +%endif %files engine-http -%{_libdir}/fio/libhttp.so +%{_libdir}/fio/fio-http.so + +%files engine-libaio +%{_libdir}/fio/fio-libaio.so + +%ifarch x86_64 +%files engine-libpmem +%{_libdir}/fio/fio-libpmem.so %endif %files engine-nbd -%{_libdir}/fio/libnbd.so +%{_libdir}/fio/fio-nbd.so %ifarch x86_64 %files engine-pmemblk -%{_libdir}/fio/libpmemblk.so +%{_libdir}/fio/fio-pmemblk.so %endif %ifnarch %{arm} %{ix86} %files engine-rados -%{_libdir}/fio/librados.so +%{_libdir}/fio/fio-rados.so %files engine-rbd -%{_libdir}/fio/librbd.so +%{_libdir}/fio/fio-rbd.so %endif %ifnarch %{arm} %files engine-rdma -%{_libdir}/fio/librdma.so +%{_libdir}/fio/fio-rdma.so %endif %changelog +* Thu Nov 12 2020 Eric Sandeen 3.24-1 +- New upstream version +- Fix dynamic engine loading (#bz1894616) + * Mon Oct 05 2020 Richard W.M. Jones 3.23-5 - Disable automatic provides for fio engines (RHBZ#1884954). - Apply patch to change SONAME of fio engines (see comment 8 of above bug). diff --git a/sources b/sources index 5521aed..f167c12 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (fio-3.23.tar.bz2) = 242ce7b6673243e8544610619806490da6c527f86cebc803442c7504845ba5dcc186bb404da33c40a263f9558543497efc757cf10c370f66e2de330d7e149610 +SHA512 (fio-3.24.tar.bz2) = 909131ed70cd2c3874138c9f8e005d184bf2afa7de4ffd3dd1251b09f3ba45e34caaefc2e6b63261b3b1284e1f5a9ab6219f697780ddbd890f103187d7cbf7c9