mirror of
https://github.com/feather-wallet/feather.git
synced 2024-12-22 19:49:28 +00:00
Merge branch 'master' into add-lza-nodes
This commit is contained in:
commit
48a9865eab
533 changed files with 29088 additions and 2508 deletions
|
@ -1,4 +0,0 @@
|
|||
*
|
||||
!contrib/build-deps/verify-packages.sh
|
||||
!contrib/QTBUG-92199-fix.patch
|
||||
!contrib/patches/
|
121
.github/workflows/build.yml
vendored
121
.github/workflows/build.yml
vendored
|
@ -1,121 +0,0 @@
|
|||
name: build
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
docker-linux-static:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: satackey/action-docker-layer-caching@v0.0.11
|
||||
if: "!startsWith(github.ref, 'refs/tags/v')"
|
||||
continue-on-error: true
|
||||
with:
|
||||
key: docker-linux-static-{hash}
|
||||
restore-keys: |
|
||||
docker-linux-static-
|
||||
- name: prepare build environment
|
||||
run: docker build -t feather:linux -f Dockerfile.linux --build-arg THREADS=3 .
|
||||
- name: build
|
||||
run: docker run --rm -v /home/runner/work/feather/feather:/feather -w /feather feather:linux sh -c 'WITH_SCANNER=Off make release-static -j3'
|
||||
- name: sha256sum
|
||||
run: shasum -a256 /home/runner/work/feather/feather/build/release/bin/feather
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: |
|
||||
/home/runner/work/feather/feather/build/release/bin/feather
|
||||
|
||||
docker-linux-appimage:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: satackey/action-docker-layer-caching@v0.0.11
|
||||
if: "!startsWith(github.ref, 'refs/tags/v')"
|
||||
continue-on-error: true
|
||||
with:
|
||||
key: docker-linux-static-{hash}
|
||||
restore-keys: |
|
||||
docker-linux-static-
|
||||
- name: prepare build environment
|
||||
run: docker build -t feather:linux -f Dockerfile.linux --build-arg THREADS=3 .
|
||||
- name: build
|
||||
run: docker run --rm -v $PWD:/feather -w /feather feather:linux sh -c 'make release-static -j3'
|
||||
- name: build AppImage
|
||||
run: docker run --rm -v $PWD:/feather -w /feather/build feather:linux ../contrib/build-appimage.sh
|
||||
- name: sha256sum
|
||||
run: shasum -a256 /home/runner/work/feather/feather/build/feather.AppImage
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: |
|
||||
/home/runner/work/feather/feather/build/feather.AppImage
|
||||
|
||||
docker-windows-static:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: satackey/action-docker-layer-caching@v0.0.11
|
||||
if: "!startsWith(github.ref, 'refs/tags/v')"
|
||||
continue-on-error: true
|
||||
with:
|
||||
key: docker-linux-static-{hash}
|
||||
restore-keys: |
|
||||
docker-linux-static-
|
||||
- name: prepare build environment
|
||||
run: docker build -f Dockerfile.windows --tag feather:win --build-arg THREADS=3 .
|
||||
- name: build
|
||||
run: docker run --rm -v $PWD:/feather -w /feather feather:win sh -c 'make release-static-windows root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j3'
|
||||
- name: sha256sum
|
||||
run: shasum -a256 /home/runner/work/feather/feather/build/x86_64-w64-mingw32/release/bin/feather.exe
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: |
|
||||
/home/runner/work/feather/feather/build/x86_64-w64-mingw32/release/bin/feather.exe
|
||||
|
||||
macos:
|
||||
runs-on: macOS-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: install dependencies
|
||||
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install qt@5 libsodium libzip qrencode unbound cmake boost hidapi openssl expat libunwind-headers protobuf pkgconfig zbar
|
||||
- name: install polyseed
|
||||
run: git clone https://github.com/tevador/polyseed.git && cd polyseed && git reset --hard e38516561c647522e2e2608f13eabdeab61d9a5d && cmake . && make && make install
|
||||
- name: build
|
||||
run: CMAKE_PREFIX_PATH=/usr/local/opt/qt@5/ make mac-release -j3
|
||||
- name: create .tar
|
||||
run: tar -cf feather.tar feather.app
|
||||
working-directory: build/bin
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: build/bin/feather.tar
|
||||
|
||||
macos-qt6:
|
||||
runs-on: macOS-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: install dependencies
|
||||
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install qt libsodium libzip qrencode unbound cmake boost hidapi openssl expat libunwind-headers protobuf pkgconfig zbar
|
||||
- name: install polyseed
|
||||
run: git clone https://github.com/tevador/polyseed.git && cd polyseed && git reset --hard e38516561c647522e2e2608f13eabdeab61d9a5d && cmake . && make && make install
|
||||
- name: build
|
||||
run: make mac-release -j3
|
||||
- name: create .tar
|
||||
run: tar -cf feather.tar feather.app
|
||||
working-directory: build/bin
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: build/bin/feather.tar
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -5,7 +5,7 @@ cmake-build-debug/*
|
|||
*.user
|
||||
*.stash
|
||||
build/*
|
||||
build*/
|
||||
guix-*
|
||||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
cmake_install.cmake
|
||||
|
@ -17,3 +17,5 @@ feather.AppDir/*
|
|||
src/assets/tor/*
|
||||
!src/assets/tor/.gitkeep
|
||||
guix-build-*
|
||||
contrib/installers/windows/setup.nsi
|
||||
githash.txt
|
||||
|
|
154
BUILDING.md
154
BUILDING.md
|
@ -1,154 +0,0 @@
|
|||
# Building Feather
|
||||
|
||||
Release binaries (except macOS) are built using Docker. If you are looking to build Feather without Docker,
|
||||
see [HACKING.MD](https://github.com/feather-wallet/feather/blob/master/HACKING.md).
|
||||
|
||||
## Docker
|
||||
|
||||
Builds with Docker are done in 3 steps:
|
||||
|
||||
1. Cloning this repository (+submodules)
|
||||
2. Creating a base image containing the build environment
|
||||
3. Building Feather using the base image
|
||||
|
||||
### Linux x86-64 (reproducible)
|
||||
|
||||
The instructions in this section are for 64-bit AMD/Intel processors. For ARM64 platforms see the next section.
|
||||
|
||||
Binaries produced in this section are reproducible and their digests should match those of release binaries.
|
||||
|
||||
#### 1. Clone
|
||||
|
||||
Replace `master` with the desired version tag (e.g. `1.0.1`) to build the release binary.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/feather-wallet/feather.git
|
||||
cd feather
|
||||
git checkout master
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
#### 2. Base image
|
||||
|
||||
```bash
|
||||
docker build -t feather:linux -f Dockerfile.linux --build-arg THREADS=8 .
|
||||
```
|
||||
|
||||
Building the base image takes a while. You only need to build the base image once per release.
|
||||
|
||||
#### 3. Build
|
||||
|
||||
##### Standalone static binary
|
||||
|
||||
If you're re-running a build make sure to `rm -rf build/` first.
|
||||
|
||||
```bash
|
||||
docker run --rm -it -v $PWD:/feather -w /feather feather:linux sh -c 'WITH_SCANNER=Off make release-static -j8'
|
||||
```
|
||||
|
||||
The resulting binary can be found in `./build/bin/`.
|
||||
|
||||
##### AppImage
|
||||
|
||||
```bash
|
||||
rm -rf build
|
||||
docker run --rm -it -v $PWD:/feather -w /feather feather:linux sh -c 'make release-static -j8'
|
||||
docker run --rm -it -v $PWD:/feather -w /feather/build feather:linux ../contrib/build-appimage.sh
|
||||
```
|
||||
|
||||
The resulting AppImage will be located in `./build`.
|
||||
|
||||
### Linux ARM64 (reproducible)
|
||||
|
||||
This section describes how to build Feather for ARM64 based platforms (including Raspberry Pi 3 and later, running 64-bit Rasbian).
|
||||
|
||||
Binaries produced in this section are not yet reproducible.
|
||||
|
||||
#### 1. Clone
|
||||
|
||||
Replace `master` with the desired version tag (e.g. `1.0.1`) to build the release binary.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/feather-wallet/feather.git
|
||||
cd feather
|
||||
git checkout master
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
#### 2. Base image
|
||||
|
||||
```bash
|
||||
docker build --tag feather:linux-arm64 --platform linux/arm64 -f Dockerfile.linux --build-arg THREADS=8 .
|
||||
```
|
||||
|
||||
Building the base image takes a while (especially when emulated on x86-64). You only need to build the base image once per release.
|
||||
|
||||
#### 3. Build
|
||||
|
||||
##### Standalone static binary
|
||||
|
||||
```bash
|
||||
docker run --platform linux/arm64/v8 --rm -it -v $PWD:/feather -w /feather feather:linux-arm64 sh -c 'WITH_SCANNER=Off make release-static-linux-arm64 -j8'
|
||||
```
|
||||
|
||||
Note: If you intend to run Feather on a Raspberry Pi or any device without AES hardware acceleration, use the following command instead:
|
||||
|
||||
```bash
|
||||
docker run --platform linux/arm64/v8 --rm -it -v $PWD:/feather -w /feather feather:linux-arm64 sh -c 'WITH_SCANNER=Off make release-static-linux-arm64-rpi -j8'
|
||||
```
|
||||
|
||||
The resulting binary can be found in `./build/bin/`.
|
||||
|
||||
##### AppImage
|
||||
|
||||
##### ARMv8-a (with AES hardware acceleration)
|
||||
|
||||
```bash
|
||||
rm -rf build
|
||||
docker run --rm -it -v $PWD:/feather --platform linux/arm64/v8 -w /feather feather:linux-arm64 sh -c 'make release-static-linux-arm64 -j8'
|
||||
docker run --rm -it -v $PWD:/feather --platform linux/arm64/v8 -w /feather/build feather:linux-arm64 ../contrib/build-appimage-arm64.sh
|
||||
```
|
||||
|
||||
##### Raspberry Pi
|
||||
|
||||
```bash
|
||||
rm -rf build
|
||||
docker run --rm -it -v $PWD:/feather --platform linux/arm64/v8 -w /feather feather:linux-arm64 sh -c 'make release-static-linux-arm64-rpi -j8'
|
||||
docker run --rm -it -v $PWD:/feather --platform linux/arm64/v8 -w /feather/build feather:linux-arm64 ../contrib/build-appimage-arm64.sh
|
||||
```
|
||||
|
||||
The resulting AppImage will be located in `./build`.
|
||||
|
||||
### Windows (reproducible)
|
||||
|
||||
#### 1. Clone
|
||||
|
||||
```bash
|
||||
git clone --branch master --recursive https://github.com/feather-wallet/feather.git
|
||||
cd feather
|
||||
```
|
||||
|
||||
Replace `master` with the desired version tag (e.g. `1.0.1`) to build the release binary.
|
||||
|
||||
#### 2. Base image
|
||||
|
||||
|
||||
```bash
|
||||
docker build -f Dockerfile.windows --tag feather:win --build-arg THREADS=4 .
|
||||
```
|
||||
|
||||
Building the base image takes a while. You only need to build the base image once.
|
||||
|
||||
#### 3. Build
|
||||
|
||||
```bash
|
||||
docker run --rm -it -v $PWD:/feather -w /feather feather:win sh -c 'make release-static-windows root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j4'
|
||||
```
|
||||
|
||||
If you're re-running a build make sure to `rm -rf build/` first.
|
||||
|
||||
The resulting binary can be found in `./build/x86_64-w64-mingw32/release/bin/`.
|
||||
|
||||
### macOS
|
||||
|
||||
Docker builds for macOS are not currently supported. To build Feather on macOS follow the steps in [HACKING.md](HACKING.md).
|
154
CMakeLists.txt
154
CMakeLists.txt
|
@ -1,46 +1,51 @@
|
|||
cmake_minimum_required(VERSION 3.20)
|
||||
project(feather)
|
||||
cmake_minimum_required(VERSION 3.18)
|
||||
|
||||
message(STATUS "Initiating compile using CMake ${CMAKE_VERSION}")
|
||||
project(feather
|
||||
VERSION "2.2.2"
|
||||
DESCRIPTION "A free Monero desktop wallet"
|
||||
LANGUAGES CXX C ASM
|
||||
)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
set(VERSION_MAJOR "2")
|
||||
set(VERSION_MINOR "1")
|
||||
set(VERSION_REVISION "0")
|
||||
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}")
|
||||
|
||||
option(STATIC "Link libraries statically, requires static Qt")
|
||||
set(PACKAGE_NAME ${PROJECT_NAME})
|
||||
set(PACKAGE_BUGREPORT "https://github.com/feather-wallet/feather/issues")
|
||||
set(PACKAGE_URL "https://featherwallet.org/")
|
||||
set(COPYRIGHT_YEAR "2023")
|
||||
set(COPYRIGHT_HOLDERS "The Monero Project")
|
||||
|
||||
# Configurable options
|
||||
option(STATIC "Link libraries statically, requires static Qt" OFF)
|
||||
option(SELF_CONTAINED "Disable when building Feather for packages" OFF)
|
||||
option(LOCALMONERO "Include LocalMonero module" ON)
|
||||
option(XMRIG "Include XMRig module" ON)
|
||||
option(TOR_DIR "Path to Tor binary 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" OFF)
|
||||
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" ON)
|
||||
option(WITH_SCANNER "Enable webcam QR scanner" OFF)
|
||||
option(WITH_SCANNER "Enable webcam QR scanner" ON)
|
||||
|
||||
list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_SOURCE_DIR}/cmake")
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckCXXCompilerFlag)
|
||||
include(CheckIncludeFile)
|
||||
include(CheckSymbolExists)
|
||||
include(SelectLibraryConfigurations)
|
||||
|
||||
if(DEBUG)
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON)
|
||||
endif()
|
||||
|
||||
set(BUILD_GUI_DEPS ON)
|
||||
option(ARCH "Target architecture" "native")
|
||||
set(BUILD_64 ON)
|
||||
set(USE_SINGLE_BUILDDIR ON)
|
||||
|
||||
check_include_file(sys/prctl.h HAVE_SYS_PRCTL_H)
|
||||
check_symbol_exists(prctl "sys/prctl.h" HAVE_PRCTL)
|
||||
|
||||
# Monero configuration
|
||||
set(BUILD_GUI_DEPS ON)
|
||||
set(BUILD_64 ON)
|
||||
set(USE_SINGLE_BUILDDIR ON)
|
||||
|
||||
if(STATIC)
|
||||
message(STATUS "Initiating static build, turning on manual submodules")
|
||||
set(MANUAL_SUBMODULES 1)
|
||||
|
@ -49,16 +54,19 @@ if(STATIC)
|
|||
set(Boost_USE_STATIC_RUNTIME ON)
|
||||
endif()
|
||||
|
||||
add_subdirectory(monero)
|
||||
include(CMakePackageConfigHelpers)
|
||||
include(VersionFeather)
|
||||
|
||||
#### Dependencies
|
||||
# Monero
|
||||
add_subdirectory(monero EXCLUDE_FROM_ALL)
|
||||
set_property(TARGET wallet_merged PROPERTY FOLDER "monero")
|
||||
get_directory_property(ARCH_WIDTH DIRECTORY "monero" DEFINITION ARCH_WIDTH)
|
||||
get_directory_property(UNBOUND_LIBRARY DIRECTORY "monero" DEFINITION UNBOUND_LIBRARY)
|
||||
get_directory_property(DEVICE_TREZOR_READY DIRECTORY "monero" DEFINITION DEVICE_TREZOR_READY)
|
||||
get_directory_property(TREZOR_DEP_LIBS DIRECTORY "monero" DEFINITION TREZOR_DEP_LIBS)
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
include(VersionFeather)
|
||||
|
||||
# Easylogging
|
||||
include_directories(${EASYLOGGING_INCLUDE})
|
||||
link_directories(${EASYLOGGING_LIBRARY_DIRS})
|
||||
|
||||
|
@ -69,22 +77,20 @@ message(STATUS "libsodium: libraries at ${SODIUM_LIBRARY}")
|
|||
# QrEncode
|
||||
find_package(QREncode REQUIRED)
|
||||
|
||||
# Qr scanner
|
||||
# ZBAR
|
||||
find_package(ZBAR REQUIRED)
|
||||
message(STATUS "libzbar: include dir at ${ZBAR_INCLUDE_DIR}")
|
||||
message(STATUS "libzbar: libraries at ${ZBAR_LIBRARIES}")
|
||||
|
||||
# Tevador 14 word Monero seed
|
||||
add_subdirectory(contrib/monero-seed)
|
||||
|
||||
# Polyseed 16 word mnemonic seeds
|
||||
# Polyseed
|
||||
find_package(Polyseed REQUIRED)
|
||||
if(Polyseed_SUBMODULE)
|
||||
add_subdirectory(src/third-party/polyseed)
|
||||
add_subdirectory(src/third-party/polyseed EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
|
||||
# libzip
|
||||
find_package(zlib CONFIG)
|
||||
set(ZLIB_USE_STATIC_LIBS "ON")
|
||||
find_package(ZLIB REQUIRED)
|
||||
find_path(LIBZIP_INCLUDE_DIRS zip.h)
|
||||
find_library(LIBZIP_LIBRARIES zip)
|
||||
|
||||
|
@ -98,6 +104,8 @@ endif()
|
|||
if(MINGW)
|
||||
set(Boost_THREADAPI win32)
|
||||
endif()
|
||||
|
||||
set(Boost_USE_MULTITHREADED ON)
|
||||
find_package(Boost 1.58 REQUIRED COMPONENTS
|
||||
system
|
||||
filesystem
|
||||
|
@ -107,24 +115,14 @@ find_package(Boost 1.58 REQUIRED COMPONENTS
|
|||
regex
|
||||
serialization
|
||||
program_options
|
||||
locale)
|
||||
locale
|
||||
)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
# https://github.com/monero-project/monero-gui/issues/3142#issuecomment-705940446
|
||||
set(CMAKE_SKIP_RPATH ON)
|
||||
endif()
|
||||
|
||||
find_package(X11 REQUIRED)
|
||||
message(STATUS "X11_FOUND = ${X11_FOUND}")
|
||||
message(STATUS "X11_INCLUDE_DIR = ${X11_INCLUDE_DIR}")
|
||||
message(STATUS "X11_LIBRARIES = ${X11_LIBRARIES}")
|
||||
include_directories(${X11_INCLUDE_DIR})
|
||||
link_directories(${X11_LIBRARIES})
|
||||
if(STATIC)
|
||||
find_library(XCB_LIBRARY xcb)
|
||||
message(STATUS "Found xcb library: ${XCB_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(TorQrcGenerator)
|
||||
|
@ -155,19 +153,6 @@ else()
|
|||
message(STATUS "Skipping Tor inclusion because -DTOR_DIR=Off")
|
||||
endif()
|
||||
|
||||
if(MINGW)
|
||||
string(REGEX MATCH "^[^/]:/[^/]*" msys2_install_path "${CMAKE_C_COMPILER}")
|
||||
message(STATUS "MSYS location: ${msys2_install_path}")
|
||||
set(CMAKE_INCLUDE_PATH "${msys2_install_path}/mingw${ARCH_WIDTH}/include")
|
||||
# This is necessary because otherwise CMake will make Boost libraries -lfoo
|
||||
# rather than a full path. Unfortunately, this makes the shared libraries get
|
||||
# linked due to a bug in CMake which misses putting -static flags around the
|
||||
# -lfoo arguments.
|
||||
set(DEFLIB ${msys2_install_path}/mingw${ARCH_WIDTH}/lib)
|
||||
list(REMOVE_ITEM CMAKE_C_IMPLICIT_LINK_DIRECTORIES ${DEFLIB})
|
||||
list(REMOVE_ITEM CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES ${DEFLIB})
|
||||
endif()
|
||||
|
||||
message(STATUS "Using Boost include dir at ${Boost_INCLUDE_DIRS}")
|
||||
message(STATUS "Using Boost libraries at ${Boost_LIBRARIES}")
|
||||
|
||||
|
@ -175,11 +160,6 @@ include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
|
|||
if(MINGW)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wa,-mbig-obj")
|
||||
set(EXTRA_LIBRARIES mswsock;ws2_32;iphlpapi;crypt32;bcrypt)
|
||||
if(DEPENDS)
|
||||
set(ICU_LIBRARIES iconv)
|
||||
else()
|
||||
set(ICU_LIBRARIES icuio icuin icuuc icudt icutu iconv)
|
||||
endif()
|
||||
elseif(APPLE)
|
||||
set(EXTRA_LIBRARIES "-framework AppKit")
|
||||
elseif(OPENBSD)
|
||||
|
@ -200,13 +180,7 @@ list(APPEND EXTRA_LIBRARIES ${CMAKE_DL_LIBS})
|
|||
|
||||
if(APPLE)
|
||||
cmake_policy(SET CMP0042 NEW)
|
||||
endif()
|
||||
|
||||
if (APPLE AND NOT IOS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default -std=c++11")
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default -DGTEST_HAS_TR1_TUPLE=0")
|
||||
endif()
|
||||
|
||||
|
@ -217,7 +191,7 @@ add_c_flag_if_supported(-Wformat-security C_SECURITY_FLAGS)
|
|||
add_cxx_flag_if_supported(-Wformat-security CXX_SECURITY_FLAGS)
|
||||
|
||||
# -fstack-protector
|
||||
if (NOT OPENBSD AND NOT (WIN32 AND (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 9.1)))
|
||||
if (NOT OPENBSD)
|
||||
add_c_flag_if_supported(-fstack-protector C_SECURITY_FLAGS)
|
||||
add_cxx_flag_if_supported(-fstack-protector CXX_SECURITY_FLAGS)
|
||||
add_c_flag_if_supported(-fstack-protector-strong C_SECURITY_FLAGS)
|
||||
|
@ -229,7 +203,7 @@ if (NOT OPENBSD AND NOT (WIN32 AND (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE
|
|||
add_c_flag_if_supported(-fcf-protection=full C_SECURITY_FLAGS)
|
||||
add_cxx_flag_if_supported(-fcf-protection=full CXX_SECURITY_FLAGS)
|
||||
endif()
|
||||
if (NOT WIN32 AND NOT OPENBSD)
|
||||
if (NOT WIN32 AND NOT OPENBSD AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
add_c_flag_if_supported(-fstack-clash-protection C_SECURITY_FLAGS)
|
||||
add_cxx_flag_if_supported(-fstack-clash-protection CXX_SECURITY_FLAGS)
|
||||
endif()
|
||||
|
@ -269,18 +243,13 @@ if (WIN32)
|
|||
endif()
|
||||
|
||||
if(STATIC)
|
||||
add_linker_flag_if_supported(-static-libgcc STATIC_FLAGS)
|
||||
add_linker_flag_if_supported(-static-libstdc++ STATIC_FLAGS)
|
||||
# add_linker_flag_if_supported(-static-libgcc STATIC_FLAGS)
|
||||
# add_linker_flag_if_supported(-static-libstdc++ STATIC_FLAGS)
|
||||
if(MINGW)
|
||||
add_linker_flag_if_supported(-static STATIC_FLAGS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# With GCC 6.1.1 the compiled binary malfunctions due to aliasing. Until that
|
||||
# is fixed in the code (Issue #847), force compiler to be conservative.
|
||||
add_c_flag_if_supported(-fno-strict-aliasing C_SECURITY_FLAGS)
|
||||
add_cxx_flag_if_supported(-fno-strict-aliasing CXX_SECURITY_FLAGS)
|
||||
|
||||
add_c_flag_if_supported(-fPIC C_SECURITY_FLAGS)
|
||||
add_cxx_flag_if_supported(-fPIC CXX_SECURITY_FLAGS)
|
||||
|
||||
|
@ -293,3 +262,44 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ${CXX_SECURITY_FLAGS}")
|
|||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LD_SECURITY_FLAGS} ${STATIC_FLAGS}")
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
configure_file("${CMAKE_SOURCE_DIR}/contrib/installers/windows/setup.nsi.in" "${CMAKE_SOURCE_DIR}/contrib/installers/windows/setup.nsi" @ONLY)
|
||||
|
||||
if(APPLE AND CMAKE_CROSSCOMPILING)
|
||||
set(macos_app "feather.app")
|
||||
configure_file(contrib/macdeploy/background.tiff contrib/macdeploy/background.tiff COPYONLY)
|
||||
configure_file(contrib/macdeploy/Info.plist.in ${macos_app}/Contents/Info.plist @ONLY)
|
||||
configure_file(src/assets/images/appicons/appicon.icns ${macos_app}/Contents/Resources/appicon.icns COPYONLY)
|
||||
|
||||
set(xorrisofs_options)
|
||||
if(DEFINED ENV{SOURCE_DATE_EPOCH})
|
||||
set(xorrisofs_options -volume_date all_file_dates =$ENV{SOURCE_DATE_EPOCH})
|
||||
endif()
|
||||
add_custom_target(deploy
|
||||
COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_BINARY_DIR}" --config "$<CONFIG>" --prefix "${CMAKE_BINARY_DIR}/release" --strip
|
||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_BINARY_DIR}/${macos_app}/Contents/MacOS"
|
||||
COMMAND "${CMAKE_COMMAND}" -E rename "${CMAKE_BINARY_DIR}/bin/$<TARGET_FILE_NAME:feather>" "${CMAKE_BINARY_DIR}/${macos_app}/Contents/MacOS/feather"
|
||||
COMMAND PYTHONPATH=${PYTHONPATH} INSTALL_NAME_TOOL=${CMAKE_INSTALL_NAME_TOOL} OTOOL=${OTOOL} STRIP=${CMAKE_STRIP} ${CMAKE_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${PACKAGE_NAME}
|
||||
COMMAND xorrisofs -D -l -V "${PACKAGE_NAME}" -no-pad -r -dir-mode 0755 -o ${PACKAGE_NAME}.dmg ${CMAKE_BINARY_DIR}/dist -- ${xorrisofs_options}
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
|
||||
message("\n")
|
||||
message("Configure summary")
|
||||
message("=================")
|
||||
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
set(cross_status "TRUE, for ${CMAKE_SYSTEM_NAME}, ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
else()
|
||||
set(cross_status "FALSE")
|
||||
endif()
|
||||
message("Cross compiling ....................... ${cross_status}")
|
||||
get_directory_property(definitions COMPILE_DEFINITIONS)
|
||||
message("Preprocessor defined macros ........... ${definitions}")
|
||||
message("C compiler ............................ ${CMAKE_C_COMPILER}")
|
||||
message("CFLAGS ................................ ${CMAKE_C_FLAGS}")
|
||||
message("C++ compiler .......................... ${CMAKE_CXX_COMPILER}")
|
||||
message("CXXFLAGS .............................. ${CMAKE_CXX_FLAGS}")
|
||||
message("LDFLAGS for executables ............... ${CMAKE_EXE_LINKER_FLAGS}")
|
||||
message("\n")
|
||||
|
|
324
Dockerfile.linux
324
Dockerfile.linux
|
@ -1,324 +0,0 @@
|
|||
FROM ubuntu:bionic-20210723
|
||||
|
||||
ARG THREADS=4
|
||||
|
||||
ENV CFLAGS="-fPIC"
|
||||
ENV CPPFLAGS="-fPIC"
|
||||
ENV CXXFLAGS="-fPIC"
|
||||
ENV SOURCE_DATE_EPOCH=1397818193
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Feather build flags
|
||||
ENV CHECK_UPDATES=ON
|
||||
ENV WITH_SCANNER=ON
|
||||
|
||||
COPY --from=featherwallet/feather-deps:linux-1.0.0 /deps /deps
|
||||
COPY --from=featherwallet/feather-deps:linux-1.0.0 /var/cache/apt/archives /archives
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y gpg xz-utils ca-certificates wget && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY contrib/build-deps/verify-packages.sh .
|
||||
RUN bash verify-packages.sh && \
|
||||
cd /archives && \
|
||||
dpkg -i --force-depends *.deb && \
|
||||
rm -rf /deps /archives
|
||||
|
||||
# OpenSSL: Required for CMake, Qt 5.15, libwallet, Tor
|
||||
ENV OPENSSL_ROOT_DIR=/usr/local/openssl/
|
||||
RUN git clone -b OpenSSL_1_1_1p --depth 1 https://github.com/openssl/openssl.git && \
|
||||
cd openssl && \
|
||||
git reset --hard 8aaca20cf9996257d1ce2e6f4d3059b3698dde3d && \
|
||||
./config no-shared no-dso --prefix=/usr/local/openssl && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install_sw && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# CMake: Required to build libqrencode, monero-seed, libzip
|
||||
RUN git clone -b v3.22.2 --depth 1 https://github.com/Kitware/CMake && \
|
||||
cd CMake && \
|
||||
git reset --hard 8428e39ed9cddb3b7f1a6f7a58cb8617503183d2 && \
|
||||
./bootstrap && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# freetype2: Required for Qt 5.15, fontconfig
|
||||
RUN git clone -b VER-2-10-2 --depth 1 https://git.savannah.gnu.org/git/freetype/freetype2.git && \
|
||||
cd freetype2 && \
|
||||
git reset --hard 132f19b779828b194b3fede187cee719785db4d8 && \
|
||||
./autogen.sh && \
|
||||
./configure --disable-shared --enable-static --with-zlib=no && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# expat: Required for fontconfig
|
||||
RUN git clone -b R_2_2_9 --depth 1 https://github.com/libexpat/libexpat && \
|
||||
cd libexpat/expat && \
|
||||
git reset --hard a7bc26b69768f7fb24f0c7976fae24b157b85b13 && \
|
||||
./buildconf.sh && \
|
||||
./configure --disable-shared --enable-static && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# fontconfig: Required for Qt 5.15
|
||||
RUN git clone -b 2.13.92 --depth 1 https://gitlab.freedesktop.org/fontconfig/fontconfig && \
|
||||
cd fontconfig && \
|
||||
git reset --hard b1df1101a643ae16cdfa1d83b939de2497b1bf27 && \
|
||||
./autogen.sh --disable-shared --enable-static --sysconfdir=/etc --localstatedir=/var && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
COPY contrib/QTBUG-92199-fix.patch .
|
||||
|
||||
ENV QT_VERSION=v5.15.5-lts-lgpl
|
||||
RUN git clone git://code.qt.io/qt/qt5.git -b ${QT_VERSION} --depth 1 && \
|
||||
cd qt5 && \
|
||||
git clone git://code.qt.io/qt/qtbase.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtimageformats.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtmultimedia.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtsvg.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qttools.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qttranslations.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtx11extras.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtwebsockets.git -b ${QT_VERSION} --depth 1 && \
|
||||
sed -ri s/\(Libs:.*\)/\\1\ -lexpat/ /usr/local/lib/pkgconfig/fontconfig.pc && \
|
||||
sed -ri s/\(Libs:.*\)/\\1\ -lz/ /usr/local/lib/pkgconfig/freetype2.pc && \
|
||||
sed -i s/\\/usr\\/X11R6\\/lib64/\\/usr\\/local\\/lib/ qtbase/mkspecs/linux-g++-64/qmake.conf && \
|
||||
cd qtbase && cat ../../QTBUG-92199-fix.patch && git apply ../../QTBUG-92199-fix.patch
|
||||
|
||||
RUN cd qt5 && \
|
||||
if [ "$(uname -m)" = "aarch64" ]; then \
|
||||
export LIBDIR="/usr/lib/aarch64-linux-gnu"; \
|
||||
export QT_PLATFORM="linux-aarch64-gnu-g++"; \
|
||||
else \
|
||||
export LIBDIR="/usr/lib/x86_64-linux-gnu"; \
|
||||
export QT_PLATFORM="linux-g++-64"; \
|
||||
fi && \
|
||||
rm $LIBDIR/libX11.a && \
|
||||
rm $LIBDIR/libX11-xcb.a && \
|
||||
OPENSSL_LIBS="-lssl -lcrypto -lpthread -ldl" \
|
||||
./configure --prefix=/usr -platform $QT_PLATFORM -opensource -confirm-license -release -static -no-avx \
|
||||
-no-opengl -qpa xcb --xcb -xcb-xlib -feature-xlib -openssl-linked -I /usr/local/openssl/include \
|
||||
-L /usr/local/openssl/lib -system-freetype -fontconfig -glib \
|
||||
-no-dbus -no-sql-sqlite -no-use-gold-linker -no-kms \
|
||||
-qt-harfbuzz -qt-libjpeg -qt-libpng -qt-pcre -qt-zlib \
|
||||
-skip qt3d -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d \
|
||||
-skip qtdoc -skip qtquickcontrols -skip qtquickcontrols2 -skip qtspeech -skip qtgamepad \
|
||||
-skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpurchasing -optimize-size \
|
||||
-skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qttools \
|
||||
-skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebview \
|
||||
-skip qtwinextras -skip qtx11extras -skip gamepad -skip serialbus -skip location -skip webengine \
|
||||
-skip qtdeclarative -gstreamer \
|
||||
-no-feature-cups -no-feature-ftp -no-feature-pdf -no-feature-animation \
|
||||
-nomake examples -nomake tests -nomake tools && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# boost: Required for libwallet
|
||||
RUN wget https://downloads.sourceforge.net/project/boost/boost/1.73.0/boost_1_73_0.tar.bz2 && \
|
||||
echo "4eb3b8d442b426dc35346235c8733b5ae35ba431690e38c6a8263dce9fcbb402 boost_1_73_0.tar.bz2" | sha256sum -c && \
|
||||
tar -xvf boost_1_73_0.tar.bz2 && \
|
||||
rm boost_1_73_0.tar.bz2 && \
|
||||
cd boost_1_73_0 && \
|
||||
./bootstrap.sh && \
|
||||
./b2 --with-atomic --with-system --with-filesystem --with-thread --with-date_time --with-chrono --with-regex --with-serialization --with-program_options --with-locale variant=release link=static runtime-link=static cflags="${CFLAGS}" cxxflags="${CXXFLAGS}" install -a --prefix=/usr && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# libusb: Required for libwallet
|
||||
RUN git clone -b v1.0.24 --depth 1 https://github.com/libusb/libusb && \
|
||||
cd libusb && \
|
||||
git reset --hard c6a35c56016ea2ab2f19115d2ea1e85e0edae155 && \
|
||||
./autogen.sh --disable-shared --enable-static && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# hidapi: Required for libwallet
|
||||
RUN git clone -b hidapi-0.10.1 --depth 1 https://github.com/libusb/hidapi && \
|
||||
cd hidapi && \
|
||||
git reset --hard f6d0073fcddbdda24549199445e844971d3c9cef && \
|
||||
./bootstrap && \
|
||||
./configure --disable-shared --enable-static && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# libsodium: Required for libwallet
|
||||
RUN git clone -b 1.0.18-RELEASE --depth 1 https://github.com/jedisct1/libsodium.git && \
|
||||
cd libsodium && \
|
||||
git reset --hard 940ef42797baa0278df6b7fd9e67c7590f87744b && \
|
||||
./autogen.sh && \
|
||||
./configure --disable-shared --enable-static && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# protobuf: Required for libwallet
|
||||
RUN git clone -b v3.10.0 --depth 1 https://github.com/protocolbuffers/protobuf && \
|
||||
cd protobuf && \
|
||||
git reset --hard 6d4e7fd7966c989e38024a8ea693db83758944f1 && \
|
||||
./autogen.sh && \
|
||||
./configure --enable-static --disable-shared && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# unbound: Required for libwallet
|
||||
RUN git clone -b release-1.13.2 --depth 1 https://github.com/NLnetLabs/unbound.git && \
|
||||
cd unbound && \
|
||||
git reset --hard 8e538dcaa8df2d0fab8ff3dcf94ac1f972450b66 && \
|
||||
./configure --disable-shared --enable-static --without-pyunbound --with-libexpat=/usr/local/ --with-ssl=/usr/local/openssl --with-libevent=no --without-pythonmodule --disable-flto --with-pthreads --with-libunbound-only --with-pic && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# squashfs-tools: Used to create Feather AppImage
|
||||
RUN git clone https://github.com/plougher/squashfs-tools.git && \
|
||||
cd squashfs-tools/squashfs-tools && \
|
||||
git reset --hard 38fa0720526222827da44b3b6c3f7eb63e8f5c2f && \
|
||||
make && \
|
||||
make install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# patchelf: Required by linuxdeployqt
|
||||
RUN git clone -b 0.12 --depth 1 https://github.com/NixOS/patchelf.git && \
|
||||
cd patchelf && \
|
||||
git reset --hard 8d3a16e97294e3c5521c61b4c8835499c9918264 && \
|
||||
./bootstrap.sh && \
|
||||
./configure && \
|
||||
make -j$THREADS && \
|
||||
make install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# linuxdeployqt: Used to create Feather AppImage
|
||||
# build from source because latest release does not allow glibc 2.27
|
||||
RUN git clone https://github.com/probonopd/linuxdeployqt.git && \
|
||||
cd linuxdeployqt && \
|
||||
git reset --hard b4697483c98120007019c3456914cfd1dba58384 && \
|
||||
qmake && \
|
||||
make -j$THREADS && \
|
||||
make install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# libevent: Required for Tor
|
||||
RUN wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz && \
|
||||
echo "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb libevent-2.1.12-stable.tar.gz" | sha256sum -c && \
|
||||
tar -zxvf libevent-2.1.12-stable.tar.gz && \
|
||||
cd libevent-2.1.12-stable && \
|
||||
PKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig/ \
|
||||
./configure --prefix=/usr/local/libevent \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--with-pic && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# zlib: Required for Tor
|
||||
RUN git clone -b v1.2.11 --depth 1 https://github.com/madler/zlib && \
|
||||
cd zlib && \
|
||||
git reset --hard cacf7f1d4e3d44d871b605da3b647f07d718623f && \
|
||||
./configure --static --prefix=/usr/local/zlib && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# Tor: Optional for Feather (-DTOR_DIR)
|
||||
# Binary can be embedded in Feather
|
||||
# TOR_VERSION is used by CMAKE to determine embedded version
|
||||
ENV TOR_VERSION=0.4.7.8
|
||||
ENV TOR_DIR=/usr/local/tor/bin/
|
||||
RUN git clone -b tor-0.4.7.8 --depth 1 https://git.torproject.org/tor.git && \
|
||||
cd tor && \
|
||||
git reset --hard 7528524aee3ffe3c9b7c69fa18f659e1993f59a3 && \
|
||||
./autogen.sh && \
|
||||
./configure \
|
||||
--disable-asciidoc \
|
||||
--disable-manpage \
|
||||
--disable-html-manual \
|
||||
--disable-system-torrc \
|
||||
--disable-module-relay \
|
||||
--disable-lzma \
|
||||
--disable-zstd \
|
||||
--enable-static-tor \
|
||||
--with-libevent-dir=/usr/local/libevent \
|
||||
--with-openssl-dir=/usr/local/openssl \
|
||||
--with-zlib-dir=/usr/local/zlib \
|
||||
--disable-tool-name-check \
|
||||
--enable-fatal-warnings \
|
||||
--prefix=/usr/local/tor && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd) && \
|
||||
strip -s -D /usr/local/tor/bin/tor && \
|
||||
rm /usr/local/tor/bin/tor?*
|
||||
|
||||
# libqrencode: Required for Feather
|
||||
# Used to display QR Codes
|
||||
RUN git clone -b v4.1.1 --depth 1 https://github.com/fukuchi/libqrencode.git && \
|
||||
cd libqrencode && \
|
||||
git reset --hard 715e29fd4cd71b6e452ae0f4e36d917b43122ce8 && \
|
||||
cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr . && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# libzip: Required for Feather
|
||||
# Used to unzip updates downloaded by the built-in updater
|
||||
RUN git clone -b v1.7.3 --depth 1 https://github.com/nih-at/libzip.git && \
|
||||
cd libzip && \
|
||||
git reset --hard 66e496489bdae81bfda8b0088172871d8fda0032 && \
|
||||
cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr . && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# libgpg-error: Required for libgcrypt
|
||||
RUN git clone -b libgpg-error-1.38 --depth 1 git://git.gnupg.org/libgpg-error.git && \
|
||||
cd libgpg-error && \
|
||||
git reset --hard 71d278824c5fe61865f7927a2ed1aa3115f9e439 && \
|
||||
./autogen.sh && \
|
||||
./configure --disable-shared --enable-static --disable-doc --disable-tests && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# libgcrypt: Required for Feather
|
||||
# Used in src/openpgp to verify updates downloaded by the built-in updater
|
||||
RUN git clone -b libgcrypt-1.8.5 --depth 1 git://git.gnupg.org/libgcrypt.git && \
|
||||
cd libgcrypt && \
|
||||
git reset --hard 56606331bc2a80536db9fc11ad53695126007298 && \
|
||||
./autogen.sh && \
|
||||
./configure --disable-shared --enable-static --disable-doc && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# zbar: Optional for Feather (-DWITH_SCANNER)
|
||||
# Used to scan for QR Codes
|
||||
RUN git clone -b stable-0.21 --recursive https://github.com/mchehab/zbar.git && \
|
||||
cd zbar && \
|
||||
git reset --hard 505f1a87b32cb7bb0edbaf37e20ccdd46bbae2a3 && \
|
||||
autoreconf -vfi && \
|
||||
./configure --enable-static --disable-shared --without-imagemagick --with-gtk=no --with-python=no --enable-doc=no && \
|
||||
make -j$THREADS && \
|
||||
make install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# polyseed: Required for Feather
|
||||
RUN git clone https://github.com/tevador/polyseed.git && \
|
||||
cd polyseed && \
|
||||
git reset --hard 4945d8239d6b26dc12723ca2aaa9f8110ceff5af && \
|
||||
mkdir build && \
|
||||
cd build && \
|
||||
cmake .. && \
|
||||
make && \
|
||||
make install && \
|
||||
rm /usr/local/lib/libpolyseed.so* && \
|
||||
rm -rf $(pwd)
|
|
@ -1,189 +0,0 @@
|
|||
FROM ubuntu:20.04
|
||||
|
||||
ARG THREADS=1
|
||||
ARG QT_VERSION=v5.15.5-lts-lgpl
|
||||
ENV SOURCE_DATE_EPOCH=1397818193
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Feather build flags
|
||||
ENV CHECK_UPDATES=ON
|
||||
ENV WITH_SCANNER=ON
|
||||
|
||||
ENV OPENSSL_ROOT_DIR=/usr/local/openssl/
|
||||
|
||||
RUN apt update && \
|
||||
apt install -y \
|
||||
curl wget zip automake build-essential gcc-mingw-w64 g++-mingw-w64 gettext git libtool pkg-config \
|
||||
python \
|
||||
# zbar
|
||||
autopoint && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN update-alternatives --set x86_64-w64-mingw32-g++ $(which x86_64-w64-mingw32-g++-posix) && \
|
||||
update-alternatives --set x86_64-w64-mingw32-gcc $(which x86_64-w64-mingw32-gcc-posix)
|
||||
|
||||
# The version from ubuntu repo is too old
|
||||
RUN git clone -b v3.22.2 --depth 1 https://github.com/Kitware/CMake && \
|
||||
cd CMake && \
|
||||
git reset --hard 8428e39ed9cddb3b7f1a6f7a58cb8617503183d2 && \
|
||||
./bootstrap -- -DCMAKE_USE_OPENSSL=OFF && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
RUN git clone -b master https://github.com/monero-project/monero && \
|
||||
cd monero && \
|
||||
git reset --hard 9aab19f349433687c7aaf2c1cbc5751e5912c0aa && \
|
||||
cp -a contrib/depends / && \
|
||||
cd .. && \
|
||||
rm -rf monero
|
||||
|
||||
RUN make -j$THREADS -C /depends HOST=x86_64-w64-mingw32 NO_QT=1
|
||||
|
||||
COPY contrib/QTBUG-92199-fix.patch .
|
||||
RUN git clone git://code.qt.io/qt/qt5.git -b ${QT_VERSION} --depth 1 && \
|
||||
cd qt5 && \
|
||||
git clone git://code.qt.io/qt/qtbase.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtimageformats.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtmultimedia.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtsvg.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qttools.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qttranslations.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtxmlpatterns.git -b ${QT_VERSION} --depth 1 && \
|
||||
git clone git://code.qt.io/qt/qtwebsockets.git -b ${QT_VERSION} --depth 1 && \
|
||||
cd qtbase && cat ../../QTBUG-92199-fix.patch && git apply ../../QTBUG-92199-fix.patch && cd .. && \
|
||||
OPENSSL_LIBS="-lssl -lcrypto -lws2_32" \
|
||||
./configure --prefix=/depends/x86_64-w64-mingw32 -xplatform win32-g++ \
|
||||
-device-option CROSS_COMPILE=/usr/bin/x86_64-w64-mingw32- \
|
||||
-I $(pwd)/qtbase/src/3rdparty/angle/include \
|
||||
-opensource -confirm-license -release -static -static-runtime -no-opengl \
|
||||
-no-avx -openssl-linked -I /depends/x86_64-w64-mingw32/include -L /depends/x86_64-w64-mingw32/lib \
|
||||
-qt-freetype -qt-harfbuzz -qt-libjpeg -qt-libpng -qt-pcre -qt-zlib \
|
||||
-skip gamepad -skip location -skip qt3d -skip qtactiveqt -skip qtandroidextras \
|
||||
-skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdoc \
|
||||
-skip qtgamepad -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpurchasing \
|
||||
-skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport \
|
||||
-skip qtspeech -skip qttools -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel \
|
||||
-skip qtwebengine -skip qtwebview -skip qtwinextras -skip qtx11extras \
|
||||
-skip qtdeclarative -skip qtquickcontrols -skip qtquickcontrols2 \
|
||||
-skip serialbus -skip webengine \
|
||||
-nomake examples -nomake tests -nomake tools && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
cd qttools/src/linguist/lrelease && \
|
||||
../../../../qtbase/bin/qmake && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
cd ../../../.. && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
RUN git clone -b libgpg-error-1.38 --depth 1 git://git.gnupg.org/libgpg-error.git && \
|
||||
cd libgpg-error && \
|
||||
git reset --hard 71d278824c5fe61865f7927a2ed1aa3115f9e439 && \
|
||||
./autogen.sh && \
|
||||
./configure --disable-shared --enable-static --disable-doc --disable-tests \
|
||||
--host=x86_64-w64-mingw32 --prefix=/depends/x86_64-w64-mingw32 && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
cd .. && \
|
||||
rm -rf libgpg-error
|
||||
|
||||
RUN git clone -b libgcrypt-1.8.5 --depth 1 git://git.gnupg.org/libgcrypt.git && \
|
||||
cd libgcrypt && \
|
||||
git reset --hard 56606331bc2a80536db9fc11ad53695126007298 && \
|
||||
./autogen.sh && \
|
||||
./configure --disable-shared --enable-static --disable-doc \
|
||||
--host=x86_64-w64-mingw32 --prefix=/depends/x86_64-w64-mingw32 \
|
||||
--with-gpg-error-prefix=/depends/x86_64-w64-mingw32 && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
cd .. && \
|
||||
rm -rf libgcrypt
|
||||
|
||||
# zlib -> libpng
|
||||
RUN git clone -b v1.2.11 --depth 1 https://github.com/madler/zlib && \
|
||||
cd zlib && \
|
||||
git reset --hard cacf7f1d4e3d44d871b605da3b647f07d718623f && \
|
||||
CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar ./configure --static --prefix=/usr/x86_64-w64-mingw32 && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# libpng -> libqrencode
|
||||
RUN git clone -b libpng16 --depth 1 https://github.com/glennrp/libpng.git && \
|
||||
cd libpng && \
|
||||
git reset --hard a37d4836519517bdce6cb9d956092321eca3e73b && \
|
||||
CPPFLAGS="-I/depends/x86_64-w64-mingw32/include" LDFLAGS="-L/depends/x86_64-w64-mingw32/lib" \
|
||||
./configure --host=x86_64-w64-mingw32 --prefix=/depends/x86_64-w64-mingw32 && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
RUN git clone -b v4.0.2 --depth 1 https://github.com/fukuchi/libqrencode.git && \
|
||||
cd libqrencode && \
|
||||
git reset --hard 59ee597f913fcfda7a010a6e106fbee2595f68e4 && \
|
||||
./autogen.sh && \
|
||||
CPPFLAGS="-I/depends/x86_64-w64-mingw32/include" LDFLAGS="-L/depends/x86_64-w64-mingw32/lib" \
|
||||
./configure --disable-shared --enable-static --host=x86_64-w64-mingw32 --prefix=/depends/x86_64-w64-mingw32 && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
RUN wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz && \
|
||||
echo "e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04 libiconv-1.16.tar.gz" | sha256sum -c && \
|
||||
tar -xzf libiconv-1.16.tar.gz && \
|
||||
rm libiconv-1.16.tar.gz && \
|
||||
cd libiconv-1.16 && \
|
||||
./configure --enable-static --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
# TOR_VERSION is used by CMAKE to determine embedded version
|
||||
ENV TOR_VERSION=0.4.7.8
|
||||
ENV TOR_DIR=/tor/Tor/
|
||||
RUN wget https://dist.torproject.org/torbrowser/11.0.15/tor-win64-0.4.7.8.zip && \
|
||||
echo "14115567eb9674c79481509ac97d4a7b76c80a36966dd9864989a96670440757 tor-win64-0.4.7.8.zip" | sha256sum -c && \
|
||||
unzip tor-win64-0.4.7.8.zip -d tor && \
|
||||
rm tor-win64-0.4.7.8.zip
|
||||
|
||||
RUN git clone https://github.com/nih-at/libzip.git && \
|
||||
cd libzip && \
|
||||
git reset --hard 66e496489bdae81bfda8b0088172871d8fda0032 && \
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/depends/x86_64-w64-mingw32 \
|
||||
-DCMAKE_TOOLCHAIN_FILE=/depends/x86_64-w64-mingw32/share/toolchain.cmake \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_PREFIX_PATH=/usr/x86_64-w64-mingw32 && \
|
||||
make -j$THREADS && \
|
||||
make -j$THREADS install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
RUN git clone -b 0.23.92 --depth 1 --recursive https://github.com/mchehab/zbar.git && \
|
||||
cd zbar && \
|
||||
git reset --hard aac86d5f08d64ab4c3da78188eb622fa3cb07182 && \
|
||||
autoreconf -vfi && \
|
||||
./configure --enable-static --disable-shared --without-imagemagick --disable-video --without-xv --with-gtk=no --with-python=no --enable-doc=no --host=x86_64-w64-mingw32 && \
|
||||
make -j$THREADS && \
|
||||
make install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
COPY contrib/patches/polyseed/force-static-mingw.patch .
|
||||
COPY contrib/patches/polyseed/no_shared.patch .
|
||||
|
||||
# polyseed: Required for Feather
|
||||
RUN git clone https://github.com/tevador/polyseed.git && \
|
||||
cd polyseed && \
|
||||
git reset --hard 4945d8239d6b26dc12723ca2aaa9f8110ceff5af && \
|
||||
git apply ../force-static-mingw.patch && \
|
||||
git apply ../no_shared.patch && \
|
||||
mkdir build && \
|
||||
cd build && \
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/depends/x86_64-w64-mingw32 \
|
||||
-DCMAKE_TOOLCHAIN_FILE=/depends/x86_64-w64-mingw32/share/toolchain.cmake \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_PREFIX_PATH=/usr/x86_64-w64-mingw32 .. && \
|
||||
make && \
|
||||
make install && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
RUN git config --global --add safe.directory /feather/monero
|
17
HACKING.md
17
HACKING.md
|
@ -3,8 +3,6 @@
|
|||
Feather is developed primarily on Linux, but can also be built and debugged on macOS. Development on Windows is not
|
||||
currently supported.
|
||||
|
||||
If you are just looking to build Feather from source, we recommend following the instructions in BUILDING.md instead.
|
||||
|
||||
## Setting up a development environment
|
||||
|
||||
### Dependencies
|
||||
|
@ -16,7 +14,7 @@ https://www.qt.io/download (under open-source).
|
|||
#### Arch Linux
|
||||
|
||||
```bash
|
||||
pacman -S git cmake base-devel ccache unbound boost qrencode zbar qt6-base qt6-svg qt6-websockets libzip hidapi protobuf
|
||||
pacman -S git cmake base-devel ccache unbound boost qrencode zbar qt6-base qt6-svg qt6-websockets qt6-multimedia libzip hidapi protobuf
|
||||
```
|
||||
|
||||
#### Ubuntu 22.04
|
||||
|
@ -77,9 +75,8 @@ We recommend using Jetbrains Clion for Feather development. It integrates nicely
|
|||
debugger.
|
||||
|
||||
To pass CMake flags to CLion, go to `File->Settings->Build->CMake`, set Build Type to `Debug` and set your
|
||||
preferred CMake options/definitions. Add `-DARCH=x86-64` to the CMake options. If you installed Qt using the online
|
||||
installer you may have to add `-DCMAKE_PREFIX_PATH=/path/to/qt/installation` in the CMake options. More CMake options
|
||||
are documented below.
|
||||
preferred CMake options. If you installed Qt using the online installer you may have to add
|
||||
`-DCMAKE_PREFIX_PATH=/path/to/qt/installation` in the CMake options. More CMake options are documented below.
|
||||
|
||||
Run CMake (`View -> Tool Windows -> CMake`). Click on the 🔃 (`Reload CMake Project`) button.
|
||||
|
||||
|
@ -95,8 +92,12 @@ After the target is configured, `Run -> Run 'feather'` or press Shift + F10 to b
|
|||
|
||||
To build Feather without an IDE:
|
||||
|
||||
- Linux: `make release`
|
||||
- macOS: `make mac-release`
|
||||
```bash
|
||||
mkdir build && \
|
||||
cd build && \
|
||||
cmake .. && \
|
||||
cmake --build . -j $(nproc)
|
||||
```
|
||||
|
||||
### CMake
|
||||
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2020-2022, The Monero Project
|
||||
Copyright (c) 2020-2023, The Monero Project
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
|
99
Makefile
99
Makefile
|
@ -1,99 +0,0 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# SPDX-FileCopyrightText: 2020-2022 The Monero Project
|
||||
|
||||
CMAKEFLAGS = \
|
||||
-DTOR_DIR=$(or ${TOR_DIR}, Off) \
|
||||
-DTOR_VERSION=$(or ${TOR_VERSION}, Off) \
|
||||
-DCHECK_UPDATES=$(or ${CHECK_UPDATES}, Off) \
|
||||
-DWITH_SCANNER=$(or ${WITH_SCANNER}, Off) \
|
||||
-DREPRODUCIBLE=$(or ${SOURCE_DATE_EPOCH}, Off)
|
||||
|
||||
release:
|
||||
mkdir -p build/release && \
|
||||
cd build/release && \
|
||||
cmake \
|
||||
-DARCH=x86-64 \
|
||||
-D BUILD_TAG="linux-x64" \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
$(CMAKEFLAGS) \
|
||||
../.. && \
|
||||
$(MAKE)
|
||||
|
||||
release-static:
|
||||
mkdir -p build/release && \
|
||||
cd build/release && \
|
||||
cmake \
|
||||
-DARCH=x86-64 \
|
||||
-D BUILD_TAG="linux-x64" \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D STATIC=On \
|
||||
$(CMAKEFLAGS) \
|
||||
../.. && \
|
||||
$(MAKE)
|
||||
|
||||
release-static-linux-arm64:
|
||||
mkdir -p build/release && \
|
||||
cd build/release && \
|
||||
cmake \
|
||||
-D ARCH="armv8-a" \
|
||||
-D BUILD_TAG="linux-armv8" \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D STATIC=On \
|
||||
$(CMAKEFLAGS) \
|
||||
../.. && \
|
||||
$(MAKE)
|
||||
|
||||
release-static-linux-arm64-rpi:
|
||||
mkdir -p build/release && \
|
||||
cd build/release && \
|
||||
cmake \
|
||||
-D ARCH="armv8-a" \
|
||||
-D NO_AES=On \
|
||||
-D BUILD_TAG="linux-armv8-noaes" \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D STATIC=On \
|
||||
$(CMAKEFLAGS) \
|
||||
../.. && \
|
||||
$(MAKE)
|
||||
|
||||
release-static-windows:
|
||||
mkdir -p build/$(target)/release && \
|
||||
cd build/$(target)/release && \
|
||||
cmake \
|
||||
-DARCH=x86-64 \
|
||||
-D BUILD_TAG=$(tag) \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D STATIC=ON \
|
||||
-D CMAKE_TOOLCHAIN_FILE=$(root)/$(target)/share/toolchain.cmake \
|
||||
$(CMAKEFLAGS) \
|
||||
../../.. && \
|
||||
$(MAKE)
|
||||
|
||||
release-static-windows-installer:
|
||||
mkdir -p build/$(target)/release && \
|
||||
cd build/$(target)/release && \
|
||||
cmake \
|
||||
-D PLATFORM_INSTALLER=On \
|
||||
-DARCH=x86-64 \
|
||||
-D BUILD_TAG=$(tag) \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D STATIC=ON \
|
||||
-D CMAKE_TOOLCHAIN_FILE=$(root)/$(target)/share/toolchain.cmake \
|
||||
$(CMAKEFLAGS) \
|
||||
-D TOR_DIR=Off \
|
||||
-D TOR_VERSION=Off \
|
||||
../../.. && \
|
||||
$(MAKE)
|
||||
|
||||
mac-release:
|
||||
mkdir -p build && \
|
||||
cd build && \
|
||||
cmake \
|
||||
-DARCH=native \
|
||||
-D BUILD_TAG="mac-x64" \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D STATIC=Off \
|
||||
$(CMAKEFLAGS) \
|
||||
.. && \
|
||||
$(MAKE) && \
|
||||
$(MAKE) deploy
|
31
PKGBUILD
31
PKGBUILD
|
@ -1,31 +0,0 @@
|
|||
# Maintainer: wowario <wowario[at]protonmail[dot]com>
|
||||
# Contributor: wowario <wowario[at]protonmail[dot]com>
|
||||
# Contributor: tobtoht <dev@featherwallet.org>
|
||||
|
||||
pkgname='monero-feather-git'
|
||||
pkgver=2.0.0
|
||||
pkgrel=1
|
||||
pkgdesc='A free Monero desktop wallet'
|
||||
license=('BSD')
|
||||
arch=('x86_64')
|
||||
url="https://featherwallet.org"
|
||||
depends=('libzip' 'boost-libs' 'libunwind' 'openssl' 'hidapi' 'protobuf' 'libusb' 'libudev.so' 'libgcrypt'
|
||||
'qrencode' 'libsodium' 'expat' 'qt6-base' 'qt6-websockets' 'qt6-svg' 'tor' 'zbar' 'unbound')
|
||||
makedepends=('git' 'cmake' 'boost')
|
||||
|
||||
source=("${pkgname}"::"git+https://github.com/feather-wallet/feather")
|
||||
|
||||
sha256sums=('SKIP')
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/${pkgname}"
|
||||
git submodule update --init --recursive
|
||||
make release
|
||||
}
|
||||
|
||||
package_monero-feather-git() {
|
||||
install -Dm644 "${srcdir}/${pkgname}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
|
||||
install -Dm755 "${srcdir}/${pkgname}/build/release/bin/feather" "${pkgdir}/usr/bin/feather"
|
||||
install -Dm644 "${srcdir}/${pkgname}/src/assets/feather.desktop" "${pkgdir}/usr/share/applications/feather.desktop"
|
||||
install -Dm644 "${srcdir}/${pkgname}/src/assets/images/feather.png" "${pkgdir}/usr/share/pixmaps/feather.png"
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Feather is a free, open-source Monero wallet for Linux, Tails, macOS and Windows. It is written in C++ with the Qt framework.
|
||||
|
||||
Copyright (c) 2020-2022, The Monero Project.
|
||||
Copyright (c) 2020-2023, The Monero Project.
|
||||
|
||||
## Resources
|
||||
|
||||
|
@ -24,11 +24,11 @@ Donations help pay for hosting, build servers, domain names, e-mail and other re
|
|||
|
||||
`47ntfT2Z5384zku39pTM6hGcnLnvpRYW2Azm87GiAAH2bcTidtq278TL6HmwyL8yjMeERqGEBs3cqC8vvHPJd1cWQrGC65f`
|
||||
|
||||
## Building from source
|
||||
## Deterministic builds
|
||||
|
||||
See [BUILDING.md](https://github.com/feather-wallet/feather/blob/master/BUILDING.md) for information on how to build from source.
|
||||
See [contrib/guix/README.md](https://github.com/feather-wallet/feather/blob/master/contrib/guix/README.md) for more information.
|
||||
|
||||
## Developers
|
||||
## Development
|
||||
|
||||
If you are looking to set up a development environment for Feather, see [HACKING.md](https://github.com/feather-wallet/feather/blob/master/HACKING.md).
|
||||
|
||||
|
|
|
@ -10,6 +10,6 @@ The following keys may be used to communicate sensitive information to developer
|
|||
|
||||
| Name | Fingerprint |
|
||||
|------|-------------|
|
||||
| tobtoht | C5AB E5C0 E50F A2B3 F14A B92D 1CAD D27F 41F4 5C3C |
|
||||
| tobtoht | E87B D921 CDD8 85C9 D78A 38C5 E45B 10DD 027D 2472 |
|
||||
|
||||
Public keys can be found in `utils/pubkeys`.
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
if(APPLE OR (WIN32 AND NOT STATIC))
|
||||
add_custom_target(deploy)
|
||||
get_target_property(_qmake_executable Qt::qmake IMPORTED_LOCATION)
|
||||
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
|
||||
|
||||
if(APPLE AND NOT IOS)
|
||||
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${_qt_bin_dir}")
|
||||
add_custom_command(TARGET deploy
|
||||
POST_BUILD
|
||||
COMMAND "${MACDEPLOYQT_EXECUTABLE}" "$<TARGET_FILE_DIR:feather>/../.." -always-overwrite
|
||||
COMMENT "Running macdeployqt..."
|
||||
)
|
||||
|
||||
# workaround for a Qt bug that requires manually adding libqsvg.dylib to bundle
|
||||
find_file(_qt_svg_dylib "libqsvg.dylib" PATHS "${CMAKE_PREFIX_PATH}/plugins/imageformats" NO_DEFAULT_PATH)
|
||||
if(_qt_svg_dylib)
|
||||
add_custom_command(TARGET deploy
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_qt_svg_dylib} $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/
|
||||
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtGui.framework/Versions/5/QtGui" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/libqsvg.dylib
|
||||
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtWidgets.framework/Versions/5/QtWidgets" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/libqsvg.dylib
|
||||
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtSvg.framework/Versions/5/QtSvg" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/libqsvg.dylib
|
||||
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtCore.framework/Versions/5/QtCore" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/libqsvg.dylib
|
||||
COMMENT "Copying libqsvg.dylib, running install_name_tool"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
|
@ -9,14 +9,6 @@ if(PkgConfig_FOUND)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT ZBAR_LIBRARIES AND ANDROID)
|
||||
find_library(ZBARJNI_LIBRARY NAMES zbarjni)
|
||||
find_library(ICONV_LIBRARY NAMES iconv)
|
||||
if(ZBARJNI_LIBRARY AND ICONV_LIBRARY)
|
||||
set(ZBAR_LIBRARIES ${ZBARJNI_LIBRARY} ${ICONV_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT ZBAR_INCLUDE_DIR)
|
||||
find_path(ZBAR_H_PATH zbar.h)
|
||||
if(ZBAR_H_PATH)
|
||||
|
|
|
@ -87,7 +87,7 @@ if(NOT ZLIB_LIBRARY)
|
|||
find_library(ZLIB_LIBRARY_DEBUG NAMES ${ZLIB_NAMES_DEBUG} NAMES_PER_DIR ${${search}} PATH_SUFFIXES lib)
|
||||
endforeach()
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
|
||||
include(SelectLibraryConfigurations)
|
||||
select_library_configurations(ZLIB)
|
||||
endif()
|
||||
|
||||
|
@ -116,7 +116,7 @@ if(ZLIB_INCLUDE_DIR AND EXISTS "${ZLIB_INCLUDE_DIR}/zlib.h")
|
|||
set(ZLIB_PATCH_VERSION "${ZLIB_VERSION_PATCH}")
|
||||
endif()
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB REQUIRED_VARS ZLIB_LIBRARY ZLIB_INCLUDE_DIR
|
||||
VERSION_VAR ZLIB_VERSION_STRING)
|
||||
|
||||
|
@ -151,4 +151,6 @@ if(ZLIB_FOUND)
|
|||
IMPORTED_LOCATION "${ZLIB_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
message(STATUS "Found zlib libraries ${ZLIB_LIBRARIES}")
|
||||
endif()
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# SPDX-FileCopyrightText: 2020-2022 The Monero Project
|
||||
# SPDX-FileCopyrightText: 2020-2023 The Monero Project
|
||||
|
||||
find_package(Git QUIET)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef FEATHER_VERSION_H
|
||||
#define FEATHER_VERSION_H
|
||||
|
||||
#define FEATHER_VERSION "@VERSION@"
|
||||
#define FEATHER_VERSION "@PROJECT_VERSION@"
|
||||
#define FEATHER_COMMIT "@FEATHER_COMMIT@"
|
||||
|
||||
#define TOR_VERSION "@TOR_VERSION@"
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
HERE="$(dirname "$(readlink -f "${0}")")"
|
||||
echo $HERE
|
||||
|
||||
export GST_PLUGIN_SCANNER=$(readlink -f $(dirname "$0")/usr/lib/gst-plugin-scanner)
|
||||
export GST_PLUGIN_SYSTEM_PATH=$(readlink -f $(dirname "$0")/usr/lib)
|
||||
|
||||
# Tails 5.8 sets QT_QPA_PLATFORM to wayland which breaks our app
|
||||
export QT_QPA_PLATFORM=xcb
|
||||
${APPDIR}/usr/bin/feather $*
|
||||
|
|
48
contrib/AppImage/build-appimage.sh
Executable file
48
contrib/AppImage/build-appimage.sh
Executable file
|
@ -0,0 +1,48 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
unset SOURCE_DATE_EPOCH
|
||||
|
||||
APPDIR="$PWD/feather.AppDir"
|
||||
|
||||
mkdir -p "$APPDIR"
|
||||
mkdir -p "$APPDIR/usr/share/applications/"
|
||||
mkdir -p "$APPDIR/usr/bin"
|
||||
mkdir -p "$APPDIR/usr/lib"
|
||||
mkdir -p "$APPDIR/usr/plugins"
|
||||
|
||||
cp "src/assets/feather.desktop" "$APPDIR/usr/share/applications/feather.desktop"
|
||||
cp "src/assets/images/appicons/64x64.png" "$APPDIR/feather.png"
|
||||
cp "build/bin/feather" "$APPDIR/usr/bin/feather"
|
||||
chmod +x "$APPDIR/usr/bin/feather"
|
||||
|
||||
export LD_LIBRARY_PATH=/feather/contrib/depends/x86_64-linux-gnu/lib/:/gnu/store:/gnu/store/yk91cxchassi5ykxsyd4vci32vncgjkf-gcc-cross-x86_64-linux-gnu-10.3.0-lib/x86_64-linux-gnu/lib
|
||||
|
||||
# linuxdeployqt glibc moaning bypass
|
||||
mkdir -p "$APPDIR/usr/share/doc/libc6"
|
||||
touch "$APPDIR/usr/share/doc/libc6/copyright"
|
||||
|
||||
# TODO: linuxdeployqt can't build ARM appimages on x86_64, skip this step for ARM builds
|
||||
case "$HOST" in
|
||||
x86_64*)
|
||||
linuxdeployqt feather.AppDir/usr/share/applications/feather.desktop -verbose=2 -bundle-non-qt-libs -unsupported-allow-new-glibc
|
||||
rm "$APPDIR/AppRun"
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "contrib/AppImage/AppRun" "$APPDIR/"
|
||||
chmod +x "$APPDIR/AppRun"
|
||||
|
||||
find feather.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
|
||||
|
||||
# Manually create AppImage (reproducibly)
|
||||
|
||||
mksquashfs feather.AppDir feather.squashfs -info -root-owned -no-xattrs -noappend -fstime 0
|
||||
# mksquashfs writes a timestamp to the header
|
||||
printf '\x00\x00\x00\x00' | dd conv=notrunc of=feather.squashfs bs=1 seek=$((0x8))
|
||||
|
||||
rm -f feather.AppImage
|
||||
|
||||
cat /feather/contrib/depends/${HOST}/runtime >> feather.AppImage
|
||||
cat feather.squashfs >> feather.AppImage
|
||||
chmod a+x feather.AppImage
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Wrapper to launch gst-plugin-scanner inside the AppImage.
|
||||
|
||||
HERE="$(dirname "$(readlink -f "${0}")")"
|
||||
export PATH="${HERE}:${PATH}"
|
||||
|
||||
binary=$(find "$HERE" -name "gst-plugin-scanner-x86_64" | head -n 1)
|
||||
LD_LINUX=$(find "$HERE/../../../" -name 'ld-*.so.*' | head -n 1)
|
||||
if [ -e "$LD_LINUX" ] ; then
|
||||
case $line in
|
||||
"ld-linux"*) exec "${LD_LINUX}" --inhibit-cache "${binary}" "$@" ;;
|
||||
*) exec "${LD_LINUX}" "${binary}" "$@" ;;
|
||||
esac
|
||||
else
|
||||
exec "${binary}" "$@"
|
||||
fi
|
|
@ -1,46 +0,0 @@
|
|||
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
|
||||
index 2ab9756f8d..a9d6ecd51a 100644
|
||||
--- a/src/widgets/styles/qstylesheetstyle.cpp
|
||||
+++ b/src/widgets/styles/qstylesheetstyle.cpp
|
||||
@@ -1465,7 +1465,6 @@ void QRenderRule::configurePalette(QPalette *p, QPalette::ColorGroup cg, const Q
|
||||
p->setBrush(cg, w->foregroundRole(), pal->foreground);
|
||||
p->setBrush(cg, QPalette::WindowText, pal->foreground);
|
||||
p->setBrush(cg, QPalette::Text, pal->foreground);
|
||||
- p->setBrush(cg, QPalette::PlaceholderText, pal->foreground);
|
||||
}
|
||||
if (pal->selectionBackground.style() != Qt::NoBrush)
|
||||
p->setBrush(cg, QPalette::Highlight, pal->selectionBackground);
|
||||
diff --git a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
|
||||
index 26868a763c..82527849b0 100644
|
||||
--- a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
|
||||
+++ b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
|
||||
@@ -126,7 +126,6 @@ private slots:
|
||||
void QTBUG15910_crashNullWidget();
|
||||
void QTBUG36933_brokenPseudoClassLookup();
|
||||
void styleSheetChangeBeforePolish();
|
||||
- void placeholderColor();
|
||||
//at the end because it mess with the style.
|
||||
void widgetStyle();
|
||||
void appStyle();
|
||||
@@ -2230,21 +2229,6 @@ void tst_QStyleSheetStyle::highdpiImages()
|
||||
QHighDpiScaling::updateHighDpiScaling(); // reset to normal
|
||||
}
|
||||
|
||||
-void tst_QStyleSheetStyle::placeholderColor()
|
||||
-{
|
||||
- const QColor red(Qt::red);
|
||||
- qApp->setStyleSheet("* { color: red; }");
|
||||
- QLineEdit le1;
|
||||
- QLineEdit le2;
|
||||
- le2.setEnabled(false);
|
||||
- le1.ensurePolished();
|
||||
- QCOMPARE(le1.palette().placeholderText(), red);
|
||||
- le2.ensurePolished();
|
||||
- QCOMPARE(le2.palette().placeholderText(), red);
|
||||
- le2.setEnabled(true);
|
||||
- QCOMPARE(le2.palette().placeholderText(), red);
|
||||
-}
|
||||
-
|
||||
QTEST_MAIN(tst_QStyleSheetStyle)
|
||||
#include "tst_qstylesheetstyle.moc"
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# TODO: Merge with build-appimage.sh
|
||||
|
||||
set -e
|
||||
unset SOURCE_DATE_EPOCH
|
||||
|
||||
# Temporary workaround for linuxdeployqt issue on arm64
|
||||
if [ "$(uname -m)" = "aarch64" ]; then
|
||||
pushd /
|
||||
apt update
|
||||
apt install -y qt5-default
|
||||
git clone https://github.com/probonopd/linuxdeployqt.git
|
||||
cd linuxdeployqt
|
||||
git reset --hard b4697483c98120007019c3456914cfd1dba58384
|
||||
qmake
|
||||
make -j$THREADS
|
||||
make install
|
||||
rm -rf $(pwd)
|
||||
popd
|
||||
fi
|
||||
|
||||
APPDIR="$PWD/feather.AppDir"
|
||||
rm -rf $APPDIR
|
||||
mkdir -p "$APPDIR"
|
||||
mkdir -p "$APPDIR/usr/share/applications/"
|
||||
mkdir -p "$APPDIR/usr/bin"
|
||||
mkdir -p "$APPDIR/usr/lib"
|
||||
mkdir -p "$APPDIR/usr/plugins"
|
||||
|
||||
cp "$PWD/../src/assets/feather.desktop" "$APPDIR/usr/share/applications/feather.desktop"
|
||||
cp "$PWD/../src/assets/images/appicons/64x64.png" "$APPDIR/feather.png"
|
||||
cp "$PWD/release/bin/feather" "$APPDIR/usr/bin/feather"
|
||||
chmod +x "$APPDIR/usr/bin/feather"
|
||||
|
||||
export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/:/usr/local/lib/$LD_LIBRARY_PATH
|
||||
linuxdeployqt feather.AppDir/usr/share/applications/feather.desktop -verbose=2 -bundle-non-qt-libs
|
||||
|
||||
pushd feather.AppDir/usr/plugins
|
||||
ln -s ../lib/ gstreamer
|
||||
popd
|
||||
|
||||
GST_PLUGINS=("libgstcamerabin.so libgstcoreelements.so libgstvolume.so libgstapp.so libgstvideoconvert.so
|
||||
libgstvideoscale.so libgstvideo4linux2.so libgstencoding.so libgstmultifile.so libgstmatroska.so
|
||||
libgstvpx.so libgstjpegformat.so libgstjpeg.so libgstautodetect.so libgstaudiotestsrc.so
|
||||
libgstvorbis.so libgstaudiorate.so libgstaudioconvert.so libgstaudioresample.so libgstvideocrop.so")
|
||||
|
||||
for plugin in ${GST_PLUGINS[*]}; do
|
||||
cp /usr/lib/aarch64-linux-gnu/gstreamer-1.0/$plugin feather.AppDir/usr/plugins/gstreamer/
|
||||
|
||||
# linuxdeployqt doesn't set RUNPATH on libs that are only loaded at runtime
|
||||
patchelf --set-rpath "\$ORIGIN" feather.AppDir/usr/plugins/gstreamer/$plugin
|
||||
done
|
||||
|
||||
cp /usr/lib/aarch64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner feather.AppDir/usr/plugins/gstreamer/
|
||||
|
||||
# Need second deploy for gstreamer dependencies
|
||||
linuxdeployqt feather.AppDir/usr/share/applications/feather.desktop -verbose=2 -bundle-non-qt-libs
|
||||
|
||||
rm "$APPDIR/AppRun"
|
||||
cp "$PWD/../contrib/AppImage/AppRun" "$APPDIR/"
|
||||
chmod +x "$APPDIR/AppRun"
|
||||
|
||||
find feather.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
|
||||
|
||||
# Manually create AppImage (reproducibly)
|
||||
|
||||
# download runtime
|
||||
wget -nc https://github.com/AppImage/AppImageKit/releases/download/13/runtime-aarch64
|
||||
echo "d2624ce8cc2c64ef76ba986166ad67f07110cdbf85112ace4f91611bc634c96a runtime-aarch64" | sha256sum -c
|
||||
|
||||
mksquashfs feather.AppDir feather.squashfs -info -root-owned -no-xattrs -noappend -fstime 0
|
||||
# mksquashfs writes a timestamp to the header
|
||||
printf '\x00\x00\x00\x00' | dd conv=notrunc of=feather.squashfs bs=1 seek=$((0x8))
|
||||
|
||||
rm -f feather.AppImage
|
||||
cat runtime-aarch64 >> feather.AppImage
|
||||
cat feather.squashfs >> feather.AppImage
|
||||
chmod a+x feather.AppImage
|
|
@ -1,62 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
unset SOURCE_DATE_EPOCH
|
||||
|
||||
APPDIR="$PWD/feather.AppDir"
|
||||
rm -rf $APPDIR
|
||||
mkdir -p "$APPDIR"
|
||||
mkdir -p "$APPDIR/usr/share/applications/"
|
||||
mkdir -p "$APPDIR/usr/bin"
|
||||
mkdir -p "$APPDIR/usr/lib"
|
||||
mkdir -p "$APPDIR/usr/plugins"
|
||||
|
||||
cp "$PWD/../src/assets/feather.desktop" "$APPDIR/usr/share/applications/feather.desktop"
|
||||
cp "$PWD/../src/assets/images/appicons/64x64.png" "$APPDIR/feather.png"
|
||||
cp "$PWD/release/bin/feather" "$APPDIR/usr/bin/feather"
|
||||
chmod +x "$APPDIR/usr/bin/feather"
|
||||
|
||||
export LD_LIBRARY_PATH=/usr/local/lib/x86_64-linux-gnu/:/usr/local/lib/$LD_LIBRARY_PATH
|
||||
linuxdeployqt feather.AppDir/usr/share/applications/feather.desktop -verbose=2 -bundle-non-qt-libs
|
||||
|
||||
pushd feather.AppDir/usr/plugins
|
||||
ln -s ../lib/ gstreamer
|
||||
popd
|
||||
|
||||
GST_PLUGINS=("libgstcamerabin.so libgstcoreelements.so libgstvolume.so libgstapp.so libgstvideoconvert.so
|
||||
libgstvideoscale.so libgstvideo4linux2.so libgstencoding.so libgstmultifile.so libgstmatroska.so
|
||||
libgstvpx.so libgstjpegformat.so libgstjpeg.so libgstautodetect.so libgstaudiotestsrc.so
|
||||
libgstvorbis.so libgstaudiorate.so libgstaudioconvert.so libgstaudioresample.so libgstvideocrop.so")
|
||||
|
||||
for plugin in ${GST_PLUGINS[*]}; do
|
||||
cp /usr/lib/x86_64-linux-gnu/gstreamer-1.0/$plugin feather.AppDir/usr/plugins/gstreamer/
|
||||
|
||||
# linuxdeployqt doesn't set RUNPATH on libs that are only loaded at runtime
|
||||
patchelf --set-rpath "\$ORIGIN" feather.AppDir/usr/plugins/gstreamer/$plugin
|
||||
done
|
||||
|
||||
cp /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner feather.AppDir/usr/plugins/gstreamer/
|
||||
|
||||
# Need second deploy for gstreamer dependencies
|
||||
linuxdeployqt feather.AppDir/usr/share/applications/feather.desktop -verbose=2 -bundle-non-qt-libs
|
||||
|
||||
rm "$APPDIR/AppRun"
|
||||
cp "$PWD/../contrib/AppImage/AppRun" "$APPDIR/"
|
||||
chmod +x "$APPDIR/AppRun"
|
||||
|
||||
find feather.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
|
||||
|
||||
# Manually create AppImage (reproducibly)
|
||||
|
||||
# download runtime
|
||||
wget -nc https://github.com/AppImage/AppImageKit/releases/download/13/runtime-x86_64
|
||||
echo "328e0d745c5c6817048c27bc3e8314871703f8f47ffa81a37cb06cd95a94b323 runtime-x86_64" | sha256sum -c
|
||||
|
||||
mksquashfs feather.AppDir feather.squashfs -info -root-owned -no-xattrs -noappend -fstime 0
|
||||
# mksquashfs writes a timestamp to the header
|
||||
printf '\x00\x00\x00\x00' | dd conv=notrunc of=feather.squashfs bs=1 seek=$((0x8))
|
||||
|
||||
rm -f feather.AppImage
|
||||
cat runtime-x86_64 >> feather.AppImage
|
||||
cat feather.squashfs >> feather.AppImage
|
||||
chmod a+x feather.AppImage
|
|
@ -1,61 +0,0 @@
|
|||
FROM ubuntu:18.04
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
WORKDIR /deps
|
||||
|
||||
RUN sed -i '/bionic-backports/d' /etc/apt/sources.list
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y wget xz-utils nano gpg xz-utils ca-certificates
|
||||
|
||||
COPY get-packages.sh .
|
||||
RUN bash get-packages.sh
|
||||
|
||||
RUN apt-get install -y --no-install-recommends --no-install-suggests --reinstall --download-only \
|
||||
# build tools
|
||||
software-properties-common python3 build-essential automake libtool-bin git \
|
||||
# ninja
|
||||
unzip \
|
||||
# GStreamer plugins
|
||||
libjpeg-dev libvpx-dev libvorbis-dev \
|
||||
# fontconfig
|
||||
autopoint gettext gperf libpng-dev \
|
||||
# libxkbcommon
|
||||
bison \
|
||||
# Qt 5.15
|
||||
# https://doc.qt.io/qt-5/linux-requirements.html
|
||||
libx11-dev \
|
||||
libx11-xcb-dev \
|
||||
libxext-dev \
|
||||
libxfixes-dev \
|
||||
libxi-dev \
|
||||
libxrender-dev \
|
||||
libxcb1-dev \
|
||||
libxcb-keysyms1-dev \
|
||||
libxcb-image0-dev \
|
||||
libxcb-icccm4-dev \
|
||||
libxcb-xfixes0-dev \
|
||||
libxcb-render-util0-dev \
|
||||
libxcb-xinerama0-dev \
|
||||
libxcb-randr0-dev \
|
||||
libxcb-sync-dev \
|
||||
libxkbcommon-dev \
|
||||
libxkbcommon-x11-dev \
|
||||
xutils-dev \
|
||||
libxcb-util-dev \
|
||||
libxcb-xinput-dev \
|
||||
# libwallet
|
||||
# libudev.so is included in AppImage
|
||||
libudev1 libudev-dev \
|
||||
# GStreamer
|
||||
gstreamer1.0-plugins-good \
|
||||
libgstreamer1.0-dev \
|
||||
libgstreamer-plugins-base1.0-dev \
|
||||
# git dependency
|
||||
libpsl5
|
||||
|
||||
# Verify packages
|
||||
RUN ln -s /var/cache/apt/archives /archives
|
||||
COPY verify-packages.sh .
|
||||
RUN bash verify-packages.sh
|
|
@ -1,25 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
base_uri="http://archive.ubuntu.com/ubuntu/dists"
|
||||
arch="amd64"
|
||||
if [ "$(uname -m)" = "aarch64" ]; then
|
||||
base_uri="http://ports.ubuntu.com/ubuntu-ports/dists"
|
||||
arch="arm64"
|
||||
fi
|
||||
|
||||
for target in bionic bionic-updates bionic-security
|
||||
do
|
||||
mkdir "$target"
|
||||
pushd "$target"
|
||||
target_uri="$base_uri/$target/"
|
||||
wget "$target_uri/Release"
|
||||
wget "$target_uri/Release.gpg"
|
||||
for repo in main multiverse restricted universe
|
||||
do
|
||||
mkdir "$repo"
|
||||
pushd "$repo"
|
||||
wget "$target_uri/$repo/binary-$arch/Packages.xz"
|
||||
popd
|
||||
done
|
||||
popd
|
||||
done
|
|
@ -1,37 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
arch="amd64"
|
||||
if [ "$(uname -m)" = "aarch64" ]; then
|
||||
arch="arm64"
|
||||
fi
|
||||
|
||||
cd /deps
|
||||
for target in bionic bionic-updates bionic-security
|
||||
do
|
||||
pushd "$target"
|
||||
|
||||
# Verify Releases
|
||||
gpg --no-default-keyring --keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg --verify Release.gpg Release
|
||||
|
||||
for repo in main multiverse restricted universe
|
||||
do
|
||||
pushd "$repo"
|
||||
|
||||
# Verify Packages.xz
|
||||
sha256=`cat ../Release | grep "$repo/binary-$arch/Packages.xz" | tail -n 1 | awk '{print $1}'`
|
||||
echo "$sha256 Packages.xz" | sha256sum -c
|
||||
|
||||
xz -d -c Packages.xz >> ../../Packages-all
|
||||
popd
|
||||
done
|
||||
popd
|
||||
done
|
||||
|
||||
# Verify individual .deb files
|
||||
cd /archives
|
||||
for deb in *.deb; do
|
||||
file_name=`echo $deb | sed 's/[0-9]*%3a//g'` # --download-only uses this version format sometimes, not sure what that is all about
|
||||
sha256=`sed -n "/\/${file_name}$"'/{:start /SHA256: /!{N;b start};//p}' /deps/Packages-all | tail -n 1 | awk '{print $2}'`
|
||||
echo "$sha256 $deb" | sha256sum -c
|
||||
done
|
14
contrib/depends/.gitignore
vendored
Normal file
14
contrib/depends/.gitignore
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
SDKs/
|
||||
work/
|
||||
built/
|
||||
sources/
|
||||
config.site
|
||||
x86_64-*
|
||||
i686-*
|
||||
mips-*
|
||||
arm-*
|
||||
aarch64-*
|
||||
powerpc-*
|
||||
riscv32-*
|
||||
riscv64-*
|
||||
s390x-*
|
291
contrib/depends/Makefile
Normal file
291
contrib/depends/Makefile
Normal file
|
@ -0,0 +1,291 @@
|
|||
.NOTPARALLEL :
|
||||
|
||||
# Pattern rule to print variables, e.g. make print-top_srcdir
|
||||
print-%: FORCE
|
||||
@echo '$*'='$($*)'
|
||||
|
||||
# When invoking a sub-make, keep only the command line variable definitions
|
||||
# matching the pattern in the filter function.
|
||||
#
|
||||
# e.g. invoking:
|
||||
# $ make A=1 C=1 print-MAKEOVERRIDES print-MAKEFLAGS
|
||||
#
|
||||
# with the following in the Makefile:
|
||||
# MAKEOVERRIDES := $(filter A=% B=%,$(MAKEOVERRIDES))
|
||||
#
|
||||
# will print:
|
||||
# MAKEOVERRIDES = A=1
|
||||
# MAKEFLAGS = -- A=1
|
||||
#
|
||||
# this is because as the GNU make manual says:
|
||||
# The command line variable definitions really appear in the variable
|
||||
# MAKEOVERRIDES, and MAKEFLAGS contains a reference to this variable.
|
||||
#
|
||||
# and since the GNU make manual also says:
|
||||
# variables defined on the command line are passed to the sub-make through
|
||||
# MAKEFLAGS
|
||||
#
|
||||
# this means that sub-makes will be invoked as if:
|
||||
# $(MAKE) A=1 blah blah
|
||||
MAKEOVERRIDES := $(filter V=%,$(MAKEOVERRIDES))
|
||||
SOURCES_PATH ?= $(BASEDIR)/sources
|
||||
WORK_PATH = $(BASEDIR)/work
|
||||
BASE_CACHE ?= $(BASEDIR)/built
|
||||
SDK_PATH ?= $(BASEDIR)/SDKs
|
||||
FALLBACK_DOWNLOAD_PATH ?= https://featherwallet.org/files/sources
|
||||
|
||||
BUILD = $(shell ./config.guess)
|
||||
HOST ?= $(BUILD)
|
||||
PATCHES_PATH = $(BASEDIR)/patches
|
||||
BASEDIR = $(CURDIR)
|
||||
HASH_LENGTH:=11
|
||||
DOWNLOAD_CONNECT_TIMEOUT:=30
|
||||
DOWNLOAD_RETRIES:=3
|
||||
HOST_ID_SALT ?= salt
|
||||
BUILD_ID_SALT ?= salt
|
||||
|
||||
host:=$(BUILD)
|
||||
ifneq ($(HOST),)
|
||||
host:=$(HOST)
|
||||
endif
|
||||
|
||||
ifneq ($(DEBUG),)
|
||||
release_type=Debug
|
||||
else
|
||||
release_type=Release
|
||||
endif
|
||||
|
||||
ifneq ($(TESTS),)
|
||||
build_tests=ON
|
||||
release_type=Debug
|
||||
else
|
||||
build_tests=OFF
|
||||
endif
|
||||
|
||||
base_build_dir=$(WORK_PATH)/build
|
||||
base_staging_dir=$(WORK_PATH)/staging
|
||||
base_download_dir=$(WORK_PATH)/download
|
||||
canonical_host:=$(shell ./config.sub $(HOST))
|
||||
build:=$(shell ./config.sub $(BUILD))
|
||||
|
||||
build_arch =$(firstword $(subst -, ,$(build)))
|
||||
build_vendor=$(word 2,$(subst -, ,$(build)))
|
||||
full_build_os:=$(subst $(build_arch)-$(build_vendor)-,,$(build))
|
||||
build_os:=$(findstring linux,$(full_build_os))
|
||||
build_os+=$(findstring darwin,$(full_build_os))
|
||||
build_os:=$(strip $(build_os))
|
||||
ifeq ($(build_os),)
|
||||
build_os=$(full_build_os)
|
||||
endif
|
||||
|
||||
host_arch=$(firstword $(subst -, ,$(canonical_host)))
|
||||
host_vendor=$(word 2,$(subst -, ,$(canonical_host)))
|
||||
full_host_os:=$(subst $(host_arch)-$(host_vendor)-,,$(canonical_host))
|
||||
host_os:=$(findstring android,$(full_host_os))
|
||||
ifeq ($(host_os),)
|
||||
host_os:=$(findstring linux,$(full_host_os))
|
||||
endif
|
||||
host_os+=$(findstring darwin,$(full_host_os))
|
||||
host_os+=$(findstring freebsd,$(full_host_os))
|
||||
host_os+=$(findstring mingw32,$(full_host_os))
|
||||
host_os:=$(strip $(host_os))
|
||||
ifeq ($(host_os),)
|
||||
host_os=$(full_host_os)
|
||||
endif
|
||||
|
||||
$(host_arch)_$(host_os)_prefix=$(BASEDIR)/$(host)
|
||||
$(host_arch)_$(host_os)_host=$(host)
|
||||
host_prefix=$($(host_arch)_$(host_os)_prefix)
|
||||
build_prefix=$(host_prefix)/native
|
||||
ifeq ($(host_os),mingw32)
|
||||
host_cmake=Windows
|
||||
endif
|
||||
ifeq ($(host_os),linux)
|
||||
host_cmake=Linux
|
||||
endif
|
||||
ifeq ($(host_os),freebsd)
|
||||
host_cmake=FreeBSD
|
||||
endif
|
||||
ifeq ($(host_os),darwin)
|
||||
host_cmake=Darwin
|
||||
endif
|
||||
ifeq ($(host_os),android)
|
||||
host_cmake=Android
|
||||
endif
|
||||
|
||||
AT_$(V):=
|
||||
AT_:=@
|
||||
AT:=$(AT_$(V))
|
||||
build_host=$(build)
|
||||
|
||||
all: install
|
||||
|
||||
include hosts/$(host_os).mk
|
||||
include hosts/default.mk
|
||||
include builders/$(build_os).mk
|
||||
include builders/default.mk
|
||||
include packages/packages.mk
|
||||
|
||||
# Previously, we directly invoked the well-known programs using $(shell ...)
|
||||
# to construct build_id_string. However, that was problematic because:
|
||||
#
|
||||
# 1. When invoking a shell, GNU Make special-cases exit code 127 (command not
|
||||
# found) by not capturing the output but instead passing it through. This is
|
||||
# not done for any other exit code.
|
||||
#
|
||||
# 2. Characters like '#' (from these programs' output) would end up in make
|
||||
# variables like build_id_string, which would be wrongly interpreted by make
|
||||
# when these variables were used.
|
||||
#
|
||||
# Therefore, we should avoid having arbitrary strings in make variables where
|
||||
# possible. The gen_id script used here hashes the output to construct a
|
||||
# "make-safe" id.
|
||||
#
|
||||
# Also note that these lines need to be:
|
||||
#
|
||||
# 1. After including {hosts,builders}/*.mk, since they rely on the tool
|
||||
# variables (e.g. build_CC, host_STRIP, etc.) to be set.
|
||||
#
|
||||
# 2. Before including packages/*.mk (excluding packages/packages.mk), since
|
||||
# they rely on the build_id variables
|
||||
#
|
||||
build_id:=$(shell env CC='$(build_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(build_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(build_AR)' RANLIB='$(build_RANLIB)' STRIP='$(build_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' ./gen_id '$(BUILD_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
|
||||
$(host_arch)_$(host_os)_id:=$(shell env CC='$(host_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(host_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(host_AR)' RANLIB='$(host_RANLIB)' STRIP='$(host_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' ./gen_id '$(HOST_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
|
||||
|
||||
|
||||
qt_packages_$(NO_QT) = $(qt_packages) $(qt_$(host_os)_packages) $(qt_$(host_arch)_$(host_os)_packages) $(qrencode_packages_)
|
||||
tor_packages_$(NO_TOR) = $(tor_packages) $(tor_$(host_os)_packages)
|
||||
|
||||
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(qt_packages_) $(tor_packages_)
|
||||
native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)
|
||||
|
||||
all_packages = $(packages) $(native_packages)
|
||||
|
||||
meta_depends = Makefile funcs.mk builders/default.mk hosts/default.mk hosts/$(host_os).mk builders/$(build_os).mk
|
||||
|
||||
$(host_arch)_$(host_os)_native_binutils?=$($(host_os)_native_binutils)
|
||||
$(host_arch)_$(host_os)_native_toolchain?=$($(host_os)_native_toolchain)
|
||||
|
||||
include funcs.mk
|
||||
|
||||
CONF_PKGS := cmake-conf mxe-conf
|
||||
|
||||
build-only-$(1)_$(3): CMAKE_RUNRESULT_FILE = $(PREFIX)/share/cmake/modules/TryRunResults.cmake
|
||||
build-only-$(1)_$(3): CMAKE_TOOLCHAIN_FILE = $(PREFIX)/$(3)/share/cmake/mxe-conf.cmake
|
||||
build-only-$(1)_$(3): CMAKE_TOOLCHAIN_DIR = $(PREFIX)/$(3)/share/cmake/mxe-conf.d
|
||||
build-only-$(1)_$(3): CMAKE_STATIC_BOOL = $(if $(findstring shared,$(3)),OFF,ON)
|
||||
build-only-$(1)_$(3): CMAKE_SHARED_BOOL = $(if $(findstring shared,$(3)),ON,OFF)
|
||||
|
||||
|
||||
toolchain_path=$($($(host_arch)_$(host_os)_native_toolchain)_prefixbin)
|
||||
final_build_id_long+=$(shell $(build_SHA256SUM) toolchain.cmake.in)
|
||||
final_build_id+=$(shell echo -n "$(final_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH))
|
||||
$(host_prefix)/.stamp_$(final_build_id): $(native_packages) $(packages)
|
||||
rm -rf $(@D)
|
||||
mkdir -p $(@D)
|
||||
echo copying packages: $^
|
||||
echo to: $(@D)
|
||||
cd $(@D); $(foreach package,$^, $(build_TAR) xf $($(package)_cached); )
|
||||
touch $@
|
||||
|
||||
# $PATH is not preserved between ./configure and make by convention. Its
|
||||
# modification and overriding at ./configure time is (as I understand it)
|
||||
# supposed to be captured by the AC_{PROG_{,OBJ}CXX,PATH_{PROG,TOOL}} macros,
|
||||
# which will expand the program names to their full absolute paths. The notable
|
||||
# exception is command line overriding: ./configure CC=clang, which skips the
|
||||
# program name expansion step, and works because the user implicitly indicates
|
||||
# with CC=clang that clang will be available in $PATH at all times, and is most
|
||||
# likely part of the user's system.
|
||||
#
|
||||
# Therefore, when we "seed the autoconf cache"/"override well-known program
|
||||
# vars" by setting AR=<blah> in our config.site, either one of two things needs
|
||||
# to be true for the build system to work correctly:
|
||||
#
|
||||
# 1. If we refer to the program by name (e.g. AR=riscv64-gnu-linux-ar), the
|
||||
# tool needs to be available in $PATH at all times.
|
||||
#
|
||||
# 2. If the tool is _**not**_ expected to be available in $PATH at all times
|
||||
# (such as is the case for our native_cctools binutils tools), it needs to
|
||||
# be referred to by its absolute path, such as would be output by the
|
||||
# AC_PATH_{PROG,TOOL} macros.
|
||||
#
|
||||
# Minor note: it is also okay to refer to tools by their absolute path even if
|
||||
# we expect them to be available in $PATH at all times, more specificity does
|
||||
# not hurt.
|
||||
$(host_prefix)/share/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_$(final_build_id)
|
||||
@mkdir -p $(@D)
|
||||
sed -e 's|@HOST@|$(host)|' \
|
||||
-e 's|@CC@|$(host_CC)|' \
|
||||
-e 's|@CXX@|$(host_CXX)|' \
|
||||
-e 's|@AR@|$(toolchain_path)$(host_AR)|' \
|
||||
-e 's|@RANLIB@|$(toolchain_path)$(host_RANLIB)|' \
|
||||
-e 's|@NM@|$(toolchain_path)$(host_NM)|' \
|
||||
-e 's|@STRIP@|$(toolchain_path)$(host_STRIP)|' \
|
||||
-e 's|@CMAKE_INSTALL_NAME_TOOL@|$(host_INSTALL_NAME_TOOL)|' \
|
||||
-e 's|@OTOOL@|$(host_OTOOL)|' \
|
||||
-e 's|@build_os@|$(build_os)|' \
|
||||
-e 's|@host_os@|$(host_os)|' \
|
||||
-e 's|@CFLAGS@|$(strip $(host_CFLAGS) $(host_$(release_type)_CFLAGS))|' \
|
||||
-e 's|@CXXFLAGS@|$(strip $(host_CXXFLAGS) $(host_$(release_type)_CXXFLAGS))|' \
|
||||
-e 's|@CPPFLAGS@|$(strip $(host_CPPFLAGS) $(host_$(release_type)_CPPFLAGS))|' \
|
||||
-e 's|@LDFLAGS@|$(strip $(host_LDFLAGS) $(host_$(release_type)_LDFLAGS))|' \
|
||||
-e 's|@allow_host_packages@|$(ALLOW_HOST_PACKAGES)|' \
|
||||
-e 's|@debug@|$(DEBUG)|' \
|
||||
-e 's|@release_type@|$(release_type)|' \
|
||||
-e 's|@build_tests@|$(build_tests)|' \
|
||||
-e 's|@depends@|$(host_cmake)|' \
|
||||
-e 's|@prefix@|$($(host_arch)_$(host_os)_prefix)|'\
|
||||
-e 's|@arch@|$(host_arch)|'\
|
||||
-e 's|@guix_ldflags@|$(guix_ldflags)|'\
|
||||
-e 's|@tor_version@|$(tor_$(host_os)_version)|'\
|
||||
$< > $@
|
||||
touch $@
|
||||
|
||||
define check_or_remove_cached
|
||||
mkdir -p $(BASE_CACHE)/$(host)/$(package) && cd $(BASE_CACHE)/$(host)/$(package); \
|
||||
$(build_SHA256SUM) -c $($(package)_cached_checksum) >/dev/null 2>/dev/null || \
|
||||
( rm -f $($(package)_cached_checksum); \
|
||||
if test -f "$($(package)_cached)"; then echo "Checksum mismatch for $(package). Forcing rebuild.."; rm -f $($(package)_cached_checksum) $($(package)_cached); fi )
|
||||
endef
|
||||
|
||||
define check_or_remove_sources
|
||||
mkdir -p $($(package)_source_dir); cd $($(package)_source_dir); \
|
||||
test -f $($(package)_fetched) && ( $(build_SHA256SUM) -c $($(package)_fetched) >/dev/null 2>/dev/null || \
|
||||
( echo "Checksum missing or mismatched for $(package) source. Forcing re-download."; \
|
||||
rm -f $($(package)_all_sources) $($(1)_fetched))) || true
|
||||
endef
|
||||
|
||||
check-packages:
|
||||
@$(foreach package,$(all_packages),$(call check_or_remove_cached,$(package));)
|
||||
check-sources:
|
||||
@$(foreach package,$(all_packages),$(call check_or_remove_sources,$(package));)
|
||||
|
||||
$(host_prefix)/share/config.site: check-packages
|
||||
$(host_prefix)/share/toolchain.cmake: check-packages
|
||||
|
||||
check-packages: check-sources
|
||||
|
||||
clean-all: clean
|
||||
@rm -rf $(SOURCES_PATH) x86_64* i686* mips* arm* aarch64*
|
||||
|
||||
clean:
|
||||
@rm -rf $(WORK_PATH) $(BASE_CACHE) $(BUILD) *.log
|
||||
|
||||
install: check-packages $(host_prefix)/share/config.site
|
||||
install: check-packages $(host_prefix)/share/toolchain.cmake
|
||||
|
||||
download-one: check-sources $(all_sources)
|
||||
|
||||
download-osx:
|
||||
@$(MAKE) -s HOST=x86_64-apple-darwin download-one
|
||||
download-linux:
|
||||
@$(MAKE) -s HOST=x86_64-unknown-linux-gnu download-one
|
||||
download-win:
|
||||
@$(MAKE) -s HOST=x86_64-w64-mingw32 download-one
|
||||
download: download-osx download-linux download-win
|
||||
|
||||
$(foreach package,$(all_packages),$(eval $(call ext_add_stages,$(package))))
|
||||
|
||||
.PHONY: install cached clean clean-all download-one download-osx download-linux download-win download check-packages check-sources
|
||||
.PHONY: FORCE
|
||||
$(V).SILENT:
|
30
contrib/depends/builders/darwin.mk
Normal file
30
contrib/depends/builders/darwin.mk
Normal file
|
@ -0,0 +1,30 @@
|
|||
build_darwin_CC:=$(shell xcrun -f clang) -isysroot$(shell xcrun --show-sdk-path)
|
||||
build_darwin_CXX:=$(shell xcrun -f clang++) -isysroot$(shell xcrun --show-sdk-path)
|
||||
build_darwin_AR:=$(shell xcrun -f ar)
|
||||
build_darwin_RANLIB:=$(shell xcrun -f ranlib)
|
||||
build_darwin_STRIP:=$(shell xcrun -f strip)
|
||||
build_darwin_OTOOL:=$(shell xcrun -f otool)
|
||||
build_darwin_NM:=$(shell xcrun -f nm)
|
||||
build_darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool)
|
||||
build_darwin_DSYMUTIL:=$(shell xcrun -f dsymutil)
|
||||
build_darwin_SHA256SUM=shasum -a 256
|
||||
build_darwin_DOWNLOAD=curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
|
||||
|
||||
#darwin host on darwin builder. overrides darwin host preferences.
|
||||
darwin_CC=$(shell xcrun -f clang) -mmacosx-version-min=$(OSX_MIN_VERSION) -isysroot$(shell xcrun --show-sdk-path)
|
||||
darwin_CXX:=$(shell xcrun -f clang++) -mmacosx-version-min=$(OSX_MIN_VERSION) -stdlib=libc++ -isysroot$(shell xcrun --show-sdk-path)
|
||||
darwin_AR:=$(shell xcrun -f ar)
|
||||
darwin_RANLIB:=$(shell xcrun -f ranlib)
|
||||
darwin_STRIP:=$(shell xcrun -f strip)
|
||||
darwin_LIBTOOL:=$(shell xcrun -f libtool)
|
||||
darwin_OTOOL:=$(shell xcrun -f otool)
|
||||
darwin_NM:=$(shell xcrun -f nm)
|
||||
darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool)
|
||||
darwin_DSYMUTIL:=$(shell xcrun -f dsymutil)
|
||||
darwin_native_binutils=
|
||||
darwin_native_toolchain=
|
||||
|
||||
x86_64_darwin_CFLAGS += -arch x86_64
|
||||
x86_64_darwin_CXXFLAGS += -arch x86_64
|
||||
aarch64_darwin_CFLAGS += -arch arm64
|
||||
aarch64_darwin_CXXFLAGS += -arch arm64
|
21
contrib/depends/builders/default.mk
Normal file
21
contrib/depends/builders/default.mk
Normal file
|
@ -0,0 +1,21 @@
|
|||
default_build_CC = gcc
|
||||
default_build_CXX = g++
|
||||
default_build_AR = ar
|
||||
default_build_TAR = tar
|
||||
default_build_RANLIB = ranlib
|
||||
default_build_STRIP = strip
|
||||
default_build_NM = nm
|
||||
default_build_OTOOL = otool
|
||||
default_build_INSTALL_NAME_TOOL = install_name_tool
|
||||
|
||||
define add_build_tool_func
|
||||
build_$(build_os)_$1 ?= $$(default_build_$1)
|
||||
build_$(build_arch)_$(build_os)_$1 ?= $$(build_$(build_os)_$1)
|
||||
build_$1=$$(build_$(build_arch)_$(build_os)_$1)
|
||||
endef
|
||||
$(foreach var,CC CXX AR TAR RANLIB NM STRIP SHA256SUM DOWNLOAD OTOOL INSTALL_NAME_TOOL DSYMUTIL,$(eval $(call add_build_tool_func,$(var))))
|
||||
define add_build_flags_func
|
||||
build_$(build_arch)_$(build_os)_$1 += $(build_$(build_os)_$1)
|
||||
build_$1=$$(build_$(build_arch)_$(build_os)_$1)
|
||||
endef
|
||||
$(foreach flags, CFLAGS CXXFLAGS ARFLAGS LDFLAGS, $(eval $(call add_build_flags_func,$(flags))))
|
2
contrib/depends/builders/linux.mk
Normal file
2
contrib/depends/builders/linux.mk
Normal file
|
@ -0,0 +1,2 @@
|
|||
build_linux_SHA256SUM = sha256sum
|
||||
build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
|
1480
contrib/depends/config.guess
vendored
Executable file
1480
contrib/depends/config.guess
vendored
Executable file
File diff suppressed because it is too large
Load diff
1801
contrib/depends/config.sub
vendored
Executable file
1801
contrib/depends/config.sub
vendored
Executable file
File diff suppressed because it is too large
Load diff
303
contrib/depends/funcs.mk
Normal file
303
contrib/depends/funcs.mk
Normal file
|
@ -0,0 +1,303 @@
|
|||
define int_vars
|
||||
#Set defaults for vars which may be overridden per-package
|
||||
$(1)_cc=$$($$($(1)_type)_CC)
|
||||
$(1)_cxx=$$($$($(1)_type)_CXX)
|
||||
$(1)_objc=$$($$($(1)_type)_OBJC)
|
||||
$(1)_objcxx=$$($$($(1)_type)_OBJCXX)
|
||||
$(1)_ar=$$($$($(1)_type)_AR)
|
||||
$(1)_ranlib=$$($$($(1)_type)_RANLIB)
|
||||
$(1)_libtool=$$($$($(1)_type)_LIBTOOL)
|
||||
$(1)_nm=$$($$($(1)_type)_NM)
|
||||
$(1)_cflags=$$($$($(1)_type)_CFLAGS) \
|
||||
$$($$($(1)_type)_$$(release_type)_CFLAGS)
|
||||
$(1)_cxxflags=$$($$($(1)_type)_CXXFLAGS) \
|
||||
$$($$($(1)_type)_$$(release_type)_CXXFLAGS)
|
||||
$(1)_arflags=$($($(1)_type)_ARFLAGS) $($($(1)_type)_$(release_type)_ARFLAGS)
|
||||
$(1)_ldflags=$$($$($(1)_type)_LDFLAGS) \
|
||||
$$($$($(1)_type)_$$(release_type)_LDFLAGS) \
|
||||
-L$$($($(1)_type)_prefix)/lib
|
||||
$(1)_cppflags=$$($$($(1)_type)_CPPFLAGS) \
|
||||
$$($$($(1)_type)_$$(release_type)_CPPFLAGS) \
|
||||
-I$$($$($(1)_type)_prefix)/include
|
||||
$(1)_recipe_hash:=
|
||||
endef
|
||||
|
||||
define int_get_all_dependencies
|
||||
$(sort $(foreach dep,$(2),$(2) $(call int_get_all_dependencies,$(1),$($(dep)_dependencies))))
|
||||
endef
|
||||
|
||||
define fetch_file_inner
|
||||
( mkdir -p $$($(1)_download_dir) && echo Fetching $(3) from $(2) && \
|
||||
$(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(2)/$(3)" && \
|
||||
echo "$(5) $$($(1)_download_dir)/$(4).temp" > $$($(1)_download_dir)/.$(4).hash && \
|
||||
$(build_SHA256SUM) -c $$($(1)_download_dir)/.$(4).hash && \
|
||||
mv $$($(1)_download_dir)/$(4).temp $$($(1)_source_dir)/$(4) && \
|
||||
rm -rf $$($(1)_download_dir) )
|
||||
endef
|
||||
|
||||
define fetch_file
|
||||
( test -f $$($(1)_source_dir)/$(4) || \
|
||||
( $(call fetch_file_inner,$(1),$(2),$(3),$(4),$(5)) || \
|
||||
$(call fetch_file_inner,$(1),$(FALLBACK_DOWNLOAD_PATH),$(3),$(4),$(5))))
|
||||
endef
|
||||
|
||||
define int_get_build_recipe_hash
|
||||
$(eval $(1)_all_file_checksums:=$(shell $(build_SHA256SUM) $(meta_depends) packages/$(1).mk $(addprefix $(PATCHES_PATH)/$(1)/,$($(1)_patches)) | cut -d" " -f1))
|
||||
$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | $(build_SHA256SUM) | cut -d" " -f1))
|
||||
endef
|
||||
|
||||
define int_get_build_id
|
||||
$(eval $(1)_dependencies += $($(1)_$(host_arch)_$(host_os)_dependencies) $($(1)_$(host_os)_dependencies))
|
||||
$(eval $(1)_all_dependencies:=$(call int_get_all_dependencies,$(1),$($($(1)_type)_native_toolchain) $($($(1)_type)_native_binutils) $($(1)_dependencies)))
|
||||
$(foreach dep,$($(1)_all_dependencies),$(eval $(1)_build_id_deps+=$(dep)-$($(dep)_version)-$($(dep)_recipe_hash)))
|
||||
$(eval $(1)_build_id_long:=$(1)-$($(1)_version)-$($(1)_recipe_hash)-$(release_type) $($(1)_build_id_deps) $($($(1)_type)_id))
|
||||
$(eval $(1)_build_id:=$(shell echo -n "$($(1)_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH)))
|
||||
final_build_id_long+=$($(package)_build_id_long)
|
||||
|
||||
#compute package-specific paths
|
||||
$(1)_build_subdir?=.
|
||||
$(1)_download_file?=$($(1)_file_name)
|
||||
$(1)_source_dir:=$(SOURCES_PATH)
|
||||
$(1)_source:=$$($(1)_source_dir)/$($(1)_file_name)
|
||||
$(1)_staging_dir=$(base_staging_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
|
||||
$(1)_staging_prefix_dir:=$$($(1)_staging_dir)$($($(1)_type)_prefix)
|
||||
$(1)_extract_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
|
||||
$(1)_download_dir:=$(base_download_dir)/$(1)-$($(1)_version)
|
||||
$(1)_build_dir:=$$($(1)_extract_dir)/$$($(1)_build_subdir)
|
||||
$(1)_cached_checksum:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz.hash
|
||||
$(1)_patch_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)/.patches-$($(1)_build_id)
|
||||
$(1)_prefixbin:=$($($(1)_type)_prefix)/bin/
|
||||
$(1)_cached:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz
|
||||
$(1)_build_log:=$(BASEDIR)/$(1)-$($(1)_version)-$($(1)_build_id).log
|
||||
$(1)_all_sources=$($(1)_file_name) $($(1)_extra_sources)
|
||||
|
||||
#stamps
|
||||
$(1)_fetched=$(SOURCES_PATH)/download-stamps/.stamp_fetched-$(1)-$($(1)_file_name).hash
|
||||
$(1)_extracted=$$($(1)_extract_dir)/.stamp_extracted
|
||||
$(1)_preprocessed=$$($(1)_extract_dir)/.stamp_preprocessed
|
||||
$(1)_cleaned=$$($(1)_extract_dir)/.stamp_cleaned
|
||||
$(1)_built=$$($(1)_build_dir)/.stamp_built
|
||||
$(1)_configured=$$($(1)_build_dir)/.stamp_configured
|
||||
$(1)_staged=$$($(1)_staging_dir)/.stamp_staged
|
||||
$(1)_postprocessed=$$($(1)_staging_prefix_dir)/.stamp_postprocessed
|
||||
$(1)_download_path_fixed=$(subst :,\:,$$($(1)_download_path))
|
||||
|
||||
|
||||
#default commands
|
||||
# The default behavior for tar will try to set ownership when running as uid 0 and may not succeed, --no-same-owner disables this behavior
|
||||
$(1)_fetch_cmds ?= $(call fetch_file,$(1),$(subst \:,:,$$($(1)_download_path_fixed)),$$($(1)_download_file),$($(1)_file_name),$($(1)_sha256_hash))
|
||||
$(1)_extract_cmds ?= mkdir -p $$($(1)_extract_dir) && echo "$$($(1)_sha256_hash) $$($(1)_source)" > $$($(1)_extract_dir)/.$$($(1)_file_name).hash && $(build_SHA256SUM) -c $$($(1)_extract_dir)/.$$($(1)_file_name).hash && $(build_TAR) --no-same-owner --strip-components=1 -xf $$($(1)_source)
|
||||
$(1)_preprocess_cmds ?= true
|
||||
$(1)_build_cmds ?=
|
||||
$(1)_config_cmds ?=
|
||||
$(1)_stage_cmds ?=
|
||||
$(1)_set_vars ?=
|
||||
|
||||
|
||||
all_sources+=$$($(1)_fetched)
|
||||
endef
|
||||
#$(foreach dep_target,$($(1)_all_dependencies),$(eval $(1)_dependency_targets=$($(dep_target)_cached)))
|
||||
|
||||
|
||||
define int_config_attach_build_config
|
||||
$(eval $(call $(1)_set_vars,$(1)))
|
||||
$(1)_cflags+=$($(1)_cflags_$(release_type))
|
||||
$(1)_cflags+=$($(1)_cflags_$(host_arch)) $($(1)_cflags_$(host_arch)_$(release_type))
|
||||
$(1)_cflags+=$($(1)_cflags_$(host_os)) $($(1)_cflags_$(host_os)_$(release_type))
|
||||
$(1)_cflags+=$($(1)_cflags_$(host_arch)_$(host_os)) $($(1)_cflags_$(host_arch)_$(host_os)_$(release_type))
|
||||
|
||||
$(1)_cxxflags+=$($(1)_cxxflags_$(release_type))
|
||||
$(1)_cxxflags+=$($(1)_cxxflags_$(host_arch)) $($(1)_cxxflags_$(host_arch)_$(release_type))
|
||||
$(1)_cxxflags+=$($(1)_cxxflags_$(host_os)) $($(1)_cxxflags_$(host_os)_$(release_type))
|
||||
$(1)_cxxflags+=$($(1)_cxxflags_$(host_arch)_$(host_os)) $($(1)_cxxflags_$(host_arch)_$(host_os)_$(release_type))
|
||||
|
||||
$(1)_arflags+=$($(1)_arflags_$(release_type))
|
||||
$(1)_arflags+=$($(1)_arflags_$(host_arch)) $($(1)_arflags_$(host_arch)_$(release_type))
|
||||
$(1)_arflags+=$($(1)_arflags_$(host_os)) $($(1)_arflags_$(host_os)_$(release_type))
|
||||
$(1)_arflags+=$($(1)_arflags_$(host_arch)_$(host_os)) $($(1)_arflags_$(host_arch)_$(host_os)_$(release_type))
|
||||
|
||||
$(1)_cppflags+=$($(1)_cppflags_$(release_type))
|
||||
$(1)_cppflags+=$($(1)_cppflags_$(host_arch)) $($(1)_cppflags_$(host_arch)_$(release_type))
|
||||
$(1)_cppflags+=$($(1)_cppflags_$(host_os)) $($(1)_cppflags_$(host_os)_$(release_type))
|
||||
$(1)_cppflags+=$($(1)_cppflags_$(host_arch)_$(host_os)) $($(1)_cppflags_$(host_arch)_$(host_os)_$(release_type))
|
||||
|
||||
$(1)_ldflags+=$($(1)_ldflags_$(release_type))
|
||||
$(1)_ldflags+=$($(1)_ldflags_$(host_arch)) $($(1)_ldflags_$(host_arch)_$(release_type))
|
||||
$(1)_ldflags+=$($(1)_ldflags_$(host_os)) $($(1)_ldflags_$(host_os)_$(release_type))
|
||||
$(1)_ldflags+=$($(1)_ldflags_$(host_arch)_$(host_os)) $($(1)_ldflags_$(host_arch)_$(host_os)_$(release_type))
|
||||
|
||||
$(1)_build_opts+=$$($(1)_build_opts_$(release_type))
|
||||
$(1)_build_opts+=$$($(1)_build_opts_$(host_arch)) $$($(1)_build_opts_$(host_arch)_$(release_type))
|
||||
$(1)_build_opts+=$$($(1)_build_opts_$(host_os)) $$($(1)_build_opts_$(host_os)_$(release_type))
|
||||
$(1)_build_opts+=$$($(1)_build_opts_$(host_arch)_$(host_os)) $$($(1)_build_opts_$(host_arch)_$(host_os)_$(release_type))
|
||||
|
||||
$(1)_config_opts+=$$($(1)_config_opts_$(release_type))
|
||||
$(1)_config_opts+=$$($(1)_config_opts_$(host_arch)) $$($(1)_config_opts_$(host_arch)_$(release_type))
|
||||
$(1)_config_opts+=$$($(1)_config_opts_$(host_os)) $$($(1)_config_opts_$(host_os)_$(release_type))
|
||||
$(1)_config_opts+=$$($(1)_config_opts_$(host_arch)_$(host_os)) $$($(1)_config_opts_$(host_arch)_$(host_os)_$(release_type))
|
||||
|
||||
$(1)_config_env+=$$($(1)_config_env_$(release_type))
|
||||
$(1)_config_env+=$($(1)_config_env_$(host_arch)) $($(1)_config_env_$(host_arch)_$(release_type))
|
||||
$(1)_config_env+=$($(1)_config_env_$(host_os)) $($(1)_config_env_$(host_os)_$(release_type))
|
||||
$(1)_config_env+=$($(1)_config_env_$(host_arch)_$(host_os)) $($(1)_config_env_$(host_arch)_$(host_os)_$(release_type))
|
||||
|
||||
$(1)_build_env+=$$($(1)_build_env_$(release_type))
|
||||
$(1)_build_env+=$($(1)_build_env_$(host_arch)) $($(1)_build_env_$(host_arch)_$(release_type))
|
||||
$(1)_build_env+=$($(1)_build_env_$(host_os)) $($(1)_build_env_$(host_os)_$(release_type))
|
||||
$(1)_build_env+=$($(1)_build_env_$(host_arch)_$(host_os)) $($(1)_build_env_$(host_arch)_$(host_os)_$(release_type))
|
||||
|
||||
$(1)_config_env+=PKG_CONFIG_LIBDIR=$($($(1)_type)_prefix)/lib/pkgconfig
|
||||
$(1)_config_env+=PKG_CONFIG_PATH=$($($(1)_type)_prefix)/share/pkgconfig
|
||||
$(1)_config_env+=CMAKE_MODULE_PATH=$($($(1)_type)_prefix)/lib/cmake
|
||||
$(1)_config_env+=PATH=$(build_prefix)/bin:$(PATH)
|
||||
$(1)_build_env+=PATH=$(build_prefix)/bin:$(PATH)
|
||||
$(1)_stage_env+=PATH=$(build_prefix)/bin:$(PATH)
|
||||
|
||||
# Setting a --build type that differs from --host will explicitly enable
|
||||
# cross-compilation mode. Note that --build defaults to the output of
|
||||
# config.guess, which is what we set it too here. This also quells autoconf
|
||||
# warnings, "If you wanted to set the --build type, don't use --host.",
|
||||
# when using versions older than 2.70.
|
||||
$(1)_autoconf=./configure --build=$(BUILD) --host=$($($(1)_type)_host) --prefix=$($($(1)_type)_prefix) $$($(1)_config_opts) CC="$$($(1)_cc)" CXX="$$($(1)_cxx)"
|
||||
ifneq ($($(1)_nm),)
|
||||
$(1)_autoconf += NM="$$($(1)_nm)"
|
||||
endif
|
||||
ifneq ($($(1)_ranlib),)
|
||||
$(1)_autoconf += RANLIB="$$($(1)_ranlib)"
|
||||
endif
|
||||
ifneq ($($(1)_ar),)
|
||||
$(1)_autoconf += AR="$$($(1)_ar)"
|
||||
endif
|
||||
ifneq ($($(1)_arflags),)
|
||||
$(1)_autoconf += ARFLAGS="$$($(1)_arflags)"
|
||||
endif
|
||||
ifneq ($($(1)_cflags),)
|
||||
$(1)_autoconf += CFLAGS="$$($(1)_cflags)"
|
||||
endif
|
||||
ifneq ($($(1)_cxxflags),)
|
||||
$(1)_autoconf += CXXFLAGS="$$($(1)_cxxflags)"
|
||||
endif
|
||||
ifneq ($($(1)_cppflags),)
|
||||
$(1)_autoconf += CPPFLAGS="$$($(1)_cppflags)"
|
||||
endif
|
||||
ifneq ($($(1)_ldflags),)
|
||||
$(1)_autoconf += LDFLAGS="$$($(1)_ldflags)"
|
||||
endif
|
||||
|
||||
$(1)_cmake=env CC="$$($(1)_cc)" \
|
||||
CFLAGS="$$($(1)_cppflags) $$($(1)_cflags)" \
|
||||
CXX="$$($(1)_cxx)" \
|
||||
CXXFLAGS="$$($(1)_cppflags) $$($(1)_cxxflags)" \
|
||||
LDFLAGS="$$($(1)_ldflags)" \
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH="$$($($(1)_type)_prefix)" $$($(1)_cmake_opts)
|
||||
ifeq ($($(1)_type),build)
|
||||
$(1)_cmake += -DCMAKE_INSTALL_RPATH:PATH="$$($($(1)_type)_prefix)/lib"
|
||||
else
|
||||
ifneq ($(host),$(build))
|
||||
$(1)_cmake += -DCMAKE_SYSTEM_NAME=$($(host_os)_cmake_system)
|
||||
$(1)_cmake += -DCMAKE_C_COMPILER_TARGET=$(host)
|
||||
$(1)_cmake += -DCMAKE_CXX_COMPILER_TARGET=$(host)
|
||||
endif
|
||||
endif
|
||||
endef
|
||||
|
||||
define int_add_cmds
|
||||
ifneq ($(LOG),)
|
||||
$(1)_logging = >>$$($(1)_build_log) 2>&1 || { if test -f $$($(1)_build_log); then cat $$($(1)_build_log); fi; exit 1; }
|
||||
endif
|
||||
|
||||
$($(1)_fetched):
|
||||
mkdir -p $$(@D) $(SOURCES_PATH)
|
||||
rm -f $$@
|
||||
touch $$@
|
||||
cd $$(@D); $($(1)_fetch_cmds)
|
||||
cd $($(1)_source_dir); $(foreach source,$($(1)_all_sources),$(build_SHA256SUM) $(source) >> $$(@);)
|
||||
touch $$@
|
||||
$($(1)_extracted): | $($(1)_fetched)
|
||||
echo Extracting $(1)...
|
||||
mkdir -p $$(@D)
|
||||
cd $$(@D); $($(1)_extract_cmds)
|
||||
touch $$@
|
||||
$($(1)_preprocessed): | $($(1)_extracted)
|
||||
echo Preprocessing $(1)...
|
||||
mkdir -p $$(@D) $($(1)_patch_dir)
|
||||
$(foreach patch,$($(1)_patches),cd $(PATCHES_PATH)/$(1); cp $(patch) $($(1)_patch_dir) ;)
|
||||
cd $$(@D); $(call $(1)_preprocess_cmds, $(1))
|
||||
touch $$@
|
||||
$($(1)_configured): | $($(1)_dependencies) $($(1)_preprocessed)
|
||||
echo Configuring $(1)...
|
||||
rm -rf $(host_prefix); mkdir -p $(host_prefix)/lib; cd $(host_prefix); $(foreach package,$($(1)_all_dependencies), $(build_TAR) --no-same-owner -xf $($(package)_cached); )
|
||||
mkdir -p $$(@D)
|
||||
$(AT)+cd $$(@D); export $($(1)_config_env); $(call $(1)_config_cmds, $(1))
|
||||
touch $$@
|
||||
$($(1)_built): | $($(1)_configured)
|
||||
echo Building $(1)...
|
||||
mkdir -p $$(@D)
|
||||
$(AT)+cd $$(@D); export $($(1)_build_env); $(call $(1)_build_cmds, $(1))
|
||||
touch $$@
|
||||
$($(1)_staged): | $($(1)_built)
|
||||
echo Staging $(1)...
|
||||
mkdir -p $($(1)_staging_dir)/$(host_prefix)
|
||||
$(AT)cd $($(1)_build_dir); export $($(1)_stage_env); $(call $(1)_stage_cmds, $(1))
|
||||
rm -rf $($(1)_extract_dir)
|
||||
touch $$@
|
||||
$($(1)_postprocessed): | $($(1)_staged)
|
||||
echo Postprocessing $(1)...
|
||||
cd $($(1)_staging_prefix_dir); $($(1)_postprocess_cmds)
|
||||
touch $$@
|
||||
$($(1)_cached): | $($(1)_dependencies) $($(1)_postprocessed)
|
||||
echo Caching $(1)...
|
||||
cd $$($(1)_staging_dir)/$(host_prefix); find . | sort | $(build_TAR) --no-recursion -czf $$($(1)_staging_dir)/$$(@F) -T -
|
||||
mkdir -p $$(@D)
|
||||
rm -rf $$(@D) && mkdir -p $$(@D)
|
||||
mv $$($(1)_staging_dir)/$$(@F) $$(@)
|
||||
rm -rf $($(1)_staging_dir)
|
||||
if test -f $($(1)_build_log); then mv $($(1)_build_log) $$(@D); fi
|
||||
$($(1)_cached_checksum): $($(1)_cached)
|
||||
cd $$(@D); $(build_SHA256SUM) $$(<F) > $$(@)
|
||||
|
||||
.PHONY: $(1)
|
||||
$(1): | $($(1)_cached_checksum)
|
||||
.SECONDARY: $($(1)_cached) $($(1)_postprocessed) $($(1)_staged) $($(1)_built) $($(1)_configured) $($(1)_preprocessed) $($(1)_extracted) $($(1)_fetched)
|
||||
|
||||
endef
|
||||
|
||||
stages = fetched extracted preprocessed configured built staged postprocessed cached cached_checksum
|
||||
|
||||
define ext_add_stages
|
||||
$(foreach stage,$(stages),
|
||||
$(1)_$(stage): $($(1)_$(stage))
|
||||
.PHONY: $(1)_$(stage))
|
||||
endef
|
||||
|
||||
# These functions create the build targets for each package. They must be
|
||||
# broken down into small steps so that each part is done for all packages
|
||||
# before moving on to the next step. Otherwise, a package's info
|
||||
# (build-id for example) would only be available to another package if it
|
||||
# happened to be computed already.
|
||||
|
||||
#set the type for host/build packages.
|
||||
$(foreach native_package,$(native_packages),$(eval $(native_package)_type=build))
|
||||
$(foreach package,$(packages),$(eval $(package)_type=$(host_arch)_$(host_os)))
|
||||
|
||||
#set overridable defaults
|
||||
$(foreach package,$(all_packages),$(eval $(call int_vars,$(package))))
|
||||
|
||||
#include package files
|
||||
$(foreach native_package,$(native_packages),$(eval include packages/$(native_package).mk))
|
||||
$(foreach package,$(packages),$(eval include packages/$(package).mk))
|
||||
|
||||
#compute a hash of all files that comprise this package's build recipe
|
||||
$(foreach package,$(all_packages),$(eval $(call int_get_build_recipe_hash,$(package))))
|
||||
|
||||
#generate a unique id for this package, incorporating its dependencies as well
|
||||
$(foreach package,$(all_packages),$(eval $(call int_get_build_id,$(package))))
|
||||
|
||||
#compute final vars after reading package vars
|
||||
$(foreach package,$(all_packages),$(eval $(call int_config_attach_build_config,$(package))))
|
||||
|
||||
#create build targets
|
||||
$(foreach package,$(all_packages),$(eval $(call int_add_cmds,$(package))))
|
||||
|
||||
#special exception: if a toolchain package exists, all non-native packages depend on it
|
||||
$(foreach package,$(packages),$(eval $($(package)_extracted): |$($($(host_arch)_$(host_os)_native_toolchain)_cached) $($($(host_arch)_$(host_os)_native_binutils)_cached) ))
|
77
contrib/depends/gen_id
Executable file
77
contrib/depends/gen_id
Executable file
|
@ -0,0 +1,77 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Usage: env [ CC=... ] [ C_STANDARD=...] [ CXX=... ] [CXX_STANDARD=...] \
|
||||
# [ AR=... ] [ RANLIB=... ] [ STRIP=... ] [ DEBUG=... ] \
|
||||
# [ LTO=... ] ./build-id [ID_SALT]...
|
||||
#
|
||||
# Prints to stdout a SHA256 hash representing the current toolset, used by
|
||||
# depends/Makefile as a build id for caching purposes (detecting when the
|
||||
# toolset has changed and the cache needs to be invalidated).
|
||||
#
|
||||
# If the DEBUG environment variable is non-empty and the system has `tee`
|
||||
# available in its $PATH, the pre-image to the SHA256 hash will be printed to
|
||||
# stderr. This is to help developers debug caching issues in depends.
|
||||
|
||||
# This script explicitly does not `set -e` because id determination is mostly
|
||||
# opportunistic: it is fine that things fail, as long as they fail consistently.
|
||||
|
||||
# Command variables (CC/CXX/AR) which can be blank are invoked with `bash -c`,
|
||||
# because the "command not found" error message printed by shells often include
|
||||
# the line number, like so:
|
||||
#
|
||||
# ./depends/gen_id: line 43: --version: command not found
|
||||
#
|
||||
# By invoking with `bash -c`, we ensure that the line number is always 1
|
||||
|
||||
(
|
||||
# Redirect stderr to stdout
|
||||
exec 2>&1
|
||||
|
||||
echo "BEGIN ALL"
|
||||
|
||||
# Include any ID salts supplied via command line
|
||||
echo "BEGIN ID SALT"
|
||||
echo "$@"
|
||||
echo "END ID SALT"
|
||||
|
||||
# GCC only prints COLLECT_LTO_WRAPPER when invoked with just "-v", but we want
|
||||
# the information from "-v -E -" as well, so just include both.
|
||||
echo "BEGIN CC"
|
||||
bash -c "${CC} -v"
|
||||
bash -c "${CC} -v -E -xc -o /dev/null - < /dev/null"
|
||||
bash -c "${CC} -v -E -xobjective-c -o /dev/null - < /dev/null"
|
||||
echo "C_STANDARD=${C_STANDARD}"
|
||||
echo "END CC"
|
||||
|
||||
echo "BEGIN CXX"
|
||||
bash -c "${CXX} -v"
|
||||
bash -c "${CXX} -v -E -xc++ -o /dev/null - < /dev/null"
|
||||
bash -c "${CXX} -v -E -xobjective-c++ -o /dev/null - < /dev/null"
|
||||
echo "CXX_STANDARD=${CXX_STANDARD}"
|
||||
echo "END CXX"
|
||||
|
||||
echo "BEGIN AR"
|
||||
bash -c "${AR} --version"
|
||||
env | grep '^AR_'
|
||||
echo "ZERO_AR_DATE=${ZERO_AR_DATE}"
|
||||
echo "END AR"
|
||||
|
||||
echo "BEGIN RANLIB"
|
||||
bash -c "${RANLIB} --version"
|
||||
env | grep '^RANLIB_'
|
||||
echo "END RANLIB"
|
||||
|
||||
echo "BEGIN STRIP"
|
||||
bash -c "${STRIP} --version"
|
||||
env | grep '^STRIP_'
|
||||
echo "END STRIP"
|
||||
|
||||
echo "END ALL"
|
||||
) | if [ -n "$DEBUG" ] && command -v tee > /dev/null 2>&1; then
|
||||
# When debugging and `tee` is available, output the preimage to stderr
|
||||
# in addition to passing through stdin to stdout
|
||||
tee >(cat 1>&2)
|
||||
else
|
||||
# Otherwise, passthrough stdin to stdout
|
||||
cat
|
||||
fi | ${SHA256SUM} - | cut -d' ' -f1
|
122
contrib/depends/hosts/darwin.mk
Normal file
122
contrib/depends/hosts/darwin.mk
Normal file
|
@ -0,0 +1,122 @@
|
|||
OSX_MIN_VERSION=10.15
|
||||
OSX_SDK_VERSION=11.0
|
||||
XCODE_VERSION=12.2
|
||||
XCODE_BUILD_ID=12B45b
|
||||
LD64_VERSION=609
|
||||
|
||||
OSX_SDK=$(SDK_PATH)/Xcode-$(XCODE_VERSION)-$(XCODE_BUILD_ID)-extracted-SDK-with-libcxx-headers
|
||||
|
||||
darwin_native_binutils=native_cctools
|
||||
|
||||
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||
# FORCE_USE_SYSTEM_CLANG is empty, so we use our depends-managed, pinned clang
|
||||
# from llvm.org
|
||||
|
||||
# Clang is a dependency of native_cctools when FORCE_USE_SYSTEM_CLANG is empty
|
||||
darwin_native_toolchain=native_cctools
|
||||
|
||||
clang_prog=$(build_prefix)/bin/clang
|
||||
clangxx_prog=$(clang_prog)++
|
||||
|
||||
clang_resource_dir=$(build_prefix)/lib/clang/$(native_clang_version)
|
||||
else
|
||||
# FORCE_USE_SYSTEM_CLANG is non-empty, so we use the clang from the user's
|
||||
# system
|
||||
|
||||
darwin_native_toolchain=
|
||||
|
||||
# We can't just use $(shell command -v clang) because GNU Make handles builtins
|
||||
# in a special way and doesn't know that `command` is a POSIX-standard builtin
|
||||
# prior to 1af314465e5dfe3e8baa839a32a72e83c04f26ef, first released in v4.2.90.
|
||||
# At the time of writing, GNU Make v4.2.1 is still being used in supported
|
||||
# distro releases.
|
||||
#
|
||||
# Source: https://lists.gnu.org/archive/html/bug-make/2017-11/msg00017.html
|
||||
clang_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang")
|
||||
clangxx_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang++")
|
||||
|
||||
clang_resource_dir=$(shell clang -print-resource-dir)
|
||||
endif
|
||||
|
||||
cctools_TOOLS=AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL DSYMUTIL
|
||||
|
||||
# Make-only lowercase function
|
||||
lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
|
||||
|
||||
# For well-known tools provided by cctools, make sure that their well-known
|
||||
# variable is set to the full path of the tool, just like how AC_PATH_{TOO,PROG}
|
||||
# would.
|
||||
$(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(host)-$(call lc,$(TOOL))))
|
||||
|
||||
# Flag explanations:
|
||||
#
|
||||
# -mlinker-version
|
||||
#
|
||||
# Ensures that modern linker features are enabled. See here for more
|
||||
# details: https://github.com/bitcoin/bitcoin/pull/19407.
|
||||
#
|
||||
# -B$(build_prefix)/bin
|
||||
#
|
||||
# Explicitly point to our binaries (e.g. cctools) so that they are
|
||||
# ensured to be found and preferred over other possibilities.
|
||||
#
|
||||
# -stdlib=libc++ -stdlib++-isystem$(OSX_SDK)/usr/include/c++/v1
|
||||
#
|
||||
# Forces clang to use the libc++ headers from our SDK and completely
|
||||
# forget about the libc++ headers from the standard directories
|
||||
#
|
||||
# -Xclang -*system<path_a> \
|
||||
# -Xclang -*system<path_b> \
|
||||
# -Xclang -*system<path_c> ...
|
||||
#
|
||||
# Adds path_a, path_b, and path_c to the bottom of clang's list of
|
||||
# include search paths. This is used to explicitly specify the list of
|
||||
# system include search paths and its ordering, rather than rely on
|
||||
# clang's autodetection routine. This routine has been shown to:
|
||||
# 1. Fail to pickup libc++ headers in $SYSROOT/usr/include/c++/v1
|
||||
# when clang was built manually (see: https://github.com/bitcoin/bitcoin/pull/17919#issuecomment-656785034)
|
||||
# 2. Fail to pickup C headers in $SYSROOT/usr/include when
|
||||
# C_INCLUDE_DIRS was specified at configure time (see: https://gist.github.com/dongcarl/5cdc6990b7599e8a5bf6d2a9c70e82f9)
|
||||
#
|
||||
# Talking directly to cc1 with -Xclang here grants us access to specify
|
||||
# more granular categories for these system include search paths, and we
|
||||
# can use the correct categories that these search paths would have been
|
||||
# placed in if the autodetection routine had worked correctly. (see:
|
||||
# https://gist.github.com/dongcarl/5cdc6990b7599e8a5bf6d2a9c70e82f9#the-treatment)
|
||||
#
|
||||
# Furthermore, it places these search paths after any "non-Xclang"
|
||||
# specified search paths. This prevents any additional clang options or
|
||||
# environment variables from coming after or in between these system
|
||||
# include search paths, as that would be wrong in general but would also
|
||||
# break #include_next's.
|
||||
#
|
||||
darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
|
||||
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
|
||||
-u LIBRARY_PATH \
|
||||
$(clang_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \
|
||||
-B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \
|
||||
-isysroot$(OSX_SDK) \
|
||||
-Xclang -internal-externc-isystem$(clang_resource_dir)/include \
|
||||
-Xclang -internal-externc-isystem$(OSX_SDK)/usr/include
|
||||
darwin_CXX=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
|
||||
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
|
||||
-u LIBRARY_PATH \
|
||||
$(clangxx_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \
|
||||
-B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \
|
||||
-isysroot$(OSX_SDK) \
|
||||
-stdlib=libc++ \
|
||||
-stdlib++-isystem$(OSX_SDK)/usr/include/c++/v1 \
|
||||
-Xclang -internal-externc-isystem$(clang_resource_dir)/include \
|
||||
-Xclang -internal-externc-isystem$(OSX_SDK)/usr/include
|
||||
|
||||
darwin_CFLAGS=-pipe
|
||||
darwin_CXXFLAGS=$(darwin_CFLAGS)
|
||||
darwin_ARFLAGS=cr
|
||||
|
||||
darwin_release_CFLAGS=-O2
|
||||
darwin_release_CXXFLAGS=$(darwin_release_CFLAGS)
|
||||
|
||||
darwin_debug_CFLAGS=-O1
|
||||
darwin_debug_CXXFLAGS=$(darwin_debug_CFLAGS)
|
||||
|
||||
darwin_cmake_system=Darwin
|
40
contrib/depends/hosts/default.mk
Normal file
40
contrib/depends/hosts/default.mk
Normal file
|
@ -0,0 +1,40 @@
|
|||
ifneq ($(host),$(build))
|
||||
host_toolchain:=$(host)-
|
||||
endif
|
||||
|
||||
default_host_CC = $(host_toolchain)gcc
|
||||
default_host_CXX = $(host_toolchain)g++
|
||||
default_host_AR = $(host_toolchain)ar
|
||||
default_host_RANLIB = $(host_toolchain)ranlib
|
||||
default_host_STRIP = $(host_toolchain)strip
|
||||
default_host_LIBTOOL = $(host_toolchain)libtool
|
||||
default_host_INSTALL_NAME_TOOL = $(host_toolchain)install_name_tool
|
||||
default_host_OTOOL = $(host_toolchain)otool
|
||||
default_host_NM = $(host_toolchain)nm
|
||||
default_host_OBJCOPY = $(host_toolchain)objcopy
|
||||
|
||||
define add_host_tool_func
|
||||
ifneq ($(filter $(origin $1),undefined default),)
|
||||
# Do not consider the well-known var $1 if it is undefined or is taking a value
|
||||
# that is predefined by "make" (e.g. the make variable "CC" has a predefined
|
||||
# value of "cc")
|
||||
$(host_os)_$1?=$$(default_host_$1)
|
||||
$(host_arch)_$(host_os)_$1?=$$($(host_os)_$1)
|
||||
$(host_arch)_$(host_os)_$(release_type)_$1?=$$($(host_os)_$1)
|
||||
else
|
||||
$(host_os)_$1=$(or $($1),$($(host_os)_$1),$(default_host_$1))
|
||||
$(host_arch)_$(host_os)_$1=$(or $($1),$($(host_arch)_$(host_os)_$1),$$($(host_os)_$1))
|
||||
$(host_arch)_$(host_os)_$(release_type)_$1=$(or $($1),$($(host_arch)_$(host_os)_$(release_type)_$1),$$($(host_os)_$1))
|
||||
endif
|
||||
host_$1=$$($(host_arch)_$(host_os)_$1)
|
||||
endef
|
||||
|
||||
define add_host_flags_func
|
||||
$(host_arch)_$(host_os)_$1 += $($(host_os)_$1)
|
||||
$(host_arch)_$(host_os)_$(release_type)_$1 += $($(host_os)_$(release_type)_$1)
|
||||
host_$1 = $$($(host_arch)_$(host_os)_$1)
|
||||
host_$(release_type)_$1 = $$($(host_arch)_$(host_os)_$(release_type)_$1)
|
||||
endef
|
||||
|
||||
$(foreach tool,CC CXX AR RANLIB STRIP LIBTOOL NM OBJCOPY OTOOL INSTALL_NAME_TOOL DSYMUTIL,$(eval $(call add_host_tool_func,$(tool))))
|
||||
$(foreach flags,CFLAGS CXXFLAGS ARFLAGS CPPFLAGS LDFLAGS, $(eval $(call add_host_flags_func,$(flags))))
|
33
contrib/depends/hosts/linux.mk
Normal file
33
contrib/depends/hosts/linux.mk
Normal file
|
@ -0,0 +1,33 @@
|
|||
linux_CFLAGS=-pipe
|
||||
linux_CXXFLAGS=$(linux_CFLAGS)
|
||||
linux_ARFLAGS=cr
|
||||
|
||||
linux_release_CFLAGS=-O2
|
||||
linux_release_CXXFLAGS=$(linux_release_CFLAGS)
|
||||
|
||||
linux_debug_CFLAGS=-O1
|
||||
linux_debug_CXXFLAGS=$(linux_debug_CFLAGS)
|
||||
|
||||
linux_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_LIBCPP_DEBUG=1
|
||||
|
||||
ifeq (86,$(findstring 86,$(build_arch)))
|
||||
i686_linux_CC=gcc -m32
|
||||
i686_linux_CXX=g++ -m32
|
||||
i686_linux_AR=ar
|
||||
i686_linux_RANLIB=ranlib
|
||||
i686_linux_NM=nm
|
||||
i686_linux_STRIP=strip
|
||||
|
||||
x86_64_linux_CC=gcc -m64
|
||||
x86_64_linux_CXX=g++ -m64
|
||||
x86_64_linux_AR=ar
|
||||
x86_64_linux_RANLIB=ranlib
|
||||
x86_64_linux_NM=nm
|
||||
x86_64_linux_STRIP=strip
|
||||
else
|
||||
i686_linux_CC=$(default_host_CC) -m32
|
||||
i686_linux_CXX=$(default_host_CXX) -m32
|
||||
x86_64_linux_CC=$(default_host_CC) -m64
|
||||
x86_64_linux_CXX=$(default_host_CXX) -m64
|
||||
endif
|
||||
linux_cmake_system=Linux
|
17
contrib/depends/hosts/mingw32.mk
Normal file
17
contrib/depends/hosts/mingw32.mk
Normal file
|
@ -0,0 +1,17 @@
|
|||
ifneq ($(shell $(SHELL) $(.SHELLFLAGS) "command -v $(host)-g++-posix"),)
|
||||
mingw32_CXX := $(host)-g++-posix
|
||||
endif
|
||||
|
||||
mingw32_CFLAGS=-pipe
|
||||
mingw32_CXXFLAGS=$(mingw32_CFLAGS)
|
||||
mingw32_ARFLAGS=cr
|
||||
|
||||
mingw32_release_CFLAGS=-O2
|
||||
mingw32_release_CXXFLAGS=$(mingw32_release_CFLAGS)
|
||||
|
||||
mingw32_debug_CFLAGS=-O1
|
||||
mingw32_debug_CXXFLAGS=$(mingw32_debug_CFLAGS)
|
||||
|
||||
mingw32_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC
|
||||
|
||||
mingw32_cmake_system=Windows
|
24
contrib/depends/packages/appimage_runtime.mk
Normal file
24
contrib/depends/packages/appimage_runtime.mk
Normal file
|
@ -0,0 +1,24 @@
|
|||
# TODO: we're not actually using the sources downloaded here. Perhaps host patches in a github repo.
|
||||
package=appimage_runtime
|
||||
$(package)_version=13
|
||||
$(package)_download_path=https://github.com/AppImage/AppImageKit/archive/refs/tags/
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=51b837c78dd99ecc1cf3dd283f4a98a1be665b01457da0edc1ff736d12974b1a
|
||||
$(package)_dependencies=native_cmake libsquashfuse libappimage liblzma
|
||||
$(package)_patches=CMakeLists.txt runtime.c notify.c
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -v $($(package)_patch_dir)/* .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_cmake) -DCMAKE_INSTALL_PREFIX=$(host_prefix) -DHOST=$(host) -DGLIBC_DYNAMIC_LINKER=$(GLIBC_DYNAMIC_LINKER) .
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
cp -a runtime $($(package)_staging_prefix_dir)/runtime
|
||||
endef
|
48
contrib/depends/packages/boost.mk
Normal file
48
contrib/depends/packages/boost.mk
Normal file
|
@ -0,0 +1,48 @@
|
|||
package=boost
|
||||
$(package)_version=1_68_0
|
||||
$(package)_download_path=https://downloads.sourceforge.net/project/boost/boost/1.68.0/
|
||||
$(package)_file_name=$(package)_$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7
|
||||
$(package)_dependencies=libiconv
|
||||
$(package)_patches=fix_aroptions.patch fix_arm_arch.patch fix_coalesce.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts_release=variant=release
|
||||
$(package)_config_opts_debug=variant=debug
|
||||
$(package)_config_opts=--layout=tagged --build-type=complete --user-config=user-config.jam
|
||||
$(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1
|
||||
$(package)_config_opts_linux=threadapi=pthread runtime-link=shared
|
||||
$(package)_config_opts_android=threadapi=pthread runtime-link=static target-os=android
|
||||
$(package)_config_opts_darwin=--toolset=darwin runtime-link=static
|
||||
$(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static
|
||||
$(package)_config_opts_x86_64_mingw32=address-model=64
|
||||
$(package)_config_opts_i686_mingw32=address-model=32
|
||||
$(package)_config_opts_i686_linux=address-model=32 architecture=x86
|
||||
$(package)_toolset_$(host_os)=gcc
|
||||
$(package)_archiver_$(host_os)=$($(package)_ar)
|
||||
$(package)_toolset_darwin=darwin
|
||||
$(package)_archiver_darwin=$($(package)_libtool)
|
||||
$(package)_config_libraries=chrono,filesystem,program_options,system,thread,test,date_time,regex,serialization,locale
|
||||
$(package)_cxxflags=-std=c++17
|
||||
$(package)_cxxflags_linux=-fPIC
|
||||
$(package)_cxxflags_freebsd=-fPIC
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/fix_aroptions.patch &&\
|
||||
patch -p1 < $($(package)_patch_dir)/fix_arm_arch.patch &&\
|
||||
patch -p1 < $($(package)_patch_dir)/fix_coalesce.patch &&\
|
||||
echo "using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" <linkflags>\"$($(package)_ldflags)\" <archiver>\"$(boost_archiver_$(host_os))\" <arflags>\"$($(package)_arflags)\" <striper>\"$(host_STRIP)\" <ranlib>\"$(host_RANLIB)\" <rc>\"$(host_WINDRES)\" : ;" > user-config.jam
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
./bootstrap.sh --without-icu --with-libraries=$(boost_config_libraries)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install
|
||||
endef
|
30
contrib/depends/packages/eudev.mk
Normal file
30
contrib/depends/packages/eudev.mk
Normal file
|
@ -0,0 +1,30 @@
|
|||
package=eudev
|
||||
$(package)_version=v3.2.6
|
||||
$(package)_download_path=https://github.com/gentoo/eudev/archive/
|
||||
$(package)_download_file=$($(package)_version).tar.gz
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=a96ecb8637667897b8bd4dee4c22c7c5f08b327be45186e912ce6bc768385852
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-gudev --disable-introspection --disable-hwdb --disable-manpages --disable-shared
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmd
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cd $($(package)_build_subdir); autoreconf -f -i
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/*.la
|
||||
endef
|
31
contrib/depends/packages/expat.mk
Normal file
31
contrib/depends/packages/expat.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=expat
|
||||
$(package)_version=2.4.8
|
||||
$(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$($(package)_version))/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=f79b8f904b749e3e0d20afeadecf8249c55b2e32d4ebb089ae378df479dcaf25
|
||||
|
||||
# -D_DEFAULT_SOURCE defines __USE_MISC, which exposes additional
|
||||
# definitions in endian.h, which are required for a working
|
||||
# endianess check in configure when building with -flto.
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --without-docbook --without-tests --without-examples
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
$(package)_config_opts += --without-xmlwf --with-pic
|
||||
$(package)_cppflags += -D_DEFAULT_SOURCE
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share lib/cmake lib/*.la
|
||||
endef
|
32
contrib/depends/packages/fontconfig.mk
Normal file
32
contrib/depends/packages/fontconfig.mk
Normal file
|
@ -0,0 +1,32 @@
|
|||
package=native_fontconfig
|
||||
$(package)_version=2.12.6
|
||||
$(package)_download_path=https://www.freedesktop.org/software/fontconfig/release/
|
||||
$(package)_file_name=fontconfig-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017
|
||||
$(package)_dependencies=freetype expat
|
||||
$(package)_patches=gperf_header_regen.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-docs --disable-static --disable-libxml2 --disable-iconv
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/gperf_header_regen.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf var lib/*.la
|
||||
endef
|
29
contrib/depends/packages/freetype.mk
Normal file
29
contrib/depends/packages/freetype.mk
Normal file
|
@ -0,0 +1,29 @@
|
|||
package=native_freetype
|
||||
$(package)_version=2.11.0
|
||||
$(package)_download_path=https://download.savannah.gnu.org/releases/freetype
|
||||
$(package)_file_name=freetype-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=8bee39bd3968c4804b70614a0a3ad597299ad0e824bc8aad5ce8aaf48067bde7
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts = --without-zlib --without-png --without-harfbuzz --without-bzip2 --enable-static --disable-shared
|
||||
$(package)_config_opts += --enable-option-checking --without-brotli
|
||||
$(package)_config_opts += --with-pic
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
printenv && \
|
||||
echo "$($(package)_autoconf)" && \
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man lib/*.la
|
||||
endef
|
40
contrib/depends/packages/hidapi.mk
Normal file
40
contrib/depends/packages/hidapi.mk
Normal file
|
@ -0,0 +1,40 @@
|
|||
package=hidapi
|
||||
$(package)_version=0.13.0
|
||||
$(package)_download_path=https://github.com/libusb/hidapi/archive/refs/tags
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=e35eabe4ad59bd6e24dce6136f084997cdecd9bb7f6e83b40f3cc15b0ea8d56f
|
||||
$(package)_linux_dependencies=libusb eudev
|
||||
$(package)_patches=missing_win_include.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--enable-static --disable-shared
|
||||
$(package)_config_opts+=--prefix=$(host_prefix)
|
||||
#$(package)_config_opts_darwin+=RANLIB="$(host_prefix)/native/bin/x86_64-apple-darwin-ranlib" AR="$(host_prefix)/native/bin/x86_64-apple-darwin-ar" CC="$(host_prefix)/native/bin/$($(package)_cc)"
|
||||
$(package)_config_opts_linux+=libudev_LIBS="-L$(host_prefix)/lib -ludev"
|
||||
$(package)_config_opts_linux+=libudev_CFLAGS=-I$(host_prefix)/include
|
||||
$(package)_config_opts_linux+=libusb_LIBS="-L$(host_prefix)/lib -lusb-1.0"
|
||||
$(package)_config_opts_linux+=libusb_CFLAGS=-I$(host_prefix)/include/libusb-1.0
|
||||
$(package)_config_opts_linux+=--with-pic
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/missing_win_include.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
./bootstrap &&\
|
||||
$($(package)_autoconf) $($(package)_config_opts)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/*.la
|
||||
endef
|
||||
|
28
contrib/depends/packages/icu4c.mk
Normal file
28
contrib/depends/packages/icu4c.mk
Normal file
|
@ -0,0 +1,28 @@
|
|||
package=icu4c
|
||||
$(package)_version=55.2
|
||||
$(package)_download_path=https://github.com/unicode-org/icu/releases/download/release-55-2/
|
||||
$(package)_file_name=$(package)-55_2-src.tgz
|
||||
$(package)_sha256_hash=eda2aa9f9c787748a2e2d310590720ca8bcc6252adf6b4cfb03b65bef9d66759
|
||||
$(package)_patches=icu-001-dont-build-static-dynamic-twice.patch no-timestamp-in-makefile.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_build_opts=CFLAGS="$($(package)_cflags) $($(package)_cppflags) -DU_USING_ICU_NAMESPACE=0 -DU_STATIC_IMPLEMENTATION -DU_COMBINED_IMPLEMENTATION -fPIC -DENABLE_STATIC=YES -DPGKDATA_MODE=static"
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/icu-001-dont-build-static-dynamic-twice.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/no-timestamp-in-makefile.patch && \
|
||||
mkdir builda &&\
|
||||
mkdir buildb &&\
|
||||
cd builda &&\
|
||||
sh ../source/runConfigureICU Linux &&\
|
||||
make &&\
|
||||
cd ../buildb &&\
|
||||
sh ../source/runConfigureICU MinGW --enable-static=yes --disable-shared --disable-layout --disable-layoutex --disable-tests --disable-samples --prefix=$(host_prefix) --with-cross-build=`pwd`/../builda &&\
|
||||
$(MAKE) $($(package)_build_opts)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
cd buildb &&\
|
||||
$(MAKE) $($(package)_build_opts) DESTDIR=$($(package)_staging_dir) install lib/*
|
||||
endef
|
34
contrib/depends/packages/ldns.mk
Normal file
34
contrib/depends/packages/ldns.mk
Normal file
|
@ -0,0 +1,34 @@
|
|||
package=ldns
|
||||
$(package)_version=1.7.1
|
||||
$(package)_download_path=https://www.nlnetlabs.nl/downloads/$(package)/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=8ac84c16bdca60e710eea75782356f3ac3b55680d40e1530d7cea474ac208229
|
||||
$(package)_dependencies=openssl
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --enable-static --with-drill
|
||||
$(package)_config_opts+=--with-ssl=$(host_prefix)
|
||||
$(package)_config_opts_release=--disable-debug-mode
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install-h install-lib
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/*.la
|
||||
endef
|
||||
|
34
contrib/depends/packages/libXau.mk
Normal file
34
contrib/depends/packages/libXau.mk
Normal file
|
@ -0,0 +1,34 @@
|
|||
package=libXau
|
||||
$(package)_version=1.0.9
|
||||
$(package)_download_path=https://xorg.freedesktop.org/releases/individual/lib/
|
||||
$(package)_file_name=libXau-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=ccf8cbf0dbf676faa2ea0a6d64bcc3b6746064722b606c8c52917ed00dcb73ec
|
||||
$(package)_dependencies=xproto
|
||||
|
||||
# When updating this package, check the default value of
|
||||
# --disable-xthreads. It is currently enabled.
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --disable-lint-library --without-lint
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
$(package)_config_opts += --with-pic
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share lib/*.la
|
||||
endef
|
25
contrib/depends/packages/libappimage.mk
Normal file
25
contrib/depends/packages/libappimage.mk
Normal file
|
@ -0,0 +1,25 @@
|
|||
package=libappimage
|
||||
$(package)_version=v0.1.x-legacy
|
||||
$(package)_download_path=https://github.com/AppImageCommunity/libappimage/archive/refs/heads/
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=fef3962bfb75f986f24c530a6230e95b8c79e46da3dd581543f1b615d45e7389
|
||||
$(package)_dependencies=native_cmake liblzma libfuse libarchive
|
||||
$(package)_patches=no-unneeded-deps.patch
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/no-unneeded-deps.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_cmake) -DCMAKE_INSTALL_PREFIX=$(host_prefix) -DCMAKE_C_COMPILER= -DUSE_SYSTEM_XZ=ON -DUSE_SYSTEM_SQUASHFUSE=ON -DUSE_SYSTEM_LIBARCHIVE=ON -DBUILD_TESTING=OFF .
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
|
||||
cp src/libappimage_hashlib/include/hashlib.h $($(package)_staging_prefix_dir)/include/ && \
|
||||
cp src/libappimage_hashlib/include/md5.h $($(package)_staging_prefix_dir)/include/
|
||||
endef
|
26
contrib/depends/packages/libarchive.mk
Normal file
26
contrib/depends/packages/libarchive.mk
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Needed for libappimage
|
||||
package=libarchive
|
||||
$(package)_version=3.3.1
|
||||
$(package)_download_path=https://www.libarchive.org/downloads/
|
||||
$(package)_file_name=libarchive-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=29ca5bd1624ca5a007aa57e16080262ab4379dbf8797f5c52f7ea74a3b0424e7
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--with-pic --disable-shared --enable-static --disable-bsdtar --disable-bsdcat
|
||||
$(package)_config_opts+=--disable-bsdcpio --with-zlib --without-bz2lib --without-iconv --without-lz4 --without-lzma
|
||||
$(package)_config_opts+=--without-lzo2 --without-nettle --without-openssl --without-xml2 --without-expat
|
||||
$(package)_config_opts+=--prefix=$(host_prefix)
|
||||
$(package)_config_opts+=--libdir=$(host_prefix)/lib
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf) $($(package)_config_opts)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
22
contrib/depends/packages/libevent.mk
Normal file
22
contrib/depends/packages/libevent.mk
Normal file
|
@ -0,0 +1,22 @@
|
|||
package=libevent
|
||||
$(package)_version=2.1.12
|
||||
$(package)_download_path=https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/
|
||||
$(package)_file_name=libevent-$($(package)_version)-stable.tar.gz
|
||||
$(package)_sha256_hash=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
|
||||
$(package)_dependencies=openssl
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --enable-static --with-pic
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
23
contrib/depends/packages/libfuse.mk
Normal file
23
contrib/depends/packages/libfuse.mk
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Needed for libsquashfuse
|
||||
package=libfuse
|
||||
$(package)_version=2.9.9
|
||||
$(package)_download_path=https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/
|
||||
$(package)_file_name=fuse-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=d0e69d5d608cc22ff4843791ad097f554dd32540ddc9bed7638cc6fea7c1b4b5
|
||||
$(package)_patches = arm64.patch
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/arm64.patch
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
36
contrib/depends/packages/libgcrypt.mk
Normal file
36
contrib/depends/packages/libgcrypt.mk
Normal file
|
@ -0,0 +1,36 @@
|
|||
package=libgcrypt
|
||||
$(package)_version=1.8.9
|
||||
$(package)_download_path=https://www.gnupg.org/ftp/gcrypt/libgcrypt/
|
||||
$(package)_file_name=libgcrypt-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=2bda4790aa5f0895d3407cf7bf6bd7727fd992f25a45a63d92fef10767fa3769
|
||||
$(package)_dependencies=libgpg-error
|
||||
$(package)_patches=gost-sb.h no_gen_gost-sb.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_build_opts=CFLAGS="-fPIE"
|
||||
endef
|
||||
|
||||
# TODO: do a native compile first to eliminate the need for this patch
|
||||
define $(package)_preprocess_cmds
|
||||
mv $($(package)_patch_dir)/gost-sb.h cipher/gost-sb.h && \
|
||||
patch -p1 < $($(package)_patch_dir)/no_gen_gost-sb.patch
|
||||
endef
|
||||
|
||||
# TODO: building on linux with $($(package)_autoconf) fails for mysterious reasons
|
||||
ifeq ($(host_os),linux)
|
||||
define $(package)_config_cmds
|
||||
CFLAGS='-fPIE' CXXFLAGS='-fPIE' ./configure --host=$(host) --enable-digests="sha256 blake2" --enable-ciphers=aes --disable-amd64-as-feature-detection --disable-asm --disable-avx-support --disable-avx2-support --disable-sse41-support --disable-shared --enable-static --disable-doc --with-libgpg-error-prefix=$(host_prefix) --prefix=$(host_prefix)
|
||||
endef
|
||||
else
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf) --disable-shared --enable-static --disable-doc --with-libgpg-error-prefix=$(host_prefix)
|
||||
endef
|
||||
endif
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) $($(package)_build_opts)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
21
contrib/depends/packages/libgpg-error.mk
Normal file
21
contrib/depends/packages/libgpg-error.mk
Normal file
|
@ -0,0 +1,21 @@
|
|||
package=libgpg-error
|
||||
$(package)_version=1.45
|
||||
$(package)_download_path=https://www.gnupg.org/ftp/gcrypt/libgpg-error/
|
||||
$(package)_file_name=libgpg-error-1.45.tar.bz2
|
||||
$(package)_sha256_hash=570f8ee4fb4bff7b7495cff920c275002aea2147e9a1d220c068213267f80a26
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_build_opts=CFLAGS="-fPIE"
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf) --enable-static --disable-shared
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) $($(package)_build_opts)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
29
contrib/depends/packages/libiconv.mk
Normal file
29
contrib/depends/packages/libiconv.mk
Normal file
|
@ -0,0 +1,29 @@
|
|||
package=libiconv
|
||||
$(package)_version=1.17
|
||||
$(package)_download_path=https://ftp.gnu.org/gnu/libiconv
|
||||
$(package)_file_name=libiconv-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-nls
|
||||
$(package)_config_opts=--enable-static
|
||||
$(package)_config_opts=--disable-shared
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
$(package)_config_opts_freebsd=--with-pic
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/*.la
|
||||
endef
|
24
contrib/depends/packages/liblzma.mk
Normal file
24
contrib/depends/packages/liblzma.mk
Normal file
|
@ -0,0 +1,24 @@
|
|||
# Needed for libappimage
|
||||
package=liblzma
|
||||
$(package)_version=5.2.3
|
||||
$(package)_download_path=https://netcologne.dl.sourceforge.net/project/lzmautils/
|
||||
$(package)_file_name=xz-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=71928b357d0a09a12a4b4c5fafca8c31c19b0e7d3b8ebb19622e96f26dbf28cb
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--with-pic --disable-shared --enable-static --disable-xz --disable-xzdec
|
||||
$(package)_config_opts+=--prefix=$(host_prefix)
|
||||
$(package)_config_opts+=--libdir=$(host_prefix)/lib
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf) $($(package)_config_opts)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
45
contrib/depends/packages/libsquashfuse.mk
Normal file
45
contrib/depends/packages/libsquashfuse.mk
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Needed for libappimage
|
||||
package=libsquashfuse
|
||||
$(package)_version=1f980303b89c779eabfd0a0fdd36d6a7a311bf92
|
||||
$(package)_download_path=https://github.com/vasi/squashfuse/archive/
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=8cef1539bd9c9efd3c407004fdd7a3bbef44102a5966b892819a275d609013a3
|
||||
$(package)_dependencies=liblzma libfuse zlib
|
||||
$(package)_patches=squashfuse.patch squashfuse_dlopen.patch squashfuse_dlopen.c squashfuse_dlopen.h
|
||||
|
||||
# for some reason, a first run may fail, but it seems just running it a second time fixes the issues
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/squashfuse.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/squashfuse_dlopen.patch && \
|
||||
cp -v $($(package)_patch_dir)/squashfuse_dlopen.c $($(package)_patch_dir)/squashfuse_dlopen.h . && \
|
||||
libtoolize --force && \
|
||||
./autogen.sh || true && \
|
||||
./autogen.sh && \
|
||||
sed -i "/PKG_CHECK_MODULES.*/,/,:./d" configure && \
|
||||
sed -i "s/typedef off_t sqfs_off_t/typedef int64_t sqfs_off_t/g" common.h
|
||||
endef
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-demo --disable-high-level --without-lzo --without-lz4
|
||||
$(package)_config_opts+=--prefix=$(host_prefix)
|
||||
$(package)_config_opts+=--libdir=$(host_prefix)/lib
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf) $($(package)_config_opts)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) && \
|
||||
ls .libs
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
|
||||
mkdir -p $($(package)_staging_prefix_dir)/lib && \
|
||||
mkdir -p $($(package)_staging_prefix_dir)/include && \
|
||||
cp .libs/libfuseprivate.a $($(package)_staging_prefix_dir)/lib/ && \
|
||||
cp .libs/libsquashfuse.a $($(package)_staging_prefix_dir)/lib/ && \
|
||||
cp .libs/libsquashfuse_ll.a $($(package)_staging_prefix_dir)/lib/ && \
|
||||
find . -name "*.h" -exec cp --parents '{}' $($(package)_staging_prefix_dir)/include/ \;
|
||||
endef
|
40
contrib/depends/packages/libusb.mk
Normal file
40
contrib/depends/packages/libusb.mk
Normal file
|
@ -0,0 +1,40 @@
|
|||
package=libusb
|
||||
$(package)_version=1.0.26
|
||||
$(package)_download_path=https://github.com/libusb/libusb/releases/download/v$($(package)_version)
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
autoreconf -i
|
||||
endef
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared
|
||||
$(package)_config_opts_linux=--with-pic --disable-udev
|
||||
$(package)_config_opts_mingw32=--disable-udev
|
||||
$(package)_config_opts_darwin=--disable-udev
|
||||
endef
|
||||
|
||||
ifneq ($(host_os),darwin)
|
||||
define $(package)_config_cmds
|
||||
cp -f $(BASEDIR)/config.guess config.guess &&\
|
||||
cp -f $(BASEDIR)/config.sub config.sub &&\
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
else
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
endif
|
||||
|
||||
define $(package)_build_cmd
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
cp -f lib/libusb-1.0.a lib/libusb.a
|
||||
endef
|
41
contrib/depends/packages/libxcb.mk
Normal file
41
contrib/depends/packages/libxcb.mk
Normal file
|
@ -0,0 +1,41 @@
|
|||
package=libxcb
|
||||
$(package)_version=1.14
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=libxcb-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34
|
||||
$(package)_dependencies=xcb_proto libXau
|
||||
$(package)_patches = remove_pthread_stubs.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen --without-launchd
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
# Disable unneeded extensions.
|
||||
# More info is available from: https://doc.qt.io/qt-5.15/linux-requirements.html
|
||||
$(package)_config_opts += --disable-composite --disable-damage --disable-dpms
|
||||
$(package)_config_opts += --disable-dri2 --disable-dri3 --disable-glx
|
||||
$(package)_config_opts += --disable-present --disable-record --disable-resource
|
||||
$(package)_config_opts += --disable-screensaver --disable-xevie --disable-xfree86-dri
|
||||
$(package)_config_opts += --disable-xinput --disable-xprint --disable-selinux
|
||||
$(package)_config_opts += --disable-xtest --disable-xv --disable-xvmc
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux && \
|
||||
patch -p1 -i $($(package)_patch_dir)/remove_pthread_stubs.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share lib/*.la
|
||||
endef
|
32
contrib/depends/packages/libxcb_util.mk
Normal file
32
contrib/depends/packages/libxcb_util.mk
Normal file
|
@ -0,0 +1,32 @@
|
|||
package=libxcb_util
|
||||
$(package)_version=0.4.0
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5eae50e9
|
||||
$(package)_dependencies=libxcb
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts = --disable-shared --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
$(package)_config_opts += --with-pic
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
31
contrib/depends/packages/libxcb_util_image.mk
Normal file
31
contrib/depends/packages/libxcb_util_image.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=libxcb_util_image
|
||||
$(package)_version=0.4.0
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-image-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=2db96a37d78831d643538dd1b595d7d712e04bdccf8896a5e18ce0f398ea2ffc
|
||||
$(package)_dependencies=libxcb libxcb_util
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts+= --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
31
contrib/depends/packages/libxcb_util_keysyms.mk
Normal file
31
contrib/depends/packages/libxcb_util_keysyms.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=libxcb_util_keysyms
|
||||
$(package)_version=0.4.0
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-keysyms-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=0ef8490ff1dede52b7de533158547f8b454b241aa3e4dcca369507f66f216dd9
|
||||
$(package)_dependencies=libxcb xproto
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
31
contrib/depends/packages/libxcb_util_render.mk
Normal file
31
contrib/depends/packages/libxcb_util_render.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=libxcb_util_render
|
||||
$(package)_version=0.3.9
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-renderutil-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=c6e97e48fb1286d6394dddb1c1732f00227c70bd1bedb7d1acabefdd340bea5b
|
||||
$(package)_dependencies=libxcb
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
31
contrib/depends/packages/libxcb_util_wm.mk
Normal file
31
contrib/depends/packages/libxcb_util_wm.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=libxcb_util_wm
|
||||
$(package)_version=0.4.1
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-wm-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=28bf8179640eaa89276d2b0f1ce4285103d136be6c98262b6151aaee1d3c2a3f
|
||||
$(package)_dependencies=libxcb
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
36
contrib/depends/packages/libxkbcommon.mk
Normal file
36
contrib/depends/packages/libxkbcommon.mk
Normal file
|
@ -0,0 +1,36 @@
|
|||
package=libxkbcommon
|
||||
$(package)_version=0.8.4
|
||||
$(package)_download_path=https://xkbcommon.org/download/
|
||||
$(package)_file_name=libxkbcommon-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=60ddcff932b7fd352752d51a5c4f04f3d0403230a584df9a2e0d5ed87c486c8b
|
||||
$(package)_dependencies=libxcb
|
||||
|
||||
# This package explicitly enables -Werror=array-bounds, which causes build failures
|
||||
# with GCC 12.1+. Work around that by turning errors back into warnings.
|
||||
# This workaround would be dropped if the package was updated, as that would require
|
||||
# a different build system (Meson)
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts = --enable-option-checking --disable-dependency-tracking
|
||||
$(package)_config_opts += --disable-static --disable-docs
|
||||
$(package)_cflags += -Wno-error=array-bounds
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/*.la
|
||||
endef
|
23
contrib/depends/packages/libzip.mk
Normal file
23
contrib/depends/packages/libzip.mk
Normal file
|
@ -0,0 +1,23 @@
|
|||
package=libzip
|
||||
$(package)_version=1.9.2
|
||||
$(package)_download_path=https://libzip.org/download/
|
||||
$(package)_file_name=libzip-1.9.2.tar.gz
|
||||
$(package)_sha256_hash=fd6a7f745de3d69cf5603edc9cb33d2890f0198e415255d0987a0cf10d824c6f
|
||||
$(package)_dependencies=zlib native_cmake
|
||||
$(package)_patches += no-clonefile.patch
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/no-clonefile.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_cmake) -DZLIB_ROOT=$(host_prefix) -DENABLE_BZIP2=Off -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$(host_prefix) .
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
39
contrib/depends/packages/native_cctools.mk
Normal file
39
contrib/depends/packages/native_cctools.mk
Normal file
|
@ -0,0 +1,39 @@
|
|||
package=native_cctools
|
||||
$(package)_version=2ef2e931cf641547eb8a68cfebde61003587c9fd
|
||||
$(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=6b73269efdf5c58a070e7357b66ee760501388549d6a12b423723f45888b074b
|
||||
$(package)_build_subdir=cctools
|
||||
$(package)_dependencies=native_libtapi
|
||||
$(package)_patches=no-build-date.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--target=$(host)
|
||||
$(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
|
||||
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||
$(package)_config_opts+=--enable-lto-support --with-llvm-config=$(build_prefix)/bin/llvm-config
|
||||
endif
|
||||
$(package)_cc=$(clang_prog)
|
||||
$(package)_cxx=$(clangxx_prog)
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/no-build-date.patch && \
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub cctools
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share
|
||||
endef
|
25
contrib/depends/packages/native_clang.mk
Normal file
25
contrib/depends/packages/native_clang.mk
Normal file
|
@ -0,0 +1,25 @@
|
|||
package=native_clang
|
||||
$(package)_version=10.0.1
|
||||
$(package)_download_path=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_version)
|
||||
ifneq (,$(findstring aarch64,$(BUILD)))
|
||||
$(package)_file_name=clang+llvm-$($(package)_version)-aarch64-linux-gnu.tar.xz
|
||||
$(package)_sha256_hash=90dc69a4758ca15cd0ffa45d07fbf5bf4309d47d2c7745a9f0735ecffde9c31f
|
||||
else
|
||||
$(package)_file_name=clang+llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
||||
$(package)_sha256_hash=48b83ef827ac2c213d5b64f5ad7ed082c8bcb712b46644e0dc5045c6f462c231
|
||||
endif
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
rm -f $($(package)_extract_dir)/lib/libc++abi.so*
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include && \
|
||||
mkdir -p $($(package)_staging_prefix_dir)/bin && \
|
||||
cp bin/clang $($(package)_staging_prefix_dir)/bin/ && \
|
||||
cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ && \
|
||||
cp bin/dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
|
||||
cp bin/llvm-config $($(package)_staging_prefix_dir)/bin/ && \
|
||||
cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
|
||||
cp -r lib/clang/$($(package)_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include/
|
||||
endef
|
18
contrib/depends/packages/native_cmake.mk
Normal file
18
contrib/depends/packages/native_cmake.mk
Normal file
|
@ -0,0 +1,18 @@
|
|||
package=native_cmake
|
||||
$(package)_version=3.23.2
|
||||
$(package)_version_dot=v3.23
|
||||
$(package)_download_path=https://cmake.org/files/$($(package)_version_dot)/
|
||||
$(package)_file_name=cmake-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=f316b40053466f9a416adf981efda41b160ca859e97f6a484b447ea299ff26aa
|
||||
|
||||
define $(package)_config_cmds
|
||||
./bootstrap --prefix=$(build_prefix) -- -DCMAKE_USE_OPENSSL=OFF
|
||||
endef
|
||||
|
||||
define $(package)_build_cmd
|
||||
+$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
15
contrib/depends/packages/native_ds_store.mk
Normal file
15
contrib/depends/packages/native_ds_store.mk
Normal file
|
@ -0,0 +1,15 @@
|
|||
package=native_ds_store
|
||||
$(package)_version=1.3.0
|
||||
$(package)_download_path=https://github.com/dmgbuild/ds_store/archive/
|
||||
$(package)_file_name=v$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=76b3280cd4e19e5179defa23fb594a9dd32643b0c80d774bd3108361d94fb46d
|
||||
$(package)_install_libdir=$(build_prefix)/lib/python3/dist-packages
|
||||
|
||||
define $(package)_build_cmds
|
||||
python3 setup.py build
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
mkdir -p $($(package)_install_libdir) && \
|
||||
python3 setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir)
|
||||
endef
|
32
contrib/depends/packages/native_expat.mk
Normal file
32
contrib/depends/packages/native_expat.mk
Normal file
|
@ -0,0 +1,32 @@
|
|||
package=native_expat
|
||||
$(package)_version=2.4.8
|
||||
$(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$($(package)_version))/
|
||||
$(package)_file_name=expat-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=f79b8f904b749e3e0d20afeadecf8249c55b2e32d4ebb089ae378df479dcaf25
|
||||
|
||||
# -D_DEFAULT_SOURCE defines __USE_MISC, which exposes additional
|
||||
# definitions in endian.h, which are required for a working
|
||||
# endianess check in configure when building with -flto.
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --without-docbook --without-tests --without-examples
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
$(package)_config_opts += --without-xmlwf --with-pic
|
||||
$(package)_cppflags += -D_DEFAULT_SOURCE
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
echo "$($(package)_autoconf)" && \
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share lib/cmake lib/*.la
|
||||
endef
|
32
contrib/depends/packages/native_fontconfig.mk
Normal file
32
contrib/depends/packages/native_fontconfig.mk
Normal file
|
@ -0,0 +1,32 @@
|
|||
package=native_fontconfig
|
||||
$(package)_version=2.12.6
|
||||
$(package)_download_path=https://www.freedesktop.org/software/fontconfig/release/
|
||||
$(package)_file_name=fontconfig-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017
|
||||
$(package)_dependencies=native_freetype native_expat
|
||||
$(package)_patches=gperf_header_regen.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-docs --disable-static --disable-libxml2 --disable-iconv
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/gperf_header_regen.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf var lib/*.la
|
||||
endef
|
29
contrib/depends/packages/native_freetype.mk
Normal file
29
contrib/depends/packages/native_freetype.mk
Normal file
|
@ -0,0 +1,29 @@
|
|||
package=native_freetype
|
||||
$(package)_version=2.11.0
|
||||
$(package)_download_path=https://download.savannah.gnu.org/releases/freetype
|
||||
$(package)_file_name=freetype-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=8bee39bd3968c4804b70614a0a3ad597299ad0e824bc8aad5ce8aaf48067bde7
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts = --without-zlib --without-png --without-harfbuzz --without-bzip2 --enable-static --disable-shared
|
||||
$(package)_config_opts += --enable-option-checking --without-brotli
|
||||
$(package)_config_opts += --with-pic
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
printenv && \
|
||||
echo "$($(package)_autoconf)" && \
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man lib/*.la
|
||||
endef
|
34
contrib/depends/packages/native_libXau.mk
Normal file
34
contrib/depends/packages/native_libXau.mk
Normal file
|
@ -0,0 +1,34 @@
|
|||
package=native_libXau
|
||||
$(package)_version=1.0.9
|
||||
$(package)_download_path=https://xorg.freedesktop.org/releases/individual/lib/
|
||||
$(package)_file_name=libXau-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=ccf8cbf0dbf676faa2ea0a6d64bcc3b6746064722b606c8c52917ed00dcb73ec
|
||||
$(package)_dependencies=native_xproto
|
||||
|
||||
# When updating this package, check the default value of
|
||||
# --disable-xthreads. It is currently enabled.
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --disable-lint-library --without-lint
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
$(package)_config_opts += --with-pic
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share lib/*.la
|
||||
endef
|
19
contrib/depends/packages/native_libtapi.mk
Normal file
19
contrib/depends/packages/native_libtapi.mk
Normal file
|
@ -0,0 +1,19 @@
|
|||
package=native_libtapi
|
||||
$(package)_version=664b8414f89612f2dfd35a9b679c345aa5389026
|
||||
$(package)_download_path=https://github.com/tpoechtrager/apple-libtapi/archive
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=62e419c12d1c9fad67cc1cd523132bc00db050998337c734c15bc8d73cc02b61
|
||||
|
||||
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||
$(package)_dependencies=native_clang
|
||||
endif
|
||||
|
||||
define $(package)_build_cmds
|
||||
CC=$(clang_prog) CXX=$(clangxx_prog) INSTALLPREFIX=$($(package)_staging_prefix_dir) ./build.sh
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
./install.sh && \
|
||||
mkdir -p $($(package)_staging_prefix_dir)/include/llvm-c && \
|
||||
cp src/llvm/include/llvm-c/lto.h $($(package)_staging_prefix_dir)/include/llvm-c
|
||||
endef
|
41
contrib/depends/packages/native_libxcb.mk
Normal file
41
contrib/depends/packages/native_libxcb.mk
Normal file
|
@ -0,0 +1,41 @@
|
|||
package=native_libxcb
|
||||
$(package)_version=1.14
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=libxcb-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34
|
||||
$(package)_dependencies=native_xcb_proto native_libXau
|
||||
$(package)_patches = remove_pthread_stubs.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen --without-launchd
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
# Disable unneeded extensions.
|
||||
# More info is available from: https://doc.qt.io/qt-5.15/linux-requirements.html
|
||||
$(package)_config_opts += --disable-composite --disable-damage --disable-dpms
|
||||
$(package)_config_opts += --disable-dri2 --disable-dri3 --disable-glx
|
||||
$(package)_config_opts += --disable-present --disable-record --disable-resource
|
||||
$(package)_config_opts += --disable-screensaver --disable-xevie --disable-xfree86-dri
|
||||
$(package)_config_opts += --disable-xinput --disable-xprint --disable-selinux
|
||||
$(package)_config_opts += --disable-xtest --disable-xv --disable-xvmc
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux && \
|
||||
patch -p1 -i $($(package)_patch_dir)/remove_pthread_stubs.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share lib/*.la
|
||||
endef
|
32
contrib/depends/packages/native_libxcb_util.mk
Normal file
32
contrib/depends/packages/native_libxcb_util.mk
Normal file
|
@ -0,0 +1,32 @@
|
|||
package=native_libxcb_util
|
||||
$(package)_version=0.4.0
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5eae50e9
|
||||
$(package)_dependencies=native_libxcb
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts = --disable-shared --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
$(package)_config_opts += --with-pic
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
31
contrib/depends/packages/native_libxcb_util_image.mk
Normal file
31
contrib/depends/packages/native_libxcb_util_image.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=native_libxcb_util_image
|
||||
$(package)_version=0.4.0
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-image-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=2db96a37d78831d643538dd1b595d7d712e04bdccf8896a5e18ce0f398ea2ffc
|
||||
$(package)_dependencies=native_libxcb native_libxcb_util
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts+= --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
31
contrib/depends/packages/native_libxcb_util_keysyms.mk
Normal file
31
contrib/depends/packages/native_libxcb_util_keysyms.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=native_libxcb_util_keysyms
|
||||
$(package)_version=0.4.0
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-keysyms-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=0ef8490ff1dede52b7de533158547f8b454b241aa3e4dcca369507f66f216dd9
|
||||
$(package)_dependencies=native_libxcb native_xproto
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
31
contrib/depends/packages/native_libxcb_util_render.mk
Normal file
31
contrib/depends/packages/native_libxcb_util_render.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=native_libxcb_util_render
|
||||
$(package)_version=0.3.9
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-renderutil-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=c6e97e48fb1286d6394dddb1c1732f00227c70bd1bedb7d1acabefdd340bea5b
|
||||
$(package)_dependencies=native_libxcb
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
31
contrib/depends/packages/native_libxcb_util_wm.mk
Normal file
31
contrib/depends/packages/native_libxcb_util_wm.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=native_libxcb_util_wm
|
||||
$(package)_version=0.4.1
|
||||
$(package)_download_path=https://xcb.freedesktop.org/dist
|
||||
$(package)_file_name=xcb-util-wm-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=28bf8179640eaa89276d2b0f1ce4285103d136be6c98262b6151aaee1d3c2a3f
|
||||
$(package)_dependencies=native_libxcb
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share/man share/doc lib/*.la
|
||||
endef
|
36
contrib/depends/packages/native_libxkbcommon.mk
Normal file
36
contrib/depends/packages/native_libxkbcommon.mk
Normal file
|
@ -0,0 +1,36 @@
|
|||
package=native_libxkbcommon
|
||||
$(package)_version=0.8.4
|
||||
$(package)_download_path=https://xkbcommon.org/download/
|
||||
$(package)_file_name=libxkbcommon-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=60ddcff932b7fd352752d51a5c4f04f3d0403230a584df9a2e0d5ed87c486c8b
|
||||
$(package)_dependencies=native_libxcb
|
||||
|
||||
# This package explicitly enables -Werror=array-bounds, which causes build failures
|
||||
# with GCC 12.1+. Work around that by turning errors back into warnings.
|
||||
# This workaround would be dropped if the package was updated, as that would require
|
||||
# a different build system (Meson)
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts = --enable-option-checking --disable-dependency-tracking
|
||||
$(package)_config_opts += --disable-static --disable-docs
|
||||
$(package)_cflags += -Wno-error=array-bounds
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/*.la
|
||||
endef
|
18
contrib/depends/packages/native_linuxdeployqt.mk
Normal file
18
contrib/depends/packages/native_linuxdeployqt.mk
Normal file
|
@ -0,0 +1,18 @@
|
|||
package=native_linuxdeployqt
|
||||
$(package)_version=8
|
||||
$(package)_download_path=https://github.com/probonopd/linuxdeployqt/archive/refs/tags/
|
||||
$(package)_file_name=8.tar.gz
|
||||
$(package)_sha256_hash=5597279392431aef16997c4b6892b5aa044392f7e8869439ebea33945a8bdbad
|
||||
$(package)_dependencies=qt
|
||||
|
||||
define $(package)_config_cmds
|
||||
qmake
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) INSTALL_ROOT=$($(package)_staging_dir) install
|
||||
endef
|
15
contrib/depends/packages/native_mac_alias.mk
Normal file
15
contrib/depends/packages/native_mac_alias.mk
Normal file
|
@ -0,0 +1,15 @@
|
|||
package=native_mac_alias
|
||||
$(package)_version=2.2.0
|
||||
$(package)_download_path=https://github.com/dmgbuild/mac_alias/archive/
|
||||
$(package)_file_name=v$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=421e6d7586d1f155c7db3e7da01ca0dacc9649a509a253ad7077b70174426499
|
||||
$(package)_install_libdir=$(build_prefix)/lib/python3/dist-packages
|
||||
|
||||
define $(package)_build_cmds
|
||||
python3 setup.py build
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
mkdir -p $($(package)_install_libdir) && \
|
||||
python3 setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir)
|
||||
endef
|
17
contrib/depends/packages/native_patchelf.mk
Normal file
17
contrib/depends/packages/native_patchelf.mk
Normal file
|
@ -0,0 +1,17 @@
|
|||
package=native_patchelf
|
||||
$(package)_version=0.14.5
|
||||
$(package)_download_path=https://github.com/NixOS/patchelf/releases/download/$($(package)_version)/
|
||||
$(package)_file_name=patchelf-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=113ada3f1ace08f0a7224aa8500f1fa6b08320d8f7df05ff58585286ec5faa6f
|
||||
|
||||
define $(package)_config_cmds
|
||||
./configure --prefix=$(build_prefix)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
27
contrib/depends/packages/native_protobuf.mk
Normal file
27
contrib/depends/packages/native_protobuf.mk
Normal file
|
@ -0,0 +1,27 @@
|
|||
package=native_protobuf
|
||||
$(package)_version=3.6.1
|
||||
$(package)_download_path=https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/
|
||||
$(package)_file_name=protobuf-cpp-3.6.1.tar.gz
|
||||
$(package)_sha256_hash=b3732e471a9bb7950f090fd0457ebd2536a9ba0891b7f3785919c654fe2a2529
|
||||
$(package)_cxxflags=-std=c++11
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --prefix=$(build_prefix)
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) -C src
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) -C src install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/libprotoc.a
|
||||
endef
|
221
contrib/depends/packages/native_qt.mk
Normal file
221
contrib/depends/packages/native_qt.mk
Normal file
|
@ -0,0 +1,221 @@
|
|||
package=native_qt
|
||||
$(package)_version=6.4.1
|
||||
$(package)_download_path=https://download.qt.io/official_releases/qt/6.4/$($(package)_version)/submodules
|
||||
$(package)_suffix=everywhere-src-$($(package)_version).tar.xz
|
||||
$(package)_file_name=qtbase-$($(package)_suffix)
|
||||
$(package)_sha256_hash=532ad71cc0f9c8f7cb92766c47bc3d23263c60876becd9053802f9727af24fae
|
||||
$(package)_dependencies=native_cmake native_libxcb native_libxkbcommon native_libxcb_util native_libxcb_util_render native_libxcb_util_keysyms native_libxcb_util_image native_libxcb_util_wm
|
||||
$(package)_qt_libs=corelib network widgets gui plugins testlib
|
||||
$(package)_linguist_tools = lrelease lupdate lconvert
|
||||
$(package)_patches = dont_hardcode_pwd.patch
|
||||
$(package)_patches += fast_fixed_dtoa_no_optimize.patch
|
||||
$(package)_patches += guix_cross_lib_path.patch
|
||||
$(package)_patches += mac-qmake.conf
|
||||
$(package)_patches += no_pthread_cond_clockwait.patch
|
||||
$(package)_patches += no-renameat2.patch
|
||||
$(package)_patches += no-statx.patch
|
||||
$(package)_patches += no-xlib.patch
|
||||
$(package)_patches += qtbase-moc-ignore-gcc-macro.patch
|
||||
$(package)_patches += rcc_hardcode_timestamp.patch
|
||||
$(package)_patches += root_CMakeLists.txt
|
||||
$(package)_patches += Use-consistent-ordering-in-QShader.patch
|
||||
$(package)_patches += QShader_map.patch
|
||||
|
||||
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
||||
$(package)_qttranslations_sha256_hash=44dbc6f1d256d2048c96fa665c240e0075c2e67188c93986a39ede3556a16a12
|
||||
|
||||
$(package)_qttools_file_name=qttools-$($(package)_suffix)
|
||||
$(package)_qttools_sha256_hash=9e20562c6b04c21fbdb4ed89e59226169ffeaafaab8f45f7d81ea49b0e4b0933
|
||||
|
||||
$(package)_qtsvg_file_name=qtsvg-$($(package)_suffix)
|
||||
$(package)_qtsvg_sha256_hash=5e5345c5941567db883f9daf8ab25108c6f3a527453b1a13c62290849bce9ce5
|
||||
|
||||
$(package)_qtmultimedia_file_name=qtmultimedia-$($(package)_suffix)
|
||||
$(package)_qtmultimedia_sha256_hash=c086d43a026e6090971fd7a697ef8370c5c455115240609cd08d5e2f840dbaaf
|
||||
|
||||
$(package)_qtshadertools_file_name=qtshadertools-$($(package)_suffix)
|
||||
$(package)_qtshadertools_sha256_hash=6bc1748326088c87f562fa3a68140e33fde162fd1333fbfecb775aeb66114504
|
||||
|
||||
$(package)_extra_sources = $($(package)_qttranslations_file_name)
|
||||
$(package)_extra_sources += $($(package)_qttools_file_name)
|
||||
$(package)_extra_sources += $($(package)_qtsvg_file_name)
|
||||
$(package)_extra_sources += $($(package)_qtmultimedia_file_name)
|
||||
$(package)_extra_sources += $($(package)_qtshadertools_file_name)
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts_release = -release
|
||||
$(package)_config_opts_debug = -debug
|
||||
$(package)_config_opts_debug += -optimized-tools
|
||||
$(package)_config_opts += -libexecdir $(build_prefix)/qt-host/bin
|
||||
$(package)_config_opts += -c++std c++17
|
||||
$(package)_config_opts += -confirm-license
|
||||
$(package)_config_opts += -no-cups
|
||||
$(package)_config_opts += -no-egl
|
||||
$(package)_config_opts += -no-eglfs
|
||||
$(package)_config_opts += -no-evdev
|
||||
$(package)_config_opts += -no-gif
|
||||
$(package)_config_opts += -no-glib
|
||||
$(package)_config_opts += -no-icu
|
||||
$(package)_config_opts += -no-ico
|
||||
$(package)_config_opts += -no-kms
|
||||
$(package)_config_opts += -no-linuxfb
|
||||
#$(package)_config_opts += -no-libjpeg # Needed
|
||||
#$(package)_config_opts += -no-libproxy # Needed
|
||||
$(package)_config_opts += -no-libudev
|
||||
$(package)_config_opts += -no-mtdev
|
||||
$(package)_config_opts += -no-openssl
|
||||
#$(package)_config_opts += -openssl-linked
|
||||
$(package)_config_opts += -no-openvg
|
||||
$(package)_config_opts += -no-reduce-relocations
|
||||
$(package)_config_opts += -no-schannel
|
||||
$(package)_config_opts += -no-sctp
|
||||
$(package)_config_opts += -no-securetransport
|
||||
$(package)_config_opts += -no-system-proxies
|
||||
$(package)_config_opts += -no-use-gold-linker
|
||||
$(package)_config_opts += -no-zstd
|
||||
$(package)_config_opts += -nomake examples
|
||||
$(package)_config_opts += -nomake tests
|
||||
$(package)_config_opts += -opensource
|
||||
$(package)_config_opts += -pkg-config
|
||||
$(package)_config_opts += -prefix $(build_prefix)/qt-host
|
||||
$(package)_config_opts += -qt-libpng
|
||||
$(package)_config_opts += -qt-pcre
|
||||
$(package)_config_opts += -qt-harfbuzz
|
||||
$(package)_config_opts += -qt-zlib
|
||||
$(package)_config_opts += -static
|
||||
$(package)_config_opts += -no-feature-colordialog
|
||||
#$(package)_config_opts += -no-feature-concurrent # Needed
|
||||
$(package)_config_opts += -no-feature-dial
|
||||
$(package)_config_opts += -no-feature-fontcombobox
|
||||
$(package)_config_opts += -no-feature-http
|
||||
$(package)_config_opts += -no-feature-image_heuristic_mask
|
||||
$(package)_config_opts += -no-feature-keysequenceedit
|
||||
$(package)_config_opts += -no-feature-lcdnumber
|
||||
$(package)_config_opts += -no-feature-networkdiskcache
|
||||
#$(package)_config_opts += -no-feature-networkproxy # Needed
|
||||
$(package)_config_opts += -no-feature-pdf
|
||||
$(package)_config_opts += -no-feature-printdialog
|
||||
$(package)_config_opts += -no-feature-printer
|
||||
$(package)_config_opts += -no-feature-printpreviewdialog
|
||||
$(package)_config_opts += -no-feature-printpreviewwidget
|
||||
$(package)_config_opts += -no-feature-sessionmanager
|
||||
#$(package)_config_opts += -no-feature-socks5 # Needed
|
||||
$(package)_config_opts += -no-feature-sql
|
||||
$(package)_config_opts += -no-feature-syntaxhighlighter
|
||||
#$(package)_config_opts += -no-feature-textbrowser # Needed
|
||||
$(package)_config_opts += -no-feature-textmarkdownwriter
|
||||
$(package)_config_opts += -no-feature-textodfwriter
|
||||
$(package)_config_opts += -no-feature-topleveldomain
|
||||
#$(package)_config_opts += -no-feature-udpsocket # Neede
|
||||
$(package)_config_opts += -no-feature-undocommand
|
||||
$(package)_config_opts += -no-feature-undogroup
|
||||
$(package)_config_opts += -no-feature-undostack
|
||||
$(package)_config_opts += -no-feature-undoview
|
||||
$(package)_config_opts += -no-feature-vnc
|
||||
#$(package)_config_opts += -no-feature-wizard # Needed
|
||||
$(package)_config_opts += -no-feature-fontconfig
|
||||
|
||||
$(package)_config_opts += -xcb
|
||||
$(package)_config_opts += -no-xcb-xlib
|
||||
$(package)_config_opts += -no-feature-xlib
|
||||
#$(package)_config_opts += -feature-ffmpeg
|
||||
#$(package)_config_opts += -feature-pulseaudio
|
||||
|
||||
# https://bugreports.qt.io/browse/QTBUG-99957
|
||||
$(package)_config_opts += -no-pch
|
||||
|
||||
$(package)_config_opts += -no-opengl
|
||||
$(package)_config_opts += -no-feature-vulkan
|
||||
ifneq ($(LTO),)
|
||||
$(package)_config_opts += -ltcg
|
||||
endif
|
||||
$(package)_config_opts += -platform linux-g++ -xplatform bitcoin-linux-g++
|
||||
ifneq (,$(findstring -stdlib=libc++,$($(1)_cxx)))
|
||||
$(package)_config_opts_x86_64 = -xplatform linux-clang-libc++
|
||||
endif
|
||||
|
||||
$(package)_config_opts_aarch64_android += -android-arch arm64-v8a
|
||||
$(package)_config_opts_armv7a_android += -android-arch armeabi-v7a
|
||||
$(package)_config_opts_x86_64_android += -android-arch x86_64
|
||||
|
||||
endef
|
||||
|
||||
define $(package)_fetch_cmds
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttranslations_file_name),$($(package)_qttranslations_file_name),$($(package)_qttranslations_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttools_file_name),$($(package)_qttools_file_name),$($(package)_qttools_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtsvg_file_name),$($(package)_qtsvg_file_name),$($(package)_qtsvg_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtmultimedia_file_name),$($(package)_qtmultimedia_file_name),$($(package)_qtmultimedia_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_sha256_hash))
|
||||
endef
|
||||
|
||||
define $(package)_extract_cmds
|
||||
mkdir -p $($(package)_extract_dir) && \
|
||||
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qttranslations_sha256_hash) $($(package)_source_dir)/$($(package)_qttranslations_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qttools_sha256_hash) $($(package)_source_dir)/$($(package)_qttools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qtsvg_sha256_hash) $($(package)_source_dir)/$($(package)_qtsvg_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qtmultimedia_sha256_hash) $($(package)_source_dir)/$($(package)_qtmultimedia_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qtshadertools_sha256_hash) $($(package)_source_dir)/$($(package)_qtshadertools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
mkdir qtbase && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source) -C qtbase && \
|
||||
mkdir qttranslations && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttranslations_file_name) -C qttranslations && \
|
||||
mkdir qttools && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttools_file_name) -C qttools && \
|
||||
mkdir qtsvg && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtsvg_file_name) -C qtsvg && \
|
||||
mkdir qtmultimedia && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtmultimedia_file_name) -C qtmultimedia && \
|
||||
mkdir qtshadertools && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp $($(package)_patch_dir)/root_CMakeLists.txt CMakeLists.txt && \
|
||||
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/rcc_hardcode_timestamp.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fast_fixed_dtoa_no_optimize.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/guix_cross_lib_path.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-statx.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-renameat2.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no_pthread_cond_clockwait.patch && \
|
||||
cd qtbase && \
|
||||
patch -p1 -i $($(package)_patch_dir)/Use-consistent-ordering-in-QShader.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/QShader_map.patch && \
|
||||
cd .. && \
|
||||
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
|
||||
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
|
||||
cp -f $($(package)_patch_dir)/mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \
|
||||
cp -r qtbase/mkspecs/linux-arm-gnueabi-g++ qtbase/mkspecs/bitcoin-linux-g++ && \
|
||||
sed -i.old "s|arm-linux-gnueabi-gcc|$($($(package)_type)_CC)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-g++|$($($(package)_type)_CXX)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-ar|$($($(package)_type)_AR)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-objcopy|$($($(package)_type)_OBJCOPY)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-nm|$($($(package)_type)_NM)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-strip|$($($(package)_type)_STRIP)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
echo "!host_build: QMAKE_CFLAGS += $($(package)_cflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
echo "!host_build: QMAKE_CXXFLAGS += $($(package)_cxxflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
echo "!host_build: QMAKE_LFLAGS += $($(package)_ldflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
sed -i.old "s|QMAKE_CC = \$$$$\$$$${CROSS_COMPILE}clang|QMAKE_CC = $($(package)_cc)|" qtbase/mkspecs/common/clang.conf && \
|
||||
sed -i.old "s|QMAKE_CXX = \$$$$\$$$${CROSS_COMPILE}clang++|QMAKE_CXX = $($(package)_cxx)|" qtbase/mkspecs/common/clang.conf
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
export PKG_CONFIG_SYSROOT_DIR=/ && \
|
||||
export PKG_CONFIG_LIBDIR=$(build_prefix)/lib/pkgconfig && \
|
||||
export QT_MAC_SDK_NO_VERSION_CHECK=1 && \
|
||||
cd qtbase && \
|
||||
./configure -top-level $($(package)_config_opts)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
DESTDIR=$($(package)_staging_dir) cmake --install .
|
||||
endef
|
15
contrib/depends/packages/native_squashfs-tools.mk
Normal file
15
contrib/depends/packages/native_squashfs-tools.mk
Normal file
|
@ -0,0 +1,15 @@
|
|||
package=native_squashfs-tools
|
||||
$(package)_version=4.5.1
|
||||
$(package)_download_path=https://github.com/plougher/squashfs-tools/archive/refs/tags
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=277b6e7f75a4a57f72191295ae62766a10d627a4f5e5f19eadfbc861378deea7
|
||||
|
||||
define $(package)_build_cmds
|
||||
cd squashfs-tools && \
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
cd squashfs-tools && \
|
||||
$(MAKE) INSTALL_DIR=$($(package)_staging_dir)$(build_prefix) INSTALL_MANPAGES_DIR="" install
|
||||
endef
|
21
contrib/depends/packages/native_xcb_proto.mk
Normal file
21
contrib/depends/packages/native_xcb_proto.mk
Normal file
|
@ -0,0 +1,21 @@
|
|||
package=native_xcb_proto
|
||||
$(package)_version=1.14.1
|
||||
$(package)_download_path=https://xorg.freedesktop.org/archive/individual/proto
|
||||
$(package)_file_name=xcb-proto-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=f04add9a972ac334ea11d9d7eb4fc7f8883835da3e4859c9afa971efdf57fcc3
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf lib/python*/site-packages/xcbgen/__pycache__
|
||||
endef
|
26
contrib/depends/packages/native_xproto.mk
Normal file
26
contrib/depends/packages/native_xproto.mk
Normal file
|
@ -0,0 +1,26 @@
|
|||
package=native_xproto
|
||||
$(package)_version=7.0.31
|
||||
$(package)_download_path=https://xorg.freedesktop.org/releases/individual/proto
|
||||
$(package)_file_name=xproto-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=c6f9747da0bd3a95f86b17fb8dd5e717c8f3ab7f0ece3ba1b247899ec1ef7747
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--without-fop --without-xmlto --without-xsltproc --disable-specs
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
70
contrib/depends/packages/openssl.mk
Normal file
70
contrib/depends/packages/openssl.mk
Normal file
|
@ -0,0 +1,70 @@
|
|||
package=openssl
|
||||
$(package)_version=1.1.1q
|
||||
$(package)_download_path=https://www.openssl.org/source
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_env=AR="$($(package)_ar)" ARFLAGS=$($(package)_arflags) RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)"
|
||||
$(package)_config_env_android=ANDROID_NDK_HOME="$(host_prefix)/native" PATH="$(host_prefix)/native/bin" CC=clang AR=ar RANLIB=ranlib
|
||||
$(package)_build_env_android=ANDROID_NDK_HOME="$(host_prefix)/native"
|
||||
$(package)_config_opts=--prefix=$(host_prefix) --openssldir=$(host_prefix)/etc/openssl
|
||||
$(package)_config_opts+=no-capieng
|
||||
$(package)_config_opts+=no-dso
|
||||
$(package)_config_opts+=no-dtls1
|
||||
$(package)_config_opts+=no-ec_nistp_64_gcc_128
|
||||
$(package)_config_opts+=no-gost
|
||||
$(package)_config_opts+=no-heartbeats
|
||||
$(package)_config_opts+=no-md2
|
||||
$(package)_config_opts+=no-rc5
|
||||
$(package)_config_opts+=no-rdrand
|
||||
$(package)_config_opts+=no-rfc3779
|
||||
$(package)_config_opts+=no-sctp
|
||||
$(package)_config_opts+=no-shared
|
||||
$(package)_config_opts+=no-ssl-trace
|
||||
$(package)_config_opts+=no-ssl2
|
||||
$(package)_config_opts+=no-ssl3
|
||||
$(package)_config_opts+=no-unit-test
|
||||
$(package)_config_opts+=no-weak-ssl-ciphers
|
||||
$(package)_config_opts+=no-zlib
|
||||
$(package)_config_opts+=no-zlib-dynamic
|
||||
$(package)_config_opts+=$($(package)_cflags) $($(package)_cppflags)
|
||||
$(package)_config_opts_linux=-fPIC -Wa,--noexecstack
|
||||
$(package)_config_opts_freebsd=-fPIC -Wa,--noexecstack
|
||||
$(package)_config_opts_x86_64_linux=linux-x86_64
|
||||
$(package)_config_opts_i686_linux=linux-generic32
|
||||
$(package)_config_opts_arm_linux=linux-generic32
|
||||
$(package)_config_opts_aarch64_linux=linux-generic64
|
||||
$(package)_config_opts_arm_android=--static android-arm
|
||||
$(package)_config_opts_aarch64_android=--static android-arm64
|
||||
$(package)_config_opts_aarch64_darwin=darwin64-arm64-cc
|
||||
$(package)_config_opts_riscv64_linux=linux-generic64
|
||||
$(package)_config_opts_mipsel_linux=linux-generic32
|
||||
$(package)_config_opts_mips_linux=linux-generic32
|
||||
$(package)_config_opts_powerpc_linux=linux-generic32
|
||||
$(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc
|
||||
$(package)_config_opts_x86_64_mingw32=mingw64
|
||||
$(package)_config_opts_i686_mingw32=mingw
|
||||
$(package)_config_opts_x86_64_freebsd=BSD-x86_64
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
printenv && \
|
||||
sed -i.old 's|"engines", "apps", "test", "util", "tools", "fuzz"|"engines", "tools"|' Configure
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
./Configure $($(package)_config_opts)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) build_libs
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install_sw
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share bin etc
|
||||
endef
|
19
contrib/depends/packages/packages.mk
Normal file
19
contrib/depends/packages/packages.mk
Normal file
|
@ -0,0 +1,19 @@
|
|||
packages := boost openssl libiconv ldns unbound qrencode zbar sodium polyseed hidapi protobuf libusb zlib libgpg-error libgcrypt expat libzip
|
||||
native_packages := native_cmake native_expat native_libxcb native_xcb_proto native_libXau native_xproto native_freetype native_fontconfig native_libxkbcommon native_libxcb_util native_libxcb_util_render native_libxcb_util_keysyms native_libxcb_util_image native_libxcb_util_wm native_qt native_protobuf
|
||||
|
||||
linux_packages := eudev liblzma libarchive libfuse libsquashfuse libappimage appimage_runtime
|
||||
linux_native_packages = native_patchelf
|
||||
|
||||
darwin_packages :=
|
||||
darwin_native_packages = native_cctools native_libtapi native_clang native_ds_store native_mac_alias
|
||||
|
||||
mingw32_packages = icu4c
|
||||
mingw32_native_packages =
|
||||
|
||||
qt_linux_packages := libxcb xcb_proto libXau xproto libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm freetype fontconfig qt
|
||||
qt_darwin_packages := qt
|
||||
qt_mingw32_packages := qt
|
||||
|
||||
tor_linux_packages := libevent tor_linux
|
||||
tor_darwin_packages := tor_darwin
|
||||
tor_mingw32_packages := tor_mingw32
|
25
contrib/depends/packages/polyseed.mk
Normal file
25
contrib/depends/packages/polyseed.mk
Normal file
|
@ -0,0 +1,25 @@
|
|||
package=polyseed
|
||||
$(package)_version=1.0.0
|
||||
$(package)_download_path=https://github.com/tevador/polyseed/archive/refs/tags/
|
||||
$(package)_file_name=v$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=45f1e6c08575286581079e6e26d341a3a33abe1f1ee2d026bd098cf632ea2349
|
||||
$(package)_dependencies=native_cmake
|
||||
$(package)_patches=no_shared.patch force-static-mingw.patch 32-bit.patch
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/no_shared.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/force-static-mingw.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/32-bit.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_cmake) -DCMAKE_INSTALL_PREFIX=$(host_prefix) -DCMAKE_C_COMPILER= .
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
31
contrib/depends/packages/protobuf.mk
Normal file
31
contrib/depends/packages/protobuf.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=protobuf
|
||||
$(package)_version=$(native_$(package)_version)
|
||||
$(package)_download_path=$(native_$(package)_download_path)
|
||||
$(package)_file_name=$(native_$(package)_file_name)
|
||||
$(package)_sha256_hash=$(native_$(package)_sha256_hash)
|
||||
$(package)_dependencies=native_$(package)
|
||||
$(package)_cxxflags=-std=c++11
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --with-protoc=$(build_prefix)/bin/protoc
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) -C src libprotobuf.la
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) -C src install-libLTLIBRARIES install-nobase_includeHEADERS &&\
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install-pkgconfigDATA
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/libprotoc.a &&\
|
||||
rm lib/*.la
|
||||
endef
|
||||
|
33
contrib/depends/packages/qrencode.mk
Normal file
33
contrib/depends/packages/qrencode.mk
Normal file
|
@ -0,0 +1,33 @@
|
|||
package=qrencode
|
||||
$(package)_version=3.4.4
|
||||
$(package)_download_path=https://fukuchi.org/works/qrencode/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=efe5188b1ddbcbf98763b819b146be6a90481aac30cfc8d858ab78a19cde1fa5
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --without-tools --without-tests --disable-sdltest
|
||||
$(package)_config_opts += --disable-gprof --disable-gcov --disable-mudflap
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
$(package)_config_opts_android=--with-pic
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub use
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/*.la
|
||||
endef
|
360
contrib/depends/packages/qt.mk
Normal file
360
contrib/depends/packages/qt.mk
Normal file
|
@ -0,0 +1,360 @@
|
|||
package=qt
|
||||
$(package)_version=6.4.1
|
||||
$(package)_download_path=https://download.qt.io/official_releases/qt/6.4/$($(package)_version)/submodules
|
||||
$(package)_suffix=everywhere-src-$($(package)_version).tar.xz
|
||||
$(package)_file_name=qtbase-$($(package)_suffix)
|
||||
$(package)_sha256_hash=532ad71cc0f9c8f7cb92766c47bc3d23263c60876becd9053802f9727af24fae
|
||||
$(package)_darwin_dependencies=native_cctools native_qt openssl
|
||||
$(package)_mingw32_dependencies=openssl native_cmake native_qt native_freetype native_fontconfig native_libxkbcommon
|
||||
$(package)_linux_dependencies=openssl native_qt native_cmake native_freetype native_fontconfig libxcb libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm
|
||||
$(package)_qt_libs=corelib network widgets gui plugins testlib
|
||||
$(package)_linguist_tools = lrelease lupdate lconvert
|
||||
$(package)_patches = aarch64Toolchain.cmake
|
||||
$(package)_patches += dont_hardcode_pwd.patch
|
||||
$(package)_patches += fast_fixed_dtoa_no_optimize.patch
|
||||
$(package)_patches += gnueabihfToolchain.cmake
|
||||
$(package)_patches += guix_cross_lib_path.patch
|
||||
$(package)_patches += ___isOSVersionAtLeast_hack.patch
|
||||
$(package)_patches += mac-qmake.conf
|
||||
$(package)_patches += MacToolchain.cmake
|
||||
$(package)_patches += no_pthread_cond_clockwait.patch
|
||||
$(package)_patches += no-renameat2.patch
|
||||
$(package)_patches += no-statx.patch
|
||||
$(package)_patches += no_wraprt_on_apple.patch
|
||||
$(package)_patches += no-xlib.patch
|
||||
$(package)_patches += qtbase-moc-ignore-gcc-macro.patch
|
||||
$(package)_patches += qtmultimedia-fixes.patch
|
||||
$(package)_patches += rcc_hardcode_timestamp.patch
|
||||
$(package)_patches += root_CMakeLists.txt
|
||||
$(package)_patches += windows_func_fix.patch
|
||||
$(package)_patches += WindowsToolchain.cmake
|
||||
$(package)_patches += Use-consistent-ordering-in-QShader.patch
|
||||
$(package)_patches += QShader_map.patch
|
||||
|
||||
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
||||
$(package)_qttranslations_sha256_hash=44dbc6f1d256d2048c96fa665c240e0075c2e67188c93986a39ede3556a16a12
|
||||
|
||||
$(package)_qttools_file_name=qttools-$($(package)_suffix)
|
||||
$(package)_qttools_sha256_hash=9e20562c6b04c21fbdb4ed89e59226169ffeaafaab8f45f7d81ea49b0e4b0933
|
||||
|
||||
$(package)_qtsvg_file_name=qtsvg-$($(package)_suffix)
|
||||
$(package)_qtsvg_sha256_hash=5e5345c5941567db883f9daf8ab25108c6f3a527453b1a13c62290849bce9ce5
|
||||
|
||||
$(package)_qtwebsockets_file_name=qtwebsockets-$($(package)_suffix)
|
||||
$(package)_qtwebsockets_sha256_hash=537789ea56403ea8a15e115d7f503c3ead630192e97ec99464810fcdb5d67a24
|
||||
|
||||
$(package)_qtmultimedia_file_name=qtmultimedia-$($(package)_suffix)
|
||||
$(package)_qtmultimedia_sha256_hash=c086d43a026e6090971fd7a697ef8370c5c455115240609cd08d5e2f840dbaaf
|
||||
|
||||
$(package)_qtshadertools_file_name=qtshadertools-$($(package)_suffix)
|
||||
$(package)_qtshadertools_sha256_hash=6bc1748326088c87f562fa3a68140e33fde162fd1333fbfecb775aeb66114504
|
||||
|
||||
$(package)_extra_sources = $($(package)_qttranslations_file_name)
|
||||
$(package)_extra_sources += $($(package)_qttools_file_name)
|
||||
$(package)_extra_sources += $($(package)_qtsvg_file_name)
|
||||
$(package)_extra_sources += $($(package)_qtwebsockets_file_name)
|
||||
$(package)_extra_sources += $($(package)_qtmultimedia_file_name)
|
||||
$(package)_extra_sources += $($(package)_qtshadertools_file_name)
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts_release = -release
|
||||
$(package)_config_opts_debug = -debug
|
||||
$(package)_config_opts_debug += -optimized-tools
|
||||
$(package)_config_opts += -libexecdir $(build_prefix)/bin
|
||||
$(package)_config_opts += -confirm-license
|
||||
$(package)_config_opts += -no-cups
|
||||
$(package)_config_opts += -no-egl
|
||||
$(package)_config_opts += -no-eglfs
|
||||
$(package)_config_opts += -no-evdev
|
||||
$(package)_config_opts += -no-gif
|
||||
$(package)_config_opts += -no-glib
|
||||
$(package)_config_opts += -no-icu
|
||||
$(package)_config_opts += -no-ico
|
||||
$(package)_config_opts += -no-kms
|
||||
$(package)_config_opts += -no-linuxfb
|
||||
#$(package)_config_opts += -no-libjpeg # Needed
|
||||
#$(package)_config_opts += -no-libproxy # Needed
|
||||
$(package)_config_opts += -no-libudev
|
||||
$(package)_config_opts += -no-mtdev
|
||||
#$(package)_config_opts += -no-openssl # Needed
|
||||
$(package)_config_opts_mingw32 += -openssl-linked
|
||||
$(package)_config_opts_linux += -openssl-linked
|
||||
$(package)_config_opts += -no-openvg
|
||||
$(package)_config_opts += -no-reduce-relocations
|
||||
$(package)_config_opts += -no-schannel
|
||||
$(package)_config_opts += -no-sctp
|
||||
$(package)_config_opts += -no-securetransport
|
||||
$(package)_config_opts += -no-system-proxies
|
||||
$(package)_config_opts += -no-use-gold-linker
|
||||
$(package)_config_opts += -no-zstd
|
||||
$(package)_config_opts += -nomake examples
|
||||
$(package)_config_opts += -nomake tests
|
||||
$(package)_config_opts += -opensource
|
||||
$(package)_config_opts += -pkg-config
|
||||
$(package)_config_opts += -prefix $(host_prefix)
|
||||
$(package)_config_opts += -qt-libpng
|
||||
$(package)_config_opts += -qt-pcre
|
||||
$(package)_config_opts += -qt-harfbuzz
|
||||
$(package)_config_opts += -qt-zlib
|
||||
$(package)_config_opts += -static
|
||||
$(package)_config_opts += -no-feature-colordialog
|
||||
#$(package)_config_opts += -no-feature-concurrent # Needed
|
||||
$(package)_config_opts += -no-feature-dial
|
||||
$(package)_config_opts += -no-feature-fontcombobox
|
||||
#$(package)_config_opts += -no-feature-http # Needed
|
||||
$(package)_config_opts += -no-feature-image_heuristic_mask
|
||||
$(package)_config_opts += -no-feature-keysequenceedit
|
||||
$(package)_config_opts += -no-feature-lcdnumber
|
||||
$(package)_config_opts += -no-feature-networkdiskcache
|
||||
#$(package)_config_opts += -no-feature-networkproxy # Needed
|
||||
$(package)_config_opts += -no-feature-pdf
|
||||
$(package)_config_opts += -no-feature-printdialog
|
||||
$(package)_config_opts += -no-feature-printer
|
||||
$(package)_config_opts += -no-feature-printpreviewdialog
|
||||
$(package)_config_opts += -no-feature-printpreviewwidget
|
||||
$(package)_config_opts += -no-feature-printsupport
|
||||
$(package)_config_opts += -no-feature-sessionmanager
|
||||
#$(package)_config_opts += -no-feature-socks5 # Needed
|
||||
$(package)_config_opts += -no-feature-sql
|
||||
$(package)_config_opts += -no-feature-syntaxhighlighter
|
||||
#$(package)_config_opts += -no-feature-textbrowser # Needed
|
||||
$(package)_config_opts += -no-feature-textmarkdownwriter
|
||||
$(package)_config_opts += -no-feature-textodfwriter
|
||||
$(package)_config_opts += -no-feature-topleveldomain
|
||||
#$(package)_config_opts += -no-feature-udpsocket # Neede
|
||||
$(package)_config_opts += -no-feature-undocommand
|
||||
$(package)_config_opts += -no-feature-undogroup
|
||||
$(package)_config_opts += -no-feature-undostack
|
||||
$(package)_config_opts += -no-feature-undoview
|
||||
$(package)_config_opts += -no-feature-vnc
|
||||
#$(package)_config_opts += -no-feature-wizard # Needed
|
||||
|
||||
$(package)_config_opts_darwin = -no-dbus
|
||||
$(package)_config_opts_darwin += -no-opengl
|
||||
$(package)_config_opts_darwin += -no-pch
|
||||
$(package)_config_opts_darwin += -no-freetype
|
||||
$(package)_config_opts_darwin += QMAKE_MACOSX_DEPLOYMENT_TARGET=$(OSX_MIN_VERSION)
|
||||
|
||||
ifneq ($(build_os),darwin)
|
||||
$(package)_config_opts_darwin += -xplatform macx-clang-linux
|
||||
$(package)_config_opts_darwin += -device-option MAC_SDK_PATH=$(OSX_SDK)
|
||||
$(package)_config_opts_darwin += -device-option MAC_SDK_VERSION=$(OSX_SDK_VERSION)
|
||||
$(package)_config_opts_darwin += -device-option CROSS_COMPILE="$(host)-"
|
||||
$(package)_config_opts_darwin += -device-option MAC_TARGET=$(host)
|
||||
$(package)_config_opts_darwin += -device-option XCODE_VERSION=$(XCODE_VERSION)
|
||||
$(package)_config_opts_darwin += -qt-host-path $(build_prefix)/qt-host
|
||||
endif
|
||||
|
||||
ifneq ($(build_arch),$(host_arch))
|
||||
$(package)_config_opts_aarch64_darwin += -device-option QMAKE_APPLE_DEVICE_ARCHS=arm64
|
||||
$(package)_config_opts_x86_64_darwin += -device-option QMAKE_APPLE_DEVICE_ARCHS=x86_64
|
||||
endif
|
||||
|
||||
$(package)_config_opts_darwin += -no-feature-ffmpeg
|
||||
$(package)_config_opts_darwin += -- -DCMAKE_TOOLCHAIN_FILE=MacToolchain.cmake -DCMAKE_LIBRARY_PATH=$(HOME)/.guix-profile/lib
|
||||
|
||||
$(package)_config_opts_linux = -xcb
|
||||
$(package)_config_opts_linux += -no-xcb-xlib
|
||||
$(package)_config_opts_linux += -no-feature-xlib
|
||||
#$(package)_config_opts_linux += -feature-ffmpeg
|
||||
#$(package)_config_opts_linux += -feature-pulseaudio
|
||||
|
||||
# https://bugreports.qt.io/browse/QTBUG-99957
|
||||
$(package)_config_opts_linux += -no-pch
|
||||
|
||||
$(package)_config_opts_linux += -system-freetype
|
||||
$(package)_config_opts_linux += -fontconfig
|
||||
$(package)_config_opts_linux += -no-opengl
|
||||
$(package)_config_opts_linux += -no-feature-vulkan
|
||||
$(package)_config_opts_linux += -dbus-runtime
|
||||
ifneq ($(LTO),)
|
||||
$(package)_config_opts_linux += -ltcg
|
||||
endif
|
||||
$(package)_config_opts_linux += -platform linux-g++ -xplatform bitcoin-linux-g++
|
||||
ifneq (,$(findstring -stdlib=libc++,$($(1)_cxx)))
|
||||
$(package)_config_opts_x86_64_linux = -xplatform linux-clang-libc++
|
||||
endif
|
||||
|
||||
$(package)_config_opts_arm_linux += -qt-host-path $(build_prefix)/qt-host
|
||||
$(package)_config_opts_arm_linux += -- -DCMAKE_TOOLCHAIN_FILE=gnueabihfToolchain.cmake -DCMAKE_LIBRARY_PATH=$(HOME)/.guix-profile/lib
|
||||
|
||||
$(package)_config_opts_aarch64_linux += -qt-host-path $(build_prefix)/qt-host
|
||||
$(package)_config_opts_aarch64_linux += -- -DCMAKE_TOOLCHAIN_FILE=aarch64Toolchain.cmake -DCMAKE_LIBRARY_PATH=$(HOME)/.guix-profile/lib
|
||||
|
||||
$(package)_config_opts_mingw32 += -no-opengl
|
||||
$(package)_config_opts_mingw32 += -no-dbus
|
||||
$(package)_config_opts_mingw32 += -no-freetype
|
||||
$(package)_config_opts_mingw32 += -xplatform win32-g++
|
||||
$(package)_config_opts_mingw32 += -device-option CROSS_COMPILE="$(host)-"
|
||||
$(package)_config_opts_mingw32 += -pch
|
||||
$(package)_config_opts_mingw32 += -qt-host-path $(build_prefix)/qt-host
|
||||
$(package)_config_opts_mingw32 += -no-feature-ffmpeg
|
||||
$(package)_config_opts_mingw32 += -wmf
|
||||
$(package)_config_opts_mingw32 += -- -DCMAKE_TOOLCHAIN_FILE=WindowsToolchain.cmake -DCMAKE_LIBRARY_PATH=$(HOME)/.guix-profile/lib
|
||||
|
||||
$(package)_config_opts_android = -xplatform android-clang
|
||||
$(package)_config_opts_android += -android-sdk $(ANDROID_SDK)
|
||||
$(package)_config_opts_android += -android-ndk $(ANDROID_NDK)
|
||||
$(package)_config_opts_android += -android-ndk-platform android-$(ANDROID_API_LEVEL)
|
||||
$(package)_config_opts_android += -egl
|
||||
$(package)_config_opts_android += -no-dbus
|
||||
$(package)_config_opts_android += -opengl es2
|
||||
$(package)_config_opts_android += -qt-freetype
|
||||
$(package)_config_opts_android += -no-fontconfig
|
||||
$(package)_config_opts_android += -L $(host_prefix)/lib
|
||||
$(package)_config_opts_android += -I $(host_prefix)/include
|
||||
$(package)_config_opts_android += -pch
|
||||
$(package)_config_opts_android += -no-feature-vulkan
|
||||
|
||||
$(package)_config_opts_aarch64_android += -android-arch arm64-v8a
|
||||
$(package)_config_opts_armv7a_android += -android-arch armeabi-v7a
|
||||
$(package)_config_opts_x86_64_android += -android-arch x86_64
|
||||
|
||||
$(package)_openssl_flags_$(host_os)="-lssl -lcrypto -lpthread -ldl"
|
||||
$(package)_openssl_flags_mingw32="-lssl -lcrypto -lws2_32"
|
||||
endef
|
||||
|
||||
define $(package)_fetch_cmds
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttranslations_file_name),$($(package)_qttranslations_file_name),$($(package)_qttranslations_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttools_file_name),$($(package)_qttools_file_name),$($(package)_qttools_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtsvg_file_name),$($(package)_qtsvg_file_name),$($(package)_qtsvg_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtwebsockets_file_name),$($(package)_qtwebsockets_file_name),$($(package)_qtwebsockets_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtmultimedia_file_name),$($(package)_qtmultimedia_file_name),$($(package)_qtmultimedia_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_sha256_hash))
|
||||
endef
|
||||
|
||||
define $(package)_extract_cmds
|
||||
mkdir -p $($(package)_extract_dir) && \
|
||||
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qttranslations_sha256_hash) $($(package)_source_dir)/$($(package)_qttranslations_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qttools_sha256_hash) $($(package)_source_dir)/$($(package)_qttools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qtsvg_sha256_hash) $($(package)_source_dir)/$($(package)_qtsvg_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qtwebsockets_sha256_hash) $($(package)_source_dir)/$($(package)_qtwebsockets_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qtmultimedia_sha256_hash) $($(package)_source_dir)/$($(package)_qtmultimedia_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
echo "$($(package)_qtshadertools_sha256_hash) $($(package)_source_dir)/$($(package)_qtshadertools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
||||
mkdir qtbase && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source) -C qtbase && \
|
||||
mkdir qttranslations && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttranslations_file_name) -C qttranslations && \
|
||||
mkdir qttools && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttools_file_name) -C qttools && \
|
||||
mkdir qtsvg && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtsvg_file_name) -C qtsvg && \
|
||||
mkdir qtwebsockets && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtwebsockets_file_name) -C qtwebsockets && \
|
||||
mkdir qtmultimedia && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtmultimedia_file_name) -C qtmultimedia && \
|
||||
mkdir qtshadertools && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp $($(package)_patch_dir)/root_CMakeLists.txt CMakeLists.txt && \
|
||||
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/rcc_hardcode_timestamp.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fast_fixed_dtoa_no_optimize.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/guix_cross_lib_path.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-statx.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-renameat2.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no_pthread_cond_clockwait.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/windows_func_fix.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no_wraprt_on_apple.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/___isOSVersionAtLeast_hack.patch && \
|
||||
mv $($(package)_patch_dir)/WindowsToolchain.cmake . && \
|
||||
mv $($(package)_patch_dir)/MacToolchain.cmake . && \
|
||||
mv $($(package)_patch_dir)/aarch64Toolchain.cmake . && \
|
||||
mv $($(package)_patch_dir)/gnueabihfToolchain.cmake . && \
|
||||
cd qtbase && \
|
||||
patch -p1 -i $($(package)_patch_dir)/Use-consistent-ordering-in-QShader.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/QShader_map.patch && \
|
||||
cd .. && \
|
||||
cd qtmultimedia && \
|
||||
patch -p1 -i $($(package)_patch_dir)/qtmultimedia-fixes.patch && \
|
||||
cd .. && \
|
||||
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
|
||||
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
|
||||
cp -f $($(package)_patch_dir)/mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \
|
||||
cp -r qtbase/mkspecs/linux-arm-gnueabi-g++ qtbase/mkspecs/bitcoin-linux-g++ && \
|
||||
sed -i.old "s|arm-linux-gnueabi-gcc|$($($(package)_type)_CC)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-g++|$($($(package)_type)_CXX)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-ar|$($($(package)_type)_AR)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-objcopy|$($($(package)_type)_OBJCOPY)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-nm|$($($(package)_type)_NM)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
sed -i.old "s|arm-linux-gnueabi-strip|$($($(package)_type)_STRIP)|" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
|
||||
echo "!host_build: QMAKE_CFLAGS += $($(package)_cflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
echo "!host_build: QMAKE_CXXFLAGS += $($(package)_cxxflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
echo "!host_build: QMAKE_LFLAGS += $($(package)_ldflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
||||
sed -i.old "s|QMAKE_CC = \$$$$\$$$${CROSS_COMPILE}clang|QMAKE_CC = $($(package)_cc)|" qtbase/mkspecs/common/clang.conf && \
|
||||
sed -i.old "s|QMAKE_CXX = \$$$$\$$$${CROSS_COMPILE}clang++|QMAKE_CXX = $($(package)_cxx)|" qtbase/mkspecs/common/clang.conf
|
||||
endef
|
||||
|
||||
# TODO: this is a mess, but i'm tired of rebuilding Qt so it is what it is
|
||||
# TODO: find a better way to make WMF libraries available to Qt without polluting the environment
|
||||
ifeq ($(host_os),darwin)
|
||||
define $(package)_config_cmds
|
||||
export OPENSSL_LIBS=${$(package)_openssl_flags_$(host_os)} \
|
||||
export PKG_CONFIG_SYSROOT_DIR=/ && \
|
||||
export PKG_CONFIG_LIBDIR=$(host_prefix)/lib/pkgconfig && \
|
||||
export QT_MAC_SDK_NO_VERSION_CHECK=1 && \
|
||||
cd qtbase && \
|
||||
env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH ./configure -top-level $($(package)_config_opts) --debug-find-pkg=Threads -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
|
||||
endef
|
||||
else ifeq ($(host_os),mingw32)
|
||||
define $(package)_config_cmds
|
||||
cp $(HOME)/.guix-profile/lib/libstrmiids.a \
|
||||
$(HOME)/.guix-profile/lib/libamstrmid.a \
|
||||
$(HOME)/.guix-profile/lib/libdmoguids.a \
|
||||
$(HOME)/.guix-profile/lib/libuuid.a \
|
||||
$(HOME)/.guix-profile/lib/libmsdmo.a \
|
||||
$(HOME)/.guix-profile/lib/libole32.a \
|
||||
$(HOME)/.guix-profile/lib/liboleaut32.a \
|
||||
$(HOME)/.guix-profile/lib/libmf.a \
|
||||
$(HOME)/.guix-profile/lib/libmfuuid.a \
|
||||
$(HOME)/.guix-profile/lib/libmfplat.a \
|
||||
$(HOME)/.guix-profile/lib/libmfcore.a \
|
||||
$(HOME)/.guix-profile/lib/libpropsys.a \
|
||||
/feather/contrib/depends/x86_64-w64-mingw32/lib/ && \
|
||||
export OPENSSL_LIBS=${$(package)_openssl_flags_$(host_os)} \
|
||||
export PKG_CONFIG_SYSROOT_DIR=/ && \
|
||||
export PKG_CONFIG_LIBDIR=$(host_prefix)/lib/pkgconfig && \
|
||||
export QT_MAC_SDK_NO_VERSION_CHECK=1 && \
|
||||
export V=1 && \
|
||||
export VERBOSE=1 && \
|
||||
cd qtbase && \
|
||||
./configure -top-level $($(package)_config_opts) -DCMAKE_LIBRARY_PATH=$(HOME)/.guix-profile/lib --debug-find-pkg=WMF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
|
||||
endef
|
||||
else
|
||||
define $(package)_config_cmds
|
||||
export OPENSSL_LIBS=${$(package)_openssl_flags_$(host_os)} \
|
||||
export PKG_CONFIG_SYSROOT_DIR=/ && \
|
||||
export PKG_CONFIG_LIBDIR=$(host_prefix)/lib/pkgconfig && \
|
||||
export QT_MAC_SDK_NO_VERSION_CHECK=1 && \
|
||||
cd qtbase && \
|
||||
./configure -top-level $($(package)_config_opts)
|
||||
endef
|
||||
endif
|
||||
|
||||
ifeq ($(host_os),darwin)
|
||||
define $(package)_build_cmds
|
||||
export LD_LIBRARY_PATH=${build_prefix}/lib/ && \
|
||||
env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH $(MAKE)
|
||||
endef
|
||||
else ifeq ($(host_os),mingw32)
|
||||
define $(package)_build_cmds
|
||||
export LD_LIBRARY_PATH=${build_prefix}/lib/ && \
|
||||
$(MAKE)
|
||||
endef
|
||||
else
|
||||
define $(package)_build_cmds
|
||||
export LD_LIBRARY_PATH=${build_prefix}/lib/ && \
|
||||
$(MAKE)
|
||||
endef
|
||||
endif
|
||||
|
||||
define $(package)_stage_cmds
|
||||
DESTDIR=$($(package)_staging_dir) cmake --install .
|
||||
endef
|
33
contrib/depends/packages/sodium.mk
Normal file
33
contrib/depends/packages/sodium.mk
Normal file
|
@ -0,0 +1,33 @@
|
|||
package=sodium
|
||||
$(package)_version=1.0.18
|
||||
$(package)_download_path=https://download.libsodium.org/libsodium/releases/
|
||||
$(package)_file_name=libsodium-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1
|
||||
$(package)_patches=disable-glibc-getrandom-getentropy.patch fix-whitespace.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--enable-static --disable-shared
|
||||
$(package)_config_opts+=--prefix=$(host_prefix)
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/disable-glibc-getrandom-getentropy.patch &&\
|
||||
autoconf &&\
|
||||
patch -p1 < $($(package)_patch_dir)/fix-whitespace.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm lib/*.la
|
||||
endef
|
14
contrib/depends/packages/tor_darwin.mk
Normal file
14
contrib/depends/packages/tor_darwin.mk
Normal file
|
@ -0,0 +1,14 @@
|
|||
package=tor_darwin
|
||||
$(package)_version=0.4.7.12
|
||||
$(package)_download_path=https://dist.torproject.org/torbrowser/12.0.1/
|
||||
$(package)_file_name=TorBrowser-12.0.1-macos_ALL.dmg
|
||||
$(package)_sha256_hash=b4b52e1e5a2a0c4e1c68cf36dc8054fd1eb826d43f2622b56ef65e0f9f5db845
|
||||
$(package)_extract_cmds=mkdir -p $$($(1)_extract_dir) && \
|
||||
echo "$$($(1)_sha256_hash) $$($(1)_source)" > $$($(1)_extract_dir)/.$$($(1)_file_name).hash && \
|
||||
$(build_SHA256SUM) -c $$($(1)_extract_dir)/.$$($(1)_file_name).hash && \
|
||||
7z x $$($(1)_source)
|
||||
|
||||
define $(package)_stage_cmds
|
||||
mv Tor\ Browser.app/Contents/MacOS/Tor/tor.real Tor\ Browser.app/Contents/MacOS/Tor/tor && \
|
||||
cp -a Tor\ Browser.app/Contents/MacOS/Tor $($(package)_staging_prefix_dir)/Tor/
|
||||
endef
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue