All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf tools: Fix empty version number when building outside of a git repo
@ 2022-09-27 19:52 Will Chandler
  2022-09-28  9:21 ` John Garry
  2022-09-30 15:11 ` [PATCH v2] " Will Chandler
  0 siblings, 2 replies; 10+ messages in thread
From: Will Chandler @ 2022-09-27 19:52 UTC (permalink / raw)
  To: peterz, mingo, acme, mark.rutland, alexander.shishkin, jolsa,
	namhyung, linux-perf-users, linux-kernel
  Cc: john.garry, wfc

When perf is built in a full source tree that is not a git repository,
e.g. from a kernel source tarball, `perf version` will print empty tag
and commit strings:

  $ perf version
  perf version

Currently the tag version is only generated from the root Makefile when
building in a git repository. If PERF-VERSION-FILE has not been
generated and the source tree is not in a git repository, then
PERF-VERSION-GEN will return an empty version.

The problem can be reproduced with the following steps:

  $ wget https://git.kernel.org/torvalds/t/linux-6.0-rc7.tar.gz
  $ tar -xf linux-6.0-rc7.tar.gz && cd linux-6.0-rc7
  $ make -C tools/perf
  $ tools/perf/perf -v
  perf version

Builds from tarballs generated with `make perf-tar-src-pkg` are not
impacted by this issue as PERF-VERSION-FILE is included in the archive.

The perf RPM provided by Fedora for 5.18+ is experiencing this problem.
Package build logs[0] show that the build is attempting to fall back on
PERF-VERSION-FILE, but it is not present.

To resolve this, always use the tag from the root Makefile if available.

[0] https://kojipkgs.fedoraproject.org/packages/kernel-tools/5.19.4/200.fc36/data/logs/x86_64/build.log

Fixes: 7572733b8499 ("perf tools: Fix version kernel tag, 2022-02-21")
Signed-off-by: Will Chandler <wfc@wfchandler.org>
---
 tools/perf/util/PERF-VERSION-GEN | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/PERF-VERSION-GEN b/tools/perf/util/PERF-VERSION-GEN
index 0ee5af529238..43b8a8ea6f53 100755
--- a/tools/perf/util/PERF-VERSION-GEN
+++ b/tools/perf/util/PERF-VERSION-GEN
@@ -15,10 +15,13 @@ LF='
 #
 CID=
 TAG=
-if test -d ../../.git -o -f ../../.git
+if test -r ../../Makefile
 then
 	TAG=$(MAKEFLAGS= make -sC ../.. kernelversion)
-	CID=$(git log -1 --abbrev=12 --pretty=format:"%h" 2>/dev/null) && CID="-g$CID"
+	if test -d ../../.git -o -f ../../.git
+	then
+	    CID=$(git log -1 --abbrev=12 --pretty=format:"%h" 2>/dev/null) && CID="-g$CID"
+	fi
 else
 	TAG=$(cut -d' ' -f3 ../../PERF-VERSION-FILE | sed -e 's/\"//g')
 fi
-- 
2.37.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-09-30 16:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-27 19:52 [PATCH] perf tools: Fix empty version number when building outside of a git repo Will Chandler
2022-09-28  9:21 ` John Garry
2022-09-28 17:26   ` Will Chandler
2022-09-29 10:09     ` John Garry
2022-09-29 19:06       ` Will Chandler
2022-09-29 19:16         ` Arnaldo Carvalho de Melo
2022-09-30 10:23         ` John Garry
2022-09-30 15:11 ` [PATCH v2] " Will Chandler
2022-09-30 16:14   ` John Garry
2022-09-30 16:43     ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.