From: "Stefan Fröberg" <stefan.froberg@petroprogram.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] busybox: needs linux-pam dependency added if using custom busybox .config & busybox login applet
Date: Sun, 18 Nov 2012 19:39:16 +0200 [thread overview]
Message-ID: <50A91D44.5060104@petroprogram.com> (raw)
In-Reply-To: <20121118174000.0fe79ef6@skate>
Hi Thomas
18.11.2012 18:40, Thomas Petazzoni kirjoitti:
> Dear Stefan Fr?berg,
>
> On Sun, 18 Nov 2012 02:15:13 +0200, Stefan Fr?berg wrote:
>
>> +# linux-pam must be built first if user has custom
>> +# BusyBox .config file and that file has also login
>> +# applet (CONFIG_LOGIN) enabled.
>> +ifeq ($(shell sed -n "s/CONFIG_LOGIN=\(y\)/\1/p" $(BR2_PACKAGE_BUSYBOX_CONFIG)),y)
>> +BUSYBOX_DEPENDENCIES += linux-pam
>> +endif
> I don't think this will work nicely. BR2_PACKAGE_BUSYBOX_CONFIG is the
> source for the Busybox configuration, but the user can do "make
> busybox-menuconfig" do adjust it. In this case, the contents of the
> BR2_PACKAGE_BUSYBOX_CONFIG file and the contents of the real
> configuration file used by Busybox are different. If the latter has
> CONFIG_LOGIN, but not the former, then you will not link against
> linux-pam while you should.
I tested this and it seems that no matter what you do in make
busybox-menuconfig the
(enable login or disable login) the settings from
BR2_PACKAGE_BUSYBOX_CONFIG will
always override.
So even if setting CONFIG_LOGIN disabled from make busybox-menuconfig it
will still
build linux-pam first.
I try to get the logic of this thing:
First busybox is extracted and it copies $(BUSYBOX_CONFIG_FILE) (really
a BR2_PACKAGE_BUSYBOX_CONFIG)
over to just extracted output/busybox-xyz/.config and replacing it. That
will be done in BUSYBOX_POST_EXTRACT_HOOKS.
(BR2_PACKAGE_BUSYBOX_CONFIG here being either the default
package/busybox/busybox-xyz.x.config
or user provided custom .config)
Then buildroot makes some of it's own changes to that
output/busybox/.config inside BUSYBOX_CONFIGURE_CMDS
Then build.
So what make busybox-menuconfig actually does is change
output/busybox-xyz/.config.
So instead of getting CONFIG_LOG setting from BR2_PACKAGE_BUSYBOX_CONFIG
(aka BUSYBOX_CONFIG_FILE inside busybox.mk)
I should get it from output/busybox-xyz/.config (aka
BUSYBOX_BUILD_CONFIG inside busybox.mk).
And that CONFIG_LOGIN checking should be done after buybox tarball has
been extracted but by then, it is already too late for
determining dependencies ....
Aarrggggh!
> It is really difficult to have dependencies that are needed only when
> some specific Busybox features are enabled.
Tell me about it.
What IMHO is needed, is some function or way to get these kinds of
information.
Just before dependencies are determined.
There should be KCONFIG_GET_OPT or something similar inside
package/pkg-utils.mk
(like there already is KCONFIG_ENABLE_OPT, KCONFIG_DISABLE_OPT and
KCONFIG_SET_OPT)
that would help to determine not only buildroot features but also linux
features and any
else package that use kconfig like stuff.
It would also help in case of various package conflicts (say if busybox
unzip applet and real unzip are mistakenly
being installed, then this could be detected beforehand)
Regards
Stefan
> Best regards,
>
> Thomas
next prev parent reply other threads:[~2012-11-18 17:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-18 0:15 [Buildroot] [PATCH] busybox: needs linux-pam dependency added if using custom busybox .config & busybox login applet Stefan Fröberg
2012-11-18 2:14 ` Danomi Manchego
2012-11-18 11:51 ` Stefan Fröberg
2012-11-18 12:11 ` Stefan Fröberg
2012-11-18 14:01 ` Stefan Fröberg
2012-11-18 16:40 ` Thomas Petazzoni
2012-11-18 17:39 ` Stefan Fröberg [this message]
2012-11-18 17:48 ` Thomas Petazzoni
2012-11-18 18:09 ` Stefan Fröberg
2012-11-18 18:28 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50A91D44.5060104@petroprogram.com \
--to=stefan.froberg@petroprogram.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox