aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuncan Bellamy <dunk@denkimushi.com>2022-02-26 09:57:56 +0000
committerLeo <thinkabit.ukim@gmail.com>2022-03-16 16:00:58 +0000
commitbef8d052542153e59c8d6c3832d84fa6371204d6 (patch)
tree3577d06339c58c73afccc5d663552f4346b0dc2e
parente8fe8cb9d0b4897af0802ddc1253b9e23975b40e (diff)
main/libaio: add build and check functions
* add doc subpackage
-rw-r--r--main/libaio/APKBUILD38
-rw-r--r--main/libaio/test-poll.patch12
-rw-r--r--main/libaio/test.patch55
3 files changed, 92 insertions, 13 deletions
diff --git a/main/libaio/APKBUILD b/main/libaio/APKBUILD
index 96a4f1dc260..276fbf0a816 100644
--- a/main/libaio/APKBUILD
+++ b/main/libaio/APKBUILD
@@ -1,30 +1,42 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname="libaio"
+pkgname=libaio
pkgver=0.3.112
-pkgrel=1
+pkgrel=2
pkgdesc="Asynchronous input/output library"
url="https://pagure.io/libaio"
arch="all"
license="LGPL-2.1-or-later"
-options="!check" # No test suite.
-makedepends_host="linux-headers"
-subpackages="$pkgname-dev"
+checkdepends="bash"
+subpackages="$pkgname-dev $pkgname-doc"
source="https://releases.pagure.org/libaio/libaio-$pkgver.tar.gz
libaio-optional-werror.patch
libaio-cppflags.patch
- libaio-errno.patch"
+ libaio-errno.patch
+ test.patch
+ test-poll.patch
+ "
+
+build() {
+ make
+}
+
+check() {
+ make partcheck
+}
package() {
- make prefix="$pkgdir/usr" \
- sysconfdir="$pkgdir/etc" \
- mandir="$pkgdir/usr/share/man" \
- infodir="$pkgdir/usr/share/info" \
- install
+ DESTDIR="$pkgdir" make install
+ cd man
+ find ./ -name "*.3" -exec install -Dm 644 {} "$pkgdir"/usr/share/man/man3/{} \;
}
-sha512sums="5f984529c9f747a6c82f1e4457fc0832bb1fc299ae6e700f2ac5a8ea7b9bfc6ea1e75809728cc115a020cff6685ed1f4e38c6aeacc1ea98dfccce04dd19dafaa libaio-0.3.112.tar.gz
+sha512sums="
+5f984529c9f747a6c82f1e4457fc0832bb1fc299ae6e700f2ac5a8ea7b9bfc6ea1e75809728cc115a020cff6685ed1f4e38c6aeacc1ea98dfccce04dd19dafaa libaio-0.3.112.tar.gz
9b04df1f92b245c3012d161a96bc54d3bcc07d8a1049d7e5acfae50fba9bba94cbdbc220d75d186d6bf2333d58b093b9cf17bd7cd594cfdbfb6682a63daf19fd libaio-optional-werror.patch
c9ad6ff35ba12f33e308059d89592281768cef7091213b4702b64af2d194462864ec660dea327f8b718e5c723ec9ba6170b591461e2b140ba94f6838cddb8d7c libaio-cppflags.patch
-2bf5224f5c5714786cb9ed28d9ae7c1721ad21a498d7e76d0cd1443435f7cd424bd6d80baa961a07f38f20359711b3270cd5913890a47b683e035dfe00f66054 libaio-errno.patch"
+2bf5224f5c5714786cb9ed28d9ae7c1721ad21a498d7e76d0cd1443435f7cd424bd6d80baa961a07f38f20359711b3270cd5913890a47b683e035dfe00f66054 libaio-errno.patch
+b2bb73b7fe2ae083af8d7a8a6e5fe34830bff007b5dcdb565a440d81178f85862ac5b45b5e9ea061a5624eb4841ef013ed5c0d725e23f329721d4699b3d2cf56 test.patch
+b8c0fc6eb5c624a58c0110893af44cb1a3b3b047a6498705655854e3e1172fc587520cbe945738689c69d89b39c11c614e039e4850e0bb019e6a78fa1b5a9a85 test-poll.patch
+"
diff --git a/main/libaio/test-poll.patch b/main/libaio/test-poll.patch
new file mode 100644
index 00000000000..1183a4b453b
--- /dev/null
+++ b/main/libaio/test-poll.patch
@@ -0,0 +1,12 @@
+diff -Nurp a/harness/cases/22.t b/harness/cases/22.t
+--- a/harness/cases/22.t 2018-10-22 20:59:34.000000000 +0100
++++ b/harness/cases/22.t 2022-02-26 09:48:59.421311473 +0000
+@@ -11,7 +11,7 @@
+ #include <signal.h>
+ #include <stdio.h>
+ #include <unistd.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/wait.h>
+ #include <stdlib.h>
+
diff --git a/main/libaio/test.patch b/main/libaio/test.patch
new file mode 100644
index 00000000000..08227231187
--- /dev/null
+++ b/main/libaio/test.patch
@@ -0,0 +1,55 @@
+From: Lee Duncan <lduncan@suse.com>
+Date: Thu, 11 Feb 2021 11:34:42 -0800
+Subject: [PATCH] Fix test issue with gcc-11
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Test 3.t exercises io_submit() with invalid addresses,
+and one test attempted to pass in "-1" as an invalid
+pointer. But gcc-11 realizes you cannot take an offset
+from an invalid pointer, making it impossible to
+compile or run this test:
+
+> sh# make CC=gcc-11 partcheck
+> make[1]: Entering directory '/alt/public_software/libaio/src'
+> make[1]: Nothing to be done for 'all'.
+> make[1]: Leaving directory '/alt/public_software/libaio/src'
+> make[1]: Entering directory '/alt/public_software/libaio/harness'
+> gcc-11 -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/2.t\" -o cases/2.p main.c ../src/libaio.a -lpthread
+> gcc-11 -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/3.t\" -o cases/3.p main.c ../src/libaio.a -lpthread
+> In file included from main.c:24:
+> cases/3.t: In function ‘test_main’:
+> cases/3.t:18:19: error: ‘attempt_io_submit’ accessing 8 bytes in a region of size 0 [-Werror=stringop-overflow=]
+> 18 | status |= attempt_io_submit( io_ctx, 1, (void *)-1, -EFAULT);
+> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+> cases/3.t:18:19: note: referencing argument 3 of type ‘struct iocb **’
+> In file included from cases/3.t:5,
+> from main.c:24:
+> cases/aio_setup.h:15:5: note: in a call to function ‘attempt_io_submit’
+> 15 | int attempt_io_submit(io_context_t ctx, long nr, struct iocb *ios[], int expect)
+> | ^~~~~~~~~~~~~~~~~
+> cc1: all warnings being treated as errors
+> make[1]: *** [Makefile:19: cases/3.p] Error 1
+> make[1]: Leaving directory '/alt/public_software/libaio/harness'
+> make: *** [Makefile:23: partcheck] Error 2
+
+The fix is to remove this one test case, since the compiler now
+ensures the running code will never see this case.
+
+Signed-off-by: Lee Duncan <leeman.duncan@gmail.com>
+---
+ harness/cases/3.t | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff -Nurp a/harness/cases/3.t b/harness/cases/3.t
+--- a/harness/cases/3.t 2018-10-22 20:59:34.000000000 +0100
++++ b/harness/cases/3.t 2022-02-26 09:46:51.969845084 +0000
+@@ -15,7 +15,6 @@ int test_main(void)
+ status |= attempt_io_submit(BAD_CTX, 1, good_ios, -EINVAL);
+ status |= attempt_io_submit( io_ctx, 0, good_ios, 0);
+ status |= attempt_io_submit( io_ctx, 1, NULL, -EFAULT);
+- status |= attempt_io_submit( io_ctx, 1, (void *)-1, -EFAULT);
+ status |= attempt_io_submit( io_ctx, 2, bad1_ios, -EFAULT);
+ status |= attempt_io_submit( io_ctx, 2, bad2_ios, -EFAULT);
+ status |= attempt_io_submit( io_ctx, -1, good_ios, -EINVAL);