aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Reva <denis7774@gmail.com>2021-01-08 00:33:09 +0500
committerDenis Reva <denis7774@gmail.com>2021-01-08 00:33:09 +0500
commita0bb3020f949ef0fe00caff718c38e5641b5d54d (patch)
tree9669455ac4da0365ef78286681f4880cb66f44be
parentsci-electronics/bsc: add fixed version 0_pre20210106 (diff)
downloadguru-a0bb3020.tar.gz
guru-a0bb3020.tar.bz2
guru-a0bb3020.zip
sys-fs/dwarfs: new version 0.3.1
Ebuild changes: * Added use flags for jemalloc and python Upsteam changes: Even better compression than before Mostly thanks to a new ordering algorithm that is now enabled by default, I've seen a 15% improvement in achievable compression ratio. In my standard test of packing 48 GiB of Perl installations, the resulting DwarFS image size reduced from 556 MiB to 472 MiB without any regression in compression speed. More memory efficient FUSE driver By switching to jemalloc, the FUSE driver has become much more memory efficient, using up to ten times less memory than with the standard glibc allocator. Python scripting support The Lua scripting interface has been fully replaced by a new Python interface. I've been looking for a luabind replacement, but none of the candidates seemed to be well maintained or reasonably easy to integrate. Python is much more approachable for most people and boost::python seems well maintained. The new interface also has a lot more features. You can find an example script in the distribution. Fix for file system images created with versions before dwarfs-0.2.3 If you've created DwarFS images with the 0.2.0, 0.2.1 or 0.2.2 releases, symbolic links were stored in a way that the FUSE driver in the 0.2.x releases could not read them back correctly. With the new 0.3.0 release, these old images, including the symbolic links, can now be read again, so there's no need to rebuild your old images. Improved file system format The file system format has been updated with the 0.3.0 release to include integrity checking via SHA2-512/256 hashes as well as features that should make recovery easier in case of file system image corruption. In addition to the SHA hashes, the extremely fast xxHash library is used to store a second hash that is checked every time any part of the file system is used. While there are currently no recovery features implemented, having this data in the file system already should be really valuable. You can convert an old image to the new format using: mkdwarfs -i old.dwarfs -o new.dwarfs --recompress none Statically linked 64-bit Linux binaries available Given the long list of dependencies, building DwarFS might not be an option for you. In that case, you can now download the binary distribution that should work fine on most 64-bit Linux distributions. FUSE drivers are included for both FUSE2 and FUSE3 Lots of smaller fixes & changes See the Change Log for a full list of changes. Package-Manager: Portage-3.0.12, Repoman-3.0.2 Signed-off-by: Denis Reva <denis7774@gmail.com>
-rw-r--r--sys-fs/dwarfs/Manifest1
-rw-r--r--sys-fs/dwarfs/dwarfs-0.3.1.ebuild94
2 files changed, 95 insertions, 0 deletions
diff --git a/sys-fs/dwarfs/Manifest b/sys-fs/dwarfs/Manifest
index a46c3f8f1..4a31b8772 100644
--- a/sys-fs/dwarfs/Manifest
+++ b/sys-fs/dwarfs/Manifest
@@ -1,3 +1,4 @@
DIST dwarfs-0.2.4.tar.gz 131125 BLAKE2B 06dd11a90d203882a6b2398d6a3e763a269746a57394444e67913bbb66176305e3d6d606a7f35b4c3692d1d761e90d853b268f876004be1e8274b5b16174dcde SHA512 2136f1159eaf80afd6f5a1edda65c7a7f2cb147c7b14a5d19981fbd417e8785c2d7f986df3787587b4b5157bfd299159f4015a017d289bb0c9fba77b337ed3b5
+DIST dwarfs-0.3.1.tar.bz2 8704811 BLAKE2B f7f5a2affae5da78d526891017ac66ed16f73919c7b990b558413c028590e3e3efa2f7e8cc70d97cbad2a0332d91458444898611ea86343a5978bcdf2ed1bf3b SHA512 5776f5da14a5ccbe0e1cf11acec1c9360aa23e2f6751f54a5df200d4625ffc1892658bd4d987ae15fb08ec1f97d7db2a8c42ed80bb6aae062a45e50513e09f51
DIST fbthrift-2020.11.30.00.tar.gz 5274706 BLAKE2B ad13eb7b66f804c7a667746d72298e05726d1f78a49523a10f2712cc4dbea71999590a2c420e8081d32dc24a7d203e11d5c7e5c15f2627594295cd5533096dd9 SHA512 33b4c1a4cfc8783f99d5da8ae113f877e1f23586f5a854833107805fe35834604e677d7abe690cefeb70baed20cb3cc14449cfae35a9af89594974377bbe0329
DIST folly-2020.11.30.00.tar.gz 3261437 BLAKE2B 5070819f1f8bac2030e761a8d2330379e8e5ba242d21330b98dcd598cb18e12046a9ad3fb6462f82dbc47c53cf0905c330e707201bfbbedb81f203ef1b30731e SHA512 e7e06bd8c8e38af345d20a04886b4497c4f0c9877263dbcb5a3f2d17c7a3252a2529086a5a04d07c2d3a457ca3930c43672fc4f74b7bdbc2ec0d07abdf1ed425
diff --git a/sys-fs/dwarfs/dwarfs-0.3.1.ebuild b/sys-fs/dwarfs/dwarfs-0.3.1.ebuild
new file mode 100644
index 000000000..ece7ed8b0
--- /dev/null
+++ b/sys-fs/dwarfs/dwarfs-0.3.1.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9} )
+
+inherit cmake check-reqs python-single-r1
+
+DESCRIPTION="A fast very high compression read-only FUSE file system"
+HOMEPAGE="https://github.com/mhx/dwarfs"
+
+SRC_URI="https://github.com/mhx/dwarfs/releases/download/v${PV}/dwarfs-${PV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="python +jemalloc"
+
+#test IUSE disabled because there is no googletest in portage tree
+#-DWITH_TESTS=$(usex test ON OFF)
+
+PYTHON_REQ_USE="python"
+
+DEPEND="sys-devel/flex
+ sys-devel/binutils:*"
+RDEPEND="dev-libs/boost[context,threads,python?]
+ dev-libs/double-conversion
+ dev-libs/libfmt
+ dev-libs/libevent
+ dev-libs/xxhash
+ jemalloc? ( >=dev-libs/jemalloc-5.2.1 )
+ app-arch/zstd
+ app-arch/lz4
+ app-arch/xz-utils
+ app-arch/snappy
+ dev-cpp/sparsehash
+ dev-cpp/gflags
+ dev-cpp/glog[gflags]
+ sys-fs/fuse:3
+ sys-libs/binutils-libs
+ sys-libs/zlib
+ sys-libs/libunwind
+ !dev-cpp/folly"
+BDEPEND="app-text/ronn
+ dev-util/cmake
+ sys-apps/sed
+ sys-devel/bison
+ virtual/pkgconfig"
+
+CHECKREQS_DISK_BUILD="768M"
+
+DOCS=( "README.md" "CHANGES.md" "TODO" )
+
+CMAKE_IN_SOURCE_BUILD=true
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_SONAME="${D}/usr/lib64/libdwarfs.so ${D}/usr/lib64/libxxhash.so"
+
+src_prepare(){
+ einfo "setting library path to $(get_libdir)"
+ sed "s/DESTINATION lib/DESTINATION $(get_libdir)/" -i CMakeLists.txt || die
+ cmake_src_prepare
+}
+
+src_configure(){
+ einfo "setting configuration flags to:"
+ mycmakeargs=(
+ -DUSE_JEMALLOC=$(usex jemalloc ON OFF)
+ -DWITH_PYTHON=$(usex python ON OFF)
+ )
+ if use python; then mycmakeargs+=( -DWITH_PYTHON_VERSION=${EPYTHON#python} ); fi
+ einfo ${mycmakeargs}
+ cmake_src_configure
+}
+
+src_install(){
+ cmake_src_install
+ dolib.so libmetadata_thrift.so libthrift_light.so
+ dolib.so folly/libfolly.so.0.58.0-dev folly/libfolly.so
+}
+
+pkg_postinst(){
+ elog "Test shows that dwarfs compiled with Clang is substantially faster than GCC ones"
+ elog "See https://github.com/mhx/dwarfs/issues/14"
+ elog "So you may want to compile it independently with Clang by the"
+ elog "https://wiki.gentoo.org/wiki/Clang"
+ elog "And with the per-package settings:"
+ elog "https://wiki.gentoo.org/wiki/Handbook:AMD64/Portage/Advanced#Per-package_environment_variables"
+ elog "Also you may find more information in the"
+ elog "${HOMEPAGE}"
+ elog "About creating: ${HOMEPAGE}/blob/main/doc/mkdwarfs.md"
+ elog "About mounting: ${HOMEPAGE}/blob/main/doc/dwarfs.md"
+}