%bcond_with static # The tests work but they rely on strict timing, which makes them flaky when # run in koji, so keep them disabled for now %bcond_with tests # last tagged release is from 2016 despite ongoing development %global commit 97a8c0a9152d7e52d791707d2599cc94207b5c42 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global date 20210312 %global _shared_builddir shared_build %global _static_builddir static_build %if 0%{?el7} %global cmake %cmake3 %global cmake_build %cmake3_build %global cmake_install %cmake3_install %global ctest ctest3 %endif Name: wdt Version: 1.32.1910230 Release: 5.%{?date}git%{?shortcommit}%{?dist} Summary: Warp speed Data Transfer License: BSD URL: https://www.facebook.com/WdtOpenSource Source0: https://github.com/facebook/wdt/archive/%{commit}/%{name}-%{commit}.tar.gz BuildRequires: %{?el7:devtoolset-9-}gcc-c++ BuildRequires: cmake%{?el7:3} # folly is disabled on s390x ExcludeArch: s390x BuildRequires: boost%{?el7:169}-devel BuildRequires: double-conversion-devel BuildRequires: folly-devel BuildRequires: gflags-devel BuildRequires: glog-devel BuildRequires: gtest-devel BuildRequires: jemalloc-devel BuildRequires: openssl-devel %if %{with static} BuildRequires: folly-static %endif %if %{with tests} BuildRequires: bash BuildRequires: python3 %endif Requires: %{name}-libs%{?_isa} = %{version}-%{release} # for wcp Requires: bash %description Warp speed Data Transfer is aiming to transfer data between two systems as fast as possible. %package devel Summary: Development files for %{name} Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package libs Summary: Shared libraries for %{name} %description libs Warp speed Data Transfer (WDT) is a library aiming to transfer data between two systems as fast as possible over multiple TCP paths. %if %{with static} %package static Summary: Static development libraries for %{name} Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description static The %{name}-static package contains static libraries for developing applications that use %{name}. %endif %prep %setup -c -q # wdt needs to be build from a base directory called wdt # https://github.com/facebook/wdt/issues/213 ln -s %{name}-%{commit} %{name} # Disable hardcoded CXX FLAGS sed -i -e 's/set(CMAKE_CXX_FLAGS.*//' %{name}/CMakeLists.txt %build %{?el7:. /opt/rh/devtoolset-9/enable} mkdir %{_shared_builddir} pushd %{_shared_builddir} %cmake ../%{name} \ -DCMAKE_CXX_FLAGS="%{optflags}" \ -DCMAKE_SKIP_RPATH=ON \ -DBUILD_SHARED_LIBS=ON \ -DWDT_USE_SYSTEM_FOLLY=ON \ %{?el7: -DBOOST_INCLUDEDIR=%_includedir/boost169 -DBOOST_LIBRARYDIR=%_libdir/boost169} \ %if %{with tests} -DBUILD_TESTING=ON %else -DBUILD_TESTING=OFF %endif %cmake_build popd %if %{with static} mkdir %{_static_builddir} pushd %{_static_builddir} %cmake ../%{name} \ -DCMAKE_CXX_FLAGS="%{optflags}" \ -DCMAKE_SKIP_RPATH=ON \ -DBUILD_SHARED_LIBS=OFF \ -DWDT_USE_SYSTEM_FOLLY=ON \ %{?el7: -DBOOST_INCLUDEDIR=%_includedir/boost169 -DBOOST_LIBRARYDIR=%_libdir/boost169} \ -DBUILD_TESTING=OFF %cmake_build popd %endif %install pushd "%{_shared_builddir}" %cmake_install # move installed shared libraries in the right place if needed %if "%{_lib}" == "lib64" mv %{buildroot}%{_prefix}/lib %{buildroot}%{_libdir} %endif popd %if %{with static} pushd %{_static_builddir} # Not using %%cmake_install here as we need to override the DESTDIR DESTDIR="%{buildroot}/static" %__cmake --install "%{__cmake_builddir}" # move installed static libraries in the right place mv %{buildroot}/static%{_prefix}/lib/*.a %{buildroot}%{_libdir} rm -rf %{buildroot}/static popd %endif %if %{with tests} %check %{?el7:. /opt/rh/devtoolset-9/enable} pushd %{_shared_builddir} # tests are linked against a bunch of shared libraries export LD_LIBRARY_PATH="$PWD/%{__cmake_builddir}" %ctest popd %endif %files %doc wdt/README.md %license wdt/LICENSE %{_bindir}/wdt %{_bindir}/wcp %files devel %{_includedir}/* %{_libdir}/*.so %files libs %{_libdir}/*.so.1* %if %{with static} %files static %{_libdir}/*.a %endif %changelog * Mon Mar 29 2021 Michel Alexandre Salim - 1.32.1910230-5.20210312git97a8c0a - Rebuild against folly 2021.03.29.00 * Wed Mar 24 2021 Michel Alexandre Salim - 1.32.1910230-4.20210312git97a8c0a - Rebuild against folly 2021.03.22.00 * Mon Mar 15 2021 Michel Alexandre Salim - 1.32.1910230-3.20210312git97a8c0a - Update to 20210312 * Tue Mar 9 2021 Davide Cavalca - 1.32.1910230-2.20210128git6aec23c - Fix typos in summary - Use more strict globbing for the soname version * Thu Jan 28 2021 Davide Cavalca - 1.32.1910230-1.20210128git6aec23c - Bump git commit to include upstream fixes - Use system folly instead of bundling it - Default to shared library build - Use %%cmake instead of %%cmake3 - Use %%bcond for tests and turn off by default due to flakiness - Update BuildRequires and Requires * Sat Nov 07 2020 Nicolas Chauvet - 1.32.1910230-2.20200909gitb585d21 - Improve description - Add --with tests conditional for tests - Switch to cmake3 - And ExcludeArch inherited from folly * Fri Oct 23 2020 Nicolas Chauvet - 1.32.1910230-1.20200909gitb585d21 - Update to 1.32.1910230 snapshot * Tue Dec 19 2017 Kees de Jong - 1.27.1612021-1 - Initial package