diff --git a/.github/ci_images/bionic_builder.dockerfile b/.github/ci_images/bionic_builder.dockerfile index 1ace462..a53fc59 100644 --- a/.github/ci_images/bionic_builder.dockerfile +++ b/.github/ci_images/bionic_builder.dockerfile @@ -5,18 +5,21 @@ ENV OS_NAME bionic RUN apt update -q \ && dpkg --add-architecture i386 \ + && apt install -q -y --no-install-recommends software-properties-common \ + && add-apt-repository ppa:beineri/opt-qt-5.15.2-bionic \ + && apt-get update \ && apt install -q -y --no-install-recommends \ # Base build tools build-essential automake libtool cmake ccache pkg-config autopoint patch \ python3-pip python3-setuptools python3-wheel git subversion wget unzip \ - ninja-build openssh-client curl \ + ninja-build openssh-client curl libgl-dev \ # Python (2) is needed to install android-ndk python \ # Packaged dependencies libbz2-dev libmagic-dev uuid-dev zlib1g-dev default-jdk \ - libmicrohttpd-dev aria2 libgtest-dev \ + libmicrohttpd-dev aria2 libgtest-dev libgl-dev \ # Qt packages - libqt5gui5 qtbase5-dev qtwebengine5-dev libqt5svg5-dev qt5-image-formats-plugins qt5-default \ + qt515base qt515webengine qt515svg qt515imageformats qt515wayland \ # To create the appimage of kiwix-desktop libfuse2 fuse patchelf \ # Flatpak tools @@ -34,3 +37,5 @@ RUN useradd --create-home runner USER runner WORKDIR /home/runner ENV PATH /home/runner/.local/bin:$PATH + +RUN echo "source /opt/qt515/bin/qt515-env.sh" >> /home/runner/.bashrc diff --git a/.github/scripts/common.py b/.github/scripts/common.py index 1559cc7..e3fd467 100644 --- a/.github/scripts/common.py +++ b/.github/scripts/common.py @@ -133,8 +133,7 @@ def run_kiwix_build( command.append(target) command.append("--hide-progress") command.append("--fast-clone") - if platform == "flatpak" or platform.startswith("win32_"): - command.append("--assume-packages-installed") + command.append("--assume-packages-installed") if target == "kiwix-lib-app" and platform.startswith("android_"): command.extend(["--target-platform", "android", "--android-arch", platform[8:]]) elif platform == "android": diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5aa3242..e508340 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ on: - cron: '0 1 * * *' env: - DOCKER_VERSION: 30 + DOCKER_VERSION: 31 jobs: Docker: @@ -66,7 +66,7 @@ jobs: runs-on: ubuntu-latest needs: Docker container: - image: "kiwix/kiwix-build_ci:${{matrix.image_variant}}-30" + image: "kiwix/kiwix-build_ci:${{matrix.image_variant}}-31" steps: - name: Checkout code shell: bash diff --git a/.github/workflows/releaseNigthly.yml b/.github/workflows/releaseNigthly.yml index e3fae4d..7aa8f0a 100644 --- a/.github/workflows/releaseNigthly.yml +++ b/.github/workflows/releaseNigthly.yml @@ -8,7 +8,7 @@ on: - cron: '0 1 * * *' env: - DOCKER_VERSION: 30 + DOCKER_VERSION: 31 jobs: Docker: @@ -79,7 +79,7 @@ jobs: runs-on: ubuntu-latest needs: Docker container: - image: "kiwix/kiwix-build_ci:${{matrix.image_variant}}-30" + image: "kiwix/kiwix-build_ci:${{matrix.image_variant}}-31" options: "--device /dev/fuse --privileged" steps: - name: Checkout code diff --git a/appveyor/install_kiwix-desktop.cmd b/appveyor/install_kiwix-desktop.cmd index 61bea38..2628b70 100644 --- a/appveyor/install_kiwix-desktop.cmd +++ b/appveyor/install_kiwix-desktop.cmd @@ -10,9 +10,9 @@ IF %KIWIX_DESKTOP_RELEASE% EQU 1 ( ) ) IF %_WITH_CONSOLE% EQU 1 ( - C:\Qt\5.12\msvc2017_64\bin\qmake.exe "CONFIG+=static console" || exit /b 1 + C:\Qt\5.15\msvc2019_64\bin\qmake.exe "CONFIG+=static console" || exit /b 1 ) else ( - C:\Qt\5.12\msvc2017_64\bin\qmake.exe "CONFIG+=static" || exit /b 1 + C:\Qt\5.15\msvc2019_64\bin\qmake.exe "CONFIG+=static" || exit /b 1 ) echo "Running fix_desktop" diff --git a/kiwixbuild/dependencies/base.py b/kiwixbuild/dependencies/base.py index a4702ca..bb8637d 100644 --- a/kiwixbuild/dependencies/base.py +++ b/kiwixbuild/dependencies/base.py @@ -294,6 +294,8 @@ class Builder: module['buildsystem'] = self.flatpak_buildsystem if getattr(self, 'subsource_dir', None): module['subdir'] = self.subsource_dir + if getattr(self, 'flatpack_build_options', None): + module['build-options'] = self.flatpack_build_options if getattr(self, 'configure_option', ''): module['config-opts'] = self.configure_option.split(' ') diff --git a/kiwixbuild/dependencies/kiwix_desktop.py b/kiwixbuild/dependencies/kiwix_desktop.py index 86726a9..ec1611b 100644 --- a/kiwixbuild/dependencies/kiwix_desktop.py +++ b/kiwixbuild/dependencies/kiwix_desktop.py @@ -16,11 +16,22 @@ class KiwixDesktop(Dependency): make_install_target = 'install' configure_env = None + flatpack_build_options = { + "env": [ + "QMAKEPATH=/app/lib" + ] + } + @property def configure_option(self): if self.buildEnv.platformInfo.name == 'flatpak': - return [] - options = ["PREFIX={}".format(self.buildEnv.install_dir)] - if self.buildEnv.platformInfo.static: - options.append('"CONFIG+=static"') + options = [ + 'QMAKE_INCDIR+=/app/include/QtWebEngine', + 'QMAKE_INCDIR+=/app/include/QtWebEngineCore', + 'QMAKE_INCDIR+=/app/include/QtWebEngineWidgets' + ] + else: + options = ["PREFIX={}".format(self.buildEnv.install_dir)] + if self.buildEnv.platformInfo.static: + options.append('"CONFIG+=static"') return " ".join(options) diff --git a/kiwixbuild/flatpak_builder.py b/kiwixbuild/flatpak_builder.py index f0c4a59..208ac77 100644 --- a/kiwixbuild/flatpak_builder.py +++ b/kiwixbuild/flatpak_builder.py @@ -33,6 +33,8 @@ MANIFEST = { 'app-id': 'org.kiwix.desktop', 'runtime': 'org.kde.Platform', 'runtime-version': base_deps_versions['org.kde'], + 'base': 'io.qt.qtwebengine.BaseApp', + 'base-version': base_deps_versions['org.kde'], # keep BaseApp (qwebengine) in sync with org.kde 'sdk': 'org.kde.Sdk', 'command': 'kiwix-desktop', 'rename-icon': 'kiwix-desktop', diff --git a/kiwixbuild/versions.py b/kiwixbuild/versions.py index 0d7d619..382cd97 100644 --- a/kiwixbuild/versions.py +++ b/kiwixbuild/versions.py @@ -59,6 +59,6 @@ base_deps_versions = { 'android-ndk' : 'r13b', 'qt' : '5.10.1', 'qtwebengine' : '5.10.1', - 'org.kde' : '5.12', + 'org.kde' : '5.15', 'zim-testing-suite': '0.3', }