commit:     7f85b03b40d50a70620210159852030bb82eb3de
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Sun May  2 01:49:27 2021 +0000
Commit:     Theo Anderson <telans <AT> posteo <DOT> de>
CommitDate: Sun May  2 01:51:05 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=7f85b03b

sys-fs/dwarfs: unbundling WIP

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 |   8 +-
 sys-fs/dwarfs/files/unbundle.patch   | 177 +++++++++++++++++++++++++++++++++++
 2 files changed, 182 insertions(+), 3 deletions(-)

diff --git a/sys-fs/dwarfs/dwarfs-0.5.4-r3.ebuild 
b/sys-fs/dwarfs/dwarfs-0.5.4-r3.ebuild
index 8c35e1298..0de8a6544 100644
--- a/sys-fs/dwarfs/dwarfs-0.5.4-r3.ebuild
+++ b/sys-fs/dwarfs/dwarfs-0.5.4-r3.ebuild
@@ -14,13 +14,13 @@ 
SRC_URI="https://github.com/mhx/dwarfs/releases/download/v${PV}/${P}.tar.bz2";
 
 LICENSE="GPL-3"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64"
 
 IUSE="python +jemalloc test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
 
-PATCHES=( "${WORKDIR}/unbundle-folly-fbthrift.patch" )
+PATCHES=( "${FILESDIR}/unbundle.patch" )
 #TODO: unbundle libfsst
 
 RDEPEND="
@@ -34,6 +34,7 @@ RDEPEND="
        dev-cpp/folly:=
        dev-cpp/gflags
        dev-cpp/glog[gflags]
+       dev-cpp/parallel-hashmap:=
        dev-cpp/sparsehash
        dev-libs/boost[context,threads,python?]
        dev-libs/double-conversion
@@ -68,13 +69,14 @@ CMAKE_IN_SOURCE_BUILD=1
 CMAKE_WARN_UNUSED_CLI=0
 
 src_prepare(){
+       rm -r fsst zstd fbthrift folly xxHash parallel-hashmap || die
        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"
+       append-cxxflags "-I/usr/include"
 
        einfo "setting configuration flags to:"
        mycmakeargs=(

diff --git a/sys-fs/dwarfs/files/unbundle.patch 
b/sys-fs/dwarfs/files/unbundle.patch
new file mode 100644
index 000000000..ad9588c54
--- /dev/null
+++ b/sys-fs/dwarfs/files/unbundle.patch
@@ -0,0 +1,177 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -142,8 +142,6 @@
+     ON
+     CACHE BOOL "only build thrift compiler")
+ 
+-add_subdirectory(folly EXCLUDE_FROM_ALL)
+-add_subdirectory(fbthrift EXCLUDE_FROM_ALL)
+ if(NOT (ZSTD_FOUND AND PREFER_SYSTEM_ZSTD))
+   add_subdirectory(zstd/build/cmake EXCLUDE_FROM_ALL)
+ endif()
+@@ -298,7 +296,6 @@
+ 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)
+   set_property(TARGET test_helpers PROPERTY CXX_STANDARD 17)
+ endif()
+ 
+@@ -364,70 +361,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 +379,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 +402,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)
+@@ -535,25 +434,8 @@
+   endif()
+ endforeach()
+ 
+-# not sure why exactly, copied from fsst/CMakeLists.txt
+-if(CMAKE_BUILD_TYPE STREQUAL Release)
+-  set_source_files_properties(fsst/fsst_avx512.cpp PROPERTIES COMPILE_FLAGS 
-O1)
+-endif()
+-
+-add_library(
+-  fsst
+-  fsst/libfsst.cpp fsst/fsst_avx512.cpp fsst/fsst_avx512_unroll1.inc
+-  fsst/fsst_avx512_unroll2.inc fsst/fsst_avx512_unroll3.inc
+-  fsst/fsst_avx512_unroll4.inc)
+-
+-target_include_directories(dwarfs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/fsst)
+-
+ target_link_libraries(
+   dwarfs
+-  metadata_thrift
+-  thrift_light
+-  folly
+-  fsst
+   ${Boost_LIBRARIES}
+   PkgConfig::LIBARCHIVE
+   PkgConfig::LIBLZ4
+@@ -582,11 +464,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 via email to