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