pcp-6.3.1 (17 September 2024)
    - Client tools and utilities:
	pcp2arrow: fix extraction of values for metrics with indoms
	pcp-htop: fix platform setting enabling screen tabs
	pcp-htop: update to latest upstream bug fixes
	pcp-meminfo: added timestamp string for consistency
    - PMDA additions, enhancements and bug fixes:
	pmdaopenmetrics: add vLLM metrics support by default
	pmdahacluster: handle pacemaker 2.1.6 crm_mon output changes
	pmdahacluster: handle new style Pacemaker role descriptions
	pmdalinux: MPJoinSynBackupRx, MPJoinSynAckBackupRx netstat metrics
	pmdalinux: sysfs fallback from hinv.cpu.clock metric
	pmdaproc: lazy initialisation for accounting metrics
	pmdapmcd: expose pmcd limits as new metrics
	pmdammv: use isnan instead of open-coding NaN checks
    - Server-side utilities and log management scripts:
	pmcd: put an explicit cap on max number of fetched PMIDs
	pmcd: put an explicit cap on max number of contexts per client
	pmcd: cleanup caching of local hostname string
	pmpost: guard against possible symlink attack
	pmproxy: transition to dual Redis/Valkey support
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp_web: fix a race in webgroup context teardown on timeout
	libpcp_web: transition to dual Redis/Valkey support
	libpcp: auto-load the proc PMDA in local context mode
	libpcp: fix buffer overflow in __pmServerAddInterface
	libpcp: refactor the attr PDU content checking
	libpcp: desc PDU consistency check and error message rework
	libpcp: text PDU consistency check and error message rework
	libpcp: creds PDU consistency check and error message rework
	libpcp: label PDU consistency check and error message rework
	libpcp: instance PDU consistency check and error message rework
	libpcp: rework some fetch PDU integrity checks and error messages
	libpcp: reworked __pmDecodeIDList integrity checks and warnings
	libpcp: ensure no fd leakage to child from __pmProcessPipe
	libpcp: ensure container names contain limited characters
	libpcp: fix buffer overrun test in __pmDecodeValueSet
	libpcp: hardening of the results PDU handling
	libpcp: hardening of the creds PDU handling
	libpcp: add new __pmCtlDebug() function
	python API: fix MMV metric text, indom and semantics handling
	python API: add log import timestamp convenience mechanisms
    - Build, infrastructure and packaging updates:
	build: tweak Makepkgs as dpkg-parsechangelog(1) is a bit picky
	build: drop gfs2 PMDA from build if distro vendor opts-out
	build: update denki.conf packaging location for consistency
    - Documentation:
	man pages: tidy up references to $PCP_DEBUG
	man pages: __pmHash* added to man3i
	man pages: pmnewcontext(3) unix: and local: option details
	docs: man page updates transitioning away from Redis
	docs: correct pmlogger(1) man page reference to section 5 page
	docs: update the books to refer to key servers more generically
	pmrep et al man pages: describe derived metric troubleshooting

pcp-6.3.0 (30 July 2024)
    - Client tools and utilities:
	pcp-htop: add AMD GPU metrics support
	pcp-htop: fix Available Meter column list in Setup/F2
	pcp-htop: fix nested derived metric definitions for devices
	pcp-htop: fix label/color botch in the MySQL keys Meter config
	pcp-xsos: fast system overview for Red Hat customer support
	pcp-atop: fix units conversion for ipc.shm metric values
	pcp2openmetrics: stricter adherence to the specification
	pmview: developer preview only, incl. mpvis, dkvis, osvis
	pmstat: include guest time in extra CPU stats
	pmrep conf: add support for pmstat -x alike metricset
	pmrep conf: fix collectl cpu metrics to match current versions
	pmrep conf: add guest cpu time to vmstat output where missing
	pmrep conf: add metricset to mimic pmstat(1)
	pmrep conf: fix cpu metrics in sar/vmstat metricset formulas
	pmconfig: add -L y2038_safe to know if 8-byte time_t used
    - PMDA additions, enhancements and bug fixes:
	pmdaamdgpu: metrics from libdrm and libdrm-amdgpu libraries
	pmdabpftrace: use notready startup protocol with pmcd
	pmdaproc: add AMD GPU support through fdinfo interface
	pmdalinux: add support for Hyper-V balloon metrics
	pmdalinux: add hinv.disk metrics for controller and disk model
	pmdasockets: fix and defend against ss buffer overruns
    - Server-side utilities and log management scripts:
	pmcd scripts: ensure pmcd.conf not rewritten on every restart
	pmcd scripts: tweak cross-platform ping(1) version sniffing
	pmlogger_check: tighten ps|grep process search logic
	pmlogconf: add configuration file for vmmemctl metrics
	pmlogconf: add configuration file for hugepage metrics
	pmlogconf: add configuration file for hyper-v metrics
	pmlogctl, pmiectl: send -V output to stderr
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	python api: harden pmconfig parsing of bad config settings
	python api: _TIME_BITS=64 changes for 32-bit platforms
	libpcp: additional PMNS locking
	libpcp: fixup for child hang in __pmProcessPipe function
	libpcp: _TIME_BITS=64 changes for 32-bit platforms
	libpcp: rework for some AF routines and signal handling
	libpcp: extend derived metrics unary functions
	libpcp: fix PDU error handling botch with EINTR
	libpcp_gui, libpcp_qed: changes to help pmview
    - Build, infrastructure and packaging updates:
	build: configure.ac rework for 32-bit time_t Y2038 changes
	build: skip broken Perl modules for some 32-bit platforms
	build: add deb Replaces for Ubuntu 24.04 package renaming
	build: add rpm dependency on /bin/ps from procps[-ng] packages
	qa: update java classes for more modern Java bytecode version
	qa: rework sample pmda sample.updown.* metrics
    - Documentation:
	docs: rename pmcheck.1 to pcp-check.1 for perl pmcheck
	docs: fix pmdahacluster long metric help text formatting

pcp-6.2.2 (15 May 2024)
    - pmdalibvirt: add support for metric labels
    - pmdalibvirt: new balloon, vCPU and domain info metrics
    - pmdalibvirt: remove support for the ancient RHEL 5 era "oldapi"
    - pmdalinux: implement mem.vmmemctl VM balloon metrics
    - pmdauwsgi: improve handling of transient uWSGI servers
    - pmdauwsgi: short-circuit handling of pmcheck failure
    - pmdauwsgi: fix semantics of several metrics
    - pmcd: rate-limit connection failure logging in case of bursts
    - pmcheck: rework checkproc.sh when used in non-systemd environment
    - pmrep conf: minor tweaks to sync with sysstat 12.7.5
    - pmrep conf: fix few pidstat metric formulas
    - pmlogdump: fix -V/--version option handling
    - pmlogger_daily_report.sh: fix pmrep error filtering
    - pcp2openmetrics: minor bug fixes, added archive timestamps
    - indomcachectl: new tool to initialize/dump indom cache files
    - libpcp_pmda: add PMDA_CACHE_WRITE indom cache operation
    - libpcp_web: ensure openmetrics scrape sees all labels
    - libpcp: derived metrics: add novalue() and defined(x) rework
    - libpcp: derived metrics lazy binding for defined(x) ternary
    - libpcp: add __pmNotifyThrottle and __pmResetNotifyThrottle
    - python API: pass help text result as string not bytes
    - python API: fix return value from pmLoadDerivedConfig
    - tmpfiles.d: extend the tmpfiles.d directory set to logdirs
    - bash,zsh: ensure completion for both pmlogdump and pmdumplog
    - build: add missing python rpms to pcp-testsuite deps
    - build: use Y2038-safe time_t interfaces on 32-bit platforms
    - selinux: allow pmie/pmlogger services to use systemd status
    - selinux: ignore pmie/pmlogger getattr on nsfs files
    - docs: add pmrep(1) hint about CSV delimiter with metricsets
    - man pages: pmnewcontext.3: reword PM_CONTEXT_LOCAL description
    - man pages: man-spell updates

pcp-6.2.1 (10 April 2024)
    - PMDA additions, enhancements and bug fixes:
	pmdauwsgi: (new) instrumentation from uWSGI servers
	pmdalinux: new hugepage metrics from sysfs (fixed size hugepages)
	pmdalinux: new filesys.uuid and filesys.type metrics
	pmdalinux: new TcpExt metrics from /proc/net/netstat
	pmdalinux: new softnet metrics from newer kernel versions
	pmdalinux: new /proc/vmstat khugepaged metrics
	pmdabpf: updates to add eBPF networking metrics for pcp-atop
	pmdaopenmetrics: fix script error diagnostic cascading exception
    - Client tools and utilities:
	pcp2openmetrics: (new) push PCP metrics in OpenMetrics format
	pmcheck: (new) interrogate and control PCP components
	pmcheck: Redis server detection and agent recommendation
	pmcheck: PostgreSQL server detection and agent recommendation
	pmcheck: uwSGI server detection and agent recommendation
	pcp-atopsar: fix TZ mishandling relating to day-crossover
	pcp-dstat: fix an I/O config typo, sum reads and writes
	pcp-htop: sync latest htop-3.3.0 fixes
	pmrep.conf: use bpf instead of bcc pmda for proc net metrics
	pmrep.conf: proc-essential cosmetic improvements
	pmrep.conf: remove vmeff field from sar -B config
	pmrepconf: use pmrep-internal representations for each metric
    - Server-side utilities and log management scripts:
	pmlogger: bizarre timezone fix (github #1936)
	pmlogger: improve handling of a change in metadata semantics
	pmlogdump: add support for multi-archive contexts
	pmproxy: disable Redis protocol proxying by default
	runaspcp: remove hard-coded "pcp" for user and group
	init scripts: drop conditonal use of setpriv(1) or runuser(1)
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: fix logmeta.c SEGV with V3 archives
	libpcp: fix memleak on repeated __pmFixPMNSHashTab calls
	libpcp: add pmgetopt pmflush() call for warnings
	libpcp: fixes for V3 archives and multi-archive contexts
	libpcp: export __pmLogChangeArchive() interface to tools
	libpcp: fix for PMNS with multi-archive contexts
	libpcp: small derived metrics bug fix (github #1921)
    - Build, infrastructure and packaging updates:
	Linux MX distro support (Debian without systemd)
	riscv: configure pmdabpf_arch value correctly
	tar packages: fix perl modules install in postinstall script
	eBPF updates: add submodule for blazesym, sync to latest
	debian build: add postrm for pcp-zeroconf
	build: removed cppcheck from 'make check', too flakey
	container: Fedora 40 container testing added
	container: fixed Fedora base image location (quay.io)
	build: add support for riscv64 to pcp rpm spec files
    - Security Enhanced Linux:
	selinux policy: small tweak for pmie signal handling
    - Documentation:
	man pages: document pmlogger_check and pmlogger_daily SaveLogs
	man pages: man-spell and corrections
	docs: updated donations page with new fiscal sponsor details

pcp-6.2.0 (12 February 2024)
    - Client tools and utilities:
	pmlogger: default to creating version 3 PCP archives
	pmie, pmlogger, pmcd, pmproxy: init script hardening to
	    run less as root:root, more as pcp:pcp and more safely
	pcp-reboot-init: new systemd service for $PCP_RC_DIR setup
	pcp2arrow: new, export metrics to parquet format for pandas
	pcp-atop: deterministic process sort when handling NULLs
	pcp-atop: update to v2.10.0 upstream code
	pcp-htop: update to latest upstream fixes
	pcp-geolocate: function with older versions of python
	pcp-meminfo: resolve possible 'broken pipe' diagnostics
	pcp-ss: fix handling of listening state sockets to match ss
	pcp-ss: fix the UDP UNCONN vs LISTEN state handling
    - PMDA additions, enhancements and bug fixes:
	pmdaproc: improvements for process accounting metrics
	pmdalinux: add pgpromote* and pgdemote* memory metrics
	pmdalinux: add metric sysfs.module.zswap.max_pool_percent
	pmdalinux: add new SNMP metric network.ip.outtransmits
	pmdasummary: send state change 0 (no change) back to pmcd
	pmdapostgresql: support the psycopg3 python module as well
	pmdaopenmetrics: kepler support - live metrics and logging
    - Server-side utilities and log management scripts:
	pmlogrewrite, pmlogredact: fix for missing data volumes
	pmcd: cosmetic change to avoid pipe2 name clash
	runaspcp: new helper utility for unprivileged rc scripts
	pmnsmerge: be more defensive in qsort comparison routine
	pmlogsize: fix qsort comparison function handling of equality
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: pmOpenLog refactor for handling previous log files
	libpcp: new __pmCleanMapDir routine to aid log culling
	libpcp & pmcd: READY-NOT-READY hardening
	libpcp: avoid possible thread issues (coverity)
	libpcp: refactor pmDupContext for thread safety
	libpcp_import: add guard in pmiPutMark to prevent SIGSEGV
    - Build, infrastructure and packaging updates:
	build: changes to re-enable builds for FreeBSD 12, 13, 14
	build: add diffutils rpm dep as pmdaproc script uses diff
	build: add main.yml for building and publishing container
	build: resolve compiler warnings in various tools/libraries
	packaging: use tmpfiles.d method to create PCP_RUN_DIR
	build: packaging changes for openSUSE 15.5 and 15.6
	debian: do not ship empty directory /usr/lib/pkgconfig
	build: el10 systemd-presets for pmcd/pmie/pmlogger enabling
	build: drop rpm dep on bpftool as local version used only
	build: change perl YAML::XS::LibYAML module to YAML::XS
    - Security Enhanced Linux:
	selinux: policy improvements for CentOS/RHEL 7 and 8
    - Documentation:
	docs: Fedora 39 found some tbl(1)/troff(1) issues, fix
	docs: add an explicit code-of-conduct for PCP
	docs: pmns(5) note that metric names must only contain ASCII
	docs: update the BPF README to describe bpftool reality

pcp-6.1.1 (17 November 2023)
    - Client tools and utilities:
	pmie: add -o/--format to control output format with archives
	pcp-geolocate: automatic latitude and longitude metric labels
	pcp-atop: fix segv encountered on a multi-node NUMA system
	pcp-atop: add last level cache support using pmdaresctrl
	pcp-htop: updated with latest fixes from htop.dev
	pcp-netstat: without time options report one sample only
	pcp-netstat: add machine header info
	pcp-meminfo: without time options report one sample only
	pcp-meminfo: add machine header info
	pcp-buddyinfo: resolve a key issue when using python v2
	pcp-zoneinfo: ensure determinism in pcp-zoneinfo output
	pcp-zoneinfo: fix failure with older PCP metric instances
    - PMDA additions, enhancements and bug fixes:
	pmdaresctrl: new PMDA for x86_64 last level cache metrics
	pmdafarm: new Seagate Field Access Reliability Metrics PMDA
	pmdadarwin: updated for changes in NFS stats management
	pmdalinux: new mem.util metrics from recent kernel versions
	pmdalinux: new networking metrics relating to MPTcpExt
	pmdasockets: allow sockets with duplicate sources to exist
	pmdabpftrace: rework exit/wait handling to avoid errors
	pmdahaproxy: fixed connect script handling of string quoting
	pmdastatsd: fixed metadata for a couple of metrics
	pmdalinux: fixed semantics for mem.vmstat.nr_free_cma metric
	pmdadenki: simplification and refactoring of metrics
	pmdagfs2: correct permissions of several installed files
	pmdakvm: fixed semantics for kvm.largepages metric
    - Server-side utilities and log management scripts:
	pmproxy: add support for HTTP compression
	pmlogger: rework heuristic for Latest folio creation
	pmlogctl: fix incorrect rewriting of PCP_ARCHIVE_DIR
	pmlogredact: add latitude and longitude labels to redacted set
	pmlogrewrite: resolve a small memory leak
	pmlogrewrite: use PM_CTXFLAG_METADATA_ONLY for speed
	pmcd: add $PMCD_CREDS_TIMEOUT as an alternative to -q
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: new PM_CTXFLAG_METADATA_ONLY flag for pmNewContext
	libpcp: fix a couple of derived metric bugs
	libpcp_web: implement config override by canonical env vars
    - Misc build, infrastructure and packaging updates:
	build: new CI build to keep PCP for MacOS up-to-date
	build: several fixes to tools when compiling with clang
	build: install pmlog[redact,reduce,rewrite] on default PATH
	build: default to using a path-prefixed PCP_PYTHON_PROG
	build: update the Fedora container to f38
	build: drop of i386/i686 architectures from Fedora builds
	build: enable build of pmdalibvirt on CentOS 7 platform
	build: enable Qt6 in Fedora and post-RHEL-9 rpm spec files
	build: add pyodbc rpm dep for pcp-pmda-mssql in RHEL 9
    - Security Enhanced Linux:
	selinux: allow pmproxy use the io_uring API
	selinux: policy fixes for recent AVCs on RHEL 7.9
	selinux: add netlink_kobject_uevent_socket getattr (bpftrace)
    - Documentation:
	man pages: change all to map font CW -> CR for latest groff
	man: note pmseries Redis timeseries load order limitation

pcp-6.1.0 (5 September 2023)
    - pmlogredact: new command for archive anonymisation
    - pcp-atop: new bar graph visualisation mode
    - pcp-atop: update to atoptool.nl 2.9.1 sources
    - pcp-htop: support dynamic screens (user-configurable tabs)
    - pcp-htop: update to latest upstream source
    - pcp-htop: default screens for filesystems, disks and cgroups
    - pcp-htop: non-default screens for several libbpf modules
    - pcp-htop: fix mishandling of some process argument shading
    - pcp-buddyinfo: new tool reporting Linux buddyinfo stats
    - pcp-meminfo: new tool reporting Linux kernel memory stats
    - pcp-netstat: new tool reporting networking statistics
    - pcp-slabinfo: new tool reporting Linux slabinfo kernel stats
    - pcp-zoneinfo: new tool reporting Linux zoneinfo kernel stats
    - pmsleep,pmpause: add -w where option for systemd annotation
    - pmieconf: move test_action from primary into a separate group
    - pmieconf: update webhook action for better EDA integration
    - pmlogconf: remove latency-inducing fsync on config write
    - pmlogconf: updates for new metrics used in pcp-atop
    - pmdalinux: add three new /proc/vmstat pscan/pgsteal metrics
    - pmdalinux: fix bug when lsb-release is only /etc/*-release file
    - pmdabpf: add -q/--tryload command line option
    - pmdaopenmetrics: reduce transient instance logs, improve labels
    - libpcp: improved SSL error reporting
    - selinux: add policy updates for pmproxy (io_uring,ipc_lock)
    - build: support for Qt6, drop remaining Qt4 configure-support
    - build: updated licence strings in spec files to follow SPDX
    - build: default to using a path-prefixed PCP_PYTHON_PROG
    - build: fix several makefile clean targets for deb packagers
    - build: configure.ac update to autoconf 2.71
    - build: add tarball upload to release workflow
    - docs: pmie updates to explain action behaviour with archives
    - docs: retire "archive log" phrase from man pages and books
    - docs: transition Artifactory (no free service) to Packagecloud

pcp-6.0.5 (26 June 2023)
    - pmie: ensure pmie.log.YYYYMMDD is owned by pcp:pcp
    - pcp2json: extend pcp2json with an option to send HTTP POSTs
    - pmlogger: fix pidfile update; pmlogger.pid is for primary only
    - pmdumptext: fix scaling when -i command line option is used
    - pmlogextract: improve resilience in corner-case conditions
    - pmdasmart: additional NVME power state metrics
    - pmdasmart: additional NVME disk information metrics
    - pmdasmart: update help with proper description of DC status
    - pmdasmart: filter out zram devices when probing for devices
    - pmdahacluster: handle pacemaker 2.1.5 crm_mon output changes
    - pmcd: improve debugging flags and diagnostics in general
    - libpcp_pmda: refactor and improve library diagnostics
    - selinux: updates to policy for pmlogger and pmlogger_daily
    - build: switch rpm spec files to SPDX license identifiers
    - build, qa: numerous updates to improve PCP on OpenBSD
    - build: switch from registry.centos.org to quay.io for el6/el7
    - ci: add centos6 back into the fold as its on quay.io now
    - ci: add Debian 12, drop Ubuntu 16 and Fedora 35

pcp-6.0.4 (15 May 2023)
    - pmcd: propogate a new PMCD_HOSTNAME_CHANGE flag to clients
    - pmdumplog: support preferred alternate name pmlogdump
    - pmlogger: changes to accommodate PMCD_HOSTNAME_CHANGE
    - pmlogger_janitor: new script called from pmlogger_check
    - pmlogger: add -d directory argument for alternate naming schemes
    - pmlogrewrite: fix remaining corner case for indom renumbering
    - pmie: changes to accommodate PMCD_HOSTNAME_CHANGE
    - pmie: catching SIGUSR1 triggers a pending task dump
    - pmie_{check,daily}: change pmie.log handling regime
    - pmieconf: add support for a webhook action to pmieconf
    - pmieconf: add a wall rule action for adm group members
    - pmieconf: add support for an action testing rule
    - pmieconf: use correct pmieconf percent type for thermal throttle
    - pmieconf: add minimum pct conjunction to entropy for small poolsizes
    - pminfo: use -b to batch pmDesc retrievals as well as pmResult
    - pmstat: fix corner case handling of automatic pmcd reconnect
    - pcp2influxdb: add requests.post timeout to avoid hangs
    - pcp-dstat: fixes CSV output to show all (not visible) plugins
    - pcp-htop: support File Descriptor Meter
    - pcp-htop: sync latest fixes from upstream htop
    - pcp-mpstat: fixed broken pipe issue
    - pcp-ps: fix exception handling for process name
    - rc scripts: ensure pmcd.conf not rewritten unnecessarily
    - pmdalinux: add a couple of new /proc/net/snmp ICMP metrics
    - pmdalinux: add new network.tcp.tcpplbrehash metric
    - pmdaproc: add new proc.smaps.pss_dirty metric
    - pmdarabbitmq: add timeout handling to http requests
    - pmdastatsd: stats and blocklisted metric names alignment
    - libpcp: new pmAddDerivedText API for derived metric help text
    - libpcp: check level parameter on entry to pmLookupText
    - libpcp: new PMAPI error code addition for bad API arguments
    - libpcp: allow derived metrics semantics of 'similar' indoms
    - selinux: add missing context information on farm services
    - build: fix a number of Debian sub-package dependency issues

pcp-6.0.3 (23 February 2023)
    - build: fix Debian postinst script handling of missing systemctl
    - pmdaproc: support per-cgroup IRQ PSI metrics in recent kernels
    - pmdalinux: support for system wide IRQ PSI metrics in recent kernels
    - pmlogrewrite: improved handling of unused instance domains

pcp-6.0.2 (12 February 2023)
    - Client tools and utilities:
	pcp-atop: update to latest upstream atoptool.nl sources
	pcp-atop: cgroup, NUMA memory and NUMA CPU support
	pcp-htop: update to latest upstream htop.dev sources
	pcp-dstat: fix handling of --swap with -f (full) option
	pcp-dstat: fix columns for --net-packets
	pcp-mpstat: fix handling of log-once summary metric values
	pcp-mpstat: improve error handling for the current values
	pcp-ps: added capabilities to show N samples with archives
	pcp-ps: fix handling of the -o option
	pcp-ps: fix broken pipe errors when piping to head(1)
	pcp-ps: fix process "START" column calculation and rounding
	pcp-pidstat: fix broken pipe errors when piping to head(1)
	pmdumplog: extend -x so -xxx reports timestamps in Epoch format
	pmlogger: refactor getting FQDN for local host
    - PMDA additions, enhancements and bug fixes:
	pmdabpf: set config default for biosnoop module to disabled
	pmdabpf: port forward to latest vendored libbpf-tools code
	pmdalinux: boolean metric network.interface.virtual from sysfs
	pmdalinux: more careful slabinfo 32/64 bit type multiplication
	pmdalinux: add NUMA external fragmentation metric via sysfs
	pmdalinux: fix pmid numbering issue with hinv.map.scsi_id
	pmdanfsclient: fix srcport handling for RDMA and UDP mounts
	pmdaopenmetrics: validate all names before using them for metrics
	pmdaoverhead: new PMDA to measure overhead for groups of processes
	pmdastatsd: static metric memory leak fix
	pmdastatsd: ragel parser refactor and fix
    - Server-side utilities and log management scripts:
	pmieconf: new pmie rule checking file descriptor limits
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: fix buffer issue for user/group name lookups
	libpcp_web: improve error handling in pmseries AST parser
    - Misc build, infrastructure and packaging updates:
	configure.ac: fixes for improved C99 compatibility
	configure.ac: use QTDIR search path only when given
	MacOS: build: fix shared library builds on modern Macs
	OpenBSD: build updates for clang, Qt and openssl
	libbpf: updated minimium version to 0.8.0, ARM and PPC support
	Qt: update minimum required versions for libqwt
	Drop no-longer-used pmlogger_daily_report systemd rpm spec code
	Determine clang version without optional llvm-config utility
	Another attempt to get the man/man-db/mandoc stuff sorted
    - Security Enhanced Linux:
	Policy updates for pmdastatsd
    - Documentation and QA infrastructure:
	Add help text for some OpenBSD kernel instance domains
	Provide more detailed explanation for default PMLOGGER_INTERVAL
	pmdaChildren(3): clarify the memory allocation scheme
	pcp-ps(1) man page fixes.

pcp-6.0.1 (27 October 2022)
    - Security Enhanced Linux:
	selinux: rework policy to use optional_policy
	selinux: rework policy to use an independent policy
	selinux: new cluster_exec_t policy handling for pmdahacluster(1)
	selinux: retire those parts of the build affecting CentOS 6
    - PMDA additions, enhancements and bug fixes:
	pmdabpf: set perf_buffer__poll timeout to 0 for optimal sampling
	pmdabpf: add CO-RE biosnoop
	pmdabpf: no BPF debug messages unless debugging (-Ddev0)
	pmdalinux: add "squashfs" to the list of ignored filesystem types
	pmdasnmp: install agent specific configuration file to PMDATMPDIR
	pmdakvm: initialise perf_event interface only if/when needed
    - Client tools and utilities:
	pcp-ps: initial version of a PCP implementation of ps(1)
	pcp-dstat: add --nomissed command line option for large systems
	pmfind, libpcp_web: MMV and shutdown memory management fixes
	pmlogreduce: fix corner-case in temporal index generation
	pmlogcheck: tighten some pmlogcheck pass0 checks
	pmseries: fix sampling when start < first sample or series has gaps
	shell completion: improve pmrep/zsh instance completion in live mode
	shell tools: convert fgrep and egrep over to grep -F and -E
    - Server-side utilities and log management scripts:
	pmlogger_daily_report: no longer needs any systemd support now
	pmlogger_daily.sh: fix pmlogger_daily_report test for zeroconf
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp_web: fix race conditions affecting pmproxy
	libpcp_web: allow scalar operands in pmseries expressions
	libpcp_web: add pmseries float multiplication
    - Misc build, infrastructure and packaging updates:
	build: add PCP archive analysis container
	build: updates to fix Windows platform builds
	build: update configure.ac to allow builds on Mac M1 (arm64)
	build: make openSUSE spec file builds work again
	containers: remove /build directory
	debian: use deb-systemd-helper if available
	build: fix libpcp check-statics regexp error with objects in subdirs
	build: podman PMDA no longer has deps, make it unconditional
	build: don't package and install pmrep xtract-names helper
	build: updates to hiredis code for pmseries and pmproxy
	build: updates to hiredis-cluster code for pmseries and pmproxy
	build: fix Makepkgs handling of argument parameters
	build: use vendored github.com/libbpf/bpftool/libbpf and update
	build: use vendored github.com/iovisor/bcc/libbpf-tools
	build: use vendored git.code.sf.net/p/qwt and update
	build: fix bpf PMDA inclusion check
	build: fix windows default pmcd.conf entry, dup path component
	build: rework Python3 and Python2 configure.ac logic
	packaging: fix rpm systemd-sysusers on f37 and rawhide
    - Documentation and QA infrastructure:
	docs: small typo fixes relating to secure connections
	docs: fix sheet2pcp(1) man page quoting in examples
	pmdasample: additional metrics for testing cases

pcp-6.0.0 (31 August 2022)
    - Major changes:
	1. Add version 3 PCP archive support: instance domain change-deltas,
	   Y2038-safe timestamps, nanosecond-precision timestamps, arbitrary
	   timezones support, 64-bit file offsets used throughout for larger
	   (beyond 2GB) individual volumes.
	   ** Opt-in using the /etc/pcp.conf PCP_ARCHIVE_VERSION setting. **
	   ** Version 2 archives remain the default (for next few years). **
	2. Switch to using OpenSSL only throughout PCP (dropped NSS/NSPR);
	   this impacts on libpcp, PMAPI clients and PMCD use of encryption;
	   these are now configured and used consistently with pmproxy HTTPS
	   support and redis-server, which were both already using OpenSSL.
	3. New nanosecond precision timestamp PMAPI calls for PCP library
	   interfaces that make use of timestamps.  These are all optional,
	   and full backward compatibility is preserved for existing tools.
    - Client tools and utilities:
	pcp2elasticsearch: implement authentication support
	pcp-dstat: implement support for the top-alike plugins
	pcp-dstat: add plugin configuration for ZFS metrics
	pcp-dstat: battery charge remaining config using denki metrics
	pcp-htop: update to latest stable upstream release
	pcp-htop: initial support for screen tabs in the user interface
	pcp-pidstat: correct operation of the -p ALL|SELF options
	pmlogger: small changes for handling derived metrics better
	pmlogger, import: support configurable default archive version
	pcp2xxx: ignore pmrep-specific options
	pmlogger: extra hardening, backtrace symbol improvements
	pmlogger: add -V (output archive version) command line option
	pmseries: add sum(), avg() and stdev() functions
	pmseries: add nth_percentile() and topk() functions
	pmseries: add max_inst() and max_sample() functions
	pmseries: add min_inst() and min_sample() functions
	pmseries: be more defensive during shutdown error paths
	pmseries: fix assumption that any 40-character string is a SID
	pmseries: allow reporting values from SIDs (not just queries)
	sheet2pcp: add -V (output archive version) command line option
	ganglia2pcp: add -V (output archive version) command line option
	iostat2pcp: add -V (output archive version) command line option
    - PMDA additions, enhancements and bug fixes:
	pmdaapache: do time_t manipulation with sufficient space
	pmdabcc: sync bcc PMDA modules with upstream bcc tools
	pmdabpf: adds CO-RE (Compile Once - Run Everywhere) modules
		(exitsnoop, oomkill, bashreadline, mountsnoop, vfsstat,
		opensnoop, fsslower, statsnoop, tcpconnlat, tcpconnect)
	pmdabpf: support x86, arm and powerpc
	pmdabpf: fixed persistence of indom and cluster identifiers
	pmdabpf: rework setrlimit() logic for some small memory hosts
	pmdabpftrace: move example autostart scripts to /usr/share
	pmdabpftrace: update biolatency example script for kernel 5.16+
	pmdadenki: fix battery detection for non-intel systems
	pmdadenki: add support for multiple active batteries
	pmdadenki: support the -D option for debugging
	pmdadenki: improve labels associated with metrics
	pmdadenki: add battery capacity metric
	pmdadenki: add separate indom help text
	pmdalinux: add new MpTcpExt metrics from latest Linux 5.x kernels
	pmdalinux: updates for latest /proc/net/netstat kernel changes
	pmdalinux: improve network metrics help text
	pmdalinux: fix of tty metrics on s390x platform
	pmdamailq: update to ensure Y2038-safe time_t handling
	pmdammv: use highest available timestamp resolution
	pmdaopenvswitch: additional interface and coverage stats
	pmdapostfix: harden against a not-yet-running postfix
	pmdaproc: fix psargs string for processes with very large PIDs
	pmdaproc: fix cgroup cpu metrics refresh structures
	pmdasockets: prevent string overwrite of ss_stats_t fields
	pmdasockets: add checking to the pmStore filter strings
	pmdastatsd: fix detection of failure memory allocation
    - Server-side utilities and log management scripts:
	pmproxy: allow request parameters to be sent in the request body
	pmproxy: fix race on teardown of pcp protocol proxy clients
	pmproxy: improve error checking, check uv_pipe_bind result
	pmproxy: harden logging interfaces, racing with startup
	pmieconf: add several pmie rules for Open vSwitch metrics
	pmlogrewrite: subtle change in semantics for error checking
	pmlogreduce: allow sub-second values for -t option
	pmlogreduce: temporal index, add entries after 100k of data volume
	pmlogcheck: beef up pass 0 to check metadata record types
	pmlogconf: fix reprobing with interactive changes
	pmlogmv: fallback to copy for cross-mount case when link fails
	pmlogmv: add -c (paranoid checksum) option
	pmlogger_farm: add default configuration file for farm loggers
	pmlogger_check: increase PMLOGGER_REQUEST_TIMEOUT from 2 to 10 secs
	pmlogger_daily: callbacks for extra daily log processing tasks
	pmlogger_daily, pmlogger_check: additional systemd-driven changes
	pmlogger_daily: move redirection of stdout+stderr earlier in script
	pmlogger_daily: abandom use of fmt(1) - not portable - uses awk now
	pmlogger_daily_report.sh: some major efficiency improvements
	pmlogger_daily_report: re-enabled for rpm and deb builds
	pmie_check: avoid leaving lock file and temp dir behind
	pm{log,ie}ctl: handle embedded shell syntax in control lines
	pm{log,ie}ctl: add -C args option to pass "args" to pm{logger,ie}_check
	systemd units: pmlogger and pmie farm conditional use of type=exec
	rc-pmcd: reorder the systemd paths attempted in migrate_pid_cgroup
	dbpmda: fix an overlapping copy and add error handling
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp_archive: new library for apps that write PCP archives
	libpcp: optimize indom handling in fetchgroup code
	libpcp: drop time_t abuse in getdate.y, use safe sizes
	libpcp: add __pmDumpPDUTrace() and circular trace buffer
	libpcp: add PM_ERR_FEATURE, PM_ERR_TLS error codes
	libpcp: refactor __pmDumpStack(), improve direct calling tools
	libpcp_qmc: require Qt5.6 as the minimum version for builds
	libpcp_qmc: resolve the Qt::endl warning more cleanly
	libpcp_web: stop Redis initialization if Redis version tool old
	libpcp_web: honour config settings that disable redis completely
	libpcp_web: fix memory leaks in discovery, query parsing and APIs
	libpcp_web: honor exclude.metrics setting in pmseries --load
	libpcp_web: run pmFetchArchive(3) in a worker thread
	libpcp_web: fix race condition tearing down load baton
	libpcp_pmda: ensure indom cache write handles time_t safely
	libpcp_import: add interface for setting output log version
	libpcp_import: interfaces for samples with high-resolution timestamps
	python api: updates to allow building from outside git repo
	python api: allow tools using pmconfig module to ignore options
	python api: add python wrappers for highres PMAPI routines
	python api: correct refcounting on pmParseMetricSpec source buffer
    - Security Enhanced Linux:
	selinux: additional policy rules, esp glusterd_log_t
	selinux: bcc PMDA policy to exec private memfd ctypes/libffi objects
	selinux: make use of syslogd_var_run_t map rule conditional
	selinux: policy updates needed for the pmdasockets metrics
	selinux: fine-tune netlink_tcpdiag_socket policy for all platforms
    - Misc build, infrastructure and packaging updates:
	build: latest distros supported (ubuntu 22.04, fedora 37, rhel9, etc)
	build: reproducible debian build efforts
	build: use standard dpkg buildflags variables.
	build: add BuildRequires: python*-pymongo to mongodb PMDA
	build: detect libbpf version for the BPF PMDA
	build: do not transform symlink targets when generating the source tarball
	build: update artifactory deploy script, add recalculate_metadata subtask
	build: update configure script for python2 retirement in rhel9
	build: convert libpcp check-statics to using readelf if available
	build: updates to libpcp check-statics for OpenBSD
	build: fix configure detection of backtrace() and associated hooks
	build: fixed source dependencies within libpcp_web makefile
	build: add rpm conflicts lines on postgresql-pgpool-II
	build: remove pmclient reliance on libpcp.h for timed sleep
	build: remove mmvdump reliance on libpcp.h for mmap wrapper
	build: make perl truly conditional in the PCP build
	build: drop no-longer-needed NSS/NSPR package deps
	build: resolve ostree non-writable /var for pmieconf
	packaging: update rpm specs to solve systemd warnings
	container: bump base image version
	Makepkgs: fix for Debian build (and Qt packaging failure in CI)
	vendor: switch to git-subtree for iovisor/bcc libbpf-tools code
    - Documentation and QA infrastructure:
	docs: update notes about sar2pcp, iostat2pcp in pcpcompat(1)
	docs: add section to pcpcompat(1) about python2
	docs: add fix for readthedocs compilation error
	docs: updates to the Quick Guide documents
	docs: clatifications to pmrep et al: man pages
	docs: improve pmproxy timeseries and pmseries load documentation
	docs: further improvements and fixes to the INSTALL doc
	docs: add pmlogger(1) -V, describe $PCP_ARCHIVE_VERSION in pcp.conf.
	docs: small fixes to the pcp-pidstat man page
	docs: fix webapi documentation typo around polltimeout
	pylint: numerous issues resolved, tracking latest versions
	qa: regression tests for bpftrace PMDA: check probes
	qa: pmdabcc pylint fixups
	qa: rework Redis PING-PONG checks
	qa/check: run tests under timeout(1) control if possible
	qa-summary: allow unified reporting from CI and QA Farm
	qa/admin/show-me-all & qa/show-me: changes for CI integration
	qa/check: add support for "triaged" tests
	ci: send report to Slack when QA workflow is triggered manually
	ci: add required packages to enable bpf PMDA on CentOS Stream 9
	ci: run CodeQL daily and for each PR
	ci: run full QA on pull requests, save history
	ci: unset XDG_RUNTIME_DIR when invoking podman

pcp-5.3.7 (5 April 2022)
    - Client tools and utilities:
	pcp2elasticsearch: implement authentication support
	pcp-ss: fixed incorrect client-side filtering
	pcp-ss: fixed reporting of IPv6 sockets in LISTEN state
	pmrep: 'iostat-multipath-wwid' for multipath disk monitoring
    - PMDA additions, enhancements and bug fixes:
	pmdalinux: add disk.wwid.* aggregated multipath metrics
	pmdalinux: add new MPTCP metrics from latest Linux kernel versions
	pmdalinux: fix up TTY metrics on s390x platform
	pmdalinux: add network.tcp.tcploss metric
	pmdamssql: fix config file logic, python string handling
	pmdadenki: fix crash in labels callback with multiple instances
	pmdasockets: changed default filter in sockets PMDA to "state all"
    - Server-side utilities and log management scripts:
	pmlogconf: correctly handle metric state transitions on (re-)probe
	pmie systemd: add missing systemd configuration and shell code
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp_web: resolve a number of small memory leaks
    - Security Enhanced Linux:
	selinux: use interface calls instead of a simple rule
	selinux: add several more obscure missing selinux rules
	selinux: additional debugfs policy requirement for pmdakvm
	selinux: resolve an AVC observed on el8 with pmdashping
    - Misc build, infrastructure and packaging updates:
	rpms: switch to conditional selinux dependency for containers
	debs: reproducible build updates
    - Documentation and QA infrastructure:
	docs: add section to pcpcompat(1) about python2
	docs: update notes about sar2pcp, iostat2pcp in pcpcompat(1)
	docs: improve pmproxy --timeseries and pmseries --load documentation
	CI: disable cppcheck for pcp-atop temporarily due to a cppcheck bug

pcp-5.3.6 (2 February 2022)
    - Client tools and utilities:
	pmlogconf: switch to the bulk pmLookupDescs(3) interface
	pmlogconf: fix reprobing with interactive changes
    - Server-side utilities and log management scripts:
	pmlogger: prioritize user configuration over pcp-zeroconf
	pmlogger, pmie farms: stabilization and back-compat fixups
	pmproxy: fix race on teardown of pcp protocol proxy clients
	pmproxy: when secure.enabled is false, do not attempt to init libssl
	pmproxy: correctly fallback to [pmseries] redis settings
    - PMDA additions, enhancements and bug fixes:
	pmdabcc: sync bcc PMDA modules with upstream bcc tools
	pmdaelasticsearch: add elasticsearch `indices` metrics
	pmdaelasticsearch: add missing metrics for existing groups
	pmdaelasticsearch: add updated nodes.jvm.* metrics
	pmdaelasticsearch: use _nodes API to determine master node
	pmdaelasticsearch: correct when _cluster/state API is invoked
	pmdaelasticsearch: fix origins.unmatched and origins.unrecog metrics
	pmdanvidia: fix mishandling of zero-byte size passed to realloc
	pmdarsyslog: add a pmlogconf file for rsyslog metrics
	pmdarsyslog: fix to work with more modern rsyslog versions
	pmdarsyslog: add support for rsyslog resource statistic
	pmdarsyslog: add support for rsyslog action metrics
	pmdarsyslog: add omfw, imudp, and imptcp metrics
    - libpcp, libpcp_pmda, libpcp_web and language bindings:
	libpcp_pmda: add indom cache fast-paths for inst lookup
	libpcp_web: stop Redis init tasks if Redis version is unsupported
	libpcp_web: honour config settings that disable redis completely

pcp-5.3.5 (10 November 2021)
    - Client tools and utilities:
	pmlogger: massive startup latency improvements over slow links
	pmlogger: reduce "error sending connection ACK to client" msgs
	pmlogger: abort if we see PM_ERR_IPC during config file parsing
	pmlogger: rework early control port servicing
	pmlogger: source zeroconf variables from an additional env file
	pmseries: fix --load option failure on 32-bit platforms only
	pcp-dstat: add modern mongodb dstat plugin configuration
	pcp-atop: add support for Nvidia GPUs using pmdanvidia metrics
    - PMDA additions, enhancements and bug fixes:
	pmdamongodb: new PMDA to export PCP metrics from MongoDB
	pmdamssql: share username/password with the Assessments API
	pmdalinux: additions and updates to mem.zoneinfo metrics
	pmdalinux: cull empty NUMA zones from zoneinfo instance domain
	pmdalinux: increase /proc/net/netstat metric coverage
	pmdalinux: increase /proc/net/snmp6 metric coverage
	pmdalinux: increase /proc/net/snmp metric coverage
	pmdalinux: improved robustness of procfs parsers
	pmdakvm: add several new KVM kernel metrics
	pmdanvidia: updates to latest NVML, add a batch of new metrics
	pmdaopenmetrics: add vmware URL for use with vmware_exporter
	pmdabpf: use bpf skeletons
    - Server-side utilities and log management scripts:
	pmproxy: provide transparent Redis reconnect after connection drop
	pmproxy: do not connect to Redis if it's not enabled in config file
	services: disable service advertising by default in pmcd and pmproxy
	services: remove run-level check in pmlogger systemd service config
	pmieutil: add pmie_farm service for non-primary pmie instances
	logutil: add pmlogger_farm service, update associated admin tools
	logutil: add pmlogctl -m flag, to enable service migration
	pm{log,pmie}ctl: increase max delay waiting for a process to stop
	pmlogconf: resolve issues in persisting changes to pmlogger config
	pmlogconf: log metrics required by MS SQL Server Grafana dashboard
	pmcpp: add optional outfile on command line
	pmdaproc.sh: tweak tests for ping version in _setup_localhost
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: allow pmNameLookup(3) to use multiple PDU round-trips
	libpcp, pmcd: support a new bulk pmLookupDescs(3) PMAPI routine
	libpcp: add __pmHashFree interface to explicitly release nodes
	libpcp: fix SASL authentication where hostname differs to FQDN
	libpcp_web: support Redis authentication with password and ACL
	python api: make PY_SSIZE_T_CLEAN, stop using deprecated CB interfaces
    - Misc build, infrastructure and packaging updates:
	packaging: enable pmlogger_farm if pmlogger is enabled pre-el9
	packaging: cull old debian conffiles
	packaging: rework OpenMandriva controls
	packaging: obsolete the pcp-pmda-vmware rpm
	build: transition to using vendored jsonsl code
	build: update vendored htop code to 3.1.1 release
	build: update vendored hiredis code to 1.0.2 release
	build: convert ini header and source to vendored code
	build: allow custom bpftool with --with-pmdabpf-bpftool
	build: consolidate the multiple copies of sds strings code
    - Documentation and QA infrastructure:
	qa: resolve new pylint warnings in Fedora 35 python
	ci: add Fedora 35 to CI and release workflow
	ci: move daily QA 2h earlier, so it always finishes on the same day
	man: add PMLOGGER_INTERVAL note in pmlogger -t option description

pcp-5.3.4 (8 October 2021)
    - Client tools and utilities:
	pcp-atop: enable detailed processor frequency scaling reporting
	pcp-atop: handle different event naming of ix86arch PMUs
	pcp-atop: report user and group names using PMAPI calls
	pcp-htop: fix crash on terminal resize during sampling
	pcp-htop: fix mouse wheel collision with autogroups nice adjustment
	pcp-htop: do not reset MainPanel on disabled mouse events
	pmlogger: fix small error in EOF logic on pmcd channel
	pmlogger: install a zeroconf file for setting interval
    - PMDA additions, enhancements and bug fixes:
	pmdalinux: add detailed processor frequency scaling metrics
	pmdapmproxy: add logrewrite rules to transition metrics
	pmdasockets: fix the parsing of reord_seen values
	pmdabpf: resolve help text warning from pmdaInit
	pmdads389: fix syntax error in alternate branches
	pmdads389: allow installation when ds389 server is down
	pmdahacluster: fix types for some corosync and drbd metrics
    - Server-side utilities and log management scripts:
	logutil: cleanly separate primary and farm logger services
	logutil: tweak timeouts in pmlogger.service
	logutil: add -P / --only-primary option to pmlogger_check
	pmproxy, libpcp_web: timer cleanups, updates to metrics
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: use urlencoding for hostspec parameter values
	libpcp: improve memory footprint of pmSetProcessIdentity
	libpcp: __pmResult restructuring for highres timestamps
	libpcp: rework fetchgroup max 64-bit value comparisons
	libpcp: add new PM_ERR_BOTCH error macro
	libpcp: large-PDU-related improvements and fixes
	libpcp_web: smaller memory footprint in Redis cluster code
	libpcp_web: optimize webgroup metric updating with mmv_set
	libpcp_mmv: add new convenience interfaces for inc/add/set
	libpcp_fault: fault injection 50,000km service
    - Misc build, infrastructure and packaging updates:
	misc: numerous minor changes to resolve LGTM.com issues
	configure.ac: fix $PCP_PS_ALL_FLAGS for OpenBSD
	build: require libbpf >= 0.4.0
	build: fix tempfile handling in Makepkgs script
	build: add OpenBSD "init" integration for postinstall and remove
	packaging: additional RPM changes for pcp-zeroconf conf file overrides
	packaging: fix ownership of /usr/lib/systemd/system/pmlogger.service.d
    - Documentation and QA infrastructure:
	docs: add a new pmdabpf(1) man page
	qa: tweak valgrind options for speed
	qa: admin/list-packages new `cmd` feature
	ci: bump limit to retain 15 QA reports
	ci: add libcmocka-devel to QA package lists

pcp-5.3.3 (15 September 2021)
    - Client tools and utilities:
	pcp-htop: add new "dynamic columns" feature
	pcp-htop: enable all mouse-driven functionality
	pcp-htop: support offline and hotplug CPUs
	pcp-htop: columns for process autogroup identifier and nice value
	pcp-htop: add combined memory and swap meter
	pcp-htop: limit meter LED mode by width
	pcp-htop: versioned config files and config_reader_min_version
	pcp-htop: add a new option to change the header layout
	pcp-htop: move shipped column/meter configs below /usr/share
	pmieconf: improve the CPU saturation rules
	pmieconf: add several per-disk pmie rule templates
	pmie: fix sigsegv when used with archives lacking needed metrics
    - PMDA additions, enhancements and bug fixes:
	pmdabpf: introduce the new BPF PMDA based on libbpf
	pmdabcc: free BPF memory after module setup completes
	pmdalinux: add -A option for overriding permissions checks
	pmdaproc: add proc.autogroup scheduling metrics
	pmdaproc: ensure ENODATA error code not exposed on fetch callbacks
	pmdapodman: correct the metric count calculation for pmdaInit
    - Server-side utilities and log management scripts:
	pmproxy: avoid duplicate instname labels in /metrics response
	pmlogger: add -I/--pmlc-ipc-version command line option
	pmlc-pmlogger: rework PDU_LOG_STATUS
	Fix PMDA upgrade issue relating to python vs python3 switch
	services: switch logutil and pmieutil scripts from type oneshot to exec
	services: replace daily poll services with persistent timer setting
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	python api: additional converter functions for struct timeval
	python api: refer to ctypes consistently
	python api: fix pmiAddMetric parameter type
	libpcp: __pmZoneinfo implementation suitable for library use
	libpcp: internal restructuring and initial v3 PCP archive code
	libpcp: explicit readdir64 use is removed, via compile options only
	libpcp: add -Dpmlc diags for the pmlc and pmlogger IPC protocol
	libpcp_mmv: add new convenience routines for value set/inc
    - Misc build, infrastructure and packaging updates:
	build: fixed errors and warnings reported by LGTM.com
	build: fixed warnings reported by Coverity
	build: initial fixes of gcc warnings from -Wshadow
	build: updates to resolve warnings from latest version of pylint
	build: fix pmdasockets compiler warning on 32bit platforms
	packaging: remove any stale *-poll systemd service symlinks
    - Security Enhanced Linux:
	selinux: additional policy for podman socket access
	selinux: make use of container_var_run policy conditional
	selinux: make use of glusterd_log policy conditional
    - Documentation and QA infrastructure:
	pmdasample: add sample.proc.* metrics for dynamic indom testing
	docs: new pcp-htop(1) manual page for dynamic columns and meters
	qa: use containers for all PCP CI and release builds
	qa: add common.redis routine _wait_for_redis() for tests to share
	ci: add Fedora 35 and disable Python 2 there (missing packages)
	ci: refactorings and misc improvements across the board
	ci: disable debuginfod due to massive valgrind slowdown
	ci: retain the 10 most recent QA reports for comparison -
	    https://performancecopilot.github.io/qa-reports/reports/

pcp-5.3.2 (30 July 2021)
    - Client tools and utilities:
	python: minimum supported python2 version is now 2.7
	pcp-ss: new socket statistics client tool
	pcp-htop: add new "dynamic meters" feature
	pcp-htop: use code vendoring and git subtree of htop.dev
	pcp-htop: fix per-process user and system time conversions
	pcp-htop: use the correct metric for shared memory calculations
	pcp-htop: fix the color of PROC_COMM for PCP
	pminfo: plug small memory leak on error paths for Coverity scan
	pmdumplog: add -I option to report on-disk instance domains
	pcp-{iostat,tapestat}.1: add --version description
	pmrep/pmconfig.py: fix archive writing with scaled metrics
	newhelp: reporting for empty or missing help text
	pmlogger: add empty string help text
	zsh completion: pmevent is an alias for pmval, fix command sorting
	bash,zshc completions: update for pmdumplog -I
	bash completions: add -P option for pmclient
    - PMDA additions, enhancements and bug fixes:
	pmdadenki: add new PMDA 'denki' for power metrics
	pmdalinux: fix sign extension in buddyinfo total calculation
	pmdalinux: use buddyinfo's order in calculating total size
	pmdaproc: add proc.psinfo.cwd and proc.psinfo.exe metrics
	pmdasockets: default to daemon and migrate from DSO to daemon
	pmdasockets: add persistent filter, new metrics, parser fixes
	pmdasockets: add missing help text for reord_seen and delivered
	pmdasockets: fix #! for Install and Remove
	pmdasockets: fix resource leak coverity CID371684
	pmdasockets: fix regex in Upgrade script
	pmdahacluster: Remove un-needed pmdaCacheLookupName() calls
	pmdahacluster: add support for labels on key metrics
	pmdammv: add check for item uniqueness
	pmdapmcd: add pmcd.zoneinfo metric
	pmdabcc: drop defunct usdt_jvm_alloc module
	pmdads389: add two additional cn attributes
	pmdads389: automated discovery of replication agreements
    - Server-side utilities and log management scripts:
	dbpmda: add -flag to debug command
	pmproxy: honour the secure.enabled config option
	pmlogger: block SIGALRM before re-exec
	pmlogger: tighten up "lost pmcd connection" logic
	pmlogger: don't try to catch SIGSTOP
	pmlogger_daily.sh: extra -VV diagnostics
	pmcd: avoid mem leak on error path, Coverity issues
	pmcd: small tweak to getzoneinfo_plan_b()
	pmproxy: add mutex for client req lists, fix https/tls support
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	python api: guard against fetchgroup destructor race condition
	libpcp_web: add generic timer API
	libpcp_web: add generic server metrics
	libpcp_web: improve discovery lock handling and scalability
	libpcp_web: add mutex to struct webgroup protecting the context dict
	libpcp_web: add new metric for metadata discovery partial reads
	libpcp_web: fix many resource leaks, null checks from Coverity scan
	libpcp_web: plug mem leak in redisMapInsert during daily log-rolling
	libpcp_web: disable Redis connection if version check fails
	libpcp_import: fix per-instance error handling in pmiWrite
	libpcp: don't clobber help text buffer, fix "fallback" logic
	libpcp: complete remaining libpcp.h internal struct renaming
	libpcp: replace sighold() and sigrelse() with sigprocmask()
    - Misc build, infrastructure and packaging updates:
	build: optionally enable sanitizers in configure
	build: conditionally enable gperftools (default is no)
	build: mark python3-bpfcc dependency as architecture specific
	build: bump Fedora version of the PCP container
	build: do not install /var/tmp as part of PCP itself
	build: add configure and makefile macros for libbpf, libelf
	libpcp/pmapi.h/pmdbg: add -Ddev0,dev1,dev2
    - Security Enhanced Linux:
	selinux QA: rework QA for other SELinux implementations
	selinux QA: fix semodule -l output format, has changed in Fedora 34
	selinux QA: small fixup for semodule -l filter
	selinux: small changes for CentOS Linux7.9.2009
    - Documentation and QA infrastructure:
	docs: add "SELinux Considerations" section to pmdaopenmetrics(1)
	docs: add man page for pmWebTimerRegister(3) and related functions
	docs: document pmdasockets(1) filter config file
	docs: add missing long-options in many man(1) pages
	docs: move Grafana troubleshooting out of scaling doc
	docs: document hostspec parameter for openmetrics endpoint
	docs: update scaling doc with federated setup and troubleshooting
	docs: pmdastatsd, update man page and Install instructions
	docs: pmseries(1) man page fix ":" operator description
	docs: drop the unused --profile output from pcp-dstat(1)
	qa/common.avahi: be more careful with stderr from avahi-browse
	qa/common.check: revise _service "stop" logic for pmlogger
	qa/common.check: improve recovery of failed systemctl services

pcp-5.3.1 (4 June 2021)
    - Client tools and utilities:
	pcp-atop: fix threading options process-sort-order bug
	pmieconf: add SQL Server stolen node memory rule
	pmieconf: detect sustained CPU thermal throttling
	pmrep: add support for config directory
	pmrep: split default configuration into separate files
	pmrep: sort collectl(1) metricsets
	pmrep: tweak proc metricsets
	pmrep: improve instance matching
	pmrep: add option to omit instance info
	pmrep: implement sar-v metricset in pmrep.conf
	pmrep: implement sar-r-ALL metricset in default pmrep.conf
	pmrep: add sar-R metricset in pmrep.conf
	pmrep: add support for repeating header based on terminal height
	pmrep: set repeat_header = auto for sar-like metricsets
	pmrep: tweak :sar-h metricset output
	pmrep: more pmrep.conf kb vs kB vs KB tweaking
	pmrep: add more pidstat-like (-drsuvw) metricsets to pmrep.conf
	pmrep: add vmstat -d like metricset to pmrep.conf
	pmrep: update pmrep.conf sar disk metricsets to include discards
	pmrep: add iostat-12.3 like iostat -dktx metricset to pmrep.conf
	pmrep: add new proc-activity metricset
	pmrep: improve proc metricsets in pmrep.conf
	pmrep: remove unneeded sar-old-kernel.conf file
	pmrep: harden config file parsing
	pmrep: update pmproxy metricset
	pmrep: add RHEL8 sar metricsets to default pmrep conf directory
	pmrep et al: better process name matching for instance filtering
	pmrep et al: better name matching for live filtering also
	pmchart: save changes to users prefered archive location
	pmchart: use libpcp_qmc diagnostic for archives from same host
	pmstat: correctly handle the -V/--verbose option
	pmval: add -X flag to report higher precision timestamps from archives
	pmlogger: fix file descriptor leak on daily re-exec
	pmdumplog: make -x control ALL timestamps
    - PMDA additions, enhancements and bug fixes:
	pmdalinux: fix persistence of the slabinfo metrics indom
	pmdaproc: performance improvements for the Linux per-process PMDA
	pmdaproc: provide a proc.psinfo.policy_s metric
	pmdaproc: ensure log-finished message not logged prematurely
	pmdapodman: switch from libvarlink to the podman REST API
	pmdaperfevent: fix help text, allow DSO installation
    - Server-side utilities and log management scripts:
	pmlogger_daily_report: always disable pmrep header repeating
	rc_pmcd: change .Need* protocols (slightly)
	rc_pmcd: block concurrency for automated PMDA updates
	rc_pmie: do not discard pmie stderr when starting pmie service
	pmproxy: move metrics from pmproxy.redis.discover to pmproxy.discover
	pmproxy: add long help texts for new pmproxy metrics
	pmproxy: add pmproxy.discover.changed_callbacks metric
	pmproxy: do not init default uv_loop twice
	pmproxy: start pmproxy after Redis (if available)
	pmcd: support for high resolution timestamp sampling
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: support for HIGHRES fetch and result PDUs, pmHighResFetch(3)
	libpcp: fix fetchgroup instance profile mangling
	libpcp: fix off-by-one error in pmfstring(3)
	libpcp: simplify exec.c thread-safe locking
	libpcp_web: integrate hiredis and hiredis-cluster
	libpcp_web: throttle discovery callbacks to improve scalability
	libpcp_web: add new metrics for Redis operations
	libpcp_web: free dictEntry struct of dropped contexts
	libpcp_web: ignore duplicate or early stream messages
	libpcp_web: expose number of inflight redis requests to discovery
	libpcp_web: register discovery callback once for initial directories
	libpcp_web: add a limit on storable instances to cap mem alloc
	derived metrics: add additional iostat metrics
	pmconfig.py: more consistent error handling
    - Misc build, infrastructure and packaging updates:
	build: fix debian builds with missing openpyxl packages
	build: fix rpm file permissions for the pcp-testsuite package
	build: ensure zabbix.agent.d and sasl2 configs marked as such
	build: retire the RPM PMDA, unused and not performance related
    - Security Enhanced Linux:
	selinux: fix detection of lockdown policy class
	selinux: add capability2 { bpf } when needed
	selinux: add rules for type kmod_exec_t
	selinux: use logging_watch_all_log_dirs_path macro when needed
	selinux: add policy changes for pmdaproc dma_device_t stat check
    - Documentation and QA infrastructure:
	docs: update donations link to https://opencollective.com/pcp
	docs: add sizing recommendations table to the Scaling doc
	docs: update Fedora/RHEL/CentOS installation instructions
	docs: transition from bintray (retired) to artifactory
	docs: pmrep man page improvements around instance selection
	docs: fix a typo in pmregisterderived(3)
	docs: pmrep and pcp2xxx utilities man page tweaks
	docs: simplify systemctl commands in the quickstart guide
	docs: pcp-dstat(1) man page path tweaks
	docs: add missing long options to various man pages
	docs: escape pmdiff(1) dashes in options properly
	docs: update pmie_check(1) and pmie_daily(1) man page
	docs: drop commented env vars from command line option configs
	qa: valgrind and helgrind variants for multithread14
	qa: add helgrind to group and associated tests
	qa: specify PCP libraries only on libpcp_web link lines
	ci: add script to open local Allure report
	ci: add Fedora 34
	ci: csv export

pcp-5.3.0 (16 April 2021)
    - Client tools and utilities:
	pmie: fix nasty scheduler issue around pmcd reconnect
	pcp-atop: allow process filtering based on state
	pcp-atop: report kernel wait channel symbol for blocked processes
	pcp-atop: report virtual memory out-of-memory process killing
	pcp-atop: report swap-cached, KSM, ZFS and zswap memory metrics
	pcp-atop: report per-process locked memory metric
	pcp-atop: report per-process run_delay scheduler metric
	pcp-atop: extended reporting of pressure stall information
	pcp-atop: document date/time syntax for start/end time (-b/-e)
	pcp-atop: option to sort threads per process
	pcp-atop: resolve some inconsistencies with atop and atopsar
	pcp-atop: prevent automatic stepping in archive replay mode
	pcp-atop: correct 'elapsed' reporting and improve boottime setup
	pcp-atop: fix displaying processes (instances) with no values
	pcp-atop: improve behaviour without kernel.all.pid_max value
	pcp-atopsar: ensure --begin semantics have matching origin/start
	pcp-atopsar: default reporting start time is today
	pcp-htop: added the SysArch Meter
	pcp-htop: added ZFS ARC statistics
	pcp-htop: ensure Zram Meter always uses initialized data
	pmquery: use default line wrapping to not chop off text
	pmrep: fix error message with undefined metricset
	pmrep.conf: fix metric names in proc-essential
	pmrep.conf: switch using BCC PMDA netproc module for proc-net metricset
	pmrep.conf: tweak proc-io-ext unit
	pmrep.conf: more complete proc-os-stats counts
	pmrep et al: allow specifying instances with PID
    - PMDA additions, enhancements and bug fixes:
	pmdabcc: rename bcc.proc.io.net.perpid.* to bcc.proc.net.*
	pmdabcc: fix runqlat for newer compilers
	pmdabcc: fix bioperpid and biotop on recent kernels, upstream sync
	pmdabcc: handle gaps in syscall number list in syscount module
	pmdabcc: biotop - rename bpf function for consistency
	pmdabcc: make netproc the only default module
	pmdabcc: netproc - add command name to instance names
	pmdahacluster: reduce log messages from popen() calls
	pmdahacluster: fix logic for ha_cluster.pacemaker.resources.*
	pmdaperfevent: automatically increase the allowed open files
	pmdaproc: cleanup up debug flag use
	pmdaproc: update acct.* metrics pacct file location
	pmdalinux: add a new kernel.all.nptys metric
	pmdalinux: add memory metrics to collate vmstat numbers
	pmdalinux: add support for fibre channel host metrics
	pmdalinux: switch interrupts metrics to using compound indoms
	pmdaweblog: 10,000km service
	pmdaxfs: fix PMID numbering botch below xfs.perdev.buffer
    - Server-side utilities and log management scripts:
	pmcd: slight change to an internal AF_UNIX socket path
	pmproxy: correctly handle metrics with multiple names
	pmproxy: increase open files soft limit to maxfiles
	pmlc: fix botched error checking logic in addinst
	pmlogconf: fix the interactive pattern search
	pmlogconf: tools/sar add missing cpu metrics
	pmlogconf: add configs for services/pmproxy and services/redis
	pmlogconf: add config for per-process network stats
	rc_pmie: remove pmcd_wait check for pmcd, not needed
	zeroconf: remove duplicate metrics from 30-second sampling setting
	zeroconf: increase logging delta for proc metrics from 30s to 60s
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: changes for metrics with semantics of dimension "none"
	libpcp: add pmfstring(3), a safe replacement for %s in fscanf
	libpcp: derived metrics semantics for delta(x) when x is unsigned
	libpcp: add pmstrncpy(3) and pmstrncat(3) for safe string handling
	libpcp_pmda: don't cripple hash tables, fixes very large indoms
	libpcp_web: add instrumentation and various mmv metrics
	libpcp_web: plug a potential memory leak in archive discovery
	libpcp_web: plug leak in discovery values callback writing to Redis
	libpcp_web: plug leaks in callers of series_stream_append
	libpcp_web: plug leaks in callers of pmwebapi_new_metric
	libpcp_web: fix heap corruption in Redis maps on pmproxy shutdown
    - Misc build, infrastructure and packaging updates:
	Coverity scan and clang fixes throughout the code base
	build: update the redhat.spec to use %files, adding tmpfiles.d
	build: avoid packaging rundir on [open]SUSE distros
	build: drop historical recursive chown from pcp rpm specs
	build: rename master to main (or similar)
	build: build pmdabind2 only if dependencies are installed
	build: add Dockerfile for latest development PCP build
	build: include systemd-devel for more rpm build cases
	build: fix deb path permissions for pmfind log directory
	build: install the directory that houses DM pmieconf content
	build: fix some mispackaged (deb) pcp2xxx tools
	build: add a pcp-zeroconf package for deb builds also
    - Security Enhanced Linux:
	selinux: add conditional lockdown policy access by pmdakvm
	selinux: add build infrastructure for netlink_tcpdiag_socket class
    - Documentation and QA infrastructure:
	docs: first version of the PCP Scaling Guide
	docs: updates to pmdaopenmetrics(1)
	docs: explain pmproxy stream options in terms of metric retention
	docs: add note about deprecation of sar2pcp
	qa: add _check_redis_server to common.check, update tests

pcp-5.2.5 (8 February 2021)
    - Client tools and utilities:
	pcp-dstat: correct the sample count logic, was off-by-one
	pcp-dstat: fix csv output with timestamps (no special chars)
    - PMDA additions, enhancements and bug fixes:
	pmdazfs: new Linux ZFS metrics
	pmdasockets: new Linux ss(1) metrics
	pmdahacluster: new HA metrics (Pacemaker, Corosync, DRBD and SBD)
	pmdabcc: netproc module: count kernel calls, not packets
	pmdalinux: add hinv.cpu.thermal_throttle metrics
	pmdalinux: add missing help text for new metrics, drop dups
    - Server-side utilities and log management scripts:
	pmproxy: fix quoting of /series/metrics matched names
	pmlogger: fix permissions mismatch for pmlogger tmp dir
	pmlogger: fix incorrect reporting of pmcd state changes
	pmie_check: explicity set a umask appropriate for pmieconf
	pmlogger_check: explicity set a umask appropriate for pmlogconf
	pmlogger_check: skip .NeedRewrite processing with -K
	pmpost: increase timestamp resolution
	pmpost: fix NOTICES file ownership changes
	rc scripts: add optional logging
	systemd: remove Wants=pmcd from pmlogger and pmie
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: redo the interp.c time_caliper changes
	libpcp_web: add timer driven webgroup garbage collector
	libpcp_pmda: add new function pmdaCachePurgeCallback
    - Misc build, infrastructure and packaging updates:
	libpcp_web: fix minor memory leak on an error path (covscan)
	build: fixed version dependencies between .deb sub-packages
	build: extend configure.ac for more ncurses cases (pcp-htop)
	build: explicit rpm dependency on make package for f34+
	build: consistent naming for icmp/rawip sockets
	build: fix hostname(1) dependency (again)
	build: create per-rpm-subpackage systemd tmpfiles entries
	build: add systemd build dependency for deb builds
	build: do not install bash completions for non-existent commands
	build: do not install pcp-gui pmafm file for non-existent commands
	build: ensure bash completions end up in correct deb sub-packages
	build: fixes to ensure PCP_TMPFILE_DIR not used during the build
	build: package pmrepconf in the same rpm package as pmlogconf
	build: add versioned rpm spec dependencies for pcp-zeroconf
	ci: upgrade to Ubuntu 20.04 base VM for containers
    - Security Enhanced Linux:
	selinux: enable netcheck rawip_socket if icmp_socket unavailable
	selinux: additional rules needed for pmie/pmlogger in fedora
    - Documentation and QA infrastructure:
	docs: add pointers to readthedocs.io now that books live there
	pcp-dstat: optionally install a man page symlink for dstat
	docs: pmproxy(1) man page corrections and additions
	qa: improve sortinst reporting when line buffer overflow occurs

pcp-5.2.3 (18 December 2020)
    - Client tools and utilities:
	pcp-htop: minimal version of htop with PCP backend platform
	pcp-atop: add per-process network statistics
	pcp-atop: result instance indexing performance optimization
	pcp-atop: always restore original state of process accounting
	pcp2elasticsearch: add guard around maximum long integer size
	pmlogsummary: fix indom lookup for dynamic instance domains
	pmseries: provide sum() and avg() query functions
	pmseries: persist canonical query expressions to Redis
	pmseries: fix HMSET calls when querying timeseries expression
	pmseries: fix for failing queries with disjuncted qualifiers
	pmseries: fix segfault in func call with globbed metric.name
    - Server-side utilities and log management scripts:
	pmproxy: support fabricated SIDs in /series/instances requests
	pmproxy: support fabricated SIDs in /series/metrics requests
	pmlogger_check: add pmlc connection timeout checking current volume
	pmlogctl,pmiectl: ignore saved control files after an upgrade
	pmlogconf: add missing mssql template header
	pmlogconf: add logger configuration files for the htop command
	pmieconf: add a rule to detect and report OOM kills
	pmieconf: cleanup old, no-longer-used tool integrations
	pmieconf: ensure all automated invocations use the -c switch
	pmieconf: fix default generated config file path
	pmie_check: remove a tempfile once finished with it
    - PMDA additions, enhancements and bug fixes:
	pmdaapache: fix buffer size to allow for multiple reads of the stream
	pmdabcc: added new netproc module with per-process network metrics
	pmdaproc: allow to use acct.control.enable_acct as reference counting
	pmdalinux: added network.all.* metrics for physical interfaces
	pmdalinux: fix case of waitio counters from /proc/stat going backwards
	pmdalinux: minor tweaks to use integer math over floating point
	dbpmda: send inst profile prior to instances level label requests
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: performance improvements for archives with dynamic indoms
	libpcp: send instance profile for instances level labels requests
	libpcp: make pmLookupName take a (const char **) namelist
	libpcp_web: set pmseries source to all-zeroes for expressions
	libpcp_web: handle fabricated SIDs in /series/values REST API
	python api: fix fetchgroup max_insts size with multiple indoms
    - Misc build, infrastructure and packaging updates:
	build: drop deb arch-deps on Infiniband libs as they are pervasive
	build: fix version dependencies between deb sub-packages
	build: install BCC PMDA config files below /etc not /usr
	build: drop the old XML docbook format for books
	build: remove systemd timer services in rpm %preun scriptlet
    - Security Enhanced Linux:
	selinux: use matching autoconf guard for rawip_socket class
    - Documentation and QA infrastructure:
	docs: update pmdabpftrace man page and README
	docs: improvements in diagrams
	docs: theme_overrides.css added for readthedocs content
	docs: pmseries(1) chapter added in Users and Administrators Guide
	docs: add quotes to curl calls with * in pmwebapi query strings
	docs: update pmseries schema to describe expression keys
	ci: cleanup container init command
	ci: update mariadb package in debian 11
	ci: fix rawhide (dbus service wasn't activated)
	ci: update centos6 platform to use the "vault" since el6 is EOL

pcp-5.2.2 (11 November 2020)
    - Client tools and utilities:
	pcp-atop: add support for process accounting
	pcp-atop: use floating point (not integer) delta in more places
	pcp-atop: sort interface names for output determinism
	pmchart: record mode, keep "local:" arg for launched pmloggers
    - Server-side utilities and log management scripts:
	pmcd: init NSS read-only when using secure connections
	pmproxy: move forward to most recent http_parser update
	pmproxy: fix redisfmt reply length mismatch on 32bit platforms
	pmproxy: Access-Control-Max-Age header, CORS preflight request caching
	pmproxy: make no-label-values response consistent with regular response
	pmproxy: handle proxying of Redis binary strings
	pmproxy: improve /pmapi/metrics error handling with mixed requests
	pmproxy: improve /pmapi/query error condition handling
	pmproxy: fix incorrect use of %u in redisfmt for reply element count
	pmproxy: consistent empty response for /search/{text,indom,suggest}
	pmproxy: fix handling of multiple names in metrics API
	pmproxy: plug mem leak in redisfmt
	pmieconf: remove integrations with software that no longer exists
	pmlogconf: remove pmlogconf templates specific to IRIX
	pmlogconf: produce less verbosity when running automated
	pmrepconf: produce less verbosity when running automated
	pmlogctl: fix a couple of small corner-case issues
	pmfind_check: with -N option, don't try to remove log file
	pmie, pmlogger scripts: defensive changes for temp file removal
	pmlogger scripts: fix pmlc/pmlogger race causing pmlogger_daily to hang
    - PMDA additions, enhancements and bug fixes:
	pmdalinux: additional mem.vmstat metrics from /proc/vmstat
	pmdalinux: fix drop_pagecache and drop_slabs metrics
	pmdalinux, pmdakvm: help texts fallback to short-form
	pmdalinux: use _pm_assign_ulong for disk.dev.read_bytes and co
	pmdalinux: fix cases where /proc/stat waitio counters go backwards
	pmdaperfevent: add support for hv_24x7 core-level events
	pmdaperfevent: add support for hv_gpci perf events
	pmdanetcheck: rework to accommodate some QA failures
	pmdaactivemq: fix several runtime and compile issues
	pmdakvm: install kvm.conf in /etc, help text for trace metrics
	pmdakvm: fix detection of kernel lockdown mode
	pmdaelasticsearch: improve diagnostics and error handling
	pmdaelasticsearch: add short-circuit checking to constructor
	pmdaxfs: free_inode, rmap and refcount btree stats, dquots
	pmdamssql: improved error handling on failed SQL Server connection
	pmdarpm: add logic to deal with the location of the RPM DB
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: handle EINPROGRESS from connect() in __pmConnect
	libpcp: add labels.conf file initially controlling machineid
	libpcp: send instance profile for instances level labels requests
	libpcp_web: fix query rate() function
	libpcp_web: merge updated query grammar, add rate() actions
	libpcp_web: use more efficient sds formatting in places
	libpcp_web: fix 32bit int overflow in timeval_stream_str()
	libpcp_web: fix double-free in binary query/expr functions
	libpcp_web: fix query.c memory leaks found by coverity scan
	libpcp_web: keep meta-data qualifiers in canonical expressions
	libpcp_web: drop noop() from /series/query language
	libpcp_web: functions/expr without time window return SID
	python api: fix pylint error from undefinied __init__ names
    - Misc build, infrastructure and packaging updates:
	build: drop IRIX files from pmlogconf
	dbpmda: small fixes, add getiname command
	build: fix rpm spec permissions for pmie and sa directories
	build: add versioned rpm spec dependencies for pcp-zeroconf
	build: add more missing empty directories to tar packages
	build: add pylint static checking for the nfsclient PMDA
	build: resolve Debian build dependency on -all- py3 package
	build: update debian build deps for arch-dependent packages
	build: make the python odbc package dep explicit for mssql
    - Documentation and QA infrastructure:
	Numerous changes to the books for https//pcp.readthedocs.io
        Numerous changes to the platform package detection logic for QA
	ci: implement timeout and retry for bintray release script,
	ci: show symbols in slack channel (green, warning, error)
	ci: add a 32bit build and continuous integration setup
	ci: add CodeQL
	docs: switch pmcd from digest-md5 to scram-sha-256 authentication
	docs: update pmlogger_daily(1) for -x, -K, -k; $PCP_COMPRESSAFTER
	docs: document that trailing \n is not needed for pmNotifyErr
	docs: add final help text entries for interrupts metrics
	docs: add missing help text for nfsclient metrics
	docs: add help text for mssql derived metrics
	docs: add help text for event.* metrics
	docs: fix a couple of minor REST API typos
	docs: make the curl REST API examples cut+paste friendly
	docs: add a man page describing /etc/pcp/labels.conf
	docs: update pmseries(1) for query expressions and functions

pcp-5.2.1 (25 September 2020)
    - Client tools and utilities:
	pcp-atopsar: fix accumulation (-R) mode
	pcp-atopsar: fix a command line args handling issue
	pcp-dstat: fix handling of explicitly requested instances
	pcp-dstat: fix scale conversions for certain cases
	pcp-dstat: add --redis-mem and --redis-client configs
	pcp-dstat: add GPFS configs
	pcp-free: use output matching procps-ng free(1) now, add -w (wide) form
	pcp2elasticsearch: fix off-by-one counting on instance checking
	pcp2elasticsearch: add a new -m/--include-labels option
	pcp2spark: fix off-by-one counting on instance checking
	pcp2spark: add a new -m/--include-labels option
	pmchart: save hostname (not local:) in views and folios when recording
	pmlogger: fix 'repeated metric' problem on some configurations
	pminfo: ensure final character of series/source hash printed
	pmrepconf: new utility to generate pmrep/pcp2xxx configs
	pmrep: add config for iostat-dktx-dm (device mapper)
	pmrep: consider pmiPutLabel error fatal
    - Server-side utilities and log management scripts:
	pmproxy: REST API support for per-context derived metrics
	pmproxy: fix REST API time series ids for metrics with indom
	pmproxy: fix exclude.metrics handling from configuration file
	pmproxy: fix memory corruption from missing table entry for search
	pmlc: add disconnect and sleep commands
	pmlogctl: small glob fix for *BSD sh(1)
	pmlogmv: deal with glob and egrep special chars in filenames
	pmlogmv: rewritten from shell script to C program
    - PMDA additions, enhancements and bug fixes:
	pmdabcc: check return value of lookup_or_init
	pmdabpftrace: pass bpftrace script by stdin instead of command line
	pmdamssql: add support for Windows authentication
	pmdaelasticsearch: install a default configuration file
	pmdaopenmetrics: fix json in label callbacks
	pmdaopenmetrics: add config filter for optional labels
	pmdaopenmetrics: add METADATA support in URL configuration files
	pmdaopenmetrics: improve metadata, instances, config and labels handling
	pmdaopenmetrics: allow optional labels to be tagged as such
	pmdaproc: fix proc.psinfo.cgroups buffer sizing problem
	pmdaproc.sh: remove forced_restart to avoid pmcd rc script recursion
	pmdaproc.sh: quieten generation of domain.h and pmns for Python/Perl
	python PMDAs: add python_opt=true to Remove script
	perl PMDAs: add perl_opt=true to Remove script
	dbpmda: fixed memleaks, parser for debug command
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: handle absolute paths to archives when using --archive-folio
	libpcp: new PMAPI methods for per-context derived metrics
	libpcp: refactor __pmGetArchiveEnd_ctx() to fix segv on corrupt log
	libpcp_web: add arithmetic expression to timeseries query language
	libpcp_web: add initial functions to timeseries query language
	libpcp_web: further improvements to help text search
	libpcp_web: add context structure reference counting
	python api: allow optional label creation by PMDAs
	python api: fix pmGetInstancesLabels return labelset for singular indom
    - Misc build, infrastructure and packaging updates:
	configure.ac: OpenBSD changes
	pmlogconf: fix OpenBSD 6.7 compiler warning
	pmdaopenbsd: placate a picky compiler on OpenBSD 6.7
	Makepkgs: for Gentoo build w/out Python2
	pmrep/pcp2xxx: minor man page tweaks
	build: fix openmetrics /etc paths, add spark url (disabled)
	build: install pcp-atopsar(1) and pcp-atoprc(5) man pages
	build: resolve several QString::null warnings in pmchart and pmtime
	build: guard use of some Qt5-only functions in pmchart and pmtime
	build: provide a 'force' install mode to override /var checks
	build: fortify some code against gcc10 malloc(0) warnings
    - Security Enhanced Linux:
	selinux: handle proc_security_t not being defined for CentOS 6.10
    - Documentation and QA infrastructure:
	man: new and updated man pages for per-context derived metrics
	docs: pmdelprofile(3) important "or" vs "and" correction
	docs: fix typo in disk.all.aveq metric help text
	docs: add helptext for iostat derived metrics
	docs: add helptext for proc.hog derived metrics
	docs: fix formatting on pmgetchildrenstatus man page
	pmdasample: switch to deterministically seeded random number generator
	qa: add not_in_ci group infrastructure for individual tests
	qa/admin/pcp-daily: add -l (--login) for remote sh -c
	qa: require kernel headers of running kernel for all BCC tests
	ci: create bintray repository and package if it doesn't exist
	ci: ensure libuv is installed on all platforms
	ci: prune caches on network failure
	ci: add --until argument to reproduce command
	ci: don't update packages on Github actions
	ci: send daily status reports to #pcpqa slack channel

pcp-5.2.0 (7 August 2020)
    - Client tools and utilities:
	pmiectl: (new) experimental pmie control utility
	pmlogctl: (new) experimental pmlogger control utility
	pmlogpaste: (new) log string metric paste facility
	pmsearch: (new) full text search for metrics, instances and help
	pmfind_check: connect to pm{ie,log}ctl
	pmfind_check: deal with strange exit status from pmfind(1)
	pmlogconf: fix intermittent core dump
	pmlogconf: fix resource leak found by coverity scan
	pcp-atop: resolve other paths of potential null task pointer dereference
	pcp-atop: fix logic around the end of an optional time window
	pcp-atop: implement several RFEs relating to time navigation
	pcp-atopsar: fix memory allocation problem with some options
	pmie_dump_stats: (new) helper to dump pmie stats files
	pmieconf: add network rules detecting socket connection saturation
	pmie.c: move systemd notify call earlier
    - Server-side utilities and log management scripts:
	Retired standalone pmmgr daemon - see pcpcompat(1) for details.
	pmproxy: improve diagnostics, particularly relating to http requests
	pmproxy: support the OPTIONS protocol in HTTP 1.1
	pmproxy: allow URLs up to 8k in length
	pmproxy: escape help text before returning it in JSON payload
	pmproxy: improve handling of series APIs with empty results
	pmproxy: accept /pmapi/store value in the message body
	pmproxy/rc_pmproxy: remove $tmp (dir) before exec
	services: pmlogger and pmie services want pmcd on boot
	services: assorted systemd oneshot services use KillMode=none
	services: pmie_check PartOf pmie, pmlogger_check PartOf pmlogger
	pmie_check: use per-process log file
	pmlogger_check: fix locking snarfoo
	pmlogger_check: remove temp file used in pmlogconf check
	pmlogger_check: make sure pmlogconf has input from /dev/null
	pmlogger_check: alternate strategy for finding primary logger's PID
	pmlogger_check: major overhaul (diags and systemd fixups)
	pmlogger_daily: similar changes to pmlogger_check.sh
	pmlogger_daily: fix diagnostic spaghetti
	pmlogger_daily: fix merge failures
	pmlogger_daily: use $PCP_TMPFILE_DIR for pmlogger_merge WIP archives
	pmlogger.service: change ancillary services from After to Before
	pmlogger/utilproc.sh: make _save_prev_file() less chatty
	pmie/rc_pmie & pmlogger/rc_pmlogger: fix trap snarfoo
    - PMDA additions, enhancements and bug fixes:
	pmdabpftrace: update link to authentication guide
	pmdabpftrace: switch to asyncio.all_tasks() in Python 3.9
	pmdabpftrace: log user who started the bpftrace script
	pmdabpftrace: strip spaces in allowed_users config setting
	pmdalinux: correctly support compressed memory (zram) metrics
	pmdalinux: add multipath TCP metrics from /proc/net/netstat
	pmdalio: wrap refresh routine with exception handling
	pmdalio: add pylint static checking
	pmdamssql: corrections to the sys.dm_exec_requests query
	pmdaproc: support Linux process accounting metrics
	pmdaproc: add cgroup.memory.current metric (cgroup v2)
	pmdaopenmetrics: add control.status metrics, de-verbosify the log
	pmdaopenmetrics: add etcd and collectd configurations for reference
	pmdasmart: add full support for NVM Express disks
	pmdasnmp: add Install checks for the required Net::SNMP module
	pmdastatsd: fix minor sizeof issues found by Coverity scan
	pmdastatsd: fixed a possible memory leak when parsing invalid datagrams
	pmdazswap: fix error handling case when no kernel module loaded
	pmdazswap: add pylint static checking into the build
	pmcd/pmdaproc.sh: silence derived metrics warnings from Remove
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: add help text support for derived metrics
	libpcp: fix memleak in hash.c
	libpcp: clear PM_TEXT_DIRECT flag when looking up context text
	libpcp, libpcp_import: fixes to labels setting functionality
	libpcp_web: ensure context is freed only after timer 21is fully closed
	libpcp_web: add resilience to descriptor lookup paths
	libpcp_web: fix reference counting error in reworked connect paths
	libpcp_web: search and auto-complete support
	libpcp_web: load text from archives
	pmapi.h: add 'qa', 'query' and 'services' debug flags
    - Misc build, infrastructure and packaging updates:
	build: rearrange installed /var file layouts extensively
	build: install relative symlinks for full absolute paths
	src: cleanup temp file naming
	build: fix deb packaging test for liblzma
	build: drop pcp-manager, pmfind in base pcp now handles discovery
	configure.ac: redo HAVE_MANPAGES heuristic, guard exection of bpftrace
	configure.ac: force man pages for Debian-style builds
	configure.ac: fix *BSD build breakage
	debian/GNUmakefile: fix cut-n-paste botch for ganglia2pcp packaging
	packaging: activate pmlogger_rewrite on upgrades
	build: edit PACKAGE_BUILD in VERSION.pcp in RPM %build
	build: add an explicit py3 dependency on the setuptools package
	build: remove ancient container build files from the pcp repo
	build: support gcc -flto in most parts of the build
	build: fix compiler warnings with latest gcc toolchain and headers
	build: fix 'make check' with latest glibc headers and cppcheck
	build: fix configure checks for Python.h, resolves python3 warnings
	build: crontab.docker is gone
	build: rework man pages installation wrt wymlinks
    - Security Enhanced Linux:
	selinux: allow pmdaxfs quotaget permissions
	selinux: fix pmdasamba(1) operating with selinux enforcing
	selinux: add sys_pacct capability to allow pmdaproc acct syscall
    - Documentation and QA infrastructure:
	docs: fix typos in the Linux kernel agent help text
	docs: remove reference to a non-existant PCP_CONFIG_DIR variable
	docs: add details of the default polltimeout value in pmwebapi(3)
	docs: refine client/server terminology relating to pmtime
	man: new pmsearchinfo(3), pmsearchsuggestquery(3), pmsearchtextquery(3)
	man: update pmwebapi.3 with /search query, indom, suggest and info APIs
	debian: roll debhelper compat version from 9 to 10
	pmapi.h & libpcp: add new -Dqa debug flag
	ci: remove Azure Pipelines, replaced with GitHub Actions
	ci: implement workaround for podman and AppArmor
	ci: daily QA with Status Report on GitHub Actions
	ci: only run on pushes/PRs to main branch, not tags
	ci: use containerfile for containers, fix locale of centos8
	ci: add epel repos to centos7 and centos8 for libuv-devel
	ci: add ubuntu 16.04
	ci: don't run update/dist-upgrade in containers (it's an anti pattern)
	qa: umask changes
	qa/1190: rework for performance improvement
	qa/check.callback.sample: performance improvements
	qa/008: deal with non-determinism in disk indom
	qa/1102: tweak openmetrics QA to be more deterministic
	qa/1210: remove another filesystem directory order problem in the test
	qa: resolve manifest file issue with selinux Makefile
	qa: resolve failure of filesys tests running inside containers in CI
	qa: remove ancient buildbot files from the build
	qa: add valgrind suppressions needed for valgrind 3.16 on f32
	qa/admin/check-vm: fix Python version heuristic

pcp-5.1.1 (29 May 2020)
    - Server-side utilities and log management scripts:
	pmfind, pmfind_check: allow running as a new discovery service
	pmlogconf: rewrite the shell scripts as a C program for speed
	pmlogconf: mechanism for detecting PMDAs without static metrics
	pmlogconf: refinements and fixes to several existing configs
	pmlogconf: rabbitmq and openvswitch configuration files added
	systemd: support [path] monitoring of pmlogger/pmie control files
	systemd: change pmie to type=notify service on systemd platforms
	pmie,pmlogger_check,daily: set systemd working directory
	pmcd: add support for /etc/pcp/labels/optional context labels too
	pmlc: remove the 1 second delay on disconnect from pmlogger
	pmlogger, pmproxy: fix minor coverity issues
	pmlogrewrite: warn and do nothing for empty archives
	pmlogextract: warn and do nothing for empty archives
    - Client tools and utilities:
        pcp-atop: resolve potential null task pointer dereferences
	pcp-dstat: ensure culled instances are not accumulated in the total
	pmrep, pcp2xxx: metric labels reporting
	pmrep, pcp2xxx: label handling for writing archives
	pmrep: ignore duplicate text and labels exceptions writing archives
    - PMDA additions, enhancements and bug fixes:
	pmdaopenvswitch: new, export Open vSwitch metrics
	pmdalustre: support Lustre v2.12 and later
	pmdabind2: remove Install checks for unused perl modules
	pmdakvm: also handle kernel lockdown in integrity mode
	pmdabcc: set correct units for biolatency, runqlat, *dist
	pmdagfs2: disable auto enablement of kernel tracepoints
	pmdalinux: fix bad metadata for disk.all.*(discard|flush)* metrics
	pmdastatsd: allow builds to proceed when no ragel available
	pmdaproc.sh: improve PMDA problem diagnosis by checking PMDA syntax
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
        rename PCP_NSSDB_DIR to PCP_SECURE_DB_PATH in pcp.conf
	build: fix incorrect declaration of pmGetHostName routine
	libpcp_trace: avoid dereferencing of possible NULL pointer
	libpcp: possible uninitialized data use in __pmAuthClientNegotiation
	libpcp: expand definition of PM_ERR_NODATA
	libpcp: open NSSDB readonly for clients
	libpcp: fix hostspec unparsing to deal with IPv6 bracketing
	libpcp: fix label flags handling within __pmAddLabels
    - Misc build, infrastructure and packaging updates:
        build: make sure pre-requisites of the RPM PMDA are available
	build: fix unescaped %configure in fedora.spec changelog
	zeroconf: add openmetrics as a default-installed agent
	packaging: fix install deps for pcp-testsuite on pcp-pmda-mssql
	packaging: replace pmdads389log dep on 389-ds-base with a softdep
	python build: remove (scary) module compilation warning
    - Security Enhanced Linux:
	selinux: fix AVC for pmdapostgresql socket write
	selinux: resolve bpftrace pmda access with latest fedora selinux policy
	selinux: resolve AVC's from RHEL Server 7.8 and PMDA zimbra
	selinux: add policy to allow openvswitch commands to run
	qa: add pcpqa.te for local selinux QA policy additions
    - Documentation and QA infrastructure:
	man pages: document deprecation of the pmmgr(1) daemon
	man pages: update many pages for warnings from latest mandoc
	qa: filter stderr from sensors(1) output, hardware may be inaccessible
	guide.html: fix broken link to installation guide
	ci: remove fetchDepth to allow the checkout of old commits

pcp-5.1.0 (24 April 2020)
    - Server-side utilities and log management scripts:
	pmcd: change systemd service unit to use Type=notify
	pmlogger: change systemd service unit to Type=notify
	pmproxy: change systemd service unit to use Type=notify
	pmlogger: support for archive log-rolling/re-exec on SIGUSR2
	pmlogger: support strftime substitutions in archive name argument
	pmlogger: add -N (--notify) flag to notify service manager
	pmlogger: write out Latest archive folio when run as service daemon
	pmlogger_check: fix so $PMLOGGER_CHECK_SKIP_LOGCONF is not ignored
	pmlogger_check: fix for non-primary pmlogger matching
	pmlogger: change duplicate archive name avoidance strategy
	pmlogger: refactor -NN archive name collision avoidance
	pmlogger: use execvp rather than execv so PATH is used
	pmlogger_daily: signal (rather than restart) pmlogger for log rotation
	pmlogger_check: use pmlogger's strftime template for archive name
	logutil: increase start/run timeouts for pmlogger_check/daily
	pmlogger_check: don't update the Latest folio (pmlogger does it now)
	pmlogger_check: drop 0 in strftime template archive name patterns
	pmsignal: add USR2 to the set of supported signals
	pmnewlog: retired, replaced with SIGUSR2 handler in pmlogger
	pmproxy: do not include hostspec in connection failure error message
	pmproxy: return error if authentication isn't sent in each request
	pmproxy: add -F flag to run as systemd service
	pmproxy: fix a double free on pmproxy shutdown without a redis-server
	pmproxy: fix async buffer reading for multi-stage RESP proxying
	pmproxy: fix race between redis setup and log discovery
	pmproxy: make logfile name unique with -Dappl1
	pmproxy: send Access-Control-Allow-Headers CORS header
	logutil: improved handling of $PCP_COMPRESSAFTER in control files
	find-filter: (new) find-grained filter for files based on mtime or ctime
    - Client tools and utilities:
	pcp-atop: ensure allocated task memory is always initialised
	pcp-atop: support interactively changing the sample interval
	pcp-atop: support PSIZE output from pcp-atop using proc.smaps.pss
	pcp-atop: fix STDATE/STTIME in -v output
	pmlogconf: add boottime metric to the atop logged set
	pmrep: catch PMI_ERR_DUPTEXT exceptions when writing indom help text
	pmrep: correct headers for archive output
	pmrep: correctly handle instance additions to archives
	pmrep: more correct null indom checks
    - PMDA additions, enhancements and bug fixes:
	pmdarabbitmq: new PMDA for RabbitMQ message broker metrics
	pmdabind2: update to handle additional version field in output
	pmdakvm: do not access debugfs/tracefs when kernel in lockdown
	pmdapodman: log varlink connection error message
	pmdabpftrace: rename static scripts to autostart
	pmdabpftrace: bpftrace.conf styling
	pmdabpftrace: add option to load bpftrace scripts from a directory
	pmdapostgresql: add back pmlogconf file with summary postgresql metrics
	pmdamssql: add pmlogconf file with summary SQL server metrics
	pmdaproc: correct parsing of lazyfree field in /proc/pid/smaps_rollup
	pmdaproc: support proc.smaps.* metrics from /proc/pid/smaps_rollup
	pmdalinux: correct new kernel.all.boottime units (seconds)
	pmdalinux: add aggregate and per-device discard and flush metrics
	pmdaredis: add perl-Data-Dumper dependency
	pmdanfsclient: update nfs client statistics for recent kernel versions
	pmdaactivemq: support for new version of ActiveMQ (v5.12+)
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: export __pmHashPreAlloc routine from hash APIs
	libpcp: fix authentication for multi-step auth methods
	libpcp: introduce pmGetHostName which returns errors
	libpcp, pmcd: add diagnostics for -Daccess
	libpcp: add new "access" debug flag
	libpcp: dont clear NOTIFY_SOCKET after initial READY notification
	libpcp: add diagnostics for calls to sd_notify from __pm_sd_notify
	libpcp: support notify on systemd platforms with no sd_notify API
	libpcp: hide warning from __pmServerNotifySystemd
	libpcp: change guards around libsystemd uses
	libpcp: add portable service manager notify API functions
	libpcp: add new "services" debug flag
	libpcp: clarify -s/--samples option handling error message
	libpcp_web: delay setup of the uv_timer_t in webgroup context creation
	libpcp_web: ensure redis callback structures are initialized
	libpcp_web: use unsigned type consistently in Redis version checks
	libpcp_web: sync up the libuv/redis client adapter
	libpcp_web, pmproxy: update Redis protocol code for RESP3
	libpcp_web: minor extension to Redis version check logic
	libpcp_web: fix segfault in redisSlotsRedirect
	libpcp_web: check redis server version
	python/logimport: add missing error definitions
	python/pmapi: plug memleaks in labelsets API calls
    - Misc build, infrastructure and packaging updates:
	ci: set skip_clean to true to avoid race condition
	ci: organize RHEL provisioning scripts
	ci: enable rhui-optional-rpms repo on rhel 7 for python3-devel
	ci: support Python 2.6 in create_report.py (RHEL 6)
	ci: show test group in test results
	ci: delete /opt/ghc on Azure Pipelines agent
	ci: add script to delete Azure resource group deployment metadata
	ci: enable redis on startup on Azure CI hosts
	ci: install libuv-devel from EPEL Modular on RHEL 8
	build/tar/preinstall: take more care of services before upgrade
	debian/fixcontrol.main: fix libsystemd-dev conditional logic
	configure.ac: improved libsystemd checks and portability
	build: update do-maybe-requires script to check provides metadata
	build: remove perl(NET::SNMP) from unavailable file (it's in EPEL)
	build: add EPEL to RHEL 6, split epel and libuv installation
	build: add libsystemd-dev for debian builds
	build: add explicit RPM dependencies between pmdas and pcp package
	build: RPM spec file change to avoid touch on read-only filesystems
    - Security Enhanced Linux:
	selinux: add config-driven setup for pcpqa.te
	selinux: add policy rule for pmlogger unreserved port name_bind
	selinux: additional zimbra PMDA selinux policy rules
	selinux: additional policy needs for pmdanamed in el7
	selinux: drop name_connect from class udp_socket
    - Documentation and QA infrastructure:
	qa/check-flakey: (new) run some basic triage on failing tests
	qa: enable the use of pcpqa.te on SELinux platforms
	check-vm: control file updates for RHEL 7.8 and RHEL 8
	qa/check.callback.sample: check if pre-run AVC file exists before diff
	qa/common.avahi: put service state back the way it was at the beginning
	qa: extend filtering for when more optional PMDAs are active on QA host
	qa: assorted flow-on changes from recent pmlogger changes
	docs: update pmlogger(1) for SIGUSR2 handling and strftime(3)

pcp-5.0.3 (27 February 2020)
    - Client tools and utilities:
	iostat2pcp: fix parsing after output change in latest iostat version
	pmseries: add --load option file name heuristics
	zsh completion: complete paths for pmseries --load option
	pcp2xml: adjust escaping rules
	pcp2xlsx: properly output local context (-L) source
	pcp-atop: fix double free found by make check
	pcp-atop: add defensive pointer checks when iterating current tasks
	pcp-atop: fix upper limit of output pid to 7-digits
	pcp-dstat: perform sub-sample averaging over the delay window
	pcp-dstat: drop use of list clear() as its unavailable in python2
	pcp-dstat: fix a typo in command line alias of --fs with --filesystem
	pcp-dstat: add options for md, dm and disk partition reporting
	pcp-dstat: add mysql and innodb plugin configuration file
	pcp-pidstat: refinements to out-of-order archived metric checks
	pmieconf: fix use-after-free on a path error message
	pmrep: add support for writing archives with help texts
	pmrep: cleanup discreate value handling in archive writing
	pmrep/pcp2xxx: avoid issues with intermittent/vanishing instances
	pmrep/pcp2xxx: handle corner case of initially missing instances
    - Server-side utilities and log management scripts:
	pmlogger: provide single configurable location for archive discovery
	pmproxy: do not install log discovery callbacks when not needed
    - PMDA additions, enhancements and bug fixes:
	pmdammv: prevent internal checks from artificially limiting indoms
	pmdabcc: add klockstat module
	pmdabpftrace: detect stacks in multidimensional eBPF maps
	pmdabpftrace: emphasize disabled authentication warning
	pmdaopenmetrics: provide a default configuration for grafana metrics
	pmdaopenmetrics: record metrics if the pmda is configured
	pmdafreebsd: some metrics upgraded to 64-bit in recent FreeBSD releases
	pmdastatsd: make metric value double type handling more consistent
	pmdalinux: fix interrupts file parser for s390x /proc/interrupts layout
	pmdalinux: convert uptime and idletime metrics to double precision
	pmdalinux: fix another batch of KERNEL_ULONG errors
	pmdaactivemq: module name and path resolution fixes for latest perl
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	python api: avoid null references in pmGetInDomDict()
	python api: fix pmParseUnitsStr for Python2
	python api: allow pmUnits to be converted to an int
	python api: decode byte array to string as arg to json.loads
	pmconfig.py: increase max_insts for pmfg (fetchgroup class bound)
	libpcp_web: correct logic for copy discovered source hostname/labels
	libpcp_web: fix memory leak when discovery enabled without redis-server
	libpcp_web: fix SDS_NOINIT declaration for -fno-common
	libpcp_web: rework discover to track archives, handle new logvols
	libpcp_web: improve handling of metric 'cached' field
	libpcp: add interfaces for dynamic context changes
	libpcp_web: silence pmNewContext failed messages in archive discovery
	libpcp_web: fix discovery traversal segfault
	libpcp_web: fix discovery logvol switching, reduce CPU overheads
	libpcp_web: handle dynamic metadata changes in log discovery
	libpcp_web: hold context lock around log metadata updates in discovery
	libpcp_web: provide a metric discovery exclusion mechanism
	libpcp_web: survive daily log-roll in discovery archive tracking
	libpcp_web: fix portability issues with struct stat fields
	libpcp_web: discovery, assign new context before calling pmGetArchiveEnd
	libpcp_import: add logvol switching for importing large datasets
    - Misc build, infrastructure and packaging updates:
	build: drop python2 sub-packages for .deb package builds
	build: tweak the way python variable is set in configure.ac
	build: set path to hostname depending on usrmerge
	build: fix pcp.spec.in guard for /usr/bin/hostname
	build: fix isspace() et al across multiple files
	build: fix compilation with gcc10 across multiple files
	build: add static checking for man pages, for CI
	build: pylint enabled for all remaining python utilities
	build: update rpm spec with lm_sensors package dep for pcp-pmda-lmsensors
	build: update rpm spec with perl-autodie package dep for pcp-pmda-redis
	build: update rpm spec with smartmontools package dep for pcp-pmda-smart
	build: update rpm spec with perl-Time-HiRes package dep for pcp-pmda-pdns
	build: update rpm spec with perl-Time-HiRes package dep for pcp-pmda-redis
	build: update rpm spec with perl-Time-HiRes/autodie package deps for pcp-pmda-bind2
	build: update rpm spec with perl-DBI package dep for pcp-pmda-dbping
	build: update rpm spec with 389-ds-base package dep for pcp-pmda-ds389log
	build: update rpm spec with perl-JSON/TimeHiRes package deps for pcp-pmda-gpsd
	ci: automated release on bintray
	ci: restructure provisioning scripts
	ci: install libuv-devel from EPEL on rhel7
	ci: don't publish test results for cancelled builds
	ci: fix test runs for ubuntu distros, update f31 image generation
	ci: batch tests to reduce overhead
	ci: update output of GNU parallel, default arguments for scripts
	ci: fix shellcheck hints
	ci: snapshot builds, publish to bintray [distro]-nightly repository
	ci: change VM size, update computer name, incr timeout, start redis
	ci: use XML api for creating JUnit test report to avoid escaping issues
	ci: run Makepkgs with --check option
	qt code: convert deprecated QString::null to QString()
	python api: resolve pylint issue in pmconfig 'help' (redefined-builtin)
	pmdamssql: make rpm build conditional on platform support
    - Security Enhanced Linux:
	selinux: add pmcd_t fixed_disk_device read capability for smart PMDA
	selinux: assorted minor policy fixups for different platforms
	selinux: add policy for named pmda executing /usr/sbin/rndc on el7
	selinux: add policy needed for pmdastatd to access statsd UDP port
	selinux: allow pcp_pmlogger_t access to execute setfiles on el7 ppc64le
    - Documentation and QA infrastructure:
	man: numerous fixes to man pages from static checking
	doc: rename CONTRIBUTING file as per de-facto standards
	qa: numerous unicode strings updates for older vs newer python versions
	qa: numerous fixes for OpenSuse 15.1, esp. bpf related
	qa: try to avoid test 054 causing a "hang" in QA Farm
	qa: provide a sample-labels archive for testing labels
	qa: pmdastatsd QA converted from ruby to python
	qa: fix 1661 to work with multiple pmlogger/farm and add _check_series check
	qa: fix for pmlogger_daily_report causing PCP testsuite to fail
	qa: split up statsd test 1599 into smaller test cases
	qa: _notrun tweaks for bcc PMDA QA tests

pcp-5.0.2 (11 December 2019)
    - Server-side utilities and log management scripts:
	pmproxy: REST API to report all label values by name
	pmproxy: fix memory leak when re-using http connections
	pmproxy: fix memory leak on a failed REST API call
	pmproxy: improvements to the instrumentation mechanism
	pmproxy: add support for AF_UNIX local client connections
	logutil: fix pmlogger service timeout on new installations
	pmie: on SIGTERM, exit 0 for a normal shutdown rather than exit 15
	pmcd: add labels PDUs into the trace set
    - PMDA additions, enhancements and bug fixes:
	pmdaproc: support for kernel cgroups v2 (and systemd using same)
	pmdalinux: update per-device read_bytes, write_bytes metric types
	pmdabpftrace: implement label callback
	pmdabpftrace: clear context tab on endcontext
	pmdanetcheck: run as pcp user, document ICMP Echo socket permissions
	pmdaperfevent: fix memory leaks and remove some unused code
    - Client tools and utilities:
	pcp-atop: update to latest upstream atop v2.5.0 sources
	pcp-dstat: no stack trace when dstat exits due to a signal
	pcp-dstat: fix handling of very large numbers of disk devices
	pcp-dstat: exit with code zero when archive end reached
	pmieconf: add a pcp-zeroconf option for enabling all_threads
	pmseries: fix pointer arithmetic on series ID set intersection
	pmseries: add new option to report all label values by name
	pmseries: fix and test regular expression pattern matching
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: fix potential use-after-free in labels code
	libpcp_web: fix file descriptor and memory leaks in discovery code
	libpcp_web: resolve valgrind issues observed in qa tests
	libpcp_pmda: show PM_ERR_VALUE errors only if libpmda debug flag set
	python API: add endcontext callback for PMDAs
	python API: resolve pylint warnings on all python modules
	python API: add missing fields to pmLabelSets structure
    - Misc build, infrastructure and packaging updates:
	configure: make build reproducible
	configure: make zlib available for hdr_histogram checks
	build: do not create dstat symlink when non-python build requested
	build: add perl-High-Res rpm dependency for pcp-pmda-postfix
	build: update deb packaging to allow for python3-only builds
	build: resolve several rpm spec differences that have crept in
	build: fix chan lib dependency of pcp-pmda-statsd rpm
	build: fix hostname dependency of pcp rpm
    - Security Enhanced Linux:
	pmdaunbound: add selinux policy for unbound PMDA metrics
	pmdanetcheck: resolve failure on latest f31
	pmdabpftrace: resolve failure on latest f31
	pmdabcc: fix AVC error when running /var/lib/pcp/pmdas/bcc/Install
	pmie: add fsetid to pmie start script policy as done for pmlogger
    - Documentation and QA infrastructure:
	CI: initial new version using custom Azure Pipelines agents and Ansible
	CI: simplified architecture, added pipeline definitions
	CI: create JUnit test results file for Azure Pipelines
	CI: run platform builds and tests in parallel
	docs: Added to pmseries(1) man page
	docs: Added Redis setup notes to the quickstart guide
	docs: Complete coverage in man pages of long options in PCP utilities.
	docs: Numerous man page consistency fixes
	docs: details for pmSeriesSetup(3) and related async APIs
	docs: details for pmDiscoverSetup(3) and related async APIs
	docs: details for pmSeriesQuery(3) and related time series APIs
	docs: details for pmSeriesDescs(3) and other time series metadata APIs

pcp-5.0.1 (4 November 2019)
    - Server-side utilities and log management scripts:
	pmproxy: fix bad memory accesses reported by valgrind
	pmproxy: guard libuv socket close to prevent double-close failure
	pmproxy: ensure client data structures are freed only on last use
	pmproxy: remove linefeeds at the end of JSON responses
	pmproxy: ensure correct persistent connection streaming state
	pmproxy: ensure uv_write happens from main thread
	pmproxy: refresh indom if instance doesn't exist in the cached indom
	pmproxy: always refresh indom for /indom API requests
	pmproxy: improve robustness parsing URL with unusual params
    - PMDA additions, enhancements and bug fixes:
	pmdalinux: fix segfault in interrupts code with large CPU counts
	pmdalmsensors: fix issue when sensors(1) writes on stderr
	pmdanetcheck: netcheck.conf and man page consistency tweaks
	pmdaperfevent: add cpunumber option for dynamic perf events
	pmdaperfevent: support hv_24x7 nest events on multinode system
	pmdaproc: retain cgroup paths and only un-escape instance names
	pmdaroot: improve handling of cached/inactive cgroup behaviour
	pmdaroot: refresh container indom on cgroup fs change as well
    - Client tools and utilities:
	pcp-atopsar: fix mishandling of some command line arguments
	pcp-dstat: handle piping properly
	pcp-dstat: handle missing archive with --version
	pcp-dstat: remove extraneous eol in archive invocations
	pmlogconf: resolve incorrect quoting in awk scripts
	selinux: tweak policy to allow pmie to call setrlimit
	zshrc: fix typo in pmseries(1) completions
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: check pmInResult->namelist for NULL before accessing first element
	libpcp: suppress pduread EINTR warnings for interactive tools
    - Misc build, infrastructure and packaging updates:
	rpm build: replace pmcd-pmlogger-local-context.patch with code
	rpm build: drop dep on initscripts when systemd in use
	rpm build: drop testsuite rpm spec dependency on libuv-devel
	build: fix --without-perl builds to not need ExtUtils::MakeMaker
	ragel: fix statsd PMDA ragel invocation with latest versions
	bison: pure parser changes for libpcp and libpcp_web yacc code
	pylint: ignore order of imports
    - Documentation and QA infrastructure:
	pmrep/pcp2xxx man pages: clarify ranking/sorting a bit
	man pages: several more long-option updates for man pages
	selinux README: add a note about dontaudit AVCs and non-AVCs
	QA and build updates for FreeBSD 10.x, 11.x and 12.x
	QA updates for OpenSUSE Leap 15.0
	QA updates for LinuxMint 17.x
	QA updates for OpenBSD 6.x
	QA updates for Centos 6

pcp-5.0.0 (11 October 2019)
    - Client tools and utilities:
	pmseries: provide support for the delta keyword, better timestamps
	atop: fix coverity CID 349453 Logically dead code
	pcp2graphite: fix string/unicode encoding error
	zsh completion: write <mark> records like elsewhere
	bash/zsh completions: update to match recent tool updates
	pcp: add local context and namespace long options also
	pmlogconf: add statsd metrics configuration file
    - PMDA additions, enhancements and bug fixes:
	pmdabpftrace: fedora.spec, manpage, pylint fixes for rawhide
	pmdabpftrace: authentication with unix sockets
	pmdabpftrace: fix auto script deregistration, ustack/kstack in eBPF maps
	pmdabpftrace: deregistration of multiple scripts at once
	pmdabpftrace: fix PMDA shutdown, QA updates
	pmdabpftrace: bpftrace data object in register and scripts_json metrics
	pmdabpftrace: remove bpftrace version from config obj
	pmdabpftrace: catch exceptions while reading bpftrace output
	pmdabpftrace: parse bpftrace output in daemon process, authentication
	pmdabpftrace: read stdout in a separate thread
	pmdabpftrace: bpftrace version conditionals, QA for error states
	pmdabpftrace: don't use cached instances
	pmdabpftrace: export tracepoints as CSV metric
	pmdabpftrace: table-retain-lines metadata, qa: run python unittests
	pmdabpftrace: include required bpftrace version in error msg
	pmdabpftrace: use non-cached indoms, use enum for bpftrace state
	pmdabpftrace: add bpftrace.info.tracepoints metric
	pmdabpftrace: fix label callback, and JSON handling in PMDA install
	pmdabpftrace: add exit_code to bpftrace.control.register response
	pmdabpftrace: export metric type (e.g. histogram) as label
	pmdabpftrace: new 'include' metadata: specify bpf maps to export as metrics
	pmdabpftrace: add support for printf() statements
	pmdabpftrace: read script_expiry_time from config file
	pmdabpftrace: unregister scripts not requested in the last X seconds
	pmdabpftrace: use per-context state for register/deregister/start/stop
	pmdabpftrace: delayed state transition for starting
	pmdabpftrace: read one JSON object per line
	pmdabpftrace: metadata facility, allow custom names for scripts
	pmdabpftrace: improved state handling, start/stop of scripts
	pmdabpftrace: use json output, refactor state mgmt
	pmdabpftrace: separate metric per bpftrace variable
	pmdabpftrace: read stdin from bpftrace, bpftrace.control metrics
	pmdabpftrace: new PMDA, initial commit
	pmdapostgresql: use sys.exit() instead of exit()
	pmdalinux: match up instname rather than instid in refresh_sysfs_online
	pmdalinux: use cpu instname, not instid for per-cpu numa stats
	pmdalinux: correctly handle sparse / discontiguous numa nodes
	pmdaproc: un-escape cgroup metrics for pmproxy chunked encoding
	pmdaproc: further refine cgroup_scan
	pmdaproc: avoid excessive stat calls in cgroups_scan
	pmdaproc: support ping from iputils
	pmdaopenmetrics: add support for instname labels + QA
	pmdaopenmetrics: rename prometheus agent to openmetrics
	pmdaprometheus: tolerate space after comma in label name format
	pmdaprometheus: pylint updates and make check target
	pmdanetcheck: avoid premature optimization
	pmdanetcheck: new PMDA to do simple network checks
	pmdamssql: rename config file for consistency
	pmdamssql: new PMDA for Microsoft SQL Server implementation
	pmdalmsensors: use sys.exit instead of exit
	pmdalmsensors: fix debug option handling, pylint, bug fixes
	pmdalmsensors: initial rework to use json output instead of raw txt
	pmdastatsd: updated units for duration metrics
	pmdastatsd: added support for scientific notation for in StatsD payloads
	pmdastatsd: reduced waste of CPU cycles, update control protocols
    - Server-side utilities and log management scripts:
	pmproxy: support authentication parameters
	pmproxy: for PCP v5 ensure distinct openmetrics metadata
	pmproxy: fix pmproxy build when openssl found but no libuv
	pmproxy: openmetrics instance names do not want unicode quoting
	pmproxy, libpcp_web: plug several memory leaks reported by valgrind tests
	pmproxy: refine the openmetrics output format after review from Mark
	pmproxy: enable time series mode by default
	pmproxy: resolve memory leaks around REST API baton lifecycles
	pmproxy: resolve memory leaks during redis async context disconnect
	pmproxy: resolve memory leaks during http error handling in pmproxy
	pmproxy: resolve memory leaks during shutdown of pmproxy service
	pmlogrewrite: plug major memory leak
	build: retire deprecated pmwebd, superceded by pmproxy PMWEBAPI(3)
	pmcd: add missing long forms for some cert/auth options
	logutil: add 120s timeout in all systemd service configs
	logutil: pmlogger_check.service is not required by pmlogger.service
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp_web: harden null string value handling in webgroup fetches
	libpcp_web: simplify pmseries delta calculations, corner cases
	libpcp_web: fix numerous memory leaks
	libpcp_web: fix libuv build conditionals, handle older versions of libuv
	libpcp_web, pmproxy: fix license headers (should be LGPL)
	libpcp_web: implement PMAPI context re-connection logic
	libpcp_web: do not escape null terminators on string metrics
	perl: ensure context setup for PMDA store as with python wrapper
	python: fix uncached instances with empty list
	python: refresh indom buffers if need_refresh flag is set in cb
	python api: export pmdaGetContext(), add debugging wrapper
	python pmdas: export pmID_cluster function
	python pmdas: set_comm_flags method to set communication flags
	python pmdas: enable authentication support
	libpcp_pmda: correctly set context in store callback
	libpcp,libpcp_pmda: fortify pmdaCache against NULL instance names
	libpcp: update getdate.y for pure parser
	libpcp: fix multi-archive replay err handling for corrupted archive(s)
	libpcp: fix cockpit-pcp segv with local context
    - Misc build, infrastructure and packaging updates:
	build: ensure new derived metrics end up in the right package
	build: remove python bcc dep from bpftrace, add bpfcc to debian unstable, 
	build: include pmdabpftrace by default if dependencies are installed
	selinux: adjust rules for pmda.netcheck
	selinux: fix icmp_socket detection, allow optional
	selinux: add runtime rpm dep on selinux-policy-targeted
	selinux: build fix for platforms without map for class file
	selinux: add policy rules for pmdanetcheck
	ci: add support for Fedora 31
    - Documentation and QA infrastructure:
	qa: add pmproxy_load_test to installed testsuite files
	qa: custom config for bpftrace to trigger limits on slow machines
	qa: resolve memory leaks from libuv work data structure
	qa: use correct string when comparing field value for access control
	qa: update awk scripts of bcc and bpftrace PMDA QAs for Fedora 31
	qa: resolve memory leaks during pcp protocol proxying
	qa: resolve memory leaks during http client disconnect
	qa: tweak test 1695 to ensure pmproxy services used are enabled
	qa: correct the generic check for a not-running Redis instance
	qa: add bpftrace pmda and pmns to the common filters
	man pages: several more long-option updates for man pages
	qa: update pmseries test to exercise numeric timestamps
	qa: update pmchart tests to handle DISPLAY access issues
	qa: update test 042 to better handle podman containers
	qa: add statsd tests
	build: drop some boost dep references, causing CI issues
	qa: ensure bpftrace tests unaffected by previous indom caching
	build: drop checking for libuv fs_event APIs, no longer needed nor used
	build: drop old config file transition code from rpm specs
	misc: add qa/linux/mkfakesys.sh script
	build: update deb packaging rules on libpcp-dev for man page transition
	build: when calling 'python' prefer a 2/3-versioned binary if available
	build: fix deb packaging around removing obsolete webapi package
	qa/group: mark pmwebd tests as retired
	docs: new pcpcompat(1) man page
	qa: updated expected selinux output for gpmctl Policy
	build: set minimum libuv level to 1.0 for API baseline
	qa: update makefiles to ensure new archives installed
	qa: add to the pmproxy log filter for additional diagnostic messages
	build: python-jsonpointer is orphaned in Fedora so drop pmdajson there
	qa: make avahi test cases more reliable
	build: fix pmproxy build with libuv present but without openssl
	man pages: several more long-option updates for man pages
	build: relax the libuv and libssl version requirements
	qa: remove bcc from debian testing build (bpfcc was removed)
	docs: big overhaul of man pages for consistency, long-options
	qa: add statsd and mssql to common agent/pmns filtering
	qa/common.check: improve defunct process checking in _wait_pmlogger_end()
	azure pipelines: move to build/ci, add separate pipeline for fedora rawhide
	qa: exercise profile juggling for multi-thread and local contexts
	qa: fix junit generation script for azure pipelines
	qa: update statsd PMDA tests filters
	build: update scripts and vagrantfile for new platforms

pcp-4.3.4 (16 August 2019)
    - Client tools and utilities:
	pmchart: fix chart auto-scaling under fetch error conditions
	pmseries: fix label reporting state bug with multiple series
	pcp-atop: fix write mode (-w) handling of proc vs hotproc metrics
	pcp-atop: resolve intermittent qa/1080 valgrind failure
    - PMDA additions, enhancements and bug fixes:
	pmdalinux: fix hugepage metric value calculations
	pmdalinux: fetch more network metrics in --container namespace
	pmdaproc: fix memory leak in pidlist refresh
	pmdaproc: remove legacy /proc/ksyms and System.map readers
    - Server-side utilities and log management scripts:
	pmproxy: complete REST API pmStore support
	pmproxy: complete the secure TLS connection support
	pmproxy: add indom profile support to the async API
	pmproxy: /pmapi/children REST API for pmGetChildrenStatus(3)
	pmproxy: fix a double-free memory corruption
	pmproxy: do not report indom for metric if null
	pmproxy: indom help text API support, other small compat tweaks
	pmlogextract: add -x option for more resilient merging
	logutil: fix broken pipe errors from utilproc.sh _is_archive()
	logutil: fix pmlogger and pmlogger_daily systemd services
	pmiectl: reflect changes to pmlogger start process in that of pmie
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp_pmda: close help files after mmap'ing contents
	libpcp_web: fix memory corruption on fetch code path
	libpcp_web: fix memory corruption during metric scrape
	libpcp_web: add support for metric help text extraction
	libpcp_web: fix discovery segfaults deleting monitored paths
	libpcp_web: fix valgrind bad memory accesses for aggregate metrics
	libpcp_web: make the dictDelete function available
    - Misc build, infrastructure and packaging updates:
	configure.ac: changes for OpenSSL on OpenSUSE
	build: rework libpcp_web exports file exposed-symbols
	build: fix warnings from Qwt code with recent compilers
	build: ensure Qt qIsNaN macro available where its needed
	build: assorted strncpy() changes for gcc 8 warnings
	build: pylint work for missing parts of the pcp modules
    - Documentation and QA infrastructure:
	docs: add a deprecation note for pcp-collectl in its man page
	docs: add a deprecation note for pmwebd in its man page
	BCC QA: Detect BPF compilation failures early
	azure CI: fail on first error when building PCP
	CI: change cppcheck --std=posix (deprecated) to --library=posix
	CI: cppcheck: temporary suppress objectIndex error in siphash.c
	build: fix some small make check failures on f30 and rawhide
	docs: fix new NFS client per-op error count help text typo
	docs: correct pattern match parameter name in series REST API
	qa/README: add notes for ssh access to pcpqa login with selinux
	README.github: document the github workflow

pcp-4.3.3 (28 June 2019)
    - Client tools and utilities:
	pcp-dstat: prevent comma-only lines from being added to csv output
	pcp-dstat: refactor time printing code for csv output
	pcp-dstat: fix misaligned headers in CSV output
	pcp-dstat: ensure duplicate columns collapse to just one
	pcp-dstat: fix handling of --bits command line option
	pcp-dstat: fix typo in printtype detection
	pcp-free: Adding support for -r/ --terabytes flag.
	pmchart: fix handling of -z timezone option with no source
	pmrep: fix wait.formula for collectl-dm-sD and collectl-sD
	pmproxy: consolidate the pmseries/grafana REST API
	pmproxy: removed Grafana code to prepare for new API
	pmseries: add a value retrieval API by series identifier
	pmproxy: add new, async PMWEBAPI(3) REST API implementation
	pmproxy: small improvements to messages logged at startup
	pmproxy: initial secure socket connection code for pmproxy
	pmproxy: fix memory leaks picked up by coverity scanning
	shell completions: add support for new -m option to pmlogcheck
    - PMDA additions, enhancements and bug fixes:
	pmdabcc: fix tracepoints module for bcc 0.10.0 and later
	pmdanfsclient: add per-op, per-mount rpc errors metrics
	pmdalmsensors: improvements in name parsing and error handling
	pmdalinux: add active and total slabs to slabinfo v2 parsing
	pmdalinux: fix several unix socket and icmp6 metrics
	pmdabcc: fix install (due to README rename)
	nfsclient PMDA: fix some 32 -> U32 metadata types
	pmdalinux: code re-factoring to reduce coverity scan noise
    - Server-side utilities and log management scripts:
	pmie_check: add systemctl pmie service dependency
	logutil: add -m option to pmlogcheck to skip log volume checking
	logutil: change pmlogger_daily_report to be an opt-in service
	pmlogrewrite: fix compiler warnings, other small changes
    - Security Enhanced Linux:
	selinux: Fedora 29 changes for libvirt PMDA and pmmgr
	selinux: remove old rules that have been superceded
	selinux: conditionally re-introduce files_mmap_all_files() in policy
	selinux: more unconfined_service_t (conditional) changes
	src/selinux: more tweaking for unconfined_service_t (conditional)
	configure.ac: more selinux changes
	selinux/build: replace files_mmap_all_files() with explicit policy rule
	configure.ac: fix bpf conditional test for selinux
	selinux: Add pcp_domain level read access to maps
	src/selinux/pcpupstream.te.in: changes from QA on vm26 (Fedora 27)
	src/selinux/README: explain @FOO@ meta-syntax elements
	selinux: allow a pmlogger_check.log file unlink/rename
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp_web: resolve memory leak in map handling, from coverity scan
	libpcp: prepare for the new async pmwebapi(3) implementation
	python: fix pmcc time window handling
	libpcp_web: add some pmDebug diags to discovery
	python api: add explicit Py_None test on callback results
	libpcp_web: update a couple of snprintf calls to pmsprintf
	libpcp_web: update Redis client code with TLS/SSL support
	libpcp: rework labels code to correct handle maps
	libpcp_pmda: change semantics for empty indom cache file
    - Misc build, infrastructure and packaging updates:
	build: update openssl package checks in configure.ac
	build: pmproxy.conf should be config(noreplace)
	debian build: couple of packaging changes
	Debian builds and libssl et al
	build: update gitignore file to skip over a header symlink
	build: add libuv-devel dep for pcp-testsuite building sources
	configure.ac: need some more care with cleanup in selinux land
	build: add provisioning/release.sh script for vagrantfiles
	build: drop -y for bison
	build: bump version numbers for next planned release
	build: ensure new systemd timer configs are packaged
	build: correct install locations of pmproxy configs
	build: update fedora rpm changelog with another bz
	build: remove selinux-policy-updates.patch from fedora.spec
	build/qa: add new deps to dockerfiles, 
	build: rename libopenssl-dev to libssl-dev in debian/control.main
    - Documentation and QA infrastructure:
	qa, pmproxy: fixes to derived metrics registration
	qa: add minimal valgrind 3.15.0 suppressions (f30+)
	qa: improve filtering of new service discovery names
	docs: use same preamble for all api man pages
	docs: Mention pcp archive support in sysstat 12.0.5 in sar2pcp manpage
	qa: start simple test to trigger test setup in build phase
	qa: include test durations
	qa/admin/check-vm et al: changes for OpenSUSE Leap 15.0
	qa: improve test report generation
	qa: use travis only for coverity scan
	qa: increase min kernel version for ucalls test 1173
	qa: update slabinfo verification test to check PMDA changes
	qa: replace travis with Azure Pipelines
	qa: update tests for correct unix socket and icmp6 values
	qa: additional filtering for latest valgrind versions
	qa: fix incorrect (always null) diagnostic in derived.c
	qa: many: purge explicit $seq.notrun uses and replace by _notrun()
	qa/common.check: add $here prefix to $seq.pre-avc for rm in _notrun()
	qa/admin/pcp-daily: conditionally run freespace
	docs: all OSX instructions are in INSTALL.md now
	docs: Tweak copyright years

pcp-4.3.2 (26 April 2019)
    - Client tools and utilities:
	pcp-dstat: fix invisible gray coloring ansi escape code
	pcp-dstat: GH#624 handle the end-of-archive condition correctly
	pcp-pidstat: drop unused -h/--host option
	pcp-atopsar: RHBZ1673996 fix -A for replying from archive
	pcp-atopsar: improve handling of mark records and log end
	pcp2spark: minor output tweak
	pcp2zabbix: send first metrics without waiting
	pcp2template: aid to creating new pcp2xxx tools
	pmlogrewite: diagnostic changes to use new flags
	pmrep: tweak output in case of no values available with -X
	pmrep: introduce fixed header (-7, --fixed-header option)
	pmrep/pcp2xxx: more helpful error message when pmcd not running
	pmsnap: fix leak of Xvfb processes
	pmgadgets pmgsys.py: make this work with Python2 and Python3
	pmgadgets: fixes so it builds again with Qt5
	pmview: set correct default time if no -t on command line
    - PMDA additions, enhancements and bug fixes:
	pmdalinux: fixes to parsing of /proc/zoneinfo
	pmdalinux: fix two metrics with no values on some kernel versions
	pmdalinux: updates to SYSV IPC metrics
	pmdaproc: fix Linux cgroup *service_bytes.* metric metadata
	pmdabcc: uprobe_hits: fix use of wrong variable
	pmdabcc: make cachestat module currently working with ext4 only
	pmdabcc: add kprobe hit count BPF/Python module
	pmdabcc: keep uprobes_hits logging consistent with other hit modules
	several pmdas: remove PM_ERR_AGAIN uses, correct PMDA_FETCH_* macros
	txmon: update from PMDA_INTERFACE_2 to PMDA_INTERFACE_7
	pmdaperfevent: deprecate pmdapapi, upgrade to perfevent
	pmdanvidia: fix up indom help text macro name typo
	pmdazimbra: major overhaul
    - Server-side utilities and log management scripts:
	systemd: fix Environment parameter usage
	pmdaroot: ensure zombie PMDA processes are reaped
	pmproxy: initial pmseries and grafana datasource REST APIs
	pmproxy, libpcp_web: support for pmproxy configuration file
	pmcd: RHBZ1641161 add support for PMDA suspend and resume (fencing)
	pmlogger_daily.sh: try harder in the presence of errors
	pmwebd: fix a broken diagnostic causing crashes
    - Security Enhanced Linux:
	RHBZ1693332 update BPF permissions for pmdabcc
	fix some fallout from the systemd timer transition
	allow pcp_pmcd_t module_request access from class system
	allow the nvidia pmda to dlopen libnvidia-ml
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	perl PMDA.pm: expose PMDA_FETCH_* macros
	pmapi.h: add appl3, appl4 and appl5 debug flags
	libpcp_web: refactoring and support for Redis cluster protocol
    - Misc build, infrastructure and packaging updates:
	builddefs: rework qmake recipe
	replace libdbd-pg-perl Debian dep with python3-psycopg2
	add python-devel (v2) explicitly for el7 vagrants
	update generated rpm spec to drop 'Group' keyword
	vagrant: various fixes, improvements to provisioning scripts
	configure: set pcp_rc_dir correctly for FreeBSD
	configure: allow --with-qt=DIR to specify QT installation dir
    - Documentation and QA infrastructure:
	qa: adjust for Python 3 only systems
	qa: massive change to remove init script chatter
	qa/check et al: rework callback workflow
	qa/common.check: change to using systemctl if available
	qa/check.callback captures the before+after state of pmcd and pmlogger
	qa/check.callback captures any new selinux AVC denials from each test
	INSTALL.md: update and clarify a few things

pcp-4.3.1 (27 February 2019)
    - Client tools and utilities:
	pcp-dstat: improve --time option handling with no other arguments
	pcp-dstat: handle complete instance removal with --full mode
	pcp-atop: update to v2.4.0 atoptool.nl sources
	. reporting pressure stall information
	. reporting infiniband statistics
	. reporting perf_event statistics
	. reporting nvidia GPU stats 
	pmseries: error handling improvements when parsing fails
	pmseries: ensure commas separate labels in metadata reporting
	pmseries: improve user friendliness of option handling
	pmseries: shell completions added
	pmseries: install a pmseries.conf
	pmseries: globbing support on global name lookups too
	pmrep: add support for sorting -X output by values
	pmrep: fix a dynamic header corner case with missing values
	pmlogger: add systemd timers as cron alternative
	pmie: add systemd timers as cron alternative
	pmie: re-implement #'instancename' indom lookup
	pmie: fix for segv and bad sum_inst() use
	pmview: fix a missing timeout slot connection
	pmview: add in the step() signal/slot connections
    - PMDA additions, enhancements and bug fixes:
	linux: add support for pressure-stall information metrics
	openbsd: remove remaining /dev/kmem reading
	openbsd: fixes for 32 bit kernels
	openbsd: add kernel.all.uptime
	openbsd: fix cpu time metrics - SMP and CP_SPIN support
	netbsd: fixes for 32 bit kernels
	netbsd: add kernel.all.uptime
	bcc: handle gone processes in ustat module
	bcc: adjust biolatency module tracepoints
	dm: new VDO device metrics
	dm: fix mishandling of missing VDO kernel stats
	nvidia: add support for per-process nvidia metrics
	pmproxy: extend MMV to support new pmproxy metrics
    - Server-side utilities and log management scripts:
	pmcd: allow use of an optional pmcd.conf.access file
	rc_pmcd: optional PMDA ./Upgrade to resolve upgrade issues
	pmproxy: fix shutdown issues in --timeseries mode
	pmlogger_check: make pmlogconf check optional
	pmlogconf: add per-CPU interrupts metrics to the zeroconf set
	pmlogconf: additional /proc/vmstat metrics to default set
	pmwebd: tweak y-axis labels in png output
	pmwebd: fix an open file descriptor leak
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	libpcp: fix compilation for --with-threads=no configure
	libpcp: exclude indom instances level labels in result from pmLookupLabels
	libpcp: the big libpcp lock is no longer recursive
	libpcp: refactor registered.mutex use
	libpcp_web: add .ini configuration file parsing
	python pmapi: add __str__ handler for class pmLabelSet
	python api: Rename pmconfig.py helper function - get_sorted_results()
    - Misc build, infrastructure and packaging updates:
	python: fix Python installations flags for DIST_ROOT=
	Revert "pmlogger_daily: use whole day granularity for PCP_COMPRESSAFTER"
	Wider use of automated builds through Vagrant for QA and releases
	build: add -I paths for cppcheck, fix travis-ci checking
	build: add conditional BuildRequires libuv-devel in fedora.spec`
	travis-ci: tweak service timeouts
	pmns: don't package .NeedRebuild for SUSE distros
	pmns/Rebuild: add warning (with -v) for skipped root_foo file
	Qt: correctly insert compiler flags, release vs debug build fixups
	configure, Makepkgs, et al: move Qt version detection into configure
    - Security Enhanced Linux:
	Update shm,sem permissions for userdomains
	Reduce size of policy package (now that we have overarching rules)
    - Documentation and QA infrastructure:
	qa/admin/check-vm: refactoring and customization for all platforms
	qa/common.check: improvements for pmlogger and pmie tests
	build: add fedora/rhel testsuite dep on redhat-rpm-config
	docs: update pmLookupLabels(3) and pmseries(1)
	qa: pervasive NetBSD, OpenBSD and OpenIndiana changes

pcp-4.3.0 (21 December 2018)
    - Client tools and utilities:
	- Add pmseries(1) for fast, scalable time series querying (experimental)
	- pmrep, pcp2xxx: add support for the --names-change option
	- pmrep, pcp2xxx: support for the --ignore-unknown metrics option
	- Implement the dstat --full option to expand instances
	- Add an 'entropy' dstat plugin configuration file
	- pcp2elasticsearch: support for es_search_type config flag
	- pcp2elasticsearch: reduce logging in server down scenarios
	- pcp-atop: fix an incorrect use of varargs vfprintf interface
	- pmlogextract: numerous scalability improvements
	- pmchart: fix sigsegv on non-existant archive via command line
    - PMDA additions, enhancements and bug fixes:
	- FreeBSD: add kernel.all.uptime, mem.freemem metrics
	- FreeBSD: fix 32 vs 64 bit types on memory and CPU metrics
	- FreeBSD: fix units on some disk (bytes) metrics
	- FreeBSD: fix CPU count logic error affecting per-CPU metrics
	- perfevent: add hv_24x7 perf events
	- perfevent: add support for raw perf events
	- pmdapostgresql: add optional 'osuser' to configuration
    - Log rotation, management scripts, compression and server-side utilities:
	- zeroconf: change logging frequency for proc metrics to 30 seconds
	- rc scripts: improve systemd interaction for local pmie
	- pmlogger_daily: whole day granularity for PCP_COMPRESSAFTER config
	- pmlogger_check: resolve a 'cat: broken pipe' warning message
	- pmlogrewrite config files for FreeBSD metadata changes
	- pmproxy: auto-loading of historical timeseries from discovery
	- pmproxy: add --timeseries option to switch libpcp/uv versions
	- pmwebd: tolerate live archives with multi-hour-old volumes
    - Misc build, infrastructure and packaging updates:
	- Fixed RHEL-5 build packaging for nfsclient and lmsensors PMDAs
	- Enable dstat -> pcp-dstat binary symlink on more platforms now
	- Drop the elasticsearch python[23]-urllib3 spec file dependency
	- Changes for Mac OS X HomeBrew build and packaging
	- Support for Mac OS X Mojave latest release
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	- libpcp: instance filtering for derived metrics
	- libpcp: add scalar() for derived metrics
	- libpcp: fix process existence checks on FreeBSD
	- libpcp: be more defensive in pmMergeLabelSets
	- libpcp: add an integrity check in __pmMergeLabelSets
	- python pmapi: fix a crash in labels wrapper functions
	- python pmapi: fix a crash in fetchgroup clearing function
	- python pmapi: rework labels lookup, merge and free functions
	- python pmconfig: fix logic error in get_sorted_results function
	- python logimport: fix wrong variable usage in pmiPutLabel
    - Security Enhanced Linux:
	- Generic policy rules to allow pcp_pmcd process to read system objects
	- Fix the build on older selinux versions (RHEL6 era)
    - Documentation and QA infrastructure:
	- logimport(3): new pmiPutLabel(3) API function for adding labels
	- docs: improve formatting for Vector containers screenshot
	- docs: tweaks for pcp-dstat.1 to use same conventions as pmrep.1
	- docs: correct typo in INSTALL notes for MacOSX
	- docs: fix formatting in mmv(5) labels section, add more detail
	- docs: add python synopsis and examples in pmMergeLabels(3)
	- docs: add python synopsis in pmLookupLabels(3)
	- qa/README.vm: instructions for setting up VMs for QA
	- qa: add kernel group for base OS PMDA testing
	- qa: add sample.controller.mirage to sample PMDA
	- qa: numerous Vagrantfile updates and improvements
	- qa: add helper tool for reporting internal/external sha IDs
	- qa/admin/check-vm: Mac OS X changes
	- qa/admin/check-vm et al: refactor for Vagrant

pcp-4.2.0 (16 November 2018)
    - Client tools and utilities:
	- pcp-dstat: fix cursor offsetting in unusual terminal states
	- pcp-dstat: additional exception handling for I/O error on exit
	- pcp-iostat: remove variable named 'await', now a keyword
	- pmchart: ensure only one system activities menu item is presented
	- pmchart: fix incorrect use of std::vector::resize() for single stepping
	- pmie: fix small error in expression tree binding
	- pmie: fix instance info propogation when metrics become available
	- pmie: fix rare corner case logic errors
	- pmrep, pcp2{json,xml}: properly handle broken pipe
    - PMDA additions, enhancements and bug fixes:
	- pmdapodman (new): export podman container and pod state and statistics
	- pmdaroot, pmdaproc: add support for 'podman' containers
	- pmdapostgresql: fix regression in config parser
	- pmdapostgresql: add port number to config options
	- pmdapostgresql: tone down the missing table and column warnings
	- pmdabcc: add ucalls/ustat Tcl support
	- pmdalmsensors: re-implement in python, update
	- pmdadocker: fix a missed lock release issue coverity reported
	- pmdaelasticsearch: Change perl implementation to python
	- pmdaelasticsearch: enable user selection from conf file
	- pmdanetbsd: add hinv.machine
	- pmdaopenbsd: fixups for OpenBSD 6.4
	- pmdasample: add sample.ghosts.* metrics
    - Log rotation, management scripts, compression and server-side utilities:
	- pmlogger_daily: change workflow to cull early and reliably compress
	- pmcd_wait: default to using unix domain sockets if supported
	- pmlogrewrite: Bug: Too many labelsets deleted.
	- pmlogrewrite: Allow instance names to be used to specify instances labels.
	- pmlogrewrite: Remove support for "ALL" as a text record type.
	- pmlogrewrite: escape characters in the content string for text records.
	- pmlogrewrite: Help Text: Support filtering by content.
	- pmlogrewrite: Help Text: Additional text type allowed.
	- pmlogrewrite: fix error handling when duplicate output files found
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	- pmdaproc.sh: change a few warnings to use $prog instead of Install
	- libpcp: fix buffer length error in pmAtomStr_r(3)
	- python api: propagate pmFetch(3) result for fetchgroup users
    - Security Enhanced Linux:
	- selinux: update container policy for pmdaroot/podman
	- selinux: fix bpf related build issue
	- selinux: RHBZ1626487 unix_read on gpsd_t:shm
	- selinux: RHBZ1633211 bpf class & inheritence issues
	- selinux: RHBZ1634205 add pmlogger/cache_home context dir:search
	- selinux: RHBZ1635394 fix configure glue to trigger existing rule inclusion
	- selinux: RHBZ1535522 add pmcd/cache_home context dir:search
    - Misc build, infrastructure and packaging updates:
	- build: Fix FreeBSD Qt builds
	- build: fix a number of Debian packaging issues
	- build: pcp-gui debian packaging made to be conditional
	- build: rpm spec and manifest updates for pmdadm dmstats
	- build: deprecate pcp-collector and pcp-monitor RPM packages
	- build: add option for python bcc packages from iovisor repos
	- build: add --check option to Makepkgs script for static checks
	- build: corrections to dstat package replacement in rpm spec
    - Documentation and QA infrastructure:
	- docs: pcp2spark doc and example code tweaks
	- docs: update pmdadm(1) man page
	- docs: update LOGIMPORT(3) man page to mention python wrapper
	- docs: dbpmda(1) - correct default for -q ... it is 3 not 5
	- docs: updates the containers tutorial for 'podman'

pcp-4.1.3 (21 September 2018)
    - Client tools and utilities:
	- pcp-dstat: add CSV output support for pcp-dstat
	- pcp-dstat: improved handling of no-values-available scenarios
	- docs: add an example of remote host monitoring in pcp-dstat(1)
	- pmlogrewrite: Initial support for creating new label records.
	- pmlogrewrite: Operate on labels for individual instances and labels.
	- pmlogrewrite: Support changing label names and values.
	- pmrep: enable proc net metricset in default pmrep.conf
	- pmrep: properly omit unit info with separate header when requested
	- pmrep: add compact "top-3 cpu users" example in pmrep.1
	- pcp2zabbix: read zabbix_port from conf file properly
	- docs Improve pcp2spark man page, add readme and examples
	- pcp2spark: add bash/zsh completions
    - PMDA additions, enhancements and bug fixes:
	- provide trivial-pmda perl and python versions as well
	- pmdakvm: fix checks for running without perf_event support
	- pmdaperfevent: return correct CPU numbers in lower SMT levels
	- pmdapostgresql: support postgresql v10, implement reconnection
	- pmdapostgresql: completely reimplemented in python
	- pmdapostgresql: intialize pmdaCache files to be group writeable
	- docs: update pmdapostgresql(1) man page
	- pmdaredis: handle Redis v5 memory stats changes
	- pmdabcc: add support for dynamic process filtering
	- pmdabcc: tcpretrans: use TGID not kernel PID as user-space PID
	- pmdabcc: add module to trace per-proc per-syscall stats
	- pmdabcc: add ucalls module for tracing app method calls
	- pmdabcc: use module name as cluster label
	- pmdabcc: return error from store callback by default
	- pmdabcc: add detailed per-pid per-syscall support for syscount
	- pmdabcc: add high-resolution pid tracking alternative to tcpperpid
	- pmdabcc: add latency support for syscount module
	- pmdabcc: add process filtering support for fs dist modules
	- pmdabcc: try to use BPF to capture parent PID in execsnoop
	- pmdabcc: allow modules to bypass pmdaCache
	- pmdabcc: update TCP modules for dynamic process filtering
	- pmdabcc: add cachestat module
	- pmdabcc: use two-step cache invalidation in bioperpid
	- pmdabcc: support call latency reporting in ucalls module
	- pmdabcc: exit poller thread if BPF is cleaned up
	- pmdabcc: omit residual IO attributed to PID 0 by default
	- pmdabcc: rework tcpperpid caching to report total transfer stats
	- pmdabcc: add ustat module based on BCC ustat
	- docs: minor pmdabcc.1 man page and bcc.conf updates
	- pmdaprometheus: fix exception in store callback
	- pmdaprometheus: instance labels were incorrectly returned as metric labels
    - Log rotation, management scripts, compression and server-side utilities:
	- pmlogger_check: run periodic compression when exiting early
	- pmlogger_rewrite: cleanup temporary /var/tmp/<pid>.ok files
	- daily/check scripts: consistently set log file ownership
    - libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
	- add new default derived metrics for processes 'hogging' cpu/mem/disk
	- use rescale() in iostat derived metrics for disk.dev.*_bytes units
	  differences across platforms
	- further improvements to large indom handling performance
	- conversion to asynchronous I/O for scalable time-series
	- python PMDA API: python bindings for pmid_build() and indom_build()
	- add checking of label names and values in libpcp_mmv
	- improve libpcp_mmv memory allocation for labels, add QA
    - Security Enhanced Linux:
	- added several new rules and QA
	- resolved AVCs in pmproxy and pmie
	- updates for postgresql AVC denials
    - Misc build, infrastructure and packaging updates:
	- drop $pmda_interface on Install
	- pmdaproc.sh: remove pmda_interface references throughout
	- pmns/Rebuild: conditionally omit some root_foo PMNS files
	- add an appropriate libuv version check to configure
	- 'make check' support with cppcheck and pylint
	- disable python2 for fedora30 onward
	- fix warnings identified by coverity, and compilation warnings
	- correct the SLURM package descriptions
	- make perl-LDAP a soft dependency on some platforms
	- spec file fixes for nfsclient and postgresql PMDAs
	- install-sh fix for *BSD strangeness
	- configure.ac checking for pcp2influxdb packaging
	- do not attempt symlink creation on Windows
	- windows: fix a pmcd crash, a client-side issue and update services
	- scripts: create tmpfiles below PCP_DIR for windows
	- docs: additional detail on Windows build instructions
    - Web applications
	- new versions of Vector and BlinkenLights webapps 

pcp-4.1.2 (4 August 2018)
    - Debian-specific-build release

pcp-4.1.1 (3 August 2018)
    - Log rotation, management scripts, compression and server-side utilities:
	- pmlogconf: add some GFS2 metrics for automated pmlogconf setups
	- pmlogger: output write re-ordering to aid log tailing
	- pmlogger_daily: add -R (and .NeedRewrite) support
	- pmlogrewrite: initial support for rewriting label records
	- pmcd: fix subtle bug in agent shutdown code (affecting pmdabcc)
    - Client tools and utilities:
	- pcp2spark: export PCP metrics to Apache Spark
	- pcp2influxdb: fix mishandling of zero-valued metrics
	- pcp-dstat: support for PCP archive replay
	- pcp-dstat: use context to get hostname for terminal title
	- pcp-dstat: use more python-version portable set comprehensions
	- pcp-dstat: recreate the original --version output using PCP metrics
	- pcp-dstat: fixes to the disk plugin configurations
	- pcp-pidstat: add direct support for the timezone options
	- mmvdump: support for the version 3 format (metric labels)
	- dbpmda: various Windows-driven changes
	- pmcpp: Windows fix for \r in the input text
    - PMDA additions, enhancements and bug fixes:
	- pmdaproc: tweak proc.memory.maps to return empty string for kernel workers
	- pmdakvm: new, configurable, perf_event-based kvm.trace metrics
	- pmdakvm: switch from perl to C implementation, enable by default
	- pmdammv: support for exporting metric labels (v3 format)
	- pmdaproc: rework code to handle much larger /proc/pid/stat files
	- pmdaproc: improve proc.psinfo.environ for processes with no environment
	- pmdabcc: profile module
	- pmdabcc: compat wrapper for get_kprobe_functions
	- pmdabcc tcptop: log current number of connections
	- pmdabcc: add pmStore support
	- pmdabcc: add exectop module
	- pmdabcc: use newer kprobe with ext4dist if available
	- pmdabcc: tcpretrans module added
	- pmdabcc: biotop tool - fetches block device I/O activity and sorts it
	- pmdabcc: rename biotop to bioperpid
	- pmdabcc: restore old tcplife module as tcpperpid
	- pmdawindows: process.thread.process_id metric removed (since Windows10)
	- pmdagfs2: additional Glock and Glock Holder metrics
    - libpcp, libpcp_pmda, libpcp_web and other libraries
	- libpcp_mmv: new APIs, registry-based setup, labels support
	- python pmdas: improve scaling; release GIL while waiting for new PDUs
	- pmconfig.py: handle predicate metrics being filtered out
	- libpcp: fork+exec and pipe+fork+exec changes for Windows
	- libpcp_web: initial cluster support to Redis commands
	- derived metrics: avoid divide by zero exceptions in iostat.conf
    - Security Enhanced Linux:
	- selinux: add gpsd context rules allowing shm access via associate, getattr
	- selinux: add init_t shm rule for accessing via unix_read
	- selinux: policy improvements for the GFS2 PMDA
	- selinux: policy improvements for the Redis PMDA
    - Misc build, infrastructure and packaging updates:
	- build: many changes for the Windows platform, towards a new installer
	- build: changes to support completely reproducible builds
	- build: series of changes to support MacOSX brew package builds
	- build: do not assume gcc is used for building Qt binaries
    - Documentation and QA infrastructure:
	- docs: pmrep and pcp2xxx container option man page correction
	- docs: updates to the pcp-dstat(1) man page for archives
	- docs: updates to the MacOSX build and install instructions
	- docs: updates to the Windows build and install instructions

pcp-4.1.0 (15 June 2018)
    - Log rotation, management scripts, compression and utilities:
	- pmlogger_daily_report: use unambiguous time window arguments
	- pmlogger_check: pass command line options to pmlogger_daily
	- pmlogger_daily: make SaveLogs name match /var/log/pcp/pmlogger name
	- pmlogger_daily: compress .meta files
	- pmlogger_daily: send -V diags to stderr
	- pmlogger_check & pmnewlog: add optional SaveLogs support
	- pmlogger_check: clear any zero-length pmlogger configs
	- pmlogger_merge: fix corner cases, esp for compressed archives
	- pmnewlog: honour any /etc/sysconfig/pmlogger settings
	- pmdumplog: changes to handle compressed archives
	- pmlogrewrite: support reassociation with other metric or indom
	- pmlogrewrite: support changing and deleting text records.
	- pmlogrewrite: add -S (check and status) option
	- pmlogrewrite: Allow newline in updated help text.
	- pmlogger: fix for trashed temporal index after infant mortality
	- pmmgr: handle compressed .meta and/or .index files in cleanup stanzas
	- pmafm: teach mkaf and pmafm about compressed archives
	- pmlogcheck: extend unexpected EOF diagnostic message
    - pcp-dstat - (new) reimplementation of dstat(1) using PCP APIs:
	- zsh completion: dstat help output tweak to aid zsh completion
	- pcp-dstat: add interrupts and several other new conf files
	- pcp-dstat: improvements to dynamic instance handling
	- pcp-dstat: initial QA, python2 compat fixups, enable in build
	- pcp-dstat: update to use updated pmconfig interface name
	- pcp-dstat: improved config labels and metrics with instances
	- pcp-dstat: add fs freespace and redis plugins, update TODO
	- pcp-dstat: add utmp plugin config, now the kernel metrics exist
	- pcp-dstat: initial version of dstat using PMAPI services
    - Client tools and utilities:
	- pmrep: add config entries for emulated collectl reports
	- pmrep: ensure output column ordering consistency
	- pcp.sh: provide alternative if realpath(1) not available
	- pcp.sh: use full path to pmgetopt in case PATH not set (Mac)
	- pcp.sh: add a handy developer mode to the pcp(1) frontend
	- pmval: plug small memleaks
	- pmnsutil: small code cleanup for static code checkers
	- pmcpp: ensure va_end is called for static code checkers
	- pmie: ensure we do not use an uninitialised path variable
	- pmie: handle -l- correctly for logging to stderr
	- pmprobe: support batching for name lookups and fetching
	- pmprobe: add bash and zsh completions for -b
	- pcp2xlsx: add missing test chunk, use correct out file
	- pcp2xlsx: switch from using xlsxwriter to openpyxl
    - libpcp and libpcp_pmda:
	- libpcp: logutil.c, check for botched temporal index
	- pmParseTimeWindow(): fix double-free error
	- libpcp_pmda: clean namespace, attribute and flags interfaces
	- pmda.py: support for logfile and helptext file in PMDA __init__
	- libpcp: pmOpenLog() support logging to existing stream
	- libpcp: fix handling of labels with an empty string value
	- libpcp: labels.c, handle different domainname() result
	- libpcp_pmda: mainloop.c, add debug diags in __pmdaMainPDU()
    - libpcp_web:
	- libpcp_web: add pmDiscover API for asynchronous PCP data export
	- libpcp_web: integrate libuv and async event handling
	- libpcp_web: simplify error handling using a common helper
	- libpcp_web: properly set redis blocking/non-blocking
	- libpcp_web: first steps towards Redis cluster support
	- pmseries: properly implement the redisMap mapping type
	- pmseries: initial support for cluster node map extraction
	- pmseries: small cleanups on early cluster code review
    - Security Enhanced Linux:
	- selinux: update comments, additional script robustness changes
	- selinux: abstract spec file bits into an installed script
    - PMDA additions, enhancements and bug fixes:
	- pmdadm: fix segfault and memleak in dmstats
	- pmdalinux: add aggregate interrupt and softirq counters
	- pmdalinux: nfs server metric semantic fix pmlogrewrite rules
	- pmdalinux: fix af_unix conn stats same as udp/tcp earlier
	- pmdalinux: udp, raw and unix domain connection metrics
	- pmdalinux: code simplification, cleanup in /proc/locks code
	- pmdalinux: add vfs.locks.posix, flock and lease metrics
	- pmdalinux: add kernel.all.nsessions and nroot users metrics
	- pmdaprometheus: support the -l logname and -d domain options
	- pmdaprometheus: fix scripted configs, broken after label filtering
	- correct semantics for proc_fs_nfsd.th_cnt and proc_fs_nfsd.pool_cnt
	- pmdammv: resolve an instance domain setup problem
	- pmdaproc: add the per-process proc.psinfo.oom_score metric
	- pmdasample: fix emerging gcc warnings
	- zbxpcp: fix path to auto-enable zbxpcp module for zabbix_agentd
	- zbxpcp: fixes, perf improvement for zabbix agent module
	- NetBSD and OpenBSD PMDAs: fix for returning a buffer on the stack
	- FreeBSD PMDA: add some metrics
	- activemq PMDA: hide this PMDA's perl modules behind PCP::
	- configure.ac: activemq PMDA needs JSON Perl module as well
	- pmdabcc: tcplife: recycle instances - use row number as instance key
	- pmdabcc: fix tcplife dport, styling
	- pmdabcc: tcplife: track sessions independently, add more metrics
	- pmdabcc: configurable failure modes for module errors
	- pmdabcc: explain process filtering in the pmdabcc(1) man page
	- pmdabcc: disable ext4dist per default, add xfsdist and zfsdist
	- pmdabcc: disable "Too many instance attributes" pylint warning
	- pmdabcc: rename runqlat metric name
	- pmdabcc: order histogram instances ascending
	- pmdabcc: move ext4dist metric under bcc.fs name space
	- pmdabcc: add ext4dist, zfsdist and xfsdist modules
	- pmdabcc: add USDT JVM threads and allocation profile modules
	- pmdabcc: print generated/modified BPF program if debug enabled
	- pmdabcc: implement process/port filtering in tcplife
	- pmdabcc: match process name on /proc/$PID/comm
	- pmdabcc: add process filtering in tracepoint/uprobe modules
	- pmdabcc: fix tcplife with older/newer kernel/bcc
	- pmdabcc: add USDT/dtrace hit count BPF/Python module
	- pmdabcc: add pid check/filter helpers, relax process check
	- pmdabcc: introduce reserved ranges in bcc.conf
	- pmdabcc: README and man page updates
	- pmdabcc: add example hit count module configuration files
	- pmdabcc: add uprobe hit count BPF/Python module
	- pmdabcc: require kernel 4.6+ for QA
	- pmdabcc: add config file / process helpers
	- pmdabcc: add kernel tracepoint hit count BPF/Python module
	- pmdabcc: clean up bcc.conf comments
	- pmdabcc: add label support
	- pmdabcc: always create the first bucket inst for histograms
	- pmdabcc: don't create instances for empty buckets at top end
	- pmdabcc: add runqlat tool
    - Misc build, infrastructure and packaging updates:
	- build: Add conditional clause around disable_python2
	- build: resolve ENODATA re-define warning on latest Win32 headers
	- build: fine-tune libpcp cross-compiler make settings for Windows
	- build: remove procfs checks entirely in configure now
	- build: add pmieconf static binary cross-compile check
	- build: support Windows native build
	- build: remove pcp.conf dependency from selinux-setup script
	- build: fix pcp-export-pcp2xlsx dependencies
	- build: rpm spec file updates related to python, pmrep and dstat
	- build: add some more platforms into the bintray scripts
	- build: switch travis-build coverity notifications to pcp list
	- build: add automated coverity checking to travis builds
	- build: update travis to use fedora:latest container over f27
	- build: add new bcc config files to the installed set
	- build: add configure and builddefs support for libuv
	- build: add Makepkgs --configure option to stop after configure
	- build: fix /var/run/pcp ownership in fedora spec file
	- build: fix license text warnings from specfile check tools
	- build: add missing shebang lines else latest rpmbuild fails
	- build: include python3-bpfcc as a dependency for debian
	- build: update check-statics for Mac OS X clang brew builds
	- formatting strings: %I64i used instead of  %lld
	- build: switch from http to https for pcp.io src references
	- build: fix rpm spec deps, update to https for pcp.io
	- build: fix yet another multilib header regression
	- build: fix typo in rpm spec file for smart pmda deps
	- build: add more platforms to bintray-version script
	- coverity: possible buffer overrun, use strncpy() instead of strcpy()
	- coverity: plug a memleak on a socket func error path in libpcp
	- coverity: plug a memleak on a labelset pointer in libpcp
	- coverity: plug memleak on socket func diagnostic in libpcp
	- coverity: fix memleak on error path in libpcp_qmc update
	- coverity: fix use of freed stream in libpcp_pmda diagnostic
	- coverity: fix out-of-scope local buffer use in libpcp units.c
	- coverity: fix memleaks during testing for localhost
	- coverity: fix unconditional uses of null name in new context
	- coverity: do not use stderr after freopen on stderr failure
	- coverity: fix lookup labels api error path memleak
	- coverity: fix getopt time window parse error path memleak
    - Documentation and QA infrastructure:
	- check-archives: rework for expected/different marking of log files
	- check-archives: fsck for a forest of PCP archives
	- __pmparsectime.3: clarify syntax for string argument (date formats)
	- docs: update remaining pcp.io references to https
	- docs: add release and coverity links to README.md
	- man/html/portability-and-qa.html: First real version
	- docs: add the CII best practices badge to README.md
	- docs: switch CONTRIBUTING to markdown, add a security section
	- man/html/portability-and-qa.html: portability issues related to QA
	- docs: initial version of the pcp-dstat(1) manual page
	- docs: switch http to https for various pcp.io references
	- qa/admin/pcp-daily: really enforce the BAD policy this time
	- qa/admin/pcp-qa-summary: find and report tests tagged BAD
	- qa/group: add missing python ones, introduce BAD group
	- qa/sniff4dodgey: (new) script looking for dodgey tests

pcp-4.0.2 (11 May 2018)
    - log rotation, management scripts, compression and utilities
	- pmie_{check,daily}: rework .prev and -N handling
	- pmlogger_{check,daily}: rework .prev and -N handling
	- pmlogger_daily: add -p to poll if cronjob was missed
	- pmlogger_daily: set default xz options for 10MB blocks
    - client tools and utilities:
	- pcp-pidstat: add new process state tracking feature
	- pmlogconf: update zeroconf config for pidstat metrics
	- pmrep, pcp2xxx: use new improved long-option-only method
	- pmrep: fix metricsets :mpstat and :mpstat-P-ALL metric definitions
	- pcp2zabbix: fix issues from low-level-discovery feature
	- pcp-atop: remove the long-deprecated pmatop symlink
	- pmstat: fix bogus warning in local context fallback mode
	- pminfo: cleanup instance name and instance label caching
	- sar2pcp: updates for recent versions of sysstat
	- zbxpcp: ensure errmsg accompanies SYSINFO_RET_FAIL returns
	- shell completion: update pcp2zabbix lld arg handling
	- add low-level-discovery support to pcp2zabbix
    - pcp-zeroconf: zero configuration package for support environments
	- pmlogconf: update zeroconf config for pidstat metrics
    - PMDA additions, enhancements and bug fixes
	- pmdaprometheus: add support for label filtering in URL configs
	- pmdaprometheus: set PMNS_CHANGED flag more aggressively
	- pmdaprometheus: perf improvement - add a compiled regex cache
	- pmdaprometheus: perf improvement - avoid re-parsing config URLs
	- pmdaprometheus: perf - avoid formatting debug messages if !dbg
	- pmdaprometheus: fix fetch and parse time counters
	- pmdaprometheus: scalability improvements, multi-threaded http get
	- pmdadm: avoid segfaults if there are no dmstats regions
	- pmdadm: Fix memory leak in dmstats.c
	- pmdalinux: remove cdrom from disk indom
	- pmdalinux: support vfs.aio metrics from /proc/sys/fs files
	- pmdaproc: fix issue with container identification
	- pcp-pmda-libvirt: fix rpm packaging
	- pmdacifs update to support stats V2
	- pmdaroot, pmdaproc: rework Docker container name heuristics
	- pmdabcc: start in the "notready" state to avoid startup timeouts
	- pmdanfsclient: convert from perl to python, add newer 4.2 ops
	- pmdasmart: new PMDA to extract metrics from smartmontools package
    - pmwebd and pmmgr
	- pmwebd: Restore logic for rolling over to a new volume.
	- pmwebd: Handle compressed .meta and archive volume files.
    - Security Enhanced Linux:
	- selinux: add fsetid cap to pcp_pmlogger_t
	- pmda.smart/selinux: fix fsadm_exec_t rules
	- selinux: pmlogger should be allowed the fowner cap for itself
	- selinux: rhbz1565158 ipc.sem metrics
	- selinux: RHBZ1565158 allow semaphore reads for mozilla_plugin_t
	- selinux: rhbz1547066 Add several AVCs caught in testing
	- Build: add pcp-selinux req - libsemanage
	- selinux: rhbz1558708 add further policy for pmdagluster
    - libpcp and libpcp_pmda
	- libpcp: provide a fetchgroup reset interface
	- libpcp: add OpenIndiana fix to allow pmcd connection TCP
	- libpcp_fault: track exports changes over in libpcp
	- libpcp: change ld VERSION file manipulation
	- libpcp: Implement new archive I/O API functions.
	- libpcp, pmcd: resolve an endian issue in labels protocol
	- libpcp: decompression: Correctly detect fully specified archives
	- libpcp: detect and handle corrupted labelset metadata in archives
	- libpcp: harden labels dup routine when handed bad/missing data
	- libpcp: make pmSemStr and pmTypeStr thread-safe
    - Misc build, infrastructure and packaging updates
	- coverity: fix memleaks, useless variable settings, off-by-ones
	- coverity: fix error handling on PMDA attribute interface
	- build: couple more linker tweaks for Windows builds
	- build: addition for chown/chmod post install actions
	- build: require coreutils (fileutils is gone)
	- packaging: ensure $PCP_SA_DIR ends up with correct mode and ownership
	- build: update check-statics for libpcp macosx builds
	- assorted: fix compilation warnings from OpenIndiana
	- configure: yet another attempt to get fmt_int64 correct
	- debian/rules: pass -v down from dh_shlibdeps to dpkg-shlibdeps
	- debian/pcp-export-zabbix-agent.install: add missing files
	- build: add conditionals for Requires: libsemanage
	- build: pid_t ... it may not be the same type as int
	- build: add an explicit sans font dependency for pmwebd
	- build: resolve compilation warnings with recent gcc versions
	- travis: print all logs to stdout at the end of the build
	- build, qa: force default locale when grepping English words
	- build: Pass CFLAGS, CXXFLAGS, LDFLAGS down to qmake builds.
	- fedora.spec: libvirt needs python2-lxml on rhel
	- fedora.spec: python2-libvirt is for fedora >= 27
	- packaging: correctly package zbxpcp.conf file
	- build: improve Zabbix server integration out-of-the-box
    - Documentation
	- docs: add pcp-pidstat(1)
	- docs: add pmClearFetchGroup(3)
	- docs: document ipc_prot and notready in various man pages
	- books: delete support for xmlto and dblatex in book toolchain

pcp-4.0.1 (29 March 2018)
    - log rotation, management scripts, compression and utilities
	- pmlogger scripts: enable immediate daily compression by default
	- pmlogmv.sh: learn how to handle compressed files
	- pmlogger_daily: change default behaviour for compression
	- pmlogger_merge.sh: handle compressed archives
	- pmlogger_check.sh: add pmlogger_daily -K callback
	- pmlogger: control: add $PCP_COMPRESSAFTER=3
	- pmlogger: crontab: drop pmlogger_daily command line arguments
	- pmlogsize: (new) report sizes for components of an archive
	- pmlogsize: add support for data volume, summary and -d (detailed)
	- pmdumplog: fix sigsegv causing intermittent qa failures
	- pmlogrewrite: Indirect updates to label set and help text records.
    - pcp-zeroconf: zero configuration package for support environments
	- add pmlogger_daily_report(1) cron script like sa2(1) to pcp-zeroconf
	- add pcp-doc and pcp-system-tools to pcp-zeroconf dependencies
	- improved and more frequent daily archive compression (see above)
    - pmrep:
	- pmrep: add sar -n TCP -n ETCP config
	- pmrep: add units to labels in :sar-n-TCP-ETCP pmrep config
	- pmrep: use standard column width by default with separate header
	- pmrep: add config to display page migration stats on NUMA machines
	- pmrep.conf: add initial sar -n NFS/NFSD metric sets (NFSv4 too)
    - pmdaprometheus: PMDA to ingest metrics from prometheus end-points
	- pmdaprometheus: start in the "notready" state, for scalable startup
	- pmdaprometheus: URL config support for HTTP GET / request headers
	- pmdaprometheus: URL config support for metric filters in responses
	- pmdaprometheus: add prometheus.control.debug metric (storable)
    - pmdapostgresql: supporting PostgreSQL v9.6 (with plans for 10.x)
	- pmdapostgresql: fixes and verification to support postgresql v9.6.x
	- pmdapostgresql: attempt to switch uids only if running as root
	- pmdapostgresql: automatically reconnect if DB connection is lost
	- pmdapostgresql: update audit script, prep for v10.3.1 support
    - misc PMDAs: Linux, Proc, KVM, Pipe, rsyslog, BCC
	- pmdalinux: add per-block-device capacity metrics
	- pmdalinux: report CD/DVD devices correctly, not as partitions
	- pmdaproc: additional kernel process states (parked, trace stopped)
	- pmdarsyslog: improved diagnostics
	- BCC PMDA: biotop: ignore (but log) unnamed devices
	- BCC PMDA: prepare for upcoming BCC breaking API change
    - pmwebd and pmmgr
	- pmmgr: remove pmmgr k8s discovery code, use libpcp discovery instead
	- pmwebd: support for etag headers
	- pmwebd: improve graphite archive-cache performance w.r.t. syscalls
	- build: house pmwebd in a subdir named consistently with rest of PCP
    - Security Enhanced Linux:
	- selinux: add numad_t rules
	- selinux: update for variety of avc denials
	- selinux: fix avc denials uncovered from pmdabcc
	- selinux: add rules for pmdagluster
    - libpcp and libpcp_pmda
	- libpcp: fix fetchgroup vs derivedmetric instance profile issues
	- libpcp: fix segv in archive help text fallback handling
	- libpcp: add pmconfig reporting of transparent decompression
	- libpcp: Fix false EOF return by xz_getc().
	- libpcp: io: be more careful with rewind, rework __pmFseek
	- libpcp: add compress_suffix_list for pmconfig -L
	- libpcp: general shell discovery mechanism, Kubernetes pod support
	- libpcp: pmcd: add a 'machineid' label at context level
	- libpcp: add command=CMD option to shell discovery mechanism
	- libpcp: handle DSO and pmcd domain labels consistently
	- libpcp: correct the fetchgroup handling of counter wrap
	- libpcp: rewind temp file after decompression
	- libpcp: fix return codes for pmTraversePMNS
	- libpcp: fix semantics of sum() for derived metrics
	- libpcp: add external symbols from win32.c
	- libpcp: switch pmGetConfig API to using setenv for valgrind
	- libpcp: remove temp file underneath pmprintf() et al
	- libpcp_pmda: add pmdaSendError(3), with python bindings
    - Misc build, infrastructure and packaging updates
	- Debian: enable daemons, manager enabling semantics, improved systemd
	- build: test pmda.bcc group by travis ci, integrate Travis CI
	- Debian packaging: make deb-systemd-helper use conditional
	- Debian/pcp.postinst.tail: improved access modes for /etc/pcp/nssdb
	- build: add base sans font for pmchart on headless machine
	- build: add 'sds' package for more efficient string handling
	- build: fix deb bash/json/mmv PMDA tmpdirs permissions
	- build: add pcp-conf and pcp-libs packages for CI, needed explicitly
	- build: spec updates for pcp-zeroconf and /etc/pcp/discover
	- build: fix Debian install after derived metric config moved
	- build: house pmwebd in a subdir named consistently with rest of PCP
	- build: add proc derived metric config into pcp-libs package
	- build: fix configure script qmake vs QT_RELEASE corner case
	- configure: changes for Windows build, fix mingw warnings
	- pmdaproc.sh: bugfix for ipc_prot="binary notready" in Install
	- pmdaproc.sh: fix temp file leakage
    - Documentation
	- Readme.osx updated for packagemaker
	- man: document the pmlogger_daily_report -l and -V options
	- document the pmlogger_daily -k and -x interaction
	- add pmdaSendError(3) man page to pcp-doc package

pcp-4.0.0 (16 February 2018)
    - Support metric labels as first class PCP metadata
	- libpcp: over-the-wire protocol support for labels
	- libpcp: store metric labels in archives
	- dbpmda: new commands for exercising metric labels
	- pmdaproc: add proc.* and cgroup.* metric labels
	- pmdalinux: add disk, CPU, NUMA node and other labels
	- pmdapmcd: add pmcd.labels metric (/etc/pcp/labels)
	- pmdaprometheus: add support for Prometheus labels
	- pmcd: support label PDUs between clients and PMDAs
	- pminfo: add new -l/--labels option
	- pmlogger: support storing labels in archives
	- pmdumplog: support for dumping labels in archives
	- pmlogextract: support for labels in input archives
	- pmlogrewrite: support for changing labels in archives
	- libpcp_pmda: support for metric label PDUs
	- libpcp_pmda: new pmdaLabel(3), pmdaSetLabelCallBack(3) APIs
	- docs: upate pmlogger on-disk format docs for labels
    - libpcp: store metric help text in archives for pmLookupText(3)
    - PMAPI and PMDA API refactoring, promotion and deprecation
	- libpcp: pmapi.h, impl.h, libpcp.h header refactoring
	- libpcp: several impl.h data structures made internal
	- libpcp: several impl.h interfaces cleaned, documented and
	  promoted into new PMAPI routines - e.g. pmGetProgname(3),
	  pmSetProgname(3), pmID_build(3), pmInDom_build(3),
	  pmOpenLog(3), pmGetAPIConfig(3), pmNoMem(3), pmSyslog(3),
	  pmNotifyErr(3), pmPrintStamp(3), pmPathSeparator(3),
	  pmGetUsername(3), pmSpecLocalPMDA(3).
	- libpcp: hide details of pmlc/pmlogger communication
	- libpcp: hide all internal PDU and PDUbuf details
    - Asynchronous notification of metric name changes
	- libpcp: fetch protocol support for async name changes
	- pmlogger: dynamic reevaluation of metric name changes
	- libpcp_pmda: support for PMDAs with dynamic name changes
	- docs: describe async name change protocol on pmFetch(3)
    - pmdadm: add new VDO (virtual data optimizer) metrics
    - pmdabcc: new PMDA exporting BCC/eBPF trace instrumentation
    - pmdaproc: fix issue with resolving ttynames below /dev
    - pmdaproc: add proc.id.container metric based on cgroups
    - pmdaproc: add new cgroup.*.id.container metrics
    - pmdalinux: additional /proc/vmstat pgscan, pgsteal metrics
    - pmdalinux: fix scanf format for /proc/net/if_inet6
    - pmdalinux: tty.serial metrics use tty number as indom instance
    - pmdalinux: add kernel.all.pid_max metric from /proc/sys/kernel
    - pmdalinux: add wireless and name type network interface metrics
    - pmdalinux: additional NUMA migration metrics from /proc/vmstat
    - pmdasolaris: update for ZFS snapshot API changes
    - pmdaprometheus: improvements to auto-configuration
    - pmdaprometheus: metadata inference tweaks
    - pmdaprometheus: rework instance-name prefixing
    - pmdaprometheus: add support for scripted configuation
    - pmdabash: install a default directory with secure permissions
    - pmdajson: install a default directory with secure permissions
    - pmdammv: install a default directory with secure permissions
    - pmdalibvirt: correctly restore previously persisted indoms
    - pmdahaproxy: correctly restore previously persisted indoms
    - pmdadocker: document PCP_DOCKER_DIR variable
    - pmrep/pcp2xxx: clarify instances reported by default
    - pmrep/pcp2xxx: introduce per-metric precision support
    - pmrep/pcp2xxx: multiple derived metrics specs on command line
    - pmrep/pcp2xxx: properly validate config file options
    - pmrep/pcp2xxx: add force scaling/formatting options
    - pmrep/pcp2xxx: add live filtering support
    - pmrep/pcp2xxx: add support ranking, inverse filtering, predicates
    - pmrep/pcp2xxx: add support for limit filtering
    - pmrep: add support for overall ranking
    - pmrep: add support for dynamic headers
    - pmrep: make -g/--separate-header compatible with -X/--colxrow
    - pmrep: pmdumptext -X/--extended alike output
    - pmrep: do not force raw values with CSV output
    - pmrep: avoid repeated pmi calls in write_archive
    - pmrep: better delimiter handling
    - pmrep: sar-y, sar-n-SOCK, numa-hint-faults configs in pmrep.conf
    - pmrep: fix archive output dir access check
    - pmrep: record discrete values to archive only when changed
    - pcp2json: -E/--exact-types option for increased output control
    - pmjson: new helper utility for json formatting
    - iostat2pcp: support yet more incompatible changes to iostat
    - pmstore: add -F/--fetch option to provide accurate new value
    - pmdumplog: increase precision of timestamp output
    - pmdumplog: support for dumping metric help text in archives
    - pmlogger: avoid multiple metadata records for same indom and timestamp
    - pmlogextract: change <mark> strategy if prologue + epilogue available
    - pmlogconf: ensure values present before enabling apache group
    - pmlogconf: ensure values present before enabling nfsclient group
    - pmlogconf: additional kernel metrics for pmlogconf
    - pmlogconf: added storage group for pmlogconf with VDO metrics
    - pcp-atop: add Docker support, updates to upstream atop-2.3.0 code
    - pcp-atopsar: improve robustness with missing data
    - pcp-mpstat: fix typo in method call found by pylint
    - pcp-summary: fix incorrect use of -O/--offset/$PCP_ORIGIN
    - pmchart: fix uninitialized memory use in status bar
    - pmchart: several improvements to the BusyCPU script
    - desktop: new icon images for pmchart and pmtime applications
    - libpcp: support transparent on-demand archive decompression
    - libpcp: provide -O/--offset heuristics for local archives
    - libpcp: fix non-standard space units handling
    - python pmconfig: handle option priorities correctly
    - python pmcc: add MetricGroupManager.checkMissingMetrics
    - python api: use correct tm_gmtoff type in pmMktime call
    - selinux: numerous corrections to policy files
    - zshrc: series of updates for latest command arguments
    - zshrc: recognize .xz compressed archive file names
    - zshrc: don't complete unavailable derived metrics
    - bashrc: series of updates for latest command arguments
    - PMDA Install: removed "monitor, server or both" prompts
    - build: update debian builds to quilt-based format
    - build: fix Qt5 build dependency injection
    - build: fix debian binary-indep packaging
    - build: fix debian python package dependencies
    - build: enable systemd in debian packages
    - build: configure.ac and related fixes for Solaris builds
    - build: numerous Windows portability fixes
    - build: remove config transition mechanism for ancient releases
    - build: get python basics going in Windows cross-comiles
    - build: selinux - directly test existance of semodule -X option
    - build: selinux - update policy package on upgrade
    - build: rpm - move to explicit python2/python3 deps
    - build: rpm - python->python2 naming, obsolete python-foo packaging
    - series of small code improvements found by Coverity
    - series of small code improvements found by cppcheck
    - docs: start documenting long options on PCPIntro(1) and others
    - docs: add some power user examples to pmrep(1)

pcp-3.12.2 (18 October 2017)
    - dm pmda: fix memory corruption from a double free
    - linux pmda: add mem.vmstat.pgsteal_* metrics
    - haproxy pmda: warn, not error, on missing socket
    - haproxy pmda: add url connection support
    - libvirt pmda: more resiliency for missing domains with mem stats
    - perfevent pmda: fix missing dynamic events scenario
    - prometheus pmda: metadata generator handles empty lines and comments
    - prometheus pmda: add _sum, _count and _bucket as metric instances
    - selinux: add pmlogger_exec_t rule from rhbz1483320
    - selinux: remove base pcp requirement for pcp-selinux subrpm
    - selinux: update configure checks to work with selinux tools v4.0+
    - selinux: RHBZ1447585 pmlc accessing tcp port 4330
    - selinux: rhbz1488116 pmnewlog.sh using ps to check pid's for pmloggers
    - pcp-atop: add --hotproc option for using hotproc metrics
    - pcp2elasticsearch: new utility exporting metrics to ElasticSearch
    - pcp2json: new utility exporting metrics in JSON format
    - pcp2xlsx: new utility exporting metrics in Excel spreadsheets
    - pcp2xml: new utility exporting metrics in XML format
    - pcp2zabbix: new utility exporting metrics to Zabbix
    - pmchart: make the BusyCPU view work and install it
    - pmchart: fix a use-after-free in setSamples
    - pmchart: support hicolor icons for GUI apps
    - pmlogconf: cull missing groups with -c
    - pmlogconf: automatically configure hotproc logging
    - pmlogconf: tweak hotproc config and add the atop metrics
    - pmlogger: add prologue / epoligue support
    - pmmgr: pass -H hostid to pmlogger
    - pmrep: add support for new derived metrics syntax
    - pmrep: rewrite csv output code
    - pmrep: rewrite stdout output code
    - pmrep: better metric scaling precision
    - pmrep: tweak csv header
    - pmrep: allow scaling of raw metrics
    - pmrep: better metric type detection
    - pmrep: handle dup names
    - pmrep: drop zabbix support, added to pcp2zabbix(1)
    - pmrep: use the new pmConfig module and the new Python helpers
    - pmrep: add daemonization support
    - pmrep: use UTC offsets in extended header
    - pmrep: protect against transient instances
    - pmrep: support sadf(1) compatible CSV output
    - pmrep: improve handling of floating point NaN values
    - pmview: changes to allow building with either Qt4 or Qt5
    - pmwebd adapt graphite font size to image size
    - libpcp_web: increase default JSON parser token count
    - libpcp: refactor daemonization code for sharing
    - libpcp: changes to satisfy reported cppcheck issues
    - libpcp: initialise unaligned part of help text buffer
    - libpcp: harden interpolate mode up against corrupt archives
    - perl api: support indom cache reloading for hash indoms
    - python api: handle unicode strings in python2 module as well
    - python api: add a pmconfig module and new timezone helper routines
    - python api: fix timezone segfault from incorrect free
    - python api: timezone helper with non full hours
    - python api: fixes to timezone handling
    - python api: add daemonize option using libpcp services
    - python api: allow long options without a short option
    - python api: automatic indom persistence of dict indoms
    - python api: annotate the pmsubsys module as "deprecated"
    - libpcp: add simple, secure system(2) replacement API
    - libpcp: add simple, secure pipe API replacement
    - libpcp: derived metric configuration for kernel.cpu.util.*
    - libpcp et al: change PCP debugging control infrastructure
    - libpcp: add PM_ERR_BADDERIVE code for invalid derived metric specs.
    - libpcp: defered derived metrics evaluation performance improvement
    - libpcp_web: cleanup memory leaks
    - libpcp: add $PCP_IGNORE_MARK_RECORDS support
    - libpcp: pmsprintf - a safer [v]snprintf wrapper
    - pmcd, pmcd PMDA, libpcp_pmcd: add pmcd.pid and pmcd.seqnum
    - pmdaproc.sh: improve domain number and name match checks
    - bashrc: fix completions using symlink for all commands
    - bashrc: updates for auto-completions for all commands
    - zshrc: updates for auto-completions for all commands
    - build: update debian builds to default to Qt5 when available
    - build: fix numerous compiler warnings on FreeBSD
    - build: fix numerous compiler warnings on Windows
    - build: switch to Qt5 when building on Windows
    - demos: fix pmclient, pmclient_fg archive modes
    - docs: add notes to pmdapostgresql(1) re enabling stats
    - docs: corrections to pmdadm(1), histogram support
    - docs: document $PCP_IGNORE_MARK_RECORDS in pcpintro(1)

pcp-3.12.1 (16 August 2017)
    - pmdadm: device mapper stats API (statistics regions) metrics
    - pmdahaproxy: new PMDA exporting HAProxy (haproxy.org) metrics
    - pmdaperfevent: fix use after free in perf_setup_dynamic_events
    - pmdaprometheus: add pmda config metrics and store callback
    - pmdaprometheus: periodic metadata refresh of Prometheus endpoints
    - pmdaprometheus: auto refresh and reload metadata changes
    - pmdaprometheus: reload only added/removed sources on fetch
    - pmdaprometheus: add units parsing and fix minor bugs
    - pmdaprometheus: fix metadata generator for instances with whitespace
    - pmdadarwin: instance domain help text added
    - pmdalinux: add nfsd worker thread status values
    - pmdanews: fixes to ps(1) command invocation on FreeBSD
    - pmdaroot: defensive behaviour for containers lacking a Name
    - pmrep: add per process metricsets to default pmrep.conf(5)
    - pmrep: exit in check mode after all preparations
    - pmie: modified back-off when metrics or hosts unavailable
    - pmwebd: add Prometheus metrics exporter endpoint
    - pcp-mpstat: gracefully handle the absence of interrupt metrics
    - selinux: additional SELinux policy rules for several PMDAs
    - libpcp: fix detection of unterminated string in derived metrics
    - libpcp: fix ternary expression evaulation bug
    - libpcp: tracing facility for PMAPI routine entry/exit
    - libpcp: initial file I/O abstraction layer
    - libpcp: further multi-threading improvements
    - libpcp: only consider addresses with type SOCK_STREAM
    - perl api: fixes for PMDA wrapper on FreeBSD
    - python api: add refresh_all clusters method for PMDAs
    - python api: add the remove_metric function for PMDAs
    - build: add perl deps and perl-interpreter into RPM spec files
    - build: add log import library pkg-config support
    - build: add configury for python OrderedDict module
    - build: add missing Debian autopkgtests and debian/watch file
    - build: update with RPM systemd macros for service defaults
    - build: change RPM location of local mode to %install, f27 onwards

pcp-3.12.0 (30 June 2017)
    - pmdaprometheus: new PMDA exporting Prometheus end point metrics
    - pmdalinux: deprecate some socket stats, add IPv6 socket stats
    - pmdalinux: change some string metrics from instant to discrete
    - pmdamysql: additional MySQL slave metrics
    - pmdaproc: migrate proc.psinfo.{vsize,rss,rss_lim} to U64
    - pmdacifs: drop duplicate makefile installs
    - pmdasummary: default to localhost for pmie pmcd connections
    - containers: allow clearing a previously set container context
    - python api: handle duplicate metric name in PMDA module correctly
    - python api: clear the _metric_names_map at appropriate times
    - perl api: fix instance domain help text handling for PMDAs
    - pcp-pidstat: configurable timestamp formatting (-f option)
    - pcp-pidstat: fix traceback at end of archive with -G option
    - pcp-numastat: use pmFetchArchive when replaying an archive
    - pcp-numastat: fix poor handling of non-tty output
    - pcp-atop: fix sigsegv while handling NFS mounts metrics
    - pcp-atop: fix rawwriting and bad -T option passed to pmlogger
    - pmlogger: allow hostname to be over-ridden on the command line
    - pmlogconf: group pmprobe calls together, performance optimisations
    - pmlogconf: add proc.psinfo.guest_time to atop-proc for pcp-pidstat
    - pmlogconf: add numastat, pidstat and tapestat to zeroconf config
    - pmlogconf: add config for pcp-tapestat
    - pmlogconf: improve probe used for some optional log configs
    - pmieconf: add pmie rule detecting entropy starvation
    - pmrep: improve corner case metric name duplicate detection
    - pmwebd: add mandatory authentication mode (-C option)
    - libpcp: changes to remove client-pmcd socket multiplexing
    - libpcp: rework earlier changes to context handle semantics
    - libpcp: fix double-close on __pmConnectTo failure
    - libpcp: further locking improvements
    - libpcp: add buffer length check to pmEventFlagStr_r(3)
    - pmprobe: add -F option for further pmlogconf speedups
    - pmprobe: fix sigsegv in the presense of bad metric descriptors
    - pmlogger rc scripts: small changes cleaning up reports of warnings
    - pmie rc scripts: small changes cleaning up reports of warnings
    - selinux: policy updates to resolve a pmdabash issue
    - selinux: add check for cap_userns class
    - bashrc: bash completion updates
    - zshrc: zsh completion updates
    - build: pkg-config support for libpcp and libpcp_pmda
    - build: change how selinux contexts are detected
    - build: resolve problems with use of autoreconf
    - build: exclude pcp-zeroconf files from base package
    - build: take more control over perfevent rpm package builds
    - build: honor CFLAGS in qmake project files
    - docs: add a JSON demo similar to the existing MMV demo
    - docs: add reference to the Rust MMV project as well
    - docs: fix couple small typos on pmRegisterDerived man page
    - docs: update pmdabash man page for current file paths
    - docs: make pmdaproc text match pmwebd re authentication

pcp-3.11.10 (17 May 2017)
    - books: add missing images into the pdf builds
    - build: selinux module checking
    - build: debian build fixes
    - build: MAC OS X build fixes
    - build: Qt5 now used on all fedora releases
    - build: correctly handle LDIRT when building perl modules
    - build: create dso variant of pmdasimple
    - install: debian install fixes
    - install: Add pcp-zeroconf rpm subpackage
    - libpcp: multithreaded locking improvements
    - libpcp: provide more general features-capabilities mechanism for fds
    - libvirt pmda: add new block, perf, vcpu metrics
    - man: debian man page migrations
    - man: pmlogcheck.1: document new -w option
    - pcpqa: ongoing improvements
    - pmcd: restore context to pcp_var_run_t after pmcd start
    - pmcd: timeout countdown fix, during pmda shutdown phase of exiting
    - pmchart: fix reaction to timezone changes from pmtime
    - pmdalinux: fix resource leaks in zoneinfo code
    - pmdalinux: add Linux kernel entropy metrics
    - pmdalinux: several additional mem.zoneinfo metrics
    - pmdalinux: correct metadata for hinv.cpu.clock and hinv.cpu.cache
    - pmdammv: fix resource leaks on error paths
    - pmdaperfevent: fix leaks, incorrect free, dead code
    - pminfo: improve formatting with one-line help text error message
    - pmmgr: heap management improvements
    - pmrep: correctly handle endtime in uninterpolated mode
    - pmrep: add support for ignoring (-I) and omitting (-v) metrics
    - pmrep: cmd line improvements
    - python api: fix memory leaks
    - python api: handle non-POSIXLY_CORRECT getopt cases
    - selinux: several updates to pcp policy
    - stdpmid: reserve a domain number for Prometheus endpoint PMDA
    - zsh: Add --nowrap to the completions for pmlogcheck

pcp-3.11.9 (31 March 2017)
    - derived metrics: add defined() function
    - derived metrics: reduce memory footprint
    - derived metrics: add rescale(<expr>, <units-string>) function
    - derived metrics: extend count() for fetch errors
    - derived metrics: add mkconst() constructor
    - derived metrics: add check ? foo : bar (ternary operator)
    - derived metrics: add - operator (unary negation)
    - derived metrics: add ! operator (boolean negation)
    - derived metrics: add support for relational expressions
    - derived metrics: support double precision floating point constants
    - libpcp: new implementation for derived metric parser
    - libpcp: use correct context ID with multiple local contexts
    - pcp-tapestat: add a new tape statistics reporting command
    - pmchart: fix plot disappearance when legend turned off/on
    - pmchart: fix time stamp in metric details window
    - pmchart: don't display removed metrics in metric details window
    - pmwebd: fix graphite filtering for non-normal floating-point data
    - pmdadocker: remove unused buildversion artifacts
    - pmdaperfevent: add PMU events exported from kernel
    - pmdaperfevent: fix metrics names for the dynamic events
    - pmdalinux: convert mem.slabinfo metrics to using pmdaCache
    - pmdalinux: fix fd leak on an error path in tape metrics
    - pmdalio: drop unneeded pmcd restart from Install script
    - selinux: several updates to pcp policy
    - selinux: add el6 focused conditional checks
    - selinux: separated out docker/container policy
    - coverity: series of small code fixes across the board
    - build: overhaul the webapps packaging build extensively
    - vagrant: first cut at osxSierra base image build via Vagrant
    - vagrant: numerous cleanups and refactoring to Vagrantfile
    - containers: pcp-go-app standalone Speed-instrumented container
    - containers: add pcp-redis instrumented Redis server container
    - containers: add pcp-elasticsearch instrumented elasticsearch server
    - docs: fix pmParseUnitStr(3) summary section typo
    - docs: python updates for https://pypi.python.org/pypi/pcp/1.1

pcp-3.11.8 (17 February 2017)
    - pmdabind2: new PMDA for BIND named REST API statistics
    - pmdadocker: new PMDA for Docker REST API statistics
    - pmdalio: new PMDA for the kernel LIO subsystem (iSCSI, FCP, FCoE)
    - pmdanutcracker: new PMDA for NutCracker (TwemCache) metrics
    - pmdaredis: new PMDA for redis (REmote DIctionary Service) metrics
    - pmdalinux: additional VM metrics for zoneinfo
    - pmdalinux: add per-node memory zone protection stats
    - pmdalinux: add Linux VM KSM same-page-merging metrics
    - pmdalinux: dynamic per-CPU and per-node instance domains
    - pmdalinux: export network.interface.baudrate with 64-bit type
    - pmdalinux: export byte version of all hugepage metrics
    - pmdalinux: add several metrics recently added to /proc/vmstat
    - pmdalinux: add support for SCSI tape statistics
    - pmdaproc: switch ttyname calculation to iterate through /dev
    - selinux: new files and package for setting custom PCP policy
    - libpcp_web: support for callback-based JSON metrics extraction
    - libpcp: several archive mode instance scan performance improvements
    - pmlogger scripts: fix multi-level directory structures
    - pcp-atopsar: fix swptotal and swpfree reporting units
    - pcp-atop: fix up reporting of the network utilization
    - pmval: improve handling of shifting metric instances
    - pmns/Rebuild: rebuild PMNS if the root file is empty
    - docs: added instance domain help text for several PMDAs
    - docs: additional documentation for pmdamysql (MariaDB support)
    - docs: clarifications to the Apache2 stats export setup
    - docs: update pmdammv man pahe to mention golang bindings
    - qt tools: update MacOSX info files keys for highres displays
    - perl api: add missing error codes and local_install helper
    - python api: add missing error codes
    - containers: new pcp-standalone application container layer
    - containers: new pcp-nginx container with pmcd & Nginx setup
    - containers: new pcp-apache container with pmcd & Apache setup
    - containers: new pcp-java-app container with pmcd, Java & Parfait

pcp-3.11.7 (21 December 2016)
    - docs: pmLookupText added to PMAPI calls for _metric web API
    - build: fix qt4 builds once more, no widgets module there
    - build: update parfait and uom-se bits for jdk-1.8 use
    - build: couple of small Windows install improvements
    - build: conditionally use setuptools python module
    - libpcp_web: fix handling of 64-bit values on 32-bit platforms
    - libpcp_web: improvements to error checking
    - pmdabash: resolve some permissions issues preventing use
    - pmdalinux: add metrics about IPC message queues
    - pmdalinux: additional semaphore arrays metrics
    - pmdalinux: buddyinfo and zoneinfo mem metric updates
    - pmdalinux: add zoneinfo NUMA free mem stats
    - pmdaxfs: use persistent dm and md device names for xfs.perdev
    - pmchart: 'local:' is now the default source
    - pmchart run-away mem leak replaying multi-archive when rewinding (RHBZ 1359975)
    - pmchart: make metric details popup on double click event only
    - pmdumptext: 'local:' is now the default source
    - pminfo: allow reverse pmid name lookups, support indoms
    - pmlogrewrite: add conditional type clause (TYPE IF oldtype -> newtype)
    - pmview: changes to make pmview build with latest toolchains
    - qa: lots of fixes and improvements

pcp-3.11.6 (11 November 2016)
    - pmchart, pmtime, pmdumptext: enable use of Qt5 toolchain
    - pmchart, pmtime: switch to Qwt 6.1 for charts, widgets
    - pmchart: display data values interactively (table popup)
    - pmchart: fix signal blocking for the Qwt picker events
    - pmdalibvirt: add per-device metrics
    - pmdalibvirt: add support for new perf metrics
    - pmdalibvirt: add new balloon statistics
    - pmdalinux: add NFSv4.2 parameters to nfs4.* metric instances
    - pmdalinux: additional shared memory segment metrics
    - pmdalinux: fix network.interface.speed values
    - pmdalinux: correctly classify NBD devices and partitions
    - pmdalinux: fix units, semantics for some network.tcp metrics
    - pmdapmcd: add pmcd.sighups metric to assist signal detection
    - pmdapostgresql: no active and recovery metrics in 8.x series
    - pmda scripts: deprecate "forced_restart" from Install scripts
    - collectl2pcp: detect if input data in collectls "plot" format
    - pmlogger: fix SIGINT handling problem
    - pmlogger: allow default primary pmlogger interval to be set
    - pmlogconf: suppress $PCP_DERIVED_CONFIG processing
    - pmlogrewrite: fix small error in temporal index
    - pmrep: add support for specifying instances
    - pmrep: improve metrics collection via extend_indom
    - pmrep: fixes and other improvements to CSV output
    - pmrep: add -X "label" flag for instance-per-line output mode
    - pmwebd: fix HTTP time zones in Date:/Last-Modified: headers
    - python api: correct type of fetchgroup instance ids
    - libpcp: correct logic in __pmHasPMNSFileChanged()
    - libpcp: allow -EINTR to be returned from pduread()
    - libpcp: correct return code for derive metric help text
    - libpcp: optimise DSO lookups for local context mode startup
    - libpcp_json: fix JSON data type conversion
    - scripts: correct tempfile handling used throughout (SElinux)
    - zabbix-agent: support zabbix 3.2.x and later, transparently
    - bashrc: defend against unexpected bash completion input
    - build: annotate PCP_RUN_DIR as %ghost in rpm packages
    - build: fix a handful of Windows build issues
    - build: revamp buildbot config and Dockerfile based builds
    - docs: switch list name from pcp@oss.sgi.com to pcp@groups.io

pcp-3.11.5 (26 September 2016)
    - pmdalibvirt: statistics from guest and hypervisor machines
    - dmcache: improved err handling when lvmcache not configured
    - pmie: support expressions involving string-valued-metrics
    - pmlogger: fix several logic errors in disconnect handling
    - pcp-atop: fix SIGFPE when some kernel metrics unavailable
    - python api: add errno attribute to pmErr class
    - pmdaproc: fix double accounting in the proc.runq metrics
    - pmlogconf: add set of default Vector webapp metrics
    - libpcp_pmi: close archive in pmi_end, plugging an fd leak
    - libpcp: improvements to detection of IPv6 being disabled
    - libpcp: small portability fixes from OpenIndiana compilers
    - libpcp_pmda: change some char* function args to const char*
    - libpcp_web: completely rewo of simple http client library,
      shared library now installed and API available for all PMDAs
    - libpcp_web: support for Unix domain socket http requests
    - libpcp_web: prefer persistent connections whenever possible
    - libpcp_web: cater for both http 1.0 and 1.1 client requests
    - rc scripts: allow systemd auto-restart of all PCP daemons
    - rc scripts: ensure same-named non-PCP daemons are not killed
    - cron scripts: ignore *.rpmsave and *.rpmnew from control.d
    - zsh completions: minor tweaks, rewrite archive completion
    - build: re-instate libsystemd-journal.so as a fallback, such
      that pcp-pmda-systemd packages generated as previously done
    - build: fix debian papi pmda dependencies
    - docs: remove out-of-date section in pmdamounts(1) man page
 
pcp-3.11.4 (5 August 2016)
    - pcp2influxdb: export PCP metrics to InfluxDB
    - collectl2pcp: fix metadata and overflow issues
    - pcp-mpstat: PCP version of mpstat(1), supporting archives
    - pcp-pidstat: PCP version of pidstat(1), supporting archives
    - pmdammv: MMV version 2 format (longer metric & instance names)
    - pmdalinux: add kernel.percpu.intr count metric
    - pmdalinux: add cgroup.cpusched.cfs_{period,quota} metrics
    - pmdalinux: correctly handle Ceph RADOS RBD device naming
    - pmdalinux: add kernel.percpu.softirqs metrics (/proc/softirqs)
    - pmdalinux: filesys metrics use persistent device mapper names
    - pmdalinux: persist interrupt and softirq metric name:ID maps
    - pmdaproc: rewrite proc.psinfo.ttyname metric handling (this
      fix significantly reduces probability of proc PMDA timeouts)
    - pmdaproc: correct handling of command names with whitespace
    - pmdaproc: include threads in hotproc results, if enabled
    - pmdads389log: use "dirsrv" as default user account
    - scripts: fix failure status handling in PMDA Install scripts
    - pmdaoracle: fix Install script failure diagnostic message
    - pmlogger: auto-reconnect to pmcd whenever possible
    - pmlogger: fix broken logic for primary control file
    - pmlogger: validate metrics before generating MARK records
    - pmnewlog: improve checking of pmlogger processes
    - pmlogger_check: additional hardening against failure cases
    - pmlogconf: enable logging of small core set of XFS metrics
    - pmchart: fix diagnostics for archives from the same host
    - pmcd: improve robustness in the face of accept(2) errors
    - libpcp: guard against accept() returning an AF_UNSPEC
    - libpcp: correct __pmSecureClientHandshake() error handling
    - libpcp: make pmcd-client protocol safer when timeouts occur
    - libpcp_web: a new web library, with JSON-pointer (RFC 6901)
      support for extracting values from JSON - see pmjsoninit(3)
    - libpcp_pmda: allow string caches to be saved also
    - python api: support for containers
    - python api: support for local context mode
    - python api: interface tm class to struct_time for strftime
    - pmrep: improve command line parsing
    - pmrep: support configuration file sources
    - pmrep: support local context mode
    - pmrep: add support for containers
    - pmrep: default timezone handling fix
    - pmrep: allow sub-second sampling intervals
    - pmrep: improve robustness of CSV output
    - pmrep: fix unitinfo for mixed type metrics
    - pmrep: fix archive end time reporting
    - pmrep: cwd, user-specific config, then system-wide config
    - pmdiff: rework the sort/join use for portability
    - pminfo: increase default batch size
    - pmafm: support standard --help option
    - pmie: honour SIGINT while parsing rules
    - zsh completion: multi-archive support
    - zsh completion: support pmafm/pmie2col/pmlogcheck/pmloglabel
    - zsh completion: --container improvements
    - zsh completion: fix handling of pcp(1) subcommands
    - build: ensure man pages are not built if unnecessary
    - build: look for libsystemd not deprecated libsystemd-journal
    - build: rearrange deb order of depending on python3 modules
    - build: add missing python debian package shlib dependencies
    - build: remove build-essential packages from debian/control
    - build: add to ds389{,log} RPM package dependencies
    - build: do not include .gitignore in installed file set
    - build: fix declarations for deb graphite export package
    - build: create nssdb directory with rpm spec packaging too
    - docs: fix pmmgr(1) path typo
    - docs: updates to pmrep configuration section
    - docs: update pmns(5) domain table to match stdpmid

pcp-3.11.3 (17 June 2016)
    - zsh: pcp command auto-completions for the zsh(1) shell
    - pcp-ipcs: new command to show inter-process communication
    - pmdalinux: add maximum memory bandwidth per numa node metric
    - pmdalinux: update max numa bandwidth iff the .config changes
    - pmdalinux: add metric about current shared memory segments
    - pmdalinux: ipc shared memory swap attempts/successes metrics
    - pmdalinux: add MSG_INFO and SEM_INFO ipc metrics
    - pmdaproc: fix typo in name of proc.memory.vmhw{n,m} metric
    - pmdaproc: switch to external instances without arguments
    - libpcp, pmcd, pmproxy: client certificate support for secure
      connections and add a PMCD_REQUIRE_CLIENT_CERT option
    - libpcp: allow self-signed server certs in secure connections
      optionally via PCP_SERVER_SELF_CERT environment variable
    - libpcp: correctly propogate indom in mixed derived metrics
    - libpcp: allow name of server certificate to be customized
    - libpcp: plug memory leak in derived metrics error handling
    - libpcp: drop dup-metric warning for logged derived metrics
    - collectl2pcp: refine proc names, support for more metrics
    - pmcd: improve interrupted pmcd/pmda communication resilience
    - pmcd: make probe-style connection error a debug diagnostic
    - pmdapapi: defensive programming improvements
    - pmdaperfevent: current memory bandwidth perf derived event
    - pmdaoracle: allow explicit host name and port specification
    - pmdaoracle: allow potentially high latency query disabling
    - python pmcc: cater for additional sample needed by counters
    - pmrep: fix infinity handling
    - mmv: several python api wrapper fixes
    - rc scripts: really use default pmcd timeouts by default
    - rc scripts: no longer allow stopping pmie/pmlogger from cron
    - rc scripts: add primary (local) pmie concept to pmie
    - misc: add --version/-V option to several more commands
    - pmlogextract: fix metadata checking for duplicate names
    - pmlogconf: move atop nfsclient metrics into own config
    - pmwebd: allow use of compressed archives as nature intended
    - build: fix pcp-python vs pcp-python3 deb package contents
    - build: remove duplicate or unneeded header file checking
    - build: resolve rpm multilib fallout from printf vs configure
    - build: resolve Windows build fallout from timezone changes
    - build: correct logic bug in builddefs INSTALL_MAN macro
    - build: fix configure test for perl Net::SNMP module
    - build: Fedora mandates a build-dep on perl-devel for pcp
    - build: improve command-check error reporting in configure.ac
    - build: new pcp-devel rpm package with tools/docs
    - build: drop python dependency from pcp rpm package
    - build: redo the generation of debian control file
    - build: reinstate infiniband PMDA optional deb packaging
    - build: don't double-up on default-on deb monitoring services
    - build: fixes to the packaging for OpenMandriva
    - docs, pmie: replace xwsh with xterm use throughout
    - docs: update pmie man page references to oracle metrics
    - docs: improve the sample code in the python mmv module
    - docs: added tutorial about new secure connection features
    - docs: use markdown for README/INSTALL formatting

pcp-3.11.2 (29 April 2016)
    - pmdalinux: add per CPU network.softnet metrics
    - pmdaoracle: connect to pmcd as early as possible
    - pmdaperfevent: optional scaling of derived events
    - pmdaperfevent: alternate event groups for derived events
    - pmdaelasticsearch: restrict to local node metrics by default
    - pmdaproc: cgroup blkio throttle throughput+iops metrics
    - pmdaproc: fix per-process scheduler metrics (type+semantics)
    - pmdaroot: add check for config.v2.json Docker 1.10+ files
    - pcp-collectl: fix missing network.interface metric handling
    - pcp-iostat: add -R flag for device name regex matching
    - pcp-iostat: add -G flag for sum, avg, min or max statistics
    - pcp-iostat: add -x flag to skip idle devices
    - libpcp: fix pmcd-context-sharing refcnt and memleak bug
    - libpcp: add support for permanent, global derived metrics
    - libpcp: fix a multi-archive context error path memory leak
    - libpcp: increase discovery probe thread stack sizes
    - libpcp: rework push and pop of TZ values into environment
    - pmcd: usability improvements to pmda restart
    - pmieconf: tweak pcp.pmda rule to detect persistent failures
    - packaging: python3 debian package
    - packaging: optional vector webapp debian package
    - images: switch to DFSG-compliant licensing for GUI icons
    - pcp_completion.sh: add pmrep support to bash completion
    - derived metrics: add derived iostat metrics below disk.*
    - pmchart: split out the Iostat view into SD, DM and MD
    - pmwebd: better support for some older MSIE browsers
    - python api: improve the to-string function for struct tm
    - pmrep: handle Py3 BrokenPipeError in Py2 compatible manner
    - docs: updates to the pmdajson README file

pcp-3.11.1 (18 March 2016)
    - libpcp: multi-archive contexts (directory or comma-separated)
    - libpcp: fix corner case in loading PMNS causing duplicates
    - libpcp: fix pmLoadDerivedConfig return code, man page updated
    - libpcp: fix initialization error in roll-your-own TPD (MacOSX)
    - libpcp_import: new pmiPutMark() API to write <mark> records
    - libpcp_import: check timestamp ordering in pmiPutResult too
    - pmieconf: rule to automate restarting of unresponsive PMDAs
    - pmlogconf: automatically record Oracle database metrics
    - pmlogconf: automatically record application mmap'd metrics
    - pmdadarwin: add a hinv.machine metric like other platforms have
    - pmdaelasticsearch: adjust to deal with elasticsearch API change
    - pmdaopenbsd: first working version, basic kernel metrics
    - pmdaoracle: Oracle database metrics available and updated
    - pmdaoracle: improve error handling on disconnect/reconnect
    - pmdalinux: fix metric units for swapdev.priority metric
    - pmdalinux: fix interrupts data types for big endian hosts
    - pmdalinux: require privileged client for slabinfo metrics
    - pmdalinux: support for MD driver statistics and status
    - pmdammv: name mmv control metrics with standard convention
    - pmdaperfevent: add extension for perf derived events
    - pmdapmcd: restrict pmcd.services to checking known pcp services
    - pmdaproc: fix possible sigsegv with unexpected refresh order
    - pmdasample: add sample.negative metrics for test coverage
    - pmdaslurm: add allocated cores metric
    - pcp2graphite: add an option to specify pickle protocol
    - pcp2graphite: use cPickle instead of pickle for speed
    - pcp2graphite: send all metrics at once in pickled mode
    - pcp-vmstat: wrapper for pmstat to be more vmstat-alike
    - pcp-iostat: uninterpolated archive replay with -u option
    - pcp-iostat: tweak syntax used for old python versions (2.6.6)
    - pcp-iostat: signal handling improvements to dodge warnings
    - pcp-iostat: add -P flag for setting precision (ala pmrep)
    - pcp-dmcache: dynamic lvname width to avoid truncation
    - pmie: updates to the PATH handling for pmie shell actions
    - pmrep: fix extended header times with -O, and sample count
    - pmrep: correctly handle the end of the time window
    - pmrep: improve stdio flushing to avoid exception errors
    - pmrep: fix timezone handling and reporting
    - pmrep: adjust exit codes for consistency
    - pmrep: do not issue fsync, makes no sense here
    - pmrep: finalize zabbix transfers in all cases
    - pmsignal: provide a targetted program mode, -p option
    - pmsignal: make dry-run mode show the full command line
    - pmsocks: use the wrapper script from the tsocks package
    - pmval: correct handling of real negative values
    - perl api: fix input-type-socket connection logic typo
    - perl api: merge pmdalogger logic fix for input string handling
    - zbxpcp: add derived metrics configuration support
    - zbxpcp: support both Zabbix 2 and 3 versions simultaneously
    - dbpmda: add -f option to skip .dbpmdarc processing
    - collectl2pcp: write a <mark> record between each input source
    - build: pmdasnmp is now conditionally built as nature intended
    - build: install pmlogconf where it will be found, like pmieconf
    - build: fix rpmbuild warnings about symlink attrs
    - build: fix compiler warnings from perl PMDA module
    - build: fix af_unix-related solaris build failure
    - build: rework Makepkgs configopts logic for rpm/dpkg confusion
    - build: allow rpm signing, bintray upload tweaks (gpgenabled=1)
    - build: non-verbose reporting on Makepkgs deb packages too
    - build: add /usr/local/bin to search path for new Mac OS X Qt
    - packaging: several Debian build depencency corrections
    - porting: numerous OpenBSD portability changes across the board
    - porting: numerous Mac OS X fixes and testing (incl a pmpython)

pcp-3.11.0 (29 January 2016)
    - containers: add a pcp-pmwebd container image
    - pmcd: start PMDAs via pmdaroot, allowing restart on PMDA
      failure without restarting pmcd itself
    - pmcd: tenfold speed up of the shutdown process
    - pmcd: ensure startup before zabbix-agent, with systemd
    - pmdafreebsd: use getifaddrs() for network interface
    - pmdalinux: fix /proc/interrupts parsing on s390x platforms
    - pmdalinux: fix i386 buffer overflow in softnet stats
    - pmdalinux: support additional vmstat kernel metrics (virt
      balloon, transparent-huge-page zero page alloc counters)
    - pmdaxfs: support the per-device XFS metrics
    - pmdanamed: fix SELinux AVC denials during Install
    - pmdavmware: updates to work with current VMWare perl API
    - libpcp: improvements to derived metrics error handling
    - libpcp: rework interp logic arond <mark> records
    - libpcp: fix bug in interp mode record caching
    - libpcp: pthread_mutexattr_destroy, pthread_mutex_destroy calls
    - libpcp: added a new fetchgroup API
    - libpcp: fix dup-context-with-attrs memory corruption bug
    - libpcp: fix derived metric PMNS navigation mem leak
    - libpcp: unconditional registration of anon (event.*) metrics
    - pcp-iostat: use py3 and py3 compatible pipe exception handlers
    - pcp-iostat: improve incorrect counter rate conversion
    - pcp-iostat: improve BrokenPipeError exception handling
    - pmmgr: add general monitor-program launching option
    - pmmgr: resolved a couple of small memory leaks
    - pmrep: fix first sample reporting, instant/discrete metrics
    - pmrep: fix string valued metric reporting, with python3
    - pmval: improve reporting in the region of <mark> records
    - pmwebd: add an option to disable service advertising
    - pmwebd: support for http compression
    - pmwebd: add units/sem to legend in graphite/png mode
    - pmwebd: enable graphite image-mode caching via redirection
    - pmwebd: add an option for alternative name encodings
    - sar2pcp: support additional mem.util metrics
    - docs: updates to the system CPU performance tutorial
    - packaging: add missing dependencies on some perl modules
    - packaging: drop the pcp-compat subpackage

pcp-3.10.9 (16 December 2015)
    - pmrep: swiss-army-chainsaw metric reporting utility
    - pmstat: fix sigsegv from uninit'd var use in gui mode
    - pcp-iostat: handle transient devices more cleanly
    - pmwebd: deprecate local context and unix: access
    - pmwebd: add _store protocol support as in pmwebapi(3)
    - pmlogrewrite: change severity of DYNAMIC_PMID checks
    - pmlogger: improvements to derived metric handling
    - libpcp: fix a missed context unlock case
    - libpcp: allow exclusive flag to be passed via hostspec
    - python api: resolve series of corner cases in python APIs
    - libpcp: finer-grained manipulation of pmcd timeouts
    - libpcp_pmda: plug memory leak with dynamic metric names
    - pmdajson: support counter and discrete metrics
    - pmdanetfilter: update to use current /proc hierarchy
    - pmdaroot: optimised name lookup for direct match case
    - pmdaroot: rework partial-systemd-install detection logic
    - pmdalinux: add support for guest nice CPU time 
    - pmchart: update vCPU view to account for guest_nice time
    - pmdalogger: fix buffer overrun after read()
    - pmevent: consolidate code, merge into pmval sources
    - pmdapipe: command output event capture PMDA
    - sar2pcp: add support for sysstat-11.0.1 commands
    - pmdafreebsd: numerous updates and new kernel metrics
    - zbxpcp: Zabbix Agent loadable module for pcp metrics
    - build: remove all dynamic library loading during build
    - build: switch Mac OS X packaging to /usr/local over /usr
    - build: FreeBSD porting and QA work across the whole tree
    - build: add gcc/gcc-c++ build requires for Fedora packages
    - build: refactor pmda.h to separate out pmdaroot internals
    - rc scripts: ensure no tmp_t selinux context on configs

pcp-3.10.8 (30 October 2015)
    - pmdaslurm: new PMDA exporting HPC scheduler metrics
    - pmdalinux: correctly report high speed network link speeds
    - pmdalinux: support for wireless network interfaces
    - pmdalinux: add support for NVME devices
    - pmie: fqdn functionality, added %c for action strings
    - pmlogextract: runtime reducing instance optimizations
    - pmlogrewrite: metric name lex pattern change
    - pmlogger: change semantics for first logging operation
    - rc_pmlogger: shell escape for control file "directory" field
    - pcp-atop: update with latest atop features (esp. NFS)
    - pcp-atop: fix initial fetch time offset for the globals
    - pcp-atop: fix -b/-e options to match man page description
    - docs: update Quick Ref Guide with pcp-atop/pcp-atopsar
    - docs: remove outdated pmatop man page, see pcp-atop(1)
    - python api: fix local-context mode type error
    - python api: improve handling of non-ascii instance names
    - python api: simple debugging interface to access pmDebug
    - python api: ensure an interruptible sleep is used
    - python api: add single host/archive pmOption setter methods
    - libpcp: add $PCP_DEBUG to initialize pmDebug
    - libpcp: extend __pmAF* family with __pmAFsetup
    - libpcp: resolve false-context-sharing corner cases
    - pcp2graphite: provide a local-context mode option
    - pmmgr: add the subtarget-containers option
    - pmmgr: add pmlogreduce support
    - rc_pmcd: be more careful with auto-install/-remove
    - pmcd: allow dynamic switching of monitored containers
    - pmdapmcd: add pmcd.client.container diagnostic metric
    - pmdaroot: new metric mapping containers to their cgroups
    - pmdaroot: add cgroup heuristics for non-systemd setups
    - pmdaroot: fix timeliness of creation of socket connection
    - pmdads389: add normalized dn cache metrics
    - pmdads389: instantaneous vs discrete metric corrections
    - pmdads389: send correct error codes when not connected
    - pmdamounts: correct a number of 32-bit unsafe calculations
    - pmdanfsclient: improve PMDA error handling
    - pmdaperfevent: fix invalid metric names
    - pmdaperfevent: add reference clock cycles for NHM and WSM
    - docs: added upgrade instructions to pmdaperfevent man page
    - containers: bindmount /dev/log for syslog messages
    - build: fix FreeBSD 10.2 with dtrace probes auto-enabled

pcp-3.10.7 (16 September 2015)
    - containers: added the pcp-pmie container
    - containers: remove /proc bind mount, conflicts with --pid=host
    - pcp-atopsar: new PMAPI sar command based on http://atoptool.nl
    - pcp-uptime: fix sigsegv from missing metrics on first fetch
    - pmchart: fix memory corruption when restoring Saved Hosts list
    - pmchart: fix sigsegv opening a view when no archive available
    - rc_scripts: pmie/pmlogger - logged, no longer send cron email
    - rc_scripts: pmie/pmlogger - support for control.d directories;
      backward-compatible /etc/pcp/{pmie,pmlogger}/control extension
    - rc_scripts: pmcd/pmlogger - provide a localhost-only setting
    - pmdamic: new PMDA for Intel MIC card metrics
    - pmdaproc: export CPU scheduler cgroup metrics from cpu.stat
    - pmdalinux: export IPv6 kernel metrics from /proc/net/snmp6
    - pmdalinux: fix variable types for several disk metrics
    - pmdalinux: printf int64_t and/or uint64_t support (for softnet)
    - pmdajson: updates to allow use with python 2.6 installations
    - pmcpp: support inline shell command execution
    - pmwebd: multiple metrics/instances per log graphite mode speedup
    - libpcp: use public domain getdate instead of gnulib version
    - libpcp: optimise archive decompression for common operations
    - libpcp: revert pdubuf tsearch-based optimisation, fails on OSX
    - pmieconf: add dmthin pool utilization monitoring scripts
    - python: more care taken in pmOptions destructor (could sigsegv)
    - windows port: 64-bit format specifiers throughout code base
    - windows port: fix a libpcp dlsym bug and IPC on Windows
    - windows port: fix a python crash when free'ing resources
    - pmdawindows: fix mem.cache.bytes metric kernel extraction
    - perl pmda module: fix double free error in local_sock() routine
      (observed to cause pmdamemcache crash during error path exit)
    - pmdanginx: correct errors returned for not-running nginx daemon
    - pmdamounts: add mount fs usage metrics via statvfs(3)
    - pmdapostfix: improve error handling for files vs directories
    - pmdanfsclient: fix typos in metric value parsing routines
    - pmlogconf: remove tool-specific intervals from tool templates
    - pmlogconf: add nginx, elasticsearch and memcache configs
    - docs: update quickref guide for easier command pasting
    - docs: update references to init scripts, pmlogger control files
    - docs: update pmdanginx(1) describing nginx configuration needs
    - build: configure.ac preserves optional gcc flags in the build
    - build: cater for builds using the latest Vector (now 1.0.2)
    - build: fix LGPL license annotations in headers+libraries
    - build: current FreeBSD toolchain updates

pcp-3.10.6 (4 August 2015)
    - rc_scripts: use syslog over email for error notification
    - libpcp: catch bad valfmt encoding in interp.c (SGI BZ 1100)
    - libpcp: $PATH-alike lists for derived metrics configurations
    - libpcp: add instant() method for derived metrics
    - libpcp: fix locking problem in pmGetConfig(3) routine
    - python: fix bug in pmsubsys causing timestamp to reset.
    - misc: several Coverity scan bug fixes, across the board
    - containers: add version and arch to container image filenames
    - containers: add crontab entries for containers
    - containers: don't fix pcp user since pcp-base already does
    - pmlogcheck: teach it about valfmt badness
    - pmcpp: major revamp for pmlogger use (include files & macros)
    - pmcpp: speed and robustness enhancements
    - pmdadm: fix 2 dmcache metrics encoding on big-endian machines
    - pmdalinux: fix the mnt/net namespace setns call ordering
    - pmdalinux: corrections to the linux disk statistics metadata
    - pmdalinux: ipc shared memory metrics for total, rss, and swap
    - pmdalinux: new network.softnet metrics (/proc/net/softnet_stat)
    - pmdaproc: reduce log spam in pmdaproc unknown state case
    - pmdapostgresql: separate DB username from O/S username
    - pmdapostgresql: major overhaul for different versions schemas
    - pmdapostfix: general log parsing improvements
    - pmdajson: handle instances better in the JSON PMDA.
    - pmdajson: default to instantaneous metrics and do not attempt
      to guess at semantics from type.
    - pmdaperfevent: fix typo causing memleak/worse on an error path
    - pmdadtsrun: fix parenthesis botch in Perl code
    - pmdate: correct year and month offset problems at end of month
    - pmlogconf: stop enabling percpu interrupt metrics by default
    - pmlogger: improve handling of stale primary socket links
    - pmlogger: integration with pmcpp
    - pmwebd: elide repeated indom searching in graphite mode
    - pcp2graphite: archive mode, reused connections, and python3
    - pcp-atop: correct the reporting of some system memory metrics
    - pcp-python: allow preferred-python switching at runtime
    - pcp-collectl: fix an interrupt subsystem crash
    - pcp-collectl: break out append statements for valid syntax
    - pcp-collectl: fix recording of data to archive folios
    - iostat2pcp: fix off-by-one error in disk rawactive metrics
    - docs: corrections to pmdaperfevent man page
    - docs: add some missing text to pmGetConfig man page
    - docs: correct references to pre-v3 CC-BY-SA license
    - docs: update book builds for current Publican variants
    - docs: add derived metrics section to guide.html
    - rpms: pcp-collector meta-package default-enables pmcd+pmlogger
    - build: fix dependency problems causing parallel make races
    - build: pcp containers build support via Makepkgs
    - build: ensure pmcollectl is installed, man page updates
    - build: correct rpm package dependency on pcp-libs version
    - build: disable autofsd-probe on (most) platforms, unneeded
    - build: allow pmdajson configure on/off build overrides
    - build: rework configure test for ps(1) output formats
    - build: install python-pcp in pcp-monitor container
    - build: get native Solaris builds going again
    - build: get native Illumos builds going again
    - build: get native Windows builds going again

pcp-3.10.5 (15 June 2015)
    - packaging: rebuild pmns in %post in fedora.spec
    - build: changes for SUSE SLES 12
    - ds389log: fixes to match updated logconv.pl
    - build: realpath not needed, and not there on older platforms
    - build: fix configure typo causing accidental books build
    - packaging: fedora spec updates to be more consistent with Makepkgs
    - build: add ppc64le to rpm 64bit lib macro list
    - libpcp: pmdaCache: hash determinism across compilers/platforms
    - pmda proc: Proc metrics depend on page size
    - pcp-atop: fix folio recording replay with DM indom
    - pcp-atop: fix bounds checking on disk names (valgrind)
    - pmdaproc.sh: ensure pmloggers not started if disabled
    - json pmda: tolerate json array instances that are missing
    - pmnewlog: usage tweaks
    - packaging, build: json pmda: make build and packaging conditional
    - configure: add /bin/sh as possible pid==1 candidate
    - pmlogger: initialize linger
    - pmdalinux: Deprecate hinv.nlv and hinv.map.lvname, add hinv.map.dmname
    - python: fix bug found by qa/739, unguarded destructor call
    - pmlogger: add comment explaining -o => opts.Lflag usage
    - pmnewlog: clean up usage message
    - pcp-atop: implement record mode functionality (-w option)
    - pcp-atop: resolve a print-buffer overflow on large I/O values
    - build: src/include/builddefs.in: promote QA SUBDIRS
    - pmie: prevent premature rule evaluation in pmie live mode
    - pmlogger: add initial support for running in local context mode
    - rc scripts: Use full path to pmlogger in pmlogger_check
    - containers: Use pcp-base as the base image for all other PCP containers
    - containers: introduce pcp-base container, for layering
    - pcp-atop: reading from PCP archives now operational
    - rc scripts: Don't fork pmcheck co-processes in a container environment
    - pmlogconf: use the correct dm metrics in the atop set
    - pmtime: further workarounds for App Nap on Mac OS X
    - pcp-atop: archive mode and md/lvm device support
    - pmie: fix for ruleset UNKNOWN case
    - pmie: add new 'instant' operator, with doc updates
    - pmda json: Skip sources with the same name in the JSON PMDA
    - pmlogger_check: re-process every logconf group on config updates
    - pmlogconf: qa and other updates following recent additions
    - pmfind, pmsleep: Use sig_atomic_t within signal handlers
    - pmda json: Add python 2/3 compatibility fixes
    - packaging: ensure pmiostat and pmatop symlinks end up in system-tools
    - pcp-atop: feature-filled PMAPI version of atop
    - containers: configuration of optional PMDAs in pcp-collector container
    - containers: prototype Dockerfiles and build infrastructure (not integrated)
    - build: retire old pmtop sources and man page
    - build: allow for multiple man pages below one src subdir
    - pmdaproc: add two /proc/pid/status metrics, used by atop
    - pmdaproc.sh: fix temp file handling
    - packaging: Mirror pcp.spec.in package into fedora.spec
    - pmdalinux: restore pmlogrewrite config file name
    - build: add struct declarations for application headers
    - build: add ncurses configure checking via pkg-config for console tools
    - packaging: debian: add missing pmGetOptionalConfig.3.gz entry
    - pmda linux_proc: cleanup up the jiffies -> msec calculations
    - linux pmda: fix up types for some disk i/o metrics
    - jbd2 pmda: add pmlogrewrite support for KERNEL_ULONG metrics
    - pmlogextract: fix additional corner case for -d
    - pmdalinux: code refactoring, common source files for ipc metrics
    - pmdaroot: Fix NULL pointer deref for initial root_container_search(NULL)
    - pmdaproc: ensure environ_buf buffer correctly setup on refresh
    - docs: correct the pmmktime(3) return code - not a pointer
    - pmie: add quiet mode to suppress default diagnostics
    - python pmda api: Fix problems when returning fetch errors
    - pcp.sh: ensure usage always generated via --help option
    - pmdas: handle multiple pmchart config files for pmda installs
    - pcp-shping: report shell-ping availability/response times
    - pmda linux proc: Fixup some of the time types in linux_proc descriptors
    - pmda json: Ignore cache load erros, fix refresh metric bug
    - pmda json: Improve the JSON PMDA by use of indom caches
    - libpcp python: Improve indom cache handling, add Add pmdaCacheResize()
    - libpcp: add a pmGetOptionalConfig(3) for safe use in DSOs
    - pmdaroot: fix order of pmdaConnect/Init for slow start case
    - build: improve parallel builds, use make %{?_smp_mflags}
    - pmdaroot: Add some additional DBG_TRACE_ATTR debug printfs
    - build: update mac plist properties, attempt an appnap workaround
    - pmdaroot: fix race and segv with short-lived containers
    - docs: man/pmda.3: document the hidden variables in pmdaproc.sh
    - pmdaproc.sh: rework, retire perl_args and python_args
    - pmdalinux: fix container issues, especially with networking metrics
    - libpcp: allow duplicates pmns names
    - build: work-around bugs in RPM filter-requires
    - build, packaging: lots of conditional Requires clauses
    - packaging: Wrap pcp-pmda-rpm and pcp-gui with proper %if checks
    - docs: Fix location of pcp-webjs gitweb in the pcp guide
    - build: spin-rawhide: Extract version info from VERSION.pcp
    - build: add rpm conflict handling for pcp command in librapi
    - packaging: Add pcp-doc to pcp-compat deps to avoid losing man pages on upgrade
    - packaging: Rename pcp-pmda-nvidia rpm to pcp-pmda-nvidia-gpu
    - perl binding: refine perl PMDA interface error codes
    - build: pmda.h: refine PMDA_PMID macro
    - packaging, build: rpm packaging split - split out most PMDAs
    - build: Add configure psproc check for /bin/bash for open build systems
    - pmdaproc: consistent error code for missing proc.psinfo metrics
    - pmda systemd: re-enable with reworked regex in file selection
    - packaging: add pcp-compat package for back-compat upgrades
    - pmdapostfix: logfiles are root-readable only, drop setuser (RHBZ #1213724)
    - pcp-lvmcache: added link, an exact synonym for pcp-dmcache
    - docs: add a configure switch for publican brand support
    - libpcp: add pmGetVersion
    - rc scripts: more cautious approach to using systemctl for Debian
    - docs: describe hotproc in the quick reference guide
    - pmda json: add an empty "trusted_directory_list" to default config file
    - libpcp: new error code PM_ERR_BADSTORE for malformed pmstore input
    - hotproc: update the pmdaproc manpage with hotproc info
    - hotproc: Allow config file reload
    - hotproc: disallow hotproc.conf with global write mode
    - pmda postfix: bugfix to report mails submitted using mail program
    - hotproc: support disabling via pmstore
    - pmdaproc: add help text for new cgroup mem metrics
    - pmiostat: Add pmiostat to the list of tools known to pmafm
    - pmda root: fix for root_root installer problem on Mac OS X
    - pcp-monitor and pcp-collector 'meta' packages to pcp.spec.in
    - libpcp: libpcp/check-statics: more Mac OS X changes
    - pmda postfix: Force restart for postfix pmda installation to change gid
    - libpcp: p_profile.c: add fault injection points in libpcp_fault
    - pmnscomp: remove code ... no longer used - deprecated
    - libpcp: avoid pmcpp when loading PMNS for the most common usage
    - pmda rpm: check return status from pthread_create
    - hotproc: add guards for missing ioentry
    - pmdumplog: fix cmdline filename handling
    - pmdaproc: additional proc memory, namespace and memory cgroup metrics
    - python: exception handling improvements
    - pmdamounts: fix stack corruption for large mount options
    - libpcp: pmns.c pmNameID and pmNameAll error handling fix
    - pmwebd: add -I option for opening directories-as-archives for graphite
    - pmwebd: graphite-png rendering: tweak graphics
    - pmwebd: compressed archive mitigation, skip them in graphite mode
    - pmwebd: crash fix: png-rendered multiple graphs with corrupt archives
    - pmwebd: handle exit_p requested during graphite data-mass gathering
    - pmwebd: fix little memory leak for fts() during interrupted rendering
    - pmwebd: add a "-i MIN-INTERVAL" option for graphite time-precision control
    - hotproc: cleanups, gracefully handle no schedstat, config cleanup
    - pmiostat: accumulate -x arguments, remove duplicate error handling
    - ds389log: init metrics with PM_ERR_AGAIN not zero
    - pmdads389[log]: make configuration variables actually configurable
    - pmdads389: make more resilient to server failures
    - libpcp: interp.c: massive performance improvement in archive replay
    - build: scripts to set up a buildbot 
    - libpcp: pmLookupName() error handling, especially for dynamic metrics
    - hotproc: fix an off by one error for fname configs
    - rc scripts: Allow more than one .NeedInstall to occur at a time
    - pmie: remove unnecessary 2 second delay at live startup
    - pmiostat: usage message cleanup
    - build: pmchart: porting work to current macosx compiler
    - packaging: Build pmns in RPM spec for faster startup

pcp-3.10.4 (15 April 2015)
    - pmdalinux: fixed kernel.pernode.cpu.* for systems with only one CPU.
    - pmdadm: merged in pmdadmcache, added thin provisioning metrics
    - pmcd: fix failure to recover from errors sending client attrs
    - pmcd: don't advertise presence if -A specified.
    - pmchart: fix metric/host selection for containers
    - python build: support for epel5 builds using python26 packages
    - python api: do not assume unicode is only for python3
    - stdpmid: updated the reserved domain number ranges
    - libpcp: fix instance request memory corruption for large requests
    - libpcp: multi-threading fixes and pdubuf optimisations
    - libpcp: fix Avahi-related memory corruption
    - libpcp: fix an interpolation performance issue
    - libpcp: fix getopt --hostsfile parsing
    - libpcp: tighten error handling in __pmGetArchiveEnd()
    - pmwebd: enable multi-threading by default
    - pmwebd: correct _indom array-allocation logic
    - pmwebd: additional ACAO headers to resource responses
    - pcp2graphite: python version neutral handling of stdout flush
    - pcp-verify: a new utility for verifying collector setups, especially
      for use with containers
    - pcp sh: fix tempfile leak with sub-commands, refactor pcp-summary
    - rc scripts: ensure rundir directories created when needed
    - rc scripts: ensure tmpfiles not leftover from helper scripts
    - rc_pmcd: add .NeedRemove option for pmcd start script also
    - pmpause: lightweight pmsleep extension for a pmcd container
    - pmlogcheck: merge previous versions, added documentation and tests
    - pmdumplog: new options and new log reading logic
    - build: add missing configure check for pkg-config requirement
    - build: Dockerfile for a pcp-pmcd container image based on Fedora
    - build: get Mac builds going on current Mac OS X (10.9/10.10)
    - configure: fix AC_MSG_ERROR parameter passing
    - packaging: fix default pmlogger/pmie configs directory location
    - packaging: simplify rpm dependencies on pcp-webjs package via %dir
    - packaging: relax the allowed-libpfm-version checks a little

pcp-3.10.3 (2 March 2015)
    - enhancement: ongoing improvements to the native containers support
	https://pcp.io/docs/lab.containers.html
    - enhancement: pmlogger on-the-fly one-shot recording
    - doc: containers tutorial.
    - build: new scripts directory. Contains useful scripts for project
      management tasks.
    - build: python-pcp no longer required.
    - build: python3 now used where available.
	https://bugzilla.redhat.com/show_bug.cgi?id=1194324
    - build: new --with-papi configure option.
    - qa: lots of improvements for robustness, portablity and determinism.
    - qa: duplicate PMNS names allowed by default.
    - pmdapapi: add papi refresh/read batching: papi.control.batch.
    - pmdalinux: improve /proc/cpuinfo parser for irregular formats.
    - services: ensure that they start after pmcd.
    - libpcp: allow duplicate names to map to the same PMID by default.
    - libpcp: duplicate PMNS names allowed by default.
    - pminfo: duplicate PMNS names allowed by default. Reverse the semantics of
      the -n and -N options.
    - pmlogger: duplicate PMNS names allowed by default
    - dbpmda: duplicate PMNS names allowed by default
    - pmcd: duplicate PMNS names allowed by default. Reverse the semantics of
      the -n and -N options.
    - pmdumplog: duplicate PMNS names allowed by default.
    - pmlogreduce: duplicate PMNS names allowed by default.
    - pmlogsummary: duplicate PMNS names allowed by default.
    - pmlogcheck: duplicate PMNS names allowed by default.
    - pmevent: duplicate PMNS names allowed by default.
    - pmchart: add an extra optional chart colour scheme.
    - solaris PMDA: duplicate PMNS names allowed by default.
    - ganglia2pcp: new utility.
    - bug fix: pmlogger: signal delivery may lead to deadlock
    - bug fix: libpcp: AF functionality has posix-signal-unsafe elements

pcp-3.10.2 (23 January 2015)
    - PMAPI extension: pmParseUnitsStr. Includes python binding
    - libpcp/pmcd: protocol-level support for containers
    - libpcp_pmda - add pmdaInterfaceMoved() function
    - pmdalinux: improve help text for network metrics
    - pmdalinux: remove support for devfs device names - replaced by udev
    - pmdalinux: rework hinv.map.scsi for longer scsi device names and indom
    - pmdalinux: switch to running as a daemon, as root
      persistence
    - activeMQ: new pmda
    - CIFS: new pmda (Common Internet File System)
    - pmda unbound: a new PMDA for the Unbound DNS resolver
    - pmdapapi: add configure conditional to test for
      PAPI_component_info_t->disabled
    - pmdapapi: add papi.available.version to output current PAPI version being
      used
    - pmdapapi: other new metrics
    - pmdapapi: drop root requirement for less sensitive papi.available metrics
    - pmdapapi: use dynamic metric description
    - dbpmda: extend string syntax to include both " and ' delimiters
    - rc_pmcd: execute _pmda_setup in the background
    - Solaris build improvements:
      - Support for Solaris symbol versioning
      - use a libcpp exports comment style that works for both Linux and Solaris
    - pmwebd: buildability fixes for illumos-based distros
    - pmda root: a privileged pmcd co-process
      Initial implementation of "pmdaroot", a helper co-process
      for pmcd that runs with elevated privileges and is able to
      (well, will be able to soon) offer services to pmcd and to
      other PMDAs where root access is required
    - pmdaroot/libpcp_pmda: interfaces for changing namespaces
    - pmlogextract robustness improvements
    - add pcp2graphite
    - fix security PR1101: unprivileged access to linux proc.* metrics on modern
      kernel
    - Fedora 1180109: pmda cleanup was killing unrelated python and perl
      processes

pcp-3.10.1 (1 December 2014)
    - pmda proc: rework existing per-cgroup metrics - no
      longer use dynamic metrics, allowing arbitray names
    - pmda proc: add many new per-cgroup metrics, audited
      definitions (units, etc) for existing metrics.
    - perfevent pmda: new libpfm hardware counters agent
    - papi pmda: switch to using dynamic metrics
    - papi pmda: multiplexing, auto-enabling options
    - papi pmda: added a new papi.control.reset metric
    - pmwebd: improve /metrics/find for graphite dashboard
    - pmwebd: $PCP_SHARE_DIR/webapps - default web content
    - docs: clarify web services section in quick guide
    - docs: fix books build for current publican versions
    - docs: enable building of html book content as well
    - linux pmda: improve aarch64 /proc/cpuinfo parsing
    - libpcp: fix 64bit endian bug in highres event timers

pcp-3.10.0 (31 October 2014)
    - pmlogextract: improve handling of corrupt archives
    - linux pmda: add hinv.{cpu,node}.online metrics
    - gluster pmda: thread-based timeout for long queries
    - linux pmda: fix hinv.cpu.clock refresh logic
    - dmcache pmda: add missing instance request handler
    - iostat2pcp: cater for iostat output format changes
    - packaging: fix debian suggests vs recommends usage
    - sample pmda: add pmStore support for some metrics
    - python: pmda module object refcounts improvements
    - pmiostat: support archives converted from collectl
    - FreeBSD pmda: changes for 32-bit platforms
    - docs: html validation fixes for the tutorial
    - pmie: rework control and config files
    - pmlogger: rework control and config files
    - pmstat: add pmlogger config as per man page
    - proc pmda: parser rework to improve robustness
    - proc pmda: per-proc context switch & other metrics
    - man pages: pmdiscoverservices(3) and pmfind(1)
    - ds389 pmda: 389 Directory Server PMDA
    - ds389log pmda: 389 Directory Server log processing PMDA
    - linux pmda: add rpc.server and nfs v4.1 ops metrics
    - telnet-probe: fix byte-by-byte copying
    - papi pmda: default enable when possible
    - docs: improve quick reference guide, use man7.org
    - pmproxy: fix new client init for secure connections
    - pmdiff: minor output formatting improvements
    - linux pmda: fix initialization for netstat metrics
    - pmlogger: fix small race on exit condition
    - timeval refactoring for improved double arithmetic
    - python: drop support for versions older than 2.6
    - python3: add pcp module support for 3.3 and newer
    - build: workaround qmake handling of library paths
    - Mac OSX build/install improvements
    - pmwebd: support for more javascript demos (including
      graphite/grafana - via separate pcp-webjs package)
    - pmwebd: extend precision for floating point outputs
    - pmwebd: Access-Control-Allow-Origin header additions
    - pmwebd: experimental pthread support
    - pmwebd: new options file configuration format
    - pmmgr: avoid some granularity-edge races

pcp-3.9.10 (5 September 2014)
    - Support for native systemd service files for daemons
    - Support for nanosecond resolution event timestamps
    - Changes to the FreeBSD build to bring it up to date
    - libpcp: reduce daemon memory usage with secure sockets
    - libpcp: add auto-deflate support for xz compression
    - pmie/pmlogger scripts: xz compression support enabled
    - pmie/pmlogger scripts: lzo compression support added
    - pmlogconf: fix slow pmlogger_daily remote host startup
    - pmcd_wait: fixed to handle af_unix sockets correctly
    - pmatop: fix help keys
    - pmatop: parse standard pcp options (including archives)
    - pmstore: support for local-context mode of operation
    - pmdiff: additional reporting options, added to /usr/bin
    - pmdiff: fix column layout with custom precision setting
    - pmlogsummary: fix time window reporting with -S and -T
    - pmdapapi: new agent for PAPI hardware event counters
    - pmdagfs2: latency metrics for glock grant/demote/queue
    - pmdamysql: change metric semantics for "uptime"
    - pmdaxfs: fix DSO mode and allow test data injection
    - pmdammv: long option support
    - docs: numerous updates to the online documentation
    - docs: added a quick reference guide for Red Hat users

pcp-3.9.9 (13 August 2014)
    - sar2pcp: support for systat version 10.2.0
    - pmiostat(1): new monitor tool with iostat-alike output
    - pcp-dmcache(1): new monitor tool for dm-cache devices
    - pmdalinux: disk.dm.* metric hierarchiy (device mapper)
    - pmdalinux: refine device mapper naming for old platforms
    - pmdalinux: allow controlled data injection for QA tests
    - pmdadmcache: new agent for device mapper cache targets
    - pmdainfiniband: correctly initialise switch metrics
    - libpcp: global timeout option for service discovery
    - libpcp: __pmDiscoverServicesWithOptions() improvements
    - libpcp: grok '%<interface' for link-local ipv6 addresses
    - libpcp: derived metrics support for new rate() keyword
    - python api: many convenience class module extensions
    - python api: timeval accessor helper interfaces
    - python api: pmUnitStr now uses thread-safe version
    - python api: pmNumberStr_r now available from python
    - python api: fix derived metrics interface exceptions
    - pmlogconf: mark some log-default metrics as log-once
    - dbpmda: use the correct (blocking) socket API variants
    - pmlogger_daily: fix $PCP_RUN_DIR creation checks

pcp-3.9.8 (16 July 2014)
    - Add overlooked Debian packaging metadata updates.

pcp-3.9.7 (16 July 2014)
    - pmie: "ruleset" extensions to the pmie(1) language
    - pmdaproc: additional memory and new blkio cgroup metrics
    - pmdanvidia: new Nvidia GPU PMDA using NVML interfaces
    - pmdainfiniband: add switch counter metrics
    - pmdalustrecomm: bug fixes in the lnet memory metrics
    - pmdamemcache: fixed underlying socket code
    - pmdalinux: mem.util.available for down-rev kernels
    - pmdagfs2: several fixes and improvements in behaviour
    - pmdas: support for long form command line options
      (aix, jbd2, linux, lustre, mounts, processes, sample,
      sendmail, txmon, xfs)
    - libpcp: 'timeout' option for 'probe' service discovery
    - libpcp: secure sockets timeout handling improvements
    - pmie examples: updates to the pmie tutorial docs
    - pmchart: new MemAvailable view for mem.util.available
    - porting: additional GNU/Hurd port updates
    - packaging: fix Makepkgs script for old tar versions
    - packaging: fix rpm builds for rpm versions prior to 4.6
    - libpcp: use minimum required stack for discovery threads
    - libpcp: archive folio parsing in option handling code
    - python APIs: archive folio parsing for recording tools
    - man pages: updates to service discovery APIs and tools
    - libpcp: archive interpolation thread safety improvements
    - libpcp: fixed memory leak from pmDestroyContext(3)

pcp-3.9.6 (19 June 2014)
    - Fix pthreads build fallout for Solaris platforms
    - Remove accidental /var/run/pcp install on Debian
    - Rename configure.in to configure.ac as autoconf prefers

pcp-3.9.5 (18 June 2014)
    - porting work on the GNU/Hurd platform
    - porting work on Windows (early MinGW-64 work)
    - pmdalinux: add in the new mem.util.available metric
    - pmchart: new vCPU view, resolve guest time reporting
    - pmwebd: add CORS "Access-Control-Allow-Origin: *" to
      JSON response headers
    - pmatop: improvements to value fitting
    - packaging: gui debuginfo/testsuite correctly replaced
    - pmconfig: moved install location for Solaris conflict
    - pmstat: fix hostname reporting when in cluster mode
    - Coverity scan fixes in libpcp, python, and elsewhere
    - packaging: pcp-doc now contains all of the tutorial bits
    - python: timeval/metricspec error handling improvements
    - pmatop: handle curses problems more gracefully
    - pmdapostfix: run as postfix user, not the pcp user
    - python: fix pmParseInterval failure segfault
    - python: fix segfault when printing empty units
    - libpcp: functions for collecting server port numbers
    - pmcd.services metric reflecting PCP daemon usage
    - libpcp, pmfind: active service probing
    - pmproxy, pmwebd: support for service discovery
    - pmcollectl, pmatop: improved log writing support
    - pmie: long option support
    - pmquery: neater output formatting
    - pmchart, pmtime: long option support
    - pmdasystemd: install the built binary
    - python: significant work on the pcp.pmcc module, adding
      long option support, scale conversion, an initial fetch
      loop method, and entirely new convenience classes
    - pmlogcheck: fix bad memory access sigsegv on some logs
    - Fix infinite loop in build scripts without Qt enabled
    - pmdalinux: add metrics from /proc/net/netstat
    - pmdumptext: long option support
    - pmcollectl: support for sub-second sampling intervals
    - Revive support for RHEL5-era builds, post pcp-gui merge

pcp-3.9.4 (15 May 2014)
    - pmlogger: improved archive I/O features, esp for access to
      archives while they are actively being written
    - pmlogger/pmlc: all flushing operations are now no-ops, but
      they remain available for backward compatibility
    - pcp-free: use pmConvScale in case metric units ever change
    - pmlogmv: fix a couple of argument handling corner cases
    - another round of IPv6 updates throughout PCP, making use
      of __pm* networking APIs instead of e.g. gethostbyname.
    - archive utilities updated for long option support:
      pmdumplog, pmlogcheck, pmlogextract, pmlogger, pmloglabel,
      pmlogreduce, pmlogrewrite and pmlogsummary
    - PMDAs with long option support:
      pmdaapache, pmdabash, pmdagfs2, pmdasample, pmdasimple,
      pmdatrivial
    - libpcp: allow addition of free-form text to usage messages
    - pmgetopt: new cross-platform long option handling utility,
      allowing pcp shell scripts to acquire long option support
    - shell scripts updated to support long options:
      pcp, pmie2col, pmie_check, pmie_daily, pmlogger_check,
      pmlogger_daily, pmlogger_merge, pmlogmv, pmnewlog, pmwtf,
      pmsignal, pmlogconf
    - pmlogger: improve pmlc access controls
    - man pages: more detailed pmlc/pmlogger access control docs
    - pmda systemd: adopt slow-start capability
    - pcp command: improved error handling
    - pmcollectl: correct reporting of disk and network details
    - merged pcp-gui source tree (back) into pcp

pcp-3.9.2 (15 April 2014)
    - python api: direct support for creating derived metrics
    - python api: fix C strings memory leak in pmExtractValue
    - python api: fix pmConvScale parameterization
    - python api: pmLookupName API mode allowing partial failure
    - python api: improvements to the pmErr exceptions class
    - python api: support auto-command-line-parsing in scripts
    - python api: switch to thread-safe pmGetContextHostname
    - pcp: support for scripted pcp(1) child commands, adding in
      pcp-free(1), pcp-uptime(1) and pcp-numastat(1) to get the
      ball rolling (python scripts)
    - pmlogmv: new utility to atomically move/rename archives
    - pmconfig: improvements to quoting for unusual versions
    - pmdaproc.sh: allow Install/Remove from any directory
    - libpcp: pmgetopt_r interface for use by collector tools
    - libpcp_pmda: slow-start PMDA changes
    - libpcp_pmda: fix a memory leak dealing in dynamic metrics,
      with PMDAs using the optional hashed metric table method.
    - libpcp_pmda: long option command line processing interface
    - libpcp_pmda: handle POSIXLY_CORRECT arguments internally
    - pmcd: remove POSIXLY_CORRECT env modifications
    - dbpmda: remove POSIXLY_CORRECT env modifications
    - pmlogger_check: add a no-merging-renaming-rewriting option
    - pmlogger_daily: don't merge archives if it is not needed
      (optimization)
    - perl pmda api: add documentation for PCP::PMDA interfaces
    - pmdalinux: fix a memory leak in cpu:node name resolution
    - pmmgr: fix daemon invocation quirk for some sh variants
    - pmdarpm: improvements to concurrent rpmdb access
    - pmdarpm: rpm.size metric now 64bit, matching rpmdb changes
    - pmdaproc.sh: add $perl_args and $python_args
    - long command line options support:
      pmdamailq, pmns utilities, newhelp, pmcd, pmcd_wait, pmcpp,
      pmdate, pmdbg, pmerr, pmhostname, pmieconf, collectl2pcp,
      pmlc, pmmgr, pmproxy, pmwebd.
    - Makepkgs changes to support source tarball builds via git
    - CONTRIBUTING file added, describing PCP development methodology

pcp-3.9.1 (19 March 2014)
    - libpcp: extended date parsing with GNU getdate(3) strings
    - libpcp: APIs for tools to share command-line options code
    - libpcp: thread-safe API variant for pmGetContexHostName()
    - libpcp: fix local:/unix: bug in __pmUnparseHostSpec
    - Begin adding long option support to tools (pminfo, pmval,
      pmprobe, pmstore, pmstat, pmclient so far)
    - Fix python module bug for PMDAs without instance domains
    - pmmgr: -march=i386 build fix
    - pmlogger_daily: fix problem with pmproxy connections
    - pmdagfs2: miscellaneous updates
    - pmdanfsclient: new PMDA exporting NFS client metrics
    - pmdazswap: new PMDA exporting compressed swap metrics
    - testsuite: porting, several new tests, updates to existing
      tests, resolved a couple of SELinux related problems
    - Series of portability changes for *BSD platforms

pcp-3.9.0 (19 February 2014)
    - Packaging changes for multilib pcp-libs{-devel},pcp-conf
    - Packaging changes for pcp-manager and pcp-webapi split
    - pmmgr: signal-response improvements
    - pmmgr: add pmlogmerge-granular mode
    - pmmgr: pmlogrewrite support
    - pmmgr: latency-based tie-break for multi-URL target pmcds
    - pmmgr.1 man page: outline archiving strategy tradeoffs
    - pmdalinux: s390x platform issues in /proc/cpuinfo parser
    - pmdalinux: valgrind fix for /proc/stat parser
    - pmdagluster: improvements to multiple volume handling
    - pmdagluster: support for additional file operations
    - pmlogextract: <mark> record handling fix
    - pmdas: further robustness improvements to dynamic names
    - pmdas: Install scripts can run even when pmcd is stopped
    - pmdanfsclient: add source code (not yet enabled in build),
      thanks to Ben Myers
    - LOGARCHIVE(5) man page: new, documents on-disk log format
    - pmdammv: fix sigsegv when no MMV tempdir is present
    - pmclient: updated to match the Programmers Guide examples
    - pmapi.py: fix python interface to pmLocaltime and pmCtime
    - debian: use autotools-dev to update config.{sub,guess},
      thanks to Logan Rosen
    - pmdumplog: add a -x option for extended timestamp reports
    - pmie: fix count_* operators with dynamic instance domains
    - pmie: fix fetch logic with dynamic instance domains
    - testsuite: ensure pcpqa account creation does not warn
    - testsuite: numerous new tests, updates to existing tests

pcp-3.8.12 (29 January 2014)
    - Fix recent (3.8.10) regression for certain platforms where
      important PMNS files ended up not being installed.  Impact
      is on new installs only, not upgrades (so my QA missed it).
    - pmmgr: add -l (logfile) option to fix a permissions issue.
    - pmdalinux: fix sigsegv on certain ICMP procfs file lines.
    - Further improvements to pmlogger internal data structures
      dealing with configuration files with duplicate metrics
      and/or instances - improved in terms of network fetching,
      as well as on-disk data layout (all backwards compatible).
    - pmdarpm: added cumulative rpm.total.{count,bytes} metrics.
    - Add man pages for all of the PMDAs currently missing one.

pcp-3.8.10 (15 January 2014)
    - Adds pmmgr(1) PCP daemon manager - a cunning new (opt-in)
      approach to managing farms of pmlogger and pmie processes.
    - Adds pmfind(1) utility for discovering advertised pmcd
      services (initially) on the network.
    - Adds a new pmDiscoverServices(3) PMAPI routine.
    - Linux pmda: plug memory leak in /proc/interrupts parsing.
    - systemd pmda: add sd_journal_process() to avoid inotify()
      driven spinning
    - Man page rework for some NAME entries, addressing SGI oss
      bugzilla #972)
    - Add notes for creating user pcp before make from source,
      addressing SGI oss bugzilla #1040)
    - Improve behavior related to Avahi service name collisions.
    - Dodge another hostname-does-not-resolve bullet in pmlogger.
    - Fix the configure check for RHEL5 rpmlib for pmdarpm.
    - An extensive series of spelling fixes to man pages, thanks
      to Michele Baldessari
    - Small fixes here and there from Coverity static analysis.
    - GFS2 pmda: add the complete set of GFS2 tracepoint metrics.
    - RPM pmda: make instance names unique, add rpm.name metric.
    - RPM pmda: reduce number of inotify events and rpmdb scans.
    - Add some heuristics to reduce metric duplication from tasks
      formed via pmlogger configuration file blocks.

pcp-3.8.9 (12 December 2013)
    - Fix pmdalinux stack blowout during ioctl() for network
      interfaces.
    - Add a generic string cache concept for PMDAs to use when
      needing to perform string value de-duplication.
    - Add a PMDA for the RPM Package Manager exporting package
      metadata and state.
    - Fix bug in pmlogextract handling time windows and metrics
      with dynamic indoms.
    - Allow the host part of the host spec to be enclosed with
      square brackets - needed for IPv6 addresses in order to
      separate the address from the port.
    - Fix an Avahi and pmcd conflict when using multiple ports.
    - Introduce shared library symbol versioning and hidden
      attributes for all PCP libraries.
    - Reduce internal API/ABI leakage in libpcp with respect to
      endian code, locking code, and derived metrics.
    - Bring the Solaris port back up to date with latest source.
    - Tag temporary files created by qa tests with test prefix.
    - Split PCP_TMP_DIR setting into its two distinct use-cases
      removing the need to install world-writable-sticky-bit-set
      directories.
    - Add /proc/cpuinfo flags and cache_alignement fields (x86).
    - Improvements to the hinv.cpu.model metric value we export.
    - Ensure pmcpp does not accidentally #include directories.
    - Better cleanup of uncompressed temporary files in libpcp.
    - Correct pmdasystemd fd_set usage.
    - Gracefully handle missing python curses module scenario.
    - Improvements to pmstat error handling.
    - Update pmcds config file parser - cleaner quotes handling.
    - pcp.sh - change formatting for pmie and pmlogger details.
    - Unknown Host fixups in libpcp __pmHostEnt code.
    - Add a security philosophy section to PCPIntro(1) man page.
    - Dodge wchan in Linux proc PMDA if procfs file not found.
    - Add network.interface.hw_addr metric (exported from sysfs)
    - Remove a nowadays-empty config directory from installation
    - Resolve rpm upgrade warning from missing .NeedRebuild file
    - Add pmdaproc option to skip access checking, for secure /
      isolated environments.
    - Make NSS use a stronger default cipher suite.

pcp-3.8.8 (3 November 2013)
    - Dodge Debian build issues related to kfreebsd sys/sdt.h.

pcp-3.8.7 (3 November 2013)
    - Resolve Debian build issues related to pkg-config/Avahi.

pcp-3.8.6 (1 November 2013)
    - Added a new Linux JDB2 PMDA (ext3, ext4, ocfs journals).
    - Added Linux kernel PMDA mem.util.directMap1G metric.
    - Rework previous fix for Debian kfreebsd port wrt probes.
    - Further work on Coverity scan issues, again nothing big.
    - Further work on removing the hostname-as-DNS-entity, add
      more use of pmGetContextHostName, more default-to-local:
      tools.
    - Initial support for DNS-SD via Avahi in pmcd for service
      discovery.
    - Change pcpqa to default to $PCP_VAR_DIR/testsuite as its
      home directory.

pcp-3.8.5 (18 October 2013)
    - Add jsdemos for the web API into the source tarball.
    - Resolve Fedora/EPEL build issue for Infiniband PMDA.
    - Resolve Debian build issue for kfreebsd probes.h
    - Remove hostname checks in pmie/pmlogger script PID search.
    - Much work on QA.  Zero test failures on release for RHEL6,
      and there was much rejoicing.
    - Many Coverity scan issues resolved, nothing major though.
    - Ensure MMV PMDA entry exists in default pmcd.conf once more.
    - Add Linux disk.partitions metrics to the default logged set.
    - New hinv.nlv (logical volume count) metric into Linux PMDA.
    - Update pmevent to use local: as the default mechanism.
    - Numerous updates to the GFS2 PMDA.
    - Reinstate a pmcd sigsegv fix, lost in an earlier merge.
    - Fix handling multiple concurrent clients in pmdasystemd.
    - Fix memory leak in pmNewContext failure path seen via pmie.
    - Make default crontab install cooperate with runlevel settings.
    - Add a privacy-protecting pmdasystemd uid/gid-filtering mode.
    - Functional network.interface speed/duplex metrics on older
      kernels (2.6.32 vintage and earlier, for example).
    - Support for IPv6 address and scope metrics (ifconfig-style)
    - Numerous updates to the pmatop utility.
    - Updates to the PCPIntro(1) manual page.
    - Improvements to the Linux per-process metrics values for any
      threads being reported.
    - Options for restricting Linux pmdaproc to a named cgroup.
    - Update pmlogger to default to local: connection mode.
    - Allow opt-out with the default-enabled xfs and proc PMDAs.
    - Resolve a pmcollectl divide-by-zero (python stack trace).
    - Fix recursive expansion of child cgroups in Linux pmdaproc.
    - Fix a pmie core dump with archives, interp and mark records.
    - Reduce memory footprint of Linux per-process metrics.
    - Add proc.psinfo metrics for cgroups and security labels.
    - Use local: connection by default in pmatop and pmcollectl.
    - Update the python API wrapper to default to local: connection.
    - Improvements to pmcollectl host name handling.
    - pmGetContextHostName return to static char[] return value.

pcp-3.8.4 (15 September 2013)
    - Allow numerous of the pmlogconf/tools templates to be probed
      and enabled.  These are Linux tools, so we probe for (remote
      possibly) Linux hosts only for these.
    - Numerous QA test updates, resolving small amounts of fallout
      from the previous release reported by Red Hat QE folks.
    - Updates to the Samba PMDA.
    - Improvements to the Debian build - remove Infiniband deps as
      we're not attempting to build that anymore there (evidently,
      poor cross platform support?  Can revisit if anyone needs it).
    - Remove Debian dependence on deprecated sysv rc package.
    - Resolve Debian packaging override disparities.

pcp-3.8.3 (9 September 2013)
    - Split the XFS and XFS quota metrics into a separate PMDA
    - Optional hash-based metric table lookups for PMDAs
    - pmdagfs2: updates
    - pmlogrewrite: add support for indom replication
    - pmatop: Decrease screen real estate used for display.
    - Fix the pmdabash shell version support validation code
    - Add gluster PMDA into the build, really this time
    - Add hinv.nnode metric to pmdalinux, mirroring the IRIX metric
    - Add an option allowing custom pmcd.hostname settings
    - Implement host access checking for unix domain sockets.
    - Man page updates, esp. to pmcd.1 re access controls.
    - Add static probe support for pmcd probes (systemtap/dtrace)
    - Change pmGetContextHostName to be pmcd.hostname aware and thus
      able to report the correct remote hostname through a tunnel.
    - Update numerous tools to use pmGetContextHostName now.
    - Demonstration programs for the MMV API
    - Add pmdasystemd journal event count and total bytes metrics
    - Use -fPIC over -fpic, resolving build issues on some platforms.
    - Ensure Perl refcount bumped on PMDA.pm pmdacache stored variables
    - Fix pmie/pmlogger control scripts - bad pmproxy handling
    - Add a mechanism for packaging to avoid chown use, for Debian.

pcp-3.8.2 (31 July 2013)
    - Support for the Unix domain socket transport between pmcd
      and client tools, using the "unix:" host specifier (and the
      more forgiving "local:" which falls back to localhost if no
      platform support exists).
    - Note: PCP_RUN_DIR is as a result now installed owned by the
      "pcp" user and group (rather than as "root").  Several other
      directories are also now installed "pcp"-owned too, after
      (unrelated) pmie and changes described below.
    - Support for automatic extraction of client tool credentials
      with Unix domain sockets, and transfer to interested PMDAs,
      on Linux, Mac OS X and Solaris.  IOWs, PMDAs now know which
      user they are acting on behalf of for each connection, when
      this class of socket is used.  In a future release, it hoped
      to make this the default local connection style.
    - Extensions to pmdaproc to allow it to perform access-control
      checking and metric value fetches as the user requesting the
      data, instead of as root, such that kernel-based permission
      checking is now performed.
    - Re-enabled pmdaproc by default on Linux.
    - pmdagfs2: updates to metrics, tests and a new manual page.
    - pmdagfs2: fixes for distributions without gfs2 trace-points.
    - pmdalinux: fix hinv.map.lvname realink memory corruption bug.
    - pmdalinux: fix issue where EPERM passed out as a fetch result
      with inaccessible filesystem paths.
    - pmdalinux: rework /proc/net/snmp metric extraction, added new
      metrics from recent kernels (checksum error counters, icmpmsg).
    - Linux PMDA SNMP metric type migration support (log rewriter).
    - pmdasystemd: correct .maxmem metric to PM_SPACE_BYTE
    - pmdasystemd: limit number of journald entries consumed per poll
    - pmdamysql: additional status metrics suitable for pmie rules.
    - pmdamysql: correct units and type for active connection count
    - MySQL PMDA metric migration support (log rewriting rules).
    - pmdagluster: new PMDA exporting gluster filesystem metrics,
      in particular fs operation latency and brick throughput data.
    - Fixes to the python pmda interface code to allow old python
      versions as well.
    - Extensions to python pmda interface to allow pmdaCache(3) use.
    - pmwebapi: support more general pcp hostname specs, and
      HTTP Basic authentication.
    - Throttle the size of the pmatop hardware component display.
    - Fix pmgui.py on big endian platforms (affects pmcollectl).
    - Further progress on the log checking tool, pmlogcheck.
    - Generate default pmlogger and pmie daemon configuration files.
    - Migrated all static pmlogger configs over to pmlogconf format.
    - Added pmlogconf config files for metrics used by iostat, ip,
      mpstat, sar, vmstat.
    - Install cisco PMDA pmieconf rules into the correct location.
    - Install default crontab entries for pmlogger and pmie checking
      and daily archive maintenance, on Linux, running as user "pcp"
      now (previously, "root").
    - pmlogconf scripts: added in automatic NFSv4 logging.
    - pmlogger scripts: better locking between check and daily
    - pmlogger control: add -r, -T and increase timeouts by default.
    - Start a working primary pmlogger with a useful and extensible
      set of metrics after enabling the service.
    - Start a working pmie with a useful and extensible set of rules
      after enabling the service.
    - Assigned new PANASAS and NVML PMDA domain numbers.
    - pmlogextract: fix minor bug for empty instance domains
    - Resolve issue where clients get sigsegv from bad -h options.
    - Updated pmwtf man page - better explanation for -q option
    - Massive, massive QA efforts, much better support for non-x86.
    - iostat2pcp - timestamp rework for European datetime formats.
    - Fixed debian bugs related to broken library symlink.
    - Ensure permissions on the NOTICES file allow pcp uid/gid access.
    - Major updates to the SASL code allowing remote authentication
      and improvements to username/password interaction process.
    - Fix SASL related memory leaks, sort out authname mapping.
    - Ensure SASL errors are easily identifiable as such (pmErrStr_r)
    - User and groups access control list support in pmcd, augmenting
      the existing host-based access control list support.
    - Fix tempfile leak in pmdaproc.sh from accidental $tmp override.
    - Improve the PCP experience with older versions of NSS (<=RHEL5)
    - Introduce pmcd self-callstack-tracing capability for the Linux,
      FreeBSD, and MacOSX platforms (maybe others, via backtrace(3)).

pcp-3.8.1 (19 June 2013)
    - Add support for PMDAs written in python via pcp.pmda package.
    - Example implementation of pmdasimple using python.
    - Added new proc.{memory.vmswap,psinfo.threads} metrics.
    - New collectl2pcp utility and sub-package (deb/rpm) for
      converting historical data collected with collectl into the
      PCP archive format for replay and analysis with PCP tools.
    - Add missing help text for some Linux kernel hinv.map metrics
    - Added new hinv.map.lvname metric for reverse mapping logical
      device mapper names to physical device names.
    - Added new hinv.ninterface metric (pmdalinux and collectl2pcp)
    - Fixes to pmcollectl handling of PCP logs in archive mode.
    - Allow pmcollectl metrics to be sourced from a remote host.
    - Additional gfs2 metrics and tests, thanks to Paul Evans from
      the gfs2 development team at Red Hat.  This makes use of the
      gfs2 kernel glock event tracing to track hot locks, and also
      provides a storable mechanism for enabling/disabling tracing
      on-the-fly.
    - Updated access control section of pmcd.1 with IPv6 details.
    - Improve archive integrity checking from libpcp_import, ensure
      monotonic increasing timestamps presented for single archive.
    - Improvements to the log import perl API allowing for batched
      updates (out-of-order), thanks to Marko Myllynen.
    - Removed a low limit in the libpcp_import auto-PMID generation
      scheme, now allowing millions of metrics instead of hundreds.
    - Promote pmlogger and pmlogextract into the default PATH, with
      backward-compatibility preserving symlinks in PCP_BINADM_DIR.
    - Support for IPv6 socket communication in libpcp_pmda for pmcd
      PMDA communication.
    - Support for IPv6 socket communication testing via dbpmda.
    - Update man pages to reflect IPv6 support in libpcp_pmda.
    - Other improvements to the socket-based PMDA mechanisms.
    - Fix a 64bit big-endian host issue in systemd.maxmem metric
    - Mac OS X packaging tweaks.

pcp-3.8.0 (14 May 2013)
    - Added the nginx PMDA, thanks to Ryan Doyle.
    - Fixed memory leak on an error path in profile PDU decoder.
    - Added pmwebd(1) - a JSON-based bridge providing web tools
      with access to the PMAPI (both pmcd and archives) via HTTP.
    - Initial support for client authentication via opt-in protocol
      extensions, host specification extension, communication to
      PMDAs via version 6 of the agent interface, dbpmda support.
      Uses SASL2 as the underlying technology (which provides for
      plugin-based extension to many authentication mechanisms).
    - Reworked many aspects of the python APIs - now a pcp package
      with sub-modules, improved error handling, and much more.
    - Work toward pylint(1)-clean python code throughout PCP.
    - Added a new python module for MMV instrumentation.
    - Initial work on a python module for writing PMDAs.
    - Added a new python module abstracting commonly needed metric
      Subsystems, shared by pmatop(1) and pmcollectl(1).
    - Added new python client tool - pmatop(1) - implementing much
      of the reporting functionality of atop (www.atoptool.nl).
    - Additional checks added to metric names allowed into the PCP
      Log Import library to match the PMNS man page requirements.
    - Support for parallel make invocations.
    - Improvements to the secure server code to make it work better
      and on more platforms.
    - Improvements to the IPv6 and IPv4 access control wildcards.
    - Migrate man pages from man4 to man5.
    - Resolve Fedora bug where the log import API was found to be
      allowing invalid metric names to be created.

pcp-3.7.2 (19 April 2013)
    - Improved pmie propagation of metadata units.
    - Extra pmlogger diagnostic when log cannot be created.
    - Fix Debian python build dependencies.
    - Avoid mis-sharing outbound pmcd connections if ports do not
      match (libpcp).
    - IPv6 presence now checked at run-time as well (pmconfig).
    - Packaging updates - tarball, slackware, gentoo.
    - Add several missing man page options, typos and such, found
      by Red Hat (internal?) checker tools.
    - Added pmwtf.1 man page.
    - Make pmdaapache observe a connect timeout as well as its
      existing request timeout.
    - Extend pmcd access control with a global wildcard for IPv6.
    - Make __pmSockAddrIsLoopBack handle IPv6 loopback address.
    - Resolve bug in too-small pduread recv causing communication
      failures with secure sockets, but in theory affecting other
      socket transports as well.
    - Resolve Debian packaging and build dependency issue.
    - Resolve Fedora bug where pmstat fails to start when pmcd has
      never been started (so namespace rebuild script not yet run).

pcp-3.7.1 (20 March 2013)
    - IPv6 addresses and wild cards for host access control.
    - Add packaging scripts to correctly transition active temp
      file directories from their old locations.
    - Resolve a warning from rpm %pre script on new installs.
    - Convert pmhostname(1) to use the newer networking APIs.
    - Convert pmproxy(1) to use the newer networking APIs.
    - Correct the pmlogger heuristics for determining whether it
      is running as a daemon for *both* pmlogger_{daily,check}.
    - Add script to handle the tmpdir transition such that folks
      with running parfait/mmv-instrumented applications continue
      to see data exported, and for correct pmlogger/pmie daemon
      tracking across releases.
    - Fix "Warning: __pmConnectRestoreFlags: cannot restore flags"
      messages when built with secure-sockets option disabled.

pcp-3.7.0 (11 March 2013)
    - Added hash table iterator interfaces to libpcp.
    - Added PCP_SYSCONF_DIR, migrated daemon configuration there.
    - Fix Linux swap metrics problems, thanks to Martins Innus.
    - Support for IPv6 and revamped networking (libpcp-internal)
      APIs, in particular making proper use of getaddrinfo now.
    - Initial version of the NetBSD port
    - Secure connections are now available and documented.
    - Added a PCP_USER setting for globally changing the default
      unprivileged user account used by PCP daemons.
    - Resolved Debian packaging issues from previous release to
      do with the pcp-python subpackage.
    - Improve pmdaapache fetch implementation (reduced overhead)
    - Close up a file descriptor leak on a pmdaapache error path,
      thanks to Ryan Doyle.
    - Added the gfs2 PMDA.
    - Added the systemd PMDA.
    - Alignment issues on ia64 resolved.
    - Create pmlogger and pmie logdirs during install.
    - Added -L option to pmconfig(1) for reporting libpcp options.
    - Further workarounds for sar/sadf XML exporting problems.
    - Updates to MinGW PCP builds for native PCP on Windows.
    - Use initgroups() to correctly set up supplementary groups in
      PCP daemons that are changing user/group from root/root.
    - Fix memory leak on scandir failure in several PMDAs.
    - Correctly install the pcp user/group during Mac OS X upgrade
    - Allow pmdalogger to be installed on multiple platforms
    - Series of updates to pmie to improve action %h, %v and %i
      substitutions (amongst other pmie improvements and several
      corner-case fixes)
    - MySQL PMDA now re-connects after a database server re-start.
    - Workaround versioning issues between python and rpmbuild.
    - Ensure HZ is initialised in Linux proc PMDA, fixing a small
      regression from the earlier proc/linux PMDA split.
    - Fix -p option to pcp(1) command reporting pmie instances.
    - Add one-line help for the proc metrics that did not have it.
    - Change primary pmlogger control from symlink to link.
    - Add an interface allowing PMAPI clients to explicitly cleanup
      (which allows for improved accuracy in valgrind reporting).
    - Fix race conditions in pmie and pmlogger startup scripts.
    - Updates to the named (name server) PMDA.
    - Change __pmSetProcessIdentity to fail more resoundingly.
    - Fix issues with pmdashping timeouts observed on multi-core
      x86_64 machines related to signals interacting with pthreads.
    - Move debian tmpdir settings to match other distros.

pcp-3.6.10 (19 November 2012)
    - Transition daemons to run under an unprivileged account.
    - Fixes for security advisory CVE-2012-5530: tmpfile flaws.
    - 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.

pcp-3.6.9 (12 October 2012)
    - 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

pcp-3.6.8 (14 September 2012)
    - 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.

pcp-3.6.6 (28 August 2012)
    - 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.

pcp-3.6.5 (16 August 2012)
    - Fixes for security advisory CVE-2012-3418
	o Add field validation to PCP instance PDU (Red Hat #841240)
	o Fix __pmDecodeInstanceReq heap buffer overflow (Red Hat #841284)
	o Fix __pmDecodeText heap overflow (Red Hat #841249)
	o Multiple issues in result PDU decoding (Red Hat #841159)
	o Fix __pmDecodeNameReq buffer overflow (Red Hat #841180)
	o Add length checks to __pmDecodeLogControl (Red Hat #841290)
	o Add size check to __pmDecodeIDList (Red Hat #841112)
	o Fix __pmDecodeNameList buffer overflow (Red Hat #840920)
	o Add missing __pmDecodeFetch namelen checks (Red Hat #841183)
	o Add length checks to __pmDecodeProfile (Red Hat #841126)
	o Add length checks to __pmDecodeCreds (Red Hat #840822)
    - Workaround for security advisory CVE-2012-3419
	o Split the Linux kernel and proc PMDAs to prevent information
	  leakage in default installs - esp. /proc/pid/maps exposure,
	  but other proc metrics as well - and no longer export process
	  metrics by default (Red Hat #841702)
    - Fixes for security advisory CVE-2012-3420
	o Memory leak in pmcd DoFetch error path (Red Hat #841298)
	o Memory leak in __pmGetPDU in-band signalling (Red Hat #841319)
    - Fixes for security advisory CVE-2012-3421
	o Resolve event-driven programming flaw in pmcd (Red Hat #841706)
    - Correct buffer unpinning logic in a PMNS traversal error path
	o Red Hat bugzilla bug #847314.
    - All of the above issues were identified by Florian Weimer of the
      Red Hat Security Team, who also assisted extensively in fixing
      and testing; a huge thank you to Florian from all PCP developers
      and users!
    - Add modern gcc/glibc security protection mechanisms where
      available.  Thanks to the Frank Eigler.
    - Harden all boundary checking in the remaining PDU decoders.
    - Resolve an issue with configure script checking for the init(1)
      process on Fedora 17 (and other systems using systemd).  Thanks
      to Lukas Berk.
    - pmdaelasticsearch only reports on nodes in the cluster now,
      and not other client nodes.  Thanks to Nigel Donaldson.
    - Added interfaces to PCP::PMDA Perl module to allow PMDAs to
      use a hash instance domain (instead of int/string array).
      These make use of the pmdaCacheOp(3) interfaces - the hash
      keys are the (external) PCP instance names, and the value
      associated with each key is an opaque reference.
    - Added an interface to allow PMDAs to register event queues
      with existing clients (pmdaEventNewActiveQueue).
    - Initial version of the (experimental) bash tracing PMDA.

pcp-3.6.4 (12 June 2012)
    - Fix build on s390x platform (thanks to Dan Horak)
    - Rethink order of PATH setting for pcp start scripts, to ensure
      binaries from other packages with names that conflict with pcp
      binaries are not found ahead of the same-named pcp binary.

pcp-3.6.3 (27 April 2012)
    - Revert initial attempt at getting configure --prefix option to
      make sense for local developer PCP installations
    - Fix RPM changelog typo in in-tree spec file
    - Further work on Debian/kFreeBSD port (thanks to Robert Millan)

pcp-3.6.2 (18 April 2012)
    - Fix Debian builds on FreeBSD (missing header files)
    - Resolve Debian startup script (compat) lintian issue
    - Resolve FreeBSD kernel PMDA build issue with PCP not installed
      in the build root already.

pcp-3.6.1 (12 April 2012)
    - Resolve final Mac OS X pthreads build issues
    - Debian packaging improvements for split pmlogger/pmcd scripts,
      perl module pieces, and other lintian reported issues
    - Update the startup script dependencies for /var use
    - Support --prefix=... and --exec-prefix=... configure options
    - Relaxed the "are you running as root?" test in startup scripts
    - Win32 build updates and improvements
    - Cache /proc/stat file handle in Linux kernel agent to reduce
      syscalls on the most commonly fetched metric subtree

pcp-3.6.0 (21 March 2012)
    - Thread-safe libpcp, including additional re-entrant and thread-safe
      variants for some routines
    - Retire all asynchronous routines from libpcp
    - Retire all V1 protocols and services (archive format, PMAPI and
      PMDA_INTERFACE)
    - PMNS moves to ASCII only (no binary PMNS)
    - Rework "init" scripts, splitting pcp into pmcd and pmlogger
    - Update elasticsearch PMDA to 0.19+, new transport and shard metrics
    - Updates to PMDA new event queueing interfaces for agents wishing to
      export that class of performance data.
    - First round of Coverity cleanup fixes incorporated.
    - Initial version of the SNMP PMDA, thanks to Hamish Coleman.
    - Updates to postgres PMDA to export additional recovery metrics.

pcp-3.5.11 (01 December 2011)
    - Update FSF contact address in copyright notices to keep
      rpmlint happy.
    - Fix instance domain checks in elasticsearch PMDA.
    - Make KVM PMDA to run as root once more (permissions issues).
    - Integration of pmlogger_daily with pmlogrewrite.
    - Fix pmlogger_merge corner case for empty archives.

pcp-3.5.10 (04 November 2011)
    - Support new 0.18+ elasticsearch metrics.
    - Fix handling of elasticsearch version metric cluster.
    - Fix trace PMDA build issues.
    - Fix some Win32 build issues.
    - Run with reduced privileges for more of the perl PMDAs.
    - Name Solaris load average metric consistently.
    - Small metric documentation tweaks for Solaris PMDA.

pcp-3.5.9 (23 October 2011)
    - Add rc script support for condrestart, and condrestart the pcp,
      pmie and pmproxy services after an RPM install or upgrade.
    - Fix a bug where hinv.ndisk is incorrect if CLUSTER_PARTITIONS
      hasn't yet been refreshed immediately following a restart.
    - Implementation of client event queueing logic for all PMDAs to
      share (all PMDAs wishing to support event metrics, that is).
    - New manual pages for new PMDA event queueing interfaces.
    - PostgreSQL PMDA, supporting versions 9.0 and 9.1 (at least).
    - Reserved ID 111 for Samba Clustered Trivial Database PMDA.
    - Add perl interface to allow PMDAs to drop priveleges
    - Add an elasticsearch version metric.
    - Correct perl module type detection logic for 32/64-bit systems.
    - Small pmlogconf source and man page fixes.
    - Rework flex usage to resolve build warnings.
    - Make Darwin CPU metrics 64 bit.
    - Add (long) opaque key support to libpcp_pmda.
    - Add pmdaCacheStoreInst() routine to libpcp_pmda.
    - Added mssql PMDA for SQL server Dynamic Management View stats.
    - Add pmlogrewrite(1) to rewrite archives (fix inconsistencies).
    - Fix a cgroup option parsing error on consecutive fetch calls.

pcp-3.5.8 (08 August 2011)
    - Rework rsyslog PMDA to remove Switch use, very odd behaviour
      observed on RHEL5.2 (mysteriously failing to compile).
    - Add in Kens scripting defenses against dodgey toolchains.

pcp-3.5.7 (05 August 2011)
    - Fix build issue on SLES11 SP1 IA64 systems.
    - Improved rsyslog PMDA handling of queue metrics.
    - Add open file-descriptor count metric to the Linux PMDA.
    - Implement logger PMDA line-oriented event mode.
    - Add regular expression based event filtering in logger PMDA.
    - The default pmcd.conf now has an access control section, and
      all remote store operations are blocked by default.
    - Improve packaging of Perl components.

pcp-3.5.6 (21 July 2011)
    - Fix warning from pmie_daily with some /bin/pwd versions.
    - Numerous Debian packaging updates for lintian cleanliness.
    - Fixed typos in several man pages.
    - Added ElasticSearch PMDA.
    - Fix build on RHEL4 with older sys/queue.h variant.

pcp-3.5.5 (6 July 2011)
    - Resolve Debian packaging issues preventing new uploads.
    - Fix warnings from pmie_check with some /bin/pwd versions.

pcp-3.5.4 (6 July 2011)
    - Fix warnings from pmlogger_check with some /bin/pwd versions.

pcp-3.5.3 (6 July 2011)
    - Remove reliance on a cpp binary being installed locally with
      new pmcpp applicaton.
    - Ensure compressed pmie log files are also cleaned up daily.
    - Extend the event store mechanism to be more generally useful.
    - Add memory limiting functionality to pmdalogger.
    - Add SQLServer metric for user settable queries.
    - Fix potential sigsegv in pmprobe fetching multiple live values.
    - Perl changes for Solaris.
    - Fix Fedora15 build relating to handling of systemd.
    - Solaris pmda zpool_vdev_name() api change.
    - Update sar2pcp for sysstat version 9.1.7.
    - Resolve realloc issue in event metric handling in libpcp_pmda.

pcp-3.5.2 (3 June 2011)
    - pmlogreduce - fix 2 problems (memory leak, additional mark records)
    - Initial version of pmdalogger, from David Smith, a log monitoring
      PMDA exporting event metrics.
    - Make Windows drive instance domain code less chatty.
    - RC scripts and pmie_check - Mac OS X porting
    - pmlogger_check - symbolic link issue fixed
    - Add in the rsyslog PMDA (http://www.rsyslog.com)
    - Extend PCP::PMDA so that the log tail mode can be used on named papes.
    - Numerous updates to the Perl packaging infrastructure
    - Fix build when $HOME is not set.
    - pmlogconf - another non-posix awk issue fixed
    - Darwin pmda - filesys.maxfiles metric
    - pmie_daily - assorted minor fixups
    - Unix domain socket issue found on Mac OS X
    - pmcd config parsing error handling cleanup
    - Quieten pmevent output in the absence of new events.
    - Pass process ID out on success of __pmProcessCreate.
    - pmdaproc.sh - add PMDA_INTERFACE_5 support
    - pcp_completion.sh - add pmevent for bash metic completion
    - pmevent - add instance domain support
    - Bugfix: fetching hinv.cpu.* aborts if cpu indom is not initialized
    - Rearrange the per-CPU intr metrics on Linux to use dynamic namespace
    - Add perl modules into Mac OS X installations
    - Additional vmstat metrics added to Linux kernel PMDA
    - Fix pmieconf after syscall metrics went away on Linux
    - pmevent - new util to report event records, with instance domain support
    - sample PMDA - instance domain for event records metric
    - pmval, pminfo - man page typo corrections
    - pmval - fix typo in error message
    - pmlogextract, pmlogreduce - auto volume switch at 2^31 bytes
    - pmnscomp - defaults to Version 2 of the compiled PMNS
    - Remove unconditional diagnostic in MMV agent, log spam
    - Rework the code that uncompresses archives for Win32
    - Updates to Win32 makefiles to get a clean package build
    - Enable compressed log processing for Windows as well
    - Sample event consumer code for Windows ETW
    - Update PDH Win32 headers to use those from current mingw-m64 tree
    - Win32 socket error messages are reporting correctly
    - Great strides in getting error reporting correct on Windows
    - Add Win32 pthread wrapper for threading work on Windows
    - Add PowerDNS recursor stats to the pdns PMDA

pcp-3.5.0 (31 January 2011)
    - Infrastucture support for doing distributed event tracing with PCP.
      This includes a new metric type (PM_TYPE_EVENT), cunning mechanisms
      for encoding event records in pmResults, and providing PMDAs with
      per-client context connection information allowing agents to track
      which clients have seen which parts of a trace stream so far.  Some
      reference uses of these extensions can be seen in pmdasample and in
      the pmcd PMDA as well.
    - Transparent support for archive de-compression by clients.
    - Manual page formatting errors corrected.
    - Fix a pmDupContext memory corruption issue seen with derived metrics.
    - Added a one-trip optimisation/guard to pcp.env
    - Improved pmdaFetch and pmdaFetchCallback man pages with respect to
      return codes and value memory allocation models.
    - Fix for Windows unintentionally allowing multiple pmcd processes
      to startup and bind to the same port, with "undefined" results.
    - Fix Windows services interaction, preventing pmcd service stop.
    - Fix Mac OS X scandir memory leak on empty directories.
    - Fix Mac OS X mem.util.wired metric, was exporting the wrong value.
    - Correct the handling of SLES11 distro identification (lsb-release
      file not used again, on SuSE Linux distributions).
    - Fix postfix PMDA log file path handling for Redhat Linux distros.
    - Extend Perl PMDA interfaces to allow additional metrics to be
      added at runtime (now makes use of dynamic namespace support).
    - Set KEEPALIVE option on pmproxy client sockets, mirroring pmcd
      behaviour and reducing open file descriptor pressure.
    - Improvements to the native Windows version of pmlogger, preventing
      it from exiting prematurely thanks to a socket read race condition.
    - Fix /proc/interrupts parser in Linux PMDA, thanks to Arthur Kepner.

pcp-3.4.1 (9 October 2010)
    - Remove bogus (expected) errors/warnings from Win32 install/remove.
    - Remove couple of no longer needed local Win32 API wrappers.
    - Fix rindex code for Win32 so it handles empty strings.

pcp-3.4.0 (29 September 2010)
    - Add new libpcp_import C API library to pcp-libs.
    - Add perl-PCP-LogImport RPM sub-package for libpcp_import perl binding.
    - Add pcp-import-* RPM sub-packages containing front-end tools for
      importing data from sar, iostat, generic speadsheets and mrtg.
    - Major Solaris PMDA updates: CPUs, vnode ops, disk stats and disk queue
      stats, switch to using pmid clusters, internal timers, ZFS Adjustable
      Replacement Cache stats, new help text, memory metrics, fsflush stats.
    - Use Solaris devinfo to get information about pretty disk names.
    - Fix a memory leak in Perl PMDA wrapper string handling.
    - Use correct structure to extrace zpool write counters in Solaris PMDA.
    - pmafm now supports multiple -a arguments.
    - Fix pmie multiple -a options bug.
    - Fix pmdaInit() callback handling where it did not handle all the
      interface versions correctly.
    - Quote filenames reported by pmwtf, else awk can get confused.
    - Fix pmdawindows missing metrics help text.
    - Add network interface speed metrics into pmdawindows.
    - Fix pmdalinux handling of long network interface names.
    - Updated pmdaapache to use cross-platform http library.
    - Updated pmdaapache install process to allow port selection.

pcp-3.3.3 (16 July 2010)
    - Fix two off-by-one errors in NUMA metrics in Linux PMDA.
    - Rework timezone environment variable handling to be able to
      coexist more peacefully with Perl.
    - Remove Fedora specfile now that this is in Fedora CVS.

pcp-3.3.2 (10 July 2010)
    - Fix FreeBSD build and packaging issues affecting Debian.
    - Move PCP::Glider Perl code into core PCP with other Perl modules.
    - Avoid a mingw64-compiler-runtime bug in gettimeofday.
    - Fix spec file issue in Fedora/RHEL builds.
    - Add in the gpsd PMDA.

pcp-3.3.1 (29 June 2010)
    - Fix a sigsegv in pmdalinux in the kernel.pernode.cpu metrics.
    - Don't kill dbpmda if namespace cannot be loaded.
    - Resolve a Windows build error under latest toolchain.
    - Some minor pmieconf and pmimport related cleanups.

pcp-3.3.0 (25 June 2010)
    - Rework pmlogconf utility - version 2.0 ondisk format.
    - Initial support for Linux kernel cgroup subsystem, using dynamic
      metrics (cpu sets, cpu sched, cpu acct, memory, ...)
    - Fix per-process I/O (proc.io.*) metric values.
    - Fix potential SEGV in derived metrics when pmcd connection lost.
    - Fix to allow pmlogger to log derived metrics.
    - Fix open file descriptor leak in Linux disk scheduler code.
    - Postfix PMDA updated to report aggregate stats from mail.log parsing.
    - Add per-node CPU metrics to Linux kernel agent.
    - Integrate pmieconf into the build, modernisation and porting work.
    - Add install-sh to the set of pcp-internal programs for external code.
    - Improved checking of PMDA domain numbers.
    - Allow use of SunStudio compiler on Solaris.
    - Add load average metrics to Solaris kernel agent.
    - Windows 7 porting work.
    - Make Win32 build work with more recent versions of gcc and Perl.
    - Fix pmie [no]match_inst botch, tweak sleepTight reporting.
    - Allow \$ for pmie regular expressions.
    - Ensure pmlogger doesn't write extended pmcd host syntax as hostname.
    - Switch over to not using local context for bash completion.
    - Improve Lustre agent metric help text.
    - Added a readonly filesystems metric into Linux kernel agent.
    - Ensure xfs.buffer metrics are always properly refreshed.
    - Add Linux kernel statistics related to XFS btree operations.

pcp-3.2.1 (3 May 2010)
    - Export information about ZFS snapshots
    - Correct accounting of PMNS size in a libpcp_pmda helper routine.

pcp-3.2.0 (29 April 2010)
    - Change how PM_CONTEXT_LOCAL determines available PMDAs:
      rework local context code to retire $PMDA_LOCAL_*, build DSO table
      from pmcd.conf at run-time, new __pmLocalPMDA and __pmSpecLocalPMDA
      routines in libpcp, -K options for pminfo, pmval and pmprobe.
    - Make some pmda dynamic name operations take (const char *) args.
    - Fix bash completion so dynamic names expanded, and stderr culled
      (culling DSO agent initialisation messages).
    - Improve pmlogger handling of alias names (same PMID, different names).
    - Honour the -T command line option in pmlogreduce.
    - Resolve an MMV issue evident in the Mac OS X installer, which resulted
      in failed dmg (binary) installation attempts.
    - Solaris startup script improvements.
    - Add details of the extended hostname syntax to pcpintro(1).
    - Fix a memory leak in pmdawindows help text handling.
    - Fix a memory leak in pmdammv help text handling.
    - Add anonymous huge page Linux memory utilisation metric.
    - Fix local context reporting of help text.
    - Solaris man page build changes.
    - Clean up diagnostic messages in pmlogextract.
    - Teach pmdaproc about Solaris' ping.
    - If pmstat fails to connect to local pmcd, fallback to local context.
    - Mark as const the final (requested units) pmConvScale argument
    - Clean out SGI-isms from build related files (no longer used by SGI).
    - Fix mem.numa.util.NFS_Unstable metric.
    - Removed pmdajstat, this has long been superceded by the capabilities
      of the Parfait package for instrumenting Java applications with PCP.

pcp-3.1.2 (22 March 2010)
    - Add indom save and restore logic into Windows PMDA.
    - Fix a typo in the Postfix PMDA.
    - Update and extend /proc/meminfo stats on Linux.
    - Improve handling of monitored process in pmdammv, especially
      when the monitored process exits (pmns not cleaned up before).

pcp-3.1.1 (23 February 2010)
    - Use a better MMV generation number, using all bits available.
    - Fix a metric count calculation error in pmdammv.
    - Add precision argument (-p) to pmwtf.
    - Added an open socket sockname command to dbpmda.
    - Remove use of grep -q, unavailable on OpenSolaris.
    - Couple of trivial build fixes for the Win32 platform.

pcp-3.1.0 (28 January 2010)
    - Derived metric support.
    - Fix a memory leak in the Solaris kernel PMDA.
    - Extract information about network links on Solaris.
    - MMV PMDA (DSO) is now installed and enabled by default.
    - Reintroduced MMV support for cross-(mmap-)file instances.
    - Bug fix in pmdammv which was capable of causing SIGSEGV.
    - Add dbpmda readline support (and packaging dependencies).
    - Add in -Z option to pmwtf, to pass through to pmlogsummary.
    - Export NUMA memory statistics from the linux kernel.
    - Make pmie_check work on Solaris.
    - Make perdisk stats part of the zpool hierarchy.
    - dbpmda fix for name lookup and dynamic metrics.
    - Add a new PMDA exporting the Postfix queue lengths.
    - BuildRequires initscripts for %{_vendor} == redhat.

pcp-3.0.2 (2 December 2009)
    - Improvements and fixes to PCP::PMDA perl module.
    - Added the SQL Server dtsrun log file parser PMDA.
    - Switch MMV PMDA to use dynamic namespace interfaces, which resolves
      long-standing spurious EAGAIN error on reconfiguration.
    - Separate out the Infiniband and cluster PMDAs into their own
      package - removing dependencies and configure complexities from
      pcp into specialised, layered packages.
    - Configure packaging to use libexecdir for private pcp binaries,
      if supported on the platform (also honour --libexecdir configure flag)
    - Add sysfs.kernel metrics cluster to Linux PMDA.

pcp-3.0.1 (19 October 2009)
    - Reverted rc scripts default start/stop settings back to how
      it was in 2.9.3-1, for Debian bug #544350. On Red Hat platforms,
      the RPM spec overrides this to be chkconfig off by default.
    - Lexical analyser tweaks (various tools) to work on Windows.
    - pmlogextract change timezone selection algorithm, add -f for old behaviour
    - configure.in clean up more thoroughly on Mac OS X
    - Get pcp building on Debian GNU/kFreeBSD port.
    - Add missing return statement causing incorrect mem.util on Win32.
    - Improved support for Slackware distro makepkg packaging
    - Solaris fixes: pass information about compiler into Perl PMDA makefiles,
      don't change pointer types of pmCtime's arguments, deal with default lex
    - Move Infiniband and Cluster PMDAs to a stand-alone packages
    - Trim the set of RPM files marked as %config to just those
      that are actually likely to be edited (rpm -qlcv pcp pcp-libs).

pcp-3.0.0 (9 October 2009)
    - PMDA_INTERFACE_4 and the support of dynamic subtrees of the PMNS
      where the PMDA (not PMCD) maintains knowledge of the PMNS.
    - RPM packaging split into pcp, pcp-libs and pcp-libs-devel
      pcp-libs is common - it's required by pcp and by pcp-libs-devel but
      pcp and pcp-libs-devel can be installed with or without each other.
    - Added separate specific licenses for the new subpackages,
      particularly pcp-libs, which is LGPL.
    - Added ldconfig %post and %postun scriptlets for -libs
    - Don't explicitly require Infiniband libs, since they're libs and RPM
      figures it out
    - No need to explicitly BuildRequire gcc-c++ libstdc++-devel
    - Add BuildRequires on perl-ExtUtils-MakeMaker
    - Remove explicit ia64 Requires: libunwind
    - Preserve generated gram.tab.c in several places since debuginfo needs it
    - Create %{_localstatedir}/run/pcp and ship it (so it'll be removed)
    - Use %doc in spec for CHANGELOG COPYING INSTALL README VERSION.pcp pcp.lsm
    - Tweak configure to move PCP_BINADM_DIR out of /usr/share, into /usr/lib.
      Arch dependent binaries should not be installed below /usr/share.
    - Delete unneeded "explicit script interpreter" in several places
      to keep rpmlint happy
    - Remove setuid from pmpost, not needed (and not in debian either)
    - Nuke the migrate_pcp_var_dir, script and it's %post scriptlet
    - Default "chkconfig off" for all PCP services (retain settings on upgrade)
    - Clean-up and simplify the %post scriptlets (rather dramatically)
    - Don't ship static libraries in Fedora, we have the debug package for that
    - Install .NeedRebuild, add to %files and remove crud from %post scriptlets
    - Added %changelog in RPM spec and moved %files to end before %changelog
    - Move demos, examples and demo PMDAS to the libs-devel package since they
      are not used for production (but are useful for devel and needed for QA).
    - Don't install trace demo binaries since src is installed anyway
    - Reconciled build/rpm/pcp.spec.in with build/rpm/pcp_fedora.spec
    - Integrated RPM packaging support for perl-PCP-PMDA and perl-PCP-MMV
      (but perl-PCP-Logsummary is not currently shipped in RPM packages)
    - RPM build requires perl(ExtUtils::MakeMaker) rather than
      perl-extutils-makemaker (this is the standard notation)
    - For easier upgrades, the perl PMDAs only really require pcp >= package
      version (until we change or extend an API).
    - ReplacePmnsSubtree fix bad signal handling botch (affecting MMV PMDA)
    - Fix pmcd.timezone metric such that value updates on daylight savings
      (or other timezone) changes.
    - Initial packaging work for Slackware Linux, thanks to Roman Revyakin.

pcp-2.9.3 (23 September 2009)
    - configure.in fix for Windows iptypes.h header.
    - Fixup Windows SQL Server metrics on 64 bit platforms.

pcp-2.9.2 (7 September 2009)
    - Final iteration on pmval sample count changes.
    - Build fallout on Mac/Win32 in MMV client library.
    - Tidy configure.in sys/stat time field/types handling for Alpha builds.

pcp-2.9.1 (2 September 2009)
    - Fix a long-standing pmval sample count miscalculation.
    - Add missing runlevels and dependencies in start scripts.
    - Fix a segv observed in the Windows PMDA accessing SQL Server metrics.
    - Fix logic error causing wrong Windows version to be reported sometimes.
    - Add kernel.all.uptime to the Windows kernel agent.
    - Initial version of the (perl-based) Samba PMDA.
    - Fixes to pmdasimple.pl so it functions correctly on all platforms.
    - Add PCP::PMDA helper routines for determining native long sizes.
    - Extend MMV to allow teardown of MMV file, and set errno on failure.
    - Initial stable (1.00) version of MMV Perl interface.
    - Correct the metric units for several Windows per-process memory metrics.
    - Add network metrics to Solaris PMDA
    - Report ZFS statistics from Solaris PMDA
    - Export zpool stats from Solaris PMDA
    - Generate packages for Solaris
    - Allow user to choose her compiler (proper use of AC_PROG_CC)

pcp-2.9.0 (27 July 2009)
    - Fix Linux PMDA issue with -fstack-protector gcc option.
    - Get socket daemon PMDAs working with Win32 pmcd.
    - Bind 9.4 PMDA.
    - PowerDNS PMDA.
    - Fix atexit handling in the Perl PMDA module.
    - Fix a duplicate PMID in the MySQL PMDA.
    - Infiniband PMDA improvements and man page.
    - Minor packaging tweaks for rpm and deb formats.

pcp-2.8.12 (8 July 2009)
    - Bug fixes in Zimbra and MySQL PMDAs.
    - Fix memory leaks in the Perl PMDA interface.
    - Fix the Mac OS X pmdadarwin metric table direct mapping.

pcp-2.8.11 (6 July 2009)
    - Rework namespace file generation for Perl PMDAs.

pcp-2.8.10 (1 July 2009)
    - RPM packaging fixes for Perl modules.

pcp-2.8.9 (1 July 2009)
    - Remove Cygwin support, we're now committed to native Win32
      port - first production install yesterday, hooray!
    - Further Win32 work - wrapper batch files for shell scripts
      run as commands, moved daemon configs into $PCP_DIR/etc,
      bug fixes to process creation code.
    - Significant work on the MMV PMDA, including revamped API,
      Perl API, updated on-disk support with string values and
      help text support, amongst other changes.
    - Fix build of Perl PMDA module when PCP not installed.
    - Fix Zimbra PMDA status metrics.

pcp-2.8.8 (9 June 2009)
    - Added a Zimbra Collaboration Suite PMDA.
    - Build fixes for OpenSolaris.
    - Perl PMDA fixes in tail mode.
    - Correct physical memory reporting in Windows PMDA on 32 bit
      machines.
    - Other small tweaks and improvements to Windows PMDA also.

pcp-2.8.7 (29 May 2009)
    - Windows PMDA major rework to improve memory footprint.
    - Yet another Mac OS X build issue resolution.

pcp-2.8.6 (26 May 2009)
    - Fix build on Mac OS X after lex warning cleanups.
    - Fix pmdate build when PCP headers not in the root.
    - A single PMNS domain number file now used in-tree.
    - Added tmpfs filesystem metrics to Linux PMDA.

pcp-2.8.5 (21 May 2009)
    - Packaging tweaks for Debian (builddefs/rules moved).
    - Make timezone manipulation in Windows work (mimic MSYS).
    - Numerous warnings fixed.
    - Several changes to tempfile handling for Vista.
    - Make setting pcp_rc_dir in configure.in more robust.
    - Further pathname separator auditing for Windows.
    - Fixed a libpcp_gui linker issue on Mac OS X.

pcp-2.8.4 (12 May 2009)
    - Descend into src/bashrc.  D'oh!

pcp-2.8.3 (11 May 2009)
    - Bash auto-completion of metric names.
    - Fix a memory leak in xfs project quotas metrics.
    - Several Win32 fixes for Windows Server 2008.
    - Add Linux per-CPU and aggregate "guest" CPU utilisation metrics.
    - Add a pmlogsummary option to report a "header" line (-H).
    - Add optional pmstat support for time control via pmtime.
    - Add pmcd.client.* metrics for identifying connected clients.

pcp-2.8.2 (24 April 2009)
    - Fix pmie bug in the handling of && and || operators.
    - Improve daily pmie/pmlogger script behaviour.

pcp-2.8.1 (19 April 2009)
    - Fix build issue with libpcp_mmv - would not build-from-source
      if <pcp/pmapi.h> was not in the root filesystem.
    - Finer control of pmie2col(1) reporting precision.

pcp-2.8.0 (9 April 2009)
    - Linux netfilter (IP connection tracking) PMDA included
    - Memory Mapped Value (MMV) PMDA and client library included
    - Linux bonding (bonded network interface) PMDA included
    - Lustre PMDA included
    - Added pcp_gui library as pcpmon replacement, supporting the
      new (open source) version of pmtime for console tools.
    - Perl PCP::LogSummary module included.
    - KVM (Linux Kernel Virtualisation layer) PMDA
    - Infiniband PMDA included
    - VMware PMDA included
    - Perl PCP::PMDA module completed, stabilised and incorporated.
    - Default pmcd and pmproxy ports changed to IANA registered ones.
      ( The old behaviour - i.e. both original and IANA ports - is
      still available using PMCD_PORTS and PMPROXY_PORTS variables ).

pcp-2.7.7 (5 September 2008)
    - Infiniband metric enhancements
    - Handle missing "which" binary during rpm installation
    - Added new quota metrics (XFS project quota)
    - Aggregate and per-CPU hypervisor "steal" time metrics added
    - NFS v4 metrics
    - commitLimit meminfo metric added
    - Namespace locking fix in pmdaproc.sh
    - Additional Windows memory metrics
    - Several pmie fixes from Ken
    - Kens pmlogreduce archive corruption fix
    - Kens pmproxy PDU size fix
    - Nathan's pmlogsummary sum calulation fix
    - Added a (cheap) runnable processes metric.

pcp-2.7.4 (7 September 2007)
    - MaxOSX and Debian/Ubuntu build/package fixes
    - Add sqlserver active_transactions metrics to the Windows PMDA.
    - Fix a pmie_check typo causing mis-identification of pmie processes.
    - Allow pmie and/or operators to function with some data missing.
    - Resolve path naming issues with more recent versions of autoconf.
    - pmlogsummary report sum option
    - pmval kmtime support
    - Additional Linux SNMP metrics
    - Fix Linux vmstat nr_slab metrics
    - Make pcp status command report build version
    - Windows split_io metrics
    - Fix pmdapmcd empty pmie instance
    - pmdamailq filename regex
    - Windows TCP metrics
    - pmie log file rotation
    - Changed the default compression program to be bzip2(1)

pcp-2.7.3 (July 2007)
    - add network.ib.control to timeout infiniband stats workthread
    - add mem.util.anonpages 

pcp-2.7.2 (8 Jun 2007)
    - pcp doc updates
    - pmdalinux death from open file descriptors: pclose needed in network.ib
    - network.ib stats updated to cope with OFED 1.2 changes
    - some numa.link fixes for shub2 & NL4
    - Improve start/stop times of pmcd,pmlogger,pmie
    - create portable pmsleep (subsecond sleep) exe

pcp-2.7.0 (7 Feb 2007)
    This log has been allowed to lapse for some time. Blanket catch-up..
    the following PVs describe changes made in that time:
    - 947510 - UNIX95 patches break pcp tools
    - 948548 - [SUSE#182852] Buffer overflow in linux proc_pmda
    - 948551 - Update pcp configure and build infrastructure
    - 948799 - Move telnet-probe to oss part of pcp
    - 948958 - *nodeid conversions have inconsistent naming
    - 952623 - possible use-after-free of pmProfile objects used by pmda
    - 952932 - pcp-open RPM requires libpcp.so.2 but doesn't provide it
    - 953015 - Promote libpcp_pmc to DSO
    - 953301 - Update irix pcp bits
    - 953876 - Use swap.pagesin/pagesout instead of swap.in/.out in pmstat
    - 954035 - Update macosx build infrastructure
    - 954165 - pmdumptext reports wrong time with sub-second intervals
    - 954173 - pmReceiveNamesOfChildren returns bogus value
    - 954203 - pmnscomp generates bogus binary pmns files
    - 954342 - Add support for FreeBSD
    - 954343 - Update windows pmda
    - 954432 - Use a pidfile to stop pcp
    - 954652 - telnet-probe ate my arguments
    - 954842 - Update qa on sles10 for pcp 2.5 and 2.6
    - 956190 - add IB traffic stats to linux PMDA
    - 956199 - pmlogsummary double free causes graph failures
    - 957598 - add debuginfo to pcp-open build in mangrove
    - 957758 - valgrind finds "invalid read of size 8" etc in __pmStuffValue
    - 957884 - need network.ib.status for per-port IB status and description
    - 958273 - If OFED is installed but no ports are found, return PM_ERR_VALUE from refresh_ib
    - 958379 - IB PMDA broken (port num appearing twice in perfquery calls)
    - 958476 - path to pmie_check binary incorrect in pmie crontab config file

pcp-2.5.0-2 (15 Jan 2006)
    - 947602 - pmdas/aix/common.h is missing from the tarball

pcp-2.5.0-1 (ProPack4/SP3)
    - 942325 - bump to version 2.5.0-1
    - 936279 - pminfo -f hinv.machine gives 'linux'. Now scans for the
      SGI hardware IP number from /proc/sgi_prominfo/node0/version
      and exports that if found.
    - 936795 - tool to aid PMDA development, see genpmda(1)
    - 941663 - pmdaInstance broken for name == NULL and inst != PM_IN_NUL
    - 939448 - pcp rc script needs better handling of .NeedInstall
    - 857601 - pmview-args uses long lines in value/instance caches
    - 942030 - Improve efficiency of instance cache in libpcp_pmda

pcp-2.4.1-2 (ProPack4/SP2)
    - bug:928986 support slabinfo v2.1 and earlier for recent 2.6.11 kernels
    - bug:930708 fix linkstats bandwidth measurements (in pcp-sgi package)
    - rfe:924904 add fixed format support for numbers reported by pmval
    - bug:928021 correct handling of -S and -T options when resultant time
      window is empty
    - bug:929411 tighten integrity checking in libpcp routine
      pmGetArchiveEnd() to avoid possible segv
    - bug:930467 fix fd leak on error path in __pmLogFindLocalPorts()
      within libpcp
    - rfe:932180 document pmval -i option syntax
    - bug:925858 add disk.{dev,all}.{read_merges,write_merges}
    - bug:931699 added mem.util.other back in, see help text for details
    - bug:931698 added mem.util.cache_clean, see help text for details
    - bug:933668 support netif names longer than 6 characters 
    - bug:935490 fix pmcd exposure to attack from malformed PDUs
    - bug:924909 excise all usage of file(1) and reliance on its "magic"
      control file ... the old way cannot be made reliable in on all
      platforms
    - bug:929411 tighten tests for valid but truncated archives so
      pmGetArchiveEnd() no longer dumps core
    - add pmdumptext (and the metric class library libpcp_pmc) to
      the open source release
    - bug:935071 fix metrics broken by bug:925858, deprecate support
      for disk stats collected from /proc/stat (linux 2.2 kernels).
    - bug:934913 pmdumptext and libpcp_pmc migrated to open source
    - bug:934332 change save/free profile logic in __pmdaMainPDU() to
      avoid memory leaks
    - bug:934333 fix memory leak in __pmdaMainPDU() associated with
      instance names
    - bug:936975 merge pmcd.conf with pmcd.conf.rpm{new,old,save} so that
      foreign (non-pcp) PMDAs will continue to be configured correctly.
    - bug:937241 update toplevel GNUmakefile to work with modern autoconf.
    - bug:937243: tg3 pmda doesn't see unconfigured interfaces on sles9
    - bug:936506: added new cache functions to libpcp_pmda to make it
      much easier to implement persistent instance domains. Rolled from
      libpcp_pmda.so.2 to libpcp_pmda.so.3, retained symlink for v2.
      Converted proc_net_dev and proc_partitions in the linux PMDA to
      use the new pmdaCache functionality, see pmdacache(3).
    - refine pmcd's handling of SIGINT and SIGTERM to use sigaction() and
      try to report the details of the process terminating pmcd
    - added the summary PMDA to the open source distribution, to provide
      high-level summary of system activity for large machines or large
      clusters of machines.
    - bug:939275 pmstat output format does not scale for large systems
    - bug:939284 correct man page source and packaging to ensure all of
      the man pages are in the correct package, and will be correctly
      indexed once installed
    - bug:861705 add pmproxy to support pmcd protocol proxying for
      clusters with head nodes and for monitoring through a firewall
    - rfe:919678 added new tool (pmie2col) to convert pmie -v output
      into pretty multi-column format
    - bug:939467 pcp needs to explicitly provide libpcp_pmda.so.2
    - 940865 - network security probe crashes pmcd

pcp-2.4.0-7 (with ProPack4/SP0)
    - bug:919901 cisco PMDA confused by Description: line containing '>'
    - bug:920140 inapppropriate glob expansion of "disallow * : all;"
      in pmcd.conf after PCP upgrade from pcp-2.3.2 to version 2.4.0
    - bug:913157 "proc.runq.swapped shows 0 in this state" - updated help
      text for linux PMDA to indicate that kernel threads are not
      counted in the "swapped" tally.
    - bug:918205 fix build issues in SuSE, disallow install-sh ambiguity
    - bug:921103 correct build issues for SuSE
    - bug:923770 ProPack 4 pmieconf on Oct 22 image wont start
    - bug:923777 reconcile changes made to PCP in SLES9 by SuSE
    - bug:924714 remove disk.xvm metrics. Now handled by xvm PMDA.
    - bug:923732 added new mem.util metrics from /proc/meminfo for 2.6 kernels
    - bug:925627 instance domain for proc metrics now includes PNTL threads
    - bug:924909 excise all references to file(1) and the "magic" file
    - bug:925865 cleanup makefiles for more consistent modes and remove
      replicated or questionable directory creations
    - assorted rework to support SLES9 and RH Fedora Core 2 Linux
      distributions
    - clean up of Mac OS X port, including additional O/S metrics
    - bug:923773: new metrics mem.vmstat from /proc/vmstat for 2.6 kernels
      This also fixes swap.{pagesin,pagesout,in,out}, which have been
      deleted from /proc/stat
    - rfe:926192 add -u option for pmlogger(1) to force unbuffered writes
      (useful when applications monitoring a growing archive)
    - rfe:912895 Add pmlogreduce(1) to perform statistical reduction
      of PCP archives over the temporal domain by increasing the sample
      interval and greatly reducing the size of long-term archives

pcp-2.4.0-1 (5 Aug 2004)
    - Installation layout changed to conform to FHS on platforms
      where this is appropriate:
	    Old		New
	    /var/pcp	/var/lib/pcp
	    /usr/doc	/usr/share/doc/pcp
    - bug:916484: %post script to migrate /var/pcp to /var/lib/pcp
      and bump to PCP 2.4.0.
    - bug:916657 mem.util.* metrics were incorrectly exported when zero
    - add demo program procmemstat to report per-process memory usage
    - Add Mac OS X support - port libraries, collection and logging
      infrastructure, provide Mac OS X PMDA.  Target is Mac OS X 10.3.
    - Add Windows support - port libraries, collection and logging
      infrastructure, provide Windows PMDA using the PDH (Performance
      Data Helper) APIs.  Target is Windows 98 or later, but must have
      either Cygwin or SFU (aka Interix) run-time installation.
    - Enhance Solaris support - provide Solaris PMDA using the kstat()
      APIs. Target is SunOS 5.8.
    - Add AIX support - port libraries, collection and logging
      infrastructure, provide AIX PMDA using ther perfstat() APIs.
      Target is AIX 5.2.
    - rfe:916189 Improvements to archive interpolation diagnostics
      under -Dinterp
    - bug:916189 use snprintf in preference to sprintf to harden defences
      against possible buffer overrun issues
    - bug:918878 avoid using file(1) in pmafm and mkaf due to problems
      with "magic" extensions for PCP file typing on some platforms
    - Linux "rc" scripts enhanced to support both the SuSE and RedHat
      regimes
    - bug:916354 set SO_KEEPALIVE on the pmcd connection socket to stop fd
      leaks with noisy networks
    - bug:916189 Fix up handling of tty name (from command line) for
      roomtemp PMDA

pcp-2.3.2-13 (SGI Internal release)
    - fix bug 902034 for pcp-sgi proprietary package. Added topdisk,
      topsys and man pages. Fixed shubstats and enhanced pmshub.
    - support for 2.6 style /proc/diskstats
    - support 2.6 /proc/stat cpu stats, new metrics:
      kernel.percpu.cpu.{intr,wait.total}
    - bug #905010 some minor man page tweaking
    - bug 907846: pcp cpu.idle metrics wrap prematurely on 2.6 kernels
    - bug 907673: linux swap.{pagesin,pagesout} metrics are wrong
    - bug 909111 hinv.machine was wrong for Altix. Also, changed several
      hinv metrics from instant to discrete.  
    - bug 909141: /etc/init.d/pcp now supports "restart"
    - bug 911201: PCP network.udp statistics are incorrect
    - bug:912971: install rc script to /etc/init.d, works on both RH and SuSE
    - bug:912972: promote network.interface metrics to 64bit unsigned,
      detect and handle 32bit wraps
    - bug:914790 parameterize /var/pcp paths, use /var/lib/pcp by default
    - bug:914555: not all mem.util.* metrics available on all kernels
    - bug:904478: pcp slabinfo metrics broken for 2.6.x kernels

pcp-2.3.2-4 (6th October 2003)
    - fix - on SGI Altix systems, scan topology from /hw rather than /dev/hw
    - fix - bug #896808 kernel.{all,percpu}.cpu.idle is unsigned long and is
      hence exported as a 64bit ascii number in /proc/stat on 64bit kernels.
      Same fix for the per-process cpu metrics in /proc/*/stat affecting
      proc.psinfo.{utime,stime,cutime,cstime}
    - (proprietary) pcp-pro now obsoletes pcp-snia for the Altix platform
    - deprecate the PCP_LIB_COMPAT_DIR variable in /etc/pcp.conf
    - add Linux memory metric (mem.util.other) and memory metrics help text
    - add lockstat PMDA identifier into stdpmid list
    - add Linux vfs metrics (files, inodes, dentries)
    - fix - bug #900363 in linux PMDA to handle > 128 CPUs in /proc/stat
    - minor cleanup in libpcp, bug #901776

pcp-2.3.1-4 (16 July 2003)
    - fix - repair Linux fallout from TRIX changes
    - Makepkgs now extracts src tarball from srpm and includes build version
      in the tar filename
    - fix - make pmtrace and libpcp_trace endian safe, bug 893884
    - fix - don't sum non-disk entries from /proc/partitions in disk.all
      metrics, and add new SGI XVM metrics below disk.xvm, bug 895611
    - minor help text changes in the linux PMDA

pcp-2.3.0-17 (for dev testing)
    - fix - compilation warnings in the mount PMDA.
    - fix - pmie builds with recent versions of bison.
    - fix - several XFS metrics to work with the current/previous XFS versions.
    - fix - build on Redhat 9 wrt errno.h changes.
    - added several new XFS metrics.
    - remove inclusion of some kernel headers from the Linux PMDA code.
    - fix - sginap() macro platform_defs.h overflows causing pmie, pmval and
      assorted qa tests to hang, bug 891861
    - fix - repair fallout from autoconf-2.57 changes in Redhat 9 (broke
      "echo without newline" detection for pcp.conf), bug 892029
    - fix - under rare conditions, pmFetchArchive() may return with
      a bogus return value, bug 892037
    - fix - make pmlogger_check tolerant of hostname(1) returning the fully
      qualified domain name, bug 892079
    - fix race in pmTimeConnect (for pcp-pro only), bug 892827

pcp-2.3.0-15 (21 May 2003)
    - fix - pmdampi name space issue issue, bug 891599

pcp-2.3.0-14 (27 Feb 2003)
    - Fix for 882525: Linux pmda fails with openafs module at Fermilab
      problem in symbol table management, correction also involved
      removing the regexp() use and cleanup resulting in a 60% speed-up.
      Thanks to Troy Dawson <dawson@fnal.gov> for helping to track this down.

pcp-2.3.0-13 (21 Feb 2003)
    - portablility changes to enable building the PCP infrastructure on
      Solaris, based on contributions from Alan Hoyt <ahoyt@moser-inc.com>

pcp-2.3.0-12 (17 Feb 2003)
    - fix segfault for kernels which do not have CONFIG_MODULES
      reported by David Douthitt <DDouthitt@cuna.coop>

pcp-2.3.0-11 (12 Feb 2003)
    - patch from Anas Nashif <nashif@planux.com> to work with glibc 2.3.1
    - fix - pmlogger_check failure messages are too verbose
    - fix - pmclient sometimes reports bad Busy CPU (#) on MP systems
    - fix - Piggy-back PDU and endian conversion error
    - fix - Minor problem with error-handling in pmlc-pmlogger
      connection protocol
    - fix - cleanup handling of children's exit status for pmie
    - fix - need better diagnostics to debug trace PMDA
    - fix - Minor cleanup of PCP man pages
    - fix - command buffer too small in pmnsdel
    - Solaris portability changes from Alan Hoyt <ahoyt@moser-inc.com>
      (qa only so far)
    - fix - minor warnings and build cleanup
    - fix - serialize the pcp build

pcp-2.3.0-10 (16 December 2002)
    - Changes to pmlogconf to improve usability
    - pmie_check fails when log files relocated via symlink
      reported by Micah Altman <Micah_Altman@harvard.edu>
    - fix linux pcp upgrade saves pmns but doesn't save pmcd.conf
    - fix pmlc logic error in handling descriptor fetch failures
    - pmdumplog reports incorrect sizes for PDUs on ia64
    - fix /proc scanning for newer 2.4.x kernels and for 2.5.x
    - pmproxy support in libpcp
    - change the units of kernel.all.uptime from hours to seconds
      contributed by Mike Mason <mmlnx@us.ibm.com>
    - fix pmafm remove does not list all files
    - Units wrong for proc.psinfo.rss_rlim, Mike Mason <mmlnx@us.ibm.com>
    - in build/rpm/GNUmakefile, remove '=' from --target since rpm v4
      doesn't seem to like it Todd Davis <todd.c.davis@intel.com>
    - fix rpm upgrade post install processing for pmieconf rules
    - large number of new metrics and bug fixes from Mike Mason
      <mmlnx@us.ibm.com> to support metrics required by libgtop. These
      include the following:

      (new) Total idle time since boot
	    kernel.all.idletime
      
      (new) current # of user sessions
	    kernel.all.nusers
      
      (new) Last pid used
	    kernel.all.lastpid
      
      (new) Filesystem blocksize from statfs()
	    filesys.blocksize
      
      (new) Filesystem free space available to non-superusers from statfs()
	    filesys.avail
      
      (modified) Per process command name
	    proc.psinfo.cmd
      
      (new) Per process command line from /proc/<pid>/cmdline
	    proc.psinfo.psargs
      
      (new) Per process CPU number from /proc/<pid>/stat
	    proc.psinfo.processor
      
      (new) Per process wait channel symbol name
	    proc.psinfo.wchan_s
      
      (new) Per process signal info from /proc/<pid>/status
	    proc.psinfo.signal_s
	    proc.psinfo.blocked_s
	    proc.psinfo.sigignore_s
	    proc.psinfo.sigcatch_s
      
      (new) Per process map info from /proc/<pid>/maps
	    proc.memory.maps
      
      (new) Per process memory info from /proc/<pid>/status
	    proc.memory.vmsize
	    proc.memory.vmlock
	    proc.memory.vmrss
	    proc.memory.vmdata
	    proc.memory.vmstack
	    proc.memory.vmexe
	    proc.memory.vmlib
      
      (new) Per process user and group ids from /proc/<pid>/status
	    proc.id.uid
	    proc.id.euid
	    proc.id.suid
	    proc.id.fsuid
	    proc.id.gid
	    proc.id.egid
	    proc.id.sgid
	    proc.id.fsgid
      
      (new) Per process user and group ids converted to names
	    proc.id.uid_nm
	    proc.id.euid_nm
	    proc.id.suid_nm
	    proc.id.fsuid_nm
	    proc.id.gid_nm
	    proc.id.egid_nm
	    proc.id.sgid_nm
	    proc.id.fsgid_nm
      
      (new) Semaphore limits from semctl()(needed by libgtop)
	    ipc.sem.max_semmap
	    ipc.sem.max_semid
	    ipc.sem.max_sem
	    ipc.sem.num_undo
	    ipc.sem.max_perid
	    ipc.sem.max_ops
	    ipc.sem.max_undoent
	    ipc.sem.sz_semundo
	    ipc.sem.max_semval
	    ipc.sem.max_exit
      
      (new) Message queue limits from msgctl()(needed by libgtop)
	    ipc.msg.sz_pool
	    ipc.msg.mapent
	    ipc.msg.max_msgsz
	    ipc.msg.max_defmsgq
	    ipc.msg.max_msgqid
	    ipc.msg.max_msgseg
	    ipc.msg.num_smsghdr
	    ipc.msg.max_seg
      
      (new) Shared memory limits from shmctl() (needed by libgtop)
	    ipc.shm.max_segsz
	    ipc.shm.min_segsz
	    ipc.shm.max_seg
	    ipc.shm.max_segproc
	    ipc.shm.max_shmsys

    - fix libpcp_trace stub library does not build on ia64
    - fix make clean doesn't remove all that it should
    - fix pmlogger gram.y syntax error for newer bison
    - fix pmstore value "too big" test does not work on 64bit platforms
    - fix memory leak in pmlogger on 64bit platforms
    - fix update-magic to recompile the magic file after install
    - fix pmie alarm actions, suggested by Todd Davis <todd.c.davis@intel.com>
    - fix man pages to be compatible with khelpcenter and man2html
    - use rpmbuild rather than rpm --rebuild for RH8, contributed by
      Todd Davis <todd.c.davis@intel.com>
    - use rpm instead of rpmbuild if rpmbuild isn't available, contributed
      my Mike Mason <mmlnx@us.ibm.com>
    - in pmdas/linux/ksyms.c, use __psint and %p format for for address
      scanning, contributed my Mike Mason <mmlnx@us.ibm.com>
    - use "make" by default in Makepkgs rather than explicitly gmake
    - Add top level GNUmakefile check for gmake (stolen from glibc)
    - Correctly check status in rule for pcp.src in build/GNUmakefile
    - correctly check rpmbuild exit status in Installpkgs.
    - fix NULL ptr deref in src/pmdas/linuyx/proc_pid.c for the
      case where a process exits while we're reading /proc/<pid>/status

pcp-2.2.2-9 (11 December 2001)
    - fixed mangle-src to catch all copyrights in the open source package
    - fixes from gilly@exanet.com for /proc/cpuinfo on alpha platform.
    - change configure.in to work with autoconf version 2.50
    - fix configure.in to work when ps gives warnings on stderr;
      (eg. System.map doesn't match running kernel)
    - added lmsensors PMDA, contributed by Troy Dawson <dawson@fnal.gov>
    - added kernel.all.uptime, contributed by Gilly <gilly@exanet.com>
    - fixed int overflow with kernel.*.cpu.* metrics. Fix contributed
      by Gilly <gilly@exanet.com>
    - use sysconf(_SC_CLK_TCK) to determine HZ
    - fix sapic scanning for sn-ia64 in proc_cpuinfo.c
    - fix from gilly@exanet.com for scanning 2.4.x /proc/stat disk stats
    - bug 826904 Ensure atomicity of PMNS updates as seen by PMNS readers,
      and add transactional-level locking to ensure mutual exclusion
      between PMNS updaters
    - bug 817376 pmlogger makes too many round trips to pmcd
    - bug 828416 - pmlogger access control will not accept hostnames
      containing hyphens
    - bug 820891 More robust mapping of system error codes to strings to
      accommodate the growing range of errno values in IRIX and differences
      between IRIX and Linux
    - bug 826681 - Having $MAGIC set screws up Linux file(1) with consequent
      havoc for PCP scripts. Fixes to mkaf and pmie_check.
    - fix from Brian Harvell <harvell@aol.net> to allow pcp.conf.in to be
      configured with the following cmdline options to the configure script:
      --datadir --sbindir --localstatedir --libdir --mandir --bindir
      --includedir and --prefix
    - fixes from Brian Harvell <harvell@aol.net> for incorrectly
      configured paths in src/pmie/src/pmie.c src/pmns/pmnsdel.c 
      and src/pmns/pmnsmerge.c
    - from Thomas Graichen <tgr@spoiled.org>, support for bzip2 compressed
      man pages (such as used in Mandrake 8.x)
    - from Martin Knoblauch <Martin.Knoblauch@TeraPort.de>, fix for a problem
      where if LANG is not "C", the is_chkconfig_on() shell function in
      rc-proc.sh does not work, causing problems with the rc scripts.
      src/libpcp/src/pdu.c - 1.3
    - bug 836236 in libpcp: better handling of piggy-back PDU in the boundary
      case where the second PDU is so short that it does not contain even a
      full PDU header.
    - fix src RPM build on Turbo Linux. If /usr/lib/rpm/brp-compress
      exists then always use gzipped man pages.
    - fix buglet where file-3.35 in RH7.2 uses a compiled magic file
    - fix buglet where gawk complained about "\{" on Mandrake linux
    - on SGI SNIA systems, map node number from sapic to cnode in /dev/hw/nodenum
    - bug 843215, fix pmie's sprintf looking for it's config file
    - bug 842905, when /var/log/pcp is a symbolic link, pmie_check fails

pcp-2.2.1-3 (21 June 2001)
    - remove unwanted *.rpmorig files after upgrade 
    - fixed bug #827972, pcp root exploit with pmpost
    - fixed assorted other security issues.

pcp-2.2.0-15 (23 May 2001)
    - don't include linux/kernel_stat.h and avoid __sparc__ conditional code 
    - from Michal Kara: rc will rebuild PMNS if root_* files newer than root
    - add the roomtemp PMDA for measuring temperatures using the 1-Wire
      serial network ans sensor technology from Dallas Semiconductor
    - zero network.tcpconn values before counting them in /proc/net/tcp
      (Michal Kara's original code was correct - markgw busted it!)
    - add new LGPL library libpcp_http. Used by permission of the author,
      Laurent Demailly <L@Demailly.com>
    - minor surgery on apache PMDA to link with -lpcp_http
    - minor fix diagnostic from __pmLogRead
    - as reported by Alexander L. Belikoff <abel@vallinor4.com>, it was
      not possible to disable the primary logger via changes to the
      /var/pcp/config/pmlogger/control file ... this has been fixed
    - as reported by Alan Bailey <bailey@mcs.anl.gov>, the assumption
      that /var/pcp/config/pmlogger/control was version 1.1 was implicit 
      ... this is now documented and the pmlogger_* scripts will warn
      if the deprecated version 1.0 format is used accidently
    - from Michal Kara: fix mem leak in apache PMDA
    - from Michal Kara: install /var/pcp/config/pmlogger/Makefile
      (src is in src/pmlogctl/Makefile.install). This provides pre-processing
      of pmlogger config files with cpp.
    - reintroduction of "impl.h" header, deprecate "pmapi_dev.h" and major
      makefile surgery to reintegrate the IRIX and Linux PCP source trees
    - add ia64 support infrastructure.
    - use -fno-strict-aliasing for correct ia64 compilation
    - use -fpic to avoid gprel errors linking shlibs on ia64
    - don't use -P with cpp, thus preserve line numbers
    - post-process help text to reformat long lines
    - pv:789819 fixes to mailq and sendmail PMDAs
    - fix endian-sensitive IP addr construction in cisco PMDA
    - fix sscanf unaligned access warnings on ia64 for cisco PMDA
    - support v1 help text again, conditional on HAVE_NDBM
    - fix pmval's qsort compare routine for instances
    - surgery on almost all man pages, merge with IRIX PCP man pages
    - promote shping to open-source status
    - fix bug #814989 where disk.all.* not summed correctly (if the sard
      patch has been applied to running kernel)
    - with the sard patch applied to the kernel, disk.all metrics were
      being summed as the total of disk.partitions and disk.dev metrics,
      resulting in approximately twice the rate of disk I/O for the
      disk.all metrics
    - added more disk metrics and update help text
    - the "cpu" instance domain is now dynamic and supports any number of CPUs
    - fixed pmie rc and pmie_{check,daily} scripts
    - a bunch of places were using $PCP_VAR_DIR/config/pmcd/pmcd.conf
      as the path to pmcd.conf (which is correct). Others were using
      /etc/pmcd.conf (which is only correct on IRIX).
    - merged IRIX/Linux versions of pmsocks
    - mimic the IRIX xconfirm behaviour more closely, pv 817289
    - pv:817367 Handle SIGCHLD from xconfirm problem on Linux
    - minor changes in error messages to make them less IRIX-centric
      and hence more sensible for Linux
    - fix weblog link in doc dir logic and old netscape should be
      detected as CERN not NS_PROXY.
    - fix weblog so regex in the configuration file is recognized
      correctly on all platforms
    - only run weblogconv.sh on linux
    - conversion to more simple copyright in numerous places
    - avoid grep -q usage: not supported on early IRIX
    - pv:803341 Change Creator: for mkaf from mkaf to pmchart to assist
      with pmafm replay when pcp also installed.
    - updated man page text for platform-agnostic descriptions.
    - fix 817880 pmafm remove does not list all files
    - src/pmie/GNUmakefile Fix busted sed translation of the control
      file so the logfiles (and hence directories) are ...pmie/<hostname>
      rather than pmie<hostname>
    - renamed all Makefiles to GNUmakefile
    - makefile surgery to allow multiple RPMs to be built from one src tree
    - fixes to src/pmcd/pmdaproc.sh to not use test -e
    - pv:815326 fix pcp linux /usr/share/magic doesn't detect pmie config
    - pv:818381 fix pmie_check fails esp integration
    - man page for pmlogsummary was in both pcp and pcp-pro
    - fix to src/pmie/pmie_check.sh, improve pattern to match No such
      file or directory for linux
    - fix all linux specs to install root,root rather than root,bin
      (needed to avoid warnings when installing on redhat7.1)
    - add GNUmakefile.install for all PMDAs, installed in each PMDA dir
    - fix src/pmdas/weblog/server.sh to use quotes on -d that was breaking
      when parameter empty.
    - pv:807561 change pmprobe -i and -I semantics to call pmGetInDom
      rather than using the returned indom from pmFetch
    - add hinv.machine for oview to use
    - change the cpu instance domain to use the numa names if they are
      present on the machine, else revert to cpuX syntax
    - numerous fixes so the src RPM builds on all platforms
    - pv:824382 - xfs block metrics were scaled incorrectly
    - add support for /proc/slabinfo metrics (mem.slabinfo.*)
    - add new "process" and "mounts" PMDAs, contributed by Alan Baily
    - added GPL copyrights to process and mounts src, fixed makefiles
      to extract domain number from stdpmid and added install targets,
      and small change to ignore comments in conf files.
    - added hinv.pagesize (uses the getpagesize(2) system call)
    - fixed bug #825229 where rpm upgrade would clobber root pmns for PMDAs

pcp-2.1.10-8 (released circa Oct 18 2000, with SGI ACE1.4)
    - guard against DOS attack by restring incoming PDU size to 64K.
    - add hinv.map.cpu and hinv.cpu metrics exported by /proc/cpuinfo
    - fix small error in INSTALL_MAN rule in src/include/builddefs.in
    - fix for bug #793427 - correct symlinks for man pages with multiple
      entries in the .SH NAME section.
    - add network.tcpconn metrics to export counts of tcp connections in each
      state. Code contributed by Michal Kara (lemming@arthur.plbohnice.cz)
    - few minor fixes for build on ia64

pcp-2.1.9-12 (released circa Sept 13 2000, with SGI Propack1.4)
    - for 2.4 without sard, correctly match disk numbers in /proc/stat
      with major,minor numbers in /proc/partitions.

pcp-2.1.9-11 (unreleased)
    - add pagebuf metrics (Daniel and Nathan)
    - fixes so the build works if pcp is not already installed
    - minor security fix to pcp.spec.in (force mode 644 for .NeedRebuild)
    - make sure the src RPM builds correctly (LSRCFILE issues from LinuxWorld)
    - fix for bug #797756, upgrade from pcp2.1.6 to any newer version leaves
      pcp chkconfig off and the name space does not get rebuilt.
    - extended the weblogs PCP agent so it can report proxy/squid
      http servers, and added assorted http cache statistics.
    - fixed the Cisco router PCP agent (it was broken in pp1.3).
    - add support for disk stats in 2.4.x kernels with "disk_io" field
      in /proc/stat (only used when sard patch is not installed)
    - if the pcp-pro package (SGI proprietary) is installed, all libpcp
      clients on linux are now "authorized" to monitor IRIX systems that
      do not have a pmcd collector license.

pcp-2.1.9-6 (released 2 Aug 2000 for propack1.4 - alpha, not final)
    - install /usr/share/pcp/lib/rc-proc.sh containing common
      shell functions for use by rc scripts - these functions
      are tolerant of the chkconfig command missing (as in SUSE).
    - update all rc scripts and {pmlogger,pmie}_{check,daily} scripts
      to use the new rc-proc.sh functions. Remove the /etc/sysconfig
      stuff entirely (it was not being used anyway).
    - fix for #795934 : after rpm -U, pcp is chkconfig off. It turned
      out that an upgrade executes the %post _and_ the %preun scripts,
      which resulted in pcp being chkconfig'd on then off again.
    - fix pmie rc scripts so they work, are chkconfig friendly,
      and cope with _and_ without pmieconf (which is in pcp-pro).
      Also install /var/pcp/config/pmie/config.default as a simple example
      to monitor the load average and report to syslog. The pmie
      daemon is chkconfig off by default.
    - default run levels for pmcd and pmie (daemon) are now 2345, for SUSE
    - reconcile troff and groff differences in man page sources
    - fix for bug #797049 use strftime(%z) to determine timezone offsets
      w.r.t. daylight savings
    - portability surgery on src/libpcp_trace, and add new pmtracecounter()
      function, see pmtracebegin(3) for details.
    - reconcile pcp.env and pmcd.options from IRIX
    - fix for bug #797048 update-magic does not fully remove old entries
      before adding new, hence the magic file would grow after each upgrade
    - other minor reconciliation work with IRIX
    - fix build environment to allow proper handling of compressed man pages
    - add support for RPM version 4.
    - add support for add kernel.{all,percpu}.syscall metrics
      (requires kernel patch)
    - fixed for bug #797164: potential SEGV due to calling realloc on a 
      misused pointer - src/pmdas/weblog/weblog.c
    - use realpath(3) to resolve devices in /proc/mounts for filesys.* metrics


pcp-2.1.8-2 (released 30 June 2000)
    - fix for bug #793871 pmlogger_check fails after redhat upgrade
      (because PCP entries in /usr/share/magic were clobbered)
    - also install /var/pcp/pmdas/linux/pmdalinux (as a non-DSO
      agent for debugging and profiling purposes).
    - added pmda.uname (uname -a) and pmda.version (linux pmda version)
      metrics. The pmda.uname metric is needed by the "pcp" command.
    - fix for #789025 fix to ensure rpm --verify succeeds immediately
      after an install, and other errors in pmlogger_check
    - released with ACE 1.3 (MR 19 Jul 2000)

pcp-2.1.7 (internal release for testing)
    - merged changes from IRIX for multiple namespace support in
      pmdaproc.sh
    - parameterized path to pmcd.conf and pmcd.options to avoid
      having to move these files in IRIX. Use PCP_PMCDCONF_PATH and
      PCP_PMCDOPTIONS_PATH respectfully.
    - add new error define PM_ERR_LOGFILE (reconciled from IRIX)
    - conditional pragma for pmGetConfig (not used in linux)
    - use if defined(HAVE_OBJECT_STYLE) to guard __pmCheckObjectStyle
      since it's not used in linux (reconciled with irix code)
    - correct logic used to scan for pmlogger pid in pmlogger_check
      in case where pmlogger exits prematurely, part of #789025
    - added -Wall to default CFLAGS and LDFLAGS
    - added xfs metrics (needs kernel support else no values available)
      extracted from /proc/fs/xfs/stat
    - added nfs (version 3) metrics, same names as on irix, bug #789669
    - fix instance domain for kernel.percpu.interrupts, bug #790372

pcp-2.1.6 (released 3 May 2000)
    - released with ISE 1.2 (MR 25 May 2000)
    - released with ISEMAIL 1.0 (MR 24 May 2000)
    - this is the version shipped with SGI ProPack1.3
    - change use of __clone to pthread_create for portability
    - add support for raid disk stats (previously ignored)
    - fix for bug #789425 pmie suspect behaviour with "delta" keyword
    - add support for devfs style scsi disk names
    - fixed a problem where nfs stats were always showing NFSv3 stats
      rather than NFSv2 stats. We are not (yet) supporting NFSv3 stats.

pcp-2.1.5 (released 12 April 2000)
    - released with SGI ACE 1.2 (MR 19 Apr 200)
    - fix bug #786743 filesys metrics are wrong
    - fix potential segfault bug in timezone handling
    - tolerate SUSE's location of magic file different to Redhat's
    - tolerate no chkconfig on SUSE (use %postinstall create rc symlinks)

pcp-2.1.4 (released 15 Feb 2000)
    - fix for segfault src/pmdas/linux/pmda.c on linuxppc, found by
      Dale F. Brantly <dale.brantly@sgi.com>
    - fix build error in src/pmclient, was trying to use pmgenmap
      without /etc/pcp.env, also found by Dale.
    - setlinebuf(stdout) for all clients that loop
      (fixes a buffering problem on alpha-linux).
    - fixed some missing "{" in conditional variable assignments
      in src/pmie/etc_init.d_pmie (found by lstep@free.fr)
    - changed use of pmgenmap in build for pmclient and
      pmkstat to be consistent (found by lstep@free.fr)
    - don't assume clock tick rate is 100/second. Use the CLK_TCK macro
      instead. Rearrange arithmetic in src/pmdas/linux/pmda.c where we
      divide by CLK_TCK to avoid truncation in conversions from jiffies
      to milliseconds.
    - return "no values available" rather than PM_ERR_APPVERSION for
      the metrics disk.{all,dev}.{read,write,total}_bytes since these
      are not available on systems without the "sard disk patch".  This
      is now consistent with requests for disk.partitions.* metrics.

pcp-2.1.3 (released with 2.1.4)
    - released with ISE 1.0 (MR 1 Mar 2000)
    - added hinv.map.scsi metric as a map of SCSI devices (if any)
    - added disk.dev.{read,write,total}_bytes
    - filter devpts from filesys.* metrics to avoid FPE errors
    - added support for new style Apache configuration file and
      "silent" install to weblog scripts

pcp-2.1.2 (released with 2.1.4)
    - released with SGI ACE 1.0
    - fixed date field in LSM
    - install pmiestats.h for pmieconf
    - renamed /var/pcp/config/pmafm/pcp-col to
      /var/pcp/config/pmafm/pcp
    - added network.{ip,icmp,tcp,udp} metrics
      extracted from /proc/net/snmp
    - fixed shell syntax error in pmlogger_daily(1)
      (changed test -l to test -f)
    - fixed problem with definition of __psint_t on 64bit machines
    - fixed timezone problem with daylight saving

pcp-2.1.1 (released 7 Dec 1999)
    - initial pcp-2.1.1 open source release
