* [pve-devel] [PATCH container] fix #6392: setup: fedora: skip --prompt-new-user on firstboot
@ 2025-12-19 15:19 Maximiliano Sandoval
2026-01-15 14:19 ` Fabian Grünbichler
2026-11-07 18:01 ` applied: " Thomas Lamprecht
0 siblings, 2 replies; 4+ messages in thread
From: Maximiliano Sandoval @ 2025-12-19 15:19 UTC (permalink / raw)
To: pve-devel
As per 'homectl --help':
--prompt-new-user: Query user interactively for user to create
which will wait on stdin to get the credentials for the new user, but at
this point there is no way for the user to enter such input and the
container will not start.
One could alternatively remove the unit file from the
'systemd-firstboot(1)' step, but this incantation has valid use-cases
like recognizing a existing homes on firstboot.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
src/PVE/LXC/Setup/Fedora.pm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/PVE/LXC/Setup/Fedora.pm b/src/PVE/LXC/Setup/Fedora.pm
index cf383e3..891884b 100644
--- a/src/PVE/LXC/Setup/Fedora.pm
+++ b/src/PVE/LXC/Setup/Fedora.pm
@@ -43,6 +43,30 @@ sub setup_init {
'systemd-networkd.service' => 1,
});
}
+
+ if ($version >= 42) {
+ $self->skip_homectl_firstboot_prompt();
+ }
+}
+
+sub skip_homectl_firstboot_prompt {
+ my ($self) = @_;
+
+ # Replaces 'homectl firstboot --prompt-new-user' with 'homectl firstboot'.
+ # When the --prompt-new-user flag is enabled the process will wait for user
+ # input resulting in the setup process not ever finishing.
+ my $unit_path = '/usr/lib/systemd/system/systemd-homed-firstboot.service';
+ if ($self->ct_file_exists($unit_path)) {
+ my $unit = <<__EOD__;
+# Generated by Proxmox VE
+[Service]
+ExecStart=
+ExecStart=homectl firstboot
+__EOD__
+
+ $self->ct_make_path("$unit_path.d");
+ $self->ct_file_set_contents("$unit_path.d/50-skip-prompt.conf", $unit);
+ }
}
sub setup_network {
--
2.47.3
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [pve-devel] [PATCH container] fix #6392: setup: fedora: skip --prompt-new-user on firstboot
2025-12-19 15:19 [pve-devel] [PATCH container] fix #6392: setup: fedora: skip --prompt-new-user on firstboot Maximiliano Sandoval
@ 2026-01-15 14:19 ` Fabian Grünbichler
2026-01-30 15:15 ` Maximiliano Sandoval
2026-11-07 18:01 ` applied: " Thomas Lamprecht
1 sibling, 1 reply; 4+ messages in thread
From: Fabian Grünbichler @ 2026-01-15 14:19 UTC (permalink / raw)
To: Proxmox VE development discussion
On December 19, 2025 4:19 pm, Maximiliano Sandoval wrote:
> As per 'homectl --help':
>
> --prompt-new-user: Query user interactively for user to create
>
> which will wait on stdin to get the credentials for the new user, but at
> this point there is no way for the user to enter such input and the
> container will not start.
>
> One could alternatively remove the unit file from the
> 'systemd-firstboot(1)' step, but this incantation has valid use-cases
> like recognizing a existing homes on firstboot.
1. this makes no sense in the commit message ;)
2. I don't think homed integration makes a lot of sense for a system
container, and would rather skip it altogether
> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
> ---
> src/PVE/LXC/Setup/Fedora.pm | 24 ++++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/src/PVE/LXC/Setup/Fedora.pm b/src/PVE/LXC/Setup/Fedora.pm
> index cf383e3..891884b 100644
> --- a/src/PVE/LXC/Setup/Fedora.pm
> +++ b/src/PVE/LXC/Setup/Fedora.pm
> @@ -43,6 +43,30 @@ sub setup_init {
> 'systemd-networkd.service' => 1,
> });
> }
> +
> + if ($version >= 42) {
> + $self->skip_homectl_firstboot_prompt();
> + }
> +}
> +
> +sub skip_homectl_firstboot_prompt {
> + my ($self) = @_;
> +
> + # Replaces 'homectl firstboot --prompt-new-user' with 'homectl firstboot'.
> + # When the --prompt-new-user flag is enabled the process will wait for user
> + # input resulting in the setup process not ever finishing.
> + my $unit_path = '/usr/lib/systemd/system/systemd-homed-firstboot.service';
> + if ($self->ct_file_exists($unit_path)) {
> + my $unit = <<__EOD__;
> +# Generated by Proxmox VE
> +[Service]
> +ExecStart=
> +ExecStart=homectl firstboot
> +__EOD__
> +
> + $self->ct_make_path("$unit_path.d");
> + $self->ct_file_set_contents("$unit_path.d/50-skip-prompt.conf", $unit);
> + }
> }
>
> sub setup_network {
> --
> 2.47.3
>
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
>
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [pve-devel] [PATCH container] fix #6392: setup: fedora: skip --prompt-new-user on firstboot
2026-01-15 14:19 ` Fabian Grünbichler
@ 2026-01-30 15:15 ` Maximiliano Sandoval
0 siblings, 0 replies; 4+ messages in thread
From: Maximiliano Sandoval @ 2026-01-30 15:15 UTC (permalink / raw)
To: Fabian Grünbichler; +Cc: Proxmox VE development discussion
Fabian Grünbichler <f.gruenbichler@proxmox.com> writes:
> On December 19, 2025 4:19 pm, Maximiliano Sandoval wrote:
>> As per 'homectl --help':
>>
>> --prompt-new-user: Query user interactively for user to create
>>
>> which will wait on stdin to get the credentials for the new user, but at
>> this point there is no way for the user to enter such input and the
>> container will not start.
>>
>> One could alternatively remove the unit file from the
>> 'systemd-firstboot(1)' step, but this incantation has valid use-cases
>> like recognizing a existing homes on firstboot.
>
> 1. this makes no sense in the commit message ;)
> 2. I don't think homed integration makes a lot of sense for a system
> container, and would rather skip it altogether
I would say it is up to the user. Someone might use this for some
service to quickly populate their config/state or create new users for
services with systemd credentials, I would prefer not to disable this
option if it can be so easily patched to not require stdin.
--
Maximiliano
^ permalink raw reply [flat|nested] 4+ messages in thread
* applied: [pve-devel] [PATCH container] fix #6392: setup: fedora: skip --prompt-new-user on firstboot
2025-12-19 15:19 [pve-devel] [PATCH container] fix #6392: setup: fedora: skip --prompt-new-user on firstboot Maximiliano Sandoval
2026-01-15 14:19 ` Fabian Grünbichler
@ 2026-11-07 18:01 ` Thomas Lamprecht
1 sibling, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2026-11-07 18:01 UTC (permalink / raw)
To: pve-devel, Maximiliano Sandoval
On Fri, 19 Dec 2025 16:19:34 +0100, Maximiliano Sandoval wrote:
> As per 'homectl --help':
>
> --prompt-new-user: Query user interactively for user to create
>
> which will wait on stdin to get the credentials for the new user, but at
> this point there is no way for the user to enter such input and the
> container will not start.
>
> [...]
Applied, thanks!
[1/1] fix #6392: setup: fedora: skip --prompt-new-user on firstboot
commit: f994e7b22c770b379f5751e2f94c6ee37306fff6
I reworked this to disable systemd-homed-firstboot.service through the
preset we write on every start, as Fabian suggested, instead of overriding
its command. That also fixes containers that already got stuck, as their
machine-id was never committed and the next start is a first boot again.
Adapted the commit message accordingly.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-11-07 18:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-19 15:19 [pve-devel] [PATCH container] fix #6392: setup: fedora: skip --prompt-new-user on firstboot Maximiliano Sandoval
2026-01-15 14:19 ` Fabian Grünbichler
2026-01-30 15:15 ` Maximiliano Sandoval
2026-11-07 18:01 ` applied: " Thomas Lamprecht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox