summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorskrewball2022-05-27 16:09:11 -0300
committerskrewball2022-05-27 16:09:11 -0300
commitac842d1f08bf143a4f9fd5f2ed6a6ed7b2f0b061 (patch)
tree9ba01b0c0bec2fbc95458ef56896f8edd3baacc3
downloadaur-ac842d1f08bf143a4f9fd5f2ed6a6ed7b2f0b061.tar.gz
Release new split package
-rw-r--r--.SRCINFO60
-rw-r--r--.gitignore5
-rw-r--r--001-pirate-pr83-cpp.patch281
-rw-r--r--PKGBUILD95
4 files changed, 441 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..9538c245e327
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,60 @@
+pkgbase = pirate
+ pkgdesc = Pirate Chain (ARRR) - Untraceable, Anonymous, Private Cryptocurrency
+ pkgver = 5.4.2
+ pkgrel = 1
+ url = https://github.com/PirateNetwork/pirate
+ arch = x86_64
+ groups = pirate
+ license = MIT
+ makedepends = boost
+ makedepends = cmake
+ makedepends = ccache
+ makedepends = clang
+ makedepends = curl
+ makedepends = expat
+ makedepends = gmock
+ makedepends = libcurl-gnutls
+ makedepends = openssl
+ makedepends = libsodium
+ makedepends = libevent
+ makedepends = python
+ makedepends = qt5-tools
+ makedepends = rust
+ makedepends = utf8cpp
+ makedepends = wget
+ makedepends = desktop-file-utils
+ depends = boost-libs
+ depends = libevent
+ depends = miniupnpc
+ depends = protobuf
+ depends = zeromq
+ conflicts = treasure-chest
+ conflicts = treasure-chest-bin
+ replaces = treasure-chest
+ replaces = treasure-chest-bin
+ source = pirate-5.4.2.tar.gz::https://github.com/PirateNetwork/pirate/archive/refs/tags/v5.4.2.tar.gz
+ source = https://download.oracle.com/berkeley-db/db-6.2.32.tar.gz
+ source = 001-pirate-pr83-cpp.patch
+ sha256sums = 8190670acc7a726e86f0ce5a4f4657601c9503c12ce3e4984146daeed90ac950
+ sha256sums = a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb
+ sha256sums = 804b0d8ecfba1b04bd229b06f37c8fc5b4a955082d2248ce09ecedf90395ca10
+
+pkgname = pirate-qt
+ pkgdesc = Pirate Chain (ARRR) - Untraceable, Anonymous, Private Cryptocurrency - GUI
+ depends = boost-libs
+ depends = libevent
+ depends = miniupnpc
+ depends = protobuf
+ depends = zeromq
+ depends = hicolor-icon-theme
+ depends = qt5-base
+ depends = qrencode
+ optdepends = libappindicator-gtk3: system tray support
+ optdepends = libnotify: desktop notification support
+ provides = pirate-qt
+
+pkgname = pirate-cli
+ pkgdesc = Pirate Chain (ARRR) - Untraceable, Anonymous, Private Cryptocurrency - CLI
+ provides = pirate-cli
+ provides = pirate-tx
+ provides = pirated
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..001f57ef377e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+*
+!001-pirate-pr83-cpp.patch
+!PKGBUILD
+!.SRCINFO
+!.gitignore
diff --git a/001-pirate-pr83-cpp.patch b/001-pirate-pr83-cpp.patch
new file mode 100644
index 000000000000..1eea2703401e
--- /dev/null
+++ b/001-pirate-pr83-cpp.patch
@@ -0,0 +1,281 @@
+diff '--color=auto' --unified --recursive --text a/src/cc/dilithium.c b/src/cc/dilithium.c
+--- a/src/cc/dilithium.c 2022-03-09 02:21:07.000000000 -0400
++++ b/src/cc/dilithium.c 2022-03-21 23:37:14.851924244 -0300
+@@ -3319,7 +3319,7 @@
+ UniValue dilithium_spend(uint64_t txfee,struct CCcontract_info *cp,cJSON *params)
+ {
+ CMutableTransaction mtx = CreateNewContextualCMutableTransaction(Params().GetConsensus(), komodo_nextheight());
+- UniValue result(UniValue::VOBJ); std::string rawtx; CPubKey mypk,destpub33; CTransaction vintx; uint256 prevhash,hashBlock,destpubtxid; int32_t i,smlen,n,numvouts; char str[129],*scriptstr,*retstr=""; CTxOut vout; std::string handle; uint8_t pk[CRYPTO_PUBLICKEYBYTES],pk2[CRYPTO_PUBLICKEYBYTES],sk[CRYPTO_SECRETKEYBYTES],msg[32],seed[32]; std::vector<uint8_t> sig;
++ UniValue result(UniValue::VOBJ); std::string rawtx; CPubKey mypk,destpub33; CTransaction vintx; uint256 prevhash,hashBlock,destpubtxid; int32_t i,smlen,n,numvouts; char str[129],*scriptstr; const char *retstr=""; CTxOut vout; std::string handle; uint8_t pk[CRYPTO_PUBLICKEYBYTES],pk2[CRYPTO_PUBLICKEYBYTES],sk[CRYPTO_SECRETKEYBYTES],msg[32],seed[32]; std::vector<uint8_t> sig;
+ if ( txfee == 0 )
+ txfee = DILITHIUM_TXFEE;
+ mypk = pubkey2pk(Mypubkey());
+@@ -3415,7 +3415,7 @@
+ UniValue dilithium_Qsend(uint64_t txfee,struct CCcontract_info *cp,cJSON *params)
+ {
+ CMutableTransaction mtx = CreateNewContextualCMutableTransaction(Params().GetConsensus(), komodo_nextheight());
+- UniValue result(UniValue::VOBJ); std::string rawtx; CPubKey mypk,destpub33; CTransaction tx,vintx; uint256 prevhash,mypubtxid,hashBlock,destpubtxid; int64_t amount,inputsum,outputsum,change; int32_t i,smlen,n,numvouts; char str[129],myCCaddr[64],*scriptstr,*retstr=""; CTxOut vout; std::string handle; uint8_t pk[CRYPTO_PUBLICKEYBYTES],pk2[CRYPTO_PUBLICKEYBYTES],sk[CRYPTO_SECRETKEYBYTES],msg[32],seed[32]; std::vector<uint8_t> sig; std::vector<uint256> voutpubtxids;
++ UniValue result(UniValue::VOBJ); std::string rawtx; CPubKey mypk,destpub33; CTransaction tx,vintx; uint256 prevhash,mypubtxid,hashBlock,destpubtxid; int64_t amount,inputsum,outputsum,change; int32_t i,smlen,n,numvouts; char str[129],myCCaddr[64],*scriptstr; const char *retstr=""; CTxOut vout; std::string handle; uint8_t pk[CRYPTO_PUBLICKEYBYTES],pk2[CRYPTO_PUBLICKEYBYTES],sk[CRYPTO_SECRETKEYBYTES],msg[32],seed[32]; std::vector<uint8_t> sig; std::vector<uint256> voutpubtxids;
+ if ( txfee == 0 )
+ txfee = DILITHIUM_TXFEE;
+ mypk = pubkey2pk(Mypubkey());
+diff '--color=auto' --unified --recursive --text a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
+--- a/src/qt/clientmodel.cpp 2022-03-09 02:21:07.000000000 -0400
++++ b/src/qt/clientmodel.cpp 2022-03-22 00:52:21.829580941 -0300
+@@ -28,6 +28,7 @@
+
+ static int64_t nLastHeaderTipUpdateNotification = 0;
+ static int64_t nLastBlockTipUpdateNotification = 0;
++namespace ph = std::placeholders;
+
+ ClientModel::ClientModel(OptionsModel *_optionsModel, QObject *parent) :
+ QObject(parent),
+@@ -308,23 +309,23 @@
+ void ClientModel::subscribeToCoreSignals()
+ {
+ // Connect signals to client
+- uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2, _3));
+- uiInterface.NotifyNumConnectionsChanged.connect(boost::bind(NotifyNumConnectionsChanged, this, _1));
+- uiInterface.NotifyNetworkActiveChanged.connect(boost::bind(NotifyNetworkActiveChanged, this, _1));
++ uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, ph::_1, ph::_2, ph::_3));
++ uiInterface.NotifyNumConnectionsChanged.connect(boost::bind(NotifyNumConnectionsChanged, this, ph::_1));
++ uiInterface.NotifyNetworkActiveChanged.connect(boost::bind(NotifyNetworkActiveChanged, this, ph::_1));
+ uiInterface.NotifyAlertChanged.connect(boost::bind(NotifyAlertChanged, this));
+ uiInterface.BannedListChanged.connect(boost::bind(BannedListChanged, this));
+- uiInterface.NotifyBlockTip.connect(boost::bind(BlockTipChanged, this, _1, _2, false));
+- uiInterface.NotifyHeaderTip.connect(boost::bind(BlockTipChanged, this, _1, _2, true));
++ uiInterface.NotifyBlockTip.connect(boost::bind(BlockTipChanged, this, ph::_1, ph::_2, false));
++ uiInterface.NotifyHeaderTip.connect(boost::bind(BlockTipChanged, this, ph::_1, ph::_2, true));
+ }
+
+ void ClientModel::unsubscribeFromCoreSignals()
+ {
+ // Disconnect signals from client
+- uiInterface.ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2, _3));
+- uiInterface.NotifyNumConnectionsChanged.disconnect(boost::bind(NotifyNumConnectionsChanged, this, _1));
+- uiInterface.NotifyNetworkActiveChanged.disconnect(boost::bind(NotifyNetworkActiveChanged, this, _1));
++ uiInterface.ShowProgress.disconnect(boost::bind(ShowProgress, this, ph::_1, ph::_2, ph::_3));
++ uiInterface.NotifyNumConnectionsChanged.disconnect(boost::bind(NotifyNumConnectionsChanged, this, ph::_1));
++ uiInterface.NotifyNetworkActiveChanged.disconnect(boost::bind(NotifyNetworkActiveChanged, this, ph::_1));
+ uiInterface.NotifyAlertChanged.disconnect(boost::bind(NotifyAlertChanged, this));
+ uiInterface.BannedListChanged.disconnect(boost::bind(BannedListChanged, this));
+- uiInterface.NotifyBlockTip.disconnect(boost::bind(BlockTipChanged, this, _1, _2, false));
+- uiInterface.NotifyHeaderTip.disconnect(boost::bind(BlockTipChanged, this, _1, _2, true));
++ uiInterface.NotifyBlockTip.disconnect(boost::bind(BlockTipChanged, this, ph::_1, ph::_2, false));
++ uiInterface.NotifyHeaderTip.disconnect(boost::bind(BlockTipChanged, this, ph::_1, ph::_2, true));
+ }
+diff '--color=auto' --unified --recursive --text a/src/qt/pirateoceangui.cpp b/src/qt/pirateoceangui.cpp
+--- a/src/qt/pirateoceangui.cpp 2022-03-09 02:21:07.000000000 -0400
++++ b/src/qt/pirateoceangui.cpp 2022-03-22 00:55:08.334886036 -0300
+@@ -66,6 +66,8 @@
+ #include <QUrlQuery>
+ #endif
+
++namespace ph = std::placeholders;
++
+ extern int nMaxConnections; //From net.h
+ extern bool bOverrideMaxConnections;
+
+@@ -1459,15 +1461,15 @@
+ void PirateOceanGUI::subscribeToCoreSignals()
+ {
+ // Connect signals to client
+- uiInterface.ThreadSafeMessageBox.connect(boost::bind(ThreadSafeMessageBox, this, _1, _2, _3));
+- uiInterface.ThreadSafeQuestion.connect(boost::bind(ThreadSafeMessageBox, this, _1, _3, _4));
++ uiInterface.ThreadSafeMessageBox.connect(boost::bind(ThreadSafeMessageBox, this, ph::_1, ph::_2, ph::_3));
++ uiInterface.ThreadSafeQuestion.connect(boost::bind(ThreadSafeMessageBox, this, ph::_1, ph::_3, ph::_4));
+ }
+
+ void PirateOceanGUI::unsubscribeFromCoreSignals()
+ {
+ // Disconnect signals from client
+- uiInterface.ThreadSafeMessageBox.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _2, _3));
+- uiInterface.ThreadSafeQuestion.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _3, _4));
++ uiInterface.ThreadSafeMessageBox.disconnect(boost::bind(ThreadSafeMessageBox, this, ph::_1, ph::_2, ph::_3));
++ uiInterface.ThreadSafeQuestion.disconnect(boost::bind(ThreadSafeMessageBox, this, ph::_1, ph::_3, ph::_4));
+ }
+
+ void PirateOceanGUI::toggleNetworkActive()
+diff '--color=auto' --unified --recursive --text a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp
+--- a/src/qt/splashscreen.cpp 2022-03-09 02:21:07.000000000 -0400
++++ b/src/qt/splashscreen.cpp 2022-03-22 00:57:56.871219346 -0300
+@@ -44,6 +44,8 @@
+ #include <QLabel>
+ #include <QMessageBox>
+
++namespace ph = std::placeholders;
++
+ SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) :
+ QWidget(0, f), curAlignment(0)
+ {
+@@ -416,8 +418,8 @@
+ uiInterface.InitNeedUnlockWallet.connect(boost::bind(NeedUnlockWallet, this));
+ uiInterface.InitCreateWallet.connect(boost::bind(showCreateWallet, this));
+ uiInterface.InitShowPhrase.connect(boost::bind(showNewPhrase, this));
+- uiInterface.InitMessage.connect(boost::bind(InitMessage, this, _1));
+- uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2, _3));
++ uiInterface.InitMessage.connect(boost::bind(InitMessage, this, ph::_1));
++ uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, ph::_1, ph::_2, ph::_3));
+ }
+
+ void SplashScreen::unsubscribeFromCoreSignals()
+@@ -426,8 +428,8 @@
+ uiInterface.InitNeedUnlockWallet.disconnect(boost::bind(NeedUnlockWallet, this));
+ uiInterface.InitCreateWallet.disconnect(boost::bind(showCreateWallet, this));
+ uiInterface.InitShowPhrase.disconnect(boost::bind(showNewPhrase, this));
+- uiInterface.InitMessage.disconnect(boost::bind(InitMessage, this, _1));
+- uiInterface.ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2, _3));
++ uiInterface.InitMessage.disconnect(boost::bind(InitMessage, this, ph::_1));
++ uiInterface.ShowProgress.disconnect(boost::bind(ShowProgress, this, ph::_1, ph::_2, ph::_3));
+
+ }
+
+diff '--color=auto' --unified --recursive --text a/src/qt/trafficgraphwidget.cpp b/src/qt/trafficgraphwidget.cpp
+--- a/src/qt/trafficgraphwidget.cpp 2022-03-09 02:21:07.000000000 -0400
++++ b/src/qt/trafficgraphwidget.cpp 2022-03-22 00:46:45.119000207 -0300
+@@ -6,6 +6,7 @@
+ #include "clientmodel.h"
+
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QColor>
+ #include <QTimer>
+
+diff '--color=auto' --unified --recursive --text a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp
+--- a/src/qt/transactiontablemodel.cpp 2022-03-09 02:21:07.000000000 -0400
++++ b/src/qt/transactiontablemodel.cpp 2022-03-22 00:56:31.387541782 -0300
+@@ -28,6 +28,8 @@
+ #include <QList>
+ #include <QSettings>
+
++namespace ph = std::placeholders;
++
+ // Amount column is right-aligned it contains numbers
+ static int column_alignments[] = {
+ Qt::AlignLeft|Qt::AlignVCenter, /* status */
+@@ -972,13 +974,13 @@
+ void TransactionTableModel::subscribeToCoreSignals()
+ {
+ // Connect signals to wallet
+- wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
+- wallet->ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2));
++ wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, ph::_1, ph::_2, ph::_3));
++ wallet->ShowProgress.connect(boost::bind(ShowProgress, this, ph::_1, ph::_2));
+ }
+
+ void TransactionTableModel::unsubscribeFromCoreSignals()
+ {
+ // Disconnect signals from wallet
+- wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
+- wallet->ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2));
++ wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, ph::_1, ph::_2, ph::_3));
++ wallet->ShowProgress.disconnect(boost::bind(ShowProgress, this, ph::_1, ph::_2));
+ }
+diff '--color=auto' --unified --recursive --text a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
+--- a/src/qt/walletmodel.cpp 2022-03-09 02:21:07.000000000 -0400
++++ b/src/qt/walletmodel.cpp 2022-03-22 01:01:25.055878525 -0300
+@@ -48,6 +48,8 @@
+ #include <QTimer>
+ #include <QSettings>
+
++namespace ph = std::placeholders;
++
+ /* from rpcwallet.cpp */
+ extern CAmount getBalanceTaddr(std::string transparentAddress, int minDepth=1, bool ignoreUnspendable=true);
+ extern uint64_t komodo_interestsum();
+@@ -1256,11 +1258,11 @@
+ // Connect signals to wallet
+ wallet->NotifyRescanStarted.connect(boost::bind(NotifyRescanStarted, this));
+ wallet->NotifyRescanComplete.connect(boost::bind(NotifyRescanStarted, this));
+- wallet->NotifyStatusChanged.connect(boost::bind(&NotifyKeyStoreStatusChanged, this, _1));
+- wallet->NotifyAddressBookChanged.connect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5, _6));
+- wallet->NotifyZAddressBookChanged.connect(boost::bind(NotifyZAddressBookChanged, this, _1, _2, _3, _4, _5, _6));
+- wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
+- wallet->NotifyWatchonlyChanged.connect(boost::bind(NotifyWatchonlyChanged, this, _1));
++ wallet->NotifyStatusChanged.connect(boost::bind(&NotifyKeyStoreStatusChanged, this, ph::_1));
++ wallet->NotifyAddressBookChanged.connect(boost::bind(NotifyAddressBookChanged, this, ph::_1, ph::_2, ph::_3, ph::_4, ph::_5, ph::_6));
++ wallet->NotifyZAddressBookChanged.connect(boost::bind(NotifyZAddressBookChanged, this, ph::_1, ph::_2, ph::_3, ph::_4, ph::_5, ph::_6));
++ wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, ph::_1, ph::_2, ph::_3));
++ wallet->NotifyWatchonlyChanged.connect(boost::bind(NotifyWatchonlyChanged, this, ph::_1));
+ }
+
+ void WalletModel::unsubscribeFromCoreSignals()
+@@ -1268,11 +1270,11 @@
+ // Disconnect signals from wallet
+ wallet->NotifyRescanStarted.disconnect(boost::bind(NotifyRescanStarted, this));
+ wallet->NotifyRescanComplete.disconnect(boost::bind(NotifyRescanStarted, this));
+- wallet->NotifyStatusChanged.disconnect(boost::bind(&NotifyKeyStoreStatusChanged, this, _1));
+- wallet->NotifyAddressBookChanged.disconnect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5, _6));
+- wallet->NotifyZAddressBookChanged.disconnect(boost::bind(NotifyZAddressBookChanged, this, _1, _2, _3, _4, _5, _6));
+- wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
+- wallet->NotifyWatchonlyChanged.disconnect(boost::bind(NotifyWatchonlyChanged, this, _1));
++ wallet->NotifyStatusChanged.disconnect(boost::bind(&NotifyKeyStoreStatusChanged, this, ph::_1));
++ wallet->NotifyAddressBookChanged.disconnect(boost::bind(NotifyAddressBookChanged, this, ph::_1, ph::_2, ph::_3, ph::_4, ph::_5, ph::_6));
++ wallet->NotifyZAddressBookChanged.disconnect(boost::bind(NotifyZAddressBookChanged, this, ph::_1, ph::_2, ph::_3, ph::_4, ph::_5, ph::_6));
++ wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, ph::_1, ph::_2, ph::_3));
++ wallet->NotifyWatchonlyChanged.disconnect(boost::bind(NotifyWatchonlyChanged, this, ph::_1));
+ }
+
+ // WalletModel::UnlockContext implementation
+diff '--color=auto' --unified --recursive --text a/src/validationinterface.cpp b/src/validationinterface.cpp
+--- a/src/validationinterface.cpp 2022-03-09 02:21:07.000000000 -0400
++++ b/src/validationinterface.cpp 2022-03-22 00:12:41.660953877 -0300
+@@ -6,6 +6,7 @@
+ #include "validationinterface.h"
+
+ static CMainSignals g_signals;
++namespace ph = std::placeholders;
+
+ CMainSignals& GetMainSignals()
+ {
+@@ -13,27 +14,27 @@
+ }
+
+ void RegisterValidationInterface(CValidationInterface* pwalletIn) {
+- g_signals.UpdatedBlockTip.connect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, _1));
+- g_signals.SyncTransaction.connect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, _1, _2, _3));
+- g_signals.EraseTransaction.connect(boost::bind(&CValidationInterface::EraseFromWallet, pwalletIn, _1));
+- g_signals.UpdatedTransaction.connect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1));
++ g_signals.UpdatedBlockTip.connect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, ph::_1));
++ g_signals.SyncTransaction.connect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, ph::_1, ph::_2, ph::_3));
++ g_signals.EraseTransaction.connect(boost::bind(&CValidationInterface::EraseFromWallet, pwalletIn, ph::_1));
++ g_signals.UpdatedTransaction.connect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, ph::_1));
+ g_signals.RescanWallet.connect(boost::bind(&CValidationInterface::RescanWallet, pwalletIn));
+- g_signals.ChainTip.connect(boost::bind(&CValidationInterface::ChainTip, pwalletIn, _1, _2, _3, _4, _5));
+- g_signals.Inventory.connect(boost::bind(&CValidationInterface::Inventory, pwalletIn, _1));
+- g_signals.Broadcast.connect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1));
+- g_signals.BlockChecked.connect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2));
++ g_signals.ChainTip.connect(boost::bind(&CValidationInterface::ChainTip, pwalletIn, ph::_1, ph::_2, ph::_3, ph::_4, ph::_5));
++ g_signals.Inventory.connect(boost::bind(&CValidationInterface::Inventory, pwalletIn, ph::_1));
++ g_signals.Broadcast.connect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, ph::_1));
++ g_signals.BlockChecked.connect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, ph::_1, ph::_2));
+ }
+
+ void UnregisterValidationInterface(CValidationInterface* pwalletIn) {
+- g_signals.BlockChecked.disconnect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2));
+- g_signals.Broadcast.disconnect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1));
+- g_signals.Inventory.disconnect(boost::bind(&CValidationInterface::Inventory, pwalletIn, _1));
+- g_signals.ChainTip.disconnect(boost::bind(&CValidationInterface::ChainTip, pwalletIn, _1, _2, _3, _4, _5));
+- g_signals.UpdatedTransaction.disconnect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1));
+- g_signals.EraseTransaction.disconnect(boost::bind(&CValidationInterface::EraseFromWallet, pwalletIn, _1));
+- g_signals.SyncTransaction.disconnect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, _1, _2, _3));
++ g_signals.BlockChecked.disconnect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, ph::_1, ph::_2));
++ g_signals.Broadcast.disconnect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, ph::_1));
++ g_signals.Inventory.disconnect(boost::bind(&CValidationInterface::Inventory, pwalletIn, ph::_1));
++ g_signals.ChainTip.disconnect(boost::bind(&CValidationInterface::ChainTip, pwalletIn, ph::_1, ph::_2, ph::_3, ph::_4, ph::_5));
++ g_signals.UpdatedTransaction.disconnect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, ph::_1));
++ g_signals.EraseTransaction.disconnect(boost::bind(&CValidationInterface::EraseFromWallet, pwalletIn, ph::_1));
++ g_signals.SyncTransaction.disconnect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, ph::_1, ph::_2, ph::_3));
+ g_signals.RescanWallet.disconnect(boost::bind(&CValidationInterface::RescanWallet, pwalletIn));
+- g_signals.UpdatedBlockTip.disconnect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, _1));
++ g_signals.UpdatedBlockTip.disconnect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, ph::_1));
+ }
+
+ void UnregisterAllValidationInterfaces() {
+@@ -58,4 +59,4 @@
+
+ void RescanWallets() {
+ g_signals.RescanWallet();
+-}
+\ No newline at end of file
++}
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..2faacc5de04e
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,95 @@
+# Maintainer: skrewball <aur at joickle dot com>
+
+pkgbase=pirate
+pkgname=('pirate-qt' 'pirate-cli')
+pkgver=5.4.2
+pkgrel=1
+pkgdesc="Pirate Chain (ARRR) - Untraceable, Anonymous, Private Cryptocurrency"
+arch=('x86_64')
+url='https://github.com/PirateNetwork/pirate'
+license=('MIT')
+groups=('pirate')
+
+depends=('boost-libs' 'libevent' 'miniupnpc' 'protobuf' 'zeromq')
+makedepends=('boost' 'cmake' 'ccache' 'clang' 'curl' 'expat' 'gmock' 'libcurl-gnutls' 'openssl'
+ 'libsodium' 'libevent' 'python' 'qt5-tools' 'rust' 'utf8cpp' 'wget' 'desktop-file-utils')
+conflicts=('treasure-chest' 'treasure-chest-bin')
+replaces=('treasure-chest' 'treasure-chest-bin')
+
+_db_version=6.2.32
+source=("${pkgbase}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz"
+ "https://download.oracle.com/berkeley-db/db-${_db_version}.tar.gz"
+ "001-pirate-pr83-cpp.patch")
+sha256sums=('8190670acc7a726e86f0ce5a4f4657601c9503c12ce3e4984146daeed90ac950'
+ 'a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb'
+ '804b0d8ecfba1b04bd229b06f37c8fc5b4a955082d2248ce09ecedf90395ca10')
+
+prepare() {
+ # Grab the .desktop file and patch it
+ mv ${pkgbase}-${pkgver}/zcutil/deb/desktopentry ${pkgbase}-qt.desktop
+ sed -e "s|Exec=.*|Exec=/usr/bin/${pkgbase}-qt %u|g" \
+ -e "s|Icon=.*|Icon=${pkgbase}|g" \
+ -i ${pkgbase}-qt.desktop
+ # Patch source to build on newer library versions
+ # MR: https://github.com/PirateNetwork/pirate/pull/83
+ cd "${pkgbase}-${pkgver}"
+ patch -Np1 -i ../001-pirate-pr83-cpp.patch
+}
+
+build() {
+ cd "db-${_db_version}/build_unix"
+ ../dist/configure \
+ --prefix=/ \
+ --disable-shared \
+ --enable-cxx \
+ --disable-replication \
+ --enable-option-checking \
+ --with-pic
+ make
+ make DESTDIR="${srcdir}/libs" install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ # Include built db and other needed vars
+ CPPFLAGS="${CPPFLAGS} -I${srcdir}/libs/include -I/usr/include/utf8cpp"
+ LDFLAGS="${LDFLAGS} -L${srcdir}/libs/lib"
+ CXXFLAGS="${CXXFLAGS} -g0 -O2"
+ rust_target=$(RUSTC_BOOTSTRAP=1 rustc -Z unstable-options --print target-spec-json | python -c 'import json,sys;obj=json.load(sys.stdin);print(obj["llvm-target"])')
+
+ ./autogen.sh
+ ./configure --prefix=/usr \
+ --with-gui=qt5 \
+ --disable-bip70 \
+ --enable-tests=no \
+ --enable-wallet=yes \
+ --enable-hardening \
+ --enable-proton=no \
+ --enable-online-rust
+ make RUST_TARGET="${rust_target}"
+}
+
+package_pirate-qt() {
+ # Package Pirate QT GUI
+ pkgdesc+=" - GUI"
+ depends+=('hicolor-icon-theme' 'qt5-base' 'qrencode')
+ optdepends=('libappindicator-gtk3: system tray support'
+ 'libnotify: desktop notification support')
+ provides=('pirate-qt')
+
+ desktop-file-install --dir="${pkgdir}/usr/share/applications" ${pkgname}.desktop
+ cd "${pkgbase}-${pkgver}"
+ install -Dm755 src/qt/komodo-qt "${pkgdir}/usr/bin/${pkgname}"
+ install -Dm644 zcutil/deb/${pkgbase}.xpm "${pkgdir}/usr/share/pixmaps/${pkgbase}.xpm"
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
+
+package_pirate-cli() {
+ # Package Pirate CLI
+ pkgdesc+=" - CLI"
+ provides=('pirate-cli' 'pirate-tx' 'pirated')
+
+ cd "${pkgbase}-${pkgver}"
+ install -Dm755 src/${pkgname} "${pkgdir}/usr/bin/${pkgname}"
+ install -Dm755 src/${pkgbase}-tx "${pkgdir}/usr/bin/${pkgbase}-tx"
+ install -Dm755 src/${pkgbase}d "${pkgdir}/usr/bin/${pkgbase}d"
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}