# Remove "start on boot" option from webmin configuration, as
# end-users should not need to configure this from the web interface
#
# Upstream-status: Inappropriate
#
# Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
--- webmin-1.570.orig/webmin/index.cgi
+++ webmin-1.570/webmin/index.cgi
@@ -79,20 +79,6 @@ print &ui_buttons_start();
 my %miniserv;
 &get_miniserv_config(\%miniserv);
 
-if (&foreign_check("init")) {
-	&foreign_require("init");
-	my $starting = &init::action_status("webmin");
-	print &ui_buttons_row("bootup.cgi",
-	      $text{'index_boot'},
-	      $text{'index_bootmsg'}.
-	      ($miniserv{'inetd'} ? "<b>$text{'index_inetd'}</b>" :
-	       !$ENV{'MINISERV_CONFIG'} ? "<b>$text{'index_apache'}</b>" : ""),
-	      &ui_hidden("starting", $starting),
-	      &ui_radio("boot", $starting == 2 ? 1 : 0,
-			[ [ 1, $text{'yes'} ],
-			  [ 0, $text{'no'} ] ]));
-	}
-
 # Restart Webmin
 if (!$miniserv{'inetd'} && $ENV{'MINISERV_CONFIG'}) {
 	print &ui_buttons_row("restart.cgi",
