diff --git a/configure_append_pcp_subdir.patch b/configure_append_pcp_subdir.patch deleted file mode 100644 index 7d638f6..0000000 --- a/configure_append_pcp_subdir.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 8ae41f7080de22383990ef477d28f148dfa403a7 Mon Sep 17 00:00:00 2001 -From: David Disseldorp -Date: Tue, 5 Jun 2012 17:01:28 +0200 -Subject: [PATCH] build: append pcp sub-directory suffix - -With the fix to correctly handle a --Xdir= configure arguments, a number -of PCP specific paths need a pcp/ suffix to match default (no --Xdir=) -paths. ---- - configure.in | 6 ++++++ - 1 files changed, 6 insertions(+), 0 deletions(-) - -diff --git a/configure.in b/configure.in -index 6b83469..e25a7cc 100644 ---- a/configure.in -+++ b/configure.in -@@ -1553,6 +1553,8 @@ then - else - pcp_share_dir=/usr/pcp - fi -+else -+ pcp_share_dir=`eval echo $pcp_share_dir/pcp` - fi - AC_SUBST(pcp_share_dir) - -@@ -1598,6 +1600,8 @@ then - else - pcp_var_dir=/usr - fi -+else -+ pcp_var_dir=`eval echo $pcp_var_dir/pcp` - fi - AC_SUBST(pcp_var_dir) - -@@ -1852,6 +1856,8 @@ then - else - pcp_inc_dir=/usr/include/pcp - fi -+else -+ pcp_inc_dir=`eval echo $pcp_inc_dir/pcp` - fi - AC_SUBST(pcp_inc_dir) - --- -1.7.1 - diff --git a/create-pmlogger-and-pmie-logdirs-during-install.patch b/create-pmlogger-and-pmie-logdirs-during-install.patch new file mode 100644 index 0000000..98130ec --- /dev/null +++ b/create-pmlogger-and-pmie-logdirs-during-install.patch @@ -0,0 +1,37 @@ +From 05c112bd44b4a5dbb432e9d13e1e51816bd0acf8 Mon Sep 17 00:00:00 2001 +From: David Disseldorp +Date: Wed, 21 Nov 2012 12:53:25 +0100 +Subject: [PATCH] create pmlogger and pmie logdirs during install + +--- + src/pmie/GNUmakefile | 1 + + src/pmlogger/GNUmakefile | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/pmie/GNUmakefile b/src/pmie/GNUmakefile +index c62b869..e0ec1cd 100644 +--- a/src/pmie/GNUmakefile ++++ b/src/pmie/GNUmakefile +@@ -46,6 +46,7 @@ install:: default + $(INSTALL) -m 755 pmie_daily.sh $(PCP_BINADM_DIR)/pmie_daily + $(INSTALL) -m 755 pmie2col $(PCP_BIN_DIR)/pmie2col + $(INSTALL) -m 755 rc_pmie $(PCP_RC_DIR)/pmie ++ $(INSTALL) -m 755 -d $(PCP_LOG_DIR)/pmie + $(INSTALL) -m 1777 -d $(PCP_TMP_DIR)/pmie + + include $(BUILDRULES) +diff --git a/src/pmlogger/GNUmakefile b/src/pmlogger/GNUmakefile +index 23c810c..b045bdb 100644 +--- a/src/pmlogger/GNUmakefile ++++ b/src/pmlogger/GNUmakefile +@@ -37,6 +37,7 @@ include $(BUILDRULES) + install: $(CMDTARGET) $(OTHERS) + $(INSTALL) -m 755 $(CMDTARGET) $(PCP_BINADM_DIR)/$(CMDTARGET) + $(INSTALL) -m 755 rc_pmlogger $(PCP_RC_DIR)/pmlogger ++ $(INSTALL) -m 755 -d $(PCP_LOG_DIR)/pmlogger + $(INSTALL) -m 1777 -d $(PCP_TMP_DIR)/pmlogger + + YFLAGS += -v +-- +1.7.10.4 + diff --git a/fix_configure_path_tests.patch b/fix_configure_path_tests.patch deleted file mode 100644 index f9f74e6..0000000 --- a/fix_configure_path_tests.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 70b76abe42aca1c968feb3bfe20b74c61cf05db6 Mon Sep 17 00:00:00 2001 -From: David Disseldorp -Date: Mon, 21 Nov 2011 18:40:36 +0100 -Subject: [PATCH] build: fix configure path tests - -This commit fixes pcp_(share|binadm|var|lib|man)_dir configure tests: -if test -z "`echo $pcp_share_dir | sed 's;/.*\$;;'`" - -Currently all tests evaluate to true when absolute paths are supplied, -as sed replaces from the leading '/', rather than the end which appears -to be the intended purpose. ---- - configure.in | 14 +++++++------- - 1 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/configure.in b/configure.in -index 46e3f27..6b83469 100644 ---- a/configure.in -+++ b/configure.in -@@ -1539,7 +1539,7 @@ AC_SUBST(pcp_etc_dir) - dnl shared PCP files (shareable for diskless) - pcp_share_dir=`eval echo $datadir` - pcp_share_dir=`eval echo $pcp_share_dir` --if test -z "`echo $pcp_share_dir | sed 's;/.*\$;;'`" -+if test -z "`echo $pcp_share_dir | sed 's;/\s*\$;;'`" - then - if test $target_os = mingw - then -@@ -1559,7 +1559,7 @@ AC_SUBST(pcp_share_dir) - dnl private PCP executables - pcp_binadm_dir=`eval echo $libexecdir` - pcp_binadm_dir=`eval echo $pcp_binadm_dir` --if test -z "`echo $pcp_binadm_dir | sed 's;/.*\$;;'`" -+if test -z "`echo $pcp_binadm_dir | sed 's;/\s*\$;;'`" - then - if test $target_distro = debian - then -@@ -1581,7 +1581,7 @@ AC_SUBST(pcp_binadm_dir) - dnl non-shared (i.e. system local) PCP files - pcp_var_dir=`eval echo $localstatedir` - pcp_var_dir=`eval echo $pcp_var_dir` --if test -z "`echo $pcp_var_dir | sed 's;/.*\$;;'`" -+if test -z "`echo $pcp_var_dir | sed 's;/\s*\$;;'`" - then - if test $target_os = mingw - then -@@ -1654,7 +1654,7 @@ then - else - pcp_lib_dir=`eval echo $libdir` - pcp_lib_dir=`eval echo $pcp_lib_dir` -- if test -z "`echo $pcp_lib_dir | sed 's;/.*\$;;'`" -+ if test -z "`echo $pcp_lib_dir | sed 's;/\s*\$;;'`" - then - if test -d /usr/lib - then -@@ -1716,7 +1716,7 @@ need_old_tbl_header=false - man_header= - pcp_man_dir=`eval echo $mandir` - pcp_man_dir=`eval echo $pcp_man_dir` --if test -z "`echo $pcp_man_dir | sed 's;/.*\$;;'`" -+if test -z "`echo $pcp_man_dir | sed 's;/\s*\$;;'`" - then - dnl some low risk defaults - if test $target_os = mingw -@@ -1827,7 +1827,7 @@ AC_SUBST(need_old_tbl_header) - dnl public binaries - pcp_bin_dir=`eval echo $bindir` - pcp_bin_dir=`eval echo $pcp_bin_dir` --if test -z "`echo $pcp_bin_dir | sed 's;/.*\$;;'`" -+if test -z "`echo $pcp_bin_dir | sed 's;/\s*\$;;'`" - then - if test $target_os = mingw - then -@@ -1844,7 +1844,7 @@ AC_SUBST(pcp_bin_dir) - dnl include files - pcp_inc_dir=`eval echo $includedir` - pcp_inc_dir=`eval echo $pcp_inc_dir` --if test -z "`echo $pcp_inc_dir | sed 's;/.*\$;;'`" -+if test -z "`echo $pcp_inc_dir | sed 's;/\s*\$;;'`" - then - if test $target_os = mingw - then --- -1.7.1 - diff --git a/fix_pmie_pmlogger_startup_races.patch b/fix_pmie_pmlogger_startup_races.patch new file mode 100644 index 0000000..09d9065 --- /dev/null +++ b/fix_pmie_pmlogger_startup_races.patch @@ -0,0 +1,325 @@ +From 26129ab3fc91a77aefa3c2807c2b49dec4631036 Mon Sep 17 00:00:00 2001 +From: Nathan Scott +Date: Wed, 28 Nov 2012 14:30:31 +1100 +Subject: [PATCH] Fix race conditions in pmie and pmlogger startup scripts + +Recent changes to tempfile handling has regressed the pmie and +pmlogger startup scripts. Errors of the form: +/etc/rc.d/init.d/pmlogger: line 100: /var/tmp/pcp.5vfQsSHKo/pmcheck: No such file or directory +are now produced. + +Because sections of these two scripts are run in parallel with +the original script, we are open to race conditions where the +main script exits and removes the temporary directory before the +co-process has an opportunity to create its temporary file. We +can resolve this using separate temporary dirs and trap handling +which thus no longer race. + +Worse still, QA failed to detect the problem. At least one test +that should have found the problem trivially (575) failed to, as +a result of aggressively discarding stderr and stdout instead of +using filtering. This has been rectified and common pmie filter +routines abstracted (from tests 115, 504 and 575) to simplify the +task for all current and future tests. +--- + qa/115 | 18 ------------------ + qa/115.out | 2 ++ + qa/504 | 14 -------------- + qa/575 | 18 ++++++++++++------ + qa/575.out | 1 + + qa/common.filter | 26 ++++++++++++++++++++++++++ + src/pmie/rc_pmie | 30 +++++++++++++++++++++--------- + src/pmlogger/rc_pmlogger | 26 +++++++++++++++++--------- + 8 files changed, 79 insertions(+), 56 deletions(-) + +diff --git a/qa/115 b/qa/115 +index 8a3f675..4be3323 100755 +--- a/qa/115 ++++ b/qa/115 +@@ -54,24 +54,6 @@ _filter() + -e "s;/private/tmp;/tmp;g" + } + +-_filter_pmie_start() +-{ +- sed \ +- -e '/^Waiting for pmie process(es) to terminate/d' \ +- -e "s;$PCP_RC_DIR/pmie:;RC_SCRIPT;" \ +- -e '/RC_SCRIPT/d' \ +- -e '/(pmie) is disabled/d' \ +- -e '/To enable/d' \ +- -e '/\/sbin\/chkconfig pmie on/d' \ +- -e '/\/usr\/sbin\/sysv-rc-conf pmie on/d' \ +- -e '/update-rc.d -f pmie defaults/d' \ +- -e '/ln -sf \.\.\/init.d\/pmie \/etc\/rc\.d\//d' \ +- -e "s;$PCP_PMIECONTROL_PATH;\$PCP_PMIECONTROL_PATH;" \ +- -e '/^\.\.*done$/d' \ +- -e '/^\.\.*failed$/d' \ +- -e "s;/private/tmp;/tmp;g" +-} +- + _count_pmies() + { + count=0 +diff --git a/qa/115.out b/qa/115.out +index 0b8cfe6..7229a9e 100644 +--- a/qa/115.out ++++ b/qa/115.out +@@ -5,6 +5,7 @@ pmie count at start of QA testing: 0 + pmie count after chkconfig pmie off: 0 + + === check for missing control file === ++$PCP_RC_DIR/pmie: + Error: PCP inference engine control file $PCP_PMIECONTROL_PATH + is missing! Cannot start any Performance Co-Pilot inference engine(s). + pmie count after attempt without control file: 0 +@@ -34,3 +35,4 @@ No current pmie process exists for: + Restarting pmie for host "LOCALHOST" ... + + pmie -b -h LOCALHOST -l /tmp/PID.log0 /tmp/PID.conf + ++$PCP_RC_DIR/pmie: PMIE not running +diff --git a/qa/504 b/qa/504 +index c65df90..047b859 100755 +--- a/qa/504 ++++ b/qa/504 +@@ -62,20 +62,6 @@ _filter() + -e "s/$lhost/LOCALHOST/g" + } + +- +-_filter_pmie_start() +-{ +- $PCP_AWK_PROG ' +-/^Waiting for pmie process\(es\) to terminate/ { next } +-/^Waiting for PMIE process\(es\) to terminate/ { next } +-/^\/etc.*\/init\.d\/pmie:/ { next } +-/\(pmie\) is disabled/ { next } +-/To enable/ { next } +-/\/sbin\/chkconfig pmie on/ { next } +- +-{ print }' +-} +- + _count_pmies() + { + count=0 +diff --git a/qa/575 b/qa/575 +index 785c034..41a6266 100755 +--- a/qa/575 ++++ b/qa/575 +@@ -1,7 +1,7 @@ + #! /bin/sh + # PCP QA Test No. 575 +-# exercise fix for bug #692244 + # ++# Copyright (c) 2012 Red Hat. + # Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved. + # + +@@ -13,18 +13,24 @@ echo "QA output created by $seq" + . ./common.filter + . ./common.check + ++_cleanup() ++{ ++ _change_config pmie off ++ rm -f $tmp.* ++} ++ + signal=$PCP_BINADM_DIR/pmsignal + status=1 # failure is the default! +-trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 ++trap "_cleanup; exit \$status" 0 1 2 3 15 + + # real QA test starts here + $sudo $signal -a pmie >/dev/null 2>&1 + $sudo rm -fr $PCP_TMP_DIR/pmie +-$sudo $PCP_RC_DIR/pmie stop \ +-| _filter_pcp_stop \ +-| sed -e "s;$PCP_RC_DIR;\$PCP_RC_DIR;g" + +-$sudo $PCP_RC_DIR/pmie start >/dev/null 2>&1 ++_change_config pmie on ++$sudo $PCP_RC_DIR/pmie stop | _filter_pmie_stop ++$sudo $PCP_RC_DIR/pmie start | _filter_pmie_start ++ + # success, all done + status=0 + exit +diff --git a/qa/575.out b/qa/575.out +index 2842d31..3077d2a 100644 +--- a/qa/575.out ++++ b/qa/575.out +@@ -1,2 +1,3 @@ + QA output created by 575 + $PCP_RC_DIR/pmie: PMIE not running ++Performance Co-Pilot starting inference engine(s) ... +diff --git a/qa/common.filter b/qa/common.filter +index fbbdbfd..648e115 100644 +--- a/qa/common.filter ++++ b/qa/common.filter +@@ -412,6 +412,32 @@ s/PMCD/pmcd/ + | _filter_init_distro + } + ++_filter_pmie_start() ++{ ++ sed \ ++ -e '/^Waiting for pmie process(es) to terminate/d' \ ++ -e "s;$PCP_RC_DIR/pmie;\$PCP_RC_DIR/pmie;g" \ ++ -e '/(pmie) is disabled/d' \ ++ -e '/To enable/d' \ ++ -e '/\/sbin\/chkconfig pmie on/d' \ ++ -e '/\/usr\/sbin\/sysv-rc-conf pmie on/d' \ ++ -e '/update-rc.d -f pmie defaults/d' \ ++ -e '/ln -sf \.\.\/init.d\/pmie \/etc\/rc\.d\//d' \ ++ -e "s;$PCP_PMIECONTROL_PATH;\$PCP_PMIECONTROL_PATH;" \ ++ -e '/^\.\.*done$/d' \ ++ -e "s;/private/tmp;/tmp;g" \ ++ | _filter_init_distro ++} ++ ++_filter_pmie_stop() ++{ ++ sed \ ++ -e "s;$PCP_RC_DIR/pmie;\$PCP_RC_DIR/pmie;g" \ ++ -e '/^Waiting for pmie/s/\.\.\.[. ]*done/.../' \ ++ -e '/^Waiting for pmie/s/\.\.\. *$/.../' \ ++ | _filter_init_distro ++} ++ + _filterall_pcp_start() + { + _filter_pcp_start \ +diff --git a/src/pmie/rc_pmie b/src/pmie/rc_pmie +index bcb0ba7..698c45a 100644 +--- a/src/pmie/rc_pmie ++++ b/src/pmie/rc_pmie +@@ -1,5 +1,6 @@ + #!/bin/sh + # ++# Copyright (c) 2012 Red Hat. + # Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. + # + # This program is free software; you can redistribute it and/or modify it +@@ -109,37 +110,48 @@ _reboot_setup() + [ ! -d "$LOGDIR" ] && mkdir -p "$LOGDIR" && chown pcp:pcp "$LOGDIR" + } + ++# Note: _start_pmie is running in the background, in parallel with ++# the rest of the script. It might complete well after the caller ++# so tmpfile handling is especially problematic. Goal is to speed ++# bootup by starting potentially slow (remote monitoring) processes ++# in the background. ++# + _start_pmie() + { ++ bgstatus=0 ++ bgtmp=`mktemp -d /var/tmp/pcp.XXXXXXXXX` || exit 1 ++ trap "rm -rf $bgtmp; exit \$bgstatus" 0 1 2 3 15 ++ + wait_option='' + [ ! -z "$PMCD_WAIT_TIMEOUT" ] && wait_option="-t $PMCD_WAIT_TIMEOUT" + + if pmcd_wait $wait_option + then +- pmie_check >$tmp/pmie 2>&1 +- if [ -s $tmp/pmie ] ++ pmie_check >$bgtmp/pmie 2>&1 ++ bgstatus=$? ++ if [ -s $bgtmp/pmie ] + then + pmpost "pmie_check start failed in $prog, mailing output to root" + if [ ! -z "$MAIL" ] + then +- $MAIL -s "pmie_check start failed in $prog" root <$tmp/pmie >/dev/null 2>&1 ++ $MAIL -s "pmie_check start failed in $prog" root <$bgtmp/pmie >/dev/null 2>&1 + else + echo "$prog: pmie_check start failed ..." +- cat $tmp/pmie ++ cat $bgtmp/pmie + fi + fi +- rm -f $tmp/pmie + else +- status=$? +- pmpost "pmcd_wait failed in $prog: exit status: $status" ++ bgstatus=$? ++ pmpost "pmcd_wait failed in $prog: exit status: $bgstatus" + if [ ! -z "$MAIL" ] + then +- echo "pmcd_wait: exit status: $status" | $MAIL -s "pmcd_wait failed in $prog" root ++ echo "pmcd_wait: exit status: $bgstatus" | $MAIL -s "pmcd_wait failed in $prog" root + else + echo "$prog: pmcd_wait failed ..." +- echo "pmcd_wait: exit status: $status" ++ echo "pmcd_wait: exit status: $bgstatus" + fi + fi ++ exit $bgstatus # co-process is now complete + } + + _shutdown() +diff --git a/src/pmlogger/rc_pmlogger b/src/pmlogger/rc_pmlogger +index 6f9949f..84f3382 100644 +--- a/src/pmlogger/rc_pmlogger ++++ b/src/pmlogger/rc_pmlogger +@@ -1,5 +1,6 @@ + #!/bin/sh + # ++# Copyright (c) 2012 Red Hat. + # Copyright (c) 2000-2008 Silicon Graphics, Inc. All Rights Reserved. + # + # This program is free software; you can redistribute it and/or modify it +@@ -12,10 +13,6 @@ + # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + # for more details. + # +-# You should have received a copy of the GNU General Public License along +-# with this program; if not, write to the Free Software Foundation, Inc., +-# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-# + # Start or Stop the Performance Co-Pilot pmlogger processes. + # + # The following is for chkconfig on RedHat based systems +@@ -95,21 +92,32 @@ in + ;; + esac + ++# Note: _start_pmcheck() runs in the background, in parallel with ++# the rest of the script. It might complete well after the caller ++# so tmpfile handling is especially problematic. Goal is to speed ++# bootup by starting potentially slow (remote monitoring) pmlogger ++# processes in the background. ++# + _start_pmcheck() + { +- pmlogger_check $VFLAG >$tmp/pmcheck 2>&1 +- if [ -s $tmp/pmcheck ] ++ bgstatus=0 ++ bgtmp=`mktemp -d /var/tmp/pcp.XXXXXXXXX` || exit 1 ++ trap "rm -rf $bgtmp; exit \$bgstatus" 0 1 2 3 15 ++ ++ pmlogger_check $VFLAG >$bgtmp/pmcheck 2>&1 ++ bgstatus=$? ++ if [ -s $bgtmp/pmcheck ] + then + pmpost "pmlogger_check failed in $prog, mailing output to root" + if [ ! -z "$MAIL" ] + then +- $MAIL -s "pmlogger_check failed in $prog" root <$tmp/pmcheck ++ $MAIL -s "pmlogger_check failed in $prog" root <$bgtmp/pmcheck + else + echo "$prog: pmlogger_check failed ..." +- cat $tmp/pmcheck ++ cat $bgtmp/pmcheck + fi + fi +- rm -f $tmp/pmcheck ++ exit $bgstatus # co-process is now complete + } + + _start_pmlogger() +-- +1.7.10.4 + diff --git a/pcp-3.6.10.src.tar.gz b/pcp-3.6.10.src.tar.gz new file mode 100644 index 0000000..6ef237e --- /dev/null +++ b/pcp-3.6.10.src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d3b5d38536b48b5a21fc139a294e3177af96e9ac22a7cc89cef9457589bb46b +size 4687066 diff --git a/pcp-3.6.5-1.src.tar.gz b/pcp-3.6.5-1.src.tar.gz deleted file mode 100644 index ec7175f..0000000 --- a/pcp-3.6.5-1.src.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ebc4395646c9353a7839a18db27cbf37a8882cc7a1faad8537bad4fb9c437f82 -size 2505315 diff --git a/pcp-rpmlintrc b/pcp-rpmlintrc index 89ea5d1..2735c72 100644 --- a/pcp-rpmlintrc +++ b/pcp-rpmlintrc @@ -3,3 +3,7 @@ # but rather they are (slightly obscure) PMDA config files. # addFilter('E: devel-file-in-non-devel-package') +# A /var/lib/pcp/tmp directory is created for the safe creation of shared +# tmp files. it must be world writeable for PMDAs and client tools, which +# may be run as anyone. +#addFilter('E: permissions-world-writable') diff --git a/pcp.changes b/pcp.changes index 9e30d5b..e785add 100644 --- a/pcp.changes +++ b/pcp.changes @@ -1,3 +1,132 @@ +------------------------------------------------------------------- +Thu Jan 3 12:16:56 UTC 2013 - ddiss@suse.com + +- Describe xmktime.c and pthread_barrier.h licensing issues. Workaround by + continuing to remove the testsuite; (bnc#796448). + +------------------------------------------------------------------- +Tue Dec 4 12:15:41 UTC 2012 - ddiss@suse.com + +- Fix race conditions in pmie and pmlogger startup scripts. + + Add fix_pmie_pmlogger_startup_races.patch + + Upstream fix for regression caused by CVE-2012-5530 fix. + +------------------------------------------------------------------- +Thu Nov 29 16:38:46 UTC 2012 - meissner@suse.com + +- use permissions framework for handling the worldwriteable+sticky + bit directories. (bnc#782967) + +------------------------------------------------------------------- +Wed Nov 21 13:27:25 UTC 2012 - ddiss@suse.com + +- Create pcp user and group during installation. +- Package pre-populated tmp directory. The directory must be world writeable + (with the sticky-bit set), as it may be used by any PMDAs or client tools; + (bnc#782967). + +------------------------------------------------------------------- +Mon Nov 19 17:19:01 UTC 2012 - ddiss@suse.com + +- Remove fix_configure_path_tests.patch + + fixed upstream. +- Remove configure_append_pcp_subdir.patch + + fixed upstream. +- Add create-pmlogger-and-pmie-logdirs-during-install.patch + + pmcd and pmproxy logdirs are created, pmlogger and pmie were missing. + + Submitted upstream. + +- Update to pcp-3.6.10. + + Transition daemons to run under an unprivileged account. + + Fixes for security advisory CVE-2012-5530: tmpfile flaws; + (bnc#782967). + + Fix pcp(1) command short-form pmlogger reporting. + + Fix pmdalogger error handling for directory files. + + Fix pmstat handling of odd corner case in CPU metrics. + + Correct the python ctype used for pmAtomValue 32bit ints. + + Add missing RPM spec dependency for python-ctypes. + + Corrections to pmdamysql metrics units. + + Add pmdamysql slave status metrics. + + Improve pmcollectl error messages. + + Parameterize pmcollectl CPU counts in interrupt subsys. + + Fix generic RPM packaging for powerpc builds. + + Fix python API use of reentrant libpcp string routines. + + Python code backporting for RHEL5 in qa and pmcollectl. + + Fix edge cases in capturing interrupt error counts. + +- Update to pcp-3.6.9. + + Python wrapper for the pmimport API + + Make sar2pcp work with the sysstat versions from RHEL5, + RHEL6, and all recent Fedora versions (which is almost + all current versions of sysstat verified). + + Added a number of additional metrics into the importer + for people starting to use it to analyse sar data from + real customer incidents. + + Rework use of C99 "restrict" keyword in pmdalogger + (Debian bug: 689552) + + Alot of work on the PCP QA suite, special thanks to Tomas + Dohnalek for all his efforts there. + + Win32 build updates + + Add "raw" disk active metrics so that existing tools like + iostat can be emulated + + Allow sar2pcp to accept XML input directly (.xml suffix), + allowing it to not have to run on the same platform as the + sadc/sadf that originally generated it. + + Add PMI error codes into the PCP::LogImport perl module. + + Fix a typo in pmiUnits man page synopsis section + + Resolve pmdalinux ordering issue in NUMA/CPU indom setup + (Redhat bug: 858384) + + Remove unused pmcollectl imports (Redhat bug: 863210) + + Allow event traces to be used in libpcp interpolate mode + +- Update to pcp-3.6.8. + + Corrects the disk/partition identification for the MMC + driver, which makes disk indom handling correct on the + Raspberry Pi (http://www.raspberrypi.org/) + + Several minor/basic fixes for pmdaoracle. + + Improve pmcollectl compatibility. + + Make a few clarifications to pmcollectl.1. + + Improve python API test coverage. + + Numerous updates to the test suite in general. + + Allow pmda Install scripts to specify own dso name again. + + Reconcile spec file differences between PCP flavours. + + Fix handling of multiple contexts with a remote namespace. + + Core socket interface abstractions to support NSS (later). + + Fix man page SYNOPSIS section for pmUnpackEventRecords. + + Add --disable-shared build option for static builds. + +- Update to pcp-3.6.6. + + Added the python PMAPI bindings and an initial python client + in pmcollectl. Separate, new package exists for python libs + for those platforms that split out packages (rpm, deb). + + Added a pcp-testsuite package for those platforms that might + want this (rpm, deb again, mainly) + + Re-introduced the pcp/qa subdirectory in pcp and deprecated + the external pcpqa git tree. + + Fix potential buffer overflow in pmlogger host name handling. + + Reworked the configure --prefix handling to be more like the + rest of the open source world. + + Ensure the __pmDecodeText ident parameter is always set + Resolves Red Hat bugzilla bug #841306. + +------------------------------------------------------------------- +Tue Nov 13 11:10:58 UTC 2012 - ddiss@suse.com + +- Ensure pmlogger and pmie temporary state is always placed under + PCP_TMP_DIR. + +------------------------------------------------------------------- +Mon Nov 12 14:14:20 UTC 2012 - ddiss@suse.com + +- Specify the PCP temporary file directory at configure time using the + --with-tempdir= argument. + +------------------------------------------------------------------- +Fri Nov 9 15:32:28 UTC 2012 - ddiss@suse.com + +- Use mktemp for the placement of init script temp files. Place global + temp files under run_dir; (bnc#782967). + ------------------------------------------------------------------- Wed Aug 15 23:57:34 UTC 2012 - ddiss@suse.com diff --git a/pcp.spec b/pcp.spec index 201e89b..ee35798 100644 --- a/pcp.spec +++ b/pcp.spec @@ -1,7 +1,7 @@ # # spec file for package pcp # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,9 +21,8 @@ License: GPL-2.0 Group: System/Monitoring Name: pcp -Version: 3.6.5 +Version: 3.6.10 Release: 0 -%define buildversion 1 %if (0%{?suse_version} > 0) %define pcp_gr System/Monitoring @@ -51,7 +50,7 @@ Release: 0 %endif Url: http://oss.sgi.com/projects/pcp -Source0: ftp://oss.sgi.com/projects/pcp/download/pcp-%{version}-%{buildversion}.src.tar.gz +Source0: ftp://oss.sgi.com/projects/pcp/download/pcp-%{version}.src.tar.gz Source1: pcp-rpmlintrc BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -60,15 +59,16 @@ BuildRequires: bison BuildRequires: flex BuildRequires: ncurses-devel BuildRequires: procps +BuildRequires: pwdutils BuildRequires: readline-devel BuildRequires: perl(ExtUtils::MakeMaker) Patch6: pcp-xenbuild.patch Patch9: static_lib_perms.diff Patch10: pcp_legacy_init_lsb.patch -Patch11: fix_configure_path_tests.patch -Patch12: configure_append_pcp_subdir.patch Patch13: remove_cpan_rpaths.patch Patch14: rm_init_script_runlevel_4.patch +Patch15: create-pmlogger-and-pmie-logdirs-during-install.patch +Patch16: fix_pmie_pmlogger_startup_races.patch %if (0%{?suse_version} > 0) Requires: cpp @@ -115,6 +115,7 @@ Performance Co-Pilot (PCP) run-time libraries # # pcp-libs-devel +# SLE uses the legacy pcp-devel package name. # %package -n %{lib_devel_pkg} Summary: Performance Co-Pilot (PCP) development headers and documentation @@ -123,6 +124,10 @@ Group: %{lib_devel_gr} Url: http://oss.sgi.com/projects/pcp/ Requires: %{lib_pkg} = %{version} Conflicts: %{lib_devel_pkg_conflict} +%if (0%{?suse_version} > 0) +Provides: pcp-devel = %{version} +Obsoletes: pcp-devel < %{version} +%endif %if (0%{?fedora} > 0) AutoReq: no %endif @@ -276,14 +281,16 @@ into standard PCP archive logs for replay with any PCP monitoring tool. %prep %setup -q %patch6 -%patch9 +%patch9 -p1 %patch10 -%patch11 -p1 -%patch12 -p1 %patch13 -p1 %patch14 -p1 +%patch15 -p1 +%patch16 -p1 autoconf -%configure --localstatedir=/var/lib +%configure --with-rcdir=/etc/init.d \ + --with-tmpdir=%{_localstatedir}/lib/pcp/tmp \ + --with-docdir=%{_datadir}/doc/packages/pcp %clean rm -Rf $RPM_BUILD_ROOT @@ -297,13 +304,19 @@ make install_pcp # Fix stuff we do/don't want to ship rm -f $RPM_BUILD_ROOT/%{_libdir}/*.a +# bnc 796448: qa/src/xmktime.c and qa/src/pthread_barrier.h have unacceptable +# license entries. Remove these along with everything under testsuite. +rm -rf $RPM_BUILD_ROOT/%{_localstatedir}/lib/pcp/testsuite + mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/pcp +mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/pcp/tmp %if (0%{?suse_version} > 0) # add /etc/init.d/X symlinks at /usr/sbin/rcX %__install -d -m 0755 ${RPM_BUILD_ROOT}/%{_sbindir} for script in pcp pmie pmproxy pmlogger pmcd; do - ln -s "%{_sysconfdir}/init.d/${script}" "${RPM_BUILD_ROOT}/%{_sbindir}/rc${script}" + ln -s "%{_sysconfdir}/init.d/${script}" \ + "${RPM_BUILD_ROOT}/%{_sbindir}/rc${script}" done %else # default chkconfig off for Fedora and RHEL @@ -326,6 +339,12 @@ sed -e 's#$#*#' >base_man1files.list cat base_pmdas.list base_binfiles.list base_man1files.list > base_specialfiles.list +%pre +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 +exit 0 + %if (0%{?suse_version} > 0) %preun @@ -337,7 +356,20 @@ cat base_pmdas.list base_binfiles.list base_man1files.list > base_specialfiles.l %{?insserv_cleanup:%{insserv_cleanup}} %post +chown -R pcp:pcp /var/log/pcp/{pmcd,pmlogger,pmie,pmproxy} 2>/dev/null /sbin/ldconfig +%if 0%{?suse_version} < 1131 +%run_permissions +%else +%set_permissions %{_localstatedir}/lib/pcp/tmp/ +%set_permissions %{_localstatedir}/lib/pcp/tmp/pmdabash/ +%set_permissions %{_localstatedir}/lib/pcp/tmp/mmv/ +%set_permissions %{_localstatedir}/lib/pcp/tmp/pmie/ +%set_permissions %{_localstatedir}/lib/pcp/tmp/pmlogger/ +%endif + +%verifyscript +%verify_permissions -e %{_localstatedir}/lib/pcp/tmp/ -e %{_localstatedir}/lib/pcp/tmp/pmdabash/ -e %{_localstatedir}/lib/pcp/tmp/mmv/ -e %{_localstatedir}/lib/pcp/tmp/pmie/ -e %{_localstatedir}/lib/pcp/tmp/pmlogger/ %else @@ -361,6 +393,7 @@ then fi %post +chown -R pcp:pcp /var/log/pcp/{pmcd,pmlogger,pmie,pmproxy} 2>/dev/null /sbin/chkconfig --add pmcd >/dev/null 2>&1 /sbin/service pmcd condrestart /sbin/chkconfig --add pmlogger >/dev/null 2>&1 @@ -383,13 +416,17 @@ fi # but rather they are (slightly obscure) PMDA config files. # %defattr(-,root,root) -# pcp_doc_dir should be derived from a configure option, currently it's not -%{_datadir}/doc/packages/pcp-%{version} +%{_datadir}/doc/packages/pcp %if (0%{?suse_version} > 0) %{_sbindir}/rc* %endif %ghost %dir %{_localstatedir}/run/pcp +%verify(not mode) %attr(755,root,root) %dir %{_localstatedir}/lib/pcp/tmp +%verify(not mode) %attr(755,root,root) %dir %{_localstatedir}/lib/pcp/tmp/pmdabash +%verify(not mode) %attr(755,root,root) %dir %{_localstatedir}/lib/pcp/tmp/mmv +%verify(not mode) %attr(755,root,root) %dir %{_localstatedir}/lib/pcp/tmp/pmie +%verify(not mode) %attr(755,root,root) %dir %{_localstatedir}/lib/pcp/tmp/pmlogger %dir %{_pmdasdir} %dir %{_datadir}/pcp %dir %{_localstatedir}/lib/pcp @@ -399,6 +436,7 @@ fi %{_datadir}/pcp/lib %{_localstatedir}/log/pcp %{_localstatedir}/lib/pcp/pmns +%config(missingok) %{_localstatedir}/lib/pcp/pmns/.NeedRebuild %{_initrddir}/pcp %{_initrddir}/pmcd %{_initrddir}/pmlogger diff --git a/remove_cpan_rpaths.patch b/remove_cpan_rpaths.patch index 38621b1..2e521cb 100644 --- a/remove_cpan_rpaths.patch +++ b/remove_cpan_rpaths.patch @@ -1,7 +1,7 @@ -Index: pcp-3.6.3/src/cpan/PMDA/Makefile.PL +Index: pcp-3.6.10/src/perl/PMDA/Makefile.PL =================================================================== ---- pcp-3.6.3.orig/src/cpan/PMDA/Makefile.PL -+++ pcp-3.6.3/src/cpan/PMDA/Makefile.PL +--- pcp-3.6.10.orig/src/perl/PMDA/Makefile.PL ++++ pcp-3.6.10/src/perl/PMDA/Makefile.PL @@ -15,7 +15,7 @@ if ($ENV{TARGET_OS} eq "mingw") { else { $ldfrom = "local.o PMDA.o"; @@ -11,10 +11,10 @@ Index: pcp-3.6.3/src/cpan/PMDA/Makefile.PL } if ($ENV{TARGET_OS} eq "darwin") { # standard ones, minus -arch ppc -Index: pcp-3.6.3/src/cpan/LogImport/Makefile.PL +Index: pcp-3.6.10/src/perl/LogImport/Makefile.PL =================================================================== ---- pcp-3.6.3.orig/src/cpan/LogImport/Makefile.PL -+++ pcp-3.6.3/src/cpan/LogImport/Makefile.PL +--- pcp-3.6.10.orig/src/perl/LogImport/Makefile.PL ++++ pcp-3.6.10/src/perl/LogImport/Makefile.PL @@ -15,7 +15,7 @@ if ($ENV{TARGET_OS} eq "mingw") { else { $ldfrom = "LogImport.o", @@ -24,10 +24,10 @@ Index: pcp-3.6.3/src/cpan/LogImport/Makefile.PL } if ($ENV{TARGET_OS} eq "darwin") { # standard ones, minus -arch ppc -Index: pcp-3.6.3/src/cpan/MMV/Makefile.PL +Index: pcp-3.6.10/src/perl/MMV/Makefile.PL =================================================================== ---- pcp-3.6.3.orig/src/cpan/MMV/Makefile.PL -+++ pcp-3.6.3/src/cpan/MMV/Makefile.PL +--- pcp-3.6.10.orig/src/perl/MMV/Makefile.PL ++++ pcp-3.6.10/src/perl/MMV/Makefile.PL @@ -15,7 +15,7 @@ if ($ENV{TARGET_OS} eq "mingw") { else { $ldfrom = "MMV.o"; diff --git a/static_lib_perms.diff b/static_lib_perms.diff index 30f4307..b049f46 100644 --- a/static_lib_perms.diff +++ b/static_lib_perms.diff @@ -1,17 +1,153 @@ -Index: src/libpcp_pmda/src/GNUmakefile -=================================================================== ---- src/libpcp_pmda/src/GNUmakefile -+++ src/libpcp_pmda/src/GNUmakefile -@@ -65,7 +65,7 @@ $(LIBTARGET_V2): $(LIBTARGET_V3) - include $(BUILDRULES) +From bcd50d9e0a84c54c2e5d909f2567312c9af0335e Mon Sep 17 00:00:00 2001 +From: David Disseldorp +Date: Mon, 19 Nov 2012 17:15:07 +0100 +Subject: [PATCH] Install libraries without exec permission + +--- + src/genpmda/genpmda | 4 ++-- + src/libpcp/src/GNUmakefile | 4 ++-- + src/libpcp_gui/src/GNUmakefile | 4 ++-- + src/libpcp_import/src/GNUmakefile | 4 ++-- + src/libpcp_mmv/src/GNUmakefile | 4 ++-- + src/libpcp_pmda/src/GNUmakefile | 4 ++-- + src/libpcp_trace/src/GNUmakefile | 4 ++-- + src/pmdas/aix/GNUmakefile | 3 ++- + src/pmdas/darwin/GNUmakefile | 3 ++- + src/pmdas/freebsd/GNUmakefile | 3 ++- + src/pmdas/linux/GNUmakefile | 3 ++- + src/pmdas/linux_proc/GNUmakefile | 3 ++- + src/pmdas/lustrecomm/GNUmakefile | 2 +- + src/pmdas/mmv/GNUmakefile | 3 ++- + src/pmdas/pmcd/src/GNUmakefile | 2 +- + src/pmdas/sample/src/GNUmakefile | 3 ++- + src/pmdas/sendmail/GNUmakefile | 2 +- + src/pmdas/solaris/GNUmakefile | 3 ++- + 18 files changed, 33 insertions(+), 25 deletions(-) + +diff --git a/src/genpmda/genpmda b/src/genpmda/genpmda +index 4650315..1bd2cba 100755 +--- a/src/genpmda/genpmda ++++ b/src/genpmda/genpmda +@@ -909,7 +909,7 @@ install: default + \$(INSTALL) -m 755 -d \$(PCP_VAR_DIR)/pmdas + \$(INSTALL) -m 755 -d \$(PMDADIR) + \$(INSTALL) -m 755 \$(CMDTARGET) \$(PMDADIR)/\$(CMDTARGET) +- \$(INSTALL) -m 755 \$(LIBTARGET) \$(PMDADIR)/\$(LIBTARGET) ++ \$(INSTALL) -m 644 \$(LIBTARGET) \$(PMDADIR)/\$(LIBTARGET) + \$(INSTALL) -m 755 $oflag/Install \$(PMDADIR)/Install + \$(INSTALL) -m 755 $oflag/Remove \$(PMDADIR)/Remove + \$(INSTALL) -m 644 $oflag/Makefile.install \$(PMDADIR)/Makefile +@@ -972,7 +972,7 @@ install: default + \$(INSTALL) -m 755 -d \$(PCP_VAR_DIR)/pmdas + \$(INSTALL) -m 755 -d \$(PMDADIR) + \$(INSTALL) -m 755 -f \$(CMDTARGET) \$(PMDADIR)/\$(CMDTARGET) +- \$(INSTALL) -m 755 -f \$(LIBTARGET) \$(PMDADIR)/\$(LIBTARGET) ++ \$(INSTALL) -m 644 -f \$(LIBTARGET) \$(PMDADIR)/\$(LIBTARGET) + \$(INSTALL) -m 755 -f $oflag/Install \$(PMDADIR)/Install + \$(INSTALL) -m 755 -f $oflag/Remove \$(PMDADIR)/Remove + \$(INSTALL) -m 644 -f $oflag/Makefile.install \$(PMDADIR)/Makefile +diff --git a/src/libpcp/src/GNUmakefile b/src/libpcp/src/GNUmakefile +index 18adb88..6a7627d 100644 +--- a/src/libpcp/src/GNUmakefile ++++ b/src/libpcp/src/GNUmakefile +@@ -103,7 +103,7 @@ endif install : default + ifneq "$(LIBTARGET)" "" - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + endif + ifneq "$(SYMTARGET)" "" + for tt in $(SYMTARGET); do \ +@@ -111,7 +111,7 @@ ifneq "$(SYMTARGET)" "" + done + endif + ifneq "$(STATICLIBTARGET)" "" +- $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) ++ $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + endif + + default_pcp : default +diff --git a/src/libpcp_gui/src/GNUmakefile b/src/libpcp_gui/src/GNUmakefile +index 6d636e0..d8fe1e7 100644 +--- a/src/libpcp_gui/src/GNUmakefile ++++ b/src/libpcp_gui/src/GNUmakefile +@@ -53,7 +53,7 @@ include $(BUILDRULES) + + install: default + ifneq "$(LIBTARGET)" "" +- $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + endif + ifneq "$(SYMTARGET)" "" + for tt in $(SYMTARGET); do \ +@@ -61,7 +61,7 @@ ifneq "$(SYMTARGET)" "" + done + endif + ifneq "$(STATICLIBTARGET)" "" +- $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) ++ $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + endif + + default_pcp: default +diff --git a/src/libpcp_import/src/GNUmakefile b/src/libpcp_import/src/GNUmakefile +index 1cdf529..f1c7d1d 100644 +--- a/src/libpcp_import/src/GNUmakefile ++++ b/src/libpcp_import/src/GNUmakefile +@@ -50,7 +50,7 @@ include $(BUILDRULES) + + install: default + ifneq "$(LIBTARGET)" "" +- $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + endif + ifneq "$(SYMTARGET)" "" + for tt in $(SYMTARGET); do \ +@@ -58,7 +58,7 @@ ifneq "$(SYMTARGET)" "" + done + endif + ifneq "$(STATICLIBTARGET)" "" +- $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) ++ $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + endif + + default_pcp: default +diff --git a/src/libpcp_mmv/src/GNUmakefile b/src/libpcp_mmv/src/GNUmakefile +index e2395f3..9619df5 100644 +--- a/src/libpcp_mmv/src/GNUmakefile ++++ b/src/libpcp_mmv/src/GNUmakefile +@@ -45,7 +45,7 @@ include $(BUILDRULES) + + install: default + ifneq "$(LIBTARGET)" "" +- $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + endif + ifneq "$(SYMTARGET)" "" + for tt in $(SYMTARGET); do \ +@@ -53,7 +53,7 @@ ifneq "$(SYMTARGET)" "" + done + endif + ifneq "$(STATICLIBTARGET)" "" +- $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) ++ $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + endif + + default_pcp: default +diff --git a/src/libpcp_pmda/src/GNUmakefile b/src/libpcp_pmda/src/GNUmakefile +index 23a1b10..182d68d 100644 +--- a/src/libpcp_pmda/src/GNUmakefile ++++ b/src/libpcp_pmda/src/GNUmakefile +@@ -79,7 +79,7 @@ include $(BUILDRULES) + + install : default + ifneq "$(LIBTARGET)" "" +- $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + endif ifneq "$(LIBTARGET_V1)" "" $(INSTALL) -S $(LIBTARGET_V3) $(PCP_LIB_DIR)/$(LIBTARGET_V1) - endif -@@ -73,7 +73,7 @@ ifneq "$(LIBTARGET_V2)" "" +@@ -88,7 +88,7 @@ ifneq "$(LIBTARGET_V2)" "" $(INSTALL) -S $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET_V2) endif ifneq "$(STATICLIBTARGET)" "" @@ -20,16 +156,17 @@ Index: src/libpcp_pmda/src/GNUmakefile endif default_pcp : default -Index: src/libpcp_trace/src/GNUmakefile -=================================================================== ---- src/libpcp_trace/src/GNUmakefile -+++ src/libpcp_trace/src/GNUmakefile -@@ -54,12 +54,12 @@ endif - include $(BUILDRULES) +diff --git a/src/libpcp_trace/src/GNUmakefile b/src/libpcp_trace/src/GNUmakefile +index d3ea55d..034195a 100644 +--- a/src/libpcp_trace/src/GNUmakefile ++++ b/src/libpcp_trace/src/GNUmakefile +@@ -51,13 +51,13 @@ include $(BUILDRULES) install : default + ifneq "$(LIBTARGET)" "" - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + endif ifneq "$(SYMTARGET)" "" $(INSTALL) -S $(LIBTARGET) $(PCP_LIB_DIR)/$(SYMTARGET) endif @@ -39,87 +176,157 @@ Index: src/libpcp_trace/src/GNUmakefile endif default_pcp : default -Index: src/libpcp_gui/src/GNUmakefile -=================================================================== ---- src/libpcp_gui/src/GNUmakefile -+++ src/libpcp_gui/src/GNUmakefile -@@ -52,14 +52,14 @@ endif - include $(BUILDRULES) +diff --git a/src/pmdas/aix/GNUmakefile b/src/pmdas/aix/GNUmakefile +index 9282d76..46336a7 100644 +--- a/src/pmdas/aix/GNUmakefile ++++ b/src/pmdas/aix/GNUmakefile +@@ -41,7 +41,8 @@ build-me: common.h root_aix domain.h $(CMDTARGET) $(LIBTARGET) help.dir help.pag + install: build-me + $(INSTALL) -m 755 -d $(PMDADIR) + $(INSTALL) -m 644 domain.h help.dir help.pag $(PMDADIR) +- $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) ++ $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 644 root_aix $(PCP_VAR_DIR)/pmns/root_aix + else + build-me: +diff --git a/src/pmdas/darwin/GNUmakefile b/src/pmdas/darwin/GNUmakefile +index a2fd3a7..081cc98 100644 +--- a/src/pmdas/darwin/GNUmakefile ++++ b/src/pmdas/darwin/GNUmakefile +@@ -45,7 +45,8 @@ build-me: root_darwin domain.h $(LIBTARGET) $(CMDTARGET) help.dir help.pag + install: build-me + $(INSTALL) -m 755 -d $(PMDADIR) + $(INSTALL) -m 644 domain.h help.dir help.pag $(PMDADIR) +- $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) ++ $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 644 root_darwin $(PCP_VAR_DIR)/pmns/root_darwin + else + build-me: +diff --git a/src/pmdas/freebsd/GNUmakefile b/src/pmdas/freebsd/GNUmakefile +index 217fcd8..00b2dcd 100644 +--- a/src/pmdas/freebsd/GNUmakefile ++++ b/src/pmdas/freebsd/GNUmakefile +@@ -46,7 +46,8 @@ build-me: domain.h $(LIBTARGET) $(CMDTARGET) help.dir help.pag + install: default + $(INSTALL) -m 755 -d $(PMDADIR) + $(INSTALL) -m 644 domain.h help help.dir help.pag $(PMDADIR) +- $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) ++ $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 644 root_freebsd $(PCP_VAR_DIR)/pmns/root_freebsd + else + build-me: +diff --git a/src/pmdas/linux/GNUmakefile b/src/pmdas/linux/GNUmakefile +index 087e53a..bc81973 100644 +--- a/src/pmdas/linux/GNUmakefile ++++ b/src/pmdas/linux/GNUmakefile +@@ -67,7 +67,8 @@ build-me: domain.h $(LIBTARGET) $(CMDTARGET) help.dir help.pag + install: default + $(INSTALL) -m 755 -d $(PMDADIR) + $(INSTALL) -m 644 domain.h help help.dir help.pag $(PMDADIR) +- $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) ++ $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 644 root_linux $(PCP_VAR_DIR)/pmns/root_linux + else + build-me: +diff --git a/src/pmdas/linux_proc/GNUmakefile b/src/pmdas/linux_proc/GNUmakefile +index 7d8961a..89aa43f 100644 +--- a/src/pmdas/linux_proc/GNUmakefile ++++ b/src/pmdas/linux_proc/GNUmakefile +@@ -48,7 +48,8 @@ install: default + $(INSTALL) -m 755 -d $(PMDADIR) + $(INSTALL) -m 755 Install Remove $(PMDADIR) + $(INSTALL) -m 644 domain.h pmns pmns.cgroup root help $(PMDADIR) +- $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) ++ $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 644 linux_proc_migrate.conf $(PCP_VAR_DIR)/config/pmlogrewrite/linux_proc_migrate.conf + else + build-me: +diff --git a/src/pmdas/lustrecomm/GNUmakefile b/src/pmdas/lustrecomm/GNUmakefile +index bd0aadc..153fe83 100644 +--- a/src/pmdas/lustrecomm/GNUmakefile ++++ b/src/pmdas/lustrecomm/GNUmakefile +@@ -47,7 +47,7 @@ build-me: domain.h $(TARGETS) + install: default + $(INSTALL) -m 755 -d $(PMDADIR) + $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) +- #$(INSTALL) -m 755 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) ++ #$(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 755 Install Remove $(PMDADIR) + $(INSTALL) -m 644 $(DFILES) root pmns domain.h help $(PMDADIR) + else +diff --git a/src/pmdas/mmv/GNUmakefile b/src/pmdas/mmv/GNUmakefile +index 302c212..7c6d1cd 100644 +--- a/src/pmdas/mmv/GNUmakefile ++++ b/src/pmdas/mmv/GNUmakefile +@@ -44,7 +44,8 @@ include $(BUILDRULES) + install_pcp install: default + $(INSTALL) -m 755 -d $(PMDADIR) + $(INSTALL) -m 644 domain.h $(PMDADIR)/domain.h +- $(INSTALL) -m 755 $(TARGETS) Install Remove $(PMDADIR) ++ $(INSTALL) -m 755 $(CMDTARGET) mmvdump$(EXECSUFFIX) Install Remove $(PMDADIR) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 644 pmns $(PMDADIR)/root_mmv + $(INSTALL) -m 644 root_mmv $(PCP_VAR_DIR)/pmns/root_mmv + $(INSTALL) -m 1777 -d $(PCP_TMP_DIR)/mmv +diff --git a/src/pmdas/pmcd/src/GNUmakefile b/src/pmdas/pmcd/src/GNUmakefile +index 00e1e9c..34bbeb7 100644 +--- a/src/pmdas/pmcd/src/GNUmakefile ++++ b/src/pmdas/pmcd/src/GNUmakefile +@@ -47,7 +47,7 @@ default: $(LIBTARGET) install: default -- $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) -+ $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) - ifneq "$(SYMTARGET)" "" - for tt in $(SYMTARGET); do \ - $(INSTALL) -S $(LIBTARGET) $(PCP_LIB_DIR)/$$tt || exit 1; \ - done - endif - ifneq "$(STATICLIBTARGET)" "" -- $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) -+ $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) - endif + $(INSTALL) -m 755 -d $(PCP_PMDAS_DIR)/pmcd +- $(INSTALL) -m 755 $(LIBTARGET) $(PCP_PMDAS_DIR)/pmcd/$(LIBTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PCP_PMDAS_DIR)/pmcd/$(LIBTARGET) - default_pcp: default -Index: src/libpcp_import/src/GNUmakefile -=================================================================== ---- src/libpcp_import/src/GNUmakefile -+++ src/libpcp_import/src/GNUmakefile -@@ -45,14 +45,14 @@ $(OBJECTS): $(HFILES) include $(BUILDRULES) - install: default -- $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) -+ $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) - ifneq "$(SYMTARGET)" "" - for tt in $(SYMTARGET); do \ - $(INSTALL) -S $(LIBTARGET) $(PCP_LIB_DIR)/$$tt || exit 1; \ - done - endif - ifneq "$(STATICLIBTARGET)" "" -- $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) -+ $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) - endif +diff --git a/src/pmdas/sample/src/GNUmakefile b/src/pmdas/sample/src/GNUmakefile +index 57b61be..57b9a17 100644 +--- a/src/pmdas/sample/src/GNUmakefile ++++ b/src/pmdas/sample/src/GNUmakefile +@@ -43,7 +43,8 @@ sample.o events.o: events.h + + install: default + $(INSTALL) -m 755 -d $(PMDADIR) +- $(INSTALL) -m 755 $(CMDTARGET) $(LIBTARGET) $(PMDADIR) ++ $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) - default_pcp: default -Index: src/libpcp_mmv/src/GNUmakefile -=================================================================== ---- src/libpcp_mmv/src/GNUmakefile -+++ src/libpcp_mmv/src/GNUmakefile -@@ -40,14 +40,14 @@ default: pcp $(LIBTARGET) $(SYMTARGET) $ include $(BUILDRULES) - install: default -- $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) -+ $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) - ifneq "$(SYMTARGET)" "" - for tt in $(SYMTARGET); do \ - $(INSTALL) -S $(LIBTARGET) $(PCP_LIB_DIR)/$$tt || exit 1; \ - done - endif - ifneq "$(STATICLIBTARGET)" "" -- $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) -+ $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) - endif +diff --git a/src/pmdas/sendmail/GNUmakefile b/src/pmdas/sendmail/GNUmakefile +index e551ad2..0c81c0a 100644 +--- a/src/pmdas/sendmail/GNUmakefile ++++ b/src/pmdas/sendmail/GNUmakefile +@@ -36,7 +36,7 @@ include $(BUILDRULES) - default_pcp: default -Index: src/libpcp/src/GNUmakefile -=================================================================== ---- src/libpcp/src/GNUmakefile -+++ src/libpcp/src/GNUmakefile -@@ -93,14 +93,14 @@ kernel_pmda_dso = $(TARGET_OS) - endif - - install : default -- $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) -+ $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) - ifneq "$(SYMTARGET)" "" - for tt in $(SYMTARGET); do \ - $(INSTALL) -S $(LIBTARGET) $(PCP_LIB_DIR)/$$tt || exit 1; \ - done - endif - ifneq "$(STATICLIBTARGET)" "" -- $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) -+ $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) - endif - - default_pcp : default + install install_pcp: default + $(INSTALL) -m 755 -d $(PMDADIR) +- $(INSTALL) -m 755 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/pmda$(IAM)$(EXECSUFFIX) + $(INSTALL) -m 755 $(SCRIPTS) $(PMDADIR) + $(INSTALL) -m 644 $(DFILES) pmns help root domain.h $(PMDADIR) +diff --git a/src/pmdas/solaris/GNUmakefile b/src/pmdas/solaris/GNUmakefile +index 0d81837..5a4f0d8 100644 +--- a/src/pmdas/solaris/GNUmakefile ++++ b/src/pmdas/solaris/GNUmakefile +@@ -45,7 +45,8 @@ build-me: root_solaris domain.h $(LIBTARGET) $(CMDTARGET) help.dir help.pag + install: build-me + $(INSTALL) -m 755 -d $(PMDADIR) + $(INSTALL) -m 644 domain.h help.dir help.pag $(PMDADIR) +- $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) ++ $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) ++ $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 644 root_solaris $(PCP_VAR_DIR)/pmns/root_solaris + else + build-me: +-- +1.7.10.4 +