Debian Package Tracker
Register | Log in
Subscribe

pcp

System level performance monitoring and performance management

Choose email to subscribe with

general
  • source: pcp (main)
  • version: 7.1.5-1
  • maintainer: PCP Development Team (DMD)
  • uploaders: Ken McDonell [DMD] – Nathan Scott [DMD]
  • arch: all any
  • std-ver: 4.7.2
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • o-o-stable: 5.2.6-1
  • oldstable: 6.0.3-1.1
  • stable: 6.3.8-1
  • testing: 7.1.5-1
  • unstable: 7.1.5-1
versioned links
  • 5.2.6-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 6.0.3-1.1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 6.3.8-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 7.1.5-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • libpcp-archive1
  • libpcp-archive1-dev
  • libpcp-gui2
  • libpcp-gui2-dev
  • libpcp-import-perl
  • libpcp-import1
  • libpcp-import1-dev
  • libpcp-logsummary-perl
  • libpcp-mmv-perl
  • libpcp-mmv1
  • libpcp-mmv1-dev
  • libpcp-pmda-perl
  • libpcp-pmda3
  • libpcp-pmda3-dev
  • libpcp-trace2
  • libpcp-trace2-dev
  • libpcp-web1
  • libpcp-web1-dev
  • libpcp3
  • libpcp3-dev
  • libpcp4
  • libpcp4-dev
  • pcp (2 bugs: 0, 2, 0, 0)
  • pcp-conf
  • pcp-doc
  • pcp-export-pcp2elasticsearch
  • pcp-export-pcp2graphite
  • pcp-export-pcp2influxdb
  • pcp-export-pcp2json
  • pcp-export-pcp2spark
  • pcp-export-pcp2xlsx
  • pcp-export-pcp2xml
  • pcp-export-pcp2zabbix
  • pcp-export-zabbix-agent
  • pcp-gui
  • pcp-import-benchmarks
  • pcp-import-collectl2pcp
  • pcp-import-ganglia2pcp
  • pcp-import-guidellm2pcp
  • pcp-import-iostat2pcp
  • pcp-import-mrtg2pcp
  • pcp-import-sar2pcp
  • pcp-import-sheet2pcp
  • pcp-pmda-infiniband
  • pcp-testsuite
  • pcp-zeroconf
  • python3-pcp
action needed
Marked for autoremoval on 02 July: #1133063 high
Version 7.1.5-1 of pcp is marked for autoremoval from testing on Thu 02 Jul 2026. It is affected by #1133063. The removal of pcp will also cause the removal of (transitive) reverse dependency: bpftune. You should try to prevent the removal by fixing these RC bugs.
Created: 2026-04-10 Last update: 2026-06-23 23:02
lintian reports 2 errors and 18 warnings high
Lintian reports 2 errors and 18 warnings about this package. You should make the package lintian clean getting rid of them.
Created: 2026-05-27 Last update: 2026-05-27 21:01
AppStream hints: 1 error and 1 warning for pcp-gui high
AppStream found metadata issues for packages:
  • pcp-gui: 1 error and 1 warning
You should get rid of them to provide more metadata about this software.
Created: 2018-06-04 Last update: 2026-02-23 04:00
Does not build reproducibly during testing normal
A package building reproducibly enables third parties to verify that the source matches the distributed binaries. It has been identified that this source package produced different results, failed to build or had other issues in a test environment. Please read about how to improve the situation!
Created: 2025-12-05 Last update: 2026-06-23 22:30
version in VCS is newer than in repository, is it time to upload? normal
vcswatch reports that this package seems to have a new changelog entry (version 7.1.6-1, distribution unstable) and new commits in its VCS. You should consider whether it's time to make an upload.

Here are the relevant commit messages:
commit 1c256b85970681fc1df422035aabe0a2e8da7d3f
Merge: 451e5366 9bceddfb
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 23 14:48:59 2026 +1000

    Merge branch 'main' into pmi-append-mode

commit 451e5366e4f57c373da73e08d9ab0776f7967a39
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 23 08:52:30 2026 +1000

    libpcp_import: build, docs, qa and comments updates on code review

commit 9bceddfbadff601341cbb74995542feead19366b
Merge: e9bbdb8b 1ac9652b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 23 10:57:37 2026 +1000

    Merge pull request #2629 from kmcdonell/wip
    
    QA updates, retire some PMDAs, small extra units related changes

