Summary: C++ L7 proxy and communication bus
Name: envoy
Version: 1.2.0
Release: 1%{?dist}
License: Apache-2.0
URL: https://github.com/lyft/envoy
Source0: %{name}-v%{version}.tar.gz
%define sha1 envoy=725806d38c33d82177f99ae57fd27516adacd604
Source1: cotire.cmake
Group: Development/Tools
Vendor: VMware, Inc.
Distribution: Photon
BuildRequires: backward-cpp
BuildRequires: c-ares-devel >= 1.11.0
BuildRequires: cmake
BuildRequires: clang
BuildRequires: gcovr
BuildRequires: python3-gcovr
BuildRequires: gcc
BuildRequires: git
BuildRequires: gmp
BuildRequires: gmp-devel
BuildRequires: gmock
BuildRequires: gmock-devel
BuildRequires: gmock-static
BuildRequires: gtest
BuildRequires: gtest-devel
BuildRequires: gtest-static
BuildRequires: gperftools-devel
BuildRequires: http-parser-devel
BuildRequires: libevent-devel
BuildRequires: libstdc++-devel
BuildRequires: lightstep-tracer-cpp
BuildRequires: nghttp2-devel
BuildRequires: openssl-devel
BuildRequires: protobuf-devel
BuildRequires: rapidjson-devel
BuildRequires: spdlog
BuildRequires: tclap
BuildRequires: which
Requires: c-ares >= 1.11.0
Requires: gperftools
Requires: http-parser
Requires: libevent
Requires: libstdc++
Requires: lightstep-tracer-cpp
Requires: nghttp2
Requires: openssl
Requires: protobuf
%description
Envoy is a L7 proxy and communication bus designed for large modern service oriented architectures.
%prep
%setup -q
cp %{SOURCE1} %{_builddir}/%{name}-%{version}/
git init .
git add .
git -c user.name='Envoy Builder' -c user.email='nobody@noorg.org' commit -m 'Envoy Sources %{name}%{version}'
git -c user.name='Envoy Builder' -c user.email='nobody@noorg.org' tag -a 'v%{version}' -m '%{name}%{version}'
git checkout 'v%{version}'
sed -i "s#-Werror##g" common.cmake
sed -i "s#static-libstdc++#lstdc++#g" CMakeLists.txt
%build
export CC=`which gcc`
export CXX=`which g++`
export LD_LIBRARY_PATH=%{_libdir}:$(LD_LIBRARY_PATH)
mkdir -p build
cd build
cmake \
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
-DCLANG-FORMAT:FILEPATH=clang-format \
-DENVOY_COTIRE_MODULE_DIR:FILEPATH=%{_builddir}/%{name}-%{version} \
-DENVOY_PROTOBUF_INCLUDE_DIR:FILEPATH=%{_includedir} \
-DENVOY_PROTOBUF_PROTOC:FILEPATH=%{_bindir}/protoc \
-DENVOY_EXE_EXTRA_LINKER_FLAGS:STRING=-L%{_libdir} \
-DENVOY_TEST_EXTRA_LINKER_FLAGS:STRING=-L%{_libdir} \
-DENVOY_DEBUG:BOOL=OFF \
-DENVOY_STRIP:BOOL=ON \
..
cmake -L ..
make %{?_smp_mflags}
make all_pch
make envoy
make envoy-server
make envoy-test
make envoy-common
%install
cd build
make preinstall
mkdir -p %{buildroot}%{_sysconfdir}/envoy
mkdir -p %{buildroot}%{_bindir}
cp source/exe/envoy %{buildroot}%{_bindir}
cp test/envoy-test %{buildroot}%{_bindir}
cp source/exe/envoy.dbg %{buildroot}%{_bindir}
cp ../configs/* %{buildroot}%{_sysconfdir}/envoy
%files
%defattr(-,root,root)
%{_bindir}/envoy
%config(noreplace) %{_sysconfdir}/envoy/*
%files debuginfo
%defattr(-,root,root)
%{_bindir}/envoy-test
%{_bindir}/envoy.dbg
%changelog
* Thu Jun 29 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.2.0-1
- Initial version of envoy package for Photon.