mirror of
https://github.com/Telecominfraproject/openafc_final.git
synced 2026-01-27 02:22:02 +00:00
209 lines
5.2 KiB
RPMSpec
209 lines
5.2 KiB
RPMSpec
# Package spec formatted according to best practices documented at
|
|
# http://fedoraproject.org/wiki/How_to_create_an_RPM_package
|
|
# http://fedoraproject.org/wiki/Packaging:Guidelines
|
|
# https://fedoraproject.org/wiki/PackagingDrafts/ScriptletSnippets
|
|
|
|
%bcond_without afcengine
|
|
|
|
Name: @RPM_PKG_NAME@
|
|
Version: @RPM_VERSION@
|
|
Release: @RPM_RELEASE@%{?dist}
|
|
License: Commercial
|
|
Url: http://rkf-eng.com/facebook_rat
|
|
Source0: %{name}-%{version}.tar.bz2
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
|
|
|
|
|
BuildRequires: cmake3 >= 3.1
|
|
BuildRequires: ninja-build
|
|
BuildRequires: make
|
|
BuildRequires: devtoolset-11-gcc-c++ >= 11.2
|
|
# Need rpm macros in python-devel
|
|
BuildRequires: python-devel
|
|
%if 0%{?fedora}
|
|
BuildRequires: boost-devel >= 1.54
|
|
%endif
|
|
%if 0%{?rhel}
|
|
BuildRequires: boost169-devel >= 1.54
|
|
%endif
|
|
BuildRequires: armadillo-devel >= 4.300
|
|
BuildRequires: gdal-devel < 2.0
|
|
BuildRequires: qt5-qtbase-devel >= 5.6
|
|
BuildRequires: gtest-devel >= 1.6
|
|
BuildRequires: systemd
|
|
BuildRequires: selinux-policy-devel
|
|
BuildRequires: selinux-policy-targeted, checkpolicy
|
|
|
|
# Runtime requirements
|
|
Requires: httpd
|
|
Requires: mod_wsgi
|
|
Requires: python-flask
|
|
Requires: python-flask-script
|
|
Requires: python-flask_jsonrpc
|
|
Requires: python2-flask-sqlalchemy
|
|
Requires: python2-flask-migrate
|
|
Requires: python2-flask-user
|
|
Requires: python-pyxdg
|
|
Requires: python-cryptography
|
|
Requires: python2-bcrypt
|
|
Requires: python-blinker
|
|
Requires: python-wsgidav
|
|
Requires: python2-numpy
|
|
Requires: python-sqlalchemy
|
|
Requires: python-jwt
|
|
Requires: python-prettytable
|
|
Requires(post): policycoreutils, initscripts
|
|
Requires(preun): policycoreutils, initscripts
|
|
Requires(postun): policycoreutils
|
|
Summary: Facebook RAT
|
|
%description
|
|
All non-data runtime files for the Facebook RLAN AFC Tool.
|
|
|
|
%package devel
|
|
Requires: %{name} = %{version}-%{release}
|
|
%if 0%{?fedora}
|
|
Requires: boost-devel >= 1.54
|
|
%endif
|
|
%if 0%{?rhel}
|
|
Requires: boost169-devel >= 1.54
|
|
%endif
|
|
Requires: armadillo-devel >= 4.300
|
|
Requires: gdal-devel < 2.0
|
|
Requires: qt5-qtbase-devel >= 5.6
|
|
Requires: gtest-devel >= 1.6
|
|
Summary: Development files for the Facebook RAT
|
|
%description devel
|
|
Headers and development libraries for the Facebook RLAN AFC Tool.
|
|
|
|
|
|
# Ninja macros not in CentOS
|
|
%define __ninja %{_bindir}/ninja-build
|
|
%define __ninja_common_opts -v %{?_smp_mflags}
|
|
%define ninja_build \
|
|
%{__ninja} %{__ninja_common_opts}
|
|
%define ninja_install \
|
|
DESTDIR=%{buildroot} %{__ninja} install %{__ninja_common_opts}
|
|
# Install helpers
|
|
%define mkdir %{_bindir}/mkdir -p
|
|
%define install_bin %{_bindir}/install -D -m 755
|
|
%define install_data %{_bindir}/install -D -m 644
|
|
%define cmake_pkgdir %{_libdir}/cmake
|
|
%define sysconfigdir %{_sysconfdir}/sysconfig
|
|
%define xdg_confdir %{_sysconfdir}/xdg
|
|
%define xdg_appdir %{_datadir}/applications
|
|
|
|
###
|
|
# Install config
|
|
%define fbrat_groupname fbrat
|
|
%define fbrat_username fbrat
|
|
#: selinux modules
|
|
%define selpackagedir %{_datadir}/selinux/packages
|
|
%define selincludedir %{_datadir}/selinux/devel/include
|
|
|
|
|
|
%prep
|
|
%setup -q
|
|
%mkdir build
|
|
|
|
|
|
%build
|
|
pushd build
|
|
|
|
CMAKEARGS="\
|
|
-DSVN_LAST_REVISION=%{getenv:BUILDREV}
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
-DBUILD_AFCENGINE=%{?with_afcengine:ON}%{!?with_afcengine:OFF} \
|
|
-G Ninja"
|
|
if [[ -d "/usr/include/boost169" ]]; then
|
|
CMAKEARGS="${CMAKEARGS} -DBOOST_INCLUDEDIR=/usr/include/boost169 -DBOOST_LIBRARYDIR=/usr/lib64/boost169"
|
|
fi
|
|
%cmake3 ${CMAKEARGS} ..
|
|
|
|
%ninja_build
|
|
|
|
popd
|
|
|
|
# build selinux modules
|
|
make -C selinux -f /usr/share/selinux/devel/Makefile
|
|
|
|
|
|
%install
|
|
pushd build
|
|
|
|
%ninja_install
|
|
|
|
popd
|
|
|
|
# SELinux module
|
|
%install_data selinux/fbrat.pp %{buildroot}%{selpackagedir}/fbrat/fbrat.pp
|
|
%install_data selinux/fbrat.if %{buildroot}%{selincludedir}/services/fbrat.if
|
|
# System configuration
|
|
%mkdir %{buildroot}%{xdg_confdir}/fbrat
|
|
cat <<EOF >%{buildroot}%{xdg_confdir}/fbrat/ratapi.conf
|
|
EOF
|
|
# Home for the local account
|
|
%mkdir %{buildroot}%{_sharedstatedir}/fbrat
|
|
# Data containers
|
|
%mkdir %{buildroot}%{_datadr}/fbrat/afc-engine
|
|
|
|
:
|
|
|
|
|
|
%check
|
|
pushd build
|
|
:
|
|
|
|
|
|
%clean
|
|
rm -rf %{buildroot}
|
|
|
|
|
|
%files
|
|
%defattr(-, root, root)
|
|
%doc LICENSE.txt
|
|
%{_bindir}/*
|
|
%{_libdir}/lib*.so.*
|
|
%{python2_sitelib}/ratapi*
|
|
%{_datadir}/fbrat
|
|
%{selpackagedir}/fbrat
|
|
%dir %{xdg_confdir}/fbrat
|
|
%config(noreplace) %{xdg_confdir}/fbrat/ratapi.conf
|
|
%dir %attr(-, %{fbrat_username}, %{fbrat_groupname}) %{_sharedstatedir}/fbrat
|
|
|
|
%post
|
|
/sbin/ldconfig
|
|
getent group %{fbrat_groupname} >/dev/null || groupadd -r %{fbrat_groupname}
|
|
getent passwd %{fbrat_username} >/dev/null || useradd -r -g %{fbrat_groupname} -d %{_sharedstatedir}/fbrat -s /sbin/nologin -c "User for FBRAT WSGI" %{fbrat_username}
|
|
if [ "$1" -le "1" ] ; then # First install
|
|
semodule -i %{selpackagedir}/fbrat/fbrat.pp 2>/dev/null || :
|
|
fixfiles -R fbrat restore
|
|
fi
|
|
|
|
%preun
|
|
if [ "$1" -lt "1" ] ; then # Final removal
|
|
semodule -r fbrat 2>/dev/null || :
|
|
fixfiles -R fbrat restore
|
|
fi
|
|
|
|
%postun
|
|
/sbin/ldconfig
|
|
if [ "$1" -ge "1" ] ; then # Upgrade
|
|
semodule -i %{selpackagedir}/fbrat/fbrat.pp 2>/dev/null || :
|
|
fixfiles -R fbrat restore
|
|
fi
|
|
|
|
|
|
%files devel
|
|
%defattr(-, root, root)
|
|
%doc LICENSE.txt
|
|
%{_includedir}/fbrat
|
|
%{_libdir}/*.so
|
|
%{cmake_pkgdir}/fbrat
|
|
%{selincludedir}/services/*.if
|
|
|
|
|
|
%changelog
|
|
|
|
* @RPM_CHANGELOG_DATE@ RKF Support <support@rkf-eng.com> - @RPM_VERSION@-@RPM_RELEASE@
|
|
- See corresponding Version Description Document for details.
|