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 (3 bugs: 0, 3, 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 (1 bugs: 0, 0, 1, 0)
  • 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
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
Multiarch hinter reports 2 issue(s) normal
There are issues with the multiarch metadata for this package.
  • pcp-doc could be marked Multi-Arch: foreign
  • pcp-export-zabbix-agent could be marked Multi-Arch: same
Created: 2016-09-14 Last update: 2026-07-19 21:30
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-07-19 21: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 19781879556216ab36eb6a5a0c1eb138a05281bc
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jul 18 08:12:07 2026 +1000

    qa/common.bpftrace: bpftrace PMDA needs even longer to start on vm03
    
    15sec was not enough, bump to 30sec and now qa/1721 is passing.

commit 81a89ff40dfc36bfcd2ef9716830466e5a57aeda
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jul 18 07:44:33 2026 +1000

    bpftrace PMDA: examples and QA
    
    Following feedback from Viktor Malík (the bfptrace maintainer @
    RedHat) over at https://github.com/performancecopilot/pcp/issues/2609
    the examples and QA have been reworked.
    
    1. a new script (Download) to download versions of these scripts from
       github and apply the Andreas Gerstmayr transformation to produce
       something the bpftrace PMDA can use
    2. package a version of biolatency.bt and runqlat.bt for each version
       of bpftrace that is known to github (currently 20 .. 26)
    3. update qa/1721 to pick the right version of the *.bt script
    4. update qa/1721 to expect either 4 or 5 tracepoints (not 3)
    5. remade qa/1721.out
    
    Thanks Viktor.

commit 4529a26eb4cb04c9359dd94dcd3e5e81c3f3a3a6
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jul 17 09:58:34 2026 +1000

    chrony PMDA: review fixes, packaging, SELinux policy, and QA tests
    
    Code fixes (pmdachrony.python):
    - Broaden exception handling to catch OSError, ValueError, IndexError,
      AssertionError, and TimeoutExpired in addition to CalledProcessError
    - Add timeout=1 to subprocess.run() calls (well under pmcd 5s timeout)
    - Remove unused PMDA_FETCH_NOVALUES import
    - Fix typos: "refrence", "Resitual", "iInterval", "souces"
    - Fix pylint: use enumerate() instead of range(len())
    - Add CHRONYC env var override for chronyc path (enables QA testing)
    - Add set_user("chrony") for chronyd socket access, guarded for
      non-root and test contexts
    - Pre-populate instance domain on init to avoid "unknown instance"
      warning on first pmval fetch
    - Fix metric units: use dimensionless pmUnits for identifiers, strings,
      stratum, poll, reach, and ppm frequency values (not PM_COUNT_ONE)
    - Fix semantics: sources.last_rx and sources.reach use PM_SEM_INSTANT
    
    Man page (pmdachrony.1):
    - Remove stale "Copyright (c) 2014 Red Hat" from template
    - Add chronyc(1) and chronyd(8) to SEE ALSO
    
    SELinux (pcp.te):
    - Allow pcp_pmcd_t to execute chronyc_exec_t (optional policy)
    
    Packaging:
    - Add pcp-pmda-chrony to build/rpm/pcp.spec.in and redhat.spec
      (package declaration, file manifest, package list, preun, files)
    
    QA:
    - New test 1685: deterministic dbpmda test with fake chronyc and
      canned data using RFC 5737 documentation IPs (no PII)
    - New test 1686: Install/Remove integration test via pmcd
    - Add qa/chrony/ test data directory with fake chronyc script
    - Add chrony to qa/GNUmakefile and qa/GNUmakefile.install SUBDIRS
    - Add chrony to qa/common.filter (PMDA name, instance, PMNS filters)
    - Add chrony entries to qa/group
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

commit 4ac53a1b138cc294b33dda24565999c763ec6a38
Merge: 36f9def6 cc1479ed
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jul 16 16:36:03 2026 +1000

    Merge branch 'chrony' of github.com:jeffpc/pcp into jeffpc-chrony

commit 36f9def68e3b6333edd9407c91a03eaa1bae9e96
Merge: 7bd44703 59c9b221
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 16 09:06:03 2026 +1000

    Merge pull request #2656 from kmcdonell/wip
    
    packaging (Debian and tarball) and multiarch path fixups (Debian)

commit 59c9b2213326e474eaf4558dc30ba7646ab933a3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 16 07:51:05 2026 +1000

    build/tar/postinstall.tail: tweak test for ldconfig -m option

commit 8aacd877b688931fff574165610873197421c1fc
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 16 07:24:31 2026 +1000

    libpcp*/src/install-dev: coderabbitai-suggested fixups
    
    1. one script and make others symlinks (hard links are not preserved by
       git apparently)
    2. harden the error checking in the script

commit 3b1019d7c9b977a2f0d9419558f327d204c266fb
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jul 15 19:38:28 2026 +1000

    debian packaging: fixups
    
    - /run/pmimport installed via tmpfiles, not packaged
    - pcp-dstat lintian changes

commit a8b0cf95d2a652ca96b9389e0625fb53e0082fdb
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jul 15 14:30:31 2026 +1000

    debian/control.pcp: fix Breaks: and Replaces: for libpcp-import2-dev
    
    Needs to refer to libpcp-import1-dev.

commit 40e1ac32beeb94ab4f770aa20fa860ed56daaa91
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jul 15 14:08:15 2026 +1000

    debian/pcp-htop.install: cull bogus etc/pcp/htop/* entries
    
    Correct usr/share/pcp/htop entries were already present.

commit de03719323c6d9050d74e0d066ee8183e920cba6
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jul 15 14:04:31 2026 +1000

    debian/pcp-export-zabbix-agent.install: match multipath renaming
    
    The Debian packaging ecosystem sees the zbxpcp.so DSO's below
    /usr/lib and wants to move 'em to the correct multipath directory.
    Make the pathnames glob-match the renamed paths, same as was done
    for all the libpcp<foo> libraries.

commit 903b5d3dd689c96552712cc0f88e50fe2001f006
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jul 15 13:58:45 2026 +1000

    Debian build: rework for multiarch changes
    
    Revert parts of commit 10f01ad75.
    
    Conditionally installing based on $DEB_HOST_MULTIARCH was wrong.
    Install into $PCP_LIB_DIR (e.g. /usr/lib) and let the Debian build
    ecosystem deal with the path renaming to install libraries below
    $PCP_LIB_DIR/$DEB_HOST_MULTIARCH.

commit 60b58ef841cd9bbf521c34856015c2c30f03eea1
Merge: a15c03af 7bd44703
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jul 15 12:10:23 2026 +1000

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

commit a15c03af8faa042c840d40b5f5051db3a6efeca1
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jul 15 10:47:17 2026 +1000

    src/libpcp*/src/install-dev: rework
    
    1. mv rather than cp, so we don't end up with turds in /usr/lib that are
       not part of any PCP package
    2. add -d (debug flag) to report key variable assignments
    3. expand coverage to include pkgconfig files that are also not where
       "sudo make install" puts them
    
    Note: all the 9 files are hard links to the same script, so realy only
          one set of changes here.

commit 7bd44703feb840bd38f1a72ee49f08580e5d6f27
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jul 14 16:32:00 2026 +1000

    build: drop /run and import.conf for pmimport debs

commit 103deb2a59a98198795cc1f4cd06f37ea26cc5d3
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jul 14 11:04:11 2026 +1000

    ci/macos: pre-upgrade pkg-config to avoid brew bundle lock race
    
    brew bundle runs parallel installs (HOMEBREW_DOWNLOAD_CONCURRENCY=6)
    and the pkg-config upgrade races with python-setuptools install since
    both need the pkgconf cellar path, causing a lock conflict.  Upgrade
    pkg-config before brew bundle so it's already current.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

commit 6d5e514b32c918a5e003ef5aa4f354b968778b2c
Merge: b8d356cd 230550e2
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jul 14 10:59:49 2026 +1000

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

commit 230550e29370ad77d77fa71b7c7ce1593d457557
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jul 14 10:52:20 2026 +1000

    ci/macos: fix brew bundle race and Homebrew 6.x tap trust warnings
    
    The GitHub Actions macOS runner image has pre-installed third-party
    taps (aws/tap, hashicorp/tap, azure/bicep) and background brew
    upgrade processes that race with our brew bundle step.
    
    Replace the fixed sleep with a wait loop for background brew
    processes to finish, and untap unused third-party taps to avoid
    Homebrew 6.x tap trust warnings (HOMEBREW_NO_REQUIRE_TAP_TRUST
    is deprecated and will be removed).
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

commit c04675a2aa2936fa8d8ae33ddb248d137ce5c6a2
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jul 14 10:25:18 2026 +1000

    qa/statsd: fix test 1713 broken by pminfo -e flag change
    
    The -e flag was repurposed from unused to --metadata-errors, which
    enters verify mode and suppresses normal fetch output.  Revert
    07.py back to utils.print_metric() to match the expected output.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

commit 2bd16d1cf5ada81b2fb0214260303924a21dd075
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jul 14 10:12:44 2026 +1000

    qa: add filtering for upstream-based man pages

commit 63f992375b737b2b22b858ba5b5dc2d0b0218991
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jul 14 09:49:54 2026 +1000

    qa: fix up missed references to pcp-reboot-init shell script

commit b8d356cd70c0fb405f5aef8f8907153525dc7ae6
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jul 13 21:38:03 2026 +1000

    install-dev scripts for libraries
    
    Only for developer use to overlay "sudo make install" on top of a
    PCP installation.
    
    Needed some extra tweaks to handle path rewriting for multiarch on
    Debian ... package installs and make install were not putting the
    libpcp<foo>.so.N file in the same directory.

commit 4b62214b698ce3e76990e6faa81b561cb5c1bfb5
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jul 13 21:36:38 2026 +1000

    build/tar/postinstall.tail: tweak ldconfig test
    
    On FreeBSD 14.3 (vm06), ldconfig '-?' reports ...
    usage: ldconfig [-32] [-BRimr] [-f hints_file][directory | file ...]
    which needs a smarter grep to find the -m option.

commit 97ec2019399ffd3b305a28705951f8f6c6d808c6
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 13 14:49:24 2026 +1000

    pcp-summary: ensure zoneinfo displayed in local-context mode

commit 8b7f54b8721bf2eb50b144a365e77001571eb517
Merge: 4c6f41c0 5c112ff4
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 13 12:42:16 2026 +1000

    Merge branch 'pcp-atop-labels'

commit 4c6f41c00641d693fdeb1dc3a4f007ddb2728456
Merge: e1d037ce 97e256b4
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 13 12:42:10 2026 +1000

    Merge branch 'split-system-tools'

commit 5c112ff427235d92e49e02e4c2b5e6e313c85fed
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 13 11:09:48 2026 +1000

    pcp-atop: skip oversized context labels to avoid truncated JSON
    
    If a label name or value exceeds the local buffer size, pmsprintf
    would truncate it — potentially stripping a closing quote from a
    JSON string value and producing malformed JSON in the archive.
    Skip such labels rather than writing corrupt data.
    
    Addresses coderabbit finding on PR #2653.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit e1d037ceb41bc751c4626bf4422c22d59550bc80
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 13 10:44:05 2026 +1000

    docs: fix a couple of typos in docker PMDA help text

commit 361a673042895126a86c72fb28e8bafc7e94fc0e
Author: Nathan Scott <nathans@redhat.com>
Date:   Sat Jul 11 14:19:06 2026 +1000

    pcp-atop: fix double-compression of archive volumes in atop-daily
    
    The glob "$base".[0-9]* matched already-compressed .N.zst files
    (e.g., .0.zst matches because [0-9]* covers "0.zst").  These were
    renamed to .0.zst.tmp and re-compressed to .0.zst.zst.
    
    Skip files with .zst or .xz suffixes in the rename loop so only
    raw uncompressed volumes are staged for compression.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit a89b157b9424cd89ecb7320bf2e854dd307741a4
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jul 10 15:05:11 2026 +1000

    libpcp_import, pcp-atop: write context labels into recorded archives
    
    Add rawwrite_init_labels() which writes an {"atop": true} creator
    label then copies all context-level labels from the live PMAPI context
    (hostname, domain, machineid, etc.) into the PMI archive via
    pmiPutLabel.
    
    Updated qa/1089 to verify atop creator label in recorded archive.
    
    Fixed pmiPutLabel to pass through already-valid JSON values (such
    as quoted strings, numbers, true/false/null) verbatim rather than
    double-quoting them.  Previously numbers became strings and quoted
    strings got escaped quotes.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 97e256b4ed93303494bedf44ae874a1f3a616cbb
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 8 16:35:35 2026 +1000

    packaging: split pcp-atop, pcp-dstat, pcp-htop into individual subpackages
    
    Create three new subpackages (pcp-atop, pcp-dstat, pcp-htop) so each
    tool can be installed independently with minimal dependencies.
    
    RPM: new packages depend only on pcp-libs (plus python3-pcp for dstat).
    pcp-system-tools now Requires all three for clean upgrades.  The dstat
    Provides/Obsoletes moves from pcp-system-tools to pcp-dstat.
    
    Debian: new packages use Breaks/Replaces pcp (<< 7.1.6) for clean file
    migration.  The main pcp package Recommends the new subpackages.  The
    dstat Conflicts/Provides/Replaces moves from pcp to pcp-dstat.
    
    Several pcp-* tools were not matched by the system-tools manifest
    pattern and were falling through to the base pcp package.  Add
    pcp-buddyinfo, pcp-meminfo, pcp-netstat, pcp-nfsiostat, pcp-ps,
    pcp-rocestat, pcp-slabinfo, pcp-vmstat and pcp-zoneinfo.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

commit 257a410250ceea71e6fcc3055973f4bf73e77274
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jul 7 08:35:10 2026 +1000

    build: enable aarch64 resctrl PMDA sub-package

commit c565f6fdb26b73e0b3d9cc17d927bc7affdf7484
Merge: 3ae9f1a8 9ed16e6c
Author: Nathan Scott <nathans@redhat.com>
Date:   Sun Jul 12 16:10:53 2026 +1000

    Merge branch 'pmda-python-typing'

commit 9ed16e6c5fd6b3151a8c9086a1433be7604496ec
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 21:09:03 2026 +1000

    pcp.pmda: add type annotations to PMDA API
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 9b0c3b1040001f2d1f6ed286cceb574cd7cdab92
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 8 16:35:19 2026 +1000

    packaging: rename pcp-reboot-init script to reboot-init
    
    The pcp- prefix caused pcp --help to list reboot-init as a user-facing
    subcommand, but it is an internal service utility run at boot.  Rename
    the source directory and script to reboot-init so it installs as
    $PCP_BINADM_DIR/reboot-init.
    
    The systemd service file and man page retain the pcp-reboot-init name
    for system-wide visibility (pcp-reboot-init.service, pcp-reboot-init.1).
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

commit 3ae9f1a87d942bd006168d1ed1e3768cea632bf6
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 8 09:37:24 2026 +1000

    qa: remake 1653 to include recent updates to metric units

commit deaf911e1069a77102bf6f759d44cfcdc9c02390
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jul 7 08:49:58 2026 +1000

    qa: remake 1291 which has a units change with new atop code

commit 85ea8a8ffa2c8f28aaa8e041126041c1cf280632
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 17:22:01 2026 +1000

    pcp-atop: check rename() return when creating Latest folio (covscan)
    
    If rename(2) fails, clean up the temp file.  Coverity CID 504629.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 5475cc65e29dae91f0bdbccdcf2015a89b84c5f1
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 12:49:30 2026 +1000

    pcp-atop: zero new entries after realloc in acctphotoproc
    
    The realloc extending the exited-process array did not zero the new
    entries.  The memset in atop.c before acctphotoproc uses the old array
    length, so the extended portion has uninitialised memory.  This caused
    valgrind to flag a conditional jump on prestat.gpu.state in deviattask
    (qa/1080 failure).
    
    Zero the newly allocated portion immediately after realloc.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit c17590f3471c3838aec76cf18581fc7508045d1a
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 12:13:02 2026 +1000

    libpcp: accept PM_MODE_LIVE for PM_CONTEXT_LOCAL in pmSetMode
    
    pmSetMode unconditionally returned PM_ERR_MODE for PM_CONTEXT_LOCAL,
    even for PM_MODE_LIVE which is conceptually identical to what local
    context does.  This forced callers to special-case local context when
    all they needed was a live fetch.
    
    Merge the LOCAL case with HOST: accept PM_MODE_LIVE (same fields set),
    reject other modes.  Remove the PM_ERR_MODE workaround from pcp-atop
    fetch_metrics which is no longer needed.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 37005e17e9055685a967e684683ca587e22ce909
Merge: 8bcefdf5 3e34bcb2
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 12:01:23 2026 +1000

    Merge branch 'christianhorn-fix-pushdoc-path'

commit 3e34bcb2424ade53a3eef3900e9d9d76f84de0c5
Merge: 8bcefdf5 543cde97
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 12:01:00 2026 +1000

    Merge branch 'fix-pushdoc-path' of github.com:christianhorn/pcp into christianhorn-fix-pushdoc-path

commit 543cde97c03607ea83d2070a87d3d2eaf44f6af1
Author: Christian Horn <chorn@redhat.com>
Date:   Mon Jul 6 10:57:21 2026 +0900

    cleanup structure

commit 8bcefdf5884d69db49c903ad89d175ee05e91aa9
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 11:56:07 2026 +1000

    pcp-atop: fall back to local context when pmcd reconnect fails
    
    When pmReconnectContext fails and pcp-atop is on localhost, create a
    PM_CONTEXT_LOCAL with DSO PMDAs rather than silently dropping samples
    until pmcd returns.  Recording continues with reduced metrics (only
    what DSO PMDAs provide — no pmcd-specific metrics like pmcd.agent.*).
    
    Also handle PM_ERR_MODE from pmSetMode gracefully: local contexts do
    not support pmSetMode, so treat PM_ERR_MODE as benign rather than
    calling cleanstop.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 758444675c932e9811cd5ec3cf76b39cf4f4bb9c
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 11:53:19 2026 +1000

    pcp-atop: reconnect to pmcd on connection loss instead of exiting
    
    When pmFetch fails with PM_ERR_IPC, ECONNRESET, PM_ERR_TIMEOUT, or
    EPIPE (pmcd restarted or stopped), try pmReconnectContext() to restore
    the connection.  If reconnect fails, return -1 so the caller skips
    this sample and retries on the next interval rather than exiting.
    
    Previously, any fetch error other than PM_ERR_EOL called cleanstop(1),
    so restarting pmcd killed the recording service.
    
    Also fix photoproc.c to check fetch_metrics return value — a -1 return
    (connection lost) would leave result=NULL and crash.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 80962efb117b414b23bae92d74f11757e15e2d10
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 11:45:34 2026 +1000

    pcp-atop: update usage, man page and comments for archive (not folio)
    
    pcp-atop -w now writes PCP archives directly via libpcp_import, not
    pmlogger folios.  Update all user-facing references:
    
      atop.c: -w/-r usage strings say "archive" not "folio"
      pcp-atop.1: replace all "folio" with "archive" or "directory"
      various.c: update comment on the folio lookup paths (kept for
        backward compatibility with old pcp-atop folios)
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 86272836520df3e34563f9b1d55cae5f2ce1dbcf
Merge: dc102a4f 681b35f2
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 11:38:02 2026 +1000

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

commit dc102a4fac665f3fc4e40f31fc113fa6c727f328
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 11:37:25 2026 +1000

    pcp-atop: fix -w hang by removing pmNameInDom from write path
    
    rawwrite_put() called pmNameInDom() to resolve instance IDs to names
    for pmiAddInstance/pmiGetHandle.  pmNameInDom makes a synchronous RPC
    to pmcd, which blocks indefinitely when called from inside the fetch
    pipeline (pmcd's response is delayed or the socket state is confused).
    
    This caused pcp-atop -w to hang after the first sample when pmcd is
    running (HOST context).  Backtrace showed select() blocking in
    pmNameInDom -> __pmGetPDU inside rawwrite_put.
    
    Fix: use the numeric instance ID as a string for pmiAddInstance and
    pmiGetHandle, avoiding the pmcd round-trip entirely.  Instance names
    in the archive are numeric IDs rather than external names; this is a
    functional trade-off to eliminate the hang.  A future improvement can
    pre-cache instance names from the fetch_instances() calls that
    photoproc/photosyst already make.
    
    Also update qa/1266 to use pmafm Latest folio for archive access
    after -w (pcp-atop -w now creates a directory with a Latest folio
    rather than a flat archive).
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 9122cef8a5d1ca85eb153d2130e379350c67f24a
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jul 6 10:26:33 2026 +1000

    pcp-atop: write Latest folio for archive replay; fix qa/1089
    
    rawwrite_open() now creates a PCP folio (Latest) in the archive
    directory pointing to the current day's archive, following the pmlogger
    convention.  Written atomically via rename(2) of Latest.tmp so no
    reader sees interim content.
    
    rawarchive() now tries <dir>/Latest as a folio path when hunting for
    archives, so "pcp-atop -r <dir>" works transparently with the new
    direct-write archives (no pmlogger folio needed).
    
    qa/1089: replace pmafm on the old no-end.folio / end.folio paths with
    pmafm on the new Latest folio.  Drop pmcd.* metrics from the check
    (pcp-atop records hinv/kernel/proc metrics, not pmcd internals).
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 681b35f24c4aa2d880acaf6f78a6c3f96dad7abc
Merge: 97a76377 6a24a530
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jul 6 06:37:40 2026 +1000

    Merge pull request #2641 from christianhorn/add-denki-units
    
    add power units for pmda-denki metrics

commit 6a24a53028b522a0357dc89c40b3c50a8f0e5378
Author: Christian Horn <chorn@fluxcoil.net>
Date:   Sun Jul 5 20:23:54 2026 +0900

    units for denki.bat.energy_now

commit 97a7637727591886b3b6429d460e6fbb754e3319
Merge: cbfae94d 44edd973
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jul 3 16:47:03 2026 +1000

    Merge branch 'main' of ../pcp

commit 44edd973b023c8d0729838007433e11b8960ff90
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jul 3 16:44:39 2026 +1000

    qa: remakes (mostly) from Slackware (vm15)
    
    Misc things, mostly no-IPv6 versions of .out files that have been
    remade elsewhere (on IPv6 platforms).

commit ea46caedbaefe613df26a67730d2146c359f7b66
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jul 3 16:43:03 2026 +1000

    src/pmdas/darwin/rewrite.conf: (new) missed in last commit

commit 71728cb295477aa10a87e89a4c97fd27be2b59a2
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jul 3 10:07:32 2026 +1000

    qa/635: add ip(1) as prefered alternative to netstat(1)
    
    netstat -ia is (a) too fragile, (b) sometimes broken, and (c)
    old-skool.
    
    ip -s link is an altogether better way to get network interface
    statistics for value comparison with the PCP equivalents.

commit cbfae94d4f20861ce089abb68bae17c0514aa9bf
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jul 3 08:23:59 2026 +1000

    pcp-atop: set default logging interval to 1 minute (was 10)

commit 08cc6892a9241c61d7b08d067a14a2b55cb78620
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jul 3 06:56:09 2026 +1000

    qa/1676.out: remade after darwin_env-1 archive recreated

commit 0bfdf7d4b8b0c802a25dbb919b2e80296020f302
Merge: 95fcabfb da3dc273
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jul 3 06:54:54 2026 +1000

    Merge pull request #2643 from kmcdonell/wip
    
    Miscellaneous work items

commit da3dc273da6365aa231aacc7ddc6e8e09525daf9
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 21:10:10 2026 +1000

    src/pmdas/darwin/power.c: avoid integer truncation in temperature calculation

commit 257094a64e2b539d4635900f1755d660d5d5ace1
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 21:01:50 2026 +1000

    qa/archives/GNUmakefile: special rules for darwin archives

commit 182038c8eb0985378b9e527fe6cb3074c13dfa5d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 20:50:00 2026 +1000

    qa: darwin changes
    
    - missing qa/1677
    - missing archives

commit f2a3679ea252c4048a58eb427b4ed7f7e398ccbc
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 20:48:12 2026 +1000

    build/tar/postinstall.tail: tweak ldconfig logic

commit 38d29009b8c7e8dfa4de2adf6652c2ce40de3ea7
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 20:47:15 2026 +1000

    src/pminfo/pminfo.c: small -1 tweak
    
    Following suggestion from @coderabbitai.

commit c04a66e5d7d9018b0e14807b52df7a36179b707f
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 20:18:58 2026 +1000

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

commit c729e4faedc9f19b17eaab2f3e4df678d49f4500
Author: Christian Horn <chorn@redhat.com>
Date:   Thu Jul 2 17:51:49 2026 +0900

    fix issues found by coderabbit

commit 39473bb1eaa07ee4317dc50d2ff7dff4b5cf69c3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 17:25:34 2026 +1000

    qa/1676: (new) missing from previous commits

commit a25a123b4c41a812243dec468ad26eb1c7f47a09
Merge: fc8eaee1 a25a0e89
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 16:09:36 2026 +1000

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

commit a25a0e897831765bcba388a94fe5e66d6cc3d3d8
Merge: 708b77e1 a54d166d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 16:09:00 2026 +1000

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

commit 708b77e1bdd68b6548d3b2f77d65d471913058e7
Merge: a2b34277 95fcabfb
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 16:08:43 2026 +1000

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

commit a2b342772295505ee81a3ddec13e14cbab8221ad
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 16:00:43 2026 +1000

    macOS: embrace extra units for darwin PMDA  and list-packages support

commit fc8eaee11055d0e7fa72ca17a18be2502c32a6d5
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 15:32:07 2026 +1000

    src/pmdas/linux/mk.rewrite: small whitespace cosmetic fixup

commit ed9c0b99d4da654b97f53770bd0cc5f1cce05d1d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 15:27:00 2026 +1000

    linux PMDA: fix data type for some disk metrics
    
    On 64-bit kernels, these metrics were exported as type U32 instead of U64:
        disk.dm.read_bytes
        disk.dm.write_bytes
        disk.dm.total_bytes
        disk.md.read_bytes
        disk.md.write_bytes
        disk.md.total_bytes
    
    Fix PMDA and update mk.rewite to generate a correct kernel_ulong.conf
    configuration for pmlogrewrite.

commit 6f0c399460d358a67c70c99c0e03715a962f2c27
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 15:20:53 2026 +1000

    pminfo: add -1 option
    
    Same as -d, except all pmDesc (metadata) is reported on a single
    line per metric with tab separated fields.  First field is the
    metric name.
    
    Easier for scripts consuming the output.

commit 95fcabfb41fab74d57937f9038199aba38c50207
Merge: 37d5ce8c 61259423
Author: Nathan Scott <natoscott@users.noreply.github.com>
Date:   Thu Jul 2 13:13:29 2026 +1000

    Merge pull request #2630 from performancecopilot/dependabot/github_actions/actions/checkout-7
    
    build(deps): bump actions/checkout from 6 to 7

commit 37d5ce8cb018048c68b8be7c58f90ae3f65e8e6a
Merge: affe8b7a 176f512e
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jul 2 11:52:33 2026 +1000

    Merge branch 'push-docs' of github.com:christianhorn/pcp into christianhorn-push-docs

commit 79bdab70d1f88a16929505fcd889760a106c1b2d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 07:37:51 2026 +1000

    build/tar/postinstall.tail: catch some more commands for -n
    
    Need to echo 'em, not execute 'em.

commit a54d166d970cf65e80d7e61d8322d8995ca48bf9
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jul 2 07:23:25 2026 +1000

    build/tar/postinstall.tail: optionally run ldconfig
    
    To rebuild the shared library cache in case we've installed
    newer versions of some PCP DSO's.

commit 67d4b7af957575d64ee09a2f9e3443f921aba030
Author: Christian Horn <chorn@fluxcoil.net>
Date:   Wed Jul 1 21:06:23 2026 +0900

    add power units

commit 176f512e378610b1774b6853ae1baf13af9b53dc
Author: Christian Horn <chorn@fluxcoil.net>
Date:   Wed Jul 1 20:09:57 2026 +0900

    fix collecthost misnaming

commit affe8b7af90d4886259a70223fc422f7b9faeb32
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 1 18:17:02 2026 +1000

    libpcp: relax label name rules, skip invalid keys gracefully
    
    Allow underscore as a valid first character in label names.  The
    previous rule required the first character to be alphabetic, which
    rejected labels like "_block_size_resolved" exported by vLLM and
    other Prometheus-compatible systems.
    
    When a label key contains invalid characters (e.g. hyphens), skip
    that key-value pair and continue parsing the remaining labels.
    Previously, a single invalid key name caused the entire label set
    to be rejected.  The buffer and comma state are rewound so the
    resulting JSON remains valid.
    
    Add QA test 2008 covering: leading underscores, all-underscore
    names, invalid keys at first/middle/last positions, and vLLM-style
    large label sets.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 18003b6b235fa2e16ffa8a1002ae9e513d55affc
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 1 16:09:35 2026 +1000

    pcp-atop: updates after covscan analysis
    
    various.c val2memstr(): MAXEBYTE8 equals LLONG_MAX so the check
    "verifyval <= MAXEBYTE8" was always true (Coverity CID 504429),
    making the OVFORMAT branch dead code (CID 504430).  Since count_t
    is signed long long, anything past MAXPBYTE is unconditionally
    EBFORMAT.  Remove MAXEBYTE8, MAXEBYTE, OVFORMAT, EBFORMAT_INT
    (all unused after this simplification).
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit a57d5edb48274c38bcb2ccac101c0939cf74d1ce
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 1 12:58:33 2026 +1000

    pcp-atop: updates after code review - all fairly minor cleanups

commit 82f8c271dbbf743564360a88704be4b921221784
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 1 12:53:14 2026 +1000

    pcp-atop: fix MEM avail to use KiB directly, not pages round-trip
    
    The original fix (8a2b618b) converted the KiB value from PCP's
    mem.util.available to pages in photosyst.c (KiB * 1024 / pagesize),
    then showsys.c multiplied by pagesize to get bytes — a pointless
    round-trip that lost precision on non-4K page systems.
    
    All other memory metrics in pcp-atop store PCP's KiB value directly
    and multiply by 1024 in the display routines to get bytes.  Fix
    availablemem to follow the same pattern:
    
      photosyst.c: store the KiB value as-is (remove * 1024 / pagesize)
      showsys.c:   change * pagesize to * 1024
    
    Audit of all pagesize uses in showsys.c confirms the remaining five
    are genuine page-count metrics (sockstat tcp/udp mem, cgroup physpages,
    NFS pagesmread/pagesmwrite) where * pagesize is correct.
    
    Closes #2631
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 4f5ef53ced6ff14b056d83eb18d75dde262a18eb
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 1 11:46:32 2026 +1000

    pcp-atop: derive default label set from labeldef[] instead of hardcoding
    
    The fallback when no -P labels are specified was a hardcoded string
    "CPU,CPL,MEM,SWP,DSK,NET,PRG,PRC" that would become stale if labels
    were added to or removed from the labeldef[] table.  Build the default
    set by iterating the full table instead.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 75cd16de5e2280ff8f5a2382e773003e81acd572
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 1 08:49:43 2026 +1000

    pcp-atop: bidirectional BindsTo between service and timer
    
    The timer now also binds to atop.service.  If someone explicitly stops
    atop, the timer stops too — no midnight restart of a deliberately
    stopped service.  Combined with the service's BindsTo on the timer,
    they always start and stop as a pair.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 7d57ba49bedba2d17192c6bda27b9648fb636902
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jul 1 08:48:34 2026 +1000

    pcp-atop: BindsTo atop-daily.timer so the timer always starts with the service
    
    Without the daily timer, atop runs indefinitely without archive rotation
    or compression — a broken state.  BindsTo= ensures the timer starts
    whenever atop.service starts (and stops the service if the timer dies),
    so 'systemctl start atop.service' is all that's needed.  The Also= in
    [Install] handles enable/disable pairing.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit fe1c6cc9304c48a87d7638f22a9a34bfd88b53f9
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 20:46:45 2026 +1000

    pcp-atop: cancel inherited interval timer in volume rotation child
    
    The rawarchive_compress_volume() callback forks a child to compress
    completed data volumes with zstd.  The child inherits the parent's
    active ITIMER_REAL timer used for periodic sampling; the resulting
    SIGALRM kills zstd before it can write any data, leaving a zero-byte
    compressed file.
    
    Cancel the timer with alarm(0) before exec, matching the fix applied
    to sysstat's sadc for the same issue.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 561183e3097db9c9aa30426e598c1805f68833af
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 20:17:22 2026 +1000

    pcp-atop, pcp-summary: fix pcp(1) display of atop recording status
    
    pcp-summary.sh: merge sadc and generic pmimport display into one loop.
      All tools use the same pattern (tool-specific label, comma→space via
      tr, fmt wrapping); sadc's dedicated section is replaced by a case
      statement: sadc→"activity"/sadc-archive, atop→"labels"/archive,
      *→"modules"/archive.  Harmless for space-separated tools like collectl
      since tr ',' ' ' is a no-op.
    
    various.c: use ATOP_VERSION ("2.12.1") in pmiSetImportProgram instead
      of PCP_VERSION so pcp(1) reports the upstream atop version pcp-atop
      is based on, not the PCP package version.
    
    atop.h: define ATOP_VERSION "2.12.1" (upstream sync point v2.12.1).
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 53147733de8a9c8b9dfd5c6f37998d96eb44437c
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 20:00:39 2026 +1000

    pcp-atop: fix context deadlock and atop-daily exit code
    
    various.c: remove pmiSetZoneinfo(NULL) from rawwrite_open — when called
      before setup_globals the live PMAPI context does not yet exist, so
      __pmZoneinfo() (called by pmiSetZoneinfo) attempts to acquire the
      contexts_lock via PMAPI while rawwrite_open's pmiStart (PMI_APPEND)
      already holds it, causing EDEADLK.  pmiSetZoneinfo is already called
      in rawwrite_init_sidecar() which runs after setup_globals.
    
    atop-daily.sh: add exit 0 at the end — the new date-based culling loop
      ends with [ day -lt cutdate ] returning 1 (false = nothing to cull),
      which became the script's exit code, causing ExecStartPre to fail.
      The original find-based culling always returned 0.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 99b42ac2759d4027deaff2ccc665cfba0a3d47da
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 18:04:28 2026 +1000

    pcp-atop: tie atop-daily.timer to atop.service enablement via Also=
    
    Add Also=atop-daily.timer to atop.service [Install] so that
      systemctl enable atop.service  also enables atop-daily.timer, and
      systemctl disable atop.service also disables it.
    
    Upstream atop handles this via RPM postinstall scriptlets; we use the
    unit-file mechanism so it works correctly regardless of install method.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 11cc505eb755f22bd96d6dee4b4d08778fe8ebc6
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 17:50:51 2026 +1000

    pcp-atop: fix compression and culling in atop-daily
    
    Two correctness fixes in atop-daily.sh:
    
    Compression: remove background '&' from xz/zstd calls.  When atop-daily
    is invoked from ExecStartPre= in atop.service, systemd kills any remaining
    background children when ExecStartPre exits, before ExecStart begins.
    This left .tmp files uncompressed.  Removing '&' makes compression
    synchronous; for daily archives (typically small) this is fast.  When
    called from rawwrite_open via atop-daily --compress-only (in pcp-atop's
    own cgroup), the same code runs and is not subject to being killed.
    
    Culling: replace find -mtime with date-based filename parsing.  The
    compressed output files (*.meta.xz, *.0.zst) carry the compression time
    as their mtime, not the archive date, so find -mtime kept archives longer
    than LOGGENERATIONS.  Parse the YYYYMMDD stamp from the filename and
    compare against a cutoff date computed with 'date -d'.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 132de81bc99b376ab9ecc091ee39edd7721701f8
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 17:44:21 2026 +1000

    pcp-atop: fix service ExecStart, sidecar name, qa/2007 lifecycle test
    
    atop.service.in: remove '-h local:' from ExecStart — the '-h' flag
      conflicts with atop option parsing (InfiniBand in atopsar) and is
      unnecessary: without it pcp-atop connects to local pmcd by default
      and falls back to PM_CONTEXT_LOCAL automatically if pmcd is down.
    
    various.c: register sidecar as "atop" (not "pcp-atop") so
      pmiSetImportProgram writes $PCP_IMPORT_DIR/atop and pmdapmimport
      serves the instance as "atop", matching the installed symlink name.
    
    qa/2007: complete lifecycle test for the atop service:
      - saves/restores pre-test service state so the test is idempotent
      - polls for pmimport state transitions (avoids races on slow hosts)
      - checks $PCP_IMPORT_DIR/atop sidecar (pid, archive, args fields)
      - verifies sidecar is removed on clean service stop
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit d841ab68f7a9e1325b6e9eb920f97898a8da4892
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 16:48:33 2026 +1000

    pcp-atop: address coderabbit review findings
    
    parseable.c: guard zero-length buffer in parseable_labels(); compute
      remaining capacity without unsigned underflow by tracking used bytes
      explicitly before each strncat call.
    
    atop-daily.sh: fix LOGGENERATIONS off-by-one — find -mtime +N keeps
      N+1 daily archives; use $((LOGGENERATIONS - 1)) to retain exactly N.
      Guard LOGGENERATIONS=0 (keep forever) to avoid -mtime +-1 which is
      invalid.  Document 0 = keep forever in atop.conf.
    
    Findings assessed as already correct or not applicable:
      - atom.cp free: both rawwrite_put paths already call free(atom.cp)
      - local fallback: already calls pmGetContextOptions/setup_origin
      - hostname truncation: force-null-terminates at line 1782 already
      - atop.h pmapi.h: already included at line 25
      - atop-daily double-execution: not a double-execution; atop-daily
        runs once via ExecStartPre when systemctl restart fires
      - probe numval>0: "available" (not "active with traffic") is correct
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

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

    pcp-atop: clean atop transition — service renames, config path, daily script
    
    Service files renamed for clean atop drop-in replacement:
      pcp-atop.service.in       -> atop.service.in
      pcp-atop-daily.service.in -> atop-daily.service.in
      pcp-atop-daily.timer.in   -> atop-daily.timer.in
      pcp-atop-daily.sh         -> atop-daily.sh
      installed binary: pcp-atop-daily -> atop-daily
    
    Config file:
      atop.conf.in replaced by plain atop.conf (no substitutions needed);
      installs to PCP_SYSCONFIG_DIR/atop (/etc/sysconfig/atop) matching
      upstream atop's config format and location exactly.
    
    Archive path:
      Default LOGPATH=/var/log/atop in atop.service and atop.conf matches
      upstream atop convention.  atop-daily.sh fallback updated from
      PCP_LOG_DIR/atop to /var/log/atop.
    
    atop-daily.service now restarts atop.service (not pcp-atop.service).
    various.c: fork of atop-daily (was pcp-atop-daily) at startup updated.
    pcp-summary.sh: use "labels" for pcp-atop args field (vs "modules" for
      other tools, "activity" for sadc) matching pcp-atop -P label vocabulary.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 82ea7204665b74296fadf5a01bb3031e7920d474
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 15:11:38 2026 +1000

    qa: add pcp-atop recording and pmimport lifecycle tests
    
    2006: record 3 samples with pcp-atop -w, verify archive contains
      hinv, kernel, and proc metrics; replay with -r.
    
    2007: start pcp-atop.service, verify pmimport.* metrics appear while
      running (pid, archive, args fields in sidecar), stop service, verify
      metrics disappear and sidecar is removed on clean exit.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

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

    pcp-atop: pmimport.args with full subsystem labels; probe optional PMDAs
    
    Replace the ad-hoc "kernel,proc,nvidia,netatop" args categories in the
    pmimport sidecar with real pcp-atop -P label vocabulary, giving sysadmins
    a meaningful view of what a running pcp-atop recording service is capturing.
    
    New probe infrastructure (probe_optional_metrics in photosyst.c):
      After setup_photosyst() populates the systmetrics pmid array, do a
      lightweight pmFetch of one representative metric per optional subsystem.
      Any metric that resolves and returns numval > 0 sets the matching bit:
        IBSTAT   - infiniband PMDA: IB ports present
        IPCSTAT  - perfevent PMDA: IPC/cycle hardware counters
        LLCSTAT  - resctrl PMDA: LLC occupancy
        NFSSTAT  - NFS client mounts active
        PSISTAT  - kernel PSI pressure (kernel >= 4.20 + CONFIG_PSI)
        LVMSTAT  - LVM/device-mapper devices present
        MDDSTAT  - MD software-RAID devices present
    
    New sidecar init (rawwrite_init_sidecar in various.c):
      Called from atop.c after setup_globals() so all supportflags are known.
      Builds args= from the -P label set (explicit if -P was given, otherwise
      the default recording set CPU,CPL,MEM,SWP,PAG,DSK,NET,PRG,PRC), then
      appends conditional labels: PSI, LVM, MDD, NFC+NFM, GPU, IFB, LLC, PRN.
    
    parseable_labels() (parseable.c): new helper that returns the active -P
      label list, or the default recording set when no -P flag was given.
    
    Rename NETATOPBPF -> NETBPF throughout: pcp-atop only supports per-process
      network stats via pmdabpf; the NETATOP and NETATOPD flags (upstream atop
      kernel-module and daemon variants) are never set in pcp-atop.
    
    GNUmakefile: gate build on TARGET_OS+HAVE_NCURSESW so pcp-atop is not
      built on non-Linux platforms.
    
    pcp-atop.1: add pmdaresctrl, pmdaperfevent, pmdapmimport to the optional
      PMDA list and SEE ALSO; document pmimport registration in recording mode.
    
    qa/1978.out: regenerate after CPUSCALE "-" display fix (scaling field now
      shows "-" when archive lacks scaling metrics, was previously suppressed).
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 44b8b4c543948726546477a8e8ccddc711699313
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 12:17:33 2026 +1000

    pcp-atop: fix rawwrite_register ordering and CPUSCALE display
    
    Two bugs:
    
    rawwrite_register (called from setup_metrics inside setup_globals) returned
    early because pmi_ctx was still -1 when rawwrite_open had not yet been
    called.  All metric groups were therefore unregistered, so rawwrite_put
    staged nothing and every pmiWrite returned PMI_ERR_NODATA.  Fix by calling
    rawwrite_open before setup_globals so the PMI context is valid when each
    metric group's setup_metrics triggers rawwrite_register.  Fixes qa/1079,
    qa/1089, and qa/1266.
    
    sysprt_CPUSCALE and sysprt_CPUISCALE ignored the return value of
    dofmt_cpuscale.  After the backport changed the "nothing known" case from
    returning NULL to returning "           -", sysval_CPUSCALE started always
    returning 1 (field always shown) instead of 0 (suppress).  The static
    "scaling    ?" buffer was then shown instead of the intended "-".  Fix by
    using the return value from dofmt_cpuscale directly.  The qa/1978 expected
    output needs ./remake 1978 since the CPU scaling field now correctly shows
    "-" instead of being suppressed for archives without scaling metrics.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 452a66c717365da42949781fd4b5abd5e4ee9b32
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 11:41:25 2026 +1000

    pcp-atop: fix double-run of pcp-atop-daily in timer service
    
    The daily service was running pcp-atop-daily explicitly then starting
    pcp-atop.service whose ExecStartPre also runs pcp-atop-daily.  The
    second pass found leftover .tmp files from the first and launched
    duplicate compressors against the same archive outputs.
    
    Fix: the daily service simply restarts pcp-atop.service.  The restart
    seals yesterday's archive (pmiEnd on stop), then ExecStartPre runs
    pcp-atop-daily exactly once: atomically renames prior-day files, forks
    background compression, culls old archives, and exits.  Recording
    resumes on the new date-stamped archive while compression runs in
    parallel.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit d1e9b50344f6b6ce66892f94d5ff3ede141cfc76
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 11:04:27 2026 +1000

    pcp-atop: code build cleanups and comment fixes
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 01bbc1db1519b5de50375a36fc0963d31204aa8e
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 29 10:22:29 2026 +1000

    pcp-atop: pcp-atop-daily.sh - no template, source pcp.env at runtime
    
    Shell scripts in PCP source pcp.env to get PCP_LOG_DIR and other
    path variables at runtime; no .in template substitution needed.
    
    Rename pcp-atop-daily.in -> pcp-atop-daily.sh, source pcp.env,
    use $PCP_LOG_DIR directly.  GNUmakefile installs it as pcp-atop-daily
    via $(INSTALL) without a generation step.  Remove the script from
    LDIRT since it is not a generated file.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Created: 2026-05-23 Last update: 2026-07-19 16:50
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: 4
  • RC: 0
  • I&N: 3
  • M&W: 1
  • 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