Update tizen 3.0 directory structure
[platform/core/security/cert-svc.git] / packaging / cert-svc.spec
1 %define certsvc_test_build 0
2
3 Name:    cert-svc
4 Summary: Certification service
5 Version: 2.0.4
6 Release: 0
7 Group:   Security/Libraries
8 License: Apache-2.0
9 Source0: %{name}-%{version}.tar.gz
10 BuildRequires: cmake
11 BuildRequires: findutils
12 BuildRequires: openssl
13 BuildRequires: pkgconfig(dlog)
14 BuildRequires: pkgconfig(openssl)
15 BuildRequires: pkgconfig(libpcrecpp)
16 BuildRequires: pkgconfig(xmlsec1)
17 BuildRequires: pkgconfig(libxml-2.0)
18 BuildRequires: pkgconfig(libxslt)
19 BuildRequires: pkgconfig(db-util)
20 BuildRequires: pkgconfig(libsystemd-daemon)
21 BuildRequires: pkgconfig(key-manager)
22 BuildRequires: pkgconfig(libtzplatform-config)
23 BuildRequires: pkgconfig(libsystemd-journal)
24 BuildRequires: pkgconfig(sqlite3)
25 BuildRequires: ca-certificates
26 BuildRequires: ca-certificates-devel
27 Requires: ca-certificates
28 Requires: ca-certificates-tizen
29
30 %global TZ_SYS_BIN      %{?TZ_SYS_BIN:%TZ_SYS_BIN}%{!?TZ_SYS_BIN:%_bindir}
31 %global TZ_SYS_SHARE    %{?TZ_SYS_SHARE:%TZ_SYS_SHARE}%{!?TZ_SYS_SHARE:/opt/share}
32 %global TZ_SYS_RO_SHARE %{?TZ_SYS_RO_SHARE:%TZ_SYS_RO_SHARE}%{!?TZ_SYS_RO_SHARE:%_datadir}
33 %global TZ_SYS_RO_APP   %{?TZ_SYS_RO_APP:%TZ_SYS_RO_APP}%!?TZ_SYS_RO_APP:/usr/apps}
34 %global TZ_SYS_CA_CERTS %{?TZ_SYS_CA_CERTS:%TZ_SYS_CA_CERTS}%{!?TZ_SYS_CA_CERTS:/etc/ssl/certs}
35 %global TZ_SYS_CA_CERTS_ORIG %{?TZ_SYS_CA_CERTS_ORIG:%TZ_SYS_CA_CERTS_ORIG}%{!?TZ_SYS_CA_CERTS_ORGIN:%TZ_SYS_RO_SHARE/ca-certificates/certs}
36 %global TZ_SYS_CA_BUNDLE_RW  %{?TZ_SYS_CA_BUNDLE_RW:%TZ_SYS_CA_BUNDLE_RW}%{!?TZ_SYS_CA_BUNDLE_RW:/var/lib/ca-certificates/ca-bundle.pem}
37
38 %description
39 Certification service
40
41 %package devel
42 Summary:    Certification service (development files)
43 Group:      Development/Libraries
44 Requires:   %{name} = %{version}-%{release}
45
46 %description devel
47 Certification service (development files)
48
49 %if 0%{?certsvc_test_build}
50 %package test
51 Summary:  Certification service (tests)
52 Group:    Security/Testing
53 Requires: ca-certificates-tizen
54 Requires: %{name} = %{version}-%{release}
55
56 %description test
57 Certification service (tests)
58 %endif
59
60 %prep
61 %setup -q
62
63 %build
64 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
65 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
66 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
67
68 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
69 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
70 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
71
72 %ifarch %{ix86}
73 export CFLAGS="$CFLAGS -DTIZEN_EMULATOR_MODE"
74 export CXXFLAGS="$CXXFLAGS -DTIZEN_EMULATOR_MODE"
75 export FFLAGS="$FFLAGS -DTIZEN_EMULATOR_MODE"
76 %endif
77
78 %{!?build_type:%define build_type "Release"}
79 %cmake . -DVERSION=%version \
80         -DINCLUDEDIR=%_includedir \
81         -DTZ_SYS_SHARE=%TZ_SYS_SHARE \
82         -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE \
83         -DTZ_SYS_BIN=%TZ_SYS_BIN \
84         -DTZ_SYS_CA_CERTS=%TZ_SYS_CA_CERTS \
85         -DTZ_SYS_CA_CERTS_ORIG=%TZ_SYS_CA_CERTS_ORIG \
86         -DTZ_SYS_CA_BUNDLE_RW=%TZ_SYS_CA_BUNDLE_RW \
87 %if 0%{?certsvc_test_build}
88         -DCERTSVC_TEST_BUILD=1 \
89         -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
90 %endif
91         -DCMAKE_BUILD_TYPE=%build_type \
92         -DSYSTEMD_UNIT_DIR=%_unitdir
93
94 make %{?_smp_mflags}
95
96 %install
97 %make_install
98 %install_service multi-user.target.wants cert-server.service
99 %install_service sockets.target.wants cert-server.socket
100
101 mkdir -p %buildroot%TZ_SYS_RO_SHARE/cert-svc/pkcs12
102 mkdir -p %buildroot%TZ_SYS_SHARE/cert-svc/dbspace
103 ln -s %TZ_SYS_CA_BUNDLE_RW %buildroot%TZ_SYS_RO_SHARE/cert-svc/ca-certificate.crt
104
105 %preun
106 # erase
107 if [ $1 = 0 ]; then
108     systemctl stop cert-server.service
109 fi
110
111 %post
112 /sbin/ldconfig
113 systemctl daemon-reload
114 # install
115 if [ $1 = 1 ]; then
116     systemctl start cert-server.service
117 fi
118 # upgrade / reinstall
119 if [ $1 = 2 ]; then
120     systemctl restart cert-server.service
121 fi
122
123 %postun -p /sbin/ldconfig
124
125 %files
126 %manifest %name.manifest
127 %license LICENSE
128 %_unitdir/cert-server.service
129 %_unitdir/cert-server.socket
130 %_unitdir/multi-user.target.wants/cert-server.service
131 %_unitdir/sockets.target.wants/cert-server.socket
132 %_libdir/libcert-svc-vcore.so.*
133 %TZ_SYS_BIN/cert-server
134 %attr(-, system, system) %TZ_SYS_RO_SHARE/cert-svc
135
136 %files devel
137 %_includedir/*
138 %_libdir/pkgconfig/*
139 %_libdir/libcert-svc-vcore.so
140
141 %if 0%{?certsvc_test_build}
142 %files test
143 %TZ_SYS_BIN/cert-svc-test*
144 %TZ_SYS_RO_APP/cert-svc-tests
145 %_libdir/libcert-svc-validator-plugin.so
146 %endif