b7276eb
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
c233232
%{!?build_server: %define build_server %(%{__python} -c "import pykickstart.version;" 2>/dev/null && echo 1 || echo 0)}
b7276eb
b7276eb
Name:           snake
b7276eb
Summary:        Smart Network Automated Kickstart Environment
16cc16c
Version:        0.11
91d1326
%define rel     0.18
5796dfe
Release:        %{rel}%{?dist}
5796dfe
Source0:        http://hosted.fedoraproject.org/projects/snake/SnakeReleases/%{name}-%{version}-%{rel}.tar.bz2
b7276eb
License:        GPLv2+
b7276eb
Group:          Applications/Internet
b7276eb
URL:            http://hosted.fedoraproject.org/projects/snake/
80d0dc8
Requires:       yum, pax
b7276eb
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
b7276eb
BuildArch:      noarch
f9d25d2
BuildRequires:  python-devel
c233232
%if 0%{?fedora} >= 8
f9d25d2
BuildRequires:  python-setuptools-devel
e80b5c4
%else
f9d25d2
BuildRequires:  python-setuptools
e80b5c4
%endif
b7276eb
b7276eb
b7276eb
%description
b7276eb
snake is a toolkit for doing automated kickstart-based installations.
b7276eb
b7276eb
b7276eb
%package        server
b7276eb
Summary:        Smart Network Automated Kickstart Environment Server
b7276eb
Group:          System Environment/Daemons
b7276eb
Requires:       %{name} = %{version}-%{release}
b7276eb
Requires:       mkinitrd chkconfig
b7276eb
Requires:       pykickstart >= 1.1
d1cbf56
Requires:       logrotate >= 3.5.2
8778757
%if 0%{?rhel} >= 5
8778757
BuildRequires:  pykickstart
8778757
%endif
8778757
%if 0%{?fedora} >= 7
8778757
BuildRequires:  pykickstart
8778757
%endif
b7276eb
b7276eb
b7276eb
%description server
b7276eb
snake-server provides utilities for serving installation trees and kickstart
b7276eb
templates to snake-client systems
b7276eb
b7276eb
b7276eb
%prep
5796dfe
%setup -q -n %{name}-%{version}-%{rel}
b7276eb
b7276eb
b7276eb
%build
e80b5c4
CFLAGS="$RPM_OPT_FLAGS" %{__python} -c 'import setuptools; execfile("setup.py")' build
b7276eb
b7276eb
b7276eb
%install
b7276eb
rm -rf $RPM_BUILD_ROOT
e80b5c4
%{__python} -c 'import setuptools; execfile("setup.py")' install --skip-build --root $RPM_BUILD_ROOT
e80b5c4
d1cbf56
install -d $RPM_BUILD_ROOT/%{_localstatedir}/lib/snake
80d0dc8
install -d $RPM_BUILD_ROOT/%{_localstatedir}/lib/snake/{kickstarts,templates,trees,machines}
b7276eb
b7276eb
b7276eb
%clean
b7276eb
rm -rf $RPM_BUILD_ROOT
b7276eb
b7276eb
b7276eb
%post server
b7276eb
/sbin/chkconfig --add snake-server
b7276eb
b7276eb
b7276eb
%preun server
b7276eb
if [ $1 -eq 0 ]; then
b7276eb
    /sbin/service snake-server stop >/dev/null 2>&1
b7276eb
    /sbin/chkconfig --del snake-server
