mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
sys-libs/libnbd: add 1.22.2
Dropped test dependency on sys-block/nbd. The only dependency required for test is sys-block/ndbkit. However, it will test sys-block/nbd and app-emulation/qemu, if present. The examples were automagically added, so made that a seperate use flag Add Python 3.13 support Add support for compiling rust binding If support for a particular for a partical feature wasn't enabled, 0 tests would be run for that, which while not fatal, produces a QA warning. Worked around it by removing what isn't select in the top-level Makefile.am with sed Test calls certtool, go net-libs/gnutls[tools] required to test. Closes: https://bugs.gentoo.org/884245 Closes: https://bugs.gentoo.org/884247 Closes: https://bugs.gentoo.org/926647 Closes: https://bugs.gentoo.org/938348 Closes: https://bugs.gentoo.org/938349 Closes: https://bugs.gentoo.org/946553 Closes: https://bugs.gentoo.org/952745 Closes: https://bugs.gentoo.org/955251 Signed-off-by: Christopher Byrne <salah.coronya@gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/40808 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
committed by
Sam James
parent
3dbe53573f
commit
7354829ce0
@@ -1 +1,2 @@
|
||||
DIST libnbd-1.18.1.tar.gz 1482736 BLAKE2B d3f0b2993fa1392df93b0bbc5d63805489ad1a82cf5bcc5eb5c3b5b7e7e6c40095471ab8fc964cc0e5c7a99affa7150f7be38cc16c42f27fc4cdc16bd0ca0359 SHA512 f4262666be55d580550e053355f14f80d352bf869ae7241e9fa032a9b5cd9e027eb89a536871c1206422413fc7ed745da7d612b3e1413f76ec17168705fbf12c
|
||||
DIST libnbd-1.22.1.tar.gz 1565817 BLAKE2B f06ab0002b21a2960614fa2f704f007dc90713994c8a9dd8dd769d8ef02a451e45a84c8ed9b59c8d9334ab8c4ba4fa0339afa88bc0b959ea280d1d8fecd07e0a SHA512 3f265ed59020c394c5e1f46c51d0ae7f3e7e54461739da964ac92b5c4c8bc98ea9813b93342e025f5f770b688d16d155d6e74d715beab482a040115df6be5afa
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
From 2934e26841b88604ed1bf23e3728d7b69d018c72 Mon Sep 17 00:00:00 2001
|
||||
From: Christopher Byrne <salah.coronya@gmail.com>
|
||||
Date: Sat, 14 Jun 2025 21:26:24 -0500
|
||||
Subject: [PATCH 2/2] Makefile.am: Conditionally compile some SUBDIRS
|
||||
|
||||
Otherwise, the Makefile will try to compile them. The correct machinery
|
||||
is in configure.ac, so just add the conditions to Makefile.am
|
||||
---
|
||||
Makefile.am | 41 ++++++++++++++++++++++++++++++-----------
|
||||
1 file changed, 30 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index f31e067..1d00ebd 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -42,30 +42,49 @@ SUBDIRS = \
|
||||
common/utils \
|
||||
lib \
|
||||
docs \
|
||||
- examples \
|
||||
valgrind \
|
||||
. \
|
||||
tests \
|
||||
- python \
|
||||
- sh \
|
||||
info \
|
||||
copy \
|
||||
dump \
|
||||
- fuse \
|
||||
- ublk \
|
||||
- ocaml \
|
||||
- ocaml/examples \
|
||||
- ocaml/tests \
|
||||
- golang \
|
||||
- golang/examples \
|
||||
- rust \
|
||||
interop \
|
||||
fuzzing \
|
||||
bash-completion \
|
||||
$(NULL)
|
||||
|
||||
+if HAVE_FUSE
|
||||
+SUBDIRS += fuse
|
||||
+endif
|
||||
+
|
||||
+if HAVE_UBLK
|
||||
+SUBDIRS += ublk
|
||||
+endif
|
||||
+
|
||||
+if HAVE_GOLANG
|
||||
+SUBDIRS += golang
|
||||
+endif
|
||||
+
|
||||
+if HAVE_OCAML
|
||||
+SUBDIRS += ocaml ocaml/tests
|
||||
+endif
|
||||
+
|
||||
+if HAVE_PYTHON
|
||||
+SUBDIRS += python sh
|
||||
+endif
|
||||
+
|
||||
+if HAVE_RUST
|
||||
+SUBDIRS += rust
|
||||
+endif
|
||||
+
|
||||
if BUILD_EXAMPLES
|
||||
SUBDIRS += examples
|
||||
+if HAVE_OCAML
|
||||
+SUBDIRS += ocaml/examples
|
||||
+endif
|
||||
+if HAVE_GOLANG
|
||||
+SUBDIRS += golang/examples
|
||||
+endif
|
||||
endif
|
||||
|
||||
noinst_SCRIPTS = run
|
||||
--
|
||||
2.49.0
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
From 53e0ade7f46525e048cea7bd321cdf370800e18a Mon Sep 17 00:00:00 2001
|
||||
From: Christopher Byrne <salah.coronya@gmail.com>
|
||||
Date: Sat, 14 Jun 2025 21:01:17 -0500
|
||||
Subject: [PATCH 1/2] build: Remove automagic compiling of examples
|
||||
|
||||
---
|
||||
Makefile.am | 4 +++
|
||||
configure.ac | 93 +++++++++++++++++++++++++++++-----------------------
|
||||
2 files changed, 56 insertions(+), 41 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 129e393..f31e067 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -64,6 +64,10 @@ SUBDIRS = \
|
||||
bash-completion \
|
||||
$(NULL)
|
||||
|
||||
+if BUILD_EXAMPLES
|
||||
+SUBDIRS += examples
|
||||
+endif
|
||||
+
|
||||
noinst_SCRIPTS = run
|
||||
|
||||
# Check no files are missing from EXTRA_DIST rules, and that all
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 84ec09d..d27a605 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -308,57 +308,67 @@ AS_IF([test "$with_libxml2" != "no"],[
|
||||
])
|
||||
AM_CONDITIONAL([HAVE_LIBXML2], [test "x$LIBXML2_LIBS" != "x"])
|
||||
|
||||
+dnl Examples
|
||||
+AC_ARG_ENABLE([examples],
|
||||
+ [AS_HELP_STRING([--disable-examples],
|
||||
+ [disable building of glib and libev examples @<:@default=check@:>@])],
|
||||
+ [],
|
||||
+ [with_examples=check])
|
||||
+
|
||||
+AS_IF([test "$enable_examples" != "no"],[
|
||||
dnl glib2 main loop for examples that interoperate with the glib main loop.
|
||||
-PKG_CHECK_MODULES([GLIB], [glib-2.0], [
|
||||
- printf "glib2 version is "; $PKG_CONFIG --modversion glib-2.0
|
||||
- AC_SUBST([GLIB_CFLAGS])
|
||||
- AC_SUBST([GLIB_LIBS])
|
||||
-],[
|
||||
- AC_MSG_WARN([glib2 not found, some examples will not be compiled])
|
||||
-])
|
||||
-AM_CONDITIONAL([HAVE_GLIB], [test "x$GLIB_LIBS" != "x"])
|
||||
+ PKG_CHECK_MODULES([GLIB], [glib-2.0], [
|
||||
+ printf "glib2 version is "; $PKG_CONFIG --modversion glib-2.0
|
||||
+ AC_SUBST([GLIB_CFLAGS])
|
||||
+ AC_SUBST([GLIB_LIBS])
|
||||
+ ], [
|
||||
+ AC_MSG_WARN([glib2 not found, some examples will not be compiled])
|
||||
+ ])
|
||||
|
||||
dnl libev support for examples that interoperate with libev event loop.
|
||||
-PKG_CHECK_MODULES([LIBEV], [libev], [
|
||||
- printf "libev version is "; $PKG_CONFIG --modversion libev
|
||||
- AC_SUBST([LIBEV_CFLAGS])
|
||||
- AC_SUBST([LIBEV_LIBS])
|
||||
-],[
|
||||
- dnl no pkg-config for libev, searching manually:
|
||||
- AC_CHECK_HEADERS([ev.h], [
|
||||
- AC_CHECK_LIB([ev], [ev_time], [
|
||||
- AC_SUBST([LIBEV_LIBS], ["-lev"])
|
||||
- ],
|
||||
- [
|
||||
- AC_MSG_WARN([libev not found, some examples will not be compiled])
|
||||
- ])
|
||||
- ],[
|
||||
- AC_MSG_WARN([ev.h not found, some examples will not be compiled])
|
||||
+ PKG_CHECK_MODULES([LIBEV], [libev], [
|
||||
+ printf "libev version is "; $PKG_CONFIG --modversion libev
|
||||
+ AC_SUBST([LIBEV_CFLAGS])
|
||||
+ AC_SUBST([LIBEV_LIBS])
|
||||
+ ],[
|
||||
+dnl no pkg-config for libev, searching manually:
|
||||
+ AC_CHECK_HEADERS([ev.h], [
|
||||
+ AC_CHECK_LIB([ev], [ev_time], [
|
||||
+ AC_SUBST([LIBEV_LIBS], ["-lev"])
|
||||
+ ],
|
||||
+ [
|
||||
+ AC_MSG_WARN([libev not found, some examples will not be compiled])
|
||||
+ ])
|
||||
+ ],[
|
||||
+ AC_MSG_WARN([ev.h not found, some examples will not be compiled])
|
||||
+ ])
|
||||
])
|
||||
-])
|
||||
|
||||
-AS_IF([test "x$LIBEV_LIBS" != "x"], [
|
||||
- old_CFLAGS="$CFLAGS"
|
||||
- CFLAGS="$CFLAGS $LIBEV_CFLAGS -Werror=strict-aliasing -O2"
|
||||
- AC_MSG_CHECKING([if the compiler is new enough for good aliasing rules])
|
||||
- AC_COMPILE_IFELSE([
|
||||
- AC_LANG_PROGRAM([
|
||||
- #include <ev.h>
|
||||
-
|
||||
- static void cb (struct ev_loop *l, ev_timer *t, int e) { }
|
||||
- static ev_timer timer;
|
||||
+ AS_IF([test "x$LIBEV_LIBS" != "x"], [
|
||||
+ old_CFLAGS="$CFLAGS"
|
||||
+ CFLAGS="$CFLAGS $LIBEV_CFLAGS -Werror=strict-aliasing -O2"
|
||||
+ AC_MSG_CHECKING([if the compiler is new enough for good aliasing rules])
|
||||
+ AC_COMPILE_IFELSE([
|
||||
+ AC_LANG_PROGRAM([
|
||||
+ #include <ev.h>
|
||||
+
|
||||
+ static void cb (struct ev_loop *l, ev_timer *t, int e) { }
|
||||
+ static ev_timer timer;
|
||||
+ ], [
|
||||
+ ev_timer_init (&timer, cb, 0, .1);
|
||||
+ ])
|
||||
], [
|
||||
- ev_timer_init (&timer, cb, 0, .1);
|
||||
+ AC_MSG_RESULT([yes])
|
||||
+ ], [
|
||||
+ AC_MSG_RESULT([no])
|
||||
+ LIBEV_CFLAGS="$LIBEV_CFLAGS -Wno-strict-aliasing"
|
||||
])
|
||||
- ], [
|
||||
- AC_MSG_RESULT([yes])
|
||||
- ], [
|
||||
- AC_MSG_RESULT([no])
|
||||
- LIBEV_CFLAGS="$LIBEV_CFLAGS -Wno-strict-aliasing"
|
||||
+ CFLAGS="$old_CFLAGS"
|
||||
])
|
||||
- CFLAGS="$old_CFLAGS"
|
||||
])
|
||||
+AM_CONDITIONAL([HAVE_GLIB], [test "x$GLIB_LIBS" != "x"])
|
||||
AM_CONDITIONAL([HAVE_LIBEV], [test "x$LIBEV_LIBS" != "x"])
|
||||
+AM_CONDITIONAL([BUILD_EXAMPLES], [test "x$enable_examples" != "xno" ])
|
||||
|
||||
dnl FUSE 3 is optional to build the nbdfuse program.
|
||||
AC_ARG_ENABLE([fuse],
|
||||
@@ -378,6 +388,7 @@ AS_IF([test "x$enable_fuse" != "xno"],[
|
||||
])
|
||||
AM_CONDITIONAL([HAVE_FUSE],[test "x$enable_fuse" != "xno"])
|
||||
|
||||
+
|
||||
dnl libublksrv is optional to build the nbdublk program.
|
||||
AC_ARG_ENABLE([ublk],
|
||||
AS_HELP_STRING([--disable-ublk], [disable ublk (nbdublk) support]),
|
||||
--
|
||||
2.49.0
|
||||
|
||||
98
sys-libs/libnbd/libnbd-1.22.2.ebuild
Normal file
98
sys-libs/libnbd/libnbd-1.22.2.ebuild
Normal file
@@ -0,0 +1,98 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
RUST_OPTIONAL=1
|
||||
RUST_REQ_USE="rustfmt"
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
|
||||
inherit autotools bash-completion-r1 python-single-r1 rust
|
||||
|
||||
MY_PV_1="$(ver_cut 1-2)"
|
||||
MY_PV_2="$(ver_cut 2)"
|
||||
[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development"
|
||||
|
||||
DESCRIPTION="NBD client library in userspace"
|
||||
HOMEPAGE="https://gitlab.com/nbdkit/libnbd"
|
||||
SRC_URI="https://download.libguestfs.org/libnbd/${MY_PV_1}-${SD}/${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2.1+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc64 ~sparc ~x86"
|
||||
IUSE="examples fuse gnutls go ocaml python rust test"
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# libxml2 - URI support
|
||||
RDEPEND="
|
||||
dev-libs/libxml2
|
||||
examples? ( dev-libs/glib
|
||||
dev-libs/libev )
|
||||
fuse? ( sys-fs/fuse:3 )
|
||||
gnutls? ( net-libs/gnutls:= )
|
||||
go? ( dev-lang/go )
|
||||
ocaml? ( >=dev-lang/ocaml-4.03:=[ocamlopt] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
test? ( sys-block/nbdkit[gnutls?]
|
||||
net-libs/gnutls:=[tools]
|
||||
ocaml? ( dev-ml/findlib[ocamlopt] )
|
||||
)
|
||||
"
|
||||
BDEPEND="dev-lang/perl
|
||||
rust? ( ${RUST_DEPEND} )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.22.2-build-Remove-automagic-compiling-of-examples.patch"
|
||||
"${FILESDIR}/${PN}-1.22.2-Makefile.am-Conditionally-compile-some-SUBDIRS.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
if use rust; then
|
||||
rust_pkg_setup
|
||||
fi
|
||||
if use python; then
|
||||
python_setup
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Broken under sandbox.
|
||||
cat <<-EOF > lib/test-fork-safe-execvpe.sh || die
|
||||
#!/bin/sh
|
||||
:
|
||||
EOF
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myeconfargs=(
|
||||
$(use_enable examples)
|
||||
$(use_enable fuse)
|
||||
$(use_enable go golang)
|
||||
$(use_enable ocaml)
|
||||
$(use_enable python)
|
||||
$(use_enable rust)
|
||||
$(use_with gnutls)
|
||||
--disable-ublk # Not in portage
|
||||
--with-libxml2
|
||||
)
|
||||
|
||||
export bashcompdir="$(get_bashcompdir)"
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
find "${ED}" -name '*.la' -delete || die
|
||||
use python && python_optimize
|
||||
}
|
||||
@@ -15,5 +15,8 @@
|
||||
<flag name="go">
|
||||
Build bindings for <pkg>dev-lang/go</pkg>
|
||||
</flag>
|
||||
<flag name="rust">
|
||||
Build bindings for <pkg>dev-lang/rust</pkg>
|
||||
</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
|
||||
Reference in New Issue
Block a user