commit:     13a95ec5a587ca4db5f699e873b36efcb5d60979
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Mon Jul 15 18:11:58 2019 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Mon Jul 15 18:11:58 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13a95ec5

dev-util/trace-cmd: Version bump to 2.8, update 9999

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 dev-util/trace-cmd/Manifest                        |   1 +
 .../trace-cmd-2.8-python-pkgconfig-name.patch      |  27 +++++
 .../files/trace-cmd-2.8-python3-warnings.patch     | 111 +++++++++++++++++++++
 .../trace-cmd/files/trace-cmd-2.8-soname.patch     |  13 +++
 dev-util/trace-cmd/trace-cmd-2.8.ebuild            | 110 ++++++++++++++++++++
 dev-util/trace-cmd/trace-cmd-9999.ebuild           |  59 ++++++++---
 6 files changed, 305 insertions(+), 16 deletions(-)

diff --git a/dev-util/trace-cmd/Manifest b/dev-util/trace-cmd/Manifest
index 5c3fead0ec3..8aabb8d3f87 100644
--- a/dev-util/trace-cmd/Manifest
+++ b/dev-util/trace-cmd/Manifest
@@ -1 +1,2 @@
 DIST trace-cmd-v2.7.tar.gz 1865571 BLAKE2B 
e0df57c78c6505c856381f17cfdecdaa7a4441eee4cfc57af4fff79a0157ca7aa7c76a81428ddf8d9d00d6bb0a5391b99d4bb5f92fadc7e4062a0181facb2cc9
 SHA512 
e507eb6609f1fd3dddec541e9f69c466f4f3f66c28f0a7f4292615e3984cebaaf42725f3d82b8c625e5c60977d1f9b5e96cce7664b951eb5f99b955cc440efe4
+DIST trace-cmd-v2.8.tar.gz 1996407 BLAKE2B 
6a9a0b221418d448f5af5508bf8acf0baca08e0cdd8c1a835a06d26f5f729608d6988f7ed83ccdc9e117ade19893fa32c2400a61c2d396804cd042bc25cd498a
 SHA512 
0675c057e78878a0f56ee69edfe7ab4b771fd5346920fcd3ad4af777180fae311cc369dc3faa6cd49d30664401497d20e45a0cf1914805139116e3be8587e0a7

