diff options
Diffstat (limited to 'meta/recipes-kernel/systemtap/systemtap_git.bb')
-rw-r--r-- | meta/recipes-kernel/systemtap/systemtap_git.bb | 78 |
1 files changed, 59 insertions, 19 deletions
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.bb b/meta/recipes-kernel/systemtap/systemtap_git.bb index 6ee3e1c0f7..68f5c76428 100644 --- a/meta/recipes-kernel/systemtap/systemtap_git.bb +++ b/meta/recipes-kernel/systemtap/systemtap_git.bb @@ -1,9 +1,15 @@ SUMMARY = "Script-directed dynamic tracing and performance analysis tool for Linux" +DESCRIPTION = "It provides free software infrastructure to simplify the \ +gathering of information about the running Linux system. This assists \ +diagnosis of a performance or functional problem." HOMEPAGE = "https://sourceware.org/systemtap/" require systemtap_git.inc -SRC_URI += "file://0001-improve-reproducibility-for-c-compiling.patch" +SRC_URI += " \ + file://0001-improve-reproducibility-for-c-compiling.patch \ + file://0001-staprun-address-ncurses-6.3-failures.patch \ + " DEPENDS = "elfutils" @@ -18,46 +24,80 @@ STAP_DOCS ?= "--disable-docs --disable-publican --disable-refdocs" EXTRA_OECONF += "${STAP_DOCS} " -PACKAGECONFIG ??= "translator sqlite monitor python3-probes" -PACKAGECONFIG[translator] = "--enable-translator,--disable-translator,boost,python3-core bash perl" +PACKAGECONFIG ??= "translator sqlite monitor python3-probes ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod', d)}" +PACKAGECONFIG[translator] = "--enable-translator,--disable-translator,boost,bash" PACKAGECONFIG[libvirt] = "--enable-libvirt,--disable-libvirt,libvirt" PACKAGECONFIG[sqlite] = "--enable-sqlite,--disable-sqlite,sqlite3" PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor,ncurses json-c" PACKAGECONFIG[python3-probes] = "--with-python3-probes,--without-python3-probes,python3-setuptools-native" +PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod" -inherit autotools gettext pkgconfig distutils3-base systemd +inherit autotools gettext pkgconfig systemd +inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python3-probes', 'setuptools3-base', '', d)} -PACKAGES =+ "${PN}-exporter" +# | ../git/elaborate.cxx:2601:21: error: storing the address of local variable 'sym' in '*s.systemtap_session::symbol_resolver' [-Werror=dangling-pointer=] +CXXFLAGS += "-Wno-dangling-pointer" -FILES_${PN}-exporter = "${sysconfdir}/stap-exporter/* \ +# exporter comes with python3-probes +PACKAGES =+ "${PN}-exporter" +FILES:${PN}-exporter = "${sysconfdir}/stap-exporter/* \ ${sysconfdir}/sysconfig/stap-exporter \ - ${systemd_unitdir}/system/stap-exporter.service \ + ${systemd_system_unitdir}/stap-exporter.service \ ${sbindir}/stap-exporter" - -RDEPENDS_${PN}-exporter = "${PN} python3-core python3-netclient" - -SYSTEMD_SERVICE_${PN}-exporter = "stap-exporter.service" - -do_configure_prepend () { +RDEPENDS:${PN}-exporter = "${PN} python3-core python3-netclient" +SYSTEMD_SERVICE:${PN}-exporter = "stap-exporter.service" + +PACKAGES =+ "${PN}-runtime" +FILES:${PN}-runtime = "\ + ${bindir}/staprun \ + ${bindir}/stap-merge \ + ${bindir}/stapsh \ + ${libexecdir}/${BPN}/stapio \ +" +RDEPENDS:${PN}:class-target += "${PN}-runtime" + +PACKAGES =+ "${PN}-examples" +FILES:${PN}-examples = "${datadir}/${BPN}/examples/" +RDEPENDS:${PN}-examples += "${PN}" + +# don't complain that some examples involve bash, perl, php... +INSANE_SKIP:${PN}-examples += "file-rdeps" + +PACKAGES =+ "${PN}-python" +FILES:${PN}-python += "\ + ${bindir}/dtrace \ + ${libdir}/python*/ \ + ${libexecdir}/${BPN}/python/ \ +" +# python material requires sdt headers +RDEPENDS:${PN}-python += "${PN}-dev python3-core" +INSANE_SKIP:${PN}-python += "dev-deps" + +do_configure:prepend () { # Improve reproducibility for c++ object files reltivepath="${@os.path.relpath(d.getVar('STAGING_INCDIR'), d.getVar('S'))}" sed -i "s:@RELATIVE_STAGING_INCDIR@:$reltivepath:g" ${S}/stringtable.h } -do_install_append () { +do_install:append () { if [ ! -f ${D}${bindir}/stap ]; then # translator disabled case, need to leave only minimal runtime rm -rf ${D}${datadir}/${PN} rm ${D}${libexecdir}/${PN}/stap-env fi - # Fix makefile hardcoded path assumptions for systemd (assumes $prefix) - install -d `dirname ${D}${systemd_unitdir}` - mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}` - rmdir ${D}${prefix}/lib --ignore-fail-on-non-empty + if [ -d ${D}${prefix}/lib/systemd -a ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then + # Fix makefile hardcoded path assumptions for systemd (assumes $prefix) + # without usrmerge distro feature enabled + install -d `dirname ${D}${systemd_unitdir}` + mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}` + rmdir ${D}${prefix}/lib --ignore-fail-on-non-empty + fi # Ensure correct ownership for files copied in - chown root:root ${D}${sysconfdir}/stap-exporter/* -R + if [ -d ${D}${sysconfdir}/stap-exporter ]; then + chown root:root ${D}${sysconfdir}/stap-exporter/* -R + fi } BBCLASSEXTEND = "nativesdk" |