Commit graph

390 commits

Author SHA1 Message Date
Riccardo Spagni
5260111631
Merge pull request #5146
4a9257b4 Support docker for gitian builds (TheCharlatan)
2019-03-04 21:32:30 +02:00
Riccardo Spagni
933c701c6e
Merge pull request #5133
f0fc4064 Various speedups to depends and Travis (TheCharlatan)
2019-03-04 21:28:56 +02:00
moneromooo-monero
24d281c324
crypto: plug CNv4 JIT into cn_slow_hash
Enabled by setting the MONERO_USE_CNV4_JIT env var to 1
2019-03-04 11:56:55 +00:00
TheCharlatan
f0fc4064a0
Various speedups to depends and Travis
Further speedups to icu compilation, it is faster to run the
pre-generated configure scripts.

Ensure that the native protobuf installation only generates the required
libraries and binaries.

Disable qt compilation when running travis on windows. Qt is used for
lrelease, the travis recipe instead usese the a local installation of
lrelease.

Remove various packages and options from the travis recipe.

Update Readline to version 8.0. The previously used url 404'd sometimes,
use the official gnu ftp server instead.

Remove unused cmake config.
2019-02-23 15:34:59 +01:00
TheCharlatan
4a9257b464
Support docker for gitian builds
Building with docker is arguably easier and more familiar to most people
than either kvm, or lxc.

This commit also relaxes the back compat requirement a bit. 32 bit linux
now uses glibc version 2.0. Also, the docker shell could not handle gcc arguments
containing spaces, so the explicit '-DFELT_TYPE' declaration was dropped.

