[PATCH libaio 26/26] harness: Disable failing test 23
This new test fails on several architectures. But it is a new test
intended to check for a Linux kernel regression, so we are not worse
off than were before. Add it to the EXTRACASES variables, which has
currently the side effect of disabling it, as it is not handled
explicitly in the make target responsible for that variable.
This is probably not needed anymore with the off64_t fix in upstream,
but let's not try to revert this now while the time64 transition is
ongoing.
Guillem Jover [Mon, 4 Mar 2024 12:47:22 +0000 (13:47 +0100)]
[PATCH libaio 25/26] build: Use a temporary SONAME bump to avoid stomping over upstream ABI
We are using a different SONAME in case upstream wants to see a
different implementation for the newly added symbols. Where we then can
easily revert to the original SONAME. If upstream takes the symbols as
is, then we can simply create a compat symlink.
Guillem Jover [Tue, 5 Mar 2024 01:01:57 +0000 (02:01 +0100)]
[PATCH libaio 24/26] Disable io_pgetevents_time64 as it is broken on 64-bit kernel 32-bit userland
On 64-bit kernels running 32-bit userland, this syscall misbehaves
when passing a sigmask by always returning -EINVAL. This works on 32-bit
kernels. The syscall entry point is possible wrong and needs to be fixed
in the kernel. For now disable as the code is handling clean 64-bit time_t
and the timeout is relative anyway.
Once this is fixed in the kernel, and after enough time has passed we
can decide whether to enable this.
Guillem Jover [Fri, 16 Aug 2019 00:33:46 +0000 (02:33 +0200)]
[PATCH libaio 23/26] Fix io_pgetevents() syscall wrapper on 32-bit userland on 64-bit kernels
The kernel compat syscall in the kernel got introduced with a broken
layout, which requires a pointer to the actual sigset_t variable but
with the size of the running kernel, not the size of the compat code.
This means that when the wrapper sends the expected compat (32-bit)
pointer, the kernel reads a 64-bit pointer, eating with it also the
sigset size member. And then proceeds to fail the comparison of the
sigset_t size and returns EINVAL.
This really needs to be fixed in the kernel, as there's no apparent
user of the broken compat layout (from codesearch.debian.org, nor a
quick github.com search). But we have to workaround it in libaio so
that we can use kernels that have not yet been fixed.
We do that, by trying the non-broken layout (that would be used with
a 32-bit userland on a 32-bit kernel), and if that fails with -EINVAL
we retry with a structure padded to what the kernel expects.
Guillem Jover [Fri, 1 Mar 2024 00:52:51 +0000 (01:52 +0100)]
[PATCH libaio 21/26] Add time64 syscall support
This implements both io_getevents() and io_pgetevents() as wrappers over
the new aio_getevents() and aio_pgetevents() which use __kernel_timespec
as its timespec data type which should always be 64-bit. We add the
necessary conversion from __kernel_old_timespec or timsepec struct
types.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0021-Add-time64-syscall-support.patch
Guillem Jover [Tue, 2 Nov 2021 21:37:32 +0000 (22:37 +0100)]
[PATCH libaio 08/26] Use new symver function attribute to support LTO builds
The LTO support cannot work properly when there are versioned symbols
via asm statements, as those are not seen by the compiler. Use the new
function attributes if supported instead of the asm statements.
We need to move the SYMVER calls after the function definitions
otherwise it will reference symbols not yet seen.
[PATCH libaio 05/26] build: Honor user build flags
CPPFLAGS, CFLAGS and LDFLAGS are user flags, which we need to preserve,
regardless of the user passing them over the environment or the
command-line. Any required flag that the build system needs, has to be
set in some other flag (which we will namespace with «MK_») so that the
build will use even if the user flags are passed, even though the user
should be able to override by appending after them. We pass CPPFLAGS to
any compilation command that missed them.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0005-build-Honor-user-build-flags.patch
[PATCH libaio 04/26] build: Fix DESTDIR and pathname variables handling
The convention for DESTDIR is that it is only prefixed during the
install target. In this case we postpone that to the inner Makefile
so that it can be invoked directly while preserving the expected
semantics. We should also prefer the user specified pathname variables
if already set in any way, and do not need to pass them explicitly
to the sub-make.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0004-build-Fix-DESTDIR-and-pathname-variables-handling.patch
Guillem Jover [Sat, 17 Oct 2026 15:57:49 +0000 (17:57 +0200)]
libaio (0.3.113-10) unstable; urgency=medium
* Remove build dependency on debhelper (>= 13.10) implied by
debhelper-compat (= 13) since Debian bookworm.
* Switch to Standards-Version 4.7.4 (no changes needed).
* Refactor common description into a source stanza Description field.
* Switch upstream site from decommissioned pagure.io to codeberg.org.
[PATCH libaio 26/26] harness: Disable failing test 23
This new test fails on several architectures. But it is a new test
intended to check for a Linux kernel regression, so we are not worse
off than were before. Add it to the EXTRACASES variables, which has
currently the side effect of disabling it, as it is not handled
explicitly in the make target responsible for that variable.
This is probably not needed anymore with the off64_t fix in upstream,
but let's not try to revert this now while the time64 transition is
ongoing.
Guillem Jover [Mon, 4 Mar 2024 12:47:22 +0000 (13:47 +0100)]
[PATCH libaio 25/26] build: Use a temporary SONAME bump to avoid stomping over upstream ABI
We are using a different SONAME in case upstream wants to see a
different implementation for the newly added symbols. Where we then can
easily revert to the original SONAME. If upstream takes the symbols as
is, then we can simply create a compat symlink.
Guillem Jover [Tue, 5 Mar 2024 01:01:57 +0000 (02:01 +0100)]
[PATCH libaio 24/26] Disable io_pgetevents_time64 as it is broken on 64-bit kernel 32-bit userland
On 64-bit kernels running 32-bit userland, this syscall misbehaves
when passing a sigmask by always returning -EINVAL. This works on 32-bit
kernels. The syscall entry point is possible wrong and needs to be fixed
in the kernel. For now disable as the code is handling clean 64-bit time_t
and the timeout is relative anyway.
Once this is fixed in the kernel, and after enough time has passed we
can decide whether to enable this.
Guillem Jover [Fri, 16 Aug 2019 00:33:46 +0000 (02:33 +0200)]
[PATCH libaio 23/26] Fix io_pgetevents() syscall wrapper on 32-bit userland on 64-bit kernels
The kernel compat syscall in the kernel got introduced with a broken
layout, which requires a pointer to the actual sigset_t variable but
with the size of the running kernel, not the size of the compat code.
This means that when the wrapper sends the expected compat (32-bit)
pointer, the kernel reads a 64-bit pointer, eating with it also the
sigset size member. And then proceeds to fail the comparison of the
sigset_t size and returns EINVAL.
This really needs to be fixed in the kernel, as there's no apparent
user of the broken compat layout (from codesearch.debian.org, nor a
quick github.com search). But we have to workaround it in libaio so
that we can use kernels that have not yet been fixed.
We do that, by trying the non-broken layout (that would be used with
a 32-bit userland on a 32-bit kernel), and if that fails with -EINVAL
we retry with a structure padded to what the kernel expects.
Guillem Jover [Fri, 1 Mar 2024 00:52:51 +0000 (01:52 +0100)]
[PATCH libaio 21/26] Add time64 syscall support
This implements both io_getevents() and io_pgetevents() as wrappers over
the new aio_getevents() and aio_pgetevents() which use __kernel_timespec
as its timespec data type which should always be 64-bit. We add the
necessary conversion from __kernel_old_timespec or timsepec struct
types.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0021-Add-time64-syscall-support.patch
Guillem Jover [Tue, 2 Nov 2021 21:37:32 +0000 (22:37 +0100)]
[PATCH libaio 08/26] Use new symver function attribute to support LTO builds
The LTO support cannot work properly when there are versioned symbols
via asm statements, as those are not seen by the compiler. Use the new
function attributes if supported instead of the asm statements.
We need to move the SYMVER calls after the function definitions
otherwise it will reference symbols not yet seen.
[PATCH libaio 05/26] build: Honor user build flags
CPPFLAGS, CFLAGS and LDFLAGS are user flags, which we need to preserve,
regardless of the user passing them over the environment or the
command-line. Any required flag that the build system needs, has to be
set in some other flag (which we will namespace with «MK_») so that the
build will use even if the user flags are passed, even though the user
should be able to override by appending after them. We pass CPPFLAGS to
any compilation command that missed them.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0005-build-Honor-user-build-flags.patch
[PATCH libaio 04/26] build: Fix DESTDIR and pathname variables handling
The convention for DESTDIR is that it is only prefixed during the
install target. In this case we postpone that to the inner Makefile
so that it can be invoked directly while preserving the expected
semantics. We should also prefer the user specified pathname variables
if already set in any way, and do not need to pass them explicitly
to the sub-make.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0004-build-Fix-DESTDIR-and-pathname-variables-handling.patch
[PATCH libaio 26/26] harness: Disable failing test 23
This new test fails on several architectures. But it is a new test
intended to check for a Linux kernel regression, so we are not worse
off than were before. Add it to the EXTRACASES variables, which has
currently the side effect of disabling it, as it is not handled
explicitly in the make target responsible for that variable.
This is probably not needed anymore with the off64_t fix in upstream,
but let's not try to revert this now while the time64 transition is
ongoing.
Guillem Jover [Mon, 4 Mar 2024 12:47:22 +0000 (13:47 +0100)]
[PATCH libaio 25/26] build: Use a temporary SONAME bump to avoid stomping over upstream ABI
We are using a different SONAME in case upstream wants to see a
different implementation for the newly added symbols. Where we then can
easily revert to the original SONAME. If upstream takes the symbols as
is, then we can simply create a compat symlink.
Guillem Jover [Tue, 5 Mar 2024 01:01:57 +0000 (02:01 +0100)]
[PATCH libaio 24/26] Disable io_pgetevents_time64 as it is broken on 64-bit kernel 32-bit userland
On 64-bit kernels running 32-bit userland, this syscall misbehaves
when passing a sigmask by always returning -EINVAL. This works on 32-bit
kernels. The syscall entry point is possible wrong and needs to be fixed
in the kernel. For now disable as the code is handling clean 64-bit time_t
and the timeout is relative anyway.
Once this is fixed in the kernel, and after enough time has passed we
can decide whether to enable this.
Guillem Jover [Fri, 16 Aug 2019 00:33:46 +0000 (02:33 +0200)]
[PATCH libaio 23/26] Fix io_pgetevents() syscall wrapper on 32-bit userland on 64-bit kernels
The kernel compat syscall in the kernel got introduced with a broken
layout, which requires a pointer to the actual sigset_t variable but
with the size of the running kernel, not the size of the compat code.
This means that when the wrapper sends the expected compat (32-bit)
pointer, the kernel reads a 64-bit pointer, eating with it also the
sigset size member. And then proceeds to fail the comparison of the
sigset_t size and returns EINVAL.
This really needs to be fixed in the kernel, as there's no apparent
user of the broken compat layout (from codesearch.debian.org, nor a
quick github.com search). But we have to workaround it in libaio so
that we can use kernels that have not yet been fixed.
We do that, by trying the non-broken layout (that would be used with
a 32-bit userland on a 32-bit kernel), and if that fails with -EINVAL
we retry with a structure padded to what the kernel expects.
Guillem Jover [Fri, 1 Mar 2024 00:52:51 +0000 (01:52 +0100)]
[PATCH libaio 21/26] Add time64 syscall support
This implements both io_getevents() and io_pgetevents() as wrappers over
the new aio_getevents() and aio_pgetevents() which use __kernel_timespec
as its timespec data type which should always be 64-bit. We add the
necessary conversion from __kernel_old_timespec or timsepec struct
types.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0021-Add-time64-syscall-support.patch
Guillem Jover [Tue, 2 Nov 2021 21:37:32 +0000 (22:37 +0100)]
[PATCH libaio 08/26] Use new symver function attribute to support LTO builds
The LTO support cannot work properly when there are versioned symbols
via asm statements, as those are not seen by the compiler. Use the new
function attributes if supported instead of the asm statements.
We need to move the SYMVER calls after the function definitions
otherwise it will reference symbols not yet seen.
[PATCH libaio 05/26] build: Honor user build flags
CPPFLAGS, CFLAGS and LDFLAGS are user flags, which we need to preserve,
regardless of the user passing them over the environment or the
command-line. Any required flag that the build system needs, has to be
set in some other flag (which we will namespace with «MK_») so that the
build will use even if the user flags are passed, even though the user
should be able to override by appending after them. We pass CPPFLAGS to
any compilation command that missed them.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0005-build-Honor-user-build-flags.patch
[PATCH libaio 04/26] build: Fix DESTDIR and pathname variables handling
The convention for DESTDIR is that it is only prefixed during the
install target. In this case we postpone that to the inner Makefile
so that it can be invoked directly while preserving the expected
semantics. We should also prefer the user specified pathname variables
if already set in any way, and do not need to pass them explicitly
to the sub-make.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0004-build-Fix-DESTDIR-and-pathname-variables-handling.patch
Guillem Jover [Sun, 22 Mar 2026 03:45:17 +0000 (04:45 +0100)]
libaio (0.3.113-9) unstable; urgency=medium
* Remove «Rules-Requires-Root: no», which is the current default.
* Remove «Priority: optional», which is the current default.
* Remove versioned Build-Depends on dpkg-dev, satisfied since Debian trixie.
* Remove lintian overrides that no longer get emitted.
* Add spaces around make assignment operators to distinguish from shell ones.
* Finish multi-line commands in debian/rules with a comment marker.
* Switch to debian/watch version 5.
* Switch to Standards-Version 4.7.3 (no changes needed).
[PATCH libaio 26/26] harness: Disable failing test 23
This new test fails on several architectures. But it is a new test
intended to check for a Linux kernel regression, so we are not worse
off than were before. Add it to the EXTRACASES variables, which has
currently the side effect of disabling it, as it is not handled
explicitly in the make target responsible for that variable.
This is probably not needed anymore with the off64_t fix in upstream,
but let's not try to revert this now while the time64 transition is
ongoing.
Guillem Jover [Mon, 4 Mar 2024 12:47:22 +0000 (13:47 +0100)]
[PATCH libaio 25/26] build: Use a temporary SONAME bump to avoid stomping over upstream ABI
We are using a different SONAME in case upstream wants to see a
different implementation for the newly added symbols. Where we then can
easily revert to the original SONAME. If upstream takes the symbols as
is, then we can simply create a compat symlink.
Guillem Jover [Tue, 5 Mar 2024 01:01:57 +0000 (02:01 +0100)]
[PATCH libaio 24/26] Disable io_pgetevents_time64 as it is broken on 64-bit kernel 32-bit userland
On 64-bit kernels running 32-bit userland, this syscall misbehaves
when passing a sigmask by always returning -EINVAL. This works on 32-bit
kernels. The syscall entry point is possible wrong and needs to be fixed
in the kernel. For now disable as the code is handling clean 64-bit time_t
and the timeout is relative anyway.
Once this is fixed in the kernel, and after enough time has passed we
can decide whether to enable this.
Guillem Jover [Fri, 16 Aug 2019 00:33:46 +0000 (02:33 +0200)]
[PATCH libaio 23/26] Fix io_pgetevents() syscall wrapper on 32-bit userland on 64-bit kernels
The kernel compat syscall in the kernel got introduced with a broken
layout, which requires a pointer to the actual sigset_t variable but
with the size of the running kernel, not the size of the compat code.
This means that when the wrapper sends the expected compat (32-bit)
pointer, the kernel reads a 64-bit pointer, eating with it also the
sigset size member. And then proceeds to fail the comparison of the
sigset_t size and returns EINVAL.
This really needs to be fixed in the kernel, as there's no apparent
user of the broken compat layout (from codesearch.debian.org, nor a
quick github.com search). But we have to workaround it in libaio so
that we can use kernels that have not yet been fixed.
We do that, by trying the non-broken layout (that would be used with
a 32-bit userland on a 32-bit kernel), and if that fails with -EINVAL
we retry with a structure padded to what the kernel expects.
Guillem Jover [Fri, 1 Mar 2024 00:52:51 +0000 (01:52 +0100)]
[PATCH libaio 21/26] Add time64 syscall support
This implements both io_getevents() and io_pgetevents() as wrappers over
the new aio_getevents() and aio_pgetevents() which use __kernel_timespec
as its timespec data type which should always be 64-bit. We add the
necessary conversion from __kernel_old_timespec or timsepec struct
types.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Gbp-Pq: Name 0021-Add-time64-syscall-support.patch