Update Qt to 5.15.2 in appimage action (#129)

This also update minimal Ubuntu version to 16.04 since Qt requires newer libraries
This commit is contained in:
ilya-fedin 2020-12-25 16:20:00 +04:00 committed by GitHub
parent c8ce4e8dc6
commit 9d339e909c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -47,7 +47,7 @@ on:
jobs: jobs:
linux: linux:
name: Ubuntu 14.04 name: Ubuntu 16.04
if: > if: >
!(github.event_name == 'push' !(github.event_name == 'push'
&& contains(github.event.head_commit.message, '[skip ci]')) && contains(github.event.head_commit.message, '[skip ci]'))
@ -55,7 +55,7 @@ jobs:
&& github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name) && github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name)
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: ubuntu:trusty image: ubuntu:xenial
options: --privileged --device /dev/fuse options: --privileged --device /dev/fuse
strategy: strategy:
@ -68,7 +68,7 @@ jobs:
env: env:
GIT: "https://github.com" GIT: "https://github.com"
QT: "5_12_8" QT: "5_15_2"
OPENSSL_VER: "1_1_1" OPENSSL_VER: "1_1_1"
CMAKE_VER: "3.17.0" CMAKE_VER: "3.17.0"
UPLOAD_ARTIFACT: "false" UPLOAD_ARTIFACT: "false"
@ -85,9 +85,9 @@ jobs:
- name: Disable man for further package installs. - name: Disable man for further package installs.
run: | run: |
cfgFile="/etc/dpkg/dpkg.cfg.d/no_man" cfgFile="/etc/dpkg/dpkg.cfg.d/no_man"
sudo touch $cfgFile touch $cfgFile
p() { p() {
sudo echo "path-exclude=/usr/share/$1/*" >> $cfgFile echo "path-exclude=/usr/share/$1/*" >> $cfgFile
} }
p man p man
@ -97,25 +97,27 @@ jobs:
- name: Apt install. - name: Apt install.
shell: bash shell: bash
run: | run: |
sudo apt-get update apt-get update
sudo apt-get install software-properties-common -y && \ apt-get install software-properties-common -y && \
sudo add-apt-repository ppa:git-core/ppa -y && \ add-apt-repository ppa:git-core/ppa -y && \
sudo apt-get update && \ apt-get update && \
sudo apt-get install libice-dev libsm-dev libicu-dev liblzma-dev zlib1g-dev \ apt-get install libglib2.0-dev libicu-dev liblzma-dev zlib1g-dev \
git wget autoconf automake build-essential libtool pkg-config bison yasm \ git wget autoconf automake build-essential libtool pkg-config bison yasm \
libasound2-dev libpulse-dev portaudio19-dev libdrm-dev libfuse2 \ libasound2-dev libpulse-dev libdrm-dev libfuse2 libgtk-3-dev libgtk2.0-dev \
libgtk-3-dev libgtk2.0-dev libatspi2.0-dev libgl1-mesa-dev libegl1-mesa-dev \ libatspi2.0-dev libgl1-mesa-dev libegl1-mesa-dev libffi-dev libxcb1-dev \
libffi-dev libxcb1-dev libxcb-keysyms1-dev libxcb-record0-dev libxcb-res0-dev \ libxcb-glx0-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev \
libxcb-screensaver0-dev libxcb-xkb-dev libx11-xcb-dev libxext-dev libxfixes-dev \ libxcb-randr0-dev libxcb-record0-dev libxcb-render0-dev libxcb-render-util0-dev \
libxi-dev libxrender-dev xutils-dev libva-dev libvdpau-dev libjpeg-dev \ libxcb-res0-dev libxcb-screensaver0-dev libxcb-shape0-dev libxcb-shm0-dev \
unzip -y --force-yes && \ libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xkb-dev \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \ libxcb-util0-dev libx11-xcb-dev libxext-dev libxfixes-dev libxv-dev libva-dev \
sudo apt-get update && \ libvdpau-dev xutils-dev unzip -y --force-yes && \
sudo apt-get install gcc-8 g++-8 -y && \ add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 && \ apt-get update && \
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 && \ apt-get install gcc-8 g++-8 -y && \
sudo update-alternatives --config gcc && \ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 && \
sudo add-apt-repository --remove ppa:ubuntu-toolchain-r/test -y update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 && \
update-alternatives --config gcc && \
add-apt-repository --remove ppa:ubuntu-toolchain-r/test -y
- name: Clone. - name: Clone.
uses: actions/checkout@v2 uses: actions/checkout@v2
@ -147,12 +149,10 @@ jobs:
- name: Patches. - name: Patches.
run: | run: |
echo "Find necessary commit from doc."
checkoutCommit=$(grep -A 1 "cd patches" $REPO_NAME/$DOC_PATH | sed -n 2p)
cd $LibrariesPath cd $LibrariesPath
git clone $GIT/desktop-app/patches.git git clone $GIT/desktop-app/patches.git
cd patches cd patches
eval $checkoutCommit git checkout 72b84de
- name: OpenSSL cache. - name: OpenSSL cache.
id: cache-openssl id: cache-openssl
@ -171,14 +171,14 @@ jobs:
cd $opensslDir cd $opensslDir
./config no-tests ./config no-tests
make -j$(nproc) make -j$(nproc)
sudo make DESTDIR="$LibrariesPath/openssl-cache" install_sw make DESTDIR="$LibrariesPath/openssl-cache" install_sw
cd .. cd ..
rm -rf $opensslDir rm -rf $opensslDir
- name: OpenSSL install. - name: OpenSSL install.
run: | run: |
cd $LibrariesPath cd $LibrariesPath
sudo cp -R openssl-cache/. / cp -R openssl-cache/. /
sudo ldconfig ldconfig
- name: Python 3.8 cache. - name: Python 3.8 cache.
id: cache-python id: cache-python
@ -195,13 +195,13 @@ jobs:
cd cpython cd cpython
./configure --enable-optimizations ./configure --enable-optimizations
make -j$(nproc) make -j$(nproc)
sudo make DESTDIR="$LibrariesPath/python-cache" install make DESTDIR="$LibrariesPath/python-cache" install
cd .. cd ..
rm -rf cpython rm -rf cpython
- name: Python 3.8 install. - name: Python 3.8 install.
run: | run: |
cd $LibrariesPath cd $LibrariesPath
sudo cp -R python-cache/. / cp -R python-cache/. /
- name: CMake. - name: CMake.
run: | run: |
@ -209,9 +209,9 @@ jobs:
file=cmake-$CMAKE_VER-Linux-x86_64.sh file=cmake-$CMAKE_VER-Linux-x86_64.sh
wget $GIT/Kitware/CMake/releases/download/v$CMAKE_VER/$file wget $GIT/Kitware/CMake/releases/download/v$CMAKE_VER/$file
sudo mkdir /opt/cmake mkdir /opt/cmake
sudo sh $file --prefix=/opt/cmake --skip-license sh $file --prefix=/opt/cmake --skip-license
sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
rm $file rm $file
cmake --version cmake --version
@ -224,13 +224,13 @@ jobs:
cd extra-cmake-modules cd extra-cmake-modules
cmake . -DCMAKE_BUILD_TYPE=Release cmake . -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc) cmake --build . -j$(nproc)
sudo cmake --install . cmake --install .
cd .. cd ..
rm -rf extra-cmake-modules rm -rf extra-cmake-modules
- name: Meson. - name: Meson.
run: | run: |
sudo python3 -m pip install meson==0.54.0 python3 -m pip install meson==0.54.0
meson --version meson --version
- name: Ninja. - name: Ninja.
@ -253,8 +253,8 @@ jobs:
./autogen.sh ./autogen.sh
./configure ./configure
make -j$(nproc) make -j$(nproc)
sudo install nasm /usr/local/bin/nasm install nasm /usr/local/bin/nasm
sudo install ndisasm /usr/local/bin/ndisasm install ndisasm /usr/local/bin/ndisasm
cd .. cd ..
rm -rf nasm rm -rf nasm
@ -270,11 +270,27 @@ jobs:
-Denable_tools=false \ -Denable_tools=false \
-Denable_tests=false -Denable_tests=false
ninja ninja
sudo ninja install ninja install
sudo ldconfig ldconfig
cd ../.. cd ../..
rm -rf dav1d rm -rf dav1d
- name: MozJPEG.
run: |
cd $LibrariesPath
git clone -b v4.0.1-rc2 $GIT/mozilla/mozjpeg.git
cd mozjpeg
cmake -B build . \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DWITH_JPEG8=ON \
-DPNG_SUPPORTED=OFF
cmake --build build -j$(nproc)
cmake --install build
cd ..
rm -rf mozjpeg
- name: Opus cache. - name: Opus cache.
id: cache-opus id: cache-opus
uses: actions/cache@v2 uses: actions/cache@v2
@ -294,7 +310,7 @@ jobs:
- name: Opus install. - name: Opus install.
run: | run: |
cd $LibrariesPath/opus cd $LibrariesPath/opus
sudo make install make install
- name: FFmpeg cache. - name: FFmpeg cache.
id: cache-ffmpeg id: cache-ffmpeg
@ -324,6 +340,8 @@ jobs:
--enable-libopus \ --enable-libopus \
--enable-vaapi \ --enable-vaapi \
--enable-vdpau \ --enable-vdpau \
--enable-xlib \
--enable-libdrm \
--enable-protocol=file \ --enable-protocol=file \
--enable-hwaccel=h264_vaapi \ --enable-hwaccel=h264_vaapi \
--enable-hwaccel=h264_vdpau \ --enable-hwaccel=h264_vdpau \
@ -414,14 +432,14 @@ jobs:
--enable-muxer=opus --enable-muxer=opus
make -j$(nproc) make -j$(nproc)
sudo make DESTDIR="$LibrariesPath/ffmpeg-cache" install make DESTDIR="$LibrariesPath/ffmpeg-cache" install
cd .. cd ..
rm -rf ffmpeg rm -rf ffmpeg
- name: FFmpeg install. - name: FFmpeg install.
run: | run: |
cd $LibrariesPath cd $LibrariesPath
sudo cp -R ffmpeg-cache/. / cp -R ffmpeg-cache/. /
sudo ldconfig ldconfig
- name: OpenAL Soft. - name: OpenAL Soft.
run: | run: |
@ -437,8 +455,8 @@ jobs:
-DALSOFT_CONFIG=OFF -DALSOFT_CONFIG=OFF
cmake --build . -j$(nproc) cmake --build . -j$(nproc)
sudo cmake --install . cmake --install .
sudo ldconfig ldconfig
cd - cd -
rm -rf openal-soft rm -rf openal-soft
@ -453,8 +471,8 @@ jobs:
--disable-documentation \ --disable-documentation \
--disable-dtd-validation --disable-dtd-validation
make -j$(nproc) make -j$(nproc)
sudo make install make install
sudo ldconfig ldconfig
cd .. cd ..
rm -rf wayland rm -rf wayland
@ -470,43 +488,41 @@ jobs:
--with-xkb-config-root=/usr/share/X11/xkb \ --with-xkb-config-root=/usr/share/X11/xkb \
--with-x-locale-root=/usr/share/X11/locale --with-x-locale-root=/usr/share/X11/locale
make -j$(nproc) make -j$(nproc)
sudo make install make install
sudo ldconfig ldconfig
cd .. cd ..
rm -rf libxkbcommon rm -rf libxkbcommon
- name: Qt 5.12.8 cache. - name: Qt 5.15.2 cache.
id: cache-qt id: cache-qt
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ${{ env.LibrariesPath }}/qt-cache path: ${{ env.LibrariesPath }}/qt-cache
key: ${{ runner.OS }}-qt-${{ env.CACHE_KEY }}-${{ hashFiles('**/qt*_5_12_8/*') }} key: ${{ runner.OS }}-qt-${{ env.CACHE_KEY }}-${{ hashFiles('**/qt*_5_15_2/*') }}
- name: Qt 5.12.8 build. - name: Qt 5.15.2 build.
if: steps.cache-qt.outputs.cache-hit != 'true' if: steps.cache-qt.outputs.cache-hit != 'true'
run: | run: |
cd $LibrariesPath cd $LibrariesPath
git clone -b v5.12.8 --depth=1 git://code.qt.io/qt/qt5.git qt_${QT} git clone -b v5.15.2 --depth=1 git://code.qt.io/qt/qt5.git qt_${QT}
cd qt_${QT} cd qt_${QT}
perl init-repository --module-subset=qtbase,qtwayland,qtimageformats,qtsvg,qttools,qtx11extras perl init-repository --module-subset=qtbase,qtwayland,qtimageformats,qtsvg,qttools,qtx11extras
git submodule update qtbase qtwayland qtimageformats qtsvg qttools qtx11extras git submodule update qtbase qtwayland qtimageformats qtsvg qttools qtx11extras
cd qtbase cd qtbase
find ../../patches/qtbase_${QT} -type f -print0 | sort -z | xargs -r0 git apply find ../../patches/qtbase_${QT} -type f -print0 | sort -z | xargs -r0 git apply
cd .. cd ..
cd qtwayland
find ../../patches/qtwayland_${QT} -type f -print0 | sort -z | xargs -r0 git apply
cd ..
./configure -prefix /usr/local \ ./configure -prefix /usr/local \
-release \ -release \
-opensource \ -opensource \
-confirm-license \ -confirm-license \
-qt-zlib \ -xcb \
-qt-libpng \ -qt-libpng \
-qt-libjpeg \
-qt-harfbuzz \ -qt-harfbuzz \
-qt-pcre \ -qt-pcre \
-qt-xcb \ -no-gtk \
-no-feature-xcb-sm \
-no-feature-wayland-server \
-openssl-linked \ -openssl-linked \
OPENSSL_LIBS="-L/usr/local/lib -lssl -lcrypto" \ OPENSSL_LIBS="-L/usr/local/lib -lssl -lcrypto" \
QMAKE_CXX="$CXX" \ QMAKE_CXX="$CXX" \
@ -515,14 +531,14 @@ jobs:
-nomake tests -nomake tests
make -j$(nproc) make -j$(nproc)
sudo make INSTALL_ROOT="$LibrariesPath/qt-cache" install make INSTALL_ROOT="$LibrariesPath/qt-cache" install
cd .. cd ..
rm -rf qt_${QT} rm -rf qt_${QT}
- name: Qt 5.12.8 install. - name: Qt 5.15.2 install.
run: | run: |
cd $LibrariesPath cd $LibrariesPath
sudo cp -R qt-cache/. / cp -R qt-cache/. /
sudo ldconfig ldconfig
- name: Qt Style Plugins. - name: Qt Style Plugins.
run: | run: |
@ -530,10 +546,10 @@ jobs:
git clone --depth=1 git://code.qt.io/qt/qtstyleplugins.git git clone --depth=1 git://code.qt.io/qt/qtstyleplugins.git
cd qtstyleplugins cd qtstyleplugins
git apply ../patches/qtstyleplugins.diff find ../patches/qtstyleplugins -type f -print0 | sort -z | xargs -r0 git apply
qmake qmake
make -j$(nproc) make -j$(nproc)
sudo make install make install
cd .. cd ..
rm -rf qtstyleplugins rm -rf qtstyleplugins
@ -548,8 +564,8 @@ jobs:
-DBUILD_TESTING=OFF \ -DBUILD_TESTING=OFF \
-DKDE_INSTALL_LIBDIR=lib -DKDE_INSTALL_LIBDIR=lib
cmake --build . -j$(nproc) cmake --build . -j$(nproc)
sudo cmake --install . cmake --install .
sudo ldconfig ldconfig
cd .. cd ..
rm -rf kwindowsystem rm -rf kwindowsystem
@ -561,7 +577,7 @@ jobs:
cd Kvantum/Kvantum cd Kvantum/Kvantum
cmake . -DCMAKE_BUILD_TYPE=Release cmake . -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc) cmake --build . -j$(nproc)
sudo cmake --install . cmake --install .
cd ../.. cd ../..
rm -rf Kvantum rm -rf Kvantum