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