From 02c1206282e6a9f33954ed4eaffd8cf8aab2985f Mon Sep 17 00:00:00 2001 From: Kai Krakow Date: Fri, 12 Jan 2018 07:51:17 +0100 Subject: sys-fs/bees: Best-Effort Extent-Same, a btrfs dedup agent. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bees is a block-oriented userspace dedup agent designed to avoid scalability problems on large filesystems. Bees is designed to degrade gracefully when underprovisioned with RAM. Bees does not use more RAM or storage as filesystem data size increases. The dedup hash table size is fixed at creation time and does not change. The effective dedup block size is dynamic and adjusts automatically to fit the hash table into the configured RAM limit. Hash table overflow is not implemented to eliminate the IO overhead of hash table overflow. Hash table entries are only 16 bytes per dedup block to keep the average dedup block size small. Package-Manager: Portage-2.3.49, Repoman-2.3.10 Signed-off-by: Kai Krakow Signed-off-by: Michał Górny Closes: https://github.com/gentoo/gentoo/pull/9925 --- sys-fs/bees/bees-9999.ebuild | 66 ++++++++++++++++++++++++++++++++++++++++++++ sys-fs/bees/metadata.xml | 19 +++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 sys-fs/bees/bees-9999.ebuild create mode 100644 sys-fs/bees/metadata.xml (limited to 'sys-fs/bees') diff --git a/sys-fs/bees/bees-9999.ebuild b/sys-fs/bees/bees-9999.ebuild new file mode 100644 index 000000000000..72fef108e72d --- /dev/null +++ b/sys-fs/bees/bees-9999.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit linux-info + +DESCRIPTION="Best-Effort Extent-Same, a btrfs dedup agent" +HOMEPAGE="https://github.com/Zygo/bees" + +if [[ ${PV} == "9999" ]] ; then + EGIT_REPO_URI="https://github.com/Zygo/bees.git" + inherit git-r3 +else + SRC_URI="https://github.com/Zygo/bees/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="tools" + +DEPEND=" + >=sys-apps/util-linux-2.30.2 + >=sys-fs/btrfs-progs-4.1 +" +RDEPEND="${DEPEND}" + +CONFIG_CHECK="~BTRFS_FS" +ERROR_BTRFS_FS="CONFIG_BTRFS_FS: bees does currently only work with btrfs" + +pkg_pretend() { + if [[ ${MERGE_TYPE} != buildonly ]]; then + if kernel_is -lt 4 4 3; then + ewarn "Kernel versions below 4.4.3 lack critical features needed for bees to" + ewarn "properly operate, so it won't work. It's recommended to run at least" + ewarn "kernel version 4.11 for best performance and reliability." + ewarn + elif kernel_is -lt 4 11; then + ewarn "With kernel versions below 4.11, bees may severely degrade system performance" + ewarn "and responsiveness. Especially, the kernel may deadlock while bees is" + ewarn "running, it's recommended to run at least kernel 4.11." + ewarn + elif kernel_is -lt 4 14 29; then + ewarn "With kernel versions below 4.14.29, bees may generate a lot of bogus WARN_ON()" + ewarn "messages in the kernel log. These messages can be ignored and this is fixed" + ewarn "with more recent kernels:" + ewarn "# WARNING: CPU: 3 PID: 18172 at fs/btrfs/backref.c:1391 find_parent_nodes+0xc41/0x14e0" + ewarn + fi + elog "Bees recommends to run the latest current kernel for performance and" + elog "reliability reasons, see README.md." + fi +} + +src_configure() { + cat >localconf <<-EOF || die + LIBEXEC_PREFIX=/usr/libexec + PREFIX=/usr + LIBDIR=$(get_libdir) + DEFAULT_MAKE_TARGET=all + EOF + if use tools; then + echo OPTIONAL_INSTALL_TARGETS=install_tools >>localconf || die + fi +} diff --git a/sys-fs/bees/metadata.xml b/sys-fs/bees/metadata.xml new file mode 100644 index 000000000000..ba18bd51ea03 --- /dev/null +++ b/sys-fs/bees/metadata.xml @@ -0,0 +1,19 @@ + + + + + hurikhan77+bgo@gmail.com + Kai Krakow + + + proxy-maint@gentoo.org + Proxy Maintainers + + + Build extra tools useful for debugging (fiemap, feiwalk, beestop) + + + https://github.com/Zygo/bees/issues + Zygo/bees + + -- cgit v1.2.3-65-gdbad