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