package/trace-cmd: bump to version 2.9.1
authorNorbert Lange <nolange79@gmail.com>
Thu, 3 Dec 2020 10:48:40 +0000 (11:48 +0100)
committerYann E. MORIN <yann.morin.1998@free.fr>
Sun, 3 Jan 2021 11:07:14 +0000 (12:07 +0100)
The layout of the pacakge direcotry has changed, as upstream has added
more than just trace-cmd in the repository (e.g. kernel-shark).

However, the buildsystem for trace-cmd is... unconventional:

  - the top-level Makefile will recurse into the trace-cmd/
    sub-directory, but does not pass any variable on the $(MAKE) command
    line; instead, it exports them in the environment, e.g.:
        export CFLAGS

  - the top-level Makefile appends some definitions to CFLAGS et al.,
    sometimes with a simple append-assignment, sometimes with an
    overriden append-assignment, e.g.:
        CFLAGS += -DVSOCK
        override CFLAGS += -DNO_PTRACE

  - the top-level Makefile does not export all the variables. For
    example, LDFLAGS is not exported;

  - the Makefile in the trace-cmd/ sub-directory expects some variables
    to be set, which is done by the top-level Makefile.

As a consequence, we can no longer pass our variable definitions as make
variable defintions on the command line; we must pass them in the
environment. Note that for some, like CFLAGS, that would still work, but
it would not for others, like LDFLAGS; for consistency, we put all in
the environment.

We can however use the provided 'make install', that behaves as
expected. But we must repeat most environment variables; especially, we
duplicate TARGET_CONFIGURE_OPTS as it has PATH et al. which are needed
by the top-level Makefile to properly detect tools (e.g. swig), which it
uses to decide what it should install.

Drop upstreamed patch.

Update the licensing information: new license files have been added in a
sub-directory, and the top-level COPYING now only references those two
(rather than being the actual text of the GPL-2).

