[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200102122004.216c85da@gandalf.local.home>
Date: Thu, 2 Jan 2020 12:20:04 -0500
From: Steven Rostedt <rostedt@...dmis.org>
To: Sudip Mukherjee <sudipm.mukherjee@...il.com>
Cc: Ingo Molnar <mingo@...nel.org>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Jiri Olsa <jolsa@...hat.com>,
Namhyung Kim <namhyung@...nel.org>,
Masami Hiramatsu <mhiramat@...nel.org>,
Linux Trace Devel <linux-trace-devel@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: [RFC] tools lib traceevent: How to do library versioning being in
the Linux kernel source?
First, I hope everyone had a 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:
libtraceevent.so.1.1.0
If I make some bug fixes, I probably want to change it to:
libtraceevent.so.1.1.1 or libtraceevent.so.1.2.0
But if I change the API, which I plan on doing soon, I would probably
need to update the major version.
libtraceevent.so.2.0.0
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
kernel.org), 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
becomes something that is reliably in all distributions. It's not like
perf doesn't depend on other libraries today anyway.
Thoughts or suggestions?
Thanks!
-- Steve
Powered by blists - more mailing lists