[meta-virtualization] [PATCH] lxc: logs: use base filenames when reporting src files

Bruce Ashfield bruce.ashfield at gmail.com
Fri Oct 2 06:08:58 PDT 2015


On Tue, Sep 29, 2015 at 4:25 PM, Jim Somerville
<Jim.Somerville at windriver.com> wrote:
> Problem:  Logs are nice in that they report the source file,
> routine, and line number where an issue occurs.  But the
> file is printed as the absolute filename.  Users do not
> need to see a long spew of path directory names where the package
> just happened to have been built on some host somewhere.  It
> can be confusing to anyone other than the developer.
>
> Solution:  Introduce a configure option to chop off all leading
> directories so that just the source filename ie. basename is printed.
>
> [ Upstream status:  Not needed.  These absolute filenames are a
>   consequence of poky/bitbake feeding the absolute filenames to
>   the compiler.  If you build lxc outside of poky/bitbake, just
>   the basenames are fed to the compiler. ]

merged.

Bruce

>
> Signed-off-by: Jim Somerville <Jim.Somerville at windriver.com>
> ---
>  ...ally-use-base-filenames-to-report-src-fil.patch | 70 ++++++++++++++++++++++
>  recipes-containers/lxc/lxc_1.1.3.bb                |  3 +
>  2 files changed, 73 insertions(+)
>  create mode 100644 recipes-containers/lxc/files/logs-optionally-use-base-filenames-to-report-src-fil.patch
>
> diff --git a/recipes-containers/lxc/files/logs-optionally-use-base-filenames-to-report-src-fil.patch b/recipes-containers/lxc/files/logs-optionally-use-base-filenames-to-report-src-fil.patch
> new file mode 100644
> index 0000000..583b6f1
> --- /dev/null
> +++ b/recipes-containers/lxc/files/logs-optionally-use-base-filenames-to-report-src-fil.patch
> @@ -0,0 +1,70 @@
> +From 4729d0f4c4d1dacd150ddfd7061dda875eb94e34 Mon Sep 17 00:00:00 2001
> +Message-Id: <4729d0f4c4d1dacd150ddfd7061dda875eb94e34.1443216870.git.Jim.Somerville at windriver.com>
> +From: Jim Somerville <Jim.Somerville at windriver.com>
> +Date: Fri, 25 Sep 2015 15:08:17 -0400
> +Subject: [PATCH 1/1] logs: optionally use base filenames to report src files
> +
> +Problem:  Logs are nice in that they report the source file,
> +routine, and line number where an issue occurs.  But the
> +file is printed as the absolute filename.  Users do not
> +need to see a long spew of path directory names where the package
> +was built.  It just confuses things.
> +
> +Solution:  Optionally chop off all leading directories so that just
> +the source filename ie. basename is printed.  This is done by
> +setting a #ifdef LXC_LOG_USE_BASENAME check in the code.  That
> +define is done via the optional --enable-log-src-basename provided
> +at configure time.
> +
> +Using __BASE_FILE__ instead of __FILE__ did not work.  It
> +refers to the file name as presented to the compile
> +machinery, and that may still be the absolute pathname to
> +the file.
> +
> +Signed-off-by: Jim Somerville <Jim.Somerville at windriver.com>
> +---
> + configure.ac  | 9 +++++++++
> + src/lxc/log.h | 5 +++++
> + 2 files changed, 14 insertions(+)
> +
> +diff --git a/configure.ac b/configure.ac
> +index deba90b..c1ed67b 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -357,6 +357,15 @@ AM_COND_IF([ENABLE_PYTHON],
> +       PKG_CHECK_MODULES([PYTHONDEV], [python3 >= 3.2],[],[AC_MSG_ERROR([You must install python3-dev])])
> +       AC_DEFINE_UNQUOTED([ENABLE_PYTHON], 1, [Python3 is available])])
> +
> ++# Enable basenames in the logs for source files
> ++AC_ARG_ENABLE([log-src-basename],
> ++      [AC_HELP_STRING([--enable-log-src-basename], [Use the shorter source file basename in the logs [default=no]])],
> ++      [], [enable_log_src_basename=no])
> ++
> ++if test "x$enable_log_src_basename" = "xyes"; then
> ++      AC_DEFINE([LXC_LOG_USE_BASENAME], 1, [Enabling shorter src filenames in the logs])
> ++fi
> ++
> + # Enable dumping stack traces
> + AC_ARG_ENABLE([mutex-debugging],
> +       [AC_HELP_STRING([--enable-mutex-debugging], [Makes mutexes to report error and provide stack trace [default=no]])],
> +diff --git a/src/lxc/log.h b/src/lxc/log.h
> +index 76bd4df..4365977 100644
> +--- a/src/lxc/log.h
> ++++ b/src/lxc/log.h
> +@@ -74,8 +74,13 @@ struct lxc_log_locinfo {
> +       int             line;
> + };
> +
> ++#ifdef LXC_LOG_USE_BASENAME
> ++#define LXC_LOG_LOCINFO_INIT                                          \
> ++      { .file = (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__), .func = __func__, .line = __LINE__  }
> ++#else
> + #define LXC_LOG_LOCINFO_INIT                                          \
> +       { .file = __FILE__, .func = __func__, .line = __LINE__  }
> ++#endif
> +
> + /* brief logging event object */
> + struct lxc_log_event {
> +--
> +1.8.3.2
> +
> diff --git a/recipes-containers/lxc/lxc_1.1.3.bb b/recipes-containers/lxc/lxc_1.1.3.bb
> index d1e80c4..e61aa6d 100644
> --- a/recipes-containers/lxc/lxc_1.1.3.bb
> +++ b/recipes-containers/lxc/lxc_1.1.3.bb
> @@ -33,6 +33,7 @@ SRC_URI = "http://linuxcontainers.org/downloads/${BPN}-${PV}.tar.gz \
>         file://lxc-busybox-add-OpenSSH-support.patch \
>         file://make-some-OpenSSH-tools-optional.patch \
>         file://lxc-doc-upgrade-to-use-docbook-3.1-DTD.patch \
> +       file://logs-optionally-use-base-filenames-to-report-src-fil.patch \
>         "
>
>  SRC_URI[md5sum] = "197abb5a28ab0b689c737eb1951023fb"
> @@ -49,6 +50,8 @@ EXTRA_OECONF += "--with-init-script=\
>  ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit,', '', d)}\
>  ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
>
> +EXTRA_OECONF += "--enable-log-src-basename"
> +
>  PACKAGECONFIG ??= "templates \
>      ${@base_contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)} \
>  "
> --
> 1.8.3.2
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"


More information about the meta-virtualization mailing list