commit a6c5e2ef897d4be5c0dc2a86996602790cd717e7
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 22 11:58:49 2026 +1000

    pcp.pmi, LogImport: add wrappers for pmiSetZoneinfo and pmiSetImportProgram
    
    Add Python ctypes declarations and method implementations for the two
    new single-context pmiSet* APIs added on this branch:
      pmiSetZoneinfo(zoneinfo)        - set Olson timezone from zoneinfo string
      pmiSetImportProgram(tool, ...)  - register import program with pmdapmimport
    
    Add Perl XS declarations for the same two functions.  pmiSetVolumeSize
    is omitted from Perl as its callback argument has no natural XS mapping.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit e379b2ec1ff17127e7ad212aad08960e6d40038e
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 22 10:57:36 2026 +1000

    libpcp_import: add pmiSetImportProgram() for import tool registration
    
    pmiSetImportProgram(tool, version, args, archive) writes tool identity
    to PCP_IMPORT_DIR/{tool} so pmdapmimport can serve pmimport.* metrics.
    
    PCP_IMPORT_DIR is a new pcp.conf variable (configure --with-importdir,
    default /run/pmimport) that is created root:root 0755 by packaging.
    The file is opened with O_NOFOLLOW|O_CLOEXEC to prevent symlink
    substitution and fd leakage; O_TRUNC handles restart after unclean exit.
    
    pmiEnd() removes the file on clean archive close so pmimport.* metrics
    accurately reflect which tools are currently recording.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 1f5019adf948adf34bd65bc8c90906e1d7005b32
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 19 18:41:57 2026 +1000

    libpcp_import: eliminate .meta bloat in append-mode archives
    
    Three sources of repeated metadata writes in PMI_APPEND mode:
    
    Indoms: check_indom() had no dedup check so every append session
    re-wrote all indom records regardless of whether membership had
    changed.  For timer-driven collectors like sadc this caused O(N×S)
    .meta growth where N is the number of processes and S is the number
    of sessions per day.
    
    Fix: compare the registered indom against the most recent entry in
    hashindom (populated by __pmLogLoadMeta on append open).  For v3
    archives use pmaDeltaInDom() — the same helper pmlogger uses — to
    write a compact TYPE_INDOM_DELTA record when membership changes, and
    update the hash with the full indom afterwards so the next comparison
    starts from the correct state.  For v2 archives use pmaSameInDom()
    and fall back to full indom writes.  Link -lpcp_archive for access
    to pmaDeltaInDom() and pmaSameInDom().
    
    Help text: _pmi_put_text() reset meta_done=0 each session via
    pmiStart inherit, causing all help text to be re-written on every
    append.  Fix: check __pmLogLookupText() before writing; skip if
    content is unchanged.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 930460a76fff623cd47574434835c69f561f85d9
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 18 10:51:15 2026 +1000

    libpcp_import: add pmiSetZoneinfo() for v3 archive Olson timezone
    
    PCP v3 archives have a 'zoneinfo' label field for the full Olson
    database timezone identifier (e.g. "Australia/Brisbane"), which gives
    tools DST-correct replay without ambiguity.  pmiSetTimezone() only
    sets the POSIX abbreviated form ("AEST-10") and was incorrectly
    clearing zoneinfo when applying it to the label.
    
    Add pmiSetZoneinfo(const char *value) which sets the zoneinfo field
    independently, modelled on pmiSetTimezone().  Passing NULL auto-detects
    the local Olson name via __pmZoneinfo() (libpcp tz.c), which handles
    both the /etc/localtime symlink case and the recursive file-content
    matching fallback.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit d8a186ab6be04b793db158c6c2643355b486996c
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 17 14:08:06 2026 +1000

    libpcp_import: add pmiSetVolumeSize() for automatic data volume rotation
    
    Add pmiSetVolumeSize(size_t max_bytes, void (*on_rotate)(const char *))
    to libpcp_import.  After each successful pmiHighResWrite() or pmiWrite()
    call, if the current data volume file size meets or exceeds max_bytes the
    library closes the current volume, opens the next numbered volume (writing
    a new label), and invokes the caller's callback with the path of the
    just-closed volume so compression or other post-processing can be arranged.
    Passing max_bytes=0 disables rotation (the default).
    
    Guard: pmiSetVolumeSize() rejects a threshold at or below the on-disk
    label size for the configured archive version.  Accepting a sub-label
    threshold would cause a rotation cascade since every new volume's label
    immediately exceeds the threshold.  The check uses the public pmapi.h
    field-width constants to avoid a dependency on the file-static
    __pmLabel_v2/v3 types.
    
    Also: replace the magic number 100000 in _pmi_put_result() with the
    named constant PMI_FLUSH_INTERVAL throughout archive.c.
    
    Also: pair consecutive int fields in pmi_context (private.h) to eliminate
    four bytes of alignment padding before each pointer on 64-bit platforms.
    The struct is private to libpcp_import so there is no ABI constraint.
    
    QA: check_volsize.c exercises rotation, callback, size-bound and label-size
        guard; wired into qa/1693 (the existing PMI_APPEND test) with a
        pmlogcheck step to verify multi-volume archive integrity.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 63b681aeeb4bed12861309b55db5aa9f96d943bc
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 17:10:59 2026 +1000

    pcp.pmi: fix pmiWrite when sec=0 and usec is omitted
    
    The condition 'if sec and not usec' fails when sec==0 because 0 is
    falsy, leaving usec as None and causing pmiWrite2(0, None) to raise
    TypeError against its c_int argtypes.  Change to 'if usec is None'
    so the datetime/float dispatch and the usec=0 fallback always run
    when usec was not supplied by the caller.
    
    Add a pmiWrite(0) call at the start of qa/src/test_pmi.python to
    cover this path, and update qa/708.out accordingly.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 90d2c1846eae89616214e8b16eec9a795e5bd51e
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 16:31:19 2026 +1000

    libpcp_import: address coderabbit review findings
    
    pmiPutAtomValueHandle: validate atom is non-NULL before passing to
    _pmi_stuff_atomvalue, returning PM_ERR_ARG to avoid a segfault on
    PM_TYPE_STRING metrics where atom->cp would be dereferenced.
    
    archive.c _pmi_do_desc: when a descriptor for this PMID already exists
    in the archive, verify it is compatible before skipping the write.
    A package upgrade may have corrected an incorrect type, semantics,
    instance domain or units for a metric, in which case the old archive
    cannot be extended with new data.  Return PM_ERR_LOGCHANGETYPE,
    PM_ERR_LOGCHANGESEM, PM_ERR_LOGCHANGEINDOM or PM_ERR_LOGCHANGEUNITS
    as appropriate so the caller has a precise diagnosis.
    
    qa/group: add local group to qa/1670 so the standard local sweep
    picks up the new append-mode coverage.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit af52c92d0181a3fa86b3a5db7f060bc69f2be19f
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 13:01:20 2026 +1000

    qa: makefile cleanups, removing unneeded macros

