Update monero to 0.12.0.0.

  • Done
  • quality assurance status badge
Details
4 participants
  • Ludovic Courtès
  • Ricardo Wurmus
  • Ricardo Wurmus
  • Theodoros Foradis
Owner
unassigned
Submitted by
Theodoros Foradis
Severity
normal
T
T
Theodoros Foradis wrote on 19 May 2018 20:50
(address . guix-patches@gnu.org)
87bmdbtr7p.fsf@foradis.org
This patch series updates monero and monero-core to 0.12.0.0 and adds
cppzmq package.

gnu/local.mk | 1 +
gnu/packages/finance.scm | 35 ++++++++++++++++++++++-------------
gnu/packages/networking.scm | 28 ++++++++++++++++++++++++++++
gnu/packages/patches/monero-fix-version.patch | 16 ++++++++++++++++
4 files changed, 67 insertions(+), 13 deletions(-)
create mode 100644 gnu/packages/patches/monero-fix-version.patch
gnu: monero-core: Update to 0.12.0.0.
gnu: monero: Update to 0.12.0.0.
gnu: Add cppzmq.
--
Theodoros Foradis
T
T
Theodoros Foradis wrote on 19 May 2018 20:54
[PATCH 1/3] gnu: Add cppzmq.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180519185437.23665-1-theodoros@foradis.org
* gnu/packages/networking.scm (cppzmq): New variable.
---
gnu/packages/networking.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index eda2984d1..24cd31310 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018 Adam Van Ymeren <adam@vany.ca>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
+;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -312,6 +313,33 @@ more.")
between different versions of ØMQ.")
(license license:mpl2.0)))
+(define-public cppzmq
+ (package
+ (name "cppzmq")
+ (version "4.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/zeromq/" name
+ "/archive/v" version ".tar.gz"))
+ (sha256
+ (base32
+ "0zbk3726pvcl088qzl5z3cc0w0k5hh192l5jddnc0xsqmiq01x9y"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ;; No tests.
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("zeromq" ,zeromq)))
+ (home-page "http://zeromq.org")
+ (synopsis "C++ bindings for ØMQ")
+ (description
+ "Header-only C++ bindings for ØMQ. Contains direct mappings of the
+abstractions provided by the ØMQ C API.")
+ (license license:expat)))
+
(define-public librdkafka
(package
(name "librdkafka")
--
2.16.2
T
T
Theodoros Foradis wrote on 19 May 2018 20:54
[PATCH 2/3] gnu: monero: Update to 0.12.0.0.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180519185437.23665-2-theodoros@foradis.org
* gnu/packages/patches/monero-fix-version.patch: New file.
* gnu/local.mk: Add it.
* gnu/packages/finance.scm: Update to 0.12.0.0.
[source]: Add patch.
[inputs]: Add zeromq, cppzmq, libsodium.
[arguments]: Change build-type to "release".
Add argument on unit-tests phase.
Substitute system* with invoke.
---
gnu/local.mk | 1 +
gnu/packages/finance.scm | 29 ++++++++++++++++++---------
gnu/packages/patches/monero-fix-version.patch | 16 +++++++++++++++
3 files changed, 36 insertions(+), 10 deletions(-)
create mode 100644 gnu/packages/patches/monero-fix-version.patch

Toggle diff (135 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index fbdb30989..e9e1fe9f4 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -924,6 +924,7 @@ dist_patch_DATA = \
%D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \
%D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \
+ %D%/packages/patches/monero-fix-version.patch \
%D%/packages/patches/mongodb-support-unknown-linux-distributions.patch \
%D%/packages/patches/mozjs17-aarch64-support.patch \
%D%/packages/patches/mozjs24-aarch64-support.patch \
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index c93f64193..9f18d79ac 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
-;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2017,2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
@@ -36,6 +36,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages dns)
@@ -48,6 +49,7 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
@@ -328,7 +330,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
;; the system's dynamically linked library.
(package
(name "monero")
- (version "0.11.1.0")
+ (version "0.12.0.0")
(source
(origin
(method url-fetch)
@@ -344,9 +346,11 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
'("external/miniupnpc" "external/rapidjson"
"external/unbound"))
#t))
+ ;; Patch should be upstream by next update. TODO: Delete it.
+ (patches (search-patches "monero-fix-version.patch"))
(sha256
(base32
- "16shd834025jyzy68h3gag1sz8vbk875hy4j97hrki8pacz8vd5m"))))
+ "1ywgvkpd9jx9hagh9q84ay8lxq4ymdbxjhdaxg29dqir1a8070sy"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@@ -356,7 +360,10 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(inputs
`(("bind" ,isc-bind)
("boost" ,boost)
+ ("zeromq" ,zeromq)
+ ("cppzmq" ,cppzmq)
("expat" ,expat)
+ ("libsodium" ,libsodium)
("libunwind" ,libunwind)
("lmdb" ,lmdb)
("miniupnpc" ,miniupnpc)
@@ -365,6 +372,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
("unbound" ,unbound)))
(arguments
`(#:out-of-source? #t
+ #:build-type "release"
#:configure-flags '("-DBUILD_TESTS=ON"
,@(if (string=? "aarch64-linux" (%current-system))
'("-DARCH=armv8-a")
@@ -392,9 +400,8 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
#t))
(replace 'check
(lambda _
- (zero?
- (system* "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
- "test"))))
+ (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
+ "test")))
;; The excluded unit tests need network access
(add-after 'check 'unit-tests
(lambda _
@@ -407,10 +414,12 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
"DNSResolver.DNSSECFailure"
"DNSResolver.GetTXTRecord")
":")))
- (zero?
- (system* "tests/unit_tests/unit_tests"
- (string-append "--gtest_filter=-"
- excluded-unit-tests))))))
+ (invoke "tests/unit_tests/unit_tests"
+ (string-append "--gtest_filter=-"
+ excluded-unit-tests)
+ ;; Fix for data dir should be upstream by next update.
+ ;; TODO: Delete next command line argument.
+ (string-append "--data-dir=tests/data")))))
(add-after 'install 'install-blockchain-import-export
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/patches/monero-fix-version.patch b/gnu/packages/patches/monero-fix-version.patch
new file mode 100644
index 000000000..694e0aaf9
--- /dev/null
+++ b/gnu/packages/patches/monero-fix-version.patch
@@ -0,0 +1,16 @@
+Fixes error during configure.
+Will be upstream in monero-0.12.1.0.
+
+diff --git a/cmake/Version.cmake b/cmake/Version.cmake
+index 439c4c5..3677e80 100644
+--- a/cmake/Version.cmake
++++ b/cmake/Version.cmake
+@@ -28,7 +28,7 @@
+
+ function (write_static_version_header hash)
+ set(VERSIONTAG "${hash}")
+- configure_file("src/version.cpp.in" "version.cpp")
++ configure_file("${CMAKE_SOURCE_DIR}/src/version.cpp.in" "${CMAKE_BINARY_DIR}/version.cpp")
+ endfunction ()
+
+ find_package(Git QUIET)
--
2.16.2
T
T
Theodoros Foradis wrote on 19 May 2018 20:54
[PATCH 3/3] gnu: monero-core: Update to 0.12.0.0.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180519185437.23665-3-theodoros@foradis.org
* gnu/packages/finance.scm (monero-core): Update to 0.12.0.0.
[arguments]: Substitute system* with invoke.
---
gnu/packages/finance.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (33 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 9f18d79ac..2980d58b0 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -436,7 +436,7 @@ Monero command line client and daemon.")
(define-public monero-core
(package
(name "monero-core")
- (version "0.11.1.0")
+ (version "0.12.0.0")
(source
(origin
(method url-fetch)
@@ -445,7 +445,7 @@ Monero command line client and daemon.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1q7a9kpcjgp74fbplzs2iszdld6gwbfrydyd9in9izhwp100p1rr"))))
+ "0hrpimmb0chml2cjznalxwv3xajni7md7prx0dqm5rs9vsdbw5dr"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@@ -492,7 +492,7 @@ Monero command line client and daemon.")
#t))
(replace 'build
(lambda _
- (zero? (system* "./build.sh"))))
+ (invoke "./build.sh")))
(add-after 'build 'fix-install-path
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "build/Makefile"
--
2.16.2
R
R
Ricardo Wurmus wrote on 21 May 2018 22:31
Re: [bug#31531] [PATCH 1/3] gnu: Add cppzmq.
(name . Theodoros Foradis)(address . theodoros@foradis.org)(address . 31531@debbugs.gnu.org)
87vabgoimj.fsf@elephly.net
Hi Theodoros,

Toggle quote (2 lines)
> * gnu/packages/networking.scm (cppzmq): New variable.

Thanks for the patch!

Toggle quote (15 lines)
> +(define-public cppzmq
> + (package
> + (name "cppzmq")
> + (version "4.2.2")
> + (source (origin
> + (method url-fetch)
> + (uri (string-append
> + "https://github.com/zeromq/" name
> + "/archive/v" version ".tar.gz"))
> + (sha256
> + (base32
> + "0zbk3726pvcl088qzl5z3cc0w0k5hh192l5jddnc0xsqmiq01x9y"))
> + (file-name (string-append name "-" version
> ".tar.gz"))))

Please use “git-fetch” here and let the file name end on “-checkout”.
These automatically generated tarballs on GitHub are not stable; they
change over time.

Toggle quote (4 lines)
> + (build-system cmake-build-system)
> + (arguments
> + '(#:tests? #f)) ;; No tests.

Please just use a single semicolon for end of line comments. You can
move this expression on the previous line, because it is short.

Toggle quote (10 lines)
> + (native-inputs
> + `(("pkg-config" ,pkg-config)))
> + (inputs
> + `(("zeromq" ,zeromq)))
> + (home-page "http://zeromq.org")
> + (synopsis "C++ bindings for ØMQ")
> + (description
> + "Header-only C++ bindings for ØMQ. Contains direct mappings of the
> +abstractions provided by the ØMQ C API.")

Please use complete sentences.

Could you please send a new patch?

--
Ricardo
R
R
Ricardo Wurmus wrote on 21 May 2018 22:35
Re: [bug#31531] [PATCH 2/3] gnu: monero: Update to 0.12.0.0.
(name . Theodoros Foradis)(address . theodoros@foradis.org)(address . 31531@debbugs.gnu.org)
87tvr0oig5.fsf@elephly.net
Hi Theodoros,

Toggle quote (3 lines)
> * gnu/packages/patches/monero-fix-version.patch: New file.
> * gnu/local.mk: Add it.

I think that this patch is better implemented using “substitute*” in a
build phase.

Toggle quote (7 lines)
> * gnu/packages/finance.scm: Update to 0.12.0.0.
> [source]: Add patch.
> [inputs]: Add zeromq, cppzmq, libsodium.
> [arguments]: Change build-type to "release".
> Add argument on unit-tests phase.
> Substitute system* with invoke.

The last step (using “invoke”) is better done in a separate patch.

Toggle quote (3 lines)
> -;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
> +;;; Copyright © 2017,2018 Theodoros Foradis <theodoros@foradis.org>

Please add a space after the comma.

Toggle quote (11 lines)
> - (zero?
> - (system* "tests/unit_tests/unit_tests"
> - (string-append "--gtest_filter=-"
> - excluded-unit-tests))))))
> + (invoke "tests/unit_tests/unit_tests"
> + (string-append "--gtest_filter=-"
> + excluded-unit-tests)
> + ;; Fix for data dir should be upstream by next update.
> + ;; TODO: Delete next command line argument.
> + (string-append "--data-dir=tests/data")))))

Wha does the TODO comment mean?

Toggle quote (6 lines)
> + function (write_static_version_header hash)
> + set(VERSIONTAG "${hash}")
> +- configure_file("src/version.cpp.in" "version.cpp")
> ++ configure_file("${CMAKE_SOURCE_DIR}/src/version.cpp.in" "${CMAKE_BINARY_DIR}/version.cpp")
> + endfunction ()

I’d prefer this to be a short substitute* snippet instead of a patch file.

--
Ricardo
R
R
Ricardo Wurmus wrote on 21 May 2018 22:36
Re: [bug#31531] [PATCH 3/3] gnu: monero-core: Update to 0.12.0.0.
(name . Theodoros Foradis)(address . theodoros@foradis.org)(address . 31531@debbugs.gnu.org)
87sh6koieg.fsf@elephly.net
Hi Theodoros,

Toggle quote (3 lines)
> * gnu/packages/finance.scm (monero-core): Update to 0.12.0.0.
> [arguments]: Substitute system* with invoke.

It’s better to separate these two changes.
The changes themselves look good though.

Thanks!

--
Ricardo
L
L
Ludovic Courtès wrote on 14 Jun 2018 22:21
Re: [bug#31531] Update monero to 0.12.0.0.
(name . Theodoros Foradis)(address . theodoros@foradis.org)
877en1yv9g.fsf@gnu.org
Hello Theodoros,

Theodoros Foradis <theodoros@foradis.org> skribis:

Toggle quote (3 lines)
> This patch series updates monero and monero-core to 0.12.0.0 and adds
> cppzmq package.

Did you have a chance to look at Ricardo’s comments? It looks like very
little is missing.

Thank you!

Ludo’.
R
R
Ricardo Wurmus wrote on 21 Jun 2018 15:23
control message for bug #31531
(address . control@debbugs.gnu.org)
5d65d770-c17d-4322-85cf-3095d4245cc1@SW-IT-P-CAS4.mdc-berlin.net
tags 31531 moreinfo
T
T
Theodoros Foradis wrote on 4 Jul 2018 18:36
Re: [bug#31531] Update monero to 0.12.0.0.
(name . Ludovic Courtès)(address . ludo@gnu.org)
87a7r7t0ud.fsf@foradis.org
Hello Ludovic,

Ludovic Courtès writes:

Toggle quote (3 lines)
> Did you have a chance to look at Ricardo’s comments? It looks like very
> little is missing.

Sorry for taking so long to reply, I had been busy over the last
weeks. I looked at Ricardo's comments, and I will prepare an updated
patch series. Thanks for your patience.

--
Theodoros Foradis
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:35
Re: [bug#31531] [PATCH 1/3] gnu: Add cppzmq.
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87d0vxy6j1.fsf@foradis.org
Hello Ricardo,

Toggle quote (2 lines)
> Could you please send a new patch?

Sorry for taking so long to send the new patch. In the meantime, monero
was updated to 0.12.3.0 with a major difference, that using the system's
miniupnpc was disabled, and the project's own version of it (due to
security issues upstream) was added as a git submodule.

So, there were 3 options for us. Either build from git and use the git
submodule, disregard the security issue (that the folks at #monero-dev
on freenode advised against) and use our own miniupnpc, or use monero's
miniupnpc.

I opted for the third option, introducing a patch that reverts the git
commit that does not allow to use external miniupnpc, as well as
packaging monero-project's miniupnpc as a non-public package in
finance.scm. Is this the correct way to do this?

Also, I included a commit renaming monero-core to monero-gui, as the
official project was renamed. Is this appropriate? The old url (using
monero-core) still worked as it's an alias for monero-gui now, but I
figured it would be better to rename nonetheless.

Lastly, I changed both packages to use git-fetch, as the github
auto-generated tarballs would change. What do you think?

I reply to this mail with the updated patch series.

--
Theodoros Foradis
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:39
[PATCH v2 1/9] gnu: Add cppzmq.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180708173932.14807-1-theodoros@foradis.org
* gnu/packages/networking.scm (cppzmq): New variable.
---
gnu/packages/networking.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index b72a4734d..342f54c79 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Tonton <tonton@riseup.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -315,6 +316,35 @@ more.")
between different versions of ØMQ.")
(license license:mpl2.0)))
+(define-public cppzmq
+ (let ((revision "0")
+ (commit "d9f0f016c07046742738c65e1eb84722ae32d7d4"))
+ (package
+ (name "cppzmq")
+ (version (string-append "4.2.2-" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/zeromq/cppzmq")
+ (commit commit)))
+ (sha256
+ (base32
+ "1gmqlm00y6xpa5m6d4ajq3ww63n2w7h4sy997wj81vcqmqx45b1f"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ; No tests.
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("zeromq" ,zeromq)))
+ (home-page "http://zeromq.org")
+ (synopsis "C++ bindings for ØMQ")
+ (description
+ "Header-only C++ bindings for ØMQ. The header files contain direct mappings of
+the abstractions provided by the ØMQ C API.")
+ (license license:expat))))
+
(define-public librdkafka
(package
(name "librdkafka")
--
2.16.2
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:39
[PATCH v2 2/9] gnu: Add monero-miniupnpc.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180708173932.14807-2-theodoros@foradis.org
* gnu/packages/finance.scm (monero-miniupnpc): New variable.
---
gnu/packages/finance.scm | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)

Toggle diff (70 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 55afa6217..26f4488ab 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
-;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
@@ -35,6 +35,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
@@ -329,6 +330,46 @@ generation from a seed. Your secret keys are encrypted and are never sent to
other machines/servers. Electrum does not download the Bitcoin blockchain.")
(license license:expat)))
+(define monero-miniupnpc
+ ;; This package is the bundled version of miniupnpc used with monero. Monero-project has
+ ;; been maintaining its own version of the package since release 0.12.2.0. It includes
+ ;; security fixes not included in upstream releases.
+ (let ((revision "0")
+ (commit "6a63f9954959119568fbc4af57d7b491b9428d87"))
+ (package
+ (inherit miniupnpc)
+ (name "monero-miniupnpc")
+ (version (string-append "2.1-monero-0.12.3.0-" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/monero-project/miniupnp/")
+ (commit commit)))
+ (sha256
+ (base32
+ "0s67zcz978iapjlq30yy9dl8qda9xhrl3jdi5f99cnbglh5gy16a"))
+ (file-name (string-append name "-" version "-checkout"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete miniupnp subprojects except for miniupnpc.
+ (for-each
+ delete-file-recursively
+ '("minissdpd" "miniupnpc-async" "miniupnpc-libevent"
+ "miniupnpd" ))
+ #t))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments miniupnpc)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'build 'change-directory
+ (lambda _
+ (chdir "miniupnpc")))
+ (add-after 'change-directory 'chmod-header-file
+ (lambda _
+ (chmod "miniupnpc.h" #o644))))))))))
+
(define-public monero
;; This package bundles easylogging++ and lmdb.
;; The bundled easylogging++ is modified, and the changes will not be upstreamed.
--
2.16.2
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:39
[PATCH v2 5/9] gnu: monero-core: Update to 0.12.2.0.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180708173932.14807-5-theodoros@foradis.org
* gnu/packages/finance.scm (monero-core): Update to 0.12.2.0.
---
gnu/packages/finance.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 3d89490a5..8a80eb136 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -472,7 +472,7 @@ Monero command line client and daemon.")
(define-public monero-core
(package
(name "monero-core")
- (version "0.11.1.0")
+ (version "0.12.2.0")
(source
(origin
(method url-fetch)
@@ -481,7 +481,7 @@ Monero command line client and daemon.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1q7a9kpcjgp74fbplzs2iszdld6gwbfrydyd9in9izhwp100p1rr"))))
+ "0lhq8ki91qmq3mll2hc96g6wm9b1biw1dalqw116b3yn78plvy7w"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
--
2.16.2
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:39
[PATCH v2 6/9] gnu: monero-core: Return #t from phases.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180708173932.14807-6-theodoros@foradis.org
* gnu/packages/engineering.scm (monero)[arguments]: Substitute invoke for system*.
---
gnu/packages/finance.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 8a80eb136..a02d8ee69 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -528,7 +528,7 @@ Monero command line client and daemon.")
#t))
(replace 'build
(lambda _
- (zero? (system* "./build.sh"))))
+ (invoke "./build.sh")))
(add-after 'build 'fix-install-path
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "build/Makefile"
--
2.16.2
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:39
[PATCH v2 4/9] gnu: monero: Return #t from phases.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180708173932.14807-4-theodoros@foradis.org
* gnu/packages/finance.scm (monero)[arguments]: Substitute invoke for system*.
---
gnu/packages/finance.scm | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)

Toggle diff (32 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index eaafd1523..3d89490a5 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -439,9 +439,8 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
#t))
(replace 'check
(lambda _
- (zero?
- (system* "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
- "test"))))
+ (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
+ "test")))
;; The excluded unit tests need network access
(add-after 'check 'unit-tests
(lambda _
@@ -454,10 +453,9 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
"DNSResolver.DNSSECFailure"
"DNSResolver.GetTXTRecord")
":")))
- (zero?
- (system* "tests/unit_tests/unit_tests"
- (string-append "--gtest_filter=-"
- excluded-unit-tests))))))
+ (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"))
--
2.16.2
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:39
[PATCH v2 8/9] gnu: monero-core: Use git-fetch.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180708173932.14807-8-theodoros@foradis.org
* gnu/packages/finance.scm (monero-core)[source]: Use git-fetch for
deterministic hash.
---
gnu/packages/finance.scm | 149 ++++++++++++++++++++++++-----------------------
1 file changed, 76 insertions(+), 73 deletions(-)

Toggle diff (163 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 94e7756e6..85d95c140 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -473,80 +473,83 @@ Monero command line client and daemon.")
(license license:bsd-3))))
(define-public monero-core
- (package
- (name "monero-core")
- (version "0.12.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/monero-project/monero-core/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0lhq8ki91qmq3mll2hc96g6wm9b1biw1dalqw116b3yn78plvy7w"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("doxygen" ,doxygen)
- ("graphviz" ,graphviz)
- ("pkg-config" ,pkg-config)))
- (inputs
- `(("boost" ,boost)
- ("libunwind" ,libunwind)
- ("openssl" ,openssl)
- ("qt" ,qt)
- ("readline" ,readline)
- ("unbound" ,unbound)))
- (propagated-inputs
- `(("monero" ,monero)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'check)
- (add-before 'build 'fix-makefile-vars
- (lambda _
- (substitute* "src/zxcvbn-c/makefile"
- (("\\?=") "="))
- #t))
- (add-after 'fix-makefile-vars 'fix-library-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "monero-wallet-gui.pro"
- (("-L/usr/local/lib") "")
- (("-L/usr/local/opt/openssl/lib")
- (string-append "-L"
- (assoc-ref inputs "openssl")
- "/lib"))
- (("-L/usr/local/opt/boost/lib")
- (string-append "-L"
- (assoc-ref inputs "boost")
- "/lib")))
- #t))
- (add-after 'fix-library-paths 'fix-monerod-path
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/daemon/DaemonManager.cpp"
- (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod")
- (string-append "\""(assoc-ref inputs "monero")
- "/bin/monerod")))
- #t))
- (replace 'build
- (lambda _
- (invoke "./build.sh")))
- (add-after 'build 'fix-install-path
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "build/Makefile"
- (("/opt/monero-wallet-gui")
- (assoc-ref outputs "out")))
- #t))
- (add-before 'install 'change-dir
- (lambda _
- (chdir "build"))))))
- (home-page "https://getmonero.org/")
- (synopsis "Graphical user interface for the Monero currency")
- (description
- "Monero is a secure, private, untraceable currency. This package provides the
+ (let ((revision "0")
+ (commit "d85f3eae7cefad70affb83c56a532feb8e6db151"))
+ (package
+ (name "monero-core")
+ (version (string-append "0.12.2.0-" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/monero-project/monero-core")
+ (commit commit)))
+ (sha256
+ (base32
+ "1cnrkwh7kp64lnzz1xfmkf1mhsgm5gls292gpqai3jr8jydpkahl"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("graphviz" ,graphviz)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("boost" ,boost)
+ ("libunwind" ,libunwind)
+ ("openssl" ,openssl)
+ ("qt" ,qt)
+ ("readline" ,readline)
+ ("unbound" ,unbound)))
+ (propagated-inputs
+ `(("monero" ,monero)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (add-before 'build 'fix-makefile-vars
+ (lambda _
+ (substitute* "src/zxcvbn-c/makefile"
+ (("\\?=") "="))
+ #t))
+ (add-after 'fix-makefile-vars 'fix-library-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "monero-wallet-gui.pro"
+ (("-L/usr/local/lib") "")
+ (("-L/usr/local/opt/openssl/lib")
+ (string-append "-L"
+ (assoc-ref inputs "openssl")
+ "/lib"))
+ (("-L/usr/local/opt/boost/lib")
+ (string-append "-L"
+ (assoc-ref inputs "boost")
+ "/lib")))
+ #t))
+ (add-after 'fix-library-paths 'fix-monerod-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/daemon/DaemonManager.cpp"
+ (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod")
+ (string-append "\""(assoc-ref inputs "monero")
+ "/bin/monerod")))
+ #t))
+ (replace 'build
+ (lambda _
+ (invoke "./build.sh")))
+ (add-after 'build 'fix-install-path
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "build/Makefile"
+ (("/opt/monero-wallet-gui")
+ (assoc-ref outputs "out")))
+ #t))
+ (add-before 'install 'change-dir
+ (lambda _
+ (chdir "build"))))))
+ (home-page "https://getmonero.org/")
+ (synopsis "Graphical user interface for the Monero currency")
+ (description
+ "Monero is a secure, private, untraceable currency. This package provides the
Monero GUI client.")
- (license license:bsd-3)))
+ (license license:bsd-3))))
(define-public python-trezor-agent
(package
--
2.16.2
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:39
[PATCH v2 9/9] gnu: monero-core: Rename package to "monero-gui".
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180708173932.14807-9-theodoros@foradis.org
* gnu/packages/finance.scm (monero-core)
[name]: Rename package to "monero-gui".
[source]: Change url to the actual one.
---
gnu/packages/finance.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (27 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 85d95c140..59e12999a 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -472,17 +472,17 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
Monero command line client and daemon.")
(license license:bsd-3))))
-(define-public monero-core
+(define-public monero-gui
(let ((revision "0")
(commit "d85f3eae7cefad70affb83c56a532feb8e6db151"))
(package
- (name "monero-core")
+ (name "monero-gui")
(version (string-append "0.12.2.0-" revision "."
(string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/monero-project/monero-core")
+ (url "https://github.com/monero-project/monero-gui")
(commit commit)))
(sha256
(base32
--
2.16.2
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:39
[PATCH v2 7/9] gnu: monero: Use git-fetch.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180708173932.14807-7-theodoros@foradis.org
* gnu/packages/finance.scm (monero)[source]: Use git-fetch for
deterministic hash.
---
gnu/packages/finance.scm | 183 ++++++++++++++++++++++++-----------------------
1 file changed, 93 insertions(+), 90 deletions(-)

Toggle diff (197 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index a02d8ee69..94e7756e6 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -377,97 +377,100 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
;; 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")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/monero-project/monero/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (patches (search-patches "monero-use-system-miniupnpc.patch"))
- (sha256
- (base32
- "0wmz7g48cay0irmny5k87x4z834w07bpyvsbs9chygk9ch9kp8sw"))))
- (build-system cmake-build-system)
- (native-inputs
- `(("doxygen" ,doxygen)
- ("googletest" ,googletest)
- ("graphviz" ,graphviz)
- ("pkg-config" ,pkg-config)))
- (inputs
- `(("bind" ,isc-bind)
- ("boost" ,boost)
- ("zeromq" ,zeromq)
- ("cppzmq" ,cppzmq)
- ("expat" ,expat)
- ("libsodium" ,libsodium)
- ("libunwind" ,libunwind)
- ("lmdb" ,lmdb)
- ("miniupnpc" ,monero-miniupnpc)
- ("openssl" ,openssl)
- ("rapidjson" ,rapidjson)
- ("unbound" ,unbound)))
- (arguments
- `(#:out-of-source? #t
- #:build-type "release"
- #:configure-flags '("-DBUILD_TESTS=ON"
- ,@(if (string=? "aarch64-linux" (%current-system))
- '("-DARCH=armv8-a")
- '())
- "-DBUILD_GUI_DEPS=ON")
- #:phases
- (modify-phases %standard-phases
- ;; tests/core_tests need a valid HOME
- (add-before 'configure 'set-home
- (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
- (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\"))) / "))
- #t))
- (replace 'check
- (lambda _
- (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
- "test")))
- ;; The excluded unit tests need network access
- (add-after 'check 'unit-tests
- (lambda _
- (let ((excluded-unit-tests
- (string-join
- '("AddressFromURL.Success"
- "AddressFromURL.Failure"
- "DNSResolver.IPv4Success"
- "DNSResolver.DNSSECSuccess"
- "DNSResolver.DNSSECFailure"
- "DNSResolver.GetTXTRecord")
- ":")))
- (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)))))))
- (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
+ (let ((revision "0")
+ (commit "40530b294e6074dffb0d3de25d0442d3b85467b8"))
+ (package
+ (name "monero")
+ (version (string-append "0.12.3.0-" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/monero-project/monero")
+ (commit commit)))
+ (sha256
+ (base32
+ "01rksnlqy46nnc2zjqs1r0vzfn2n2ag25lar7c7iwhnmivbays61"))
+ (patches (search-patches "monero-use-system-miniupnpc.patch"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("googletest" ,googletest)
+ ("graphviz" ,graphviz)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("bind" ,isc-bind)
+ ("boost" ,boost)
+ ("zeromq" ,zeromq)
+ ("cppzmq" ,cppzmq)
+ ("expat" ,expat)
+ ("libsodium" ,libsodium)
+ ("libunwind" ,libunwind)
+ ("lmdb" ,lmdb)
+ ("miniupnpc" ,monero-miniupnpc)
+ ("openssl" ,openssl)
+ ("rapidjson" ,rapidjson)
+ ("unbound" ,unbound)))
+ (arguments
+ `(#:out-of-source? #t
+ #:build-type "release"
+ #:configure-flags '("-DBUILD_TESTS=ON"
+ ,@(if (string=? "aarch64-linux" (%current-system))
+ '("-DARCH=armv8-a")
+ '())
+ "-DBUILD_GUI_DEPS=ON")
+ #:phases
+ (modify-phases %standard-phases
+ ;; tests/core_tests need a valid HOME
+ (add-before 'configure 'set-home
+ (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
+ (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\"))) / "))
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
+ "test")))
+ ;; The excluded unit tests need network access
+ (add-after 'check 'unit-tests
+ (lambda _
+ (let ((excluded-unit-tests
+ (string-join
+ '("AddressFromURL.Success"
+ "AddressFromURL.Failure"
+ "DNSResolver.IPv4Success"
+ "DNSResolver.DNSSECSuccess"
+ "DNSResolver.DNSSECFailure"
+ "DNSResolver.GetTXTRecord")
+ ":")))
+ (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)))))))
+ (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.")
- (license license:bsd-3)))
+ (license license:bsd-3))))
(define-public monero-core
(package
--
2.16.2
T
T
Theodoros Foradis wrote on 8 Jul 2018 19:39
[PATCH v2 3/9] gnu: monero: Update to 0.12.3.0.
(address . 31531@debbugs.gnu.org)(name . Theodoros Foradis)(address . theodoros@foradis.org)
20180708173932.14807-3-theodoros@foradis.org
* gnu/packages/patches/monero-use-system-miniupnpc.patch: New file.
* gnu/local.mk: Add it.
* gnu/packages/finance.scm (monero): Update to 0.12.3.0.
[source]: Add patch. Remove snippet because miniupnpc, rapidjson
and unbound are no longer bundled in-tree.
[inputs]: Add zeromq, cppzmq, libsodium. Use monero-miniupnpc.
[arguments]: Change build-type to "release".
---
gnu/local.mk | 1 +
gnu/packages/finance.scm | 22 ++--
.../patches/monero-use-system-miniupnpc.patch | 111 +++++++++++++++++++++
3 files changed, 122 insertions(+), 12 deletions(-)
create mode 100644 gnu/packages/patches/monero-use-system-miniupnpc.patch

Toggle diff (201 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index dad664ca1..03e852f4c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -943,6 +943,7 @@ dist_patch_DATA = \
%D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \
%D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \
+ %D%/packages/patches/monero-use-system-miniupnpc.patch \
%D%/packages/patches/mongodb-support-unknown-linux-distributions.patch \
%D%/packages/patches/mozjs17-aarch64-support.patch \
%D%/packages/patches/mozjs24-aarch64-support.patch \
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 26f4488ab..eaafd1523 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -40,6 +40,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages dns)
@@ -52,6 +53,7 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
@@ -377,25 +379,17 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
;; the system's dynamically linked library.
(package
(name "monero")
- (version "0.11.1.0")
+ (version "0.12.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/monero-project/monero/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Delete bundled dependencies.
- (for-each
- delete-file-recursively
- '("external/miniupnpc" "external/rapidjson"
- "external/unbound"))
- #t))
+ (patches (search-patches "monero-use-system-miniupnpc.patch"))
(sha256
(base32
- "16shd834025jyzy68h3gag1sz8vbk875hy4j97hrki8pacz8vd5m"))))
+ "0wmz7g48cay0irmny5k87x4z834w07bpyvsbs9chygk9ch9kp8sw"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@@ -405,15 +399,19 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(inputs
`(("bind" ,isc-bind)
("boost" ,boost)
+ ("zeromq" ,zeromq)
+ ("cppzmq" ,cppzmq)
("expat" ,expat)
+ ("libsodium" ,libsodium)
("libunwind" ,libunwind)
("lmdb" ,lmdb)
- ("miniupnpc" ,miniupnpc)
+ ("miniupnpc" ,monero-miniupnpc)
("openssl" ,openssl)
("rapidjson" ,rapidjson)
("unbound" ,unbound)))
(arguments
`(#:out-of-source? #t
+ #:build-type "release"
#:configure-flags '("-DBUILD_TESTS=ON"
,@(if (string=? "aarch64-linux" (%current-system))
'("-DARCH=armv8-a")
diff --git a/gnu/packages/patches/monero-use-system-miniupnpc.patch b/gnu/packages/patches/monero-use-system-miniupnpc.patch
new file mode 100644
index 000000000..6bc825d12
--- /dev/null
+++ b/gnu/packages/patches/monero-use-system-miniupnpc.patch
@@ -0,0 +1,111 @@
+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
+--- 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()
+
+-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()
+
+-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()
+
+-set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
++ set(UPNP_STATIC true PARENT_SCOPE)
++ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
++endif()
+
+ find_package(Unbound)
+
+diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
+index 9b21705e..76340a22 100644
+--- a/src/p2p/net_node.inl
++++ b/src/p2p/net_node.inl
+@@ -49,9 +49,16 @@
+ #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
+
+ #undef MONERO_DEFAULT_LOG_CATEGORY
+ #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
+--
+2.16.2
+
--
2.16.2
L
L
Ludovic Courtès wrote on 13 Jul 2018 17:29
Re: [bug#31531] [PATCH v2 1/9] gnu: Add cppzmq.
(name . Theodoros Foradis)(address . theodoros@foradis.org)(address . 31531@debbugs.gnu.org)
87a7qvf92m.fsf@gnu.org
Theodoros Foradis <theodoros@foradis.org> skribis:

Toggle quote (2 lines)
> * gnu/packages/networking.scm (cppzmq): New variable.

I tweaked the synopsis and applied, thanks!
L
L
Ludovic Courtès wrote on 13 Jul 2018 17:30
Re: [bug#31531] [PATCH v2 2/9] gnu: Add monero-miniupnpc.
(name . Theodoros Foradis)(address . theodoros@foradis.org)(address . 31531@debbugs.gnu.org)
87601jf912.fsf@gnu.org
Theodoros Foradis <theodoros@foradis.org> skribis:

Toggle quote (2 lines)
> * gnu/packages/finance.scm (monero-miniupnpc): New variable.

I applied this one but moved it to upnp.scm, to avoid cross-module
top-level references (roughly, since monero-miniupnpc inherits
miniupnpc, it should be in the same file.)

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 13 Jul 2018 17:31
Re: [bug#31531] [PATCH v2 3/9] gnu: monero: Update to 0.12.3.0.
(name . Theodoros Foradis)(address . theodoros@foradis.org)(address . 31531@debbugs.gnu.org)
871sc7f8zs.fsf@gnu.org
Hi,

Theodoros Foradis <theodoros@foradis.org> skribis:

Toggle quote (8 lines)
> * gnu/packages/patches/monero-use-system-miniupnpc.patch: New file.
> * gnu/local.mk: Add it.
> * gnu/packages/finance.scm (monero): Update to 0.12.3.0.
> [source]: Add patch. Remove snippet because miniupnpc, rapidjson
> and unbound are no longer bundled in-tree.
> [inputs]: Add zeromq, cppzmq, libsodium. Use monero-miniupnpc.
> [arguments]: Change build-type to "release".

I get a hash mismatch for this one:

Toggle snippet (13 lines)
Starting download of /gnu/store/38bbddhym990lywra0j53iggic53qndd-monero-0.12.3.0.tar.gz
From https://github.com/monero-project/monero/archive/v0.12.3.0.tar.gz...
following redirection to `https://codeload.github.com/monero-project/monero/tar.gz/v0.12.3.0'...
v0.12.3.0.tar.gz 5.2MiB/s 00:02 | 8.0MiB transferred
sha256 hash mismatch for output path `/gnu/store/38bbddhym990lywra0j53iggic53qndd-monero-0.12.3.0.tar.gz'
expected: 0wmz7g48cay0irmny5k87x4z834w07bpyvsbs9chygk9ch9kp8sw
actual: 05a85k1vphizm111np86arpd0rnvr6qdwq37awsll24myr7s7aq6
@ build-failed /gnu/store/nm8hl473pvd0agrrwj2rj724wv7z66pf-monero-0.12.3.0.tar.gz.drv - 1 sha256 hash mismatch for output path `/gnu/store/38bbddhym990lywra0j53iggic53qndd-monero-0.12.3.0.tar.gz'
expected: 0wmz7g48cay0irmny5k87x4z834w07bpyvsbs9chygk9ch9kp8sw
actual: 05a85k1vphizm111np86arpd0rnvr6qdwq37awsll24myr7s7aq6
cannot build derivation `/gnu/store/51pdrvrawv6ad41gw05q99pclnc1dnk8-monero-0.12.3.0.tar.xz.drv': 1 dependencies couldn't be built

Could you check if anything’s wrong?

Thanks,
Ludo’.
T
T
Theodoros Foradis wrote on 15 Jul 2018 13:34
(name . Ludovic Courtès)(address . ludo@gnu.org)
87bmb8ybp4.fsf@foradis.org
Hi,

Ludovic Courtès writes:

Toggle quote (30 lines)
> Hi,
>
> Theodoros Foradis <theodoros@foradis.org> skribis:
>
>> * gnu/packages/patches/monero-use-system-miniupnpc.patch: New file.
>> * gnu/local.mk: Add it.
>> * gnu/packages/finance.scm (monero): Update to 0.12.3.0.
>> [source]: Add patch. Remove snippet because miniupnpc, rapidjson
>> and unbound are no longer bundled in-tree.
>> [inputs]: Add zeromq, cppzmq, libsodium. Use monero-miniupnpc.
>> [arguments]: Change build-type to "release".
>
> I get a hash mismatch for this one:
>
> --8<---------------cut here---------------start------------->8---
> Starting download of /gnu/store/38bbddhym990lywra0j53iggic53qndd-monero-0.12.3.0.tar.gz
> From https://github.com/monero-project/monero/archive/v0.12.3.0.tar.gz...
> following redirection to `https://codeload.github.com/monero-project/monero/tar.gz/v0.12.3.0'...
> v0.12.3.0.tar.gz 5.2MiB/s 00:02 | 8.0MiB transferred
> sha256 hash mismatch for output path `/gnu/store/38bbddhym990lywra0j53iggic53qndd-monero-0.12.3.0.tar.gz'
> expected: 0wmz7g48cay0irmny5k87x4z834w07bpyvsbs9chygk9ch9kp8sw
> actual: 05a85k1vphizm111np86arpd0rnvr6qdwq37awsll24myr7s7aq6
> @ build-failed /gnu/store/nm8hl473pvd0agrrwj2rj724wv7z66pf-monero-0.12.3.0.tar.gz.drv - 1 sha256 hash mismatch for output path `/gnu/store/38bbddhym990lywra0j53iggic53qndd-monero-0.12.3.0.tar.gz'
> expected: 0wmz7g48cay0irmny5k87x4z834w07bpyvsbs9chygk9ch9kp8sw
> actual: 05a85k1vphizm111np86arpd0rnvr6qdwq37awsll24myr7s7aq6
> cannot build derivation `/gnu/store/51pdrvrawv6ad41gw05q99pclnc1dnk8-monero-0.12.3.0.tar.xz.drv': 1 dependencies couldn't be built
> --8<---------------cut here---------------end--------------->8---
>
> Could you check if anything’s wrong?

The auto-generated tarball changed, and this is why I added the later
patch to use git-fetch. I forgot to update the hash prior to using
git-fetch, because I only tested with all patches applied.

So, the actual hash shown here is correct, we can either fix it in this
patch, or ignore it because it gets fixed in patch 7/9 anyway.

--
Theodoros Foradis
L
L
Ludovic Courtès wrote on 16 Jul 2018 16:40
(name . Theodoros Foradis)(address . theodoros@foradis.org)(address . 31531@debbugs.gnu.org)
87bmb7utv7.fsf@gnu.org
Hello Theodoros,

Theodoros Foradis <theodoros@foradis.org> skribis:

Toggle quote (2 lines)
> Ludovic Courtès writes:

[...]

Toggle quote (25 lines)
>> I get a hash mismatch for this one:
>>
>> --8<---------------cut here---------------start------------->8---
>> Starting download of /gnu/store/38bbddhym990lywra0j53iggic53qndd-monero-0.12.3.0.tar.gz
>> From https://github.com/monero-project/monero/archive/v0.12.3.0.tar.gz...
>> following redirection to `https://codeload.github.com/monero-project/monero/tar.gz/v0.12.3.0'...
>> v0.12.3.0.tar.gz 5.2MiB/s 00:02 | 8.0MiB transferred
>> sha256 hash mismatch for output path `/gnu/store/38bbddhym990lywra0j53iggic53qndd-monero-0.12.3.0.tar.gz'
>> expected: 0wmz7g48cay0irmny5k87x4z834w07bpyvsbs9chygk9ch9kp8sw
>> actual: 05a85k1vphizm111np86arpd0rnvr6qdwq37awsll24myr7s7aq6
>> @ build-failed /gnu/store/nm8hl473pvd0agrrwj2rj724wv7z66pf-monero-0.12.3.0.tar.gz.drv - 1 sha256 hash mismatch for output path `/gnu/store/38bbddhym990lywra0j53iggic53qndd-monero-0.12.3.0.tar.gz'
>> expected: 0wmz7g48cay0irmny5k87x4z834w07bpyvsbs9chygk9ch9kp8sw
>> actual: 05a85k1vphizm111np86arpd0rnvr6qdwq37awsll24myr7s7aq6
>> cannot build derivation `/gnu/store/51pdrvrawv6ad41gw05q99pclnc1dnk8-monero-0.12.3.0.tar.xz.drv': 1 dependencies couldn't be built
>> --8<---------------cut here---------------end--------------->8---
>>
>> Could you check if anything’s wrong?
>
> The auto-generated tarball changed, and this is why I added the later
> patch to use git-fetch. I forgot to update the hash prior to using
> git-fetch, because I only tested with all patches applied.
>
> So, the actual hash shown here is correct, we can either fix it in this
> patch, or ignore it because it gets fixed in patch 7/9 anyway.

Indeed. I sort-of merged both patches by applying this one:
Toggle diff (24 lines)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 3d4185578..333fe6531 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -372,14 +372,15 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
(version "0.12.3.0")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/monero-project/monero/archive/v"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/monero-project/monero")
+ (commit (string-append "v" version))))
(file-name (string-append name "-" version ".tar.gz"))
(patches (search-patches "monero-use-system-miniupnpc.patch"))
(sha256
(base32
- "0wmz7g48cay0irmny5k87x4z834w07bpyvsbs9chygk9ch9kp8sw"))))
+ "14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
Note that in general we should arrange for each commit to produce a
working state.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 16 Jul 2018 16:52
Re: [bug#31531] [PATCH v2 9/9] gnu: monero-core: Rename package to "monero-gui".
(name . Theodoros Foradis)(address . theodoros@foradis.org)(address . 31531-done@debbugs.gnu.org)
877elvuta9.fsf@gnu.org
Hello,

I merged the remained of the patch series. I merged the ‘git-fetch’
patch of ‘monero-core’ with the updated, and I declared “monero-core” a
deprecated package name for “monero-gui”.

We’re done now. Thank you!

Ludo’.
Closed
?