diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-08-28 12:00:19 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-08-28 12:00:19 +0100 |
commit | 7166f3a0a0b7886d340010458d0b130013cb9989 (patch) | |
tree | 3ff502007dde9dba943a004a3bf201ae4e0787bd /dev-libs/libkdumpfile | |
parent | 345c02ca33341652116ddec6705530223af2de85 (diff) |
gentoo auto-resync : 28:08:2024 - 12:00:19
Diffstat (limited to 'dev-libs/libkdumpfile')
6 files changed, 277 insertions, 0 deletions
diff --git a/dev-libs/libkdumpfile/Manifest b/dev-libs/libkdumpfile/Manifest new file mode 100644 index 000000000000..3e84a57be4e8 --- /dev/null +++ b/dev-libs/libkdumpfile/Manifest @@ -0,0 +1,6 @@ +AUX libkdumpfile-0.5.4-32-bit-tests.patch 2197 BLAKE2B 3368b373a0e8e7127bc560fdfa5b370e4a42920c04d18d05a5c60bd29ad6b33703e52e0dcaa886bc91444f5e90a11e3a97e3d64692d26430d48df5c2b43e3c3b SHA512 6cc17ef0214f8fab33e6c36df457a11c2dd1feaa18804e93fde94c7e68fe96ba3ba6869231de3215a38944025741028d696ef679d44dbcbb24d2cd363ea537db +AUX libkdumpfile-0.5.4-c99.patch 1500 BLAKE2B f7879cf9d08660ce89ae3e771c36cbe07a51767288c6dbd36be2e97a795698ca381370f16d7a3ff134b147eb2c5c01efba0bf792c5da7637df6597a355f283a9 SHA512 5b67254f2f113ea6e86a4024917bf02683ae8c9a6757edbc01f26d107ff86ae30dc111285e66513f81e36fe32188b45d52927235198217de40c256ee2effadaa +AUX libkdumpfile-0.5.4-disabled-compression-tests.patch 2006 BLAKE2B b4c8555ca7ea47dc5f842c71dee21967d1044d874538b8f02d30f11e6dc10306ceab52de0b0e0d3e20182234ce0a2c6a2885a528831ca7fda0d4c753620f5848 SHA512 27bcd11b409bc547eaa125736015ca319a9fbaa720b078dc7eec0274ab95302dff231048404957dea5c4cfed2854909faf23df4126efcadb767e44c5926983c4 +DIST libkdumpfile-0.5.4.tar.bz2 623108 BLAKE2B 17a425c2a0545f60574255d5ec139f60a59dd2c9c047a89f9d021afe31cae959c691b550d9ad4e10c88a11f5f1bab1a4d94dab025060dcd2598837442281b3b9 SHA512 6cdd77e3460b324f4e0641fc8f4cf1dcd8b7de4ec82a37ca11e4edfa7730f90305c2724825f8b1cf8ac2e8ad104fee1b6a36775287b084db802ae2f44a55cd85 +EBUILD libkdumpfile-0.5.4.ebuild 1641 BLAKE2B 5fc355ba12741b674adeba676d8153db09b8e208110137f0aeb9ba24aeb6e2e325780a635129812aa9baba6f33f3bb0f2e6e2214d501e6104db35e7f6af2f375 SHA512 c9f9bf711bcee1bc977af49c8706e923b065543d70e037e877d99d972e5f62cd074bec2ceec0e02aa17e66f45f91a06711dc0611d524d5b05eabf57674fe9d70 +MISC metadata.xml 326 BLAKE2B 13b23cbf5c4089460907bebe9e73dad724bfea465300417f82d20748779d865459c6791d0a6d27237db88819690b4124235721c555895b3ca0a3aa5fa63ad2cf SHA512 aae2510a5c9a7662d7beaccef7c19b42be69e34bc0a2e6fb7f31d332ec7a5389f38aef97123b2f213bd4bb3376630b6989a6d71785f0198f563f9ce5d05cfdca diff --git a/dev-libs/libkdumpfile/files/libkdumpfile-0.5.4-32-bit-tests.patch b/dev-libs/libkdumpfile/files/libkdumpfile-0.5.4-32-bit-tests.patch new file mode 100644 index 000000000000..4b5c0cb4c8fc --- /dev/null +++ b/dev-libs/libkdumpfile/files/libkdumpfile-0.5.4-32-bit-tests.patch @@ -0,0 +1,73 @@ +https://github.com/ptesarik/libkdumpfile/commit/16c73b83a78c1bfb55f3e9823b09fce549c8ec11 + +From 16c73b83a78c1bfb55f3e9823b09fce549c8ec11 Mon Sep 17 00:00:00 2001 +From: Petr Tesarik <petr@tesarici.cz> +Date: Thu, 23 May 2024 13:01:17 +0200 +Subject: [PATCH] Fix file cache test for 32-bit architectures + +If 64-bit file offsets are selected with _FILE_OFFSET_BITS on a 32-bit +architecture, the default mmap() call takes a 64-bit off_t, but dlsym() +returns a pointer to a function that takes a 32-bit off_t. + +To fix it: + +- always call original mmap64() if it is available, +- use XSTRINGIFY(mmap) instead of "mmap". + +The latter is needed, because some systems define mmap as a macro which +expands to another identifier. + +Fixes: #80 +Signed-off-by: Petr Tesarik <petr@tesarici.cz> +--- + configure.ac | 2 ++ + src/kdumpfile/test-fcache.c | 13 ++++++++++++- + 3 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 04d1c6fa..93ebb39d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -61,6 +61,8 @@ AC_CHECK_SIZEOF(long) + AC_CHECK_SIZEOF(off_t) + AC_SUBST(SIZEOF_OFF_T, $ac_cv_sizeof_off_t) + ++AC_CHECK_FUNCS(mmap64) ++ + dnl This makes sure pkg.m4 is available. + m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config]) + +diff --git a/src/kdumpfile/test-fcache.c b/src/kdumpfile/test-fcache.c +index 1ed57447..604ed540 100644 +--- a/src/kdumpfile/test-fcache.c ++++ b/src/kdumpfile/test-fcache.c +@@ -64,9 +64,20 @@ static char *mmapbuf; + + static int failmmap; + ++#ifdef HAVE_MMAP64 ++ ++#define STR_MMAP XSTRINGIFY(mmap64) ++static void* (*orig_mmap)(void *addr, size_t length, int prot, int flags, ++ int fd, off64_t offset); ++ ++#else ++ ++#define STR_MMAP XSTRINGIFY(mmap) + static void* (*orig_mmap)(void *addr, size_t length, int prot, int flags, + int fd, off_t offset); + ++#endif ++ + void * + mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset) + { +@@ -445,7 +456,7 @@ main(int argc, char **argv) + return TEST_ERR; + } + +- orig_mmap = dlsym(RTLD_NEXT, "mmap"); ++ orig_mmap = dlsym(RTLD_NEXT, STR_MMAP); + if (!orig_mmap) { + fprintf(stderr, "Cannot get original mmap() address: %s\n", + dlerror()); diff --git a/dev-libs/libkdumpfile/files/libkdumpfile-0.5.4-c99.patch b/dev-libs/libkdumpfile/files/libkdumpfile-0.5.4-c99.patch new file mode 100644 index 000000000000..959af60454ef --- /dev/null +++ b/dev-libs/libkdumpfile/files/libkdumpfile-0.5.4-c99.patch @@ -0,0 +1,48 @@ +https://github.com/ptesarik/libkdumpfile/commit/3682f5cad70146ab35d05af251d4461ef650b4b5 + +From 3682f5cad70146ab35d05af251d4461ef650b4b5 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Thu, 4 Jan 2024 12:36:53 +0100 +Subject: [PATCH] Python 3 does not have a tp_print member in PyTypeObject + +This avoids an int-conversion compiler error with current +compilers: + +./kdumpfile.c:1449:9: error: initialization of 'long int' from 'int (*)(PyObject *, FILE *, int)' {aka 'int (*)(struct _object *, FILE *, int)'} makes integer from pointer without a cast + 1449 | attr_dir_print, /* tp_print*/ + | ^~~~~~~~~~~~~~ + + +In Python 3.11, the field at this position is called tp_vectorcall_offset +and has type Py_ssize_t, hence the error. +--- a/python/kdumpfile.c ++++ b/python/kdumpfile.c +@@ -1143,7 +1143,6 @@ attr_dir_repr(PyObject *_self) + Py_XDECREF(colon); + return result; + } +-#endif + + static int + attr_dir_print(PyObject *_self, FILE *fp, int flags) +@@ -1214,6 +1213,7 @@ attr_dir_print(PyObject *_self, FILE *fp, int flags) + kdump_attr_iter_end(ctx, &iter); + return -1; + } ++#endif + + static PyObject * + attr_iterkey_new(PyObject *_self) +@@ -1446,7 +1446,11 @@ static PyTypeObject attr_dir_object_type = + sizeof(char), /* tp_itemsize*/ + /* methods */ + attr_dir_dealloc, /* tp_dealloc*/ ++#if PY_MAJOR_VERSION < 3 + attr_dir_print, /* tp_print*/ ++#else ++ 0, ++#endif + 0, /* tp_getattr*/ + 0, /* tp_setattr*/ + 0, /* tp_compare*/ + diff --git a/dev-libs/libkdumpfile/files/libkdumpfile-0.5.4-disabled-compression-tests.patch b/dev-libs/libkdumpfile/files/libkdumpfile-0.5.4-disabled-compression-tests.patch new file mode 100644 index 000000000000..5748a27e1e81 --- /dev/null +++ b/dev-libs/libkdumpfile/files/libkdumpfile-0.5.4-disabled-compression-tests.patch @@ -0,0 +1,68 @@ +https://github.com/ptesarik/libkdumpfile/commit/d529a573ab2cdbda501309e377007812e6de3351 + +From d529a573ab2cdbda501309e377007812e6de3351 Mon Sep 17 00:00:00 2001 +From: Stephen Brennan <stephen.s.brennan@oracle.com> +Date: Fri, 19 Jan 2024 11:52:24 -0800 +Subject: [PATCH] tests: skip tests which apply to disabled compression + +If configured --without-libzstd, for example, the diskdump-basic-zstd +test will return an ERROR code, causing "make check" to fail. Even using +XFAIL_TESTS will not resolve the error, because the return code is +ERROR, not FAIL. + +Instead, conditionally include the tests based on whether we are +compiling with each compression format. This way, we don't test +unsupported features. + +Signed-off-by: Stephen Brennan <stephen.s.brennan@oracle.com> +--- + m4/compression.m4 | 1 + + tests/Makefile.am | 17 +++++++++++++---- + 2 files changed, 14 insertions(+), 4 deletions(-) + +diff --git a/m4/compression.m4 b/m4/compression.m4 +index 6755ef13..8cb7ce2d 100644 +--- a/m4/compression.m4 ++++ b/m4/compression.m4 +@@ -32,4 +32,5 @@ AC_SUBST([$2][_REQUIRES]) + AC_SUBST([$2][_CFLAGS]) + AC_SUBST([$2][_LIBS]) + AC_SUBST([$2][_PC_LIBS]) ++AM_CONDITIONAL(HAVE_$2, test "x$have_$1" = xyes) + ]) +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 0c03b20b..8ac90b39 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -196,10 +196,6 @@ test_scripts = \ + diskdump-empty-s390x \ + diskdump-empty-x86_64 \ + diskdump-basic-raw \ +- diskdump-basic-zlib \ +- diskdump-basic-lzo \ +- diskdump-basic-snappy \ +- diskdump-basic-zstd \ + diskdump-flat-raw \ + diskdump-multiread \ + diskdump-excluded \ +@@ -331,6 +327,19 @@ test_scripts = \ + xlat-xen-x86_64-4.6-bigmem \ + zero-size + ++if HAVE_ZSTD ++test_scripts += diskdump-basic-zstd ++endif ++if HAVE_ZLIB ++test_scripts += diskdump-basic-zlib ++endif ++if HAVE_LZO ++test_scripts += diskdump-basic-lzo ++endif ++if HAVE_SNAPPY ++test_scripts += diskdump-basic-snappy ++endif ++ + dist_check_DATA = \ + addrmap-single-begin.expect \ + addrmap-single-middle.expect \ + diff --git a/dev-libs/libkdumpfile/libkdumpfile-0.5.4.ebuild b/dev-libs/libkdumpfile/libkdumpfile-0.5.4.ebuild new file mode 100644 index 000000000000..fe48a9f877fc --- /dev/null +++ b/dev-libs/libkdumpfile/libkdumpfile-0.5.4.ebuild @@ -0,0 +1,71 @@ +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +inherit autotools python-r1 + +DESCRIPTION="Kernel coredump file access" +HOMEPAGE="https://github.com/ptesarik/libkdumpfile" +SRC_URI="https://github.com/ptesarik/libkdumpfile/releases/download/v${PV}/${P}.tar.bz2" + +LICENSE="|| ( LGPL-3+ GPL-2+ )" +SLOT="0" +KEYWORDS="~amd64" +IUSE="lzo snappy zlib zstd" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND=" + ${PYTHON_DEPS} + lzo? ( dev-libs/lzo ) + snappy? ( app-arch/snappy:= ) + zlib? ( sys-libs/zlib ) + zstd? ( app-arch/zstd:= ) +" +RDEPEND="${DEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${P}-c99.patch + "${FILESDIR}"/${P}-disabled-compression-tests.patch + "${FILESDIR}"/${P}-32-bit-tests.patch +) + +src_prepare() { + default + + # Can drop on next release >0.5.4 + eautoreconf +} + +src_configure() { + # We could make Python optional in future as libkdumpfile's + # builtin Python bindings appear deprecated in favour of another + # CFFI-based approach, but given we're adding libkdumpfile for + # dev-debug/drgn right now which uses *these*, let's not bother. + local ECONF_SOURCE=${S} + local myeconfargs=( + $(use_with lzo lzo2) + $(use_with snappy) + $(use_with zlib) + $(use_with zstd libzstd) + ) + + python_foreach_impl run_in_build_dir econf "${myeconfargs[@]}" +} + +src_compile() { + python_foreach_impl run_in_build_dir default +} + +src_test() { + python_foreach_impl run_in_build_dir default +} + +src_install() { + python_foreach_impl run_in_build_dir default + python_foreach_impl python_optimize + einstalldocs + find "${D}" -name '*.la' -delete || die +} diff --git a/dev-libs/libkdumpfile/metadata.xml b/dev-libs/libkdumpfile/metadata.xml new file mode 100644 index 000000000000..57d3a905a40e --- /dev/null +++ b/dev-libs/libkdumpfile/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <upstream> + <remote-id type="github">ptesarik/libkdumpfile</remote-id> + </upstream> +</pkgmetadata> |