%define product_family oVirt Node %define beta Beta Summary: The oVirt Node daemons/scripts Name: ovirt-node Version: 1.0.2 Release: 0%{?dist}%{?extra_release} Source0: %{name}-%{version}.tar.gz License: GPLv2+ Group: Applications/System %define selinux_variants mls strict targeted minimum %define selinux_policyver %(sed -n 's,.*selinux-policy-\([^/]*\)/.*,\1,p' /usr/share/selinux/devel/policyhelp) %define modulename %{name}-selinux Source1: %{modulename}.te Source2: %{modulename}.fc BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot URL: http://www.ovirt.org/ Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig BuildRequires: libvirt-devel >= 0.5.1 BuildRequires: dbus-devel hal-devel Requires: libvirt >= 0.5.1 Requires: augeas >= 0.3.5 Requires: libvirt-qpid >= 0.2.14-3 Requires: hal Requires: collectd-virt Requires: wget Requires: cyrus-sasl-gssapi cyrus-sasl cyrus-sasl-lib Requires: iscsi-initiator-utils Requires: ntp Requires: nfs-utils Requires: krb5-workstation Requires: bash Requires: chkconfig Requires: bind-utils # Stupid yum dep solver pulls in older 'qemu' to resolve # /usr/bin/qemu-img dep. This forces it to pick the new # qemu-img RPM. Requires: qemu-img Requires: nc Requires: grub Requires: /usr/sbin/crond Requires: anyterm # selunx-stuff BuildRequires: checkpolicy, selinux-policy-devel, hardlink %if "%{selinux_policyver}" != "" Requires: selinux-policy >= %{selinux_policyver} %endif Requires(post): /usr/sbin/semodule, /sbin/restorecon Requires(postun): /usr/sbin/semodule, /sbin/restorecon ExclusiveArch: %{ix86} x86_64 %define app_root %{_datadir}/%{name} %description Provides a series of daemons and support utilities to allow an oVirt Node to interact with the oVirt Server. This package should only be installed on the oVirt Node machine. %prep %setup -q mkdir SELinux cp -p %{SOURCE1} %{SOURCE2} SELinux %build %configure make cd SELinux for selinuxvariant in %{selinux_variants}; do make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile mv %{modulename}.pp %{modulename}.pp.${selinuxvariant} make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile clean done cd - %install %{__rm} -rf %{buildroot} # FIXME move installs into makefile %{__install} -d -m0755 %{buildroot}%{_sbindir} %{__install} -d -m0755 %{buildroot}%{_sysconfdir} %{__install} -d -m0755 %{buildroot}%{_sysconfdir}/chkconfig.d %{__install} -d -m0755 %{buildroot}%{_initrddir} %{__install} -d -m0755 %{buildroot}%{app_root} %{__install} -d -m0755 %{buildroot}%{_sysconfdir}/cron.d %{__install} -d -m0755 %{buildroot}%{_sysconfdir}/cron.hourly %{__install} -d -m0755 %{buildroot}%{_sysconfdir}/logrotate.d %{__install} -p -m0755 scripts/ovirt-awake %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-boot %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-boot-wrapper %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-collectd %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-hostname %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-logging %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-networking %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-password %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-setup %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-storage %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-config-uninstall %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/ovirt-process-config %{buildroot}%{_sbindir} %{__install} -D -m0755 scripts/ovirt-install-node-stateful %{buildroot}%{_sbindir} %{__install} -D -m0755 scripts/ovirt-install-node-stateless %{buildroot}%{_sbindir} %{__install} -D -m0755 scripts/ovirt-uninstall-node-stateful %{buildroot}%{_sbindir} %{__install} -D -m0755 scripts/ovirt-config-view-logs %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/persist %{buildroot}%{_sbindir} %{__install} -p -m0755 scripts/unpersist %{buildroot}%{_sbindir} # gptsync %{__install} -p -m0755 gptsync/gptsync %{buildroot}%{_sbindir} %{__install} -p -m0755 gptsync/showpart %{buildroot}%{_sbindir} # %{__install} -p -m0755 scripts/ovirt-functions %{buildroot}%{_initrddir} %{__install} -p -m0755 scripts/ovirt-early %{buildroot}%{_initrddir} %{__install} -p -m0755 scripts/ovirt-firstboot %{buildroot}%{_initrddir} %{__install} -p -m0755 scripts/ovirt %{buildroot}%{_initrddir} %{__install} -p -m0755 scripts/ovirt-post %{buildroot}%{_initrddir} %{__install} -p -m0644 scripts/collectd %{buildroot}%{_sysconfdir}/chkconfig.d %{__install} -p -m0644 scripts/collectd.conf.in %{buildroot}%{_sysconfdir} %{__install} -p -m0755 kinit/ovirt-kinit %{buildroot}%{_sysconfdir}/cron.hourly %{__install} -p -m0644 logrotate/ovirt-logrotate %{buildroot}%{_sysconfdir}/cron.d %{__install} -p -m0644 logrotate/ovirt-logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d echo "oVirt Node release %{version}-%{release}" > %{buildroot}%{_sysconfdir}/ovirt-release mkdir -p %{buildroot}/%{_sysconfdir}/default touch %{buildroot}/%{_sysconfdir}/default/ovirt cd SELinux for selinuxvariant in %{selinux_variants}; do install -d %{buildroot}%{_datadir}/selinux/${selinuxvariant} install -p -m 644 %{modulename}.pp.${selinuxvariant} \ %{buildroot}%{_datadir}/selinux/${selinuxvariant}/%{modulename}.pp done cd - /usr/sbin/hardlink -cv %{buildroot}%{_datadir}/selinux # ovirt-config-boot post-install hooks %{__install} -d -m0755 %{buildroot}%{_sysconfdir}/ovirt-config-boot.d # default ovirt-config-setup menu options %{__install} -d -m0755 %{buildroot}%{_sysconfdir}/ovirt-config-setup.d %{__ln_s} ../..%{_sbindir}/ovirt-config-storage %{buildroot}%{_sysconfdir}/ovirt-config-setup.d/"00_Disk Partitioning" %{__ln_s} ../..%{_sbindir}/ovirt-config-password %{buildroot}%{_sysconfdir}/ovirt-config-setup.d/"05_Administrator Password" %{__ln_s} ../..%{_sbindir}/ovirt-config-hostname %{buildroot}%{_sysconfdir}/ovirt-config-setup.d/"10_Set Hostname" %{__ln_s} ../..%{_sbindir}/ovirt-config-networking %{buildroot}%{_sysconfdir}/ovirt-config-setup.d/"15_Networking Setup" %{__ln_s} ../..%{_sbindir}/ovirt-config-logging %{buildroot}%{_sysconfdir}/ovirt-config-setup.d/"30_Logging Setup" %{__ln_s} ../..%{_sbindir}/ovirt-config-collectd %{buildroot}%{_sysconfdir}/ovirt-config-setup.d/"35_Collectd Setup" %{__ln_s} ../..%{_sbindir}/ovirt-config-view-logs %{buildroot}%{_sysconfdir}/ovirt-config-setup.d/"90_View logs" %{__ln_s} ../..%{_sbindir}/ovirt-config-boot-wrapper %{buildroot}%{_sysconfdir}/ovirt-config-setup.d/"98_Local install and reboot" %{__ln_s} ../..%{_sbindir}/ovirt-config-uninstall %{buildroot}%{_sysconfdir}/ovirt-config-setup.d/"99_Uninstall node" # ovirt-logos # should be ifarch i386 mkdir -p %{buildroot}%{app_root}/images install -p -m 644 images/grub-splash.xpm.gz %{buildroot}%{app_root}/images/splash.xpm.gz # end i386 bits install -p -m 644 images/syslinux-vesa-splash.jpg %{buildroot}%{app_root}/images/ # ovirt-logos %clean %{__rm} -rf %{buildroot} %post # Setup basic collectd configuration sed '//,/<\/Plugin>/d' /etc/collectd.conf.in > /etc/collectd.conf /sbin/chkconfig --add ovirt-early /sbin/chkconfig --add ovirt-firstboot /sbin/chkconfig --add ovirt /sbin/chkconfig --add ovirt-post # this is ugly; we need collectd to start *after* libvirtd, so we own the # /etc/chkconfig.d/collectd file, and then have to re-define collectd here /sbin/chkconfig --add collectd for selinuxvariant in %{selinux_variants}; do /usr/sbin/semodule -s ${selinuxvariant} -i \ %{_datadir}/selinux/${selinuxvariant}/%{modulename}.pp &> /dev/null || : done %files %defattr(-,root,root) %attr(0644,root,root) /etc/ovirt-release #logos %doc COPYING # should be ifarch i386 %{app_root}/images/splash.xpm.gz # end i386 bits %{app_root}/images/*.jpg # selinux-stuff %defattr(-,root,root,0755) %doc SELinux/* %{_datadir}/selinux/*/%{modulename}.pp %{_sbindir}/ovirt-awake %{_sbindir}/ovirt-config-boot %{_sbindir}/ovirt-config-boot-wrapper %{_sbindir}/ovirt-config-collectd %{_sbindir}/ovirt-config-hostname %{_sbindir}/ovirt-config-logging %{_sbindir}/ovirt-config-networking %{_sbindir}/ovirt-config-password %{_sbindir}/ovirt-config-setup %{_sbindir}/ovirt-config-storage %{_sbindir}/ovirt-config-uninstall %{_sbindir}/ovirt-config-view-logs %{_sbindir}/ovirt-process-config %{_sbindir}/ovirt-install-node-stateless %{_sbindir}/gptsync %{_sbindir}/showpart %{_sbindir}/persist %{_sbindir}/unpersist %{_initrddir}/ovirt-early %{_initrddir}/ovirt-firstboot %{_initrddir}/ovirt %{_initrddir}/ovirt-post %config %{_sysconfdir}/cron.hourly/ovirt-kinit %config %{_sysconfdir}/logrotate.d/ovirt-logrotate.conf %config %{_sysconfdir}/cron.d/ovirt-logrotate %{_sysconfdir}/ovirt-config-boot.d %{_sysconfdir}/ovirt-config-setup.d %{_sbindir}/ovirt-install-node-stateful %{_sbindir}/ovirt-uninstall-node-stateful %{_sbindir}/ovirt-awake %{_initrddir}/ovirt-functions %defattr(-,root,root,0644) %{_sysconfdir}/collectd.conf.in %{_sysconfdir}/chkconfig.d/collectd %config %attr(0644,root,root) %{_sysconfdir}/ovirt-release %config %attr(0644,root,root) %{_sysconfdir}/default/ovirt %changelog * Thu Jun 23 2009 David Huff - 0.97 - Removed subpackages, stateful, stateless, logos, and selinux for inclusuion in Fedora * Thu Dec 11 2008 Perry Myers - 0.96 - Subpackage stateful/stateless to separate out functionality for embedded Node and Node running as part of already installed OS - ovirt-config-* setup scripts for standalone mode * Thu Sep 11 2008 Chris Lalancette - 0.92 0.7 - Add the ovirt-install- and ovirt-uninstall-node scripts, and refactor post to accomodate * Mon Sep 8 2008 Jim Meyering - 0.92 0.6 - Update ovirt-identify-node's build rule. * Fri Aug 22 2008 Chris Lalancette - 0.92 0.5 - Add the ovirt-listen-awake daemon to the RPM * Fri Aug 22 2008 Chris Lalancette - 0.92 0.4 - Re-arrange the directory layout, in preparation for ovirt-listen-awake * Tue Jul 29 2008 Perry Myers - 0.92 0.2 - Added /etc/ovirt-release and merged ovirt-setup into spec file * Wed Jul 02 2008 Darryl Pierce - 0.92 0.2 - Added log rotation to limit file system writes. * Mon Jun 30 2008 Perry Myers - 0.92 0.1 - Add in sections of kickstart post, general cleanup