From: Michael Olbrich <m.olbrich@pengutronix.de>
To: Gavin Schenk <g.schenk@eckelmann.de>
Cc: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH v2] hostapd: Add systemd service unit
Date: Fri, 25 Oct 2024 12:36:07 +0200 [thread overview]
Message-ID: <Zxt0l7PTShUnF2Gp@pengutronix.de> (raw)
In-Reply-To: <20241008132331.1372881-1-g.schenk@eckelmann.de>
On Tue, Oct 08, 2024 at 03:23:31PM +0200, Gavin Schenk wrote:
> If selected, start hostapd as a systemd service in multi-user.target
> using a configuration file at the specified file path.
>
> Signed-off-by: Gavin Schenk <g.schenk@eckelmann.de>
> ---
>
> Changes in v2:
> - depends on initmethod systemd
> - Remove ability to rename config file in order to reduce overall complexity
> - provide dummy config /etc/hostapd/hostapd.conf
> - use menuconfig in hostapd.in
>
> My motivation for the patch was to remove local customization in the BSP.
> Unfortunately, without the option to rename the configuration, I must continue
> to to maintain local changes. Does this patch add value or should we discard it?
It's absolutely valuable. In the general case, we can have hostapd running
with just an kconfig option and a custom config file (and that one is
always needed anyways).
And I think even your use-case, the customization is simplified:
You can provide your own projectroot/usr/lib/systemd/system/hostapd.service
(which changes less often than e.g. hostapd.make) that uses your custom
hostapd.conf and a "projectroot/etc/hostapd/hostapd.conf -> /dev/null"
symlink.
That's much simpler dann a modified hostapd.make or your own rule to
install the files.
Michael
PS: I understand why you would like to have a custom path upstream, but the
reality is, that everybody has a different config file that needs to be
loaded from a custom location and allowing that in general is a
maintenance nightmare for upstream PTXdist.
> projectroot/etc/hostapd/hostapd.conf | 2 ++
> .../usr/lib/systemd/system/hostapd.service | 15 +++++++++++++++
> rules/hostapd.in | 15 +++++++++++++--
> rules/hostapd.make | 9 +++++++++
> 4 files changed, 39 insertions(+), 2 deletions(-)
> create mode 100644 projectroot/etc/hostapd/hostapd.conf
> create mode 100644 projectroot/usr/lib/systemd/system/hostapd.service
>
> diff --git a/projectroot/etc/hostapd/hostapd.conf b/projectroot/etc/hostapd/hostapd.conf
> new file mode 100644
> index 000000000..9e425a8c3
> --- /dev/null
> +++ b/projectroot/etc/hostapd/hostapd.conf
> @@ -0,0 +1,2 @@
> +# This is a placeholder. You have to provide a real configuration here. See
> +# hostapd.conf in package hostapd as a starting point for you own configuration.
> diff --git a/projectroot/usr/lib/systemd/system/hostapd.service b/projectroot/usr/lib/systemd/system/hostapd.service
> new file mode 100644
> index 000000000..bef52896c
> --- /dev/null
> +++ b/projectroot/usr/lib/systemd/system/hostapd.service
> @@ -0,0 +1,15 @@
> +[Unit]
> +Description=Access point and authentication server for Wi-Fi and Ethernet
> +After=network.target
> +ConditionFileNotEmpty=/etc/hostapd/hostapd.conf
> +
> +[Service]
> +Type=forking
> +PIDFile=/run/hostapd.pid
> +Restart=on-failure
> +RestartSec=2
> +Environment=DAEMON_CONF=/etc/hostapd/hostapd.conf
> +ExecStart=/usr/sbin/hostapd -B -P /run/hostapd.pid ${DAEMON_CONF}
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/rules/hostapd.in b/rules/hostapd.in
> index 6ac6be52c..9c95fe373 100644
> --- a/rules/hostapd.in
> +++ b/rules/hostapd.in
> @@ -1,10 +1,10 @@
> ## SECTION=networking
>
> -config HOSTAPD
> +menuconfig HOSTAPD
> tristate
> select OPENSSL
> select LIBNL3
> - prompt "hostapd"
> + prompt "hostapd "
> help
> IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator
>
> @@ -21,3 +21,14 @@ config HOSTAPD
> authentication without requiring an external RADIUS
> authentication server), and RADIUS authentication server for
> EAP authentication.
> +
> +if HOSTAPD
> +
> +config HOSTAPD_SYSTEMD_UNIT
> + bool
> + prompt "Enable systemd support"
> + depends on INITMETHOD_SYSTEMD
> + help
> + Install systemd units to start this service on startup.
> +
> +endif
> diff --git a/rules/hostapd.make b/rules/hostapd.make
> index 2d061b5d4..11b5ca1b0 100644
> --- a/rules/hostapd.make
> +++ b/rules/hostapd.make
> @@ -74,6 +74,15 @@ $(STATEDIR)/hostapd.targetinstall:
> @$(call install_copy, hostapd, 0, 0, 0755, -, /usr/sbin/hostapd)
> @$(call install_alternative, hostapd, 0, 0, 0644, /etc/hostapd/hostapd.conf)
>
> +ifdef PTXCONF_HOSTAPD_SYSTEMD_UNIT
> + @$(call install_alternative, hostapd, 0, 0, 0644, \
> + /usr/lib/systemd/system/hostapd.service)
> + @$(call install_link, hostapd, ../hostapd.service, \
> + /lib/systemd/system/multi-user.target.wants/hostapd.service)
> + @$(call install_alternative, hostapd, 0, 0, 0644, \
> + /etc/hostapd/hostapd.conf)
> +endif
> +
> @$(call install_finish, hostapd)
>
> @$(call touch)
> --
> 2.39.5
>
>
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2024-10-25 10:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-26 5:43 [ptxdist] [PATCH] " Gavin Schenk
2024-09-06 13:59 ` Michael Olbrich
2024-10-08 13:23 ` [ptxdist] [PATCH v2] " Gavin Schenk
2024-10-25 7:32 ` [ptxdist] [APPLIED] " Michael Olbrich
2024-10-25 11:20 ` Artur Wiebe
2024-10-25 14:34 ` Michael Olbrich
2024-10-25 10:36 ` Michael Olbrich [this message]
2024-10-25 11:16 ` [ptxdist] [PATCH v2] " Gavin Schenk
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=Zxt0l7PTShUnF2Gp@pengutronix.de \
--to=m.olbrich@pengutronix.de \
--cc=g.schenk@eckelmann.de \
--cc=ptxdist@pengutronix.de \
/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