Remove dependency to deviced-plugin-profile-iot
[platform/adaptation/system-plugin.git] / packaging / system-plugin.spec
1 Name:      system-plugin
2 Summary:   Target specific system configuration files
3 Version:   0.1
4 Release:   1
5 Group:     Base/Startup
6 License:   Apache-2.0
7 Source0:   %{name}-%{version}.tar.bz2
8 Source1:   %{name}.manifest
9
10 Requires(post): /usr/bin/systemctl
11 Requires(post): /usr/bin/udevadm
12 BuildRequires: cmake
13 BuildRequires: pkgconfig(libsystemd)
14 BuildRequires: pkgconfig(libtzplatform-config)
15
16 %description
17 This package provides target specific system configuration files.
18
19 %package device-spreadtrum
20 Summary:  Spreadtrum specific system configuration files
21 Requires: %{name} = %{version}-%{release}
22 BuildArch: noarch
23
24 %description device-spreadtrum
25 This package provides Spreadtrum specific system configuration files.
26
27 %package device-n4
28 Summary:  Note4 specific system configuration files
29 Requires: %{name} = %{version}-%{release}
30 BuildArch: noarch
31
32 %description device-n4
33 This package provides Note4 specific system configuration files.
34
35 %package device-circle
36 Summary:  Circle specific system configuration files
37 Requires: %{name} = %{version}-%{release}
38 BuildArch: noarch
39
40 %description device-circle
41 This package provides Circle specific system configuration files.
42
43 %package device-u3
44 Summary:  U3/XU3 specific system configuration files
45 Requires: %{name} = %{version}-%{release}
46 BuildArch: noarch
47
48 %description device-u3
49 This package provides U3/XU3 specific system configuration files.
50
51 %package device-rpi3
52 Summary: RPI3
53 Requires: %{name} = %{version}-%{release}
54 BuildArch: noarch
55
56 %description device-rpi3
57 This package provides system configuration files for the RPI3 device.
58
59 %package feature-init_wrapper
60 Summary: Support init.wrapper booting.
61 Requires: %{name} = %{version}-%{release}
62 BuildArch: noarch
63
64 %description feature-init_wrapper
65 This package provides init.wrapper and init symlink file for init wrapper booting.
66
67 %package feature-init_wrapper_overlayfs
68 Summary: Support init.wrapper and overlayfs booting.
69 Requires: %{name} = %{version}-%{release}
70 BuildArch: noarch
71
72 %description feature-init_wrapper_overlayfs
73 This package provides init.wrapper and init symlink file for init wrapper booting.
74 In addition, overlayfs is mounted upon the rootfs.
75
76 %package feature-image-reduction
77 Summary:  System configuration files for reducing image size
78 Requires: %{name} = %{version}-%{release}
79 Requires: dbus
80 Requires: e2fsprogs
81 BuildArch: noarch
82
83 %description feature-image-reduction
84 This package provides system configuration files for reducing image size.
85
86 %package feature-namespace
87 Summary:  System configuration files for namespace separation
88 Requires: %{name} = %{version}-%{release}
89 BuildArch: noarch
90
91 %description feature-namespace
92 This package provides namespace separation of user sessions.
93
94 %package feature-session-bind
95 Summary:  System utils for mounting user session contents
96 Requires: %{name} = %{version}-%{release}
97
98 %description feature-session-bind
99 This package provides a mount utils for user sessions.
100
101 %package config-env-headless
102 Summary:  System configuration files for headless images
103 Requires: %{name} = %{version}-%{release}
104 BuildArch: noarch
105
106 %description config-env-headless
107 This package provides system configuration files for headless images.
108
109 %package config-udev-sdbd
110 Summary: System configuration files to trigger sdb with udev rule
111 Requires: %{name} = %{version}-%{release}
112 BuildArch: noarch
113
114 %description config-udev-sdbd
115 This package provides configuration files to trigger sdb with udev rule.
116
117 %package config-2parts
118 Summary: System configuration files for storage partitions
119 Requires: %{name} = %{version}-%{release}
120 BuildArch: noarch
121
122 %description config-2parts
123 This package provides configuration files for storage partitions
124
125 %package config-3parts
126 Summary: System configuration files for storage partitions
127 Requires: %{name} = %{version}-%{release}
128 BuildArch: noarch
129
130 %description config-3parts
131 This package provides configuration files for storage partitions
132
133 %package config-3parts-lzuser
134 Summary: System configuration files for storage partitions
135 Requires: %{name} = %{version}-%{release}
136 BuildArch: noarch
137
138 %description config-3parts-lzuser
139 This package provides configuration files for storage partitions
140
141 %prep
142 %setup -q
143 cp %{SOURCE1} .
144
145 %build
146 %cmake .
147
148 %install
149 rm -rf %{buildroot}
150 %{make_install}
151
152 # create default directories
153 mkdir -p %{buildroot}%{_sysconfdir}
154 mkdir -p %{buildroot}%{_bindir}
155 mkdir -p %{buildroot}%{_sbindir}
156 mkdir -p %{buildroot}%{_unitdir}
157 mkdir -p %{buildroot}%{_userunitdir}
158 mkdir -p %{buildroot}/csa
159 mkdir -p %{buildroot}/initrd
160 mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d/
161 mkdir -p %{buildroot}%{_sysconfdir}/profile.d
162
163 # tizen-system-env
164 install -m 644 units/tizen-system-env.service %{buildroot}%{_unitdir}
165
166 # csa mount
167 install -m 644 units/csa.mount %{buildroot}%{_unitdir}
168 mkdir -p %{buildroot}%{_unitdir}/local-fs.target.wants
169 ln -s ../csa.mount %{buildroot}%{_unitdir}/local-fs.target.wants/csa.mount
170
171 # tizen-system-env.service
172 mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
173 ln -s ../tizen-system-env.service %{buildroot}%{_unitdir}/basic.target.wants/tizen-system-env.service
174
175 # udev rules
176 install -m 644 rules/51-system-plugin-exynos.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
177 install -m 644 rules/51-system-plugin-spreadtrum.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
178 install -m 644 rules/61-system-plugin-n4.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
179
180 mkdir -p %{buildroot}%{_prefix}/lib/udev/hwdb.d/
181 install -m 644 rules/60-evdev.hwdb %{buildroot}%{_prefix}/lib/udev/hwdb.d/
182
183 # fstrim
184 mkdir -p %{buildroot}%{_unitdir}/delayed.target.wants
185 install -m 644 units/tizen-fstrim-user.timer %{buildroot}%{_unitdir}
186 ln -s ../tizen-fstrim-user.timer %{buildroot}%{_unitdir}/delayed.target.wants/tizen-fstrim-user.timer
187 install -m 644 units/tizen-fstrim-user.service %{buildroot}%{_unitdir}
188 install -m 755 scripts/tizen-fstrim-on-charge.sh %{buildroot}%{_bindir}
189
190 # fixed-multi-user
191 install -m 775 -D scripts/fixed-multi-user.sh %{buildroot}%{_datadir}/fixed_multiuser/fixed-multi-user.sh
192
193 # init_wrapper
194 install -m 755 scripts/init.wrapper %{buildroot}%{_sbindir}
195 install -m 755 scripts/init.wrapper.overlayfs %{buildroot}%{_sbindir}
196
197 # headless
198 install -m 755 scripts/sdb-mode.sh %{buildroot}%{_bindir}
199 install -m 755 scripts/headless_env.sh %{buildroot}%{_sysconfdir}/profile.d
200
201 # config-2parts
202 install -m 755 scripts/2parts_env.sh %{buildroot}%{_sysconfdir}/profile.d
203
204 # config-udev-sdbd
205 install -m 644 rules/99-sdb-extcon.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
206
207 # /opt/usr lazy mount
208 mkdir -p %{buildroot}%{_unitdir}/local-fs.target.wants
209 mkdir -p %{buildroot}%{_unitdir}/wait-mount@opt-usr.service.d
210 mkdir -p %{buildroot}%{_userunitdir}/basic.target.wants
211 mkdir -p %{buildroot}%{_userunitdir}/wait-mount@opt-usr.service.d
212 install -m 644 units/opt-usr.mount %{buildroot}%{_unitdir}
213 install -m 644 units/wait-mount@.service %{buildroot}%{_unitdir}
214 install -m 644 units/wait-mount-session@.service %{buildroot}%{_userunitdir}/wait-mount@.service
215 install -m 644 units/no-wait.conf %{buildroot}%{_unitdir}/wait-mount@opt-usr.service.d
216 install -m 644 units/no-wait.conf %{buildroot}%{_userunitdir}/wait-mount@opt-usr.service.d
217 ln -s ../opt-usr.mount %{buildroot}%{_unitdir}/local-fs.target.wants/opt-usr.mount
218 ln -s ../wait-mount@.service %{buildroot}%{_unitdir}/local-fs.target.wants/wait-mount@opt-usr.service
219 ln -s ../wait-mount@.service %{buildroot}%{_userunitdir}/basic.target.wants/wait-mount@opt-usr.service
220
221 # namespace
222 mkdir -p %{buildroot}%{_unitdir}/user@.service.d
223 install -m 644 units/namespace.conf %{buildroot}%{_unitdir}/user@.service.d/
224
225 # session-bind
226 mkdir -p %{buildroot}%{_userunitdir}/basic.target.wants
227 install -m 644 units/session-bind.service %{buildroot}%{_userunitdir}
228 ln -s ../session-bind.service %{buildroot}%{_userunitdir}/basic.target.wants/session-bind.service
229
230 %clean
231 rm -rf %{buildroot}
232
233 %post
234 systemctl daemon-reload
235
236 %files
237 %manifest %{name}.manifest
238 %license LICENSE.Apache-2.0
239 %{_unitdir}/tizen-system-env.service
240 %{_unitdir}/basic.target.wants/tizen-system-env.service
241
242 %files device-spreadtrum
243 %manifest %{name}.manifest
244 %license LICENSE.Apache-2.0
245 /initrd
246 /csa
247 %{_prefix}/lib/udev/rules.d/51-system-plugin-spreadtrum.rules
248 %{_unitdir}/tizen-system-env.service
249 %{_unitdir}/basic.target.wants/tizen-system-env.service
250 %{_unitdir}/csa.mount
251 %{_unitdir}/local-fs.target.wants/csa.mount
252 %{_unitdir}/delayed.target.wants/tizen-fstrim-user.timer
253 %{_unitdir}/tizen-fstrim-user.timer
254 %{_unitdir}/tizen-fstrim-user.service
255 %{_bindir}/tizen-fstrim-on-charge.sh
256 %{_datadir}/fixed_multiuser/fixed-multi-user.sh
257
258 %files device-n4
259 %manifest %{name}.manifest
260 %license LICENSE.Apache-2.0
261 %{_unitdir}/delayed.target.wants/tizen-fstrim-user.timer
262 %{_unitdir}/tizen-fstrim-user.timer
263 %{_unitdir}/tizen-fstrim-user.service
264 %{_bindir}/tizen-fstrim-on-charge.sh
265 %{_prefix}/lib/udev/rules.d/61-system-plugin-n4.rules
266
267 %files device-circle
268 %manifest %{name}.manifest
269 %license LICENSE.Apache-2.0
270 /initrd
271 /csa
272 %{_unitdir}/csa.mount
273 %{_unitdir}/local-fs.target.wants/csa.mount
274
275 %files device-u3
276 %manifest %{name}.manifest
277 %license LICENSE.Apache-2.0
278 %{_prefix}/lib/udev/hwdb.d/60-evdev.hwdb
279 %{_prefix}/lib/udev/rules.d/51-system-plugin-exynos.rules
280
281 %post device-u3
282 %{_prefix}/bin/udevadm hwdb --update
283
284 %files device-rpi3
285 %manifest %{name}.manifest
286 %license LICENSE.Apache-2.0
287 %{_prefix}/lib/udev/hwdb.d/60-evdev.hwdb
288
289 %post device-rpi3
290 %{_prefix}/bin/udevadm hwdb --update
291
292 %files feature-init_wrapper
293 %license LICENSE.Apache-2.0
294 %{_sbindir}/init.wrapper
295
296 %posttrans feature-init_wrapper
297 rm -f /sbin/init
298 ln -s /sbin/init.wrapper /sbin/init
299
300 %files feature-init_wrapper_overlayfs
301 %license LICENSE.Apache-2.0
302 %{_sbindir}/init.wrapper.overlayfs
303
304 %posttrans feature-init_wrapper_overlayfs
305 rm -f /sbin/init
306 ln -s /sbin/init.wrapper.overlayfs /sbin/init
307 mkdir -p /.overlayfs_merged
308 mkdir -p /.rootfs_old
309
310 %posttrans feature-image-reduction
311 # platform/upstream/dbus
312 rm -f %{_bindir}/dbus-cleanup-sockets
313 rm -f %{_bindir}/dbus-run-session
314 rm -f %{_bindir}/dbus-test-tool
315 rm -f %{_bindir}/dbus-update-activation-environment
316 rm -f %{_bindir}/dbus-uuidgen
317 # platform/upstream/e2fsprogs
318 rm -f %{_sbindir}/e4crypt
319
320 %files feature-namespace
321 %manifest %{name}.manifest
322 %license LICENSE.Apache-2.0
323 %{_unitdir}/user@.service.d/namespace.conf
324
325 %files feature-session-bind
326 %manifest %{name}.manifest
327 %license LICENSE.Apache-2.0
328 %{_bindir}/session-bind
329 %{_userunitdir}/session-bind.service
330 %{_userunitdir}/basic.target.wants/session-bind.service
331
332 %post feature-session-bind
333 echo ""
334 echo "------------------------------------------------------------------------"
335 echo "When you install this system-plugin-feature-session-bind rpm separately,"
336 echo "you are required to execute this command"
337 echo ""
338 echo "root#) setcap cap_sys_admin=ei /usr/bin/session-bind"
339 echo "------------------------------------------------------------------------"
340 echo ""
341
342 %files config-env-headless
343 %manifest %{name}.manifest
344 %license LICENSE.Apache-2.0
345 %{_sysconfdir}/profile.d/headless_env.sh
346
347 %files config-udev-sdbd
348 %manifest %{name}.manifest
349 %license LICENSE.Apache-2.0
350 %{_bindir}/sdb-mode.sh
351 %{_prefix}/lib/udev/rules.d/99-sdb-extcon.rules
352
353 %files config-2parts
354 %manifest %{name}.manifest
355 %license LICENSE.Apache-2.0
356 %{_sysconfdir}/profile.d/2parts_env.sh
357 %{_unitdir}/wait-mount@.service
358 %{_unitdir}/wait-mount@opt-usr.service.d/no-wait.conf
359 %{_unitdir}/local-fs.target.wants/wait-mount@opt-usr.service
360 %{_userunitdir}/wait-mount@.service
361 %{_userunitdir}/wait-mount@opt-usr.service.d/no-wait.conf
362 %{_userunitdir}/basic.target.wants/wait-mount@opt-usr.service
363
364 %files config-3parts
365 %manifest %{name}.manifest
366 %license LICENSE.Apache-2.0
367 %{_unitdir}/opt-usr.mount
368 %{_unitdir}/wait-mount@.service
369 %{_unitdir}/local-fs.target.wants/opt-usr.mount
370 %{_userunitdir}/wait-mount@.service
371 %{_userunitdir}/basic.target.wants/wait-mount@opt-usr.service
372
373 %files config-3parts-lzuser
374 %manifest %{name}.manifest
375 %license LICENSE.Apache-2.0
376 %{_unitdir}/opt-usr.mount
377 %{_unitdir}/wait-mount@.service
378 %{_unitdir}/local-fs.target.wants/opt-usr.mount
379 %{_userunitdir}/wait-mount@.service
380 %{_userunitdir}/basic.target.wants/wait-mount@opt-usr.service