public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:master commit in: sys-fs/dwarfs/files/, sys-fs/dwarfs/
Date: Thu, 29 Apr 2021 08:23:30 +0000 (UTC)	[thread overview]
Message-ID: <1619644506.0b9e1a113f834824b89ecdadf6ecef29ab31689e.mgorny@gentoo> (raw)

commit:     0b9e1a113f834824b89ecdadf6ecef29ab31689e
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Wed Apr 28 21:06:34 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr 28 21:15:06 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=0b9e1a11

sys-fs/dwarfs: unbundling WIP

doesn't build but it's a start
hope I didn't mess up while rebasing

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sys-fs/dwarfs/dwarfs-0.5.4-r3.ebuild              | 106 +++++++++++++++
 sys-fs/dwarfs/files/unbundle-folly-fbthrift.patch | 153 ++++++++++++++++++++++
 2 files changed, 259 insertions(+)

diff --git a/sys-fs/dwarfs/dwarfs-0.5.4-r3.ebuild b/sys-fs/dwarfs/dwarfs-0.5.4-r3.ebuild
new file mode 100644
index 000000000..f45a47b0b
--- /dev/null
+++ b/sys-fs/dwarfs/dwarfs-0.5.4-r3.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7,8,9} )
+
+inherit check-reqs cmake flag-o-matic 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}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS=""
+
+IUSE="python +jemalloc test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=( "${WORKDIR}/unbundle-folly-fbthrift.patch" )
+
+RDEPEND="
+	${PYTHON_DEPS}
+	app-arch/libarchive
+	app-arch/lz4
+	app-arch/snappy
+	app-arch/xz-utils
+	app-arch/zstd
+	dev-cpp/fbthrift:=
+	dev-cpp/folly:=
+	dev-cpp/gflags
+	dev-cpp/glog[gflags]
+	dev-cpp/sparsehash
+	dev-libs/boost[context,threads,python?]
+	dev-libs/double-conversion
+	dev-libs/libevent
+	dev-libs/libfmt
+	dev-libs/xxhash
+	sys-fs/fuse:3
+	sys-libs/binutils-libs
+	sys-libs/libunwind
+	sys-libs/zlib
+
+	jemalloc? ( >=dev-libs/jemalloc-5.2.1 )
+"
+DEPEND="
+	${RDEPEND}
+	sys-devel/flex
+"
+BDEPEND="
+	app-text/ronn
+	sys-devel/bison
+	virtual/pkgconfig
+
+	test? ( dev-cpp/gtest )
+"
+>>>>>>> f29f4045 (sys-fs/dwarfs: unbundling WIP):sys-fs/dwarfs/dwarfs-0.5.4-r1.ebuild
+
+CHECKREQS_DISK_BUILD="1300M"
+
+DOCS=( "README.md" "CHANGES.md" "TODO" )
+
+CMAKE_IN_SOURCE_BUILD=1
+CMAKE_WARN_UNUSED_CLI=0
+
+src_prepare(){
+	cmake_src_prepare
+	einfo "setting library path to $(get_libdir)"
+	sed "s/DESTINATION lib/DESTINATION $(get_libdir)/" -i CMakeLists.txt || die
+}
+
+src_configure(){
+	append-cxxflag "-I/usr/include/folly"
+
+	einfo "setting configuration flags to:"
+	mycmakeargs=(
+		-DUSE_JEMALLOC=$(usex jemalloc ON OFF)
+		-DWITH_PYTHON=$(usex python ON OFF)
+		-DWITH_TESTS=$(usex test ON OFF)
+		-DPREFER_SYSTEM_ZSTD=1
+		-DPREFER_SYSTEM_XXHASH=1
+		-DPREFER_SYSTEM_GTEST=1
+		-DWITH_LEGACY_FUSE=0
+	)
+	if use python; then mycmakeargs+=( -DWITH_PYTHON_VERSION=${EPYTHON#python} ); fi
+	einfo ${mycmakeargs}
+	cmake_src_configure
+}
+
+src_install(){
+	cmake_src_install
+	#TODO: unbundle libfsst
+	dolib.so libdwarfs.so libfsst.so
+}
+
+pkg_postinst(){
+	elog "Suggest to enable USE 'threads' globally if you have multicore machine"
+	elog "Since version 0.4.1 GGC builds has been fixed. Now both Clang and GCC are working very well"
+	elog "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/files/unbundle-folly-fbthrift.patch b/sys-fs/dwarfs/files/unbundle-folly-fbthrift.patch
new file mode 100644
index 000000000..62f4ee1f9
--- /dev/null
+++ b/sys-fs/dwarfs/files/unbundle-folly-fbthrift.patch
@@ -0,0 +1,153 @@
+--- CMakeLists.txt	2021-04-28 16:56:24.432666631 +0200
++++ CMakeLists.txt2	2021-04-28 17:00:04.622812742 +0200
+@@ -298,7 +298,7 @@
+ if(WITH_TESTS OR WITH_BENCHMARKS)
+   add_library(test_helpers test/test_helpers.cpp test/test_strings.cpp
+                            test/loremipsum.cpp)
+-  target_link_libraries(test_helpers dwarfs folly)
++  target_link_libraries(test_helpers dwarfs)
+   set_property(TARGET test_helpers PROPERTY CXX_STANDARD 17)
+ endif()
+ 
+@@ -364,70 +364,7 @@
+ 
+ list(
+   APPEND
+-  FROZEN_THRIFT_SRC
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_data.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_data.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.tcc
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types_custom_protocol.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_constants.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_constants.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_metadata.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_metadata.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_visitation.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_for_each_field.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_visit_union.h)
+-
+-list(
+-  APPEND
+-  METADATA_THRIFT_SRC
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_constants.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_constants.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_for_each_field.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_metadata.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_metadata.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.tcc
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types_custom_protocol.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_visit_union.h
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_visitation.h)
+-
+-add_custom_command(
+-  OUTPUT ${FROZEN_THRIFT_SRC}
+-  COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift
+-  COMMAND
+-    cp ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/thrift/frozen.thrift
+-    ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/
+-  COMMAND cd ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift &&
+-          ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1 --gen mstch_cpp2 frozen.thrift
+-  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
+-          ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/thrift/frozen.thrift)
+-
+-add_custom_command(
+-  OUTPUT ${METADATA_THRIFT_SRC}
+-  COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs
+-  COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift
+-          thrift/dwarfs/metadata.thrift
+-  COMMAND
+-    cd ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs &&
+-    ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1 --gen mstch_cpp2:frozen2
+-    metadata.thrift
+-  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bin/thrift1
+-          ${CMAKE_CURRENT_SOURCE_DIR}/thrift/metadata.thrift)
+-
+-list(
+-  APPEND
+   INCLUDE_DIRS
+-  ${CMAKE_CURRENT_BINARY_DIR}/folly
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift
+-  ${CMAKE_CURRENT_SOURCE_DIR}/folly
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift
+   ${CMAKE_CURRENT_BINARY_DIR})
+ 
+ if(NOT (ZSTD_FOUND AND PREFER_SYSTEM_ZSTD))
+@@ -445,39 +382,6 @@
+   list(APPEND INCLUDE_DIRS ${Jemalloc_INCLUDE_DIRS})
+ endif()
+ 
+-add_library(
+-  thrift_light
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/FieldRef.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/CompactProtocol.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/BinaryProtocol.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/DebugProtocol.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/JSONProtocolCommon.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/protocol/JSONProtocol.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp/protocol/TProtocolException.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp/util/VarintUtils.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/gen/module_types_cpp.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/frozen/Frozen.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/frozen/FrozenUtil.cpp
+-  ${CMAKE_CURRENT_SOURCE_DIR}/fbthrift/thrift/lib/cpp2/frozen/schema/MemorySchema.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_data.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/lib/thrift/gen-cpp2/frozen_types.cpp)
+-
+-set_property(TARGET thrift_light PROPERTY CXX_STANDARD 17)
+-
+-target_include_directories(thrift_light PRIVATE ${INCLUDE_DIRS})
+-
+-add_library(
+-  metadata_thrift
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_layouts.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_types.cpp
+-  ${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs/gen-cpp2/metadata_data.cpp)
+-
+-set_property(TARGET metadata_thrift PROPERTY CXX_STANDARD 17)
+-
+-target_include_directories(metadata_thrift PRIVATE ${INCLUDE_DIRS})
+-
+-add_dependencies(metadata_thrift thrift_light)
+-
+ foreach(tgt dwarfs ${BINARY_TARGETS})
+   target_include_directories(
+     ${tgt} SYSTEM
+@@ -501,8 +405,6 @@
+   set_property(TARGET ${tgt} PROPERTY CXX_STANDARD_REQUIRED ON)
+   set_property(TARGET ${tgt} PROPERTY CXX_EXTENSIONS OFF)
+ 
+-  add_dependencies(${tgt} metadata_thrift)
+-
+   if(ENABLE_ASAN)
+     target_compile_options(${tgt} PRIVATE -fsanitize=address
+                                           -fno-omit-frame-pointer)
+@@ -550,9 +452,6 @@
+ 
+ target_link_libraries(
+   dwarfs
+-  metadata_thrift
+-  thrift_light
+-  folly
+   fsst
+   ${Boost_LIBRARIES}
+   PkgConfig::LIBARCHIVE
+@@ -582,11 +481,6 @@
+   if(USE_JEMALLOC)
+     target_link_libraries(${tgt} ${Jemalloc_LIBRARIES})
+   endif()
+-  if(TARGET folly_exception_tracer)
+-    target_link_libraries(
+-      ${tgt} -Wl,--whole-archive folly_exception_tracer_base
+-      folly_exception_tracer -Wl,--no-whole-archive)
+-  endif()
+ endforeach()
+ 
+ if(STATIC_BUILD_DO_NOT_USE)


             reply	other threads:[~2021-04-29  8:23 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-29  8:23 Michał Górny [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-11-04 18:27 [gentoo-commits] repo/proj/guru:master commit in: sys-fs/dwarfs/files/, sys-fs/dwarfs/ David Roman
2023-07-25 15:02 David Roman
2021-05-02  9:27 Theo Anderson
2021-04-29  8:23 Michał Górny
2021-03-11 13:16 Andrew Ammerlaan

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=1619644506.0b9e1a113f834824b89ecdadf6ecef29ab31689e.mgorny@gentoo \
    --to=mgorny@gentoo.org \
    --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