commit e0014ef6f728945828d91b8efea62f2faeedfe92
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 11:04:27 2026 +1000

    pcp.pmi: add type annotations to pmiLogImport API
    
    Annotate all method signatures in the pmiLogImport class with PEP 484
    type hints, compatible with the project's Python 3.6 minimum.
    
    Return types reflect actual Python-level values (int status, pmID,
    pmInDom, pmUnits, None).  String parameters are annotated as str since
    bytes encoding is an internal detail.  pmiPutValue/pmiGetHandle inst
    parameters are Optional[str] to reflect the None-for-singular-metric
    convention.  pmiWrite sec is Union[int, float, datetime] matching its
    three-way dispatch.  Imports Optional and Union from typing.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 1de184d6b6d22ffae84199402798ca9fa209364a
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 10:56:00 2026 +1000

    man: add Python SYNOPSIS to all pmi* man pages
    
    Add a Python SYNOPSIS section to each libpcp_import man page that has
    a Python binding in src/python/pcp/pmi.py.  The Python API wraps the C
    library via the pmi.pmiLogImport class; methods are called on an
    instance.  Multi-line call signatures use the same continuation-indent
    style as the existing Perl SYNOPSIS sections.
    
    pmiputresult.3 gains a Python-only synopsis (Perl has no binding for
    pmiPutResult/pmiPutHighResResult).  pmisetversion.3 gains both Perl and
    Python synopses, fixing a pre-existing omission.  pmiusecontext.3 and
    pmierrstr.3 are left without a Python synopsis as pmi.pmiLogImport
    handles context switching internally and surfaces errors as exceptions.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 91f772425c09f3d2aedffcf8f4dbe0ba88267fd5
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 10:43:57 2026 +1000

    libpcp_import: add pmiPutAtomValueHandle to public API
    
    Add pmiPutAtomValueHandle(int handle, pmAtomValue *atom) as a binary
    counterpart to pmiPutValueHandle, passing values directly via the
    pmAtomValue union rather than as strings requiring parsing.
    
    Refactor stuff.c to extract _pmi_alloc_vp and _pmi_alloc_valblock
    static helpers, eliminating the duplicated result/vset/vp setup and
    pmValueBlock allocation that both _pmi_stuff_value and the new
    _pmi_stuff_atomvalue share.
    
    Update pmiputvaluehandle.3 and exercise the new function in
    qa/src/check_import.c covering the INSITU path (U32), DPTR path
    (64-bit), bad-handle and duplicate-value error cases.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit ec9d164178b1cc4a388bdc1dcd4d5968885c1b2a
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 2 12:26:49 2026 +1000

    libpcp_import, libpcp: improve archive append mode and public API
    
    logutil.c: rework __pmLogOpenAppend() to use __pmLogFindOpen() for
    volume discovery.  Previously we iterated using lcp->numti (temporal
    index count) as a starting hint; this bypassed the canonical readdir +
    __pmLogAddVolume path.  Now:
    
     - __pmLogFindOpen() performs the directory scan, correctly setting
       lcp->name, lcp->minvol and lcp->maxvol via __pmLogAddVolume.
     - .meta and .index handles from __pmLogFindOpen (read mode) are used
       to validate the archive label and load the temporal index for
       lcp->endtime, then closed and reopened in r+ mode for writing.
     - The highest data volume (lcp->maxvol) is opened in r+ mode so its
       label is validated with __pmLogChkLabel before appending, matching
       the consistency checking done by __pmLogChangeVol in the read path.
     - acp->ac_flags |= PM_CTXFLAG_LAST_VOLUME signals that we are at the
       most recent volume, following the __pmLogOpen convention.
    
    import.h: expose pmiWrite2, pmiHighResWrite and pmiPutHighResResult as
    the preferred Y2038-safe interfaces.  pmiWrite(int,int) is marked
    deprecated.
    
    pmiwrite.3: document pmiWrite, pmiWrite2 and pmiHighResWrite on one
    page; note pmiWrite as deprecated and pmiHighResWrite as preferred.
    
    pmiputresult.3: document pmiPutResult and pmiPutHighResResult together;
    note pmiPutHighResResult as the preferred nanosecond-resolution variant.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit b8a7fbb2b71ac00d91585bfff6672602bfe87e40
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 1 16:49:44 2026 +1000

    libpcp_import: expose pmiWrite2 and pmiHighResWrite in public API
    
    pmiWrite2(int64_t sec, int usec) and pmiHighResWrite(int64_t sec, int nsec)
    were already implemented and exported from the shared library but were
    missing from the public import.h header, making them unusable by callers
    without forward-declaring them manually.
    
    Add declarations for both and deprecate pmiWrite(int, int) with a comment:
    its 32-bit seconds argument is not Y2038-safe and callers should migrate to
    pmiHighResWrite() for nanosecond-resolution timestamps or pmiWrite2() for
    microsecond resolution.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 2fe039df7d848390a6491a4eb1e5c49ca6ea5e64
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 9 11:20:46 2026 +1000

    libpcp, libpcp_import: implement an archive append mode of operation
    
    Rename the second argument of pmiStart() from the implicit boolean
    'inherit' to an explicit 'flags' field.  Named constants are now
    provided in import.h:
    
      PMI_INHERIT (0x1) - existing behaviour: inherit metric definitions
                          from the current context into the new one
      PMI_APPEND  (0x2) - open an existing archive for appending instead
                          of creating a new one
    
    pmiStart() with PMI_APPEND opens the named archive if it already
    exists and positions all file handles at end-of-file, loading the
    existing metadata so that subsequent pmiWrite() calls append new
    records after the last existing record.  If the archive does not
    yet exist the flag is silently ignored and a new archive is created,
    making PMI_APPEND safe for unconditional use in timer-driven
    collectors (e.g. sadc) on first invocation.
    
    Add QA test 1693 to exercise the append mode.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 1ac9652bc305d98dd733c13d7eafead8422dd59d
Merge: a2c3f51c 28905524
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 23 06:59:05 2026 +1000

    Merge branch 'main' into wip

commit 28905524ea695b3a1e6dbcdd11f3a075475b9f10
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 23 06:34:06 2026 +1000

    rpm packaging: obsolete (remove) mic and roomtemp PMDA packages

commit a2c3f51cb152e50a91f97d198d65f0250147f68b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 21:38:47 2026 +1000

    qa/archives/mk.common: tighten up shell variable quoting

commit 668623e3371ec5022cf3436e9b3897820a92da39
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 21:27:02 2026 +1000

    qa/archives/mk.amdgpu: small fixups
    
    As spotted by @coderabbitai.

commit 47ae945b5458de0e4059ef69f1c8de41eb01fe0b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 21:21:49 2026 +1000

    Update qa/1559
    
    Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

commit e9bbdb8b938f3f2644fad5a21b2cee02faf790a4
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 22 17:47:26 2026 +1000

    qa: fix regression in qa/1543 by filtering changed label

commit 0bd8521c87609701e44b371db4173a374c0d307f
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 17:21:20 2026 +1000

    qa/archives/GNUmakefile: package the amd-smi output files
    
    Needed by qa/1674.

commit c5ae751ede574f69dc86e1a3d7892cbd73583a59
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 15:57:12 2026 +1000

    qa/archives/GNUmakefile: make sure renamed archives are packaged

commit c12caed0a4f10701b5262633f109df3cbe362704
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 15:51:09 2026 +1000

    qa/archives/nvidiagpu.*: renamed to qa/archives/nvidiagpu-0.*
    
    In preparation for extra units changes for nvidia PMDA.

commit 9a53571da90f56d89dfaa77e1c5b23650c7d012e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 15:43:37 2026 +1000

    qa/archives: mk.* rework
    
    - move to a archive-<version> style of naming so we can generate
      multiple archives from the mk.foo scripts to deal with the
      evolution of the underlying PMDAs (triggered by amdgpu and the
      extra units and metadata changes there)
    - convert mk.nvidiagpu to use mk.common (in preparation for
      extra units changes for the nvidia PMDA)

commit 01d5079fa81b35300fb292a23f4913afb47e549e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 09:00:48 2026 +1000

    qa: track name change for amdgpu qa archive(s)
    
    tests: 1559, 1669, 1670

commit 3b37af8a06ea213b9fa8f2fb5f4e3697ff4418c0
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 09:00:09 2026 +1000

    src/pmlogrewrite/gram.y: fix small memory leak from extraunits clause
    
    Found by qa/1670.

commit df71b48f5185d5ae6e8c42c10651fbfd7e007c59
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 08:58:18 2026 +1000

    src/pmdas/amdgpu/rewrite.conf: rework for extraunits
    
    Because this rewrite file includes the PMNS <--> PMID fixups,
    clauses using metric names are potentially ambiguous and were
    confusing pmlogrewrite.  Changing to PMIDs for the new extraunits
    changes fixes the problem.

commit b1494f97eb1ebb5c9f237dd2e8b98a487621e1f7
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 08:56:19 2026 +1000

    qa/common: prefer diffuse for graphical diffs, if available
    
    For me (on bozo), meld is really slow (to exit), so switching to diffuse.

commit 7dac1fc4662fff14f5aa6d17ce04057ccea4b9b2
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 08:34:37 2026 +1000

    qa/GNUmakefile & qa/GNUmakefile.install: the qa mic subdir has been removed

