summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrahmajit Das <brahmajit.xyz@gmail.com>2024-08-04 19:55:10 +0000
committerMike Gilbert <floppym@gentoo.org>2024-08-04 16:58:11 -0400
commitdb4e9704449722571dc5e185cfe8b2846f2aba0c (patch)
tree89041be5a650f0a38686bb696897053ee10459d5 /sys-block
parentsys-fs/quota: Fix implicit declaration of function basename (diff)
downloadgentoo-db4e9704449722571dc5e185cfe8b2846f2aba0c.tar.gz
gentoo-db4e9704449722571dc5e185cfe8b2846f2aba0c.tar.bz2
gentoo-db4e9704449722571dc5e185cfe8b2846f2aba0c.zip
sys-block/nbd: Fix passing incompatible pointer type
Closes: https://bugs.gentoo.org/937330 Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/37959 Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Diffstat (limited to 'sys-block')
-rw-r--r--sys-block/nbd/files/nbd-3.25-fix-build-on-musl-gcc14.patch34
-rw-r--r--sys-block/nbd/nbd-3.25-r1.ebuild86
2 files changed, 120 insertions, 0 deletions
diff --git a/sys-block/nbd/files/nbd-3.25-fix-build-on-musl-gcc14.patch b/sys-block/nbd/files/nbd-3.25-fix-build-on-musl-gcc14.patch
new file mode 100644
index 000000000000..91828c159d76
--- /dev/null
+++ b/sys-block/nbd/files/nbd-3.25-fix-build-on-musl-gcc14.patch
@@ -0,0 +1,34 @@
+https://github.com/NetworkBlockDevice/nbd/commit/4664b8dd3bc124c27b160720113339c1da97c2c4.patch
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 20 May 2024 17:50:51 -0700
+Subject: [PATCH] nbd-client: Fix build on musl + gcc14
+
+GCC-14 has promoted incompatible-pointer-types warning into error which is
+now flagged especially with when building on musl
+
+Fixes following error
+
+| ../nbd-3.26.1/nbd-client.c: In function 'openunix':
+| ../nbd-3.26.1/nbd-client.c:345:27: error: passing argument 2 of 'connect' from incompatible pointer type [-Wincompatible-pointer-types]
+| 345 | if (connect(sock, &un_addr, sizeof(un_addr)) == -1) {
+| | ^~~~~~~~
+| | |
+| | struct sockaddr_un *
+| In file included from ../nbd-3.26.1/nbd-client.c:25:
+| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/nbd/3.26.1/recipe-sysroot/usr/include/sys/socket.h:386:19: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_un *'
+| 386 | int connect (int, const struct sockaddr *, socklen_t);
+| | ^~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/nbd-client.c
++++ b/nbd-client.c
+@@ -342,7 +342,7 @@ int openunix(const char *path) {
+ return -1;
+ };
+
+- if (connect(sock, &un_addr, sizeof(un_addr)) == -1) {
++ if (connect(sock, (struct sockaddr*)&un_addr, sizeof(un_addr)) == -1) {
+ err_nonfatal("CONNECT failed");
+ close(sock);
+ return -1;
+
diff --git a/sys-block/nbd/nbd-3.25-r1.ebuild b/sys-block/nbd/nbd-3.25-r1.ebuild
new file mode 100644
index 000000000000..731fdfff88c4
--- /dev/null
+++ b/sys-block/nbd/nbd-3.25-r1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd
+
+DESCRIPTION="Userland client/server for kernel network block device"
+HOMEPAGE="https://nbd.sourceforge.io/"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit autotools git-r3
+ EGIT_REPO_URI="https://github.com/NetworkBlockDevice/nbd.git"
+else
+ SRC_URI="https://github.com/NetworkBlockDevice/nbd/releases/download/${P}/${P}.tar.xz"
+ SRC_URI+=" https://downloads.sourceforge.net/nbd/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug gnutls netlink zlib"
+
+RDEPEND="
+ >=dev-libs/glib-2.32.0
+ gnutls? ( >=net-libs/gnutls-2.12.0 )
+ netlink? ( >=dev-libs/libnl-3.1 )
+ zlib? ( sys-libs/zlib )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ sys-devel/bison
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.25-fix-build-on-musl-gcc14.patch"
+)
+
+if [[ ${PV} == 9999 ]] ; then
+ BDEPEND+="
+ app-text/docbook-sgml-dtd:4.5
+ app-text/docbook-sgml-utils
+ dev-build/autoconf-archive
+ "
+fi
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == 9999 ]] ; then
+ emake -C man -f mans.mk \
+ nbd-server.1.sh.in \
+ nbd-server.5.sh.in \
+ nbd-client.8.sh.in \
+ nbd-trdump.1.sh.in \
+ nbd-trplay.1.sh.in \
+ nbdtab.5.sh.in
+
+ emake -C systemd -f Makefile.am nbd@.service.sh.in
+
+ eautoreconf
+ fi
+}
+
+src_configure() {
+ # Needs Bison
+ unset YACC
+
+ local myeconfargs=(
+ --enable-lfs
+ # https://github.com/NetworkBlockDevice/nbd/issues/149
+ --disable-gznbd
+ $(use_enable !debug syslog)
+ $(use_enable debug)
+ $(use_with gnutls)
+ $(use_with netlink libnl)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ systemd_dounit systemd/nbd@.service
+}