commit:     a0bb3020f949ef0fe00caff718c38e5641b5d54d
Author:     Denis Reva <denis7774 <AT> gmail <DOT> com>
AuthorDate: Thu Jan  7 19:33:09 2021 +0000
Commit:     Denis Reva <denis7774 <AT> gmail <DOT> com>
CommitDate: Thu Jan  7 19:33:09 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=a0bb3020

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 <AT> gmail.com>

 sys-fs/dwarfs/Manifest            |  1 +
 sys-fs/dwarfs/dwarfs-0.3.1.ebuild | 94 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 95 insertions(+)

diff --git a/sys-fs/dwarfs/Manifest b/sys-fs/dwarfs/Manifest
index a46c3f8f..4a31b877 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 00000000..ece7ed8b
--- /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"
+}

Reply via email to