Refactor libarchive linking and add to guix manifest

Fix toolchain

Patch 2

Patch 3

Patch 4

Patch 5

Patch 6

patch 7

Patch 8

Patch 9

Patch 11
This commit is contained in:
twiddle 2024-08-24 09:37:30 -04:00
parent ac3d07257d
commit f4d27d56d4
9 changed files with 51 additions and 16 deletions

View file

@ -16,14 +16,14 @@ set(COPYRIGHT_YEAR "2024")
set(COPYRIGHT_HOLDERS "The Monero Project") set(COPYRIGHT_HOLDERS "The Monero Project")
# Configurable options # Configurable options
option(STATIC "Link libraries statically, requires static Qt" OFF) option(STATIC "Link libraries statically, requires static Qt" ON)
option(SELF_CONTAINED "Disable when building Feather for packages" OFF) option(SELF_CONTAINED "Disable when building Feather for packages" OFF)
option(TOR_DIR "Directory containing Tor binaries to embed inside Feather" OFF) option(TOR_DIR "Directory containing Tor binaries to embed inside Feather" OFF)
option(CHECK_UPDATES "Enable checking for application updates" ON) option(CHECK_UPDATES "Enable checking for application updates" ON)
option(PLATFORM_INSTALLER "Built-in updater fetches installer (windows-only)" OFF) option(PLATFORM_INSTALLER "Built-in updater fetches installer (windows-only)" OFF)
option(USE_DEVICE_TREZOR "Trezor support compilation" ON) option(USE_DEVICE_TREZOR "Trezor support compilation" ON)
option(DONATE_BEG "Prompt donation window every once in a while" OFF) option(DONATE_BEG "Prompt donation window every once in a while" OFF)
option(WITH_SCANNER "Enable webcam QR scanner" ON) option(WITH_SCANNER "Enable webcam QR scanner" OFF)
option(STACK_TRACE "Dump stack trace on crash (Linux only)" OFF) option(STACK_TRACE "Dump stack trace on crash (Linux only)" OFF)
# #

View file

@ -0,0 +1,25 @@
package=libarchive
$(package)_version=3.7.4
$(package)_download_path=https://github.com/libarchive/libarchive/releases/download/v$($(package)_version)/
$(package)_file_name=$(package)-$($(package)_version).tar.xz
$(package)_sha256_hash=f887755c434a736a609cbd28d87ddbfbe9d6a3bb5b703c22c02f6af80a802735
define $(package)_config_cmds
CC="$($(package)_cc)" \
CXX="$($(package)_cxx)" \
AR="$($(package)_ar)" \
RANLIB="$($(package)_ranlib)" \
LIBTOOL="$($(package)_libtool)" \
LDLAGS="$($(package)_ldflags)" \
CFLAGS="-fPIE" \
CXXFLAGS="-fPIE" \
./configure --host=$(host) --enable-static --prefix=$(host_prefix) --without-iconv
endef
define $(package)_build_cmds
$(MAKE)
endef
define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef

View file

@ -1,4 +1,4 @@
packages := boost openssl libiconv unbound qrencode libsodium polyseed hidapi protobuf libusb zlib libgpg-error libgcrypt expat libzip zxing-cpp packages := boost openssl libiconv unbound qrencode libsodium polyseed hidapi protobuf libusb zlib libgpg-error libgcrypt expat libzip zxing-cpp libarchive
native_packages := native_qt native_protobuf native_packages := native_qt native_protobuf
linux_packages := eudev libfuse libsquashfuse zstd appimage_runtime linux_packages := eudev libfuse libsquashfuse zstd appimage_runtime

View file

@ -29,6 +29,9 @@ SET(ENV{PKG_CONFIG_PATH} @prefix@/lib/pkgconfig)
SET(TOR_DIR @prefix@/Tor CACHE STRING "Tor dir") SET(TOR_DIR @prefix@/Tor CACHE STRING "Tor dir")
SET(TOR_VERSION @tor_version@ CACHE STRING "Tor version") SET(TOR_VERSION @tor_version@ CACHE STRING "Tor version")
SET(LibArchive_LIBRARIES @prefix@/lib/libarchive.a)
SET(LibArchive_INCLUDE_DIR @prefix@/include/)
SET(Readline_ROOT_DIR @prefix@) SET(Readline_ROOT_DIR @prefix@)
SET(Readline_INCLUDE_DIR @prefix@/include) SET(Readline_INCLUDE_DIR @prefix@/include)
SET(Readline_LIBRARY @prefix@/lib/libreadline.a) SET(Readline_LIBRARY @prefix@/lib/libreadline.a)

View file

