mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
Merge pull request #6413
Mick Sayson (1): chore(CI): Use docker for CI scripts
This commit is contained in:
commit
e1287b94c7
25
.github/actions/build-docker-image/action.yml
vendored
Normal file
25
.github/actions/build-docker-image/action.yml
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
name: 'Build docker image'
|
||||
inputs:
|
||||
docker_image_name:
|
||||
description: "Name of docker image"
|
||||
required: True
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
- uses: docker/setup-buildx-action@master
|
||||
- name: Setup buildx cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
/tmp/.buildx-cache
|
||||
key: ${{ runner.os }}-${{ inputs.docker_image_name }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-${{ inputs.docker_image_name }}-
|
||||
- name: Build docker image
|
||||
shell: bash
|
||||
run: docker buildx bake --set *.cache-to=type=local,dest=/tmp/.buildx-cache-new,mode=max --set *.cache-from=type=local,src=/tmp/.buildx-cache -f docker-compose.yml ${{ inputs.docker_image_name }}
|
||||
- name: Replace buildx cache
|
||||
shell: bash
|
||||
run: |
|
||||
rm -fr /tmp/.buildx-cache
|
||||
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
|
18
.github/actions/load-docker-image/action.yml
vendored
Normal file
18
.github/actions/load-docker-image/action.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
name: 'Load docker image'
|
||||
inputs:
|
||||
docker_image_name:
|
||||
description: "Name of docker image"
|
||||
required: True
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
- uses: docker/setup-buildx-action@master
|
||||
- name: Setup buildx cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
/tmp/.buildx-cache
|
||||
key: ${{ runner.os }}-${{ inputs.docker_image_name }}-${{ github.sha }}
|
||||
- name: Load cached docker images
|
||||
shell: bash
|
||||
run: docker buildx bake --set *.cache-from=type=local,src=/tmp/.buildx-cache -f docker-compose.yml ${{ inputs.docker_image_name }} --load
|
390
.github/workflows/test.yaml
vendored
390
.github/workflows/test.yaml
vendored
@ -1,6 +1,296 @@
|
||||
name: Test
|
||||
on: [pull_request, push]
|
||||
jobs:
|
||||
build-flatpak-docker:
|
||||
name: Build flatpak docker
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/build-docker-image
|
||||
name: "Build docker image"
|
||||
with:
|
||||
docker_image_name: flatpak
|
||||
build-ubuntu-lts-docker:
|
||||
name: Build ubuntu LTS docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/build-docker-image
|
||||
name: "Build docker image"
|
||||
with:
|
||||
docker_image_name: ubuntu_lts
|
||||
build-debian-docker:
|
||||
name: Build debian docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/build-docker-image
|
||||
name: "Build docker image"
|
||||
with:
|
||||
docker_image_name: debian
|
||||
build-debian-old-docker:
|
||||
name: Build old debian docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/build-docker-image
|
||||
name: "Build docker image"
|
||||
with:
|
||||
docker_image_name: debian_old
|
||||
build-centos-docker:
|
||||
name: Build centos docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/build-docker-image
|
||||
name: "Build docker image"
|
||||
with:
|
||||
docker_image_name: centos
|
||||
build-fedora-docker:
|
||||
name: Build fedora docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/build-docker-image
|
||||
name: "Build docker image"
|
||||
with:
|
||||
docker_image_name: fedora
|
||||
build-opensuse-docker:
|
||||
name: Build opensuse docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/build-docker-image
|
||||
name: "Build docker image"
|
||||
with:
|
||||
docker_image_name: opensuse
|
||||
build-windows-docker:
|
||||
name: Build windows docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/build-docker-image
|
||||
name: "Build docker image"
|
||||
with:
|
||||
docker_image_name: windows_builder
|
||||
build-windows-i686-docker:
|
||||
name: Build 32 bit windows docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/build-docker-image
|
||||
name: "Build docker image"
|
||||
with:
|
||||
docker_image_name: windows_builder.i686
|
||||
build-centos:
|
||||
name: Centos
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-centos-docker
|
||||
strategy:
|
||||
matrix:
|
||||
features: [full, minimal]
|
||||
build_type: [Debug, Release]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: centos
|
||||
- name: Run build
|
||||
run: docker compose run --rm centos ./.travis/build-qtox-linux.sh --build-type ${{ matrix.build_type }} --${{ matrix.features }}
|
||||
build-fedora:
|
||||
name: Fedora
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-fedora-docker
|
||||
strategy:
|
||||
matrix:
|
||||
features: [full, minimal]
|
||||
build_type: [Debug, Release]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: fedora
|
||||
- name: Run build
|
||||
run: docker compose run --rm fedora ./.travis/build-qtox-linux.sh --build-type ${{ matrix.build_type }} --${{ matrix.features }}
|
||||
build-opensuse:
|
||||
name: Opensuse
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-opensuse-docker
|
||||
strategy:
|
||||
matrix:
|
||||
features: [full, minimal]
|
||||
build_type: [Debug, Release]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: opensuse
|
||||
- name: Run build
|
||||
run: docker compose run --rm opensuse ./.travis/build-qtox-linux.sh --build-type ${{ matrix.build_type }} --${{ matrix.features }}
|
||||
build-debian:
|
||||
name: Debian
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-debian-docker
|
||||
strategy:
|
||||
matrix:
|
||||
features: [full, minimal]
|
||||
build_type: [Debug, Release]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: debian
|
||||
- name: Run build
|
||||
run: docker compose run --rm debian ./.travis/build-qtox-linux.sh --build-type ${{ matrix.build_type }} --${{ matrix.features }}
|
||||
build-debian-old:
|
||||
name: Debian Old
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-debian-old-docker
|
||||
strategy:
|
||||
matrix:
|
||||
features: [full, minimal]
|
||||
build_type: [Debug, Release]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: debian_old
|
||||
- name: Run build
|
||||
run: docker compose run --rm debian_old ./.travis/build-qtox-linux.sh --build-type ${{ matrix.build_type }} --${{ matrix.features }}
|
||||
build-ubuntu:
|
||||
name: Ubuntu LTS
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-ubuntu-lts-docker
|
||||
strategy:
|
||||
matrix:
|
||||
features: [full, minimal]
|
||||
build_type: [Debug, Release]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: ubuntu_lts
|
||||
- name: Run build
|
||||
run: docker compose run --rm ubuntu_lts ./.travis/build-qtox-linux.sh --build-type ${{ matrix.build_type }} --${{ matrix.features }}
|
||||
- name: Code coverage
|
||||
run: |
|
||||
# https://github.com/actions/runner/issues/491
|
||||
if [ "${{ matrix.build_type }}" == "Release" ] && [ "${{ matrix.features }}" == "full" ]; then
|
||||
docker compose run --rm ubuntu_lts ./.travis/lcov.sh
|
||||
# Upload report to codecov.io
|
||||
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports"
|
||||
fi
|
||||
build-appimage:
|
||||
name: Appimage
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-ubuntu-lts-docker
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: ubuntu_lts
|
||||
- name: Run build
|
||||
run: docker compose run --rm ubuntu_lts ./appimage/build.sh --src-dir /qtox
|
||||
- name: Upload appimage
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: qTox-${{ github.sha }}.x86_64.AppImage
|
||||
path: qTox-*.x86_64.AppImage
|
||||
build-flatpak:
|
||||
name: Flatpak
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-flatpak-docker
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: flatpak
|
||||
- name: Run build
|
||||
run: docker compose run --rm flatpak ./flatpak/build.sh
|
||||
- name: Upload flatpak
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: qTox-${{ github.sha }}.x86_64.flatpak
|
||||
path: qtox.flatpak
|
||||
build-windows:
|
||||
name: Windows
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-windows-docker
|
||||
strategy:
|
||||
matrix:
|
||||
build_type: [debug, release]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: windows_builder
|
||||
- name: Run build
|
||||
run: docker compose run --rm windows_builder ./windows/cross-compile/build.sh --arch x86_64 --build-type ${{ matrix.build_type }} --src-dir /qtox
|
||||
- name: Upload installer
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: setup-qtox-x86_64-${{ matrix.build_type }}.exe
|
||||
path: package-prefix/setup-qtox.exe
|
||||
if-no-files-found: ignore
|
||||
- name: Upload zip
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: setup-qtox-x86_64-${{ matrix.build_type }}.zip
|
||||
path: install-prefix/qtox-x86_64-debug.zip
|
||||
if-no-files-found: ignore
|
||||
build-windows-i686:
|
||||
name: Windows i686
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-windows-i686-docker
|
||||
strategy:
|
||||
matrix:
|
||||
build_type: [debug, release]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/load-docker-image
|
||||
name: Load docker image
|
||||
with:
|
||||
docker_image_name: windows_builder.i686
|
||||
- name: Run build
|
||||
run: docker compose run --rm windows_builder.i686 ./windows/cross-compile/build.sh --arch i686 --build-type ${{ matrix.build_type }} --src-dir /qtox
|
||||
- name: Upload installer
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: setup-qtox-i686-${{ matrix.build_type }}.exe
|
||||
path: package-prefix/setup-qtox.exe
|
||||
if-no-files-found: ignore
|
||||
- name: Upload zip
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: setup-qtox-i686-${{ matrix.build_type }}.zip
|
||||
path: install-prefix/qtox-i686-debug.zip
|
||||
if-no-files-found: ignore
|
||||
build-osx:
|
||||
name: macOS
|
||||
runs-on: macos-10.15
|
||||
env:
|
||||
TRAVIS: true
|
||||
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: homebrew
|
||||
run: brew upgrade && brew bundle --file ./osx/Brewfile
|
||||
- name: Run
|
||||
run: ./.travis/build-osx.sh
|
||||
- name: Upload dmg
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: qTox-${{ github.sha }}.dmg
|
||||
path: qTox-Mac_Build/qTox.dmg
|
||||
build-docs:
|
||||
name: Docs
|
||||
runs-on: ubuntu-18.04
|
||||
@ -21,103 +311,3 @@ jobs:
|
||||
run: sudo apt-get install gitstats
|
||||
- name: Run
|
||||
run: ./.travis/build-gitstats.sh
|
||||
build-qtox:
|
||||
name: Linux
|
||||
runs-on: ubuntu-18.04
|
||||
env:
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install deps
|
||||
run: sudo apt-get install ccache lcov
|
||||
- name: Run
|
||||
run: ./.travis/build-ubuntu-16-04.sh
|
||||
- name: Code test coverage
|
||||
run: |
|
||||
# Create lcov report
|
||||
lcov --directory _build --capture --output-file coverage.info
|
||||
# Filter out system headers and test sources
|
||||
lcov --remove coverage.info '/usr/*' '*/test/*' '*/*_autogen/*' --output-file coverage.info
|
||||
# Upload report to codecov.io
|
||||
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports"
|
||||
build-osx:
|
||||
name: macOS
|
||||
runs-on: macos-10.15
|
||||
env:
|
||||
TRAVIS: true
|
||||
TRAVIS_BUILD_DIR: ${{ github.workspace }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: homebrew
|
||||
run: brew upgrade && brew bundle --file ./osx/Brewfile
|
||||
- name: Run
|
||||
run: ./.travis/build-osx.sh
|
||||
APPIMAGE:
|
||||
name: AppImage
|
||||
runs-on: ubuntu-18.04
|
||||
env:
|
||||
TRAVIS_TAG:
|
||||
TRAVIS_COMMIT: ${{ github.sha }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run
|
||||
run: ./appimage/build-appimage.sh
|
||||
FLATPAK:
|
||||
name: Flatpak
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run
|
||||
run: ./flatpak/build-flatpak.sh
|
||||
win-deps:
|
||||
name: Windows Deps
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [i686, x86_64]
|
||||
env:
|
||||
BUILD__: ${{ matrix.arch }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: cache
|
||||
key: deps-${{ matrix.arch }}-${{ hashFiles('windows/cross-compile/build.sh') }}-${{ hashFiles('.travis/build-windows.sh') }}
|
||||
- name: Install deps
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install zip tree
|
||||
- name: Deps build stage 1
|
||||
run: |
|
||||
./.travis/build-windows.sh "$BUILD__" "release" "cache/${BUILD__}" stage1
|
||||
- name: Deps build stage 2
|
||||
run: |
|
||||
./.travis/build-windows.sh "$BUILD__" "release" "cache/${BUILD__}" stage2
|
||||
ls -al cache
|
||||
win:
|
||||
name: Windows
|
||||
runs-on: ubuntu-latest
|
||||
needs: win-deps
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [i686, x86_64]
|
||||
type: [debug, release]
|
||||
env:
|
||||
BUILD__: ${{ matrix.arch }}
|
||||
BTYPE__: ${{ matrix.type }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Fetch cached dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: cache
|
||||
key: deps-${{ matrix.arch }}-${{ hashFiles('windows/cross-compile/build.sh') }}-${{ hashFiles('.travis/build-windows.sh') }}
|
||||
- name: qTox build
|
||||
run: |
|
||||
./.travis/build-windows.sh "$BUILD__" "$BTYPE__" "cache/${BUILD__}" stage3
|
||||
- name: Debug info
|
||||
run: |
|
||||
ls -al ~/
|
||||
tree ~/project/workspace -L 4
|
||||
|
77
.travis/build-qtox-linux.sh
Executable file
77
.travis/build-qtox-linux.sh
Executable file
@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage() {
|
||||
echo "$0 [--minimal|--full] --build-type [Debug|Release]"
|
||||
echo "Build script to build/test qtox from a CI environment."
|
||||
echo "--minimal or --full are requied, --build-type is required."
|
||||
}
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--minimal) MINIMAL=1 ; shift ;;
|
||||
--full) MINIMAL=0; shift ;;
|
||||
--build-type) BUILD_TYPE=$2; shift 2 ;;
|
||||
--help|-h) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "${MINIMAL+x}" ]; then
|
||||
echo "Please build either minimal or full version of qtox"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${BUILD_TYPE+x}" ]; then
|
||||
echo "Please spedify build type"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SRCDIR=/qtox
|
||||
BUILDDIR=/qtox/build
|
||||
|
||||
rm -fr "$BUILDDIR"
|
||||
mkdir -p "$BUILDDIR"
|
||||
cd "$BUILDDIR"
|
||||
|
||||
if [ $MINIMAL -eq 1 ]; then
|
||||
cmake "$SRCDIR" \
|
||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
||||
-DSMILEYS=DISABLED \
|
||||
-DSTRICT_OPTIONS=ON \
|
||||
-DSPELL_CHECK=OFF
|
||||
else
|
||||
cmake "$SRCDIR" \
|
||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
||||
-DUPDATE_CHECK=ON \
|
||||
-DSTRICT_OPTIONS=ON \
|
||||
-DCODE_COVERAGE=ON \
|
||||
-DDESKTOP_NOTIFICATIONS=ON
|
||||
fi
|
||||
|
||||
cmake --build . -- -j $(nproc)
|
||||
|
||||
cmake --build . --target test
|
||||
|
||||
echo "Checking whether files processed by CMake have been committed..."
|
||||
echo ""
|
||||
# ↓ `0` exit status only if there are no changes
|
||||
git diff --exit-code
|
@ -1,229 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright © 2015-2019 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# stop as soon as one of steps will fail
|
||||
set -e -o pipefail
|
||||
|
||||
sudo apt-get update -qq
|
||||
|
||||
# install needed Qt, OpenAL, opus, qrencode, GTK tray deps, sqlcipher
|
||||
# `--force-yes` since we don't care about GPG failing to work with short IDs
|
||||
sudo apt-get install -y --force-yes \
|
||||
automake \
|
||||
autotools-dev \
|
||||
build-essential \
|
||||
check \
|
||||
checkinstall \
|
||||
libexif-dev \
|
||||
libgdk-pixbuf2.0-dev \
|
||||
libglib2.0-dev \
|
||||
libgtk2.0-dev \
|
||||
libkdeui5 \
|
||||
libopenal-dev \
|
||||
libopus-dev \
|
||||
libqrencode-dev \
|
||||
libsqlcipher-dev \
|
||||
libtool \
|
||||
libvpx-dev \
|
||||
libxss-dev qrencode \
|
||||
qt5-default \
|
||||
qttools5-dev-tools \
|
||||
qttools5-dev \
|
||||
libqt5opengl5-dev \
|
||||
libqt5svg5-dev \
|
||||
pkg-config || yes
|
||||
|
||||
# ffmpeg
|
||||
if [ ! -e "libs" ]; then mkdir libs; fi
|
||||
if [ ! -e "ffmpeg" ]; then mkdir ffmpeg; fi
|
||||
#
|
||||
cd libs/
|
||||
export PREFIX_DIR="$PWD"
|
||||
#
|
||||
cd ../ffmpeg
|
||||
curl -o ffmpeg.bz2 http://ffmpeg.org/releases/ffmpeg-2.8.5.tar.bz2
|
||||
tar xf ffmpeg.bz2
|
||||
rm ffmpeg.bz2
|
||||
cd ffmpeg*
|
||||
# enabled:
|
||||
# v4l2 -> webcam
|
||||
# x11grab_xcb -> screen grabbing
|
||||
# demuxers, decoders and parsers needed for webcams:
|
||||
# mjpeg, h264
|
||||
|
||||
CC="ccache $CC" CXX="ccache $CXX" ./configure --prefix="$PREFIX_DIR" \
|
||||
--disable-avfilter \
|
||||
--disable-avresample \
|
||||
--disable-bzlib \
|
||||
--disable-bsfs \
|
||||
--disable-dct \
|
||||
--disable-decoders \
|
||||
--disable-demuxers \
|
||||
--disable-doc \
|
||||
--disable-dwt \
|
||||
--disable-encoders \
|
||||
--disable-faan \
|
||||
--disable-fft \
|
||||
--disable-filters \
|
||||
--disable-iconv \
|
||||
--disable-indevs \
|
||||
--disable-lsp \
|
||||
--disable-lzma \
|
||||
--disable-lzo \
|
||||
--disable-mdct \
|
||||
--disable-muxers \
|
||||
--disable-network \
|
||||
--disable-outdevs \
|
||||
--disable-parsers \
|
||||
--disable-postproc \
|
||||
--disable-programs \
|
||||
--disable-protocols \
|
||||
--disable-rdft \
|
||||
--disable-sdl \
|
||||
--disable-static \
|
||||
--disable-swresample \
|
||||
--disable-swscale-alpha \
|
||||
--disable-vaapi \
|
||||
--disable-vdpau \
|
||||
--disable-xlib \
|
||||
--disable-yasm \
|
||||
--disable-zlib \
|
||||
--enable-shared \
|
||||
--enable-memalign-hack \
|
||||
--enable-indev=v4l2 \
|
||||
--enable-indev=x11grab_xcb \
|
||||
--enable-demuxer=h264 \
|
||||
--enable-demuxer=mjpeg \
|
||||
--enable-parser=h264 \
|
||||
--enable-parser=mjpeg \
|
||||
--enable-decoder=h264 \
|
||||
--enable-decoder=mjpeg
|
||||
|
||||
CC="ccache $CC" CXX="ccache $CXX" make -j$(nproc)
|
||||
make install
|
||||
cd ../../
|
||||
# libsodium
|
||||
git clone git://github.com/jedisct1/libsodium.git
|
||||
cd libsodium
|
||||
git checkout tags/1.0.18
|
||||
./autogen.sh
|
||||
CC="ccache $CC" CXX="ccache $CXX" ./configure
|
||||
CC="ccache $CC" CXX="ccache $CXX" make -j$(nproc)
|
||||
sudo checkinstall --install --pkgname libsodium --pkgversion 1.0.8 --nodoc -y
|
||||
sudo ldconfig
|
||||
cd ..
|
||||
|
||||
# toxcore
|
||||
git clone --branch v0.2.13 --depth=1 https://github.com/toktok/c-toxcore.git toxcore
|
||||
cd toxcore
|
||||
mkdir build-cmake
|
||||
cd build-cmake
|
||||
CC="ccache $CC" CXX="ccache $CXX" cmake ..
|
||||
make -j$(nproc) > /dev/null
|
||||
sudo make install
|
||||
echo '/usr/local/lib/' | sudo tee -a /etc/ld.so.conf.d/locallib.conf
|
||||
sudo ldconfig
|
||||
cd ../..
|
||||
|
||||
# filteraudio
|
||||
git clone --branch v0.0.1 --depth=1 https://github.com/irungentoo/filter_audio filteraudio
|
||||
cd filteraudio
|
||||
CC="ccache $CC" CXX="ccache $CXX" sudo make install -j$(nproc)
|
||||
sudo ldconfig
|
||||
cd ..
|
||||
|
||||
# toxext
|
||||
git clone --branch v0.0.3 --depth=1 https://github.com/toxext/toxext toxext
|
||||
cd toxext
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd ../../
|
||||
|
||||
# toxext_messages
|
||||
git clone --branch v0.0.3 --depth=1 https://github.com/toxext/tox_extension_messages tox_extension_messages
|
||||
cd tox_extension_messages
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd ../../
|
||||
|
||||
# needed, otherwise ffmpeg doesn't get detected
|
||||
export PKG_CONFIG_PATH="$PWD/libs/lib/pkgconfig"
|
||||
|
||||
$CC --version
|
||||
$CXX --version
|
||||
|
||||
build_qtox() {
|
||||
bdir() {
|
||||
cd $BUILDDIR
|
||||
make -j$(nproc)
|
||||
# check if `qtox` file has been made, is non-empty and is an executable
|
||||
[[ -s qtox ]] && [[ -x qtox ]]
|
||||
cd -
|
||||
}
|
||||
|
||||
local BUILDDIR=_build
|
||||
|
||||
# first build qTox without support for optional dependencies
|
||||
echo '*** BUILDING "MINIMAL" VERSION ***'
|
||||
cmake -H. -B"$BUILDDIR" \
|
||||
-DSMILEYS=DISABLED \
|
||||
-DSTRICT_OPTIONS=ON \
|
||||
-DSPELL_CHECK=OFF
|
||||
|
||||
bdir
|
||||
|
||||
# clean it up, and build normal version
|
||||
rm -rf "$BUILDDIR"
|
||||
|
||||
echo '*** BUILDING "FULL" VERSION ***'
|
||||
cmake -H. -B"$BUILDDIR" \
|
||||
-DUPDATE_CHECK=ON \
|
||||
-DSTRICT_OPTIONS=ON \
|
||||
-DCODE_COVERAGE=ON
|
||||
bdir
|
||||
}
|
||||
|
||||
test_qtox() {
|
||||
local BUILDDIR=_build
|
||||
|
||||
cd $BUILDDIR
|
||||
make test
|
||||
cd -
|
||||
}
|
||||
|
||||
# CMake is supposed to process files, e.g. ones with versions.
|
||||
# Check whether those changes have been committed.
|
||||
check_if_differs() {
|
||||
echo "Checking whether files processed by CMake have been committed..."
|
||||
echo ""
|
||||
# ↓ `0` exit status only if there are no changes
|
||||
git diff --exit-code
|
||||
}
|
||||
|
||||
main() {
|
||||
build_qtox
|
||||
test_qtox
|
||||
check_if_differs
|
||||
}
|
||||
main
|
21
.travis/lcov.sh
Executable file
21
.travis/lcov.sh
Executable file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Create lcov report
|
||||
lcov --directory /qtox/build --capture --output-file coverage.info
|
||||
# Filter out system headers and test sources
|
||||
lcov --remove coverage.info '/usr/*' '*/test/*' '*/*_autogen/*' --output-file coverage.info
|
179
INSTALL.md
179
INSTALL.md
@ -24,6 +24,7 @@
|
||||
- [Slackware](#slackware-other-deps)
|
||||
- [Ubuntu](#ubuntu-other-deps)
|
||||
- [Compile dependencies](#compile-dependencies)
|
||||
- [docker](#docker)
|
||||
- [bootstrap.sh](#bootstrap.sh)
|
||||
- [Compile toxcore](#compile-toxcore)
|
||||
- [Compile extensions](#compile-extensions)
|
||||
@ -270,178 +271,31 @@ The following steps assumes that you cloned the repository at
|
||||
corresponding parts.
|
||||
|
||||
|
||||
### Docker
|
||||
|
||||
Development can be done within one of the many provided docker containers. See the available configurations in docker-compose.yml. These docker images have all the required dependencies for development already installed. Run `docker compose run --rm ubuntu_lts` and proceed to [compiling qTox](#compile-qtox). If you want to avoid compiling as root in the docker image, you can run `USER_ID=$(id -u) GROUP_ID=$(id -g) docker compose run --rm ubuntu_lts` instead.
|
||||
|
||||
NOTE: qtox will not run in the docker container unless your x11 session allows connections from other users. If X11 is giving you issues in the docker image, try `xhost +` on your host machine
|
||||
|
||||
<a name="other-deps" />
|
||||
|
||||
### GCC, Qt, FFmpeg, OpenAL Soft and qrencode
|
||||
|
||||
<a name="arch-other-deps" />
|
||||
|
||||
#### Arch Linux
|
||||
|
||||
```bash
|
||||
sudo pacman -S --needed base-devel qt5 openal libxss qrencode ffmpeg opus libvpx libsodium sqlcipher cmake
|
||||
```
|
||||
|
||||
|
||||
<a name="debian-other-deps" />
|
||||
|
||||
#### Debian
|
||||
|
||||
```bash
|
||||
sudo apt-get install \
|
||||
automake \
|
||||
autotools-dev \
|
||||
build-essential \
|
||||
check \
|
||||
checkinstall \
|
||||
cmake \
|
||||
ffmpeg \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libexif-dev \
|
||||
libgdk-pixbuf2.0-dev \
|
||||
libgtk2.0-dev \
|
||||
libopenal-dev \
|
||||
libopus-dev \
|
||||
libqrencode-dev \
|
||||
libqt5opengl5-dev \
|
||||
libqt5svg5-dev \
|
||||
libsodium-dev \
|
||||
libsqlcipher-dev \
|
||||
libtool \
|
||||
libvpx-dev \
|
||||
libxss-dev \
|
||||
pkg-config \
|
||||
qrencode \
|
||||
qtbase5-dev \
|
||||
qttools5-dev \
|
||||
qttools5-dev-tools \
|
||||
yasm
|
||||
```
|
||||
|
||||
<a name="fedora-other-deps" />
|
||||
|
||||
#### Fedora
|
||||
|
||||
To install FFmpeg, the [RPM Fusion](https://rpmfusion.org/) repo is required.
|
||||
|
||||
```bash
|
||||
sudo dnf group install "Development Tools" "C Development Tools and Libraries"
|
||||
# (can also use):
|
||||
# sudo dnf install @"Development Tools" @"C Development Tools and Libraries"
|
||||
sudo dnf install \
|
||||
autoconf \
|
||||
automake \
|
||||
check \
|
||||
check-devel \
|
||||
ffmpeg-devel \
|
||||
gtk2-devel \
|
||||
kf5-sonnet \
|
||||
libexif-devel \
|
||||
libsodium-devel \
|
||||
libtool \
|
||||
libvpx-devel \
|
||||
libXScrnSaver-devel \
|
||||
openal-soft-devel \
|
||||
openssl-devel \
|
||||
opus-devel \
|
||||
qrencode-devel \
|
||||
qt5-devel \
|
||||
qt5-linguist \
|
||||
qt5-qtsvg \
|
||||
qt5-qtsvg-devel \
|
||||
qt-creator \
|
||||
qt-doc \
|
||||
qtsingleapplication-qt5 \
|
||||
sqlcipher \
|
||||
sqlcipher-devel
|
||||
```
|
||||
|
||||
<a name="opensuse-other-deps" />
|
||||
|
||||
#### openSUSE
|
||||
|
||||
```bash
|
||||
sudo zypper install \
|
||||
libexif-devel \
|
||||
libffmpeg-devel \
|
||||
libopus-devel \
|
||||
libQt5Concurrent-devel \
|
||||
libqt5-linguist \
|
||||
libQt5Network-devel \
|
||||
libQt5OpenGL-devel \
|
||||
libqt5-qtbase-common-devel \
|
||||
libqt5-qtsvg-devel \
|
||||
libQt5Xml-devel \
|
||||
libsodium-devel \
|
||||
libvpx-devel \
|
||||
libXScrnSaver-devel \
|
||||
openal-soft-devel \
|
||||
patterns-openSUSE-devel_basis \
|
||||
qrencode-devel \
|
||||
sqlcipher-devel \
|
||||
sonnet-devel \
|
||||
qt5-linguist-devel \
|
||||
libQt5Test-devel \
|
||||
ffmpeg-4-libavcodec-devel \
|
||||
ffmpeg-4-libavdevice-devel
|
||||
```
|
||||
|
||||
<a name="slackware-other-deps" />
|
||||
|
||||
#### Slackware
|
||||
|
||||
List of all the toxcore dependencies and their SlackBuilds can be found
|
||||
here: http://slackbuilds.org/repository/14.2/network/toxcore/
|
||||
|
||||
List of all the qTox dependencies and their SlackBuilds can be found here:
|
||||
http://slackbuilds.org/repository/14.2/network/qTox/
|
||||
|
||||
|
||||
<a name="ubuntu-other-deps" />
|
||||
|
||||
#### Ubuntu:
|
||||
|
||||
```bash
|
||||
sudo apt-get install \
|
||||
build-essential \
|
||||
cmake \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavutil-dev \
|
||||
libexif-dev \
|
||||
libgdk-pixbuf2.0-dev \
|
||||
libglib2.0-dev \
|
||||
libgtk2.0-dev \
|
||||
libkdeui5 \
|
||||
libopenal-dev \
|
||||
libopus-dev \
|
||||
libqrencode-dev \
|
||||
libqt5opengl5-dev \
|
||||
libqt5svg5-dev \
|
||||
libsodium-dev \
|
||||
libsqlcipher-dev \
|
||||
libswresample-dev \
|
||||
libswscale-dev \
|
||||
libvpx-dev \
|
||||
libxss-dev \
|
||||
qrencode \
|
||||
qt5-default \
|
||||
qttools5-dev-tools \
|
||||
qttools5-dev
|
||||
```
|
||||
Please see buildscripts/docker/Dockerfile... for your distribution for an up to date list of commands to set up your build environment
|
||||
|
||||
### Compile dependencies
|
||||
|
||||
Toxcore and ToxExt extensions can either be built with bootstrap.sh or manually.
|
||||
|
||||
|
||||
<a name="bootstrap.sh" />
|
||||
|
||||
#### bootstrap.sh
|
||||
|
||||
`bootstrap.sh` will build toxcore and extensions for you, allowing you to skip
|
||||
to [compiling qTox](#compile-qtox) after running it. To use it, run
|
||||
If you want to develop on your hostmachine, `bootstrap.sh` will build toxcore
|
||||
and extensions for you, allowing you to skip to [compiling qTox](#compile-qtox)
|
||||
after running it. To use it, run
|
||||
```bash
|
||||
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib64/pkgconfig"
|
||||
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig"
|
||||
@ -457,7 +311,7 @@ Provided that you have all required dependencies installed, you can simply run:
|
||||
```bash
|
||||
git clone https://github.com/toktok/c-toxcore.git toxcore
|
||||
cd toxcore
|
||||
git checkout v0.2.13
|
||||
# Note: See buildscirpts/download/download_toxcore.sh for which version should be checked out
|
||||
cmake . -DBOOTSTRAP_DAEMON=OFF
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
@ -475,12 +329,12 @@ sudo ldconfig
|
||||
|
||||
qTox uses the toxext library and some of the extensions that go with it.
|
||||
|
||||
You will likely have to compile these yourself
|
||||
You will likely have to compile these yourself.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/toxext/toxext.git toxext
|
||||
cd toxext
|
||||
git checkout v0.0.3
|
||||
# Note: See buildscirpts/download/download_toxext.sh for which version should be checked out
|
||||
cmake .
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
@ -489,7 +343,7 @@ sudo make install
|
||||
```bash
|
||||
git clone https://github.com/toxext/tox_extension_messages.git tox_extension_messages
|
||||
cd tox_extension_messages
|
||||
git checkout v0.0.3
|
||||
# Note: See buildscirpts/download/download_toxext_messages.sh for which version should be checked out
|
||||
cmake .
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
@ -827,5 +681,6 @@ Switches:
|
||||
[toxcore]: https://github.com/TokTok/c-toxcore/
|
||||
[sonnet]: https://github.com/KDE/sonnet
|
||||
[snorenotify]: https://techbase.kde.org/Projects/Snorenotify
|
||||
[sqlcipher]: https://github.com/sqlcipher/sqlcipher
|
||||
[toxext]: https://github.com/toxext/toxext
|
||||
[tox_extension_messages]: https://github.com/toxext/tox_extension_messages
|
||||
|
@ -208,9 +208,8 @@ To get translations into qTox:
|
||||
### Before tagging
|
||||
|
||||
- Format all code using the [`./tools/format-code.sh`] script
|
||||
- Merge the Flatpak manifest of our [Flathub repository] into
|
||||
[`./flatpak/io.github.qtox.qTox.json`]. Keep
|
||||
[`./flatpak/io.github.qtox.qTox.json`]'s version of "sources" for qTox.
|
||||
- Update the Flatpak manifest of our [Flathub repository] with the script in flatpak/update_flathub_descriptor_dependencies.py
|
||||
- Make sure to check if new dependencies need to be added, add them if necessary
|
||||
- Update version number for windows/osx packages using the
|
||||
[`./tools/update-versions.sh`] script, e.g. `./tools/update-versions.sh
|
||||
1.11.0`
|
||||
|
@ -1,101 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# MIT License
|
||||
#
|
||||
# Copyright © 2019 by The qTox Project Contributors
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
# THE SOFTWARE.
|
||||
|
||||
# usage: ./appimage/build-appimage.sh [Debug]
|
||||
#
|
||||
# If [Debug] is set to "Debug" the container will run in interactive mode and
|
||||
# stay open to poke around in the filesystem.
|
||||
|
||||
readonly DEBUG="$1"
|
||||
|
||||
# Set this to True to upload the PR version of the
|
||||
# AppImage to transfer.sh for testing.
|
||||
readonly UPLOAD_PR_APPIMAGE="False"
|
||||
|
||||
# Fail out on error
|
||||
set -exo pipefail
|
||||
|
||||
# This script should be run from the root of the repository
|
||||
|
||||
if [ ! -f ./appimage/build-appimage.sh ]; then
|
||||
echo ""
|
||||
echo "You are attempting to run the build-appimage.sh from a wrong directory."
|
||||
echo "If you wish to run this script, you'll have to have"
|
||||
echo "the repository root directory as the working directory."
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p ./output
|
||||
|
||||
if [ "$DEBUG" == "Debug" ]
|
||||
then
|
||||
echo "Execute: /qtox/appimage/build.sh to start the build script"
|
||||
echo "Execute: exit to leave the container"
|
||||
|
||||
docker run --rm -it \
|
||||
-v $PWD:/qtox \
|
||||
-v $PWD/output:/output \
|
||||
debian:stretch-slim \
|
||||
/bin/bash
|
||||
else
|
||||
docker run --rm \
|
||||
-e CIRP_GITHUB_REPO_SLUG \
|
||||
-e TRAVIS_EVENT_TYPE \
|
||||
-e TRAVIS_COMMIT \
|
||||
-e TRAVIS_TAG \
|
||||
-v $PWD:/qtox \
|
||||
-v $PWD/output:/output \
|
||||
debian:stretch-slim \
|
||||
/bin/bash -c "/qtox/appimage/build.sh"
|
||||
fi
|
||||
|
||||
|
||||
# use the version number in the name when building a tag on Travis CI
|
||||
if [ -n "$TRAVIS_TAG" ]
|
||||
then
|
||||
# the aitool should have written the appimage in the same name
|
||||
# as below so no need to move things , it should have also written
|
||||
# the .zsync meta file as the given name below with .zsync
|
||||
# extension.
|
||||
readonly OUTFILE=./output/qTox-"$TRAVIS_TAG".x86_64.AppImage
|
||||
|
||||
# just check if the files are in the right place
|
||||
eval "ls $OUTFILE"
|
||||
eval "ls $OUTFILE.zsync"
|
||||
|
||||
sha256sum "$OUTFILE" > "$OUTFILE".sha256
|
||||
else
|
||||
if [ "$UPLOAD_PR_APPIMAGE" == "True" ]
|
||||
then
|
||||
# upload PR builds to test them.
|
||||
echo "Uploading AppImage to transfer.sh"
|
||||
curl --upload-file "./output/qTox-$TRAVIS_COMMIT-x86_64.AppImage" \
|
||||
"https://transfer.sh/qTox-$TRAVIS_COMMIT-x86_64.AppImage" > ./upload
|
||||
echo "$(cat ./upload)"
|
||||
echo -n "$(cat ./upload)\\n" >> ./uploaded-to
|
||||
rm -rf ./upload ./uploaded-to
|
||||
sha256sum "./output/qTox-$TRAVIS_COMMIT-x86_64.AppImage"
|
||||
fi
|
||||
fi
|
@ -25,27 +25,33 @@
|
||||
# Fail out on error
|
||||
set -exuo pipefail
|
||||
|
||||
usage() {
|
||||
echo "$0 --src-dir SRC_DIR"
|
||||
echo "Builds an app image in the CWD based off qtox installation at SRC_DIR"
|
||||
}
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--src-dir) QTOX_SRC_DIR=$2; shift 2 ;;
|
||||
--help|-h) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "${QTOX_SRC_DIR+x}" ]; then
|
||||
echo "--src-dir is a required argument"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# directory paths
|
||||
readonly QTOX_SRC_DIR="/qtox"
|
||||
readonly OUTPUT_DIR="/output"
|
||||
readonly BUILD_DIR="/build"
|
||||
readonly QTOX_BUILD_DIR="$BUILD_DIR"/qtox
|
||||
readonly QTOX_APP_DIR="$BUILD_DIR"/appdir
|
||||
BUILD_DIR=$(realpath .)
|
||||
readonly BUILD_DIR
|
||||
QTOX_APP_DIR="$BUILD_DIR"/appdir
|
||||
readonly QTOX_APP_DIR
|
||||
readonly LOCAL_LIB_DIR="$QTOX_APP_DIR"/local/lib
|
||||
# "linuxdeployqt" is to long, shortened to ldqt
|
||||
readonly LDQT_BUILD_DIR="$BUILD_DIR"/ldqt
|
||||
# "appimagetool" becomes aitool
|
||||
readonly AITOOL_BUILD_DIR="$BUILD_DIR"/aitool
|
||||
# ldqt binary
|
||||
readonly LDQT_BIN="/usr/lib/x86_64-linux-gnu/qt5/bin/linuxdeployqt"
|
||||
# aitool binary
|
||||
readonly AITOOL_BIN="/usr/local/bin/appimagetool"
|
||||
readonly APPRUN_BIN="/usr/local/bin/AppRun"
|
||||
readonly APT_FLAGS="-y --no-install-recommends"
|
||||
# snorenotify source
|
||||
readonly SNORE_GIT="https://github.com/KDE/snorenotify"
|
||||
# snorenotify build directory
|
||||
readonly SNORE_BUILD_DIR="$BUILD_DIR"/snorenotify
|
||||
readonly LDQT_BIN="/usr/lib/qt5/bin/linuxdeployqt"
|
||||
|
||||
# update information to be embeded in AppImage
|
||||
if [ "cron" == "${TRAVIS_EVENT_TYPE:-}" ]
|
||||
@ -58,103 +64,18 @@ else
|
||||
readonly UPDATE_INFO="gh-releases-zsync|qTox|qTox|latest|qTox-*.x86_64.AppImage.zsync"
|
||||
fi
|
||||
|
||||
# use multiple cores when building
|
||||
export MAKEFLAGS="-j$(nproc)"
|
||||
export VERSION=$(git -C "${QTOX_SRC_DIR}" rev-parse --short HEAD)
|
||||
|
||||
# Get packages
|
||||
apt-get update
|
||||
apt-get install $APT_FLAGS sudo ca-certificates wget build-essential fuse xxd \
|
||||
git patchelf tclsh libssl-dev cmake extra-cmake-modules build-essential \
|
||||
check checkinstall libavdevice-dev libexif-dev libgdk-pixbuf2.0-dev \
|
||||
libgtk2.0-dev libopenal-dev libopus-dev libqrencode-dev libqt5opengl5-dev \
|
||||
libqt5svg5-dev libsodium-dev libtool libvpx-dev libxss-dev \
|
||||
qt5-default qttools5-dev qttools5-dev-tools qtdeclarative5-dev \
|
||||
fcitx-frontend-qt5 uim-qt5 libsqlcipher-dev
|
||||
echo $QTOX_APP_DIR
|
||||
cmake "${QTOX_SRC_DIR}" -DDESKTOP_NOTIFICATIONS=ON -DUPDATE_CHECK=ON -DCMAKE_BUILD_TYPE=Release
|
||||
make -j$(nproc)
|
||||
rm -fr appdir
|
||||
make DESTDIR=appdir install
|
||||
|
||||
# get version
|
||||
cd "$QTOX_SRC_DIR"
|
||||
# linuxdeployqt uses this for naming the file
|
||||
export VERSION=$(git rev-parse --short HEAD)
|
||||
|
||||
|
||||
# create build directory
|
||||
mkdir -p "$BUILD_DIR"
|
||||
|
||||
# install snorenotify because it's not packaged
|
||||
cd "$BUILD_DIR"
|
||||
git clone "$SNORE_GIT" "$SNORE_BUILD_DIR"
|
||||
cd "$SNORE_BUILD_DIR"
|
||||
git checkout tags/v0.7.0
|
||||
# HACK: Kids, don't do this at your home system
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/usr/
|
||||
make
|
||||
make install
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
|
||||
# copy qtox source
|
||||
cp -r "$QTOX_SRC_DIR" "$QTOX_BUILD_DIR"
|
||||
cd "$QTOX_BUILD_DIR"
|
||||
|
||||
./bootstrap.sh
|
||||
|
||||
# ensure this directory is empty
|
||||
rm -rf ./_build
|
||||
mkdir -p ./_build
|
||||
|
||||
# build dir of simple_make
|
||||
cd _build
|
||||
|
||||
# need to build with -DDESKTOP_NOTIFICATIONS=True for snorenotify
|
||||
cmake -DDESKTOP_NOTIFICATIONS=True \
|
||||
-DUPDATE_CHECK=True \
|
||||
-DSTRICT_OPTIONS=True \
|
||||
../
|
||||
|
||||
make
|
||||
|
||||
make DESTDIR="$QTOX_APP_DIR" install ; find "$QTOX_APP_DIR"
|
||||
|
||||
# is release #6 as of 2019-10-23
|
||||
LDQT_HASH="37631e5640d8f7c31182fa72b31266bbdf6939fc"
|
||||
# build linuxdeployqt
|
||||
git clone https://github.com/probonopd/linuxdeployqt.git "$LDQT_BUILD_DIR"
|
||||
cd "$LDQT_BUILD_DIR"
|
||||
git checkout "$LDQT_HASH"
|
||||
qmake
|
||||
make
|
||||
make install
|
||||
|
||||
# is release #12 as of 2019-10-23
|
||||
AITOOL_HASH="effcebc1d81c5e174a48b870cb420f490fb5fb4d"
|
||||
# build appimagetool
|
||||
git clone -b master --single-branch --recursive \
|
||||
https://github.com/AppImage/AppImageKit "$AITOOL_BUILD_DIR"
|
||||
|
||||
cd "$AITOOL_BUILD_DIR"
|
||||
git checkout "$AITOOL_HASH"
|
||||
bash -ex install-build-deps.sh
|
||||
# Fetch git submodules
|
||||
git submodule update --init --recursive
|
||||
|
||||
# Build AppImage
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
# make sure that deps in separate install tree are found
|
||||
export PKG_CONFIG_PATH=/deps/lib/pkgconfig/
|
||||
|
||||
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=ON \
|
||||
-DAPPIMAGEKIT_PACKAGE_DEBS=ON
|
||||
|
||||
make
|
||||
make install
|
||||
|
||||
# build qtox AppImage
|
||||
cd "$OUTPUT_DIR"
|
||||
unset QTDIR; unset QT_PLUGIN_PATH; unset LD_LIBRARY_PATH;
|
||||
|
||||
readonly QTOX_DESKTOP_FILE="$QTOX_APP_DIR"/usr/local/share/applications/*.desktop
|
||||
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/x86_64-linux-gnu/
|
||||
|
||||
eval "$LDQT_BIN $QTOX_DESKTOP_FILE -bundle-non-qt-libs -extra-plugins=libsnore-qt5"
|
||||
|
||||
@ -171,7 +92,11 @@ libs=(
|
||||
# Also bundle libjack.so* without which the AppImage does not work in Fedora Workstation
|
||||
/usr/lib/x86_64-linux-gnu/libjack.so.0
|
||||
# And libglib needed by Red Hat and derivatives to work with our old gnutls
|
||||
/lib/x86_64-linux-gnu/libglib-2.0.so.0
|
||||
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
|
||||
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
|
||||
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
|
||||
/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
|
||||
/usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
|
||||
)
|
||||
|
||||
for lib in "${libs[@]}"; do
|
||||
@ -192,7 +117,4 @@ else
|
||||
VERSION_NAME="${VERSION}"
|
||||
fi
|
||||
|
||||
eval "$AITOOL_BIN -u \"$UPDATE_INFO\" $QTOX_APP_DIR qTox-$VERSION_NAME.x86_64.AppImage"
|
||||
|
||||
# Chmod since everything is root:root
|
||||
chmod 755 -R "$OUTPUT_DIR"
|
||||
appimagetool -u "$UPDATE_INFO" $QTOX_APP_DIR qTox-$VERSION_NAME.x86_64.AppImage
|
||||
|
45
bootstrap.sh
45
bootstrap.sh
@ -47,17 +47,11 @@ readonly INSTALL_DIR=libs
|
||||
# just for convenience
|
||||
readonly BASE_DIR="${SCRIPT_DIR}/${INSTALL_DIR}"
|
||||
|
||||
# versions of libs to checkout
|
||||
readonly TOXCORE_VERSION="v0.2.13"
|
||||
readonly TOXEXT_VERSION="v0.0.3"
|
||||
readonly TOX_EXT_MESSAGES_VERSION="v0.0.3"
|
||||
readonly SQLCIPHER_VERSION="v4.3.0"
|
||||
|
||||
# directory names of cloned repositories
|
||||
readonly TOXCORE_DIR="libtoxcore-$TOXCORE_VERSION"
|
||||
readonly TOXEXT_DIR="toxext-$TOXEXT_VERSION"
|
||||
readonly TOX_EXT_MESSAGES_DIR="tox_ext_messages-$TOXEXT_VERSION"
|
||||
readonly SQLCIPHER_DIR="sqlcipher-$SQLCIPHER_VERSION"
|
||||
readonly TOXCORE_DIR="libtoxcore"
|
||||
readonly TOXEXT_DIR="toxext"
|
||||
readonly TOX_EXT_MESSAGES_DIR="tox_ext_messages"
|
||||
readonly SQLCIPHER_DIR="sqlcipher"
|
||||
|
||||
# default values for user given parameters
|
||||
INSTALL_TOX=true
|
||||
@ -112,13 +106,11 @@ remove_build_dirs() {
|
||||
install_toxcore() {
|
||||
if [[ $INSTALL_TOX = "true" ]]
|
||||
then
|
||||
git clone https://github.com/toktok/c-toxcore.git \
|
||||
--branch $TOXCORE_VERSION \
|
||||
--depth 1 \
|
||||
"${BASE_DIR}/${TOXCORE_DIR}"
|
||||
|
||||
mkdir -p "${BASE_DIR}/${TOXCORE_DIR}"
|
||||
pushd ${BASE_DIR}/${TOXCORE_DIR}
|
||||
|
||||
"${SCRIPT_DIR}"/buildscripts/download/download_toxcore.sh
|
||||
|
||||
# compile and install
|
||||
if [[ $SYSTEM_WIDE = "false" ]]
|
||||
then
|
||||
@ -139,12 +131,11 @@ install_toxcore() {
|
||||
install_toxext() {
|
||||
if [[ $INSTALL_TOXEXT = "true" ]]
|
||||
then
|
||||
git clone https://github.com/toxext/toxext.git \
|
||||
--branch $TOXEXT_VERSION \
|
||||
"${BASE_DIR}/${TOXEXT_DIR}"
|
||||
|
||||
mkdir -p "${BASE_DIR}/${TOXEXT_DIR}"
|
||||
pushd ${BASE_DIR}/${TOXEXT_DIR}
|
||||
|
||||
"${SCRIPT_DIR}"/buildscripts/download/download_toxext.sh
|
||||
|
||||
# compile and install
|
||||
if [[ $SYSTEM_WIDE = "false" ]]
|
||||
then
|
||||
@ -165,12 +156,11 @@ install_toxext() {
|
||||
install_tox_ext_messages() {
|
||||
if [[ $INSTALL_TOX_EXT_MESSAGES = "true" ]]
|
||||
then
|
||||
git clone https://github.com/toxext/tox_extension_messages.git \
|
||||
--branch $TOX_EXT_MESSAGES_VERSION \
|
||||
"${BASE_DIR}/${TOX_EXT_MESSAGES_DIR}"
|
||||
|
||||
mkdir -p "${BASE_DIR}/${TOX_EXT_MESSAGES_DIR}"
|
||||
pushd ${BASE_DIR}/${TOX_EXT_MESSAGES_DIR}
|
||||
|
||||
"${SCRIPT_DIR}"/buildscripts/download/download_toxext_messages.sh
|
||||
|
||||
# compile and install
|
||||
if [[ $SYSTEM_WIDE = "false" ]]
|
||||
then
|
||||
@ -191,12 +181,11 @@ install_tox_ext_messages() {
|
||||
install_sqlcipher() {
|
||||
if [[ $INSTALL_SQLCIPHER = "true" ]]
|
||||
then
|
||||
git clone https://github.com/sqlcipher/sqlcipher.git \
|
||||
"${BASE_DIR}/${SQLCIPHER_DIR}" \
|
||||
--branch $SQLCIPHER_VERSION \
|
||||
--depth 1
|
||||
|
||||
mkdir -p "${BASE_DIR}/${SQLCIPHER_DIR}"
|
||||
pushd "${BASE_DIR}/${SQLCIPHER_DIR}"
|
||||
|
||||
"${SCRIPT_DIR}"/download/download_sqlcipher.sh
|
||||
|
||||
autoreconf -if
|
||||
|
||||
if [[ $SYSTEM_WIDE = "false" ]]
|
||||
|
26
buildscripts/build_aitool_linux.sh
Executable file
26
buildscripts/build_aitool_linux.sh
Executable file
@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
"$(dirname "$0")"/download/download_aitool.sh
|
||||
|
||||
cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=ON \
|
||||
-DAPPIMAGEKIT_PACKAGE_DEBS=ON
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
99
buildscripts/build_ffmpeg_windows.sh
Executable file
99
buildscripts/build_ffmpeg_windows.sh
Executable file
@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build ffmpeg for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname "$0")"/download/download_ffmpeg.sh
|
||||
|
||||
if [ "${ARCH}" == "x86_64" ]; then
|
||||
FFMPEG_ARCH="x86_64"
|
||||
else
|
||||
FFMPEG_ARCH="x86"
|
||||
fi
|
||||
|
||||
./configure --arch=${FFMPEG_ARCH} \
|
||||
--enable-gpl \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--prefix=/windows/ \
|
||||
--target-os="mingw32" \
|
||||
--cross-prefix="${ARCH}-w64-mingw32-" \
|
||||
--pkg-config="pkg-config" \
|
||||
--extra-cflags="-O2 -g0" \
|
||||
--disable-debug \
|
||||
--disable-programs \
|
||||
--disable-protocols \
|
||||
--disable-doc \
|
||||
--disable-sdl2 \
|
||||
--disable-avfilter \
|
||||
--disable-avresample \
|
||||
--disable-filters \
|
||||
--disable-iconv \
|
||||
--disable-network \
|
||||
--disable-muxers \
|
||||
--disable-postproc \
|
||||
--disable-swresample \
|
||||
--disable-swscale-alpha \
|
||||
--disable-dct \
|
||||
--disable-dwt \
|
||||
--disable-lsp \
|
||||
--disable-lzo \
|
||||
--disable-mdct \
|
||||
--disable-rdft \
|
||||
--disable-fft \
|
||||
--disable-faan \
|
||||
--disable-vaapi \
|
||||
--disable-vdpau \
|
||||
--disable-zlib \
|
||||
--disable-xlib \
|
||||
--disable-bzlib \
|
||||
--disable-lzma \
|
||||
--disable-encoders \
|
||||
--disable-decoders \
|
||||
--disable-demuxers \
|
||||
--disable-parsers \
|
||||
--disable-bsfs \
|
||||
--enable-demuxer=h264 \
|
||||
--enable-demuxer=mjpeg \
|
||||
--enable-parser=h264 \
|
||||
--enable-parser=mjpeg \
|
||||
--enable-decoder=h264 \
|
||||
--enable-decoder=mjpeg \
|
||||
--enable-decoder=rawvideo
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
50
buildscripts/build_gdb_windows.sh
Executable file
50
buildscripts/build_gdb_windows.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build gmp for windows"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "${ARCH-x}" != "i686" ] && [ "${ARCH-x}" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
"$(dirname $0)"/download/download_gdb.sh
|
||||
|
||||
CFLAGS="-O2 -g0" ./configure --host="$ARCH-w64-mingw32" \
|
||||
--prefix="/windows" \
|
||||
--enable-static \
|
||||
--disable-shared
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
50
buildscripts/build_gmp_windows.sh
Executable file
50
buildscripts/build_gmp_windows.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build gmp for windows"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "${ARCH-x}" != "i686" ] && [ "${ARCH-x}" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
"$(dirname $0)"/download/download_gmp.sh
|
||||
|
||||
# https://gmplib.org/list-archives/gmp-discuss/2020-July/006519.html
|
||||
CC_FOR_BUILD=gcc CFLAGS="-O2 -g0" ./configure --host="$ARCH-w64-mingw32" \
|
||||
--prefix="/windows" \
|
||||
--enable-static \
|
||||
--disable-shared
|
||||
make -j $(nproc)
|
||||
make install
|
24
buildscripts/build_ldqt_linux.sh
Executable file
24
buildscripts/build_ldqt_linux.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
"$(dirname "$0")"/download/download_ldqt.sh
|
||||
|
||||
qmake
|
||||
make -j $(nproc)
|
||||
make install
|
53
buildscripts/build_libexif_windows.sh
Executable file
53
buildscripts/build_libexif_windows.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build libexif for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
|
||||
"$(dirname $0)"/download/download_libexif.sh
|
||||
|
||||
CFLAGS="-O2 -g0" ./configure --host="${ARCH}-w64-mingw32" \
|
||||
--prefix=/windows/ \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--disable-docs \
|
||||
--disable-nls
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
48
buildscripts/build_libexpat_windows.sh
Executable file
48
buildscripts/build_libexpat_windows.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build libexpat for windows"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "${ARCH-x}" != "i686" ] && [ "${ARCH-x}" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname $0)"/download/download_libexpat.sh
|
||||
|
||||
CFLAGS="-O2 -g0" ./configure --host="$ARCH-w64-mingw32" \
|
||||
--prefix="/windows" \
|
||||
--enable-static \
|
||||
--disable-shared
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
22
buildscripts/build_mingw_ldd_windows.sh
Executable file
22
buildscripts/build_mingw_ldd_windows.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
"$(dirname "$0")"/download/download_mingw_ldd.sh
|
||||
|
||||
cp -a mingw_ldd/mingw_ldd.py /usr/local/bin/mingw-ldd.py
|
22
buildscripts/build_nsisshellexecasuser_windows.sh
Executable file
22
buildscripts/build_nsisshellexecasuser_windows.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
"$(dirname "$0")"/download/download_nsisshellexecasuser.sh
|
||||
|
||||
cp ShellExecAsUser.dll /usr/share/nsis/Plugins/x86-ansi
|
57
buildscripts/build_openal_windows.sh
Executable file
57
buildscripts/build_openal_windows.sh
Executable file
@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build openal for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname "$0")"/download/download_openal.sh
|
||||
|
||||
patch -p1 < "$(dirname "$0")"/patches/openal-cmake-3-11.patch
|
||||
|
||||
export CFLAGS="-fPIC"
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DALSOFT_UTILS=OFF \
|
||||
-DALSOFT_EXAMPLES=OFF \
|
||||
-DCMAKE_TOOLCHAIN_FILE=/build/windows-toolchain.cmake \
|
||||
-DDSOUND_INCLUDE_DIR=/usr/${ARCH}-w64-mingw32/include \
|
||||
-DDSOUND_LIBRARY=/usr/${ARCH}-w64-mingw32/lib/libdsound.a \
|
||||
.
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
60
buildscripts/build_openssl_windows.sh
Executable file
60
buildscripts/build_openssl_windows.sh
Executable file
@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build openssl for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname "$0")"/download/download_openssl.sh
|
||||
|
||||
if [[ "$ARCH" == "x86_64" ]]; then
|
||||
OPENSSL_ARCH="mingw64"
|
||||
elif [[ "$ARCH" == "i686" ]]; then
|
||||
OPENSSL_ARCH="mingw"
|
||||
else
|
||||
echo "Invalid architecture"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
./Configure --prefix=/windows/ \
|
||||
--openssldir=/windows/ssl \
|
||||
shared \
|
||||
$OPENSSL_ARCH \
|
||||
--cross-compile-prefix=${ARCH}-w64-mingw32- && \
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
53
buildscripts/build_opus_windows.sh
Executable file
53
buildscripts/build_opus_windows.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build opus for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname "$0")"/download/download_opus.sh
|
||||
|
||||
LDFLAGS="-fstack-protector" CFLAGS="-O2 -g0" \
|
||||
./configure --host="${ARCH}-w64-mingw32" \
|
||||
--prefix=/windows/ \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--disable-extra-programs \
|
||||
--disable-doc
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
53
buildscripts/build_qrencode_windows.sh
Executable file
53
buildscripts/build_qrencode_windows.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build qrencode for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname "$0")"/download/download_qrencode.sh
|
||||
|
||||
CFLAGS="-O2 -g0" ./configure --host="${ARCH}-w64-mingw32" \
|
||||
--prefix=/windows \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--disable-sdltest \
|
||||
--without-tools \
|
||||
--without-debug
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
105
buildscripts/build_qt_windows.sh
Executable file
105
buildscripts/build_qt_windows.sh
Executable file
@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build qt for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname "$0")"/download/download_qt.sh
|
||||
|
||||
OPENSSL_LIBS=$(pkg-config --libs openssl)
|
||||
export OPENSSL_LIBS
|
||||
|
||||
./configure -prefix /windows/ \
|
||||
-release \
|
||||
-shared \
|
||||
-device-option CROSS_COMPILE=${ARCH}-w64-mingw32- \
|
||||
-xplatform win32-g++ \
|
||||
-openssl \
|
||||
"$(pkg-config --cflags openssl)" \
|
||||
-opensource -confirm-license \
|
||||
-pch \
|
||||
-nomake examples \
|
||||
-nomake tools \
|
||||
-nomake tests \
|
||||
-skip 3d \
|
||||
-skip activeqt \
|
||||
-skip androidextras \
|
||||
-skip canvas3d \
|
||||
-skip charts \
|
||||
-skip connectivity \
|
||||
-skip datavis3d \
|
||||
-skip declarative \
|
||||
-skip doc \
|
||||
-skip gamepad \
|
||||
-skip graphicaleffects \
|
||||
-skip imageformats \
|
||||
-skip location \
|
||||
-skip macextras \
|
||||
-skip multimedia \
|
||||
-skip networkauth \
|
||||
-skip purchasing \
|
||||
-skip quickcontrols \
|
||||
-skip quickcontrols2 \
|
||||
-skip remoteobjects \
|
||||
-skip script \
|
||||
-skip scxml \
|
||||
-skip sensors \
|
||||
-skip serialbus \
|
||||
-skip serialport \
|
||||
-skip speech \
|
||||
-skip translations \
|
||||
-skip virtualkeyboard \
|
||||
-skip wayland \
|
||||
-skip webchannel \
|
||||
-skip webengine \
|
||||
-skip webglplugin \
|
||||
-skip websockets \
|
||||
-skip webview \
|
||||
-skip x11extras \
|
||||
-skip xmlpatterns \
|
||||
-no-dbus \
|
||||
-no-icu \
|
||||
-no-compile-examples \
|
||||
-qt-libjpeg \
|
||||
-qt-libpng \
|
||||
-qt-zlib \
|
||||
-qt-pcre \
|
||||
-opengl desktop
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
51
buildscripts/build_snore_linux.sh
Executable file
51
buildscripts/build_snore_linux.sh
Executable file
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage ()
|
||||
{
|
||||
echo "Build/install snore for linux"
|
||||
echo "Usage: $0 [--system-install]"
|
||||
echo "--system-install: Install to /usr instead of /usr/local"
|
||||
}
|
||||
|
||||
SYSTEM_INSTALL=0
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--system-install) SYSTEM_INSTALL=1; shift ;;
|
||||
--help|-h) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$(dirname "$0")"/download/download_snore.sh
|
||||
|
||||
# Snore needs to be installed into /usr for linuxdeployqt to find it
|
||||
if [ $SYSTEM_INSTALL -eq 1 ]; then
|
||||
INSTALL_PREFIX_ARGS="-DCMAKE_INSTALL_PREFIX=/usr"
|
||||
else
|
||||
INSTALL_PREFIX_ARGS=""
|
||||
fi
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE=Release $INSTALL_PREFIX_ARGS \
|
||||
-DBUILD_daemon=OFF \
|
||||
-DBUILD_settings=OFF \
|
||||
-DBUILD_snoresend=OFF
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
31
buildscripts/build_snore_windows.sh
Executable file
31
buildscripts/build_snore_windows.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
"$(dirname "$0")"/download/download_snore.sh
|
||||
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_daemon=OFF \
|
||||
-DBUILD_settings=OFF \
|
||||
-DBUILD_snoresend=OFF \
|
||||
-DCMAKE_TOOLCHAIN_FILE=/build/windows-toolchain.cmake \
|
||||
.
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
51
buildscripts/build_sodium_windows.sh
Executable file
51
buildscripts/build_sodium_windows.sh
Executable file
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build sodium for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname "$0")"/download/download_sodium.sh
|
||||
|
||||
LDFLAGS="-fstack-protector" \
|
||||
./configure --host="${ARCH}-w64-mingw32" \
|
||||
--prefix=/windows \
|
||||
--enable-shared \
|
||||
--disable-static
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
59
buildscripts/build_sqlcipher_windows.sh
Executable file
59
buildscripts/build_sqlcipher_windows.sh
Executable file
@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build sqlcipher for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname "$0")"/download/download_sqlcipher.sh
|
||||
|
||||
sed -i s/'if test "$TARGET_EXEEXT" = ".exe"'/'if test ".exe" = ".exe"'/g configure
|
||||
sed -i 's|exec $PWD/mksourceid manifest|exec $PWD/mksourceid.exe manifest|g' tool/mksqlite3h.tcl
|
||||
|
||||
./configure --host="${ARCH}-w64-mingw32" \
|
||||
--prefix=/windows/ \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--enable-tempstore=yes \
|
||||
CFLAGS="-O2 -g0 -DSQLITE_HAS_CODEC -I/windows/include/" \
|
||||
LDFLAGS="-lcrypto -lgdi32 -L/windows/lib/" \
|
||||
LIBS="-lgdi32 -lws2_32"
|
||||
|
||||
sed -i s/"TEXE = $"/"TEXE = .exe"/ Makefile
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
65
buildscripts/build_toxcore_linux.sh
Executable file
65
buildscripts/build_toxcore_linux.sh
Executable file
@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
build_toxcore() {
|
||||
mkdir -p toxcore
|
||||
pushd toxcore >/dev/null || exit 1
|
||||
|
||||
"$(dirname "$0")"/download/download_toxcore.sh
|
||||
|
||||
cmake . \
|
||||
-DBOOTSTRAP_DAEMON=OFF \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
.
|
||||
|
||||
cmake --build . -- -j$(nproc)
|
||||
cmake --build . --target install
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
build_toxext() {
|
||||
mkdir -p toxext
|
||||
pushd toxext >/dev/null || exit 1
|
||||
|
||||
"$(dirname "$0")"/download/download_toxext.sh
|
||||
|
||||
cmake . -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build . -- -j$(nproc)
|
||||
cmake --build . --target install
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
build_toxext_messages() {
|
||||
mkdir -p toxext_messages
|
||||
pushd toxext_messages > /dev/null || exit 1
|
||||
|
||||
"$(dirname "$0")"/download/download_toxext_messages.sh
|
||||
|
||||
cmake . -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build . -- -j$(nproc)
|
||||
cmake --build . --target install
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
build_toxcore
|
||||
build_toxext
|
||||
build_toxext_messages
|
80
buildscripts/build_toxcore_windows.sh
Executable file
80
buildscripts/build_toxcore_windows.sh
Executable file
@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
build_toxcore() {
|
||||
TOXCORE_SRC="$(realpath toxcore)"
|
||||
|
||||
mkdir -p "$TOXCORE_SRC"
|
||||
pushd $TOXCORE_SRC >/dev/null || exit 1
|
||||
|
||||
"$(dirname "$0")"/download/download_toxcore.sh
|
||||
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
|
||||
-DBOOTSTRAP_DAEMON=OFF \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DENABLE_STATIC=OFF \
|
||||
-DENABLE_SHARED=ON \
|
||||
-DCMAKE_TOOLCHAIN_FILE=/build/windows-toolchain.cmake \
|
||||
.
|
||||
|
||||
cmake --build . -- -j$(nproc)
|
||||
cmake --build . --target install
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
build_toxext() {
|
||||
TOXEXT_SRC="$(realpath toxext)"
|
||||
|
||||
mkdir -p "$TOXEXT_SRC"
|
||||
pushd $TOXEXT_SRC >/dev/null || exit 1
|
||||
|
||||
"$(dirname "$0")"/download/download_toxext.sh
|
||||
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_TOOLCHAIN_FILE=/build/windows-toolchain.cmake \
|
||||
.
|
||||
|
||||
cmake --build . -- -j$(nproc)
|
||||
cmake --build . --target install
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
build_toxext_messages() {
|
||||
TOXEXT_MESSAGES_SRC="$(realpath toxext_messages)"
|
||||
|
||||
mkdir -p "$TOXEXT_MESSAGES_SRC"
|
||||
pushd $TOXEXT_MESSAGES_SRC > /dev/null || exit 1
|
||||
|
||||
"$(dirname "$0")"/download/download_toxext_messages.sh
|
||||
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_TOOLCHAIN_FILE=/build/windows-toolchain.cmake \
|
||||
.
|
||||
cmake --build . --target install
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
build_toxcore
|
||||
build_toxext
|
||||
build_toxext_messages
|
68
buildscripts/build_vpx_windows.sh
Executable file
68
buildscripts/build_vpx_windows.sh
Executable file
@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Download and build vpx for the windows cross compiling environment"
|
||||
echo "Usage: $0 --arch {x86_64|i686}"
|
||||
}
|
||||
|
||||
ARCH=""
|
||||
|
||||
while (( $# > 0 )); do
|
||||
case $1 in
|
||||
--arch) ARCH=$2; shift 2 ;;
|
||||
-h|--help) usage; exit 1 ;;
|
||||
*) echo "Unexpected argument $1"; usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ARCH" != "i686" ] && [ "$ARCH" != "x86_64" ]; then
|
||||
echo "Unexpected arch $ARCH"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$(dirname "$0")"/download/download_vpx.sh
|
||||
|
||||
if [ "${ARCH}" == "x86_64" ]; then
|
||||
ARCH_FLAGS="-fno-asynchronous-unwind-tables"
|
||||
VPX_ARCH="x86_64-win64-gcc"
|
||||
elif [ "${ARCH}" == "i686" ]; then \
|
||||
ARCH_FLAGS=""
|
||||
VPX_ARCH="x86-win32-gcc"
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
patch -Np1 < "$(dirname "$0")"/patches/vpx.patch
|
||||
|
||||
CFLAGS=${ARCH_FLAGS} CROSS="${ARCH}-w64-mingw32-" \
|
||||
./configure --target="${VPX_ARCH}" \
|
||||
--prefix=/windows/ \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--enable-runtime-cpu-detect \
|
||||
--disable-examples \
|
||||
--disable-tools \
|
||||
--disable-docs \
|
||||
--disable-unit-tests
|
||||
|
||||
make -j $(nproc)
|
||||
make install
|
50
buildscripts/docker/Dockerfile.archlinux
Normal file
50
buildscripts/docker/Dockerfile.archlinux
Normal file
@ -0,0 +1,50 @@
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
FROM archlinux:latest
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
RUN pacman -Syu --noconfirm --needed \
|
||||
base-devel \
|
||||
cmake \
|
||||
libsodium \
|
||||
qt5-base \
|
||||
qt5-tools \
|
||||
qt5-svg \
|
||||
ffmpeg \
|
||||
libexif \
|
||||
qrencode \
|
||||
sqlcipher \
|
||||
openal \
|
||||
sonnet \
|
||||
snorenotify \
|
||||
git \
|
||||
&& \
|
||||
rm -fr /var/cache/pacman
|
||||
|
||||
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
||||
|
||||
COPY download/common.sh /build/download/common.sh
|
||||
COPY download/download_toxcore.sh /build/download/download_toxcore.sh
|
||||
COPY download/download_toxext.sh /build/download/download_toxext.sh
|
||||
COPY download/download_toxext_messages.sh /build/download/download_toxext_messages.sh
|
||||
COPY build_toxcore_linux.sh /build/build_toxcore_linux.sh
|
||||
RUN mkdir -p /src/tox && \
|
||||
cd /src/tox && \
|
||||
/build/build_toxcore_linux.sh && \
|
||||
rm -fr /src/tox
|
||||
|
||||
WORKDIR /qtox
|
68
buildscripts/docker/Dockerfile.centos
Normal file
68
buildscripts/docker/Dockerfile.centos
Normal file
@ -0,0 +1,68 @@
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
FROM centos:latest
|
||||
|
||||
RUN dnf --nodocs -y install dnf-plugins-core && \
|
||||
dnf config-manager --set-enabled powertools && \
|
||||
dnf --nodocs -y install epel-release && \
|
||||
dnf --nodocs -y install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm && \
|
||||
dnf --nodocs -y install \
|
||||
cmake \
|
||||
make \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
git \
|
||||
libvpx-devel \
|
||||
qt5-qtbase-devel \
|
||||
qt5-linguist \
|
||||
qt5-qtsvg-devel \
|
||||
extra-cmake-modules \
|
||||
opus-devel \
|
||||
libsodium-devel \
|
||||
libasan \
|
||||
ffmpeg-devel \
|
||||
libexif-devel \
|
||||
qrencode-devel \
|
||||
openal-soft-devel \
|
||||
kf5-sonnet-devel \
|
||||
libXScrnSaver-devel \
|
||||
sqlite-devel \
|
||||
sqlcipher-devel && \
|
||||
dnf clean all
|
||||
|
||||
ENV PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
|
||||
|
||||
COPY download/common.sh /build/download/common.sh
|
||||
COPY download/download_snore.sh /build/download/download_snore.sh
|
||||
COPY build_snore_linux.sh /build/build_snore_linux.sh
|
||||
RUN mkdir -p /src/snore && \
|
||||
cd /src/snore && \
|
||||
/build/build_snore_linux.sh && \
|
||||
rm -fr /src/snore
|
||||
|
||||
COPY download/download_toxcore.sh /build/download/download_toxcore.sh
|
||||
COPY download/download_toxext.sh /build/download/download_toxext.sh
|
||||
COPY download/download_toxext_messages.sh /build/download/download_toxext_messages.sh
|
||||
COPY build_toxcore_linux.sh /build/build_toxcore_linux.sh
|
||||
RUN mkdir -p /src/tox && \
|
||||
cd /src/tox && \
|
||||
/build/build_toxcore_linux.sh && \
|
||||
rm -fr /src/tox
|
||||
|
||||
RUN echo '/usr/local/lib64/' >> /etc/ld.so.conf.d/locallib.conf && \
|
||||
ldconfig
|
||||
|
||||
WORKDIR /qtox
|
66
buildscripts/docker/Dockerfile.debian
Normal file
66
buildscripts/docker/Dockerfile.debian
Normal file
@ -0,0 +1,66 @@
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
FROM debian:stable
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y --force-yes --no-install-recommends install \
|
||||
build-essential \
|
||||
cmake \
|
||||
curl \
|
||||
ca-certificates \
|
||||
extra-cmake-modules \
|
||||
git \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libexif-dev \
|
||||
libopenal-dev \
|
||||
libopus-dev \
|
||||
libqrencode-dev \
|
||||
libqt5opengl5-dev \
|
||||
libqt5svg5-dev \
|
||||
libsodium-dev \
|
||||
libsqlcipher-dev \
|
||||
libtool \
|
||||
libvpx-dev \
|
||||
libkf5sonnet-dev \
|
||||
pkg-config \
|
||||
libqrencode-dev \
|
||||
qttools5-dev && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY download/common.sh /build/download/common.sh
|
||||
|
||||
COPY download/download_snore.sh /build/download/download_snore.sh
|
||||
COPY build_snore_linux.sh /build/build_snore_linux.sh
|
||||
RUN mkdir -p /src/snore && \
|
||||
cd /src/snore && \
|
||||
/build/build_snore_linux.sh && \
|
||||
rm -fr /src/snore
|
||||
|
||||
COPY download/download_toxcore.sh /build/download/download_toxcore.sh
|
||||
COPY download/download_toxext.sh /build/download/download_toxext.sh
|
||||
COPY download/download_toxext_messages.sh /build/download/download_toxext_messages.sh
|
||||
COPY build_toxcore_linux.sh /build/build_toxcore_linux.sh
|
||||
RUN mkdir -p /src/tox && \
|
||||
cd /src/tox && \
|
||||
/build/build_toxcore_linux.sh && \
|
||||
rm -fr /src/tox
|
||||
|
||||
WORKDIR /qtox
|
||||
|
68
buildscripts/docker/Dockerfile.debian_old
Normal file
68
buildscripts/docker/Dockerfile.debian_old
Normal file
@ -0,0 +1,68 @@
|
||||
# Copyright © 2019-2021 by The qTox Project Contributors
|
||||
#
|
||||
# This file is part of qTox, a Qt-based graphical interface for Tox.
|
||||
# qTox is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# qTox is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with qTox. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
|
||||
FROM debian:oldoldstable
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y --force-yes --no-install-recommends install \
|
||||
build-essential \
|
||||
cmake \
|
||||
curl \
|
||||
ca-certificates \
|
||||
extra-cmake-modules \
|
||||
git \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libexif-dev \
|
||||
libopenal-dev \
|
||||
libopus-dev \
|
||||
libqrencode-dev \
|
||||
libqt5opengl5-dev \
|
||||
libqt5svg5-dev \
|
||||
libsodium-dev \
|
||||
libsqlcipher-dev \
|
||||
libtool \
|
||||
libvpx-dev \
|
||||
libkf5sonnet-dev \
|
||||
pkg-config \
|
||||
libqrencode-dev \
|
||||
qt5-default \
|
||||
qttools5-dev && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY download/common.sh /build/download/common.sh
|
||||
|
||||
COPY download/download_snore.sh /build/download/download_snore.sh
|
||||
COPY build_snore_linux.sh /build/build_snore_linux.sh
|
||||
RUN mkdir -p /src/snore && \
|
||||
cd /src/snore && \
|
||||
/build/build_snore_linux.sh && \
|
||||
rm -fr /src/snore
|
||||
|
||||
COPY download/download_toxcore.sh /build/download/download_toxcore.sh
|
||||
COPY download/download_toxext.sh /build/download/download_toxext.sh
|
||||
COPY download/download_toxext_messages.sh /build/download/download_toxext_messages.sh
|
||||
COPY build_toxcore_linux.sh /build/build_toxcore_linux.sh
|
||||
RUN mkdir -p /src/tox && \
|
||||
cd /src/tox && \
|
||||
/build/build_toxcore_linux.sh && \
|
||||
rm -fr /src/tox
|
||||
|
||||
WORKDIR /qtox
|
66
buildscripts/docker/Dockerfile.fedora
Normal file
66
buildscripts/docker/Dockerfile.fedora
Normal file
@ -0,0 +1,66 @@
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
FROM fedora:latest
|
||||
|
||||
RUN dnf --nodocs -y install dnf-plugins-core && \
|
||||
dnf --nodocs -y install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm && \
|
||||
dnf --nodocs -y install \
|
||||
cmake \
|
||||
make \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
git \
|
||||
libvpx-devel \
|
||||
qt5-qtbase-devel \
|
||||
qt5-linguist \
|
||||
qt5-qtsvg-devel \
|
||||
extra-cmake-modules \
|
||||
opus-devel \
|
||||
libsodium-devel \
|
||||
libasan \
|
||||
ffmpeg-devel \
|
||||
libexif-devel \
|
||||
qrencode-devel \
|
||||
openal-soft-devel \
|
||||
kf5-sonnet-devel \
|
||||
libXScrnSaver-devel \
|
||||
sqlite-devel \
|
||||
sqlcipher-devel && \
|
||||
dnf clean all
|
||||
|
||||
ENV PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
|
||||
|
||||
COPY download/common.sh /build/download/common.sh
|
||||
COPY download/download_snore.sh /build/download/download_snore.sh
|
||||
COPY build_snore_linux.sh /build/build_snore_linux.sh
|
||||
RUN mkdir -p /src/snore && \
|
||||
cd /src/snore && \
|
||||
/build/build_snore_linux.sh && \
|
||||
rm -fr /src/snore
|
||||
|
||||
COPY download/download_toxcore.sh /build/download/download_toxcore.sh
|
||||
COPY download/download_toxext.sh /build/download/download_toxext.sh
|
||||
COPY download/download_toxext_messages.sh /build/download/download_toxext_messages.sh
|
||||
COPY build_toxcore_linux.sh /build/build_toxcore_linux.sh
|
||||
RUN mkdir -p /src/tox && \
|
||||
cd /src/tox && \
|
||||
/build/build_toxcore_linux.sh && \
|
||||
rm -fr /src/tox
|
||||
|
||||
RUN echo '/usr/local/lib64/' >> /etc/ld.so.conf.d/locallib.conf && \
|
||||
ldconfig
|
||||
|
||||
WORKDIR /qtox
|
62
buildscripts/docker/Dockerfile.flatpak_builder
Normal file
62
buildscripts/docker/Dockerfile.flatpak_builder
Normal file
@ -0,0 +1,62 @@
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
FROM debian:buster
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y --force-yes --no-install-recommends install \
|
||||
curl \
|
||||
ca-certificates \
|
||||
elfutils \
|
||||
# flatpak-validate-icon uses gdk-pixbuf which needs an svg loader
|
||||
librsvg2-common \
|
||||
flatpak \
|
||||
flatpak-builder && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Pre-download kde flatpak environment to speed up flatpak builds
|
||||
RUN flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo && \
|
||||
flatpak --system install flathub -y org.kde.Sdk/x86_64/5.15
|
||||
|
||||
COPY download/common.sh /build/download/common.sh
|
||||
COPY download/download_sodium.sh /build/download/download_sodium.sh
|
||||
RUN mkdir -p /src/libsodium && \
|
||||
cd /src/libsodium && \
|
||||
/build/download/download_sodium.sh
|
||||
|
||||
COPY download/download_sqlcipher.sh /build/download/download_sqlcipher.sh
|
||||
RUN mkdir -p /src/sqlcipher && \
|
||||
cd /src/sqlcipher && \
|
||||
/build/download/download_sqlcipher.sh
|
||||
|
||||
COPY download/download_toxcore.sh /build/download/download_toxcore.sh
|
||||
RUN mkdir -p /src/toxcore && \
|
||||
cd /src/toxcore && \
|
||||
/build/download/download_toxcore.sh
|
||||
|
||||
COPY download/download_toxext.sh /build/download/download_toxext.sh
|
||||
RUN mkdir -p /src/toxext && \
|
||||
cd /src/toxext && \
|
||||
/build/download/download_toxext.sh
|
||||
|
||||
COPY download/download_toxext_messages.sh /build/download/download_toxext_messages.sh
|
||||
RUN mkdir -p /src/toxext_messages && \
|
||||
cd /src/toxext_messages && \
|
||||
/build/download/download_toxext_messages.sh
|
||||
|
||||
WORKDIR /qtox
|
55
buildscripts/docker/Dockerfile.opensuse
Normal file
55
buildscripts/docker/Dockerfile.opensuse
Normal file
@ -0,0 +1,55 @@
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
FROM opensuse/leap:latest
|
||||
|
||||
RUN zypper install --no-recommends -y \
|
||||
git \
|
||||
libexif-devel \
|
||||
libopus-devel \
|
||||
libQt5Concurrent-devel \
|
||||
libqt5-linguist-devel \
|
||||
libqt5-qtbase-common-devel \
|
||||
libqt5-qtsvg-devel \
|
||||
libsodium-devel \
|
||||
libvpx-devel \
|
||||
openal-soft-devel \
|
||||
qrencode-devel \
|
||||
sqlcipher-devel \
|
||||
sonnet-devel \
|
||||
libQt5Test-devel \
|
||||
libQt5Network-devel \
|
||||
libQt5OpenGL-devel \
|
||||
libQt5Xml-devel \
|
||||
curl \
|
||||
tar \
|
||||
gzip \
|
||||
libavcodec-devel \
|
||||
libavdevice-devel \
|
||||
libXss-devel \
|
||||
snorenotify-qt5-devel && \
|
||||
zypper clean
|
||||
|
||||
COPY download/common.sh /build/download/common.sh
|
||||
COPY download/download_toxcore.sh /build/download/download_toxcore.sh
|
||||
COPY download/download_toxext.sh /build/download/download_toxext.sh
|
||||
COPY download/download_toxext_messages.sh /build/download/download_toxext_messages.sh
|
||||
COPY build_toxcore_linux.sh /build/build_toxcore_linux.sh
|
||||
RUN mkdir -p /src/tox && \
|
||||
cd /src/tox && \
|
||||
/build/build_toxcore_linux.sh && \
|
||||
rm -fr /src/tox
|
||||
|
||||
WORKDIR /qtox
|
106
buildscripts/docker/Dockerfile.ubuntu_lts
Normal file
106
buildscripts/docker/Dockerfile.ubuntu_lts
Normal file
@ -0,0 +1,106 @@
|
||||
# Copyright © 2019-2021 by The qTox Project Contributors
|
||||
#
|
||||
# This file is part of qTox, a Qt-based graphical interface for Tox.
|
||||
# qTox is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# qTox is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with qTox. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
FROM ubuntu:18.04
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y --force-yes --no-install-recommends install \
|
||||
build-essential \
|
||||
autoconf \
|
||||
automake \
|
||||
libtool \
|
||||
cmake \
|
||||
extra-cmake-modules \
|
||||
git \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavutil-dev \
|
||||
libexif-dev \
|
||||
libgdk-pixbuf2.0-dev \
|
||||
libglib2.0-dev \
|
||||
libgtk2.0-dev \
|
||||
libopenal-dev \
|
||||
libopus-dev \
|
||||
libqrencode-dev \
|
||||
libqt5opengl5-dev \
|
||||
libqt5svg5-dev \
|
||||
libsodium-dev \
|
||||
libsqlcipher-dev \
|
||||
libswresample-dev \
|
||||
libswscale-dev \
|
||||
libvpx-dev \
|
||||
libkf5sonnet-dev \
|
||||
libxss-dev \
|
||||
qt5-default \
|
||||
qttools5-dev \
|
||||
zsync \
|
||||
libarchive-dev \
|
||||
libfuse-dev \
|
||||
liblzma-dev \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
libinotifytools0-dev \
|
||||
liblz4-dev \
|
||||
libcairo-dev \
|
||||
desktop-file-utils \
|
||||
wget \
|
||||
xxd \
|
||||
ca-certificates \
|
||||
curl \
|
||||
patchelf \
|
||||
lcov && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY download/common.sh /build/download/common.sh
|
||||
|
||||
COPY download/download_snore.sh /build/download/download_snore.sh
|
||||
COPY build_snore_linux.sh /build/build_snore_linux.sh
|
||||
RUN mkdir -p /src/snore && \
|
||||
cd /src/snore && \
|
||||
/build/build_snore_linux.sh --system-install && \
|
||||
rm -fr /src/snore
|
||||
|
||||
COPY download/download_ldqt.sh /build/download/download_ldqt.sh
|
||||
COPY build_ldqt_linux.sh /build/build_ldqt_linux.sh
|
||||
RUN mkdir -p /src/ldqt && \
|
||||
cd /src/ldqt && \
|
||||
/build/build_ldqt_linux.sh && \
|
||||
rm -fr /src/ldqt
|
||||
|
||||
COPY download/download_aitool.sh /build/download/download_aitool.sh
|
||||
COPY build_aitool_linux.sh /build/build_aitool_linux.sh
|
||||
RUN mkdir -p /src/aitool && \
|
||||
cd /src/aitool && \
|
||||
/build/build_aitool_linux.sh && \
|
||||
rm -fr /src/aitool
|
||||
|
||||
COPY download/download_toxcore.sh /build/download/download_toxcore.sh
|
||||
COPY download/download_toxext.sh /build/download/download_toxext.sh
|
||||
COPY download/download_toxext_messages.sh /build/download/download_toxext_messages.sh
|
||||
COPY build_toxcore_linux.sh /build/build_toxcore_linux.sh
|
||||
RUN mkdir -p /src/tox && \
|
||||
cd /src/tox && \
|
||||
/build/build_toxcore_linux.sh && \
|
||||
rm -fr /src/tox
|
||||
|
||||
RUN echo '/usr/local/lib/' >> /etc/ld.so.conf.d/locallib.conf && \
|
||||
ldconfig
|
||||
|
||||
WORKDIR /qtox
|
236
buildscripts/docker/Dockerfile.windows_builder
Normal file
236
buildscripts/docker/Dockerfile.windows_builder
Normal file
@ -0,0 +1,236 @@
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
FROM debian:bullseye-slim
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
ARG ARCH
|
||||
ARG WINEARCH
|
||||
ENV WINEARCH=${WINEARCH}
|
||||
|
||||
RUN dpkg --add-architecture i386 && \
|
||||
apt-get update && apt-get install -y --no-install-recommends \
|
||||
autoconf \
|
||||
automake \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
extra-cmake-modules \
|
||||
git \
|
||||
libarchive-tools \
|
||||
libtool \
|
||||
nsis \
|
||||
pkg-config \
|
||||
python3-pefile \
|
||||
tclsh \
|
||||
texinfo \
|
||||
unzip \
|
||||
curl \
|
||||
yasm \
|
||||
zip \
|
||||
g++-mingw-w64-${ARCH//_/-} \
|
||||
gcc-mingw-w64-${ARCH//_/-} \
|
||||
gdb-mingw-w64 \
|
||||
wine \
|
||||
wine32 \
|
||||
wine64 && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN update-alternatives --set ${ARCH}-w64-mingw32-gcc /usr/bin/${ARCH}-w64-mingw32-gcc-posix && \
|
||||
update-alternatives --set ${ARCH}-w64-mingw32-g++ /usr/bin/${ARCH}-w64-mingw32-g++-posix
|
||||
|
||||
COPY download/common.sh /build/download/common.sh
|
||||
COPY download/download_openssl.sh /build/download/download_openssl.sh
|
||||
COPY build_openssl_windows.sh /build/build_openssl_windows.sh
|
||||
|
||||
RUN mkdir -p /src/openssl && \
|
||||
cd /src/openssl && \
|
||||
/build/build_openssl_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/openssl
|
||||
|
||||
env PKG_CONFIG_PATH=/windows/lib/pkgconfig
|
||||
|
||||
COPY download/download_qt.sh /build/download/download_qt.sh
|
||||
COPY build_qt_windows.sh /build/build_qt_windows.sh
|
||||
|
||||
RUN mkdir -p /src/qt && \
|
||||
cd /src/qt && \
|
||||
/build/build_qt_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/qt
|
||||
|
||||
COPY download/download_sqlcipher.sh /build/download/download_sqlcipher.sh
|
||||
COPY build_sqlcipher_windows.sh /build/build_sqlcipher_windows.sh
|
||||
|
||||
RUN mkdir -p /src/sqlcipher && \
|
||||
cd /src/sqlcipher && \
|
||||
/build/build_sqlcipher_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/sqlcipher
|
||||
|
||||
COPY download/download_ffmpeg.sh /build/download/download_ffmpeg.sh
|
||||
COPY build_ffmpeg_windows.sh /build/build_ffmpeg_windows.sh
|
||||
RUN mkdir -p /src/ffmpeg && \
|
||||
cd /src/ffmpeg && \
|
||||
/build/build_ffmpeg_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/ffmpeg
|
||||
|
||||
COPY toolchain/windows-${ARCH}-toolchain.cmake /build/windows-toolchain.cmake
|
||||
|
||||
COPY download/download_openal.sh /build/download/download_openal.sh
|
||||
COPY build_openal_windows.sh /build/build_openal_windows.sh
|
||||
COPY patches/openal-cmake-3-11.patch /build/patches/openal-cmake-3-11.patch
|
||||
|
||||
RUN mkdir -p /src/openal && \
|
||||
cd /src/openal && \
|
||||
/build/build_openal_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/openal
|
||||
|
||||
COPY download/download_qrencode.sh /build/download/download_qrencode.sh
|
||||
COPY build_qrencode_windows.sh /build/build_qrencode_windows.sh
|
||||
RUN mkdir -p /src/qrencode && \
|
||||
cd /src/qrencode && \
|
||||
/build/build_qrencode_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/qrencode
|
||||
|
||||
COPY download/download_libexif.sh /build/download/download_libexif.sh
|
||||
COPY build_libexif_windows.sh /build/build_libexif_windows.sh
|
||||
RUN mkdir -p /src/exif && \
|
||||
cd /src/exif && \
|
||||
/build/build_libexif_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/exif
|
||||
|
||||
COPY download/download_snore.sh /build/download/download_snore.sh
|
||||
COPY build_snore_windows.sh /build/build_snore_windows.sh
|
||||
RUN mkdir -p /src/snore && \
|
||||
cd /src/snore && \
|
||||
/build/build_snore_windows.sh && \
|
||||
rm -fr /src/snore
|
||||
|
||||
COPY download/download_opus.sh /build/download/download_opus.sh
|
||||
COPY build_opus_windows.sh /build/build_opus_windows.sh
|
||||
RUN mkdir -p /src/opus && \
|
||||
cd /src/opus && \
|
||||
/build/build_opus_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/opus
|
||||
|
||||
COPY download/download_sodium.sh /build/download/download_sodium.sh
|
||||
COPY build_sodium_windows.sh /build/build_sodium_windows.sh
|
||||
RUN mkdir -p /src/sodium && \
|
||||
cd /src/sodium && \
|
||||
/build/build_sodium_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/sodium
|
||||
|
||||
COPY download/download_vpx.sh /build/download/download_vpx.sh
|
||||
COPY build_vpx_windows.sh /build/build_vpx_windows.sh
|
||||
COPY patches/vpx.patch /build/patches/vpx.patch
|
||||
RUN mkdir -p /src/vpx && \
|
||||
cd /src/vpx && \
|
||||
/build/build_vpx_windows.sh --arch ${ARCH} && \
|
||||
rm -fr /src/vpx
|
||||
|
||||
COPY download/download_mingw_ldd.sh /build/download/download_mingw_ldd.sh
|
||||
COPY build_mingw_ldd_windows.sh /build/build_mingw_ldd_windows.sh
|
||||
RUN mkdir -p /src/mingw_ldd && \
|
||||
cd /src/mingw_ldd && \
|
||||
/build/build_mingw_ldd_windows.sh && \
|
||||
rm -fr /src/mingw_ldd
|
||||
|
||||
COPY download/download_nsisshellexecasuser.sh /build/download/download_nsisshellexecasuser.sh
|
||||
COPY build_nsisshellexecasuser_windows.sh /build/build_nsisshellexecasuser_windows.sh
|
||||
RUN mkdir -p /src/nsisshellexecasuser && \
|
||||
cd /src/nsisshellexecasuser && \
|
||||
/build/build_nsisshellexecasuser_windows.sh && \
|
||||
rm -fr /src/nsisshellexecasuser
|
||||
|
||||
COPY download/download_toxcore.sh /build/download/download_toxcore.sh
|
||||
COPY download/download_toxext.sh /build/download/download_toxext.sh
|
||||
COPY download/download_toxext_messages.sh /build/download/download_toxext_messages.sh
|
||||
COPY build_toxcore_windows.sh /build/build_toxcore_windows.sh
|
||||
RUN mkdir -p /src/tox && \
|
||||
cd /src/tox && \
|
||||
/build/build_toxcore_windows.sh && \
|
||||
rm -fr /src/tox
|
||||
|
||||
RUN mkdir /export && \
|
||||
cp /usr/${ARCH}-w64-mingw32/lib/libwinpthread-1.dll /export/ && \
|
||||
cp /usr/lib/gcc/${ARCH}-w64-mingw32/10-posix/libgcc_s_*-1.dll /export && \
|
||||
cp /usr/lib/gcc/${ARCH}-w64-mingw32/10-posix/libstdc++-6.dll /export && \
|
||||
cp /usr/lib/gcc/${ARCH}-w64-mingw32/10-posix/libssp-0.dll /export && \
|
||||
cp /windows/bin/Qt5Core.dll /export && \
|
||||
cp /windows/bin/Qt5Gui.dll /export && \
|
||||
cp /windows/bin/Qt5Network.dll /export && \
|
||||
cp /windows/bin/Qt5Svg.dll /export && \
|
||||
cp /windows/bin/Qt5Xml.dll /export && \
|
||||
cp /windows/bin/Qt5Widgets.dll /export && \
|
||||
cp /windows/bin/avcodec-*.dll /export && \
|
||||
cp /windows/bin/avdevice-*.dll /export && \
|
||||
cp /windows/bin/avformat-*.dll /export && \
|
||||
cp /windows/bin/avutil-*.dll /export && \
|
||||
cp /windows/bin/libexif-*.dll /export && \
|
||||
cp /windows/bin/libqrencode.dll /export && \
|
||||
cp /windows/bin/libsodium-*.dll /export && \
|
||||
cp /windows/bin/libsqlcipher-*.dll /export && \
|
||||
cp /windows/bin/swscale-*.dll /export && \
|
||||
cp /windows/bin/libcrypto-*.dll /export && \
|
||||
cp /windows/bin/libtoxcore.dll /export && \
|
||||
cp /windows/bin/libopus-*.dll /export && \
|
||||
cp /windows/lib/libvpx.dll /export && \
|
||||
cp /windows/bin/libssl-*.dll /export && \
|
||||
cp /windows/bin/libsnore-qt5.dll /export && \
|
||||
mkdir -p /export/libsnore-qt5/ && \
|
||||
cp /windows/plugins/libsnore-qt5/libsnore_backend_windowstoast.dll /export/libsnore-qt5/ && \
|
||||
cp /windows/bin/SnoreToast.exe /export && \
|
||||
cp -r /windows/plugins/iconengines /export && \
|
||||
cp -r /windows/plugins/imageformats /export && \
|
||||
cp -r /windows/plugins/platforms /export
|
||||
|
||||
RUN mkdir -p /debug_export
|
||||
|
||||
COPY download/download_mingw_debug_scripts.sh /build/download/download_mingw_debug_scripts.sh
|
||||
RUN mkdir -p /src/mingw-debug-scripts && \
|
||||
cd /src/mingw-debug-scripts && \
|
||||
/build/download/download_mingw_debug_scripts.sh && \
|
||||
sed -i "s|your-app-name.exe|qtox.exe|g" debug-*.bat && \
|
||||
cp -a debug-*.bat /debug_export && \
|
||||
rm -fr /src/mingw-debug-scripts
|
||||
|
||||
COPY download/download_gmp.sh /build/download/download_gmp.sh
|
||||
COPY build_gmp_windows.sh /build/build_gmp_windows.sh
|
||||
RUN mkdir -p /src/gmp && \
|
||||
cd /src/gmp && \
|
||||
/build/build_gmp_windows.sh && \
|
||||
rm -fr /src/gmp
|
||||
|
||||
COPY download/download_libexpat.sh /build/download/download_libexpat.sh
|
||||
COPY build_libexpat_windows.sh /build/build_libexpat_windows.sh
|
||||
RUN mkdir -p /src/libexpat && \
|
||||
cd /src/libexpat && \
|
||||
/build/build_libexpat_windows.sh && \
|
||||
rm -fr /src/libexpat
|
||||
|
||||
COPY download/download_gdb.sh /build/download/download_gdb.sh
|
||||
COPY build_gdb_windows.sh /build/build_gdb_windows.sh
|
||||
RUN mkdir -p /src/gdb && \
|
||||
cd /src/gdb && \
|
||||
/build/build_gdb_windows.sh && \
|
||||
rm -fr /src/gdb && \
|
||||
cp /windows/bin/gdb.exe /debug_export/gdb.exe
|
||||
|
||||
RUN mkdir -p /qtox
|
||||
WORKDIR /qtox
|
||||
|
76
buildscripts/download/common.sh
Executable file
76
buildscripts/download/common.sh
Executable file
@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
check_sha256()
|
||||
{
|
||||
if uname | grep -q Darwin; then
|
||||
HASH_BIN="gsha256sum"
|
||||
else
|
||||
HASH_BIN="sha256sum"
|
||||
fi
|
||||
|
||||
if ! ( echo "$1 $2" | $HASH_BIN -c --quiet --status - )
|
||||
then
|
||||
echo "Error: sha256 of $2 doesn't match the known one."
|
||||
echo "Expected: $1 $2"
|
||||
echo -n "Got: "
|
||||
sha256sum "$2"
|
||||
exit 1
|
||||
else
|
||||
echo "sha256 matches the expected one: $1"
|
||||
fi
|
||||
}
|
||||
|
||||
download_file()
|
||||
{
|
||||
# Curl command wrapper to download a file to the CWD
|
||||
local URL="$1"
|
||||
curl -L --connect-timeout 10 -O "$URL"
|
||||
}
|
||||
|
||||
download_verify_extract_tarball()
|
||||
{
|
||||
# Downlaoads the tarball at URL, ensures it has an sha256sum of HASH and
|
||||
# extracts it to the CWD
|
||||
|
||||
local URL="$1"
|
||||
local HASH="$2"
|
||||
|
||||
# Try linux style mktemp and fallback on osx style
|
||||
TEMPDIR=$(mktemp -d -p . 2>/dev/null || mktemp -d -t qtox_download)
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
TEMPDIR=$(cd "$TEMPDIR"; pwd -P)
|
||||
|
||||
pushd "$TEMPDIR" >/dev/null || exit 1
|
||||
|
||||
download_file "$URL"
|
||||
|
||||
if ! check_sha256 "$HASH" *; then
|
||||
rm -fr "$TEMPDIR"
|
||||
return 1
|
||||
fi
|
||||
|
||||
popd >/dev/null || exit 1
|
||||
|
||||
tar -xf "$TEMPDIR"/* --strip-components=1
|
||||
|
||||
rm -fr "$TEMPDIR"
|
||||
}
|
26
buildscripts/download/download_aitool.sh
Executable file
26
buildscripts/download/download_aitool.sh
Executable file
@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
AITOOL_HASH=effcebc1d81c5e174a48b870cb420f490fb5fb4d
|
||||
|
||||
git clone -b master --single-branch --recursive \
|
||||
https://github.com/AppImage/AppImageKit .
|
||||
|
||||
git checkout "$AITOOL_HASH"
|
||||
git submodule update --init --recursive
|
27
buildscripts/download/download_ffmpeg.sh
Executable file
27
buildscripts/download/download_ffmpeg.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
FFMPEG_VERSION=4.4.1
|
||||
FFMPEG_HASH=eadbad9e9ab30b25f5520fbfde99fae4a92a1ae3c0257a8d68569a4651e30e02
|
||||
|
||||
source "$(dirname $0)"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://www.ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz" \
|
||||
"${FFMPEG_HASH}"
|
28
buildscripts/download/download_gdb.sh
Executable file
28
buildscripts/download/download_gdb.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
GDB_VERSION="11.1"
|
||||
GDB_HASH="cccfcc407b20d343fb320d4a9a2110776dd3165118ffd41f4b1b162340333f94"
|
||||
|
||||
source "$(dirname $0)"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"http://ftp.gnu.org/gnu/gdb/gdb-${GDB_VERSION}.tar.xz" \
|
||||
${GDB_HASH}
|
||||
|
28
buildscripts/download/download_gmp.sh
Executable file
28
buildscripts/download/download_gmp.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
GMP_VERSION=6.2.1
|
||||
GMP_HASH=fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
|
||||
|
||||
source "$(dirname $0)"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"http://ftp.gnu.org/gnu/gmp/gmp-${GMP_VERSION}.tar.xz" \
|
||||
"${GMP_HASH}"
|
||||
|
27
buildscripts/download/download_ldqt.sh
Executable file
27
buildscripts/download/download_ldqt.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
LINUXDEPLOYQT_VERSION=570ca2dcb16f59ce0a2721f780093db8037cc9e0
|
||||
LINUXDEPLOYQT_HASH=d53496c349f540ce17ea42c508d85802db1c7c3571e1bf962ec4e95482ea938e
|
||||
|
||||
source "$(dirname $0)"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://github.com/probonopd/linuxdeployqt/archive/${LINUXDEPLOYQT_VERSION}.tar.gz" \
|
||||
"${LINUXDEPLOYQT_HASH}"
|
27
buildscripts/download/download_libexif.sh
Executable file
27
buildscripts/download/download_libexif.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
LIBEXIF_VERSION=0.6.24
|
||||
LIBEXIF_HASH=d47564c433b733d83b6704c70477e0a4067811d184ec565258ac563d8223f6ae
|
||||
|
||||
source "$(dirname $0)"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://github.com/libexif/libexif/releases/download/v${LIBEXIF_VERSION}/libexif-${LIBEXIF_VERSION}.tar.bz2" \
|
||||
"${LIBEXIF_HASH}"
|
27
buildscripts/download/download_libexpat.sh
Executable file
27
buildscripts/download/download_libexpat.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
EXPAT_VERSION="2.4.1"
|
||||
EXPAT_HASH="cf032d0dba9b928636548e32b327a2d66b1aab63c4f4a13dd132c2d1d2f2fb6a"
|
||||
|
||||
source "$(dirname $0)"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://github.com/libexpat/libexpat/releases/download/R_${EXPAT_VERSION//./_}/expat-${EXPAT_VERSION}.tar.xz" \
|
||||
${EXPAT_HASH}
|
27
buildscripts/download/download_mingw_debug_scripts.sh
Executable file
27
buildscripts/download/download_mingw_debug_scripts.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
MINGW_W64_DEBUG_SCRIPTS_VERSION="c6ae689137844d1a6fd9c1b9a071d3f82a44c593"
|
||||
MINGW_W64_DEBUG_SCRIPTS_HASH="5916bf9e6691d4f7f1c233c8c3a2b9f3b1d1ad0f58ab951381da5ec856f5d021"
|
||||
|
||||
source "$(dirname $0)"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://github.com/nurupo/mingw-w64-debug-scripts/archive/${MINGW_W64_DEBUG_SCRIPTS_VERSION}.tar.gz" \
|
||||
${MINGW_W64_DEBUG_SCRIPTS_HASH}
|
27
buildscripts/download/download_mingw_ldd.sh
Executable file
27
buildscripts/download/download_mingw_ldd.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
MINGW_LDD_VERSION=0.2.1
|
||||
MINGW_LDD_HASH=60d34506d2f345e011b88de172ef312f37ca3ba87f3764f511061b69878ab204
|
||||
|
||||
source "$(dirname $0)"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://github.com/nurupo/mingw-ldd/archive/v${MINGW_LDD_VERSION}.tar.gz" \
|
||||
"${MINGW_LDD_HASH}"
|
31
buildscripts/download/download_nsisshellexecasuser.sh
Executable file
31
buildscripts/download/download_nsisshellexecasuser.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
NSISSHELLEXECASUSER_HASH=8fc19829e144716a422b15a85e718e1816fe561de379b2b5ae87ef9017490799
|
||||
|
||||
source "$(dirname "$0")/common.sh"
|
||||
|
||||
download_file http://nsis.sourceforge.net/mediawiki/images/c/c7/ShellExecAsUser.zip
|
||||
|
||||
if ! check_sha256 "$NSISSHELLEXECASUSER_HASH" ShellExecAsUser.zip; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unzip ShellExecAsUser.zip
|
||||
rm ShellExecAsUser.zip
|
29
buildscripts/download/download_openal.sh
Executable file
29
buildscripts/download/download_openal.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
OPENAL_VERSION=b80570bed017de60b67c6452264c634085c3b148
|
||||
OPENAL_HASH=e9f6d37672e085d440ef8baeebb7d62fec1d152094c162e5edb33b191462bd78
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
## We can stop using the fork once OpenAL-Soft gets loopback capture implemented:
|
||||
## https://github.com/kcat/openal-soft/pull/421
|
||||
download_verify_extract_tarball \
|
||||
"https://github.com/irungentoo/openal-soft-tox/archive/${OPENAL_VERSION}.tar.gz" \
|
||||
"${OPENAL_HASH}"
|
27
buildscripts/download/download_openssl.sh
Executable file
27
buildscripts/download/download_openssl.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
OPENSSL_VERSION=1.1.1l
|
||||
OPENSSL_HASH=0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz" \
|
||||
"$OPENSSL_HASH"
|
27
buildscripts/download/download_opus.sh
Executable file
27
buildscripts/download/download_opus.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
OPUS_VERSION=1.3.1
|
||||
OPUS_HASH=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz" \
|
||||
"${OPUS_HASH}"
|
27
buildscripts/download/download_qrencode.sh
Executable file
27
buildscripts/download/download_qrencode.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
QRENCODE_VERSION=4.1.1
|
||||
QRENCODE_HASH=e455d9732f8041cf5b9c388e345a641fd15707860f928e94507b1961256a6923
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://fukuchi.org/works/qrencode/qrencode-${QRENCODE_VERSION}.tar.bz2" \
|
||||
"${QRENCODE_HASH}"
|
29
buildscripts/download/download_qt.sh
Executable file
29
buildscripts/download/download_qt.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
QT_MAJOR=5
|
||||
QT_MINOR=12
|
||||
QT_PATCH=12
|
||||
QT_HASH=1979a3233f689cb8b3e2783917f8f98f6a2e1821a70815fb737f020cd4b6ab06
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
https://download.qt.io/official_releases/qt/${QT_MAJOR}.${QT_MINOR}/${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}/single/qt-everywhere-src-${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}.tar.xz \
|
||||
"${QT_HASH}"
|
27
buildscripts/download/download_snore.sh
Executable file
27
buildscripts/download/download_snore.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SNORE_VERSION=0.7.0
|
||||
SNORE_HASH=2e3f5fbb80ab993f6149136cd9a14c2de66f48cabce550dead167a9448f5bed9
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://github.com/KDE/snorenotify/archive/v${SNORE_VERSION}.tar.gz" \
|
||||
"${SNORE_HASH}"
|
27
buildscripts/download/download_sodium.sh
Executable file
27
buildscripts/download/download_sodium.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SODIUM_VERSION=1.0.18
|
||||
SODIUM_HASH=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://download.libsodium.org/libsodium/releases/libsodium-${SODIUM_VERSION}.tar.gz" \
|
||||
"${SODIUM_HASH}"
|
27
buildscripts/download/download_sqlcipher.sh
Executable file
27
buildscripts/download/download_sqlcipher.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SQLCIPHER_VERSION=4.5.0
|
||||
SQLCIPHER_HASH=20c46a855c47d5a0a159fdcaa8491ec7bdbaa706a734ee52bc76188b929afb14
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://github.com/sqlcipher/sqlcipher/archive/v${SQLCIPHER_VERSION}.tar.gz" \
|
||||
"${SQLCIPHER_HASH}"
|
27
buildscripts/download/download_toxcore.sh
Executable file
27
buildscripts/download/download_toxcore.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TOXCORE_VERSION=0.2.13
|
||||
TOXCORE_HASH=67114fa57504c58b695f5dce8ef85124d555f2c3c353d0d2615e6d4845114ab8
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
https://github.com/TokTok/c-toxcore/archive/v$TOXCORE_VERSION.tar.gz \
|
||||
"$TOXCORE_HASH"
|
28
buildscripts/download/download_toxext.sh
Executable file
28
buildscripts/download/download_toxext.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TOXEXT_VERSION=0.0.3
|
||||
TOXEXT_HASH=99cf215d261a07bd83eafd1c69dcf78018db605898350b6137f1fd8e7c54734a
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
https://github.com/toxext/toxext/archive/v$TOXEXT_VERSION.tar.gz \
|
||||
"$TOXEXT_HASH"
|
||||
|
28
buildscripts/download/download_toxext_messages.sh
Executable file
28
buildscripts/download/download_toxext_messages.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TOXEXT_MESSAGES_VERSION=0.0.3
|
||||
TOXEXT_MESSAGES_HASH=e7a9a199a3257382a85a8e555b6c8c540b652a11ca9a471b9da2a25a660dfdc3
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
https://github.com/toxext/tox_extension_messages/archive/v$TOXEXT_MESSAGES_VERSION.tar.gz \
|
||||
"$TOXEXT_MESSAGES_HASH"
|
||||
|
27
buildscripts/download/download_vpx.sh
Executable file
27
buildscripts/download/download_vpx.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
VPX_VERSION=1.11.0
|
||||
VPX_HASH=965e51c91ad9851e2337aebcc0f517440c637c506f3a03948062e3d5ea129a83
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
download_verify_extract_tarball \
|
||||
"https://github.com/webmproject/libvpx/archive/v$VPX_VERSION.tar.gz" \
|
||||
"${VPX_HASH}"
|
16
buildscripts/patches/openal-cmake-3-11.patch
Normal file
16
buildscripts/patches/openal-cmake-3-11.patch
Normal file
@ -0,0 +1,16 @@
|
||||
https://github.com/microsoft/vcpkg/blob/3baf583934f3077070e9ed4e7684f743ecced577/ports/openal-soft/cmake-3-11.patch
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index a871f4c..f9f6b34 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -965,7 +965,8 @@ OPTION(ALSOFT_REQUIRE_DSOUND "Require DirectSound backend" OFF)
|
||||
OPTION(ALSOFT_REQUIRE_MMDEVAPI "Require MMDevApi backend" OFF)
|
||||
IF(HAVE_WINDOWS_H)
|
||||
# Check MMSystem backend
|
||||
- CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H -D_WIN32_WINNT=0x0502)
|
||||
+ set(CMAKE_REQUIRED_DEFINITIONS -D_WIN32_WINNT=0x0502)
|
||||
+ CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H)
|
||||
IF(HAVE_MMSYSTEM_H)
|
||||
CHECK_SHARED_FUNCTION_EXISTS(waveOutOpen "windows.h;mmsystem.h" winmm "" HAVE_LIBWINMM)
|
||||
IF(HAVE_LIBWINMM)
|
119
buildscripts/patches/vpx.patch
Normal file
119
buildscripts/patches/vpx.patch
Normal file
@ -0,0 +1,119 @@
|
||||
diff -ruN libvpx/build/make/configure.sh patched/build/make/configure.sh
|
||||
--- libvpx/build/make/configure.sh 2019-02-13 16:56:48.972857636 +0100
|
||||
+++ patched/build/make/configure.sh 2019-02-13 16:50:37.995967583 +0100
|
||||
@@ -1426,11 +1426,13 @@
|
||||
win32)
|
||||
add_asflags -f win32
|
||||
enabled debug && add_asflags -g cv8
|
||||
+ add_ldflags "-Wl,-no-undefined"
|
||||
EXE_SFX=.exe
|
||||
;;
|
||||
win64)
|
||||
add_asflags -f win64
|
||||
enabled debug && add_asflags -g cv8
|
||||
+ add_ldflags "-Wl,-no-undefined"
|
||||
EXE_SFX=.exe
|
||||
;;
|
||||
linux*|solaris*|android*)
|
||||
diff -ruN libvpx/build/make/Makefile patched/build/make/Makefile
|
||||
--- libvpx/build/make/Makefile 2019-02-13 16:56:48.972857636 +0100
|
||||
+++ patched/build/make/Makefile 2019-02-13 16:50:37.995967583 +0100
|
||||
@@ -304,6 +304,7 @@
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(LD) -shared $$(LDFLAGS) \
|
||||
-Wl,--no-undefined -Wl,-soname,$$(SONAME) \
|
||||
+ -Wl,-out-implib,libvpx.dll.a \
|
||||
-Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \
|
||||
$$(filter %.o,$$^) $$(extralibs)
|
||||
endef
|
||||
@@ -388,7 +389,7 @@
|
||||
.libs: $(LIBS)
|
||||
@touch $@
|
||||
$(foreach lib,$(filter %_g.a,$(LIBS)),$(eval $(call archive_template,$(lib))))
|
||||
-$(foreach lib,$(filter %so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH),$(LIBS)),$(eval $(call so_template,$(lib))))
|
||||
+$(foreach lib,$(filter %dll,$(LIBS)),$(eval $(call so_template,$(lib))))
|
||||
$(foreach lib,$(filter %$(SO_VERSION_MAJOR).dylib,$(LIBS)),$(eval $(call dl_template,$(lib))))
|
||||
$(foreach lib,$(filter %$(SO_VERSION_MAJOR).dll,$(LIBS)),$(eval $(call dll_template,$(lib))))
|
||||
|
||||
diff -ruN libvpx/configure patched/configure
|
||||
--- libvpx/configure 2019-02-13 16:56:49.162860897 +0100
|
||||
+++ patched/configure 2019-02-13 16:53:03.328719607 +0100
|
||||
@@ -513,23 +513,23 @@
|
||||
}
|
||||
|
||||
process_detect() {
|
||||
- if enabled shared; then
|
||||
+ #if enabled shared; then
|
||||
# Can only build shared libs on a subset of platforms. Doing this check
|
||||
# here rather than at option parse time because the target auto-detect
|
||||
# magic happens after the command line has been parsed.
|
||||
- case "${tgt_os}" in
|
||||
- linux|os2|solaris|darwin*|iphonesimulator*)
|
||||
+ # case "${tgt_os}" in
|
||||
+ # linux|os2|solaris|darwin*|iphonesimulator*)
|
||||
# Supported platforms
|
||||
- ;;
|
||||
- *)
|
||||
- if enabled gnu; then
|
||||
- echo "--enable-shared is only supported on ELF; assuming this is OK"
|
||||
- else
|
||||
- die "--enable-shared only supported on ELF, OS/2, and Darwin for now"
|
||||
- fi
|
||||
- ;;
|
||||
- esac
|
||||
- fi
|
||||
+ # ;;
|
||||
+ # *)
|
||||
+ # if enabled gnu; then
|
||||
+ # echo "--enable-shared is only supported on ELF; assuming this is OK"
|
||||
+ # else
|
||||
+ # die "--enable-shared only supported on ELF, OS/2, and Darwin for now"
|
||||
+ # fi
|
||||
+ # ;;
|
||||
+ # esac
|
||||
+ #fi
|
||||
if [ -z "$CC" ] || enabled external_build; then
|
||||
echo "Bypassing toolchain for environment detection."
|
||||
enable_feature external_build
|
||||
diff -ruN libvpx/examples.mk patched/examples.mk
|
||||
--- libvpx/examples.mk 2019-02-13 16:56:49.162860897 +0100
|
||||
+++ patched/examples.mk 2019-02-13 16:50:37.995967583 +0100
|
||||
@@ -315,7 +315,7 @@
|
||||
ifneq ($(filter os2%,$(TGT_OS)),)
|
||||
SHARED_LIB_SUF=_dll.a
|
||||
else
|
||||
-SHARED_LIB_SUF=.so
|
||||
+SHARED_LIB_SUF=.dll.a
|
||||
endif
|
||||
endif
|
||||
CODEC_LIB_SUF=$(if $(CONFIG_SHARED),$(SHARED_LIB_SUF),.a)
|
||||
diff -ruN libvpx/libs.mk patched/libs.mk
|
||||
--- libvpx/libs.mk 2019-02-13 16:56:48.972857636 +0100
|
||||
+++ patched/libs.mk 2019-02-13 16:50:37.995967583 +0100
|
||||
@@ -256,12 +256,12 @@
|
||||
LIBVPX_SO_SYMLINKS :=
|
||||
LIBVPX_SO_IMPLIB := libvpx_dll.a
|
||||
else
|
||||
-LIBVPX_SO := libvpx.so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH)
|
||||
-SHARED_LIB_SUF := .so
|
||||
+LIBVPX_SO := libvpx.dll
|
||||
+SHARED_LIB_SUF := .dll
|
||||
EXPORT_FILE := libvpx.ver
|
||||
-LIBVPX_SO_SYMLINKS := $(addprefix $(LIBSUBDIR)/, \
|
||||
- libvpx.so libvpx.so.$(SO_VERSION_MAJOR) \
|
||||
- libvpx.so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR))
|
||||
+LIBVPX_SO_SYMLINKS :=
|
||||
+
|
||||
+
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -271,7 +271,7 @@
|
||||
$(if $(LIBVPX_SO_IMPLIB), $(BUILD_PFX)$(LIBVPX_SO_IMPLIB))
|
||||
$(BUILD_PFX)$(LIBVPX_SO): $(LIBVPX_OBJS) $(EXPORT_FILE)
|
||||
$(BUILD_PFX)$(LIBVPX_SO): extralibs += -lm
|
||||
-$(BUILD_PFX)$(LIBVPX_SO): SONAME = libvpx.so.$(SO_VERSION_MAJOR)
|
||||
+$(BUILD_PFX)$(LIBVPX_SO): SONAME = libvpx.dll
|
||||
$(BUILD_PFX)$(LIBVPX_SO): EXPORTS_FILE = $(EXPORT_FILE)
|
||||
|
||||
libvpx.def: $(call enabled,CODEC_EXPORTS)
|
13
buildscripts/toolchain/windows-i686-toolchain.cmake
Normal file
13
buildscripts/toolchain/windows-i686-toolchain.cmake
Normal file
@ -0,0 +1,13 @@
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
|
||||
SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
|
||||
SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
|
||||
|
||||
SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
|
||||
|
||||
# search for programs in the build host directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
# for libraries and headers in the target directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
13
buildscripts/toolchain/windows-x86_64-toolchain.cmake
Normal file
13
buildscripts/toolchain/windows-x86_64-toolchain.cmake
Normal file
@ -0,0 +1,13 @@
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
|
||||
SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
|
||||
SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
|
||||
|
||||
SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32)
|
||||
|
||||
# search for programs in the build host directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
# for libraries and headers in the target directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
@ -50,7 +50,9 @@ auto_test(chatlog chatlinestorage "")
|
||||
auto_test(persistence paths "")
|
||||
auto_test(persistence dbschema "")
|
||||
auto_test(persistence offlinemsgengine "")
|
||||
auto_test(persistence smileypack "${${PROJECT_NAME}_RESOURCES}") # needs emojione
|
||||
if(NOT "${SMILEYS}" STREQUAL "DISABLED")
|
||||
auto_test(persistence smileypack "${${PROJECT_NAME}_RESOURCES}") # needs emojione
|
||||
endif()
|
||||
auto_test(model friendmessagedispatcher "")
|
||||
auto_test(model groupmessagedispatcher "${MOCK_SOURCES}")
|
||||
auto_test(model messageprocessor "")
|
||||
|
93
docker-compose.yml
Normal file
93
docker-compose.yml
Normal file
@ -0,0 +1,93 @@
|
||||
x-shared-params: &shared_params
|
||||
# Fixes various issues when building/running in the docker containers
|
||||
# Known fixes:
|
||||
# * Appimage mounting
|
||||
# * Attaching to processes in GDB
|
||||
# * Fix tcl build due to pivot_root
|
||||
cap_add:
|
||||
- ALL
|
||||
# Allows us to run app images from within the context of a docker image
|
||||
devices:
|
||||
- /dev/fuse:/dev/fuse
|
||||
# X11 stuff
|
||||
environment:
|
||||
DISPLAY: $DISPLAY
|
||||
XAUTHORITY: $XAUTHORITY
|
||||
volumes:
|
||||
- .:/qtox
|
||||
- /tmp/.X11-unix:/tmp/.X11-unix
|
||||
- ~/.Xauthority:/root/.Xauthority
|
||||
user: ${USER_ID:-0}:${GROUP_ID:-0}
|
||||
network_mode: host
|
||||
|
||||
services:
|
||||
archlinux:
|
||||
image: qtox_archlinux:latest
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.archlinux
|
||||
<<: *shared_params
|
||||
debian_old:
|
||||
image: qtox_debian_old:latest
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.debian_old
|
||||
<<: *shared_params
|
||||
debian:
|
||||
image: qtox_debian:latest
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.debian
|
||||
args:
|
||||
DEBIAN_VERSION: stable
|
||||
<<: *shared_params
|
||||
ubuntu_lts:
|
||||
image: qtox_ubuntu:latest
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.ubuntu_lts
|
||||
<<: *shared_params
|
||||
flatpak:
|
||||
image: qtox_flatpak:latest
|
||||
# Flatpak build uses pivot_root() in tcl build
|
||||
privileged: true
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.flatpak_builder
|
||||
<<: *shared_params
|
||||
centos:
|
||||
image: qtox_centos:latest
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.centos
|
||||
<<: *shared_params
|
||||
fedora:
|
||||
image: qtox_fedora:latest
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.fedora
|
||||
<<: *shared_params
|
||||
opensuse:
|
||||
image: qtox_opensuse:latest
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.opensuse
|
||||
<<: *shared_params
|
||||
windows_builder:
|
||||
image: qtox_windows_builder:latest
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.windows_builder
|
||||
args:
|
||||
ARCH: x86_64
|
||||
WINEARCH: win64
|
||||
<<: *shared_params
|
||||
windows_builder.i686:
|
||||
image: qtox_windows_builder.i686:latest
|
||||
build:
|
||||
context: ./buildscripts
|
||||
dockerfile: docker/Dockerfile.windows_builder
|
||||
args:
|
||||
ARCH: i686
|
||||
WINEARCH: win32
|
||||
<<: *shared_params
|
@ -1,78 +0,0 @@
|
||||
# Copyright © 2019 by The qTox Project Contributors
|
||||
#
|
||||
# This file is part of qTox, a Qt-based graphical interface for Tox.
|
||||
# qTox is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# qTox is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with qTox. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
FROM debian:stretch
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y --force-yes install \
|
||||
automake \
|
||||
autotools-dev \
|
||||
build-essential \
|
||||
check \
|
||||
checkinstall \
|
||||
cmake \
|
||||
ffmpeg \
|
||||
git \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libexif-dev \
|
||||
libgdk-pixbuf2.0-dev \
|
||||
libgtk2.0-dev \
|
||||
libopenal-dev \
|
||||
libopus-dev \
|
||||
libqrencode-dev \
|
||||
libqt5opengl5-dev \
|
||||
libqt5svg5-dev \
|
||||
libsodium-dev \
|
||||
libsqlcipher-dev \
|
||||
libtool \
|
||||
libvpx-dev \
|
||||
libxss-dev \
|
||||
pkg-config \
|
||||
qrencode \
|
||||
qt5-default \
|
||||
qttools5-dev \
|
||||
qttools5-dev-tools \
|
||||
yasm
|
||||
|
||||
RUN git clone https://github.com/toktok/c-toxcore.git /toxcore
|
||||
WORKDIR /toxcore
|
||||
RUN git checkout v0.2.13 && \
|
||||
cmake . -DBOOTSTRAP_DAEMON=OFF && \
|
||||
cmake --build . && \
|
||||
make install && \
|
||||
echo '/usr/local/lib/' >> /etc/ld.so.conf.d/locallib.conf && \
|
||||
ldconfig
|
||||
|
||||
RUN git clone https://github.com/toxext/toxext.git /toxext
|
||||
WORKDIR /toxext
|
||||
RUN git checkout v0.0.3 && \
|
||||
cmake . && \
|
||||
cmake --build . -- -j $(nproc) && \
|
||||
cmake --build . --target install
|
||||
|
||||
RUN git clone https://github.com/toxext/tox_extension_messages.git /tox_extension_messages
|
||||
WORKDIR /tox_extension_messages
|
||||
RUN git checkout v0.0.3 && \
|
||||
cmake . && \
|
||||
cmake --build . -- -j $(nproc) && \
|
||||
cmake --build . --target install
|
||||
|
||||
COPY . /qtox
|
||||
WORKDIR /qtox
|
||||
RUN cmake . && cmake --build .
|
@ -1,75 +0,0 @@
|
||||
# Copyright © 2019 by The qTox Project Contributors
|
||||
#
|
||||
# This file is part of qTox, a Qt-based graphical interface for Tox.
|
||||
# qTox is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# qTox is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with qTox. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
FROM ubuntu:18.04
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y --force-yes install \
|
||||
build-essential \
|
||||
cmake \
|
||||
git \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavutil-dev \
|
||||
libexif-dev \
|
||||
libgdk-pixbuf2.0-dev \
|
||||
libglib2.0-dev \
|
||||
libgtk2.0-dev \
|
||||
libopenal-dev \
|
||||
libopus-dev \
|
||||
libqrencode-dev \
|
||||
libqt5opengl5-dev \
|
||||
libqt5svg5-dev \
|
||||
libsodium-dev \
|
||||
libsqlcipher-dev \
|
||||
libswresample-dev \
|
||||
libswscale-dev \
|
||||
libvpx-dev \
|
||||
libxss-dev \
|
||||
qrencode \
|
||||
qt5-default \
|
||||
qttools5-dev-tools \
|
||||
qttools5-dev
|
||||
|
||||
RUN git clone https://github.com/toktok/c-toxcore.git /toxcore
|
||||
WORKDIR /toxcore
|
||||
RUN git checkout v0.2.13 && \
|
||||
cmake . -DBOOTSTRAP_DAEMON=OFF && \
|
||||
cmake --build . && \
|
||||
make install && \
|
||||
echo '/usr/local/lib/' >> /etc/ld.so.conf.d/locallib.conf && \
|
||||
ldconfig
|
||||
|
||||
RUN git clone https://github.com/toxext/toxext.git /toxext
|
||||
WORKDIR /toxext
|
||||
RUN git checkout v0.0.3 && \
|
||||
cmake . && \
|
||||
cmake --build . -- -j $(nproc) && \
|
||||
cmake --build . --target install
|
||||
|
||||
RUN git clone https://github.com/toxext/tox_extension_messages.git /tox_extension_messages
|
||||
WORKDIR /tox_extension_messages
|
||||
RUN git checkout v0.0.3 && \
|
||||
cmake . && \
|
||||
cmake --build . -- -j $(nproc) && \
|
||||
cmake --build . --target install
|
||||
|
||||
COPY . /qtox
|
||||
WORKDIR /qtox
|
||||
RUN cmake . && cmake --build .
|
@ -1,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2019 by The qTox Project Contributors
|
||||
#
|
||||
# This file is part of qTox, a Qt-based graphical interface for Tox.
|
||||
# qTox is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# qTox is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with qTox. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
docker build . -f docker/Dockerfile.debian -t qtox
|
||||
cd -
|
@ -1,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright © 2019 by The qTox Project Contributors
|
||||
#
|
||||
# This file is part of qTox, a Qt-based graphical interface for Tox.
|
||||
# qTox is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# qTox is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with qTox. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
docker build . -f docker/Dockerfile.ubuntu -t qtox
|
||||
cd -
|
@ -1,24 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright © 2019 by The qTox Project Contributors
|
||||
#
|
||||
# This file is part of qTox, a Qt-based graphical interface for Tox.
|
||||
# qTox is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# qTox is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with qTox. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
|
||||
XSOCK=/tmp/.X11-unix
|
||||
XAUTH=/tmp/.docker.xauth
|
||||
touch $XAUTH
|
||||
xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
|
||||
docker run -ti --rm -v $XSOCK:$XSOCK -v $XAUTH:$XAUTH -e DISPLAY=$DISPLAY -e XAUTHORITY=$XAUTH qtox ./qtox
|
@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# SPDX-License-Identifier: GPL-3.0+
|
||||
#
|
||||
# Copyright © 2018-2019 by The qTox Project Contributors
|
||||
#
|
||||
# This script should be run from the root of the repository
|
||||
|
||||
# usage: ./flatpak/build-flatpak.sh [Debug]
|
||||
#
|
||||
# If [Debug] is set to "Debug" the container will run in interactive mode and
|
||||
# stay open to poke around in the filesystem.
|
||||
|
||||
readonly DEBUG="$1"
|
||||
|
||||
# Fail out on error
|
||||
set -exo pipefail
|
||||
|
||||
if [ ! -f ./flatpak/build-flatpak.sh ]; then
|
||||
echo ""
|
||||
echo "You are attempting to run the build-flatpak.sh from a wrong directory."
|
||||
echo "If you wish to run this script, you'll have to have"
|
||||
echo "the repository root directory as the working directory."
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p ./output
|
||||
|
||||
if [ "$DEBUG" == "Debug" ]
|
||||
then
|
||||
echo "Execute: /qtox/appimage/build.sh to start the build script"
|
||||
echo "Execute: exit to leave the container"
|
||||
|
||||
docker run --rm --privileged -it \
|
||||
-v $PWD:/qtox \
|
||||
-v $PWD/output:/output \
|
||||
debian:buster-slim \
|
||||
/bin/bash
|
||||
else
|
||||
docker run --rm --privileged \
|
||||
-v $PWD:/qtox \
|
||||
-v $PWD/output:/output \
|
||||
debian:buster-slim \
|
||||
/bin/bash -c "/qtox/flatpak/build.sh"
|
||||
fi
|
||||
|
||||
# use the version number in the name when building a tag on Travis CI
|
||||
if [ -n "$TRAVIS_TAG" ]
|
||||
then
|
||||
readonly OUTFILE=./output/qTox-"$TRAVIS_TAG".x86_64.flatpak
|
||||
mv ./output/*.flatpak "$OUTFILE"
|
||||
sha256sum "$OUTFILE" > "$OUTFILE".sha256
|
||||
fi
|
@ -2,58 +2,23 @@
|
||||
|
||||
# SPDX-License-Identifier: GPL-3.0+
|
||||
#
|
||||
# Copyright © 2018-2019 by The qTox Project Contributors
|
||||
# Copyright © 2018-2021 by The qTox Project Contributors
|
||||
|
||||
# Fail out on error
|
||||
set -exuo pipefail
|
||||
|
||||
# directory paths
|
||||
readonly QTOX_SRC_DIR="/qtox"
|
||||
readonly OUTPUT_DIR="/output"
|
||||
readonly BUILD_DIR="/build"
|
||||
readonly QTOX_BUILD_DIR="$BUILD_DIR"/qtox
|
||||
readonly FP_BUILD_DIR="$BUILD_DIR"/flatpak
|
||||
readonly APT_FLAGS="-y --no-install-recommends"
|
||||
# flatpak manifest download location
|
||||
readonly MANIFEST_FILE="flatpak/io.github.qtox.qTox.json"
|
||||
# directory containing necessary patches
|
||||
readonly PATCH_DIR="flatpak/patches"
|
||||
# use multiple cores when building
|
||||
export MAKEFLAGS="-j$(nproc)"
|
||||
FLATPAK_DESCRIPTOR=$(dirname $(realpath $0))/io.github.qtox.qTox.json
|
||||
|
||||
# Get packages
|
||||
apt-get update
|
||||
apt-get install $APT_FLAGS ca-certificates git elfutils wget xz-utils patch bzip2 librsvg2-2 librsvg2-common flatpak flatpak-builder
|
||||
|
||||
# create build directory
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cd "$BUILD_DIR"
|
||||
|
||||
# copy qtox source
|
||||
cp -r "$QTOX_SRC_DIR" "$QTOX_BUILD_DIR"
|
||||
cd "$QTOX_BUILD_DIR"
|
||||
|
||||
# create flatpak build directory
|
||||
mkdir -p "$FP_BUILD_DIR"
|
||||
cd "$FP_BUILD_DIR"
|
||||
|
||||
# Add 'https://flathub.org' remote:
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
## Workaround for Flathub download issues: https://github.com/flathub/flathub/issues/845
|
||||
# Pre download org.kde.Sdk because it fails often
|
||||
for i in {1..5}
|
||||
do
|
||||
echo "Download try $i"
|
||||
flatpak --system install flathub -y org.kde.Sdk/x86_64/5.15 || true
|
||||
done
|
||||
## Workaround end
|
||||
mkdir -p /flatpak-build
|
||||
cd /flatpak-build
|
||||
|
||||
# Build the qTox flatpak
|
||||
flatpak-builder --disable-rofiles-fuse --install-deps-from=flathub --force-clean --repo=tox-repo qTox-flatpak "$QTOX_BUILD_DIR"/flatpak/io.github.qtox.qTox.json
|
||||
flatpak-builder --disable-rofiles-fuse --install-deps-from=flathub --force-clean --repo=qtox-repo build "$FLATPAK_DESCRIPTOR"
|
||||
|
||||
# Create a bundle for distribution
|
||||
flatpak build-bundle tox-repo "$OUTPUT_DIR"/qtox.flatpak io.github.qtox.qTox
|
||||
flatpak build-bundle qtox-repo qtox.flatpak io.github.qtox.qTox
|
||||
|
||||
cp qtox.flatpak /qtox
|
||||
|
||||
# Chmod since everything is root:root
|
||||
chmod 755 -R "$OUTPUT_DIR"
|
||||
|
@ -69,23 +69,8 @@
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/sqlcipher/sqlcipher",
|
||||
"tag": "v4.4.0",
|
||||
"commit": "4a81bea61e1da6fec222d713852830f1fd01aed2",
|
||||
"disable-fsckobjects" : true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "snorenotify",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/KDE/snorenotify",
|
||||
"tag": "v0.7.0",
|
||||
"commit": "9124e016f4f7615af5e8fca962994f7ed85de3cc"
|
||||
"type": "dir",
|
||||
"path": "/src/sqlcipher"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -93,10 +78,8 @@
|
||||
"name": "libsodium",
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/jedisct1/libsodium",
|
||||
"tag": "1.0.18",
|
||||
"commit": "4f5e89fa84ce1d178a6765b8b46f2b6f91216677"
|
||||
"type": "dir",
|
||||
"path": "/src/libsodium"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -110,10 +93,8 @@
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/toktok/c-toxcore",
|
||||
"tag": "v0.2.13",
|
||||
"commit": "4348b96a5b482134a9cd55cb0ef9616798b4eb3c"
|
||||
"type": "dir",
|
||||
"path": "/src/toxcore"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -122,10 +103,8 @@
|
||||
"buildsystem": "cmake-ninja",
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/toxext/toxext",
|
||||
"tag": "v0.0.3",
|
||||
"commit": "e34f91bc92bc1799c133bd1602ef5748a4eb4459"
|
||||
"type": "dir",
|
||||
"path": "/src/toxext"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -134,10 +113,8 @@
|
||||
"buildsystem": "cmake-ninja",
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/toxext/tox_extension_messages",
|
||||
"tag": "v0.0.3",
|
||||
"commit": "3def0e36f63a3537b8fda87e12f870665d90dfcc"
|
||||
"type": "dir",
|
||||
"path": "/src/toxext_messages"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -151,7 +128,7 @@
|
||||
"sources": [
|
||||
{
|
||||
"type": "dir",
|
||||
"path": "/build/qtox/"
|
||||
"path": "/qtox/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
131
flatpak/update_flathub_descriptor_dependencies.py
Executable file
131
flatpak/update_flathub_descriptor_dependencies.py
Executable file
@ -0,0 +1,131 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Copyright © 2021 by The qTox Project Contributors
|
||||
#
|
||||
# This program is libre software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from argparse import ArgumentParser
|
||||
from pathlib import Path
|
||||
|
||||
import re
|
||||
import tempfile
|
||||
import json
|
||||
import unittest
|
||||
import subprocess
|
||||
|
||||
QTOX_ROOT = Path(__file__).parent.parent
|
||||
DOWNLOAD_FILE_PATHS = QTOX_ROOT / 'buildscripts' / 'download'
|
||||
|
||||
def parse_args():
|
||||
parser = ArgumentParser(description="""
|
||||
Update dependencies of a flathub manifest to match the versions used by
|
||||
qtox. This script will iterate over all known dependencies in the manifest
|
||||
and replace their tags with the ones specified by our download_xxx.sh
|
||||
scripts. The commit hash for the tag will be replaced with whatever is
|
||||
currently in the git remote
|
||||
""")
|
||||
parser.add_argument(
|
||||
"--flathub-manifest",
|
||||
help="Path to flathub manifest",
|
||||
required=True,
|
||||
dest="flathub_manifest_path")
|
||||
parser.add_argument(
|
||||
"--output",
|
||||
help="Output manifest path",
|
||||
required=True,
|
||||
dest="output_manifest_path")
|
||||
return parser.parse_args()
|
||||
|
||||
VERSION_EXTRACT_REGEX=re.compile(".*_VERSION=(.*)")
|
||||
def find_version(download_script_path):
|
||||
"""
|
||||
Find the version specified for a given dependency by parsing its download script
|
||||
"""
|
||||
# Unintelligent regex parsing, but it will have to do.
|
||||
# Hope there is no shell expansion in our version info, otherwise we'll have
|
||||
# to do something a little more intelligent
|
||||
with open(download_script_path) as f:
|
||||
script_content = f.read()
|
||||
matches = VERSION_EXTRACT_REGEX.search(script_content, re.MULTILINE)
|
||||
|
||||
return matches.group(1)
|
||||
|
||||
class FindVersionTest(unittest.TestCase):
|
||||
def test_version_parsing(self):
|
||||
# Create a dummy download script and check that we can extract the version from it
|
||||
with tempfile.TemporaryDirectory() as d:
|
||||
sample_download_script = """
|
||||
#!/bin/bash
|
||||
|
||||
source "$(dirname "$0")"/common.sh
|
||||
|
||||
TEST_VERSION=1.2.3
|
||||
TEST_HASH=:)
|
||||
|
||||
download_verify_extrat_tarball \
|
||||
https://test_site.com/${TEST_VERSION} \
|
||||
${TEST_HASH}
|
||||
"""
|
||||
|
||||
sample_download_script_path = d + '/test_script.sh'
|
||||
with open(sample_download_script_path, 'w') as f:
|
||||
f.write(sample_download_script)
|
||||
|
||||
self.assertEqual(find_version(sample_download_script_path), "1.2.3")
|
||||
|
||||
def load_flathub_manifest(flathub_manifest_path):
|
||||
with open(flathub_manifest_path) as f:
|
||||
return json.load(f)
|
||||
|
||||
def commit_from_tag(url, tag):
|
||||
git_output = subprocess.run(
|
||||
['git', 'ls-remote', url, f"{tag}^{{}}"], check=True, stdout=subprocess.PIPE)
|
||||
commit = git_output.stdout.split(b'\t')[0]
|
||||
return commit.decode()
|
||||
|
||||
class CommitFromTagTest(unittest.TestCase):
|
||||
def test_commit_from_tag(self):
|
||||
self.assertEqual(commit_from_tag(str(QTOX_ROOT), "v1.17.3"), "c0e9a3b79609681e5b9f6bbf8f9a36cb1993dc5f")
|
||||
|
||||
def update_source(module, tag):
|
||||
module_source = module["sources"][0]
|
||||
module_source["tag"]= tag
|
||||
module_source["commit"] = commit_from_tag(module_source["url"], module_source["tag"])
|
||||
|
||||
def main(flathub_manifest_path, output_manifest_path):
|
||||
flathub_manifest = load_flathub_manifest(flathub_manifest_path)
|
||||
|
||||
sqlcipher_version = find_version(DOWNLOAD_FILE_PATHS / 'download_sqlcipher.sh')
|
||||
sodium_version = find_version(DOWNLOAD_FILE_PATHS / 'download_sodium.sh')
|
||||
toxcore_version = find_version(DOWNLOAD_FILE_PATHS / 'download_toxcore.sh')
|
||||
toxext_version = find_version(DOWNLOAD_FILE_PATHS / 'download_toxext.sh')
|
||||
toxext_messages_version = find_version(DOWNLOAD_FILE_PATHS / 'download_toxext_messages.sh')
|
||||
|
||||
for module in flathub_manifest["modules"]:
|
||||
if module["name"] == "sqlcipher":
|
||||
update_source(module, f"v{sqlcipher_version}")
|
||||
elif module["name"] == "libsodium":
|
||||
update_source(module, sodium_version)
|
||||
elif module["name"] == "c-toxcore":
|
||||
update_source(module, f"v{toxcore_version}")
|
||||
elif module["name"] == "toxext":
|
||||
update_source(module, f"v{toxext_version}")
|
||||
elif module["name"] == "tox_extension_messages":
|
||||
update_source(module, f"v{toxext_messages_version}")
|
||||
|
||||
with open(output_manifest_path, 'w') as f:
|
||||
json.dump(flathub_manifest, f, indent=4)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(**vars(parse_args()))
|
@ -1,3 +1,4 @@
|
||||
brew "coreutils"
|
||||
brew "git"
|
||||
brew "wget"
|
||||
brew "libtool"
|
||||
|
@ -40,6 +40,8 @@ QT_DIR="/usr/local/Cellar/qt5" # Folder name of QT install
|
||||
QT_VER=($(ls ${QT_DIR} | sed -n -e 's/^\([0-9]*\.([0-9]*\.([0-9]*\).*/\1/' -e '1p;$p'))
|
||||
QT_DIR_VER="${QT_DIR}/${QT_VER[1]}"
|
||||
|
||||
SCRIPT_DIR=$( cd $(dirname $0); pwd -P)
|
||||
|
||||
TOXCORE_DIR="${MAIN_DIR}/toxcore" # Change to Git location
|
||||
TOX_EXT_DIR="${MAIN_DIR}/toxext"
|
||||
TOX_EXT_MESSAGES_DIR="${MAIN_DIR}/tox_extension_messages"
|
||||
@ -175,35 +177,21 @@ install() {
|
||||
|
||||
#cd $MAIN_DIR # just in case
|
||||
# Toxcore
|
||||
if [[ -e $TOXCORE_DIR/.git/index ]]
|
||||
then
|
||||
fcho "Toxcore git repo already in place !"
|
||||
cd $TOXCORE_DIR
|
||||
git pull
|
||||
else
|
||||
fcho "Cloning Toxcore git ... "
|
||||
git clone --branch v0.2.13 --depth=1 https://github.com/toktok/c-toxcore "$TOXCORE_DIR"
|
||||
fi
|
||||
# toxext
|
||||
if [[ -e $TOX_EXT_DIR/.git/index ]]
|
||||
then
|
||||
fcho "ToxExt git repo already in place !"
|
||||
cd $TOX_EXT_DIR
|
||||
git pull
|
||||
else
|
||||
fcho "Cloning ToxExt git ... "
|
||||
git clone --branch v0.0.3 --depth=1 https://github.com/toxext/toxext "$TOX_EXT_DIR"
|
||||
fi
|
||||
# tox_extension_messages
|
||||
if [[ -e $TOX_EXT_MESSAGES_DIR/.git/index ]]
|
||||
then
|
||||
fcho "ToxExt git repo already in place !"
|
||||
cd $TOX_EXT_MESSAGES_DIR
|
||||
git pul
|
||||
else
|
||||
fcho "Cloning tox_extension_messages git ... "
|
||||
git clone --branch v0.0.3 --depth=1 https://github.com/toxext/tox_extension_messages "$TOX_EXT_MESSAGES_DIR"
|
||||
fi
|
||||
rm -fr "${TOXCORE_DIR}"
|
||||
mkdir -p "${TOXCORE_DIR}"
|
||||
cd "${TOXCORE_DIR}"
|
||||
"${SCRIPT_DIR}"/../buildscripts/download/download_toxcore.sh
|
||||
|
||||
rm -fr "${TOX_EXT_DIR}"
|
||||
mkdir -p "${TOX_EXT_DIR}"
|
||||
cd "${TOX_EXT_DIR}"
|
||||
"${SCRIPT_DIR}"/../buildscripts/download/download_toxext.sh
|
||||
|
||||
rm -fr "${TOX_EXT_MESSAGES_DIR}"
|
||||
mkdir -p "${TOX_EXT_MESSAGES_DIR}"
|
||||
cd "${TOX_EXT_MESSAGES_DIR}"
|
||||
"${SCRIPT_DIR}"/../buildscripts/download/download_toxext_messages.sh
|
||||
|
||||
# qTox
|
||||
if [[ $TRAVIS = true ]]
|
||||
then
|
||||
|
@ -1,130 +1,14 @@
|
||||
# Cross-compile from Linux to Windows
|
||||
|
||||
## Intro
|
||||
|
||||
Following these instructions you will be able to cross-compile qTox for
|
||||
Windows.
|
||||
|
||||
This script can be used by qTox users and devs to compile qTox for Windows
|
||||
themselves.
|
||||
|
||||
Please note that the compilation script doesn't build the updater.
|
||||
|
||||
## Usage
|
||||
|
||||
[Install Docker](https://docs.docker.com/install).
|
||||
|
||||
Create 2 directories:
|
||||
|
||||
* `workspace` -- a directory that will contain a cache of qTox dependencies
|
||||
and the final qTox cross-compilation build. You should create this directory.
|
||||
|
||||
* `qtox` -- the root directory of a qTox repository. This directory must
|
||||
contain the qTox source code that will be cross-compiled.
|
||||
|
||||
These directories will be mounted inside a Docker container at `/workspace` and
|
||||
`/qtox`.
|
||||
|
||||
> Note:
|
||||
> The contents of `qtox` directory are not modified during compilation. The
|
||||
> `build.sh` script makes a temporary copy of the `qtox` directory for the
|
||||
> compilation.
|
||||
|
||||
Once you sort out the directories, you are ready to run the `build.sh` script
|
||||
in a Docker container.
|
||||
|
||||
> Note:
|
||||
> The`build.sh` script takes 2 arguments: architecture and build type.
|
||||
> Valid values for the architecture are `i686` for 32-bit and `x86_64` for
|
||||
> 64-bit. Valid values for the build type are `release` and `debug`. All
|
||||
> case sensitive.
|
||||
|
||||
To start cross-compiling for 32-bit release version of qTox run:
|
||||
|
||||
```sh
|
||||
sudo docker run --rm \
|
||||
-v /absolute/path/to/your/workspace:/workspace \
|
||||
-v /absolute/path/to/your/qtox:/qtox \
|
||||
debian:bullseye-slim \
|
||||
/bin/bash /qtox/windows/cross-compile/build.sh i686 release
|
||||
```
|
||||
|
||||
If you want to debug some compilation issue, you might want to instead run:
|
||||
|
||||
```sh
|
||||
# Get shell inside Debian Bullseye container so that you can poke around if needed
|
||||
sudo docker run -it \
|
||||
--rm \
|
||||
-v /absolute/path/to/your/workspace:/workspace \
|
||||
-v /absolute/path/to/your/qtox:/qtox \
|
||||
debian:bullseye-slim \
|
||||
/bin/bash
|
||||
# Run the script
|
||||
bash /qtox/windows/cross-compile/build.sh i686 release
|
||||
```
|
||||
|
||||
These will cross-compile all of the qTox dependencies and qTox itself, storing
|
||||
them in the `workspace` directory. The first time you run it for each
|
||||
architecture, it will take a long time for the cross-compilation to finish, as
|
||||
qTox has a lot of dependencies that need to be cross-compiled. But once you do
|
||||
it once for each architecture, the dependencies will get cached inside the
|
||||
`workspace` directory, and the next time you build qTox, the `build.sh` script
|
||||
will skip recompiling them, going straight to compiling qTox, which is a lot
|
||||
faster.
|
||||
|
||||
> Note:
|
||||
> On a certain Intel Core i7 processor, a fresh build takes about 125
|
||||
> minutes on a single core, and about 30 minutes using all 8 hyperthreads.
|
||||
> Once built, however, it takes about 8 minutes on a single core and 2
|
||||
> minutes using 8 hyperthreads to rebuild using the cached dependencies.
|
||||
|
||||
After cross-compiling has finished, you should find the comiled qTox in a
|
||||
`workspace/i686/qtox` or `workspace/x86_64/qtox` directory, depending on the
|
||||
architecture.
|
||||
|
||||
You will also find `workspace/dep-cache` directory, where all the
|
||||
cross-compiled qTox dependencies will be cached for the future builds. You can
|
||||
remove any directory inside the `dep-cache`, which will result in the
|
||||
`build.sh` re-compiling the removed dependency only.
|
||||
|
||||
The `workspace` direcory structure for reference:
|
||||
From the windows_builder/windows_builder.i686 docker image, run build.sh. NOTE:
|
||||
The arch argument must match the builder image
|
||||
|
||||
```
|
||||
workspace
|
||||
├── i686
|
||||
│ ├── dep-cache
|
||||
│ │ ├── libexif
|
||||
│ │ ├── libffmpeg
|
||||
│ │ ├── libopenal
|
||||
│ │ ├── libopenssl
|
||||
│ │ ├── libopus
|
||||
│ │ ├── libqrencode
|
||||
│ │ ├── libqt5
|
||||
│ │ ├── libsodium
|
||||
│ │ ├── libsqlcipher
|
||||
│ │ ├── libtoxcore
|
||||
│ │ ├── libvpx
|
||||
│ │ ├── mingw-w64-debug-scripts
|
||||
│ │ └── nsis_shellexecuteasuser
|
||||
│ └── qtox
|
||||
│ ├── debug
|
||||
│ └── release
|
||||
└── x86_64
|
||||
├── dep-cache
|
||||
│ ├── libexif
|
||||
│ ├── libffmpeg
|
||||
│ ├── libopenal
|
||||
│ ├── libopenssl
|
||||
│ ├── libopus
|
||||
│ ├── libqrencode
|
||||
│ ├── libqt5
|
||||
│ ├── libsodium
|
||||
│ ├── libsqlcipher
|
||||
│ ├── libtoxcore
|
||||
│ ├── libvpx
|
||||
│ ├── mingw-w64-debug-scripts
|
||||
│ └── nsis_shellexecuteasuser
|
||||
└── qtox
|
||||
├── debug
|
||||
└── release
|
||||
$ docker compose run windows_builder
|
||||
# mkdir build-windows
|
||||
# cd build-windows
|
||||
# # Example is using --arch x86_64, --arch i686 should be used if you are in the i686 docker image
|
||||
# /qtox/windows/cross-compile/build.sh --src-dir /qtox --arch x86_64 --build-type Release
|
||||
```
|
||||
|
1454
windows/cross-compile/build.sh
Normal file → Executable file
1454
windows/cross-compile/build.sh
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
@ -1,14 +0,0 @@
|
||||
# the name of the target operating system
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
|
||||
# which compilers to use for C and C++
|
||||
SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
|
||||
SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
|
||||
|
||||
# adjust the default behaviour of the FIND_XXX() commands:
|
||||
# search headers and libraries in the target environment, search
|
||||
# programs in the host environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
Loading…
x
Reference in New Issue
Block a user