FS#79299 - [monero] monero-wallet-cli 0.18.2.2-2 broken Trezor support

Attached to Project: Arch Linux
Opened by Jim Johnson (JimmyJammy) - Friday, 04 August 2023, 20:07 GMT
Last edited by Buggy McBugFace (bugbot) - Saturday, 25 November 2023, 20:19 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To kpcyrd (kpcyrd)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
monero-wallet-cli 0.18.2.2-2 binary from the Arch community repository does not support Trezor devices, while the one downloaded from getmonero.org does.

Additional info:
* package version 0.18.2.2-2 (I believe this worked in 0.18.2.2-1)
* Log file
```
2023-08-04 19:46:24.971 7f233a0d2680 INFO msgwriter src/common/scoped_message_writer.h:102 Monero 'Fluorine Fermi' (v0.18.2.2-release)
2023-08-04 19:46:24.971 7f233a0d2680 INFO wallet.wallet2 src/wallet/wallet_args.cpp:215 Setting log level = 4
2023-08-04 19:46:24.971 7f233a0d2680 INFO wallet.wallet2 src/wallet/wallet_args.cpp:221 Logging to: monero-wallet-cli.log
2023-08-04 19:46:24.971 7f233a0d2680 INFO msgwriter src/common/scoped_message_writer.h:102 Logging to monero-wallet-cli.log
2023-08-04 19:46:24.972 7f233a0d2680 TRACE wallet.simplewallet src/simplewallet/simplewallet.cpp:3966 simple_wallet::ask_wallet_create_if_needed() started
2023-08-04 19:46:24.972 7f233a0d2680 TRACE wallet.simplewallet src/simplewallet/simplewallet.cpp:3974 User asked to specify wallet file name.
2023-08-04 19:46:26.427 7f233a0d2680 TRACE wallet.simplewallet src/simplewallet/simplewallet.cpp:3994 wallet_path: Trezor
2023-08-04 19:46:26.427 7f233a0d2680 TRACE wallet.simplewallet src/simplewallet/simplewallet.cpp:3995 keys_file_exists: true wallet_file_exists: true
2023-08-04 19:46:26.428 7f233a0d2680 INFO msgwriter src/common/scoped_message_writer.h:102 Wallet and key files found, loading...
2023-08-04 19:46:29.255 7f233a0d2680 INFO net contrib/epee/src/net_parse_helpers.cpp:138 [PARSE URI] regex not matched for uri: ^(([^:]*?)://)?(\[(.*)\](:(\d+))?)(.*)?
2023-08-04 19:46:29.256 7f233a0d2680 DEBUG util src/common/util.cpp:915 Address 'http://localhost:18081' is local
2023-08-04 19:46:29.256 7f233a0d2680 INFO wallet.wallet2 src/wallet/wallet2.cpp:456 Daemon is local, assuming trusted
2023-08-04 19:46:29.256 7f233a0d2680 DEBUG device.ledger src/device/device_ledger.cpp:306 Device 0 Created
2023-08-04 19:46:29.257 7f233a0d2680 INFO wallet.wallet2 src/wallet/wallet2.cpp:1354 setting daemon to http://localhost:18081
2023-08-04 19:46:29.257 7f233a0d2680 INFO net contrib/epee/src/net_parse_helpers.cpp:138 [PARSE URI] regex not matched for uri: ^(([^:]*?)://)?(\[(.*)\](:(\d+))?)(.*)?
2023-08-04 19:46:29.264 7f233a0d2680 INFO net.ssl contrib/epee/src/net_ssl.cpp:137 Generating SSL certificate
2023-08-04 19:46:29.679 7f233a0d2680 INFO wallet.wallet2 src/wallet/wallet2.cpp:7692 ringdb path set to /home/xxx/.shared-ringdb
2023-08-04 19:46:29.693 7f233a0d2680 INFO net contrib/epee/src/net_parse_helpers.cpp:138 [PARSE URI] regex not matched for uri: ^(([^:]*?)://)?(\[(.*)\](:(\d+))?)(.*)?
2023-08-04 19:46:29.699 7f233a0d2680 INFO net.ssl contrib/epee/src/net_ssl.cpp:137 Generating SSL certificate
2023-08-04 19:46:30.239 7f233a0d2680 WARNING wallet.wallet2 src/wallet/wallet2.cpp:4482 Account on device. Initing device...
2023-08-04 19:46:30.240 7f233a0d2680 ERROR serialization src/device/device.cpp:86 Device not found in registry: 'Trezor'. Known devices:
2023-08-04 19:46:30.240 7f233a0d2680 ERROR serialization src/device/device.cpp:88 - Ledger
2023-08-04 19:46:30.240 7f233a0d2680 ERROR serialization src/device/device.cpp:88 - default
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:133 Exception: std::runtime_error
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:134 Unwound call stack:
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172 [1] monero-wallet-cli(+0x14bc8c) [0x555f5da53c8c]
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172 [2] monero-wallet-cli(+0x50ab39) [0x555f5de12b39]
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172 [3] monero-wallet-cli(+0x2e0209) [0x555f5dbe8209]
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172 [4] monero-wallet-cli(+0x1f4831) [0x555f5dafc831]
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172 [5] monero-wallet-cli(+0x1f5920) [0x555f5dafd920]
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172 [6] monero-wallet-cli(+0x194b4a) [0x555f5da9cb4a]
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172 [7] /usr/lib/libc.so.6(+0x27cd0) [0x7f233a227cd0]
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172 [8] 0x8a) [0x7f233a227d8a]:__libc_start_main+0x8a) [0x7f233a227d8a]
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172 [9] monero-wallet-cli(+0x1b0c15) [0x555f5dab8c15]
2023-08-04 19:46:30.240 7f233a0d2680 INFO stacktrace src/common/stack_trace.cpp:172
2023-08-04 19:46:30.240 7f233a0d2680 ERROR msgwriter src/common/scoped_message_writer.h:102 Error: failed to load wallet: device not found: Trezor
2023-08-04 19:46:30.240 7f233a0d2680 DEBUG wallet.wallet2 src/wallet/wallet2.cpp:7982 Trezor.keys is already unlocked.
2023-08-04 19:46:30.266 7f233a0d2680 ERROR wallet.simplewallet src/simplewallet/simplewallet.cpp:4688 failed to open account
2023-08-04 19:46:30.266 7f233a0d2680 ERROR wallet.simplewallet src/simplewallet/simplewallet.cpp:10690 Failed to initialize wallet
2023-08-04 19:46:30.266 7f233a0d2680 DEBUG net contrib/epee/include/net/net_helper.h:647 Problems at ssl shutdown: uninitialized (SSL routines)
2023-08-04 19:46:30.266 7f233a0d2680 DEBUG net contrib/epee/include/net/net_helper.h:571 Problems at cancel: Bad file descriptor
2023-08-04 19:46:30.266 7f233a0d2680 DEBUG net contrib/epee/include/net/net_helper.h:574 Problems at shutdown: Bad file descriptor
2023-08-04 19:46:30.266 7f233a0d2680 DEBUG net contrib/epee/include/net/net_helper.h:647 Problems at ssl shutdown: uninitialized (SSL routines)
2023-08-04 19:46:30.266 7f233a0d2680 DEBUG net contrib/epee/include/net/net_helper.h:571 Problems at cancel: Bad file descriptor
2023-08-04 19:46:30.266 7f233a0d2680 DEBUG net contrib/epee/include/net/net_helper.h:574 Problems at shutdown: Bad file descriptor
2023-08-04 19:46:30.267 7f233a0d2680 DEBUG device.ledger src/device/device_ledger.cpp:311 Device 0 Destroyed
```

