[Buildroot] [PATCH 09/20] package/skeleton: drop dependency on host-mkpasswd
arnout at mind.be
Sat Jul 22 21:24:07 UTC 2017
This makes no sense to me...
On 18-07-17 19:25, Yann E. MORIN wrote:
> Setting the root pasword is done in a target-finalize hook, so we do not
> need to enforce a dependency from the skeleton onto host-mkpasswd.
> Dropping that dependency will simplify making skeleton a virtual
> package (in up-coming changes).
How so? What's wrong with
SKELETON_COMMON_DEPENDENCIES += host-mkpasswd
in exactly the same place?
You forgot to mention the other interesting bit: it is now selected, so we are
still sure it will get built before target-finalize.
> This however introduces a slight change in behaviour: previously,
> host-mkpasswd would only be built if we needed to hash the root password
> from its plain-text value. Now, host-mkpasswd is always built as soon as
> the root password is non-empty, even if already pre-hashed.
> Since host-mkpasswd is a really tiny weeny package bundled in Buidlroot,
> with only two C files, built as a single unit with a single gcc call,
> the overhead is really minimal. Compared to the simplifications this
> will allow in the skeleton packages (plural: common, sysv, systemd,
> custom) to come, this overhead is acceptable.
> Yet another simplification, even if small, to ease providing multiple
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Although I don't think it's really *necessary* to remove the dependency, it is
certainly more correct. And we want to select host packages from Config.in
anyway on the long run, so doing it only for not-yet-hashed passwords won't be
possible anyway. Therefore:
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
> package/skeleton/skeleton.mk | 1 -
> system/Config.in | 1 +
> 2 files changed, 1 insertion(+), 1 deletion(-)
> diff --git a/package/skeleton/skeleton.mk b/package/skeleton/skeleton.mk
> index 4a66f6ceca..4ec1ecbb51 100644
> --- a/package/skeleton/skeleton.mk
> +++ b/package/skeleton/skeleton.mk
> @@ -121,7 +121,6 @@ SKELETON_ROOT_PASSWORD =
> else ifneq ($(filter $$1$$% $$5$$% $$6$$%,$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)),)
> SKELETON_ROOT_PASSWORD = '$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)'
> -SKELETON_DEPENDENCIES += host-mkpasswd
> # This variable will only be evaluated in the finalize stage, so we can
> # be sure that host-mkpasswd will have already been built by that time.
> SKELETON_ROOT_PASSWORD = "`$(MKPASSWD) -m "$(SKELETON_TARGET_GENERIC_PASSWD_METHOD)" "$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)"`"
> diff --git a/system/Config.in b/system/Config.in
> index ed539dcbe0..5cb921f108 100644
> --- a/system/Config.in
> +++ b/system/Config.in
> @@ -224,6 +224,7 @@ config BR2_ROOTFS_MERGED_USR
> config BR2_TARGET_ENABLE_ROOT_LOGIN
> bool "Enable root login with password"
> default y
> + select BR2_PACKAGE_HOST_MKPASSWD if BR2_TARGET_GENERIC_ROOT_PASSWD != ""
> Allow root to log in with a password.
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
More information about the buildroot