From a439466f76bd40c6573ae402dfeadb28969be42b Mon Sep 17 00:00:00 2001 From: Bertrand Jacquin Date: Sun, 10 Mar 2024 12:58:35 +0000 Subject: net-p2p/monero: add 0.18.3.2 --- net-p2p/monero/monero-0.18.3.2.ebuild | 223 ++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 net-p2p/monero/monero-0.18.3.2.ebuild (limited to 'net-p2p/monero/monero-0.18.3.2.ebuild') diff --git a/net-p2p/monero/monero-0.18.3.2.ebuild b/net-p2p/monero/monero-0.18.3.2.ebuild new file mode 100644 index 00000000..0c4261c4 --- /dev/null +++ b/net-p2p/monero/monero-0.18.3.2.ebuild @@ -0,0 +1,223 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{11..12} ) +CMAKE_MAKEFILE_GENERATOR="emake" +inherit cmake flag-o-matic toolchain-funcs python-any-r1 systemd qmake-utils + +DESCRIPTION="Secure, private, untraceable cryptocurrency" +HOMEPAGE="https://getmonero.org" + +EGIT_COMMIT_EXTERNAL_TREZOR_COMMON="028c9b2e95d83b4164748a12cfdc181f0dd11920" +EGIT_COMMIT_EXTERNAL_SUPERCOP="633500ad8c8759995049ccd022107d1fa8a1bbc9" +EGIT_COMMIT_EXTERNAL_QUIRC="516d91a94d880ca1006fc1d57f318bdff8411f0d" +SRC_URI="https://github.com/monero-project/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/trezor/trezor-common/archive/${EGIT_COMMIT_EXTERNAL_TREZOR_COMMON}.tar.gz -> trezor-common-${EGIT_COMMIT_EXTERNAL_TREZOR_COMMON}.tar.gz + https://github.com/monero-project/supercop/archive/${EGIT_COMMIT_EXTERNAL_SUPERCOP}.tar.gz -> supercop-${EGIT_COMMIT_EXTERNAL_SUPERCOP}.tar.gz + qt5? ( + https://github.com/monero-project/${PN}-gui/archive/refs/tags/v${PV}.tar.gz -> ${PN}-gui-${PV}.tar.gz + https://github.com/dlbeer/quirc/archive/${EGIT_COMMIT_EXTERNAL_QUIRC}.tar.gz -> quirc-${EGIT_COMMIT_EXTERNAL_QUIRC}.tar.gz + )" + +LICENSE="NEWLIB" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm64" +CPU_FLAGS="cpu_flags_arm_aes cpu_flags_x86_aes" +IUSE="doc qt5 nls readline smartcard ${CPU_FLAGS}" + +RDEPEND="net-dns/unbound:=[threads] + >=dev-libs/randomx-1.1.9:= + net-libs/miniupnpc:= + dev-libs/openssl:0 + >=dev-libs/boost-1.62:=[icu,nls] + >=net-libs/zeromq-4.3:=[sodium] + dev-libs/rapidjson:= + readline? ( sys-libs/readline:= ) + smartcard? ( + >=dev-libs/hidapi-0.11.0:= + virtual/libusb:= + virtual/libudev:= + dev-libs/protobuf:= + ) + qt5? ( + dev-qt/qtconcurrent:5 + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtdeclarative:5 + dev-qt/qtnetwork:5 + dev-qt/qtsvg:5 + dev-qt/qtxmlpatterns:5[qml] + dev-qt/qtwidgets:5 + dev-qt/qtmultimedia:5 + dev-qt/qtquickcontrols:5 + dev-qt/qtquickcontrols2:5 + dev-qt/qtgraphicaleffects:5 + dev-libs/libgcrypt:= + media-fonts/fontawesome[ttf] + ) + acct-user/monero + acct-group/monero" +DEPEND="${RDEPEND} + nls? ( dev-qt/linguist-tools )" +BDEPEND="${PYTHON_DEPS} + doc? ( + media-gfx/graphviz + app-text/doxygen + ) + qt5? ( dev-qt/linguist-tools:5 ) + smartcard? ( $(python_gen_any_dep 'dev-python/protobuf-python[${PYTHON_USEDEP}]') )" + +PATCHES_MONERO=( + "${FILESDIR}/monero-${PV}-Drop-in-tree-miniupnpc.patch" + "${FILESDIR}/monero-${PV}-Use-gentoo-versioning.patch" + "${FILESDIR}/monero-${PV}-Use-gentoo-dev-libs-randomx.patch" + "${FILESDIR}/monero-${PV}-translations-use-host-compiler.patch" + "${FILESDIR}/monero-${PV}-include-deque.patch" + "${FILESDIR}/monero-${PV}-include-set.patch" +) + +PATCHES_MONERO_GUI=( + "${FILESDIR}/monero-gui-${PV}-cmake-use-gentoo-versioning.patch" +) + +CMAKE_BUILD_TYPE=Release + +src_unpack() { + default + + rm -rf "${S}/external/trezor-common" || die + ln -snf "${WORKDIR}/trezor-common-${EGIT_COMMIT_EXTERNAL_TREZOR_COMMON}" "${S}/external/trezor-common" || die + + rm -rf "${S}/external/supercop" || die + ln -snf "${WORKDIR}/supercop-${EGIT_COMMIT_EXTERNAL_SUPERCOP}" "${S}/external/supercop" || die + + if use qt5 ; then + rm -rf "${WORKDIR}/monero-gui-${PV}/monero" || die + ln -snf "${WORKDIR}/monero-${PV}" "${WORKDIR}/monero-gui-${PV}/monero" || die + + rm -rf "${WORKDIR}/monero-gui-${PV}/external/quirc" || die + ln -snf "${WORKDIR}/quirc-${EGIT_COMMIT_EXTERNAL_QUIRC}" "${WORKDIR}/monero-gui-${PV}/external/quirc" || die + fi +} + +src_prepare() { + export AR=$(tc-getAR) + export CC=$(tc-getCC) + export CXX=$(tc-getCXX) + tc-export_build_env BUILD_C{C,XX} + + # Needed for lrelease + export PATH="${PATH}:$(qt5_get_bindir)" || die + + append-cflags -DUSE_EXTRA_EC_CERT + append-cxxflags -DUSE_EXTRA_EC_CERT + + CMAKE_USE_DIR="${WORKDIR}/monero-${PV}" + BUILD_DIR="${WORKDIR}/monero-${PV}_build" + pushd "${CMAKE_USE_DIR}" > /dev/null || die + S="${CMAKE_USE_DIR}" PATCHES="${PATCHES_MONERO[@]}" cmake_src_prepare + popd > /dev/null || die + + if use qt5 ; then + CMAKE_USE_DIR="${WORKDIR}/monero-gui-${PV}" + BUILD_DIR="${WORKDIR}/monero-gui-${PV}_build" + pushd "${CMAKE_USE_DIR}" > /dev/null || die + S="${CMAKE_USE_DIR}" PATCHES="${PATCHES_MONERO_GUI[@]}" cmake_src_prepare + popd > /dev/null || die + fi +} + +src_configure() { + local mycmakeargs + local cmakeargs_monero=( + -Wno-dev + -DBUILD_TAG="$(tc-arch)" + -DUSE_CCACHE=OFF + -DPYTHON_EXECUTABLE="${PYTHON}" + -DBUILD_DOCUMENTATION="$(usex doc ON OFF)" + -DBUILD_TESTS=OFF + -DUSE_READLINE="$(usex readline ON OFF)" + -DBUILD_GUI_DEPS="$(usex qt5 ON OFF)" + -DSTACK_TRACE=OFF + -DBUILD_SHARED_LIBS=OFF + -DMANUAL_SUBMODULES=ON + ) + + if use cpu_flags_arm_aes || use cpu_flags_x86_aes ; then + cmakeargs_monero+=( -DNO_AES=OFF ) + else + cmakeargs_monero+=( -DNO_AES=ON ) + fi + + local cmakeargs_monerogui=( + "${cmakeargs_monero[@]}" + -DUSE_DEVICE_TREZOR="$(usex smartcard ON OFF)" + -DWITH_DESKTOP_ENTRY=ON + -DWITH_SCANNER=ON + -DWITH_UPDATER=OFF + -DDEV_MODE=OFF + ) + + export DATABASE="lmdb" + export DEVELOPER_LOCAL_TOOLS=0 + export DEVELOPER_LIBUNBOUND_OLD=0 + + cat > "${WORKDIR}/monero-${PV}_build/translations.cmake" <<- _EOF_ || die + SET (CMAKE_C_COMPILER "${BUILD_CC}") + SET (CMAKE_C_FLAGS "${BUILD_CFLAGS}") + SET (CMAKE_CXX_COMPILER "${BUILD_CXX}") + SET (CMAKE_CXX_FLAGS "${BUILD_CXXFLAGS}") + SET (CMAKE_EXE_LINKER_FLAGS "${BUILD_LDFLAGS}") + SET (CMAKE_MODULE_LINKER_FLAGS "${BUILD_LDFLAGS}") + SET (CMAKE_SHARED_LINKER_FLAGS "${BUILD_LDFLAGS}") +_EOF_ + + CMAKE_USE_DIR="${WORKDIR}/monero-${PV}" + BUILD_DIR="${WORKDIR}/monero-${PV}_build" + mycmakeargs=( ${cmakeargs_monero[@]} ) + cmake_src_configure + + if use qt5 ; then + mkdir -p "${WORKDIR}/monero-gui-${PV}_build/monero" || die + cp "${WORKDIR}/monero-${PV}_build/translations.cmake" "${WORKDIR}/monero-gui-${PV}_build/monero/translations.cmake" || die + + CMAKE_USE_DIR="${WORKDIR}/monero-gui-${PV}" + BUILD_DIR="${WORKDIR}/monero-gui-${PV}_build" + mycmakeargs=( ${cmakeargs_monerogui[@]} ) + cmake_src_configure + fi +} + +src_compile() { + CMAKE_USE_DIR="${WORKDIR}/monero-${PV}" + BUILD_DIR="${WORKDIR}/monero-${PV}_build" + cmake_src_compile + + if use qt5 ; then + CMAKE_USE_DIR="${WORKDIR}/monero-gui-${PV}" + BUILD_DIR="${WORKDIR}/monero-gui-${PV}_build" + cmake_src_compile + fi +} + +src_install() { + CMAKE_USE_DIR="${WORKDIR}/monero-${PV}" + BUILD_DIR="${WORKDIR}/monero-${PV}_build" + cmake_src_install + + if use qt5 ; then + CMAKE_USE_DIR="${WORKDIR}/monero-gui-${PV}" + BUILD_DIR="${WORKDIR}/monero-gui-${PV}_build" + cmake_src_install + fi + + rm -rf "${ED}/usr/include" || die + rm -rf "${ED}/usr/lib" || die + + insinto /etc + doins utils/conf/monerod.conf + + newinitd "${FILESDIR}/monerod.initd" monerod + systemd_dounit utils/systemd/monerod.service +} -- cgit v1.2.3