summaryrefslogtreecommitdiffstats
path: root/external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem')
-rw-r--r--external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch53
-rw-r--r--external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb43
2 files changed, 96 insertions, 0 deletions
diff --git a/external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch b/external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch
new file mode 100644
index 00000000..5c1be5a0
--- /dev/null
+++ b/external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch
@@ -0,0 +1,53 @@
+From 3ff78f1f00973393d1a7ee4e467a2bacf1c807f3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Wed, 5 Feb 2020 16:14:21 +0000
+Subject: [PATCH] smem: fix support for --source option (python3)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Using --source doesn't work without this patch:
+Traceback (most recent call last):
+ File "./smem", line 727, in <module>
+ showpids()
+ File "./smem", line 299, in showpids
+ showtable(pt.keys(), fields, columns.split(), options.sort or 'pss')
+ File "./smem", line 519, in showtable
+ mt = totalmem()
+ File "./smem", line 118, in totalmem
+ _totalmem = memory()['memtotal']
+ File "./smem", line 193, in memory
+ m = f.match(l)
+TypeError: cannot use a string pattern on a bytes-like object
+
+python3's tarfile returns bytes, whereas all of the rest of
+the code assumes str.
+
+Fix the tarfile usage to convert to str before returning the
+results.
+
+Signed-off-by: André Draszik <git@andred.net>
+Upstream-Status: Inappropriate [upstream wants to support python2 & python3]
+---
+ smem | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/smem b/smem
+index 46a3189..54d40dd 100755
+--- a/smem
++++ b/smem
+@@ -90,9 +90,9 @@ class tardata(procdata):
+ d,f = ti.name.split('/')
+ yield d
+ def _read(self, f):
+- return self.tar.extractfile(f).read()
++ return self.tar.extractfile(f).read().decode()
+ def _readlines(self, f):
+- return self.tar.extractfile(f).readlines()
++ return [l.decode() for l in self.tar.extractfile(f).readlines()]
+ def piduser(self, p):
+ t = self.tar.getmember("%d" % p)
+ if t.uname:
+--
+2.23.0.rc1
+
diff --git a/external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb b/external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb
new file mode 100644
index 00000000..90db9c3f
--- /dev/null
+++ b/external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Report application memory usage in a meaningful way"
+DESCRIPTION = "smem is a tool that can give numerous reports on memory usage on Linux \
+systems. Unlike existing tools, smem can report proportional set size (PSS), \
+which is a more meaningful representation of the amount of memory used by \
+libraries and applications in a virtual memory system."
+HOMEPAGE = "http://www.selenic.com/smem/"
+SECTION = "Applications/System"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+HG_CHANGESET = "98273ce331bb"
+SRC_URI = "https://selenic.com/repo/${BPN}/archive/${HG_CHANGESET}.tar.bz2;downloadfilename=${BP}.tar.bz2 \
+ file://0001-smem-fix-support-for-source-option-python3.patch"
+SRC_URI[md5sum] = "51c3989779360f42b42ef46b2831be3a"
+SRC_URI[sha256sum] = "161131c686a6d9962a0e96912526dd46308e022d62e3f8acaed5a56fda8e08ce"
+
+UPSTREAM_CHECK_URI = "https://selenic.com/repo/smem/tags"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/${BPN}-${HG_CHANGESET}"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} smemcap.c -o smemcap
+}
+
+do_install() {
+ install -d ${D}/${bindir}/
+ install -d ${D}/${mandir}/man8
+ install -m 0755 ${S}/smem ${D}${bindir}/
+ sed -i -e '1s,#!.*python.*,#!${USRBINPATH}/env python3,' ${D}${bindir}/smem
+ install -m 0755 ${S}/smemcap ${D}${bindir}/
+ install -m 0644 ${S}/smem.8 ${D}/${mandir}/man8/
+}
+
+RDEPENDS_${PN} = "python3-core python3-compression"
+RRECOMMENDS_${PN} = "python3-matplotlib python3-numpy"
+
+PACKAGE_BEFORE_PN = "smemcap"
+
+FILES_smemcap = "${bindir}/smemcap"
+
+BBCLASSEXTEND = "native"