commit 7d44e0c3b22a91033822d47a8f76e0d17e9ef8ed
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 08:02:56 2026 +1000

    Retire the roomtemp PMDA
    
    I built this PMDA more than 30 years ago as a proof of concept one
    night in a hotel room while on a PCP speaking tour for SGI ... I
    no longer have the Dallas one-wire sensor and a PMDA that needs one
    temperature sensor plugged into a serial port is probably not that
    widely used.

commit 8eba4293ea03392c0db5025efdedfaae6069616a
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 07:46:11 2026 +1000

    Retire the mic PMDA
    
    The hardware this PMDA depends upon (the Intel® Xeon Phi™ Coprocessor)
    stopped shipping almost 9 years ago, so this PMDA is very unlikely to
    be of further use.

commit 3b8ca296fba6d27f1d9877622cdf56a22207a022
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 07:27:41 2026 +1000

    qa/1187: track name change for original amdgpu QA archive

commit dde1336ec3954b10d64edf1566026eabe7767911
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Jun 21 07:49:12 2026 +1000

    debian/control.pcp: update pcp-conf Breaks: and Replaces:
    
    /etc/pcp/indom.conf moved from pcp to pcp-conf.

commit 13767bad0d83923f325957a0d2e994f18d07fbc6
Merge: e7355308 5a35adf6
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 12:23:36 2026 +1000

    Merge pull request #2627 from kmcdonell/wip
    
    Add amdgpu PMDA QA test and fix clock metrics unit conversion

commit 5a35adf60d1b786b5b8683652b260ac9295fa3b1
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 10:38:11 2026 +1000

    pmdas/amdgpu: small rework
    
    - better error handling for store method
    - don't include fake.c in build

commit 525b638cc417b60bc8fa71b9e1a2ec50545739f9
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 10:16:37 2026 +1000

    qa/1674: check for failure messages from awk
    
    Thanks coderabbitai.

commit e8d92720beb844834e49041b415a13fbe8f5ecf3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 09:57:20 2026 +1000

    pmnsmerge.static: rework based on feeedback from coderabbitai
    
    Review in the context of PR 2627.
    
    Make build and use of pmnsmerge.static consistent.

commit f83f0d4802be32714d7a9267ef7283d7682866ed
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 08:50:50 2026 +1000

    src/pmdas/amdgpu: improvements
    
    - add amdgpu.control.debug to turn debugging on/off while running
    - lots of additional diagnostics under -Dappl1 guards
    - fix max clock values - they appear to be KHz not Mhz
    - change to extra units for power and temperature

commit d0c9996c6b333e6bfddc8b50891e79e5aa15090e
Merge: 0ee8019a b25dbfda
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 08:44:20 2026 +1000

    Merge branch 'main' into wip

commit b25dbfda794d77d2ba436c6482b67d6fcc3bf9dc
Merge: e7355308 26b62109
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 08:41:41 2026 +1000

    Merge branch 'amdgpu'

commit 0ee8019a5bc8dcffa62d19a2c8ca2e2182fc017a
Merge: 329ee605 e7355308
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jun 19 21:22:38 2026 +1000

    Merge branch 'main' into wip

commit e7355308175f80cbb99ec07936edbf1c4262ad27
Merge: 8cddb009 b440f2c3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jun 19 21:20:30 2026 +1000

    Merge pull request #2610 from kmcdonell/amdgpu
    
    Updates for pmlogrewrite and amdgpu PMDA

commit 26b621095fbe23753f00e59015b0f218791fdbed
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jun 19 21:18:19 2026 +1000

    amdgpu PMDA: updated qa and test archive

commit 329ee605fc3f1f0e4b45f2f4974fe419ee8f6860
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jun 19 06:32:13 2026 +1000

    pmnsmerge: build pmnsmerge.static and use it to create local.pmns

commit 8cddb009b1db532a5ffcdbbf1c7007fb6920eea0
Merge: cf8cdf4b bf7adf23
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jun 18 21:13:33 2026 +1000

    Merge branch 'main' of ../pcp

commit bf7adf233581457b3d08515213d0622812e1995f
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jun 18 17:17:02 2026 +1000

    qa/1544: pmlogger may be a drive-by victim
    
    Dinking with pmproxy may change the metrics from the pmproxy PMDA
    which in turn may cause the primary pmlogger to exit, and if there is
    no systemd ambulance to apply CPR, and if check.callback is in play
    then this and some (large) number of following tests fail because the
    primary pmlogger is not running.

commit 8d2f05736b3e6b7cbb372efa3326adb03e00eb92
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jun 18 17:15:20 2026 +1000

    qa/024: cifs PMDA recently appeared, but it may not be there
    
    Filter away, Mr. Magoo.

commit cf8cdf4b71ebd6801b423807c6f70b8dcd8bce38
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 18 12:03:09 2026 +1000

    build: rename root.local to local.root; fix Debian install paths
    
    Rename the generated local context PMNS file from root.local to
    local.root throughout (GNUmakefile, .gitignore, pcp-conf.install,
    QA test 1742, pcpintro.1).
    
    Also fix pcp-conf.install to use usr/lib/pcp/ rather than
    usr/libexec/pcp/ for the new entries - Debian sets libexecdir=/usr/lib
    so $(PCP_PMNSADM_DIR) resolves correctly in the makefiles but the
    static paths in the install manifest must match.
    
    Addresses review feedback from Kenj.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 58ebd890b437fd434643d4d195a825d4a1fdd26f
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 12:49:24 2026 +1000

    build: add QA test and docs for local context DSO PMDA mechanism
    
    QA test 1742 exercises PM_CONTEXT_LOCAL using PCP_PMCDCONF_PATH=local.conf
    and PMNS_DEFAULT=root.local: verifies hinv.ncpu is fetchable, mmv wildcard
    resolution works, and pmcd.* metrics are absent from the local namespace.
    
    Document PCP_PMCDCONF_PATH and PMNS_DEFAULT usage for local context in
    pcpintro(1), including the recommended pairing of local.conf + root.local.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 4d1f2d850f5b26872a0ea16b45b6b22325232b1c
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 11:30:41 2026 +1000

    build: local context files minor formatting tweaks and fixes
    
    Related to #2615.

