Browse Source

bootchart2: Several fixes

Fixed Ross' comments:
* Add -n to gzip to make the resulting files reproducible, so we don't need to
  decompress them.

* Makefile: Let bootchartd.conf use EARLY_PREFIX, so that bootchartd.conf can
  install to correct location.

* Set MANDIR and DOCDIR to make the files install to correct location for
  bootchart2-native.

(From OE-Core rev: 5354966a92cd522a3312c870aefa239d5c564a9f)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Yang 6 months ago
parent
commit
6dd306b88d

+ 30 - 0
meta/recipes-devtools/bootchart2/bootchart2/0001-Makefile-Let-bootchartd.conf-use-EARLY_.patch

@@ -0,0 +1,30 @@
+From 0ba0986f1ebc5ac1ad0a3d51e8039dbdccb31c25 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 14 Nov 2024 07:33:56 +0000
+Subject: [PATCH 1/2] Makefile: Let bootchartd.conf use EARLY_PREFIX
+
+So that bootchartd.conf can install to correct location when cross build.
+
+Upstream-Status: Submitted [https://github.com/xrmx/bootchart/pull/105]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index b99b141..99a3ec7 100644
+--- a/Makefile
++++ b/Makefile
+@@ -100,7 +100,7 @@ install-chroot:
+ 
+ install-collector: all install-chroot
+ 	install -m 755 -D bootchartd $(DESTDIR)$(EARLY_PREFIX)/sbin/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX)
+-	install -m 644 -D bootchartd.conf $(DESTDIR)/etc/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX).conf
++	install -m 644 -D bootchartd.conf $(DESTDIR)$(EARLY_PREFIX)/etc/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX).conf
+ 	install -m 755 -D bootchart-collector $(DESTDIR)$(PKGLIBDIR)/$(PROGRAM_PREFIX)bootchart$(PROGRAM_SUFFIX)-collector
+ 
+ install-docs:
+-- 
+2.44.1
+

+ 37 - 0
meta/recipes-devtools/bootchart2/bootchart2/0002-Makefile-Add-n-to-gzip.patch

@@ -0,0 +1,37 @@
+From aec8c971e09a28a5f8cd655ccd2f0cf1b057d756 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 14 Nov 2024 07:35:11 +0000
+Subject: [PATCH 2/2] Makefile: Add -n to gzip
+
+To make the resulting files reproducible.
+
+-n --no-name
+    When compressing, do not save the original file name and timestamp by default.
+
+Upstream-Status: Submitted [https://github.com/xrmx/bootchart/pull/106]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 99a3ec7..87de486 100644
+--- a/Makefile
++++ b/Makefile
+@@ -107,9 +107,9 @@ install-docs:
+ 	install -m 644 -D README $(DESTDIR)$(DOCDIR)/README
+ 	install -m 644 -D README.pybootchart $(DESTDIR)$(DOCDIR)/README.pybootchart
+ 	mkdir -p $(DESTDIR)$(MANDIR)
+-	gzip -c bootchart2.1 > $(DESTDIR)$(MANDIR)/bootchart2.1.gz
+-	gzip -c bootchartd.1 > $(DESTDIR)$(MANDIR)/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX).1.gz
+-	gzip -c pybootchartgui.1 > $(DESTDIR)$(MANDIR)/pybootchartgui.1.gz
++	gzip -n -c bootchart2.1 > $(DESTDIR)$(MANDIR)/bootchart2.1.gz
++	gzip -n -c bootchartd.1 > $(DESTDIR)$(MANDIR)/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX).1.gz
++	gzip -n -c pybootchartgui.1 > $(DESTDIR)$(MANDIR)/pybootchartgui.1.gz
+ 
+ install-service:
+ 	mkdir -p $(DESTDIR)$(SYSTEMD_UNIT_DIR)
+-- 
+2.44.1
+

+ 9 - 3
meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb

@@ -94,6 +94,8 @@ SRC_URI = "git://github.com/xrmx/bootchart.git;branch=master;protocol=https \
            file://0001-collector-Allocate-space-on-heap-for-chunks.patch \
            file://0001-bootchartd.in-make-sure-only-one-bootchartd-process.patch \
            file://0001-Do-not-include-linux-fs.h.patch \
+           file://0001-Makefile-Let-bootchartd.conf-use-EARLY_.patch \
+           file://0002-Makefile-Add-n-to-gzip.patch \
           "
 
 S = "${WORKDIR}/git"
@@ -129,18 +131,22 @@ do_install () {
     export DESTDIR="${D}"
     export LIBDIR="/${baselib}"
     export EARLY_PREFIX="${root_prefix}"
+    export MANDIR="${mandir}/man1"
+    export DOCDIR="${docdir}"
 
     oe_runmake install NO_PYTHON_COMPILE=1
     install -d ${D}${sysconfdir}/init.d
     install -m 0755 ${UNPACKDIR}/bootchartd_stop.sh ${D}${sysconfdir}/init.d
 
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
+        mv ${D}${EARLY_PREFIX}${sysconfdir}/bootchartd.conf ${D}${sysconfdir}/bootchartd.conf
+        rmdir ${D}${EARLY_PREFIX}${sysconfdir}
+    fi
+
     echo 'EXIT_PROC="$EXIT_PROC matchbox-window-manager"' >> ${D}${sysconfdir}/bootchartd.conf
 
    # Use python 3 instead of python 2
    sed -i -e '1s,#!.*python.*,#!${USRBINPATH}/env python3,' ${D}${bindir}/pybootchartgui
-
-    # The timestamps embedded in compressed man pages is not reproducible
-    gzip -d ${D}${mandir}/man1/*.gz
 }
 
 PACKAGES =+ "pybootchartgui"