2 %if %{?commerce:0}%{!?commerce:1}
6 %define __python $(which python)
7 %define __app karesansui
10 %define date %(echo `LANG=C date +%%Y%%m%%d%%H%%M%%S`)
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}
19 %define _vendor_name %{nil}
21 %define name karesansui
22 %define __sysconfdir %{_sysconfdir}/opt/%{__app}
23 %define python_home %{__prefix}/%{__app}
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
31 %define __pysilhouette_prefix %{__prefix}/pysilhouette
32 %define __pysilhouette_sysconfdir %{_sysconfdir}/opt/pysilhouette
34 %define __vendor_sysconfdir %{_sysconfdir}/opt/hde
38 %define _user_doc Karesansui Project
41 %define _group_member wwwhde
43 Summary: Virtualization management tool(Web Application)
44 Summary(ja): オープンソースの仮想ホスト管理アプリケーション
47 #Release: %{release}.%{date}
49 Source0: %{__app}-%{version}.tar.gz
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
59 Requires: hde-libvirt-python
60 Requires: pysilhouette
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.
69 Summary: UI data for Karesansui Core
70 Group: Applications/System
72 Requires: %{name} = %{version}
75 UI data for Karesansui Core
78 Summary: Basic gadget collection for Karesansui Core
79 Group: Applications/System
81 Requires: %{name} = %{version}
84 Basic gadget collection for Karesansui Core
87 Summary: Basic command collection for Karesansui Core
88 Group: Applications/System
90 Requires: %{name} = %{version}
93 Basic command collection for Karesansui Core
96 Summary: Unit test environment for Karesansui Core
97 Group: Applications/System
99 Requires: %{name} = %{version}
100 Requires: hde-python-paste
103 Unit test environment for Karesansui Core
106 Summary: additional packages that extend functionality of existing packages
107 Group: Applications/System
108 License: See the source code
109 Requires: %{name} = %{version}
114 additional packages that extend functionality of existing packages
117 %setup -n %{__app}-%{version}
120 python setup.py build
123 python setup.py install --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES --home=%{python_home}
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}/
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}
137 find $RPM_BUILD_ROOT%{python_sitelib}/karesansui -type d -exec chmod g+rwx \{\} \; 2>/dev/null
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
143 rm -rf $RPM_BUILD_ROOT
147 getent group | %{__grep} "^%{_group}:" >/dev/null 2>&1
148 if [ $? -ne 0 ]; then
150 while test ${__uid} -le %{_uid_max}
152 getent group | %{__grep} "^[^:]*:x:${__uid}:" >/dev/null 2>&1
153 if [ $? -ne 0 ]; then
157 __uid=`expr ${__uid} + 1`
159 /usr/sbin/groupadd -g ${_gid} -f %{_group}
163 getent passwd | %{__grep} "^%{_user}:" >/dev/null 2>&1
164 if [ $? -ne 0 ]; then
166 while test ${__uid} -le %{_uid_max}
168 getent passwd | %{__grep} "^[^:]*:x:${__uid}:" >/dev/null 2>&1
169 if [ $? -ne 0 ]; then
173 __uid=`expr ${__uid} + 1`
175 /usr/sbin/useradd -c "%{_user_doc}" -u ${_uid} -g %{_group} -s /bin/false -r %{_user} 2> /dev/null || :
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
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}
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}.$$
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
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
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
219 %{__chgrp} -R %{_group} ${libvirt_datadir}/ >/dev/null 2>&1
220 %{__chmod} g+rwx ${libvirt_datadir}/ >/dev/null 2>&1
223 # Modify lighttpd configuration file.
224 for lighttpd_sysconfdir in %{__vendor_sysconfdir}/lighttpd /etc/lighttpd
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/*
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
246 /usr/sbin/userdel %{_user} 2> /dev/null || :
247 /usr/sbin/groupdel %{_group} 2> /dev/null || :
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}.$$
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}.$$
267 #%files -f INSTALLED_FILES
268 #%defattr(-,root,root)
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/
293 %defattr(0770,root,%{_group})
294 %dir /var/opt/karesansui/cache
295 %defattr(0770,%{_group_member},%{_group})
296 %dir /var/opt/karesansui/cache/yum
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
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/*
317 %defattr(0770,root,%{_group})
319 %defattr(0550,root,%{_group})
323 %defattr(-,root,%{_group})
324 %dir %{python_sitelib}/karesansui/tests/
325 %{python_sitelib}/karesansui/tests/*
328 %defattr(-,root,%{_group})
329 %dir %{python_sitelib}/karesansui/plus/
330 %{python_sitelib}/karesansui/plus/*
333 * Fri Dec 25 2009 Taizo ITO <taizo@karesansui-project.info> - 1.1.0-3
334 - Fixed attach/detach device.
336 * Mon Dec 14 2009 Kei Funagayama <kei@karesansui-project.info> - 1.1.0-2
337 - Add "plus" package.
338 - Add Software Update feature.
340 * Thu Dec 10 2009 Taizo ITO <taizo@karesansui-project.info> - 1.1.0-1
342 - Changed paths for domain's image data.
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.
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.
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.
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.
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.
384 * Tue May 19 2009 Taizo ITO <taizo@karesansui-project.info> - 1.0.0-1