diff --git a/dev-util/trace-cmd/files/trace-cmd-2.8-python-pkgconfig-name.patch 
b/dev-util/trace-cmd/files/trace-cmd-2.8-python-pkgconfig-name.patch
new file mode 100644
index 00000000000..17c2e693f1c
--- /dev/null
+++ b/dev-util/trace-cmd/files/trace-cmd-2.8-python-pkgconfig-name.patch
@@ -0,0 +1,27 @@
+diff --git a/Makefile b/Makefile
+index d34c615..7931c88 100644
+--- a/Makefile
++++ b/Makefile
+@@ -115,9 +115,10 @@ PYTHON            := ctracecmd.so
+ PYTHON_GUI    := ctracecmd.so ctracecmdgui.so
+ 
+ PYTHON_VERS ?= python
++PYTHON_PKGCONFIG_VERS ?= $(PYTHON_VERS)
+ 
+ # Can build python?
+-ifeq ($(shell sh -c "pkg-config --cflags $(PYTHON_VERS) > /dev/null 2>&1 && 
echo y"), y)
++ifeq ($(shell sh -c "pkg-config --cflags $(PYTHON_PKGCONFIG_VERS) > /dev/null 
2>&1 && echo y"), y)
+       PYTHON_PLUGINS := plugin_python.so
+       BUILD_PYTHON := $(PYTHON) $(PYTHON_PLUGINS)
+       BUILD_PYTHON_WORKS := 1
+@@ -372,8 +373,8 @@ report_nopythondev: force
+       $(Q)echo
+ 
+ ifndef NO_PYTHON
+-PYTHON_INCLUDES = `pkg-config --cflags $(PYTHON_VERS)`
+-PYTHON_LDFLAGS = `pkg-config --libs $(PYTHON_VERS)` \
++PYTHON_INCLUDES = `pkg-config --cflags $(PYTHON_PKGCONFIG_VERS)`
++PYTHON_LDFLAGS = `pkg-config --libs $(PYTHON_PKGCONFIG_VERS)` \
+               $(shell $(PYTHON_VERS)-config --ldflags)
+ PYGTK_CFLAGS = `pkg-config --cflags pygtk-2.0`
+ else

diff --git a/dev-util/trace-cmd/files/trace-cmd-2.8-python3-warnings.patch 
b/dev-util/trace-cmd/files/trace-cmd-2.8-python3-warnings.patch
new file mode 100644
index 00000000000..d66ee35accf
--- /dev/null
+++ b/dev-util/trace-cmd/files/trace-cmd-2.8-python3-warnings.patch
@@ -0,0 +1,111 @@
+diff --git a/plugins/plugin_python.c b/plugins/plugin_python.c
+index e725ad8..196b825 100644
+--- a/plugins/plugin_python.c
++++ b/plugins/plugin_python.c
+@@ -81,7 +81,7 @@ int TEP_PLUGIN_LOADER(struct tep_handle *pevent)
+       } else
+               Py_DECREF(res);
+ 
+-      str = PyString_FromString("pevent");
++      str = PyUnicode_FromString("pevent");
+       if (!str)
+               return -ENOMEM;
+ 
+diff --git a/python/ctracecmd.i b/python/ctracecmd.i
+index 65a3d51..031e462 100644
+--- a/python/ctracecmd.i
++++ b/python/ctracecmd.i
+@@ -16,6 +16,7 @@
+ %{
+ #include "trace-cmd.h"
+ #include "event-utils.h"
++#include <Python.h>
+ %}
+ 
+ 
+@@ -108,7 +109,7 @@ static PyObject *py_field_get_stack(struct tep_handle 
*pevent,
+                   ((int)addr == -1))
+                       break;
+               func = tep_find_function(event->tep, addr);
+-              if (PyList_Append(list, PyString_FromString(func))) {
++              if (PyList_Append(list, PyUnicode_FromString(func))) {
+                       Py_DECREF(list);
+                       return NULL;
+               }
+@@ -137,10 +138,10 @@ static PyObject *py_field_get_data(struct 
tep_format_field *f, struct tep_record
+               offset = val & 0xffff;
+               len = val >> 16;
+ 
+-              return PyBuffer_FromMemory((char *)r->data + offset, len);
++              return PyMemoryView_FromMemory((char *)r->data + offset, len, 
PyBUF_READ);
+       }
+ 
+-      return PyBuffer_FromMemory((char *)r->data + f->offset, f->size);
++      return PyMemoryView_FromMemory((char *)r->data + f->offset, f->size, 
PyBUF_READ);
+ }
+ 
+ static PyObject *py_field_get_str(struct tep_format_field *f, struct 
tep_record *r)
+@@ -162,10 +163,10 @@ static PyObject *py_field_get_str(struct 
tep_format_field *f, struct tep_record
+                */
+               offset = val & 0xffff;
+ 
+-              return PyString_FromString((char *)r->data + offset);
++              return PyUnicode_FromString((char *)r->data + offset);
+       }
+ 
+-      return PyString_FromStringAndSize((char *)r->data + f->offset,
++      return PyUnicode_FromStringAndSize((char *)r->data + f->offset,
+                               strnlen((char *)r->data + f->offset, f->size));
+ }
+ 
+@@ -177,7 +178,7 @@ static PyObject *py_format_get_keys(struct tep_event *ef)
+       list = PyList_New(0);
+ 
+       for (f = ef->format.fields; f; f = f->next) {
+-              if (PyList_Append(list, PyString_FromString(f->name))) {
++              if (PyList_Append(list, PyUnicode_FromString(f->name))) {
+                       Py_DECREF(list);
+                       return NULL;
+               }
+@@ -210,14 +211,14 @@ static int python_callback(struct trace_seq *s,
+       result = PyEval_CallObject(context, arglist);
+       Py_XDECREF(arglist);
+       if (result && result != Py_None) {
+-              if (!PyInt_Check(result)) {
++              if (!PyLong_Check(result)) {
+                       PyErr_SetString(PyExc_TypeError,
+                                       "callback must return int");
+                       PyErr_Print();
+                       Py_XDECREF(result);
+                       return 0;
+               }
+-              r = PyInt_AS_LONG(result);
++              r = PyLong_AsLong(result);
+       } else if (result == Py_None)
+               r = 0;
+       else
+diff --git a/python/ctracecmdgui.i b/python/ctracecmdgui.i
+index 1dcdab0..8ca38f7 100644
+--- a/python/ctracecmdgui.i
++++ b/python/ctracecmdgui.i
+@@ -7,6 +7,7 @@
+ #include <pygobject.h>
+ #include <pyglib.h>
+ #include <Python.h>
++#include <memoryobject.h>
+ 
+ extern GtkTreeModel *trace_view_store_as_gtk_tree_model(struct 
trace_view_store *store);
+ 
+@@ -37,10 +38,10 @@ pytype_from_gtype(GType gtype)
+ 
+ /* help swig cope with g* types */
+ %typemap(in) gint {
+-    $1 = PyInt_AsLong($input);
++    $1 = PyLong_AsLong($input);
+ }
+ %typemap(out) gint {
+-    $result = PyInt_FromLong($1);
++    $result = PyLong_FromLong($1);
+ }
+ %typemap(in) guint {
+     $1 = PyLong_AsUnsignedLong($input);

diff --git a/dev-util/trace-cmd/files/trace-cmd-2.8-soname.patch 
b/dev-util/trace-cmd/files/trace-cmd-2.8-soname.patch
new file mode 100644
index 00000000000..523f2d44467
--- /dev/null
+++ b/dev-util/trace-cmd/files/trace-cmd-2.8-soname.patch
@@ -0,0 +1,13 @@
+diff --git a/scripts/utils.mk b/scripts/utils.mk
+index 260023a..9eb127d 100644
+--- a/scripts/utils.mk
++++ b/scripts/utils.mk
+@@ -54,7 +54,7 @@ do_build_static_lib =                                \
+ 
+ do_compile_shared_library =                   \
+       ($(print_shared_lib_compile)            \
+-      $(CC) --shared $^ -o $@)
++      $(CC) --shared $^ -Wl,-soname,$@ -o $@)
+ 
+ do_compile_plugin_obj =                               \
+       ($(print_plugin_obj_compile)            \

diff --git a/dev-util/trace-cmd/trace-cmd-2.8.ebuild 
b/dev-util/trace-cmd/trace-cmd-2.8.ebuild
new file mode 100644
index 00000000000..33ae834f1ac
--- /dev/null
+++ b/dev-util/trace-cmd/trace-cmd-2.8.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 python3_{6,7} )
+DISTUTILS_OPTIONAL=1
+
+inherit linux-info python-r1 toolchain-funcs
+
+DESCRIPTION="User-space front-end for Ftrace"
+HOMEPAGE="https://git.kernel.org/cgit/linux/kernel/git/rostedt/trace-cmd.git";
+
+if [[ ${PV} == *9999 ]] ; then
+       
EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/${PN}.git";
+       inherit git-r3
+else
+       
SRC_URI="https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/snapshot/${PN}-v${PV}.tar.gz";
+       KEYWORDS="~amd64 ~x86"
+       S="${WORKDIR}/${PN}-v${PV}"
+fi
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0"
+IUSE="+audit doc python udis86"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="audit? ( sys-process/audit )
+       python? ( ${PYTHON_DEPS} )
+       udis86? ( dev-libs/udis86 )"
+DEPEND="${RDEPEND}
+       sys-kernel/linux-headers
+       python? (
+               virtual/pkgconfig
+               dev-lang/swig
+       )
+
+       doc? ( app-text/asciidoc )"
+
+CONFIG_CHECK="
+       ~TRACING
+       ~FTRACE
+       ~BLK_DEV_IO_TRACE"
+
+PATCHES=(
+       "${FILESDIR}/trace-cmd-2.7-makefile.patch"
+       "${FILESDIR}/trace-cmd-2.8-python-pkgconfig-name.patch"
+       "${FILESDIR}/trace-cmd-2.8-soname.patch"
+)
+
+pkg_setup() {
+       linux-info_pkg_setup
+}
+
+src_configure() {
+       EMAKE_FLAGS=(
+               "prefix=/usr"
+               "libdir=/usr/$(get_libdir)"
+               "CC=$(tc-getCC)"
+               "AR=$(tc-getAR)"
+               $(usex audit '' '' '' 'NO_AUDIT=1')
+               $(usex udis86 '' '' '' 'NO_UDIS86=1')
+               VERBOSE=1
+       )
+}
+
+src_compile() {
+       emake "${EMAKE_FLAGS[@]}" NO_PYTHON=1 \
+               trace-cmd libs
+
+       if use python; then
+               python_copy_sources
+               python_foreach_impl python_compile
+       fi
+
+       use doc && emake doc
+}
+
+python_compile() {
+       pushd "${BUILD_DIR}" > /dev/null || die
+       python_is_python3 && eapply 
"${FILESDIR}/trace-cmd-2.8-python3-warnings.patch"
+
+       emake "${EMAKE_FLAGS[@]}" \
+               PYTHON_VERS="${EPYTHON}" \
+               PYTHON_PKGCONFIG_VERS="${EPYTHON//python/python-}" \
+               python_dir=$(python_get_sitedir)/${PN} \
+               python python-plugin
+
+       popd > /dev/null || die
+}
+
+src_install() {
+       emake "${EMAKE_FLAGS[@]}" NO_PYTHON=1 \
+               DESTDIR="${D}" \
+               install install_libs
+
+       use doc && emake DESTDIR="${D}" install_doc
+       use python && python_foreach_impl python_install
+}
+
+python_install() {
+       pushd "${BUILD_DIR}" > /dev/null || die
+
+       emake "${EMAKE_FLAGS[@]}" DESTDIR="${D}" \
+               PYTHON_VERS="${EPYTHON}" \
+               PYTHON_PKGCONFIG_VERS="${EPYTHON//python/python-}" \
+               python_dir=$(python_get_sitedir)/${PN} \
+               install_python
+
+       popd > /dev/null || die
+}

diff --git a/dev-util/trace-cmd/trace-cmd-9999.ebuild 
b/dev-util/trace-cmd/trace-cmd-9999.ebuild
index 27b25b7f121..33ae834f1ac 100644
--- a/dev-util/trace-cmd/trace-cmd-9999.ebuild
+++ b/dev-util/trace-cmd/trace-cmd-9999.ebuild
@@ -2,9 +2,10 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
-PYTHON_COMPAT=(python2_7)
+PYTHON_COMPAT=( python2_7 python3_{6,7} )
+DISTUTILS_OPTIONAL=1
 
-inherit linux-info python-single-r1 toolchain-funcs
+inherit linux-info python-r1 toolchain-funcs
 
 DESCRIPTION="User-space front-end for Ftrace"
 HOMEPAGE="https://git.kernel.org/cgit/linux/kernel/git/rostedt/trace-cmd.git";
@@ -13,7 +14,7 @@ if [[ ${PV} == *9999 ]] ; then
        
EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/${PN}.git";
        inherit git-r3
 else
-       
SRC_URI="https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/${PN}.git/snapshot/${PN}-v${PV}.tar.gz";
+       
SRC_URI="https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/snapshot/${PN}-v${PV}.tar.gz";
        KEYWORDS="~amd64 ~x86"
        S="${WORKDIR}/${PN}-v${PV}"
 fi
@@ -41,13 +42,13 @@ CONFIG_CHECK="
        ~BLK_DEV_IO_TRACE"
 
 PATCHES=(
-       "${FILESDIR}"/trace-cmd-2.7-makefile.patch
-       "${FILESDIR}"/trace-cmd-2.7-soname.patch
+       "${FILESDIR}/trace-cmd-2.7-makefile.patch"
+       "${FILESDIR}/trace-cmd-2.8-python-pkgconfig-name.patch"
+       "${FILESDIR}/trace-cmd-2.8-soname.patch"
 )
 
 pkg_setup() {
        linux-info_pkg_setup
-       use python && python-single-r1_pkg_setup
 }
 
 src_configure() {
@@ -58,26 +59,52 @@ src_configure() {
                "AR=$(tc-getAR)"
                $(usex audit '' '' '' 'NO_AUDIT=1')
                $(usex udis86 '' '' '' 'NO_UDIS86=1')
+               VERBOSE=1
        )
+}
+
+src_compile() {
+       emake "${EMAKE_FLAGS[@]}" NO_PYTHON=1 \
+               trace-cmd libs
 
        if use python; then
-               EMAKE_FLAGS+=(
-                       "PYTHON_VERS=${EPYTHON//python/python-}"
-                       "python_dir=$(python_get_sitedir)/${PN}"
-               )
-       else
-               EMAKE_FLAGS+=("NO_PYTHON=1")
+               python_copy_sources
+               python_foreach_impl python_compile
        fi
-}
 
-src_compile() {
-       emake "${EMAKE_FLAGS[@]}" all_cmd libs
        use doc && emake doc
+}
 
+python_compile() {
+       pushd "${BUILD_DIR}" > /dev/null || die
+       python_is_python3 && eapply 
"${FILESDIR}/trace-cmd-2.8-python3-warnings.patch"
+
+       emake "${EMAKE_FLAGS[@]}" \
+               PYTHON_VERS="${EPYTHON}" \
+               PYTHON_PKGCONFIG_VERS="${EPYTHON//python/python-}" \
+               python_dir=$(python_get_sitedir)/${PN} \
+               python python-plugin
+
+       popd > /dev/null || die
 }
 
 src_install() {
-       emake "${EMAKE_FLAGS[@]}" DESTDIR="${D}" V=1 install install_libs
+       emake "${EMAKE_FLAGS[@]}" NO_PYTHON=1 \
+               DESTDIR="${D}" \
+               install install_libs
+
        use doc && emake DESTDIR="${D}" install_doc
+       use python && python_foreach_impl python_install
+}
+
+python_install() {
+       pushd "${BUILD_DIR}" > /dev/null || die
+
+       emake "${EMAKE_FLAGS[@]}" DESTDIR="${D}" \
+               PYTHON_VERS="${EPYTHON}" \
+               PYTHON_PKGCONFIG_VERS="${EPYTHON//python/python-}" \
+               python_dir=$(python_get_sitedir)/${PN} \
+               install_python
 
+       popd > /dev/null || die
 }

Reply via email to