- Add patch to build and work with python3:
* libpfm-python3.patch - Build the python parts using singlespec macros to allow switching as needed OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libpfm?expand=0&rev=28
This commit is contained in:
parent
33c93b663a
commit
cd47cfeda8
63
libpfm-python3.patch
Normal file
63
libpfm-python3.patch
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
Index: libpfm-4.9.0/python/src/pmu.py
|
||||||
|
===================================================================
|
||||||
|
--- libpfm-4.9.0.orig/python/src/pmu.py
|
||||||
|
+++ libpfm-4.9.0/python/src/pmu.py
|
||||||
|
@@ -26,7 +26,7 @@ from perfmon import *
|
||||||
|
|
||||||
|
def public_members(self):
|
||||||
|
s = "{ "
|
||||||
|
- for k, v in self.__dict__.iteritems():
|
||||||
|
+ for k, v in self.__dict__.items():
|
||||||
|
if not k[0] == '_':
|
||||||
|
s += "%s : %s, " % (k, v)
|
||||||
|
s += " }"
|
||||||
|
@@ -94,8 +94,8 @@ if __name__ == '__main__':
|
||||||
|
for pmu in s.pmus:
|
||||||
|
info = pmu.info
|
||||||
|
if info.flags.is_present:
|
||||||
|
- print info.name, info.size, info.nevents
|
||||||
|
+ print(info.name, info.size, info.nevents)
|
||||||
|
for e in pmu.events():
|
||||||
|
- print e.info.name, e.info.code
|
||||||
|
+ print(e.info.name, e.info.code)
|
||||||
|
for a in e.attrs():
|
||||||
|
- print '\t\t', a.name, a.code
|
||||||
|
+ print('\t\t', a.name, a.code)
|
||||||
|
Index: libpfm-4.9.0/python/sys.py
|
||||||
|
===================================================================
|
||||||
|
--- libpfm-4.9.0.orig/python/sys.py
|
||||||
|
+++ libpfm-4.9.0/python/sys.py
|
||||||
|
@@ -48,7 +48,7 @@ if __name__ == '__main__':
|
||||||
|
if options.events:
|
||||||
|
events = options.events.split(",")
|
||||||
|
else:
|
||||||
|
- raise "You need to specify events to monitor"
|
||||||
|
+ raise Exception("You need to specify events to monitor")
|
||||||
|
|
||||||
|
s = perfmon.SystemWideSession(cpus, events)
|
||||||
|
|
||||||
|
@@ -60,4 +60,4 @@ if __name__ == '__main__':
|
||||||
|
for c in cpus:
|
||||||
|
for i in range(0, len(events)):
|
||||||
|
count = struct.unpack("L", s.read(c, i))[0]
|
||||||
|
- print """CPU%d: %s\t%lu""" % (c, events[i], count)
|
||||||
|
+ print("""CPU%d: %s\t%lu""" % (c, events[i], count))
|
||||||
|
Index: libpfm-4.9.0/python/self.py
|
||||||
|
===================================================================
|
||||||
|
--- libpfm-4.9.0.orig/python/self.py
|
||||||
|
+++ libpfm-4.9.0/python/self.py
|
||||||
|
@@ -40,7 +40,7 @@ if __name__ == '__main__':
|
||||||
|
if options.events:
|
||||||
|
events = options.events.split(",")
|
||||||
|
else:
|
||||||
|
- raise "You need to specify events to monitor"
|
||||||
|
+ raise Exception("You need to specify events to monitor")
|
||||||
|
|
||||||
|
s = perfmon.PerThreadSession(int(os.getpid()), events)
|
||||||
|
s.start()
|
||||||
|
@@ -55,4 +55,4 @@ if __name__ == '__main__':
|
||||||
|
# read the counts
|
||||||
|
for i in range(0, len(events)):
|
||||||
|
count = struct.unpack("L", s.read(i))[0]
|
||||||
|
- print """%s\t%lu""" % (events[i], count)
|
||||||
|
+ print("""%s\t%lu""" % (events[i], count))
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 17 15:52:07 UTC 2018 - tchvatal@suse.com
|
||||||
|
|
||||||
|
- Add patch to build and work with python3:
|
||||||
|
* libpfm-python3.patch
|
||||||
|
- Build the python parts using singlespec macros to allow switching
|
||||||
|
as needed
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jan 17 15:30:33 UTC 2018 - tchvatal@suse.com
|
Wed Jan 17 15:30:33 UTC 2018 - tchvatal@suse.com
|
||||||
|
|
||||||
|
38
libpfm.spec
38
libpfm.spec
@ -16,6 +16,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%global python_config CONFIG_PFMLIB_NOPYTHON=y
|
||||||
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||||
%define vname libpfm4
|
%define vname libpfm4
|
||||||
Name: libpfm
|
Name: libpfm
|
||||||
Version: 4.9.0
|
Version: 4.9.0
|
||||||
@ -26,7 +28,9 @@ Group: Development/Libraries/C and C++
|
|||||||
Url: http://perfmon2.sourceforge.net/
|
Url: http://perfmon2.sourceforge.net/
|
||||||
Source: http://downloads.sourceforge.net/project/perfmon2/libpfm4/%{name}-%{version}.tar.gz
|
Source: http://downloads.sourceforge.net/project/perfmon2/libpfm4/%{name}-%{version}.tar.gz
|
||||||
Source1: baselibs.conf
|
Source1: baselibs.conf
|
||||||
BuildRequires: python-devel
|
Patch0: libpfm-python3.patch
|
||||||
|
BuildRequires: %{python_module devel}
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
BuildRequires: swig >= 2.0.5
|
BuildRequires: swig >= 2.0.5
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -64,16 +68,26 @@ Requires: %{name}-devel = %{version}
|
|||||||
%description devel-static
|
%description devel-static
|
||||||
This package contains the static variant of libpfm.
|
This package contains the static variant of libpfm.
|
||||||
|
|
||||||
%package -n python-%{name}
|
%package -n python2-%{name}
|
||||||
Summary: Python bindings for libpfm and perf_event_open system call
|
Summary: Python bindings for libpfm and perf_event_open system call
|
||||||
Group: Development/Libraries/Python
|
Group: Development/Libraries/Python
|
||||||
Requires: %{vname} = %{version}
|
Requires: %{vname} = %{version}
|
||||||
|
|
||||||
%description -n python-%{name}
|
%description -n python2-%{name}
|
||||||
This package provides python bindings for the libpfm4 package and the perf_event_open system call.
|
This package provides python bindings for the libpfm4 package and the perf_event_open system call.
|
||||||
|
|
||||||
|
%package -n python3-%{name}
|
||||||
|
Summary: Python3 bindings for libpfm and perf_event_open system call
|
||||||
|
Group: Development/Libraries/Python
|
||||||
|
Requires: %{vname} = %{version}
|
||||||
|
|
||||||
|
%description -n python3-%{name}
|
||||||
|
This package provides python3 bindings for the libpfm4 package and the perf_event_open system call.
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
# disable werror
|
# disable werror
|
||||||
sed -i \
|
sed -i \
|
||||||
-e 's:-Werror::g' \
|
-e 's:-Werror::g' \
|
||||||
@ -81,11 +95,14 @@ sed -i \
|
|||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="%{optflags}"
|
export CFLAGS="%{optflags}"
|
||||||
%global python_config CONFIG_PFMLIB_NOPYTHON=n
|
|
||||||
make %{?_smp_mflags} %{python_config}
|
make %{?_smp_mflags} %{python_config}
|
||||||
|
|
||||||
|
pushd python
|
||||||
|
%python_build
|
||||||
|
popd
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%global python_config CONFIG_PFMLIB_NOPYTHON=n PYTHON_PREFIX="%{buildroot}/%{py_prefix}"
|
%global python_config %{python_config}
|
||||||
make \
|
make \
|
||||||
PREFIX="%{buildroot}/%{_prefix}" \
|
PREFIX="%{buildroot}/%{_prefix}" \
|
||||||
LIBDIR="%{buildroot}/%{_libdir}" \
|
LIBDIR="%{buildroot}/%{_libdir}" \
|
||||||
@ -99,6 +116,10 @@ install -D -p -m 0755 examples/showevtinfo \
|
|||||||
install -D -p -m 0755 perf_examples/evt2raw \
|
install -D -p -m 0755 perf_examples/evt2raw \
|
||||||
%{buildroot}/%{_bindir}/evt2raw
|
%{buildroot}/%{_bindir}/evt2raw
|
||||||
|
|
||||||
|
pushd python
|
||||||
|
%python_install
|
||||||
|
popd
|
||||||
|
|
||||||
# temp hack to fix rpmlint file-contains-buildroot for *.pyc
|
# temp hack to fix rpmlint file-contains-buildroot for *.pyc
|
||||||
# http://lists.opensuse.org/opensuse-factory/2012-01/msg00235.html
|
# http://lists.opensuse.org/opensuse-factory/2012-01/msg00235.html
|
||||||
find "%{buildroot}/%{python_sitearch}/" -name '*.pyc' -delete
|
find "%{buildroot}/%{python_sitearch}/" -name '*.pyc' -delete
|
||||||
@ -122,7 +143,10 @@ python -c 'import compileall; compileall.compile_dir("%{buildroot}%{python_sitea
|
|||||||
%files devel-static
|
%files devel-static
|
||||||
%{_libdir}/lib*.a
|
%{_libdir}/lib*.a
|
||||||
|
|
||||||
%files -n python-%{name}
|
%files -n python2-%{name}
|
||||||
%{python_sitearch}/*
|
%{python2_sitearch}/*
|
||||||
|
|
||||||
|
%files -n python3-%{name}
|
||||||
|
%{python3_sitearch}/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
x
Reference in New Issue
Block a user