From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 54ED11382C5 for ; Fri, 8 Jan 2021 08:59:21 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 78470E081E; Fri, 8 Jan 2021 08:59:20 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 4E416E07D7 for ; Fri, 8 Jan 2021 08:59:20 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 646C03413C1 for ; Fri, 8 Jan 2021 08:59:18 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 0391447 for ; Fri, 8 Jan 2021 08:59:17 +0000 (UTC) From: "Andrew Ammerlaan" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andrew Ammerlaan" Message-ID: <1610047989.a0bb3020f949ef0fe00caff718c38e5641b5d54d.andrewammerlaan@gentoo> Subject: [gentoo-commits] repo/proj/guru:master commit in: sys-fs/dwarfs/ X-VCS-Repository: repo/proj/guru X-VCS-Files: sys-fs/dwarfs/Manifest sys-fs/dwarfs/dwarfs-0.3.1.ebuild X-VCS-Directories: sys-fs/dwarfs/ X-VCS-Committer: andrewammerlaan X-VCS-Committer-Name: Andrew Ammerlaan X-VCS-Revision: a0bb3020f949ef0fe00caff718c38e5641b5d54d X-VCS-Branch: master Date: Fri, 8 Jan 2021 08:59:17 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 3cef1a77-10fb-46ea-8359-4b5af119bbdd X-Archives-Hash: 220cea9293bc87f2d92a9653ef366f98 commit: a0bb3020f949ef0fe00caff718c38e5641b5d54d Author: Denis Reva gmail com> AuthorDate: Thu Jan 7 19:33:09 2021 +0000 Commit: Andrew Ammerlaan riseup net> 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 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" +}