Lastly, this removes some packages from the osx descriptor.
2019-02-14 23:14:34 +01:00
luigi1111
3adac4ee2b
Merge pull request #4929
5a76933 Add glibc back compat code (TheCharlatan)
2018-12-31 15:31:01 -06:00
luigi1111
c93c638199
Merge pull request #4864
707c2f8 Remove -Werror (moneromooo-monero)
2018-12-31 15:13:59 -06:00
TheCharlatan
5a76933903 Add glibc back compat code
To ensure that the binaries compiled by gitian run across many linux
distributions, enforce 2.17 as the minimum libc version supported.
2018-12-04 02:21:06 +01:00
Dusan Klinec
2ffe53d9e6
device/trezor: webusb transport added, cmake fixes
- webusb transport based on libusb added. Provides direct access to Trezor via USB, no need for Trezor bridge.
- trezor protocol message handler improved, no recursion used. Ready for upcoming integration tests.
- libusb (for docker) bumped from v1.0.9 to v1.0.22, newer version required for webusb transport, for device enumeration.
- cmake improvements and fixes. Cmake Trezor checks are moved to a dedicated CheckTrezor.cmake file. In case of a problem Trezor is excluded from build.
- ifdefs made consistent to Ledger.
- UDP Transport enumeration disabled by default in release mode
2018-11-25 11:57:19 +01:00
moneromooo-monero
707c2f836b
Remove -Werror
It is an annoying piece of garbage
2018-11-17 13:15:03 +00:00
Riccardo Spagni
fc3768293a
Merge pull request #4796
f92682ec build: ubuntu 16 ppc build fixes (Jethro Grassie)
2018-11-16 11:11:29 +02:00
Riccardo Spagni
d0c4123034
Merge pull request #4842
37d5b8d9 CMakeLists.txt: add -ftemplate-depth=900 (moneromooo-monero)
2018-11-14 21:43:37 +02:00
stoffu
f0459abbb9
cmake: move Boost_LOCALE_LIBRARY out of ICU_LIBRARIES 2018-11-15 00:18:31 +09:00
moneromooo-monero
37d5b8d9c2
CMakeLists.txt: add -ftemplate-depth=900 2018-11-12 22:35:21 +00:00
Riccardo Spagni
4c621b13d0
Merge pull request #4760
8a7e20f8 build: older git versions don't have '-C' flag (xiphon)
2018-11-06 14:47:27 +02:00
Jethro Grassie
f92682ec0a
build: ubuntu 16 ppc build fixes 2018-11-04 13:55:00 -05:00
Dusan Klinec
29ffb6bba8
device/trezor: trezor support added 2018-11-02 21:36:39 +01:00
xiphon
8a7e20f8a5 build: older git versions don't have '-C' flag 2018-10-30 05:25:58 +00:00
Riccardo Spagni
b9a5e47490
Merge pull request #4679
7d21c9b5 CMakeLists.txt: only use libatomic when found (moneromooo-monero)
2018-10-26 22:41:03 +02:00
Riccardo Spagni
d4448e8e24
Merge pull request #4620
ad4cce93 build: fixed submodule check (xiphon)
2018-10-26 22:39:51 +02:00
Riccardo Spagni
8f9c381f86
Merge pull request #4580
938476c9 CMakeLists.txt: detect and use -pthread compiler flag (moneromooo-monero)
2018-10-26 22:34:21 +02:00
Riccardo Spagni
056a58d13f
Merge pull request #4536
fd62b6e7 blocks: use auto-generated .c files instead of 'LD -r -b binary' (xiphon)
2018-10-26 22:20:39 +02:00
xiphon
fd62b6e79f blocks: use auto-generated .c files instead of 'LD -r -b binary' 2018-10-22 01:12:00 +03:00
moneromooo-monero
7d21c9b573
CMakeLists.txt: only use libatomic when found 2018-10-20 21:37:40 +00:00
xiphon
ad4cce930b build: fixed submodule check 2018-10-16 14:43:56 +00:00
iDunk5400
e7f24850d5
Fix Windows build after epee dependency change 2018-10-15 23:08:17 +00:00
moneromooo-monero
938476c9a5
CMakeLists.txt: detect and use -pthread compiler flag
The cmake thread detection just ain't enough to always work
2018-10-13 18:12:09 +00:00
xiphon
bf842a6a1e build: use ARCH 'native' by default, allow to configure and override it 2018-10-13 09:46:37 +00:00
Riccardo Spagni
6a7cd09685
Merge pull request #4529
c95a1408 CMakeLists.txt: Fix typo (erciccione)
2018-10-08 22:05:15 +02:00
Riccardo Spagni
ac5674524a
Revert "Merge pull request #4472"
This reverts commit 79d46c4d55, reversing
changes made to c9fc61dbb5.
2018-10-08 21:39:54 +02:00
erciccione
c95a14088c
CMakeLists.txt: Fix typo 2018-10-08 18:33:16 +01:00
Riccardo Spagni
e67cb38e5a
Merge pull request #4501
fb3593c2 Add check if submodules need to be updated (TheCharlatan)
2018-10-07 18:57:10 +02:00
TheCharlatan
fb3593c22e Add check if submodules need to be updated
Adds CMake check that pulls from the different git remotes and checks if
there is any output.
2018-10-05 23:54:49 +02:00
xiphon
02d3ef7bda blocks: use auto-generated .c files instead of 'LD -r -b binary' 2018-10-04 00:01:09 +00:00
Riccardo Spagni
4e3bff92ab
Merge pull request #4457
85318e78 build: set ARCH_FLAG before compiler/linker flag checks (xiphon)
2018-09-29 22:20:31 +02:00
Riccardo Spagni
8e98ed8c71
Merge pull request #4448
6a781408 Make depends use self built clang for darwin (TheCharlatan)
2018-09-29 22:20:20 +02:00
Riccardo Spagni
5bcead236f
Merge pull request #4446
69da14e1 fixes make debug compilation on OSX (Dusan Klinec)
2018-09-29 22:20:15 +02:00
Riccardo Spagni
d2f9a4c584
Merge pull request #4420
0f4f873b Fix Darwin Sodium build (TheCharlatan)
bf1e1d97 A Travis to monero (TheCharlatan)
2018-09-25 12:06:20 +02:00
cslashm
bb6e3bbc0f Replace USB-CCID (smartcard) by USB-HID
Remove PCSC dependencies which is a bit hard (not user friendly) to install on linux and Mac