Steps to reproduce:
1) Install the monero package
2) Install trezor-bridge-bin from the AUR
3) Run monero-wallet-cli --hw-device Trezor --generate-from-device MoneroWallet with the Trezor device plugged in and unlocked

I think the monero tests should pick up whether the binary has Trezor support? I believe this broke in -2, while -1 worked. I'm not sure if the protobuf 23 upgrade broke this or the cherry picked commit.
This task depends upon

Closed by  Buggy McBugFace (bugbot)
Saturday, 25 November 2023, 20:19 GMT
Reason for closing:  Moved
Additional comments about closing:  https://gitlab.archlinux.org/archlinux/p ackaging/packages/monero/issues/1
Comment by Toolybird (Toolybird) - Friday, 04 August 2023, 22:07 GMT
Possibly related is some suspicious stuff in the build log:

-- Found Protobuf: /usr/lib/libprotobuf.so (found version "4.23.3")
CMake Warning at /usr/share/cmake/Modules/FindProtobuf.cmake:524 (message):
Protobuf compiler version 23.3 doesn't match library version 4.23.3
Call Stack (most recent call first):
cmake/CheckTrezor.cmake:37 (find_package)
CMakeLists.txt:704 (include)
Comment by Jim Johnson (JimmyJammy) - Friday, 04 August 2023, 22:30 GMT
I'm seeing

-- Protobuf lib: /usr/lib/libprotobuf.so, inc: /usr/include, protoc: /usr/bin/protoc
-- Protobuf Compilation test failed: Change Dir: '/home/xxx/aur/monero/src/monero/build/CMakeFiles/CMakeTmp'

Building CXX object CMakeFiles/cmTC_c2bf3.dir/test-protobuf.pb.cc.o
/usr/bin/c++ -I/home/xxx/aur/monero/src/monero/build -march=native -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -pthread -std=gnu++11 -o CMakeFiles/cmTC_c2bf3.dir/test-protobuf.pb.cc.o -c /home/xxx/aur/monero/src/monero/build/test-protobuf.pb.cc
In file included from /usr/include/absl/base/config.h:86,
from /usr/include/absl/base/attributes.h:37,
from /usr/include/absl/strings/string_view.h:39,
from /usr/include/google/protobuf/stubs/common.h:44,
from /usr/include/google/protobuf/io/coded_stream.h:130,
from /home/xxx/aur/monero/src/monero/build/test-protobuf.pb.h:24,
from /home/xxx/aur/monero/src/monero/build/test-protobuf.pb.cc:4:
/usr/include/absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
79 | #error "C++ versions less than C++14 are not supported."
| ^~~~~
In file included from /home/xxx/aur/monero/src/monero/build/test-protobuf.pb.h:11:
/usr/include/google/protobuf/port_def.inc:205:15: error: static assertion failed: Protobuf only supports C++14 and newer.

[Lower]

-- You are currently on commit e06129bb4
-- You are building a tagged release
-- Looking for a ASM-ATT compiler
-- Looking for a ASM-ATT compiler - /usr/bin/as
Wallet crypto is using amd64-64-24k backend
-- Trezor support disabled

It's building the protobuf tests with g++11 it seems?

Comment by Jim Johnson (JimmyJammy) - Saturday, 05 August 2023, 00:09 GMT Comment by Jim Johnson (JimmyJammy) - Saturday, 05 August 2023, 00:24 GMT
Can confirm that by:
1) Applying the second half of the patch https://paste.debian.net/plainh/6361dd42 (the current PKGBUILD already overrides CMAKE_CXX_STANDARD)
2) Running makepkg -sir

Trezor works again

Loading...