# Build conditionals (with - OFF, without - ON)... %bcond_without clang %bcond_without ipo %bcond_without mindbg # Applying workaround to RHBZ#1559007... %if %{with clang} %global optflags %(echo %{optflags} | sed -e 's/-mcet//g' -e 's/-fcf-protection//g' -e 's/-fstack-clash-protection//g' -e 's/$/-Qunused-arguments -Wno-unknown-warning-option/') %endif # Decrease debuginfo verbosity to reduce memory consumption... %if %{with mindbg} %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif %global forgeurl https://github.com/tdlib/td %global branch master %forgemeta Name: tdlib Version: 1.7.9 Release: 2%{?dist} Summary: Cross-platform library for building Telegram clients License: Boost URL: https://github.com/%{name}/td Source: %{forgesource} BuildRequires: gperftools-devel BuildRequires: openssl-devel BuildRequires: ninja-build BuildRequires: zlib-devel BuildRequires: gcc-c++ BuildRequires: gperf BuildRequires: cmake BuildRequires: gcc %if %{with clang} BuildRequires: compiler-rt BuildRequires: clang BuildRequires: llvm %endif # Building with default settings require at least 16 GB of free RAM. # Builds on ARM and other low-memory architectures are failing. ExclusiveArch: x86_64 %description TDLib (Telegram Database library) is a cross-platform library for building Telegram clients. It can be easily used from almost any programming language. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %package static Summary: Static libraries for %{name} Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: %{name}-devel%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %description devel %{summary}. %description static %{summary}. %prep %autosetup -n td-%{branch} -p1 mkdir -p %{_target_platform} %build pushd %{_target_platform} %cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_LIBDIR=%{_lib} \ %if %{with clang} -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_AR=%{_bindir}/llvm-ar \ -DCMAKE_RANLIB=%{_bindir}/llvm-ranlib \ -DCMAKE_LINKER=%{_bindir}/llvm-ld \ -DCMAKE_OBJDUMP=%{_bindir}/llvm-objdump \ -DCMAKE_NM=%{_bindir}/llvm-nm \ %else -DCMAKE_AR=%{_bindir}/gcc-ar \ -DCMAKE_RANLIB=%{_bindir}/gcc-ranlib \ -DCMAKE_NM=%{_bindir}/gcc-nm \ %endif %if %{with ipo} && %{with mindbg} -DTD_ENABLE_LTO:BOOL=ON \ %else -DTD_ENABLE_LTO:BOOL=OFF \ %endif -DTD_ENABLE_JNI:BOOL=OFF \ -DTD_ENABLE_DOTNET:BOOL=OFF \ .. popd %ninja_build -C %{_target_platform} %install %ninja_install -C %{_target_platform} %files %license LICENSE_1_0.txt %doc README.md CHANGELOG.md %{_libdir}/libtd*.so.%{version} %files devel %{_includedir}/td %{_libdir}/libtd*.so %{_libdir}/cmake/Td %{_libdir}/pkgconfig/td*.pc %files static %{_libdir}/libtd*.a %changelog * Sat Feb 01 2020 Vitaly Zaitsev - 1.6.0-1 - Updated to version 1.6.0. * Fri Jan 31 2020 Fedora Release Engineering - 1.5.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Tue Sep 10 2019 Vitaly Zaitsev - 1.5.0-1 - Updated to version 1.5.0. * Sat Jul 27 2019 Fedora Release Engineering - 1.4.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Thu May 02 2019 Vitaly Zaitsev - 1.4.0-1 - Updated to version 1.4.0. * Mon Feb 04 2019 Vitaly Zaitsev - 1.3.0-4 - Switched to clang on Fedora 30+. * Sun Feb 03 2019 Fedora Release Engineering - 1.3.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Sun Sep 16 2018 Vitaly Zaitsev - 1.3.0-2 - Fixed issue with crypto policies. * Sat Sep 15 2018 Vitaly Zaitsev - 1.3.0-1 - Initial SPEC release.