Split Ledger logic and device IO
2018-09-24 21:57:42 +02:00
TheCharlatan
bf1e1d979c A Travis to monero
Add a Travis build script for Monero. This was blatantly copied from
Bitcoin. It spawns jobs in docker containers running an ubuntu bionic
image.

This commit also a fixes a problem where librt was still linked, even
when compiling statically.
2018-09-22 01:49:53 +02:00
Riccardo Spagni
85110b42ab
Merge pull request #4401
66901901 README: harmonize command formatting inside README.md (Andrea)
8cd98408 disable AES on s390x architecture (Tuan M. Hoang)
4ed30bab wallet: implement coin splitting for sweep_* 'outputs' option (whythat)
24f52396 wallet: add 'outputs' option for sweep_* commands (whythat)
52e19d69 README: Compile boost with cxxflags=-fPIC cflags=-fPIC (Italocoin Project)
0c77523d README: fill in libsodium package name for Arch (phloatingman)
2018-09-21 20:46:22 +02:00
Riccardo Spagni
9c40bc62fc
Merge pull request #3430
42397359 Fixup 32bit arm build (TheCharlatan)
a06d2581 Fix Windows build (TheCharlatan)
ecaf5b3f Add libsodium to the packages, the arm build was complaining about it. (TheCharlatan)
cbbf4d24 Adapt translations to upstream changes (TheCharlatan)
db571546 Updated pcsc url (TheCharlatan)
f0ba19fd Add lrelease to the depends (TheCharlatan)
cfb30462 Add Miniupnp submodule (TheCharlatan)
5f7da005 Unbound is now a submodule. Adapt depends for this. (TheCharlatan)
d6b9bdd3 Update readmes to reflect the usage of depends (TheCharlatan)
56b6e41e Add support for apple and arm building (TheCharlatan)
29311fd1 Disable stack unwinding for mingw32 depends build. (TheCharlatan)
8db3d573 Modify depends for monero's dependencies (TheCharlatan)
0806a23a Initial depends addition (TheCharlatan)
2018-09-18 16:33:21 +02:00
Tuan M. Hoang
8cd9840859
disable AES on s390x architecture
rebased by moneromooo
2018-09-18 11:02:06 +00:00
TheCharlatan
423973596b Fixup 32bit arm build
Set the architecture in the toolchain file correctly
2018-09-18 02:52:57 +02:00
TheCharlatan
a06d2581c3 Fix Windows build
icu tex support is not required, so just disable it.
Re-add mistakingly removed crypt32 lib.
2018-09-17 23:59:37 +02:00
TheCharlatan
ecaf5b3feb Add libsodium to the packages, the arm build was complaining about it.
Fixup arm toolchain file.
2018-09-17 16:09:50 +02:00
Riccardo Spagni
9f24e57dc2
Merge pull request #4326
bcda7adc NetBSD support (thomasvaughan)
2018-09-14 13:02:58 +02:00
Riccardo Spagni
466f079586
Merge pull request #4232
9e6c7784 CMakeLists.txt: add -mmitigate-rop to security flags if found (moneromooo-monero)
2018-09-14 12:39:17 +02:00
thomasvaughan
bcda7adcd4 NetBSD support 2018-09-11 14:32:33 +00:00
TheCharlatan
cbbf4d241b Adapt translations to upstream changes 2018-09-10 22:18:18 +02:00
TheCharlatan
f0ba19fde5 Add lrelease to the depends
This includes a minimal qt build without gui
2018-09-10 22:08:05 +02:00
TheCharlatan
5f7da005a3 Unbound is now a submodule. Adapt depends for this.
Fix builds for native linux and windows

