Compare commits
	
		
			8 Commits
		
	
	
		
			11_0_0-58_
			...
			11_0_0-65_
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 82ff48e641 | |||
| c5d863b3a0 | |||
| 4f00dfbdb1 | |||
| f9bf8cf064 | |||
| 4f0617f6c3 | |||
| 4c94d768e2 | |||
| 1731f75cba | |||
| 5fe285f9f2 | 
							
								
								
									
										9
									
								
								root/usr/lib/systemd/system/bootsequence.service
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								root/usr/lib/systemd/system/bootsequence.service
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| [Unit] | ||||
| Description=Koozali SME Server boot diagnostic tool | ||||
| After=sme-server.target | ||||
| PartOf=sme-server.target | ||||
|  | ||||
| [Service] | ||||
| Type=oneshot | ||||
| ExecStart=/bin/sh -c "/usr/bin/systemd-analyze plot > /usr/share/smanager/themes/default/public/images/boot.svg" | ||||
| RemainAfterExit=yes | ||||
| @@ -526,13 +526,13 @@ sub do_update { | ||||
|  | ||||
|     # common part for all functions | ||||
|     if ($res ne 'OK') { | ||||
|  | ||||
|         if ($res eq 'NEXT') { | ||||
|             $dest = 'back_' . $bac_datas{"function"}; | ||||
|         } else { | ||||
|             $c->stash(error => $result); | ||||
|             $dest = "back_$function"; | ||||
|         } | ||||
|         $bac_datas{vfstype}        = $c->param('VFSType'); | ||||
|         $c->stash(title => $title, bac_datas => \%bac_datas); | ||||
|         return $c->render($dest); | ||||
|     } ## end if ($res ne 'OK') | ||||
|   | ||||
| @@ -17,6 +17,9 @@ use File::Basename; | ||||
| use SrvMngr qw( gen_locale_date_string ); | ||||
| our $cdb = esmith::ConfigDB->open or die "Couldn't open ConfigDB\n"; | ||||
|  | ||||
| use constant FALSE => 0; | ||||
| use constant TRUE  => 1; | ||||
|  | ||||
| # Get some basic info on the current SME install | ||||
| our $sysconfig          = $cdb->get('sysconfig'); | ||||
| our $systemmode         = $cdb->get('SystemMode')->value; | ||||
| @@ -78,7 +81,7 @@ sub create_configuration_report { | ||||
|     # create the reporting template | ||||
|     my $configreport_template = Text::Template->new( | ||||
|         TYPE    => 'FILE', | ||||
|         SOURCE  => '/etc/e-smith/web/common/configuration_report.tmpl', | ||||
|         SOURCE  => '/usr/share/smanager/themes/default/public/configuration_report.tmpl', | ||||
|         UNTAINT => 1 | ||||
|     ); | ||||
|     my $report_creation_time = gen_locale_date_string; | ||||
| @@ -114,13 +117,40 @@ sub create_configuration_report { | ||||
|  | ||||
|     # prcess template | ||||
|     my $result = $configreport_template->fill_in(HASH => \%vars); | ||||
|      | ||||
|     #take out any multiple blank lines | ||||
|     #$result =~ s/\n{3,}/\n/g; | ||||
|      | ||||
|  | ||||
|     # write processed template to file | ||||
|     open(my $cfgrep, '>', $configreportfile) or die "Could not create temporary file for config report!"; | ||||
|     print $cfgrep $result; | ||||
|     close $cfgrep; | ||||
|      | ||||
|     #check if boot phase has completed. | ||||
| 	if (wait_for_boot_completion()) { | ||||
| 		#And create boot analysis image - now run externally following boot. | ||||
| 		$result = `/usr/bin/systemctl start bootsequence.service`; | ||||
| 		if (!$? == 0) { | ||||
| 			warn "/usr/bin/systemd-analyze plot Command failed \n"; | ||||
| 		} | ||||
| 	} | ||||
|    | ||||
| } ## end sub create_configuration_report | ||||
|  | ||||
| sub wait_for_boot_completion { | ||||
|     my $timeout = 60;  # 1-minute timeout | ||||
|     my $end_time = time() + $timeout; | ||||
|     while (time() < $end_time) { | ||||
|         if (`systemctl list-jobs 2>&1` =~ /No jobs running/) { | ||||
|             return TRUE;  # Success | ||||
|         } | ||||
|         sleep 5; | ||||
|     } | ||||
|     warn "Boot did not complete within $timeout seconds.\n"; | ||||
|     return FALSE;  # Failure | ||||
| } ## end wait_for_boot_completion | ||||
|  | ||||
| sub show_config_report { | ||||
|     my $c   = shift; | ||||
|     my $out = ''; | ||||
| @@ -143,4 +173,4 @@ sub download_config_report { | ||||
|         'cleanup'             => 1, | ||||
|     ); | ||||
| } ## end sub download_config_report | ||||
| 1; | ||||
| 1; | ||||
| @@ -2,7 +2,7 @@ | ||||
| 'clm_LABEL_FILESYSTEM_SCAN_PERIOD' => 'Scan filesystem', | ||||
| 'clm_DESC_FILESYSTEM_SCAN_PERIOD' => '<h2>General Settings</h2> | ||||
| If this option is enabled then the filesystem will be  | ||||
| scanned for viruses.A report of any found viruses will be | ||||
| scanned for viruses. A report of any found viruses will be | ||||
| emailed to the administrator.', | ||||
| 'clm_LABEL_QUARANTINE' => 'Quarantine infected files', | ||||
| 'clm_LABEL_CLAM_VERSIONS' => 'ClamAV and db versions', | ||||
|   | ||||
| @@ -14,26 +14,26 @@ web site for that domain.', | ||||
| i-bay as the content.', | ||||
| 'dom_DOMAIN_NAME_VALIDATION_ERROR' => 'Error: unexpected or missing characters in domain name | ||||
| [_1].The domain name should contain one or more | ||||
| letters, numbers, periods and minus signs.Did not create new domain.', | ||||
| letters, numbers, periods and minus signs. Did not create new domain.', | ||||
| 'dom_DOMAIN_DESCRIPTION_VALIDATION_ERROR' => 'Error: unexpected or missing characters in domain description | ||||
| [_1]. Did not create new domain.', | ||||
| 'dom_DOMAIN_IN_USE_ERROR' => 'Error: domain [_1] is already in use.Did not create | ||||
| 'dom_DOMAIN_IN_USE_ERROR' => 'Error: domain [_1] is already in use. Did not create | ||||
| new domain.', | ||||
| 'dom_SYSTEM_DOMAIN_ERROR' => 'Error: domain [_1] is your system domain name.You | ||||
| cannot have a domain with the same name.Did not create new domain.', | ||||
| 'dom_SYSTEM_DOMAIN_ERROR' => 'Error: domain [_1] is your system domain name. You | ||||
| cannot have a domain with the same name. Did not create new domain.', | ||||
| 'dom_SUCCESSFULLY_CREATED' => 'Successfully created domain [_1].Your web | ||||
| server is now being restarted.The links on this page will be | ||||
| server is now being restarted. The links on this page will be | ||||
| inactive until the web server restart is complete.', | ||||
| 'dom_MODIFY_TITLE' => 'Modify domain', | ||||
| 'dom_NONEXISTENT_DOMAIN_ERROR' => 'Error: [_1] is not an existing domain.', | ||||
| 'dom_SUCCESSFULLY_MODIFIED' => 'Successfully modified domain [_1].Your web | ||||
| server is now being restarted.The links on this page will be inactive until the web server restart is complete.', | ||||
| server is now being restarted. The links on this page will be inactive until the web server restart is complete.', | ||||
| 'dom_REMOVE_TITLE' => 'Remove domain', | ||||
| 'dom_REMOVE_DESCRIPTION' => 'You are about to remove the domain "[_1]" ([_2]).', | ||||
| 'dom_ABOUT_TO_REMOVE' => 'Are you sure you wish to remove this domain ?', | ||||
| 'dom_ERROR_WHILE_REMOVING_DOMAIN' => 'Error: internal failure while removing domain [_1].', | ||||
| 'dom_SUCCESSFULLY_DELETED' => 'Successfully deleted domain [_1]. Your web server | ||||
| is now being restarted.The links on this page will be inactive | ||||
| is now being restarted. The links on this page will be inactive | ||||
| until the web server restart is complete.', | ||||
| 'dom_DESC_CORPORATE_DNS_CURRENT' => 'Corporate DNS Settings', | ||||
| 'dom_DOMAINS_PAGE_CORPORATE_DNS' => 'Modify corporate DNS settings', | ||||
|   | ||||
| @@ -128,7 +128,7 @@ | ||||
| 'FM_IP_NUMBER3' => '[_1] is more than 255', | ||||
| 'FM_USERNAME' => 'This field must look like a valid username (3 to 8 letters and numbers)', | ||||
| 'FM_PASSWORD1' => 'You must provide a password.', | ||||
| 'FM_PASSWORD2' => 'The password you provided was not a good password.A good password must contain all of the following: upper case letter, lower case letter, number, non-alphanumeric character, be at least 7 characters long.', | ||||
| 'FM_PASSWORD2' => 'The password you provided was not a good password. A good password must contain all of the following: upper case letter, lower case letter, number, non-alphanumeric character, be at least 7 characters long.', | ||||
| 'FM_MAC_ADDRESS1' => 'You must provide a MAC address.', | ||||
| 'FM_MAC_ADDRESS2' => 'The MAC address you provided was not valid.', | ||||
| 'FM_ERR_UNEXPECTED_DESC' => 'Error: unexpected or missing characters in description', | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
| 'grp_ACCOUNT_CONFLICT' => 'Error: the group "[_1]" can\'t be created because there is | ||||
| already a [_2] account of that name.', | ||||
| 'grp_INVALID_GROUP_DESCRIPTION' => 'Error: unexpected or missing characters in group description', | ||||
| 'grp_NO_MEMBERS' => 'Error: no members in group.Did not create new group.', | ||||
| 'grp_NO_MEMBERS' => 'Error: no members in group. Did not create new group.', | ||||
| 'grp_CREATED_GROUP' => 'Successfully created user group', | ||||
| 'grp_DELETED_GROUP' => 'Successfully removed user group', | ||||
| 'grp_MODIFIED_GROUP' => 'Successfully modifed user group', | ||||
|   | ||||
| @@ -34,17 +34,17 @@ the local network. Please enter a valid IP address in the | ||||
| format "aaa.bbb.ccc.ddd".', | ||||
| 'hos_ETHERNET_ADDRESS_DESCRIPTION' => 'The ethernet address is optional and causes the DHCP server to | ||||
| statically bind the local IP address to the computer with this | ||||
| ethernet address.If specified, it must be of the form | ||||
| ethernet address. If specified, it must be of the form | ||||
| "AA:BB:CC:DD:EE:FF" and must contain only the numbers 0-9 and | ||||
| the letters A-F.', | ||||
| 'hos_CREATE_LOCAL_HOST_TITLE' => 'Create a new hostname referring to a local host.', | ||||
| 'hos_DIDNT_ENTER_LOCAL_IP' => 'Error: You did not specify a Local IP address.IP | ||||
| 'hos_DIDNT_ENTER_LOCAL_IP' => 'Error: You did not specify a Local IP address. IP | ||||
| addresses must contain only numbers and periods and | ||||
| be in the form "aaa.bbb.ccc.ddd".Did not create hostname.', | ||||
| 'hos_IP_VALIDATION_ERROR' => 'Error: IP Address [_1] is | ||||
| invalid. IP Addresses must contain only numbers and periodsand be in the form "aaa.bbb.ccc.ddd". Did not create hostname.', | ||||
| 'hos_MAC_ADDRESS_VALIDATION_ERROR' => 'Error: Ethernet address [_1] | ||||
| is invalid.Ethernet addresses must be in the | ||||
| is invalid. Ethernet addresses must be in the | ||||
| form "AA:BB:CC:DD:EE:FF" and only contain the | ||||
| numbers 0-9 and the letters A-F. Did not create | ||||
| hostname.', | ||||
|   | ||||
| @@ -14,7 +14,7 @@ For example, you may wish to create a pseudonym | ||||
| "webmaster" for your "webdevelopers" group or a | ||||
| pseudonym "joe" for the user "joseph".</p> | ||||
| <p>The server automatically creates pseudonyms of the form | ||||
| firstname.lastname and firstname_lastname for every user | ||||
| firstname. lastname and firstname_lastname for every user | ||||
| on the system and a pseudonym "everyone" which contains | ||||
| all users on the system.</p> | ||||
| <p>Pseudonyms also allow you to create e-mail aliases for valid | ||||
|   | ||||
| @@ -26,7 +26,9 @@ experienced administrators | ||||
| for remote problem diagnosis and resolution.  | ||||
| We recommend leaving this | ||||
| parameter set to "No Access" | ||||
| unless you have a specific reason to do otherwise.', | ||||
| unless you have a specific reason to do otherwise. | ||||
| Note that an "Autoblock" feature is enabled by default when public access is enabled; to disable or tune this feature, refer to the manual at https://wiki.koozali.org/AutoBlock | ||||
| ', | ||||
| 'rma_TITLE_FTP_ACCESS' => 'FTP Settings', | ||||
| 'rma_DESC_FTP_ACCESS' => 'You can also control <b>FTP</b> access to your server. We | ||||
| recommend leaving this parameter set to \'no access\' unless you | ||||
| @@ -75,11 +77,11 @@ connected to a server serial port.', | ||||
| 'rma_LABEL_PPTP_ACCESS' => 'PPTP default user access', | ||||
| 'rma_TITLE_TELNET_ACCESS' => 'Telnet Settings', | ||||
| 'rma_DESC_TELNET_ACCESS' => 'WARNING:Telnet is currently enabled, but this feature is | ||||
| no longer supported.Telnet is inherently insecure and should only | ||||
| no longer supported. Telnet is inherently insecure and should only | ||||
| be used in circumstances where no practical alternative exists. You | ||||
| should change option to [_1] and use | ||||
| secure shell if remote access is | ||||
| required.Once disabled, telnet will no longer appear on this  | ||||
| required. Once disabled, telnet will no longer appear on this  | ||||
| screen. ', | ||||
| 'rma_TITLE_IPSECRW' => 'IPSEC Client (Roadwarrior) Settings', | ||||
| 'rma_DESC_IPSECRW' => 'You can allow IPSEC client access to your server, authenticated by | ||||
| @@ -90,4 +92,4 @@ to the number 0 unless you require IPSEC client access.', | ||||
| can do so here.<br>Any old certificates will no longer | ||||
| authenticate against the server, so <b><i>all IPSEC clients will | ||||
| need to import a new certificate!</i></b>.', | ||||
| 'rma_LABEL_IPSECRW_RESET' => 'Reset digital certificates', | ||||
| 'rma_LABEL_IPSECRW_RESET' => 'Reset digital certificates', | ||||
| @@ -2,7 +2,7 @@ | ||||
| 'rvw_FORM_TITLE' => 'Review configuration', | ||||
| 'rvw_DESCRIPTION' => 'This report summarizes the networking, server, and domain | ||||
| parameters on this server relevant to configuring | ||||
| the client computers on your network.You may wish to print this | ||||
| the client computers on your network. You may wish to print this | ||||
| page and use it as a reference.', | ||||
| 'rvw_NETWORKING_PARAMS' => 'Networking Parameters', | ||||
| 'rvw_SERVER_MODE' => 'Server Mode', | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
| by the services running on your server.', | ||||
| 'log_LOG_FILE_SELECT_DESC' => 'Choose a log file to view', | ||||
| 'log_FILTER_PATTERN_DESC' => 'You may optionally specify a filter pattern to display only the | ||||
| lines from the log file which match this pattern.If you leave | ||||
| lines from the log file which match this pattern. If you leave | ||||
| this field blank, all available lines of the log file will be | ||||
| displayed. Note that this option is not used if you download the | ||||
| logfile.', | ||||
|   | ||||
| @@ -0,0 +1,38 @@ | ||||
| Configuration report created {$report_creation_time} | ||||
|  | ||||
| ================== | ||||
| Base configuration | ||||
| ================== | ||||
| SME server version: 	  {$releaseversion} | ||||
| SME server mode:    	  {$systemmode} | ||||
| SME server previous mode: {$previoussystemmode } | ||||
| Running Kernel:     	  {$curkernel} | ||||
| =========================== | ||||
| New RPMs not in base system | ||||
| ===========================      | ||||
| { foreach $i (@newrpms) { | ||||
|             $OUT .= "$i"; | ||||
|           }     | ||||
| }  | ||||
| =========================== | ||||
| Custom and modified templates | ||||
| =========================== | ||||
| { foreach $i (@templates) { | ||||
|             $OUT .= "$i"; | ||||
|           } | ||||
| } | ||||
| =========================== | ||||
| Modified events | ||||
| =========================== | ||||
| { foreach $i (@events) { | ||||
|             $OUT .= "$i"; | ||||
|           } | ||||
| } | ||||
| ======================= | ||||
| Additional repositories | ||||
| ======================= | ||||
| { foreach $r (@repositories) { | ||||
|             $OUT .= "$r"; | ||||
|           } | ||||
| }   		 | ||||
| DONE! | ||||
| @@ -18,9 +18,16 @@ | ||||
|     <% my $btn = l('bugr_Download this report'); %> | ||||
|  | ||||
|     %= form_for 'bugreportD' => (method => 'POST') => begin | ||||
| 	%= submit_button "$btn", class => 'action' | ||||
| 	%= hidden_field 'trt' => $bugr_datas->{trt} | ||||
|     % end     | ||||
| 		%= submit_button "$btn", class => 'action' | ||||
| 		%= hidden_field 'trt' => $bugr_datas->{trt} | ||||
|     % end    | ||||
|      | ||||
|     % my $out = "================== <br />"; | ||||
|     % $out .= "Boot anaysis image (right click and save image to download)<br />"; | ||||
|     % $out .= "================== <br />"; | ||||
|     % $out .= "<img src='images/boot.svg' alt='boot timing image' width=95% >"; | ||||
|      | ||||
|    <br><%= $c->render_to_string(inline=>$out) %><br> | ||||
|  | ||||
| </div> | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| <HR class="sme-copyrightbar"> | ||||
| <a href="https://mojolicious.org" target="_blank"><img src="images/sme-mojo-logo-white.png" style="position:relative;"></a> | ||||
| <font class="sme-copyright"> | ||||
| %	if ( $c->is_logged_in ) { | ||||
| %	if ( $c->is_logged_in && $c->is_admin) { | ||||
| 	SME Server <%= session 'releaseVersion' %>-<%= $c->app->VERSION %> Manager II | ||||
| 	% my $mode; | ||||
| 	% if (config->{mode} eq 'development'){ $mode = '-dev';} else { $mode = '';} | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| <%     use POSIX qw(strftime); %> | ||||
| <div id="info"> | ||||
|     <% if (! $c->session->{PwdSet} ) { %> | ||||
| 	<div class="sme-error"><h5> | ||||
| @@ -13,4 +14,12 @@ | ||||
|         Warning: Development or debug mode enabled AND public access is offered ! | ||||
|         </h5></div> | ||||
|     <% } %> | ||||
|     <% my $curdate = strftime '%Y%m%d', localtime; %> | ||||
|     <% if ( "$curdate"  >= "20290531" ) { %> | ||||
| 	<div class="sme-error"><h5> | ||||
|       URGENT NOTICE: As per May 31st 2029, SME Server 11 is obsolete, and potentially INSECURE. NO support will be offered for any issue found with this installed version. | ||||
|       Please migrate IMMEDIATELY to Koozali SME Server 12 or higher version. Failure to upgrade may lead to the compromise of this server. | ||||
|       </br>Please, consult <a href="https://wiki.koozali.org/SME_Server:Download" target="_blank">https://wiki.koozali.org/SME_Server:Download</a> to get the latest version | ||||
|      </h5></div> | ||||
|     <% } %> | ||||
| </div> | ||||
| @@ -2,7 +2,7 @@ Summary: Sme server  navigation module : manager 2 | ||||
| %define name smeserver-manager | ||||
| Name: %{name} | ||||
| %define version 11.0.0 | ||||
| %define release 58 | ||||
| %define release 65 | ||||
| Version: %{version} | ||||
| Release: %{release}%{?dist} | ||||
| License: GPL | ||||
| @@ -143,6 +143,29 @@ true | ||||
| %defattr(-,root,root) | ||||
|  | ||||
| %changelog | ||||
| * Sun Mar 09 2025 Brian Read <brianr@koozali.org> 11.0.0-65.sme | ||||
| - Sort out missing hostname on nfs and cifs workstation backup on error [SME: 12948] | ||||
|  | ||||
| * Sat Mar 08 2025 Brian Read <brianr@koozali.org> 11.0.0-64.sme | ||||
| - Add code to check for boot phase completion [SME: 12953] | ||||
|  | ||||
| * Thu Mar 06 2025 Brian Read <brianr@koozali.org> 11.0.0-63.sme | ||||
| - Add boot.svg image to Bug Report panel [SME: 12953] | ||||
| - Move report template to inside smanager tree | ||||
| - Add one-off systemd task to create boot.svg run from panel | ||||
|  | ||||
| * Tue Mar 04 2025 Brian Read <brianr@koozali.org> 11.0.0-62.sme | ||||
| - Update *_en.lex files to conform to standard english punctuation  [SME: 11809] | ||||
|  | ||||
| * Tue Mar 04 2025 Brian Read <brianr@koozali.org> 11.0.0-61.sme | ||||
| - Arrange for the version in the footer to be suppressed if non admin login  [SME: 12887] | ||||
|  | ||||
| * Thu Feb 27 2025 Brian Read <brianr@koozali.org> 11.0.0-60.sme | ||||
| - Enhance ssh security wording to mention autoblock in remoteaccess panel  [SME: 8309] | ||||
|  | ||||
| * Thu Feb 27 2025 Brian Read <brianr@koozali.org> 11.0.0-59.sme | ||||
| - Arrange for Urgent notice to be displayed if date is past Rocky 8 EOL [SME: 12918] | ||||
|  | ||||
| * Tue Feb 25 2025 Brian Read <brianr@koozali.org> 11.0.0-58.sme | ||||
| - re-organise open db placement [SME: 12695] | ||||
| - Re-arrange parameters to tar to avoid warning message in logs [SME: 12943] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user