Add dependency to e2fsprogs for image reduction rpm
[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 Requires: e2fsprogs
100 BuildArch: noarch
101
102 %description feature-image-reduction
103 This package provides system configuration files for reducing image size.
104
105 %package feature-namespace
106 Summary:  System configuration files for namespace separation
107 Requires: %{name} = %{version}-%{release}
108 BuildArch: noarch
109
110 %description feature-namespace
111 This package provides namespace separation of user sessions.
112
113 %package config-env-headless
114 Summary:  System configuration files for headless images
115 Requires: %{name} = %{version}-%{release}
116 BuildArch: noarch
117
118 %description config-env-headless
119 This package provides system configuration files for headless images.
120
121 %package config-udev-sdbd
122 Summary: System configuration files to trigger sdb with udev rule
123 Requires: %{name} = %{version}-%{release}
124 BuildArch: noarch
125
126 %description config-udev-sdbd
127 This package provides configuration files to trigger sdb with udev rule.
128
129 %package config-2parts
130 Summary: System configuration files for storage partitions
131 Requires: %{name} = %{version}-%{release}
132 BuildArch: noarch
133
134 %description config-2parts
135 This package provides configuration files for /etc/fstab(remount) and resize2fs@.service.
136
137 %package config-3parts
138 Summary: System configuration files for storage partitions
139 Requires: %{name} = %{version}-%{release}
140 BuildArch: noarch
141
142 %description config-3parts
143 This package provides configuration files for /etc/fstab(remount) and resize2fs@.service.
144
145 %package config-3parts-lzuser
146 Summary: System configuration files for storage partitions
147 Requires: %{name} = %{version}-%{release}
148 BuildArch: noarch
149
150 %description config-3parts-lzuser
151 This package provides configuration files for /etc/fstab(remount) and resize2fs@.service.
152
153 %prep
154 %setup -q
155
156 %build
157 cp %{SOURCE1} .
158 cp %{SOURCE2} .
159
160 ./autogen.sh
161 %reconfigure \
162                 --disable-static \
163                 --prefix=%{_prefix} \
164                 --disable-debug-mode \
165                 --disable-eng-mode
166
167 %__make %{?jobs:-j%jobs} \
168         CFLAGS+=-DLIBDIR=\\\"%{_libdir}\\\"
169
170 %install
171 rm -rf %{buildroot}
172 %make_install
173
174 mkdir -p %{buildroot}%{_unitdir}
175 mkdir -p %{buildroot}%{_userunitdir}
176 mkdir -p %{buildroot}/csa
177 mkdir -p %{buildroot}/initrd
178 install -m 644 units/resize2fs@.service %{buildroot}%{_unitdir}
179 install -m 644 units/tizen-system-env.service %{buildroot}%{_unitdir}
180
181 # csa mount
182 install -m 644 units/csa.mount %{buildroot}%{_unitdir}
183 mkdir -p %{buildroot}%{_unitdir}/local-fs.target.wants
184 ln -s ../csa.mount %{buildroot}%{_unitdir}/local-fs.target.wants/csa.mount
185
186 # Resize partition for 3-parted target
187 mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
188 ln -s ../resize2fs@.service %{buildroot}%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\\x2dlabel-system\\x2ddata.service
189 ln -s ../resize2fs@.service %{buildroot}%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\\x2dlabel-user.service
190 ln -s ../resize2fs@.service %{buildroot}%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\\x2dlabel-rootfs.service
191
192 ln -s ../tizen-system-env.service %{buildroot}%{_unitdir}/basic.target.wants/tizen-system-env.service
193
194 mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d/
195 install -m 644 rules/51-system-plugin-exynos.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
196 install -m 644 rules/51-system-plugin-spreadtrum.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
197
198 mkdir -p %{buildroot}%{_prefix}/lib/udev/hwdb.d/
199 install -m 644 rules/60-evdev.hwdb %{buildroot}%{_prefix}/lib/udev/hwdb.d/
200
201 # /etc/fstab
202 mkdir -p %{buildroot}%{_sysconfdir}
203 install -m 644 etc/fstab_3parts %{buildroot}%{_sysconfdir}
204 install -m 644 etc/fstab_2parts %{buildroot}%{_sysconfdir}
205
206 # fstrim
207 mkdir -p %{buildroot}%{_unitdir}/graphical.target.wants
208 install -m 644 units/tizen-fstrim-user.timer %{buildroot}%{_unitdir}
209 ln -s ../tizen-fstrim-user.timer %{buildroot}%{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
210 install -m 644 units/tizen-fstrim-user.service %{buildroot}%{_unitdir}
211 mkdir -p %{buildroot}%{_bindir}
212 install -m 755 scripts/tizen-fstrim-on-charge.sh %{buildroot}%{_bindir}
213
214 # fixed-multi-user
215 install -m 775 -D scripts/fixed-multi-user.sh %{buildroot}%{_datadir}/fixed_multiuser/fixed-multi-user.sh
216
217 # init_wrapper
218 mkdir -p %{buildroot}%{_sbindir}
219 install -m 755 scripts/init.wrapper %{buildroot}%{_sbindir}
220 install -m 755 scripts/init.wrapper.overlayfs %{buildroot}%{_sbindir}
221
222 # headless
223 mkdir -p %{buildroot}%{_sbindir}
224 install -m 755 scripts/sdb-mode.sh %{buildroot}%{_bindir}
225 mkdir -p %{buildroot}%{_sysconfdir}/profile.d
226 install -m 755 scripts/headless_env.sh %{buildroot}%{_sysconfdir}/profile.d
227
228 # config-udev-sdbd
229 mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d/
230 install -m 644 rules/99-sdb-extcon.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
231
232 # /opt/usr lazy mount
233 mkdir -p %{buildroot}%{_unitdir}/local-fs.target.wants
234 mkdir -p %{buildroot}%{_unitdir}/wait-mount@opt-usr.service.d
235 mkdir -p %{buildroot}%{_userunitdir}/basic.target.wants
236 mkdir -p %{buildroot}%{_userunitdir}/wait-mount@opt-usr.service.d
237 install -m 644 units/opt-usr.mount %{buildroot}%{_unitdir}
238 install -m 644 units/opt-usr-fsck.service %{buildroot}%{_unitdir}
239 install -m 644 units/wait-mount@.service %{buildroot}%{_unitdir}
240 install -m 644 units/wait-mount-session@.service %{buildroot}%{_userunitdir}/wait-mount@.service
241 install -m 644 units/no-wait.conf %{buildroot}%{_unitdir}/wait-mount@opt-usr.service.d
242 install -m 644 units/no-wait.conf %{buildroot}%{_userunitdir}/wait-mount@opt-usr.service.d
243 ln -s ../opt-usr.mount %{buildroot}%{_unitdir}/local-fs.target.wants/opt-usr.mount
244 ln -s ../wait-mount@.service %{buildroot}%{_unitdir}/local-fs.target.wants/wait-mount@opt-usr.service
245 ln -s ../wait-mount@.service %{buildroot}%{_userunitdir}/basic.target.wants/wait-mount@opt-usr.service
246
247 # namespace
248 mkdir -p %{buildroot}%{_unitdir}/user@.service.d
249 install -m 644 units/namespace.conf %{buildroot}%{_unitdir}/user@.service.d/
250
251 %clean
252 rm -rf %{buildroot}
253
254 %post
255 systemctl daemon-reload
256
257 %files
258 %manifest %{name}.manifest
259 %license LICENSE.Apache-2.0
260 %{_unitdir}/resize2fs@.service
261 %{_unitdir}/tizen-system-env.service
262 %{_unitdir}/basic.target.wants/tizen-system-env.service
263
264 %files device-spreadtrum
265 %manifest %{name}.manifest
266 %license LICENSE.Apache-2.0
267 /initrd
268 /csa
269 %{_prefix}/lib/udev/rules.d/51-system-plugin-spreadtrum.rules
270 %{_unitdir}/tizen-system-env.service
271 %{_unitdir}/basic.target.wants/tizen-system-env.service
272 %{_unitdir}/csa.mount
273 %{_unitdir}/local-fs.target.wants/csa.mount
274 %{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
275 %{_unitdir}/tizen-fstrim-user.timer
276 %{_unitdir}/tizen-fstrim-user.service
277 %{_bindir}/tizen-fstrim-on-charge.sh
278 %{_datadir}/fixed_multiuser/fixed-multi-user.sh
279
280 %files device-n4
281 %manifest %{name}.manifest
282 %license LICENSE.Apache-2.0
283 %{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
284 %{_unitdir}/tizen-fstrim-user.timer
285 %{_unitdir}/tizen-fstrim-user.service
286 %{_bindir}/tizen-fstrim-on-charge.sh
287
288 %files device-circle
289 %manifest %{name}.manifest
290 %license LICENSE.Apache-2.0
291 /initrd
292 /csa
293 %{_unitdir}/csa.mount
294 %{_unitdir}/local-fs.target.wants/csa.mount
295
296 %files device-u3
297 %manifest %{name}.manifest
298 %license LICENSE.Apache-2.0
299 %{_prefix}/lib/udev/hwdb.d/60-evdev.hwdb
300 %{_prefix}/lib/udev/rules.d/51-system-plugin-exynos.rules
301
302 %post device-u3
303 %{_prefix}/bin/udevadm hwdb --update
304
305 %files device-rpi3
306 %manifest %{name}.manifest
307 %license LICENSE.Apache-2.0
308 %{_prefix}/lib/udev/hwdb.d/60-evdev.hwdb
309
310 %post device-rpi3
311 %{_prefix}/bin/udevadm hwdb --update
312
313 %files feature-init_wrapper
314 %license LICENSE.Apache-2.0
315 %{_sbindir}/init.wrapper
316
317 %posttrans feature-init_wrapper
318 rm -f /sbin/init
319 ln -s /sbin/init.wrapper /sbin/init
320
321 %files feature-init_wrapper_overlayfs
322 %license LICENSE.Apache-2.0
323 %{_sbindir}/init.wrapper.overlayfs
324
325 %posttrans feature-init_wrapper_overlayfs
326 rm -f /sbin/init
327 ln -s /sbin/init.wrapper.overlayfs /sbin/init
328 mkdir -p /.overlayfs_merged
329 mkdir -p /.rootfs_old
330
331 %files feature-lazymount
332 %defattr(-,root,root,-)
333 %manifest liblazymount.manifest
334 %license LICENSE.Apache-2.0
335 %{_libdir}/liblazymount.so.*
336 %{_unitdir}/basic.target.wants/lazy_mount.path
337 %{_unitdir}/lazy_mount.path
338 %{_unitdir}/lazy_mount.service
339 %{_bindir}/mount-user.sh
340
341 %post feature-lazymount
342 /sbin/ldconfig
343 systemctl daemon-reload
344
345 %postun feature-lazymount -p /sbin/ldconfig
346
347 %files feature-lazymount-devel
348 %defattr(-,root,root,-)
349 %manifest liblazymount.manifest
350 %license LICENSE.Apache-2.0
351 %{_libdir}/liblazymount.so
352 %{_includedir}/lazymount/lazy_mount.h
353 %{_libdir}/pkgconfig/liblazymount.pc
354
355 %posttrans feature-image-reduction
356 # platform/upstream/dbus
357 rm -f %{_bindir}/dbus-cleanup-sockets
358 rm -f %{_bindir}/dbus-run-session
359 rm -f %{_bindir}/dbus-test-tool
360 rm -f %{_bindir}/dbus-update-activation-environment
361 rm -f %{_bindir}/dbus-uuidgen
362 # platform/upstream/e2fsprogs
363 rm -f %{_sbindir}/e4crypt
364
365 %files feature-namespace
366 %manifest %{name}.manifest
367 %license LICENSE.Apache-2.0
368 %{_unitdir}/user@.service.d/namespace.conf
369
370 %files config-env-headless
371 %manifest %{name}.manifest
372 %license LICENSE.Apache-2.0
373 %{_sysconfdir}/profile.d/headless_env.sh
374
375 %files config-udev-sdbd
376 %manifest %{name}.manifest
377 %license LICENSE.Apache-2.0
378 %{_bindir}/sdb-mode.sh
379 %{_prefix}/lib/udev/rules.d/99-sdb-extcon.rules
380
381 %files config-2parts
382 %manifest %{name}.manifest
383 %license LICENSE.Apache-2.0
384 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-rootfs.service
385 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-system\x2ddata.service
386 %{_sysconfdir}/fstab_2parts
387 %{_unitdir}/wait-mount@.service
388 %{_unitdir}/wait-mount@opt-usr.service.d/no-wait.conf
389 %{_unitdir}/local-fs.target.wants/wait-mount@opt-usr.service
390 %{_userunitdir}/wait-mount@.service
391 %{_userunitdir}/wait-mount@opt-usr.service.d/no-wait.conf
392 %{_userunitdir}/basic.target.wants/wait-mount@opt-usr.service
393
394 %post config-2parts
395 mv %{_sysconfdir}/fstab_2parts %{_sysconfdir}/fstab
396
397 %files config-3parts
398 %manifest %{name}.manifest
399 %license LICENSE.Apache-2.0
400 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-rootfs.service
401 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-system\x2ddata.service
402 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-user.service
403 %{_sysconfdir}/fstab_3parts
404 %{_unitdir}/wait-mount@.service
405 %{_unitdir}/local-fs.target.wants/wait-mount@opt-usr.service
406 %{_userunitdir}/wait-mount@.service
407 %{_userunitdir}/basic.target.wants/wait-mount@opt-usr.service
408
409 %post config-3parts
410 mv %{_sysconfdir}/fstab_3parts %{_sysconfdir}/fstab
411
412 %files config-3parts-lzuser
413 %manifest %{name}.manifest
414 %license LICENSE.Apache-2.0
415 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-rootfs.service
416 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-system\x2ddata.service
417 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-user.service
418 %{_sysconfdir}/fstab_2parts
419 %{_unitdir}/opt-usr.mount
420 %{_unitdir}/opt-usr-fsck.service
421 %{_unitdir}/wait-mount@.service
422 %{_unitdir}/local-fs.target.wants/opt-usr.mount
423 %{_userunitdir}/wait-mount@.service
424 %{_userunitdir}/basic.target.wants/wait-mount@opt-usr.service
425
426 %post config-3parts-lzuser
427 mv %{_sysconfdir}/fstab_2parts %{_sysconfdir}/fstab