mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-04 13:47:35 -08:00
dev-libs/libaio: add 0.3.113_p8
libaio is dead upstream and the state of it hasn't been great for a while. After fixing bug #722672, I started to see one failure on just one machine for ABI_X86_32: ``` test cases/20.t completed PASSED. Completed cases/20.p with 0. Starting cases/21.p Expected 4096, got 4294967285 test cases/21.t completed FAILED. Completed cases/21.p with 1 -- FAILED. Starting cases/22.p test cases/22.t completed PASSED. Completed cases/22.p with 0. Starting cases/23.p test cases/23.t completed PASSED. Completed cases/23.p with 0. Pass: 18 Fail: 1 Skip: 0 Test run complete at Tue 26 Aug 12:09:10 BST 2025 make[1]: *** [Makefile:53: partcheck] Error 1 ``` It's not clear to me why it's only there but given Debian have a tonne of useful portability patches, let's switch to them (and drop our own x32 patch) and see if that helps. It also brings us HPPA support. We also get LTO support as a bonus. Bug: https://bugs.gentoo.org/453938 Bug: https://bugs.gentoo.org/722672 Bug: https://bugs.gentoo.org/855698 Bug: https://bugs.gentoo.org/933092 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
parent
71f671aac4
commit
dd197413c0
@ -1 +1,2 @@
|
||||
DIST libaio-0.3.113.tar.gz 49980 BLAKE2B 2379c88670310b36942563d10f29dfcba0f49391952ffe7fe18b0c917f33ef610405fe13297d1dbb34b7ad1d3066d4a32587a7fb20babba2f264cfc2ab289e57 SHA512 65c30a102433bf8386581b03fc706d84bd341be249fbdee11a032b237a7b239e8c27413504fef15e2797b1acd67f752526637005889590ecb380e2e120ab0b71
|
||||
DIST libaio_0.3.113-8.debian.tar.xz 25244 BLAKE2B d65a0f5f7ec521754b8a4cc4da8160c24e8b7426210d72ad2cebb990ba71ee25e795916b72dfebb10578dba578b59137fc8a5e229a0f752aa6ecbeb6b0fdc88b SHA512 f17307895f9a485e60b708881b7352eaf4dfbf3a9b62583b84bf4cb18879669c5348f2af89ddde65686711833486a7632922370284e260fefd614bec8ecd0624
|
||||
|
||||
103
dev-libs/libaio/libaio-0.3.113_p8.ebuild
Normal file
103
dev-libs/libaio/libaio-0.3.113_p8.ebuild
Normal file
@ -0,0 +1,103 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit multilib-minimal toolchain-funcs flag-o-matic
|
||||
|
||||
DESCRIPTION="Asynchronous input/output library that uses the kernels native interface"
|
||||
HOMEPAGE="https://pagure.io/libaio"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://pagure.io/libaio.git"
|
||||
else
|
||||
SRC_URI="https://releases.pagure.org/${PN}/${P%_p*}.tar.gz"
|
||||
# Take Debian's patchset as upstream is dead and there's a lot of valuable
|
||||
# portability fixes in there.
|
||||
if [[ ${PV} == *_p* ]] ; then
|
||||
SRC_URI+=" mirror://debian/pool/main/liba/${PN}/${PN}_${PV/_p/-}.debian.tar.xz"
|
||||
fi
|
||||
S="${WORKDIR}"/${P%_p*}
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2"
|
||||
SLOT="0"
|
||||
IUSE="static-libs test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
src_prepare() {
|
||||
if [[ ${PV} == *_p* ]] ; then
|
||||
local i
|
||||
# Exclude patches from Debian which add time64 APIs which
|
||||
# aren't yet merged upstream.
|
||||
for i in $(sed \
|
||||
-e '/^#/d' \
|
||||
-e '/gitignore/d' \
|
||||
-e '/SONAME/d' \
|
||||
-e '/time64/d' \
|
||||
-e '/Fix-io_pgetevents-syscall-wrapper/d' "${WORKDIR}"/debian/patches/series) ; do
|
||||
PATCHES+=( "${WORKDIR}"/debian/patches/${i} )
|
||||
done
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
local sed_args=(
|
||||
-e 's:-Werror ::'
|
||||
)
|
||||
if ! use static-libs; then
|
||||
sed_args+=( -e '/\tinstall .*\/libaio.a/d' )
|
||||
# Tests require the static library to be built.
|
||||
use test || sed_args+=( -e '/^all_targets +=/s/ libaio.a//' )
|
||||
fi
|
||||
sed -i "${sed_args[@]}" src/Makefile harness/Makefile Makefile || die
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
if use arm ; then
|
||||
# When building for thumb, we can't allow frame pointers.
|
||||
# http://crbug.com/464517
|
||||
if $(tc-getCPP) ${CFLAGS} ${CPPFLAGS} - <<<$'#ifndef __thumb__\n#error\n#endif' >&/dev/null ; then
|
||||
append-flags -fomit-frame-pointer
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
_emake() {
|
||||
emake \
|
||||
CC="$(tc-getCC)" \
|
||||
AR="$(tc-getAR)" \
|
||||
RANLIB="$(tc-getRANLIB)" \
|
||||
CFLAGS_WERROR= \
|
||||
prefix="${EPREFIX}/usr" \
|
||||
libdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
_emake
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
mkdir -p testdir || die
|
||||
|
||||
# 'make check' breaks with sandbox, 'make partcheck' works
|
||||
_emake partcheck prefix="${S}/src" libdir="${S}/src"
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
_emake install DESTDIR="${D}"
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
doman man/*
|
||||
dodoc ChangeLog TODO
|
||||
|
||||
# This lib is a bare minimal shim on top of kernel syscalls.
|
||||
export QA_DT_NEEDED=$(find "${ED}" -type f -name 'libaio.so.*' -printf '/%P\n')
|
||||
}
|
||||
@ -12,7 +12,14 @@ if [[ ${PV} == 9999 ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://pagure.io/libaio.git"
|
||||
else
|
||||
SRC_URI="https://releases.pagure.org/${PN}/${P}.tar.gz"
|
||||
SRC_URI="https://releases.pagure.org/${PN}/${P%_p*}.tar.gz"
|
||||
# Take Debian's patchset as upstream is dead and there's a lot of valuable
|
||||
# portability fixes in there.
|
||||
if [[ ${PV} == *_p* ]] ; then
|
||||
SRC_URI+=" mirror://debian/pool/main/liba/${PN}/${PN}_${PV/_p/-}.debian.tar.xz"
|
||||
fi
|
||||
S="${WORKDIR}"/${P%_p*}
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
@ -21,19 +28,24 @@ SLOT="0"
|
||||
IUSE="static-libs test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.3.112-cppflags.patch
|
||||
"${FILESDIR}"/${PN}-0.3.113-respect-LDFLAGS.patch
|
||||
"${FILESDIR}"/${PN}-0.3.113-32-bit-tests.patch
|
||||
"${FILESDIR}"/${PN}-0.3.113-x32.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if [[ ${PV} == *_p* ]] ; then
|
||||
local i
|
||||
# Exclude patches from Debian which add time64 APIs which
|
||||
# aren't yet merged upstream.
|
||||
for i in $(sed \
|
||||
-e '/^#/d' \
|
||||
-e '/gitignore/d' \
|
||||
-e '/SONAME/d' \
|
||||
-e '/time64/d' \
|
||||
-e '/Fix-io_pgetevents-syscall-wrapper/d' "${WORKDIR}"/debian/patches/series) ; do
|
||||
PATCHES+=( "${WORKDIR}"/debian/patches/${i} )
|
||||
done
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
local sed_args=(
|
||||
-e "/^prefix=/s:/usr:${EPREFIX}/usr:"
|
||||
-e '/^libdir=/s:lib$:$(ABI_LIBDIR):'
|
||||
-e 's:-Werror ::'
|
||||
)
|
||||
if ! use static-libs; then
|
||||
@ -47,9 +59,6 @@ src_prepare() {
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# Upstream aren't interested in fixing: bug #855698
|
||||
filter-lto
|
||||
|
||||
if use arm ; then
|
||||
# When building for thumb, we can't allow frame pointers.
|
||||
# http://crbug.com/464517
|
||||
@ -60,12 +69,14 @@ multilib_src_configure() {
|
||||
}
|
||||
|
||||
_emake() {
|
||||
CC="$(tc-getCC)" \
|
||||
AR="$(tc-getAR)" \
|
||||
RANLIB="$(tc-getRANLIB)" \
|
||||
ABI_LIBDIR="$(get_libdir)" \
|
||||
CFLAGS_WERROR= \
|
||||
emake "$@"
|
||||
emake \
|
||||
CC="$(tc-getCC)" \
|
||||
AR="$(tc-getAR)" \
|
||||
RANLIB="$(tc-getRANLIB)" \
|
||||
CFLAGS_WERROR= \
|
||||
prefix="${EPREFIX}/usr" \
|
||||
libdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user