diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 073c51e..0000000 --- a/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -libpfm-3.3.tar.gz diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0f753c1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +/libpfm-4.3.0.tar.gz +/libpfm-4.4.0.tar.gz +/libpfm-4.4.0-3.199.g0b87987.tar.gz +/libpfm-4.4.0-3.200.g9df2031.tar.gz +/libpfm-4.4.0-5.217.gbca43a5.tar.gz +/libpfm-4.5.0.tar.gz +/libpfm-4.6.0.tar.gz +/libpfm-4.7.0.tar.gz +/libpfm-4.8.0.tar.gz +/libpfm-4.9.0.tar.gz +/libpfm-4.10.0.tar.gz +/libpfm-4.10.1.tar.gz +/libpfm-4.11.0.tar.gz +/libpfm-4.13.0.tar.gz diff --git a/Makefile b/Makefile deleted file mode 100644 index 387d56f..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: libpfm -# $Id: Makefile,v 1.1 2004/09/24 14:13:08 wcohen Exp $ -NAME := libpfm -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attempt a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..ce3cdc1 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,19 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/libpfm-3.2-rpm_opt.patch b/libpfm-3.2-rpm_opt.patch deleted file mode 100644 index 8eae2f5..0000000 --- a/libpfm-3.2-rpm_opt.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- libpfm-3.2-060926/rules.mk.rpm_opt 2006-09-26 08:21:37.000000000 -0400 -+++ libpfm-3.2-060926/rules.mk 2006-10-01 21:33:10.000000000 -0400 -@@ -25,12 +25,12 @@ - .SUFFIXES: .c .S .o .lo .cpp - - .S.o: -- $(CC) $(CFLAGS) -c $*.S -+ $(CC) $(CFLAGS) $(RPM_OPT_FLAGS) -c $*.S - .c.o: -- $(CC) $(CFLAGS) -c $*.c -+ $(CC) $(CFLAGS) $(RPM_OPT_FLAGS) -c $*.c - .cpp.o: -- $(CXX) $(CFLAGS) -c $*.cpp -+ $(CXX) $(CFLAGS) $(RPM_OPT_FLAGS) -c $*.cpp - .c.lo: -- $(CC) -fPIC -DPIC $(CFLAGS) -c $*.c -o $*.lo -+ $(CC) -fPIC -DPIC $(CFLAGS) $(RPM_OPT_FLAGS) -c $*.c -o $*.lo - .S.lo: -- $(CC) -fPIC -DPIC $(CFLAGS) -c $*.S -o $*.lo -+ $(CC) -fPIC -DPIC $(CFLAGS) $(RPM_OPT_FLAGS) -c $*.S -o $*.lo diff --git a/libpfm-3.3-ia64-build.patch b/libpfm-3.3-ia64-build.patch deleted file mode 100644 index 9d6acf9..0000000 --- a/libpfm-3.3-ia64-build.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up libpfm-3.3/lib/pfmlib_itanium2.c.broken libpfm-3.3/lib/pfmlib_itanium2.c ---- libpfm-3.3/lib/pfmlib_itanium2.c.broken 2008-02-26 10:47:03.000000000 -0500 -+++ libpfm-3.3/lib/pfmlib_itanium2.c 2008-02-26 10:47:50.000000000 -0500 -@@ -231,7 +231,7 @@ check_inst_retired_events(pfmlib_input_p - int code; - int c; - unsigned int i, count, found = 0; -- unsigned long umask, mask; -+ unsigned long umask = 0, mask; - - pfm_get_event_code(PME_ITA2_IA64_INST_RETIRED_THIS, &code); - diff --git a/libpfm-fix-const.patch b/libpfm-fix-const.patch new file mode 100644 index 0000000..b9a2308 --- /dev/null +++ b/libpfm-fix-const.patch @@ -0,0 +1,59 @@ +From ded148888c501c2e9d21c23263d7c09aed4b97d6 Mon Sep 17 00:00:00 2001 +From: Aaron Merey +Date: Fri, 19 Dec 2025 12:33:33 -0500 +Subject: [PATCH] fix discarded const warning on newer gcc + +--- + lib/pfmlib_common.c | 15 +++++++++------ + tests/validate_x86.c | 2 +- + 2 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/lib/pfmlib_common.c b/lib/pfmlib_common.c +index 44b5de4..59a7cff 100644 +--- a/lib/pfmlib_common.c ++++ b/lib/pfmlib_common.c +@@ -1625,12 +1625,6 @@ pfmlib_parse_event(const char *event, pfmlib_event_desc_t *d) + const char *pname = NULL; + int i, j, ret; + +- /* +- * support only one event at a time. +- */ +- p = strpbrk(event, PFMLIB_EVENT_DELIM); +- if (p) +- return PFM_ERR_INVAL; + /* + * create copy because string is const + */ +@@ -1638,6 +1632,15 @@ pfmlib_parse_event(const char *event, pfmlib_event_desc_t *d) + if (!str) + return PFM_ERR_NOMEM; + ++ /* ++ * support only one event at a time. ++ */ ++ p = strpbrk(s, PFMLIB_EVENT_DELIM); ++ if (p) { ++ free(s); ++ return PFM_ERR_INVAL; ++ } ++ + + /* check for optional PMU name */ + p = strstr(s, PFMLIB_PMU_DELIM); +diff --git a/tests/validate_x86.c b/tests/validate_x86.c +index 500a697..68a776d 100644 +--- a/tests/validate_x86.c ++++ b/tests/validate_x86.c +@@ -8018,7 +8018,7 @@ static int + check_pmu_supported(const char *evt) + { + pfm_pmu_info_t info; +- char *p; ++ const char *p; + int ret; + pfm_pmu_t i; + +-- +2.52.0 + diff --git a/libpfm-gcc14.patch b/libpfm-gcc14.patch new file mode 100644 index 0000000..9f2a62d --- /dev/null +++ b/libpfm-gcc14.patch @@ -0,0 +1,21 @@ +commit cb944829e0940d74009e09b8985b4f2139f5cb3b +Author: William Cohen +Date: Mon Jan 29 16:23:43 2024 -0500 + + Correct s390x code to avoid GCC-14 -Werror=calloc-transposed-args errors + +diff --git a/lib/pfmlib_s390x_cpumf.c b/lib/pfmlib_s390x_cpumf.c +index d8ce22d..718f5f8 100644 +--- a/lib/pfmlib_s390x_cpumf.c ++++ b/lib/pfmlib_s390x_cpumf.c +@@ -216,8 +216,8 @@ static int pfm_cpumcf_init(void *this) + break; + } + +- cpumcf_pe = calloc(sizeof(*cpumcf_pe), +- cfvn_set_count + csvn_set_count + ext_set_count); ++ cpumcf_pe = calloc(cfvn_set_count + csvn_set_count + ext_set_count, ++ sizeof(*cpumcf_pe)); + if (cpumcf_pe == NULL) + return PFM_ERR_NOMEM; + diff --git a/libpfm-python3-setup.patch b/libpfm-python3-setup.patch new file mode 100644 index 0000000..f43187a --- /dev/null +++ b/libpfm-python3-setup.patch @@ -0,0 +1,10 @@ +diff --git a/python/setup.py b/python/setup.py +index eda8fa5..dff0f27 100755 +--- a/python/setup.py ++++ b/python/setup.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + from distutils.core import setup, Extension + from distutils.command.install_data import install_data diff --git a/libpfm.spec b/libpfm.spec index e108aa3..d7384ca 100644 --- a/libpfm.spec +++ b/libpfm.spec @@ -1,166 +1,390 @@ -%define DATE 080225 -%define libpfm_release 2 -Summary: A performance monitoring library for Linux/ia64 -Name: libpfm -Version: 3.3 -Release: 0.%{DATE}.%{libpfm_release}%{?dist} -License: MIT-style -Group: Development/Libraries -ExclusiveArch: ia64 %{ix86} x86_64 -ExclusiveOS: linux -AutoReqProv: no -Source: http://prdownloads.sourceforge.net/perfmon2/%{name}-%{version}.tar.gz -URL: http://sourceforge.net/projects/perfmon2/ +# Default to no static libraries +%{!?with_static: %global with_static 1} +%bcond_without python +%if %{with python} +%define python_sitearch %(python3 -c "from distutils.sysconfig import get_python_lib; print (get_python_lib(1))") +%define python_prefix %(python3 -c "import sys; print (sys.prefix)") +%global __provides_exclude_from ^%{python3_sitearch}/perfmon/.*\.so$ +%endif -Patch3: libpfm-3.2-rpm_opt.patch -#Patch4: libpfm-3.2-man3.patch -Patch5: libpfm-3.3-ia64-build.patch +Name: libpfm +Version: 4.13.0 +Release: 17%{?dist} -BuildRequires: ncurses-devel -BuildRoot: %{_tmppath}/%{name}-%{version}-root +Summary: Library to encode performance events for use by perf tool + +License: MIT +URL: http://perfmon2.sourceforge.net/ +Source0: http://sourceforge.net/projects/perfmon2/files/libpfm4/%{name}-%{version}.tar.gz +Patch1: libpfm-fix-const.patch +Patch2: libpfm-python3-setup.patch +Patch3: libpfm-gcc14.patch + +BuildRequires: make +BuildRequires: gcc +%if %{with python} +BuildRequires: python3 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: swig +%endif %description -This package contains a library to develop performance monitoring -applications using the Performance Monitor Unit (PMU) available on -various processors. + +libpfm4 is a library to help encode events for use with operating system +kernels performance monitoring interfaces. The current version provides support +for the perf_events interface available in upstream Linux kernels since v2.6.31. %package devel -Summary: the Linux performance library (libpfm) development files. -Group: Development/Libraries +License: MIT +Summary: Development library to encode performance events for perf_events based tools +Requires: %{name}%{?_isa} = %{version}-%{release} %description devel -The performance monitoring library (libpfm) is used to develop -performance monitoring applications using the Performance Monitoring -Unit (PMU) available on various processors. This package provides the -files necessary for development of applications. -It requires a kernel perfmon-2.x subsystem. +Development library and header files to create performance monitoring +applications for the perf_events interface. -Requires: ncurses +%if %{with_static} +%package static +License: MIT +Summary: Static library to encode performance events for perf_events based tools +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description static +Static version of the libpfm library for performance monitoring +applications for the perf_events interface. +%endif + +%if %{with python} +%package -n python3-libpfm +License: MIT AND LicenseRef-Fedora-UltraPermissive +%{?python_provide:%python_provide python3-libpfm} +# Remove before F30 +Provides: %{name}-python = %{version}-%{release} +Provides: %{name}-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python < %{version}-%{release} +Summary: Python bindings for libpfm and perf_event_open system call +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n python3-libpfm +Python bindings for libpfm4 and perf_event_open system call. +%endif %prep -%setup -q -n %{name}-%{version} -%patch3 -p1 -b .rpm_opt -#%patch4 -p1 -b .man3 -%patch5 -p1 -b .ia64build +%setup -q +%patch -P1 -p1 -b .fix-const +%patch -P2 -p1 -b .python3 +%patch -P3 -p1 -b .gcc14 +# to prevent setuptools from installing an .egg, we need to pass --root to setup.py install +# see https://github.com/pypa/setuptools/issues/3143 +# and https://github.com/pypa/pip/issues/11501 +sed -i 's/--prefix=$(DESTDIR)$(PYTHON_PREFIX)/--root=$(DESTDIR) --prefix=$(PYTHON_PREFIX)/' python/Makefile %build -make PREFIX=/usr DESTDIR=%{buildroot} LIBDIR=%{_libdir} +%if %{with python} +%global python_config CONFIG_PFMLIB_NOPYTHON=n +%else +%global python_config CONFIG_PFMLIB_NOPYTHON=y +%endif +%make_build %{python_config} \ + OPTIM="%{optflags}" LDFLAGS="%{build_ldflags}" + %install -rm -rf %{buildroot} -mkdir -p %{buildroot} -make install PREFIX=/usr DESTDIR=%{buildroot} LIBDIR=%{_libdir} +rm -rf $RPM_BUILD_ROOT -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig -%clean -rm -rf %{buildroot} +%if %{with python} +%global python_config CONFIG_PFMLIB_NOPYTHON=n PYTHON_PREFIX=%{python_prefix} +%else +%global python_config CONFIG_PFMLIB_NOPYTHON=y +%endif + +make \ + DESTDIR=$RPM_BUILD_ROOT \ + PREFIX=%{_prefix} \ + LIBDIR=%{_libdir} \ + %{python_config} \ + LDCONFIG=/bin/true \ + install + +%if !%{with_static} +rm $RPM_BUILD_ROOT%{_libdir}/lib*.a +%endif + +%ldconfig_scriptlets %files -%defattr(-,root,root) %doc README -%attr(755,root,root) %{_libdir}/*.so* -%{_libdir}/*.so* +%{_libdir}/lib*.so.* %files devel -%defattr(-,root,root) -%doc README -%doc %{_mandir}/man3/* -%{_libdir}/libpfm.a -%{_prefix}/include/* +%{_includedir}/* +%{_mandir}/man3/* +%{_libdir}/lib*.so + +%if %{with_static} +%files static +%{_libdir}/lib*.a +%endif + +%if %{with python} +%files -n python3-libpfm +%{python3_sitearch}/perfmon-*.egg-info/ +%{python3_sitearch}/perfmon/ +%endif %changelog -* Tue Feb 26 2008 Will Cohen - 3.3-0.080225.2 -- Correct possibly unitialized variable umask. Resolves: rhbz #434968 +* Tue Dec 16 2025 Aaron Merey - 4.13.0-17 +- Add libpfm-fix-const.patch -* Mon Feb 25 2008 Will Cohen - 3.3-0.080225.1 -- Update to libpfm-3.3. +* Fri Sep 19 2025 Python Maint - 4.13.0-16 +- Rebuilt for Python 3.14.0rc3 bytecode -* Wed Feb 20 2008 Fedora Release Engineering - 3.2-1.071017.1 -- Autorebuild for GCC 4.3 +* Mon Aug 25 2025 Aaron Merey - 4.13.0-15 +- Fix path in tests/runtest.sh -* Wed Oct 24 2007 Will Cohen - 3.2-0.071017.1 -- Update to libpfm-3.2-071017. +* Fri Aug 15 2025 Python Maint - 4.13.0-14 +- Rebuilt for Python 3.14.0rc2 bytecode -* Tue Aug 21 2007 Will Cohen - 3.2-0.061205.3 -- rebuild +* Thu Jul 24 2025 Fedora Release Engineering - 4.13.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild -* Mon May 21 2007 Will Cohen - 3.2-0.061205.2 -- Fix up rpmlint complaints. +* Mon Jun 02 2025 Python Maint - 4.13.0-12 +- Rebuilt for Python 3.14 -* Mon Dec 4 2006 Will Cohen - 3.2-0.061205.1 -- Update to libpfm-3.2-061205. +* Fri Jan 17 2025 Fedora Release Engineering - 4.13.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild -* Fri Nov 3 2006 Will Cohen - 3.2-0.060926.3 -- Add dist tag to build. +* Thu Jul 18 2024 Fedora Release Engineering - 4.13.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild -* Sun Oct 1 2006 Will Cohen - 3.2-0.060926.2 -- Eliminate unneeded libpfm-compa.tpatch. +* Fri Jun 07 2024 Python Maint - 4.13.0-9 +- Rebuilt for Python 3.13 -* Sun Oct 1 2006 Will Cohen - 3.2-0.060926.1 -- Update to libpfm-3.2-060926. +* Mon Jan 29 2024 William Cohen - 4.13.0-8 +- Fix gcc-14 -Werror=calloc-transposed-args compatibility -* Tue Sep 19 2006 Will Cohen - 3.2-0.060621.10 -- Make sure fix works on i386. (#205221) +* Thu Jan 25 2024 Fedora Release Engineering - 4.13.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Tue Sep 19 2006 Will Cohen - 3.2-0.060621.9 -- Make sure libraries put in correct directory. (#205221) +* Sun Jan 21 2024 Fedora Release Engineering - 4.13.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Wed Jul 12 2006 Jesse Keating - 3.2-0.060621.8.1 -- rebuild +* Tue Aug 1 2023 William Cohen - 4.13.0-5 +- migrated to SPDX license -* Sat Jul 8 2006 Will Cohen -- Avoid pulling in the example ELF executable into /usr/share. (#198001) -- Mark man pages as documentation. +* Thu Jul 20 2023 Fedora Release Engineering - 4.13.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild -* Tue Jun 27 2006 Will Cohen -- Add ncurses requires. -- Add ncurses-devel buildprereq. +* Tue Jun 13 2023 Python Maint - 4.13.0-3 +- Rebuilt for Python 3.12 -* Mon Jun 26 2006 Will Cohen -- Make sure that CFLAGS in pfmlib/lib/ is used. -- Separate build and install processes. -- Clean up the descriptions. +* Tue Apr 25 2023 Miro Hrončok - 4.13.0-2 +- Don't install a Python .egg -* Mon Jun 26 2006 Will Cohen -- Update to libpfm-3.2-060621. +* Tue Mar 28 2023 William Cohen - 4.13.0-1 +- Rebase on libpfm-4.13.0. -* Wed Jun 14 2006 Will Cohen -- Update to libpfm-3.2-060613. +* Tue Mar 14 2023 William Cohen - 4.11.0-12 +- Add libpfm upstream patch to allow papi-7.0.1 to build. -* Fri May 05 2006 Will Cohen -- fno-strict-aliasing so ia64 builds. +* Thu Jan 19 2023 Fedora Release Engineering - 4.11.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild -* Fri May 05 2006 Will Cohen -- make sure that perfmon_compat.h installed for ia64. +* Thu Jul 21 2022 Fedora Release Engineering - 4.11.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild -* Thu May 04 2006 Will Cohen -- Update to libpfm-3.2-060421. +* Tue Jun 21 2022 Python Maint - 4.11.0-9 +- Fix FTBFS due to gcc12. (rhbz2045823) -* Thu Feb 09 2006 Florian La Roche -- remove empty scripts +* Mon Jun 13 2022 Python Maint - 4.11.0-8 +- Rebuilt for Python 3.11 -* Tue Feb 07 2006 Jesse Keating - 3.0-4.2 -- rebuilt for new gcc4.1 snapshot and glibc changes +* Thu Jan 20 2022 Fedora Release Engineering - 4.11.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild -* Fri Dec 09 2005 Jesse Keating -- rebuilt +* Thu Jul 22 2021 Fedora Release Engineering - 4.11.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild -* Mon Mar 14 2005 Will Cohen -- Bump rebuild with gcc4. +* Fri Jun 04 2021 Python Maint - 4.11.0-5 +- Rebuilt for Python 3.10 -* Tue Oct 26 2004 Will Cohen -- Correct ownership of files. +* Tue Jan 26 2021 Fedora Release Engineering - 4.11.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild -* Mon Sep 27 2004 Will Cohen -- Correct spec file for build system. +* Sat Jan 23 2021 William Cohen - 4.11.0-3 +- Reenable generation of static libraries for time being. -* Mon Dec 1 2003 Stephane Eranian -- release 3.0 final version -* Thu Jan 02 2003 Stephane Eranian -- release final 2.0 version -* Fri Dec 20 2002 Stephane Eranian -- final 2.0 release -* Thu Dec 05 2002 Stephane Eranian -- initial release of the library as a standalone package -- see ChangeLog for actual log +* Fri Jan 22 2021 William Cohen - 4.11.0-2 +- By default disable generation of static libraries + +* Tue Sep 08 2020 William Cohen - 4.11.0-1 +- Rebase on libpfm-4.11.0. + +* Tue Jul 28 2020 Fedora Release Engineering - 4.10.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 4.10.1-12 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Tue May 26 2020 Miro Hrončok - 4.10.1-11 +- Rebuilt for Python 3.9 + +* Wed Jan 29 2020 Fedora Release Engineering - 4.10.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Oct 03 2019 Miro Hrončok - 4.10.1-9 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Mon Aug 19 2019 Miro Hrončok - 4.10.1-8 +- Rebuilt for Python 3.8 + +* Thu Jul 25 2019 Fedora Release Engineering - 4.10.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 4.10.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jul 17 2018 Miro Hrončok - 4.10.1-5 +- Update Python macros to new packaging standards + (See https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package) + +* Sun Jul 15 2018 William Cohen - 4.10.1-4 +- Add gcc Buildrequires. + +* Fri Jul 13 2018 Fedora Release Engineering - 4.10.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 4.10.1-2 +- Rebuilt for Python 3.7 + +* Fri Jun 15 2018 William Cohen - 4.10.1-1 +- Rebase on libpfm-4.10.1. + +* Tue Jun 12 2018 William Cohen - 4.10.0-2 +- Use upstream libpfm cavium patch. + +* Fri Jun 8 2018 William Cohen - 4.10.0-1 +- Rebase on libpfm-4.10.0. +- Use Python 3. + +* Mon Feb 26 2018 Fedora Release Engineering - 4.9.0-6 +- Pass in LDFLAGS for build. + +* Wed Feb 07 2018 Fedora Release Engineering - 4.9.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 30 2018 William Cohen - 4.9.0-4 +- Address truncation issues. + +* Tue Jan 30 2018 William Cohen - 4.9.0-3 +- Use the RPM build flags. (RHBZ #1540262) + +* Tue Jan 09 2018 Iryna Shcherbina - 4.9.0-2 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Thu Jan 4 2018 William Cohen - 4.9.0-1 +- Rebase on libpfm-4.9.0. + +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 4.8.0-8 +- Add Provides for the old name without %%_isa + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 4.8.0-7 +- Python 2 binary package renamed to python2-libpfm + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Thu Aug 03 2017 Fedora Release Engineering - 4.8.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 4.8.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 07 2017 Igor Gnatenko - 4.8.0-4 +- Rebuild due to bug in RPM (RHBZ #1468476) + +* Fri Feb 10 2017 Fedora Release Engineering - 4.8.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Nov 7 2016 William Cohen - 4.8.0-1 +- Rebase on libpfm-4.8.0. + +* Tue Jul 19 2016 Fedora Release Engineering - 4.7.0-2 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Thu Feb 11 2016 William Cohen - 4.7.0-1 +- Rebase on libpfm-4.7.0. + +* Thu Feb 04 2016 Fedora Release Engineering - 4.6.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 4.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Jun 4 2015 William Cohen - 4.6.0-2 +- Correct requires for subpackages. + +* Thu Mar 5 2015 William Cohen - 4.6.0-1 +- Rebase on libpfm-4.6.0. + +* Wed Feb 11 2015 William Cohen - 4.5.0-6 +- Bump version and rebuild. + +* Sun Aug 17 2014 Fedora Release Engineering - 4.5.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Mon Jun 30 2014 Toshio Kuratomi - 4.5.0-4 +- Replace python-setuptools-devel BR with python-setuptools + +* Sat Jun 07 2014 Fedora Release Engineering - 4.5.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri May 23 2014 William Cohen 4.5.0-2 +- Add cortex a53 support. + +* Fri May 23 2014 William Cohen 4.5.0-1 +- Rebase on libpfm-4.5.0. + +* Sat Aug 03 2013 Fedora Release Engineering - 4.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Jul 19 2013 William Cohen 4.4.0-2 +- Add IBM power 8 support. + +* Mon Jun 17 2013 William Cohen 4.4.0-1 +- Rebase on libpfm-4.4.0. + +* Thu Feb 14 2013 Fedora Release Engineering - 4.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Aug 28 2012 William Cohen 4.3.0-2 +- Turn off LDCONFIG and remove patch. + +* Tue Aug 28 2012 William Cohen 4.3.0-1 +- Rebase on libpfm-4.3.0. + +* Thu Jul 19 2012 Fedora Release Engineering - 4.2.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jun 8 2012 William Cohen 4.2.0-7 +- Eliminate swig error. + +* Thu Jun 7 2012 William Cohen 4.2.0-6 +- Eliminate rpm_build_root macro in build section. +- Correct location of shared library files. + +* Thu Jun 7 2012 William Cohen 4.2.0-5 +- Use siginfo_t for some examples. + +* Mon Jun 4 2012 William Cohen 4.2.0-4 +- Correct python files. + +* Wed Mar 28 2012 William Cohen 4.2.0-3 +- Additional spec file fixup for rhbz804666. + +* Wed Mar 14 2012 William Cohen 4.2.0-2 +- Some spec file fixup. + +* Wed Jan 12 2011 Arun Sharma 4.2.0-0 +Initial revision diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..3fd3ab7 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,5 @@ +summary: CI Gating Plan +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources index 9f1c917..b2d4ea3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3adb81688dd908f1482cec77d04a73ab libpfm-3.3.tar.gz +SHA512 (libpfm-4.13.0.tar.gz) = e61b210aa2ce80f0e47603c88eee2e4f2fe30ca2c0e194a5472b6a8de3bf9dc1085e5261bbb9ddbe5b6531c4b391fb34f20d038e5ebd8e6f4c14c2112aee508f diff --git a/tests/libpfm-testsuite/Makefile b/tests/libpfm-testsuite/Makefile new file mode 100644 index 0000000..ba93382 --- /dev/null +++ b/tests/libpfm-testsuite/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/libpfm/Sanity/libpfm-testsuite +# Description: libpfm-testsuite testing by upstream testsuite +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/libpfm/Sanity/libpfm-testsuite +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Michal Kolar " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: libpfm-testsuite testing by upstream testsuite" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 1h" >> $(METADATA) + @echo "RunFor: libpfm" >> $(METADATA) + @echo "Requires: libpfm rpm-build yum-utils make gcc" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6 -RHEL7" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/libpfm-testsuite/PURPOSE b/tests/libpfm-testsuite/PURPOSE new file mode 100644 index 0000000..9c4a286 --- /dev/null +++ b/tests/libpfm-testsuite/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/libpfm/Sanity/libpfm-testsuite +Description: libpfm-testsuite testing by upstream testsuite +Author: Michal Kolar diff --git a/tests/libpfm-testsuite/main.fmf b/tests/libpfm-testsuite/main.fmf new file mode 100644 index 0000000..8b5c8cf --- /dev/null +++ b/tests/libpfm-testsuite/main.fmf @@ -0,0 +1,16 @@ +summary: libpfm-testsuite testing by upstream testsuite +description: '' +contact: Michal Kolar +component: +- libpfm +test: ./runtest.sh +framework: beakerlib +recommend: +- libpfm +- rpm-build +- yum-utils +- make +- gcc +duration: 1h +extra-summary: /tools/libpfm/Sanity/libpfm-testsuite +extra-task: /tools/libpfm/Sanity/libpfm-testsuite diff --git a/tests/libpfm-testsuite/runtest.sh b/tests/libpfm-testsuite/runtest.sh new file mode 100755 index 0000000..a5997d6 --- /dev/null +++ b/tests/libpfm-testsuite/runtest.sh @@ -0,0 +1,82 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/libpfm/Sanity/libpfm-testsuite +# Description: libpfm-testsuite testing by upstream testsuite +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +BUILD_USER=${BUILD_USER:-lbpfmbld} +TESTS_COUNT_MIN=${TESTS_COUNT_MIN:-1} +PACKAGE="libpfm" +REQUIRES="$PACKAGE rpm-build make gcc" +if rlIsFedora; then + REQUIRES="$REQUIRES dnf-utils" +else + REQUIRES="$REQUIRES yum-utils" +fi + +rlJournalStart + rlPhaseStartSetup + rlShowRunningKernel + rlAssertRpm --all + rlRun "TmpDir=\$(mktemp -d)" + rlRun "pushd $TmpDir" + rlFetchSrcForInstalled $PACKAGE + rlRun "useradd -M -N $BUILD_USER" 0,9 + [ "$?" == "0" ] && rlRun "del=yes" + rlRun "chown -R $BUILD_USER:users $TmpDir" + rlPhaseEnd + + rlPhaseStartSetup "build libpfm" + rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" + rlRun "yum-builddep -y $TmpDir/SPECS/*.spec" + rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" + rlRun "rlFileSubmit $TmpDir/rpmbuild.log" + rlRun "cd \"$TmpDir\"/BUILD/libpfm-*-build/libpfm-*/tests 2>/dev/null || cd \"$TmpDir\"/BUILD/libpfm-*/tests" + rlRun "su -c 'make PFMLIB=`rpm -ql libpfm | grep .so | head -n 1`' $BUILD_USER" + rlRun "ldd validate | tee $TmpDir/ldd.log" + rlRun "grep -q 'libpfm.so' $TmpDir/ldd.log" + rlPhaseEnd + + rlPhaseStartTest "run testsuite" + rlRun "su -c './validate &>$TmpDir/testsuite.log' $BUILD_USER" + rlRun "rlFileSubmit $TmpDir/testsuite.log" + rlPhaseEnd + + rlPhaseStartTest "evaluate results" + rlRun "cd $TmpDir" + rlRun "grep -q 'All tests passed' testsuite.log" + rlRun "tests_count=\$(grep -o -E '^\s*[0-9]+' testsuite.log | awk '{sum+=\$1} END {print sum}')" + [ "$tests_count" -ge "$TESTS_COUNT_MIN" ] && rlLogInfo "Test counter: $tests_count" || rlFail "Test counter $tests_count should be greater than or equal to $TESTS_COUNT_MIN" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" + [ "$del" == "yes" ] && rlRun "userdel -f $BUILD_USER" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd