[cobbler] Cleanup and align spec with upstream

Orion Poplawski orion at fedoraproject.org
Wed Jul 16 21:22:13 UTC 2014


commit 881845edfe91217d22a1dc2608631f18492c3207
Author: Orion Poplawski <orion at cora.nwra.com>
Date:   Wed Jul 16 15:21:55 2014 -0600

    Cleanup and align spec with upstream

 cobbler.spec |  219 +++++++++++++++++++++++++---------------------------------
 1 files changed, 95 insertions(+), 124 deletions(-)
---
diff --git a/cobbler.spec b/cobbler.spec
index 3bd96b5..6fc8ff6 100644
--- a/cobbler.spec
+++ b/cobbler.spec
@@ -1,11 +1,16 @@
-%if 0%{?rhel} && 0%{?rhel} <= 6
 %{!?__python2: %global __python2 /usr/bin/python2}
 %{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
 %{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
-%endif
 
-%define _binaries_in_noarch_packages_terminate_build 0
 %global debug_package %{nil}
+%define _binaries_in_noarch_packages_terminate_build 0
+
+%if 0%{?fedora} || 0%{?rhel} >= 6
+%global tftp_dir /var/lib/tftpboot/
+%else
+%global tftp_dir /tftpboot/
+%endif
+
 Summary: Boot server configurator
 Name: cobbler
 License: GPLv2+
@@ -18,7 +23,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
 BuildArch: noarch
 Url: http://www.cobblerd.org/
 
-BuildRequires: redhat-rpm-config
 BuildRequires: git
 BuildRequires: python2-devel
 BuildRequires: PyYAML
@@ -61,10 +65,9 @@ Requires(preun): /sbin/service
 %endif
 
 %description
-
-Cobbler is a network install server.  Cobbler supports PXE,
-virtualized installs, and re-installing existing Linux machines.  The
-last two modes use a helper tool, 'koan', that integrates with
+Cobbler is a network install server.  Cobbler supports PXE, ISO
+virtualized installs, and re-installing existing Linux machines.
+The last two modes use a helper tool, 'koan', that integrates with
 cobbler.  There is also a web interface 'cobbler-web'.  Cobbler's
 advanced features include importing distributions from DVDs and rsync
 mirrors, kickstart templating, integrated yum mirroring, and built-in
@@ -80,161 +83,125 @@ other applications.
 %install
 test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT
 %{__python2} setup.py install --skip-build --root=$RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/etc/httpd/conf.d
-mv config/cobbler.conf $RPM_BUILD_ROOT/etc/httpd/conf.d/
-mv config/cobbler_web.conf $RPM_BUILD_ROOT/etc/httpd/conf.d/
 
-mkdir -p $RPM_BUILD_ROOT/var/spool/koan
+# cobbler
+rm $RPM_BUILD_ROOT%{_sysconfdir}/cobbler/cobbler.conf
+
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
+mv $RPM_BUILD_ROOT%{_sysconfdir}/cobbler/cobblerd_rotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/cobblerd
 
-%if 0%{?fedora} || 0%{?rhel} > 5
-mkdir -p $RPM_BUILD_ROOT/var/lib/tftpboot/images
+mkdir -p $RPM_BUILD_ROOT%{tftp_dir}/images
+
+%if 0%{?rhel} == 6
+# sysvinit
+mkdir -p %{_sysconfdir}/init.d
+mv $RPM_BUILD_ROOT%{_sysconfdir}/cobbler/cobblerd $RPM_BUILD_ROOT%{_sysconfdir}/init.d/cobblerd
+rm $RPM_BUILD_ROOT%{_sysconfdir}/cobbler/cobblerd.service
 %else
-mkdir -p $RPM_BUILD_ROOT/tftpboot/images
+# systemd
+rm $RPM_BUILD_ROOT%{_sysconfdir}/cobbler/cobblerd
+rm $RPM_BUILD_ROOT%{_sysconfdir}/init.d/cobblerd
+mkdir -p $RPM_BUILD_ROOT%{_unitdir}
+mv $RPM_BUILD_ROOT%{_sysconfdir}/cobbler/cobblerd.service $RPM_BUILD_ROOT%{_unitdir}
 %endif
 
-rm -f $RPM_BUILD_ROOT/etc/cobbler/cobblerd
+# cobbler-web
+rm $RPM_BUILD_ROOT%{_sysconfdir}/cobbler/cobbler_web.conf
 
-%if 0%{?fedora} || 0%{?rhel} >= 7
-rm -rf $RPM_BUILD_ROOT/etc/init.d
-mkdir -p $RPM_BUILD_ROOT%{_unitdir}
-install -m0644 config/cobblerd.service $RPM_BUILD_ROOT%{_unitdir}
+# koan
+mkdir -p $RPM_BUILD_ROOT/var/spool/koan
 
-%post
-%systemd_post cobblerd.service
-if [ "$1" -ge "2" ]; then
-    # backup config
-    if [ -e /var/lib/cobbler/distros ]; then
-        cp /var/lib/cobbler/distros*  /var/lib/cobbler/backup 2>/dev/null
-        cp /var/lib/cobbler/profiles* /var/lib/cobbler/backup 2>/dev/null
-        cp /var/lib/cobbler/systems*  /var/lib/cobbler/backup 2>/dev/null
-        cp /var/lib/cobbler/repos*    /var/lib/cobbler/backup 2>/dev/null
-        cp /var/lib/cobbler/networks* /var/lib/cobbler/backup 2>/dev/null
-    fi
-    if [ -e /var/lib/cobbler/config ]; then
-        cp -a /var/lib/cobbler/config    /var/lib/cobbler/backup 2>/dev/null
+
+%pre
+if (( $1 >= 2 )); then
+    # package upgrade: backup configuration
+    DATE=$(date "+%Y%m%d-%H%M%S")
+    if [[ ! -d /var/lib/cobbler/backup/upgrade-${DATE} ]]; then
+        mkdir -p /var/lib/cobbler/backup/upgrade-${DATE}
     fi
-    # upgrade older installs
-    # move power and pxe-templates from /etc/cobbler, backup new templates to *.rpmnew
-    for n in power pxe; do
-      rm -f /etc/cobbler/$n*.rpmnew
-      find /etc/cobbler -maxdepth 1 -name "$n*" -type f | while read f; do
-        newf=/etc/cobbler/$n/`basename $f`
-        [ -e $newf ] &&  mv $newf $newf.rpmnew
-        mv $f $newf
-      done
-    done
-    # upgrade older installs
-    # copy kickstarts from /etc/cobbler to /var/lib/cobbler/kickstarts
-    rm -f /etc/cobbler/*.ks.rpmnew
-    find /etc/cobbler -maxdepth 1 -name "*.ks" -type f | while read f; do
-      newf=/var/lib/cobbler/kickstarts/`basename $f`
-      [ -e $newf ] &&  mv $newf $newf.rpmnew
-      cp $f $newf
+    for i in "config" "snippets" "kickstarts" "triggers" "scripts"; do
+        if [[ -d /var/lib/cobbler/${i} ]]; then
+            cp -r /var/lib/cobbler/${i} /var/lib/cobbler/backup/upgrade-${DATE}
+        fi
     done
+    if [[ -d /etc/cobbler ]]; then
+        cp -r /etc/cobbler /var/lib/cobbler/backup/upgrade-${DATE}
+    fi
 fi
 
-%preun
-%systemd_preun cobblerd.service
 
+%if 0%{?rhel} == 6
+%post
+# package install
+if (( $1 == 1 )); then
+    /sbin/chkconfig --add cobblerd > /dev/null 2>&1
+    /etc/init.d/cobblerd start > /dev/null 2>&1
+    /etc/init.d/httpd restart > /dev/null 2>&1
+fi
+%preun
+# before last package is removed
+if (( $1 == 0 )); then
+    /sbin/chkconfig --del cobblerd > /dev/null 2>&1
+    /etc/init.d/cobblerd stop > /dev/null 2>&1
+fi 
 %postun
-%systemd_postun_with_restart cobblerd.service
+# after last package is removed
+if (( $1 == 0 )); then
+    /etc/init.d/httpd condrestart > /dev/null 2>&1
+fi
+%endif
 
-%else
 
+%if 0%{?fedora} || 0%{?rhel} >= 7
 %post
-if [ "$1" = "1" ];
-then
-    # This happens upon initial install. Upgrades will follow the next else
-    /sbin/chkconfig --add cobblerd
-elif [ "$1" -ge "2" ];
-then
-    # backup config
-    if [ -e /var/lib/cobbler/distros ]; then
-        cp /var/lib/cobbler/distros*  /var/lib/cobbler/backup 2>/dev/null
-        cp /var/lib/cobbler/profiles* /var/lib/cobbler/backup 2>/dev/null
-        cp /var/lib/cobbler/systems*  /var/lib/cobbler/backup 2>/dev/null
-        cp /var/lib/cobbler/repos*    /var/lib/cobbler/backup 2>/dev/null
-        cp /var/lib/cobbler/networks* /var/lib/cobbler/backup 2>/dev/null
-    fi
-    if [ -e /var/lib/cobbler/config ]; then
-        cp -a /var/lib/cobbler/config    /var/lib/cobbler/backup 2>/dev/null
-    fi
-    # upgrade older installs
-    # move power and pxe-templates from /etc/cobbler, backup new templates to *.rpmnew
-    for n in power pxe; do
-      rm -f /etc/cobbler/$n*.rpmnew
-      find /etc/cobbler -maxdepth 1 -name "$n*" -type f | while read f; do
-        newf=/etc/cobbler/$n/`basename $f`
-        [ -e $newf ] &&  mv $newf $newf.rpmnew
-        mv $f $newf
-      done
-    done
-    # upgrade older installs
-    # copy kickstarts from /etc/cobbler to /var/lib/cobbler/kickstarts
-    rm -f /etc/cobbler/*.ks.rpmnew
-    find /etc/cobbler -maxdepth 1 -name "*.ks" -type f | while read f; do
-      newf=/var/lib/cobbler/kickstarts/`basename $f`
-      [ -e $newf ] &&  mv $newf $newf.rpmnew
-      cp $f $newf
-    done
-    # reserialize and restart
-    # FIXIT: ?????
-    #/usr/bin/cobbler reserialize
-    /sbin/service cobblerd condrestart
-fi
+%systemd_post cobblerd.service
 
 %preun
-if [ $1 = 0 ]; then
-    /sbin/service cobblerd stop >/dev/null 2>&1 || :
-    chkconfig --del cobblerd || :
-fi
+%systemd_preun cobblerd.service
 
 %postun
-if [ "$1" -ge "1" ]; then
-    /sbin/service cobblerd condrestart >/dev/null 2>&1 || :
-    /sbin/service httpd condrestart >/dev/null 2>&1 || :
-fi
-
+%systemd_postun_with_restart cobblerd.service
 %endif
 
+
 %clean
 test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT
 
 %files
-
+# binaries
 %{_bindir}/cobbler
 %{_bindir}/cobbler-ext-nodes
 %{_bindir}/cobblerd
-%{_sbindir}/tftpd.py*
+%{_sbindir}/tftpd.py
 
+# python
+%{python2_sitelib}/cobbler
+%{python2_sitelib}/cobbler*.egg-info
+
+# configuration
 %config(noreplace) %{_sysconfdir}/cobbler
+%config(noreplace) %{_sysconfdir}/logrotate.d/cobblerd
+%config(noreplace) /etc/httpd/conf.d/cobbler.conf
 %if 0%{?fedora} || 0%{?rhel} >= 7
 %{_unitdir}/cobblerd.service
 %else
 /etc/init.d/cobblerd
 %endif
 
-%{python2_sitelib}/cobbler
-
+# data
+%{tftp_dir}/images
+/var/www/cobbler
+%exclude /var/www/cobbler/cobbler_webui_content
 %config(noreplace) /var/lib/cobbler
 %exclude /var/lib/cobbler/webui_sessions
 
+# log
 /var/log/cobbler
-/var/www/cobbler
 
+# documentation
+%doc AUTHORS README COPYING docs/README.openvz docs/README.mysql
 %{_mandir}/man1/cobbler.1.gz
 
-%config(noreplace) /etc/httpd/conf.d/cobbler.conf
-
-%exclude %{python2_sitelib}/cobbler/sub_process.py*
-%if 0%{?fedora} || 0%{?rhel} > 5
-%{python2_sitelib}/cobbler*.egg-info
-/var/lib/tftpboot/images
-%else
-/tftpboot/images
-%endif
-
-%doc AUTHORS README COPYING
 
 %package -n koan
 
@@ -245,14 +212,14 @@ Requires: virt-install
 
 
 %description -n koan
-
 Koan stands for kickstart-over-a-network and allows for both
 network installation of new virtualized guests and reinstallation
 of an existing system.  For use with a boot-server configured with Cobbler
 
+
 %files -n koan
-%dir /var/spool/koan
-%dir /var/lib/koan/config
+/var/spool/koan
+/var/lib/koan
 %{_bindir}/koan
 %{_bindir}/ovz-install
 %{_bindir}/cobbler-register
@@ -264,7 +231,7 @@ of an existing system.  For use with a boot-server configured with Cobbler
 
 %{_mandir}/man1/koan.1.gz
 %{_mandir}/man1/cobbler-register.1.gz
-%dir /var/log/koan
+/var/log/koan
 %doc AUTHORS COPYING README
 
 
@@ -280,12 +247,14 @@ Requires: Django
 %endif
 Requires: mod_wsgi
 Requires: mod_ssl
+Requires(post): openssl
 
-%description -n cobbler-web
 
+%description -n cobbler-web
 Web interface for Cobbler that allows visiting
 http://server/cobbler_web to configure the install server.
 
+
 %post -n cobbler-web
 # Change the SECRET_KEY option in the Django settings.py file
 # required for security reasons, should be unique on all systems
@@ -299,9 +268,11 @@ sed -i -e "s/SECRET_KEY = ''/SECRET_KEY = \'$RAND_SECRET\'/" /usr/share/cobbler/
 %dir %attr(700,apache,root) /var/lib/cobbler/webui_sessions
 %attr(-,apache,apache) /var/www/cobbler_webui_content/
 
+
 %changelog
 * Wed Jul 16 2014 Orion Poplawski <orion at cora.nwra.com> - 2.6.2-1
 - Update to 2.6.2
+- Spec cleanup
 
 * Sat Jun 07 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.6.1-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild


More information about the scm-commits mailing list