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")
# 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(TOR_DIR "Directory containing Tor binaries to embed inside Feather" OFF)
option(CHECK_UPDATES "Enable checking for application updates" ON)
option(PLATFORM_INSTALLER "Built-in updater fetches installer (windows-only)" OFF)
option(USE_DEVICE_TREZOR "Trezor support compilation" ON)
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)
#

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,12 +1,12 @@
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
linux_packages := eudev libfuse libsquashfuse zstd appimage_runtime
linux_packages := eudev libfuse libsquashfuse zstd appimage_runtime
linux_native_packages =
x86_64_linux_packages := flatstart
darwin_packages :=
darwin_packages :=
darwin_native_packages = darwin_sdk native_cctools native_libtapi
mingw32_packages =
@ -18,4 +18,4 @@ qt_mingw32_packages := qt
tor_linux_packages := libevent tor_linux
tor_darwin_packages := tor_darwin
tor_mingw32_packages := tor_mingw32
tor_mingw32_packages := tor_mingw32

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_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_INCLUDE_DIR @prefix@/include)
SET(Readline_LIBRARY @prefix@/lib/libreadline.a)

View file

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

View file

@ -302,7 +302,7 @@ if (WITH_SCANNER)
endif()
if (WITH_PLUGIN_ATOMIC)
FIND_PACKAGE(LibArchive REQUIRED)
#FIND_PACKAGE(LibArchive REQUIRED)
INCLUDE_DIRECTORIES(${LibArchive_INCLUDE_DIR})
target_link_libraries(feather PRIVATE ${LibArchive_LIBRARIES})
endif()
@ -357,4 +357,4 @@ if(APPLE)
file(COPY "${CMAKE_SOURCE_DIR}/src/assets/images/appicons/appicon.icns" DESTINATION "${CMAKE_SOURCE_DIR}/installed/feather.app/Contents/Resources/" )
endif()
qt_finalize_executable(feather)
qt_finalize_executable(feather)

View file

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

View file

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

View file

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