[Buildroot] [PATCH 1/1] package/dhcp: specify host-gawk path for dhcp build environment
Sergey Matyukevich
geomatsi at gmail.com
Sat Sep 12 20:01:14 UTC 2020
Hello Thomas and all,
> Hello Sergey,
>
> On Tue, 23 Jun 2020 10:39:18 +0300
> Sergey Matyukevich <geomatsi at gmail.com> wrote:
>
> > DHCP package silently fails to install its binaries if gawk tool
> > is not installed on build server. This is still the case even
> > if host-gawk package is already available: dhcp Makefiles detect
> > its presence but still attempt to use gawk from host system.
> >
> > Add host-gawk to the list of dependencies for dhcp and explicitely
> > specify host-gawk location.
> >
> > Signed-off-by: Sergey Matyukevich <geomatsi at gmail.com>
>
> Thanks for the patch. However, could you be more specific about what's
> missing on the target?
>
> Indeed, I just did two builds of the DHCP package, will all sub-options
> enabled, one inside a Docker container that only has the "mawk"
> implementation of awk, and another on my machine, which as "gawk"
> installed as awk.
>
> And in both cases, the set of files installed to target/ was exactly
> identical.
>
> Could you provide more details ?
But what were the files installed in your tests? Did you see dhcpd and
dhclient amount installed files in output/target ?
I still can reproduce the issue. The procedure is similar to yours. I
enable both client and server for isc-dhcp in the board config. Finally,
I do not have both dhcpd and dhclient in output/target if I do not have
gawk installed on my build server. Moreover, in this case the following
warnings appear in the end of dhcp build log:
bin/sh: line 19: gawk: command not found
Such warning are emitted by DHCP_INSTALL_SERVER and DHCP_INSTALL_CLIENT
commands from dhcp.mk. The same result can be reproduced manually:
$ make -C /home/matsi/devel/code/buildroot/buildroot-release/output/build/dhcp-4.4.1/server DESTDIR=/home/matsi/devel/code/buildroot/buildroot-release/output/target install-sbinPROGRAMS
make: Entering directory '/home/matsi/devel/code/buildroot/buildroot-release/output/build/dhcp-4.4.1/server'
/usr/bin/mkdir -p '/home/matsi/devel/code/buildroot/buildroot-release/output/target/usr/sbin'
/bin/sh: line 19: gawk: command not found
make: Leaving directory '/home/matsi/devel/code/buildroot/buildroot-release/output/build/dhcp-4.4.1/server'
What exactly goes on can be figured out using '-n' make option.
Makefiles for isc-dhcp components use $(AWK) which is properly
detected by configure script. It can any of gawk, mawk, nawk, awk.
However in generated Makefiles that tool is used without specific
path. As a result, *awk tool can be available in buildroot build
environment, but missing on the build server.
Regards,
Sergey
More information about the buildroot
mailing list