Thanks, applied as 49049c01b0a932c74c77b64f1b42c85141fec8e4.

Michael

[sent from post-receive hook]

On Fri, 25 Oct 2024 09:32:55 +0200, Gavin Schenk <[email protected]> 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 <[email protected]>
> Message-Id: <[email protected]>
> Signed-off-by: Michael Olbrich <[email protected]>
> 
> diff --git a/projectroot/etc/hostapd/hostapd.conf 
> b/projectroot/etc/hostapd/hostapd.conf
> new file mode 100644
> index 000000000000..9e425a8c3d71
> --- /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 000000000000..bef52896c28e
> --- /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 6ac6be52cd6f..9c95fe37387e 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 2d061b5d4412..11b5ca1b0e08 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)

Reply via email to