Use two spaces in hash file.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
[yann.morin.1998@free.fr:
  - keep using a git clone
  - unbreak the build:
    - use the default make target rule, or the plugins and python
      bindings be built at install time, with the host compiler
    - use the default install target rule
  - expand commit log:
    - detail buildsystem issues
  - add new license files and their hashes
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
package/trace-cmd/0001-trace-listen-add-missing-header.patch [deleted file]
package/trace-cmd/trace-cmd.hash
package/trace-cmd/trace-cmd.mk

diff --git a/package/trace-cmd/0001-trace-listen-add-missing-header.patch b/package/trace-cmd/0001-trace-listen-add-missing-header.patch
deleted file mode 100644 (file)
index 350e523..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From c68c868b573acc73e144312326750be2ed96632f Mon Sep 17 00:00:00 2001
-From: Baruch Siach <baruch@tkos.co.il>
-Date: Thu, 29 Jun 2017 14:43:19 +0300
-Subject: [PATCH] trace-listen: add missing header
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The PATH_MAX macro requires the limits.h header. This fixes build with musl
-libc:
-
-.../trace-cmd-trace-cmd-v2.6.1/trace-listen.c: In function ‘make_pid_name’:
-.../trace-cmd-trace-cmd-v2.6.1/trace-listen.c:167:16: error: ‘PATH_MAX’ undeclared (first use in this function)
-  snprintf(buf, PATH_MAX, VAR_RUN_DIR "/trace-cmd-net.pid");
-                ^~~~~~~~
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
-Upstream status: https://lkml.org/lkml/2017/6/29/286
-
- trace-listen.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/trace-listen.c b/trace-listen.c
-index 17ff9d8c160c..838d6bcf3649 100644
---- a/trace-listen.c
-+++ b/trace-listen.c
-@@ -31,6 +31,7 @@
- #include <fcntl.h>
- #include <signal.h>
- #include <errno.h>
-+#include <limits.h>
- #include "trace-local.h"
- #include "trace-msg.h"
--- 
-2.11.0
-
index c6447f34d41e24706e253924480e55e8b096a1cb..3f17e94020ab1afaf521305f33c0803ead075b75 100644 (file)
@@ -1,4 +1,6 @@
 # Locally computed
-sha256 3b3f564cc6ee30341051ccb7589b42f3abe4e676a21c029c7c127c7edf5bdcf0  trace-cmd-trace-cmd-v2.7.tar.gz
-sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6  COPYING
-sha256 70f297763149e72306919c924e164f83041d5e512868d4c8c1826c171b3e49f9  COPYING.LIB
+sha256  f7d591ac13ac3de004aa69fa3c2d333f620bb29ad0fec064ec215f488588b333  trace-cmd-trace-cmd-v2.9.1.tar.gz
+sha256  b1d04b850c1c7471b0f0896f6c6f0fcfc9f07e2dd183a5f5826af269fe9e88fb  COPYING
+sha256  70f297763149e72306919c924e164f83041d5e512868d4c8c1826c171b3e49f9  COPYING.LIB
+sha256  f6b78c087c3ebdf0f3c13415070dd480a3f35d8fc76f3d02180a407c1c812f79  LICENSES/GPL-2.0
+sha256  0b9a4febcdee6de55872501d5c1a8f5d8b0d1650cd4d5351995ceb22e889f8ca  LICENSES/LGPL-2.1
index dfca6a170d7626184006a653820f697d0ece332b..ffaf93a7cd3702d5ab1ee9e573cb119f473b57ef 100644 (file)
@@ -4,14 +4,15 @@
 #
 ################################################################################
 
-TRACE_CMD_VERSION = trace-cmd-v2.7
-TRACE_CMD_SITE = https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
+TRACE_CMD_VERSION = trace-cmd-v2.9.1
+TRACE_CMD_SITE = https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git
 TRACE_CMD_SITE_METHOD = git
 TRACE_CMD_INSTALL_STAGING = YES
 TRACE_CMD_LICENSE = GPL-2.0, LGPL-2.1
-TRACE_CMD_LICENSE_FILES = COPYING COPYING.LIB
+TRACE_CMD_LICENSE_FILES = COPYING COPYING.LIB LICENSES/GPL-2.0 LICENSES/LGPL-2.1
 
 TRACE_CMD_DEPENDENCIES = host-pkgconf
+TRACE_CMD_MAKE_OPTS = prefix=/usr etcdir=/etc
 
 ifeq ($(BR2_PACKAGE_AUDIT),y)
 TRACE_CMD_DEPENDENCIES += audit
@@ -19,10 +20,10 @@ endif
 
 ifeq ($(BR2_PACKAGE_PYTHON),y)
 TRACE_CMD_DEPENDENCIES += python host-swig
-TRACE_CMD_MAKE_OPTS = PYTHON_VERS=python
+TRACE_CMD_MAKE_OPTS += PYTHON_VERS=python
 else ifeq ($(BR2_PACKAGE_PYTHON3),y)
 TRACE_CMD_DEPENDENCIES += python3 host-swig
-TRACE_CMD_MAKE_OPTS = PYTHON_VERS=python3
+TRACE_CMD_MAKE_OPTS += PYTHON_VERS=python3
 else
 TRACE_CMD_MAKE_OPTS += NO_PYTHON=1
 endif
@@ -37,17 +38,18 @@ TRACE_CMD_CFLAGS = $(filter-out -D_LARGEFILE64_SOURCE,$(TARGET_CFLAGS))
 TRACE_CMD_CPPFLAGS = $(filter-out -D_LARGEFILE64_SOURCE,$(TARGET_CPPFLAGS))
 
 define TRACE_CMD_BUILD_CMDS
-       $(MAKE) $(TARGET_CONFIGURE_OPTS) \
-               CFLAGS="$(TRACE_CMD_CFLAGS)" \
-               CPPFLAGS="$(TRACE_CMD_CPPFLAGS)" \
-               $(TRACE_CMD_MAKE_OPTS) \
-               -C $(@D) all
+       $(TARGET_CONFIGURE_OPTS) \
+       CFLAGS="$(TRACE_CMD_CFLAGS)" \
+       CPPFLAGS="$(TRACE_CMD_CPPFLAGS)" \
+       $(MAKE) $(TRACE_CMD_MAKE_OPTS) -C $(@D)
 endef
 
 define TRACE_CMD_INSTALL_TARGET_CMDS
-       $(INSTALL) -D -m 0755 $(@D)/trace-cmd $(TARGET_DIR)/usr/bin/trace-cmd
-       $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/trace-cmd/plugins
-       $(INSTALL) -D -m 0755 $(@D)/plugin_*.so $(TARGET_DIR)/usr/lib/trace-cmd/plugins
+       $(TARGET_CONFIGURE_OPTS) \
+       CFLAGS="$(TRACE_CMD_CFLAGS)" \
+       CPPFLAGS="$(TRACE_CMD_CPPFLAGS)" \
+       DESTDIR=$(TARGET_DIR) \
+       $(MAKE) $(TRACE_CMD_MAKE_OPTS) -C $(@D) install
 endef
 
 $(eval $(generic-package))