tree 9e58dc4d140e519d2e7bcd635e40fda6b7bdf276
parent 4cc0991abd3954609a6929234bbb8c0fe7a0298d
parent 9910a74d6ebf6e35d7adfae665022674fb90ea78
author Andrii Nakryiko <andrii@kernel.org> 1644556187 -0800
committer Andrii Nakryiko <andrii@kernel.org> 1644556187 -0800

Merge branch 'bpftool: Switch to new versioning scheme (align on libbpf's)'

Quentin Monnet says:

====================

Hi, this set aims at updating the way bpftool versions are numbered.
Instead of copying the version from the kernel (given that the sources for
the kernel and bpftool are shipped together), align it on libbpf's version
number, with a fixed offset (6) to avoid going backwards. Please refer to
the description of the second commit for details on the motivations.

The patchset also adds the number of the version of libbpf that was used to
compile to the output of "bpftool version". Bpftool makes such a heavy
usage of libbpf that it makes sense to indicate what version was used to
build it.

v3:
- Compute bpftool's version at compile time, but from the macros exposed by
  libbpf instead of calling a shell to compute $(BPFTOOL_VERSION) in the
  Makefile.
- Drop the commit which would add a "libbpfversion" target to libbpf's
  Makefile. This is no longer necessary.
- Use libbpf's major, minor versions with jsonw_printf() to avoid
  offsetting the version string to skip the "v" prefix.
- Reword documentation change.

v2:
- Align on libbpf's version number instead of creating an independent
  versioning scheme.
- Use libbpf_version_string() to retrieve and display libbpf's version.
- Re-order patches (1 <-> 2).
====================

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