commit 2aa5606b5fdec1d2910e66542b09915c958b31d1
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 20:50:17 2026 +1000

    build: fix duplicate root_* PMNS file installs in pcp-conf PMDAs
    
    PMDAs contributing root_* files to pcp-conf were installing a real
    file copy to both $(PMDAADMDIR) and $(PCP_PMNSADM_DIR).  Make the
    $(PCP_PMNSADM_DIR) and $(PCP_PMNS_DIR) entries symlinks back to the
    canonical copy in $(PMDAADMDIR) instead.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 93f9006292ce71291b93a81ebf1b1636b99f6cb7
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 18:35:58 2026 +1000

    build: generate root.local PMNS for local context DSO PMDAs
    
    During the build, generate a merged PMNS root.local containing the
    combined namespace for all DSO PMDAs listed in local.conf.  Uses
    pmcpp.static to resolve domain macros and awk to merge the separate
    root{} blocks from each PMDA's root_* file into a single namespace.
    
    Install root.local to PCP_PMNS_DIR as part of pcp-conf, alongside
    the existing per-PMDA root_* files.  Clients using PM_CONTEXT_LOCAL
    can select this namespace via PMNS_DEFAULT.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit b776d19b5194512a72c83eba135148f35ad4b433
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 11:06:10 2026 +1000

    build: move root_* namespace files to pcp-conf for local context
    
    Arrange for the root_* namespace files to be installed via the
    pcp-conf package, so that pmNewContext(PM_CONTEXT_LOCAL,...) in
    PMAPI clients can use DSO PMDAs for sampling using just pcp-conf
    and pcp-libs installed.  The final step is to add a "root.local"
    without cpp-directives (there is no pmcpp(1) binary is available
    in this minimal install situation).
    
    Related to #2615.

commit 41c71e8d09c9edccba5f7a75673a3a43305db16a
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 12 17:38:31 2026 +1000

    build: introduce local.conf with dso PMDAs for local context
    
    Arrange for the build to produce /etc/pcp/local.conf for use
    with pmNewContext(PM_CONTEXT_LOCAL,...) so that PMAPI clients
    can use DSO PMDAs for sampling using just pcp-libs installed,
    and no pmcd installed/running if they wish.
    
    Related to #2615.

commit 2f88a1a20e7a3dcfa60af5be50894cb4d6e8acda
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 16:58:03 2026 +1000

    qa/1094: capture stderr and filter, and remake
    
    After pmlogger_daily diagnostic improvements.
    
    Fallout from macOS work on pmlogger_daily et al.

commit 92ee2b1b68d0ba0da6827bfd892b2000bdfe048e
Merge: 29e63c95 245f3fa0
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:59:18 2026 +1000

    Merge branch 'main' of https://github.com/performancecopilot/pcp

commit b440f2c3c15ffcc8df2795d6ec14ee2869155221
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:55:56 2026 +1000

    src/pmdas/amdgpu: move fake library routines to a separate source file
    
    Move fake routines to (new) fake.c and cleanup drm.c.

commit f52c123a2c60cfb0bd0e331bd3c411866430b27d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:47:23 2026 +1000

    src/pmdas/amdgpu/drm.c: small tweaks in fake routines implementaion

commit 245f3fa0c58976db6e8e13d847d8f53569de8ebb
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 17 14:46:39 2026 +1000

    build: update gitignore for debian/ generated sysusers files

commit ac8e96c8b1fa4d4abc68c448c9a75ca1eaec02fd
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:28:39 2026 +1000

    src/pmdas/amdgpu/drm.c: fix calloc() botch in fake library routines
    
    Found by valgrind.

commit 19993a221edfee2532007596d7131f9cc3186708
Merge: fa574d6d ad88f2db
Author: Paul Smith <tallpsmith@gmail.com>
Date:   Wed Jun 17 14:20:17 2026 +1000

    Merge pull request #2626 from tallpsmith/feature/brewfile-mac-deps
    
    build/mac: replace brew-packages.txt with a top-level Brewfile

commit 88bb5db665e6e41eb63475a4a77ab943b394dd83
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:10:05 2026 +1000

    src/pmdas/amdgpu/amdgpu.c: fix fatal problem with PMID changes
    
    Move GPU metrics from cluster 2 to cluster 3 exposed a quirk in
    the implementation ... none of the cluster 3 metrics were being
    refreshed, so no values were available.

commit b2208e689a3bc5377456bd15d139e3f83e5059a2
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:05:37 2026 +1000

    src/pmdas/amdgpu/drm.c: hackery to support development without hardware
    
    Fake minimal implementation of the drm*() and amd*() library routines
    that the PMDA needs ... allows testing if you don't have AMD GPU
    hardware.
    
    Obviously this is disabled by default 8^)

commit ad88f2db1ff4aff7ed12f32bef2f6d2ce81dc497
Author: Paul Smith <tallpsmith@gmail.com>
Date:   Thu Jun 11 09:53:01 2026 +1000

    build/mac: replace brew-packages.txt with a top-level Brewfile
    
    Simplifies macOS dep install to `brew bundle` for contributors and CI.
    The Brewfile sits at the repo root so `brew bundle` works with no args;
    Brewfile.lock.json is gitignored (cosmetic, not load-bearing).
    
    - INSTALL.md, .github/workflows/macOS.yml, .cirrus.yml all updated
    - Cirrus cache fingerprint now hashes the Brewfile package set
    - build/mac/brew-packages.txt removed

commit 770d8ac7d8ceca0ec6f9f684857564d8307984dc
Merge: 647eb6c1 29e63c95
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 06:48:41 2026 +1000

    Merge branch 'main' into amdgpu

commit 29e63c95af7f49240f751b0751145217a56eda83
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 06:46:40 2026 +1000

    1425.out: remade after pmlogger_daily diagnostic improvements
    
    Fallout from macOS work on pmlogger_daily et al.

commit 16d21906d4c3a6d1506950d10ca6aea28c28a858
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 17:34:59 2026 +1000

    debian/pcp-testsuite.postinst: use getent in preference /etc/passwd
    
    Makes a lintain error go away.

commit fa574d6dc8875962e1ec36b99448b67272c0b9e8
Merge: 9b168767 9f0982d0
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 14:45:49 2026 +1000

    Merge branch 'main' of github.com:performancecopilot/pcp

commit 9b1687674e68de66cfd0b6b461a8acaa12fb07de
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 14:44:20 2026 +1000

    pmdadb2: fix SQL function names and column names for Db2 12.1
    
    Correct several bugs identified by testing against Db2 12.1 Community
    Edition where the original queries produced SQL0206N or SQL0440N errors:
    
    MON_GET_LATCH does not exist.  The correct function name is
    MON_GET_EXTENDED_LATCH_WAIT(member).  Updated both the latch instance
    domain query and the cluster 6 metric query.
    
    TOTAL_SORT_TIME does not exist in MON_GET_DATABASE.  The correct column
    name is TOTAL_SECTION_SORT_TIME.  Rename the metric accordingly to
    db2.database.total_section_sort_time.
    
    STMT_SORTS does not exist in MON_GET_PKG_CACHE_STMT.  The correct column
    name is TOTAL_SORTS.
    
    UNREAD_PREFETCH_PAGES belongs to MON_GET_TABLESPACE, not
    MON_GET_BUFFERPOOL.  Move it from the bufferpool cluster (where it
    produced SQL0206N) to the tablespace cluster as a new item 14, renaming
    the metric to db2.tablespace.unread_prefetch_pages.
    
    POOL_NO_VICTIM_BUFFER is unconfirmed in MON_GET_BUFFERPOOL and likely
    a snapshot-era element that was never surfaced in the monitoring table
    function.  Remove it from the bufferpool cluster.
    
    MON_GET_TRANSACTION_LOG takes a single member INTEGER parameter, not
    two parameters.  Remove the stale comment that described it as
    (db_name, member) — the query was already correct at (-1).
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 647eb6c178ac67390f2ab333b87f1c347cef1be2
Merge: 7ef39c36 1c372c0a
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 14:27:10 2026 +1000

    Merge branch 'main' into amdgpu

