[OE-core] [PATCH] busybox: Add a dependency on virtual/crypt
Andrej Valek
andrej.valek at siemens.com
Mon Aug 27 06:42:51 UTC 2018
Did you find some final solution?
For me, we can make it enabled by default. Anyone could use custom
defconfig in own layer.
Cheers,
Andrej
On 08/20/18 23:28, Andre McCurdy wrote:
> On Mon, Aug 20, 2018 at 2:03 PM, Peter Kjellerstedt
> <peter.kjellerstedt at axis.com> wrote:
>>> -----Original Message-----
>>> From: Andre McCurdy <armccurdy at gmail.com>
>>> Sent: den 20 augusti 2018 22:23
>>> To: Khem Raj <raj.khem at gmail.com>
>>> Cc: Richard Purdie <richard.purdie at linuxfoundation.org>; Peter
>>> Kjellerstedt <peter.kjellerstedt at axis.com>; Patches and discussions
>>> about the oe-core layer <openembedded-core at lists.openembedded.org>
>>> Subject: Re: [OE-core] [PATCH] busybox: Add a dependency on
>>> virtual/crypt
>>>
>>> On Mon, Aug 20, 2018 at 12:45 PM, Khem Raj <raj.khem at gmail.com> wrote:
>>>> On Mon, Aug 20, 2018 at 2:45 AM Richard Purdie
>>>> <richard.purdie at linuxfoundation.org> wrote:
>>>>>
>>>>> On Mon, 2018-08-20 at 04:46 +0200, Peter Kjellerstedt wrote:
>>>>>> busybox needs crypt() if CONFIG_USE_BB_CRYPT is not defined.
>>>>>>
>>>>>> Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
>>>>>> ---
>>>>>> meta/recipes-core/busybox/busybox.inc | 3 ++-
>>>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-
>>>>>> core/busybox/busybox.inc
>>>>>> index 8c6dbbaf9b..a8ba10d21c 100644
>>>>>> --- a/meta/recipes-core/busybox/busybox.inc
>>>>>> +++ b/meta/recipes-core/busybox/busybox.inc
>>>>>> @@ -3,7 +3,8 @@ DESCRIPTION = "BusyBox combines tiny versions of
>>> many
>>>>>> common UNIX utilities into
>>>>>> HOMEPAGE = "http://www.busybox.net"
>>>>>> BUGTRACKER = "https://bugs.busybox.net/"
>>>>>>
>>>>>> -DEPENDS += "kern-tools-native"
>>>>>> +# Depend on virtual/crypt in case CONFIG_USE_BB_CRYPT is not
>>> defined
>>>>>> +DEPENDS += "kern-tools-native virtual/crypt"
>>>>>
>>>>> I'm not a bug fan of adding dependencies which might not be needed.
>>> How
>>>>> common is CONFIG_USE_BB_CRYPT not being defined? I assume that isn't
>>>>> our default config?
>>>>
>>>> yes perhaps it should be packageconfig
>>>
>>> Busybox doesn't use PACKAGECONFIG. Conditional configuration is
>>> handled by adding / removing cfg fragments and testing whether SRC_URI
>>> contains "foo.cfg" (and also parsing the final .config within tasks
>>> such as do_install). Unfortunately that approach doesn't work so well
>>> for conditional build dependencies...
>>>
>>> Our Busybox defconfig does enable CONFIG_USE_BB_CRYPT (and there's no
>>> cfg fragment to disable it) so the virtual/crypt dependency isn't
>>> needed in our default builds.
>>
>> In our case we have our own defconfig. I am not responsible for it, it is
>> maintained by our busybox maintainer, and he has apparently decided that
>> we don't want CONFIG_USE_BB_CRYPT enabled.
>
> Could you ask him about it? Maybe there's some advantage to it that isn't clear.
>
> The general OE approach is to use system libraries when possible so
> using external libcrypt does actually align to that.
>
> Maybe we should use external libcrypt by default (with the option to
> switch back to the built-in crypt functions via a cfg fragment)?
>
>> I can of course add the dependency via a bbappend, but having to do that
>> seems wrong given how the rest of busybox is configured (with defconfig
>> and cfg fragments) and where enabling some options that don't happen to
>> be enabled in the OE-Core default configuration will then break the build.
>>
>>> Disabling busybox's internal crypt functions doesn't seem like a very
>>> common thing to want to do.
>>>
>>> config USE_BB_CRYPT
>>> bool "Use internal crypt functions"
>>> default y
>>> help
>>> Busybox has internal DES and MD5 crypt functions.
>>> They produce results which are identical to corresponding
>>> standard C library functions.
>>>
>>> If you leave this disabled, busybox will use the system's
>>> crypt functions. Most C libraries use large (~70k)
>>> static buffers there, and also combine them with more general
>>> DES encryption/decryption.
>>>
>>> For busybox, having large static buffers is undesirable,
>>> especially on NOMMU machines. Busybox also doesn't need
>>> DES encryption/decryption and can do with smaller code.
>>>
>>> If you enable this option, it will add about 4.8k of code
>>> if you are building dynamically linked executable.
>>> In static build, it makes code _smaller_ by about 1.2k,
>>> and likely many kilobytes less of bss.
>>
>> //Peter
>>
More information about the Openembedded-core
mailing list