[OE-core] [PATCH] rpm: remove depend on dbus for rpm native

Richard Purdie richard.purdie at linuxfoundation.org
Wed Aug 15 09:39:54 UTC 2018


On Wed, 2018-08-15 at 17:24 +0800, changqing.li at windriver.com wrote:
> From: Changqing Li <changqing.li at windriver.com>
> 
> This depend cause a big problem that for one package,
> build enviroment for clean compile and second time compile
> are different. And also rpm-native actually don't need to
> depend on dbus, so remove it.
> 
> Take libfastjson as example:
> (libfastjson don't have autoconf-archive-native in DEPEND)
> if don't remove this dependency, it will have below dependency list:
> libfastjson -> gcc-runtime -> libgcc -> glibc -> linux-libc-headers
> -> rpm-native
> rpm-native -> dbus-native
> dbus-native -> autoconf-archive-native
> 
> in this way:
> do_package of libfastjson will depend on do_populate_sysroot
> of autoconf-archive-native
> 
> for clean compile:
> during do_configure, since do_package not executed,  so .m4 files
> provide by autoconf-archive-native will not under
> recipe_sysroot_native,
> 
> for second time configure:
> .m4 already copy under recipe_sysroot_native when run do_package last
> time
> 
> so if there is code related .m4 of autoconf-archive-native in the
> configure.ac
> there will be differences and may cause problem.
> 
> Signed-off-by: Changqing Li <changqing.li at windriver.com>
> ---
>  meta/recipes-devtools/rpm/rpm_4.14.1.bb | 1 +
>  1 file changed, 1 insertion(+)

This is a little worrying. I think we need to blacklist that dependency
a little more strongly to ensure issues like this don't happen again,
particularly if its coming through a packaging dependency.

There is some code in sstate.bbclass, around the line "# Nothing need
depend on libc-initial/gcc-cross-initial" where we could do this. There
is a patch series from André Draszik, "sstate: allow specifying
indirect dependencies to exclude from sysroot" which would make this
easier to blacklist too.

> diff --git a/meta/recipes-devtools/rpm/rpm_4.14.1.bb b/meta/recipes-devtools/rpm/rpm_4.14.1.bb
> index e5e87d3..91617a4 100644
> --- a/meta/recipes-devtools/rpm/rpm_4.14.1.bb
> +++ b/meta/recipes-devtools/rpm/rpm_4.14.1.bb
> @@ -52,6 +52,7 @@ S = "${WORKDIR}/git"
>  
>  DEPENDS = "nss libarchive db file popt xz bzip2 dbus elfutils python3"
>  DEPENDS_append_class-native = " file-replacement-native bzip2-replacement-native"
> +DEPENDS_remove_class-native = "dbus"

I really don't like using _remove in OE-Core. Please restructure this
to do:

DEPENDS_append_class-target = "dbus"

or better, make the recipe use PACKAGECONFIG for this option. I'm
curious why we need dbus in the target case but not the native one
too...


Cheers,

Richard



More information about the Openembedded-core mailing list