The architecture flag was set incorrectly.
It needs to be set only when compiling arm6.
2018-09-10 22:05:37 +02:00
TheCharlatan
56b6e41ea7 Add support for apple and arm building
Add pcsc-lite to linux builds
Fixup windows icu4c linking with depends, the static libraries have an 's' appended to them
Compiling depends arm-linux-gnueabihf will allow you to compile armv6zk monero binaries
2018-09-10 22:05:36 +02:00
TheCharlatan
29311fd140 Disable stack unwinding for mingw32 depends build. 2018-09-10 22:03:42 +02:00
moneromooo-monero
347bba9dd1
CMakeLists.txt: detect -fcf-protection=full and -fstack-clash-protection
Introduced with GCC 8.2
2018-09-09 11:53:42 +00:00
luigi1111
fad88e18a9
Merge pull request #4290
2bc977b CMakeLists.txt: disable -fstack-protector* on windows
2018-09-04 18:12:52 -05:00
luigi1111
6cc1ed8dc1
Merge pull request #4295
ce63d56 Windows: fix undefined references after unbound submodule update (iDunk5400)
2018-09-04 13:28:52 -05:00
iDunk5400
ce63d5634e
Windows: fix undefined references after unbound submodule update 2018-08-23 11:17:42 +02:00
MoroccanMalinois
fa814af969
Build: Fix target release-static-android 2018-08-21 23:25:14 +00:00
MoroccanMalinois
620105ecaf
Translations: handle cross compiling 2018-08-21 23:22:33 +00:00
iDunk5400
2bc977bab9
CMakeLists.txt: disable -fstack-protector* on windows
Current GCC produces broken binaries with these options
2018-08-21 22:41:35 +00:00
moneromooo-monero
9e6c7784ea
CMakeLists.txt: add -mmitigate-rop to security flags if found
This is GCC/x86/x86_64 only
2018-08-07 13:05:52 +00:00
luigi1111
61f3916b4a
Merge pull request #3844
bdf5a3a Fix PCSC compilation under windows (cslashm)
f17383a Fix CMAKE config for PCSC in order to avoid msys DLL dependencies (cslashm)
2018-06-19 12:49:30 -05:00
luigi1111
1db8cf0db9
Merge pull request #3835
d44d19c Fixed for compilation in big endian PPC. (nioroso-x3)
2018-06-19 12:46:39 -05:00
luigi1111
112f3678bc
Merge pull request #3887
14f0d38 Incorporate Window debug build targets (philkode)
2018-06-08 14:34:01 -05:00
philkode
14f0d38cd6
Incorporate Window debug build targets 2018-05-31 10:49:24 +01:00
anonimal
8a6c081df7
rapidjson: remove outdated in-tree, use submodule
Includes ~2 years worth of fixes including security and build.

Note: this pulls directly from master, not a release branch/tag. See
https://github.com/Tencent/rapidjson/issues/1265
2018-05-25 04:50:20 +00:00
cslashm
bdf5a3ad3f Fix PCSC compilation under windows
PR3843 based on release-v0.12 => rebased on master
2018-05-23 10:22:55 +02:00
Judemir Ribeiro
d44d19ca79 Fixed for compilation in big endian PPC. "Everything is broken thought due to little endian logic." 2018-05-19 18:03:59 -04:00
anonimal
6b85398031
Build: update CMake and p2p for in-tree miniupnp
(cherry picked from commit a7366b5feeffaeb65b217b2d6f138e0ab1c90192)
2018-04-21 09:43:23 +00:00
rbrunner7
733deab249 Adjust to the MSYS2/MinGW static ICU library file renaming
In package mingw-w64-x86_64-icu, version 58.2-3, the names of static
library files were changed, which leads to changes in CMakeLists.txt as
needed for compiling for Windows.
2018-03-08 19:10:44 +01:00
Riccardo Spagni
237f0179b7
Merge pull request #3313
43026822 Wallet2 + CLI wallet: UTF-8 support for filenames and paths under Windows (rbrunner7)
2018-03-05 19:15:54 +02:00
Edward Betts
fbcc91c2a4 Correct spelling mistakes. 2018-03-05 17:00:40 +00:00
cslashm
e745c1e38d Code modifications to integrate Ledger HW device into monero-wallet-cli.
The basic approach it to delegate all sensitive data (master key, secret
ephemeral key, key derivation, ....) and related operations to the device.
As device has low memory, it does not keep itself the values
(except for view/spend keys) but once computed there are encrypted (with AES
are equivalent) and return back to monero-wallet-cli. When they need to be
manipulated by the device, they are decrypted on receive.

