Skip to content

Commit db910f2

Browse files
Merge branch 'performancecopilot:main' into rapl-msr-support
2 parents 644a872 + 4df35d2 commit db910f2

File tree

1,726 files changed

+166011
-91840
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,726 files changed

+166011
-91840
lines changed

CHANGELOG

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
pcp-7.0.0 (1 July 2025)
22
- Work-in-progress.
33

4+
pcp-6.3.3 (29 January 2025)
5+
- Debian build changes - see debian/changelog for details
6+
47
pcp-6.3.2 (6 November 2024)
58
- PMDA additions, enhancements and bug fixes:
69
pmdabpf: avoid a too-low rlimit setting within pmdabpf

build/containers/archive-analysis/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ COPY . /usr/src/pcp
55
WORKDIR /usr/src/pcp
66
RUN dnf install -y git which rpm-build 'dnf-command(builddep)'
77
RUN dnf builddep -y build/rpm/redhat.spec
8-
RUN dnf remove -y selinux-policy
8+
RUN dnf remove -y selinux-policy || true
99

1010
RUN ./Makepkgs --verbose
1111
RUN mkdir /build && \

build/containers/pcp/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ COPY . /usr/src/pcp
55
WORKDIR /usr/src/pcp
66
RUN dnf install -y git which rpm-build 'dnf-command(builddep)'
77
RUN dnf builddep -y build/rpm/redhat.spec
8-
RUN dnf remove -y selinux-policy
98

109
RUN ./Makepkgs --verbose
1110
RUN mkdir /build && \

configure

Lines changed: 68 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -768,6 +768,8 @@ ncursesw_CFLAGS
768768
HAVE_NCURSES
769769
ncurses_LIBS
770770
ncurses_CFLAGS
771+
lib_for_inih
772+
HAVE_LIBINIH
771773
HAVE_LIBUV
772774
libuv_LIBS
773775
libuv_CFLAGS
@@ -5029,7 +5031,8 @@ printf %s "checking __pmResult padding... " >&6; }
50295031
ans=`sed <conftest.out -n -e '/__pmResult pad/s/.* //p'`
50305032
if test -n "$ans"
50315033
then
5032-
printf "%s\n" "#define PM_PAD_RESULT $ans" >>confdefs.h
5034+
5035+
printf "%s\n" "#define PM_PAD_RESULT $ans" >>confdefs.h
50335036

50345037
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
50355038
printf "%s\n" "$ans" >&6; }
@@ -5042,7 +5045,8 @@ printf %s "checking timespec padding... " >&6; }
50425045
ans=`sed <conftest.out -n -e '/timespec pad/s/.* //p'`
50435046
if test -n "$ans"
50445047
then
5045-
printf "%s\n" "#define PM_PAD_TIMESPEC $ans" >>confdefs.h
5048+
5049+
printf "%s\n" "#define PM_PAD_TIMESPEC $ans" >>confdefs.h
50465050

50475051
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
50485052
printf "%s\n" "$ans" >&6; }
@@ -5442,11 +5446,11 @@ if test x$ac_prog_cxx_stdcxx = xno
54425446
then :
54435447
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
54445448
printf %s "checking for $CXX option to enable C++11 features... " >&6; }
5445-
if test ${ac_cv_prog_cxx_11+y}
5449+
if test ${ac_cv_prog_cxx_cxx11+y}
54465450
then :
54475451
printf %s "(cached) " >&6
54485452
else $as_nop
5449-
ac_cv_prog_cxx_11=no
5453+
ac_cv_prog_cxx_cxx11=no
54505454
ac_save_CXX=$CXX
54515455
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
54525456
/* end confdefs.h. */
@@ -5488,11 +5492,11 @@ if test x$ac_prog_cxx_stdcxx = xno
54885492
then :
54895493
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
54905494
printf %s "checking for $CXX option to enable C++98 features... " >&6; }
5491-
if test ${ac_cv_prog_cxx_98+y}
5495+
if test ${ac_cv_prog_cxx_cxx98+y}
54925496
then :
54935497
printf %s "(cached) " >&6
54945498
else $as_nop
5495-
ac_cv_prog_cxx_98=no
5499+
ac_cv_prog_cxx_cxx98=no
54965500
ac_save_CXX=$CXX
54975501
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
54985502
/* end confdefs.h. */
@@ -12480,6 +12484,57 @@ else $as_nop
1248012484
fi
1248112485

1248212486

12487+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ini_parse in -linih" >&5
12488+
printf %s "checking for ini_parse in -linih... " >&6; }
12489+
if test ${ac_cv_lib_inih_ini_parse+y}
12490+
then :
12491+
printf %s "(cached) " >&6
12492+
else $as_nop
12493+
ac_check_lib_save_LIBS=$LIBS
12494+
LIBS="-linih $LIBS"
12495+
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12496+
/* end confdefs.h. */
12497+
12498+
/* Override any GCC internal prototype to avoid an error.
12499+
Use char because int might match the return type of a GCC
12500+
builtin and then its argument prototype would still apply. */
12501+
char ini_parse ();
12502+
int
12503+
main (void)
12504+
{
12505+
return ini_parse ();
12506+
;
12507+
return 0;
12508+
}
12509+
_ACEOF
12510+
if ac_fn_c_try_link "$LINENO"
12511+
then :
12512+
ac_cv_lib_inih_ini_parse=yes
12513+
else $as_nop
12514+
ac_cv_lib_inih_ini_parse=no
12515+
fi
12516+
rm -f core conftest.err conftest.$ac_objext conftest.beam \
12517+
conftest$ac_exeext conftest.$ac_ext
12518+
LIBS=$ac_check_lib_save_LIBS
12519+
fi
12520+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inih_ini_parse" >&5
12521+
printf "%s\n" "$ac_cv_lib_inih_ini_parse" >&6; }
12522+
if test "x$ac_cv_lib_inih_ini_parse" = xyes
12523+
then :
12524+
have_libinih=true
12525+
lib_for_inih="-linih"
12526+
12527+
else $as_nop
12528+
have_libinih=false
12529+
lib_for_inih=""
12530+
12531+
12532+
fi
12533+
12534+
HAVE_LIBINIH=$have_libinih
12535+
12536+
12537+
1248312538

1248412539
pkg_failed=no
1248512540
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ncurses" >&5
@@ -14527,6 +14582,8 @@ CFLAGS="$save_CFLAGS"
1452714582

1452814583
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether const arg for scandir() select method" >&5
1452914584
printf %s "checking whether const arg for scandir() select method... " >&6; }
14585+
save_CFLAGS="$CFLAGS"
14586+
CFLAGS="-Werror"
1453014587
cat <<End-of-File >conftest.c
1453114588
#include <stdlib.h>
1453214589
#include <unistd.h>
@@ -14536,8 +14593,9 @@ my_select(const struct dirent *foo) { return 0; }
1453614593
int main() { struct dirent **list; return scandir(".", &list, my_select, NULL); }
1453714594
End-of-File
1453814595
(eval $ac_compile) 2>conftest.out
14596+
_ret=$?
1453914597
cat conftest.out >&5
14540-
if test -s conftest.out
14598+
if test $_ret != 0
1454114599
then
1454214600
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
1454314601
printf "%s\n" "no" >&6; }
@@ -14548,6 +14606,7 @@ printf "%s\n" "#define HAVE_CONST_DIRENT 1" >>confdefs.h
1454814606
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1454914607
printf "%s\n" "yes" >&6; }
1455014608
fi
14609+
CFLAGS="$save_CFLAGS"
1455114610
rm -f conftest.*
1455214611

1455314612
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct dirent has a d_off field" >&5
@@ -14559,8 +14618,9 @@ cat <<End-of-File >conftest.c
1455914618
int main() { struct dirent d; d.d_off = 0; }
1456014619
End-of-File
1456114620
(eval $ac_compile) 2>conftest.out
14621+
_ret=$?
1456214622
cat conftest.out >&5
14563-
if test -s conftest.out
14623+
if test $_ret != 0
1456414624
then
1456514625
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
1456614626
printf "%s\n" "no" >&6; }