commit 9f0982d0846ecf367c5c14577e6f921b1120d48d
Merge: 0186ab1f 1c372c0a
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 14:18:27 2026 +1000

    Merge branch 'main' of ../pcp

commit 1c372c0adb05e278edfcfe1f63daa6a76600fe0e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 14:17:32 2026 +1000

    qa/GNUmakefile: package common.perl
    
    Missed when the file was added.

commit 0186ab1f80f5d0e69306f4398b5a938ec6619f64
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 13:05:22 2026 +1000

    qa: add common.perl to the makefile for builds/CI

commit 2d9cb990b40406bab8eed7531857f01a8c19336f
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 11:54:49 2026 +1000

    pmdards: remove unused generated files checked into git

commit 9bd60ae96cd3098c430db9c9190d9d74b46ffbdc
Merge: 04d35b66 014a29c6 117b55d2
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 11:53:10 2026 +1000

    Merge branches 'makepkgs-ci-mode' and 'pmdadb2'

commit c670e49563d87d2f715b6fc3a90721e13bae6457
Merge: bdf948e9 8eaa9714
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 10:10:46 2026 +1000

    Merge branch 'units'
    
    Conflicts:
            qa/1668.out
    
    Fixed up between units and main branches.

commit bdf948e95d9dc094f7f0f34d7ca6278e6ddc3adf
Merge: ac9c6578 04d35b66
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 10:02:01 2026 +1000

    Merge branch 'main' of https://github.com/performancecopilot/pcp

commit 04d35b66533950efe44c4eef94af7585b238b50f
Merge: 58eecb96 f37b2208
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 10:01:32 2026 +1000

    Merge pull request #2619 from kmcdonell/mac
    
    macOS QA and build fixups

commit 014a29c67c20b8b5e1324c05b63d6dff25ff2d9a
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 09:54:24 2026 +1000

    Makepkgs: add --ci mode to reduce output volume while preserving error context
    
    --verbose floods container CI platforms with enough output to trigger
    internal container runtime timeouts (libpod exit-file races etc.).
    Dropping --verbose silently loses the error context on build failure.
    
    Add --ci mode as a middle ground: all output still goes to Logs/pcp in
    full, but only phase headers and error/failure lines are streamed to
    stdout in real time via a single _tee_log() helper.  On failure,
    build_failure() emits a filtered error summary and the last 100 lines
    of the log, which is far more useful than the previous 10-line tail.
    
    Switch all CI platform configs and the macOS workflow to --ci.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit ac9c657866f66d1f46e15f0b0ebe694785893c05
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 08:01:51 2026 +1000

    debian/changelog: 30 Jul is Thu, not Wed, and lintian noticed!

commit 7ef39c366a280848aad154c7edc7a0ae46eda652
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 06:59:23 2026 +1000

    src/pmdas/amdgpu/amdgpu.c: fix PM_LABEL_* logic
    
    Spotted by @coderabbitai in the context of PR #2610.

commit 0d4b6704187be2067c46f92451d345501146e87f
Merge: c595ea2a 58eecb96
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 06:47:26 2026 +1000

    Merge branch 'main' into amdgpu

commit c595ea2a5c181c1738eca3f9d855b720c883337d
Merge: 18dae4f2 62bd06c5
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 06:46:33 2026 +1000

    Merge branch 'main' into amdgpu

commit 18dae4f2ffa2f57efe001b37028009c00ac9113a
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 16 06:45:26 2026 +1000

    src/pmdas/amdgpu/amdgpu.c: add throttled diagnostics in pmFetch callback