Moreover, using the client for storing the value in encrypted form limits
the modification in the client code. Those values are transfered from one
C-structure to another one as previously.

The code modification has been done with the wishes to be open to any
other hardware wallet. To achieve that a C++ class hw::Device has been
introduced. Two initial implementations are provided: the "default", which
remaps all calls to initial Monero code, and  the "Ledger", which delegates
all calls to Ledger device.
2018-03-04 12:54:53 +01:00
rbrunner7
430268224d Wallet2 + CLI wallet: UTF-8 support for filenames and paths under Windows 2018-02-25 12:57:58 +01:00
Riccardo Spagni
172b7824d1
Merge pull request #3195
9017084a cmake: add -DHAVE_ defines to the command line (moneromooo-monero)
2018-02-16 14:20:46 +01:00
moneromooo-monero
9017084a7b
cmake: add -DHAVE_ defines to the command line
since there's no config.h here
2018-01-28 08:57:51 +00:00
xmr-eric
18216f19dd Update 2018 copyright 2018-01-26 10:03:20 -05:00
moneromooo-monero
b7e5a70bb1
epee: detect strptime, use std::get_time as fallback 2018-01-11 21:41:07 +00:00
Riccardo Spagni
d5dad4f0a2
Merge pull request #3062
f035478d Fix translations header generation when cross-compilating (Guillaume LE VAILLANT)
2018-01-10 11:55:46 +01:00
Riccardo Spagni
397a9f0656
Merge pull request #3007
0281f634 cmake: fix boost version detection (moneromooo-monero)
2018-01-10 11:55:00 +01:00
Riccardo Spagni
d08aee7a7e
Merge pull request #2993
776b44f1 Add misc hardening flags to the cmake machinery (moneromooo-monero)
2018-01-10 11:53:26 +01:00
Guillaume LE VAILLANT
f035478d35 Fix translations header generation when cross-compilating
Define generate_translations_header as an external project to be able
to use the compilation toolchain for the host instead of the toolchain
for the target.
2018-01-04 11:36:29 +01:00
Riccardo Spagni
dd11bfb89c
Merge pull request #2934
db2bc965 Embed the translation files in the binary (Guillaume LE VAILLANT)
2018-01-02 00:28:45 +02:00
moneromooo-monero
776b44f17b
Add misc hardening flags to the cmake machinery
See https://wiki.debian.org/Hardening#User_Space
2017-12-31 14:26:12 +00:00
moneromooo-monero
0281f63486
cmake: fix boost version detection 2017-12-26 12:09:54 +00:00
moneromooo-monero
1a379ef656
fuzz_testing: build with ASAN (assumed to be available) 2017-12-23 11:27:34 +00:00
Guillaume LE VAILLANT
db2bc96512 Embed the translation files in the binary
If a translation file exists in a "translations" directory located in
the same directory as the binary, it is used in priority (this can be
useful when working on translations as you don't have to recompile the
whole program all the time), and if no such file is found the embedded
translation file is used (if it exists).
2017-12-15 18:44:01 +01:00
moneromooo-monero
000666ff78
add a memwipe function
It's meant to avoid being optimized out

