Merge "Remove dead code related to downloadable TA" into tizen
[platform/core/security/tef-simulator.git] / packaging / tef-simulator.spec
1 Name:       tef-simulator
2 Summary:    TEF TrustZone simulator and it's utilities
3 Version:    0.0.1
4 Release:    1
5 Group:      Security
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1:    %{name}.manifest
9 ExcludeArch: armv6l armv7hl armv7l aarch64
10 BuildRequires: cmake
11 BuildRequires: boost-devel
12 BuildRequires: pkgconfig(dlog)
13 BuildRequires: pkgconfig(openssl)
14 BuildRequires: pkgconfig(cynara-client)
15 BuildRequires: pkgconfig(cynara-session)
16 BuildRequires: pkgconfig(cynara-creds-socket)
17 BuildRequires: pkgconfig(security-manager)
18 BuildRequires: pkgconfig(libsystemd-daemon)
19 BuildRequires: pkgconfig(tef-libteec)
20 PreReq: tef-libteec
21
22 %{?systemd_requires}
23
24 %define bin_dir %{?TZ_SYS_BIN:%TZ_SYS_BIN}%{!?TZ_SYS_BIN:%_bindir}
25 %define lib_dir %{?TZ_SYS_LIB:%TZ_SYS_LIB}%{!?TZ_SYS_LIB:%_libdir}
26 %define data_dir %{?TZ_SYS_RO_SHARE:%TZ_SYS_RO_SHARE}%{!?TZ_SYS_RO_SHARE:%_datadir}
27 %define include_dir %{?TZ_SYS_INCLUDE:%TZ_SYS_INCLUDE}%{!?TZ_SYS_INCLUDE:%_includedir}
28 %define tastore_dir /opt/tastore
29 %define link_tastore_dir %{lib_dir}/tastore
30
31 %define build_bin_dir %{buildroot}%{bin_dir}
32 %define build_lib_dir %{buildroot}%{lib_dir}
33 %define build_data_dir %{buildroot}%{data_dir}
34 %define build_include_dir %{buildroot}%{include_dir}
35 %define build_tastore_dir %{buildroot}%{tastore_dir}
36 %define build_unit_dir %{buildroot}%{_unitdir}
37
38 %define smack_domain_name System
39
40 %description
41 TEF Simulator provides a TrustZone simulated environment
42 which can be used on platforms not supporting ARM TrustZone
43 environment natively (ex. on an emulator).
44
45
46 %package -n %{name}-client
47 Summary:   TEF TrustZone simulator client for CA compilation
48 Group:     Security/Libraries
49 License:   Apache-2.0 and BSD-3-Clause
50 Requires: tef-simulator
51
52 %description -n %{name}-client
53 TEF Simulator Client contains a libteec library compatible
54 with TEF Simulator, required to build Client Applications.
55
56
57 %package -n %{name}-devkit
58 Summary:   TEF TrustZone simulator devkit for TA compilation
59 Group:     Security/Libraries
60 License:   Apache-2.0 and BSD-3-Clause
61
62 Requires: tef-simulator
63
64 %description -n %{name}-devkit
65 TEF Simulator Devkit provides a static library required to
66 build Trusted Applications, which are meant to work together
67 with TEF Simulator.
68
69 %prep
70 %setup -q
71 cp %{SOURCE1} .
72
73 %build
74 # cannot call cmake rpmbuild macro because of scripts removing libTEEStub.a, which is a part of devkit
75 cmake . \
76         -DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \
77         -DBIN_DIR=%{build_bin_dir} \
78         -DLIB_DIR=%{build_lib_dir} \
79         -DDATA_DIR=%{build_data_dir} \
80         -DINCLUDE_DIR=%{build_include_dir} \
81         -DTASTORE_DIR=%{build_tastore_dir} \
82         -DSYSTEMD_UNIT_DIR=%{build_unit_dir} \
83         -DSYSTEMD_CFG_BIN_DIR=%{bin_dir} \
84         -DPKGCFG_LIB_DIR=%{lib_dir} \
85         -DPKGCFG_PREFIX=/usr \
86         -DPKGCFG_VERSION=%{version} \
87         -DSMACK_DOMAIN_NAME=%{smack_domain_name} \
88         -DARCH=%{__isa_bits} \
89         -DTIZEN=1
90 make %{?jobs:-j%jobs}
91
92 %install
93 make install
94
95 %pre
96
97 %post
98 ln -sf %{tastore_dir} %{link_tastore_dir}
99 tef-update.sh simulator
100 systemctl enable tef-simulator
101
102 %preun
103
104 %postun
105 if [ $1 = 0 ] ; then
106     tef-update.sh
107 fi
108
109 %files -n %{name}
110 %manifest tef-simulator.manifest
111 %attr(111,security_fw,security_fw) %{bin_dir}/tef-simulator-daemon
112 %{lib_dir}/libtef-simulator-ssflib.so
113 %attr(770,root,security_fw) %{tastore_dir}
114 %attr(444,security_fw,security_fw) %{_unitdir}/tef-simulator.service
115 %attr(444,security_fw,security_fw) %{_unitdir}/tef-simulator.socket
116 %attr(755,security_fw,security_fw) %{lib_dir}/tef/simulator/libteec.so
117
118 %files -n %{name}-devkit
119 %{bin_dir}/TA_PackageBuilder.sh
120 %{bin_dir}/TAPackageMaker
121 %{lib_dir}/libTEEStub.a
122 %{lib_dir}/libtef-simulator-log.a
123 %{lib_dir}/libtef-simulator-osal.a
124 %{include_dir}/tee_internal_api.h
125 %{lib_dir}/pkgconfig/tef-simulator-devkit.pc
126 %{data_dir}/cmake/Modules/TEFSimulatorDevkit.cmake