[Buildroot] [PATCH v1 2/3] package/iwd: add basic configuration file

Yann E. MORIN yann.morin.1998 at free.fr
Sun Jun 14 09:56:29 UTC 2020


Peter, All,

On 2020-06-13 01:24 +0200, Peter Seiderer spake thusly:
> Add basic /etc/iwd/main.conf configuration file to enable
> network configuration (use built-in dhcp client).
> 
> For the non systemd case select the openresolv package to
> fulfill the iwd resolvconf requirement.
> 
> Signed-off-by: Peter Seiderer <ps.report at gmx.net>
> ---
>  package/iwd/Config.in |  1 +
>  package/iwd/iwd.mk    | 19 +++++++++++++++++++
>  package/iwd/main.conf |  3 +++
>  3 files changed, 23 insertions(+)
>  create mode 100644 package/iwd/main.conf
> 
> diff --git a/package/iwd/Config.in b/package/iwd/Config.in
> index 4501017630..6d42cac35c 100644
> --- a/package/iwd/Config.in
> +++ b/package/iwd/Config.in
> @@ -8,6 +8,7 @@ config BR2_PACKAGE_IWD
>  	depends on BR2_USE_WCHAR # ell
>  	select BR2_PACKAGE_DBUS # runtime
>  	select BR2_PACKAGE_ELL
> +	select BR2_PACKAGE_OPENRESOLV if !BR2_INIT_SYSTEMD

I think this is preferable to use BR2_PACKAGE_SYSTEMD as the dependency,
rather than BR2_INIT_SYSTEMD, even if the two are currently tightly
intertwinned.

>  	help
>  	  iNet Wireless daemon (iwd)
>  
> diff --git a/package/iwd/iwd.mk b/package/iwd/iwd.mk
> index 32ff175933..d105d3b128 100644
> --- a/package/iwd/iwd.mk
> +++ b/package/iwd/iwd.mk
> @@ -46,4 +46,23 @@ else
>  IWD_CONF_OPTS += --disable-systemd-service
>  endif
>  
> +define IWD_INSTALL_CONFIG_FILE
> +	mkdir -p $(TARGET_DIR)/etc/iwd
> +	$(INSTALL) -m 644 package/iwd/main.conf $(TARGET_DIR)/etc/iwd/main.conf
> +endef
> +
> +ifeq ($(BR2_INIT_SYSTEMD),y)
> +define IWD_CONFIG_FILE_NAME_RESOLV_SERVICE
> +	echo -e "[Network]\nNameResolvingService=systemd" >> $(TARGET_DIR)/etc/iwd/main.conf

Do not use 'echo -e' but use printf. Also the line is too long:

    printf '[Network]\nNameResolvingService=systemd\n' \
        >>$(TARGET_DIR)/etc/iwd/main.conf

However, this will not be working nicely on rebuilds, as it will keep
appending this to the file. See below for a better approach (I think):

Also, the condiotion on BR2_INIT_SYSTEMD is already handled by the
infra, by using the appropriate INIT_INSTALL hooks:

    define IWD_INSTALL_INIT_SYSV
        sed -r -e '$s/$/\n[Network]\nNameResolvingService=resolvconf/' \
            $(IWD_PKGDIR)main.conf \
            >$(TARGET_DIR)/etc/iwd/main.conf
    endef

    define IWD_INSTALL_INIT_SYSTEMD
        sed -r -e '$s/$/\n[Network]\nNameResolvingService=systemd/' \
            $(IWD_PKGDIR)main.conf \
            >$(TARGET_DIR)/etc/iwd/main.conf
    endef

> +endef
> +else
> +define IWD_CONFIG_FILE_NAME_RESOLV_SERVICE
> +	echo -e "[Network]\nNameResolvingService=resolvconf" >> $(TARGET_DIR)/etc/iwd/main.conf
> +endef
> +endif
> +
> +IWD_POST_INSTALL_TARGET_HOOKS += \
> +	IWD_INSTALL_CONFIG_FILE \
> +	IWD_CONFIG_FILE_NAME_RESOLV_SERVICE

And thus those post-install hooks are not longer required.

Regards,
Yann E. MORIN.

>  $(eval $(autotools-package))
> diff --git a/package/iwd/main.conf b/package/iwd/main.conf
> new file mode 100644
> index 0000000000..c26a50d302
> --- /dev/null
> +++ b/package/iwd/main.conf
> @@ -0,0 +1,3 @@
> +# use built-in dhcp client
> +[General]
> +EnableNetworkConfiguration=true
> -- 
> 2.26.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list