diff options
author | Duncan Bellamy <dunk@denkimushi.com> | 2022-02-26 09:57:56 +0000 |
---|---|---|
committer | Leo <thinkabit.ukim@gmail.com> | 2022-03-16 16:00:58 +0000 |
commit | bef8d052542153e59c8d6c3832d84fa6371204d6 (patch) | |
tree | 3577d06339c58c73afccc5d663552f4346b0dc2e | |
parent | e8fe8cb9d0b4897af0802ddc1253b9e23975b40e (diff) |
main/libaio: add build and check functions
* add doc subpackage
-rw-r--r-- | main/libaio/APKBUILD | 38 | ||||
-rw-r--r-- | main/libaio/test-poll.patch | 12 | ||||
-rw-r--r-- | main/libaio/test.patch | 55 |
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); |