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