b7276eb
fi
b7276eb
b7276eb
b7276eb
%files
b7276eb
%defattr(-,root,root,-)
d951676
%doc README LICENSE docs/DESIGN docs/cobbler.ks
b7276eb
%{_sbindir}/snake-install
b7276eb
%{_sbindir}/snake-install-tui
d178516
%{_sbindir}/snake-tree
8136fe2
%{_sbindir}/snake-machine
d178516
%{_sbindir}/snake-ks
b7276eb
%{_bindir}/snake-rawhide-status
b7276eb
%dir %{python_sitelib}/snake
b7276eb
%{python_sitelib}/snake/__init__.py*
d178516
%{python_sitelib}/snake/client.py*
d178516
%{python_sitelib}/snake/constants.py*
b7276eb
%{python_sitelib}/snake/dbushelper.py*
d178516
%{python_sitelib}/snake/install.py*
d178516
%{python_sitelib}/snake/log.py*
b7276eb
%{python_sitelib}/snake/machineinfo.py*
8136fe2
%{python_sitelib}/snake/machine.py*
b7276eb
%{python_sitelib}/snake/saverestore.py*
d178516
%{python_sitelib}/snake/tui.py*
8136fe2
%{python_sitelib}/snake/translate.py*
b7276eb
%{python_sitelib}/snake/tree.py*
d178516
%{python_sitelib}/snake/uri.py*
d178516
%{python_sitelib}/snake/util.py*
b7276eb
%{python_sitelib}/snake/xmlhelper.py*
d178516
%{python_sitelib}/snake/zeroconf.py*
5796dfe
%{python_sitelib}/snake-%{version}*.egg-info
d178516
%doc %{_mandir}/man1/snake-tree.1.gz
d178516
%doc %{_mandir}/man1/snake-ks.1.gz
d178516
%doc %{_mandir}/man1/snake-install.1.gz
b7276eb
b7276eb
c233232
%if %{build_server}
b7276eb
%files server
b7276eb
%defattr(-,root,root,-)
b7276eb
%{_sbindir}/snake-server
b7276eb
%dir %{_localstatedir}/lib/snake
b7276eb
%dir %{_localstatedir}/lib/snake/kickstarts
d178516
%{_localstatedir}/lib/snake/kickstarts/minimal.ks
c501a4d
%dir %{_localstatedir}/lib/snake/templates
c501a4d
%{_localstatedir}/lib/snake/templates/defaults.py*
b7276eb
%dir %{_localstatedir}/lib/snake/trees
8136fe2
%dir %{_localstatedir}/lib/snake/machines
b7276eb
%config(noreplace) %{_sysconfdir}/snake.conf
d1cbf56
%config(noreplace) %{_sysconfdir}/logrotate.d/snake-server
b7276eb
%{_sysconfdir}/init.d/snake-server
3da8820
%{python_sitelib}/snake/anamon.py*
b7276eb
%{python_sitelib}/snake/compose.py*
b7276eb
%{python_sitelib}/snake/config.py*
b7276eb
%{python_sitelib}/snake/dbushelper.py*
b7276eb
%{python_sitelib}/snake/kickstart.py*
8136fe2
%{python_sitelib}/snake/machinedb.py*
b7276eb
%{python_sitelib}/snake/plugins.py*
b7276eb
%{python_sitelib}/snake/ksdb.py*
b7276eb
%{python_sitelib}/snake/treedb.py*
c233232
%endif
b7276eb
b7276eb
b7276eb
%changelog
91d1326
* Fri Oct 23 2009 Milos Jakubicek <xjakub@fi.muni.cz> - 0.11-0.18
91d1326
- Fix FTBFS: bump release to be able to tag in new branch
91d1326
e26dd04
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.11-0.17
e26dd04
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
e26dd04
beafaf1
* Fri Jun 19 2009 James Laska <jlaska@redhat.com> 0.11-0.16
beafaf1
- Correct missing import in examples/defaults.py
beafaf1
ef6fd84
* Wed Jun 17 2009 James Laska <jlaska@redhat.com> 0.11-0.15
ef6fd84
- ticket#67 - For F11 and newer, specify a UI method if template does not
ef6fd84
  provide one
ef6fd84
- ticket#66 - Snake will use grubby --copy-default to retain any existing
ef6fd84
  required boot arguments
ef6fd84
- Improve handling of non-anonymous FTP URL's
ef6fd84
7ae1ec4
* Mon Mar 2 2009 James Laska <jlaska@redhat.com> 0.11-0.14
7ae1ec4
- Bump to work around previous koji tag
7ae1ec4
e6ab2ba
* Mon Mar 2 2009 James Laska <jlaska@redhat.com> 0.11-0.13
4ea3945
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
4ea3945
d951676
* Mon Jan 5 2009 James Laska <jlaska@redhat.com> 0.11-0.12
d951676
- Minor fix to cobbler template and move %doc into base package (jlaska)
d951676
80d0dc8
* Thu Dec 18 2008 James Laska <jlaska@redhat.com> 0.11-0.11
80d0dc8
- ticket#64 - only parse kickstarts when requested during snake-ks generate
80d0dc8
  (jlaska)
