public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andrew Ammerlaan" <andrewammerlaan@riseup.net>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:master commit in: sys-fs/dwarfs/
Date: Thu,  3 Dec 2020 11:36:02 +0000 (UTC)	[thread overview]
Message-ID: <1606894475.c54f1d5636d1ca49e21634a81af3bf7a9609581d.andrewammerlaan@gentoo> (raw)

commit:     c54f1d5636d1ca49e21634a81af3bf7a9609581d
Author:     Denis Reva <denis7774 <AT> gmail <DOT> com>
AuthorDate: Wed Dec  2 07:34:35 2020 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
CommitDate: Wed Dec  2 07:34:35 2020 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=c54f1d56

sys-fs/dwarfs: A fast high compression read-only file system

I has just ported new package:
https://github.com/mhx/dwarfs
It's file-system like squashfs but compresses stronger

I had to use built-in libs because they hard-coded,
and furthermore they used partially

So It no more require dev-cpp/folly,
and I thought about deleting its.

Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Denis Reva <denis7774 <AT> gmail.com>

 sys-fs/dwarfs/Manifest            |  3 ++
 sys-fs/dwarfs/dwarfs-0.2.3.ebuild | 93 +++++++++++++++++++++++++++++++++++++++
 sys-fs/dwarfs/metadata.xml        | 19 ++++++++
 3 files changed, 115 insertions(+)

diff --git a/sys-fs/dwarfs/Manifest b/sys-fs/dwarfs/Manifest
new file mode 100644
index 00000000..51b331f4
--- /dev/null
+++ b/sys-fs/dwarfs/Manifest
@@ -0,0 +1,3 @@
+DIST dwarfs-0.2.3.tar.gz 131021 BLAKE2B 4bdcbc7c775b4e20dc523f77e7fb84a9cd978df8c63bfd2300343bbf4dd49394e8f0fb1779ac990174c38acb2dbe1444404c518c22382da8e36e13e65343c568 SHA512 4638f3a9d712ead6701f3b739d0239ddf5f742c02cf4723079df702549c3af179b798b833bd69b77eeffb68df670fbcedff70ef8d7a88e4c9e5dd42b090eed63
+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.2.3.ebuild b/sys-fs/dwarfs/dwarfs-0.2.3.ebuild
new file mode 100644
index 00000000..c5976474
--- /dev/null
+++ b/sys-fs/dwarfs/dwarfs-0.2.3.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake check-reqs
+
+DESCRIPTION="A fast very high compression read-only FUSE file system"
+HOMEPAGE="https://github.com/mhx/dwarfs"
+
+FBTHRIFT_MAGIC="2020.11.30.00"
+FOLLY_MAGIC="2020.11.30.00"
+
+SRC_URI="https://github.com/mhx/dwarfs/archive/v${PV}.tar.gz -> ${P}.tar.gz
+		https://github.com/facebook/fbthrift/archive/v${FBTHRIFT_MAGIC}.tar.gz -> fbthrift-${FBTHRIFT_MAGIC}.tar.gz
+		https://github.com/facebook/folly/archive/v${FOLLY_MAGIC}.tar.gz -> folly-${FOLLY_MAGIC}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="jemalloc"
+
+DEPEND="app-arch/zstd
+		app-arch/lz4
+		app-arch/xz-utils
+		app-arch/snappy
+		dev-libs/boost[context,threads]
+		dev-libs/double-conversion
+		dev-libs/libfmt
+		dev-libs/libevent
+		dev-cpp/gflags
+		dev-cpp/glog[gflags]
+		dev-cpp/sparsehash
+		sys-libs/binutils-libs
+		sys-libs/libunwind
+		sys-fs/fuse:3
+		sys-devel/flex
+		sys-devel/binutils:*
+		sys-libs/zlib
+		jemalloc? ( dev-libs/jemalloc )"
+RDEPEND="dev-libs/boost[context,threads]
+		dev-libs/double-conversion
+		app-arch/zstd
+		app-arch/lz4
+		app-arch/xz-utils
+		app-arch/snappy
+		sys-fs/fuse:3
+		sys-libs/binutils-libs
+		sys-libs/libunwind"
+BDEPEND="app-text/ronn
+		dev-util/cmake
+		sys-apps/sed
+		sys-devel/bison
+		virtual/pkgconfig"
+
+CHECKREQS_DISK_BUILD="512M"
+
+DOCS=( "README.md" "CHANGES.md" "TODO" )
+
+src_unpack(){
+	default
+	rm -d "${S}"/fbthrift/
+	rm -d "${S}"/folly/
+	mv "${WORKDIR}/fbthrift-${FBTHRIFT_MAGIC}" "${S}"/fbthrift/
+	mv "${WORKDIR}/folly-${FBTHRIFT_MAGIC}" "${S}"/folly/
+}
+
+src_prepare(){
+	einfo "setting path to $(get_libdir)"
+	pushd "${S}"/folly
+		sed "s/lib CACHE/$(get_libdir) CACHE/" -i CMakeLists.txt || die
+		sed "s/lib\/cmake\/folly CACHE/$(get_libdir)\/cmake\/folly CACHE/" -i CMakeLists.txt || die
+	popd
+	pushd "${S}"/fbthrift
+		sed "s/lib CACHE/$(get_libdir) CACHE/" -i CMakeLists.txt || die
+		sed "s/lib\/cmake\/fbthrift CACHE/$(get_libdir)\/cmake\/fbthrift CACHE/" -i CMakeLists.txt || die
+	popd
+	sed "s/DESTINATION lib/DESTINATION $(get_libdir)/" -i CMakeLists.txt || die
+	cmake_src_prepare
+}
+
+pkg_postinst(){
+	elog "Test shows that dwarfs compiled with Clang is substantially faster than GCC ones"
+	elog "See ${HOMEPAGE}"
+	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"
+}

