From 41e8172aa58dc9d3788fd9de160a93f3f0bdc04d Mon Sep 17 00:00:00 2001 From: RadRussianRus Date: Sun, 26 Jan 2020 02:03:58 +0300 Subject: [PATCH] Updated readme and removed old instruction Official instruction now works for Ubuntu 16.04 without problems, so there is no need to keep a separate one. --- README.md | 9 +- docs/building-cmake-ktg.md | 288 ------------------------------------- 2 files changed, 6 insertions(+), 291 deletions(-) delete mode 100644 docs/building-cmake-ktg.md diff --git a/README.md b/README.md index 58b3dfaad..919cf253b 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,13 @@ # Kotatogram – experimental [Telegram Desktop][telegram_desktop] fork. +![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/kotatogram/kotatogram-desktop?include_prereleases&label=version&style=flat) +![GitHub Workflow Status: Windows](https://img.shields.io/github/workflow/status/kotatogram/kotatogram-desktop/Windows.?label=Windows&logo=windows) +![GitHub Workflow Status: Linux](https://img.shields.io/github/workflow/status/kotatogram/kotatogram-desktop/Linux.?label=Linux&logo=linux) +[![Packaging status](https://repology.org/badge/tiny-repos/kotatogram-desktop.svg)](https://repology.org/project/kotatogram-desktop/versions) + Original README with build instructions and licenses could be found in [Telegram Desktop repository][telegram_desktop_readme]. -Also there is [updated instruction on how to build app in Ubuntu 16.04][docs_ubuntu_16]. - -There will be builds of Kotatogram for Windows and Linux 64-bit, autoupdater included. +Currently there are builds of Kotatogram for Windows (installer and portable) and Linux 64-bit, autoupdater included. Expect a lot of breaking changes. diff --git a/docs/building-cmake-ktg.md b/docs/building-cmake-ktg.md deleted file mode 100644 index 6dd001d0b..000000000 --- a/docs/building-cmake-ktg.md +++ /dev/null @@ -1,288 +0,0 @@ -## Build instructions for GYP/CMake under Ubuntu 16.04 - -The process is almost the same as with 14.04, but with one change: you need to use OpenSSL 1.0.2 instead of 1.0.1. - -### Prepare folder - -Choose an empty folder for the future build, for example **/home/user/TBuild**. It will be named ***BuildPath*** in the rest of this document. - -### Obtain your API credentials - -You will require **api_id** and **api_hash** to access the Telegram API servers. To learn how to obtain them [click here][api_credentials]. - -### Install software and required packages - -You will need GCC 8.1 and CMake 3.2 installed. To install them and all the required dependencies run - - sudo apt-get install software-properties-common -y && \ - sudo apt-get install git libexif-dev liblzma-dev libz-dev libssl-dev libappindicator-dev libicu-dev libdee-dev libdrm-dev dh-autoreconf autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-xfixes0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libxcb-render-util0-dev libxcb-util0-dev libxrender-dev libasound-dev libpulse-dev libxcb-sync0-dev libxcb-randr0-dev libx11-xcb-dev libffi-dev libncurses5-dev pkg-config texi2html zlib1g-dev yasm cmake xutils-dev bison python-xcbgen chrpath -y && \ - - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \ - sudo add-apt-repository ppa:george-edison55/cmake-3.x -y && \ - sudo apt-get update && \ - sudo apt-get install gcc-8 g++-8 cmake -y && \ - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 && \ - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 && \ - sudo update-alternatives --config gcc && \ - sudo add-apt-repository --remove ppa:ubuntu-toolchain-r/test -y && \ - sudo add-apt-repository --remove ppa:george-edison55/cmake-3.x -y - -You can set the multithreaded make parameter by running - - MAKE_THREADS_CNT=-j8 - -### Clone source code and prepare libraries - -Go to ***BuildPath*** and run - - git clone --recursive https://github.com/kotatogram/kotatogram-desktop.git tdesktop - - mkdir Libraries - cd Libraries - - git clone --branch 0.9.1 https://github.com/ericniebler/range-v3 - - git clone https://github.com/telegramdesktop/zlib.git - cd zlib - ./configure - make $MAKE_THREADS_CNT - sudo make install - cd .. - - git clone https://github.com/xiph/opus - cd opus - git checkout v1.3 - ./autogen.sh - ./configure - make $MAKE_THREADS_CNT - sudo make install - cd .. - - git clone https://github.com/01org/libva.git - cd libva - ./autogen.sh --enable-static - make $MAKE_THREADS_CNT - sudo make install - cd .. - - git clone git://anongit.freedesktop.org/vdpau/libvdpau - cd libvdpau - git checkout libvdpau-1.2 - ./autogen.sh --enable-static - make $MAKE_THREADS_CNT - sudo make install - cd .. - - git clone https://github.com/FFmpeg/FFmpeg.git ffmpeg - cd ffmpeg - git checkout release/3.4 - - ./configure --prefix=/usr/local \ - --enable-protocol=file --enable-libopus \ - --disable-programs \ - --disable-doc \ - --disable-network \ - --disable-everything \ - --enable-hwaccel=h264_vaapi \ - --enable-hwaccel=h264_vdpau \ - --enable-hwaccel=mpeg4_vaapi \ - --enable-hwaccel=mpeg4_vdpau \ - --enable-decoder=aac \ - --enable-decoder=aac_at \ - --enable-decoder=aac_fixed \ - --enable-decoder=aac_latm \ - --enable-decoder=aasc \ - --enable-decoder=alac \ - --enable-decoder=alac_at \ - --enable-decoder=flac \ - --enable-decoder=gif \ - --enable-decoder=h264 \ - --enable-decoder=h264_vdpau \ - --enable-decoder=hevc \ - --enable-decoder=mp1 \ - --enable-decoder=mp1float \ - --enable-decoder=mp2 \ - --enable-decoder=mp2float \ - --enable-decoder=mp3 \ - --enable-decoder=mp3adu \ - --enable-decoder=mp3adufloat \ - --enable-decoder=mp3float \ - --enable-decoder=mp3on4 \ - --enable-decoder=mp3on4float \ - --enable-decoder=mpeg4 \ - --enable-decoder=mpeg4_vdpau \ - --enable-decoder=msmpeg4v2 \ - --enable-decoder=msmpeg4v3 \ - --enable-decoder=opus \ - --enable-decoder=pcm_alaw \ - --enable-decoder=pcm_alaw_at \ - --enable-decoder=pcm_f32be \ - --enable-decoder=pcm_f32le \ - --enable-decoder=pcm_f64be \ - --enable-decoder=pcm_f64le \ - --enable-decoder=pcm_lxf \ - --enable-decoder=pcm_mulaw \ - --enable-decoder=pcm_mulaw_at \ - --enable-decoder=pcm_s16be \ - --enable-decoder=pcm_s16be_planar \ - --enable-decoder=pcm_s16le \ - --enable-decoder=pcm_s16le_planar \ - --enable-decoder=pcm_s24be \ - --enable-decoder=pcm_s24daud \ - --enable-decoder=pcm_s24le \ - --enable-decoder=pcm_s24le_planar \ - --enable-decoder=pcm_s32be \ - --enable-decoder=pcm_s32le \ - --enable-decoder=pcm_s32le_planar \ - --enable-decoder=pcm_s64be \ - --enable-decoder=pcm_s64le \ - --enable-decoder=pcm_s8 \ - --enable-decoder=pcm_s8_planar \ - --enable-decoder=pcm_u16be \ - --enable-decoder=pcm_u16le \ - --enable-decoder=pcm_u24be \ - --enable-decoder=pcm_u24le \ - --enable-decoder=pcm_u32be \ - --enable-decoder=pcm_u32le \ - --enable-decoder=pcm_u8 \ - --enable-decoder=pcm_zork \ - --enable-decoder=vorbis \ - --enable-decoder=wavpack \ - --enable-decoder=wmalossless \ - --enable-decoder=wmapro \ - --enable-decoder=wmav1 \ - --enable-decoder=wmav2 \ - --enable-decoder=wmavoice \ - --enable-encoder=libopus \ - --enable-parser=aac \ - --enable-parser=aac_latm \ - --enable-parser=flac \ - --enable-parser=h264 \ - --enable-parser=hevc \ - --enable-parser=mpeg4video \ - --enable-parser=mpegaudio \ - --enable-parser=opus \ - --enable-parser=vorbis \ - --enable-demuxer=aac \ - --enable-demuxer=flac \ - --enable-demuxer=gif \ - --enable-demuxer=h264 \ - --enable-demuxer=hevc \ - --enable-demuxer=m4v \ - --enable-demuxer=mov \ - --enable-demuxer=mp3 \ - --enable-demuxer=ogg \ - --enable-demuxer=wav \ - --enable-muxer=ogg \ - --enable-muxer=opus - - make $MAKE_THREADS_CNT - sudo make install - cd .. - - git clone https://git.assembla.com/portaudio.git - cd portaudio - git checkout 396fe4b669 - ./configure - make $MAKE_THREADS_CNT - sudo make install - cd .. - - git clone git://repo.or.cz/openal-soft.git - cd openal-soft - git checkout openal-soft-1.19.1 - cd build - if [ `uname -p` == "i686" ]; then - cmake -D LIBTYPE:STRING=STATIC -D ALSOFT_UTILS:BOOL=OFF .. - else - cmake -D LIBTYPE:STRING=STATIC .. - fi - make $MAKE_THREADS_CNT - sudo make install - cd ../.. - - git clone https://github.com/openssl/openssl - cd openssl - git checkout OpenSSL_1_0_2-stable - ./config - make $MAKE_THREADS_CNT - sudo make install - cd .. - - git clone https://github.com/xkbcommon/libxkbcommon.git - cd libxkbcommon - git checkout xkbcommon-0.8.4 - ./autogen.sh --disable-x11 - make $MAKE_THREADS_CNT - sudo make install - cd .. - - git clone git://code.qt.io/qt/qt5.git qt5_6_2 - cd qt5_6_2 - perl init-repository --module-subset=qtbase,qtimageformats - git checkout v5.6.2 - cd qtimageformats && git checkout v5.6.2 && cd .. - cd qtbase && git checkout v5.6.2 && cd .. - cd qtbase && git apply ../../../tdesktop/Telegram/Patches/qtbase_5_6_2.diff && cd .. - cd qtbase/src/plugins/platforminputcontexts - git clone https://github.com/telegramdesktop/fcitx.git - git clone https://github.com/telegramdesktop/hime.git - git clone https://github.com/telegramdesktop/nimf.git - cd ../../../.. - - ./configure -prefix "/usr/local/tdesktop/Qt-5.6.2" -release -force-debug-info -opensource -confirm-license -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz -qt-pcre -qt-xcb -qt-xkbcommon-x11 -no-opengl -no-gtkstyle -static -openssl-linked -nomake examples -nomake tests - - make $MAKE_THREADS_CNT - sudo make install - cd .. - - git clone https://chromium.googlesource.com/external/gyp - cd gyp - git checkout 702ac58e47 - git apply ../../tdesktop/Telegram/Patches/gyp.diff - cd .. - - git clone https://chromium.googlesource.com/breakpad/breakpad - cd breakpad - git checkout bc8fb886 - git clone https://chromium.googlesource.com/linux-syscall-support src/third_party/lss - cd src/third_party/lss - git checkout a91633d1 - cd ../../.. - ./configure - make $MAKE_THREADS_CNT - sudo make install - cd src/tools - ../../../gyp/gyp --depth=. --generator-output=.. -Goutput_dir=../out tools.gyp --format=cmake - cd ../../out/Default - cmake . - make $MAKE_THREADS_CNT dump_syms - cd ../../.. - -### Building the project - -Before refreshing, you can set build defines (skip this step if you don't need to disable anything): - - export TDESKTOP_BUILD_DEFINES=TDESKTOP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE - -Go to ***BuildPath*/tdesktop/Telegram** and run (using [your **api_id** and **api_hash**](#obtain-your-api-credentials)) - - gyp/refresh.sh --api-id YOUR_API_ID --api-hash YOUR_API_HASH - -To make Debug version go to ***BuildPath*/tdesktop/out/Debug** and run - - make $MAKE_THREADS_CNT - -P.S. It may be bad idea to make app in multiple threads. In case of errors try omit `$MAKE_THREADS_CNT` parameter. - -To make Release version go to ***BuildPath*/tdesktop/out/Release** and run - - make $MAKE_THREADS_CNT - -Since binary file will be big, don't forget to run this in ***BuildPath*/tdesktop/out/Release** if you will publish the app: - - strip --strip-all Telegram - -You can debug your builds from Qt Creator, just open **CMakeLists.txt** from ***BuildPath*/tdesktop/out/Debug** and launch with debug. - -[api_credentials]: api_credentials.md