commit 117b55d226a0e7abad4f21293d167bf5dded3b47
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 21:44:32 2026 +1000

    pmdadb2: address second round of coderabbit review comments
    
    Fix four valid issues identified in review:
    
    Align latch indom query with metric query: the indom enumeration
    returned all non-null latch names while the metric query filtered to
    TOTAL_EXTENDED_LATCH_WAITS > 0, so instance-only requests could expose
    latch names that then produced PM_ERR_VALUE on fetch.  Apply the same
    filter to both queries.
    
    Fix pkg_cache metric semantics: db2.pkg_cache.total_executions and the
    four other SUM(...) aggregates are snapshots over the current package
    cache contents; they can decrease when statements are evicted or the
    cache is flushed.  Changed from PM_SEM_COUNTER to PM_SEM_INSTANT and
    updated the help text accordingly.
    
    Use ConnectTimeout in ibm_db DSN: self.timeout was parsed from the
    configuration file but never applied.  Include ConnectTimeout=N in the
    connection string so the configured value actually limits how long the
    driver waits during initial connection.
    
    Clear cluster value caches before repopulating: db2_refresh_db_scoped
    and db2_refresh_instanced appended to values dicts without clearing
    first.  Dropped connections accumulated indefinitely in the connection
    metrics dicts, and failed refreshes left stale values.  Clear each
    metric's values dict at the start of every refresh.
    
    Two further comments were assessed and not actioned:
    - MON_GET_* member -1 vs -2: -1 (current member) is correct for
      standard non-partitioned Db2.  DPF/pureScale users would need -2.
    - Lossy instance name encoding: Db2 regular identifiers cannot contain
      spaces or :: so the risk is theoretical only.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit ef31da0eb80e9be4e677e8597ae0d1e151ae68f3
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 16:17:36 2026 +1000

    pmdadb2: add discrete instance metrics and pmlogconf recording configs
    
    Add cluster 9 (ENV_GET_INSTANCE_INFO) providing three PM_SEM_DISCRETE
    string metrics that are logged once and carried as archive context:
    
      db2.instance.name      - Db2 instance name (INST_NAME)
      db2.instance.version   - full service level string (SERVICE_LEVEL)
      db2.instance.platform  - OS and CPU architecture (PLATFORM)
    
    These are queried from the first available database connection since
    all databases on a Db2 instance share the same version and platform.
    A new db2_refresh_singleton method handles this: it iterates databases
    until one responds and stops, unlike db2_refresh_db_scoped which loops
    all databases and uses indom 6.
    
    Add two pmlogconf recording configuration files installed to
    /var/lib/pcp/config/pmlogconf/db2/ and included in the base pcp
    package (not pcp-pmda-db2), since pmlogger may run on a host that
    does not have the PMDA subpackage installed:
    
      pmlogconf.summary - db2.instance.* discrete metrics (log-once)
      pmlogconf.default - db2.database, db2.bufferpool, db2.log,
                          db2.pkg_cache aggregate performance metrics
    
    The manifest pattern in pcp.spec.in and redhat.spec is left as
    (etc/pcp|pmdas)/db2 so pmlogconf files are not claimed by the
    pcp-pmda-db2 subpackage and fall through to the base pcp package.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit b4499b6ba11351c1c90d1912683383fd533ddb14
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 15:25:28 2026 +1000

    pmdadb2: address coderabbit review comments
    
    pcp.spec.in: move %preun and %files for pcp-pmda-db2 inside the
    existing %if "@have_python@" == "true" blocks that cover all other
    unconditional Python PMDAs (netcheck, rabbitmq, etc).
    
    pmdadb2.python: use RawConfigParser so that '%' characters in
    passwords are not misinterpreted as configparser interpolation markers.
    Pre-populate indom 6 from self.databases before querying so a transient
    per-database query failure does not drop that database from the instance
    domain for all db-scoped metrics.  Use json.dumps() in the label
    callback so special characters in database or application names do not
    produce malformed JSON.  Remove unused intobool() method.
    
    pmdadb2.1: add missing DESCRIPTION subsections for db2.latch and
    db2.pkg_cache metric clusters.
    
    qa/2002: replace eval-based config parsing with per-variable awk
    assignments to avoid shell injection via crafted config values.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 3c781735f043c71d95b68f913cc1f78caa8dd710
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 14:58:05 2026 +1000

    pmdadb2: new Python PMDA for IBM Db2 performance metrics
    
    Adds a PMDA for collecting performance data from IBM Db2 databases using
    the ibm_db Python package and the Db2 MON_GET_* monitoring table functions.
    
    Nine metric clusters (0-8) covering ~85 metrics across eight namespaces:
    
      db2.database.*   (27) database-wide aggregates: transactions, row counts,
                            sort/lock/deadlock/escalation/timeout statistics,
                            package cache efficiency, direct I/O, connections
      db2.bufferpool.* (14) per buffer pool: logical/physical/async reads and
                            writes for data, index and column-organised pages,
                            pool I/O times, unread prefetch pages, no-victim events
      db2.table.*      (10) per user table: row DML counts, lock waits/escalations/
                            deadlocks, overflow accesses, full table scans
      db2.workload.*    (8) per workload: row counts, CPU time, transactions,
                            lock waits
      db2.tablespace.* (14) per tablespace: buffer pool and async I/O for data
                            and index pages, direct read/write counts and times
      db2.connection.* (10) per active connection: CPU time, row counts, commits,
                            rollbacks, lock waits, deadlocks, escalations
      db2.latch.*       (2) per latch type: extended wait time and count
                            (MON_GET_LATCH, filtered to contended latches only)
      db2.log.*        (10) transaction log I/O: writes, reads, physical I/O
                            counts, buffer-full events, current used/available KB
      db2.pkg_cache.*   (6) package cache summary aggregate: cached statement
                            count, total executions, CPU time, rows read, sorts
    
    Seven instance domains: buffer pools, tables (schema.table), workloads,
    tablespaces, connections, latches, and databases.
    
    Multiple databases on a single Db2 instance are supported.  The [databases]
    section of the configuration file holds a space-separated list of database
    names.  One connection per database is maintained.  The database name is the
    instance for the db2.database.*, db2.log.* and db2.pkg_cache.* metrics; all
    per-object metrics use dbname::component instance naming.  A labels callback
    decomposes compound instance names into separate database= and object-type=
    label dimensions for use with time series queries.
    
    All metrics and instance domains carry both one-line and long help text,
    including the source MON_GET_* column name.
    
    Configuration is at $PCP_SYSCONF_DIR/db2/db2.conf (/etc/pcp/db2/) only.
    
    Design notes:
    - ibm_db is not packaged in major Linux distributions, so the PMDA is built
      unconditionally whenever Python is available (like pmdanetcheck/pmdanrabbitmq)
      rather than gating on a configure-time library check.  A graceful ImportError
      with a useful diagnostic is emitted at runtime if ibm_db is absent, and the
      Install script performs the same check before registering with pmcd.
    - Each PCP cluster maps to exactly one MON_GET_* SQL call per configured
      database, fetching all columns for all instances in a single round-trip.
      Only clusters containing requested metrics are queried per fetch PDU.
    - Reconnection after a Db2 instance restart is handled by probing with
      VALUES(1) in db2_cursor() rather than relying on ibm_db.active() alone.
      db2_exec() clears the connection handle on any query failure to ensure
      the next call triggers a full reconnect.
    
    QA test 2002 exercises Install/Remove and validates key metrics against
    the first configured database, _notrun if prerequisites are absent.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 58eecb96c6e086e674b1d28eaf5c8210572ecd4b
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 15:10:10 2026 +1000

    ci: update the PR workflow to run CI, not full QA

commit 00647003621473f4000224e3dac21f16a76715e9
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 15 07:56:10 2026 +1000

    src/pmdas/amdgpu/amdgpu.c: add refresh failure reporting

commit 62bd06c536427fe9e73efa08e3e4add0f204438f
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Jun 14 21:30:11 2026 +1000

    debian/pcp-testsuite.postinst: for login shell to be set for user pcpqa
    
    Older versions of systemd-sysusers don't do this.

commit eb102deae45ca969e51dc82c445acea40b408c0b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Jun 14 17:18:07 2026 +1000

    debian/pcp-testsuite.postinst: fix typo from debugging last fix

commit 0f38ae979f59f54da574bc58f4ad7f7ac926dbd2
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Jun 14 16:54:04 2026 +1000

    build/rpm/pcp.spec.in: track name change for sysusers files over in debian dir

commit 954e70af6e722f8a378e793f88be3301654dbe0a
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Jun 14 14:52:22 2026 +1000

    debian: more rework for debian bug #1138692
    
    So, using systemd-sysusers is a great idea, except the systemd pixies changed
    the syntax of the sysusers control files at systemd version 247 meaning the
    pcp|pcpqa user setup fails on older Ubuntu systems.
    
    More rework to fix the sysusers file in the build.

commit 4fee09a99c199ea0da99d85892eebe43e7a969d0
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Jun 14 10:57:38 2026 +1000

    debian: rework for debian bug #1138692
    
    I took Claude's suggestion without proper checking, and it was
    wrong:
    
    1. the Depends: for /usr/bin/systemd-sysusers was the wrong
       (non-existent!) package
    2. the change makes the package installation fail if systemd
       is not present
    
    Harden the postinst scripts to use systemd-sysusers if available else
    use useradd if available else fail.  Fix the Depends: clauses to match.
    
    Check success of systemd-sysusers (or useradd) and fail if they fail.
    
    If we can't install the required pcp (and pcpqa) users, the
    installation is doomed.