80d0dc8
80d0dc8
* Fri Aug 29 2008 James Laska <jlaska@redhat.com> 0.11-0.10
80d0dc8
- ticket#54 - correct for older grubby that can't handle --title that contains
80d0dc8
  spaces (jlaska)
80d0dc8
- handle version parsing problems by falling back to "devel" (wwoods)
2d5c0fa
3da8820
* Mon Jul 28 2008 James Laska <jlaska@redhat.com> 0.11-0.9
3da8820
- ticket#60 - Added snake/anamon.py to packaging
3da8820
7a8d17d
* Mon Jul 28 2008 James Laska <jlaska@redhat.com> 0.11-0.8
7a8d17d
- ticket#59 - snake-install-tui will auto-register an unregistered system when
7a8d17d
  using server-side kickstarts
7a8d17d
- ticket#57 - Fixed snake-install -c argument handling
7a8d17d
- Enable 'writefp' support for python templates
7a8d17d
8136fe2
* Tue Jun 17 2008 James Laska <jlaska@redhat.com> 0.11-0.7
8136fe2
- ticket#56 - Fixed translate.py traceback for older python
8136fe2
8136fe2
* Tue Jun 13 2008 James Laska <jlaska@redhat.com> 0.11-0.6
8136fe2
- ticket#37 - snake-server support for hosting http,ftp and nfs kickstarts
8136fe2
- ticket#42 - snake/tui.py - add ksmethod selection screen
8136fe2
- snake-install-tui should remember the selected tree
8136fe2
- ticket#53 - Add snake-ks --ksmeta parameter to pass optional values to the
8136fe2
  python kickstart template.
8136fe2
- Add snake-machine check to ensure xmlrpc server supports machine.* methods
8136fe2
- Include /var/lib/snake/machines in spec file
8136fe2
- ticket#11 - Removed xml support from compose.py and tree.py
8136fe2
- Dropped snake-server labquery.py, labindex.py, and server.py
8136fe2
8136fe2
* Wed May 16 2008 James Laska <jlaska@redhat.com> 0.11-0.5
8136fe2
- ticket#51 - Call ybin or zipl when appropriate after updating grubby
8136fe2
- ticket#39 - add snake-install cmdline arg support
8136fe2
- ticket#25 - added a snake/tui boot argument screen
8136fe2
- ticket#52 - snake.tree _makename and __str__ result in the same name
8136fe2
5796dfe
* Wed Apr 16 2008 James Laska <jlaska@redhat.com> 0.11-0.4
5796dfe
- ticket#13 - snake-install-tui will politely display "No boot images found"
5796dfe
- ticket#43 - snake-install-tui won't choke on a mal-formed .treeinfo
5796dfe
- ticket#49 - snake/uri.py uses virtinst ImageFetcher code and will perform nfs
5796dfe
  [u]mounts as needed
5796dfe
- ticket#32 - fixed snake/log such that any verbosity settings apply to the
5796dfe
  root logger
5796dfe
5796dfe
* Wed Mar 26 2008 James Laska <jlaska@redhat.com> 0.11-0.3
5796dfe
- ticket#50 - Updated include release number in tarball name
5796dfe
2b77f3f
* Tue Mar 18 2008 James Laska <jlaska@redhat.com> 0.11-0.2
2b77f3f
- uninitialized variable fix in snake/tui.py
2b77f3f
- limit content in snack windows to maximum window width
2b77f3f
16cc16c
* Tue Mar 18 2008 James Laska <jlaska@redhat.com> 0.11-0.1
16cc16c
- ticket#48 - fixed string replacement issue while reading /etc/mtab
16cc16c
- snake/zeroconf.py - find_servers fix bug where AllForNow event received
16cc16c
  before ResolveServer responded (jlaska)
16cc16c
- ticket#46 - replaced SNAKE_SERVER with SNAKE_SERVER and SNAKE_PORT (jlaska)
16cc16c
- Updated snake/zeroconf.py to return multiple snake servers to the user
16cc16c
  (jlaska)
