Bug 9709 - systemtap has non-deterministic build dependencies
Summary: systemtap has non-deterministic build dependencies
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: devtools / tool chain (show other bugs)
Version: 2.1
Hardware: All Multiple
: Medium+ normal
Target Milestone: 2.2 M2
Assignee: Ross Burton
QA Contact: Libertad
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2016-06-05 21:35 UTC by Ross Burton
Modified: 2016-07-29 15:13 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ross Burton 2016-06-05 21:35:22 UTC
Do a rebuild of systemtap 3 with a clean sysroot and some runtime dependencies disappear:

packages/corei7-64-poky-linux/systemtap/systemtap: RDEPENDS: removed "ncurses-libtinfo (['>= 6.0+20160213']) ncurses-libncurses (['>= 6.0+20160213']) readline (['>= 6.3']) json-c (['>= 0.12'])"

(not sure why the sanity checks didn't catch this)
Comment 1 Ross Burton 2016-06-05 21:51:35 UTC
Interestingly json-c is an explicit DEPENDS and ncurses is somehow a task dependency as shown my adding some debugging:

WARNING: systemtap-3.0-r0 do_package_qa: got taskdeps {'gettext-native', 'readline-native', 'unifdef-native', 'gettext', 'gettext-minimal-native', 'readline', 'elfutils', 'gdbm', 'glibc', 'libmpc-native', 'texinfo-dummy-native', 'pkgconfig-native', 'binutils-cross-x86_64', 'gcc-runtime', 'python3', 'libtool', 'cryptodev-linux', 'systemd-systemctl-native', 'autoconf-native', 'acl-native', 'mpfr-native', 'pseudo-native', 'zlib-native', 'bison-native', 'xz-native', 'pigz-native', 'sqlite3-native', 'gcc-cross-initial-x86_64', 'libgcc-initial', 'linux-libc-headers', 'elfutils-native', 'libgcc', 'bash', 'bzip2', 'gcc-source-6.1.1', 'zlib', 'xz', 'python-native', 'expat-native', 'bzip2-native', 'prelink-native', 'quilt-native', 'systemtap', 'json-c', 'binutils-native', 'opkg-utils', 'gnu-config-native', 'systemtap-native', 'python3-native', 'automake-native', 'gmp-native', 'gperf-native', 'db', 'popt-native', 'openssl', 'libtool-cross', 'ncurses-native', 'libtool-native', 'libffi', 'openssl-native', 'attr-native', 'glibc-initial', 'ncurses', 'sqlite3', 'libpcre-native', 'rpm-native', 'byacc-native', 'gcc-cross-x86_64', 'flex-native', 'cryptodev-linux-native', 'file-native', 'ossp-uuid-native', 'm4-native', 'db-native', 'expat'}

(via rpm?)
Comment 2 Alexander Kanavin 2016-06-10 15:06:59 UTC
systemtap has a floating dependency on ncurses, but when ncurses is available, its absence from DEPENDS is not reported by QA - I'll try to debug this.

json-c is linked against only when ncurses is also present.
Comment 3 Ross Burton 2016-06-10 16:58:30 UTC
The sanity test doesn't catch this as it can't catch all problems by design, and rewriting it would be rather tricky.

I've a patch to just add ncurses to DEPENDS.
Comment 4 Ross Burton 2016-06-21 11:06:01 UTC
Fixed in oe-core 2fdd2c1434e7c741b8048145bd460c68bea7ee53.