Re: [RFC] tools lib traceevent: How to do library versioning being in the Linux kernel source?

From: Jiri Olsa
Date: Thu Jan 02 2020 - 18:50:06 EST

On Thu, Jan 02, 2020 at 12:20:04PM -0500, Steven Rostedt wrote:
> First, I hope everyone had a Happy New Year!

heya, Happy New Year! ;-)

> Next, Sudip has been working to get the libtraceevent library into
> Debian. As this has been happening, I've been working at how to get all
> the projects that use this, to use the library installed on the system
> if it does exist. I'm hoping that once it's in Debian, the other
> distros will follow suit.
> Currently, the home of libtraceevent lives in the Linux kernel source
> tree under tools/lib/traceevent. This was because perf uses it to parse
> the events, and it seemed logical (at the time) to use this location as
> the main source tree for the distributions.
> The problem I'm now having is that I'm looking at fixing and updating
> some of the code in this library, and since library versioning is
> critical for applications that depend on it, we need to have a way to
> update the versions, and this does not correspond with the Linux
> versions.
> For example, we currently have:
> If I make some bug fixes, I probably want to change it to:
> or
> But if I change the API, which I plan on doing soon, I would probably
> need to update the major version.
> The thing is, we shouldn't be making these changes for every update
> that we send to the main kernel. I would like to have a minimum of tags
> to state what the version should be, and perhaps even branches for
> working on a development version.
> This is a problem with living in the Linux source tree as tags and
> branches in Linus's tree are for only the Linux kernel source itself.
> This may work fine for perf, as it's not a library and there's not
> tools depending on the version of it. But it is a problem when it comes
> to shared libraries.
> Should we move libtraceevent into a stand alone git repo (on
>, that can have tags and branches specifically for it? We
> can keep a copy in the Linux source tree for perf to use till it

so libbpf 'moved' for this reason to github repo,
but keeping the kernel as the true/first source,
and updating github repo when release is ready

libbpf github repo is then source for fedora (and others)

> becomes something that is reliably in all distributions. It's not like
> perf doesn't depend on other libraries today anyway.

yep, we already have a way to link libbpf dynamicaly from package,
will work the same for libtraceevent