File baracus.spec of Package baracus
# norootforbuild
Summary: Tool to create network install build source and manage host builds
Name: baracus
Version: 1.6.2
Release: 0
Group: System/Services
License: GPLv2 or Artistic V2
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
Source: %{name}-%{version}.tar.bz2
Source1: sysconfig.%{name}
Source2: initd.%{name}d
Source3: sysconfig.%{name}db
Source4: initd.%{name}db
Source5: apache.baracus.conf
Source6: apache.baracus-webserver.conf
Requires: apache2, apache2-mod_perl, perl-Apache-DBI, pidentd, sudo
Requires: perl, perl-XML-Simple, perl-libwww-perl, perl-Data-UUID
Requires: perl-Config-General
Requires: perl-TermReadKey, perl-DBI, perl-DBD-Pg, perl-Tie-IxHash
Requires: perl-IO-Interface, perl-Net-Netmask, perl-XML-LibXSLT
Requires: rsync, dhcp-server, postgresql-server, createrepo, fence
Requires: samba, samba-client, ipmitool, dropbear
Requires: baracus-kernel
BuildRequires: gcc-c++
%if 0%{?suse_version} < 1030
Requires: nfs-utils
%else
Requires: nfs-kernel-server
%endif
%if 0%{?suse_version} >= 1110
Requires: libvirt
%endif
# Remote logging requires syslog-ng installed
Requires: syslog-ng
PreReq: %insserv_prereq %fillup_prereq pwdutils
PreReq: /usr/sbin/groupadd /usr/sbin/useradd /sbin/chkconfig
%description
Baracus is a collection of tools to simplify the retrevial of distribution
and add-on media, building distribution trees, creation and management of
a network install server, and maintain a collection of build templates for
rapid PXE boot installs of a collection of build clients.
%package webserver
Summary: Separate package for the baracus server web interface
Group: System/Services
Requires: baracus = %{version}
%description webserver
Baracus is composed of many services and a command line interface.
This package provides a web interface to these services.
%prep
%setup -q
%build
pushd usr/share/baracus/utils
CFLAGS="$RPM_OPT_FLAGS" CPPFLAGS="$RPM_OPT_FLAGS" make
popd
%install
mkdir -p %{buildroot}
cp -r $PWD/* %{buildroot}/.
install -D -m644 %{S:1} %{buildroot}/var/adm/fillup-templates/sysconfig.%{name}
install -D -m755 %{S:2} %{buildroot}%{_initrddir}/%{name}d
ln -s ../..%{_initrddir}/%{name}d %{buildroot}%{_sbindir}/rc%{name}d
install -D -m644 %{S:3} %{buildroot}/var/adm/fillup-templates/sysconfig.%{name}db
%if 0%{?suse_version} > 1110
sed -ire 's/ident sameuser/ident/' %{S:4}
%endif
install -D -m755 %{S:4} %{buildroot}%{_initrddir}/%{name}db
ln -s ../..%{_initrddir}/%{name}db %{buildroot}%{_sbindir}/rc%{name}db
install -D -m644 %{S:5} %{buildroot}/etc/apache2/conf.d/%{name}.conf
install -D -m644 %{S:6} %{buildroot}/etc/apache2/conf.d/%{name}-webserver.conf
chmod -R 700 %{buildroot}%{_datadir}/%{name}/gpghome
mkdir %{buildroot}/var/spool/%{name}/isos
mkdir %{buildroot}/var/spool/%{name}/images
mkdir %{buildroot}/var/spool/%{name}/logs
mkdir %{buildroot}/var/spool/%{name}/pgsql
mkdir %{buildroot}/var/spool/%{name}/www/tmp
mkdir -p %{buildroot}/var/spool/%{name}/builds/winstall/import/amd64
mkdir -p %{buildroot}/var/spool/%{name}/builds/winstall/import/x86
mkdir %{buildroot}/var/spool/%{name}/www/htdocs/pool
install -D -m755 %{buildroot}/usr/share/baracus/utils/pfork.bin %{buildroot}/var/spool/%{name}/www/modules/pfork.bin
install -D -m755 %{buildroot}/usr/share/baracus/utils/sparsefile %{buildroot}/usr/bin/sparsefile
rm -rf %{buildroot}/usr/share/baracus/utils
rm -rf %{buildroot}/var/spool/baracus/templates
rm %{buildroot}/var/spool/baracus/www/htdocs/blank.html
%clean
rm -rf %{buildroot}
%pre
groupadd -g 162 -o -r baracus >&/dev/null || :
useradd -g baracus -o -r -d /var/spool/baracus -s /bin/bash -c "Baracus Server" -u 162 baracus >&/dev/null || :
%post
%{fillup_and_insserv -n baracus baracusd}
%{fillup_and_insserv -n baracusdb baracusdb}
%preun
%stop_on_removal baracusd baracusdb
%postun
%restart_on_update baracusdb baracusd apache2
%insserv_cleanup
%postun webserver
%restart_on_update apache2
%insserv_cleanup
%files webserver
%defattr(-,root,root)
/var/spool/%{name}/www/htdocs
/var/spool/%{name}/www/cgi-bin
%attr(755,wwwrun,www) %dir /var/spool/%{name}/www/htdocs/pool
%config %{_sysconfdir}/apache2/conf.d/%{name}-webserver.conf
%files
%defattr(-,root,root)
/var/adm/fillup-templates/*
%doc %{_mandir}/man?/*
%{_sbindir}/*
%{_bindir}/*
%config %{_initrddir}/%{name}d
%config %{_initrddir}/%{name}db
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/data
%doc %{_datadir}/%{name}/*.xml
%doc %{_datadir}/%{name}/doc
%{_datadir}/%{name}/data/*
%{_datadir}/%{name}/driverupdate
%{_datadir}/%{name}/profile_default
%{_datadir}/%{name}/templates
%{_datadir}/%{name}/perl
%{_datadir}/%{name}/gpghome
%{_datadir}/%{name}/scripts
%dir %{_sysconfdir}/apache2
%dir %{_sysconfdir}/apache2/conf.d
%config %{_sysconfdir}/apache2/conf.d/%{name}.conf
%attr(755,baracus,users) %dir /var/spool/%{name}
%attr(755,baracus,users) %dir /var/spool/%{name}/builds
%attr(-,root,root) /var/spool/%{name}/builds/*
%attr(-,root,root) /var/spool/%{name}/isos
%attr(755,baracus,users) /var/spool/%{name}/images
%attr(-,root,root) /var/spool/%{name}/logs
%attr(-,root,root) /var/spool/%{name}/hooks
%attr(-,root,root) /var/spool/%{name}/pgsql
%attr(755,root,root) %dir /var/spool/%{name}/www
%attr(755,root,root) /var/spool/%{name}/www/ba
%attr(755,root,root) /var/spool/%{name}/www/modules
%attr(755,wwwrun,www) %dir /var/spool/%{name}/www/tmp
%changelog