14352 Commits

Author SHA1 Message Date
Old Dip Tracker
85ee858d14
Merge pull request #3299 from alamshafil/update-getblock
rpc: Add verbosity levels to getblock
2023-07-27 17:10:57 +02:00
alamshafil
cc4bffc0d6
rpc: Add verbosity levels to getblock 2023-07-11 14:45:42 -04:00
Old Dip Tracker
4c441c1e8f
Merge pull request #3235 from chromatic/add-height-to-importaddress
Add optional `height` to `importaddress`
2023-07-07 05:03:57 -04:00
chromatic
fc66af47f4
Merge pull request #3292 from patricklodder/1.14.7-track-depends-patches
maint: don't ignore legit patches
2023-07-05 13:50:15 -07:00
chromatic
083ab1c096 Add optional height to importaddress
This follows the same pattern as other import RPC calls and uses the
same codepath.
2023-07-04 11:19:22 -07:00
Patrick Lodder
733c43c80c
don't ignore legit patches 2023-07-04 05:24:36 -04:00
Old Dip Tracker
f3f087a281
Merge pull request #3286 from chromatic/payment-server-no-datadir
Allow PaymentServer a parametric server name
2023-06-30 09:24:52 -04:00
chromatic
1c0cab74dd Allow PaymentServer a parametric server name
While the default server name is almost always what we want, given that
it is unique to main or testnet and the default data directory,
defaulting to this value during tests is not always what we want,
especially if there's production data or the path is not available
(think of a CI system).

Switch the test to provide a fixed server name at the point of
constructing the PaymentServer object.

Addresses GH #3285.
2023-06-28 14:25:08 -07:00
chromatic
502a8a93ce
Merge pull request #3222 from patricklodder/1.14.7-focal
build: use Ubuntu Focal for depends, ci and gitian releases
2023-06-28 14:24:13 -07:00
Patrick Lodder
e1c688dfd2
compat: link librt even if it is not needed on build host
glibc absorbed clock_gettime in 2.17. To retain backward
compatibility with systems that package glibc < 2.17, we need to
include it anyway. Until gcc-7, librt still got included with all
relevant symbols, so there was no issue and we could just use
that instead of gcc-native clock_gettime.

Since gcc-9, we need to explicitly add lrt outside the scope of
"as-needed" packages, because ld finds no reason to add a
DT_NEEDED tag for it, despite our inclusion, as the function
gets pulled from libc.so.6. Therefore, we:

1. disable "as-needed"
2. add librt
3. re-enable "as-needed" again

This way, we both force include librt, but still not link any
other unneeded libraries.

Because this is only valid for backward compatible binaries where
our build system is newer than the oldest supported OS (i.e. when
cross-compiling, running CI or gitian built releases) the -lrt flag
is now part of COMPAT_LDFLAGS instead of global "LIBS" when
configuring with --with-glibc-back-compat.

This explicit link can be removed when we drop support for glibc
versions < 2.17 (i.e. in the next major version)
2023-06-22 09:23:00 -04:00
Patrick Lodder
cb49fe3fe5
doc: depends is now maintained with ubuntu focal 2023-05-23 09:38:04 +02:00
Patrick Lodder
4b5bc2ac76
build: upgrade gitian descriptors to ubuntu focal
- update all suites to use focal
- update gcc to 9.x
- use lief wheel from https://pypi.org/project/lief/0.12.3/#files

Co-authored-by: Dakoda Greaves <dakoda@xanimo.net>
2023-05-23 09:38:04 +02:00
Dakoda Greaves
d488df5e5d
ci: add pre-install scripts
cause: msft/gha doesn't support the i386 winehq ppa, therefore we
have to use a workaround to download necessary i386 dependencies
for winehq-stable.

This adds winehq-focal.sources to and removes microsoft-prod.list
from the i686 build.

Implemented by the "add architecture" CI step into a script that
can now be customized per job.

