[OE-core] [PATCH] e2fsprogs: add packageconfig for -file-
Robert Yang
liezhi.yang at windriver.com
Mon Sep 19 03:42:02 UTC 2016
On 09/19/2016 11:32 AM, Randy MacLeod wrote:
> On 2016-09-18 10:37 PM, Christopher Larson wrote:
>>
>> On Sun, Sep 18, 2016 at 7:32 PM, Randy MacLeod
>> <randy.macleod at windriver.com <mailto:randy.macleod at windriver.com>> wrote:
>>
>> On 2016-09-17 01:09 AM, Christopher Larson wrote:
>>
>>
>> On Fri, Sep 16, 2016 at 6:37 PM, Randy MacLeod
>> <Randy.MacLeod at windriver.com
>> <mailto:Randy.MacLeod at windriver.com>
>> <mailto:Randy.MacLeod at windriver.com
>> <mailto:Randy.MacLeod at windriver.com>>> wrote:
>>
>> Without a packageconfig dependency for the file utility, there's
>> a very rare compile faiure caused by a race where the magic.h
>> header file is not found:
>>
>> ../../../git/lib/support/plausible.c:33:19: fatal error:
>> magic.h:
>> No such file or directory
>>
>> This file, plausible.c, is part of libsupport.a which is used by
>> many binaries produced by the e2fsprogs package. plausible.c
>> attempts
>> to dynamically load libmagic.so if the e2fsprogs configure
>> detects
>> that magic was available. Adding the packageconfig will
>> eliminate
>> the build as well as the possible configure-time race condition.
>>
>> Signed-off-by: Randy MacLeod <Randy.MacLeod at windriver.com
>> <mailto:Randy.MacLeod at windriver.com>
>> <mailto:Randy.MacLeod at windriver.com
>> <mailto:Randy.MacLeod at windriver.com>>>
>> ---
>> meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb
>> <http://e2fsprogs_1.43.bb>
>> <http://e2fsprogs_1.43.bb> | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git
>> a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb
>> <http://e2fsprogs_1.43.bb>
>> <http://e2fsprogs_1.43.bb>
>> b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb
>> <http://e2fsprogs_1.43.bb>
>> <http://e2fsprogs_1.43.bb>
>> index f4855bc..1707cb9 100644
>> --- a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb
>> <http://e2fsprogs_1.43.bb>
>> <http://e2fsprogs_1.43.bb>
>> +++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb
>> <http://e2fsprogs_1.43.bb>
>> <http://e2fsprogs_1.43.bb>
>> @@ -23,6 +23,7 @@ EXTRA_OECONF += "--libdir=${base_libdir}
>> --sbindir=${base_sbindir} \
>> EXTRA_OECONF_darwin = "--libdir=${base_libdir}
>> --sbindir=${base_sbindir} --enable-bsd-shlibs"
>>
>> PACKAGECONFIG ??= ""
>> +PACKAGECONFIG[file] = ',,file'
>>
>>
>> This isn’t going to be good enough. You aren’t explicitly
>> enabling/disabling the option, so it’ll still detect based on
>> what’s in
>> the sysroot, so recipe build order will result in non-deterministic
>> behavior.
>>
>>
>> Hi Christopher,
>>
>> Thanks for the response but I don't understand.
>> I'm probably wrong so please explain.
>> It seems that you're suggesting that I add:
>> --with[out]-magic to e2fsprogs configure, and while
>> I could do that, it does not seem to be needed.
>>
>>
>> Short response:
>>
>> This change forces 'file' to be built before e2fsprogs if 'file'
>> is present in the image or world build. Then e2fsprogs will
>> detect magic.h,libmagic.so and the race is eliminated.
>>
>>
>> That’s only the case if ‘file’ is in PACKAGECONFIG, if not, it’ll still
>> behave the way it did before, and change its deps based on build order.
>> Our policy is to avoid floating deps period, regardless of
>> PACKAGECONFIG. If a given packageconfig is not enabled, then explicitly
>> disable the dependency, don’t detect and use it anyway.
>
> Ah right and now I see some uses where there would not be a
> package dependency required.
>
> I'll likely send a v2 adding just:
> PACKAGECONFIG ??= "file"
I'm afraid that this can't fix the floating deps, if file is a must
and can't be disabled, you can set:
DEPENDS += "file"
rather than use a PACKAGECONFIG.
> since 'fuse' is in the meta-filesystems layer but
For fuse:
PACKAGECONFIG ??= ""
PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse'
It is disabled by default, but other layers use a e2fsprogs.bbappend
or PACKAGECONFIG_pn-e2fsprogs = "fuse" in conf file to enable it.
> I don't understand how the fuse dependency gets fixed since
It is disabled by default (--disable-fuse2fs), this can fix the
floating deps issue.
// Robert
> it's not changed in meta-oe/meta-filesystems AFAIKT. Should the
> fuse dependency be added as well so that builds that add
> the meta-filesystems layer don't have this potential race?
> I could do some testing to find out but it's late here.
> Robert likely knows all about this so I'm
> CCing him since he also committed the fuse change.
>
> It seems unlikely but we could have a pile of clean-up
> to do...
>
> Thanks,
> ../Randy
>
>> --
>> Christopher Larson
>> clarson at kergoth dot com
>> Founder - BitBake, OpenEmbedded, OpenZaurus
>> Maintainer - Tslib
>> Senior Software Engineer, Mentor Graphics
>
>
More information about the Openembedded-core
mailing list