[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