Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37536117
en ru br
ALT Linux repos
S:2.4-alt1

Group :: System/Libraries
RPM: liburing

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

# SPDX-License-Identifier: GPL-2.0-only
%define _unpackaged_files_terminate_build 1
%define _stripped_files_terminate_build 1
%set_verify_elf_method strict

Name: liburing
Version: 2.3
Release: alt3

Summary: The io_uring library
License: (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
Group: System/Libraries

Url: http://git.kernel.dk/cgit/liburing
# Author's Vcs and CI: https://github.com/axboe/liburing
Source: %name-%version.tar
Patch: liburing-e2k.patch

BuildRequires: gcc-c++
%{?!_without_check:%{?!_disable_check:BuildRequires: strace /proc}}

%description
Provides native async IO for the Linux 5.1+ kernel, in a fast
and efficient manner, for both buffered and O_DIRECT.

liburing provides helpers to setup and teardown io_uring instances,
and also a simplified interface for applications that don't need
(or want) to deal with the full kernel side implementation.

%package devel
Summary: Development files for Linux-native io_uring I/O access library
Group: Development/C
Requires: %name = %EVR

%description devel
This package provides header files to include and libraries to link with
for the Linux-native io_uring.

%prep
%setup
%ifarch %e2k
%patch -p1
%endif

%build
%add_optflags %(getconf LFS_CFLAGS) -ffat-lto-objects
# homegrown one
./configure \
--prefix=%_prefix \
--includedir=%_includedir \
--libdir=%_libdir \
--libdevdir=%_libdir \
--mandir=%_mandir \
#
%make_build --no-print-directory CFLAGS="%optflags" V=1

%install
%makeinstall_std V=1
rm %buildroot%_libdir/liburing.a
# Reuse probe test as a tool to test that io_uring is available.
install -Dp test/probe.t %buildroot%_bindir/io_uring_ok

%define _customdocdir %_docdir/%name

%check
# List of available probes
test/probe.t
strace -v test/probe.t

# Almost all tests fail on ppc64le, so there is no point to even try.

%ifnarch ppc64le %e2k
TEST_EXCLUDE="
500f9fbadef8.t
accept.t
cq-overflow.t
eeed8b54e0df.t
file-verify.t
fpos.t
io-cancel.t
iopoll.t
io_uring_register.t
link-timeout.t
personality.t
read-before-exit.t
read-write.t
recv-msgall-stream.t
ringbuf-read.t
rsrc_tags.t
sq-poll-dup.t
sq-poll-share.t
sync-cancel.t
" make runtests
%endif

%files
%_bindir/io_uring_ok
%_libdir/liburing.so.*
%doc COPYING

%files devel
%doc README LICENSE COPYING.GPL SECURITY.md CHANGELOG examples/*.c
%exclude %_docdir/%name/COPYING
%_includedir/*
%_libdir/%name.so
%_pkgconfigdir/%name.pc
%_man2dir/*
%_man3dir/*
%_man7dir/*

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin