From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 25 Oct 2024 12:36:25 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1t4Hg8-000akm-23 for lore@lore.pengutronix.de; Fri, 25 Oct 2024 12:36:25 +0200 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1t4Hg9-0003LS-G0; Fri, 25 Oct 2024 12:36:25 +0200 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1t4Hfs-0003LH-6q; Fri, 25 Oct 2024 12:36:08 +0200 Received: from pty.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::c5]) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1t4Hfr-000Lm9-2y; Fri, 25 Oct 2024 12:36:07 +0200 Received: from mol by pty.whiteo.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1t4Hfr-00CxNb-2h; Fri, 25 Oct 2024 12:36:07 +0200 Date: Fri, 25 Oct 2024 12:36:07 +0200 From: Michael Olbrich To: Gavin Schenk Message-ID: Mail-Followup-To: Gavin Schenk , ptxdist@pengutronix.de References: <20241008132331.1372881-1-g.schenk@eckelmann.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241008132331.1372881-1-g.schenk@eckelmann.de> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-IRC: #ptxdist @freenode Subject: Re: [ptxdist] [PATCH v2] hostapd: Add systemd service unit X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: ptxdist@pengutronix.de Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false 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 > --- > > 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 |