From 93cd9d216eb3d33698041ddb810a5c319e98d7b9 Mon Sep 17 00:00:00 2001 From: Jerome Marchand Date: Fri, 31 Mar 2023 12:26:18 +0200 Subject: [PATCH] Fix infinite loop in make Build is stuck in an infinite loop with make 4.4. Fix it. Also remove explicit library dependency to make fedpkg lint happy. Let rpmbuild take care of dependencies. Resolves: rhbz#2171770 Signed-off-by: Jerome Marchand --- ...cmd-Allow-building-with-GNU-Make-4.4.patch | 101 ++++++++++++++++++ trace-cmd.spec | 11 +- 2 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 trace-cmd-Allow-building-with-GNU-Make-4.4.patch diff --git a/trace-cmd-Allow-building-with-GNU-Make-4.4.patch b/trace-cmd-Allow-building-with-GNU-Make-4.4.patch new file mode 100644 index 0000000..399e5c1 --- /dev/null +++ b/trace-cmd-Allow-building-with-GNU-Make-4.4.patch @@ -0,0 +1,101 @@ +From a0aebf2d532b441f13d25d666c9845cbff568c95 Mon Sep 17 00:00:00 2001 +From: Michal Sojka +Date: Mon, 26 Dec 2022 17:49:51 +0100 +Subject: [PATCH] trace-cmd: Allow building with GNU Make 4.4 + +Make 4.4 introduces several backward incompatibilities and the result +is that building trace-cmd with it never finishes. It seems that make +ends up in some kind of infinite recursion. The symptoms are: + + $ make -d + GNU Make 4.4 + Built for x86_64-pc-linux-gnu + Copyright (C) 1988-2022 Free Software Foundation, Inc. + License GPLv3+: GNU GPL version 3 or later + This is free software: you are free to change and redistribute it. + There is NO WARRANTY, to the extent permitted by law. + Reading makefiles... + Reading makefile 'Makefile'... + Makefile:79: not recursively expanding pkgconfig_dir to export to shell function + Makefile:79: not recursively expanding pkgconfig_dir to export to shell function + Makefile:224: not recursively expanding LIBTRACECMD_SHARED_VERSION to export to shell function + Makefile:79: not recursively expanding pkgconfig_dir to export to shell function + Makefile:224: not recursively expanding LIBTRACECMD_SHARED_VERSION to export to shell function + Makefile:225: not recursively expanding LIBTRACECMD_SHARED_SO to export to shell function + Makefile:79: not recursively expanding pkgconfig_dir to export to shell function + Makefile:79: not recursively expanding pkgconfig_dir to export to shell function + +Build succeeds if recursively expanded variables (defined with '='), +which use $(shell ...) as its value, are replaced with simply expanded +variables (defined with ':='). + +Link: https://lore.kernel.org/linux-trace-devel/20221226164951.2632069-1-michal.sojka@cvut.cz + +Signed-off-by: Michal Sojka +Tested-by: Daniel Wagner +Signed-off-by: Steven Rostedt (Google) +--- + Makefile | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/Makefile b/Makefile +index e67cb77e..be3b0616 100644 +--- a/Makefile ++++ b/Makefile +@@ -221,8 +221,8 @@ LIBS ?= -ldl + LIBTRACECMD_DIR = $(obj)/lib/trace-cmd + LIBTRACECMD_STATIC = $(LIBTRACECMD_DIR)/libtracecmd.a + LIBTRACECMD_SHARED = $(LIBTRACECMD_DIR)/libtracecmd.so.$(LIBTRACECMD_VERSION) +-LIBTRACECMD_SHARED_VERSION = $(shell echo $(LIBTRACECMD_SHARED) | sed -e 's/\(\.so\.[0-9]*\).*/\1/') +-LIBTRACECMD_SHARED_SO = $(shell echo $(LIBTRACECMD_SHARED) | sed -e 's/\(\.so\).*/\1/') ++LIBTRACECMD_SHARED_VERSION := $(shell echo $(LIBTRACECMD_SHARED) | sed -e 's/\(\.so\.[0-9]*\).*/\1/') ++LIBTRACECMD_SHARED_SO := $(shell echo $(LIBTRACECMD_SHARED) | sed -e 's/\(\.so\).*/\1/') + + export LIBTRACECMD_STATIC LIBTRACECMD_SHARED + export LIBTRACECMD_SHARED_VERSION LIBTRACECMD_SHARED_SO +@@ -230,12 +230,12 @@ export LIBTRACECMD_SHARED_VERSION LIBTRACECMD_SHARED_SO + LIBTRACEEVENT=libtraceevent + LIBTRACEFS=libtracefs + +-TEST_LIBTRACEEVENT = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEEVENT_MIN_VERSION) $(LIBTRACEEVENT) > /dev/null 2>&1 && echo y") +-TEST_LIBTRACEFS = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEFS_MIN_VERSION) $(LIBTRACEFS) > /dev/null 2>&1 && echo y") ++TEST_LIBTRACEEVENT := $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEEVENT_MIN_VERSION) $(LIBTRACEEVENT) > /dev/null 2>&1 && echo y") ++TEST_LIBTRACEFS := $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEFS_MIN_VERSION) $(LIBTRACEFS) > /dev/null 2>&1 && echo y") + + ifeq ("$(TEST_LIBTRACEEVENT)", "y") +-LIBTRACEEVENT_CFLAGS = $(shell sh -c "$(PKG_CONFIG) --cflags $(LIBTRACEEVENT)") +-LIBTRACEEVENT_LDLAGS = $(shell sh -c "$(PKG_CONFIG) --libs $(LIBTRACEEVENT)") ++LIBTRACEEVENT_CFLAGS := $(shell sh -c "$(PKG_CONFIG) --cflags $(LIBTRACEEVENT)") ++LIBTRACEEVENT_LDLAGS := $(shell sh -c "$(PKG_CONFIG) --libs $(LIBTRACEEVENT)") + else + .PHONY: warning + warning: +@@ -253,8 +253,8 @@ endif + export LIBTRACEEVENT_CFLAGS LIBTRACEEVENT_LDLAGS + + ifeq ("$(TEST_LIBTRACEFS)", "y") +-LIBTRACEFS_CFLAGS = $(shell sh -c "$(PKG_CONFIG) --cflags $(LIBTRACEFS)") +-LIBTRACEFS_LDLAGS = $(shell sh -c "$(PKG_CONFIG) --libs $(LIBTRACEFS)") ++LIBTRACEFS_CFLAGS := $(shell sh -c "$(PKG_CONFIG) --cflags $(LIBTRACEFS)") ++LIBTRACEFS_LDLAGS := $(shell sh -c "$(PKG_CONFIG) --libs $(LIBTRACEFS)") + else + .PHONY: warning + warning: +@@ -324,11 +324,11 @@ endif + export ZLIB_LDLAGS + + ifndef NO_LIBZSTD +-TEST_LIBZSTD = $(shell sh -c "$(PKG_CONFIG) --atleast-version 1.4.0 libzstd > /dev/null 2>&1 && echo y") ++TEST_LIBZSTD := $(shell sh -c "$(PKG_CONFIG) --atleast-version 1.4.0 libzstd > /dev/null 2>&1 && echo y") + + ifeq ("$(TEST_LIBZSTD)", "y") +-LIBZSTD_CFLAGS = $(shell sh -c "$(PKG_CONFIG) --cflags libzstd") +-LIBZSTD_LDLAGS = $(shell sh -c "$(PKG_CONFIG) --libs libzstd") ++LIBZSTD_CFLAGS := $(shell sh -c "$(PKG_CONFIG) --cflags libzstd") ++LIBZSTD_LDLAGS := $(shell sh -c "$(PKG_CONFIG) --libs libzstd") + CFLAGS += -DHAVE_ZSTD + ZSTD_INSTALLED=1 + $(info Have ZSTD compression support) +-- +2.39.2 + diff --git a/trace-cmd.spec b/trace-cmd.spec index 60520dc..3c9cce5 100644 --- a/trace-cmd.spec +++ b/trace-cmd.spec @@ -6,12 +6,9 @@ Name: trace-cmd Version: %{srcversion} -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2 and LGPLv2 Summary: A user interface to Ftrace -Requires: libtracecmd -Requires: libtracefs -Requires: libtraceevent ExcludeArch: %{ix86} %{arm} @@ -24,6 +21,8 @@ Source0: https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/snapshot/t Source1: trace-cmd.conf Source2: trace-cmd.service Source3: 98-trace-cmd.rules +Patch0: trace-cmd-Allow-building-with-GNU-Make-4.4.patch + BuildRequires: make BuildRequires: gcc BuildRequires: xmlto @@ -110,6 +109,10 @@ rm -rf %{buildroot}/%{_mandir}/man3/* %{_libdir}/%{name}/python/ %changelog +* Fri Mar 31 2023 Jerome Marchand - 3.1.4-3 +- Fix build: RHBZ#2171770 +- Also remove explicit lib dependency that fedpkg lint complains about. + * Sat Jan 21 2023 Fedora Release Engineering - 3.1.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild