diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 7b4f329536..6d69c0b1a9 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -157,6 +157,22 @@ jobs: cmake --version + - 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) + sudo cmake --install build + cd .. + rm -rf mozjpeg + - name: Opus cache. id: cache-opus uses: actions/cache@v2 @@ -439,7 +455,6 @@ jobs: -confirm-license \ -qt-zlib \ -qt-libpng \ - -qt-libjpeg \ -qt-harfbuzz \ -qt-pcre \ -qt-xcb \ @@ -531,7 +546,7 @@ jobs: cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Debug \ -DTG_OWT_SPECIAL_TARGET=linux \ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=`pwd`/../../../qt_$QT/qtbase/src/3rdparty/libjpeg \ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/local/include \ -DTG_OWT_OPENSSL_INCLUDE_PATH=$OPENSSL_PREFIX/include \ -DTG_OWT_OPUS_INCLUDE_PATH=/usr/local/include/opus \ -DTG_OWT_FFMPEG_INCLUDE_PATH=/usr/local/include \ diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 11ace8da8c..48ad4d4daa 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -132,6 +132,20 @@ jobs: make -j$(nproc) sudo make install + - 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/macos \ + -DWITH_JPEG8=ON \ + -DPNG_SUPPORTED=OFF + cmake --build build -j$(nproc) + sudo cmake --install build + - name: OpenSSL cache. id: cache-openssl uses: actions/cache@v2 @@ -443,7 +457,10 @@ jobs: -securetransport \ -nomake examples \ -nomake tests \ - -platform macx-clang + -platform macx-clang \ + -I "/usr/local/macos/include" \ + LIBJPEG_LIBS="/usr/local/macos/lib/libjpeg.a" \ + ZLIB_LIBS="/usr/local/macos/lib/libz.a" make -j$(nproc) sudo make install @@ -467,7 +484,7 @@ jobs: cd tg_owt/out/Debug cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug \ -DTG_OWT_SPECIAL_TARGET=mac \ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=`pwd`/../../../qt_$QT/qtbase/src/3rdparty/libjpeg \ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/local/macos/include \ -DTG_OWT_OPENSSL_INCLUDE_PATH=`pwd`/../../../openssl_$OPENSSL_VER/include \ -DTG_OWT_OPUS_INCLUDE_PATH=$PREFIX/include/opus \ -DTG_OWT_FFMPEG_INCLUDE_PATH=/usr/local/include \ diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 02140b3973..83ffcc0011 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -186,6 +186,20 @@ jobs: cd contrib\vstudio\vc14 msbuild -m zlibstat.vcxproj /property:Configuration=Debug + - name: MozJPEG. + shell: cmd + run: | + %VC% + + git clone -b v4.0.1-rc2 %GIT%/mozilla/mozjpeg.git + cd mozjpeg + cmake . ^ + -G "Visual Studio 16 2019" ^ + -A Win32 ^ + -DWITH_JPEG8=ON ^ + -DPNG_SUPPORTED=OFF + cmake --build . --config Debug + - name: OpenAL Soft cache. id: cache-openal uses: actions/cache@v2 @@ -326,7 +340,10 @@ jobs: -mp ^ -nomake examples ^ -nomake tests ^ - -platform win32-msvc + -platform win32-msvc ^ + -I "%LibrariesPath%\mozjpeg" ^ + LIBJPEG_LIBS_DEBUG="%LibrariesPath%\mozjpeg\Debug\jpeg-static.lib" ^ + LIBJPEG_LIBS_RELEASE="%LibrariesPath%\mozjpeg\Release\jpeg-static.lib" - name: Qt 5.12.8 build. if: steps.cache-qt.outputs.cache-hit != 'true' run: | @@ -350,28 +367,13 @@ jobs: run: | %VC% - :: Qt libjpeg. - mkdir qt_%QT% - cd qt_%QT% - git clone -b %QT_VER% https://github.com/qt/qtbase - - move qtbase\src\3rdparty\libjpeg .. - cd .. - dir - rmdir /S /Q qt_%QT% - mkdir qt_%QT%\qtbase\src\3rdparty\ - move libjpeg qt_%QT%\qtbase\src\3rdparty\ - - :: WebRTC. - cd %LibrariesPath% - git clone %GIT%/desktop-app/tg_owt.git mkdir tg_owt\out\Debug cd tg_owt\out\Debug cmake -G Ninja ^ -DCMAKE_BUILD_TYPE=Debug ^ -DTG_OWT_SPECIAL_TARGET=win ^ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=%cd%/../../../qt_%QT%/qtbase/src/3rdparty/libjpeg ^ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=%cd%/../../../mozjpeg ^ -DTG_OWT_OPENSSL_INCLUDE_PATH=%cd%/../../../openssl_%OPENSSL_VER%/include ^ -DTG_OWT_OPUS_INCLUDE_PATH=%cd%/../../../opus/include ^ -DTG_OWT_FFMPEG_INCLUDE_PATH=%cd%/../../../ffmpeg ^ @@ -386,9 +388,6 @@ jobs: mkdir out\Debug move tg_owt.lib out\Debug\tg_owt.lib - cd %LibrariesPath% - rmdir /S /Q qt_%QT% - - name: Read defines. shell: bash run: | diff --git a/docs/building-cmake.md b/docs/building-cmake.md index cc0c55cde2..11e7220954 100644 --- a/docs/building-cmake.md +++ b/docs/building-cmake.md @@ -58,6 +58,17 @@ Go to ***BuildPath*** and run git checkout ddd4084 cd ../ + git clone -b v4.0.1-rc2 https://github.com/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 $MAKE_THREADS_CNT + sudo cmake --install build + cd .. + git clone https://github.com/xiph/opus cd opus git checkout v1.3 @@ -221,7 +232,7 @@ Go to ***BuildPath*** and run --enable-static \ --disable-documentation \ --disable-dtd-validation - make -j$(nproc) + make $MAKE_THREADS_CNT sudo make install cd .. @@ -257,7 +268,6 @@ Go to ***BuildPath*** and run -confirm-license \ -qt-zlib \ -qt-libpng \ - -qt-libjpeg \ -qt-harfbuzz \ -qt-pcre \ -qt-xcb \ @@ -283,7 +293,7 @@ Go to ***BuildPath*** and run cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Debug \ -DTG_OWT_SPECIAL_TARGET=linux \ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=`pwd`/../../../qt_5_12_8/qtbase/src/3rdparty/libjpeg \ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/local/include \ -DTG_OWT_OPENSSL_INCLUDE_PATH=/usr/local/desktop-app/openssl-1.1.1/include \ -DTG_OWT_OPUS_INCLUDE_PATH=/usr/local/include/opus \ -DTG_OWT_FFMPEG_INCLUDE_PATH=/usr/local/include ../.. diff --git a/docs/building-msvc.md b/docs/building-msvc.md index 1d6ee5de79..1bc58046c4 100644 --- a/docs/building-msvc.md +++ b/docs/building-msvc.md @@ -100,6 +100,16 @@ Open **x86 Native Tools Command Prompt for VS 2019.bat**, go to ***BuildPath*** msbuild zlibstat.vcxproj /property:Configuration=ReleaseWithoutAsm cd ..\..\..\.. + git clone -b v4.0.1-rc2 https://github.com/mozilla/mozjpeg.git + cd mozjpeg + cmake . ^ + -G "Visual Studio 16 2019" ^ + -A Win32 ^ + -DWITH_JPEG8=ON ^ + -DPNG_SUPPORTED=OFF + cmake --build . + cd .. + git clone https://github.com/telegramdesktop/openal-soft.git cd openal-soft git checkout fix_mono @@ -161,7 +171,7 @@ Open **x86 Native Tools Command Prompt for VS 2019.bat**, go to ***BuildPath*** for /r %i in (..\..\patches\qtbase_5_12_8\*) do git apply %i cd .. - configure -prefix "%LibrariesPath%\Qt-5.12.8" -debug-and-release -force-debug-info -opensource -confirm-license -static -static-runtime -I "%LibrariesPath%\openssl_1_1_1\include" -no-opengl -openssl-linked OPENSSL_LIBS_DEBUG="%LibrariesPath%\openssl_1_1_1\out32.dbg\libssl.lib %LibrariesPath%\openssl_1_1_1\out32.dbg\libcrypto.lib Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib" OPENSSL_LIBS_RELEASE="%LibrariesPath%\openssl_1_1_1\out32\libssl.lib %LibrariesPath%\openssl_1_1_1\out32\libcrypto.lib Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib" -mp -nomake examples -nomake tests -platform win32-msvc + configure -prefix "%LibrariesPath%\Qt-5.12.8" -debug-and-release -force-debug-info -opensource -confirm-license -static -static-runtime -I "%LibrariesPath%\openssl_1_1_1\include" -no-opengl -openssl-linked OPENSSL_LIBS_DEBUG="%LibrariesPath%\openssl_1_1_1\out32.dbg\libssl.lib %LibrariesPath%\openssl_1_1_1\out32.dbg\libcrypto.lib Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib" OPENSSL_LIBS_RELEASE="%LibrariesPath%\openssl_1_1_1\out32\libssl.lib %LibrariesPath%\openssl_1_1_1\out32\libcrypto.lib Ws2_32.lib Gdi32.lib Advapi32.lib Crypt32.lib User32.lib" -mp -nomake examples -nomake tests -platform win32-msvc -I "%LibrariesPath%\mozjpeg" LIBJPEG_LIBS_DEBUG="%LibrariesPath%\mozjpeg\Debug\jpeg-static.lib" LIBJPEG_LIBS_RELEASE="%LibrariesPath%\mozjpeg\Release\jpeg-static.lib" jom -j4 jom -j4 install @@ -176,7 +186,7 @@ Open **x86 Native Tools Command Prompt for VS 2019.bat**, go to ***BuildPath*** cmake -G Ninja ^ -DCMAKE_BUILD_TYPE=Debug ^ -DTG_OWT_SPECIAL_TARGET=win ^ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=%cd%/../../../qt_5_12_8/qtbase/src/3rdparty/libjpeg ^ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=%cd%/../../../mozjpeg ^ -DTG_OWT_OPENSSL_INCLUDE_PATH=%cd%/../../../openssl_1_1_1/include ^ -DTG_OWT_OPUS_INCLUDE_PATH=%cd%/../../../opus/include ^ -DTG_OWT_FFMPEG_INCLUDE_PATH=%cd%/../../../ffmpeg ../.. @@ -187,7 +197,7 @@ Open **x86 Native Tools Command Prompt for VS 2019.bat**, go to ***BuildPath*** cmake -G Ninja ^ -DCMAKE_BUILD_TYPE=Release ^ -DTG_OWT_SPECIAL_TARGET=win ^ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=%cd%/../../../qt_5_12_8/qtbase/src/3rdparty/libjpeg ^ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=%cd%/../../../mozjpeg ^ -DTG_OWT_OPENSSL_INCLUDE_PATH=%cd%/../../../openssl_1_1_1/include ^ -DTG_OWT_OPUS_INCLUDE_PATH=%cd%/../../../opus/include ^ -DTG_OWT_FFMPEG_INCLUDE_PATH=%cd%/../../../ffmpeg ../.. diff --git a/docs/building-osx.md b/docs/building-osx.md index 25300b4517..e2b263dfc8 100644 --- a/docs/building-osx.md +++ b/docs/building-osx.md @@ -68,6 +68,17 @@ Go to ***BuildPath*** and run sudo make install cd .. + git clone -b v4.0.1-rc2 https://github.com/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 $MAKE_THREADS_CNT + sudo cmake --install build + cd .. + git clone https://github.com/openssl/openssl openssl_1_1_1 cd openssl_1_1_1 git checkout OpenSSL_1_1_1-stable @@ -240,7 +251,7 @@ Go to ***BuildPath*** and run git apply ../../patches/qtbase_5_6_2.diff cd .. - ./configure -prefix "/usr/local/desktop-app/Qt-5.6.2" -debug-and-release -force-debug-info -opensource -confirm-license -static -opengl desktop -no-openssl -securetransport -nomake examples -nomake tests -platform macx-clang + ./configure -prefix "/usr/local/desktop-app/Qt-5.6.2" -debug-and-release -force-debug-info -opensource -confirm-license -static -opengl desktop -no-openssl -securetransport -nomake examples -nomake tests -platform macx-clang -I "/usr/local/include" LIBJPEG_LIBS="/usr/local/lib/libjpeg.a" ZLIB_LIBS="/usr/local/lib/libz.a" make $MAKE_THREADS_CNT sudo make install cd .. @@ -254,7 +265,7 @@ Go to ***BuildPath*** and run cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Debug \ -DTG_OWT_SPECIAL_TARGET=osx \ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=`pwd`/../../../qt5_6_2/qtbase/src/3rdparty/libjpeg \ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/local/include \ -DTG_OWT_OPENSSL_INCLUDE_PATH=`pwd`/../../../openssl_1_1_1/include \ -DTG_OWT_OPUS_INCLUDE_PATH=/usr/local/include/opus \ -DTG_OWT_FFMPEG_INCLUDE_PATH=`pwd`/../../../ffmpeg ../.. @@ -265,7 +276,7 @@ Go to ***BuildPath*** and run cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DTG_OWT_SPECIAL_TARGET=osx \ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=`pwd`/../../../qt5_6_2/qtbase/src/3rdparty/libjpeg \ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/local/include \ -DTG_OWT_OPENSSL_INCLUDE_PATH=`pwd`/../../../openssl_1_1_1/include \ -DTG_OWT_OPUS_INCLUDE_PATH=/usr/local/include/opus \ -DTG_OWT_FFMPEG_INCLUDE_PATH=`pwd`/../../../ffmpeg ../.. diff --git a/docs/building-xcode.md b/docs/building-xcode.md index f286cf0478..1f47962afa 100644 --- a/docs/building-xcode.md +++ b/docs/building-xcode.md @@ -75,6 +75,17 @@ Go to ***BuildPath*** and run sudo make install cd .. + git clone -b v4.0.1-rc2 https://github.com/mozilla/mozjpeg.git + cd mozjpeg + cmake -B build . \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr/local/macos \ + -DWITH_JPEG8=ON \ + -DPNG_SUPPORTED=OFF + cmake --build build $MAKE_THREADS_CNT + sudo cmake --install build + cd .. + git clone https://github.com/openssl/openssl openssl_1_1_1 cd openssl_1_1_1 git checkout OpenSSL_1_1_1-stable @@ -262,7 +273,10 @@ Go to ***BuildPath*** and run -securetransport \ -nomake examples \ -nomake tests \ - -platform macx-clang + -platform macx-clang \ + -I "/usr/local/macos/include" \ + LIBJPEG_LIBS="/usr/local/macos/lib/libjpeg.a" \ + ZLIB_LIBS="/usr/local/macos/lib/libz.a" make $MAKE_THREADS_CNT sudo make install @@ -277,7 +291,7 @@ Go to ***BuildPath*** and run cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Debug \ -DTG_OWT_SPECIAL_TARGET=mac \ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=`pwd`/../../../qt_5_12_8/qtbase/src/3rdparty/libjpeg \ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/local/macos/include \ -DTG_OWT_OPENSSL_INCLUDE_PATH=`pwd`/../../../openssl_1_1_1/include \ -DTG_OWT_OPUS_INCLUDE_PATH=/usr/local/macos/include/opus \ -DTG_OWT_FFMPEG_INCLUDE_PATH=/usr/local/macos/include ../.. @@ -288,7 +302,7 @@ Go to ***BuildPath*** and run cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DTG_OWT_SPECIAL_TARGET=mac \ - -DTG_OWT_LIBJPEG_INCLUDE_PATH=`pwd`/../../../qt_5_12_8/qtbase/src/3rdparty/libjpeg \ + -DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/local/macos/include \ -DTG_OWT_OPENSSL_INCLUDE_PATH=`pwd`/../../../openssl_1_1_1/include \ -DTG_OWT_OPUS_INCLUDE_PATH=/usr/local/macos/include/opus \ -DTG_OWT_FFMPEG_INCLUDE_PATH=/usr/local/macos/include ../.. diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 09dc34469c..63ffae0261 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -123,9 +123,12 @@ parts: snapcraftctl set-version "$version" sed -i 's|^Icon=.*|Icon=/usr/share/icons/hicolor/512x512/apps/telegram.png|g' lib/xdg/telegramdesktop.desktop + stage: + - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libjpeg.so.8.2.2 after: - desktop-qt5 - ffmpeg + - mozjpeg - openal - qtwayland - webrtc @@ -154,17 +157,29 @@ parts: - locales-all - xdg-user-dirs - fcitx-frontend-qt5 + stage: + - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libjpeg.so.8.2.2 + after: + - mozjpeg qt5-xdgdesktopportal-platform: plugin: nil stage-packages: - qt5-xdgdesktopportal-platformtheme + stage: + - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libjpeg.so.8.2.2 + after: + - mozjpeg # Qt checks that ibus-daemon binary is present, otherwise doesn't work ibus: plugin: nil stage-packages: - ibus + stage: + - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libjpeg.so.8.2.2 + after: + - mozjpeg ffmpeg: plugin: nil @@ -180,6 +195,27 @@ parts: - libavutil56 - libswresample3 - libswscale5 + stage: + - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libjpeg.so.8.2.2 + after: + - mozjpeg + + mozjpeg: + source: https://github.com/mozilla/mozjpeg.git + source-depth: 1 + source-tag: v4.0.1-rc2 + plugin: cmake + cmake-parameters: + - -DCMAKE_BUILD_TYPE=Release + - -DCMAKE_INSTALL_PREFIX=/usr + - -DENABLE_STATIC=OFF + - -DWITH_JPEG8=ON + - -DPNG_SUPPORTED=OFF + prime: + - -./usr/bin + - -./usr/include + - -./usr/lib/pkgconfig + - -./usr/share openal: source: https://github.com/kcat/openal-soft.git @@ -228,15 +264,17 @@ parts: plugin: cmake build-packages: - yasm - - libjpeg8-dev - libopus-dev - libssl-dev stage-packages: - - libjpeg8 - libopus0 - libssl1.1 override-build: | - cmake "$SNAPCRAFT_PART_SRC" -DCMAKE_BUILD_TYPE=Release + cmake "$SNAPCRAFT_PART_SRC" \ + -DCMAKE_BUILD_TYPE=Release \ + -DJPEG_LIBRARY_RELEASE="$SNAPCRAFT_STAGE/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libjpeg.so" \ + -DJPEG_INCLUDE_DIR="$SNAPCRAFT_STAGE/usr/include" + cmake --build . -- -j$(nproc) cp -a . "$SNAPCRAFT_PART_INSTALL" organize: @@ -244,3 +282,4 @@ parts: prime: [-./*] after: - ffmpeg + - mozjpeg