configure.ac

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ AC_MSG_CHECKING([__pmResult padding])
563563
ans=`sed <conftest.out -n -e '/__pmResult pad/s/.* //p'`
564564
if test -n "$ans"
565565
then
566-
AC_DEFINE_UNQUOTED(PM_PAD_RESULT, $ans, [])
566+
AC_DEFINE_UNQUOTED(PM_PAD_RESULT, $ans, [__pmResult padding])
567567
AC_MSG_RESULT($ans)
568568
else
569569
AC_MSG_RESULT([no])
@@ -572,7 +572,7 @@ AC_MSG_CHECKING([timespec padding])
572572
ans=`sed <conftest.out -n -e '/timespec pad/s/.* //p'`
573573
if test -n "$ans"
574574
then
575-
AC_DEFINE_UNQUOTED(PM_PAD_TIMESPEC, $ans, [])
575+
AC_DEFINE_UNQUOTED(PM_PAD_TIMESPEC, $ans, [timespec padding])
576576
AC_MSG_RESULT($ans)
577577
else
578578
AC_MSG_RESULT([no])
@@ -2108,6 +2108,18 @@ AC_CHECK_LIB(uv, uv_pipe_chmod,
21082108
have_uv_pipe_chmod=true,
21092109
have_uv_pipe_chmod=false)
21102110

2111+
dnl PKG_CHECK_MODULES() does not work for libinih
2112+
AC_CHECK_LIB(inih, ini_parse,
2113+
[ have_libinih=true
2114+
lib_for_inih="-linih"
2115+
],
2116+
[ have_libinih=false
2117+
lib_for_inih=""
2118+
]
2119+
)
2120+
AC_SUBST(HAVE_LIBINIH, [$have_libinih])
2121+
AC_SUBST(lib_for_inih)
2122+
21112123
PKG_CHECK_MODULES([ncurses], [ncurses], [have_ncurses=true], [have_ncurses=false])
21122124
AC_SUBST(HAVE_NCURSES, [$have_ncurses])
21132125

@@ -2497,6 +2509,11 @@ AC_SUBST([rdynamic_flag])
24972509