16cc16c
8778757
* Fri Feb 12 2008 James Laska <jlaska@redhat.com> 0.10-0.8
8778757
- Added missing BuildRequires so that pykickstart.version can be inspected
8778757
c501a4d
* Fri Feb 12 2008 James Laska <jlaska@redhat.com> 0.10-0.7
c501a4d
- Improved snake-server logging by subclassing XMLRPCServer objects (jlaska)
c501a4d
- Added missing %dir to snake.spec for templatedir (jlaska)
c501a4d
d1cbf56
* Thu Feb 11 2008 James Laska <jlaska@redhat.com> 0.10-0.6
d1cbf56
- ticket#14 - added back support for pykickstart templates (jlaska)
d1cbf56
- snake-tree and snake-ks will make use of a server config file when running
d1cbf56
  against a local db (jlaska)
d1cbf56
- Added logrotate script to snake-server package (jlaska)
d1cbf56
- ticket#41 - removed optparse default= ... let snake.config handle that (jlaska)
d1cbf56
- ticket#44 - snake-install-tui shouldn't try to parse the tree if snake-server
d1cbf56
  already did (jlaska)
d1cbf56
867a11c
* Mon Jan 28 2008 James Laska <jlaska@redhat.com> 0.10-0.5
867a11c
- RHEL5 doesn't like when snake/tui.py calls screen.pop() multiple times
867a11c
c233232
* Tue Jan 24 2008 James Laska <jlaska@redhat.com> 0.10-0.4git
c233232
- Bug#429479 - conditionally build the snake-server sub-package only when
c233232
  pykickstart.version is found (jlaska)
