[pcp] Update to latest community sources

nathans nathans at fedoraproject.org
Wed Mar 20 03:40:57 UTC 2013


commit dadd6428327aa8515f1230cb7f45221a1040e5b8
Author: Nathan Scott <nathans at redhat.com>
Date:   Wed Mar 20 14:40:51 2013 +1100

    Update to latest community sources

 .gitignore |    1 +
 pcp.spec   |   91 ++++++++++++++++++++++++++++++++++++++++-------------------
 sources    |    2 +-
 3 files changed, 64 insertions(+), 30 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index a40324d..adab2ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@ pcp-3.3.3-1.src.tar.gz
 /pcp-3.6.9.src.tar.gz
 /pcp-3.6.10.src.tar.gz
 /pcp-3.7.0.src.tar.gz
+/pcp-3.7.1.src.tar.gz
diff --git a/pcp.spec b/pcp.spec
index c9e4fa2..0664029 100644
--- a/pcp.spec
+++ b/pcp.spec
@@ -1,6 +1,6 @@
 Summary: System-level performance monitoring and performance management
 Name: pcp
-Version: 3.7.0
+Version: 3.7.1
 %define buildversion 1
 
 Release: %{buildversion}%{?dist}
@@ -27,6 +27,9 @@ Requires: pcp-libs = %{version}-%{release}
 Requires: python-pcp = %{version}-%{release}
 Requires: perl-PCP-PMDA = %{version}-%{release}
 
+%define _confdir  %{_sysconfdir}/pcp
+%define _logsdir  %{_localstatedir}/log/pcp
+%define _initddir %{_sysconfdir}/rc.d/init.d
 %define _tempsdir %{_localstatedir}/lib/pcp/tmp
 %define _pmdasdir %{_localstatedir}/lib/pcp/pmdas
 %define _testsdir %{_localstatedir}/lib/pcp/testsuite
@@ -216,7 +219,7 @@ building Performance Metric API (PMAPI) tools using Python.
 rm -Rf $RPM_BUILD_ROOT
 
 %build
-%configure --with-rcdir=/etc/rc.d/init.d --with-tmpdir=%{_tempsdir}
+%configure --with-rcdir=%{_initddir} --with-tmpdir=%{_tempsdir}
 make default_pcp
 
 %install
@@ -232,7 +235,7 @@ mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/pcp
 rm -f $RPM_BUILD_ROOT/%{_bindir}/sheet2pcp $RPM_BUILD_ROOT/%{_mandir}/man1/sheet2pcp.1.gz
 
 # default chkconfig off for Fedora and RHEL
-for f in $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/{pcp,pmcd,pmlogger,pmie,pmproxy}; do
+for f in $RPM_BUILD_ROOT/%{_initddir}/{pcp,pmcd,pmlogger,pmie,pmproxy}; do
 	sed -i -e '/^# chkconfig/s/:.*$/: - 95 05/' -e '/^# Default-Start:/s/:.*$/:/' $f
 done
 
@@ -262,8 +265,8 @@ exit 0
 getent group pcp >/dev/null || groupadd -r pcp
 getent passwd pcp >/dev/null || \
   useradd -c "Performance Co-Pilot" -g pcp -d %{_localstatedir}/lib/pcp -M -r -s /sbin/nologin pcp
-PCP_SYSCONF_DIR=/etc/pcp
-PCP_LOG_DIR=/var/log/pcp
+PCP_SYSCONF_DIR=%{_confdir}
+PCP_LOG_DIR=%{_logsdir}
 # produce a script to run post-install to move configs to their new homes
 save_configs_script()
 {
@@ -290,11 +293,12 @@ save_configs_script()
         fi
     done
 }
-# migrate and clean configs
+# migrate and clean configs if we have had a previous in-use installation
+[ -d "$PCP_LOG_DIR" ] || exit 0	# no configuration file upgrades required
 rm -f "$PCP_LOG_DIR/configs.sh"
 for daemon in pmcd pmie pmlogger pmproxy
 do
-    save_configs_script >> "$PCP_LOG_DIR/configs.sh" $PCP_SYSCONF_DIR/$daemon \
+    save_configs_script >> "$PCP_LOG_DIR/configs.sh" "$PCP_SYSCONF_DIR/$daemon" \
         /var/lib/pcp/config/$daemon /etc/$daemon /etc/pcp/$daemon /etc/sysconfig/$daemon
 done
 exit 0
@@ -318,14 +322,39 @@ then
 fi
 
 %post
+PCP_LOG_DIR=%{_logsdir}
 # restore saved configs, if any
-PCP_LOG_DIR=/var/log/pcp
 test -s "$PCP_LOG_DIR/configs.sh" && source "$PCP_LOG_DIR/configs.sh"
 rm -f $PCP_LOG_DIR/configs.sh