diff --git a/sys-fs/dwarfs/metadata.xml b/sys-fs/dwarfs/metadata.xml
new file mode 100644
index 00000000..17e2efa0
--- /dev/null
+++ b/sys-fs/dwarfs/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'>
+<pkgmetadata>
+	<maintainer type="person">
+		<email>denis7774@gmail.com</email>
+		<name>Denis Reva</name>
+		<description>Partial maintainer</description>
+	</maintainer>
+	<longdescription lang="en">
+		DwarFS is a read-only file system with a focus on achieving very high compression ratios in particular for very redundant data.
+		This probably doesn't sound very exciting, because if it's redundant, it should compress well. However, I found that other read-only, compressed file systems don't do a very good job at making use of this redundancy. See here for a comparison with other compressed file systems.
+		DwarFS also doesn't compromise on speed and for my use cases I've found it to be on par with or perform better than SquashFS. For my primary use case, DwarFS compression is an order of magnitude better than SquashFS compression, it's 4 times faster to build the file system, it's typically faster to access files on DwarFS and it uses less CPU resources.
+		Distinct features of DwarFS are:
+		* Clustering of files by similarity using a similarity hash function. This makes it easier to exploit the redundancy across file boundaries.
+		* Segmentation analysis across file system blocks in order to reduce the size of the uncompressed file system. This saves memory when using the compressed file system and thus potentially allows for higher cache hit rates as more data can be kept in the cache.
+		* Highly multi-threaded implementation. Both the file system creation tool as well as the FUSE driver are able to make good use of the many cores of your system.
+		* Optional experimental Lua support to provide custom filtering and ordering functionality.
+	</longdescription>
+</pkgmetadata>


             reply	other threads:[~2020-12-03 11:36 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-03 11:36 Andrew Ammerlaan [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-12-04 15:00 [gentoo-commits] repo/proj/guru:master commit in: sys-fs/dwarfs/ Andrew Ammerlaan
2020-12-08 14:25 Andrew Ammerlaan
2020-12-10  8:46 Andrew Ammerlaan
2020-12-11  8:36 Andrew Ammerlaan
2020-12-13 18:37 Andrew Ammerlaan
2021-01-08  8:59 Andrew Ammerlaan
2021-01-10 11:31 Andrew Ammerlaan
2021-02-07  8:24 Andrew Ammerlaan
2021-03-12  9:51 Andrew Ammerlaan
2021-03-12  9:51 Andrew Ammerlaan
2021-03-28 11:14 [gentoo-commits] repo/proj/guru:dev " Andrew Ammerlaan
2021-03-28 11:43 ` [gentoo-commits] repo/proj/guru:master " Andrew Ammerlaan
2021-04-10 10:07 Andrew Ammerlaan
2021-04-12  5:38 Theo Anderson
2021-04-12  5:38 Theo Anderson
2021-04-12  5:38 Theo Anderson
2021-04-12  9:27 [gentoo-commits] repo/proj/guru:dev " Andrew Ammerlaan
2021-04-12  9:30 ` [gentoo-commits] repo/proj/guru:master " Andrew Ammerlaan
2021-04-27 23:24 Theo Anderson
2021-04-28  8:08 Andrew Ammerlaan
2021-04-28  8:08 Andrew Ammerlaan
2021-04-29  8:23 Michał Górny
2021-04-29  8:23 Michał Górny
2021-05-02  9:27 Theo Anderson
2021-05-02  9:27 Theo Anderson
2021-05-03 16:57 Andrew Ammerlaan
2021-05-05  8:33 Andrew Ammerlaan
2021-07-07 14:02 Florian Schmaus
2021-07-07 14:02 Florian Schmaus
2021-09-16 17:57 Arthur Zamarin
2021-10-28 20:56 Haelwenn Monnier
2022-07-07  7:33 Haelwenn Monnier
2023-07-13  9:42 David Roman
2023-07-25 15:02 David Roman
2023-08-17  5:15 Viorel Munteanu
2024-01-03 16:54 David Roman
2024-01-07 23:46 David Roman
2024-01-09 12:03 David Roman
2024-01-19 10:31 Arthur Zamarin
2024-02-09  0:30 David Roman
2024-02-13 16:32 David Roman
2024-02-13 16:32 David Roman
2024-02-13 16:32 David Roman
2024-02-13 16:32 David Roman
2024-02-13 16:32 David Roman
2024-02-14 16:01 Andrew Ammerlaan
2024-02-15 14:58 David Roman
2024-02-24 12:14 Haelwenn Monnier
2024-05-16 16:27 Julien Roy
2024-06-05 12:48 Florian Schmaus
2024-10-29 14:07 [gentoo-commits] repo/proj/guru:dev " David Roman
2024-10-29 22:14 ` [gentoo-commits] repo/proj/guru:master " David Roman
2024-11-02 20:52 David Roman
2024-11-02 20:52 David Roman
2024-11-04 18:27 David Roman
2024-12-05 12:00 [gentoo-commits] repo/proj/guru:master commit in: "sys-fs/dwarfs/ Florian Schmaus
2024-12-28 20:08 [gentoo-commits] repo/proj/guru:master commit in: sys-fs/dwarfs/ Florian Schmaus
2025-03-20  9:22 David Roman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1606894475.c54f1d5636d1ca49e21634a81af3bf7a9609581d.andrewammerlaan@gentoo \
    --to=andrewammerlaan@riseup.net \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox