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/Manifest | 2 + .../monero-0.18.3.2-Drop-in-tree-miniupnpc.patch | 60 ++++++ ...nero-0.18.3.2-Use-gentoo-dev-libs-randomx.patch | 18 ++ .../monero-0.18.3.2-Use-gentoo-versioning.patch | 37 ++++ .../files/monero-0.18.3.2-include-deque.patch | 32 +++ .../monero/files/monero-0.18.3.2-include-set.patch | 35 ++++ ...o-0.18.3.2-translations-use-host-compiler.patch | 43 ++++ ...-gui-0.18.3.2-cmake-use-gentoo-versioning.patch | 33 +++ net-p2p/monero/monero-0.18.3.2.ebuild | 223 +++++++++++++++++++++ 9 files changed, 483 insertions(+) create mode 100644 net-p2p/monero/files/monero-0.18.3.2-Drop-in-tree-miniupnpc.patch create mode 100644 net-p2p/monero/files/monero-0.18.3.2-Use-gentoo-dev-libs-randomx.patch create mode 100644 net-p2p/monero/files/monero-0.18.3.2-Use-gentoo-versioning.patch create mode 100644 net-p2p/monero/files/monero-0.18.3.2-include-deque.patch create mode 100644 net-p2p/monero/files/monero-0.18.3.2-include-set.patch create mode 100644 net-p2p/monero/files/monero-0.18.3.2-translations-use-host-compiler.patch create mode 100644 net-p2p/monero/files/monero-gui-0.18.3.2-cmake-use-gentoo-versioning.patch create mode 100644 net-p2p/monero/monero-0.18.3.2.ebuild diff --git a/net-p2p/monero/Manifest b/net-p2p/monero/Manifest index 1f39c4cf..d8611d6b 100644 --- a/net-p2p/monero/Manifest +++ b/net-p2p/monero/Manifest @@ -1,5 +1,7 @@ DIST monero-0.18.3.1.tar.gz 14005197 BLAKE2B 169d876caf94090894c9a2bd9d07b71e46411971b06da0f51fc57f01396de4f5f770062e08cbebf702b6b49dbcd47923675d2375795969f5673bf2091a7da742 SHA512 b29d25043d50fa30459e59e0c82627cc3dc4a7e2e28a727a353915a32cf5e70e36f548bda152dee13329cb2d09a978ff45c2121f8bf7acc8966957a53e772f03 +DIST monero-0.18.3.2.tar.gz 14024322 BLAKE2B abba3ef7896101d8730963dad588b0314decbcbd949bae63a796f828ade2e94c62620d5920fe7d08f2afe3ae06bf52e9f570749ac380322d46a58a146fa1380a SHA512 90acaf32e4dce753dc01e391cfe626611a31c3b024547f512d43a8e490814c5234f4ded57c7dd4c735cd8f60e545364618f0b8e6bfd5271660dcc89eb735d74c DIST monero-gui-0.18.3.1.tar.gz 6638764 BLAKE2B 9be4fdda06fdf5447ce56e112b43483a4121380ec0d1b0da7b690961fe393b6c7170db31e39b38a9ae04e5ea3bdf93c10e29de94090251e38b3151d96f84a05d SHA512 4b572b35660e33c06905720b1477ccd8137a2b131a528b306954f8eaaf089783333367829732e963bbcf9c36daa1fb42b5c7b2c289ea203fefdf9a9f5cd5e641 +DIST monero-gui-0.18.3.2.tar.gz 6705575 BLAKE2B 92c201e267ef9841ad96d977b1b385f80c8761e7db7ffdd00ea72123225bf0122d86eebb0f31f1119e95c51a082924e0a64c505995b74d9e04cf891112473372 SHA512 951499c8b15f298a7643454c179884a7b1b39cf24151e0e0b93e5679ce5e1b8f1fec82341b656cca14f476d53cff3d3b03e8be295cafe0ebc449da80df2003f5 DIST quirc-516d91a94d880ca1006fc1d57f318bdff8411f0d.tar.gz 42163 BLAKE2B 36f07063c376c51397958321e317c9f3a8718f192a16ade546add1b652a7252abeecebcb7c850b50b85c3b59b941456c4225a80aa301cdab5eb42c04e4725698 SHA512 30eb2905e03fd070ec160ad78bfba2ed973fe24fe63ab810bdb7bcec9e52da5ef042efbb50cce19fcfae13ffa531bcfb20421325e4a868856690d696f8e89eee DIST supercop-633500ad8c8759995049ccd022107d1fa8a1bbc9.tar.gz 346604 BLAKE2B 10e48076acb2e5de5acb2efee61b2fac40fdfec3bc4037a94199d56ee2446466126e1b9dade56ee69598f4bd3c64b45d86d0810f24f461f6e09fb84c87e1ef93 SHA512 06cca8d1def31aa11bf5aa42d861c4a027786f7cc494fa3ab53a2bc4bd9d1f55b2389020ba5fd1816ed277b6e4320ad8edbb3117dcf4981fc7fba655c4bbe648 DIST trezor-common-028c9b2e95d83b4164748a12cfdc181f0dd11920.tar.gz 926880 BLAKE2B e2937f9e17fdf33e047084eec73bd4b75bb5e2a1ccb3ce03c9d731ddf2b93200f895de565c16913a0bb022e3662faa38777828912dc257124ea4196b23cc501c SHA512 d0fdc74dbcde444c852bf000123bc795d86a07993b79b18cc5cfb1535348059f3b7b5a4865892321c7ddc8a98be8f04e6cfbe224e7daae3aa292f40642afa609 diff --git a/net-p2p/monero/files/monero-0.18.3.2-Drop-in-tree-miniupnpc.patch b/net-p2p/monero/files/monero-0.18.3.2-Drop-in-tree-miniupnpc.patch new file mode 100644 index 00000000..4959cf9c --- /dev/null +++ b/net-p2p/monero/files/monero-0.18.3.2-Drop-in-tree-miniupnpc.patch @@ -0,0 +1,60 @@ +From dc3a18789e8c8ef6252bd94546bf8cd6184a56eb Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin +Date: Sun, 17 Jun 2018 22:34:11 +0100 +Subject: [PATCH] Drop in-tree miniupnpc + +Since 6b8539803184 ("Build: update CMake and p2p for in-tree +miniupnp"), a hard dependency is made on miniupnpc which is a git +submodule not part of the archive available upstream. +--- + external/CMakeLists.txt | 19 +++---------------- + src/p2p/net_node.inl | 6 +++--- + 2 files changed, 6 insertions(+), 19 deletions(-) + +diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt +index 5b7f69a56843..fc40455064f4 100644 +--- a/external/CMakeLists.txt ++++ b/external/CMakeLists.txt +@@ -36,22 +36,9 @@ + # others. + + find_package(Miniupnpc REQUIRED) +- +-message(STATUS "Using in-tree miniupnpc") +-set(UPNPC_NO_INSTALL TRUE CACHE BOOL "Disable miniupnp installation" FORCE) +-add_subdirectory(miniupnp/miniupnpc) +-set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external") +-set_property(TARGET libminiupnpc-static PROPERTY POSITION_INDEPENDENT_CODE ON) +-if(MSVC) +- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267") +-elseif(NOT MSVC) +- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value") +-endif() +-if(CMAKE_SYSTEM_NAME MATCHES "NetBSD") +- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE") +-endif() +- +-set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE) ++set(UPNP_STATIC false PARENT_SCOPE) ++set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE) ++set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE) + + find_package(Unbound) + +diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl +index f33ce977de07..3d0c05a19da2 100644 +--- a/src/p2p/net_node.inl ++++ b/src/p2p/net_node.inl +@@ -60,9 +60,9 @@ + #include "cryptonote_core/cryptonote_core.h" + #include "net/parse.h" + +-#include +-#include +-#include ++#include ++#include ++#include + + #undef MONERO_DEFAULT_LOG_CATEGORY + #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p" diff --git a/net-p2p/monero/files/monero-0.18.3.2-Use-gentoo-dev-libs-randomx.patch b/net-p2p/monero/files/monero-0.18.3.2-Use-gentoo-dev-libs-randomx.patch new file mode 100644 index 00000000..178e83ff --- /dev/null +++ b/net-p2p/monero/files/monero-0.18.3.2-Use-gentoo-dev-libs-randomx.patch @@ -0,0 +1,18 @@ +From a007bfe93c3e71a166206abd30a91dc3637983c8 Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin +Date: Wed, 6 Nov 2019 01:23:52 +0000 +Subject: [PATCH] Use gentoo dev-libs/randomx + +--- + external/CMakeLists.txt | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt +index fc40455064f4..5536debe8e2b 100644 +--- a/external/CMakeLists.txt ++++ b/external/CMakeLists.txt +@@ -56,4 +56,3 @@ endif() + add_subdirectory(db_drivers) + add_subdirectory(easylogging++) + add_subdirectory(qrcodegen) +-add_subdirectory(randomx EXCLUDE_FROM_ALL) diff --git a/net-p2p/monero/files/monero-0.18.3.2-Use-gentoo-versioning.patch b/net-p2p/monero/files/monero-0.18.3.2-Use-gentoo-versioning.patch new file mode 100644 index 00000000..c2c563e1 --- /dev/null +++ b/net-p2p/monero/files/monero-0.18.3.2-Use-gentoo-versioning.patch @@ -0,0 +1,37 @@ +From 9e2da6c420843a4928b0fb42a41bafcfb4b95ee3 Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin +Date: Sat, 15 Jun 2019 00:15:54 +0100 +Subject: [PATCH] Use gentoo versioning + +--- + cmake/Version.cmake | 18 +++--------------- + 1 file changed, 3 insertions(+), 15 deletions(-) + +diff --git a/cmake/Version.cmake b/cmake/Version.cmake +index e9ed9fba159b..5df4bc1ab7f3 100644 +--- a/cmake/Version.cmake ++++ b/cmake/Version.cmake +@@ -31,20 +31,8 @@ function (write_version tag) + configure_file("${CMAKE_CURRENT_LIST_DIR}/../src/version.cpp.in" "${CMAKE_BINARY_DIR}/version.cpp") + endfunction () + +-find_package(Git QUIET) +-if ("$Format:$" STREQUAL "") +- # We're in a tarball; use hard-coded variables. +- set(VERSION_IS_RELEASE "true") +- write_version("release") +-elseif (GIT_FOUND OR Git_FOUND) +- message(STATUS "Found Git: ${GIT_EXECUTABLE}") +- include(GitVersion) +- get_version_tag_from_git("${GIT_EXECUTABLE}") +- write_version("${VERSIONTAG}") +-else() +- message(STATUS "WARNING: Git was not found!") +- set(VERSION_IS_RELEASE "false") +- write_version("unknown") +-endif () ++set(VERSION_IS_RELEASE "true") ++write_version("release") ++ + add_custom_target(genversion ALL + DEPENDS "${CMAKE_BINARY_DIR}/version.cpp") diff --git a/net-p2p/monero/files/monero-0.18.3.2-include-deque.patch b/net-p2p/monero/files/monero-0.18.3.2-include-deque.patch new file mode 100644 index 00000000..0d7b658c --- /dev/null +++ b/net-p2p/monero/files/monero-0.18.3.2-include-deque.patch @@ -0,0 +1,32 @@ +From d6e49361201970b68f4335e200995c5ab4050555 Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin +Date: Sat, 21 Jan 2023 03:27:57 +0000 +Subject: [PATCH] include deque + +boost 1.81.0 requires deque to be included directly: + + cd /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2_build/src/common && /usr/sbin/x86_64-pc-linux-gnu-g++ -DAUTO_INITIALIZE_EASYLOGGINGPP -DBLOCKCHAIN_DB=DB_LMDB -DBOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION -DBUILD_TAG=amd64 -DDEFAULT_DB_TYPE=\"lmdb\" -DHAVE_EXPLICIT_BZERO -DHAVE_READLINE -DHAVE_STRPTIME -DPER_BLOCK_CHECKPOINT -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external/rapidjson/include -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external/easylogging++ -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/contrib/epee/include -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external/supercop/include -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2_build/generated_include -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2_build/translations -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external/db_drivers/liblmdb -march=native -O2 -pipe -fomit-frame-pointer -DUSE_EXTRA_EC_CERT -pthread -maes -march=native -fno-strict-aliasing -D_GNU_SOURCE -Wall -Wextra -Wpointer-arith -Wundef -Wvla -Wwrite-strings -Wno-error=extra -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-error=unused-variable -Wno-error=undef -Wno-error=uninitialized -Wlogical-op -Wno-error=maybe-uninitialized -Wno-error=cpp -Wno-reorder -Wno-missing-field-initializers -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -Wformat -Wformat-security -fstack-protector -fstack-protector-strong -fcf-protection=full -fstack-clash-protection -Werror=switch -Werror=return-type -fno-strict-aliasing -ftemplate-depth=900 -DNDEBUG -Ofast -std=c++14 -MD -MT src/common/CMakeFiles/obj_common.dir/dns_utils.cpp.o -MF CMakeFiles/obj_common.dir/dns_utils.cpp.o.d -o CMakeFiles/obj_common.dir/dns_utils.cpp.o -c /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src/common/dns_utils.cpp + In file included from /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src/common/dns_utils.cpp:35: + /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src/common/threadpool.h:96:10: error: 'deque' in namespace 'std' does not name a template type + 96 | std::deque queue; + | ^~~~~ + /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src/common/threadpool.h:33:1: note: 'std::deque' is defined in header ''; did you forget to '#include '? + 32 | #include + +++ |+#include + 33 | #include +--- + src/common/threadpool.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/common/threadpool.h b/src/common/threadpool.h +index 53421e18b30d..ec9d3e54fbe4 100644 +--- a/src/common/threadpool.h ++++ b/src/common/threadpool.h +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/net-p2p/monero/files/monero-0.18.3.2-include-set.patch b/net-p2p/monero/files/monero-0.18.3.2-include-set.patch new file mode 100644 index 00000000..52d2b094 --- /dev/null +++ b/net-p2p/monero/files/monero-0.18.3.2-include-set.patch @@ -0,0 +1,35 @@ +From d918271cd10cca0b8ab3ae7190753e708c64f31d Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin +Date: Sat, 21 Jan 2023 03:27:57 +0000 +Subject: [PATCH] include set +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +boost 1.81.0 requires set to be included directly: + + cd /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2_build/src/common && /usr/sbin/x86_64-pc-linux-gnu-g++ -DAUTO_INITIALIZE_EASYLOGGINGPP -DBLOCKCHAIN_DB=DB_LMDB -DBOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION -DBUILD_TAG=amd64 -DDEFAULT_DB_TYPE=\"lmdb\" -DDEVICE_TREZOR_READY=1 -DHAVE_EXPLICIT_BZERO -DHAVE_HIDAPI -DHAVE_READLINE -DHAVE_STRPTIME -DHAVE_TREZOR_LIBUSB=1 -DPER_BLOCK_CHECKPOINT -DPROTOBUF_INLINE_NOT_IN_HEADERS=0 -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external/rapidjson/include -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external/easylogging++ -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/contrib/epee/include -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external/supercop/include -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2_build/generated_include -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2_build/translations -I/var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/external/db_drivers/liblmdb -I/usr/include/hidapi -I/usr/include/libusb-1.0 -march=native -O2 -pipe -fomit-frame-pointer -DUSE_EXTRA_EC_CERT -pthread -maes -march=native -fno-strict-aliasing -D_GNU_SOURCE -Wall -Wextra -Wpointer-arith -Wundef -Wvla -Wwrite-strings -Wno-error=extra -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-error=unused-variable -Wno-error=undef -Wno-error=uninitialized -Wlogical-op -Wno-error=maybe-uninitialized -Wno-error=cpp -Wno-reorder -Wno-missing-field-initializers -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -Wformat -Wformat-security -fstack-protector -fstack-protector-strong -fcf-protection=full -fstack-clash-protection -Werror=switch -Werror=return-type -fno-strict-aliasing -ftemplate-depth=900 -DNDEBUG -Ofast -std=c++14 -MD -MT src/common/CMakeFiles/obj_common.dir/dns_utils.cpp.o -MF CMakeFiles/obj_common.dir/dns_utils.cpp.o.d -o CMakeFiles/obj_common.dir/dns_utils.cpp.o -c /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src/common/dns_utils.cpp + /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src/common/dns_utils.cpp: In function ‘bool tools::dns_utils::load_txt_records_from_dns(std::vector >&, const std::vector >&)’: + /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src/common/dns_utils.cpp:517:20: error: ‘set’ is not a member of ‘std’ + 517 | std::vector > records; + | ^~~ + /var/tmp/portage/net-p2p/monero-0.18.1.2/work/monero-0.18.1.2/src/common/dns_utils.cpp:39:1: note: ‘std::set’ is defined in header ‘’; did you forget to ‘#include ’? + 38 | #include + +++ |+#include + 39 | #include +--- + src/common/dns_utils.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/common/dns_utils.cpp b/src/common/dns_utils.cpp +index 7bb1781d4772..395081d52de2 100644 +--- a/src/common/dns_utils.cpp ++++ b/src/common/dns_utils.cpp +@@ -36,6 +36,7 @@ + #include "crypto/crypto.h" + #include + #include ++#include + #include + #include + using namespace epee; diff --git a/net-p2p/monero/files/monero-0.18.3.2-translations-use-host-compiler.patch b/net-p2p/monero/files/monero-0.18.3.2-translations-use-host-compiler.patch new file mode 100644 index 00000000..e51bef2f --- /dev/null +++ b/net-p2p/monero/files/monero-0.18.3.2-translations-use-host-compiler.patch @@ -0,0 +1,43 @@ +From c927623016a946cddf6ba4e255cc9208929fa117 Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin +Date: Sat, 30 Nov 2019 02:09:14 +0000 +Subject: [PATCH] translations: use host compiler + +Do not pass target compiler and compiler flags as +generate_translations_header need to be created using host compiler and +compiler flags +--- + CMakeLists.txt | 4 +++- + translations/CMakeLists.txt | 4 ++++ + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b05c087cf898..ef980115c9e1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -671,7 +671,9 @@ ExternalProject_Add(generate_translations_header + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/translations" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/translations" + STAMP_DIR ${LRELEASE_PATH} +- CMAKE_ARGS -DLRELEASE_PATH=${LRELEASE_PATH} ++ CMAKE_ARGS ++ -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_BINARY_DIR}/translations.cmake ++ -DLRELEASE_PATH=${LRELEASE_PATH} + INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "") + include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations") + add_subdirectory(external) +diff --git a/translations/CMakeLists.txt b/translations/CMakeLists.txt +index 3b43360f84c8..35fcae544a42 100644 +--- a/translations/CMakeLists.txt ++++ b/translations/CMakeLists.txt +@@ -30,6 +30,10 @@ cmake_minimum_required(VERSION 3.5) + + project(translations) + ++# Ensure LDFLAGS for target are not propagated here since target are ++# meant for host ++UNSET(ENV{LDFLAGS}) ++ + # when crosscompiling import the executable targets from a file + IF(CMAKE_CROSSCOMPILING) + message(WARNING "CrossCompiling") diff --git a/net-p2p/monero/files/monero-gui-0.18.3.2-cmake-use-gentoo-versioning.patch b/net-p2p/monero/files/monero-gui-0.18.3.2-cmake-use-gentoo-versioning.patch new file mode 100644 index 00000000..1d05fdb6 --- /dev/null +++ b/net-p2p/monero/files/monero-gui-0.18.3.2-cmake-use-gentoo-versioning.patch @@ -0,0 +1,33 @@ +From 3a0d595e530779c37431743b73566a7f6b2543e9 Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin +Date: Sun, 18 Oct 2020 15:43:33 +0100 +Subject: [PATCH] cmake: use gentoo versioning + +--- + cmake/VersionGui.cmake | 14 ++------------ + 1 file changed, 2 insertions(+), 12 deletions(-) + +diff --git a/cmake/VersionGui.cmake b/cmake/VersionGui.cmake +index e225bf2bb3c0..1f8574e8d1e8 100644 +--- a/cmake/VersionGui.cmake ++++ b/cmake/VersionGui.cmake +@@ -31,17 +31,7 @@ function (write_static_version_header tag) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/version.js.in" "${CMAKE_CURRENT_SOURCE_DIR}/version.js") + endfunction () + +-find_package(Git QUIET) +-if ("$Format:$" STREQUAL "") +- # We're in a tarball; use hard-coded variables. +- write_static_version_header("release") +-elseif (GIT_FOUND OR Git_FOUND) +- message(STATUS "Found Git: ${GIT_EXECUTABLE}") +- get_version_tag_from_git("${GIT_EXECUTABLE}") +- write_static_version_header(${VERSIONTAG}) +-else() +- message(STATUS "WARNING: Git was not found!") +- write_static_version_header("unknown") +-endif () ++write_static_version_header("release") ++ + add_custom_target(genversiongui ALL + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/version.js") 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