@ -15,6 +15,7 @@
((gnu packages gettext) #:select (gettext-minimal)) ((gnu packages gettext) #:select (gettext-minimal))
(gnu packages gperf) (gnu packages gperf)
((gnu packages installers) #:select (nsis-x86_64)) ((gnu packages installers) #:select (nsis-x86_64))
(gnu packages backup)
((gnu packages libusb) #:select (libplist)) ((gnu packages libusb) #:select (libplist))
((gnu packages linux) #:select (linux-libre-headers-6.1 util-linux)) ((gnu packages linux) #:select (linux-libre-headers-6.1 util-linux))
(gnu packages llvm) (gnu packages llvm)
@ -296,6 +297,8 @@ chain for " target " development."))
python-minimal python-minimal
;; Git ;; Git
git-minimal git-minimal
;; Libarchive
libarchive
;; Xcb ;; Xcb
xcb-util xcb-util
xcb-util-cursor xcb-util-cursor

View file

@ -302,7 +302,7 @@ if (WITH_SCANNER)
endif() endif()
if (WITH_PLUGIN_ATOMIC) if (WITH_PLUGIN_ATOMIC)
FIND_PACKAGE(LibArchive REQUIRED) #FIND_PACKAGE(LibArchive REQUIRED)
INCLUDE_DIRECTORIES(${LibArchive_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LibArchive_INCLUDE_DIR})
target_link_libraries(feather PRIVATE ${LibArchive_LIBRARIES}) target_link_libraries(feather PRIVATE ${LibArchive_LIBRARIES})
endif() endif()

View file

@ -7,10 +7,12 @@
#include <QNetworkReply> #include <QNetworkReply>
#include <QDir> #include <QDir>
#include <stdio.h> #include <stdio.h>
#include <archive.h> #ifdef Q_OS_WIN
#include <zip.h> #include <zip.h>
#else
#include <archive.h>
#include <archive_entry.h> #include <archive_entry.h>
#endif
#include <QFileDialog> #include <QFileDialog>
#include "utils/config.h" #include "utils/config.h"
@ -89,9 +91,10 @@ void AtomicConfigDialog::extract() {
swapPath.append("/swapTool"); swapPath.append("/swapTool");
QFile binaryFile(swapPath); QFile binaryFile(swapPath);
binaryFile.open(QIODevice::WriteOnly); binaryFile.open(QIODevice::WriteOnly);
auto operatingSystem = conf()->get(Config::operatingSystem).toString().toStdString(); //auto operatingSystem = conf()->get(Config::operatingSystem).toString().toStdString();
if(strcmp("WIN",operatingSystem.c_str()) == 0) { //if(strcmp("WIN",operatingSystem.c_str()) == 0) {
// UNZIP // UNZIP
#ifdef Q_OS_WIN
zip *z = zip_open(tempFile.toStdString().c_str(), 0, 0); zip *z = zip_open(tempFile.toStdString().c_str(), 0, 0);
//Search for the file of given name //Search for the file of given name
@ -114,7 +117,8 @@ void AtomicConfigDialog::extract() {
//And close the archive //And close the archive
zip_close(z); zip_close(z);
conf()->set(Config::swapPath,swapPath); conf()->set(Config::swapPath,swapPath);
} else { #else
//} else {
struct archive *a; struct archive *a;
struct archive *ext; struct archive *ext;
@ -145,7 +149,8 @@ void AtomicConfigDialog::extract() {
archive_write_close(ext); archive_write_close(ext);
archive_write_free(ext); archive_write_free(ext);
conf()->set(Config::swapPath, QString(savePath.c_str())); conf()->set(Config::swapPath, QString(savePath.c_str()));
} #endif
//}
qDebug() << "Finished"; qDebug() << "Finished";
binaryFile.close(); binaryFile.close();
ui->downloadLabel->setText("Swap tool installation complete, Atomic swaps are ready !"); ui->downloadLabel->setText("Swap tool installation complete, Atomic swaps are ready !");

View file

@ -7,7 +7,7 @@
#include "AtomicSwap.h" #include "AtomicSwap.h"
#include <QJsonParseError> #include <QJsonParseError>
#include <qt6/QtWidgets/QMessageBox> #include <QMessageBox>
#include "ui_AtomicSwap.h" #include "ui_AtomicSwap.h"
#include "AtomicWidget.h" #include "AtomicWidget.h"
#include "constants.h" #include "constants.h"

View file

@ -96,7 +96,6 @@ AtomicWidget::AtomicWidget(QWidget *parent)
} }
} }
sleep(1);
runSwap(seller,btcChange, xmrReceive); runSwap(seller,btcChange, xmrReceive);
} }
}); });