commit 1a87f63e2a419b49b7bb8a7b2f94acf30a424130
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Jun 14 08:10:32 2026 +1000

    qa: fix tests using sudo instead of $sudo
    
    This issue was identified by @coderabbit in some other tests in the
    context of PR #2619 (macOS QA and build fixups).

commit f37b2208297b933886fca997ef29a664abe81fec
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Jun 14 08:02:56 2026 +1000

    macOS QA and build fixups: couple of more issues caught by @coderabbitai
Created: 2026-05-23 Last update: 2026-06-23 09:33
Multiarch hinter reports 2 issue(s) low
There are issues with the multiarch metadata for this package.
  • pcp-doc could be marked Multi-Arch: foreign
  • pcp-export-zabbix-agent could be converted to Architecture: all and marked Multi-Arch: foreign
Created: 2016-09-14 Last update: 2026-06-23 22:31
4 low-priority security issues in bookworm low

There are 4 open security issues in bookworm.

4 issues left for the package maintainer to handle:
  • CVE-2023-6917: (needs triaging) A vulnerability has been identified in the Performance Co-Pilot (PCP) package, stemming from the mixed privilege levels utilized by systemd services associated with PCP. While certain services operate within the confines of limited PCP user/group privileges, others are granted full root privileges. This disparity in privilege levels poses a risk when privileged root processes interact with directories or directory trees owned by unprivileged PCP users. Specifically, this vulnerability may lead to the compromise of PCP user isolation and facilitate local PCP-to-root exploits, particularly through symlink attacks. These vulnerabilities underscore the importance of maintaining robust privilege separation mechanisms within PCP to mitigate the potential for unauthorized privilege escalation.
  • CVE-2024-3019: (needs triaging) A flaw was found in PCP. The default pmproxy configuration exposes the Redis server backend to the local network, allowing remote command execution with the privileges of the Redis user. This issue can only be exploited when pmproxy is running. By default, pmproxy is not running and needs to be started manually. The pmproxy service is usually started from the 'Metrics settings' page of the Cockpit web interface. This flaw affects PCP versions 4.3.4 and newer.
  • CVE-2024-45769: (needs triaging) A vulnerability was found in Performance Co-Pilot (PCP).  This flaw allows an attacker to send specially crafted data to the system, which could cause the program to misbehave or crash.
  • CVE-2024-45770: (needs triaging) A vulnerability was found in Performance Co-Pilot (PCP). This flaw can only be exploited if an attacker has access to a compromised PCP system account. The issue is related to the pmpost tool, which is used to log messages in the system. Under certain conditions, it runs with high-level privileges.

You can find information about how to handle these issues in the security team's documentation.

Created: 2024-02-29 Last update: 2026-05-29 02:03
Standards version of the package is outdated. wishlist
The package should be updated to follow the last version of Debian Policy (Standards-Version 4.7.4 instead of 4.7.2).
Created: 2025-12-23 Last update: 2026-05-26 12:02
testing migrations
  • This package will soon be part of the perl-5.42 transition. You might want to ensure that your package is ready for it. You can probably find supplementary information in the debian-release archives or in the corresponding release.debian.org bug.
  • This package will soon be part of the auto-openssl transition. You might want to ensure that your package is ready for it. You can probably find supplementary information in the debian-release archives or in the corresponding release.debian.org bug.
news
[rss feed]
  • [2026-05-29] pcp 7.1.5-1 MIGRATED to testing (Debian testing watch)
  • [2026-05-26] Accepted pcp 7.1.5-1 (source) into unstable (Nathan Scott)
  • [2026-05-25] pcp 7.1.4-1 MIGRATED to testing (Debian testing watch)
  • [2026-05-22] Accepted pcp 7.1.4-1 (source) into unstable (Nathan Scott)
  • [2026-05-02] Accepted pcp 7.1.3-2 (source) into unstable (Nathan Scott)
  • [2026-04-27] pcp 7.1.2-1 MIGRATED to testing (Debian testing watch)
  • [2026-04-24] Accepted pcp 7.1.2-1 (source) into unstable (Nathan Scott)
  • [2026-04-02] pcp 7.1.1-1 MIGRATED to testing (Debian testing watch)
  • [2026-03-30] Accepted pcp 7.1.1-1 (source) into unstable (Nathan Scott)
  • [2026-01-30] pcp 7.1.0-1 MIGRATED to testing (Debian testing watch)
  • [2026-01-28] Accepted pcp 7.1.0-1 (source) into unstable (Nathan Scott)
  • [2025-12-05] pcp 7.0.5-1 MIGRATED to testing (Debian testing watch)
  • [2025-11-21] Accepted pcp 7.0.5-1 (source) into unstable (Nathan Scott)
  • [2025-11-19] Accepted pcp 7.0.4-1 (source) into unstable (Nathan Scott)
  • [2025-11-12] Accepted pcp 7.0.3-1 (source arm64 all) into unstable (Nathan Scott)
  • [2025-11-01] pcp REMOVED from testing (Debian testing watch)
  • [2025-10-16] Accepted pcp 7.0.2-1 (source arm64 all) into unstable (Debian FTP Masters) (signed by: Nathan Scott)
  • [2025-09-23] Accepted pcp 7.0.1-1 (source arm64 all) into unstable (Debian FTP Masters) (signed by: Nathan Scott)
  • [2025-09-01] Accepted pcp 7.0.0-1 (source arm64 all) into unstable (Debian FTP Masters) (signed by: Nathan Scott)
  • [2025-04-21] pcp 6.3.8-1 MIGRATED to testing (Debian testing watch)
  • [2025-04-11] Accepted pcp 6.3.8-1 (source) into unstable (Nathan Scott)
  • [2025-04-07] pcp 6.3.7-1 MIGRATED to testing (Debian testing watch)
  • [2025-03-28] Accepted pcp 6.3.7-1 (source) into unstable (Nathan Scott)
  • [2025-03-17] Accepted pcp 6.3.6-1 (source) into unstable (Nathan Scott)
  • [2025-03-15] Accepted pcp 6.3.5-1 (source) into unstable (Nathan Scott)
  • [2025-03-13] Accepted pcp 6.3.4-1 (source) into unstable (Nathan Scott)
  • [2025-01-28] Accepted pcp 6.3.3-1 (source) into unstable (Nathan Scott)
  • [2024-09-17] Accepted pcp 6.3.1-1 (source) into unstable (Nathan Scott)
  • [2024-07-30] Accepted pcp 6.3.0-1 (source) into unstable (Nathan Scott)
  • [2024-06-03] pcp REMOVED from testing (Debian testing watch)
  • 1
  • 2
bugs [bug history graph]
  • all: 2
  • RC: 0
  • I&N: 2
  • M&W: 0
  • F&P: 0
  • patch: 0
links
  • homepage
  • lintian (2, 18)
  • buildd: logs, reproducibility, cross
  • popcon
  • browse source code
  • other distros
  • security tracker
  • screenshots
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 7.1.5-1

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing