pcp
[Top] [All Lists]

Re: [pcp] pcp updates: merges (mgoodwin, fche, kenj, self), qa

To: pcp@xxxxxxxxxxx
Subject: Re: [pcp] pcp updates: merges (mgoodwin, fche, kenj, self), qa
From: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date: Tue, 28 Oct 2014 17:39:49 +1100
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <573773476.1355528.1414474652048.JavaMail.zimbra@xxxxxxxxxx>
References: <573773476.1355528.1414474652048.JavaMail.zimbra@xxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0
On 28/10/14 16:37, Nathan Scott wrote:
> Changes committed to git://git.pcp.io/pcp.git dev
> 
> Mark Goodwin (1):
>        pmdalinux: fix hinv.cpu.clock refresh logic so value can change
> 
> Ken McDonell (8):
>        Makepkgs - debian build, don't try to sign packages
>        qa/542 - timezone is sometimes 4 chars long, e.g. AEST
>        qa/qa_hosts.master - simplify kenj sections
>        qa/069 - add diags for failure cases
>        qa/645 - use fqdn hostnames and re-instate hyphen in hostname
>        qa/common.avahi - domain name games
>        sample pmda - make sample.const_rate.value available to pmstore
>        qa/260 - refactor choice of metrics
> 
> Nathan Scott (9):
>        build: extend Makepkgs rpm path trickery to non-RedHat platforms
>        build: update mac gitignore for generated file
>        coverity: a handful of trivial string-related improvements
>        build: rework the web-manager split to just javascript files now
>        build: switch fedora spec from web-manager to webjs model
>        build: fix fallout from a makefile LSRCFILES cull
>        pmwebd qa: fix qa/780 - not updated since -f option removed from pmwebd
>        pmwebd qa: allow qa/660 to handle missing jsdemos directory
>        pmwebd qa: add qa/782 to verify options file back-compatibility
> 
> Frank Ch. Eigler (62):
>        pmwebd: make foreground mode less magic
>        whitespace: gnu-indent pmwebd to keep it looking spic & span
>        pmwebd build: link in cairo graphics library
>        pmwebd: TODO++
>        pmwebd: pmgraphite rough-in snapshot
>        pmwebd: initial conversion to C++
>        pmwebd: eliminate mhdb_* miniapi in favour of ordinary c++ 
> stringstreams
>        pmwebapi: snapshot for web graphing
>        pmwebapi: switched to astyle as indenter
>        pmwebapi: signs of life snapshot: graphlot /rawdata data supplying
>        pmwebapi: snapshot, grafana signs of life
>        pmwebd: grafana snapshot, TZ=UTC & absolute timestamp parsing
>        pmwebd: metric enumeration snapshot
>        pmwebd: remind self of numerical methods, loss of significance
>        pmwebd: respect /graphite/render maxDataPoints more vigorously
>        pmwebd: merge /rawdata & /render&format=json modes
>        pmwebd: graphlot-invoked-from-graphite-browser js improvements
>        pmwebd: metric enumeration coup de grace: add instance domains too
>        pmwebd: handle metric/query format=completer
>        pmwebd: use isnanf() to make double-sure to detect float (vs. doubles)
>        pmwebd: add Access-Control-Allow-Origin: * headers to all json 
> responses
>        pmwebd: respond to pending exits (^C) more rapidly
>        pmwebd: add periodic client-stats notification
>        pmwebd: dumpstats tweak
>        pmwebd: tweak client dumpstats more
>        pmwebd: reindent the lot
>        pmwebd: beginnings of cairo server-side rendering of graphs
>        pmwebd: graphite png rendering: fix rendering of null sequences
>        pmwebd: graphite color name parsing
>        pmwebd: draw legend, title
>        pmwebd graphite: draw grid, axis labels too
>        pmwebd graphite: cairo rendering: fix time axis
>        pmwebd graphite: during pmns enumeration, filter out non-numerics
>        pmwebd graphite: support graphite metric-regex-search
>        pmwebd: correct result mime/type for file server
>        pmwebd graphite: add graphlot metric-box live-search too
>        pmwebd graphite, multithread prep
>        pmwebd graphite: add -M multithreading option
>        pmwebd: tweak verbosity; add png cache-suppression headers
>        pmwebd: log http query params tighter for -vv
>        pmwebd graphite png rendering: intelligent legend/curve 
> sorting-by-visibility
>        pmwebd: correct a memory leak
>        pmwebd graphite archive processing: avoid out-of-range times
>        pmwebapi classic pmapi: correct a c++ conversion problem, caught by 
> old 660 testcase
>        pmwebd: fix typo in new rc_pmwebd option loader
>        pmwebd: whitespace update
>        pmwebd graphite: tweak messages, y-axis rounding, time parsing
>        pmwebd config sample: add commented-out $PCP_DERIVED_CONFIG clause
>        pmwebd: add $LIB_FOR_PTHREADS
>        pmwebd diagnostics: make -vvv Just Right for graphite non-empty curves
>        pmwebd: add gcov (test-coverage) build option; enlarge 660 test case
>        pmwebd qa++, now gcov-guided
>        pmwebd qa: now with ipv6 output too
>        pmwebd: switch to pkgconfig configury to extract cflags/libs paths
>        pmwebd: extend precision for some floating point outputs
>        pmwebd: eliminate compiler warnings about unused variables
>        pmwebapi: ACAO and QA improvements
>        pmwebd: support old $PMWEBDOPTS configuration file format
>        pmwebd: correct graphite cairo status formatting in startup message
>        pmmgr: handle case of pm{ie,logger} daemon that refuses SIGTERM
> 
>   Makepkgs                                        |   45
>   build/mac/.gitignore                            |    1
>   build/rpm/GNUmakefile                           |    4
>   build/rpm/fedora.spec                           |   46
>   build/rpm/pcp.spec.in                           |  131
>   build/tar/postinstall.tail                      |    4
>   configure                                       |  235 +
>   configure.ac                                    |   57
>   debian/GNUmakefile                              |   35
>   debian/control                                  |   25
>   debian/control.master                           |   17
>   debian/control.webapi                           |    8
>   debian/pcp-manager.dirs                         |    2
>   debian/pcp-manager.install                      |   11
>   debian/pcp-manager.postinst                     |   14
>   debian/pcp-manager.postrm                       |    6
>   debian/pcp-manager.prerm                        |    8
>   debian/pcp-webapi.dirs                          |    2
>   debian/pcp-webapi.install                       |    5
>   debian/pcp-webapi.postinst                      |   14
>   debian/pcp-webapi.postrm                        |    6
>   debian/pcp-webapi.prerm                         |    8
>   debian/rules                                    |   13
>   man/man1/pmmgr.1                                |  340 +
>   man/man1/pmwebd.1                               |  285 +
>   man/man3/pmwebapi.3                             |  263 +
>   qa/.gitignore                                   |    1
>   qa/069                                          |    8
>   qa/260                                          |   73
>   qa/260.out                                      |  352 -
>   qa/518                                          |    2
>   qa/542                                          |    1
>   qa/645                                          |    2
>   qa/645.out                                      |    4
>   qa/660                                          |  254 +
>   qa/660.out.4                                    | 2176 +++++++++++
>   qa/660.out.46                                   | 2457 ++++++++++++
>   qa/666                                          |    5
>   qa/780                                          |  106
>   qa/780.out                                      |    8
>   qa/782                                          |   56
>   qa/782.out                                      |   13
>   qa/GNUmakefile                                  |    2
>   qa/common.avahi                                 |    7
>   qa/common.webapi                                |   39
>   qa/group                                        |    7
>   qa/qa_hosts.master                              |   42
>   qa/src/test_webapi.python                       |  158
>   src/GNUmakefile                                 |    2
>   src/include/builddefs.in                        |    8
>   src/include/pcp.conf.in                         |    8
>   src/libpcp/src/logmeta.c                        |    2
>   src/pmcd/rc-proc.sh                             |    4
>   src/pmchart/view.cpp                            |    8
>   src/pmdas/linux/proc_cpuinfo.c                  |    2
>   src/pmdas/sample/src/sample.c                   |    4
>   src/pmdumptext/pmdumptext.cpp                   |    2
>   src/pmmgr/.gitignore                            |    2
>   src/pmmgr/GNUmakefile                           |   59
>   src/pmmgr/TODO                                  |   12
>   src/pmmgr/config/GNUmakefile                    |   40
>   src/pmmgr/config/README                         |   13
>   src/pmmgr/config/target-discovery.example-avahi |    1
>   src/pmmgr/pmmgr.cxx                             | 1305 ++++++
>   src/pmmgr/pmmgr.h                               |  133
>   src/pmmgr/pmmgr.options                         |   27
>   src/pmmgr/pmmgr.service.in                      |   14
>   src/pmmgr/rc_pmmgr                              |  296 +
>   src/pmns/pmnsdel.c                              |   12
>   src/pmwebapi/.gitignore                         |    4
>   src/pmwebapi/.indent.pro                        |    4
>   src/pmwebapi/GNUmakefile                        |  109
>   src/pmwebapi/TODO                               |   38
>   src/pmwebapi/main.c                             | 1896 ++++-----
>   src/pmwebapi/main.cxx                           | 1886 ++++++---
>   src/pmwebapi/pmgraphite.c                       |  122
>   src/pmwebapi/pmgraphite.cxx                     | 4676 
> +++++++++++++++++-------
>   src/pmwebapi/pmresapi.c                         |  452 +-
>   src/pmwebapi/pmresapi.cxx                       |  462 +-
>   src/pmwebapi/pmwebapi.c                         | 4206 ++++++++++-----------
>   src/pmwebapi/pmwebapi.cxx                       | 3369 +++++++++++------
>   src/pmwebapi/pmwebapi.h                         |  485 +-
>   src/pmwebapi/pmwebd.options                     |   88
>   src/pmwebapi/pmwebd.service.in                  |   14
>   src/pmwebapi/rc_pmwebd                          |  360 +
>   src/pmwebapi/util.c                             |  264 -
>   src/pmwebapi/util.cxx                           |  296 +
>   src/pmwebapi/util.h                             |   70
>   88 files changed, 20899 insertions(+), 7214 deletions(-)
> 
> _______________________________________________
> pcp mailing list
> pcp@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/pcp
> 

On ubuntu I'm seeing build errors ...

Makepkgs dies with

=== pmwebapi ===
gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all 
-D_FORTIFY_SOURCE=2  -Wextra -fPIE -Wall -O2 -g -DPCP_DEBUG 
-DPCP_VERSION=\"3.10.0\" -I../../src/include -I../../src/include/pcp   -c -o 
main.o main.c
In file included from main.c:17:0:
pmwebapi.h:21:18: fatal error: string: No such file or directory
 #include <string>
                  ^
compilation terminated.

Strangely, make by hand, as in,
$ cd src; make
dies differently in the python code ... which suggests another problem related 
to perhaps some change in the configure plumbing between Makepkgs and 
qa/admin/myconfiguire (yep, see below, looks like Makepkgs and 
qa/admin/myconfigure don't agree on python3 or not)

kenj@bozo:~/src/pcp/src/python$ make
python3 setup.py build_ext --include-dirs=../../src/include 
--library-dirs=../../src/libpcp/src:../../src/libpcp_pmda/src:../../src/libpcp_gui/src:../../src/libpcp_import/src:../../src/libpcp_mmv/src
running build_ext
building 'cpmapi' extension
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes 
-g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security 
-D_FORTIFY_SOURCE=2 -fPIC -I../../src/include -I/usr/include/python3.4m -c 
pmapi.c -o build/temp.linux-x86_64-3.4/pmapi.o
pmapi.c:27:20: fatal error: Python.h: No such file or directory
 #include <Python.h>
                    ^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

configure differences ...

kenj@bozo:~/src/pcp/build/deb/pcp-3.10.0/src/include$ diff -r . 
~/src/pcp/src/include
diff -r ./builddefs /home/kenj/src/pcp/src/include/builddefs
36c36
< PACKAGE_CONFIGURE ?=  --with-systemd=no --with-python3=no
---
> PACKAGE_CONFIGURE ?= 
226,227c226,227
< ENABLE_PYTHON = true
< ENABLE_PYTHON3 = false
---
> ENABLE_PYTHON = false
> ENABLE_PYTHON3 = true
diff -r ./builddefs.install /home/kenj/src/pcp/src/include/builddefs.install
36c36
< PACKAGE_CONFIGURE ?=  --with-systemd=no --with-python3=no
---
> PACKAGE_CONFIGURE ?= 
226,227c226,227
< ENABLE_PYTHON = true
< ENABLE_PYTHON3 = false
---
> ENABLE_PYTHON = false
> ENABLE_PYTHON3 = true


<Prev in Thread] Current Thread [Next in Thread>