ZLMediaKit/package/rpm/ZLMediaKit.spec
2022-08-22 13:18:05 +08:00

169 lines
3.4 KiB
RPMSpec

%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
%global use_devtoolset 0
%bcond_without faac
%bcond_without x264
%bcond_without webrtc
%else
%global use_devtoolset 1
%bcond_with faac
%bcond_with x264
%bcond_with webrtc
%endif
%bcond_without openssl
%bcond_without mysql
# 默认不编译 API
%bcond_with api
%bcond_with cxx_api
Name: ZLMediaKit
Version: 5.0.0
Release: 1%{?dist}
Summary: A lightweight, high performance and stable stream server and client framework based on C++11.
Group: development
License: MIT
URL: https://github.com/xia-chu/ZLMediaKit
Source0: %{name}-%{version}.tar.xz
%if %{with openssl}
%if 0%{?rhel} <= 7 && %{with webrtc}
BuildRequires: openssl11-devel
%else
BuildRequires: openssl-devel
%endif
%endif
%if %{with mysql}
BuildRequires: mysql-devel
%endif
%if %{with faac}
BuildRequires: faac-devel
%endif
%if %{with x264}
BuildRequires: x264-devel
%endif
%if %{with webrtc}
BuildRequires: libsrtp-devel >= 2.0
%endif
%if 0%{?use_devtoolset}
BuildRequires: devtoolset-8-gcc-c++
%endif
%description
A lightweight RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181 server and client framework based on C++11.
%package media-server
Requires: %{name} = %{version}
Summary: A lightweight, high performance and stable stream server
%description media-server
A lightweight RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181 server.
%if %{with api}
%package c-libs
Requires: %{name} = %{version}
Summary: The %{name} C libraries.
%description c-libs
The %{name} C libraries.
%package c-devel
Requires: %{name}-c-libs = %{version}
Summary: The %{name} C API headers.
%description c-devel
The %{name} C API headers.
%endif
%if %{with cxx_api}
%package cxx-devel
Requires: %{name} = %{version}
Summary: The %{name} C++ API headers and development libraries.
%description cxx-devel
The %{name} C++ API headers and development libraries.
%endif
%prep
%setup -q
%build
mkdir -p %{_target_platform}
pushd %{_target_platform}
%if 0%{?use_devtoolset}
. /opt/rh/devtoolset-8/enable
%endif
%cmake3 \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DENABLE_HLS:BOOL=ON \
-DENABLE_OPENSSL:BOOL=%{with openssl} \
-DENABLE_MYSQL:BOOL=%{with mysql} \
-DENABLE_FAAC:BOOL=%{with faac} \
-DENABLE_X264:BOOL=%{with x264} \
-DENABLE_WEBRTC:BOOL=%{with webrtc} \
%if %{with webrtc} && 0%{?rhel} <= 7
-DOPENSSL_ROOT_DIR:STRING="/usr/lib64/openssl11;/usr/include/openssl11" \
%endif
-DENABLE_MP4:BOOL=ON \
-DENABLE_RTPPROXY:BOOL=ON \
-DENABLE_API:BOOL=%{with api} \
-DENABLE_CXX_API:BOOL=%{with cxx_api} \
-DENABLE_TESTS:BOOL=OFF \
-DENABLE_SERVERL:BOOL=ON \
..
make %{?_smp_mflags}
popd
%install
rm -rf $RPM_BUILD_ROOT
pushd %{_target_platform}
%make_install
popd
install -m 0755 -d %{buildroot}%{_docdir}/%{name}
install -m 0644 LICENSE %{buildroot}%{_docdir}/%{name}
install -m 0644 README.md %{buildroot}%{_docdir}/%{name}
install -m 0644 README_en.md %{buildroot}%{_docdir}/%{name}
# TODO: service files
%clean
rm -rf $RPM_BUILD_ROOT
%files
%doc %{_docdir}/*
%files media-server
%{_bindir}/*
%if %{with api}
%files c-libs
%{_libdir}/libmk_api.so
%files c-devel
%{_includedir}/mk_*
%endif
%if %{with cxx_api}
%files cxx-devel
%{_includedir}/ZLMediaKit/*
%{_includedir}/ZLToolKit/*
%{_libdir}/libzlmediakit.a
%{_libdir}/libzltoolkit.a
%{_libdir}/libmpeg.a
%{_libdir}/libmov.a
%{_libdir}/libflv.a
%endif
%changelog