24982510
dnl check if argument to user's select() method in scandir call is const
24992511
AC_MSG_CHECKING([whether const arg for scandir() select method])
2512+
save_CFLAGS="$CFLAGS"
2513+
dnl Using -Werror to make the compiler fail on purpose if scandir()
2514+
dnl on this system does not support `const struct dirent *' for
2515+
dnl callbacks.
2516+
CFLAGS="-Werror"
25002517
cat <<End-of-File >conftest.c
25012518
#include <stdlib.h>
25022519
#include <unistd.h>
@@ -2506,14 +2523,16 @@ my_select(const struct dirent *foo) { return 0; }
25062523
int main() { struct dirent **list; return scandir(".", &list, my_select, NULL); }
25072524
End-of-File
25082525
(eval $ac_compile) 2>conftest.out
2526+
_ret=$?
25092527
cat conftest.out >&5
2510-
if test -s conftest.out
2528+
if test $_ret != 0
25112529
then
25122530
AC_MSG_RESULT(no)
25132531
else
25142532
AC_DEFINE(HAVE_CONST_DIRENT, [1], [const arg for scandir() select method])
25152533
AC_MSG_RESULT(yes)
25162534
fi
2535+
CFLAGS="$save_CFLAGS"
25172536
rm -f conftest.*
25182537

25192538
dnl check if struct dirent has a d_off (directory offset) field
@@ -2525,8 +2544,9 @@ cat <<End-of-File >conftest.c
25252544
int main() { struct dirent d; d.d_off = 0; }
25262545
End-of-File
25272546
(eval $ac_compile) 2>conftest.out
2547+
_ret=$?
25282548
cat conftest.out >&5
2529-
if test -s conftest.out
2549+
if test $_ret != 0
25302550
then
25312551
AC_MSG_RESULT(no)
25322552
else

debian/changelog

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ pcp (7.0.0-1) unstable; urgency=low
44

55
-- Nathan Scott <[email protected]> Tue, 01 Jul 2025 07:39:11 +1000
66

7+
pcp (6.3.3-1) unstable; urgency=low
8+
9+
* 6.3.2 release plus fixes for Debian build issues
10+
* don't dink with /var/run/pcp in pcp.postinst (closes: #1071103)
11+
* avoid dangling systemd symlinks on purge (closes: #986074)
12+
* change to allow Rules-Requires-Root: no in build (closes: #1089409)
13+
14+
-- Nathan Scott <[email protected]> Wed, 29 Jan 2025 09:25:03 +1100
15+
716
pcp (6.3.2-1) unstable; urgency=low
817

918
* New release (full details in CHANGELOG).

debian/control.pcp

Lines changed: 3 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@ Priority: extra
44
Homepage: https://pcp.io
55
Maintainer: PCP Development Team <[email protected]>
66
Uploaders: Nathan Scott <[email protected]>, Ken McDonell <[email protected]>
7-
Build-Depends: bison, flex, gawk, procps, pkg-config, debhelper (>= 5), ?{perl (>= 5.6)}, libreadline-dev | libreadline5-dev | libreadline-gplv2-dev, chrpath, libbsd-dev [kfreebsd-any], libkvm-dev [kfreebsd-any], ?{python-all}, ?{python-dev}, python3-dev, python3-setuptools, libsasl2-dev, ?{libuv1-dev}, ?{libssl-dev}, libavahi-common-dev, ?{qt-dev}, autotools-dev, zlib1g-dev, autoconf, ?{libclass-dbi-perl}, ?{libdbd-mysql-perl}, ?{python-psycopg2}, ?{python-openpyxl}, ?{dh-python}, ?{libpfm4-dev}, libncurses5-dev, ?{python-six}, ?{python-json-pointer}, ?{python-requests}, ?{libextutils-autoinstall-perl}, ?{libxml-tokeparser-perl}, ?{librrds-perl}, ?{libjson-perl}, ?{libwww-perl}, ?{libnet-snmp-perl}, ?{liblzma-dev}, ?{libsystemd-dev}, ?{python3-bpfcc}, ?{bpftrace}, ?{clang}, ?{llvm}, ?{libbpf-dev}, ?{libibumad-dev}, ?{libibmad-dev}, manpages
7+
Rules-Requires-Root: no
8+
Build-Depends: bison, flex, gawk, procps, pkg-config, debhelper (>= 5), ?{perl (>= 5.6)}, libreadline-dev | libreadline5-dev | libreadline-gplv2-dev, chrpath, libbsd-dev [kfreebsd-any], libkvm-dev [kfreebsd-any], ?{python-all}, ?{python-dev}, python3-dev, python3-setuptools, libsasl2-dev, ?{libuv1-dev}, ?{libssl-dev}, libavahi-common-dev, ?{qt-dev}, autotools-dev, zlib1g-dev, autoconf, ?{libclass-dbi-perl}, ?{libdbd-mysql-perl}, ?{python-psycopg2}, ?{python-openpyxl}, ?{dh-python}, ?{libpfm4-dev}, libncurses5-dev, ?{python-six}, ?{python-json-pointer}, ?{python-requests}, ?{libextutils-autoinstall-perl}, ?{libxml-tokeparser-perl}, ?{librrds-perl}, ?{libjson-perl}, ?{libwww-perl}, ?{libnet-snmp-perl}, ?{liblzma-dev}, ?{libsystemd-dev}, ?{python3-bpfcc}, ?{bpftrace}, ?{clang}, ?{llvm}, ?{libbpf-dev}, ?{libibumad-dev}, ?{libibmad-dev}, ?{libinih-dev}, manpages
89
Standards-Version: 3.9.3
910
X-Python3-Version: >= 3.3
1011

1112
Package: pcp
1213
Depends: ${shlibs:Depends}, ${misc:Depends}, gawk, procps, ?{python-pcp}, ?{python}, libpcp-pmda3 (= ${binary:Version}), libpcp-mmv1 (= ${binary:Version}), libpcp-web1 (= ${binary:Version}), libpcp-archive1 (= ${binary:Version}), libpcp3 (= ${binary:Version}), pcp-conf (= ${binary:Version})
1314
Recommends: libpcp-pmda-perl
1415
Conflicts: pgpool2, dstat, pcp-webapi, pcp-manager
15-
Suggests: pcp-gui, libpcp-import-perl, ?{bpftrace}, ?{python3-bpfcc}, redis-server
16+
Suggests: pcp-gui, libpcp-import-perl, ?{bpftrace}, ?{python3-bpfcc}, redis-server, zstd
1617
Provides: dstat, pcp-webapi, pcp-manager
1718
Replaces: dstat, pcp-webapi, pcp-manager
1819
Architecture: any
@@ -400,75 +401,3 @@ Description: Performance Co-Pilot (PCP) Test Suite
400401
Provides a series of tests that exercise the many utilities and daemon
401402
processes that form the PCP toolkit. Regular users should never have
402403
any need to install this package, it is for developers and testers only.
403-
404-
Package: libpcp3t64
405-
Depends: libpcp3, ${misc:Depends}
406-
Architecture: any
407-
Priority: optional
408-
Section: oldlibs
409-
Description: transitional package
410-
This is a transitional package to address incorrect Debian renaming.
411-
It can safely be removed.
412-
413-
Package: libpcp-archive1t64
414-
Depends: libpcp-archive1, ${misc:Depends}
415-
Architecture: any
416-
Priority: optional
417-
Section: oldlibs
418-
Description: transitional package
419-
This is a transitional package to address incorrect Debian renaming.
420-
It can safely be removed.
421-
422-
Package: libpcp-gui2t64
423-
Depends: libpcp-gui2, ${misc:Depends}
424-
Architecture: any
425-
Priority: optional
426-
Section: oldlibs
427-
Description: transitional package
428-
This is a transitional package to address incorrect Debian renaming.
429-
It can safely be removed.
430-
431-
Package: libpcp-mmv1t64
432-
Depends: libpcp-mmv1, ${misc:Depends}
433-
Architecture: any
434-
Priority: optional
435-
Section: oldlibs
436-
Description: transitional package
437-
This is a transitional package to address incorrect Debian renaming.
438-
It can safely be removed.
439-
440-
Package: libpcp-pmda3t64
441-
Depends: libpcp-pmda3, ${misc:Depends}
442-
Architecture: any
443-
Priority: optional
444-
Section: oldlibs
445-
Description: transitional package
446-
This is a transitional package to address incorrect Debian renaming.
447-
It can safely be removed.
448-
449-
Package: libpcp-trace2t64
450-
Depends: libpcp-trace2, ${misc:Depends}
451-
Architecture: any
452-
Priority: optional
453-
Section: oldlibs
454-
Description: transitional package
455-
This is a transitional package to address incorrect Debian renaming.
456-
It can safely be removed.
457-
458-
Package: libpcp-web1t64
459-
Depends: libpcp-web1, ${misc:Depends}
460-
Architecture: any
461-
Priority: optional
462-
Section: oldlibs
463-
Description: transitional package
464-
This is a transitional package to address incorrect Debian renaming.
465-
It can safely be removed.
466-
467-
Package: libpcp-import1t64
468-
Depends: libpcp-import1, ${misc:Depends}
469-
Architecture: any
470-
Priority: optional
471-
Section: oldlibs
472-
Description: transitional package
473-
This is a transitional package to address incorrect Debian renaming.
474-
It can safely be removed.

debian/fixcontrol

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,13 @@ else
253253
echo 's/?{libuv1-dev}, //' >>$tmp.sed
254254
fi
255255

256+
if $HAVE_LIBINIH
257+
then
258+
echo 's/?{libinih-dev}, /libinih-dev, /' >>$tmp.sed
259+
else
260+
echo 's/?{libinih-dev}, //' >>$tmp.sed
261+
fi
262+
256263
if $HAVE_PERL
257264
then
258265
echo 's/?{\\(perl[^}]*\\)}, /\\1, /' >>$tmp.sed

debian/pcp.postinst.tail

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ chown pcp:pcp /var/lib/pcp/tmp
2929
chmod 775 /var/lib/pcp/tmp
3030
chown pcp:pcp /var/log/pcp
3131
chmod 775 /var/log/pcp
32-
chown pcp:pcp /var/run/pcp
33-
chmod 775 /var/run/pcp
32+
# we used to dink with /var/run/pcp here, but that is done more
33+
# safely in pcp-reboot-init now
3434

3535
# must match src/pmdas/{json,bash,mmv}/GNUmakefile
3636
#

0 commit comments

Comments
 (0)