Co-authored-by: Patrick Lodder <patricklodder@users.noreply.github.com>
2023-05-23 09:38:04 +02:00
Patrick Lodder
b65c56b0d8
ci: switch build hosts to focal
switches all CI process and codeql to use focal hosts
2023-05-23 09:37:23 +02:00
fanquake
0790ab75d1
depends: native_cctools 921, ld64 409.12, libtapi 1000.10.8
Co-Authored-By: Cory Fields <cory-nospam-@coryfields.com>
Cherry-picked from: ca5055a

Cherry-pick notes: undid the removal of -mlinker-version, as this
                   was done erroneously upstream
2023-05-05 17:55:54 +02:00
Dakoda Greaves
4ad7a450b9
depends: clang 6.0.1
This also removes some now-unnecessary cctools hacks.

Co-Authored-By: Cory Fields <cory-nospam-@coryfields.com>
2023-05-05 17:54:56 +02:00
Dakoda Greaves
4657f98839
compat: wrap fcntl and fcntl64 for 32-bit linux
On 32-bit platforms, glibc wraps fcntl to 64-bit address space
fcntl64, for reading files > 2GB. Since we don't open any files
of that size, we do not need this and can safely wrap to the old
32-bit fcntl.

Co-authored-by: Patrick Lodder <patricklodder@users.noreply.github.com>
2023-05-05 17:54:56 +02:00
Patrick Lodder
99cbe5129a
compat: wrap clock_gettime
wraps librt clock_gettime for backward compatibility with glibc
versions < 2.17.
2023-05-05 17:54:56 +02:00
Dakoda Greaves
87b1dc9300
compat: add interface overrides for libm
wraps pow.3 exp.3 and log.3 to explicitly use backward compatible
glibc symbols. this is needed to stay compatible with old linux
versions with minor releases
2023-05-05 17:54:56 +02:00
chromatic
f449518940
Merge pull request #3241 from Anish-M-code/1.14.7_dev_fix_p2p_feefilter
Update fee rate to 0.01 DOGE/kb in p2p-feefilter.py
2023-04-08 15:40:47 -07:00
ANISH M
32697ba1a8
Update fee rate to 0.01 DOGE/kb in p2p-feefilter.py
I have made an attempt to update fee rate in p2p-feefilter.py to recommended minimum transaction fee of 0.01 DOGE/kb to reflect fee rate changes made in 1.14.4 release , it is linked with issue #3201
2023-03-26 14:47:41 +05:30
chromatic
867f3bec3f
Merge pull request #3204 from patricklodder/1.14.7-better-binary-checks
devtools: backport modern security and symbol check tooling
2023-03-13 17:54:43 -07:00
chromatic
cd8dac2ec5
Merge pull request #3233 from JalinWang/1.14.7-dev_typo
fix some typos
2023-03-11 11:57:11 -08:00
Your Name
ca60d1e30b more typos 2023-03-09 14:25:14 +08:00
Your Name
9c9025a2de fix some leftover grammar problems 2023-03-09 14:18:28 +08:00
Old Dip Tracker
4c34b6ebe9
Merge pull request #3228 from Anish-M-code/1.14.7-dev
Fix array.array object has no attribute tostring() in qa/testframework/netutil.py
2023-03-03 14:23:38 -05:00
ANISH M
111f923a97
Fix array.array object has no attribute tostring()
array.tostring() was renamed to array.tobytes() for clarity in python 3.2 and further removed in python 3.9
2023-02-26 22:04:32 +05:30
Old Dip Tracker
7cd1bcbccd
Merge pull request #3224 from Anish-M-code/master
set character display limit label in Send coin dialog
2023-02-20 11:37:47 -05:00
ANISH M
d2081257db
set character display limit label in Send coin dialog
An attempt to fix  bug tx confirmation window is getting out of the screen and can't click on "send" by setting a maximum of 45 characters to not wrap lines in the label and be able to add ... if the size exceeds that.
2023-02-18 22:06:31 +05:30
chromatic
fb24715046
Merge pull request #3217 from bwarden/patch-1
Remove http log category from RPC binding-related logs
2023-02-08 09:23:01 -08:00
Brett T. Warden
f7a125431a Remove http log category from RPC binding-related logs
Implement #3216
2023-02-06 19:00:00 -08:00
chromatic
fd50cdd8f1
Merge pull request #3142 from patricklodder/1.14.7-secp256k1-rename-priv-to-sec
fix function rename in secp256k1
2023-02-06 16:49:36 -08:00
chromatic
81dbbec891
Merge pull request #3213 from patricklodder/1.14.7-array-include
net: explicitly include std::array
2023-02-05 13:33:25 -08:00
Patrick Lodder
5a5f1955f7
net: explicitly include std::array
On boost 1.81 std::array is no longer included by default and
causes a compile error on net_processing.cpp:

macOS with apple clang 14.0:

  CXX      libdogecoin_server_a-net_processing.o
net_processing.cpp:1112:47: error: implicit instantiation of undefined template 'std::array<std::pair<unsigned long long, CNode *>, 2>'
    std::array<std::pair<uint64_t, CNode*>,2> best{{{0, nullptr}, {0, nullptr}}};

debian:exprimental with gcc 12.1:

net_processing.cpp: In function 'void RelayAddress(const CAddress&, bool, CConnman&)':
net_processing.cpp:1112:47: error: variable 'std::array<std::pair<long unsigned int, CNode*>, 2> best' has initializer but incomplete type
 1112 |     std::array<std::pair<uint64_t, CNode*>,2> best{{{0, nullptr}, {0, nullptr}}};
      |

this commit fixes the problem by explicitly including <array>.
2023-02-01 01:39:51 +01:00
Old Dip Tracker
4b73ae26b6
Merge pull request #3207 from bjacquin/dev/beber/boost-1.81
compatibility with qt 5.15.8 and boost 1.81.0
2023-01-31 19:37:34 -05:00
Patrick Lodder
a77bcf0f46
build: integrate lief-based checks into gitian descriptors
Integrates modernized security and symbol checks into all bionic
gitian descriptors - uses the precompiled bionic-specific lief
wheel from depends.dogecoincore.org to save an hour build time on
each gitian host. This does require pre-downloading the wheel file
like done for the osx SDK.

- replaces python2 with python3 in descriptors
- adds python3-setuptools and python3-pip
- now requires lief-0.12.3-cp36-cp36m-linux_x86_64.whl to be
  present in the gitian-builder/inputs folder
- installs the wheel prior to installing dependencies
- enables symbol check for windows
- enables security check for osx
- adds automatic wheel download to gitian-build.sh
2023-01-22 03:56:49 +01:00
Patrick Lodder
a680438a24
ci: enable security and symbol checks for all supported targets
This enables running of security checks for macOS and symbol
checks for windows and ARM linux targets with each CI run.

Symbol checks remain disabled for debug and experimental targets
because those aren't production binary releases.

macOS symbol checks need build system patches before it will
work as intended so these have to stay disabled at this point.
2023-01-22 03:56:49 +01:00
Patrick Lodder
547f0f3712
ci: integrate lief-based security and symbol check scripts
Integrates the lief-based scripts into the GH Actions CI. This
allows the CI to maintain consistent checks for an upcoming
upgrade to Ubuntu focal for CI and Gitian.

Because lief is not distributed as a wheel for glibc < 2.17, a
custom .whl file for Ubuntu Bionic is made available on
depends.dogecoincore.org to save up to an hour that would otherwise
be spent on compiling lief from source. For current focal-based
CI jobs, this is not needed because that provides glibc > 2.17.

Each CI job has received 2 extra steps that are mutually exclusive
to make sure that the correct version is installed. When there are
no longer any Ubuntu Bionic based bionic jobs, this can be deleted
in favor of a single command in the "install packages" step.

python3-pip and python3-setuptools are now installed by default
for all CI jobs, where before this was only used for jobs that ran
the full qa test suite.
2023-01-22 03:56:36 +01:00
Patrick Lodder
167ca801ef
build: clean up security and symbol checks from makefile
Fixes calls to make check-security and make check-symbols
to have better integration with the CI and Gitian