c233232
- Move more constants to snake/constants.py (jlaska)
c233232
- snake/tree.py - _fill_in_images() called when .treeinfo images are not found (jlaska)
c233232
f9d25d2
* Wed Jan 17 2008 James Laska <jlaska@redhat.com> 0.10-0.3git
f9d25d2
- Add back python-devel for older Fedora building (jlaska)
f9d25d2
- Remove ListChoiceWindow in favor of snack.ListboxChoiceWindow (jlaska)
f9d25d2
e80b5c4
* Wed Jan 16 2008 James Laska <jlaska@redhat.com> 0.10-0.2git
f9d25d2
- Fix snake.spec for better handling of F9 .egg-info files (jlaska)
e80b5c4
e80b5c4
* Tue Jan 15 2008 James Laska <jlaska@redhat.com> 0.10-0.1git
d178516
- Ticket#6 - Initial support for alternative kickstart delivery support (jlaska)
d178516
- Created man pages (snake-install, snake-ks, and snake-tree) (jlaska)
d178516
- Created man pages (snake-install, snake-ks, and snake-tree) (jlaska)
d178516
- Ticket#31 - added sample minimal.ks template (jlaska)
d178516
- Ticket#15 - make cli tools operate on remote server (jlaska)
d178516
- Ticket#34 - added 'describe' and 'rename' cmds to snake-ks (jlaska)
d178516
- Move tree verification to snake.client.check_tree with proper return codes (wwoods)
d178516
- Ticket#10 - created snake/tui.py to handle text-mode snack screens (jlaska)
d178516
b7276eb
* Thu Dec 3 2007 James Laska <jlaska@redhat.com> 0.9-0.5git
b7276eb
- Fix bug#12 - make snake-install python2.3 friendly (jlaska)
b7276eb
- Support for ext2 initrd's (jlaska)
b7276eb
b7276eb
* Thu Nov 21 2007 James Laska <jlaska@redhat.com> 0.9-0.4git
b7276eb
- Fedora package review clean up (jlaska)
b7276eb
b7276eb
* Thu Nov 20 2007 James Laska <jlaska@redhat.com> 0.9-0.3git
b7276eb
- Use tree.version when generating kickstart (wwoods)
b7276eb
b7276eb
* Thu Nov 19 2007 James Laska <jlaska@redhat.com> 0.9-0.2git
b7276eb
- Support for loading NFS uri's (jlaska)
b7276eb
- Support for loading .discinfo files (wwoods+jlaska)
b7276eb
b7276eb
* Thu Nov 16 2007 James Laska <jlaska@redhat.com> 0.9-0.1git
b7276eb
- New snake-install, snake-install-tui, snake-tree, snake-ks cmdline utilities (wwoods)
b7276eb
- Cleanup packaging (jlaska)
b7276eb
b7276eb
* Thu Jun 13 2007 James Laska <jlaska@redhat.com> 0.8-1
b7276eb
- Cleaned up source tree (jlaska)
b7276eb
- Added license information (mzazrivec)
b7276eb
- Added file client save/restore support (mzazrivec)
b7276eb
- Added snake-genks to test pykickstart template generation (wwoods)
b7276eb
- Change to python-sqlobject to model tree information (jlaska)
b7276eb
- Improve architecture detection by using rpmUtils.arch (getBaseArch and getCanonArch) (jlaska)
b7276eb
b7276eb
* Thu Mar 2 2007 James Laska <jlaska@redhat.com> 0.7-1
b7276eb
- Machine registration is now controlled by plugins on the snake-server (mzazrivec)
b7276eb
- Support for .treeinfo and .composeinfo parsing (wwoods)
b7276eb
- snake-server now refreshes in-memory tree list on a timer pop (mzazrivec)
b7276eb
- snake-client supports nfs installs (jlaska)
b7276eb
b7276eb
* Thu Feb 8 2007 Will Woods <wwoods@redhat.com> 0.6-1
b7276eb
- Default to using internal webserver for http urls unless http_root is set
b7276eb
- Fixes for updated dbus bindings (make sure dbus strings are marshallable)
b7276eb
- Stop using deprecated dbus.dbus_bindings.DBusException
b7276eb
- Fixes to use pykickstart-0.91 or higher (kickstart versioning support!)
b7276eb
- Fixes for cElementTree move in python 2.5
b7276eb
- snake-client works on RHEL4 (python 2.3) systems
b7276eb
b7276eb
* Fri Jan 5 2007 Will Woods <wwoods@redhat.com> 0.5-1
b7276eb
- merge snake.hack into mkcache.py
b7276eb
- fix 'generic' installations on unregistered machines (mzazrivec)
b7276eb
- snake-server passes server config data to plugins
b7276eb
- plugin call changed to (item,**context)
b7276eb
- add flags to snake-client to allow kickstart overrides (--lang,--packages)
b7276eb
- 'snake' is softlinked to snake-client
b7276eb
b7276eb
* Wed Dec 19 2006 Will Woods <wwoods@redhat.com> 0.4-6
b7276eb
- snake-server now uses kickstart_hook plugins
b7276eb
- Add plugins dir and a couple of default plugins
b7276eb
b7276eb
* Wed Dec 07 2006 James Laska <jlaska@redhat.com> 0.4-4
b7276eb
- Break out package into snake and snake-server sub packages
b7276eb
b7276eb
* Wed Nov 29 2006 James Laska <jlaska@redhat.com> 0.4-3
b7276eb
- Added snake-server runlevel script
b7276eb
- Added --list-templates flag to snake-client
b7276eb
- Kickstart templates now perform a fully hands-free install
b7276eb
b7276eb
* Tue Nov 28 2006 Will Woods <wwoods@redhat.com> 0.4-2
b7276eb
- Improve plugin.py to do kickstart template loading
b7276eb
- Add initial kickstart template support to snake-server
b7276eb
- Add some generic templates, with examples in doc/
b7276eb
- Add basic kickstart template use to snake-client
b7276eb
b7276eb
* Wed Nov 15 2006 Will Woods <wwoods@redhat.com> 0.4-1
b7276eb
- add machine.py, plugin.py, kickstart.py
b7276eb
- make snake-client use avahi stuff
b7276eb
- xml metadata is in dotfiles now
b7276eb
- plugin architecture with example plugin
b7276eb
b7276eb
* Wed Nov 1 2006 Will Woods <wwoods@redhat.com> 0.3-1
b7276eb
- snake-client can actually kick off an install!
b7276eb
b7276eb
* Tue Oct 31 2006 Will Woods <wwoods@redhat.com> 0.2-1
b7276eb
- Add binaries to sbindir and docs, bump version
b7276eb
b7276eb
* Wed Oct 25 2006 Will Woods <wwoods@redhat.com> 0.1-1
b7276eb
- Initial attempt at packaging