Implementation of fork-exec
[sdk/target/sdbd.git] / packaging / sdbd.spec
1 %bcond_with emulator
2
3 Name:       sdbd
4 Summary:    SDB daemon
5 Version:    3.0.48
6 Release:    0
7 License:    Apache-2.0
8 Summary:    SDB daemon
9 Group:      System/Utilities
10 Source0:    %{name}-%{version}.tar.gz
11 Source10:   %{name}.manifest
12 Source1000:    sdbd.service
13 Source1004:    sdbd_tcp.socket
14 Source1007:    sdbd.socket
15 Source1010:    reset-privs.conf
16 Source1011:    oom-adj-1000.conf
17 Source1012:    emulator.conf
18 Source1013:    restart-on-fail.conf
19 Source1020:    sdbd-env-generator
20
21 BuildRequires: capi-system-info-devel >= 0.2.0
22 BuildRequires: cmake >= 2.8.3
23 BuildRequires: pkgconfig
24 BuildRequires: pkgconfig(libsystemd)
25 BuildRequires:  pkgconfig(libtzplatform-config)
26 #BuildRequires: sec-product-features
27 BuildRequires: pkgconfig(libsmack)
28 BuildRequires: pkgconfig(capi-system-info)
29 BuildRequires: pkgconfig(vconf)
30 BuildRequires: pkgconfig(glib-2.0)
31 BuildRequires: pkgconfig(gio-2.0)
32 BuildRequires: pkgconfig(dlog)
33 BuildRequires: pkgconfig(libsystemd)
34 Requires: dbus
35 Provides:      %{name}-profile_common = %{version}-%{release}
36 Provides:      %{name}-profile_mobile = %{version}-%{release}
37 Provides:      %{name}-profile_ivi = %{version}-%{release}
38 Provides:      %{name}-profile_wearable = %{version}-%{release}
39
40 %description
41 Description: SDB daemon.
42
43 %package profile_tv
44 Summary:   SDB daemon extension for TV
45 Requires:  %{name} = %{version}-%{release}
46 %description profile_tv
47 SDB daemon extension for TV.
48 This changes the service unit files of the default SDB daemon service files.
49
50 %ifarch %{ix86} x86_64
51 %package extension-emulator
52 Summary:    SDB daemon for emulator
53 Requires:   %{name} = %{version}-%{release}
54 %description extension-emulator
55 SDB daemon for emulator
56
57 %package extension-tv-emulator
58 Summary:    SDB daemon for tv emulator
59 Requires:   %{name}-profile_tv = %{version}-%{release}
60 Requires:   %{name}-extension-emulator = %{version}-%{release}
61 %description extension-tv-emulator
62 SDB daemon for tv emulator
63 %endif // ifarch %{ix86} x86_64
64
65 %package -n sdbd-devel
66 Summary:        SDBD plugin API
67 Group:          Development/Libraries
68
69 %description -n sdbd-devel
70 SDBD plugin API library
71
72 %prep
73 %setup -q
74 cp %{SOURCE10} .
75
76 %build
77 cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} %{?asan:-DCMAKE_EXE_LINKER_FLAGS="-pthread"}
78
79 make %{?jobs:-j%jobs}
80
81 %install
82 mkdir -p %{buildroot}%{_unitdir}/sdbd.service.d/
83
84 # extension-*-emulator
85 %ifarch %{ix86} x86_64
86 install -m 0644 %SOURCE1010 %{buildroot}%{_unitdir}/sdbd.service.d/
87 install -m 0644 %SOURCE1011 %{buildroot}%{_unitdir}/sdbd.service.d/
88 install -m 0644 %SOURCE1012 %{buildroot}%{_unitdir}/sdbd.service.d/
89 mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-generators/
90 install -m 0755 %SOURCE1020 %{buildroot}%{_prefix}/lib/systemd/system-generators/
91 mkdir -p %{buildroot}/%{_unitdir}/emulator_preinit.target.wants
92 ln -s %{_unitdir}/sdbd.service %{buildroot}/%{_unitdir}/emulator_preinit.target.wants/
93 %endif // ifarch %{ix86} x86_64
94
95 %make_install
96
97 install -m 0644 %SOURCE1000 %{buildroot}%{_unitdir}/sdbd.service
98 install -m 0644 %SOURCE1004 %{buildroot}%{_unitdir}/sdbd_tcp.socket
99 install -m 0644 %SOURCE1013 %{buildroot}%{_unitdir}/sdbd.service.d/restart-on-fail.conf
100 install -m 0755 -d %{buildroot}%{_unitdir}/sockets.target.wants/
101 ln -s ../sdbd_tcp.socket %{buildroot}%{_unitdir}/sockets.target.wants/
102
103 mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d/
104 install -m 644 rules/99-sdbd.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
105 install -m 0644 %SOURCE1007 %{buildroot}%{_unitdir}/sdbd.socket
106
107 mkdir -p %{buildroot}%{_prefix}/sbin
108 install -m 755 script/sdk_launch %{buildroot}%{_prefix}/sbin/
109
110 mkdir -p %{buildroot}%{TZ_SYS_BIN}
111 install -m 755 script/profile_command %{buildroot}%{TZ_SYS_BIN}/
112
113 mkdir -p %{buildroot}%{_includedir}/sdb/
114 install -m 0644 src/sdbd_plugin.h %{buildroot}%{_includedir}/sdb/
115
116 mkdir -p %{buildroot}%{_libdir}/pkgconfig/
117 install -m 0644 packaging/sdbd.pc %{buildroot}%{_libdir}/pkgconfig/
118
119 %post
120 . %{_sysconfdir}/tizen-platform.conf
121 if ! getent passwd "${TZ_SDK_USER_NAME}" > /dev/null; then
122   rm -rf "${TZ_SDK_HOME}"
123   useradd -u 5100 -s /bin/false -m -d "${TZ_SDK_HOME}" "${TZ_SDK_USER_NAME}"
124   getent group developer > /dev/null || groupadd -g 5100 developer
125   for x in app_logging crash developer; do
126     usermod -A app_logging "${TZ_SDK_USER_NAME}"
127   done
128 fi
129
130 chsmack -a "System" /sbin/sdbd-user
131 chsmack -e "User::Shell" /sbin/sdbd-user
132
133 %files
134 %manifest sdbd.manifest
135 %license LICENSE
136 %defattr(-,root,root,-)
137 %{_prefix}/sbin/sdbd
138 %{_prefix}/sbin/sdbd-user
139 %{_prefix}/sbin/sdbd-service
140 %{_prefix}/sbin/sdk_launch
141 %attr(0755, root, root) %{_sysconfdir}/init.d/sdbd
142 %{_unitdir}/sdbd.service
143 %{_unitdir}/sdbd.socket
144 %{_unitdir}/sdbd_tcp.socket
145 %{_unitdir}/sockets.target.wants/sdbd_tcp.socket
146 %{_prefix}/lib/udev/rules.d/99-sdbd.rules
147 %{TZ_SYS_BIN}/profile_command
148 %{_sysconfdir}/sdbd/descs
149 %{_sysconfdir}/sdbd/strs
150
151 %ifarch %{ix86} x86_64
152 %files extension-emulator
153 %manifest sdbd.manifest
154 %{_unitdir}/sdbd.service.d/emulator.conf
155 %{_unitdir}/emulator_preinit.target.wants/sdbd.service
156 %{_prefix}/lib/systemd/system-generators/sdbd-env-generator
157
158 %files extension-tv-emulator
159 %manifest sdbd.manifest
160 %{_unitdir}/sdbd.service.d/reset-privs.conf
161 %{_unitdir}/sdbd.service.d/oom-adj-1000.conf
162 %endif // ifarch %{ix86} x86_64
163
164 %files profile_tv
165 %{_unitdir}/sdbd.service.d/restart-on-fail.conf
166
167 %files -n sdbd-devel
168 %{_includedir}/sdb/sdbd_plugin.h
169 %{_libdir}/pkgconfig/sdbd.pc
170
171 %changelog