OSDN Git Service

commited.
[karesansui/karesansui.git] / doc / redhat.spec
1 %define commerce 0
2 %if %{?commerce:0}%{!?commerce:1}
3 %define commerce 1
4 %endif
5
6 %define __python $(which python)
7 %define __app karesansui
8 %define version 1.1.0
9 %define release 3
10 %define date %(echo `LANG=C date +%%Y%%m%%d%%H%%M%%S`)
11
12 %if %{commerce}
13 %define _vendor_name    hde
14 %define name %{_vendor_name}-karesansui
15 %define __prefix /opt/%{_vendor_name}
16 %define __sysconfdir %{_sysconfdir}/opt/%{_vendor_name}/%{__app}
17 %define python_home  %{__prefix}
18 %else
19 %define _vendor_name    %{nil}
20 %define __prefix /opt
21 %define name karesansui
22 %define __sysconfdir %{_sysconfdir}/opt/%{__app}
23 %define python_home  %{__prefix}/%{__app}
24 %endif
25
26 %define __bindir %{__prefix}/%{__app}/bin
27 %define __tmpdir %{__prefix}/%{__app}/tmp
28 %define _defaultdocdir %{__prefix}/%{__app}/share/doc
29 %define python_sitelib  %{python_home}/lib/python
30
31 %define __pysilhouette_prefix     %{__prefix}/pysilhouette
32 %define __pysilhouette_sysconfdir %{_sysconfdir}/opt/pysilhouette
33
34 %define __vendor_sysconfdir  %{_sysconfdir}/opt/hde
35
36 %define _user           kss
37 %define _group          kss
38 %define _user_doc       Karesansui Project
39 %define _uid_min        250
40 %define _uid_max        300
41 %define _group_member   wwwhde
42
43 Summary: Virtualization management tool(Web Application) 
44 Summary(ja): オープンソースの仮想ホスト管理アプリケーション
45 Name: %{name}
46 Version: %{version}
47 #Release: %{release}.%{date}
48 Release: %{release}
49 Source0: %{__app}-%{version}.tar.gz
50 License: LGPLv2+
51 Group: Applications/System
52 Url: http://karesansui-project.info/
53 Vendor: Karesansui Project
54 Packager: Taizo ITO <taizo@karesansui-project.info>
55 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
56 Prefix: %{_prefix}
57 BuildArch: noarch
58 Provides: %{__app}
59 Requires: hde-libvirt-python
60 Requires: pysilhouette
61 Requires: PyXML
62
63 %description
64 On the Web for virtualization management software to manage.
65     The guest OS and the management of resources and dynamic changes can be done easily.
66     RESTful Web applications in architecture.
67
68 %package data
69 Summary: UI data for Karesansui Core
70 Group: Applications/System
71 License: GPLv2
72 Requires: %{name} = %{version}
73
74 %description data
75 UI data for Karesansui Core
76
77 %package gadget
78 Summary: Basic gadget collection for Karesansui Core
79 Group: Applications/System
80 License: GPLv2
81 Requires: %{name} = %{version}
82
83 %description gadget
84 Basic gadget collection for Karesansui Core
85
86 %package bin
87 Summary: Basic command collection for Karesansui Core
88 Group: Applications/System
89 License: GPLv2
90 Requires: %{name} = %{version}
91
92 %description bin
93 Basic command collection for Karesansui Core
94
95 %package test
96 Summary: Unit test environment for Karesansui Core
97 Group: Applications/System
98 License: LGPLv2+
99 Requires: %{name} = %{version}
100 Requires: hde-python-paste
101
102 %description test
103 Unit test environment for Karesansui Core
104
105 %package plus
106 Summary: additional packages that extend functionality of existing packages
107 Group: Applications/System
108 License: See the source code
109 Requires: %{name} = %{version}
110 Requires: yum
111 Requires: rpm-python
112
113 %description plus
114 additional packages that extend functionality of existing packages
115
116 %prep
117 %setup -n %{__app}-%{version}
118
119 %build
120 python setup.py build
121
122 %install
123 python setup.py install --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES --home=%{python_home}
124
125 install -d -m 0770 $RPM_BUILD_ROOT%{__sysconfdir}
126 %{__cp} -f doc/application.conf.example $RPM_BUILD_ROOT%{__sysconfdir}/application.conf.example
127 %{__cp} -f $RPM_BUILD_ROOT%{__sysconfdir}/application.conf{.example,}
128 %{__cp} -f doc/log.conf.example $RPM_BUILD_ROOT%{__sysconfdir}/log.conf.example
129 %{__cp} -f $RPM_BUILD_ROOT%{__sysconfdir}/log.conf{.example,}
130 %{__cp} -fr doc/lighttpd/ $RPM_BUILD_ROOT%{__sysconfdir}/lighttpd.example/
131 %{__cp} -f doc/whitelist.conf.example $RPM_BUILD_ROOT%{__sysconfdir}/
132
133 install -d -m 0770 $RPM_BUILD_ROOT/{etc,var}/opt/karesansui
134 install -d -m 0770 $RPM_BUILD_ROOT/var/log/karesansui
135 install -d -m 0770 $RPM_BUILD_ROOT%{__tmpdir}
136
137 find $RPM_BUILD_ROOT%{python_sitelib}/karesansui -type d -exec chmod g+rwx \{\} \; 2>/dev/null
138
139 install -d -m 0770 $RPM_BUILD_ROOT/{etc,var}/opt/karesansui/cache
140 install -d -m 0770 $RPM_BUILD_ROOT/{etc,var}/opt/karesansui/cache/yum
141
142 %clean
143 rm -rf $RPM_BUILD_ROOT
144
145 %pre
146 # Add group
147 getent group | %{__grep} "^%{_group}:" >/dev/null 2>&1
148 if [ $? -ne 0 ]; then
149   __uid=%{_uid_min}
150   while test ${__uid} -le %{_uid_max}
151   do
152     getent group | %{__grep} "^[^:]*:x:${__uid}:" >/dev/null 2>&1
153     if [ $? -ne 0 ]; then
154       _gid=${__uid}
155       break
156     fi
157     __uid=`expr ${__uid} + 1`
158   done
159   /usr/sbin/groupadd -g ${_gid} -f %{_group}
160 fi
161
162 # Add user
163 getent passwd | %{__grep} "^%{_user}:" >/dev/null 2>&1
164 if [ $? -ne 0 ]; then
165   __uid=%{_uid_min}
166   while test ${__uid} -le %{_uid_max}
167   do
168     getent passwd | %{__grep} "^[^:]*:x:${__uid}:" >/dev/null 2>&1
169     if [ $? -ne 0 ]; then
170       _uid=${__uid}
171       break
172     fi
173     __uid=`expr ${__uid} + 1`
174   done
175   /usr/sbin/useradd -c "%{_user_doc}" -u ${_uid} -g %{_group} -s /bin/false -r %{_user} 2> /dev/null || :
176 fi
177
178 # Add %{_group_member} user to %{_group} group member
179 %{__grep} ^%{_group_member}: /etc/passwd >/dev/null 2>&1
180 if [ $? -eq 0 ]; then
181   gpasswd -a %{_group_member} %{_group} >/dev/null 2>&1
182   gpasswd -a %{_group} %{_group_member} >/dev/null 2>&1
183 fi
184
185 %post
186 # Modify libvirt configuration file.
187 sysconfig_libvirt=%{_sysconfdir}/sysconfig/hde-libvirtd
188 if [ -f ${sysconfig_libvirt} ]; then
189   %{__grep} "^PRIVSEP_GROUP=" ${sysconfig_libvirt} >/dev/null 2>&1
190   if [ $? -ne 0 ]; then
191     echo "PRIVSEP_GROUP=%{_group}" >>${sysconfig_libvirt}
192   fi
193 fi
194 libvirtd_conf=%{__vendor_sysconfdir}/libvirt/libvirtd.conf
195 if [ -f ${libvirtd_conf} ]; then
196   %{__grep} '^unix_sock_group = "root"' ${libvirtd_conf} >/dev/null 2>&1
197   if [ $? -eq 0 ]; then
198     %{__sed} -e "s#unix_sock_group = \"root\"#unix_sock_group = \"%{_group}\"#"       ${libvirtd_conf} >${libvirtd_conf}.$$
199     %{__cp} -f ${libvirtd_conf}.$$ ${libvirtd_conf}
200     %{__rm} -f ${libvirtd_conf}.$$
201   fi
202 fi
203
204 # Make directory
205 if [ -d %{__vendor_sysconfdir} ]; then
206   %{__mkdir_p} %{__vendor_sysconfdir}/xen/xml/
207   %{__chgrp} -R %{_group} %{__vendor_sysconfdir}/xen/ >/dev/null 2>&1
208   %{__chmod} -R g+rw %{__vendor_sysconfdir}/xen/ >/dev/null 2>&1
209 fi
210 libvirt_datadir=/var/opt/hde/libvirt
211 if [ -d ${libvirt_datadir} ]; then
212   #for subdir in boot images snapshot disk
213   for subdir in domains
214   do
215     %{__mkdir_p} ${libvirt_datadir}/${subdir}
216     %{__chmod} g+rwx ${libvirt_datadir}/${subdir} >/dev/null 2>&1
217     %{__chmod} o-rwx ${libvirt_datadir}/${subdir} >/dev/null 2>&1
218   done
219   %{__chgrp} -R %{_group} ${libvirt_datadir}/ >/dev/null 2>&1
220   %{__chmod} g+rwx ${libvirt_datadir}/ >/dev/null 2>&1
221 fi
222
223 # Modify lighttpd configuration file.
224 for lighttpd_sysconfdir in %{__vendor_sysconfdir}/lighttpd /etc/lighttpd
225 do
226   if [ -d ${lighttpd_sysconfdir} ]; then
227     %{__mkdir_p} ${lighttpd_sysconfdir}/conf.d/karesansui/ >/dev/null 2>&1
228     if [ ! -f ${lighttpd_sysconfdir}/conf.d/karesansui.conf ]; then
229       %{__cp} -f %{__sysconfdir}/lighttpd.example/karesansui.conf ${lighttpd_sysconfdir}/conf.d/
230       %{__cp} -f %{__sysconfdir}/lighttpd.example/{access,port,ssl}.conf ${lighttpd_sysconfdir}/conf.d/karesansui/
231       %{__chgrp} -R %{_group} ${lighttpd_sysconfdir}/conf.d/karesansui*
232       %{__chmod} -R 0660 ${lighttpd_sysconfdir}/conf.d/karesansui/*
233     fi
234   fi
235 done
236
237 # Register whitelist commands to pysilhouette service.
238 if [ -d %{__pysilhouette_sysconfdir} ]; then
239   if [ ! -s %{__pysilhouette_sysconfdir}/whitelist.conf ]; then
240     %{__cp} -f %{__sysconfdir}/whitelist.conf.example %{__pysilhouette_sysconfdir}/whitelist.conf
241   fi
242 fi
243
244 %postun
245 if [ $1 = 0 ]; then
246   /usr/sbin/userdel %{_user} 2> /dev/null || :
247   /usr/sbin/groupdel %{_group} 2> /dev/null || :
248
249   # Modify libvirt configuration file.
250   sysconfig_libvirt=%{_sysconfdir}/sysconfig/hde-libvirtd
251   if [ -f ${sysconfig_libvirt} ]; then
252     %{__grep} -v "^PRIVSEP_GROUP=" ${sysconfig_libvirt} >${sysconfig_libvirt}.$$
253     %{__cp} -f ${sysconfig_libvirt}.$$ ${sysconfig_libvirt}
254     %{__rm} -f ${sysconfig_libvirt}.$$
255   fi
256   libvirtd_conf=%{__vendor_sysconfdir}/libvirt/libvirtd.conf
257   if [ -f ${libvirtd_conf} ]; then
258     %{__grep} '^unix_sock_group =' ${libvirtd_conf} >/dev/null 2>&1
259     if [ $? -eq 0 ]; then
260       %{__sed} -e "s#unix_sock_group = .*#unix_sock_group = \"root\"#"  ${libvirtd_conf} >${libvirtd_conf}.$$
261       %{__cp} -f ${libvirtd_conf}.$$ ${libvirtd_conf}
262       %{__rm} -f ${libvirtd_conf}.$$
263     fi
264   fi
265 fi
266
267 #%files -f INSTALLED_FILES
268 #%defattr(-,root,root)
269 #%doc doc tool
270
271 %files
272 %defattr(-,root,%{_group})
273 %doc doc tool AUTHORS COPYING COPYING.LIB INSTALL INSTALL.ja README README.ja
274 %dir %{python_sitelib}/
275 %dir %{python_sitelib}/karesansui/
276 %dir %{python_sitelib}/karesansui/db/
277 %dir %{python_sitelib}/karesansui/lib/
278 %dir %{python_sitelib}/karesansui/static/
279 %{python_sitelib}/karesansui/*.py*
280 %{python_sitelib}/karesansui/db/*.py*
281 %{python_sitelib}/karesansui/db/access/*.py*
282 %{python_sitelib}/karesansui/db/model/*.py*
283 %{python_sitelib}/karesansui/lib/*
284 %{python_sitelib}/karesansui/static/js/*
285 %{python_sitelib}/karesansui/static/lib/*
286 %{__sysconfdir}/*.example
287 %defattr(0770,root,%{_group})
288 %config(noreplace) %{__sysconfdir}/*.conf
289 %dir %{__sysconfdir}/
290 %dir /var/opt/karesansui/
291 %dir /var/log/karesansui/
292 %dir %{__tmpdir}/
293 %defattr(0770,root,%{_group})
294 %dir /var/opt/karesansui/cache
295 %defattr(0770,%{_group_member},%{_group})
296 %dir /var/opt/karesansui/cache/yum
297
298 %files data
299 %defattr(-,root,%{_group})
300 %dir %{python_sitelib}/karesansui/static/css/
301 %dir %{python_sitelib}/karesansui/static/icon/
302 %dir %{python_sitelib}/karesansui/static/images/
303 %dir %{python_sitelib}/karesansui/locale/
304 %{python_sitelib}/karesansui/static/css/*
305 %{python_sitelib}/karesansui/static/icon/*
306 %{python_sitelib}/karesansui/static/images/*
307 %{python_sitelib}/karesansui/locale/*/LC_MESSAGES/*.mo
308
309 %files gadget
310 %defattr(-,root,%{_group})
311 %dir %{python_sitelib}/karesansui/gadget/
312 %dir %{python_sitelib}/karesansui/templates/default/
313 %{python_sitelib}/karesansui/gadget/*
314 %{python_sitelib}/karesansui/templates/default/*
315
316 %files bin
317 %defattr(0770,root,%{_group})
318 %dir %{__bindir}/
319 %defattr(0550,root,%{_group})
320 %{__bindir}/*
321
322 %files test
323 %defattr(-,root,%{_group})
324 %dir %{python_sitelib}/karesansui/tests/
325 %{python_sitelib}/karesansui/tests/*
326
327 %files plus
328 %defattr(-,root,%{_group})
329 %dir %{python_sitelib}/karesansui/plus/
330 %{python_sitelib}/karesansui/plus/*
331
332 %changelog
333 * Fri Dec 25 2009 Taizo ITO <taizo@karesansui-project.info> - 1.1.0-3
334 - Fixed attach/detach device.
335
336 * Mon Dec 14 2009 Kei Funagayama <kei@karesansui-project.info> - 1.1.0-2
337 - Add "plus" package.
338 - Add Software Update feature.
339
340 * Thu Dec 10 2009 Taizo ITO <taizo@karesansui-project.info> - 1.1.0-1
341 - kvm support.
342 - Changed paths for domain's image data.
343
344 * Thu Oct 29 2009 Kei Funagayama <kei@karesansui-project.info> - 1.0.3-2
345 - CentOS(i386/x86_64) support.
346 - RHEL(i386/x86_64) support.
347
348 * Tue Sep 18 2009 Kei Funagayama <kei@karesansui-project.info> - 1.0.3-1
349 - Added checker for keymap selection.
350 - Fixed web server setting bugs.
351 - Fixed the following hungup bug.
352     ** glibc detected *** /usr/bin/python: free(): invalid pointer:
353 - Changed the format of system uri path.
354     fixed error "unexpected Xen URI path '/system', try xen:///" for libvirt-0.6.5.
355
356 * Thu Jun 18 2009 Kei Funagayama <kei@karesansui-project.info> - 1.0.2-1
357 - Sparce file support is now available at creating a guest environment.
358 - Keyboard maps selection is now available at creating a guest environment.
359 - Fixed rpm transaction closing order.
360 - Fixed checking of processor support.
361 - sqlite time to register with the system, had not added the time zone information.
362 - Network database is now available as pysilhouette database.
363 - Addresses an issue which karesansui does not work at multi-host environment.
364
365 * Tue Jun 9 2009 Kei Funagayama <kei@karesansui-project.info> - 1.0.1-1
366 - Karesansui now works on CentOS5.3 64bit(x86_64), RHEL5.3 64bit(x86_64) and RHEL5.3 32bit(x86).
367 - Added support for AMD Athlon64 or Opteron environment.
368 - Added favicons.
369 - Improves VNC console keyboard layout support.
370 - Prevents host environment's FQDN from being resolved.
371 - Highlights required items on input forms.
372 - Buttons turn disabled not to be clicked after clicking at dialog window.
373 - Karesansui now works when PostgreSQL is selected as database at the installation process.
374 - Addresses an issue which could not reach the management console after resetting F/W.
375 - Addresses an issue which could not move to other tabs while displaying guest console.
376 - Delete button is now turned disabled after destroying resources.
377 - Network configuration is now editable without errors.
378 - Addresses an issue which occurs when job search is performanced many times.
379 - Creating guest with empty value in "Memory Size" or "Disk Size" now works.
380 - Prevent input data from being posted to other resources when enter key is pressed on input forms.
381 - Improved a check logic about guest ID.
382 - Improved error handling on nonexistent NIC.
383
384 * Tue May 19 2009 Taizo ITO <taizo@karesansui-project.info> - 1.0.0-1
385 - Initial build.