The condition in the check-symbols target requiring the configure
flag --enable-glibc-back-compat is removed because that is
exclusive to Linux. By removing it, we enable the check for all
binaries, including those built for Windows and macOs.

Finally, removes configure.ac lines for readelf and cppfilt. Those
are no longer needed because lief is used in their stead.

squash into:
  build: clean up security and symbol checks from makefile
2023-01-22 03:55:02 +01:00
Patrick Lodder
502f0f5c28
devtools: reconfigure symbol-check for Dogecoin 1.14 targets
Reconfigures the Bitcoin 24.0.1 symbol-check.py script to honor
the maximum versions of dynamic symbols, the allowed system
dependencies and allowed symbol exports. This is important to
maintain when doing minor releases, because changes in these
would potentially lock people out of security updates.

This adds specification of the linker-loader name for i686
binaries because Bitcoin Core no longer supports that
architecture.

The spec was taken from:
https://sourceware.org/glibc/wiki/ABIList?action=recall&rev=16

Please note that:
- aarch64 binaries have had a glibc 2.17 requirement since the
  first release with 1.14.0, and therefore have a higher glibc
  target than all other linux binaries.
- All other values have been taken from the Dogecoin Core v1.14.6
  tag, commit 3a29ba6d4.
- Additional win32 and win64 needed libraries have been reverse
  engineered from 1.14.6 release binaries.
- Windows minimum version checks have been disabled, as these
  need to be set on the release binaries before we check for it.
2023-01-22 03:55:02 +01:00
Patrick Lodder
236fd879f8
devtools: disable currently unsupported security checks
Disables checks from Bitcoin 24.0.1 security-check.py code that
we currently cannot support on Dogecoin Core without changes to
the build process

    - separate-code needs linking using binutils 2.31 and/or
      explicit linking with -z,separate-code on binutils 2.30+
    - CONTROL_FLOW can be enabled after building with gcc-8
      or later. This would require at least a Ubuntu Focal
      Gitian implementation, and -fcf-protection enabled on
      the boost dependency.
    - HIGH_ENTROPY_VA and RELOC_SECTION checks for Windows
      binaries need fixes for dogecoin-cli, dogecoin-tx and
      test binaries, so that ASLR can be used for these binaries
      the same way it was done for dogecoind and dogecoin-qt.

These checks can be re-enabled once these security features are
enabled on release binaries (i.e. those built with Gitian)
2023-01-22 03:55:02 +01:00
Patrick Lodder
20eff509e8
devtools: backport lief-based security and symbol checkers
Takes the security and symbol checkers from Bitcoin Core v24.0.1
because this uses the python3 capable lief module for reading
multi-platform binaries. This helps getting rid of
incompatibilities when using these tools in Ubuntu releases newer
than Bionic (18.04) and by using the external module, reduces risk
and maintenance cost of custom code.

This commit does NOT reconfigure for Dogecoin 1.14.7 parametrization