-chown -R pcp:pcp %{_localstatedir}/log/pcp/pmcd 2>/dev/null
-chown -R pcp:pcp %{_localstatedir}/log/pcp/pmlogger 2>/dev/null
-chown -R pcp:pcp %{_localstatedir}/log/pcp/pmie 2>/dev/null
-chown -R pcp:pcp %{_localstatedir}/log/pcp/pmproxy 2>/dev/null
+
+# migrate old to new temp dir locations (within the same filesystem)
+migrate_tempdirs()
+{
+    _sub="$1"
+    _new_tmp_dir=%{_tempsdir}
+    _old_tmp_dir=%{_localstatedir}/tmp
+
+    for d in "$_old_tmp_dir/$_sub" ; do
+        test -d "$d" -a -k "$d" || continue
+        cd "$d" || continue
+        for f in * ; do
+            [ "$f" != "*" ] || continue
+            source="$d/$f"
+            target="$_new_tmp_dir/$_sub/$f"
+            [ "$source" != "$target" ] || continue
+            mv -fun "$source" "$target"
+        done
+        cd && rmdir "$d" 2>/dev/null
+    done
+}
+for daemon in mmv pmdabash pmie pmlogger
+do
+    migrate_tempdirs $daemon
+done
+chown -R pcp:pcp %{_logsdir}/pmcd 2>/dev/null
+chown -R pcp:pcp %{_logsdir}/pmlogger 2>/dev/null
+chown -R pcp:pcp %{_logsdir}/pmie 2>/dev/null
+chown -R pcp:pcp %{_logsdir}/pmproxy 2>/dev/null
 /sbin/chkconfig --add pmcd >/dev/null 2>&1
 /sbin/service pmcd condrestart
 /sbin/chkconfig --add pmlogger >/dev/null 2>&1
@@ -357,29 +386,29 @@ chown -R pcp:pcp %{_localstatedir}/log/pcp/pmproxy 2>/dev/null
 
 %{_libexecdir}/pcp
 %{_datadir}/pcp/lib
-%{_localstatedir}/log/pcp
+%{_logsdir}
 %{_localstatedir}/lib/pcp/pmns
-%{_initrddir}/pcp
-%{_initrddir}/pmcd
-%{_initrddir}/pmlogger
-%{_initrddir}/pmie
-%{_initrddir}/pmproxy
+%{_initddir}/pcp
+%{_initddir}/pmcd
+%{_initddir}/pmlogger
+%{_initddir}/pmie
+%{_initddir}/pmproxy
 %{_mandir}/man4/*
 %config %{_sysconfdir}/bash_completion.d/pcp
 %config %{_sysconfdir}/pcp.env
 %{_sysconfdir}/pcp.sh
 %{_sysconfdir}/pcp
-%config(noreplace) %{_sysconfdir}/pcp/pmcd/pmcd.conf
-%config(noreplace) %{_sysconfdir}/pcp/pmcd/pmcd.options
-%config(noreplace) %{_sysconfdir}/pcp/pmcd/rc.local
-%config(noreplace) %{_sysconfdir}/pcp/pmie/config.default
-%config(noreplace) %{_sysconfdir}/pcp/pmie/control
-%config(noreplace) %{_sysconfdir}/pcp/pmie/crontab
-%config(noreplace) %{_sysconfdir}/pcp/pmie/stomp
-%config(noreplace) %{_sysconfdir}/pcp/pmlogger/config.default
-%config(noreplace) %{_sysconfdir}/pcp/pmlogger/control
-%config(noreplace) %{_sysconfdir}/pcp/pmlogger/crontab
-%config(noreplace) %{_sysconfdir}/pcp/pmproxy/pmproxy.options
+%config(noreplace) %{_confdir}/pmcd/pmcd.conf
+%config(noreplace) %{_confdir}/pmcd/pmcd.options
+%config(noreplace) %{_confdir}/pmcd/rc.local
+%config(noreplace) %{_confdir}/pmie/config.default
+%config(noreplace) %{_confdir}/pmie/control
+%config(noreplace) %{_confdir}/pmie/crontab
+%config(noreplace) %{_confdir}/pmie/stomp
+%config(noreplace) %{_confdir}/pmlogger/config.default
+%config(noreplace) %{_confdir}/pmlogger/control
+%config(noreplace) %{_confdir}/pmlogger/crontab
+%config(noreplace) %{_confdir}/pmproxy/pmproxy.options
 %{_localstatedir}/lib/pcp/config/*
 
 %files libs
@@ -455,6 +484,10 @@ chown -R pcp:pcp %{_localstatedir}/log/pcp/pmproxy 2>/dev/null
 %defattr(-,root,root)
 
 %changelog
+* Wed Mar 20 2013 Nathan Scott <nathans at redhat.com> - 3.7.1-1
+- Update to latest PCP sources.
+- Migrate all tempfiles correctly to the new tempdir hierarchy.
+
 * Sun Mar 10 2013 Nathan Scott <nathans at redhat.com> - 3.7.0-1
 - Update to latest PCP sources.
 - Migrate all configuration files below the /etc/pcp hierarchy.
diff --git a/sources b/sources
index a4107f8..ccf4f26 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-550453de659da2044d54dc429a6e12a1  pcp-3.7.0.src.tar.gz
+7131aa83ecd9ab3a409ffacd41a3b43a  pcp-3.7.1.src.tar.gz


More information about the scm-commits mailing list