mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-04-20 22:01:11 +02:00
qbdi: bump to 0.7.1 (py3 is came. Closes: https://github.com/pentoo/pentoo-overlay/issues/563)
This commit is contained in:
parent
03882e1d20
commit
55ec66212c
6 changed files with 338 additions and 0 deletions
|
|
@ -1,2 +1,3 @@
|
|||
DIST llvm-7.0.0.src.tar.xz 28324368 BLAKE2B 10168ff9be8f68536db3b2263c85c1c98213ef03dc542b83628ff176542452582bc496bab236fdf40d4a6463a33f04b27f1458c072ad8b66b641f8df8d494046 SHA512 bdc9b851c158b17e1bbeb7ac5ae49821bfb1251a3826fe8a3932cd1a43f9fb0d620c3de67150c1d9297bf0b86fa917e75978da29c3f751b277866dc90395abec
|
||||
DIST qbdi-0.7.0.tar.gz 353857 BLAKE2B a757e515337facae100076cfc942d83a9d65495bb840cc044e9b255017941aae2e3a48568d3a7528c0194a8ee26e26380824df224348949ecf4f88f8ff636f0c SHA512 202aecc42d52fc887d033c6dde89ef525af87a77225be3fb3dfdb02ebc42e0e70d3267a7982bcfe513a3994efed15c794eba3001912ed030a5a2faac59dcf465
|
||||
DIST qbdi-0.7.1.tar.gz 350779 BLAKE2B 409b7813ca2fae58d89abba2529b0aa0d628525feaa272047e3f3c2d4009fa37268b5430c74edbe545effd51a662b5df9af7fd483f9dc5376b417bc378d584b0 SHA512 43bbc9ab15126ea2a5b6ae3964befdf0cc0d1c3545c8c0224aabaa107f5874fa45b2bd8f8b130899aa0edd87eb77f77c001d85a0a064d03ed0a86eb30fc101bb
|
||||
|
|
|
|||
130
dev-libs/qbdi/files/qbdi-0.7.1_update_CMakeLists.patch
Normal file
130
dev-libs/qbdi/files/qbdi-0.7.1_update_CMakeLists.patch
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
diff -ur a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt 2020-02-27 12:37:28.000000000 +0300
|
||||
+++ b/CMakeLists.txt 2020-02-28 12:06:32.895768009 +0300
|
||||
@@ -110,16 +110,8 @@
|
||||
|
||||
configure_file(include/QBDI/Version.h.in "${CMAKE_SOURCE_DIR}/include/QBDI/Version.h" @ONLY)
|
||||
|
||||
-# Add dependency build targets
|
||||
-
|
||||
-add_subdirectory(deps)
|
||||
-
|
||||
if(${DEPENDENCY_SATISFIED})
|
||||
|
||||
-# Add includes
|
||||
-
|
||||
-set(LLVM_LIBS_DIR deps/llvm/${PLATFORM}/lib)
|
||||
-
|
||||
# Resolve LLVM options
|
||||
|
||||
if((${PLATFORM} STREQUAL "linux-X86_64") OR
|
||||
@@ -265,7 +257,7 @@
|
||||
enable_language(ASM_MASM)
|
||||
set(ASM_EXT "asm")
|
||||
else()
|
||||
- set(CMAKE_ASM-ATT_COMPILER ${AS_BINARY})
|
||||
+ set(CMAKE_ASM_COMPILER ${AS_BINARY})
|
||||
enable_language(ASM-ATT)
|
||||
set(ASM_EXT "s")
|
||||
if(${OS} STREQUAL "iOS")
|
||||
@@ -289,7 +281,7 @@
|
||||
if(${OS} STREQUAL "win")
|
||||
PREPEND(LLVM_STATIC_LIBS ${CMAKE_SOURCE_DIR}/${LLVM_LIBS_DIR}/ ${_LLVM_STATIC_LIBS})
|
||||
else()
|
||||
- PREPEND(LLVM_STATIC_LIBS ${CMAKE_SOURCE_DIR}/${LLVM_LIBS_DIR}/lib ${_LLVM_STATIC_LIBS})
|
||||
+ PREPEND(LLVM_STATIC_LIBS ${LLVM_STATIC_LIBS_DIR}/lib ${_LLVM_STATIC_LIBS})
|
||||
endif()
|
||||
|
||||
# Final QBDI static library is a merge of static libraries
|
||||
@@ -298,8 +290,10 @@
|
||||
target_include_directories(QBDI_obj PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/include/QBDI"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/src"
|
||||
- "${CMAKE_CURRENT_SOURCE_DIR}/deps/llvm/${PLATFORM}/include"
|
||||
- "${CMAKE_CURRENT_SOURCE_DIR}/deps/llvm/${PLATFORM}/lib/Target/${LLVM_ARCH}"
|
||||
+ "${LLVM_BASE_DIR}/include"
|
||||
+ "${LLVM_BASE_DIR}/lib/Target/${LLVM_ARCH}"
|
||||
+ "${LLVM_BASE_DIR}_build/include"
|
||||
+ "${LLVM_BASE_DIR}_build/lib/Target/${LLVM_ARCH}"
|
||||
)
|
||||
|
||||
# Hack because generators expressions don't work properly under visual studio ...
|
||||
@@ -368,17 +362,17 @@
|
||||
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "QBDI")
|
||||
install(TARGETS QBDI_static
|
||||
EXPORT QBDI_targets
|
||||
- ARCHIVE DESTINATION lib)
|
||||
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
install(TARGETS QBDI
|
||||
EXPORT QBDI_targets
|
||||
- LIBRARY DESTINATION lib
|
||||
- ARCHIVE DESTINATION lib
|
||||
- RUNTIME DESTINATION lib)
|
||||
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
if(${OS} STREQUAL "win")
|
||||
install(FILES ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/QBDI.exp
|
||||
- DESTINATION lib)
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
install(DIRECTORY include/QBDI DESTINATION include/
|
||||
@@ -390,7 +384,7 @@
|
||||
if(FULL_PACKAGE)
|
||||
string(REPLACE ";" " " LLVM_LIBS_STR "${LLVM_LIBS}")
|
||||
configure_file(package/qbdi.pc.in package/qbdi.pc @ONLY)
|
||||
- install(FILES ${CMAKE_BINARY_DIR}/package/qbdi.pc DESTINATION lib/pkgconfig/)
|
||||
+ install(FILES ${CMAKE_BINARY_DIR}/package/qbdi.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/)
|
||||
|
||||
set(RESOURCES_PREFIX ${CMAKE_INSTALL_PREFIX}/share/qbdi)
|
||||
|
||||
diff -ur a/tools/pyqbdi/CMakeLists.txt b/tools/pyqbdi/CMakeLists.txt
|
||||
--- a/tools/pyqbdi/CMakeLists.txt 2020-02-27 12:37:28.000000000 +0300
|
||||
+++ b/tools/pyqbdi/CMakeLists.txt 2020-02-28 12:46:55.286065704 +0300
|
||||
@@ -38,15 +38,6 @@
|
||||
message(FATAL_ERROR "PyQBDI with Python ${PYTHON_BIT} is not compatible with the architecture ${ARCH}")
|
||||
endif()
|
||||
|
||||
- ExternalProject_Add(pyqbdi_pybind11
|
||||
- URL "https://github.com/pybind/pybind11/archive/v2.4.3.zip"
|
||||
- URL_HASH SHA256=f1cc1e9c2836f9873aefdaf76a3280a55aae51068c759b27499a9cf34090d364
|
||||
- CONFIGURE_COMMAND ""
|
||||
- BUILD_COMMAND ""
|
||||
- INSTALL_COMMAND "")
|
||||
- ExternalProject_get_property(pyqbdi_pybind11 SOURCE_DIR)
|
||||
- set(PYBIND11_SOURCE_DIR "${SOURCE_DIR}")
|
||||
-
|
||||
add_library(pyqbdi_utils INTERFACE)
|
||||
add_dependencies(pyqbdi_utils pyqbdi_pybind11)
|
||||
|
||||
diff -ur a/tools/QBDIPreload/CMakeLists.txt b/tools/QBDIPreload/CMakeLists.txt
|
||||
--- a/tools/QBDIPreload/CMakeLists.txt 2020-02-27 12:37:28.000000000 +0300
|
||||
+++ b/tools/QBDIPreload/CMakeLists.txt 2020-02-28 12:08:53.327740532 +0300
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
install(TARGETS QBDIPreload
|
||||
EXPORT QBDIPreload_targets
|
||||
- ARCHIVE DESTINATION lib)
|
||||
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
install(FILES include/QBDIPreload.h DESTINATION include/)
|
||||
|
||||
diff -ur a/tools/validator/CMakeLists.txt b/tools/validator/CMakeLists.txt
|
||||
--- a/tools/validator/CMakeLists.txt 2020-02-27 12:37:28.000000000 +0300
|
||||
+++ b/tools/validator/CMakeLists.txt 2020-02-28 12:09:59.559088285 +0300
|
||||
@@ -23,3 +23,12 @@
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
target_link_libraries(validator QBDIPreload QBDI_static)
|
||||
+
|
||||
+install(TARGETS validator
|
||||
+ EXPORT validator_targets
|
||||
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
+
|
||||
+install(EXPORT validator_targets
|
||||
+ FILE QBDIPreloadConfig.cmake
|
||||
+ NAMESPACE QBDIPreload::
|
||||
+ DESTINATION ${PRELOAD_RESOURCES_PREFIX}/cmake)
|
||||
179
dev-libs/qbdi/qbdi-0.7.1.ebuild
Normal file
179
dev-libs/qbdi/qbdi-0.7.1.ebuild
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
CMAKE_BUILD_TYPE="Release"
|
||||
PYTHON_COMPAT=( python3_{6,7} )
|
||||
PYTHON_REQ_USE="sqlite"
|
||||
|
||||
# NOTE: local built of LLVM is required because QBDI uses private APIs
|
||||
# not exported by gentoo regular LLVM installations
|
||||
LLVM_PV="7.0.0"
|
||||
LLVM_P="llvm-${LLVM_PV}.src"
|
||||
LLVM_TARGET="X86" # FIXME: only amd64 and x86 support in the current moment
|
||||
LLVM_S="${WORKDIR}/${LLVM_P}"
|
||||
|
||||
inherit cmake eutils python-single-r1
|
||||
|
||||
DESCRIPTION="A Dynamic Binary Instrumentation framework based on LLVM"
|
||||
HOMEPAGE="https://qbdi.quarkslab.com/"
|
||||
|
||||
SRC_URI="https://github.com/QBDI/QBDI/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
https://llvm.org/releases/${LLVM_PV}/${LLVM_P}.tar.xz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* ~amd64 ~x86" # TODO: add ~arm support
|
||||
IUSE="cpu_flags_x86_avx debug doc +tools"
|
||||
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
doc? ( app-doc/doxygen )"
|
||||
|
||||
RDEPEND="
|
||||
sys-libs/zlib:0=
|
||||
tools? (
|
||||
${PYTHON_DEPS}
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/pybind11[${PYTHON_MULTI_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_MULTI_USEDEP}]
|
||||
')
|
||||
)"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}_update_CMakeLists.patch"
|
||||
"${FILESDIR}/qbdi-0.7.0_fix_configs_validation_runner.patch"
|
||||
)
|
||||
|
||||
S="${WORKDIR}/QBDI-${PV}"
|
||||
|
||||
_get_platform() {
|
||||
use amd64 && echo 'linux-X86_64'
|
||||
use x86 && echo 'linux-X86'
|
||||
#use arm && echo OwO
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
python_fix_shebang "${S}"
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=( )
|
||||
|
||||
# llvm minimal configuration
|
||||
mycmakeargs=(
|
||||
-DBUILD_SHARED_LIBS="FALSE"
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE="${CHOST}"
|
||||
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGET}"
|
||||
-DLLVM_BUILD_TOOLS="FALSE"
|
||||
-DLLVM_BUILD_UTILS="FALSE"
|
||||
-DLLVM_BUILD_TESTS="FALSE"
|
||||
-DLLVM_BUILD_EXAMPLES="FALSE"
|
||||
-DLLVM_INCLUDE_TOOLS="FALSE"
|
||||
-DLLVM_INCLUDE_UTILS="FALSE"
|
||||
-DLLVM_INCLUDE_TESTS="FALSE"
|
||||
-DLLVM_INCLUDE_EXAMPLES="FALSE"
|
||||
-DLLVM_BUILD_32_BITS=$(usex x86)
|
||||
-DCMAKE_C_FLAGS="${CFLAGS} -fvisibility=hidden"
|
||||
-DCMAKE_CXX_FLAGS="${CXXFLAGS} -fvisibility=hidden"
|
||||
)
|
||||
|
||||
CMAKE_USE_DIR="${LLVM_S}"
|
||||
BUILD_DIR="${LLVM_S}_build"
|
||||
cmake_src_configure
|
||||
|
||||
# qbdi config
|
||||
mycmakeargs=(
|
||||
-DPLATFORM="$(_get_platform)"
|
||||
-DAS_BINARY="$(tc-getAS)"
|
||||
-DLLVM_BASE_DIR="${LLVM_S}"
|
||||
-DLLVM_STATIC_LIBS_DIR="${LLVM_S}_build/lib"
|
||||
-DCMAKE_CROSSCOMPILING="FALSE"
|
||||
-DTEST_QBDI="FALSE" # TODO: add tests support
|
||||
-DEXAMPLES="FALSE" # FIXME: i can't install examples because ld is falling
|
||||
-DLOG_DEBUG=$(usex debug)
|
||||
-DFULL_PACKAGE=$(usex tools)
|
||||
-DTOOLS_QBDIPRELOAD=$(usex tools)
|
||||
-DTOOLS_VALIDATOR=$(usex tools)
|
||||
-DTOOLS_FRIDAQBDI=$(usex tools)
|
||||
-DTOOLS_PYQBDI=$(usex tools)
|
||||
-DDEPENDENCY_SATISFIED="TRUE" # it's ok. Don't remove it
|
||||
)
|
||||
|
||||
use cpu_flags_x86_avx || mycmakeargs+=( -DFORCE_DISABLE_AVX="TRUE" )
|
||||
|
||||
CMAKE_USE_DIR="${S}"
|
||||
BUILD_DIR="${S}_build"
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local llvm_targets=(
|
||||
"LLVMSelectionDAG"
|
||||
"LLVMAsmPrinter"
|
||||
"LLVMBinaryFormat"
|
||||
"LLVMCodeGen"
|
||||
"LLVMScalarOpts"
|
||||
"LLVMProfileData"
|
||||
"LLVMInstCombine"
|
||||
"LLVMTransformUtils"
|
||||
"LLVMAnalysis"
|
||||
"LLVMTarget"
|
||||
"LLVMObject"
|
||||
"LLVMMCParser"
|
||||
"LLVMBitReader"
|
||||
"LLVMMCDisassembler"
|
||||
"LLVMMC"
|
||||
"LLVMCore"
|
||||
"LLVMSupport"
|
||||
"LLVMDemangle"
|
||||
"LLVM${LLVM_TARGET}Utils"
|
||||
"LLVM${LLVM_TARGET}Info"
|
||||
"LLVM${LLVM_TARGET}Disassembler"
|
||||
"LLVM${LLVM_TARGET}Desc"
|
||||
"LLVM${LLVM_TARGET}CodeGen"
|
||||
"LLVM${LLVM_TARGET}AsmPrinter"
|
||||
"LLVM${LLVM_TARGET}AsmParser"
|
||||
)
|
||||
|
||||
for l in ${llvm_targets[@]}; do
|
||||
cmake_build -C "${LLVM_S}_build" $l
|
||||
done
|
||||
|
||||
cmake_src_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
if use tools; then
|
||||
insinto "/usr/share/${PN}"
|
||||
doins -r tools/validation_runner
|
||||
python_optimize "${D}"/usr/share/${PN}
|
||||
|
||||
make_wrapper ValidationRunner \
|
||||
"${EPYTHON} /usr/share/${PN}/validation_runner/ValidationRunner.py"
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
dodoc -r docker/* package/* examples # FIXME: install examples as docs instead building
|
||||
cmake_build docs-doxygen
|
||||
for d in c cpp tools; do
|
||||
pushd "docs/doxygen_${d}" >/dev/null || die
|
||||
mv -v html ${PN}_${d} && dodoc -r ${PN}_${d} || die 'failed to install'
|
||||
popd >/dev/null || die
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use doc && einfo "\nDocumentation and examples has been installed into /usr/share/doc/${P}/* directory\n"
|
||||
einfo "See more: https://qbdi.readthedocs.io/en/stable/\n"
|
||||
}
|
||||
1
dev-python/pybind11/Manifest
Normal file
1
dev-python/pybind11/Manifest
Normal file
|
|
@ -0,0 +1 @@
|
|||
DIST pybind11-2.4.3.tar.gz 138789 BLAKE2B 6279ddbc4ca4c8a62eeff684cac789a315eef0ce769258c8152f7073f8bbea39e582ed1ea86fae6878f46c675ed998c314bbaa54a40457287833cc555f5d9692 SHA512 97b6ffb38dbda8021e8265c2052df65785d532dbcd94a2b711306f806eab1a9e2aaf31ea466f13eb5784856ac69e0f4c1dc6d742aa70e5a10ce9ce338e5e9d84
|
||||
8
dev-python/pybind11/metadata.xml
Normal file
8
dev-python/pybind11/metadata.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>email@linxon.ru</email>
|
||||
<name>Yury Martynov</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
||||
19
dev-python/pybind11/pybind11-2.4.3.ebuild
Normal file
19
dev-python/pybind11/pybind11-2.4.3.ebuild
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{6,7,8} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Seamless operability between C++11 and Python"
|
||||
HOMEPAGE="https://github.com/pybind/pybind11"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
|
||||
RDEPEND="${PYTHON_DEPS}"
|
||||
DEPEND="${RDEPEND}"
|
||||
Loading…
Reference in a new issue