summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/raft')
-rw-r--r--dev-libs/raft/Manifest1
-rw-r--r--dev-libs/raft/files/raft-0.11.3-disable-automagic-check-for-lz4.patch90
-rw-r--r--dev-libs/raft/raft-0.11.3.ebuild56
3 files changed, 147 insertions, 0 deletions
diff --git a/dev-libs/raft/Manifest b/dev-libs/raft/Manifest
index 310531d32c3c..c0a2a4c08610 100644
--- a/dev-libs/raft/Manifest
+++ b/dev-libs/raft/Manifest
@@ -1 +1,2 @@
DIST raft-0.11.2.tar.gz 325098 BLAKE2B d9366547440b431edec75a22bca3a50bb6d714b5d950c061723f0585c5ad33704d23c32f2e325dc566ebeab71e15e10f07932c854657837e190901b52c9b4950 SHA512 8be47270cf3b888ff6adeeec2480ccd5065b45c3c546da089cbb326cf429f0bcd4396001e20fbf52587c00d5757337812c834ec5064fafa4815a978a7cf0c35f
+DIST raft-0.11.3.tar.gz 329571 BLAKE2B 08b145bfbcc26b50f69c550599978ed365ccbbd021b9c4699784c08bd7e0f17f366b1709c22df1a467fbdb524668a753f431744419da8f18d57ea52c5b33de38 SHA512 7d1a7455ff8d58ed1f3d259cade1c74fcb22732a55242dcf761cc6554739c0ea1c462aa02591d28d8fa2b343b23e6261a5e15d02e2a31467969b7d9f9f3b5e92
diff --git a/dev-libs/raft/files/raft-0.11.3-disable-automagic-check-for-lz4.patch b/dev-libs/raft/files/raft-0.11.3-disable-automagic-check-for-lz4.patch
new file mode 100644
index 000000000000..f16936448091
--- /dev/null
+++ b/dev-libs/raft/files/raft-0.11.3-disable-automagic-check-for-lz4.patch
@@ -0,0 +1,90 @@
+diff -Naur a/configure.ac b/configure.ac
+--- a/configure.ac 2021-12-14 18:47:55.000000000 +0200
++++ b/configure.ac 2022-02-14 10:51:19.908763437 +0200
+@@ -23,47 +23,12 @@
+ # explicitly disabled.
+ AC_ARG_ENABLE(lz4, AS_HELP_STRING([--disable-lz4], [do not use lz4 compression]))
+
+-# Thanks to the OpenVPN configure.ac file for this part.
+-# If this fails, we will do another test next.
+-# We also add set LZ4_LIBS otherwise linker will not know about the lz4 library
+-PKG_CHECK_MODULES(LZ4, [liblz4 >= 1.7.1], [have_lz4="yes"], [LZ4_LIBS="-llz4"])
+-if test "${have_lz4}" != "yes" ; then
+- AC_CHECK_HEADERS([lz4.h],
+- [have_lz4h="yes"],
+- [])
+- if test "${have_lz4h}" = "yes" ; then
+- AC_MSG_CHECKING([additionally if system LZ4 version >= 1.7.1])
+- AC_COMPILE_IFELSE(
+- [AC_LANG_PROGRAM([[
+-#include <lz4.h>
+- ]],
+- [[
+-/* Version encoding: MMNNPP (Major miNor Patch) - see lz4.h for details */
+-#if LZ4_VERSION_NUMBER < 10701L
+-#error LZ4 is too old
+-#endif
+- ]]
+- )],
+- [
+- AC_MSG_RESULT([ok])
+- have_lz4="yes"
+- ],
+- [
+- AC_MSG_RESULT([system LZ4 library is too old])
+- have_lz4="no"
+- ]
+- )
+- fi
+-fi
+-
+-AS_IF([test "x$enable_lz4" != "xno" -a "x$have_lz4" != "xyes"],
+- [AC_MSG_ERROR([liblz4 required but not found])], [])
+-# LZ4 Can be available without being enabled, this allows a user to activate
+-# it at a later stage through an API call.
+-AM_CONDITIONAL(LZ4_AVAILABLE, test "x$have_lz4" = "xyes")
++AS_IF([test "x$enable_lz4" != "xno"], [
++ PKG_CHECK_MODULES(LZ4, [liblz4 >= 1.7.1], [LZ4_LIBS="-llz4"])
++])
+ # `LZ4_ENABLED` will cause the libuv snapshot implementation to use lz4
+ # compression by default.
+-AM_CONDITIONAL(LZ4_ENABLED, test "x$enable_lz4" != "xno" -a "x$have_lz4" = "xyes")
++AM_CONDITIONAL(LZ4_ENABLED, test "x$enable_lz4" != "xno")
+
+ # The fake I/O implementation and associated fixture is built by default, unless
+ # explicitly disabled.
+diff -Naur a/Makefile.am b/Makefile.am
+--- a/Makefile.am 2021-12-14 18:47:55.000000000 +0200
++++ b/Makefile.am 2022-02-14 10:55:37.467978443 +0200
+@@ -72,15 +72,11 @@
+ test_unit_core_CFLAGS = $(AM_CFLAGS) -Wno-conversion
+ test_unit_core_LDADD = libtest.la
+
+-if LZ4_AVAILABLE
+-test_unit_core_CFLAGS += -DLZ4_AVAILABLE
+-test_unit_core_LDFLAGS = $(LZ4_LIBS)
+-libraft_la_CFLAGS += -DLZ4_AVAILABLE
+-libraft_la_LDFLAGS += $(LZ4_LIBS)
+-endif # LZ4_AVAILABLE
+ if LZ4_ENABLED
+ test_unit_core_CFLAGS += -DLZ4_ENABLED
++test_unit_core_LDFLAGS = $(LZ4_LIBS)
+ libraft_la_CFLAGS += -DLZ4_ENABLED
++libraft_la_LDFLAGS += $(LZ4_LIBS)
+ endif # LZ4_ENABLED
+
+ if FIXTURE_ENABLED
+@@ -204,12 +200,9 @@
+
+ AM_CFLAGS += $(UV_CFLAGS)
+
+-if LZ4_AVAILABLE
+-test_integration_uv_CFLAGS += -DLZ4_AVAILABLE
+-test_integration_uv_LDFLAGS += $(LZ4_LIBS)
+-endif # LZ4_AVAILABLE
+ if LZ4_ENABLED
+ test_integration_uv_CFLAGS += -DLZ4_ENABLED
++test_integration_uv_LDFLAGS += $(LZ4_LIBS)
+ endif # LZ4_ENABLED
+
+ endif # UV_ENABLED
diff --git a/dev-libs/raft/raft-0.11.3.ebuild b/dev-libs/raft/raft-0.11.3.ebuild
new file mode 100644
index 000000000000..bd9c3e128919
--- /dev/null
+++ b/dev-libs/raft/raft-0.11.3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2020-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="C implementation of the Raft consensus protocol"
+HOMEPAGE="https://github.com/canonical/raft"
+SRC_URI="https://github.com/canonical/raft/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3-with-linking-exception"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="lz4 test zfs"
+RESTRICT="!test? ( test )"
+
+DEPEND="dev-libs/libuv:=
+ lz4? ( app-arch/lz4:= )"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/raft-0.9.25-Always-skip-init-oom-test.patch
+ "${FILESDIR}"/raft-0.10.0-toggle-zfs.patch
+ "${FILESDIR}"/raft-0.11.3-disable-automagic-check-for-lz4.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --enable-uv
+
+ --disable-benchmark
+ --disable-debug
+ --disable-example
+ --disable-sanitize
+ --disable-static
+
+ $(use_enable lz4)
+ $(use_enable test fixture)
+
+ $(use_with zfs)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}