memory_cleanse lifted from bitcoin
2017-11-27 22:15:34 +00:00
Riccardo Spagni
7ae7e5ef93
Merge pull request #2793
3501ed1f Do not require libatomic on FreeBSD (Vasil Dimov)
2017-11-25 19:48:12 +02:00
Riccardo Spagni
edebe4e3b6
Merge pull request #2736
0d9c0db9 Do not build against epee_readline if it was not built (Howard Chu)
178014c9 split off readline code into epee_readline (moneromooo-monero)
a9e14a19 link against readline only for monerod and wallet-wallet-{rpc,cli} (moneromooo-monero)
437421ce wallet: move some scoped_message_writer calls from the libs (moneromooo-monero)
e89994e9 wallet: rejig to avoid prompting in wallet2 (moneromooo-monero)
ec5135e5 move input_line from command_line to simplewallet (moneromooo-monero)
082db75f move cryptonote command line options to cryptonote_core (moneromooo-monero)
2017-11-14 21:31:51 +02:00
Howard Chu
0d9c0db996
Do not build against epee_readline if it was not built 2017-11-14 17:06:37 +00:00
moneromooo-monero
a9e14a19dc
link against readline only for monerod and wallet-wallet-{rpc,cli} 2017-11-14 17:06:32 +00:00
Pavel Maryanov
a17efcb039
make this build on SunOS/Solaris 2017-11-14 17:03:48 +00:00
Vasil Dimov
3501ed1fdf
Do not require libatomic on FreeBSD
f3e09f36 hooked a dependency on libatomic on 32 bit machines if Clang is
used because compilation failed with:

`std::__atomic_base<unsigned long long>::load(std::memory_order) const':
/usr/bin/../lib/gcc/i686-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/atomic_base.h:396:
undefined reference to `__atomic_load_8'

But that does not happen on FreeBSD. The problem is likely that on Linux
Clang tries to use GCC-provided C++11 library. Further,
__atomic_load_8() (for 8-byte integers) is not readily available on 32
bit machines. From https://gcc.gnu.org/wiki/Atomic/GCCMM: "When lock
free instructions are not available (either through hardware or OS
support) atomic operations are left as function calls to be resolved by
a library."
2017-11-11 15:29:42 +02:00
Riccardo Spagni
af448d3883
Merge pull request #2694
11e0deef cmake: add dep of version lib on version.cpp (redfish)
35340259 .gitignore: do not ignore cmake source files (redfish)
2017-11-09 18:22:25 +02:00
Riccardo Spagni
ef3c77117a
Merge pull request #2689
6a90506a Link against libpgm/libnorm if found, optional libzmq ldependencies (moneromooo-monero)
2017-11-01 11:26:22 +02:00
moneromooo-monero
6a90506a8d
Link against libpgm/libnorm if found, optional libzmq ldependencies 2017-10-21 08:39:52 +01:00
redfish
11e0deef31 cmake: add dep of version lib on version.cpp
Also, move cmake source files into cmake/ to keep them together.
2017-10-20 22:07:34 -04:00
redfish
29497f7920 epee: use boost type for SSL error code
Fixes compile error when building with OpenSSL v1.1:

contrib/epee/include/net/net_helper.h: In member function ‘void epee::net_utils::blocked_mode_client::shutdown_ssl()’:
contrib/epee/include/net/net_helper.h:579:106: error: ‘SSL_R_SHORT_READ’ was not declared in this scope
    if (ec.category() == boost::asio::error::get_ssl_category() && ec.value() != ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ))
                                                                                                          ^
contrib/epee/include/net/net_helper.h:579:106: note: suggested alternative: ‘SSL_F_SSL_READ’

See boost/asio/ssl/error.hpp.
Boost handles differences between OpenSSL versions.

cmake: fail if Boost is too old for OpenSSL v1.1
2017-10-17 16:12:58 -04:00