Backported from state at: b3f866a8@bitcoin/bitcoin
2023-01-22 03:55:01 +01:00
Bertrand Jacquin
728369efbf
Remove Q_FOREACH
dogecoin fails to build with qt 5.15.8:

  x86_64-pc-linux-gnu-g++ -std=c++11 -DHAVE_CONFIG_H -I. -I../src/config   -I. -I./obj -I/usr/include/db5.3/ -pthread -I/usr/include -I./leveldb/include -I./leveldb/helpers/memenv   -I./secp256k1/include  -I./qt -I./qt -I./qt/forms -I./qt/forms -DQT_NO_KEYWORDS -I/usr/include/qt5/QtCore -I/usr/include/qt5 -I/usr/include/qt5/QtGui -DQT_NETWORK_LIB -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtWidgets -DQT_PRINTSUPPORT_LIB -I/usr/include/qt5/QtPrintSupport -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -DQT_DBUS_LIB -I/usr/include/qt5/QtDBus -I/usr/include/qt5 -DQT_CORE_LIB -I/usr/include/qt5/QtCore    -I/usr/include/db5.3 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS   -fPIC -march=native -O2 -pipe -fomit-frame-pointer -c -o qt/libdogecoinqt_a-paymentserver.o `test -f 'qt/paymentserver.cpp' || echo './'`qt/paymentserver.cpp
  qt/paymentserver.cpp:556:70: error: macro "Q_FOREACH_IMPL" passed 4 arguments, but takes just 3
    556 |     Q_FOREACH(const PAIRTYPE(CScript, CAmount)& sendingTo, sendingTos) {
        |                                                                      ^
  In file included from /usr/include/qt5/QtCore/qatomic.h:41,
                   from /usr/include/qt5/QtCore/qrefcount.h:43,
                   from /usr/include/qt5/QtCore/qbytearray.h:44,
                   from /usr/include/qt5/QtCore/QByteArray:1,
                   from qt/paymentrequestplus.h:17,
                   from qt/paymentserver.h:35,
                   from qt/paymentserver.cpp:6:
2023-01-21 02:44:02 +00:00
Bertrand Jacquin
cc82ecaeec
test: include deque
boost 1.81.0 requires deque to be included directly:

  x86_64-pc-linux-gnu-g++ -std=c++11 -DHAVE_CONFIG_H -I. -I../src/config   -I. -I./obj -I/usr/include/db5.3/ -pthread -I/usr/include -I./leveldb/include -I./leveldb/helpers/memenv   -I./secp256k1/include  -I./test/ -DBOOST_TEST_DYN_LINK  -I/usr/include/db5.3 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS    -march=native -O2 -pipe -fomit-frame-pointer -c -o test/test_dogecoin-cuckoocache_tests.o `test -f 'test/cuckoocache_tests.cpp' || echo './'`test/cuckoocache_tests.cpp
test/cuckoocache_tests.cpp: In function ‘void cuckoocache_tests::test_cache_generations()’:
test/cuckoocache_tests.cpp:359:10: error: ‘deque’ is not a member of ‘std’
    359 |     std::deque<block_activity> last_few;
        |          ^~~~~
  test/cuckoocache_tests.cpp:9:1: note: ‘std::deque’ is defined in header ‘<deque>’; did you forget to ‘#include <deque>’?
      8 | #include <thread>
    +++ |+#include <deque>
      9 | #include <boost/thread.hpp>
  test/cuckoocache_tests.cpp:359:30: error: expected primary-expression before ‘>’ token
    359 |     std::deque<block_activity> last_few;
        |                              ^
  test/cuckoocache_tests.cpp:359:32: error: ‘last_few’ was not declared in this scope
    359 |     std::deque<block_activity> last_few;
        |                                ^~~~~~~~
  make[2]: *** [Makefile:9046: test/test_dogecoin-cuckoocache_tests.o] Error 1
2023-01-21 01:38:35 +00:00
Old Dip Tracker
cf79c44373
Merge pull request #3144 from xanimo/1.14.7-dev-depends-bump-pkgs-python3
depends: use python3 in native_biplist/ds_store/mac_alias.mk
2023-01-17 15:05:31 -05:00
chromatic
1603e8fc95
Merge pull request #3196 from NinVoido/new-year-fix
LICENSE: Update year to 2023
2023-01-14 11:55:39 -08:00
chromatic
af022ca76e
Merge pull request #3205 from patricklodder/1.14-update-codeql
qa: update codeql to v2 and standard actions to v3
2023-01-14 09:53:14 -08:00
Patrick Lodder
4310e0be23
qa: update codeql to v2 and standard actions to v3
This is needed because v1 will see final eol on 2023/01/18
2023-01-13 22:27:15 +01:00
Dakoda Greaves
db5336148b
gitian: change python to python3 in osx descriptor 2023-01-13 13:21:54 -08:00
bluezr
8e40d1140f
depends: use python3 in native_biplist/ds_store/mac_alias.mk
-instead of using python-is-python3 update native_biplist.mk, native_ds_store.mk and native_mac_alias.mk files to use python3
2023-01-13 13:21:54 -08:00