New upstreamq version v3.24

Fix ioengine loading & listing
This commit is contained in:
Eric Sandeen 2020-11-12 15:03:32 -06:00
parent 0ae777e50c
commit 743767f534
4 changed files with 54 additions and 66 deletions

1
.gitignore vendored
View File

@ -23,3 +23,4 @@
/fio-3.20.tar.bz2 /fio-3.20.tar.bz2
/fio-3.21.tar.bz2 /fio-3.21.tar.bz2
/fio-3.23.tar.bz2 /fio-3.23.tar.bz2
/fio-3.24.tar.bz2

View File

@ -1,32 +0,0 @@
From 1b2f9943db0d74f4533567b7c8ed54d9c343e3f0 Mon Sep 17 00:00:00 2001
From: Yigal Korman <ykorman@gmail.com>
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 <ykorman@gmail.com>
---
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

View File

@ -1,15 +1,12 @@
Name: fio Name: fio
Version: 3.23 Version: 3.24
Release: 5%{?dist} Release: 1%{?dist}
Summary: Multithreaded IO generation tool Summary: Multithreaded IO generation tool
License: GPLv2 License: GPLv2
URL: http://git.kernel.dk/?p=fio.git;a=summary URL: http://git.kernel.dk/?p=fio.git;a=summary
Source: http://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2 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: gcc
BuildRequires: libaio-devel BuildRequires: libaio-devel
@ -23,7 +20,7 @@ BuildRequires: libpmem-devel
BuildRequires: libpmemblk-devel BuildRequires: libpmemblk-devel
%endif %endif
%ifnarch %{arm} i686 %ifnarch %{arm} %{ix86}
BuildRequires: librbd1-devel BuildRequires: librbd1-devel
%endif %endif
@ -40,13 +37,12 @@ BuildRequires: librdmacm-devel
# subpackages, but allows the engines to be uninstalled if not needed # subpackages, but allows the engines to be uninstalled if not needed
# or if the dependencies are too onerous. # or if the dependencies are too onerous.
Recommends: %{name}-engine-libaio Recommends: %{name}-engine-libaio
Recommends: %{name}-engine-http
Recommends: %{name}-engine-nbd
%ifarch x86-64 %ifarch x86-64
Recommends: %{name}-engine-dev-dax Recommends: %{name}-engine-dev-dax
Recommends: %{name}-engine-http
%endif
Recommends: %{name}-engine-nbd
%ifarch x86_64
Recommends: %{name}-engine-pmemblk Recommends: %{name}-engine-pmemblk
Recommends: %{name}-engine-libpmem
%endif %endif
%ifnarch %{arm} %{ix86} %ifnarch %{arm} %{ix86}
Recommends: %{name}-engine-rados Recommends: %{name}-engine-rados
@ -71,21 +67,12 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description engine-libaio %description engine-libaio
Linux libaio engine for %{name}. 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 %package engine-http
Summary: HTTP engine for %{name}. Summary: HTTP engine for %{name}.
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
%description engine-http %description engine-http
HTTP engine for %{name}. HTTP engine for %{name}.
%endif
%package engine-nbd %package engine-nbd
Summary: Network Block Device engine for %{name}. Summary: Network Block Device engine for %{name}.
@ -94,13 +81,37 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description engine-nbd %description engine-nbd
Network Block Device (NBD) engine for %{name}. 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 %ifarch x86_64
%package engine-pmemblk %package engine-pmemblk
Summary: PMDK pmemblk engine for %{name}. Summary: PMDK pmemblk engine for %{name}.
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
%description engine-pmemblk %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 %endif
%ifnarch %{arm} %{ix86} %ifnarch %{arm} %{ix86}
@ -138,9 +149,8 @@ pathfix.py -i %{__python3} -pn \
tools/plot/fio2gnuplot \ tools/plot/fio2gnuplot \
t/steadystate_tests.py t/steadystate_tests.py
# Edit /usr/lib path in os/os-linux.h to match Fedora conventions. # Edit /usr/local/lib path in os/os-linux.h to match Fedora conventions.
sed -e 's,/usr/lib/,%{_libdir}/,g' -i os/os-linux.h sed -e 's,/usr/local/lib/,%{_libdir}/,g' -i os/os-linux.h
%build %build
./configure --disable-optimizations --enable-libnbd --dynamic-libengines ./configure --disable-optimizations --enable-libnbd --dynamic-libengines
@ -159,39 +169,48 @@ make install prefix=%{_prefix} mandir=%{_mandir} libdir=%{_libdir}/fio DESTDIR=$
%{_mandir}/man1/* %{_mandir}/man1/*
%{_datadir}/%{name}/* %{_datadir}/%{name}/*
%files engine-libaio
%{_libdir}/fio/libaio.so
%ifarch x86_64 %ifarch x86_64
%files engine-dev-dax %files engine-dev-dax
%{_libdir}/fio/libdev-dax.so %{_libdir}/fio/fio-dev-dax.so
%endif
%files engine-http %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 %endif
%files engine-nbd %files engine-nbd
%{_libdir}/fio/libnbd.so %{_libdir}/fio/fio-nbd.so
%ifarch x86_64 %ifarch x86_64
%files engine-pmemblk %files engine-pmemblk
%{_libdir}/fio/libpmemblk.so %{_libdir}/fio/fio-pmemblk.so
%endif %endif
%ifnarch %{arm} %{ix86} %ifnarch %{arm} %{ix86}
%files engine-rados %files engine-rados
%{_libdir}/fio/librados.so %{_libdir}/fio/fio-rados.so
%files engine-rbd %files engine-rbd
%{_libdir}/fio/librbd.so %{_libdir}/fio/fio-rbd.so
%endif %endif
%ifnarch %{arm} %ifnarch %{arm}
%files engine-rdma %files engine-rdma
%{_libdir}/fio/librdma.so %{_libdir}/fio/fio-rdma.so
%endif %endif
%changelog %changelog
* Thu Nov 12 2020 Eric Sandeen <sandeen@redhat.com> 3.24-1
- New upstream version
- Fix dynamic engine loading (#bz1894616)
* Mon Oct 05 2020 Richard W.M. Jones <rjones@redhat.com> 3.23-5 * Mon Oct 05 2020 Richard W.M. Jones <rjones@redhat.com> 3.23-5
- Disable automatic provides for fio engines (RHBZ#1884954). - Disable automatic provides for fio engines (RHBZ#1884954).
- Apply patch to change SONAME of fio engines (see comment 8 of above bug). - Apply patch to change SONAME of fio engines (see comment 8 of above bug).

View File

@ -1 +1 @@
SHA512 (fio-3.23.tar.bz2) = 242ce7b6673243e8544610619806490da6c527f86cebc803442c7504845ba5dcc186bb404da33c40a263f9558543497efc757cf10c370f66e2de330d7e149610 SHA512 (fio-3.24.tar.bz2) = 909131ed70cd2c3874138c9f8e005d184bf2afa7de4ffd3dd1251b09f3ba45e34caaefc2e6b63261b3b1284e1f5a9ab6219f697780ddbd890f103187d7cbf7c9