On Wed, 2018-08-15 at 17:24 +0800, [email protected] wrote:
> From: Changqing Li <[email protected]>
> 
> 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 <[email protected]>
> ---
>  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
-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to