summaryrefslogtreecommitdiff
path: root/net-p2p/monero/monero-0.18.3.4.ebuild
diff options
context:
space:
mode:
authorBertrand Jacquin <bertrand@jacquin.bzh>2024-08-25 15:35:13 +0100
committerBertrand Jacquin <bertrand@jacquin.bzh>2024-08-25 15:35:13 +0100
commitbaae82bd0c006675350f4a08482258d41e7ea803 (patch)
treed3509bdf07cb984015f841eb61f6979fa916a24d /net-p2p/monero/monero-0.18.3.4.ebuild
parentsys-kernel/stable-sources: add 6.10.6, drop 6.10.3 (diff)
downloadportage-baae82bd0c006675350f4a08482258d41e7ea803.tar.xz
net-p2p/monero: add 0.18.3.4, drop 0.18.3.3
Diffstat (limited to 'net-p2p/monero/monero-0.18.3.4.ebuild')
-rw-r--r--net-p2p/monero/monero-0.18.3.4.ebuild224
1 files changed, 224 insertions, 0 deletions
diff --git a/net-p2p/monero/monero-0.18.3.4.ebuild b/net-p2p/monero/monero-0.18.3.4.ebuild
new file mode 100644
index 00000000..5cf08045
--- /dev/null
+++ b/net-p2p/monero/monero-0.18.3.4.ebuild
@@ -0,0 +1,224 @@
+# 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}-upnp-drop-in-tree-miniupnpc.patch"
+ "${FILESDIR}/monero-${PV}-upnp-add-support-for-miniupnpc-API-version-18.patch"
+ "${FILESDIR}/monero-${PV}-upnp-fix-warning.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}-build-remove-mcpu-march-mtune.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)"
+ -DUSE_DEVICE_TREZOR="$(usex smartcard 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[@]}"
+ -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
+}