mbox

[RFC,v2,0/2] package linux-perf-<version> in kernel recipe

Message ID 20210427092458.4261-1-felix.moessbauer@siemens.com
State RFC
Headers show

Message

MOESSBAUER, Felix April 27, 2021, 1:24 a.m. UTC
Hi Anton,

there has been some back and forth on how to package perf and its python bindings.
IMO the out-of-tree packaging provides the most promising solution here,
as the kernel versions do not have to match exactly.

Also with debian bullseye things changed again, as an exact-version binding was
introduced between linux-perf and linxu-perf-<KR>. By that, both have to be
build from the same source package. Now, we build and provide that package as well.

Our final goal for all the effort was to get the python bindings of perf packaged.
These are missing in upstream debian. Unfortunately the kernel itself does not
provide any hooks to inject the version "into" the python-binding c source files,
so we have to use patches to inject the version into the c function names.
I already sent that patch to debian but did not get a response yet.
For details, see here:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=860957

Anyways, we run this patch series on a bunch of images for both
debian-buster and debian-bullseye (both custom and debian kernels) for a while.
In combination with the wrapper in patch 2, even things like
`import perf` work flawlessly.

Best regards,
Felix

Felix Moessbauer (2):
  RFC: Package perf from linux kernel tools
  Add wrapper to load correct python perf module based on kernel

 .../files/debian/linux-base.install           |   6 +
 .../files/lib/python3/dist-packages/perf.py   |  23 ++++
 .../recipes-core/linux-base/linux-base_4.6.bb |  25 ++++
 .../linux-perf/debian/control.tmpl            |  45 ++++++
 .../recipes-kernel/linux-perf/debian/rules    |  59 ++++++++
 .../files/4.19/tools-perf-install.patch       |  58 ++++++++
 .../files/4.19/tools-perf-python.patch        |  55 ++++++++
 .../files/4.19/tools-perf-version.patch       | 119 ++++++++++++++++
 .../files/5.10/tools-perf-install.patch       |  52 +++++++
 .../files/5.10/tools-perf-python.patch        |  56 ++++++++
 .../files/5.10/tools-perf-version.patch       | 128 ++++++++++++++++++
 .../recipes-kernel/linux-perf/files/rules     |  53 ++++++++
 .../linux-perf/files/tools-perf-install.patch |  58 ++++++++
 .../linux-perf/files/tools-perf-python.patch  |  55 ++++++++
 .../linux-perf/files/tools-perf-version.patch | 119 ++++++++++++++++
 .../linux-perf/linux-perf-4.19_4.19.160.bb    |  15 ++
 .../linux-perf/linux-perf-5.10_5.10.26.bb     |  15 ++
 .../recipes-kernel/linux-perf/linux-perf.inc  |  47 +++++++
 18 files changed, 988 insertions(+)
 create mode 100644 meta-isar/recipes-core/linux-base/files/debian/linux-base.install
 create mode 100644 meta-isar/recipes-core/linux-base/files/lib/python3/dist-packages/perf.py
 create mode 100644 meta-isar/recipes-core/linux-base/linux-base_4.6.bb
 create mode 100644 meta-isar/recipes-kernel/linux-perf/debian/control.tmpl
 create mode 100644 meta-isar/recipes-kernel/linux-perf/debian/rules
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-install.patch
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-python.patch
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/4.19/tools-perf-version.patch
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-install.patch
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-python.patch
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/5.10/tools-perf-version.patch
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/rules
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/tools-perf-install.patch
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/tools-perf-python.patch
 create mode 100644 meta-isar/recipes-kernel/linux-perf/files/tools-perf-version.patch
 create mode 100644 meta-isar/recipes-kernel/linux-perf/linux-perf-4.19_4.19.160.bb
 create mode 100644 meta-isar/recipes-kernel/linux-perf/linux-perf-5.10_5.10.26.bb
 create mode 100644 meta-isar/recipes-kernel/linux-perf/linux-perf.inc