From: Guillaume LE VAILLANT <glv@posteo.net>
To: swedebugia <swedebugia@riseup.net>
Cc: 36258@debbugs.gnu.org
Subject: [bug#36258] [PATCH 1/2] gnu: monero: Update to 0.14.1.0.
Date: Tue, 25 Jun 2019 12:07:02 +0200 [thread overview]
Message-ID: <87mui63rnd.fsf@yamatai> (raw)
In-Reply-To: <87y31rtijx.fsf@yamatai>
[-- Attachment #1: Type: text/plain, Size: 1577 bytes --]
Guillaume LE VAILLANT a écrit :
> swedebugia a écrit :
>
>> Tests completed succesfully. I saw this note:
>>
>> + ;; TODO: Find why portability_wallet test fails
>> + ;; Maybe the Boost version used to create the test
>> + ;; wallet and the current Boost version are not
>> + ;; completely compatible?
>> + "Serialization.portability_wallet"
>> + "is_hdd.linux_os_root")
>>
>> Did you report this upstream?
>> Could you include the failed test also (commented below the comment)
>>
>> Otherwise LGTM :)
>>
>> PS: I started working on Aeon (fork of monero) since they are very similar it
>> should be "easy" to package now that you got monero working again.
>
> I'm not entirely sure why the "Serialization.portability_wallet" test
> fails. It might not be related to compatibility between Boost versions,
> because compiling with the same Boost version in two different ways
> gives different results.
>
> When I compile using 'guix build monero', the test fails.
> ---
> /tmp/guix-build-monero-0.14.1.0.drv-0/monero-0.14.1.0-checkout/tests/unit_tests/serialization.cpp:633: Failure
> Value of: r
> Actual: false
> Expected: true
> ---
>
> When I compile by hand using 'guix environment --pure monero', the test
> passes.
I found out why the "Serialization.portability_wallet" failed; it was
because of missing write permissions on some test files.
Updated patch with the test enabled attached.
[-- Attachment #2: 0001-gnu-monero-Update-to-0.14.1.0.patch --]
[-- Type: text/x-diff, Size: 12742 bytes --]
From a41ff296f296e43834af07c20e60319b302b70f7 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Sat, 15 Jun 2019 10:12:36 +0200
Subject: [PATCH 1/2] gnu: monero: Update to 0.14.1.0.
* gnu/packages/finance.scm (monero): Update to 0.14.1.0.
* gnu/packages/patches/monero-use-system-miniupnpc.patch: Update file.
---
gnu/packages/finance.scm | 90 ++++++++++--------
.../patches/monero-use-system-miniupnpc.patch | 95 +++----------------
2 files changed, 62 insertions(+), 123 deletions(-)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 5b95bcb704..7cdb41b372 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -39,6 +40,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
@@ -68,6 +70,7 @@
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages gnuzilla))
@@ -428,49 +431,59 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
(define-public monero
;; This package bundles easylogging++ and lmdb.
- ;; The bundled easylogging++ is modified, and the changes will not be upstreamed.
+ ;; The bundled easylogging++ is modified, and the changes will not be
+ ;; upstreamed.
;; The devs deem the lmdb driver too critical a consenus component, to use
;; the system's dynamically linked library.
(package
(name "monero")
- (version "0.12.3.0")
+ (version "0.14.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/monero-project/monero")
- (commit (string-append "v" version))))
+ (url "https://github.com/monero-project/monero.git")
+ (commit (string-append "v" version))
+ (recursive? #t)))
(file-name (git-file-name name version))
(patches (search-patches "monero-use-system-miniupnpc.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete bundled dependencies.
+ (for-each
+ delete-file-recursively
+ '("external/miniupnp" "external/rapidjson"
+ "external/unbound"))
+ #t))
(sha256
(base32
- "14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd"))))
+ "1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
- ("googletest" ,googletest)
+ ("git" ,git)
("graphviz" ,graphviz)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ("qttools" ,qttools)))
(inputs
- `(("bind" ,isc-bind)
- ("boost" ,boost)
- ("zeromq" ,zeromq)
+ `(("boost" ,boost)
("cppzmq" ,cppzmq)
("expat" ,expat)
- ("libsodium" ,libsodium)
+ ("hidapi" ,hidapi)
("libunwind" ,libunwind)
- ("lmdb" ,lmdb)
- ("miniupnpc" ,monero-miniupnpc)
+ ("libsodium" ,libsodium)
+ ("miniupnpc" ,miniupnpc)
("openssl" ,openssl)
("rapidjson" ,rapidjson)
- ("unbound" ,unbound)))
+ ("readline" ,readline)
+ ("unbound" ,unbound)
+ ("xz" ,xz)
+ ("zeromq" ,zeromq)))
(arguments
`(#:out-of-source? #t
- #:build-type "release"
- #:configure-flags '("-DBUILD_TESTS=ON"
- ,@(if (string=? "aarch64-linux" (%current-system))
- '("-DARCH=armv8-a")
- '())
+ #:configure-flags '("-DARCH=default"
+ "-DBUILD_TESTS=ON"
"-DBUILD_GUI_DEPS=ON")
#:phases
(modify-phases %standard-phases
@@ -479,24 +492,24 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
(lambda _
(setenv "HOME" (getcwd))
#t))
- (add-after 'set-home 'fix-wallet-path-for-unit-tests
- (lambda _
- (substitute* "tests/unit_tests/serialization.cpp"
- (("\\.\\./\\.\\./\\.\\./\\.\\./") "../../"))
- #t))
- (add-after 'fix-wallet-path-for-unit-tests 'change-log-path
+ (add-after 'set-home 'change-log-path
(lambda _
(substitute* "contrib/epee/src/mlog.cpp"
(("epee::string_tools::get_current_module_folder\\(\\)")
- "\".bitmonero\""))
- (substitute* "contrib/epee/src/mlog.cpp"
- (("return \\(") "return ((std::string(getenv(\"HOME\"))) / "))
+ "\".bitmonero\"")
+ (("return \\(")
+ "return ((std::string(getenv(\"HOME\"))) / "))
#t))
+ (add-after 'change-log-path 'fix-file-permissions-for-tests
+ (lambda _
+ (for-each (lambda (f)
+ (chmod f #o644))
+ (find-files "tests/data/" "wallet_9svHk1.*"))
+ #t))
+ ;; Only try tests that don't need access to network or system
(replace 'check
(lambda _
- (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
- "test")))
- ;; The excluded unit tests need network access
+ (invoke "make" "ARGS=-R 'hash|core_tests'" "test")))
(add-after 'check 'unit-tests
(lambda _
(let ((excluded-unit-tests
@@ -506,22 +519,17 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
"DNSResolver.IPv4Success"
"DNSResolver.DNSSECSuccess"
"DNSResolver.DNSSECFailure"
- "DNSResolver.GetTXTRecord")
+ "DNSResolver.GetTXTRecord"
+ "is_hdd.linux_os_root")
":")))
(invoke "tests/unit_tests/unit_tests"
(string-append "--gtest_filter=-"
- excluded-unit-tests)))))
- (add-after 'install 'install-blockchain-import-export
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
- (install-file "bin/monero-blockchain-import" bin)
- (install-file "bin/monero-blockchain-export" bin)))))))
+ excluded-unit-tests))))))))
(home-page "https://getmonero.org/")
(synopsis "Command-line interface to the Monero currency")
(description
- "Monero is a secure, private, untraceable currency. This package provides the
-Monero command line client and daemon.")
+ "Monero is a secure, private, untraceable currency. This package provides
+the Monero command line client and daemon.")
(license license:bsd-3)))
(define-public monero-gui
diff --git a/gnu/packages/patches/monero-use-system-miniupnpc.patch b/gnu/packages/patches/monero-use-system-miniupnpc.patch
index 6bc825d121..c5d376d793 100644
--- a/gnu/packages/patches/monero-use-system-miniupnpc.patch
+++ b/gnu/packages/patches/monero-use-system-miniupnpc.patch
@@ -1,111 +1,42 @@
-This reverts commit 1e20d705e7c64d2b17c031f345057d1e8850fafa, so that it's possible to use our own
-miniupnpc, instead of a git submodule.
----
- CMakeLists.txt | 8 ++++++++
- external/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++----------
- src/p2p/net_node.inl | 13 ++++++++++---
- 3 files changed, 49 insertions(+), 13 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3b93988e..ef948885 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -430,6 +430,14 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
-
- add_subdirectory(external)
-
-+# Final setup for miniupnpc
-+if(UPNP_STATIC OR IOS)
-+ add_definitions("-DUPNP_STATIC")
-+else()
-+ add_definitions("-DUPNP_DYNAMIC")
-+ include_directories(${UPNP_INCLUDE})
-+endif()
-+
- # Final setup for libunbound
- include_directories(${UNBOUND_INCLUDE})
- link_directories(${UNBOUND_LIBRARY_DIRS})
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
-index 1fc4d64c..b4f712ee 100644
+index 7553f87e..8e865c6c 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
-@@ -34,21 +34,42 @@
- # We always compile if we are building statically to reduce static dependency issues...
- # ...except for FreeBSD, because FreeBSD is a special case that doesn't play well with
- # others.
-+if(NOT IOS)
-+ find_package(Miniupnpc QUIET)
-+endif()
+@@ -37,19 +37,7 @@
--find_package(Miniupnpc REQUIRED)
-+# If we have the correct shared version and we're not building static, use it
-+if(STATIC OR IOS)
-+ set(USE_SHARED_MINIUPNPC false)
-+elseif(MINIUPNP_FOUND AND MINIUPNPC_VERSION_1_7_OR_HIGHER)
-+ set(USE_SHARED_MINIUPNPC true)
-+endif()
+ find_package(Miniupnpc REQUIRED)
-message(STATUS "Using in-tree miniupnpc")
-+if(USE_SHARED_MINIUPNPC)
-+ message(STATUS "Using shared miniupnpc found at ${MINIUPNP_INCLUDE_DIR}")
-
-add_subdirectory(miniupnp/miniupnpc)
-+ set(UPNP_STATIC false PARENT_SCOPE)
-+ set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
-+ set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
-+else()
-+ if(STATIC)
-+ message(STATUS "Using miniupnpc from local source tree for static build")
-+ else()
-+ message(STATUS "Using miniupnpc from local source tree (/external/miniupnp/miniupnpc)")
-+ endif()
-
-set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
-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()
-+ add_subdirectory(miniupnp/miniupnpc)
-+
-+ set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
-+ 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 true PARENT_SCOPE)
-+ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
-+endif()
++set(UPNP_LIBRARIES "miniupnpc" PARENT_SCOPE)
find_package(Unbound)
diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
-index 9b21705e..76340a22 100644
+index 74924e4f..3554dd0d 100644
--- a/src/p2p/net_node.inl
+++ b/src/p2p/net_node.inl
-@@ -49,9 +49,16 @@
+@@ -49,9 +49,9 @@
#include "storages/levin_abstract_invoke2.h"
#include "cryptonote_core/cryptonote_core.h"
-#include <miniupnp/miniupnpc/miniupnpc.h>
-#include <miniupnp/miniupnpc/upnpcommands.h>
-#include <miniupnp/miniupnpc/upnperrors.h>
-+// We have to look for miniupnpc headers in different places, dependent on if its compiled or external
-+#ifdef UPNP_STATIC
-+ #include <miniupnp/miniupnpc/miniupnpc.h>
-+ #include <miniupnp/miniupnpc/upnpcommands.h>
-+ #include <miniupnp/miniupnpc/upnperrors.h>
-+#else
-+ #include "miniupnpc.h"
-+ #include "upnpcommands.h"
-+ #include "upnperrors.h"
-+#endif
++#include <miniupnpc/miniupnpc.h>
++#include <miniupnpc/upnpcommands.h>
++#include <miniupnpc/upnperrors.h>
#undef MONERO_DEFAULT_LOG_CATEGORY
#define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
---
-2.16.2
-
--
2.22.0
next prev parent reply other threads:[~2019-06-25 10:08 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-17 8:44 [bug#36258] [PATCH 1/2] gnu: monero: Update to 0.14.1.0 Guillaume LE VAILLANT
2019-06-17 8:44 ` [bug#36259] [PATCH 2/2] gnu: monero-gui: " Guillaume LE VAILLANT
2019-06-26 12:08 ` Guillaume LE VAILLANT
2019-06-26 22:55 ` swedebugia
2019-07-03 10:07 ` bug#36259: " Ludovic Courtès
2019-06-22 20:38 ` [bug#36258] [PATCH 1/2] gnu: monero: " swedebugia
2019-06-22 22:17 ` Guillaume LE VAILLANT
2019-06-23 11:31 ` swedebugia
2019-06-23 12:53 ` Guillaume LE VAILLANT
2019-06-23 13:18 ` swedebugia
2019-06-24 6:20 ` swedebugia
2019-06-24 9:54 ` Guillaume LE VAILLANT
2019-06-25 10:07 ` Guillaume LE VAILLANT [this message]
2019-06-25 11:32 ` swedebugia
2019-07-03 10:06 ` bug#36258: " Ludovic Courtès
2019-07-14 11:11 ` [bug#36258] " swedebugia
2019-07-14 11:51 ` Guillaume Le Vaillant
2019-07-14 13:32 ` Ludovic Courtès
2019-07-14 14:55 ` swedebugia
2019-07-14 16:13 ` Guillaume Le Vaillant
2019-07-15 10:50 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87mui63rnd.fsf@yamatai \
--to=glv@posteo.net \
--cc=36258@debbugs.gnu.org \
--cc=swedebugia@riseup.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.