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