3b133815e107e26bea58146d57101d5a47011a16
[platform/adaptation/system-plugin.git] / packaging / system-plugin.spec
1 #%define _unpackaged_files_terminate_build 0
2 #%define debug_package %{nil}
3
4 %define temp_wait_mount 1
5
6 Name:      system-plugin
7 Summary:   Target specific system configuration files
8 Version:   0.1
9 Release:   1
10 Group: Base/Startup
11 License:   Apache-2.0
12 Source0:   %{name}-%{version}.tar.bz2
13 Source1:   %{name}.manifest
14 Source2:   liblazymount.manifest
15 Source3:   systemd-user-helper.manifest
16
17 Requires(post): /usr/bin/systemctl
18 Requires(post): /usr/bin/vconftool
19 BuildRequires: pkgconfig(vconf)
20 BuildRequires: pkgconfig(libsystemd)
21 BuildRequires: pkgconfig(libtzplatform-config)
22
23 %description
24 This package provides target specific system configuration files.
25
26 %package u3
27 Summary:  U3/XU3 specific system configuration files
28 Requires: %{name} = %{version}-%{release}
29 Requires: %{name}-exynos = %{version}-%{release}
30 BuildArch: noarch
31
32 %description u3
33 This package provides U3/XU3 specific system configuration files.
34
35 %package n4
36 Summary:  Note4 specific system configuration files
37 Requires: %{name} = %{version}-%{release}
38 Requires: %{name}-exynos = %{version}-%{release}
39 BuildArch: noarch
40
41 %description n4
42 This package provides Note4 specific system configuration files.
43
44 %package exynos
45 Summary:  Exynos specific system configuration files
46 Requires: %{name} = %{version}-%{release}
47 BuildArch: noarch
48
49 %description exynos
50 This package provides Exynos specific system configuration files.
51
52 %package spreadtrum
53 Summary:  Spreadtrum specific system configuration files
54 Requires: %{name} = %{version}-%{release}
55 BuildArch: noarch
56
57 %description spreadtrum
58 This package provides Spreadtrum specific system configuration files.
59
60 %package circle
61 Summary:  Circle specific system configuration files
62 Requires: %{name} = %{version}-%{release}
63 BuildArch: noarch
64
65 %description circle
66 This package provides Circle specific system configuration files.
67
68 %package -n liblazymount
69 Summary: Library for lazy mount feature
70 License: Apache-2.0
71 Requires: vconf
72 Requires: liblazymount = %{version}
73
74 %description -n liblazymount
75 Library for lazy mount feature. It supports some interface functions.
76
77 %package -n liblazymount-devel
78 Summary: Development library for lazy mount feature
79 License:  Apache-2.0
80 Requires: vconf
81 Requires: liblazymount = %{version}
82
83 %description -n liblazymount-devel
84 Development library for lazy mount feature.It supports some interface functions.
85
86 %package -n systemd-user-helper
87 Summary: Systemd user launch helper for supporting Tizen specific feature
88 License: Apache-2.0
89
90 %description -n systemd-user-helper
91 Systemd user launch helper supports Tizen specific feature like directory compatibility and container.
92
93 %package -n system-upgrade
94 Summary: System upgrade available patch
95 License: Apache-2.0
96
97 %description -n system-upgrade
98 Systemd offline system update activation package
99
100 %package profile_ivi
101 Summary: ivi specific system configuration files
102 Requires: %{name} = %{version}-%{release}
103 BuildArch: noarch
104
105 %description profile_ivi
106 This package provides ivi specific system configuration files.
107
108 %prep
109 %setup -q
110
111 %build
112 cp %{SOURCE1} .
113 cp %{SOURCE2} .
114 cp %{SOURCE3} .
115
116 ./autogen.sh
117 %reconfigure \
118                 --disable-static \
119                 --prefix=%{_prefix} \
120                 --disable-debug-mode \
121                 --disable-eng-mode
122
123 %__make %{?jobs:-j%jobs}
124
125 %install
126 rm -rf %{buildroot}
127 %make_install
128
129 mkdir -p %{buildroot}%{_unitdir}
130 mkdir -p %{buildroot}/csa
131 mkdir -p %{buildroot}/initrd
132 install -m 644 units/resize2fs@.service %{buildroot}%{_unitdir}
133 install -m 644 units/tizen-system-env.service %{buildroot}%{_unitdir}
134 install -m 644 units/ivi-network.service %{buildroot}%{_unitdir}
135
136 # csa mount
137 install -m 644 units/csa.mount %{buildroot}%{_unitdir}
138 mkdir -p %{buildroot}%{_unitdir}/local-fs.target.wants
139 ln -s ../csa.mount %{buildroot}%{_unitdir}/local-fs.target.wants/csa.mount
140
141 # Resize partition for 3-parted target
142 mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
143 ln -s ../resize2fs@.service %{buildroot}%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\\x2dlabel-system\\x2ddata.service
144 ln -s ../resize2fs@.service %{buildroot}%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\\x2dlabel-user.service
145 ln -s ../resize2fs@.service %{buildroot}%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\\x2dlabel-rootfs.service
146
147 ln -s ../resize2fs@.service %{buildroot}%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\\x2dpartlabel-user.service
148 ln -s ../resize2fs@.service %{buildroot}%{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\\x2dpartlabel-system\\x2ddata.service
149
150 ln -s ../tizen-system-env.service %{buildroot}%{_unitdir}/basic.target.wants/tizen-system-env.service
151 %install_service multi-user.target.wants ivi-network.service
152
153 mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d/
154 install -m 644 rules/51-system-plugin-exynos.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
155 install -m 644 rules/51-system-plugin-spreadtrum.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
156
157 # umount /opt
158 install -m 644 units/umount-opt.service %{buildroot}%{_unitdir}
159 mkdir -p %{buildroot}%{_unitdir}/local-fs-pre.target.wants
160 ln -s ../umount-opt.service %{buildroot}%{_unitdir}/local-fs-pre.target.wants/umount-opt.service
161
162 # fstab
163 mkdir -p %{buildroot}%{_sysconfdir}
164 install -m 644 etc/fstab %{buildroot}%{_sysconfdir}
165 # ugly temporary patch for initrd wearable
166 install -m 644 etc/fstab_initrd %{buildroot}%{_sysconfdir}
167 # lazymnt
168 install -m 644 etc/fstab_lazymnt %{buildroot}%{_sysconfdir}
169 install -m 644 etc/fstab_initrd_lazymnt %{buildroot}%{_sysconfdir}
170 %if %{temp_wait_mount}
171 mkdir -p %{buildroot}%{_unitdir_user}/basic.target.wants
172 install -m 644 units/wait-user-mount.service %{buildroot}%{_unitdir_user}
173 ln -s ../wait-user-mount.service %{buildroot}%{_unitdir_user}/basic.target.wants/wait-user-mount.service
174 %endif
175
176 # fstrim
177 mkdir -p %{buildroot}%{_unitdir}/graphical.target.wants
178 install -m 644 units/tizen-fstrim-user.timer %{buildroot}%{_unitdir}
179 ln -s ../tizen-fstrim-user.timer %{buildroot}%{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
180 install -m 644 units/tizen-fstrim-user.service %{buildroot}%{_unitdir}
181 mkdir -p %{buildroot}%{_bindir}
182 install -m 755 scripts/tizen-fstrim-on-charge.sh %{buildroot}%{_bindir}
183
184 # upgrade
185 mkdir -p %{buildroot}%{_datadir}
186 cp -r upgrade %{buildroot}%{_datadir}
187 mkdir -p %{buildroot}%{_unitdir}/system-update.target.wants
188 install -m 644 units/offline-update.service %{buildroot}%{_unitdir}
189 ln -s ../offline-update.service %{buildroot}%{_unitdir}/system-update.target.wants/offline-update.service
190 ln -s %{_datadir}/upgrade %{buildroot}/system-update
191
192 %clean
193 rm -rf %{buildroot}
194
195 %post
196 systemctl daemon-reload
197
198 %post -n liblazymount
199 /sbin/ldconfig
200 /usr/bin/vconftool set -f -t int db/system/lazy_mount_show_ui 0
201 systemctl daemon-reload
202
203 %postun -n liblazymount  -p /sbin/ldconfig
204
205 %files
206 %manifest %{name}.manifest
207 %license LICENSE.Apache-2.0
208 %{_unitdir}/resize2fs@.service
209 %{_unitdir}/tizen-system-env.service
210 %{_unitdir}/basic.target.wants/tizen-system-env.service
211
212 %files u3
213 %manifest %{name}.manifest
214 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-system\x2ddata.service
215 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-user.service
216 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-rootfs.service
217 %{_sysconfdir}/fstab
218
219 %files n4
220 %manifest %{name}.manifest
221 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-system\x2ddata.service
222 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-user.service
223 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-rootfs.service
224 %{_sysconfdir}/fstab_lazymnt
225 %{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
226 %{_unitdir}/tizen-fstrim-user.timer
227 %{_unitdir}/tizen-fstrim-user.service
228 %{_bindir}/tizen-fstrim-on-charge.sh
229
230 %files exynos
231 %manifest %{name}.manifest
232 %{_prefix}/lib/udev/rules.d/51-system-plugin-exynos.rules
233
234 %files circle
235 %manifest %{name}.manifest
236 /initrd
237 /csa
238 %{_sysconfdir}/fstab_initrd
239 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dpartlabel-user.service
240 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dpartlabel-system\x2ddata.service
241 %{_unitdir}/csa.mount
242 %{_unitdir}/local-fs.target.wants/csa.mount
243 %{_unitdir}/umount-opt.service
244 %{_unitdir}/local-fs-pre.target.wants/umount-opt.service
245
246 # ugly temporary patch for initrd wearable
247 %post circle
248 rm %{_sysconfdir}/fstab
249 mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
250 # fstab for tm1
251 %post spreadtrum
252 rm %{_sysconfdir}/fstab
253 mv %{_sysconfdir}/fstab_initrd_lazymnt %{_sysconfdir}/fstab
254 %post n4
255 rm %{_sysconfdir}/fstab
256 mv %{_sysconfdir}/fstab_lazymnt %{_sysconfdir}/fstab
257
258 %files spreadtrum
259 %manifest %{name}.manifest
260 /initrd
261 /csa
262 %{_prefix}/lib/udev/rules.d/51-system-plugin-spreadtrum.rules
263 %{_unitdir}/tizen-system-env.service
264 %{_sysconfdir}/fstab_initrd_lazymnt
265 %{_unitdir}/basic.target.wants/tizen-system-env.service
266 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dpartlabel-user.service
267 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dpartlabel-system\x2ddata.service
268 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-rootfs.service
269 %{_unitdir}/csa.mount
270 %{_unitdir}/local-fs.target.wants/csa.mount
271 %{_unitdir}/umount-opt.service
272 %{_unitdir}/local-fs-pre.target.wants/umount-opt.service
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
278 %files -n liblazymount
279 %defattr(-,root,root,-)
280 %{_libdir}/liblazymount.so.*
281 %manifest liblazymount.manifest
282 %{_unitdir}/basic.target.wants/lazy_mount.path
283 %{_unitdir}/lazy_mount.path
284 %{_unitdir}/lazy_mount.service
285 %{_bindir}/mount-user.sh
286 %if %{temp_wait_mount}
287 %{_bindir}/test_lazymount
288 %{_unitdir_user}/basic.target.wants/wait-user-mount.service
289 %{_unitdir_user}/wait-user-mount.service
290 %endif
291
292 %files -n liblazymount-devel
293 %defattr(-,root,root,-)
294 %manifest liblazymount.manifest
295 %{_libdir}/liblazymount.so
296 %{_includedir}/lazymount/lazy_mount.h
297 %{_libdir}/pkgconfig/liblazymount.pc
298 %if ! %{temp_wait_mount}
299 %{_bindir}/test_lazymount
300 %endif
301
302 %files -n system-upgrade
303 %{_datadir}/upgrade
304 %{_unitdir}/offline-update.service
305 %{_unitdir}/system-update.target.wants/offline-update.service
306 /system-update
307
308 %files -n systemd-user-helper
309 %manifest systemd-user-helper.manifest
310 %caps(cap_sys_admin,cap_mac_admin,cap_mac_override,cap_dac_override,cap_setgid=ei) %{_bindir}/systemd_user_helper
311
312 %posttrans -n systemd-user-helper
313 cp -a /usr/lib/systemd/system/user\@.service /usr/lib/systemd/system/__user@.service
314 /usr/bin/sed -i -e 's/Type=\(.*\)/Type=simple/' /usr/lib/systemd/system/user\@.service
315 /usr/bin/sed -i -e 's/ExecStart=\(.*\)/ExecStart=\/usr\/bin\/systemd_user_helper %i/' /usr/lib/systemd/system/user\@.service
316 /usr/bin/sed -i -e '/RemainAfterExit=\(.*\)/d' /usr/lib/systemd/system/user\@.service
317 echo 'RemainAfterExit=yes' >> /usr/lib/systemd/system/user\@.service
318
319 %files profile_ivi
320 %{_unitdir}/ivi-network.service
321 %{_unitdir}/multi-user.target.wants/ivi-network.service