security_device_security_level/security_device_security_level.spec
2023-12-04 18:55:36 +08:00

108 lines
4.3 KiB
RPMSpec

%define debug_package %{nil}
%global build_opt /opt/distributed-middleware-build
%global oh_version OpenHarmony-v3.2-Release
%global security_path %{_builddir}/base/security
%global third_party_path %{_builddir}/third_party
Name: security_device_security_level
Version: 1.0.0
Release: 1%{?dist}
Summary: Device Safety Level Management Service
License: Apache-2.0
URL: https://gitee.com/openharmony/security_device_security_level
Source1: security_device_security_level.tar.gz
Source2: dslm_sdk.bundle.json
Source3: dslm_sdk.BUILD.gn
BuildRequires: gcc, make, hilog, kernel-devel, uname-build-checks
BuildRequires: distributed-build, distributed-beget
BuildRequires: commonlibrary_c_utils
BuildRequires: distributedhardware_device_manager
BuildRequires: notification_eventhandler
BuildRequires: communication_ipc
BuildRequires: security_device_auth, security_huks
BuildRequires: systemabilitymgr_safwk, systemabilitymgr_samgr
BuildRequires: cjson-devel, openssl-devel
Requires: hilog
Requires: distributed-beget
Requires: commonlibrary_c_utils
Requires: distributedhardware_device_manager
Requires: notification_eventhandler
Requires: communication_ipc
Requires: security_device_auth, security_huks
Requires: systemabilitymgr_safwk, systemabilitymgr_samgr
Requires: cjson-devel, openssl-devel
%description
The OpenHarmony distributed technology can converge resources from different devices to form a Super Device. Poor security capabilities of any device may threaten the security of the Super Device. The Device Security Level Management (DSLM) module is introduced to manage the security levels of OpenHarmony devices.
# Decompress source code package, make patches to the source code.
%prep
rm -rf %{_builddir}/*
cp -rf %{build_opt} %{_builddir}/build
[ ! -L "%{_builddir}/build.sh" ] && ln -s %{_builddir}/build/build_scripts/build.sh %{_builddir}/build.sh
[ ! -L "%{_builddir}/.gn" ] && ln -s %{_builddir}/build/core/gn/dotfile.gn %{_builddir}/.gn
[ ! -L "%{_builddir}/build.py" ] && ln -s %{_builddir}/build/lite/build.py %{_builddir}/build.py
cp -rf %{_builddir}/build/openeuler/vendor %{_builddir}/
cp -rf %{_builddir}/build/openeuler/compiler_gn/* %{_builddir}
%setup -q -D -T -a 1 -c -n %{security_path}
# make.
%build
%ifarch x86_64
%{_builddir}/build.sh --product-name openeuler --target-cpu x86_64
%endif
%ifarch aarch64
%{_builddir}/build.sh --product-name openeuler --target-cpu arm64
%endif
%install
install -d -m 0755 %{buildroot}/%{_includedir}/device_security_level
install -d -m 0755 %{buildroot}/%{_libdir}
install -d -m 0755 %{buildroot}/system/lib64
install -d -m 0755 %{buildroot}%{build_opt}/openeuler/compiler_gn/base/security/device_security_level/interfaces/inner_api
install -d -m 0755 %{buildroot}%{build_opt}/openeuler/compiler_gn/base/security/device_security_level/oem_property/ohos/
%ifarch aarch64
%define header_out_path out/openeuler/innerkits/linux-arm64/device_security_level
%define module_out_path out/openeuler/linux_clang_arm64/security/device_security_level
%endif
%ifarch x86_64
%define header_out_path out/openeuler/innerkits/linux-x86_64/device_security_level
%define module_out_path out/openeuler/linux_clang_x86_64/security/device_security_level
%endif
#cp .h file to /usr/include
find %{_builddir}/%{header_out_path} -name *.h -print0 | xargs -0 -i cp -rf {} %{buildroot}%{_includedir}/device_security_level/
#cp .so file to /system/lib and /user/lib
install -m 0755 %{_builddir}/%{module_out_path}/*.so %{buildroot}%{_libdir}
install -m 0755 %{_builddir}/%{module_out_path}/*.so %{buildroot}/system/lib64
#cp bundle.json
install -m 0755 %{SOURCE2} %{buildroot}%{build_opt}/openeuler/compiler_gn/base/security/device_security_level/bundle.json
#cp BUILD.gn
install -m 0755 %{SOURCE3} %{buildroot}%{build_opt}/openeuler/compiler_gn/base/security/device_security_level/interfaces/inner_api/BUILD.gn
#cp yaml
install -m 0755 %{security_path}/device_security_level/hisysevent.yaml %{buildroot}%{build_opt}/openeuler/compiler_gn/base/security/device_security_level/
# copy ko file to the certain path on deployment environment.
%files
%{_libdir}/*.so
/system/*
%{_includedir}/device_security_level/*
%{build_opt}/*
%changelog
* Mon Nov 6 2023 Jiaqi Zhao <zhaojiaqi18@huawei.com> - 1.0.0-1
- Separating the device_security_level component from the master package