mirror of
https://github.com/feather-wallet/feather.git
synced 2025-04-04 04:29:02 +00:00
Compare commits
172 commits
Author | SHA1 | Date | |
---|---|---|---|
|
f73940891a | ||
|
c97dbbba98 | ||
|
e9df4a9fcb | ||
|
3c7d768f08 | ||
|
d6a87ea85a | ||
|
ab4f0fa02e | ||
|
424edf07e8 | ||
|
82212f4982 | ||
|
2f0bccf124 | ||
|
0784092697 | ||
|
95c8b494f4 | ||
|
9e39482fbb | ||
|
ce2f332114 | ||
|
45f3d89dd3 | ||
|
b27d724a5b | ||
|
fea39b1929 | ||
|
d68e327178 | ||
|
19b78b9c70 | ||
|
480ebc29ba | ||
|
c51671fb6c | ||
|
69419171b7 | ||
|
1a402d2a05 | ||
|
cdc7918825 | ||
|
48cc0f0aad | ||
|
2b347c3ef2 | ||
|
f3eabe3245 | ||
|
ce95959c1d | ||
|
7da4e90593 | ||
|
df44ecf98e | ||
|
249183f0c1 | ||
|
897afaaabb | ||
|
2a9af40ece | ||
|
45ea707c0c | ||
|
c34ad819a6 | ||
|
1c6bd9815b | ||
|
0c4aa8c1fb | ||
|
ddbfa46a87 | ||
|
003009d607 | ||
|
e25c315226 | ||
|
de499b2386 | ||
|
c5aef15bb0 | ||
|
2c5f766a7b | ||
|
4f28d83ac3 | ||
|
1219bfc3a7 | ||
|
f7d11e8ffe | ||
|
c5f010bd3c | ||
|
4aa571454b | ||
|
c10190ea2e | ||
|
de37f9a8b7 | ||
|
055b898c85 | ||
|
4bcd397aad | ||
|
2e344cfa94 | ||
|
bb1015731f | ||
|
e55afe9429 | ||
|
8f3205d632 | ||
|
e7a6e4f16a | ||
|
88ab38a193 | ||
|
3fa9240c0b | ||
|
fb0564f7a1 | ||
|
c49917f2ae | ||
|
5c8485eac6 | ||
|
465576aa5a | ||
|
e2f790d86a | ||
|
7559736de0 | ||
|
841c6812db | ||
|
a0834cece5 | ||
|
e5e7300c39 | ||
|
f73efb7e8d | ||
|
e4f7493271 | ||
|
649ba5c58a | ||
|
fad3eb259c | ||
|
e84661f758 | ||
|
d9aa9a9682 | ||
|
673b511a99 | ||
|
678b0c1133 | ||
|
dbdaff70a5 | ||
|
1ba584153f | ||
|
dfec4c8da2 | ||
|
2449b44885 | ||
|
51ea7e381a | ||
|
e6967fa9d2 | ||
|
1b8761f3cb | ||
|
a84c552d43 | ||
|
078bcc29bd | ||
|
7fd116b725 | ||
|
22ce2011a7 | ||
|
e66886832a | ||
|
cc693a33cb | ||
|
13daf73c03 | ||
|
8adbf7eaad | ||
|
280a7db065 | ||
|
7992d7be9b | ||
|
dff4752e82 | ||
|
c47314d99d | ||
|
f447b78f4a | ||
|
6a9a564664 | ||
|
3973b1ece7 | ||
|
244121b124 | ||
|
078d19dbd8 | ||
|
c667f0c5be | ||
|
d0b6ac1364 | ||
|
bad9544bbc | ||
|
f84ec87b9e | ||
|
5fae2a2b25 | ||
|
177e390f4a | ||
|
7827b865b1 | ||
|
019d87c5a6 | ||
|
41d6fdbf69 | ||
|
9cac42e556 | ||
|
6ed5ed23a5 | ||
|
f423059b30 | ||
|
1e3bc6615c | ||
|
cd51bc72d7 | ||
|
147e8c04f6 | ||
|
117c6b9763 | ||
|
e2138d4755 | ||
|
2e20526e03 | ||
|
03dbd9628c | ||
|
5a5602e288 | ||
|
f17c92df84 | ||
|
efc0546600 | ||
|
3aa0985425 | ||
|
3649147ae6 | ||
|
b808324469 | ||
|
375c6dbe52 | ||
|
758af9f0ef | ||
|
2c040099a0 | ||
|
c48e6adf3a | ||
|
f223034aef | ||
|
c403d80779 | ||
|
765bdb1f2c | ||
|
d8aa157565 | ||
|
e475bebe2f | ||
|
53e9465d42 | ||
|
672b4644c0 | ||
|
b26d1d0dee | ||
|
725ad63210 | ||
|
d877523cce | ||
|
c033718956 | ||
|
1ec55e148d | ||
|
48f3ef4c3e | ||
|
6fe43167a9 | ||
|
a3d36c6122 | ||
|
91cfdd6df8 | ||
|
0195bdc59c | ||
|
1df5842ea3 | ||
|
fe6cdf8d63 | ||
|
06a34c6612 | ||
|
3b9412fece | ||
|
6561b6d979 | ||
|
60124a6b44 | ||
|
8a2326089e | ||
|
e50a764937 | ||
|
08462f54c0 | ||
|
eb483f33ec | ||
|
d4b5153093 | ||
|
c48726d7a3 | ||
|
9d9413c4cc | ||
|
9fde18717d | ||
|
534649a0af | ||
|
4330a18464 | ||
|
849269f53f | ||
|
5acbd9a20f | ||
|
2707a26d3c | ||
|
fdc7a09c6c | ||
|
796d4dd3f0 | ||
|
c2b5c051da | ||
|
d1f4dfb0b8 | ||
|
1ac76ddcee | ||
|
52546c5660 | ||
|
2e91a0dc9f | ||
|
130432fd23 |
502 changed files with 5780 additions and 4919 deletions
.github/workflows
.gitignore.gitmodulesCMakeLists.txtHACKING.mdLICENSEMAINTENANCE.mdMakefileREADME.mdSECURITY.mdcmake
contrib
depends
hosts
packages
abseil.mkappimage_runtime.mkboost.mkdarwin_sdk.mkeudev.mkexpat.mkflatstart.mkfontconfig.mkhidapi.mklibXau.mklibffi.mklibgcrypt.mklibgpg-error.mklibsodium.mklibsquashfuse.mklibusb.mklibxcb.mklibxcb_util_image.mklibxkbcommon.mklibzip.mknative_abseil.mknative_cctools.mknative_expat.mknative_libffi.mknative_libtapi.mknative_protobuf.mknative_qt.mknative_wayland.mkopenssl.mkpackages.mkqrencode.mkqt.mktor_linux.mkunbound.mkutf8proc.mkwayland.mkxcb_proto.mkxorgproto.mkzlib.mkzstd.mk
patches
appimage_runtime
boost
flatstart
hidapi
libXau
libgcrypt
libgpg-error
libusb
libxcb_util_image
libxkbcommon
native_cctools
native_libtapi
native_qt
native_wayland
qt
disable-qmake.patchmacos-available-qtbase.patchmacos-available-qtmultimedia.patchqtmultimedia-fixes.patchqtwayland-tabletevent-fix.patchrevert-f67ee7c39.patchroot_CMakeLists.txttoolchain.cmakev4l2.patch
unbound
wayland
zlib
flatpak
icons/gnome
window-close-symbolic.svgwindow-maximize-symbolic.svgwindow-minimize-symbolic.svgwindow-restore-symbolic.svg
make_flatpak.shmetadataguix
52
.github/workflows/build.yml
vendored
52
.github/workflows/build.yml
vendored
|
@ -4,21 +4,59 @@ on: [push, pull_request]
|
|||
|
||||
jobs:
|
||||
build-ubuntu-without-scanner:
|
||||
name: "Ubuntu 24.04 (no scanner)"
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ubuntu:24.04
|
||||
steps:
|
||||
- name: update apt
|
||||
run: apt update
|
||||
- name: install dependencies
|
||||
run: apt -y install git cmake build-essential ccache libssl-dev libunbound-dev libboost-all-dev
|
||||
libqrencode-dev qt6-base-dev qt6-svg-dev qt6-websockets-dev qt6-multimedia-dev
|
||||
qt6-wayland-dev libzip-dev libsodium-dev libgcrypt20-dev libx11-xcb-dev
|
||||
protobuf-compiler libprotobuf-dev libhidapi-dev libzxing-dev libusb-dev
|
||||
libusb-1.0-0-dev
|
||||
- name: configure git
|
||||
run: git config --global --add safe.directory '*'
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: update apt
|
||||
run: sudo apt update
|
||||
- name: install dependencies
|
||||
run: sudo apt -y install git cmake build-essential ccache libssl-dev libunbound-dev libboost-all-dev
|
||||
libqrencode-dev qt6-base-dev libgl1-mesa-dev libqt6svg6-dev libqt6websockets6-dev
|
||||
qt6-multimedia-dev libzip-dev libsodium-dev libgcrypt-dev libx11-xcb-dev
|
||||
libprotobuf-dev libhidapi-dev libzxingcore-dev
|
||||
- name: build
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DWITH_SCANNER=OFF ..
|
||||
cmake --build . -j $(nproc)
|
||||
|
||||
build-arch:
|
||||
name: 'Arch Linux'
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: archlinux:latest
|
||||
steps:
|
||||
- name: install dependencies
|
||||
run: pacman -Syyu --noconfirm git cmake base-devel unbound boost qrencode qt6-base qt6-svg qt6-websockets qt6-wayland qt6-multimedia libzip hidapi protobuf zxing-cpp
|
||||
- name: configure git
|
||||
run: git config --global --add safe.directory '*'
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: build
|
||||
run: |
|
||||
cmake -S . -B build
|
||||
cmake --build build -j $(nproc)
|
||||
|
||||
build-macos:
|
||||
name: 'macOS (brew)'
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
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
|
||||
- name: build
|
||||
run: |
|
||||
cmake -S . -B build -DWITH_SCANNER=Off
|
||||
cmake --build build -j $(nproc)
|
||||
|
|
11
.github/workflows/guix
vendored
11
.github/workflows/guix
vendored
|
@ -1,11 +0,0 @@
|
|||
abi <abi/4.0>,
|
||||
include <tunables/global>
|
||||
|
||||
# https://bugs.launchpad.net/ubuntu/+source/guix/+bug/2064115
|
||||
|
||||
profile guix /usr/bin/guix flags=(unconfined) {
|
||||
userns,
|
||||
|
||||
# Site-specific additions and overrides. See local/README for details.
|
||||
include if exists <local/guix>
|
||||
}
|
87
.github/workflows/guix.yml
vendored
87
.github/workflows/guix.yml
vendored
|
@ -32,18 +32,24 @@ jobs:
|
|||
- target: "aarch64-linux-gnu"
|
||||
- target: "arm-linux-gnueabihf"
|
||||
- target: "riscv64-linux-gnu"
|
||||
- target: "i686-linux-gnu"
|
||||
- target: "x86_64-w64-mingw32"
|
||||
- target: "x86_64-w64-mingw32.installer"
|
||||
- target: "x86_64-apple-darwin"
|
||||
- target: "arm64-apple-darwin"
|
||||
|
||||
outputs:
|
||||
WIN_INSTALLER_ARTIFACT_ID: ${{ steps.win-installer.outputs.WIN_INSTALLER_ARTIFACT_ID }}
|
||||
WIN_EXECUTABLE_ARTIFACT_ID: ${{ steps.win-executable.outputs.WIN_EXECUTABLE_ARTIFACT_ID }}
|
||||
name: ${{ matrix.toolchain.target }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.ref }}
|
||||
submodules: recursive
|
||||
# https://github.com/actions/checkout/issues/1467
|
||||
- name: git fetch tags
|
||||
run: git fetch --tags
|
||||
- name: remove bundled packages
|
||||
run: sudo rm -rf /usr/local
|
||||
- name: depends sources cache
|
||||
|
@ -52,26 +58,45 @@ jobs:
|
|||
path: contrib/depends/sources
|
||||
key: sources-${{ hashFiles('contrib/depends/packages/*') }}
|
||||
- name: install dependencies
|
||||
run: sudo apt update; sudo apt -y install guix git ca-certificates apparmor-utils
|
||||
- name: fix apparmor
|
||||
run: sudo cp .github/workflows/guix /etc/apparmor.d/guix; sudo /etc/init.d/apparmor reload; sudo aa-enforce guix || echo "failed"
|
||||
- name: purge apparmor
|
||||
run: sudo apt purge apparmor
|
||||
run: sudo apt update; sudo apt -y install guix git ca-certificates apparmor-utils osslsigncode
|
||||
- name: apparmor workaround
|
||||
# https://bugs.launchpad.net/ubuntu/+source/guix/+bug/2064115
|
||||
run: |
|
||||
sudo tee /etc/apparmor.d/guix << EOF
|
||||
abi <abi/4.0>,
|
||||
include <tunables/global>
|
||||
profile guix /usr/bin/guix flags=(unconfined) {
|
||||
userns,
|
||||
include if exists <local/guix>
|
||||
}
|
||||
EOF
|
||||
sudo /etc/init.d/apparmor reload
|
||||
sudo aa-enforce guix || true
|
||||
sudo apt purge apparmor
|
||||
- name: build
|
||||
run: SUBSTITUTE_URLS='http://bordeaux.guix.gnu.org' HOSTS="${{ matrix.toolchain.target }}" ./contrib/guix/guix-build
|
||||
run: ADDITIONAL_GUIX_TIMEMACHINE_FLAGS="--disable-authentication" SUBSTITUTE_URLS='http://bordeaux.guix.gnu.org' HOSTS="${{ matrix.toolchain.target }}" ./contrib/guix/guix-build
|
||||
- name: virustotal scan
|
||||
if: matrix.toolchain.target == 'x86_64-w64-mingw32'
|
||||
env:
|
||||
VT_API_KEY: ${{ secrets.VT_API_KEY }}
|
||||
if: ${{ matrix.toolchain.target == 'x86_64-w64-mingw32' && env.VT_API_KEY != '' }}
|
||||
uses: crazy-max/ghaction-virustotal@v4
|
||||
with:
|
||||
vt_api_key: ${{ secrets.VT_API_KEY }}
|
||||
files: |
|
||||
guix/guix-build-*/build/distsrc-*/build/bin/feather.exe
|
||||
- uses: actions/upload-artifact@v4
|
||||
id: upload-artifact
|
||||
with:
|
||||
name: ${{ matrix.toolchain.target }}
|
||||
path: |
|
||||
guix/guix-build-*/output/${{ matrix.toolchain.target }}/*
|
||||
guix/guix-build-*/logs/${{ matrix.toolchain.target }}/*
|
||||
- if: ${{ matrix.toolchain.target == 'x86_64-w64-mingw32.installer' }}
|
||||
id: win-installer
|
||||
run: echo "WIN_INSTALLER_ARTIFACT_ID=${{ steps.upload-artifact.outputs.artifact-id }}" >> "$GITHUB_OUTPUT"
|
||||
- if: ${{ matrix.toolchain.target == 'x86_64-w64-mingw32' }}
|
||||
id: win-executable
|
||||
run: echo "WIN_EXECUTABLE_ARTIFACT_ID=${{ steps.upload-artifact.outputs.artifact-id }}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
bundle-logs:
|
||||
runs-on: ubuntu-24.04
|
||||
|
@ -89,9 +114,45 @@ jobs:
|
|||
with:
|
||||
name: "logs"
|
||||
path: '**/logs/**'
|
||||
- uses: ncipollo/release-action@v1
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
|
||||
codesigning:
|
||||
runs-on: ubuntu-24.04
|
||||
needs: [build-guix, bundle-logs]
|
||||
if: startsWith(github.ref, 'refs/tags/') && contains(github.ref, '-rc')
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
toolchain:
|
||||
- target: "x86_64-w64-mingw32"
|
||||
- target: "x86_64-w64-mingw32.installer"
|
||||
steps:
|
||||
- name: install dependencies
|
||||
run: sudo apt update; sudo apt -y install osslsigncode
|
||||
- name: "set artifact id"
|
||||
run: |
|
||||
if [ "${{ matrix.toolchain.target }}" == "x86_64-w64-mingw32" ]; then
|
||||
echo "ARTIFACT_ID=${{ needs.build-guix.outputs.WIN_EXECUTABLE_ARTIFACT_ID }}" >> $GITHUB_ENV
|
||||
echo "ARTIFACT_SLUG=executable" >> $GITHUB_ENV
|
||||
elif [ "${{ matrix.toolchain.target }}" == "x86_64-w64-mingw32.installer" ]; then
|
||||
echo "ARTIFACT_ID=${{ needs.build-guix.outputs.WIN_INSTALLER_ARTIFACT_ID }}" >> $GITHUB_ENV
|
||||
echo "ARTIFACT_SLUG=installer" >> $GITHUB_ENV
|
||||
fi
|
||||
- uses: signpath/github-action-submit-signing-request@v1
|
||||
name: "request signature"
|
||||
with:
|
||||
artifacts: "**/*.AppImage,**/*-linux-arm.zip,**/*-linux-arm64.zip,**/*-linux-riscv64.zip,**/*-linux.zip,**/*-mac-arm64.zip,**/*-mac.zip,**/*-win.zip,**/FeatherWalletSetup-*.exe,**/feather-{{github.ref_name}}.tar.gz"
|
||||
draft: true
|
||||
name: v${{github.ref_name}}
|
||||
api-token: '${{ secrets.SIGNPATH_API_KEY }}'
|
||||
organization-id: 'd3e94749-9c69-44e9-82de-c65cb3832869'
|
||||
project-slug: 'feather'
|
||||
signing-policy-slug: 'release-signing'
|
||||
artifact-configuration-slug: ${{ env.ARTIFACT_SLUG }}
|
||||
github-artifact-id: ${{ env.ARTIFACT_ID }}
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: codesigning/
|
||||
- name: "extract signature"
|
||||
run: osslsigncode extract-signature -in codesigning/guix-build-*/output/${{ matrix.toolchain.target }}/*.exe -out codesigning/${{ matrix.toolchain.target }}.pem
|
||||
- uses: actions/upload-artifact@v4
|
||||
name: "upload signature"
|
||||
with:
|
||||
name: ${{ matrix.toolchain.target }}.pem
|
||||
path: |
|
||||
codesigning/${{ matrix.toolchain.target }}.pem
|
||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -12,7 +12,6 @@ CMakeFiles
|
|||
cmake_install.cmake
|
||||
feather_autogen/
|
||||
feather.cbp
|
||||
src/config-feather.h
|
||||
src/assets_tor.qrc
|
||||
src/assets_docs.qrc
|
||||
feather.AppDir/*
|
||||
|
|
6
.gitmodules
vendored
6
.gitmodules
vendored
|
@ -7,3 +7,9 @@
|
|||
[submodule "external/feather-docs"]
|
||||
path = external/feather-docs
|
||||
url = https://github.com/feather-wallet/feather-docs.git
|
||||
[submodule "external/feather-sigs"]
|
||||
path = external/feather-sigs
|
||||
url = https://github.com/feather-wallet/feather-sigs.git
|
||||
[submodule "external/feather-codesigning"]
|
||||
path = external/feather-codesigning
|
||||
url = https://github.com/feather-wallet/feather-codesigning.git
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
cmake_minimum_required(VERSION 3.18)
|
||||
|
||||
project(feather
|
||||
VERSION "2.7.0"
|
||||
VERSION "2.8.0"
|
||||
DESCRIPTION "A free Monero desktop wallet"
|
||||
LANGUAGES CXX C ASM
|
||||
)
|
||||
|
@ -12,7 +12,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|||
set(PACKAGE_NAME ${PROJECT_NAME})
|
||||
set(PACKAGE_BUGREPORT "https://github.com/feather-wallet/feather/issues")
|
||||
set(PACKAGE_URL "https://featherwallet.org/")
|
||||
set(COPYRIGHT_YEAR "2024")
|
||||
set(COPYRIGHT_YEAR "2025")
|
||||
set(COPYRIGHT_HOLDERS "The Monero Project")
|
||||
|
||||
cmake_policy(SET CMP0074 NEW)
|
||||
|
@ -28,6 +28,9 @@ option(DONATE_BEG "Prompt donation window every once in a while" OFF)
|
|||
option(WITH_SCANNER "Enable webcam QR scanner" ON)
|
||||
option(STACK_TRACE "Dump stack trace on crash (Linux only)" OFF)
|
||||
|
||||
# internal configuration options
|
||||
option(TOR_INSTALLED "Is Tor installed on the filesystem?" OFF)
|
||||
|
||||
# Plugins
|
||||
option(WITH_PLUGIN_HOME "Include Home tab plugin" ON)
|
||||
option(WITH_PLUGIN_TICKERS "Include Tickers Home plugin" ON)
|
||||
|
@ -64,7 +67,6 @@ if(STATIC)
|
|||
endif()
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
include(VersionFeather)
|
||||
|
||||
#### Dependencies ####
|
||||
# Monero
|
||||
|
@ -79,13 +81,6 @@ get_directory_property(OPENBSD DIRECTORY "monero" DEFINITION OPENBSD)
|
|||
get_directory_property(FREEBSD DIRECTORY "monero" DEFINITION FREEBSD)
|
||||
get_directory_property(DRAGONFLY DIRECTORY "monero" DEFINITION DRAGONFLY)
|
||||
|
||||
# libXau
|
||||
# workaround for: undefined reference to `XauGetBestAuthByAddr'
|
||||
if (DEPENDS AND UNIX AND NOT APPLE)
|
||||
find_library(LIBXAU_LIBRARY Xau)
|
||||
message(STATUS "libXau: libraries at ${LIBXAU_LIBRARY}")
|
||||
endif()
|
||||
|
||||
# pthread
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
|
@ -153,7 +148,6 @@ if(TOR_DIR)
|
|||
endif()
|
||||
|
||||
message(STATUS "Embedded Tor version: ${TOR_VERSION}")
|
||||
configure_file("cmake/config-feather.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-feather.h")
|
||||
|
||||
# Always copy Tor when doing a reproducible build to prevent old versions from getting included
|
||||
if (REPRODUCIBLE)
|
||||
|
@ -231,7 +225,7 @@ endif()
|
|||
|
||||
# linker
|
||||
if (APPLE)
|
||||
add_linker_flag_if_supported(-Wl,-bind_at_load LD_SECURITY_FLAGS)
|
||||
add_linker_flag_if_supported(-Wl,-fixup_chains LD_SECURITY_FLAGS)
|
||||
add_linker_flag_if_supported(-Wl,-dead_strip LD_SECURITY_FLAGS)
|
||||
add_linker_flag_if_supported(-Wl,-dead_strip_dylibs LD_SECURITY_FLAGS)
|
||||
endif()
|
||||
|
|
21
HACKING.md
21
HACKING.md
|
@ -11,24 +11,33 @@ We support development on rolling release distributions and the latest version o
|
|||
#### Arch Linux
|
||||
|
||||
```bash
|
||||
pacman -S git cmake base-devel ccache unbound boost qrencode qt6-base qt6-svg qt6-websockets qt6-multimedia libzip hidapi protobuf zxing-cpp
|
||||
pacman -S git cmake base-devel ccache unbound boost qrencode qt6-base qt6-svg qt6-websockets qt6-wayland qt6-multimedia libzip hidapi protobuf zxing-cpp
|
||||
```
|
||||
|
||||
#### Ubuntu 24.04
|
||||
|
||||
```bash
|
||||
apt update
|
||||
apt install git cmake build-essential ccache libssl-dev libunbound-dev libboost-all-dev libqrencode-dev \
|
||||
qt6-base-dev qt6-multimedia-dev libgl1-mesa-dev libqt6svg6-dev libqt6websockets6-dev libzip-dev libsodium-dev libgcrypt-dev \
|
||||
libx11-xcb-dev libprotobuf-dev protobuf-compiler libhidapi-dev libzxing-dev
|
||||
apt install git cmake build-essential ccache libssl-dev libunbound-dev libboost-all-dev \
|
||||
libqrencode-dev qt6-base-dev qt6-svg-dev qt6-websockets-dev qt6-multimedia-dev \
|
||||
qt6-wayland-dev libzip-dev libsodium-dev libgcrypt20-dev libx11-xcb-dev \
|
||||
libprotobuf-dev libhidapi-dev libzxing-dev libusb-1.0-0-dev
|
||||
```
|
||||
|
||||
#### Rhel 9 / Alma / Rocky
|
||||
|
||||
```bash
|
||||
sudo dnf install epel-release -y
|
||||
sudo dnf groupinstall "Development Tools" -y
|
||||
sudo dnf install unbound-devel boost-devel qrencode-devel zxing-cpp-devel qt6-qtbase-devel qt6-qtsvg-devel qt6-qtwebsockets-devel qt6-qtmultimedia-devel qt6-qtwayland-devel libsodium-devel
|
||||
```
|
||||
|
||||
#### Void Linux
|
||||
|
||||
```bash
|
||||
xbps-install -S base-devel cmake boost-devel openssl-devel unbound-devel libsodium-devel zlib-devel qt6-base-devel \
|
||||
qt6-svg-devel qt6-websockets-devel qt6-multimedia-devel libgcrypt-devel libzip-devel hidapi-devel protobuf \
|
||||
protobuf-devel qrencode-devel zxing-cpp-devel
|
||||
qt6-svg-devel qt6-websockets-devel qt6-multimedia-devel qt6-wayland-devel libgcrypt-devel libzip-devel \
|
||||
hidapi-devel protobuf protobuf-devel qrencode-devel zxing-cpp-devel
|
||||
```
|
||||
|
||||
#### macOS
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2020-2024, The Monero Project
|
||||
Copyright (c) 2020-2025, The Monero Project
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
|
|
@ -28,7 +28,19 @@ Goals:
|
|||
|
||||
Security issues that affect Feather always warrant a new release as soon as possible.
|
||||
|
||||
### 2. Reproducibility
|
||||
### 2. Continuity
|
||||
|
||||
- Keep the website and services online
|
||||
- Keep source repositories accessible
|
||||
- Make sure that running release builds is easy to set up and reproducible in time
|
||||
|
||||
Goals:
|
||||
|
||||
- Make sure the project is transmissible
|
||||
- Make sure that setting up release infrastructure, release engineering, and maintenance are extensively documented
|
||||
- Make the websocket server repository public
|
||||
|
||||
### 3. Reproducibility
|
||||
|
||||
- Improve and maintain tools to check for non-determinism
|
||||
- Ensure releases are reproducible and stay that way
|
||||
|
@ -40,32 +52,32 @@ To learn more about Feather's build system, see: [`contrib/guix/README.md`](http
|
|||
Our Guix time-machine is currently pinned at a commit which implements the
|
||||
[Full-Source Bootstrap](https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/).
|
||||
|
||||
### 3. Bugs
|
||||
### 4. Bugs
|
||||
|
||||
- Fix bugs and crashes
|
||||
|
||||
To report a bug, please see: https://docs.featherwallet.org/guides/report-an-issue
|
||||
|
||||
### 4. Tests
|
||||
### 5. Tests
|
||||
|
||||
- Improve test coverage
|
||||
- Write more test cases
|
||||
|
||||
Feather does not currently have a test suite (apart from the tests in the Monero submodule), this is a WIP.
|
||||
|
||||
### 5. Documentation
|
||||
### 6. Documentation
|
||||
|
||||
- Make sure the documentation accurately reflects the latest release
|
||||
- Add troubleshooting guides for common problems
|
||||
- Ideally, most support questions can be answered with a link to the documentation
|
||||
|
||||
Goals:
|
||||
- Most support questions can be answered with a link to the documentation
|
||||
- Reconsider and document default settings
|
||||
- Write a document on threat modeling
|
||||
|
||||
Documentation is available at https://docs.featherwallet.org
|
||||
|
||||
### 6. Improvements
|
||||
### 7. Improvements
|
||||
|
||||
- Improve existing features
|
||||
- Improve UI/UX
|
||||
|
@ -73,7 +85,7 @@ Documentation is available at https://docs.featherwallet.org
|
|||
Feather should first and foremost be a good __wallet__.
|
||||
Improving features that are closer to this end should have priority.
|
||||
|
||||
### 7. Platform Support
|
||||
### 8. Platform Support
|
||||
|
||||
- Add support for more architectures and operating systems
|
||||
- Drop support for End-of-Life distributions
|
||||
|
@ -81,7 +93,7 @@ Improving features that are closer to this end should have priority.
|
|||
|
||||
See: https://docs.featherwallet.org/guides/supported-operating-systems
|
||||
|
||||
### 8. Optimization, cleanup and continuity
|
||||
### 9. Optimization
|
||||
|
||||
Miscellaneous maintenance tasks.
|
||||
|
||||
|
@ -99,9 +111,9 @@ Miscellaneous maintenance tasks.
|
|||
|
||||
Goals:
|
||||
|
||||
- Make sure Feather is ready for the migration to [Seraphis](https://github.com/seraphis-migration/wallet3)
|
||||
- Make sure Feather is ready for the migration to [FCMP++](https://www.getmonero.org/2024/04/27/fcmps.html)
|
||||
|
||||
### 9. Features
|
||||
### 10. Features
|
||||
|
||||
- Implement new features
|
||||
- Allow Feather to be used or configured for higher, esoteric or new threat models
|
||||
|
@ -113,7 +125,7 @@ compared to its expected maintenance and support burden.
|
|||
|
||||
For a non-exhaustive list of potentially new features, see: https://featherwallet.org/ideas
|
||||
|
||||
### 10. Upstreaming
|
||||
### 11. Upstreaming
|
||||
|
||||
- Upstream tried and tested features, bugfixes and useful patches
|
||||
- Bugfixes should be upstreamed without delay
|
||||
|
|
16
Makefile
Normal file
16
Makefile
Normal file
|
@ -0,0 +1,16 @@
|
|||
build:
|
||||
@./contrib/guix/guix-build
|
||||
|
||||
attest:
|
||||
@./contrib/guix/guix-attest
|
||||
|
||||
verify:
|
||||
@./contrib/guix/guix-verify
|
||||
|
||||
clean:
|
||||
@./contrib/guix/guix-clean
|
||||
|
||||
DEFAULT_GOAL := default
|
||||
default: build
|
||||
|
||||
.PHONY: default build attest verify clean
|
|
@ -11,15 +11,15 @@ Feather is a free Monero desktop wallet for Linux, Tails, macOS and Windows. It
|
|||
|
||||
You can download Feather from **[featherwallet.org](https://featherwallet.org/download/)** or **[GitHub](https://github.com/feather-wallet/feather/releases)**.
|
||||
|
||||
If you need help installing installing Feather, check the [installation documentation](https://docs.featherwallet.org/).
|
||||
If you need help installing Feather, check the [installation documentation](https://docs.featherwallet.org/).
|
||||
|
||||
Releases are signed with our [release signing key](https://docs.featherwallet.org/guides/release-signing-key). The fingerprint is:
|
||||
We recommend that you verify downloads with GPG. Releases are signed with our [release signing key](https://docs.featherwallet.org/guides/release-signing-key). The fingerprint is:
|
||||
|
||||
```
|
||||
8185 E158 A333 30C7 FD61 BC0D 1F76 E155 CEFB A71C
|
||||
```
|
||||
|
||||
We recommend that you verify downloads with GPG.
|
||||
Windows releases are code-signed for free by [SignPath.io](https://about.signpath.io/), certificate by [SignPath Foundation](https://signpath.org/).
|
||||
|
||||
## Resources
|
||||
|
||||
|
@ -65,4 +65,4 @@ Donations help pay for hosting, build servers, domain names, e-mail and other re
|
|||
|
||||
Feather is free and open-source software, [licensed under BSD-3](https://raw.githubusercontent.com/feather-wallet/feather/master/LICENSE).
|
||||
|
||||
Copyright (c) 2020-2024, The Monero Project
|
||||
Copyright (c) 2020-2025, The Monero Project
|
||||
|
|
|
@ -35,6 +35,7 @@ Clarifications on scope:
|
|||
- Any form of coercion, physical or psychological, is out of scope.
|
||||
- Vulnerabilities that are attributable to hardware are out of scope.
|
||||
- If the issue was fixed in the `master` branch before we receive your report, it is invalid and not eligible for a bounty from this program.
|
||||
- If the vulnerability involves binary exploitation, we may ask you to provide a proof of concept of secret key exfiltration.
|
||||
- Vulnerabilities that are present in the monero submodule but were not introduced in patches made by the Feather developers must
|
||||
be reported [upstream](https://github.com/monero-project/meta/blob/master/VULNERABILITY_RESPONSE_PROCESS.md) and are not eligible for a bounty from this program.
|
||||
- Vulnerabilities that are present in any of our third-party dependencies must be reported upstream and are not eligible for a bounty from this program.
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
# Copyright (c) 2014-2019, The Monero Project
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification, are
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
# conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
# of conditions and the following disclaimer in the documentation and/or other
|
||||
# materials provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software without specific
|
||||
# prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
||||
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
|
||||
# Check what commit we're on
|
||||
execute_process(COMMAND "${GIT}" rev-parse --short=9 HEAD RESULT_VARIABLE RET OUTPUT_VARIABLE COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(RET)
|
||||
# Something went wrong, set the version tag to -unknown
|
||||
|
||||
message(WARNING "Cannot determine current commit. Make sure that you are building either from a Git working tree or from a source archive.")
|
||||
set(VERSIONTAG "unknown")
|
||||
set(VERSION_IS_RELEASE "false")
|
||||
configure_file("monero/src/version.cpp.in" "${TO}")
|
||||
else()
|
||||
string(SUBSTRING ${COMMIT} 0 9 COMMIT)
|
||||
message(STATUS "You are currently on commit ${COMMIT}")
|
||||
|
||||
# Get all the tags
|
||||
execute_process(COMMAND "${GIT}" rev-list --tags --max-count=1 --abbrev-commit RESULT_VARIABLE RET OUTPUT_VARIABLE TAGGEDCOMMIT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if(NOT TAGGEDCOMMIT)
|
||||
message(WARNING "Cannot determine most recent tag. Make sure that you are building either from a Git working tree or from a source archive.")
|
||||
set(VERSIONTAG "${COMMIT}")
|
||||
set(VERSION_IS_RELEASE "false")
|
||||
else()
|
||||
message(STATUS "The most recent tag was at ${TAGGEDCOMMIT}")
|
||||
|
||||
# Check if we're building that tagged commit or a different one
|
||||
if(COMMIT STREQUAL TAGGEDCOMMIT)
|
||||
message(STATUS "You are building a tagged release")
|
||||
set(VERSIONTAG "release")
|
||||
set(VERSION_IS_RELEASE "true")
|
||||
else()
|
||||
message(STATUS "You are ahead of or behind a tagged release")
|
||||
set(VERSIONTAG "${COMMIT}")
|
||||
set(VERSION_IS_RELEASE "false")
|
||||
endif()
|
||||
endif()
|
||||
configure_file("monero/src/version.cpp.in" "${TO}")
|
||||
endif()
|
|
@ -1,3 +1,5 @@
|
|||
set(QRC_LIST)
|
||||
|
||||
if (TOR_DIR)
|
||||
FILE(GLOB TOR_FILES LIST_DIRECTORIES false ${TOR_DIR}/*)
|
||||
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
# Copyright (c) 2014-2017, The Monero Project
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification, are
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
# conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
# of conditions and the following disclaimer in the documentation and/or other
|
||||
# materials provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software without specific
|
||||
# prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
||||
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
function (write_static_version_header hash)
|
||||
set(VERSIONTAG "${hash}")
|
||||
configure_file("${CMAKE_SOURCE_DIR}/monero/src/version.cpp.in" "${CMAKE_BINARY_DIR}/version.cpp")
|
||||
endfunction ()
|
||||
|
||||
find_package(Git QUIET)
|
||||
if ("$Format:$" STREQUAL "")
|
||||
# We're in a tarball; use hard-coded variables.
|
||||
write_static_version_header("release")
|
||||
elseif (GIT_FOUND OR Git_FOUND)
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/version.cpp"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
"-D" "GIT=${GIT_EXECUTABLE}"
|
||||
"-D" "TO=${CMAKE_BINARY_DIR}/version.cpp"
|
||||
"-P" "cmake/GenVersion.cmake"
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
|
||||
|
||||
else()
|
||||
message(STATUS "WARNING: Git was not found!")
|
||||
write_static_version_header("unknown")
|
||||
endif ()
|
||||
add_custom_target(genversion ALL
|
||||
DEPENDS "${CMAKE_BINARY_DIR}/version.cpp")
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# SPDX-FileCopyrightText: 2020-2023 The Monero Project
|
||||
|
||||
find_package(Git QUIET)
|
||||
|
||||
# Sets FEATHER_COMMIT to the first 9 chars of the current commit hash.
|
||||
|
||||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/githash.txt")
|
||||
# This file added in source archives where the .git folder has been removed to optimize for space.
|
||||
file(READ "githash.txt" COMMIT)
|
||||
string(SUBSTRING ${COMMIT} 0 9 COMMIT)
|
||||
message(STATUS "You are currently on commit ${COMMIT}")
|
||||
set(FEATHER_COMMIT "${COMMIT}")
|
||||
else()
|
||||
execute_process(COMMAND "${GIT_EXECUTABLE}" rev-parse --short=9 HEAD RESULT_VARIABLE RET OUTPUT_VARIABLE COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if(RET)
|
||||
message(WARNING "Cannot determine current commit. Make sure that you are building either from a Git working tree or from a source archive.")
|
||||
set(FEATHER_COMMIT "unknown")
|
||||
else()
|
||||
string(SUBSTRING ${COMMIT} 0 9 COMMIT)
|
||||
message(STATUS "You are currently on commit ${COMMIT}")
|
||||
set(FEATHER_COMMIT "${COMMIT}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
configure_file("cmake/config-feather.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-feather.h")
|
|
@ -1,11 +0,0 @@
|
|||
#ifndef FEATHER_VERSION_H
|
||||
#define FEATHER_VERSION_H
|
||||
|
||||
#define FEATHER_VERSION "@PROJECT_VERSION@"
|
||||
#define FEATHER_COMMIT "@FEATHER_COMMIT@"
|
||||
|
||||
#define TOR_VERSION "@TOR_VERSION@"
|
||||
|
||||
#define FEATHER_TARGET_TRIPLET "@FEATHER_TARGET_TRIPLET@"
|
||||
|
||||
#endif //FEATHER_VERSION_H
|
|
@ -1,36 +1,27 @@
|
|||
OSX_MIN_VERSION=10.14
|
||||
OSX_MIN_VERSION=11.0
|
||||
OSX_SDK_VERSION=11.0
|
||||
XCODE_VERSION=12.2
|
||||
XCODE_BUILD_ID=12B45b
|
||||
LD64_VERSION=609
|
||||
LD64_VERSION=711
|
||||
|
||||
OSX_SDK=$(host_prefix)/native/SDK
|
||||
|
||||
darwin_native_binutils=native_cctools
|
||||
|
||||
darwin_native_toolchain=darwin_sdk
|
||||
|
||||
# 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)
|
||||
clang_prog=clang
|
||||
clangxx_prog=clang++
|
||||
llvm_config_prog=llvm-config
|
||||
|
||||
cctools_TOOLS=AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL DSYMUTIL
|
||||
llvm_lib_dir=$(shell $(llvm_config_prog) --libdir)
|
||||
|
||||
# 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))))
|
||||
darwin_AR=llvm-ar
|
||||
darwin_DSYMUTIL=dsymutil
|
||||
darwin_NM=llvm-nm
|
||||
darwin_OBJDUMP=llvm-objdump
|
||||
darwin_RANLIB=llvm-ranlib
|
||||
darwin_STRIP=llvm-strip
|
||||
darwin_LIBTOOL=llvm-libtool-darwin
|
||||
|
||||
# Flag explanations:
|
||||
#
|
||||
|
@ -55,9 +46,7 @@ $(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(
|
|||
# Adds the desired paths from the SDK
|
||||
#
|
||||
|
||||
darwin_CC_=--target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \
|
||||
-B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \
|
||||
-isysroot$(OSX_SDK) \
|
||||
darwin_CC_=--target=$(host) \
|
||||
-isysroot$(OSX_SDK) -nostdlibinc \
|
||||
-iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks
|
||||
darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
|
||||
|
@ -65,18 +54,18 @@ darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
|
|||
-u LIBRARY_PATH \
|
||||
$(clang_prog) $(darwin_CC_)
|
||||
|
||||
darwin_CXX_=--target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \
|
||||
-B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \
|
||||
-isysroot$(OSX_SDK) -nostdlibinc \
|
||||
-iwithsysroot/usr/include/c++/v1 \
|
||||
-iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks
|
||||
darwin_CXX_=--target=$(host) \
|
||||
-isysroot$(OSX_SDK) -nostdlibinc \
|
||||
-iwithsysroot/usr/include/c++/v1 \
|
||||
-iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks
|
||||
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) $(darwin_CXX_)
|
||||
|
||||
darwin_CFLAGS=-pipe
|
||||
darwin_CXXFLAGS=-pipe -std=$(CXX_STANDARD)
|
||||
darwin_CFLAGS=-pipe -mmacosx-version-min=$(OSX_MIN_VERSION) -mlinker-version=$(LD64_VERSION)
|
||||
darwin_CXXFLAGS=-pipe -mmacosx-version-min=$(OSX_MIN_VERSION) -mlinker-version=$(LD64_VERSION)
|
||||
darwin_LDFLAGS=-Wl,-platform_version,macos,$(OSX_MIN_VERSION),$(OSX_SDK_VERSION) -fuse-ld=lld
|
||||
darwin_ARFLAGS=cr
|
||||
|
||||
darwin_release_CFLAGS=-O2
|
||||
|
|
|
@ -11,7 +11,8 @@ define $(package)_set_vars
|
|||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/no_librt.patch
|
||||
patch -p1 -i $($(package)_patch_dir)/no_librt.patch && \
|
||||
rm -rf absl/time/internal/cctz/testdata
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package=appimage_runtime
|
||||
$(package)_version=c9553b05938b22849ac3255ac923bf8e775ce539
|
||||
$(package)_version=f6c0b18d42eb4aa629cc6a18d08c20cc67c80af8
|
||||
$(package)_download_path=https://github.com/AppImage/type2-runtime/archive/
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=4a27451013b571cf9f5a13660719d091cc79f2344aafa2e48578ddc0e4618af1
|
||||
$(package)_sha256_hash=746c2110049c4092dab9d8b788e2a9e98ec77ff9b8b09be844fce1dcdeb4c328
|
||||
$(package)_dependencies=libsquashfuse zstd
|
||||
$(package)_patches=depends-fix.patch
|
||||
|
||||
|
@ -13,11 +13,11 @@ endef
|
|||
define $(package)_build_cmds
|
||||
cd src/runtime && \
|
||||
export host_prefix="$(host_prefix)" && \
|
||||
$(MAKE) runtime-fuse3 -e CC=$($(package)_cc) LDLAGS="$($(package)_ldflags)" && \
|
||||
"${HOST}-strip" runtime-fuse3
|
||||
$(MAKE) runtime -e CC=$($(package)_cc) LDLAGS="$($(package)_ldflags)" && \
|
||||
"${HOST}-strip" runtime
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
cd src/runtime && \
|
||||
cp -a runtime-fuse3 $($(package)_staging_prefix_dir)/runtime
|
||||
endef
|
||||
cp -a runtime $($(package)_staging_prefix_dir)/runtime
|
||||
endef
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package=boost
|
||||
$(package)_version=1.85.0
|
||||
$(package)_download_path=https://boostorg.jfrog.io/artifactory/main/release/$($(package)_version)/source/
|
||||
$(package)_download_path=https://archives.boost.io/release/$($(package)_version)/source/
|
||||
$(package)_file_name=$(package)_$(subst .,_,$($(package)_version)).tar.gz
|
||||
$(package)_sha256_hash=be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b
|
||||
$(package)_patches=disable_addr2line.patch
|
||||
$(package)_patches=disable_addr2line.patch filesystem_macos_sdk.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=variant=release
|
||||
|
@ -29,6 +29,7 @@ endef
|
|||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/disable_addr2line.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/filesystem_macos_sdk.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
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package=darwin_sdk
|
||||
$(package)_version=12.2
|
||||
$(package)_download_path=https://featherwallet.org/files/sources/
|
||||
$(package)_file_name=Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz
|
||||
$(package)_sha256_hash=332477876917786b26dd7c3fc1665d2c5cdca81c72755e6a9754f308de77d33b
|
||||
$(package)_version=15.0
|
||||
$(package)_download_path=https://bitcoincore.org/depends-sources/sdks
|
||||
$(package)_file_name=Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz
|
||||
$(package)_sha256_hash=c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d
|
||||
|
||||
define $(package)_stage_cmds
|
||||
mkdir -p $($(package)_staging_dir)/$(host_prefix)/native/SDK &&\
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
package=eudev
|
||||
$(package)_version=3.2.14
|
||||
$(package)_download_path=https://github.com/eudev-project/eudev/releases/download/v$($(package)_version)/
|
||||
$(package)_file_name=eudev-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f
|
||||
|
||||
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
|
|
@ -1,8 +1,8 @@
|
|||
package=expat
|
||||
$(package)_version=2.6.3
|
||||
$(package)_version=2.7.0
|
||||
$(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$($(package)_version))/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=17aa6cfc5c4c219c09287abfc10bc13f0c06f30bb654b28bfe6f567ca646eb79
|
||||
$(package)_sha256_hash=362e89ca6b8a0d46fc5740a917eb2a8b4d6356edbe016eee09f49c0781215844
|
||||
$(package)_build_subdir=build
|
||||
|
||||
define $(package)_set_vars
|
||||
|
|
|
@ -3,12 +3,17 @@ $(package)_version=a148fb86c30968eeb30dc6ac3384ad2a16690520
|
|||
$(package)_download_path=https://github.com/tobtoht/ln-guix-store/archive/
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=e9694fcda4f9fcb00374da7a439b881296c0ce67ea98ca44bf2830d1a364365b
|
||||
$(package)_patches=main.c main.S
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $($(package)_patch_dir)/main.c $($(package)_patch_dir)/main.S .
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
zig build-exe ln-guix-store.zig -target x86_64-linux-none -OReleaseSmall
|
||||
$($(package)_cc) -nostdlib -fno-unwind-tables -fno-asynchronous-unwind-tables -fdata-sections -Wl,--gc-sections -Wa,--noexecstack -fno-builtin -fno-stack-protector -static -o startup main.c main.S
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
mkdir -p $($(package)_staging_prefix_dir)/bin && \
|
||||
cp ln-guix-store $($(package)_staging_prefix_dir)/bin/startup
|
||||
cp startup $($(package)_staging_prefix_dir)/bin/
|
||||
endef
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package=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)_file_name=fontconfig-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=064b9ebf060c9e77011733ac9dc0e2ce92870b574cca2405e11f5353a683c334
|
||||
$(package)_dependencies=freetype expat
|
||||
$(package)_patches=gperf_header_regen.patch
|
||||
|
||||
|
|
|
@ -3,10 +3,16 @@ $(package)_version=0.14.0
|
|||
$(package)_download_path=https://github.com/libusb/hidapi/archive/refs/tags
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=a5714234abe6e1f53647dd8cba7d69f65f71c558b7896ed218864ffcf405bcbd
|
||||
$(package)_linux_dependencies=libusb eudev
|
||||
$(package)_linux_dependencies=libusb
|
||||
$(package)_patches=cmake-fix-libusb.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts+=-DBUILD_SHARED_LIBS=OFF
|
||||
$(package)_config_opts := -DBUILD_SHARED_LIBS=OFF
|
||||
$(package)_config_opts += -DHIDAPI_WITH_HIDRAW=OFF
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/cmake-fix-libusb.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
|
|
@ -1,34 +1,37 @@
|
|||
package=libXau
|
||||
$(package)_version=1.0.11
|
||||
$(package)_version=1.0.12
|
||||
$(package)_download_path=https://xorg.freedesktop.org/releases/individual/lib/
|
||||
$(package)_file_name=libXau-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=f3fa3282f5570c3f6bd620244438dbfbdd580fc80f02f549587a0f8ab329bbeb
|
||||
$(package)_file_name=libXau-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=2402dd938da4d0a332349ab3d3586606175e19cb32cb9fe013c19f1dc922dcee
|
||||
$(package)_dependencies=xorgproto
|
||||
|
||||
# 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
|
||||
$(package)_patches=toolchain.txt
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
rm Makefile.in aclocal.m4 compile config.guess config.h.in config.sub configure depcomp \
|
||||
install-sh ltmain.sh missing test-driver man/Makefile.in && \
|
||||
rm -rf m4 && \
|
||||
cp $($(package)_patch_dir)/toolchain.txt toolchain.txt && \
|
||||
sed -i -e 's|@host_prefix@|$(host_prefix)|' \
|
||||
-e 's|@cc@|$($(package)_cc)|' \
|
||||
-e 's|@cxx@|$($(package)_cxx)|' \
|
||||
-e 's|@ar@|$($(package)_ar)|' \
|
||||
-e 's|@strip@|$(host_STRIP)|' \
|
||||
-e 's|@arch@|$(host_arch)|' \
|
||||
toolchain.txt
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
meson setup --cross-file toolchain.txt build
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
ninja -C build
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
DESTDIR=$($(package)_staging_dir) ninja -C build install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share lib/*.la
|
||||
sed -i 's/Requires: xproto//g' lib/pkgconfig/xau.pc
|
||||
endef
|
||||
|
|
27
contrib/depends/packages/libffi.mk
Normal file
27
contrib/depends/packages/libffi.mk
Normal file
|
@ -0,0 +1,27 @@
|
|||
package=libffi
|
||||
$(package)_version=3.4.7
|
||||
$(package)_download_path := https://github.com/libffi/$(package)/releases/download/v$($(package)_version)
|
||||
$(package)_file_name := libffi-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash := 138607dee268bdecf374adf9144c00e839e38541f75f24a1fcf18b78fda48b2d
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts := --enable-option-checking --disable-dependency-tracking
|
||||
$(package)_config_opts += --disable-shared --enable-static --disable-docs
|
||||
$(package)_config_opts += --disable-multi-os-directory
|
||||
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
|
|
@ -4,17 +4,19 @@ $(package)_download_path=https://www.gnupg.org/ftp/gcrypt/libgcrypt/
|
|||
$(package)_file_name=libgcrypt-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=2382891207d3b000b20c81dbf2036516a535d31abd80f57d455e711e1dde5ff5
|
||||
$(package)_dependencies=libgpg-error
|
||||
$(package)_patches=no-programs.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_build_opts=CFLAGS="-fPIE"
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/no-programs.patch && \
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf) --disable-shared --enable-static --disable-doc --disable-asm --with-libgpg-error-prefix=$(host_prefix)
|
||||
$($(package)_autoconf) --disable-shared --enable-static --disable-tests --disable-doc --disable-asm --with-libgpg-error-prefix=$(host_prefix)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
|
|
|
@ -3,7 +3,7 @@ $(package)_version=1.50
|
|||
$(package)_download_path=https://www.gnupg.org/ftp/gcrypt/libgpg-error/
|
||||
$(package)_file_name=libgpg-error-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=34a3b36ec8ad830f8f3ceb5db583d1f6dc8ae4c31d04f6da18ea18dd95396ab0
|
||||
$(package)_patches=declare_environ_macos.patch
|
||||
$(package)_patches=declare_environ_macos.patch no-programs.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts := --enable-static --disable-shared
|
||||
|
@ -14,6 +14,7 @@ endef
|
|||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/declare_environ_macos.patch && \
|
||||
patch -p1 < $($(package)_patch_dir)/no-programs.patch && \
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux
|
||||
endef
|
||||
|
||||
|
|
|
@ -13,8 +13,7 @@ endef
|
|||
define $(package)_preprocess_cmds
|
||||
rm -rf builds/msvc &&\
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux/ && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-blake2b-symbol-naming.patch && \
|
||||
autoconf
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-blake2b-symbol-naming.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
package=libsquashfuse
|
||||
$(package)_version=e51978cd6bb5c4d16fae9eee43d0b258f570bb0f
|
||||
$(package)_download_path=https://github.com/vasi/squashfuse/archive/
|
||||
$(package)_file_name=$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=f544029ad30d8fbde4e4540c574b8cdc6d38b94df025a98d8551a9441f07d341
|
||||
$(package)_version=0.5.2
|
||||
$(package)_download_path=https://github.com/vasi/squashfuse/releases/download/$($(package)_version)
|
||||
$(package)_file_name=squashfuse-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=54e4baaa20796e86a214a1f62bab07c7c361fb7a598375576d585712691178f5
|
||||
$(package)_dependencies=libfuse zstd
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
./autogen.sh
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf) --with-zstd=$(host_prefix) --without-zlib CFLAGS=-no-pie LDFLAGS=-static
|
||||
endef
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
package=libusb
|
||||
$(package)_version=1.0.27
|
||||
$(package)_download_path=https://github.com/libusb/libusb/releases/download/v$($(package)_version)
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575
|
||||
$(package)_download_path=https://github.com/libusb/libusb/archive/refs/tags
|
||||
$(package)_download_file=v$($(package)_version).tar.gz
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=e8f18a7a36ecbb11fb820bd71540350d8f61bcd9db0d2e8c18a6fb80b214a3de
|
||||
$(package)_patches=CMakeLists.txt config.h.in
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub . && \
|
||||
autoreconf -i
|
||||
cp -f $($(package)_patch_dir)/CMakeLists.txt . && \
|
||||
cp -f $($(package)_patch_dir)/config.h.in .
|
||||
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
|
||||
$(package)_config_opts := -DBUILD_SHARED_LIBS=OFF
|
||||
$(package)_config_opts_linux += -DLIBUSB_ENABLE_UDEV=OFF
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
$($(package)_cmake) .
|
||||
endef
|
||||
|
||||
define $(package)_build_cmd
|
||||
|
@ -27,7 +27,3 @@ 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
|
||||
|
|
|
@ -20,10 +20,6 @@ $(package)_config_opts += --disable-xtest --disable-xv --disable-xvmc
|
|||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
find . -type f -name 'Makefile.in' -exec rm {} + && \
|
||||
rm -rf build-aux/* && \
|
||||
rm ChangeLog INSTALL aclocal.m4 configure m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4 src/config.h.in && \
|
||||
autoreconf -fi && \
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux && \
|
||||
patch -p1 -i $($(package)_patch_dir)/remove_pthread_stubs.patch
|
||||
endef
|
||||
|
|
|
@ -12,9 +12,9 @@ $(package)_config_opts+= --disable-dependency-tracking --enable-option-checking
|
|||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
rm -rf test && \
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub . && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-tests.patch && \
|
||||
autoreconf -i
|
||||
patch -p1 -i $($(package)_patch_dir)/no-tests.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package=libxkbcommon
|
||||
$(package)_version=1.7.0
|
||||
$(package)_download_path=https://xkbcommon.org/download/
|
||||
$(package)_file_name=libxkbcommon-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=65782f0a10a4b455af9c6baab7040e2f537520caa2ec2092805cdfd36863b247
|
||||
$(package)_version=1.8.1
|
||||
$(package)_download_path=https://github.com/xkbcommon/libxkbcommon/archive/refs/tags
|
||||
$(package)_file_name=xkbcommon-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=c65c668810db305c4454ba26a10b6d84a96b5469719fe3c729e1c6542b8d0d87
|
||||
$(package)_dependencies=libxcb
|
||||
$(package)_patches=no-test-x11.patch toolchain.txt
|
||||
|
||||
|
@ -19,7 +19,7 @@ define $(package)_preprocess_cmds
|
|||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
meson setup --cross-file toolchain.txt build
|
||||
meson setup --cross-file toolchain.txt build -Dxkb-config-root=/usr/share/X11/xkb -Dxkb-config-extra-path=/app/share/X11/xkb
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package=libzip
|
||||
$(package)_version=1.11.1
|
||||
$(package)_version=1.11.3
|
||||
$(package)_download_path=https://libzip.org/download/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=c0e6fa52a62ba11efd30262290dc6970947aef32e0cc294ee50e9005ceac092a
|
||||
$(package)_sha256_hash=76653f135dde3036036c500e11861648ffbf9e1fc5b233ff473c60897d9db0ea
|
||||
$(package)_dependencies=zlib
|
||||
|
||||
define $(package)_set_vars
|
||||
|
|
|
@ -1,14 +1,18 @@
|
|||
package=native_abseil
|
||||
$(package)_version=20240722.0
|
||||
$(package)_version=20250127.0
|
||||
$(package)_download_path=https://github.com/abseil/abseil-cpp/archive/refs/tags/
|
||||
$(package)_download_file=$($(package)_version).tar.gz
|
||||
$(package)_file_name=abseil-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3
|
||||
$(package)_sha256_hash=16242f394245627e508ec6bb296b433c90f8d914f73b9c026fddb905e27276e8
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_cmake)
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
rm -rf absl/time/internal/cctz/testdata
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
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
|
||||
$(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
|
30
contrib/depends/packages/native_expat.mk
Normal file
30
contrib/depends/packages/native_expat.mk
Normal file
|
@ -0,0 +1,30 @@
|
|||
package=native_expat
|
||||
$(package)_version=2.7.0
|
||||
$(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$($(package)_version))/
|
||||
$(package)_file_name=expat-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=362e89ca6b8a0d46fc5740a917eb2a8b4d6356edbe016eee09f49c0781215844
|
||||
$(package)_build_subdir=build
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts := -DEXPAT_BUILD_TOOLS=OFF
|
||||
$(package)_config_opts += -DEXPAT_BUILD_EXAMPLES=OFF
|
||||
$(package)_config_opts += -DEXPAT_BUILD_TESTS=OFF
|
||||
$(package)_config_opts += -DBUILD_SHARED_LIBS=OFF
|
||||
$(package)_config_opts += -DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_cmake) -S .. -B .
|
||||
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
|
||||
endef
|
27
contrib/depends/packages/native_libffi.mk
Normal file
27
contrib/depends/packages/native_libffi.mk
Normal file
|
@ -0,0 +1,27 @@
|
|||
package=native_libffi
|
||||
$(package)_version=3.4.7
|
||||
$(package)_download_path := https://github.com/libffi/libffi/releases/download/v$($(package)_version)
|
||||
$(package)_file_name := libffi-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash := 138607dee268bdecf374adf9144c00e839e38541f75f24a1fcf18b78fda48b2d
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts := --enable-option-checking --disable-dependency-tracking
|
||||
$(package)_config_opts += --enable-shared --disable-static --disable-docs
|
||||
$(package)_config_opts += --disable-multi-os-directory
|
||||
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
|
|
@ -1,20 +0,0 @@
|
|||
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
|
||||
$(package)_patches=no_embed_git_rev.patch
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/no_embed_git_rev.patch
|
||||
endef
|
||||
|
||||
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
|
|
@ -1,8 +1,8 @@
|
|||
package=native_protobuf
|
||||
$(package)_version=28.2
|
||||
$(package)_version=29.1
|
||||
$(package)_download_path=https://github.com/protocolbuffers/protobuf/releases/download/v$($(package)_version)
|
||||
$(package)_file_name=protobuf-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=b2340aa47faf7ef10a0328190319d3f3bee1b24f426d4ce8f4253b6f27ce16db
|
||||
$(package)_sha256_hash=3d32940e975c4ad9b8ba69640e78f5527075bae33ca2890275bf26b853c0962c
|
||||
$(package)_dependencies=native_abseil
|
||||
|
||||
define $(package)_set_vars
|
||||
|
@ -14,7 +14,7 @@ define $(package)_set_vars
|
|||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
rm -rf docs php/src/GPBMetadata compatibility objectivec/Tests csharp/keys php/tests src/google/protobuf/testdata csharp/src/Google.Protobuf.Test
|
||||
rm -rf examples docs php/src/GPBMetadata compatibility objectivec/Tests csharp/keys php/tests src/google/protobuf/testdata csharp/src/Google.Protobuf.Test
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
|
|
@ -1,33 +1,37 @@
|
|||
package=native_qt
|
||||
$(package)_version=6.7.3
|
||||
$(package)_download_path=https://download.qt.io/official_releases/qt/6.7/$($(package)_version)/submodules
|
||||
$(package)_version=6.9.0
|
||||
$(package)_download_path=https://download.qt.io/official_releases/qt/6.9/$($(package)_version)/submodules
|
||||
$(package)_suffix=everywhere-src-$($(package)_version).tar.xz
|
||||
$(package)_file_name=qtbase-$($(package)_suffix)
|
||||
$(package)_sha256_hash=8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097
|
||||
$(package)_sha256_hash=c1800c2ea835801af04a05d4a32321d79a93954ee3ae2172bbeacf13d1f0598c
|
||||
$(package)_linux_dependencies=native_wayland
|
||||
$(package)_qt_libs=corelib network widgets gui plugins testlib
|
||||
$(package)_patches = dont_hardcode_pwd.patch
|
||||
$(package)_patches += fast_fixed_dtoa_no_optimize.patch
|
||||
$(package)_patches = fast_fixed_dtoa_no_optimize.patch
|
||||
$(package)_patches += guix_cross_lib_path.patch
|
||||
$(package)_patches += qtbase-moc-ignore-gcc-macro.patch
|
||||
$(package)_patches += rcc_hardcode_timestamp.patch
|
||||
$(package)_patches += root_CMakeLists.txt
|
||||
|
||||
$(package)_qttools_file_name=qttools-$($(package)_suffix)
|
||||
$(package)_qttools_sha256_hash=f03bb7df619cd9ac9dba110e30b7bcab5dd88eb8bdc9cc752563b4367233203f
|
||||
$(package)_qttools_sha256_hash=fa645589cc3f939022401a926825972a44277dead8ec8607d9f2662e6529c9a4
|
||||
|
||||
$(package)_qtsvg_file_name=qtsvg-$($(package)_suffix)
|
||||
$(package)_qtsvg_sha256_hash=40142cb71fb1e07ad612bc361b67f5d54cd9367f9979ae6b86124a064deda06b
|
||||
$(package)_qtsvg_sha256_hash=ec359d930c95935ea48af58b100c2f5d0d275968ec8ca1e0e76629b7159215fc
|
||||
|
||||
$(package)_qtmultimedia_file_name=qtmultimedia-$($(package)_suffix)
|
||||
$(package)_qtmultimedia_sha256_hash=304d28b8e592435293893b0110d5f3534407604d1e04d8a0b0e5b34afe577303
|
||||
$(package)_qtmultimedia_sha256_hash=995c3b194f3de3e1929280639642f7661d94aa57523c459dbbf2f71dbdcaa18c
|
||||
|
||||
$(package)_qtshadertools_file_name=qtshadertools-$($(package)_suffix)
|
||||
$(package)_qtshadertools_sha256_hash=74e512798c7ddbda354a2d8d975211454bbabb47afb7e598892067a5828c0995
|
||||
$(package)_qtshadertools_sha256_hash=916c40281ac3dee23b163f6ca73fb5bdeee344838b9a922b6f36269642d6f4bb
|
||||
|
||||
$(package)_qtwayland_file_name=qtwayland-$($(package)_suffix)
|
||||
$(package)_qtwayland_sha256_hash=503416fcb04db503bd130e6a49c45e3e546f091e83406f774a0c703130c91805
|
||||
|
||||
$(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)
|
||||
$(package)_extra_sources += $($(package)_qtwayland_file_name)
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts_release = -release
|
||||
|
@ -101,6 +105,7 @@ $(package)_config_opts += -no-openssl
|
|||
$(package)_config_opts += -no-openvg
|
||||
$(package)_config_opts += -no-pch
|
||||
$(package)_config_opts += -no-reduce-relocations
|
||||
$(package)_config_opts += -no-sbom
|
||||
$(package)_config_opts += -no-schannel
|
||||
$(package)_config_opts += -no-sctp
|
||||
$(package)_config_opts += -no-securetransport
|
||||
|
@ -112,6 +117,9 @@ $(package)_config_opts += -no-zstd
|
|||
ifneq ($(LTO),)
|
||||
$(package)_config_opts += -ltcg
|
||||
endif
|
||||
|
||||
$(package)_config_env := CC="$$($(package)_cc)"
|
||||
$(package)_config_env += CXX="$$($(package)_cxx)"
|
||||
endef
|
||||
|
||||
define $(package)_fetch_cmds
|
||||
|
@ -119,7 +127,8 @@ $(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_f
|
|||
$(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))
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtwayland_file_name),$($(package)_qtwayland_file_name),$($(package)_qtwayland_sha256_hash))
|
||||
endef
|
||||
|
||||
define $(package)_extract_cmds
|
||||
|
@ -129,6 +138,7 @@ define $(package)_extract_cmds
|
|||
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 && \
|
||||
echo "$($(package)_qtwayland_sha256_hash) $($(package)_source_dir)/$($(package)_qtwayland_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 && \
|
||||
|
@ -139,12 +149,13 @@ define $(package)_extract_cmds
|
|||
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
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools && \
|
||||
mkdir qtwayland && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtwayland_file_name) -C qtwayland
|
||||
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)/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 && \
|
||||
|
@ -156,7 +167,6 @@ define $(package)_config_cmds
|
|||
export PKG_CONFIG_LIBDIR=$(build_prefix)/lib/pkgconfig && \
|
||||
export QT_MAC_SDK_NO_VERSION_CHECK=1 && \
|
||||
unset CMAKE_PREFIX_PATH && \
|
||||
export CMAKE_PREFIX_PATH="$(QT_LIBS)" && \
|
||||
cd qtbase && \
|
||||
./configure -top-level $($(package)_config_opts)
|
||||
endef
|
||||
|
|
18
contrib/depends/packages/native_wayland.mk
Normal file
18
contrib/depends/packages/native_wayland.mk
Normal file
|
@ -0,0 +1,18 @@
|
|||
package=native_wayland
|
||||
$(package)_version=1.23.1
|
||||
$(package)_download_path := https://gitlab.freedesktop.org/wayland/wayland/-/releases/$($(package)_version)/downloads/
|
||||
$(package)_file_name := wayland-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash := 864fb2a8399e2d0ec39d56e9d9b753c093775beadc6022ce81f441929a81e5ed
|
||||
$(package)_dependencies := native_expat native_libffi
|
||||
|
||||
define $(package)_config_cmds
|
||||
meson setup build -Dprefix="$(build_prefix)" -Ddtd_validation=false -Ddocumentation=false -Dtests=false
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
ninja -C build
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
DESTDIR=$($(package)_staging_dir) ninja -C build install
|
||||
endef
|
|
@ -1,14 +1,15 @@
|
|||
package=openssl
|
||||
$(package)_version=3.3.2
|
||||
$(package)_version=3.4.1
|
||||
$(package)_download_path=https://github.com/openssl/openssl/releases/download/openssl-$($(package)_version)
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281
|
||||
$(package)_sha256_hash=002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3
|
||||
|
||||
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_ROOT="$(host_prefix)/native" PATH="$(host_prefix)/native/bin" CC=clang AR=ar RANLIB=ranlib
|
||||
$(package)_build_env_android=ANDROID_NDK_ROOT="$(host_prefix)/native"
|
||||
$(package)_config_opts=--prefix=$(host_prefix) --openssldir=$(host_prefix)/etc/openssl --libdir=$(host_prefix)/lib
|
||||
$(package)_config_opts+=no-apps
|
||||
$(package)_config_opts+=no-capieng
|
||||
$(package)_config_opts+=no-dso
|
||||
$(package)_config_opts+=no-dtls1
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
packages := boost openssl unbound qrencode libsodium polyseed hidapi abseil protobuf libusb zlib libgpg-error libgcrypt expat libzip zxing-cpp
|
||||
native_packages := native_qt native_abseil native_protobuf
|
||||
|
||||
linux_packages := eudev libfuse libsquashfuse zstd appimage_runtime
|
||||
linux_native_packages =
|
||||
linux_packages := libfuse libsquashfuse zstd appimage_runtime wayland libffi
|
||||
linux_native_packages := native_expat native_libffi native_wayland
|
||||
|
||||
x86_64_linux_packages := flatstart
|
||||
|
||||
darwin_packages :=
|
||||
darwin_native_packages = darwin_sdk native_cctools native_libtapi
|
||||
darwin_native_packages = darwin_sdk
|
||||
|
||||
mingw32_packages =
|
||||
mingw32_native_packages =
|
||||
|
@ -18,4 +18,4 @@ qt_mingw32_packages := qt
|
|||
|
||||
tor_linux_packages := libevent tor_linux
|
||||
tor_darwin_packages := tor_darwin
|
||||
tor_mingw32_packages := tor_mingw32
|
||||
tor_mingw32_packages := tor_mingw32
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package=qrencode
|
||||
$(package)_version=4.1.1
|
||||
$(package)_download_path=https://fukuchi.org/works/qrencode/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
|
||||
$(package)_sha256_hash=e455d9732f8041cf5b9c388e345a641fd15707860f928e94507b1961256a6923
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=da448ed4f52aba6bcb0cd48cac0dd51b8692bccc4cd127431402fca6f8171e8e
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --without-tools --without-tests --disable-sdltest
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package=qt
|
||||
$(package)_version=6.7.3
|
||||
$(package)_download_path=https://download.qt.io/official_releases/qt/6.7/$($(package)_version)/submodules
|
||||
$(package)_version=6.9.0
|
||||
$(package)_download_path=https://download.qt.io/official_releases/qt/6.9/$($(package)_version)/submodules
|
||||
$(package)_suffix=everywhere-src-$($(package)_version).tar.xz
|
||||
$(package)_file_name=qtbase-$($(package)_suffix)
|
||||
$(package)_sha256_hash=8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097
|
||||
$(package)_darwin_dependencies=native_cctools native_qt openssl
|
||||
$(package)_sha256_hash=c1800c2ea835801af04a05d4a32321d79a93954ee3ae2172bbeacf13d1f0598c
|
||||
$(package)_darwin_dependencies=openssl native_qt
|
||||
$(package)_mingw32_dependencies=openssl native_qt
|
||||
$(package)_linux_dependencies=openssl native_qt freetype fontconfig libxcb libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm libxcb_util_cursor dbus
|
||||
$(package)_linux_dependencies=openssl native_qt freetype fontconfig libxcb libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm libxcb_util_cursor dbus wayland native_wayland
|
||||
$(package)_patches += fast_fixed_dtoa_no_optimize.patch
|
||||
$(package)_patches += guix_cross_lib_path.patch
|
||||
$(package)_patches += qtbase-moc-ignore-gcc-macro.patch
|
||||
|
@ -21,29 +21,35 @@ $(package)_patches += toolchain.cmake
|
|||
$(package)_patches += revert-macOS-Silence-warning-about-supporting-secure.patch
|
||||
$(package)_patches += no-resonance-audio.patch
|
||||
$(package)_patches += fix_static_qt_darwin_camera_permissions.patch
|
||||
$(package)_patches += revert-f67ee7c39.patch
|
||||
$(package)_patches += macos-available-qtbase.patch
|
||||
$(package)_patches += macos-available-qtmultimedia.patch
|
||||
$(package)_patches += qtwayland-tabletevent-fix.patch
|
||||
#$(package)_patches += fix-static-fontconfig-static-linking.patch
|
||||
|
||||
$(package)_qttools_file_name=qttools-$($(package)_suffix)
|
||||
$(package)_qttools_sha256_hash=f03bb7df619cd9ac9dba110e30b7bcab5dd88eb8bdc9cc752563b4367233203f
|
||||
$(package)_qttools_sha256_hash=fa645589cc3f939022401a926825972a44277dead8ec8607d9f2662e6529c9a4
|
||||
|
||||
$(package)_qtsvg_file_name=qtsvg-$($(package)_suffix)
|
||||
$(package)_qtsvg_sha256_hash=40142cb71fb1e07ad612bc361b67f5d54cd9367f9979ae6b86124a064deda06b
|
||||
$(package)_qtsvg_sha256_hash=ec359d930c95935ea48af58b100c2f5d0d275968ec8ca1e0e76629b7159215fc
|
||||
|
||||
$(package)_qtwebsockets_file_name=qtwebsockets-$($(package)_suffix)
|
||||
$(package)_qtwebsockets_sha256_hash=ba03007db7ee68a5bc3e3bd1d71e11f3e1f84e470bcb8c54cd7c01bbe1c5990e
|
||||
$(package)_qtwebsockets_sha256_hash=6b3add7cacf3a4e0b448d5e69d9dac42795fef63309038af1dc5a454ce514940
|
||||
|
||||
$(package)_qtmultimedia_file_name=qtmultimedia-$($(package)_suffix)
|
||||
$(package)_qtmultimedia_sha256_hash=304d28b8e592435293893b0110d5f3534407604d1e04d8a0b0e5b34afe577303
|
||||
$(package)_qtmultimedia_sha256_hash=995c3b194f3de3e1929280639642f7661d94aa57523c459dbbf2f71dbdcaa18c
|
||||
|
||||
$(package)_qtshadertools_file_name=qtshadertools-$($(package)_suffix)
|
||||
$(package)_qtshadertools_sha256_hash=74e512798c7ddbda354a2d8d975211454bbabb47afb7e598892067a5828c0995
|
||||
$(package)_qtshadertools_sha256_hash=916c40281ac3dee23b163f6ca73fb5bdeee344838b9a922b6f36269642d6f4bb
|
||||
|
||||
$(package)_qtwayland_file_name=qtwayland-$($(package)_suffix)
|
||||
$(package)_qtwayland_sha256_hash=503416fcb04db503bd130e6a49c45e3e546f091e83406f774a0c703130c91805
|
||||
|
||||
$(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)
|
||||
$(package)_extra_sources += $($(package)_qtwayland_file_name)
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts += -DQT_HOST_PATH=$(build_prefix)/qt-host
|
||||
|
@ -53,92 +59,116 @@ $(package)_config_opts += -DCMAKE_INSTALL_PREFIX=$(host_prefix)
|
|||
$(package)_config_opts += -DINSTALL_LIBEXECDIR=$(build_prefix)/bin
|
||||
$(package)_config_opts += -DQT_BUILD_EXAMPLES=FALSE
|
||||
$(package)_config_opts += -DQT_BUILD_TESTS=FALSE
|
||||
$(package)_config_opts += -DQT_GENERATE_SBOM=OFF
|
||||
$(package)_config_opts += -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake
|
||||
$(package)_config_opts += -DINPUT_cups=no
|
||||
$(package)_config_opts += -DINPUT_egl=no
|
||||
$(package)_config_opts += -DINPUT_eglfs=no
|
||||
$(package)_config_opts += -DINPUT_evdev=no
|
||||
$(package)_config_opts += -DINPUT_gif=no
|
||||
$(package)_config_opts += -DINPUT_glib=no
|
||||
$(package)_config_opts += -DINPUT_icu=no
|
||||
$(package)_config_opts += -DINPUT_ico=no
|
||||
$(package)_config_opts += -DINPUT_kms=no
|
||||
$(package)_config_opts += -DINPUT_linuxfb=no
|
||||
$(package)_config_opts += -DINPUT_libudev=no
|
||||
$(package)_config_opts += -DINPUT_mtdev=no
|
||||
$(package)_config_opts += -DINPUT_openssl=linked
|
||||
$(package)_config_opts += -DINPUT_openvg=no
|
||||
$(package)_config_opts += -DINPUT_permissions=yes
|
||||
$(package)_config_opts += -DINPUT_reduce_relocations=no
|
||||
$(package)_config_opts += -DINPUT_schannel=no
|
||||
$(package)_config_opts += -DINPUT_sctp=no
|
||||
$(package)_config_opts += -DINPUT_securetransport=no
|
||||
$(package)_config_opts += -DINPUT_system_proxies=no
|
||||
$(package)_config_opts += -DINPUT_use_gold_linker_alias=no
|
||||
$(package)_config_opts += -DINPUT_zstd=no
|
||||
$(package)_config_opts += -DINPUT_pkg_config=yes
|
||||
$(package)_config_opts += -DINPUT_libpng=qt
|
||||
$(package)_config_opts += -DINPUT_pcre=qt
|
||||
$(package)_config_opts += -DINPUT_harfbuzz=qt
|
||||
$(package)_config_opts += -DINPUT_system_zlib=no
|
||||
$(package)_config_opts += -DINPUT_colordialog=no
|
||||
$(package)_config_opts += -DINPUT_dial=no
|
||||
$(package)_config_opts += -DINPUT_fontcombobox=no
|
||||
$(package)_config_opts += -DINPUT_image_heuristic_mask=no
|
||||
$(package)_config_opts += -DINPUT_keysequenceedit=no
|
||||
$(package)_config_opts += -DINPUT_lcdnumber=no
|
||||
$(package)_config_opts += -DINPUT_networkdiskcache=no
|
||||
$(package)_config_opts += -DINPUT_pdf=no
|
||||
$(package)_config_opts += -DINPUT_printdialog=no
|
||||
$(package)_config_opts += -DINPUT_printer=no
|
||||
$(package)_config_opts += -DINPUT_printpreviewdialog=no
|
||||
$(package)_config_opts += -DINPUT_printpreviewwidget=no
|
||||
$(package)_config_opts += -DINPUT_printsupport=no
|
||||
$(package)_config_opts += -DINPUT_sessionmanager=no
|
||||
$(package)_config_opts += -DINPUT_spatialaudio=no
|
||||
$(package)_config_opts += -DINPUT_sql=no
|
||||
$(package)_config_opts += -DINPUT_syntaxhighlighter=no
|
||||
$(package)_config_opts += -DINPUT_textmarkdownwriter=no
|
||||
$(package)_config_opts += -DINPUT_textodfwriter=no
|
||||
$(package)_config_opts += -DINPUT_topleveldomain=no
|
||||
$(package)_config_opts += -DINPUT_undocommand=no
|
||||
$(package)_config_opts += -DINPUT_undogroup=no
|
||||
$(package)_config_opts += -DINPUT_undostack=no
|
||||
$(package)_config_opts += -DINPUT_undoview=no
|
||||
$(package)_config_opts += -DINPUT_vnc=no
|
||||
$(package)_config_opts += -DQT_FEATURE_cups=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_qmake=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_egl=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_egl_x11=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_xcb_egl_plugin=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_xcb_glx_plugin=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_eglfs=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_evdev=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_gif=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_glib=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_icu=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_ico=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_kms=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_linuxfb=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_libudev=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_mtdev=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_openssl=ON
|
||||
$(package)_config_opts += -DQT_FEATURE_openssl_linked=ON
|
||||
$(package)_config_opts += -DQT_FEATURE_openvg=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_permissions=ON
|
||||
$(package)_config_opts += -DQT_FEATURE_reduce_relocations=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_schannel=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_sctp=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_securetransport=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_system_proxies=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_use_gold_linker_alias=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_zstd=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_pkg_config=ON
|
||||
$(package)_config_opts += -DQT_FEATURE_system_png=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_system_pcre2=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_system_harfbuzz=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_system_zlib=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_colordialog=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_dial=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_fontcombobox=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_image_heuristic_mask=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_keysequenceedit=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_lcdnumber=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_networkdiskcache=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_pdf=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_printdialog=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_printer=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_printpreviewdialog=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_printpreviewwidget=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_printsupport=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_sessionmanager=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_spatialaudio=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_sql=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_syntaxhighlighter=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_tabletevent=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_textmarkdownwriter=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_textodfwriter=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_topleveldomain=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_undocommand=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_undogroup=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_undostack=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_undoview=OFF
|
||||
$(package)_config_opts += -DQT_FEATURE_vnc=OFF
|
||||
|
||||
$(package)_config_opts_linux += -DQT_QMAKE_TARGET_MKSPEC=linux-g++
|
||||
$(package)_config_opts_linux += -DINPUT_xcb=yes
|
||||
$(package)_config_opts_linux += -DINPUT_xcb_xlib=no
|
||||
$(package)_config_opts_linux += -DINPUT_xlib=no
|
||||
$(package)_config_opts_linux += -DINPUT_freetype=system
|
||||
$(package)_config_opts_linux += -DINPUT_fontconfig=yes
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_xcb=ON
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_xcb_xlib=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_xlib=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_freetype=ON
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_system_freetype=ON
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_fontconfig=ON
|
||||
$(package)_config_opts_linux += -DINPUT_opengl=no
|
||||
$(package)_config_opts_linux += -DINPUT_vulkan=no
|
||||
$(package)_config_opts_linux += -DINPUT_backtrace=no
|
||||
$(package)_config_opts_linux += -DINPUT_dbus=linked
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_opengl=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_opengles2=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_opengles3=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_opengles31=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_opengles32=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_opengl_desktop=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_vulkan=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_backtrace=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_dbus=ON
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_dbus_linked=ON
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_wayland_client=ON
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_wayland_server=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_wayland_drm_egl_server_buffer=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_wayland-shm-emulation-server-buffer=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_wayland-client-fullscreen-shell-v1=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_wayland-client-ivi-shell=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_wayland-client-wl-shell=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_wayland-client-xdg-shell-v5=OFF
|
||||
$(package)_config_opts_linux += -DQT_FEATURE_wayland-client-xdg-shell-v6=OFF
|
||||
$(package)_config_opts_linux += -DBUILD_WITH_PCH=OFF
|
||||
|
||||
$(package)_config_opts_mingw32 += -DQT_QMAKE_TARGET_MKSPEC=win32-g++
|
||||
$(package)_config_opts_mingw32 += -DINPUT_opengl=no
|
||||
$(package)_config_opts_mingw32 += -DINPUT_dbus=no
|
||||
$(package)_config_opts_mingw32 += -DINPUT_freetype=no
|
||||
$(package)_config_opts_mingw32 += -DINPUT_ffmpeg=no
|
||||
$(package)_config_opts_mingw32 += -DINPUT_wmf=yes
|
||||
$(package)_config_opts_mingw32 += -DQT_FEATURE_dbus=OFF
|
||||
$(package)_config_opts_mingw32 += -DQT_FEATURE_freetype=OFF
|
||||
$(package)_config_opts_mingw32 += -DQT_FEATURE_ffmpeg=OFF
|
||||
$(package)_config_opts_mingw32 += -DQT_FEATURE_wmf=ON
|
||||
$(package)_config_opts_mingw32 += -DBUILD_WITH_PCH=ON
|
||||
|
||||
$(package)_config_opts_darwin += -DQT_QMAKE_TARGET_MKSPEC=macx-clang
|
||||
# see #138
|
||||
$(package)_config_opts_darwin += -DINPUT_accessibility=no
|
||||
$(package)_config_opts_darwin += -DINPUT_dbus=no
|
||||
$(package)_config_opts_darwin += -DINPUT_freetype=no
|
||||
$(package)_config_opts_darwin += -DINPUT_ffmpeg=no
|
||||
$(package)_config_opts_darwin += -DQT_FEATURE_accessibility=OFF
|
||||
$(package)_config_opts_darwin += -DQT_FEATURE_dbus=OFF
|
||||
$(package)_config_opts_darwin += -DQT_FEATURE_freetype=OFF
|
||||
$(package)_config_opts_darwin += -DQT_FEATURE_ffmpeg=OFF
|
||||
$(package)_config_opts_darwin += -DQMAKE_MACOSX_DEPLOYMENT_TARGET=11.0
|
||||
$(package)_config_opts_darwin += -DBUILD_WITH_PCH=OFF
|
||||
$(package)_config_opts_darwin += '-DQT_QMAKE_DEVICE_OPTIONS=MAC_SDK_PATH=$(host_prefix)/native/SDK;MAC_SDK_VERSION=$(OSX_SDK_VERSION);CROSS_COMPILE=$(host)-;MAC_TARGET=$(host);XCODE_VERSION=$(XCODE_VERSION)'
|
||||
$(package)_config_opts_darwin += -DQT_NO_APPLE_SDK_AND_XCODE_CHECK=ON
|
||||
# work around a build issue in qfutex_mac_p.h
|
||||
$(package)_config_opts_darwin += -DINPUT_appstore_compliant=yes
|
||||
$(package)_config_opts_darwin += -DQT_FEATURE_appstore_compliant=ON
|
||||
|
||||
$(package)_config_opts += -G Ninja
|
||||
|
||||
|
@ -152,7 +182,8 @@ $(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttools_fi
|
|||
$(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))
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_sha256_hash)) && \
|
||||
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtwayland_file_name),$($(package)_qtwayland_file_name),$($(package)_qtwayland_sha256_hash))
|
||||
endef
|
||||
|
||||
define $(package)_extract_cmds
|
||||
|
@ -163,6 +194,7 @@ define $(package)_extract_cmds
|
|||
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 && \
|
||||
echo "$($(package)_qtwayland_sha256_hash) $($(package)_source_dir)/$($(package)_qtwayland_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 && \
|
||||
|
@ -175,7 +207,9 @@ define $(package)_extract_cmds
|
|||
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
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools && \
|
||||
mkdir qtwayland && \
|
||||
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtwayland_file_name) -C qtwayland
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
@ -191,6 +225,7 @@ define $(package)_preprocess_cmds
|
|||
-e 's|@host_prefix@|$(host_prefix)|' \
|
||||
-e 's|@cmake_c_flags@|$(darwin_CC_)|' \
|
||||
-e 's|@cmake_cxx_flags@|$(darwin_CXX_)|' \
|
||||
-e 's|@cmake_ld_flags@|$(darwin_LDFLAGS)|'\
|
||||
-e 's|@wmf_libs@|$(WMF_LIBS)|' \
|
||||
toolchain.cmake && \
|
||||
cd qtbase && \
|
||||
|
@ -198,19 +233,22 @@ define $(package)_preprocess_cmds
|
|||
patch -p1 -i $($(package)_patch_dir)/libxau-fix.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/revert-macOS-Silence-warning-about-supporting-secure.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_static_qt_darwin_camera_permissions.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/macos-available-qtbase.patch && \
|
||||
cd ../qtmultimedia && \
|
||||
patch -p1 -i $($(package)_patch_dir)/qtmultimedia-fixes.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/v4l2.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-resonance-audio.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/revert-f67ee7c39.patch
|
||||
patch -p1 -i $($(package)_patch_dir)/macos-available-qtmultimedia.patch && \
|
||||
cd ../qtwayland && \
|
||||
patch -p1 -i $($(package)_patch_dir)/qtwayland-tabletevent-fix.patch
|
||||
endef
|
||||
|
||||
|
||||
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 && \
|
||||
env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH cmake $($(package)_config_opts)
|
||||
$($(package)_cmake)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package=tor_linux
|
||||
$(package)_version=0.4.8.12
|
||||
$(package)_version=0.4.8.14
|
||||
$(package)_download_path=https://dist.torproject.org/
|
||||
$(package)_file_name=tor-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=ca7cc735d98e3747b58f2f3cc14f804dd789fa0fb333a84dcb6bd70adbb8c874
|
||||
$(package)_sha256_hash=5047e1ded12d9aac4eb858f7634a627714dd58ce99053d517691a4b304a66d10
|
||||
$(package)_dependencies=libevent openssl zlib
|
||||
|
||||
define $(package)_set_vars
|
||||
|
@ -18,9 +18,7 @@ define $(package)_set_vars
|
|||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
rm Makefile.in aclocal.m4 ar-lib compile config.guess config.sub configure depcomp install-sh missing orconfig.h.in test-driver &&\
|
||||
rm -rf doc/man &&\
|
||||
autoreconf -fi
|
||||
rm -rf doc/man
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
package=unbound
|
||||
$(package)_version=1.21.0
|
||||
$(package)_version=1.22.0
|
||||
$(package)_download_path=https://www.nlnetlabs.nl/downloads/$(package)/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=e7dca7d6b0f81bdfa6fa64ebf1053b5a999a5ae9278a87ef182425067ea14521
|
||||
$(package)_sha256_hash=c5dd1bdef5d5685b2cedb749158dd152c52d44f65529a34ac15cd88d4b1b3d43
|
||||
$(package)_dependencies=openssl expat
|
||||
$(package)_patches += CVE-2024-8508.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --enable-static --without-pyunbound --prefix=$(host_prefix)
|
||||
|
@ -17,10 +16,8 @@ define $(package)_set_vars
|
|||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
rm configure~ doc/IP-BasedActions.pdf doc/ietf67-design-02.odp doc/ietf67-design-02.pdf doc/CNAME-basedRedirectionDesignNotes.pdf &&\
|
||||
rm -rf testdata dnscrypt/testdata &&\
|
||||
patch -p1 -i $($(package)_patch_dir)/CVE-2024-8508.patch && \
|
||||
autoconf
|
||||
rm doc/*.odp doc/*.pdf contrib/*.tar.gz contrib/*.tar.bz2 &&\
|
||||
rm -rf testdata dnscrypt/testdata
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
@ -34,3 +31,7 @@ endef
|
|||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf share
|
||||
endef
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
package=utf8proc
|
||||
$(package)_version=2.9.0
|
||||
$(package)_download_path=https://github.com/JuliaStrings/utf8proc/releases/download/v$($(package)_version)/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=bd215d04313b5bc42c1abedbcb0a6574667e31acee1085543a232204e36384c4
|
||||
$(package)_patches=force_static.patch
|
||||
$(package)_build_subdir=build
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/force_static.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_cmake) -S .. -B .
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
31
contrib/depends/packages/wayland.mk
Normal file
31
contrib/depends/packages/wayland.mk
Normal file
|
@ -0,0 +1,31 @@
|
|||
package=wayland
|
||||
$(package)_version=1.23.1
|
||||
$(package)_download_path := https://gitlab.freedesktop.org/wayland/wayland/-/releases/$($(package)_version)/downloads/
|
||||
$(package)_file_name := wayland-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash := 864fb2a8399e2d0ec39d56e9d9b753c093775beadc6022ce81f441929a81e5ed
|
||||
$(package)_dependencies=native_wayland libffi expat
|
||||
$(package)_patches = toolchain.txt
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
cp $($(package)_patch_dir)/toolchain.txt toolchain.txt && \
|
||||
sed -i -e 's|@host_prefix@|$(host_prefix)|' \
|
||||
-e 's|@build_prefix@|$(build_prefix)|' \
|
||||
-e 's|@cc@|$($(package)_cc)|' \
|
||||
-e 's|@cxx@|$($(package)_cxx)|' \
|
||||
-e 's|@ar@|$($(package)_ar)|' \
|
||||
-e 's|@strip@|$(host_STRIP)|' \
|
||||
-e 's|@arch@|$(host_arch)|' \
|
||||
toolchain.txt
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
PKG_CONFIG_LIBDIR="$(host_prefix)/lib/pkgconfig:$(build_prefix)/lib/pkgconfig" PKG_CONFIG_PATH="$(build_prefix)/lib/pkgconfig" meson setup --cross-file toolchain.txt build -Ddtd_validation=false -Ddocumentation=false -Dprefer_static=true -Ddefault_library=static -Dtests=false -Dscanner=false
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
ninja -C build
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
DESTDIR=$($(package)_staging_dir) ninja -C build install
|
||||
endef
|
|
@ -4,12 +4,6 @@ $(package)_download_path=https://xorg.freedesktop.org/archive/individual/proto
|
|||
$(package)_file_name=xcb-proto-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=392d3c9690f8c8202a68fdb89c16fd55159ab8d65000a6da213f4a1576e97a16
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
find . -type f -name 'Makefile.in' -exec rm {} + && \
|
||||
rm aclocal.m4 configure install-sh missing py-compile && \
|
||||
autoreconf -fi
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
$($(package)_autoconf)
|
||||
endef
|
||||
|
|
|
@ -10,9 +10,6 @@ define $(package)_set_vars
|
|||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
find . -type f -name 'Makefile.in' -exec rm {} + && \
|
||||
rm aclocal.m4 compile config.guess config.sub configure install-sh missing test-driver && \
|
||||
autoreconf -fi && \
|
||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
|
||||
endef
|
||||
|
||||
|
|
|
@ -3,23 +3,25 @@ $(package)_version=1.3.1
|
|||
$(package)_download_path=https://github.com/madler/zlib/releases/download/v$($(package)_version)/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.xz
|
||||
$(package)_sha256_hash=38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32
|
||||
$(package)_patches=win-lib-name.patch
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/win-lib-name.patch
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
CC="$($(package)_cc)" \
|
||||
CXX="$($(package)_cxx)" \
|
||||
AR="$($(package)_ar)" \
|
||||
RANLIB="$($(package)_ranlib)" \
|
||||
LIBTOOL="$($(package)_libtool)" \
|
||||
LDLAGS="$($(package)_ldflags)" \
|
||||
CFLAGS="-fPIE" \
|
||||
CXXFLAGS="-fPIE" \
|
||||
./configure --static --prefix=$(host_prefix)
|
||||
$($(package)_cmake) -DBUILD_SHARED_LIBS=OFF -DZLIB_BUILD_EXAMPLES=OFF
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE)
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -f lib/libz.so* lib/libz.dll* && \
|
||||
rm -rf bin
|
||||
endef
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
package=zstd
|
||||
$(package)_version=1.5.6
|
||||
$(package)_version=1.5.7
|
||||
$(package)_download_path=https://github.com/facebook/zstd/releases/download/v$($(package)_version)
|
||||
$(package)_file_name=zstd-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=8c29e06cf42aacc1eafc4077ae2ec6c6fcb96a626157e0593d5e82a34fd403c1
|
||||
$(package)_sha256_hash=eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
rm -rf tests doc contrib/pzstd/images build/single_file_libs/examples
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$($(package)_cmake) -DCMAKE_INSTALL_PREFIX=$(host_prefix) -DHOST=$(host) -DZSTD_LEGACY_SUPPORT=OFF -B build-cmake-debug -S build/cmake && \
|
||||
|
|
|
@ -1,30 +1,21 @@
|
|||
diff --git a/src/runtime/Makefile b/src/runtime/Makefile
|
||||
index d0cbf1f..905b130 100644
|
||||
index 1776c19..6207731 100644
|
||||
--- a/src/runtime/Makefile
|
||||
+++ b/src/runtime/Makefile
|
||||
@@ -1,21 +1,21 @@
|
||||
CC = gcc
|
||||
CFLAGS = -std=gnu99 -s -Os -D_FILE_OFFSET_BITS=64 -DGIT_COMMIT=\"${GIT_COMMIT}\" -T data_sections.ld -ffunction-sections -fdata-sections -Wl,--gc-sections -static
|
||||
-LIBS = -lsquashfuse -lsquashfuse_ll -lzstd -lz
|
||||
+LIBS = -lsquashfuse -lsquashfuse_ll -lzstd -lpthread
|
||||
@@ -1,12 +1,12 @@
|
||||
GIT_COMMIT := $(shell cat version)
|
||||
-CC = clang
|
||||
-CFLAGS = -std=gnu99 -Os -D_FILE_OFFSET_BITS=64 -DGIT_COMMIT=\"$(GIT_COMMIT)\" -T data_sections.ld -ffunction-sections -fdata-sections -Wl,--gc-sections -static -Wall -Werror -static-pie
|
||||
-LIBS = -lsquashfuse -lsquashfuse_ll -lzstd -lz -lfuse3
|
||||
+CC = gcc
|
||||
+CFLAGS = -std=gnu99 -Os -D_FILE_OFFSET_BITS=64 -DGIT_COMMIT=\"$(GIT_COMMIT)\" -T data_sections.ld -ffunction-sections -fdata-sections -Wl,--gc-sections -static -Wall
|
||||
+LIBS = -lsquashfuse -lsquashfuse_ll -lzstd -lfuse3 -lpthread
|
||||
|
||||
all: runtime-fuse3 runtime-fuse3
|
||||
all: runtime
|
||||
|
||||
# Compile runtime
|
||||
runtime-fuse3.o: runtime.c
|
||||
- $(CC) -I/usr/local/include/squashfuse -I/usr/include/fuse -o runtime-fuse3.o -c $(CFLAGS) $^
|
||||
+ $(CC) -I${host_prefix}/include -I${host_prefix}/include/squashfuse -I${host_prefix}/include/fuse -o runtime-fuse3.o -c $(CFLAGS) $^
|
||||
|
||||
runtime-fuse3: runtime-fuse3.o
|
||||
$(CC) $(CFLAGS) $^ $(LIBS) -lfuse -o runtime-fuse3
|
||||
|
||||
runtime-fuse3.o: runtime.c
|
||||
- $(CC) -I/usr/local/include/squashfuse -I/usr/include/fuse3 -o runtime-fuse3.o -c $(CFLAGS) $^
|
||||
+ $(CC) -I${host_prefix}/include -I${host_prefix}/include/squashfuse -I${host_prefix}/include/fuse3 -o runtime-fuse3.o -c $(CFLAGS) $^
|
||||
|
||||
runtime-fuse3: runtime-fuse3.o
|
||||
- $(CC) $(CFLAGS) $^ $(LIBS) -lfuse3 -o runtime-fuse3
|
||||
+ $(CC) $(CFLAGS) $^ -L${host_prefix}/lib $(LIBS) -lfuse3 -lpthread -o runtime-fuse3
|
||||
runtime: runtime.c
|
||||
- $(CC) -I/usr/local/include/squashfuse -I/usr/include/fuse3 $(CFLAGS) $^ $(LIBS) -o $@
|
||||
+ $(CC) -L${host_prefix}/lib -I${host_prefix}/include -I${host_prefix}/squashfuse -I${host_prefix}/include/fuse3 $(CFLAGS) $^ $(LIBS) -o $@
|
||||
|
||||
clean:
|
||||
rm -f *.o runtime-fuse3 runtime-fuse3
|
||||
rm -f runtime
|
||||
|
|
13
contrib/depends/patches/boost/filesystem_macos_sdk.patch
Normal file
13
contrib/depends/patches/boost/filesystem_macos_sdk.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/libs/filesystem/src/directory.cpp b/libs/filesystem/src/directory.cpp
|
||||
index 0cf5025..cd38e1b 100644
|
||||
--- a/libs/filesystem/src/directory.cpp
|
||||
+++ b/libs/filesystem/src/directory.cpp
|
||||
@@ -279,7 +279,7 @@ inline system::error_code dir_itr_close(dir_itr_imp& imp) noexcept
|
||||
// Obtains a file descriptor from the directory iterator
|
||||
inline int dir_itr_fd(dir_itr_imp const& imp, system::error_code& ec)
|
||||
{
|
||||
- int fd = ::dirfd(static_cast< DIR* >(imp.handle));
|
||||
+ int fd = dirfd(static_cast< DIR* >(imp.handle));
|
||||
if (BOOST_UNLIKELY(fd < 0))
|
||||
{
|
||||
int err = errno;
|
34
contrib/depends/patches/flatstart/main.S
Normal file
34
contrib/depends/patches/flatstart/main.S
Normal file
|
@ -0,0 +1,34 @@
|
|||
.text
|
||||
.global m_symlink
|
||||
.global m_exit
|
||||
.global m_mkdir
|
||||
.global m_execve
|
||||
.global _start
|
||||
|
||||
_start:
|
||||
pop %rdi
|
||||
mov %rsp, %rsi
|
||||
lea 8(%rsi, %rdi, 8), %rdx
|
||||
call start_c
|
||||
mov $60, %rax
|
||||
xor %rdi, %rdi
|
||||
syscall
|
||||
|
||||
m_symlink:
|
||||
mov $88, %rax
|
||||
syscall
|
||||
ret
|
||||
|
||||
m_mkdir:
|
||||
mov $83, %rax
|
||||
syscall
|
||||
ret
|
||||
|
||||
m_execve:
|
||||
mov $59, %rax
|
||||
syscall
|
||||
ret
|
||||
|
||||
m_exit:
|
||||
mov $60, %rax
|
||||
syscall
|
31
contrib/depends/patches/flatstart/main.c
Normal file
31
contrib/depends/patches/flatstart/main.c
Normal file
|
@ -0,0 +1,31 @@
|
|||
extern long m_symlink(const char *target, const char *linkpath);
|
||||
extern long m_mkdir(const char *pathname, unsigned int mode);
|
||||
extern long m_execve(const char *filename, char *const argv[], char *const envp[]);
|
||||
extern void m_exit(int status);
|
||||
|
||||
void start_c(int argc, char **argv, char **envp) {
|
||||
m_symlink("/app/gnu", "/gnu");
|
||||
|
||||
// Qt expects certs to be here, see: qtbase/src/network/ssl/qsslsocket.cpp
|
||||
m_mkdir("/etc/ssl", 0755);
|
||||
m_symlink("/app/profile/etc/ssl/certs", "/etc/ssl/certs");
|
||||
|
||||
// Stops Qt from complaining about not running in a utf-8 locale
|
||||
m_mkdir("/run/current-system", 0755);
|
||||
m_symlink("/app/profile/lib/locale", "/run/current-system/locale");
|
||||
|
||||
// Launch Feather
|
||||
const char *exec_path = "/app/feather";
|
||||
int new_argc = argc;
|
||||
char *new_argv[new_argc + 1];
|
||||
|
||||
new_argv[0] = (char *)exec_path;
|
||||
for (int i = 1; i < new_argc; i++) {
|
||||
new_argv[i] = argv[i];
|
||||
}
|
||||
new_argv[new_argc] = 0;
|
||||
|
||||
long ret = m_execve(exec_path, new_argv, envp);
|
||||
|
||||
m_exit((int)ret);
|
||||
}
|
20
contrib/depends/patches/hidapi/cmake-fix-libusb.patch
Normal file
20
contrib/depends/patches/hidapi/cmake-fix-libusb.patch
Normal file
|
@ -0,0 +1,20 @@
|
|||
diff --git a/libusb/CMakeLists.txt b/libusb/CMakeLists.txt
|
||||
index 6cd48c4..9411468 100644
|
||||
--- a/libusb/CMakeLists.txt
|
||||
+++ b/libusb/CMakeLists.txt
|
||||
@@ -11,9 +11,12 @@ target_link_libraries(hidapi_libusb PUBLIC hidapi_include)
|
||||
if(TARGET usb-1.0)
|
||||
target_link_libraries(hidapi_libusb PRIVATE usb-1.0)
|
||||
else()
|
||||
- include(FindPkgConfig)
|
||||
- pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0>=1.0.9)
|
||||
- target_link_libraries(hidapi_libusb PRIVATE PkgConfig::libusb)
|
||||
+ find_library(libusb-1.0 usb-1.0)
|
||||
+ find_path(LIBUSB_INCLUDE_DIR
|
||||
+ NAMES libusb.h
|
||||
+ PATH_SUFFIXES libusb-1.0)
|
||||
+ target_link_libraries(hidapi_libusb PRIVATE ${libusb-1.0})
|
||||
+ include_directories(${LIBUSB_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
find_package(Threads REQUIRED)
|
17
contrib/depends/patches/libXau/toolchain.txt
Normal file
17
contrib/depends/patches/libXau/toolchain.txt
Normal file
|
@ -0,0 +1,17 @@
|
|||
[binaries]
|
||||
c = '@cc@'
|
||||
cpp = '@cxx@'
|
||||
ar = '@ar@'
|
||||
strip = '@strip@'
|
||||
pkgconfig = '/home/user/.guix-profile/bin/pkg-config'
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = '@arch@'
|
||||
cpu = '@arch@'
|
||||
endian = 'little'
|
||||
|
||||
[built-in options]
|
||||
default_library = 'static'
|
||||
prefer_static = true
|
||||
prefix = '@host_prefix@'
|
37
contrib/depends/patches/libgcrypt/no-programs.patch
Normal file
37
contrib/depends/patches/libgcrypt/no-programs.patch
Normal file
|
@ -0,0 +1,37 @@
|
|||
diff --git a/src/Makefile.in b/src/Makefile.in
|
||||
index 48f08f0..92170ef 100644
|
||||
--- a/src/Makefile.in
|
||||
+++ b/src/Makefile.in
|
||||
@@ -132,7 +132,7 @@ CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \
|
||||
"$(DESTDIR)$(bindir)" "$(DESTDIR)$(m4datadir)" \
|
||||
"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"
|
||||
-PROGRAMS = $(bin_PROGRAMS)
|
||||
+PROGRAMS =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
diff --git a/tests/Makefile.in b/tests/Makefile.in
|
||||
index 27900c3..c9503dc 100644
|
||||
--- a/tests/Makefile.in
|
||||
+++ b/tests/Makefile.in
|
||||
@@ -110,8 +110,8 @@ host_triplet = @host@
|
||||
@USE_RSA_TRUE@am__append_1 = pkcs1v2 t-rsa-pss t-rsa-15 t-rsa-testparm
|
||||
@USE_DSA_TRUE@am__append_2 = fips186-dsa dsa-rfc6979 t-dsa
|
||||
@USE_ECC_TRUE@am__append_3 = curves t-ecdsa t-ed25519 t-cv25519 t-x448 t-ed448
|
||||
-TESTS = $(am__EXEEXT_4) $(tests_sh) $(am__EXEEXT_5) $(tests_sh_last)
|
||||
-EXTRA_PROGRAMS = testapi$(EXEEXT) pkbench$(EXEEXT)
|
||||
+TESTS =
|
||||
+EXTRA_PROGRAMS =
|
||||
noinst_PROGRAMS = testdrv$(EXEEXT) $(am__EXEEXT_4) $(am__EXEEXT_5) \
|
||||
fipsdrv$(EXEEXT) rsacvt$(EXEEXT) genhashdata$(EXEEXT) \
|
||||
gchash$(EXEEXT)
|
||||
@@ -147,7 +147,7 @@ am__EXEEXT_4 = version$(EXEEXT) t-secmem$(EXEEXT) mpitests$(EXEEXT) \
|
||||
t-mlkem$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
|
||||
$(am__EXEEXT_3)
|
||||
am__EXEEXT_5 = benchmark$(EXEEXT) bench-slope$(EXEEXT)
|
||||
-PROGRAMS = $(noinst_PROGRAMS)
|
||||
+PROGRAMS =
|
||||
aeswrap_SOURCES = aeswrap.c
|
||||
aeswrap_OBJECTS = aeswrap.$(OBJEXT)
|
||||
aeswrap_LDADD = $(LDADD)
|
13
contrib/depends/patches/libgpg-error/no-programs.patch
Normal file
13
contrib/depends/patches/libgpg-error/no-programs.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/src/Makefile.in b/src/Makefile.in
|
||||
index 882f4ad..4c99ddc 100644
|
||||
--- a/src/Makefile.in
|
||||
+++ b/src/Makefile.in
|
||||
@@ -154,7 +154,7 @@ CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \
|
||||
"$(DESTDIR)$(bindir)" "$(DESTDIR)$(m4datadir)" \
|
||||
"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"
|
||||
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
|
||||
+PROGRAMS =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
238
contrib/depends/patches/libusb/CMakeLists.txt
Normal file
238
contrib/depends/patches/libusb/CMakeLists.txt
Normal file
|
@ -0,0 +1,238 @@
|
|||
# From https://github.com/libusb/libusb-cmake/tree/main
|
||||
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
get_filename_component(LIBUSB_ROOT "libusb" ABSOLUTE)
|
||||
|
||||
# Get the version information from version.h ignoring the nano version as it appears in version_nano.h and so we need it?
|
||||
file(READ "${LIBUSB_ROOT}/version.h" VERSIONHEADERDATA)
|
||||
string(REGEX MATCH "#define LIBUSB_MAJOR ([0-9]*)" _ ${VERSIONHEADERDATA})
|
||||
set(LIBUSB_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "#define LIBUSB_MINOR ([0-9]*)" _ ${VERSIONHEADERDATA})
|
||||
set(LIBUSB_VERSION_MINOR ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "#define LIBUSB_MICRO ([0-9]*)" _ ${VERSIONHEADERDATA})
|
||||
set(LIBUSB_VERSION_MICRO ${CMAKE_MATCH_1})
|
||||
set(LIBUSB_VERSION "${LIBUSB_VERSION_MAJOR}.${LIBUSB_VERSION_MINOR}.${LIBUSB_VERSION_MICRO}")
|
||||
|
||||
project(usb-1.0
|
||||
DESCRIPTION "A cross-platform library to access USB devices"
|
||||
VERSION ${LIBUSB_VERSION}
|
||||
LANGUAGES C
|
||||
)
|
||||
if(EMSCRIPTEN)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
enable_language(CXX)
|
||||
endif()
|
||||
|
||||
# This function generates all the local variables what end up getting written to config.
|
||||
# We use a function as any vars set in this context don't mess with the rest of the file.
|
||||
# e.g. Logging LIBUSB_ENABLE_LOGGING mapps to ENABLE_LOGGING in the config, keeps it clean
|
||||
function(generate_config_file)
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckSymbolExists)
|
||||
include(CheckStructHasMember)
|
||||
include(CheckCCompilerFlag)
|
||||
|
||||
check_function_exists(clock_gettime HAVE_CLOCK_GETTIME)
|
||||
check_function_exists(pthread_condattr_setclock HAVE_PTHREAD_CONDATTR_SETCLOCK)
|
||||
check_function_exists(pthread_setname_np HAVE_PTHREAD_SETNAME_NP)
|
||||
check_function_exists(pthread_threadid_np HAVE_PTHREAD_THREADID_NP)
|
||||
check_function_exists(eventfd HAVE_EVENTFD)
|
||||
check_function_exists(pipe2 HAVE_PIPE2)
|
||||
check_function_exists(syslog HAVE_SYSLOG)
|
||||
|
||||
check_include_files(asm/types.h HAVE_ASM_TYPES_H)
|
||||
check_include_files(sys/eventfd.h HAVE_EVENTFD)
|
||||
check_include_files(string.h HAVE_STRING_H)
|
||||
check_include_files(sys/time.h HAVE_SYS_TIME_H)
|
||||
|
||||
check_symbol_exists(timerfd_create "sys/timerfd.h" HAVE_TIMERFD)
|
||||
check_symbol_exists(nfds_t "poll.h" HAVE_NFDS_T)
|
||||
|
||||
check_struct_has_member("struct timespec" tv_sec time.h HAVE_STRUCT_TIMESPEC)
|
||||
|
||||
if(HAVE_VISIBILITY)
|
||||
set(DEFAULT_VISIBILITY "__attribute__((visibility(\"default\")))")
|
||||
else()
|
||||
set(DEFAULT_VISIBILITY "" )
|
||||
endif()
|
||||
|
||||
# Set vars that will be written into the config file.
|
||||
if(WIN32)
|
||||
set(PLATFORM_WINDOWS 1)
|
||||
else()
|
||||
set(PLATFORM_POSIX 1)
|
||||
endif()
|
||||
|
||||
if(LIBUSB_ENABLE_LOGGING)
|
||||
set(ENABLE_LOGGING ${LIBUSB_ENABLE_LOGGING})
|
||||
endif()
|
||||
if(LIBUSB_ENABLE_DEBUG_LOGGING)
|
||||
set(ENABLE_DEBUG_LOGGING ${LIBUSB_ENABLE_DEBUG_LOGGING})
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
check_c_compiler_flag("-fvisibility=hidden" HAVE_VISIBILITY)
|
||||
endif()
|
||||
|
||||
file(MAKE_DIRECTORY "${LIBUSB_GEN_INCLUDES}")
|
||||
if(NOT MSVC)
|
||||
set(_GNU_SOURCE TRUE)
|
||||
endif()
|
||||
configure_file(config.h.in "${LIBUSB_GEN_INCLUDES}/config.h" @ONLY)
|
||||
endfunction()
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set(LIBUSB_BUILD_SHARED_LIBS_DEFAULT ON)
|
||||
else()
|
||||
set(LIBUSB_BUILD_SHARED_LIBS_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
option(LIBUSB_BUILD_SHARED_LIBS "Build Shared Libraries for libusb" ${LIBUSB_BUILD_SHARED_LIBS_DEFAULT})
|
||||
option(LIBUSB_BUILD_TESTING "Build Tests" OFF)
|
||||
if(LIBUSB_BUILD_TESTING)
|
||||
enable_testing()
|
||||
endif()
|
||||
|
||||
option(LIBUSB_BUILD_EXAMPLES "Build Example Applications" OFF)
|
||||
|
||||
option(LIBUSB_INSTALL_TARGETS "Install libusb targets" ON)
|
||||
option(LIBUSB_TARGETS_INCLUDE_USING_SYSTEM "Make targets include paths System" ON)
|
||||
|
||||
option(LIBUSB_ENABLE_LOGGING "Enable Logging" ON)
|
||||
option(LIBUSB_ENABLE_DEBUG_LOGGING "Enable Debug Logging" OFF)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
option(LIBUSB_ENABLE_UDEV "Enable udev backend for device enumeration" ON)
|
||||
endif()
|
||||
|
||||
set(LIBUSB_GEN_INCLUDES "${CMAKE_CURRENT_BINARY_DIR}/gen_include")
|
||||
generate_config_file()
|
||||
|
||||
if(LIBUSB_BUILD_SHARED_LIBS)
|
||||
add_library(usb-1.0 SHARED)
|
||||
else()
|
||||
add_library(usb-1.0 STATIC)
|
||||
endif()
|
||||
|
||||
set_target_properties(usb-1.0 PROPERTIES
|
||||
PREFIX lib # to be consistent with mainline libusb build system(s)
|
||||
)
|
||||
|
||||
# common sources
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_GEN_INCLUDES}/config.h"
|
||||
"${LIBUSB_ROOT}/core.c"
|
||||
"${LIBUSB_ROOT}/descriptor.c"
|
||||
"${LIBUSB_ROOT}/hotplug.c"
|
||||
"${LIBUSB_ROOT}/io.c"
|
||||
"${LIBUSB_ROOT}/libusb.h"
|
||||
"${LIBUSB_ROOT}/libusbi.h"
|
||||
"${LIBUSB_ROOT}/strerror.c"
|
||||
"${LIBUSB_ROOT}/sync.c"
|
||||
"${LIBUSB_ROOT}/version.h"
|
||||
"${LIBUSB_ROOT}/version_nano.h"
|
||||
)
|
||||
target_include_directories(usb-1.0
|
||||
PRIVATE
|
||||
"${LIBUSB_GEN_INCLUDES}"
|
||||
"${LIBUSB_ROOT}/os"
|
||||
)
|
||||
|
||||
if (LIBUSB_TARGETS_INCLUDE_USING_SYSTEM)
|
||||
target_include_directories(usb-1.0 SYSTEM PUBLIC "${LIBUSB_ROOT}")
|
||||
else()
|
||||
target_include_directories(usb-1.0 PUBLIC "${LIBUSB_ROOT}")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/libusb-1.0.def"
|
||||
"${LIBUSB_ROOT}/os/events_windows.c"
|
||||
"${LIBUSB_ROOT}/os/events_windows.h"
|
||||
"${LIBUSB_ROOT}/os/threads_windows.c"
|
||||
"${LIBUSB_ROOT}/os/threads_windows.h"
|
||||
"${LIBUSB_ROOT}/os/windows_common.c"
|
||||
"${LIBUSB_ROOT}/os/windows_common.h"
|
||||
"${LIBUSB_ROOT}/os/windows_usbdk.c"
|
||||
"${LIBUSB_ROOT}/os/windows_usbdk.h"
|
||||
"${LIBUSB_ROOT}/os/windows_winusb.c"
|
||||
"${LIBUSB_ROOT}/os/windows_winusb.h"
|
||||
$<$<C_COMPILER_ID:MSVC>:${LIBUSB_ROOT}/libusb-1.0.rc>
|
||||
)
|
||||
target_compile_definitions(usb-1.0 PRIVATE $<$<C_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS=1>)
|
||||
target_link_libraries(usb-1.0 PRIVATE windowsapp)
|
||||
set_target_properties(usb-1.0 PROPERTIES UNITY_BUILD OFF)
|
||||
else()
|
||||
# common POSIX/non-Windows sources
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/os/events_posix.c"
|
||||
"${LIBUSB_ROOT}/os/events_posix.h"
|
||||
"${LIBUSB_ROOT}/os/threads_posix.c"
|
||||
"${LIBUSB_ROOT}/os/threads_posix.h"
|
||||
)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/os/linux_usbfs.c"
|
||||
"${LIBUSB_ROOT}/os/linux_usbfs.h"
|
||||
)
|
||||
if(LIBUSB_ENABLE_UDEV)
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/os/linux_udev.c"
|
||||
)
|
||||
target_link_libraries(usb-1.0 PRIVATE udev)
|
||||
target_compile_definitions(usb-1.0 PRIVATE HAVE_LIBUDEV=1)
|
||||
else()
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/os/linux_netlink.c"
|
||||
)
|
||||
endif()
|
||||
find_package(Threads REQUIRED)
|
||||
target_link_libraries(usb-1.0 PRIVATE Threads::Threads)
|
||||
elseif(ANDROID)
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/os/linux_netlink.c"
|
||||
"${LIBUSB_ROOT}/os/linux_usbfs.c"
|
||||
"${LIBUSB_ROOT}/os/linux_usbfs.h"
|
||||
)
|
||||
target_link_libraries(usb-1.0 PRIVATE android log)
|
||||
elseif(APPLE)
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/os/darwin_usb.c"
|
||||
"${LIBUSB_ROOT}/os/darwin_usb.h"
|
||||
)
|
||||
target_link_libraries(usb-1.0 PRIVATE
|
||||
"-framework Foundation"
|
||||
"-framework IOKit"
|
||||
"-framework Security"
|
||||
)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "NetBSD")
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/os/netbsd_usb.c"
|
||||
)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/os/openbsd_usb.c"
|
||||
)
|
||||
elseif(EMSCRIPTEN)
|
||||
target_sources(usb-1.0 PRIVATE
|
||||
"${LIBUSB_ROOT}/os/emscripten_webusb.cpp"
|
||||
)
|
||||
target_compile_options(usb-1.0 PRIVATE -pthread)
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported target platform: ${CMAKE_SYSTEM_NAME}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(LIBUSB_BUILD_TESTING)
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
if(LIBUSB_BUILD_EXAMPLES)
|
||||
add_subdirectory(examples)
|
||||
endif()
|
||||
|
||||
if(LIBUSB_INSTALL_TARGETS)
|
||||
install(TARGETS usb-1.0)
|
||||
install(FILES "${LIBUSB_ROOT}/libusb.h" DESTINATION "include/libusb-1.0")
|
||||
endif()
|
75
contrib/depends/patches/libusb/config.h.in
Normal file
75
contrib/depends/patches/libusb/config.h.in
Normal file
|
@ -0,0 +1,75 @@
|
|||
/* #define to the attribute for default visibility. */
|
||||
#define DEFAULT_VISIBILITY @DEFAULT_VISIBILITY@
|
||||
|
||||
/* #define to 1 to start with debug message logging enabled. */
|
||||
#cmakedefine ENABLE_DEBUG_LOGGING 1
|
||||
|
||||
/* #define to 1 to enable message logging. */
|
||||
#cmakedefine ENABLE_LOGGING 1
|
||||
|
||||
/* #define to 1 if you have the <asm/types.h> header file. */
|
||||
#cmakedefine HAVE_ASM_TYPES_H
|
||||
|
||||
/* #define to 1 if you have the `clock_gettime' function. */
|
||||
#cmakedefine HAVE_CLOCK_GETTIME 1
|
||||
|
||||
/* #define to 1 if the system has eventfd functionality. */
|
||||
#cmakedefine HAVE_EVENTFD 1
|
||||
|
||||
/* #define to 1 if the system has the type `nfds_t'. */
|
||||
#cmakedefine HAVE_NFDS_T 1
|
||||
|
||||
/* #define to 1 if you have the `pipe2' function. */
|
||||
#cmakedefine HAVE_PIPE2 1
|
||||
|
||||
/* #define to 1 if you have the `pthread_condattr_setclock' function. */
|
||||
#cmakedefine HAVE_PTHREAD_CONDATTR_SETCLOCK 1
|
||||
|
||||
/* #define to 1 if you have the `pthread_setname_np' function. */
|
||||
#cmakedefine HAVE_PTHREAD_SETNAME_NP 1
|
||||
|
||||
/* #define to 1 if you have the `pthread_threadid_np' function. */
|
||||
#cmakedefine HAVE_PTHREAD_THREADID_NP 1
|
||||
|
||||
/* #define to 1 if you have the <string.h> header file. */
|
||||
#cmakedefine HAVE_STRING_H 1
|
||||
|
||||
/* #define to 1 if the system has the type `struct timespec'. */
|
||||
#cmakedefine HAVE_STRUCT_TIMESPEC 1
|
||||
|
||||
/* #define to 1 if you have the `syslog' function. */
|
||||
#cmakedefine HAVE_SYSLOG 1
|
||||
|
||||
/* #define to 1 if you have the <sys/time.h> header file. */
|
||||
#cmakedefine HAVE_SYS_TIME_H 1
|
||||
|
||||
/* #define to 1 if the system has timerfd functionality. */
|
||||
#cmakedefine HAVE_TIMERFD 1
|
||||
|
||||
/* #define to 1 if compiling for a POSIX platform. */
|
||||
#cmakedefine PLATFORM_POSIX 1
|
||||
|
||||
/* #define to 1 if compiling for a Windows platform. */
|
||||
#cmakedefine PLATFORM_WINDOWS 1
|
||||
|
||||
|
||||
#if defined(__GNUC__)
|
||||
#define PRINTF_FORMAT(a, b) __attribute__ ((format (__printf__, a, b)))
|
||||
#else
|
||||
#define PRINTF_FORMAT(a, b)
|
||||
#endif
|
||||
|
||||
/* #define to 1 if you have the ANSI C header files. */
|
||||
#cmakedefine STDC_HEADERS 1
|
||||
|
||||
/* #define to 1 to output logging messages to the systemwide log. */
|
||||
#cmakedefine USE_SYSTEM_LOGGING_FACILITY
|
||||
|
||||
/* Enable GNU extensions. */
|
||||
#cmakedefine _GNU_SOURCE 1
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
|
@ -1,23 +1,34 @@
|
|||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 23956fd..0f4c3c9 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -12,5 +12,5 @@ ChangeLog:
|
||||
|
||||
dist-hook: ChangeLog INSTALL
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 03316e8..b5c6f49 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -361,7 +361,7 @@ top_srcdir = @top_srcdir@
|
||||
xcbincludedir = @xcbincludedir@
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||
-SUBDIRS = image test
|
||||
+SUBDIRS = image
|
||||
EXTRA_DIST = autogen.sh README.md
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 9cf3f5a..0949d55 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -18,7 +18,6 @@ PKG_CHECK_MODULES(XCB_UTIL, xcb-util)
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
image/Makefile
|
||||
- test/Makefile
|
||||
image/xcb-image.pc
|
||||
])
|
||||
AC_OUTPUT
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
diff --git a/configure b/configure
|
||||
index 3756ffc..46fcbc4 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -19952,7 +19952,7 @@ printf "%s\n" "yes" >&6; }
|
||||
|
||||
fi
|
||||
|
||||
-ac_config_files="$ac_config_files Makefile image/Makefile test/Makefile image/xcb-image.pc"
|
||||
+ac_config_files="$ac_config_files Makefile image/Makefile image/xcb-image.pc"
|
||||
|
||||
cat >confcache <<\_ACEOF
|
||||
# This file is a shell script that caches the results of configure
|
||||
@@ -20980,7 +20980,6 @@ do
|
||||
"libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
|
||||
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||
"image/Makefile") CONFIG_FILES="$CONFIG_FILES image/Makefile" ;;
|
||||
- "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
|
||||
"image/xcb-image.pc") CONFIG_FILES="$CONFIG_FILES image/xcb-image.pc" ;;
|
||||
|
||||
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
||||
|
|
|
@ -1,21 +1,25 @@
|
|||
diff --git a/meson.build b/meson.build
|
||||
index 2de4ee9..57c1038 100644
|
||||
index 8714ce4e..35691155 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -768,20 +768,6 @@ test(
|
||||
@@ -893,24 +893,6 @@ test(
|
||||
dependencies: test_dep),
|
||||
env: test_env,
|
||||
)
|
||||
-if get_option('enable-x11')
|
||||
- has_xvfb = find_program('Xvfb', required: false)
|
||||
- if not has_xvfb.found()
|
||||
- warning('Xvfb program not found, but is required to run X11 tests.')
|
||||
- endif
|
||||
- test(
|
||||
- 'x11',
|
||||
- executable('test-x11', 'test/x11.c', dependencies: x11_test_dep),
|
||||
- executable('test-x11', 'test/x11.c', dependencies: x11_xvfb_test_dep),
|
||||
- env: test_env,
|
||||
- is_parallel : false,
|
||||
- )
|
||||
- test(
|
||||
- 'x11comp',
|
||||
- executable('test-x11comp', 'test/x11comp.c', dependencies: x11_test_dep),
|
||||
- executable('test-x11comp', 'test/x11comp.c', dependencies: x11_xvfb_test_dep),
|
||||
- env: test_env,
|
||||
- is_parallel : false,
|
||||
- )
|
||||
|
@ -23,7 +27,7 @@ index 2de4ee9..57c1038 100644
|
|||
if get_option('enable-xkbregistry')
|
||||
test(
|
||||
'registry',
|
||||
@@ -866,13 +852,6 @@ benchmark(
|
||||
@@ -1035,13 +1017,6 @@ benchmark(
|
||||
executable('bench-atom', 'bench/atom.c', dependencies: test_dep),
|
||||
env: bench_env,
|
||||
)
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/cctools/ld64/src/ld/Options.cpp b/cctools/ld64/src/ld/Options.cpp
|
||||
index 3bb8324..033760d 100644
|
||||
--- a/cctools/ld64/src/ld/Options.cpp
|
||||
+++ b/cctools/ld64/src/ld/Options.cpp
|
||||
@@ -4279,7 +4279,6 @@ void Options::buildSearchPaths(int argc, const char* argv[])
|
||||
fVerbose = true;
|
||||
extern const char ldVersionString[];
|
||||
fprintf(stderr, "%s", ldVersionString);
|
||||
- fprintf(stderr, "BUILD " __TIME__ " " __DATE__"\n");
|
||||
fprintf(stderr, "configured to support archs: %s\n", ALL_SUPPORTED_ARCHS);
|
||||
// if only -v specified, exit cleanly
|
||||
if ( argc == 2 ) {
|
|
@ -1,25 +0,0 @@
|
|||
diff --git a/src/llvm/CMakeLists.txt b/src/llvm/CMakeLists.txt
|
||||
index ab92717c8..dff3a292a 100644
|
||||
--- a/src/llvm/CMakeLists.txt
|
||||
+++ b/src/llvm/CMakeLists.txt
|
||||
@@ -754,7 +754,6 @@ set(LLVM_SRPM_DIR "${CMAKE_CURRENT_BINARY_DIR}/srpm")
|
||||
|
||||
# SVN_REVISION and GIT_COMMIT get set by the call to add_version_info_from_vcs.
|
||||
# DUMMY_VAR contains a version string which we don't care about.
|
||||
-add_version_info_from_vcs(DUMMY_VAR)
|
||||
if ( SVN_REVISION )
|
||||
set(LLVM_RPM_SPEC_REVISION "r${SVN_REVISION}")
|
||||
elseif ( GIT_COMMIT )
|
||||
diff --git a/src/llvm/cmake/modules/GenerateVersionFromCVS.cmake b/src/llvm/cmake/modules/GenerateVersionFromCVS.cmake
|
||||
index 6b1c71983..e16326ed6 100644
|
||||
--- a/src/llvm/cmake/modules/GenerateVersionFromCVS.cmake
|
||||
+++ b/src/llvm/cmake/modules/GenerateVersionFromCVS.cmake
|
||||
@@ -24,7 +24,7 @@ include(VersionFromVCS)
|
||||
set(ENV{TERM} "dumb")
|
||||
|
||||
function(append_info name path)
|
||||
- add_version_info_from_vcs(REVISION ${path})
|
||||
+ set(REVISION "git-0000000")
|
||||
string(STRIP "${REVISION}" REVISION)
|
||||
file(APPEND "${HEADER_FILE}.txt"
|
||||
"#define ${name} \"${REVISION}\"\n")
|
|
@ -1,16 +0,0 @@
|
|||
diff --git a/qtbase/configure b/qtbase/configure
|
||||
index e57707dc..d8f6c934 100755
|
||||
--- a/qtbase/configure
|
||||
+++ b/qtbase/configure
|
||||
@@ -9,9 +9,9 @@
|
||||
|
||||
# the directory of this script is the "source tree"
|
||||
relpath=`dirname "$0"`
|
||||
-relpath=`(cd "$relpath"; /bin/pwd)`
|
||||
+relpath=`(cd "$relpath"; pwd)`
|
||||
# the current directory is the "build tree" or "object tree"
|
||||
-outpath=`/bin/pwd`
|
||||
+outpath=`pwd`
|
||||
outpathPrefix=$outpath
|
||||
|
||||
# do this early so we don't store it in config.status
|
|
@ -32,7 +32,7 @@ list(APPEND CMAKE_MODULE_PATH "${__qt6_qtbase_src_path}/cmake/3rdparty/kwin")
|
|||
set(QT_NO_CREATE_TARGETS TRUE)
|
||||
set(QT_SUPERBUILD TRUE)
|
||||
|
||||
set(QT_BUILD_SUBMODULES "qtbase;qtsvg;qtshadertools;qtmultimedia" CACHE STRING "Submodules to build")
|
||||
set(QT_BUILD_SUBMODULES "qtbase;qtsvg;qtshadertools;qtmultimedia;qtwayland" CACHE STRING "Submodules to build")
|
||||
|
||||
foreach(module IN LISTS QT_BUILD_SUBMODULES)
|
||||
message(NOTICE "Configuring '${module}'")
|
||||
|
|
20
contrib/depends/patches/native_wayland/toolchain.txt
Normal file
20
contrib/depends/patches/native_wayland/toolchain.txt
Normal file
|
@ -0,0 +1,20 @@
|
|||
[binaries]
|
||||
c = '@cc@'
|
||||
cpp = '@cxx@'
|
||||
ar = '@ar@'
|
||||
strip = '@strip@'
|
||||
pkgconfig = '/home/user/.guix-profile/bin/pkg-config'
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = '@arch@'
|
||||
cpu = '@arch@'
|
||||
endian = 'little'
|
||||
|
||||
[project options]
|
||||
tests = false
|
||||
documentation = false
|
||||
dtd_validation = false
|
||||
|
||||
[built-in options]
|
||||
prefix = '@build_prefix@'
|
47
contrib/depends/patches/qt/disable-qmake.patch
Normal file
47
contrib/depends/patches/qt/disable-qmake.patch
Normal file
|
@ -0,0 +1,47 @@
|
|||
diff --git a/cmake/QtBaseHelpers.cmake b/cmake/QtBaseHelpers.cmake
|
||||
index 4b48f8f176..63e445e346 100644
|
||||
--- a/cmake/QtBaseHelpers.cmake
|
||||
+++ b/cmake/QtBaseHelpers.cmake
|
||||
@@ -212,7 +212,7 @@ macro(qt_internal_qtbase_build_repo)
|
||||
endif()
|
||||
|
||||
if(NOT QT_INTERNAL_BUILD_STANDALONE_PARTS)
|
||||
- if(QT_FEATURE_settings)
|
||||
+ if(QT_WILL_BUILD_TOOLS AND QT_FEATURE_settings)
|
||||
add_subdirectory(qmake)
|
||||
endif()
|
||||
|
||||
diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt
|
||||
index 9334ca72ab..801b4f7647 100644
|
||||
--- a/qmake/CMakeLists.txt
|
||||
+++ b/qmake/CMakeLists.txt
|
||||
@@ -112,19 +112,6 @@ qt_internal_add_tool(${target_name}
|
||||
generators/win32/msvc_objectmodel.cpp # xml symbols clash with generators/win32/msbuild_objectmodel.cpp
|
||||
library/qmakeparser.cpp # struct statics clashes with qmakeevaluator_p.h
|
||||
)
|
||||
-
|
||||
-# When we don't build tools, we still want to be able to build the documentation.
|
||||
-# Add a fake interface library to make sure the documentation target is created.
|
||||
-# We use the direct name rather than ${target_name} to ensure the doc target keeps
|
||||
-# the original name even when cross-building.
|
||||
-if(NOT TARGET qmake)
|
||||
- add_library(qmake INTERFACE)
|
||||
-endif()
|
||||
-
|
||||
-qt_internal_add_docs(qmake
|
||||
- doc/qmake.qdocconf
|
||||
-)
|
||||
-
|
||||
qt_internal_return_unless_building_tools()
|
||||
|
||||
#### Keys ignored in scope 1:.:.:qmake.pro:<TRUE>:
|
||||
@@ -154,3 +141,6 @@ set_target_properties(${target_name} PROPERTIES
|
||||
qt_internal_apply_gc_binaries(${target_name} PRIVATE)
|
||||
qt_skip_warnings_are_errors(${target_name})
|
||||
|
||||
+qt_internal_add_docs(${target_name}
|
||||
+ doc/qmake.qdocconf
|
||||
+)
|
||||
--
|
||||
2.46.2
|
||||
|
15
contrib/depends/patches/qt/macos-available-qtbase.patch
Normal file
15
contrib/depends/patches/qt/macos-available-qtbase.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
diff --git a/src/gui/rhi/qrhimetal.mm b/src/gui/rhi/qrhimetal.mm
|
||||
index 3046b76427..8c1e7fd13f 100644
|
||||
--- a/src/gui/rhi/qrhimetal.mm
|
||||
+++ b/src/gui/rhi/qrhimetal.mm
|
||||
@@ -4710,10 +4710,6 @@ id<MTLLibrary> QRhiMetalData::createMetalLib(const QShader &shader, QShader::Var
|
||||
QString *error, QByteArray *entryPoint, QShaderKey *activeKey)
|
||||
{
|
||||
QVarLengthArray<int, 8> versions;
|
||||
- if (@available(macOS 13, iOS 16, *))
|
||||
- versions << 30;
|
||||
- if (@available(macOS 12, iOS 15, *))
|
||||
- versions << 24;
|
||||
versions << 23 << 22 << 21 << 20 << 12;
|
||||
|
||||
const QList<QShaderKey> shaders = shader.availableShaders();
|
|
@ -0,0 +1,19 @@
|
|||
diff --git a/src/plugins/multimedia/darwin/camera/qavfcamerabase.mm b/src/plugins/multimedia/darwin/camera/qavfcamerabase.mm
|
||||
index 940a964b7..bab2cebe0 100644
|
||||
--- a/src/plugins/multimedia/darwin/camera/qavfcamerabase.mm
|
||||
+++ b/src/plugins/multimedia/darwin/camera/qavfcamerabase.mm
|
||||
@@ -176,14 +176,6 @@ void QAVFVideoDevices::updateCameraDevices()
|
||||
#endif
|
||||
];
|
||||
|
||||
-#if QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_14_0, __IPHONE_17_0, __TVOS_NA, __WATCHOS_NA)
|
||||
- if (@available(macOS 14, iOS 17, *)) {
|
||||
- discoveryDevices = [discoveryDevices arrayByAddingObjectsFromArray: @[
|
||||
- AVCaptureDeviceTypeExternal,
|
||||
- AVCaptureDeviceTypeContinuityCamera
|
||||
- ]];
|
||||
- } else
|
||||
-#endif
|
||||
{
|
||||
#ifdef Q_OS_MACOS
|
||||
QT_WARNING_PUSH
|
|
@ -1,58 +1,41 @@
|
|||
From 677c6d3e58064e9d10472e5ca75380b31631d12a Mon Sep 17 00:00:00 2001
|
||||
From: tobtoht <tob@featherwallet.org>
|
||||
Date: Tue, 3 Jan 2023 13:00:51 +0100
|
||||
Subject: [PATCH] qtmultimedia fixes
|
||||
|
||||
---
|
||||
src/multimedia/configure.cmake | 3 +--
|
||||
src/multimedia/windows/qwindowsmediadevices.cpp | 2 +-
|
||||
src/multimedia/windows/qwindowsresampler.cpp | 2 +-
|
||||
src/plugins/multimedia/darwin/qdarwinintegration.mm | 3 +--
|
||||
src/plugins/multimedia/windows/common/mfmetadata_p.h | 2 +-
|
||||
.../windows/decoder/mfaudiodecodercontrol.cpp | 2 +-
|
||||
.../windows/mediacapture/qwindowsmediadevicereader_p.h | 4 ++--
|
||||
.../windows/mediacapture/qwindowsmediaencoder.cpp | 2 +-
|
||||
.../multimedia/windows/player/mfplayercontrol_p.h | 2 +-
|
||||
.../multimedia/windows/player/mfplayersession.cpp | 2 +-
|
||||
src/plugins/multimedia/windows/player/mftvideo.cpp | 2 +-
|
||||
.../multimedia/windows/qwindowsvideodevices.cpp | 4 ++--
|
||||
13 files changed, 19 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/src/multimedia/configure.cmake b/src/multimedia/configure.cmake
|
||||
index 609806507..40b1b9b36 100644
|
||||
index fd69e8186..23657d9f5 100644
|
||||
--- a/src/multimedia/configure.cmake
|
||||
+++ b/src/multimedia/configure.cmake
|
||||
@@ -24,7 +24,6 @@ qt_find_package(WrapPulseAudio PROVIDED_TARGETS WrapPulseAudio::WrapPulseAudio M
|
||||
qt_find_package(WMF PROVIDED_TARGETS WMF::WMF MODULE_NAME multimedia QMAKE_LIB wmf)
|
||||
qt_find_package(EGL)
|
||||
|
||||
-qt_find_package(FFmpeg OPTIONAL_COMPONENTS AVCODEC AVFORMAT AVUTIL SWRESAMPLE SWSCALE PROVIDED_TARGETS FFmpeg::avcodec FFmpeg::avformat FFmpeg::avutil FFmpeg::swresample FFmpeg::swscale MODULE_NAME multimedia QMAKE_LIB ffmpeg)
|
||||
@@ -65,27 +65,6 @@ if(TARGET EGL::EGL)
|
||||
endif()
|
||||
qt_find_package(EGL PROVIDED_TARGETS EGL::EGL)
|
||||
|
||||
-# If FFMPEG_DIR is specified, we require FFmpeg to be present. This makes
|
||||
-# configuration problems easier to detect, and reduces risk of silent
|
||||
-# fallback to native backends.
|
||||
-if (DEFINED FFMPEG_DIR)
|
||||
- set(ffmpeg_required REQUIRED)
|
||||
-endif()
|
||||
-
|
||||
-qt_find_package(FFmpeg OPTIONAL_COMPONENTS AVCODEC AVFORMAT AVUTIL SWRESAMPLE SWSCALE PROVIDED_TARGETS FFmpeg::avcodec FFmpeg::avformat FFmpeg::avutil FFmpeg::swresample FFmpeg::swscale MODULE_NAME multimedia QMAKE_LIB ffmpeg ${ffmpeg_required})
|
||||
-qt_find_package_extend_sbom(
|
||||
- TARGETS
|
||||
- FFmpeg::avcodec
|
||||
- FFmpeg::avformat
|
||||
- FFmpeg::avutil
|
||||
- FFmpeg::swresample
|
||||
- FFmpeg::swscale
|
||||
- ATTRIBUTION_FILE_DIR_PATHS
|
||||
- # Need to pass an absolute path here, otherwise the file will be relative to the root of
|
||||
- # the source tree, not the current dir, because system libraries are processed in the
|
||||
- # source root directory.
|
||||
- ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/ffmpeg
|
||||
-)
|
||||
qt_find_package(PipeWire PROVIDED_TARGETS PipeWire::PipeWire MODULE_NAME multimedia QMAKE_LIB pipewire)
|
||||
qt_find_package(VAAPI COMPONENTS VA DRM PROVIDED_TARGETS VAAPI::VAAPI MODULE_NAME multimedia QMAKE_LIB vaapi)
|
||||
|
||||
#### Tests
|
||||
@@ -76,7 +75,7 @@ qt_feature("ffmpeg" PRIVATE
|
||||
|
||||
@@ -138,7 +117,7 @@ qt_feature("ffmpeg" PRIVATE
|
||||
LABEL "FFmpeg"
|
||||
ENABLE INPUT_ffmpeg STREQUAL 'yes'
|
||||
DISABLE INPUT_ffmpeg STREQUAL 'no'
|
||||
- CONDITION FFmpeg_FOUND AND (APPLE OR WIN32 OR ANDROID OR QNX OR QT_FEATURE_pulseaudio)
|
||||
+ CONDITION UNIX OR WIN32
|
||||
)
|
||||
qt_feature("alsa" PUBLIC PRIVATE
|
||||
LABEL "ALSA (experimental)"
|
||||
diff --git a/src/plugins/multimedia/darwin/qdarwinintegration.mm b/src/plugins/multimedia/darwin/qdarwinintegration.mm
|
||||
index 5e26fe5c4..3e82655b0 100644
|
||||
--- a/src/plugins/multimedia/darwin/qdarwinintegration.mm
|
||||
+++ b/src/plugins/multimedia/darwin/qdarwinintegration.mm
|
||||
@@ -39,8 +39,7 @@ public:
|
||||
QDarwinIntegration::QDarwinIntegration()
|
||||
{
|
||||
#if defined(Q_OS_MACOS) && QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_11_0)
|
||||
- if (__builtin_available(macOS 11.0, *))
|
||||
- VTRegisterSupplementalVideoDecoderIfAvailable(kCMVideoCodecType_VP9);
|
||||
+ VTRegisterSupplementalVideoDecoderIfAvailable(kCMVideoCodecType_VP9);
|
||||
#endif
|
||||
m_videoDevices = new QAVFVideoDevices(this);
|
||||
}
|
||||
--
|
||||
2.39.0
|
||||
|
||||
qt_feature("pipewire" PRIVATE
|
||||
LABEL "PipeWire"
|
||||
|
|
15
contrib/depends/patches/qt/qtwayland-tabletevent-fix.patch
Normal file
15
contrib/depends/patches/qt/qtwayland-tabletevent-fix.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
|
||||
index f435b953..068834c2 100644
|
||||
--- a/src/client/qwaylandinputdevice.cpp
|
||||
+++ b/src/client/qwaylandinputdevice.cpp
|
||||
@@ -609,8 +609,10 @@ void QWaylandInputDevice::setCursor(const QCursor *cursor, const QSharedPointer<
|
||||
if (mPointer)
|
||||
mPointer->updateCursor();
|
||||
|
||||
+#if QT_CONFIG(tabletevent)
|
||||
if (mTabletSeat)
|
||||
mTabletSeat->updateCursor();
|
||||
+#endif
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
diff --git a/src/multimedia/darwin/qdarwinmediadevices.mm b/src/multimedia/darwin/qdarwinmediadevices.mm
|
||||
index b0a108935..3ab7e6c05 100644
|
||||
--- a/src/multimedia/darwin/qdarwinmediadevices.mm
|
||||
+++ b/src/multimedia/darwin/qdarwinmediadevices.mm
|
||||
@@ -39,11 +39,8 @@ static AudioDeviceID defaultAudioDevice(QAudioDevice::Mode mode)
|
||||
{
|
||||
const AudioObjectPropertySelector selector = (mode == QAudioDevice::Output) ? kAudioHardwarePropertyDefaultOutputDevice
|
||||
: kAudioHardwarePropertyDefaultInputDevice;
|
||||
- const AudioObjectPropertyAddress propertyAddress = {
|
||||
- selector,
|
||||
- kAudioObjectPropertyScopeGlobal,
|
||||
- kAudioObjectPropertyElementMain,
|
||||
- };
|
||||
+ const AudioObjectPropertyAddress propertyAddress = { selector, kAudioObjectPropertyScopeGlobal,
|
||||
+ kAudioObjectPropertyElementMaster };
|
||||
|
||||
if (auto audioDevice = getAudioObject<AudioDeviceID>(kAudioObjectSystemObject, propertyAddress,
|
||||
"Default Device")) {
|
||||
@@ -77,7 +74,7 @@ static QList<QAudioDevice> availableAudioDevices(QAudioDevice::Mode mode)
|
||||
|
||||
const AudioObjectPropertyAddress audioDevicesPropertyAddress = {
|
||||
kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal,
|
||||
- kAudioObjectPropertyElementMain
|
||||
+ kAudioObjectPropertyElementMaster
|
||||
};
|
||||
|
||||
if (auto audioDevices = getAudioData<AudioDeviceID>(
|
||||
@@ -130,11 +127,11 @@ static OSStatus audioDeviceChangeListener(AudioObjectID id, UInt32,
|
||||
|
||||
static constexpr AudioObjectPropertyAddress listenerAddresses[] = {
|
||||
{ kAudioHardwarePropertyDefaultInputDevice, kAudioObjectPropertyScopeGlobal,
|
||||
- kAudioObjectPropertyElementMain },
|
||||
+ kAudioObjectPropertyElementMaster },
|
||||
{ kAudioHardwarePropertyDefaultOutputDevice, kAudioObjectPropertyScopeGlobal,
|
||||
- kAudioObjectPropertyElementMain },
|
||||
+ kAudioObjectPropertyElementMaster },
|
||||
{ kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal,
|
||||
- kAudioObjectPropertyElementMain }
|
||||
+ kAudioObjectPropertyElementMaster }
|
||||
};
|
||||
|
||||
static void setAudioListeners(QDarwinMediaDevices &instance)
|
||||
diff --git a/src/multimedia/darwin/qmacosaudiodatautils_p.h b/src/multimedia/darwin/qmacosaudiodatautils_p.h
|
||||
index 8cc2f8440..5cd6fced2 100644
|
||||
--- a/src/multimedia/darwin/qmacosaudiodatautils_p.h
|
||||
+++ b/src/multimedia/darwin/qmacosaudiodatautils_p.h
|
||||
@@ -44,7 +44,7 @@ void printUnableToReadWarning(const char *logName, AudioObjectID objectID, const
|
||||
|
||||
inline static AudioObjectPropertyAddress
|
||||
makePropertyAddress(AudioObjectPropertySelector selector, QAudioDevice::Mode mode,
|
||||
- AudioObjectPropertyElement element = kAudioObjectPropertyElementMain)
|
||||
+ AudioObjectPropertyElement element = kAudioObjectPropertyElementMaster)
|
||||
{
|
||||
return { selector,
|
||||
mode == QAudioDevice::Input ? kAudioDevicePropertyScopeInput
|
|
@ -32,7 +32,7 @@ list(APPEND CMAKE_MODULE_PATH "${__qt6_qtbase_src_path}/cmake/3rdparty/kwin")
|
|||
set(QT_NO_CREATE_TARGETS TRUE)
|
||||
set(QT_SUPERBUILD TRUE)
|
||||
|
||||
set(QT_BUILD_SUBMODULES "qtbase;qtsvg;qtwebsockets;qtshadertools;qtmultimedia" CACHE STRING "Submodules to build")
|
||||
set(QT_BUILD_SUBMODULES "qtbase;qtsvg;qtwebsockets;qtshadertools;qtmultimedia;qtwayland" CACHE STRING "Submodules to build")
|
||||
|
||||
foreach(module IN LISTS QT_BUILD_SUBMODULES)
|
||||
message(NOTICE "Configuring '${module}'")
|
||||
|
|
|
@ -9,6 +9,8 @@ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH @host_prefix@)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
set(CMAKE_FIND_ROOT_PATH @host_prefix@;@wmf_libs@)
|
||||
endif()
|
||||
|
@ -25,6 +27,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|||
set(CMAKE_CXX_FLAGS "@cmake_cxx_flags@")
|
||||
set(CMAKE_OBJC_FLAGS "@cmake_c_flags@")
|
||||
set(CMAKE_OBJCXX_FLAGS "@cmake_cxx_flags@")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "@cmake_ld_flags@")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "@cmake_ld_flags@")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "@cmake_ld_flags@")
|
||||
SET(CMAKE_OSX_DEPLOYMENT_TARGET "11.0")
|
||||
|
||||
set(CMAKE_INSTALL_NAME_TOOL @target@-install_name_tool)
|
||||
endif()
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/src/plugins/multimedia/CMakeLists.txt b/src/plugins/multimedia/CMakeLists.txt
|
||||
index 5bc39c1f8..c74f2ff4c 100644
|
||||
index 5b163e98a..eac405570 100644
|
||||
--- a/src/plugins/multimedia/CMakeLists.txt
|
||||
+++ b/src/plugins/multimedia/CMakeLists.txt
|
||||
@@ -2,7 +2,7 @@
|
||||
|
@ -976,7 +976,7 @@ index 000000000..95b069b64
|
|||
+#endif // QFFMPEGMEDIAMETADATA_H
|
||||
diff --git a/src/plugins/multimedia/v4l2/qffmpegvideosink.cpp b/src/plugins/multimedia/v4l2/qffmpegvideosink.cpp
|
||||
new file mode 100644
|
||||
index 000000000..93e7ceeed
|
||||
index 000000000..128ce2f56
|
||||
--- /dev/null
|
||||
+++ b/src/plugins/multimedia/v4l2/qffmpegvideosink.cpp
|
||||
@@ -0,0 +1,17 @@
|
||||
|
@ -991,18 +991,18 @@ index 000000000..93e7ceeed
|
|||
+{
|
||||
+}
|
||||
+
|
||||
+void QFFmpegVideoSink::setVideoFrame(const QVideoFrame &frame)
|
||||
+void QFFmpegVideoSink::onVideoFrameChanged(const QVideoFrame &frame)
|
||||
+{
|
||||
+ QPlatformVideoSink::setVideoFrame(frame);
|
||||
+
|
||||
+}
|
||||
+
|
||||
+QT_END_NAMESPACE
|
||||
diff --git a/src/plugins/multimedia/v4l2/qffmpegvideosink_p.h b/src/plugins/multimedia/v4l2/qffmpegvideosink_p.h
|
||||
new file mode 100644
|
||||
index 000000000..cbaa810d7
|
||||
index 000000000..9eac79129
|
||||
--- /dev/null
|
||||
+++ b/src/plugins/multimedia/v4l2/qffmpegvideosink_p.h
|
||||
@@ -0,0 +1,39 @@
|
||||
@@ -0,0 +1,40 @@
|
||||
+// Copyright (C) 2021 The Qt Company Ltd.
|
||||
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
+
|
||||
|
@ -1035,7 +1035,8 @@ index 000000000..cbaa810d7
|
|||
+public:
|
||||
+ QFFmpegVideoSink(QVideoSink *sink);
|
||||
+
|
||||
+ void setVideoFrame(const QVideoFrame &frame) override;
|
||||
+protected:
|
||||
+ void onVideoFrameChanged(const QVideoFrame &frame) override;
|
||||
+};
|
||||
+
|
||||
+QT_END_NAMESPACE
|
||||
|
@ -1896,7 +1897,7 @@ index 000000000..79cc3cfa9
|
|||
+#endif // QV4L2CAMERA_H
|
||||
diff --git a/src/plugins/multimedia/v4l2/qv4l2cameradevices.cpp b/src/plugins/multimedia/v4l2/qv4l2cameradevices.cpp
|
||||
new file mode 100644
|
||||
index 000000000..44abde914
|
||||
index 000000000..c89ff69c6
|
||||
--- /dev/null
|
||||
+++ b/src/plugins/multimedia/v4l2/qv4l2cameradevices.cpp
|
||||
@@ -0,0 +1,168 @@
|
||||
|
@ -1941,7 +1942,7 @@ index 000000000..44abde914
|
|||
+ doCheckCameras();
|
||||
+}
|
||||
+
|
||||
+QList<QCameraDevice> QV4L2CameraDevices::videoDevices() const
|
||||
+QList<QCameraDevice> QV4L2CameraDevices::findVideoInputs() const
|
||||
+{
|
||||
+ return m_cameras;
|
||||
+}
|
||||
|
@ -1949,7 +1950,7 @@ index 000000000..44abde914
|
|||
+void QV4L2CameraDevices::checkCameras()
|
||||
+{
|
||||
+ if (doCheckCameras())
|
||||
+ emit videoInputsChanged();
|
||||
+ onVideoInputsChanged();
|
||||
+}
|
||||
+
|
||||
+bool QV4L2CameraDevices::doCheckCameras()
|
||||
|
@ -2070,10 +2071,10 @@ index 000000000..44abde914
|
|||
+#include "moc_qv4l2cameradevices_p.cpp"
|
||||
diff --git a/src/plugins/multimedia/v4l2/qv4l2cameradevices_p.h b/src/plugins/multimedia/v4l2/qv4l2cameradevices_p.h
|
||||
new file mode 100644
|
||||
index 000000000..ce424d3b6
|
||||
index 000000000..22ac44027
|
||||
--- /dev/null
|
||||
+++ b/src/plugins/multimedia/v4l2/qv4l2cameradevices_p.h
|
||||
@@ -0,0 +1,46 @@
|
||||
@@ -0,0 +1,47 @@
|
||||
+// Copyright (C) 2023 The Qt Company Ltd.
|
||||
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
+
|
||||
|
@ -2104,11 +2105,12 @@ index 000000000..ce424d3b6
|
|||
+public:
|
||||
+ QV4L2CameraDevices(QPlatformMediaIntegration *integration);
|
||||
+
|
||||
+ QList<QCameraDevice> videoDevices() const override;
|
||||
+
|
||||
+public Q_SLOTS:
|
||||
+ void checkCameras();
|
||||
+
|
||||
+protected:
|
||||
+ QList<QCameraDevice> findVideoInputs() const override;
|
||||
+
|
||||
+private:
|
||||
+ bool doCheckCameras();
|
||||
+
|
||||
|
|
|
@ -1,236 +0,0 @@
|
|||
diff --git a/util/data/msgencode.c b/util/data/msgencode.c
|
||||
index 898ff841..6d116fb5 100644
|
||||
--- a/util/data/msgencode.c
|
||||
+++ b/util/data/msgencode.c
|
||||
@@ -62,6 +62,10 @@
|
||||
#define RETVAL_TRUNC -4
|
||||
/** return code that means all is peachy keen. Equal to DNS rcode NOERROR */
|
||||
#define RETVAL_OK 0
|
||||
+/** Max compressions we are willing to perform; more than that will result
|
||||
+ * in semi-compressed messages, or truncated even on TCP for huge messages, to
|
||||
+ * avoid locking the CPU for long */
|
||||
+#define MAX_COMPRESSION_PER_MESSAGE 120
|
||||
|
||||
/**
|
||||
* Data structure to help domain name compression in outgoing messages.
|
||||
@@ -284,15 +288,17 @@ write_compressed_dname(sldns_buffer* pkt, uint8_t* dname, int labs,
|
||||
|
||||
/** compress owner name of RR, return RETVAL_OUTMEM RETVAL_TRUNC */
|
||||
static int
|
||||
-compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
|
||||
- struct regional* region, struct compress_tree_node** tree,
|
||||
- size_t owner_pos, uint16_t* owner_ptr, int owner_labs)
|
||||
+compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
|
||||
+ struct regional* region, struct compress_tree_node** tree,
|
||||
+ size_t owner_pos, uint16_t* owner_ptr, int owner_labs,
|
||||
+ size_t* compress_count)
|
||||
{
|
||||
struct compress_tree_node* p;
|
||||
struct compress_tree_node** insertpt = NULL;
|
||||
if(!*owner_ptr) {
|
||||
/* compress first time dname */
|
||||
- if((p = compress_tree_lookup(tree, key->rk.dname,
|
||||
+ if(*compress_count < MAX_COMPRESSION_PER_MESSAGE &&
|
||||
+ (p = compress_tree_lookup(tree, key->rk.dname,
|
||||
owner_labs, &insertpt))) {
|
||||
if(p->labs == owner_labs)
|
||||
/* avoid ptr chains, since some software is
|
||||
@@ -301,6 +307,7 @@ compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
|
||||
if(!write_compressed_dname(pkt, key->rk.dname,
|
||||
owner_labs, p))
|
||||
return RETVAL_TRUNC;
|
||||
+ (*compress_count)++;
|
||||
/* check if typeclass+4 ttl + rdatalen is available */
|
||||
if(sldns_buffer_remaining(pkt) < 4+4+2)
|
||||
return RETVAL_TRUNC;
|
||||
@@ -313,7 +320,8 @@ compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
|
||||
if(owner_pos <= PTR_MAX_OFFSET)
|
||||
*owner_ptr = htons(PTR_CREATE(owner_pos));
|
||||
}
|
||||
- if(!compress_tree_store(key->rk.dname, owner_labs,
|
||||
+ if(*compress_count < MAX_COMPRESSION_PER_MESSAGE &&
|
||||
+ !compress_tree_store(key->rk.dname, owner_labs,
|
||||
owner_pos, region, p, insertpt))
|
||||
return RETVAL_OUTMEM;
|
||||
} else {
|
||||
@@ -333,20 +341,24 @@ compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
|
||||
|
||||
/** compress any domain name to the packet, return RETVAL_* */
|
||||
static int
|
||||
-compress_any_dname(uint8_t* dname, sldns_buffer* pkt, int labs,
|
||||
- struct regional* region, struct compress_tree_node** tree)
|
||||
+compress_any_dname(uint8_t* dname, sldns_buffer* pkt, int labs,
|
||||
+ struct regional* region, struct compress_tree_node** tree,
|
||||
+ size_t* compress_count)
|
||||
{
|
||||
struct compress_tree_node* p;
|
||||
struct compress_tree_node** insertpt = NULL;
|
||||
size_t pos = sldns_buffer_position(pkt);
|
||||
- if((p = compress_tree_lookup(tree, dname, labs, &insertpt))) {
|
||||
+ if(*compress_count < MAX_COMPRESSION_PER_MESSAGE &&
|
||||
+ (p = compress_tree_lookup(tree, dname, labs, &insertpt))) {
|
||||
if(!write_compressed_dname(pkt, dname, labs, p))
|
||||
return RETVAL_TRUNC;
|
||||
+ (*compress_count)++;
|
||||
} else {
|
||||
if(!dname_buffer_write(pkt, dname))
|
||||
return RETVAL_TRUNC;
|
||||
}
|
||||
- if(!compress_tree_store(dname, labs, pos, region, p, insertpt))
|
||||
+ if(*compress_count < MAX_COMPRESSION_PER_MESSAGE &&
|
||||
+ !compress_tree_store(dname, labs, pos, region, p, insertpt))
|
||||
return RETVAL_OUTMEM;
|
||||
return RETVAL_OK;
|
||||
}
|
||||
@@ -364,9 +376,9 @@ type_rdata_compressable(struct ub_packed_rrset_key* key)
|
||||
|
||||
/** compress domain names in rdata, return RETVAL_* */
|
||||
static int
|
||||
-compress_rdata(sldns_buffer* pkt, uint8_t* rdata, size_t todolen,
|
||||
- struct regional* region, struct compress_tree_node** tree,
|
||||
- const sldns_rr_descriptor* desc)
|
||||
+compress_rdata(sldns_buffer* pkt, uint8_t* rdata, size_t todolen,
|
||||
+ struct regional* region, struct compress_tree_node** tree,
|
||||
+ const sldns_rr_descriptor* desc, size_t* compress_count)
|
||||
{
|
||||
int labs, r, rdf = 0;
|
||||
size_t dname_len, len, pos = sldns_buffer_position(pkt);
|
||||
@@ -380,8 +392,8 @@ compress_rdata(sldns_buffer* pkt, uint8_t* rdata, size_t todolen,
|
||||
switch(desc->_wireformat[rdf]) {
|
||||
case LDNS_RDF_TYPE_DNAME:
|
||||
labs = dname_count_size_labels(rdata, &dname_len);
|
||||
- if((r=compress_any_dname(rdata, pkt, labs, region,
|
||||
- tree)) != RETVAL_OK)
|
||||
+ if((r=compress_any_dname(rdata, pkt, labs, region,
|
||||
+ tree, compress_count)) != RETVAL_OK)
|
||||
return r;
|
||||
rdata += dname_len;
|
||||
todolen -= dname_len;
|
||||
@@ -449,7 +461,8 @@ static int
|
||||
packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
|
||||
uint16_t* num_rrs, time_t timenow, struct regional* region,
|
||||
int do_data, int do_sig, struct compress_tree_node** tree,
|
||||
- sldns_pkt_section s, uint16_t qtype, int dnssec, size_t rr_offset)
|
||||
+ sldns_pkt_section s, uint16_t qtype, int dnssec, size_t rr_offset,
|
||||
+ size_t* compress_count)
|
||||
{
|
||||
size_t i, j, owner_pos;
|
||||
int r, owner_labs;
|
||||
@@ -477,9 +490,9 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
|
||||
for(i=0; i<data->count; i++) {
|
||||
/* rrset roundrobin */
|
||||
j = (i + rr_offset) % data->count;
|
||||
- if((r=compress_owner(key, pkt, region, tree,
|
||||
- owner_pos, &owner_ptr, owner_labs))
|
||||
- != RETVAL_OK)
|
||||
+ if((r=compress_owner(key, pkt, region, tree,
|
||||
+ owner_pos, &owner_ptr, owner_labs,
|
||||
+ compress_count)) != RETVAL_OK)
|
||||
return r;
|
||||
sldns_buffer_write(pkt, &key->rk.type, 2);
|
||||
sldns_buffer_write(pkt, &key->rk.rrset_class, 2);
|
||||
@@ -489,8 +502,8 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
|
||||
else sldns_buffer_write_u32(pkt, data->rr_ttl[j]-adjust);
|
||||
if(c) {
|
||||
if((r=compress_rdata(pkt, data->rr_data[j],
|
||||
- data->rr_len[j], region, tree, c))
|
||||
- != RETVAL_OK)
|
||||
+ data->rr_len[j], region, tree, c,
|
||||
+ compress_count)) != RETVAL_OK)
|
||||
return r;
|
||||
} else {
|
||||
if(sldns_buffer_remaining(pkt) < data->rr_len[j])
|
||||
@@ -510,9 +523,9 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
|
||||
return RETVAL_TRUNC;
|
||||
sldns_buffer_write(pkt, &owner_ptr, 2);
|
||||
} else {
|
||||
- if((r=compress_any_dname(key->rk.dname,
|
||||
- pkt, owner_labs, region, tree))
|
||||
- != RETVAL_OK)
|
||||
+ if((r=compress_any_dname(key->rk.dname,
|
||||
+ pkt, owner_labs, region, tree,
|
||||
+ compress_count)) != RETVAL_OK)
|
||||
return r;
|
||||
if(sldns_buffer_remaining(pkt) <
|
||||
4+4+data->rr_len[i])
|
||||
@@ -544,7 +557,8 @@ static int
|
||||
insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs,
|
||||
sldns_buffer* pkt, size_t rrsets_before, time_t timenow,
|
||||
struct regional* region, struct compress_tree_node** tree,
|
||||
- sldns_pkt_section s, uint16_t qtype, int dnssec, size_t rr_offset)
|
||||
+ sldns_pkt_section s, uint16_t qtype, int dnssec, size_t rr_offset,
|
||||
+ size_t* compress_count)
|
||||
{
|
||||
int r;
|
||||
size_t i, setstart;
|
||||
@@ -560,7 +574,7 @@ insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs,
|
||||
setstart = sldns_buffer_position(pkt);
|
||||
if((r=packed_rrset_encode(rep->rrsets[rrsets_before+i],
|
||||
pkt, num_rrs, timenow, region, 1, 1, tree,
|
||||
- s, qtype, dnssec, rr_offset))
|
||||
+ s, qtype, dnssec, rr_offset, compress_count))
|
||||
!= RETVAL_OK) {
|
||||
/* Bad, but if due to size must set TC bit */
|
||||
/* trim off the rrset neatly. */
|
||||
@@ -573,7 +587,7 @@ insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs,
|
||||
setstart = sldns_buffer_position(pkt);
|
||||
if((r=packed_rrset_encode(rep->rrsets[rrsets_before+i],
|
||||
pkt, num_rrs, timenow, region, 1, 0, tree,
|
||||
- s, qtype, dnssec, rr_offset))
|
||||
+ s, qtype, dnssec, rr_offset, compress_count))
|
||||
!= RETVAL_OK) {
|
||||
sldns_buffer_set_position(pkt, setstart);
|
||||
return r;
|
||||
@@ -584,7 +598,7 @@ insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs,
|
||||
setstart = sldns_buffer_position(pkt);
|
||||
if((r=packed_rrset_encode(rep->rrsets[rrsets_before+i],
|
||||
pkt, num_rrs, timenow, region, 0, 1, tree,
|
||||
- s, qtype, dnssec, rr_offset))
|
||||
+ s, qtype, dnssec, rr_offset, compress_count))
|
||||
!= RETVAL_OK) {
|
||||
sldns_buffer_set_position(pkt, setstart);
|
||||
return r;
|
||||
@@ -677,6 +691,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
|
||||
struct compress_tree_node* tree = 0;
|
||||
int r;
|
||||
size_t rr_offset;
|
||||
+ size_t compress_count=0;
|
||||
|
||||
sldns_buffer_clear(buffer);
|
||||
if(udpsize < sldns_buffer_limit(buffer))
|
||||
@@ -723,7 +738,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
|
||||
arep.rrsets = &qinfo->local_alias->rrset;
|
||||
if((r=insert_section(&arep, 1, &ancount, buffer, 0,
|
||||
timezero, region, &tree, LDNS_SECTION_ANSWER,
|
||||
- qinfo->qtype, dnssec, rr_offset)) != RETVAL_OK) {
|
||||
+ qinfo->qtype, dnssec, rr_offset, &compress_count)) != RETVAL_OK) {
|
||||
if(r == RETVAL_TRUNC) {
|
||||
/* create truncated message */
|
||||
sldns_buffer_write_u16_at(buffer, 6, ancount);
|
||||
@@ -738,7 +753,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
|
||||
/* insert answer section */
|
||||
if((r=insert_section(rep, rep->an_numrrsets, &ancount, buffer,
|
||||
0, timenow, region, &tree, LDNS_SECTION_ANSWER, qinfo->qtype,
|
||||
- dnssec, rr_offset)) != RETVAL_OK) {
|
||||
+ dnssec, rr_offset, &compress_count)) != RETVAL_OK) {
|
||||
if(r == RETVAL_TRUNC) {
|
||||
/* create truncated message */
|
||||
sldns_buffer_write_u16_at(buffer, 6, ancount);
|
||||
@@ -756,7 +771,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
|
||||
if((r=insert_section(rep, rep->ns_numrrsets, &nscount, buffer,
|
||||
rep->an_numrrsets, timenow, region, &tree,
|
||||
LDNS_SECTION_AUTHORITY, qinfo->qtype,
|
||||
- dnssec, rr_offset)) != RETVAL_OK) {
|
||||
+ dnssec, rr_offset, &compress_count)) != RETVAL_OK) {
|
||||
if(r == RETVAL_TRUNC) {
|
||||
/* create truncated message */
|
||||
sldns_buffer_write_u16_at(buffer, 8, nscount);
|
||||
@@ -773,7 +788,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
|
||||
if((r=insert_section(rep, rep->ar_numrrsets, &arcount, buffer,
|
||||
rep->an_numrrsets + rep->ns_numrrsets, timenow, region,
|
||||
&tree, LDNS_SECTION_ADDITIONAL, qinfo->qtype,
|
||||
- dnssec, rr_offset)) != RETVAL_OK) {
|
||||
+ dnssec, rr_offset, &compress_count)) != RETVAL_OK) {
|
||||
if(r == RETVAL_TRUNC) {
|
||||
/* no need to set TC bit, this is the additional */
|
||||
sldns_buffer_write_u16_at(buffer, 10, arcount);
|
15
contrib/depends/patches/wayland/toolchain.txt
Normal file
15
contrib/depends/patches/wayland/toolchain.txt
Normal file
|
@ -0,0 +1,15 @@
|
|||
[binaries]
|
||||
c = '@cc@'
|
||||
cpp = '@cxx@'
|
||||
ar = '@ar@'
|
||||
strip = '@strip@'
|
||||
pkgconfig = '/home/user/.guix-profile/bin/pkg-config'
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = '@arch@'
|
||||
cpu = '@arch@'
|
||||
endian = 'little'
|
||||
|
||||
[built-in options]
|
||||
prefix = '@host_prefix@'
|
23
contrib/depends/patches/zlib/win-lib-name.patch
Normal file
23
contrib/depends/patches/zlib/win-lib-name.patch
Normal file
|
@ -0,0 +1,23 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 15ceebe..58414f6 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -167,15 +167,9 @@ if(NOT CYGWIN)
|
||||
set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION})
|
||||
endif()
|
||||
|
||||
-if(UNIX)
|
||||
- # On unix-like platforms the library is almost always called libz
|
||||
- set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
|
||||
- if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX))
|
||||
- set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
|
||||
- endif()
|
||||
-elseif(BUILD_SHARED_LIBS AND WIN32)
|
||||
- # Creates zlib1.dll when building shared library version
|
||||
- set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
|
||||
+set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
|
||||
+if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX))
|
||||
+ set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
|
||||
endif()
|
||||
|
||||
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
|
|
@ -94,28 +94,30 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|||
SET(BUILD_TAG "mac-x64")
|
||||
SET(CMAKE_OSX_ARCHITECTURES "x86_64")
|
||||
endif()
|
||||
SET(CMAKE_SYSTEM_VERSION 20.1)
|
||||
SET(_CMAKE_TOOLCHAIN_PREFIX @prefix@/native/bin/${CONF_TRIPLE}-)
|
||||
SET(CMAKE_C_COMPILER @CC@)
|
||||
SET(CMAKE_C_COMPILER_TARGET ${CLANG_TARGET})
|
||||
SET(CMAKE_C_FLAGS_INIT -B${_CMAKE_TOOLCHAIN_PREFIX})
|
||||
SET(CMAKE_CXX_COMPILER @CXX@ -stdlib=libc++ )
|
||||
SET(CMAKE_CXX_COMPILER_TARGET ${CLANG_TARGET})
|
||||
SET(CMAKE_CXX_FLAGS_INIT -B${_CMAKE_TOOLCHAIN_PREFIX})
|
||||
SET(CMAKE_C_FLAGS "@CFLAGS@")
|
||||
SET(CMAKE_CXX_COMPILER @CXX@ -stdlib=libc++)
|
||||
SET(CMAKE_CXX_FLAGS "@CXXFLAGS@")
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "@LDFLAGS@")
|
||||
SET(CMAKE_MODULE_LINKER_FLAGS "@LDFLAGS@")
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "@LDFLAGS@")
|
||||
SET(CMAKE_INSTALL_NAME_TOOL llvm-install-name-tool)
|
||||
SET(CMAKE_ASM_COMPILER clang)
|
||||
SET(CMAKE_ASM-ATT_COMPILER as)
|
||||
SET(CMAKE_ASM-ATT_COMPILER llvm-as)
|
||||
SET(CMAKE_ASM_COMPILER_TARGET ${CLANG_TARGET})
|
||||
SET(CMAKE_ASM-ATT_COMPILER_TARGET ${CLANG_TARGET})
|
||||
SET(CMAKE_AR @prefix@/native/bin/${CLANG_TARGET}-ar)
|
||||
SET(CMAKE_RANLIB @prefix@/native/bin/${CLANG_TARGET}-ranlib)
|
||||
SET(CMAKE_AR llvm-ar)
|
||||
SET(CMAKE_RANLIB llvm-ranlib)
|
||||
SET(APPLE True)
|
||||
SET(BUILD_64 ON)
|
||||
SET(BREW OFF)
|
||||
SET(PORT OFF)
|
||||
SET(CMAKE_OSX_SYSROOT "@prefix@/native/SDK")
|
||||
SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
|
||||
SET(CMAKE_OSX_DEPLOYMENT_TARGET "11.0")
|
||||
SET(CMAKE_CXX_STANDARD 17)
|
||||
SET(LLVM_ENABLE_PIC OFF)
|
||||
SET(LLVM_ENABLE_PIE OFF)
|
||||
else()
|
||||
SET(CMAKE_C_COMPILER @CC@)
|
||||
SET(CMAKE_CXX_COMPILER @CXX@)
|
||||
|
@ -150,16 +152,6 @@ if(ARCHITECTURE STREQUAL "riscv64")
|
|||
set(ARCH "rv64imafdc")
|
||||
endif()
|
||||
|
||||
if(ARCHITECTURE STREQUAL "i686")
|
||||
SET(ARCH_ID "i386")
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(BUILD_TAG "linux-x86")
|
||||
SET(LINUX_32 ON)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
set(BUILD_TAG "win-x32")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ARCHITECTURE STREQUAL "x86_64")
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(BUILD_TAG "linux-x64")
|
||||
|
|
4
contrib/flatpak/icons/gnome/window-close-symbolic.svg
Executable file
4
contrib/flatpak/icons/gnome/window-close-symbolic.svg
Executable file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 4h1.031c.255.011.51.129.688.313L8 6.592l2.312-2.28c.266-.231.447-.306.688-.313h1v1c0 .286-.034.55-.25.75L9.469 8.031l2.25 2.25c.188.188.281.454.281.719v1h-1c-.265 0-.53-.093-.719-.281L8 9.438l-2.281 2.28A1.015 1.015 0 015 12H4v-1c0-.265.093-.53.281-.719l2.281-2.25-2.28-2.281A.909.909 0 014 5z" color="#bebebe" fill="#2e3436" font-family="Andale Mono" font-weight="400" overflow="visible" style="text-decoration-line:none;text-indent:0;text-transform:none"/>
|
||||
</svg>
|
After (image error) Size: 582 B |
4
contrib/flatpak/icons/gnome/window-maximize-symbolic.svg
Executable file
4
contrib/flatpak/icons/gnome/window-maximize-symbolic.svg
Executable file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3.988 3.992v8.012H12V3.992zm2 2H10v4.012H5.988z" fill="#2e3436" font-family="sans-serif" font-weight="400" overflow="visible" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/>
|
||||
</svg>
|
After (image error) Size: 639 B |
4
contrib/flatpak/icons/gnome/window-minimize-symbolic.svg
Executable file
4
contrib/flatpak/icons/gnome/window-minimize-symbolic.svg
Executable file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 10.009h8v1.989H4z" fill="#2e3436" fill-rule="evenodd" overflow="visible"/>
|
||||
</svg>
|
After (image error) Size: 198 B |
4
contrib/flatpak/icons/gnome/window-restore-symbolic.svg
Executable file
4
contrib/flatpak/icons/gnome/window-restore-symbolic.svg
Executable file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4.988 4.992v6.012H11V4.992zm2 2H9v2.012H6.988z" fill="#2e3436" font-family="sans-serif" font-weight="400" overflow="visible" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/>
|
||||
</svg>
|
After (image error) Size: 638 B |
|
@ -32,13 +32,17 @@ cd files
|
|||
cp /feather/contrib/depends/x86_64-linux-gnu/bin/startup .
|
||||
|
||||
# Copy feather binary
|
||||
cp /feather-bin feather
|
||||
cp /outdir/feather feather
|
||||
|
||||
# Copy metadata
|
||||
cp -r /feather/contrib/flatpak/share .
|
||||
touch --no-dereference --date="@${SOURCE_DATE_EPOCH}" share/metainfo/${APP_ID}.metainfo.xml
|
||||
gzip -c share/metainfo/${APP_ID}.metainfo.xml > share/app-info/xmls/${APP_ID}.xml.gz
|
||||
|
||||
# Copy icons
|
||||
mkdir -p share/icons
|
||||
cp -r /feather/contrib/flatpak/icons/gnome share/icons
|
||||
|
||||
# Extract guix pack
|
||||
tar xf /pack .
|
||||
|
||||
|
@ -47,6 +51,7 @@ GUIX_PROFILE=$(get_store_path "profile")
|
|||
GUIX_GLIBC=$(get_store_path "glibc")
|
||||
GUIX_FONTCONFIG=$(get_store_path "fontconfig")
|
||||
GUIX_GCC=$(get_store_path "gcc")
|
||||
GUIX_KEYBOARD_CONFIG=$(get_store_path "keyboard-config")
|
||||
|
||||
# Patch Feather binary
|
||||
patchelf --set-interpreter "/${GUIX_GLIBC}/lib/ld-linux-x86-64.so.2" feather
|
||||
|
@ -82,6 +87,8 @@ ln -s "/run/host/fonts-cache" share/fonts-cache
|
|||
ln -s "/${GUIX_PROFILE}/share/locale" share/locale
|
||||
ln -s "/${GUIX_PROFILE}/share/xml" share/xml
|
||||
|
||||
ln -s "/${GUIX_KEYBOARD_CONFIG}/share/X11" share/X11
|
||||
|
||||
# Setup profile symlink
|
||||
ln -s "/${GUIX_PROFILE}" profile
|
||||
|
||||
|
|
|
@ -6,6 +6,6 @@ command=/app/startup
|
|||
|
||||
[Context]
|
||||
shared=network;ipc;
|
||||
sockets=x11;wayland;
|
||||
sockets=wayland;fallback-x11;
|
||||
devices=all;
|
||||
filesystems=~/Monero:create;
|
|
@ -46,24 +46,68 @@ $ git clone https://github.com/feather-wallet/feather
|
|||
$ cd feather
|
||||
```
|
||||
|
||||
### Before building
|
||||
|
||||
#### Ubuntu
|
||||
|
||||
On **Ubuntu**, you may run into the following error caused by [this Ubuntu bug](https://bugs.launchpad.net/ubuntu/+source/guix/+bug/2064115):
|
||||
|
||||
`guix environment: error: mount: mount "none" on "/tmp/guix-directory.Ile657": Permission denied`
|
||||
|
||||
To work around this issue, you need to create a permissive AppArmor profile for Guix:
|
||||
|
||||
```bash
|
||||
$ apt install apparmor-utils
|
||||
$ cat <<EOL >> /etc/apparmor.d/guix
|
||||
abi <abi/4.0>,
|
||||
include <tunables/global>
|
||||
|
||||
profile guix /usr/bin/guix flags=(unconfined) {
|
||||
userns,
|
||||
include if exists <local/guix>
|
||||
}
|
||||
EOL
|
||||
|
||||
$ /etc/init.d/apparmor reload
|
||||
$ aa-enforce guix
|
||||
```
|
||||
|
||||
#### Fedora
|
||||
|
||||
On **Fedora**, you may run into the following error:
|
||||
|
||||
`guix gc: error: remounting /gnu/store writable: Permission denied`
|
||||
|
||||
To work around this issue, you need to temporarily disable SELinux:
|
||||
|
||||
```bash
|
||||
sudo setenforce 0
|
||||
```
|
||||
|
||||
You can re-enable it after the build with:
|
||||
|
||||
```bash
|
||||
sudo setenforce 1
|
||||
```
|
||||
|
||||
### Run the build
|
||||
|
||||
To build all targets using all available cores:
|
||||
|
||||
```bash
|
||||
$ ./contrib/guix/guix-build
|
||||
$ make build
|
||||
```
|
||||
|
||||
To limit the number of threads to N:
|
||||
|
||||
```
|
||||
$ JOBS=N ./contrib/guix/guix-build
|
||||
$ JOBS=N make build
|
||||
```
|
||||
|
||||
To only build the x86_64 linux target:
|
||||
|
||||
```
|
||||
$ HOSTS="x86_64-linux-gnu" ./contrib/guix/guix-build
|
||||
$ HOSTS="x86_64-linux-gnu" make build
|
||||
```
|
||||
|
||||
More recognized environment variables can be found further below.
|
||||
|
@ -89,7 +133,7 @@ To build Feather Wallet reproducibly with all default options, invoke the
|
|||
following from the top of a clean repository:
|
||||
|
||||
```sh
|
||||
./contrib/guix/guix-build
|
||||
make build
|
||||
```
|
||||
|
||||
## Cleaning intermediate work directories
|
||||
|
@ -102,7 +146,7 @@ directories usually take up a large amount of disk space. Therefore, a
|
|||
worktree to save disk space:
|
||||
|
||||
```
|
||||
./contrib/guix/guix-clean
|
||||
make clean
|
||||
```
|
||||
|
||||
|
||||
|
@ -112,13 +156,10 @@ After you've cloned the `feather-sigs` repository, to attest to the current
|
|||
worktree's commit/tag:
|
||||
|
||||
```
|
||||
env GUIX_SIGS_REPO=<path/to/feather-sigs> SIGNER=<gpg-key-fingerprint>=<gh_username> ./contrib/guix/guix-attest
|
||||
make attest
|
||||
```
|
||||
|
||||
See `./contrib/guix/guix-attest --help` for more information on the various ways
|
||||
`guix-attest` can be invoked.
|
||||
|
||||
For a step-by-step walkthrough, see: https://paste.debian.net/plainh/2457c02c. Make sure to replace the version number
|
||||
For a step-by-step walkthrough, see: https://paste.debian.net/plainh/dfecbbcc. Make sure to replace the version number
|
||||
with the version you want to build.
|
||||
|
||||
## Verifying build output attestations
|
||||
|
@ -127,8 +168,8 @@ After at least one other signer has uploaded their signatures to the `feather-si
|
|||
repository:
|
||||
|
||||
```
|
||||
git -C <path/to/feather-sigs> pull
|
||||
env GUIX_SIGS_REPO=<path/to/feather-sigs> ./contrib/guix/guix-verify
|
||||
git submodule update --recursive
|
||||
make verify
|
||||
```
|
||||
|
||||
|
||||
|
@ -144,7 +185,7 @@ help with this situation, the `guix-build` script honours the `SOURCES_PATH`,
|
|||
depends tree so that you can do something like:
|
||||
|
||||
```sh
|
||||
env SOURCES_PATH="$HOME/depends-SOURCES_PATH" BASE_CACHE="$HOME/depends-BASE_CACHE" ./contrib/guix/guix-build
|
||||
env SOURCES_PATH="$HOME/depends-SOURCES_PATH" BASE_CACHE="$HOME/depends-BASE_CACHE" make build
|
||||
```
|
||||
|
||||
Note that the paths that these environment variables point to **must be
|
||||
|
@ -160,7 +201,7 @@ which case you can override the default list by setting the space-separated
|
|||
`HOSTS` environment variable:
|
||||
|
||||
```sh
|
||||
env HOSTS='x86_64-w64-mingw32 x86_64-apple-darwin' ./contrib/guix/guix-build
|
||||
env HOSTS='x86_64-w64-mingw32 x86_64-apple-darwin' make build
|
||||
```
|
||||
|
||||
See the [recognized environment variables][env-vars-list] section for more
|
||||
|
|
|
@ -39,54 +39,56 @@ cmd_usage() {
|
|||
cat <<EOF
|
||||
Synopsis:
|
||||
|
||||
env GUIX_SIGS_REPO=<path/to/feather-sigs> \\
|
||||
SIGNER=GPG_KEY_NAME[=SIGNER_NAME] \\
|
||||
env SIGNER=GPG_KEY_NAME[=SIGNER_NAME] \\
|
||||
[ NO_SIGN=1 ]
|
||||
./contrib/guix/guix-attest
|
||||
|
||||
Example w/o overriding signing name:
|
||||
|
||||
env GUIX_SIGS_REPO=/home/user/feather-sigs \\
|
||||
SIGNER=achow101 \\
|
||||
env SIGNER=achow101 \\
|
||||
./contrib/guix/guix-attest
|
||||
|
||||
Example overriding signing name:
|
||||
|
||||
env GUIX_SIGS_REPO=/home/user/feather-sigs \\
|
||||
SIGNER=0x96AB007F1A7ED999=dongcarl \\
|
||||
env SIGNER=0x96AB007F1A7ED999=dongcarl \\
|
||||
./contrib/guix/guix-attest
|
||||
|
||||
Example w/o signing, just creating SHA256SUMS:
|
||||
|
||||
env GUIX_SIGS_REPO=/home/user/feather-sigs \\
|
||||
SIGNER=achow101 \\
|
||||
env SIGNER=achow101 \\
|
||||
NO_SIGN=1 \\
|
||||
./contrib/guix/guix-attest
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
if [ -z "$GUIX_SIGS_REPO" ] || [ -z "$SIGNER" ]; then
|
||||
cmd_usage
|
||||
exit 1
|
||||
if [ -z "${SIGNER}" ]; then
|
||||
printf "Enter your GitHub username: "
|
||||
read -r signer
|
||||
|
||||
if [ -z "$signer" ]; then
|
||||
echo "ERR: signer name can't be empty"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "[HINT] To find your GPG fingerprint use:"
|
||||
echo "gpg --list-secret-keys --keyid-format=long"
|
||||
echo "It should look like: E87BD921CDD885C9D78A38C5E45B10DD027D2472"
|
||||
echo ""
|
||||
|
||||
printf "Enter fingerprint of your GPG key: "
|
||||
read -r fingerprint
|
||||
|
||||
export SIGNER="${fingerprint}=${signer}"
|
||||
wizard=1
|
||||
fi
|
||||
|
||||
################
|
||||
# GUIX_SIGS_REPO should exist as a directory
|
||||
################
|
||||
|
||||
if [ ! -d "$GUIX_SIGS_REPO" ]; then
|
||||
cat << EOF
|
||||
ERR: The specified GUIX_SIGS_REPO is not an existent directory:
|
||||
|
||||
'$GUIX_SIGS_REPO'
|
||||
|
||||
Hint: Please clone the feather-sigs repository and point to it with the
|
||||
GUIX_SIGS_REPO environment variable.
|
||||
|
||||
EOF
|
||||
cmd_usage
|
||||
exit 1
|
||||
if [ -n "$wizard" ]; then
|
||||
echo ""
|
||||
echo "Next time, invoke this command as:"
|
||||
echo "env SIGNER=${SIGNER} make attest"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
################
|
||||
|
@ -113,19 +115,15 @@ shopt -s nullglob
|
|||
sha256sum_fragments=( "$LOGDIR_BASE"/*/SHA256SUMS.part ) # This expands to an array of directories...
|
||||
shopt -u nullglob
|
||||
|
||||
noncodesigned_fragments=()
|
||||
codesigned_fragments=()
|
||||
fragments=()
|
||||
|
||||
if (( ${#sha256sum_fragments[@]} )); then
|
||||
echo "Found build output SHA256SUMS fragments:"
|
||||
for logdir in "${sha256sum_fragments[@]}"; do
|
||||
echo " '$logdir'"
|
||||
case "$logdir" in
|
||||
"$LOGDIR_BASE"/*-codesigned/SHA256SUMS.part)
|
||||
codesigned_fragments+=("$logdir")
|
||||
;;
|
||||
*)
|
||||
noncodesigned_fragments+=("$logdir")
|
||||
fragments+=("$logdir")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
@ -182,67 +180,40 @@ basenameify_SHA256SUMS() {
|
|||
sed -E 's@(^[[:xdigit:]]{64}[[:space:]]+).+/([^/]+$)@\1\2@'
|
||||
}
|
||||
|
||||
outsigdir="$GUIX_SIGS_REPO/$VERSION/$signer_name"
|
||||
outsigdir="external/feather-sigs/$VERSION/$signer_name"
|
||||
mkdir -p "$outsigdir"
|
||||
(
|
||||
cd "$outsigdir"
|
||||
|
||||
temp_noncodesigned="$(mktemp)"
|
||||
trap 'rm -rf -- "$temp_noncodesigned"' EXIT
|
||||
temp_file="$(mktemp)"
|
||||
trap 'rm -rf -- "$temp_file"' EXIT
|
||||
|
||||
if (( ${#noncodesigned_fragments[@]} )); then
|
||||
cat "${noncodesigned_fragments[@]}" \
|
||||
if (( ${#fragments[@]} )); then
|
||||
cat "${fragments[@]}" \
|
||||
| sort -u \
|
||||
| basenameify_SHA256SUMS \
|
||||
| sort -k2 \
|
||||
> "$temp_noncodesigned"
|
||||
if [ -e noncodesigned.SHA256SUMS ]; then
|
||||
# The SHA256SUMS already exists, make sure it's exactly what we
|
||||
# expect, error out if not
|
||||
if diff -u noncodesigned.SHA256SUMS "$temp_noncodesigned"; then
|
||||
echo "A noncodesigned.SHA256SUMS file already exists for '${VERSION}' and is up-to-date."
|
||||
else
|
||||
shasum_already_exists noncodesigned.SHA256SUMS
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
mv "$temp_noncodesigned" noncodesigned.SHA256SUMS
|
||||
fi
|
||||
else
|
||||
echo "ERR: No noncodesigned outputs found for '${VERSION}', exiting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
temp_all="$(mktemp)"
|
||||
trap 'rm -rf -- "$temp_all"' EXIT
|
||||
|
||||
if (( ${#codesigned_fragments[@]} )); then
|
||||
# Note: all.SHA256SUMS attests to all of $sha256sum_fragments, but is
|
||||
# not needed if there are no $codesigned_fragments
|
||||
cat "${sha256sum_fragments[@]}" \
|
||||
| sort -u \
|
||||
| sort -k2 \
|
||||
| basenameify_SHA256SUMS \
|
||||
> "$temp_all"
|
||||
> "$temp_file"
|
||||
if [ -e all.SHA256SUMS ]; then
|
||||
# The SHA256SUMS already exists, make sure it's exactly what we
|
||||
# expect, error out if not
|
||||
if diff -u all.SHA256SUMS "$temp_all"; then
|
||||
echo "An all.SHA256SUMS file already exists for '${VERSION}' and is up-to-date."
|
||||
if diff -u all.SHA256SUMS "$temp_file"; then
|
||||
echo "A SHA256SUMS file already exists for '${VERSION}' and is up-to-date."
|
||||
else
|
||||
shasum_already_exists all.SHA256SUMS
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
mv "$temp_all" all.SHA256SUMS
|
||||
mv "$temp_file" all.SHA256SUMS
|
||||
fi
|
||||
else
|
||||
# It is fine to have the codesigned outputs be missing (perhaps the
|
||||
# detached codesigs have not been published yet), just print a log
|
||||
# message instead of erroring out
|
||||
echo "INFO: No codesigned outputs found for '${VERSION}', skipping..."
|
||||
echo "ERR: No outputs found for '${VERSION}', exiting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
temp_all="$(mktemp)"
|
||||
trap 'rm -rf -- "$temp_all"' EXIT
|
||||
|
||||
if [ -z "$NO_SIGN" ]; then
|
||||
echo "Signing SHA256SUMS to produce SHA256SUMS.asc"
|
||||
for i in *.SHA256SUMS; do
|
||||
|
|
|
@ -79,7 +79,7 @@ mkdir -p "$VERSION_BASE"
|
|||
################
|
||||
|
||||
# Default to building for all supported HOSTs (overridable by environment)
|
||||
export HOSTS="${HOSTS:-i686-linux-gnu x86_64-linux-gnu aarch64-linux-gnu arm-linux-gnueabihf
|
||||
export HOSTS="${HOSTS:-x86_64-linux-gnu aarch64-linux-gnu arm-linux-gnueabihf
|
||||
x86_64-linux-gnu.no-tor-bundle
|
||||
x86_64-linux-gnu.pack
|
||||
riscv64-linux-gnu
|
||||
|
@ -447,6 +447,9 @@ EOF
|
|||
-- env HOST="$HOST" \
|
||||
DISTNAME="$DISTNAME" \
|
||||
JOBS="$JOBS" \
|
||||
VERSION="$VERSION" \
|
||||
COMMIT="$COMMIT" \
|
||||
TAG="$TAG" \
|
||||
COMMIT_TIMESTAMP="${COMMIT_TIMESTAMP:?unable to determine value}" \
|
||||
${V:+V=1} \
|
||||
${SOURCES_PATH:+SOURCES_PATH="$SOURCES_PATH"} \
|
||||
|
@ -461,7 +464,7 @@ EOF
|
|||
|
||||
case "$OPTIONS" in
|
||||
pack)
|
||||
FEATHER_BIN="$(outdir_for_host "$host")/feather"
|
||||
OUTDIR="$(outdir_for_host "$host")"
|
||||
export VERSION=${VERSION}
|
||||
time-machine pack -S /profile=. --manifest="${PWD}/contrib/guix/pack.scm"
|
||||
PACK=$(time-machine pack --manifest="${PWD}/contrib/guix/pack.scm")
|
||||
|
@ -473,7 +476,7 @@ EOF
|
|||
--share="$PACK"=/pack \
|
||||
--share="$(outdir_for_host "$host")"=/output \
|
||||
--share="$LOGDIR_BASE"=/logdir-base \
|
||||
--share="$FEATHER_BIN"=/feather-bin \
|
||||
--share="$OUTDIR"=/outdir \
|
||||
--keep-failed \
|
||||
--fallback \
|
||||
--user="user" \
|
||||
|
|
|
@ -37,34 +37,11 @@ Example overriding signer's manifest to use as base
|
|||
EOF
|
||||
}
|
||||
|
||||
if [ -z "$GUIX_SIGS_REPO" ]; then
|
||||
cmd_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
################
|
||||
# GUIX_SIGS_REPO should exist as a directory
|
||||
################
|
||||
|
||||
if [ ! -d "$GUIX_SIGS_REPO" ]; then
|
||||
cat << EOF
|
||||
ERR: The specified GUIX_SIGS_REPO is not an existent directory:
|
||||
|
||||
'$GUIX_SIGS_REPO'
|
||||
|
||||
Hint: Please clone the feather-sigs repository and point to it with the
|
||||
GUIX_SIGS_REPO environment variable.
|
||||
|
||||
EOF
|
||||
cmd_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
##############
|
||||
## Verify ##
|
||||
##############
|
||||
|
||||
OUTSIGDIR_BASE="${GUIX_SIGS_REPO}/${VERSION}"
|
||||
OUTSIGDIR_BASE="external/feather-sigs/${VERSION}"
|
||||
echo "Looking for signature directories in '${OUTSIGDIR_BASE}'"
|
||||
echo ""
|
||||
|
||||
|
@ -90,37 +67,6 @@ verify() {
|
|||
fi
|
||||
}
|
||||
|
||||
shopt -s nullglob
|
||||
all_noncodesigned=( "$OUTSIGDIR_BASE"/*/noncodesigned.SHA256SUMS )
|
||||
shopt -u nullglob
|
||||
|
||||
echo "--------------------"
|
||||
echo ""
|
||||
if (( ${#all_noncodesigned[@]} )); then
|
||||
compare_noncodesigned="${all_noncodesigned[0]}"
|
||||
if [[ -n "$SIGNER" ]]; then
|
||||
signer_noncodesigned="$OUTSIGDIR_BASE/$SIGNER/noncodesigned.SHA256SUMS"
|
||||
if [[ -f "$signer_noncodesigned" ]]; then
|
||||
echo "Using $SIGNER's manifest as the base to compare against"
|
||||
compare_noncodesigned="$signer_noncodesigned"
|
||||
else
|
||||
echo "Unable to find $SIGNER's manifest, using the first one found"
|
||||
fi
|
||||
else
|
||||
echo "No SIGNER provided, using the first manifest found"
|
||||
fi
|
||||
|
||||
for current_manifest in "${all_noncodesigned[@]}"; do
|
||||
verify "$compare_noncodesigned" "$current_manifest"
|
||||
done
|
||||
|
||||
echo "DONE: Checking output signatures for noncodesigned.SHA256SUMS"
|
||||
echo ""
|
||||
else
|
||||
echo "WARN: No signature directories with noncodesigned.SHA256SUMS found"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
shopt -s nullglob
|
||||
all_all=( "$OUTSIGDIR_BASE"/*/all.SHA256SUMS )
|
||||
shopt -u nullglob
|
||||
|
@ -145,14 +91,6 @@ if (( ${#all_all[@]} )); then
|
|||
verify "$compare_all" "$current_manifest"
|
||||
done
|
||||
|
||||
# Sanity check: there should be no entries that exist in
|
||||
# noncodesigned.SHA256SUMS that doesn't exist in all.SHA256SUMS
|
||||
if [[ "$(comm -23 <(sort "$compare_noncodesigned") <(sort "$compare_all") | wc -c)" -ne 0 ]]; then
|
||||
echo "ERR: There are unique lines in noncodesigned.SHA256SUMS which"
|
||||
echo " do not exist in all.SHA256SUMS, something went very wrong."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "DONE: Checking output signatures for all.SHA256SUMS"
|
||||
echo ""
|
||||
else
|
||||
|
@ -162,7 +100,7 @@ fi
|
|||
|
||||
echo "===================="
|
||||
echo ""
|
||||
if (( ${#all_noncodesigned[@]} + ${#all_all[@]} == 0 )); then
|
||||
if (( ${#all_all[@]} == 0 )); then
|
||||
echo "ERR: Unable to perform any verifications as no signature directories"
|
||||
echo " were found"
|
||||
echo ""
|
||||
|
|
|
@ -35,6 +35,8 @@ cat << EOF
|
|||
Required environment variables as seen inside the container:
|
||||
DIST_ARCHIVE_BASE: ${DIST_ARCHIVE_BASE:?not set}
|
||||
DISTNAME: ${DISTNAME:?not set}
|
||||
VERSION: ${VERSION:?not set}
|
||||
COMMIT: ${COMMIT:?not set}
|
||||
HOST: ${HOST:?not set}
|
||||
COMMIT_TIMESTAMP: ${COMMIT_TIMESTAMP:?not set}
|
||||
JOBS: ${JOBS:?not set}
|
||||
|
@ -44,8 +46,11 @@ Required environment variables as seen inside the container:
|
|||
OPTIONS: ${OPTIONS}
|
||||
EOF
|
||||
|
||||
mkdir -p ${DISTSRC}
|
||||
ln -s "${DISTSRC}" /distsrc
|
||||
|
||||
ACTUAL_OUTDIR="${OUTDIR}"
|
||||
OUTDIR="${DISTSRC}/output"
|
||||
OUTDIR="/distsrc/output"
|
||||
|
||||
# Use a fixed timestamp for depends builds so hashes match across commits that don't make changes to the build system
|
||||
export SOURCE_DATE_EPOCH=1397818193
|
||||
|
@ -78,8 +83,6 @@ store_path() {
|
|||
# includes/libs
|
||||
NATIVE_GCC="$(store_path gcc-toolchain)"
|
||||
NATIVE_GCC_STATIC="$(store_path gcc-toolchain static)"
|
||||
QT_LIBS="$(store_path xcb-util):$(store_path xcb-util-renderutil):$(store_path xcb-util-keysyms):$(store_path xcb-util-cursor):$(store_path xcb-util-image):$(store_path xcb-util-wm):"
|
||||
QT_LIBS_LIBS="$(echo "${QT_LIBS}" | sed 's/:/\/lib:/g')"
|
||||
|
||||
unset LIBRARY_PATH
|
||||
unset CPATH
|
||||
|
@ -93,8 +96,6 @@ export C_INCLUDE_PATH="${NATIVE_GCC}/include"
|
|||
export CPLUS_INCLUDE_PATH="${NATIVE_GCC}/include/c++:${NATIVE_GCC}/include"
|
||||
export OBJC_INCLUDE_PATH="${NATIVE_GCC}/include"
|
||||
export OBJCPLUS_INCLUDE_PATH="${NATIVE_GCC}/include/c++:${NATIVE_GCC}/include"
|
||||
export QT_LIBS
|
||||
export QT_LIBS_LIBS
|
||||
|
||||
prepend_to_search_env_var() {
|
||||
export "${1}=${2}${!1:+:}${!1}"
|
||||
|
@ -153,18 +154,7 @@ for p in "${PATHS[@]}"; do
|
|||
done
|
||||
|
||||
# Disable Guix ld auto-rpath behavior
|
||||
case "$HOST" in
|
||||
*darwin*)
|
||||
# The auto-rpath behavior is necessary for darwin builds as some native
|
||||
# tools built by depends refer to and depend on Guix-built native
|
||||
# libraries
|
||||
#
|
||||
# After the native packages in depends are built, the ld wrapper should
|
||||
# no longer affect our build, as clang would instead reach for
|
||||
# x86_64-apple-darwin-ld from cctools
|
||||
;;
|
||||
*) export GUIX_LD_WRAPPER_DISABLE_RPATH=yes ;;
|
||||
esac
|
||||
export GUIX_LD_WRAPPER_DISABLE_RPATH=yes
|
||||
|
||||
# Make /usr/bin if it doesn't exist
|
||||
[ -e /usr/bin ] || mkdir -p /usr/bin
|
||||
|
@ -184,7 +174,6 @@ case "$HOST" in
|
|||
riscv64-linux-gnu) echo /lib/ld-linux-riscv64-lp64d.so.1 ;;
|
||||
powerpc64-linux-gnu) echo /lib64/ld64.so.1;;
|
||||
powerpc64le-linux-gnu) echo /lib64/ld64.so.2;;
|
||||
i686-linux-gnu) echo /lib/ld-linux.so.2 ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
)
|
||||
|
@ -196,16 +185,6 @@ export GLIBC_DYNAMIC_LINKER=${glibc_dynamic_linker}
|
|||
# Environment variables for determinism
|
||||
export TAR_OPTIONS="--owner=0 --group=0 --numeric-owner --mtime='@${SOURCE_DATE_EPOCH}' --sort=name"
|
||||
export TZ="UTC"
|
||||
case "$HOST" in
|
||||
*darwin*)
|
||||
# cctools AR, unlike GNU binutils AR, does not have a deterministic mode
|
||||
# or a configure flag to enable determinism by default, it only
|
||||
# understands if this env-var is set or not. See:
|
||||
#
|
||||
# https://github.com/tpoechtrager/cctools-port/blob/55562e4073dea0fbfd0b20e0bf69ffe6390c7f97/cctools/ar/archive.c#L334
|
||||
export ZERO_AR_DATE=yes
|
||||
;;
|
||||
esac
|
||||
|
||||
####################
|
||||
# Depends Building #
|
||||
|
@ -238,7 +217,9 @@ make -C contrib/depends --jobs="$JOBS" HOST="$HOST" \
|
|||
x86_64_linux_RANLIB=x86_64-linux-gnu-gcc-ranlib \
|
||||
x86_64_linux_NM=x86_64-linux-gnu-gcc-nm \
|
||||
x86_64_linux_STRIP=x86_64-linux-gnu-strip \
|
||||
guix_ldflags="$HOST_LDFLAGS"
|
||||
guix_ldflags="$HOST_LDFLAGS" \
|
||||
build_CC="${NATIVE_GCC}/bin/gcc -isystem ${NATIVE_GCC}/include" \
|
||||
build_CXX="${NATIVE_GCC}/bin/g++ -isystem ${NATIVE_GCC}/include/c++ -isystem ${NATIVE_GCC}/include"
|
||||
|
||||
# Log the depends package hashes
|
||||
DEPENDS_PACKAGES="$(make -C contrib/depends --no-print-directory HOST="$HOST" print-all_packages)"
|
||||
|
@ -263,9 +244,7 @@ GIT_ARCHIVE="${DIST_ARCHIVE_BASE}/${DISTNAME}.tar.gz"
|
|||
# Create the source tarball if not already there
|
||||
if [ ! -e "$GIT_ARCHIVE" ]; then
|
||||
mkdir -p "$(dirname "$GIT_ARCHIVE")"
|
||||
git rev-parse --short=12 HEAD > githash.txt
|
||||
( git ls-files --recurse-submodules ; echo "githash.txt" ) \
|
||||
| cat \
|
||||
git ls-files --recurse-submodules \
|
||||
| sort \
|
||||
| tar --create --transform "s,^,${DISTNAME}/," --mode='u+rw,go+r-w,a+X' --files-from=- \
|
||||
| gzip -9n > ${GIT_ARCHIVE}
|
||||
|
@ -296,9 +275,8 @@ export USE_DEVICE_TREZOR_MANDATORY=1
|
|||
|
||||
# Make $HOST-specific native binaries from depends available in $PATH
|
||||
export PATH="${BASEPREFIX}/${HOST}/native/bin:${PATH}"
|
||||
mkdir -p "$DISTSRC"
|
||||
(
|
||||
cd "$DISTSRC"
|
||||
cd "/distsrc"
|
||||
|
||||
# Extract the source tarball
|
||||
tar --strip-components=1 -xf "${GIT_ARCHIVE}"
|
||||
|
@ -306,18 +284,23 @@ mkdir -p "$DISTSRC"
|
|||
# Setup the directory where our Bitcoin Core build for HOST will be
|
||||
# installed. This directory will also later serve as the input for our
|
||||
# binary tarballs.
|
||||
INSTALLPATH="${DISTSRC}/installed"
|
||||
INSTALLPATH="/distsrc/installed"
|
||||
mkdir -p "${INSTALLPATH}"
|
||||
|
||||
|
||||
# Set appropriate CMake options for build type
|
||||
CMAKEVARS="-DWITH_SCANNER=On -DCHECK_UPDATES=On -DSELF_CONTAINED=On -DDONATE_BEG=On -DFEATHER_TARGET_TRIPLET=${HOST} -DWITH_PLUGIN_REDDIT=Off"
|
||||
|
||||
if [[ -n "${TAG}" ]]; then
|
||||
CMAKEVARS+=" -DOFFICIAL_BUILD=On"
|
||||
fi
|
||||
|
||||
ANONDIST=""
|
||||
case "$HOST" in
|
||||
*mingw32)
|
||||
case "$OPTIONS" in
|
||||
installer)
|
||||
CMAKEVARS+=" -DPLATFORM_INSTALLER=On -DTOR_DIR=Off -DTOR_VERSION=Off"
|
||||
CMAKEVARS+=" -DPLATFORM_INSTALLER=On -DTOR_INSTALLED=On -DTOR_DIR=Off -DTOR_VERSION=Off"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
@ -336,6 +319,9 @@ mkdir -p "$DISTSRC"
|
|||
*gnueabihf)
|
||||
CMAKEVARS+=" -DNO_AES=On" # Raspberry Pi
|
||||
;;
|
||||
*darwin*)
|
||||
CMAKEVARS+=" -DTOR_DIR=Off -DTOR_VERSION=Off -DTOR_INSTALLED=On"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Configure this DISTSRC for $HOST
|
||||
|
@ -353,9 +339,6 @@ mkdir -p "$DISTSRC"
|
|||
|
||||
LINUX_ARCH=""
|
||||
case "$HOST" in
|
||||
i686-linux*)
|
||||
LINUX_ARCH="-x86"
|
||||
;;
|
||||
aarch64-linux*)
|
||||
LINUX_ARCH="-arm64"
|
||||
;;
|
||||
|
@ -394,8 +377,8 @@ mkdir -p "$DISTSRC"
|
|||
case "$OPTIONS" in
|
||||
installer)
|
||||
makensis -DCUR_PATH=$PWD -V2 contrib/installers/windows/setup.nsi
|
||||
cp contrib/installers/windows/FeatherWalletSetup-*.exe "${INSTALLPATH}/"
|
||||
mv contrib/installers/windows/FeatherWalletSetup-*.exe "${OUTDIR}/"
|
||||
cp contrib/installers/windows/FeatherWalletSetup.exe "${INSTALLPATH}/"
|
||||
mv contrib/installers/windows/FeatherWalletSetup.exe "${OUTDIR}/"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
@ -426,39 +409,75 @@ mkdir -p "$DISTSRC"
|
|||
case "$HOST" in
|
||||
*darwin*)
|
||||
mv "feather.app" "Feather.app"
|
||||
mkdir -p Feather.app/Contents/bin
|
||||
cp -a /feather/contrib/depends/${HOST}/Tor/libevent-2.1.7.dylib Feather.app/Contents/bin
|
||||
cp -a /feather/contrib/depends/${HOST}/Tor/tor Feather.app/Contents/bin
|
||||
chmod +x Feather.app/Contents/bin/tor
|
||||
;;
|
||||
esac
|
||||
|
||||
# Ad-hoc code signing
|
||||
case "$HOST" in
|
||||
arm64-apple-darwin)
|
||||
ldid -S -Cadhoc,linker-signed Feather.app
|
||||
;;
|
||||
esac
|
||||
# Code-signing
|
||||
if [[ -n "${TAG}" ]]; then
|
||||
if [[ "${TAG}" != *"-rc"* ]]; then
|
||||
case "$HOST" in
|
||||
*darwin*)
|
||||
signapple apply Feather.app "/distsrc/external/feather-codesigning/signatures/${HOST}/Feather.app"
|
||||
;;
|
||||
*mingw*)
|
||||
case "$OPTIONS" in
|
||||
installer)
|
||||
osslsigncode attach-signature \
|
||||
-in "FeatherWalletSetup.exe" \
|
||||
-out "FeatherWalletSetup.exe.tmp" \
|
||||
-CAfile "$GUIX_ENVIRONMENT/etc/ssl/certs/ca-certificates.crt" \
|
||||
-sigin "/distsrc/external/feather-codesigning/signatures/${HOST}/feather.installer.pem" || true
|
||||
cp FeatherWalletSetup.exe.tmp "${OUTDIR}/FeatherWalletSetup-${TAG}.exe"
|
||||
mv FeatherWalletSetup.exe.tmp "FeatherWalletSetup-${TAG}.exe"
|
||||
rm "${OUTDIR}/FeatherWalletSetup.exe"
|
||||
;;
|
||||
"")
|
||||
osslsigncode attach-signature \
|
||||
-in "feather.exe" \
|
||||
-out "feather.exe.tmp" \
|
||||
-CAfile "$GUIX_ENVIRONMENT/etc/ssl/certs/ca-certificates.crt" \
|
||||
-sigin "/distsrc/external/feather-codesigning/signatures/${HOST}/feather.pem" || true
|
||||
mv feather.exe.tmp feather.exe
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
# Finally, deterministically produce {non-,}debug binary tarballs ready
|
||||
# for release
|
||||
case "$HOST" in
|
||||
*mingw*)
|
||||
case "$OPTIONS" in
|
||||
installer)
|
||||
find . -print0 \
|
||||
| xargs -0r touch --no-dereference --date="@${SOURCE_DATE_EPOCH}"
|
||||
find . \
|
||||
| sort \
|
||||
| zip -X@ "${OUTDIR}/${DISTNAME}-win-installer.zip" \
|
||||
|| ( rm -f "${OUTDIR}/${DISTNAME}-win-installer.zip" && exit 1 )
|
||||
;;
|
||||
"")
|
||||
mv feather.exe ${DISTNAME}.exe && \
|
||||
find . -print0 \
|
||||
| xargs -0r touch --no-dereference --date="@${SOURCE_DATE_EPOCH}"
|
||||
find . \
|
||||
| sort \
|
||||
| zip -X@ "${OUTDIR}/${DISTNAME}-win.zip" \
|
||||
|| ( rm -f "${OUTDIR}/${DISTNAME}-win.zip" && exit 1 )
|
||||
;;
|
||||
esac
|
||||
if [[ "${TAG}" == *"-rc"* ]]; then
|
||||
if [ -z "$OPTIONS" ]; then
|
||||
mv feather.exe "${OUTDIR}/${DISTNAME}.exe"
|
||||
fi
|
||||
else
|
||||
case "$OPTIONS" in
|
||||
installer)
|
||||
find . -print0 \
|
||||
| xargs -0r touch --no-dereference --date="@${SOURCE_DATE_EPOCH}"
|
||||
find . \
|
||||
| sort \
|
||||
| zip -X@ "${OUTDIR}/${DISTNAME}-win-installer.zip" \
|
||||
|| ( rm -f "${OUTDIR}/${DISTNAME}-win-installer.zip" && exit 1 )
|
||||
;;
|
||||
"")
|
||||
mv feather.exe ${DISTNAME}.exe && \
|
||||
find . -print0 \
|
||||
| xargs -0r touch --no-dereference --date="@${SOURCE_DATE_EPOCH}"
|
||||
find . \
|
||||
| sort \
|
||||
| zip -X@ "${OUTDIR}/${DISTNAME}-win.zip" \
|
||||
|| ( rm -f "${OUTDIR}/${DISTNAME}-win.zip" && exit 1 )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
*linux*)
|
||||
if [ "$OPTIONS" != "pack" ]; then
|
||||
|
@ -509,6 +528,5 @@ mv --no-target-directory "$OUTDIR" "$ACTUAL_OUTDIR" \
|
|||
find "$ACTUAL_OUTDIR" -type f -not -name "*.txt"
|
||||
} | xargs realpath --relative-base="$PWD" \
|
||||
| xargs sha256sum \
|
||||
| sort -k2 \
|
||||
| sponge "$LOGDIR"/SHA256SUMS.part
|
||||
| sort -k2 -o "$LOGDIR"/SHA256SUMS.part
|
||||
)
|
||||
|
|
|
@ -50,8 +50,8 @@ fi
|
|||
# across time.
|
||||
time-machine() {
|
||||
# shellcheck disable=SC2086
|
||||
guix time-machine --url=https://github.com/tobtoht/guix.git \
|
||||
--commit=f0bb724211872cd6158fce6162e0b8c73efed126 \
|
||||
guix time-machine --url=https://github.com/monero-project/guix.git \
|
||||
--commit=639f79952e51a58b7fbca2a826dcc3df162300c1 \
|
||||
--cores="$JOBS" \
|
||||
--keep-failed \
|
||||
--fallback \
|
||||
|
@ -65,7 +65,16 @@ time-machine() {
|
|||
# Set common variables
|
||||
################
|
||||
|
||||
VERSION="${FORCE_VERSION:-$(git_head_version)}"
|
||||
COMMIT="$(git_head_commit)"
|
||||
TAG="$(git_head_tag)"
|
||||
|
||||
if [[ -n "${TAG}" ]]; then
|
||||
VERSION="${TAG}"
|
||||
else
|
||||
VERSION="${COMMIT}"
|
||||
fi
|
||||
|
||||
VERSION="${FORCE_VERSION:-${VERSION}}"
|
||||
DISTNAME="${DISTNAME:-feather-${VERSION}}"
|
||||
|
||||
VERSION_BASE_DIR="${VERSION_BASE_DIR:-${PWD}}"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue