public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [git.ipfire.org] IPFire 2.x development tree branch, next, updated. ae7d1ef99721f6e3b7dadeb1e3ae13fd08c48e57
@ 2024-08-06 15:49 Michael Tremer
  0 siblings, 0 replies; only message in thread
From: Michael Tremer @ 2024-08-06 15:49 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 129348 bytes --]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".

The branch, next has been updated
       via  ae7d1ef99721f6e3b7dadeb1e3ae13fd08c48e57 (commit)
       via  86ca826ff133eb00b94ae47ac4ab27ac69f037c2 (commit)
       via  bdfaa8177fb1735e0d6c5b09f5f055c3fd827b9c (commit)
       via  9cbdd6b2e88ffe86ac59fa4dd82602b6360aec8e (commit)
       via  21884cc749bbe1fd49b992211939a1a6efc7b00c (commit)
       via  38077d69a964f7cc9b2759ea8840de8a1a3f397d (commit)
       via  4a04ad26b4c7c8389b444f5875941f11a351325d (commit)
       via  aca5f661c2440ff16f9cb11de2061ad341d9190c (commit)
       via  0b16963484967977709bf21bcf2deb4adaaf4ee9 (commit)
       via  b5e6a2c56fd905588d52e2e0845af6c2803cce26 (commit)
       via  42201c17bd5ca6442f1d8eb9117b22655314a927 (commit)
       via  bdb8ef8db2d53a20fe1b9015f30899cd68124112 (commit)
       via  f0bf24319352612b2b52ca49cfcac5ba6d49e62f (commit)
       via  864b47bf796e28ede22b90de49b1fd3bc49f555b (commit)
       via  0869a6f5f3bbc1bbaed02511c3996d942bc60c7a (commit)
       via  76f429d5d89e8da6ebdd26c6bff8d62877225b7b (commit)
      from  f7879935a58e1420f632c64b98b21b08d6f8b046 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ae7d1ef99721f6e3b7dadeb1e3ae13fd08c48e57
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 17:49:13 2024 +0200

    core188: Remove recently deleted files
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 86ca826ff133eb00b94ae47ac4ab27ac69f037c2
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 17:45:58 2024 +0200

    header.pl: Bump the CSS version so that browsers reload the file
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit bdfaa8177fb1735e0d6c5b09f5f055c3fd827b9c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 17:36:20 2024 +0200

    index.cgi: Remove all the boxes
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 9cbdd6b2e88ffe86ac59fa4dd82602b6360aec8e
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 17:33:56 2024 +0200

    CSS: Keep links in the same colour in notes sections
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 21884cc749bbe1fd49b992211939a1a6efc7b00c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 17:33:35 2024 +0200

    index.cgi: Move all warnings into the new system
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 38077d69a964f7cc9b2759ea8840de8a1a3f397d
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 17:28:13 2024 +0200

    index.cgi: Remove the warnings box and show a list of warnings instead
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 4a04ad26b4c7c8389b444f5875941f11a351325d
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 17:17:21 2024 +0200

    index.cgi: Remove hard-coded 80% table width
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit aca5f661c2440ff16f9cb11de2061ad341d9190c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 17:14:41 2024 +0200

    services.cgi: Drop the process graphs
    
    These are utterly broken and incomplete. I don't want to fix this now,
    so I am dropping it.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 0b16963484967977709bf21bcf2deb4adaaf4ee9
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Mar 23 18:42:13 2024 +0100

    web: Create a function to show the service status
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit b5e6a2c56fd905588d52e2e0845af6c2803cce26
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Mar 23 20:14:19 2024 +0100

    services.cgi: Remove unused variables
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 42201c17bd5ca6442f1d8eb9117b22655314a927
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Mar 23 20:13:15 2024 +0100

    services.cgi: Use a section for the main services
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit bdb8ef8db2d53a20fe1b9015f30899cd68124112
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Sat Mar 23 18:55:52 2024 +0100

    services.cgi: Use the new service status function
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit f0bf24319352612b2b52ca49cfcac5ba6d49e62f
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 16:57:41 2024 +0200

    langs: Add translations for the systems graphs
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 864b47bf796e28ede22b90de49b1fd3bc49f555b
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 16:54:06 2024 +0200

    Run "./make.sh lang"
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 0869a6f5f3bbc1bbaed02511c3996d942bc60c7a
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 16:51:06 2024 +0200

    graphs: Highlight the default range before the user clicks anything
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 76f429d5d89e8da6ebdd26c6bff8d62877225b7b
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Tue Aug 6 16:44:53 2024 +0200

    licenses: Remove the braindead GPL acception stage
    
    The GPL is not an EULA and so there is no value in having users
    accept it.
    
    The UI is very broken and so I believe it is best to drop this entirely.
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

-----------------------------------------------------------------------

Summary of changes:
 config/cfgroot/general-functions.pl           |  76 +++++++++
 config/cfgroot/graphs.pl                      |  95 +-----------
 config/cfgroot/header.pl                      |  93 ++++++++++-
 config/collectd/collectd.conf                 |  13 --
 config/rootfiles/common/aarch64/stage2        |   2 -
 config/rootfiles/common/riscv64/stage2        |   2 -
 config/rootfiles/common/web-user-interface    |   1 -
 config/rootfiles/common/x86_64/stage2         |   2 -
 config/rootfiles/core/188/update.sh           |   4 +-
 doc/language_issues.de                        |  22 ++-
 doc/language_issues.en                        |  24 +--
 doc/language_issues.es                        |  24 ++-
 doc/language_issues.fr                        |  24 ++-
 doc/language_issues.it                        |  24 ++-
 doc/language_issues.nl                        |  24 ++-
 doc/language_issues.pl                        |  24 ++-
 doc/language_issues.ru                        |  24 ++-
 doc/language_issues.tr                        |  24 ++-
 doc/language_missings                         |  22 +++
 html/cgi-bin/gpl.cgi                          | 101 ------------
 html/cgi-bin/index.cgi                        |  97 +++++-------
 html/cgi-bin/ovpnmain.cgi                     |   9 ++
 html/cgi-bin/services.cgi                     | 213 ++++++++------------------
 html/html/index.cgi                           |   6 -
 html/html/themes/ipfire/include/css/style.css |  30 ++++
 langs/de/cgi-bin/de.pl                        |   2 +
 langs/en/cgi-bin/en.pl                        |   3 +
 lfs/stage2                                    |   4 -
 src/installer/main.c                          |  57 -------
 29 files changed, 525 insertions(+), 521 deletions(-)
 delete mode 100644 html/cgi-bin/gpl.cgi

Difference in files:
diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl
index a87e5c070a..8ba6e3f79f 100644
--- a/config/cfgroot/general-functions.pl
+++ b/config/cfgroot/general-functions.pl
@@ -97,6 +97,82 @@ sub system($) {
 	return $rc;
 }
 
+sub read_pids($) {
+	my $pidfile = shift;
+
+	# Open the PID file
+	open(PIDFILE, "<${pidfile}");
+
+	# Store all PIDs here
+	my @pids = ();
+
+	# Read all PIDs
+	while (<PIDFILE>) {
+		chomp $_;
+
+		if (-d "/proc/$_") {
+			push(@pids, $_);
+		}
+	}
+
+	# Close the PID file
+	close(PIDFILE);
+
+	return @pids;
+}
+
+sub find_pids($) {
+	my $process = shift;
+
+	# Store all PIDs here
+	my @pids = ();
+
+	foreach my $status (</proc/*/status>) {
+		# Open the status file
+		open(STATUS, "<${status}");
+
+		# Read the status file
+		while (<STATUS>) {
+			# If the name does not match, we break the loop immediately
+			if ($_ =~ m/^Name:\s+(.*)$/) {
+				last if ($process ne $1);
+
+			# Push the PID onto the list
+			} elsif ($_ =~ m/^Pid:\s+(\d+)$/) {
+				push(@pids, $1);
+
+				# Once we got here, we are done
+				last;
+			}
+		}
+
+		# Close the status file
+		close(STATUS);
+	}
+
+	return @pids;
+}
+
+sub get_memory_consumption() {
+	my $memory = 0;
+
+	foreach my $pid (@_) {
+		# Open the status file or skip on error
+		open(STATUS, "/proc/${pid}/status") or next;
+
+		while (<STATUS>) {
+			if ($_ =~ m/^VmRSS:\s+(\d+) kB/) {
+				$memory += $1 * 1024;
+				last;
+			}
+		}
+
+		close(STATUS);
+	}
+
+	return $memory;
+}
+
 # Function to remove duplicates from an array
 sub uniq { my %seen; grep !$seen{$_}++, @_ }
 
diff --git a/config/cfgroot/graphs.pl b/config/cfgroot/graphs.pl
index 4bf1a57794..2439c5bf62 100644
--- a/config/cfgroot/graphs.pl
+++ b/config/cfgroot/graphs.pl
@@ -119,9 +119,11 @@ END
 
 	# Print range select buttons
 	foreach my $range (@time_ranges) {
+		my $selected = ($range eq $default_range) ? "class=\"selected\"" : "";
+
 		print <<END;
 				<li>
-					<button data-range="$range" onclick="rrdimage_selectRange(this)">
+					<button data-range="$range" onclick="rrdimage_selectRange(this)" $selected>
 						$Lang::tr{$range}
 					</button>
 				</li>
@@ -397,97 +399,6 @@ sub updateswapgraph {
 		return "Error in RRD::graph for memory: ".$ERROR."\n" if $ERROR;
 }
 
-# Generate the Process Cpu Graph for the current period of time for values given by collecd
-
-sub updateprocessescpugraph {
-	my @processesgraph = getprocesses();
-	my $period    = $_[0];
-	my $count="0";
-
-	my @command = (
-		@GRAPH_ARGS,
-		"-",
-		"--start",
-		"-1".$period,
-		"-l 0",
-		"-r",
-		"--color=SHADEA".$color{"color19"},
-		"--color=SHADEB".$color{"color19"},
-		"--color=BACK".$color{"color21"}
-	);
-
-		foreach(@processesgraph){
-			chomp($_);my @name=split(/\-/,$_);chop($name[1]);
-			push(@command,"DEF:".$name[1]."user=".$_."ps_cputime.rrd:user:AVERAGE");
-			push(@command,"DEF:".$name[1]."system=".$_."ps_cputime.rrd:syst:AVERAGE");
-			push(@command,"CDEF:".$name[1]."=".$name[1]."user,".$name[1]."system,+");
-		}
-
-		push(@command,"COMMENT:".$Lang::tr{'caption'}."\\j");
-
-		my $colorIndex = 0;
-		foreach(@processesgraph){
-			my $colorIndex = 10 + $count % 15;
-			my $color="$color{\"color$colorIndex\"}";
-			chomp($_);my @name=split(/\-/,$_);chop($name[1]);
-			if ($count eq "0"){
-				push(@command,"AREA:".$name[1].$color."A0:".$name[1]);
-			}else{
-				push(@command,"STACK:".$name[1].$color."A0:".$name[1]);
-			}
-			$count++;
-		}
-
-		RRDs::graph (@command);
-		$ERROR = RRDs::error;
-		return "Error in RRD::graph for processes: ".$ERROR."\n" if $ERROR;
-}
-
-# Generate the Process Memory Graph for the current period of time for values given by collecd
-
-sub updateprocessesmemorygraph {
-	my @processesgraph = getprocesses();
-	my $period    = $_[0];
-	my $count="0";
-
-	my @command = (
-		@GRAPH_ARGS,
-		"-",
-		"--start",
-		"-1".$period,
-		"-l 0",
-		"-r",
-		"-v ".$Lang::tr{'bytes'},
-		"--color=SHADEA".$color{"color19"},
-		"--color=SHADEB".$color{"color19"},
-		"--color=BACK".$color{"color21"}
-	);
-
-		foreach(@processesgraph){
-			chomp($_);my @name=split(/\-/,$_);chop($name[1]);
-			push(@command,"DEF:".$name[1]."=".$_."ps_rss.rrd:value:AVERAGE");
-		}
-
-		push(@command,"COMMENT:".$Lang::tr{'caption'}."\\j");
-
-		my $colorIndex = 0;
-		foreach(@processesgraph){
-			chomp($_);my @name=split(/\-/,$_);chop($name[1]);
-			my $colorIndex = 10 + $count % 15;
-			my $color="$color{\"color$colorIndex\"}";
-			if ($count eq "0"){
-				push(@command,"AREA:".$name[1].$color."A0:".$name[1]);
-			}else{
-				push(@command,"STACK:".$name[1].$color."A0:".$name[1]);
-			}
-			$count++;
-		}
-
-		RRDs::graph (@command);
-		$ERROR = RRDs::error;
-		return "Error in RRD::graph for processesmemory: ".$ERROR."\n" if $ERROR;
-}
-
 # Generate the Disk Graph for the current period of time for values given by collecd
 
 sub updatediskgraph {
diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl
index af524af53e..a4a4f5d03f 100644
--- a/config/cfgroot/header.pl
+++ b/config/cfgroot/header.pl
@@ -236,7 +236,7 @@ print <<END;
 END
 
 
-print "<link href=\"/themes/ipfire/include/css/style.css?v=20240125\" rel=\"stylesheet\" type=\"text/css\" />\n";
+print "<link href=\"/themes/ipfire/include/css/style.css?v=20240806\" rel=\"stylesheet\" type=\"text/css\" />\n";
 
 
 if ($settings{'SPEED'} ne 'off') {
@@ -440,8 +440,6 @@ sub genmenu {
     my %sublogshash = ();
     my $sublogs = \%sublogshash;
 
-  if ( -e "/var/ipfire/main/gpl_accepted") {
-
     eval `/bin/cat /var/ipfire/menu.d/*.menu`;
     eval `/bin/cat /var/ipfire/menu.d/*.main`;
 
@@ -472,7 +470,6 @@ sub genmenu {
         $menu->{'03.network'}{'subMenu'}->{'80.macadressmenu'}{'enabled'} = 0;
         $menu->{'03.network'}{'subMenu'}->{'90.wakeonlan'}{'enabled'} = 0;
     }
-  }
 }
 
 sub showhttpheaders($) {
@@ -899,4 +896,92 @@ sub _read_manualpage_hash() {
 	close($file);
 }
 
+sub ServiceStatus() {
+	my $services = shift;
+	my %services = %{ $services };
+
+	# Write the table header
+	print <<EOF;
+		<table class="tbl">
+			<!-- <thead>
+				<tr>
+					<th>
+						$Lang::tr{'service'}
+					</th>
+
+					<th>
+						$Lang::tr{'status'}
+					</th>
+
+					<th>
+						$Lang::tr{'memory'}
+					</th>
+				</tr>
+			</thead> -->
+
+			<tbody>
+EOF
+
+	foreach my $service (sort keys %services) {
+		my %config = %{ $services{$service} };
+
+		my $pidfile = $config{"pidfile"};
+		my $process = $config{"process"};
+
+		# Collect all pids
+		my @pids = ();
+
+		# Read the PID file or go search...
+		if (defined $pidfile) {
+			@pids = &General::read_pids("${pidfile}");
+		} else {
+			@pids = &General::find_pids("${process}");
+		}
+
+		# Get memory consumption
+		my $mem = &General::get_memory_consumption(@pids);
+
+		print <<EOF;
+				<tr>
+					<th scope="row">
+						$service
+					</th>
+EOF
+
+		# Running?
+		if (scalar @pids) {
+			# Format memory
+			$mem = &General::formatBytes($mem);
+
+			print <<EOF;
+					<td class="status is-running">
+						$Lang::tr{'running'}
+					</td>
+
+					<td class="text-right">
+						${mem}
+					</td>
+EOF
+
+		# Not Running
+		} else {
+			print <<EOF;
+					<td class="status is-stopped" colspan="2">
+						$Lang::tr{'stopped'}
+					</td>
+EOF
+		}
+
+		print <<EOF;
+				</tr>
+EOF
+
+	}
+
+	print <<EOF;
+		</tbody>
+		</table>
+EOF
+}
+
 1; # End of package "Header"
diff --git a/config/collectd/collectd.conf b/config/collectd/collectd.conf
index cc49f0ba7d..27e1fe984a 100644
--- a/config/collectd/collectd.conf
+++ b/config/collectd/collectd.conf
@@ -22,7 +22,6 @@ LoadPlugin load
 #LoadPlugin logfile
 LoadPlugin memory
 LoadPlugin ping
-LoadPlugin processes
 LoadPlugin rrdtool
 LoadPlugin sensors
 LoadPlugin swap
@@ -66,18 +65,6 @@ include "/etc/collectd.precache"
 	timeout 10
 </Plugin>
 
-<Plugin processes>
-	Process "sshd"
-	Process "smbd"
-	Process "nmbd"
-	Process "squid"
-	Process "squidguard"
-	Process "charon"
-	Process "openvpn"
-	Process "qemu"
-	Process "mpd"
-</Plugin>
-
 <Plugin rrdtool>
 	DataDir "/var/log/rrd/collectd"
 </Plugin>
diff --git a/config/rootfiles/common/aarch64/stage2 b/config/rootfiles/common/aarch64/stage2
index e8cdeab9f0..3ac85638fa 100644
--- a/config/rootfiles/common/aarch64/stage2
+++ b/config/rootfiles/common/aarch64/stage2
@@ -132,8 +132,6 @@ usr/local/bin/update-location-database
 usr/sbin/openvpn-metrics
 #usr/share
 #usr/share/doc
-#usr/share/doc/licenses
-usr/share/doc/licenses/GPLv3
 #usr/share/info
 #usr/share/locale
 #usr/share/man
diff --git a/config/rootfiles/common/riscv64/stage2 b/config/rootfiles/common/riscv64/stage2
index f70c737140..fdccf0d337 100644
--- a/config/rootfiles/common/riscv64/stage2
+++ b/config/rootfiles/common/riscv64/stage2
@@ -133,8 +133,6 @@ usr/local/bin/update-location-database
 usr/sbin/openvpn-metrics
 #usr/share
 #usr/share/doc
-#usr/share/doc/licenses
-usr/share/doc/licenses/GPLv3
 #usr/share/info
 #usr/share/locale
 #usr/share/man
diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface
index 7ec076d2d8..7678c1e5d0 100644
--- a/config/rootfiles/common/web-user-interface
+++ b/config/rootfiles/common/web-user-interface
@@ -20,7 +20,6 @@ srv/web/ipfire/cgi-bin/fireinfo.cgi
 srv/web/ipfire/cgi-bin/firewall.cgi
 srv/web/ipfire/cgi-bin/fwhosts.cgi
 srv/web/ipfire/cgi-bin/getrrdimage.cgi
-srv/web/ipfire/cgi-bin/gpl.cgi
 #srv/web/ipfire/cgi-bin/guardian.cgi
 srv/web/ipfire/cgi-bin/gui.cgi
 srv/web/ipfire/cgi-bin/hardwaregraphs.cgi
diff --git a/config/rootfiles/common/x86_64/stage2 b/config/rootfiles/common/x86_64/stage2
index f6678fc407..c0decfc279 100644
--- a/config/rootfiles/common/x86_64/stage2
+++ b/config/rootfiles/common/x86_64/stage2
@@ -132,8 +132,6 @@ usr/local/bin/update-location-database
 usr/sbin/openvpn-metrics
 #usr/share
 #usr/share/doc
-#usr/share/doc/licenses
-usr/share/doc/licenses/GPLv3
 #usr/share/info
 #usr/share/locale
 #usr/share/man
diff --git a/config/rootfiles/core/188/update.sh b/config/rootfiles/core/188/update.sh
index a31e3617a5..f76b8659d5 100644
--- a/config/rootfiles/core/188/update.sh
+++ b/config/rootfiles/core/188/update.sh
@@ -38,8 +38,10 @@ extract_files
 
 # Remove files
 rm -vrf \
+	/srv/web/ipfire/cgi-bin/gpl.cgi \
 	/srv/web/ipfire/html/themes/ipfire/include/functions.pl \
-	/usr/bin/br2684ctl
+	/usr/bin/br2684ctl \
+	/usr/share/doc/licenses
 
 # update linker config
 ldconfig
diff --git a/doc/language_issues.de b/doc/language_issues.de
index 757b566e64..e2ca260def 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -34,6 +34,7 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
+WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: Weekly
 WARNING: translation string unused: access allowed
@@ -41,6 +42,7 @@ WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
 WARNING: translation string unused: accounting user nonpdc
 WARNING: translation string unused: accounting user pdc
+WARNING: translation string unused: acpitemp
 WARNING: translation string unused: activate user
 WARNING: translation string unused: add a new rule
 WARNING: translation string unused: add cron
@@ -168,6 +170,8 @@ WARNING: translation string unused: could not download the available updates lis
 WARNING: translation string unused: could not open available updates file
 WARNING: translation string unused: could not open installed updates file
 WARNING: translation string unused: could not open update information file
+WARNING: translation string unused: cpu frequency per
+WARNING: translation string unused: cpu usage per
 WARNING: translation string unused: create
 WARNING: translation string unused: create mask
 WARNING: translation string unused: create new backup
@@ -214,6 +218,7 @@ WARNING: translation string unused: directory mask
 WARNING: translation string unused: directory writeable
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disconnects
+WARNING: translation string unused: disk access
 WARNING: translation string unused: display charset
 WARNING: translation string unused: display traffic at home
 WARNING: translation string unused: display webinterface effects
@@ -301,6 +306,7 @@ WARNING: translation string unused: extrahd to root
 WARNING: translation string unused: extrahd unable to read
 WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
+WARNING: translation string unused: firewall hits per
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
 WARNING: translation string unused: force update
@@ -366,9 +372,15 @@ WARNING: translation string unused: generatekeys
 WARNING: translation string unused: generatepolicy
 WARNING: translation string unused: generatereport
 WARNING: translation string unused: genkey
+WARNING: translation string unused: gpl i accept these terms and conditions
+WARNING: translation string unused: gpl license agreement
+WARNING: translation string unused: gpl please read carefully the general public license and accept it below
+WARNING: translation string unused: gpl unofficial translation of the general public license v3
+WARNING: translation string unused: graph per
 WARNING: translation string unused: green interface
 WARNING: translation string unused: guest ok
 WARNING: translation string unused: gz with key
+WARNING: translation string unused: harddisk temperature
 WARNING: translation string unused: harddisk temperature graphs
 WARNING: translation string unused: hint
 WARNING: translation string unused: host
@@ -403,7 +415,6 @@ WARNING: translation string unused: installed updates
 WARNING: translation string unused: interfaces
 WARNING: translation string unused: intrusion detection system log viewer
 WARNING: translation string unused: intrusion detection system2
-WARNING: translation string unused: intrusion prevention system
 WARNING: translation string unused: invalid cache size
 WARNING: translation string unused: invalid date entered
 WARNING: translation string unused: invalid downlink speed
@@ -438,6 +449,7 @@ WARNING: translation string unused: lateprompting
 WARNING: translation string unused: legacy architecture warning
 WARNING: translation string unused: length
 WARNING: translation string unused: line
+WARNING: translation string unused: linkq
 WARNING: translation string unused: load printer
 WARNING: translation string unused: loaded modules
 WARNING: translation string unused: local hard disk
@@ -475,11 +487,15 @@ WARNING: translation string unused: marked
 WARNING: translation string unused: max incoming size
 WARNING: translation string unused: max outgoing size
 WARNING: translation string unused: max size
+WARNING: translation string unused: mbmon fan
 WARNING: translation string unused: mbmon fan in
 WARNING: translation string unused: mbmon graphs
+WARNING: translation string unused: mbmon temp
 WARNING: translation string unused: mbmon temp in
 WARNING: translation string unused: mbmon value
+WARNING: translation string unused: mbmon volt
 WARNING: translation string unused: meaning
+WARNING: translation string unused: memory usage per
 WARNING: translation string unused: messages logging
 WARNING: translation string unused: min size
 WARNING: translation string unused: missing dat
@@ -723,6 +739,7 @@ WARNING: translation string unused: subnet
 WARNING: translation string unused: subnet is invalid
 WARNING: translation string unused: subscripted user rules
 WARNING: translation string unused: successfully refreshed updates list
+WARNING: translation string unused: swap usage per
 WARNING: translation string unused: system graphs
 WARNING: translation string unused: system log viewer
 WARNING: translation string unused: system status information
@@ -755,6 +772,7 @@ WARNING: translation string unused: traffic calc time
 WARNING: translation string unused: traffic calc time bad
 WARNING: translation string unused: traffic info messages
 WARNING: translation string unused: traffic monitor
+WARNING: translation string unused: traffic on
 WARNING: translation string unused: traffic shaping
 WARNING: translation string unused: traffic shaping settings
 WARNING: translation string unused: traffic warn level bad
@@ -810,6 +828,7 @@ WARNING: translation string unused: upstream proxy host:port
 WARNING: translation string unused: upstream username
 WARNING: translation string unused: uptime
 WARNING: translation string unused: uptime and users
+WARNING: translation string unused: uptime load average
 WARNING: translation string unused: urlfilter background image
 WARNING: translation string unused: urlfilter background text
 WARNING: translation string unused: urlfilter enable jpeg
@@ -940,6 +959,7 @@ WARNING: untranslated string: log drop hostile out = Log dropped packets TO host
 WARNING: untranslated string: netbios nameserver daemon = NetBIOS Nameserver Daemon
 WARNING: untranslated string: no entries = No entries at the moment.
 WARNING: untranslated string: optional = Optional
+WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: pakfire invalid tree = Invalid repository selected
 WARNING: untranslated string: reg_file_data_sampling = Register File Data Sampling (RFDS)
 WARNING: untranslated string: regenerate host certificate = Renew Host Certificate
diff --git a/doc/language_issues.en b/doc/language_issues.en
index 4f2b8a03c0..443c2a9512 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -83,7 +83,6 @@ WARNING: untranslated string: TOS rule = TOS rule
 WARNING: untranslated string: The class number does not match the specified interface. = The class number does not match the specified interface.
 WARNING: untranslated string: The destination IP address is invalid. = The destination IP address is invalid.
 WARNING: untranslated string: The source IP address is invalid. = The source IP address is invalid.
-WARNING: untranslated string: Utilization on = Utilization on
 WARNING: untranslated string: WakeOnLan = Wake On Lan
 WARNING: untranslated string: a ca certificate with this name already exists = A CA certificate with this name already exists.
 WARNING: untranslated string: a connection with this common name already exists = A connection with this common name already exists.
@@ -92,7 +91,6 @@ WARNING: untranslated string: abort = abort
 WARNING: untranslated string: access point name = Access Point Name
 WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
 WARNING: untranslated string: access point name is required = Access Point Name is required
-WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: action = Action
 WARNING: untranslated string: activate = Activate
 WARNING: untranslated string: active = Active
@@ -517,7 +515,6 @@ WARNING: untranslated string: country = Country
 WARNING: untranslated string: country codes and flags = Country Codes and Flags:
 WARNING: untranslated string: countrycode = Code
 WARNING: untranslated string: cpu frequency = CPU frequency
-WARNING: untranslated string: cpu frequency per = CPU frequency per
 WARNING: untranslated string: cpu idle usage = Idle CPU Usage
 WARNING: untranslated string: cpu interrupt usage = Interrupt CPU Usage
 WARNING: untranslated string: cpu iowait usage = CPU waiting for IO
@@ -525,7 +522,6 @@ WARNING: untranslated string: cpu irq usage = IRQ CPU Usage
 WARNING: untranslated string: cpu nice usage = Nice CPU Usage
 WARNING: untranslated string: cpu steal usage = Steal CPU Usage
 WARNING: untranslated string: cpu system usage = System CPU Usage
-WARNING: untranslated string: cpu usage per = CPU Usage per
 WARNING: untranslated string: cpu user usage = User CPU Usage
 WARNING: untranslated string: credits = Credits
 WARNING: untranslated string: crl = Certificate Revocation List
@@ -613,7 +609,6 @@ WARNING: untranslated string: dialup red not ppp = Dialup profiles can only used
 WARNING: untranslated string: disable = Disable
 WARNING: untranslated string: disabled = disabled
 WARNING: untranslated string: disconnected = Disconnected
-WARNING: untranslated string: disk access = Disk Access
 WARNING: untranslated string: disk usage = Disk usage
 WARNING: untranslated string: display = Display
 WARNING: untranslated string: display hostname in window title = Display hostname in window title
@@ -794,7 +789,6 @@ WARNING: untranslated string: firewall graph country = Firewall-Diagram (Country
 WARNING: untranslated string: firewall graph ip = Firewall-Diagram (IP)
 WARNING: untranslated string: firewall graph port = Firewall-Diagram (Port)
 WARNING: untranslated string: firewall hits = Total number of firewall hits for
-WARNING: untranslated string: firewall hits per = firewallhits per
 WARNING: untranslated string: firewall log = Firewall log
 WARNING: untranslated string: firewall log country = Firewall log (Country)
 WARNING: untranslated string: firewall log ip = Firewall log (IP)
@@ -987,12 +981,7 @@ WARNING: untranslated string: generate root/host certificates = Generate root/ho
 WARNING: untranslated string: generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient = Generating the root and host certificates may take a long time.  It can take up to several minutes on older hardware. Please be patient.
 WARNING: untranslated string: genre = Genre
 WARNING: untranslated string: global settings = Global Settings
-WARNING: untranslated string: gpl i accept these terms and conditions = I accept these terms and conditions
-WARNING: untranslated string: gpl license agreement = License Agreement
-WARNING: untranslated string: gpl please read carefully the general public license and accept it below = Please read carefully the General Public License and accept it below
-WARNING: untranslated string: gpl unofficial translation of the general public license v3 = Unofficial translation of the General Public License v3
 WARNING: untranslated string: graph = Graph
-WARNING: untranslated string: graph per = per
 WARNING: untranslated string: green = GREEN
 WARNING: untranslated string: grouptype = Grouptype:
 WARNING: untranslated string: guaranteed bandwidth = Guaranteed bandwidth
@@ -1029,7 +1018,6 @@ WARNING: untranslated string: guardian service = unknown string
 WARNING: untranslated string: gui settings = GUI Settings
 WARNING: untranslated string: hangup = Disconnect
 WARNING: untranslated string: hangup string = Hangup:
-WARNING: untranslated string: harddisk temperature = Harddisk Temperature
 WARNING: untranslated string: hardware graphs = Hardware Graphs
 WARNING: untranslated string: hardware vulnerabilities = Hardware Vulnerabilities
 WARNING: untranslated string: hdd temperature in = Harddisk temperature in
@@ -1115,6 +1103,7 @@ WARNING: untranslated string: internet = INTERNET
 WARNING: untranslated string: intrusion detection = Intrusion Prevention
 WARNING: untranslated string: intrusion detection system = Intrusion Prevention System
 WARNING: untranslated string: intrusion detection system rules = Ruleset
+WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid broadcast ip = Invalid broadcast IP
 WARNING: untranslated string: invalid characters found in pre-shared key = Invalid characters found in pre-shared key.
 WARNING: untranslated string: invalid default lease time = Invalid default lease time.
@@ -1237,7 +1226,7 @@ WARNING: untranslated string: least preferred = least preferred
 WARNING: untranslated string: legend = Legend
 WARNING: untranslated string: lifetime = Lifetime:
 WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
-WARNING: untranslated string: linkq = Link Quality
+WARNING: untranslated string: load average = Load Average
 WARNING: untranslated string: local ip address = Local IP Address
 WARNING: untranslated string: local ntp server specified but not enabled = Local NTP server specified but not enabled
 WARNING: untranslated string: local subnet = Local subnet:
@@ -1307,18 +1296,14 @@ WARNING: untranslated string: maximum = Maximum
 WARNING: untranslated string: maximum retries = Maximum retries:
 WARNING: untranslated string: may = May
 WARNING: untranslated string: mbmon display = Display
-WARNING: untranslated string: mbmon fan = Fan Speed
 WARNING: untranslated string: mbmon label = Label
 WARNING: untranslated string: mbmon settings = mbmongraph settings
-WARNING: untranslated string: mbmon temp = Temperature
-WARNING: untranslated string: mbmon volt = Voltage
 WARNING: untranslated string: media = Media
 WARNING: untranslated string: media information = Media information
 WARNING: untranslated string: medium = Medium
 WARNING: untranslated string: meltdown = Meltdown
 WARNING: untranslated string: memory = Memory
 WARNING: untranslated string: memory information = Memory information
-WARNING: untranslated string: memory usage per = Memory Usage per
 WARNING: untranslated string: messages = Messages
 WARNING: untranslated string: method = Method:
 WARNING: untranslated string: min costs = Minimum costs
@@ -1471,6 +1456,7 @@ WARNING: untranslated string: ovpn on blue = OpenVPN on BLUE:
 WARNING: untranslated string: ovpn on orange = OpenVPN on ORANGE:
 WARNING: untranslated string: ovpn on red = OpenVPN on RED:
 WARNING: untranslated string: ovpn port in root range = A port number of 1024 or higher is required.
+WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: ovpn routes push = Routes (one per line) e.g. 192.168.10.0/255.255.255.0 192.168.20.0/24
 WARNING: untranslated string: ovpn routes push options = Route push options
 WARNING: untranslated string: ovpn rw connection log = OpenVPN Roadwarrior Connections Log
@@ -1539,6 +1525,7 @@ WARNING: untranslated string: primary wins server address = Primary WINS server
 WARNING: untranslated string: priority = Priority
 WARNING: untranslated string: processes = Processes
 WARNING: untranslated string: processor vulnerability mitigations = Processor Vulnerability Mitigations
+WARNING: untranslated string: processors = Processors
 WARNING: untranslated string: profile = Profile
 WARNING: untranslated string: profile deleted = Profile deleted: 
 WARNING: untranslated string: profile has errors = Profile has errors
@@ -1742,7 +1729,6 @@ WARNING: untranslated string: summaries kept = Keep summaries for
 WARNING: untranslated string: sunday = Sunday
 WARNING: untranslated string: support donation = Support the IPFire project with your donation
 WARNING: untranslated string: swap = Swap
-WARNING: untranslated string: swap usage per = Swap usage per
 WARNING: untranslated string: system = System
 WARNING: untranslated string: system information = System Information
 WARNING: untranslated string: system is offline = The system is offline.
@@ -1824,7 +1810,6 @@ WARNING: untranslated string: tor use exit nodes = Use only these exit nodes (on
 WARNING: untranslated string: tor use guard nodes = Use only these guard nodes (one fingerprint per line)
 WARNING: untranslated string: total connection time = Total Connection Time
 WARNING: untranslated string: total hits for log section = Total hits for log section
-WARNING: untranslated string: traffic on = Traffic on
 WARNING: untranslated string: traffic stat in = In
 WARNING: untranslated string: traffic stat out = Out
 WARNING: untranslated string: traffic stat title = RED Traffic
@@ -1922,7 +1907,6 @@ WARNING: untranslated string: upload a certificate = Upload a certificate:
 WARNING: untranslated string: upload a certificate request = Upload a certificate request:
 WARNING: untranslated string: upload ca certificate = Upload CA certificate
 WARNING: untranslated string: upload p12 file = Upload PKCS12 file
-WARNING: untranslated string: uptime load average = Load average
 WARNING: untranslated string: url filter = URL Filter
 WARNING: untranslated string: urlfilter access = Access
 WARNING: untranslated string: urlfilter activity detection = Activity detection
diff --git a/doc/language_issues.es b/doc/language_issues.es
index b124927aa0..f949d8a033 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -36,6 +36,7 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
+WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: Weekly
 WARNING: translation string unused: access allowed
@@ -43,6 +44,7 @@ WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
 WARNING: translation string unused: accounting user nonpdc
 WARNING: translation string unused: accounting user pdc
+WARNING: translation string unused: acpitemp
 WARNING: translation string unused: activate user
 WARNING: translation string unused: add a new rule
 WARNING: translation string unused: add cron
@@ -189,6 +191,8 @@ WARNING: translation string unused: could not download the available updates lis
 WARNING: translation string unused: could not open available updates file
 WARNING: translation string unused: could not open installed updates file
 WARNING: translation string unused: could not open update information file
+WARNING: translation string unused: cpu frequency per
+WARNING: translation string unused: cpu usage per
 WARNING: translation string unused: create
 WARNING: translation string unused: create mask
 WARNING: translation string unused: create new backup
@@ -243,6 +247,7 @@ WARNING: translation string unused: directory mask
 WARNING: translation string unused: directory writeable
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disconnects
+WARNING: translation string unused: disk access
 WARNING: translation string unused: display charset
 WARNING: translation string unused: display traffic at home
 WARNING: translation string unused: display webinterface effects
@@ -336,6 +341,7 @@ WARNING: translation string unused: extrahd unable to read
 WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
+WARNING: translation string unused: firewall hits per
 WARNING: translation string unused: firewall log viewer
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
@@ -406,9 +412,15 @@ WARNING: translation string unused: generatekeys
 WARNING: translation string unused: generatepolicy
 WARNING: translation string unused: generatereport
 WARNING: translation string unused: genkey
+WARNING: translation string unused: gpl i accept these terms and conditions
+WARNING: translation string unused: gpl license agreement
+WARNING: translation string unused: gpl please read carefully the general public license and accept it below
+WARNING: translation string unused: gpl unofficial translation of the general public license v3
+WARNING: translation string unused: graph per
 WARNING: translation string unused: green interface
 WARNING: translation string unused: guest ok
 WARNING: translation string unused: gz with key
+WARNING: translation string unused: harddisk temperature
 WARNING: translation string unused: harddisk temperature graphs
 WARNING: translation string unused: hint
 WARNING: translation string unused: host
@@ -448,7 +460,6 @@ WARNING: translation string unused: installed updates
 WARNING: translation string unused: interfaces
 WARNING: translation string unused: intrusion detection system log viewer
 WARNING: translation string unused: intrusion detection system2
-WARNING: translation string unused: intrusion prevention system
 WARNING: translation string unused: invalid cache size
 WARNING: translation string unused: invalid date entered
 WARNING: translation string unused: invalid downlink speed
@@ -487,6 +498,7 @@ WARNING: translation string unused: lateprompting
 WARNING: translation string unused: legacy architecture warning
 WARNING: translation string unused: length
 WARNING: translation string unused: line
+WARNING: translation string unused: linkq
 WARNING: translation string unused: load printer
 WARNING: translation string unused: loaded modules
 WARNING: translation string unused: local hard disk
@@ -524,11 +536,15 @@ WARNING: translation string unused: marked
 WARNING: translation string unused: max incoming size
 WARNING: translation string unused: max outgoing size
 WARNING: translation string unused: max size
+WARNING: translation string unused: mbmon fan
 WARNING: translation string unused: mbmon fan in
 WARNING: translation string unused: mbmon graphs
+WARNING: translation string unused: mbmon temp
 WARNING: translation string unused: mbmon temp in
 WARNING: translation string unused: mbmon value
+WARNING: translation string unused: mbmon volt
 WARNING: translation string unused: meaning
+WARNING: translation string unused: memory usage per
 WARNING: translation string unused: messages logging
 WARNING: translation string unused: min size
 WARNING: translation string unused: missing dat
@@ -787,6 +803,7 @@ WARNING: translation string unused: subnet
 WARNING: translation string unused: subnet is invalid
 WARNING: translation string unused: subscripted user rules
 WARNING: translation string unused: successfully refreshed updates list
+WARNING: translation string unused: swap usage per
 WARNING: translation string unused: system graphs
 WARNING: translation string unused: system log viewer
 WARNING: translation string unused: system status information
@@ -822,6 +839,7 @@ WARNING: translation string unused: traffic calc time
 WARNING: translation string unused: traffic calc time bad
 WARNING: translation string unused: traffic info messages
 WARNING: translation string unused: traffic monitor
+WARNING: translation string unused: traffic on
 WARNING: translation string unused: traffic shaping
 WARNING: translation string unused: traffic shaping settings
 WARNING: translation string unused: traffic warn level bad
@@ -880,6 +898,7 @@ WARNING: translation string unused: upstream proxy host:port
 WARNING: translation string unused: upstream username
 WARNING: translation string unused: uptime
 WARNING: translation string unused: uptime and users
+WARNING: translation string unused: uptime load average
 WARNING: translation string unused: urlfilter background image
 WARNING: translation string unused: urlfilter background text
 WARNING: translation string unused: urlfilter enable jpeg
@@ -996,12 +1015,15 @@ WARNING: untranslated string: hostile networks total = Total Hostile Networks
 WARNING: untranslated string: ids provider eol = (EOL)
 WARNING: untranslated string: info messages = unknown string
 WARNING: untranslated string: invalid ip or hostname = Invalid IP Address or Hostname
+WARNING: untranslated string: load average = Load Average
 WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hostile networks
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
 WARNING: untranslated string: no data = unknown string
 WARNING: untranslated string: openvpn cert expires soon = Expires Soon
 WARNING: untranslated string: openvpn cert has expired = Expired
+WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: pakfire ago = ago.
+WARNING: untranslated string: processors = Processors
 WARNING: untranslated string: reg_file_data_sampling = Register File Data Sampling (RFDS)
 WARNING: untranslated string: regenerate host certificate = Renew Host Certificate
 WARNING: untranslated string: reiserfs warning1 = Reiserfs is deprecated and scheduled to be removed from the kernel in 2025.
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 9a290fb58f..ef480a19e5 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -38,6 +38,7 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
+WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: Weekly
 WARNING: translation string unused: access allowed
@@ -45,6 +46,7 @@ WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
 WARNING: translation string unused: accounting user nonpdc
 WARNING: translation string unused: accounting user pdc
+WARNING: translation string unused: acpitemp
 WARNING: translation string unused: activate user
 WARNING: translation string unused: add a new rule
 WARNING: translation string unused: add cron
@@ -190,6 +192,8 @@ WARNING: translation string unused: could not download the available updates lis
 WARNING: translation string unused: could not open available updates file
 WARNING: translation string unused: could not open installed updates file
 WARNING: translation string unused: could not open update information file
+WARNING: translation string unused: cpu frequency per
+WARNING: translation string unused: cpu usage per
 WARNING: translation string unused: create
 WARNING: translation string unused: create mask
 WARNING: translation string unused: create new backup
@@ -239,6 +243,7 @@ WARNING: translation string unused: directory mask
 WARNING: translation string unused: directory writeable
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disconnects
+WARNING: translation string unused: disk access
 WARNING: translation string unused: display charset
 WARNING: translation string unused: display traffic at home
 WARNING: translation string unused: display webinterface effects
@@ -328,6 +333,7 @@ WARNING: translation string unused: extrahd to root
 WARNING: translation string unused: extrahd unable to read
 WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
+WARNING: translation string unused: firewall hits per
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
 WARNING: translation string unused: force update
@@ -393,9 +399,15 @@ WARNING: translation string unused: generatekeys
 WARNING: translation string unused: generatepolicy
 WARNING: translation string unused: generatereport
 WARNING: translation string unused: genkey
+WARNING: translation string unused: gpl i accept these terms and conditions
+WARNING: translation string unused: gpl license agreement
+WARNING: translation string unused: gpl please read carefully the general public license and accept it below
+WARNING: translation string unused: gpl unofficial translation of the general public license v3
+WARNING: translation string unused: graph per
 WARNING: translation string unused: green interface
 WARNING: translation string unused: guest ok
 WARNING: translation string unused: gz with key
+WARNING: translation string unused: harddisk temperature
 WARNING: translation string unused: harddisk temperature graphs
 WARNING: translation string unused: hint
 WARNING: translation string unused: host
@@ -431,7 +443,6 @@ WARNING: translation string unused: installed updates
 WARNING: translation string unused: interfaces
 WARNING: translation string unused: intrusion detection system log viewer
 WARNING: translation string unused: intrusion detection system2
-WARNING: translation string unused: intrusion prevention system
 WARNING: translation string unused: invalid cache size
 WARNING: translation string unused: invalid date entered
 WARNING: translation string unused: invalid downlink speed
@@ -466,6 +477,7 @@ WARNING: translation string unused: lateprompting
 WARNING: translation string unused: legacy architecture warning
 WARNING: translation string unused: length
 WARNING: translation string unused: line
+WARNING: translation string unused: linkq
 WARNING: translation string unused: load printer
 WARNING: translation string unused: loaded modules
 WARNING: translation string unused: local hard disk
@@ -503,11 +515,15 @@ WARNING: translation string unused: marked
 WARNING: translation string unused: max incoming size
 WARNING: translation string unused: max outgoing size
 WARNING: translation string unused: max size
+WARNING: translation string unused: mbmon fan
 WARNING: translation string unused: mbmon fan in
 WARNING: translation string unused: mbmon graphs
+WARNING: translation string unused: mbmon temp
 WARNING: translation string unused: mbmon temp in
 WARNING: translation string unused: mbmon value
+WARNING: translation string unused: mbmon volt
 WARNING: translation string unused: meaning
+WARNING: translation string unused: memory usage per
 WARNING: translation string unused: messages logging
 WARNING: translation string unused: min size
 WARNING: translation string unused: missing dat
@@ -758,6 +774,7 @@ WARNING: translation string unused: subnet
 WARNING: translation string unused: subnet is invalid
 WARNING: translation string unused: subscripted user rules
 WARNING: translation string unused: successfully refreshed updates list
+WARNING: translation string unused: swap usage per
 WARNING: translation string unused: system graphs
 WARNING: translation string unused: system log viewer
 WARNING: translation string unused: system status information
@@ -793,6 +810,7 @@ WARNING: translation string unused: traffic calc time
 WARNING: translation string unused: traffic calc time bad
 WARNING: translation string unused: traffic info messages
 WARNING: translation string unused: traffic monitor
+WARNING: translation string unused: traffic on
 WARNING: translation string unused: traffic shaping
 WARNING: translation string unused: traffic shaping settings
 WARNING: translation string unused: traffic warn level bad
@@ -849,6 +867,7 @@ WARNING: translation string unused: upstream proxy host:port
 WARNING: translation string unused: upstream username
 WARNING: translation string unused: uptime
 WARNING: translation string unused: uptime and users
+WARNING: translation string unused: uptime load average
 WARNING: translation string unused: urlfilter background image
 WARNING: translation string unused: urlfilter background text
 WARNING: translation string unused: urlfilter enable jpeg
@@ -945,7 +964,10 @@ WARNING: untranslated string: guardian no entries = unknown string
 WARNING: untranslated string: guardian service = unknown string
 WARNING: untranslated string: hostile networks total = Total Hostile Networks
 WARNING: untranslated string: ids provider eol = (EOL)
+WARNING: untranslated string: load average = Load Average
+WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: pakfire ago = ago.
+WARNING: untranslated string: processors = Processors
 WARNING: untranslated string: reg_file_data_sampling = Register File Data Sampling (RFDS)
 WARNING: untranslated string: routing config added = unknown string
 WARNING: untranslated string: routing config changed = unknown string
diff --git a/doc/language_issues.it b/doc/language_issues.it
index b85041c743..44387439ce 100644
--- a/doc/language_issues.it
+++ b/doc/language_issues.it
@@ -12,6 +12,7 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
+WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
@@ -163,6 +164,8 @@ WARNING: translation string unused: could not download the available updates lis
 WARNING: translation string unused: could not open available updates file
 WARNING: translation string unused: could not open installed updates file
 WARNING: translation string unused: could not open update information file
+WARNING: translation string unused: cpu frequency per
+WARNING: translation string unused: cpu usage per
 WARNING: translation string unused: create
 WARNING: translation string unused: create mask
 WARNING: translation string unused: create new backup
@@ -211,6 +214,7 @@ WARNING: translation string unused: directory mask
 WARNING: translation string unused: directory writeable
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disconnects
+WARNING: translation string unused: disk access
 WARNING: translation string unused: display charset
 WARNING: translation string unused: display traffic at home
 WARNING: translation string unused: display webinterface effects
@@ -295,6 +299,7 @@ WARNING: translation string unused: extrahd unable to read
 WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
+WARNING: translation string unused: firewall hits per
 WARNING: translation string unused: firewall log viewer
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
@@ -362,9 +367,15 @@ WARNING: translation string unused: generatekeys
 WARNING: translation string unused: generatepolicy
 WARNING: translation string unused: generatereport
 WARNING: translation string unused: genkey
+WARNING: translation string unused: gpl i accept these terms and conditions
+WARNING: translation string unused: gpl license agreement
+WARNING: translation string unused: gpl please read carefully the general public license and accept it below
+WARNING: translation string unused: gpl unofficial translation of the general public license v3
+WARNING: translation string unused: graph per
 WARNING: translation string unused: green interface
 WARNING: translation string unused: guest ok
 WARNING: translation string unused: gz with key
+WARNING: translation string unused: harddisk temperature
 WARNING: translation string unused: harddisk temperature graphs
 WARNING: translation string unused: hint
 WARNING: translation string unused: host
@@ -428,6 +439,7 @@ WARNING: translation string unused: lang
 WARNING: translation string unused: lateprompting
 WARNING: translation string unused: length
 WARNING: translation string unused: line
+WARNING: translation string unused: linkq
 WARNING: translation string unused: load printer
 WARNING: translation string unused: loaded modules
 WARNING: translation string unused: local hard disk
@@ -462,11 +474,15 @@ WARNING: translation string unused: marked
 WARNING: translation string unused: max incoming size
 WARNING: translation string unused: max outgoing size
 WARNING: translation string unused: max size
+WARNING: translation string unused: mbmon fan
 WARNING: translation string unused: mbmon fan in
 WARNING: translation string unused: mbmon graphs
+WARNING: translation string unused: mbmon temp
 WARNING: translation string unused: mbmon temp in
 WARNING: translation string unused: mbmon value
+WARNING: translation string unused: mbmon volt
 WARNING: translation string unused: meaning
+WARNING: translation string unused: memory usage per
 WARNING: translation string unused: messages logging
 WARNING: translation string unused: min size
 WARNING: translation string unused: missing dat
@@ -715,6 +731,7 @@ WARNING: translation string unused: subnet
 WARNING: translation string unused: subnet is invalid
 WARNING: translation string unused: subscripted user rules
 WARNING: translation string unused: successfully refreshed updates list
+WARNING: translation string unused: swap usage per
 WARNING: translation string unused: system graphs
 WARNING: translation string unused: system log viewer
 WARNING: translation string unused: system status information
@@ -749,6 +766,7 @@ WARNING: translation string unused: traffic calc time
 WARNING: translation string unused: traffic calc time bad
 WARNING: translation string unused: traffic info messages
 WARNING: translation string unused: traffic monitor
+WARNING: translation string unused: traffic on
 WARNING: translation string unused: traffic shaping
 WARNING: translation string unused: traffic shaping settings
 WARNING: translation string unused: traffic warn level bad
@@ -805,6 +823,7 @@ WARNING: translation string unused: upstream proxy host:port
 WARNING: translation string unused: upstream username
 WARNING: translation string unused: uptime
 WARNING: translation string unused: uptime and users
+WARNING: translation string unused: uptime load average
 WARNING: translation string unused: urlfilter background image
 WARNING: translation string unused: urlfilter background text
 WARNING: translation string unused: urlfilter enable jpeg
@@ -887,7 +906,6 @@ WARNING: untranslated string: Scan for Songs = unknown string
 WARNING: untranslated string: access point name = Access Point Name
 WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
 WARNING: untranslated string: access point name is required = Access Point Name is required
-WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: administrator password = Administrator password
 WARNING: untranslated string: administrator username = Administrator username
 WARNING: untranslated string: advproxy AUTH method ntlm auth = Windows Active Directory
@@ -1113,6 +1131,7 @@ WARNING: untranslated string: incoming overhead in bytes per second = Incoming O
 WARNING: untranslated string: info messages = unknown string
 WARNING: untranslated string: inodes = Index-Nodes
 WARNING: untranslated string: interface mode = Interface
+WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid input for inactivity timeout = Invalid input for Inactivity Timeout
 WARNING: untranslated string: invalid input for interface address = Invalid input for interface address
 WARNING: untranslated string: invalid input for interface mode = Invalid input for interface mode
@@ -1154,6 +1173,7 @@ WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table
 WARNING: untranslated string: ipsec settings = IPsec Settings
 WARNING: untranslated string: itlb multihit = iTLB MultiHit
 WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
+WARNING: untranslated string: load average = Load Average
 WARNING: untranslated string: local ip address = Local IP Address
 WARNING: untranslated string: location = Location
 WARNING: untranslated string: locationblock = Location Block
@@ -1197,6 +1217,7 @@ WARNING: untranslated string: outgoing overhead in bytes per second = Outgoing O
 WARNING: untranslated string: ovpn add conf = Additional configuration
 WARNING: untranslated string: ovpn connection name = Connection Name
 WARNING: untranslated string: ovpn error md5 = You host certificate uses MD5 for the signature which is not accepted anymore. <br>Please update to the latest IPFire version and generate a new root and host certificate.</br><br>All OpenVPN clients needs then to be renewed!</br>
+WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: ovpn rw connection log = OpenVPN Roadwarrior Connections Log
 WARNING: untranslated string: ovpn tls auth = TLS Channel Protection:
 WARNING: untranslated string: ovpn warning rfc3280 = Your host certificate is not RFC3280 compliant. <br>Please update to the latest IPFire version and generate as soon as possible a new root and host certificate.</br><br>All OpenVPN clients needs then to be renewed!</br>
@@ -1215,6 +1236,7 @@ WARNING: untranslated string: pptp netconfig = My Net Config
 WARNING: untranslated string: pptp peer = Peer
 WARNING: untranslated string: pptp route = PPTP Route
 WARNING: untranslated string: processor vulnerability mitigations = Processor Vulnerability Mitigations
+WARNING: untranslated string: processors = Processors
 WARNING: untranslated string: ptr = PTR
 WARNING: untranslated string: rdns = rDNS
 WARNING: untranslated string: reboot fsck = Reboot & run &lsquo;fsck&rsquo;
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index adf28c0368..57edc0f5b7 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -12,6 +12,7 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
+WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
@@ -163,6 +164,8 @@ WARNING: translation string unused: could not download the available updates lis
 WARNING: translation string unused: could not open available updates file
 WARNING: translation string unused: could not open installed updates file
 WARNING: translation string unused: could not open update information file
+WARNING: translation string unused: cpu frequency per
+WARNING: translation string unused: cpu usage per
 WARNING: translation string unused: create
 WARNING: translation string unused: create mask
 WARNING: translation string unused: create new backup
@@ -212,6 +215,7 @@ WARNING: translation string unused: directory mask
 WARNING: translation string unused: directory writeable
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disconnects
+WARNING: translation string unused: disk access
 WARNING: translation string unused: display charset
 WARNING: translation string unused: display traffic at home
 WARNING: translation string unused: display webinterface effects
@@ -296,6 +300,7 @@ WARNING: translation string unused: extrahd unable to read
 WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
+WARNING: translation string unused: firewall hits per
 WARNING: translation string unused: firewall log viewer
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
@@ -363,9 +368,15 @@ WARNING: translation string unused: generatekeys
 WARNING: translation string unused: generatepolicy
 WARNING: translation string unused: generatereport
 WARNING: translation string unused: genkey
+WARNING: translation string unused: gpl i accept these terms and conditions
+WARNING: translation string unused: gpl license agreement
+WARNING: translation string unused: gpl please read carefully the general public license and accept it below
+WARNING: translation string unused: gpl unofficial translation of the general public license v3
+WARNING: translation string unused: graph per
 WARNING: translation string unused: green interface
 WARNING: translation string unused: guest ok
 WARNING: translation string unused: gz with key
+WARNING: translation string unused: harddisk temperature
 WARNING: translation string unused: harddisk temperature graphs
 WARNING: translation string unused: hardware support
 WARNING: translation string unused: hint
@@ -430,6 +441,7 @@ WARNING: translation string unused: lang
 WARNING: translation string unused: lateprompting
 WARNING: translation string unused: length
 WARNING: translation string unused: line
+WARNING: translation string unused: linkq
 WARNING: translation string unused: load printer
 WARNING: translation string unused: loaded modules
 WARNING: translation string unused: local hard disk
@@ -464,11 +476,15 @@ WARNING: translation string unused: marked
 WARNING: translation string unused: max incoming size
 WARNING: translation string unused: max outgoing size
 WARNING: translation string unused: max size
+WARNING: translation string unused: mbmon fan
 WARNING: translation string unused: mbmon fan in
 WARNING: translation string unused: mbmon graphs
+WARNING: translation string unused: mbmon temp
 WARNING: translation string unused: mbmon temp in
 WARNING: translation string unused: mbmon value
+WARNING: translation string unused: mbmon volt
 WARNING: translation string unused: meaning
+WARNING: translation string unused: memory usage per
 WARNING: translation string unused: messages logging
 WARNING: translation string unused: min size
 WARNING: translation string unused: missing dat
@@ -715,6 +731,7 @@ WARNING: translation string unused: subnet
 WARNING: translation string unused: subnet is invalid
 WARNING: translation string unused: subscripted user rules
 WARNING: translation string unused: successfully refreshed updates list
+WARNING: translation string unused: swap usage per
 WARNING: translation string unused: system graphs
 WARNING: translation string unused: system has hwrng
 WARNING: translation string unused: system has rdrand
@@ -750,6 +767,7 @@ WARNING: translation string unused: traffic calc time
 WARNING: translation string unused: traffic calc time bad
 WARNING: translation string unused: traffic info messages
 WARNING: translation string unused: traffic monitor
+WARNING: translation string unused: traffic on
 WARNING: translation string unused: traffic shaping
 WARNING: translation string unused: traffic shaping settings
 WARNING: translation string unused: traffic warn level bad
@@ -806,6 +824,7 @@ WARNING: translation string unused: upstream proxy host:port
 WARNING: translation string unused: upstream username
 WARNING: translation string unused: uptime
 WARNING: translation string unused: uptime and users
+WARNING: translation string unused: uptime load average
 WARNING: translation string unused: urlfilter background image
 WARNING: translation string unused: urlfilter background text
 WARNING: translation string unused: urlfilter enable jpeg
@@ -888,7 +907,6 @@ WARNING: untranslated string: Scan for Songs = unknown string
 WARNING: untranslated string: access point name = Access Point Name
 WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
 WARNING: untranslated string: access point name is required = Access Point Name is required
-WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: administrator password = Administrator password
 WARNING: untranslated string: administrator username = Administrator username
 WARNING: untranslated string: advproxy AUTH method ntlm auth = Windows Active Directory
@@ -1121,6 +1139,7 @@ WARNING: untranslated string: incoming overhead in bytes per second = Incoming O
 WARNING: untranslated string: info messages = unknown string
 WARNING: untranslated string: inodes = Index-Nodes
 WARNING: untranslated string: interface mode = Interface
+WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid input for inactivity timeout = Invalid input for Inactivity Timeout
 WARNING: untranslated string: invalid input for interface address = Invalid input for interface address
 WARNING: untranslated string: invalid input for interface mode = Invalid input for interface mode
@@ -1162,6 +1181,7 @@ WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table
 WARNING: untranslated string: ipsec settings = IPsec Settings
 WARNING: untranslated string: itlb multihit = iTLB MultiHit
 WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
+WARNING: untranslated string: load average = Load Average
 WARNING: untranslated string: local ip address = Local IP Address
 WARNING: untranslated string: location = Location
 WARNING: untranslated string: locationblock = Location Block
@@ -1223,6 +1243,7 @@ WARNING: untranslated string: ovpn connection name = Connection Name
 WARNING: untranslated string: ovpn crypt options = Cryptographic options
 WARNING: untranslated string: ovpn error md5 = You host certificate uses MD5 for the signature which is not accepted anymore. <br>Please update to the latest IPFire version and generate a new root and host certificate.</br><br>All OpenVPN clients needs then to be renewed!</br>
 WARNING: untranslated string: ovpn ha = Hash algorithm
+WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: ovpn rw connection log = OpenVPN Roadwarrior Connections Log
 WARNING: untranslated string: ovpn tls auth = TLS Channel Protection:
 WARNING: untranslated string: ovpn warning rfc3280 = Your host certificate is not RFC3280 compliant. <br>Please update to the latest IPFire version and generate as soon as possible a new root and host certificate.</br><br>All OpenVPN clients needs then to be renewed!</br>
@@ -1240,6 +1261,7 @@ WARNING: untranslated string: pptp netconfig = My Net Config
 WARNING: untranslated string: pptp peer = Peer
 WARNING: untranslated string: pptp route = PPTP Route
 WARNING: untranslated string: processor vulnerability mitigations = Processor Vulnerability Mitigations
+WARNING: untranslated string: processors = Processors
 WARNING: untranslated string: ptr = PTR
 WARNING: untranslated string: rdns = rDNS
 WARNING: untranslated string: rebooting ipfire fsck = Rebooting IPFire, forcing filesystem check
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index d15f00f917..0b3ce39a5b 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -12,6 +12,7 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
+WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
@@ -155,6 +156,8 @@ WARNING: translation string unused: could not download the available updates lis
 WARNING: translation string unused: could not open available updates file
 WARNING: translation string unused: could not open installed updates file
 WARNING: translation string unused: could not open update information file
+WARNING: translation string unused: cpu frequency per
+WARNING: translation string unused: cpu usage per
 WARNING: translation string unused: create
 WARNING: translation string unused: create mask
 WARNING: translation string unused: create new backup
@@ -201,6 +204,7 @@ WARNING: translation string unused: directory mask
 WARNING: translation string unused: directory writeable
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disconnects
+WARNING: translation string unused: disk access
 WARNING: translation string unused: display charset
 WARNING: translation string unused: display traffic at home
 WARNING: translation string unused: display webinterface effects
@@ -278,6 +282,7 @@ WARNING: translation string unused: external access rule removed
 WARNING: translation string unused: extrahd
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
+WARNING: translation string unused: firewall hits per
 WARNING: translation string unused: firewall log viewer
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
@@ -303,9 +308,15 @@ WARNING: translation string unused: generatekeys
 WARNING: translation string unused: generatepolicy
 WARNING: translation string unused: generatereport
 WARNING: translation string unused: genkey
+WARNING: translation string unused: gpl i accept these terms and conditions
+WARNING: translation string unused: gpl license agreement
+WARNING: translation string unused: gpl please read carefully the general public license and accept it below
+WARNING: translation string unused: gpl unofficial translation of the general public license v3
+WARNING: translation string unused: graph per
 WARNING: translation string unused: green interface
 WARNING: translation string unused: guest ok
 WARNING: translation string unused: gz with key
+WARNING: translation string unused: harddisk temperature
 WARNING: translation string unused: harddisk temperature graphs
 WARNING: translation string unused: hint
 WARNING: translation string unused: host
@@ -368,6 +379,7 @@ WARNING: translation string unused: lang
 WARNING: translation string unused: lateprompting
 WARNING: translation string unused: length
 WARNING: translation string unused: line
+WARNING: translation string unused: linkq
 WARNING: translation string unused: load printer
 WARNING: translation string unused: loaded modules
 WARNING: translation string unused: local hard disk
@@ -402,11 +414,15 @@ WARNING: translation string unused: marked
 WARNING: translation string unused: max incoming size
 WARNING: translation string unused: max outgoing size
 WARNING: translation string unused: max size
+WARNING: translation string unused: mbmon fan
 WARNING: translation string unused: mbmon fan in
 WARNING: translation string unused: mbmon graphs
+WARNING: translation string unused: mbmon temp
 WARNING: translation string unused: mbmon temp in
 WARNING: translation string unused: mbmon value
+WARNING: translation string unused: mbmon volt
 WARNING: translation string unused: meaning
+WARNING: translation string unused: memory usage per
 WARNING: translation string unused: messages logging
 WARNING: translation string unused: min size
 WARNING: translation string unused: missing dat
@@ -641,6 +657,7 @@ WARNING: translation string unused: subnet
 WARNING: translation string unused: subnet is invalid
 WARNING: translation string unused: subscripted user rules
 WARNING: translation string unused: successfully refreshed updates list
+WARNING: translation string unused: swap usage per
 WARNING: translation string unused: system graphs
 WARNING: translation string unused: system log viewer
 WARNING: translation string unused: system status information
@@ -667,6 +684,7 @@ WARNING: translation string unused: traffic calc time
 WARNING: translation string unused: traffic calc time bad
 WARNING: translation string unused: traffic info messages
 WARNING: translation string unused: traffic monitor
+WARNING: translation string unused: traffic on
 WARNING: translation string unused: traffic shaping
 WARNING: translation string unused: traffic shaping settings
 WARNING: translation string unused: traffic warn level bad
@@ -806,7 +824,6 @@ WARNING: untranslated string: Scan for Songs = unknown string
 WARNING: untranslated string: access point name = Access Point Name
 WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
 WARNING: untranslated string: access point name is required = Access Point Name is required
-WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: addons = Add-Ons
 WARNING: untranslated string: administrator password = Administrator password
 WARNING: untranslated string: administrator username = Administrator username
@@ -1263,6 +1280,7 @@ WARNING: untranslated string: info messages = unknown string
 WARNING: untranslated string: inodes = Index-Nodes
 WARNING: untranslated string: integrity = Integrity:
 WARNING: untranslated string: interface mode = Interface
+WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid input for dpd delay = Invalid input for DPD delay
 WARNING: untranslated string: invalid input for dpd timeout = Invalid input for DPD timeout
 WARNING: untranslated string: invalid input for inactivity timeout = Invalid input for Inactivity Timeout
@@ -1311,6 +1329,7 @@ WARNING: untranslated string: last = Last
 WARNING: untranslated string: least preferred = least preferred
 WARNING: untranslated string: lifetime = Lifetime:
 WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
+WARNING: untranslated string: load average = Load Average
 WARNING: untranslated string: local ip address = Local IP Address
 WARNING: untranslated string: location = Location
 WARNING: untranslated string: locationblock = Location Block
@@ -1393,6 +1412,7 @@ WARNING: untranslated string: ovpn ha = Hash algorithm
 WARNING: untranslated string: ovpn mgmt in root range = A port number of 1024 or higher is required.
 WARNING: untranslated string: ovpn no connections = No active OpenVPN connections
 WARNING: untranslated string: ovpn port in root range = A port number of 1024 or higher is required.
+WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: ovpn routes push = Routes (one per line) e.g. 192.168.10.0/255.255.255.0 192.168.20.0/24
 WARNING: untranslated string: ovpn routes push options = Route push options
 WARNING: untranslated string: ovpn rw connection log = OpenVPN Roadwarrior Connections Log
@@ -1413,6 +1433,7 @@ WARNING: untranslated string: pptp netconfig = My Net Config
 WARNING: untranslated string: pptp peer = Peer
 WARNING: untranslated string: pptp route = PPTP Route
 WARNING: untranslated string: processor vulnerability mitigations = Processor Vulnerability Mitigations
+WARNING: untranslated string: processors = Processors
 WARNING: untranslated string: proxy reports = Proxy Reports
 WARNING: untranslated string: proxy reports daily = Daily reports
 WARNING: untranslated string: proxy reports monthly = Monthly reports
@@ -1550,7 +1571,6 @@ WARNING: untranslated string: unlimited = Unlimited
 WARNING: untranslated string: updxlrtr passive mode = Delivery only/no download mode
 WARNING: untranslated string: uplink = Uplink
 WARNING: untranslated string: uplink bit rate = Uplink Bit Rate
-WARNING: untranslated string: uptime load average = Load average
 WARNING: untranslated string: urlfilter redirect template = Redirect page template
 WARNING: untranslated string: user management = User Management
 WARNING: untranslated string: vendor = Vendor
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index d052eefac8..73823a7a81 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -12,6 +12,7 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
+WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
@@ -155,6 +156,8 @@ WARNING: translation string unused: could not download the available updates lis
 WARNING: translation string unused: could not open available updates file
 WARNING: translation string unused: could not open installed updates file
 WARNING: translation string unused: could not open update information file
+WARNING: translation string unused: cpu frequency per
+WARNING: translation string unused: cpu usage per
 WARNING: translation string unused: create
 WARNING: translation string unused: create mask
 WARNING: translation string unused: create new backup
@@ -277,6 +280,7 @@ WARNING: translation string unused: external access rule removed
 WARNING: translation string unused: extrahd
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
+WARNING: translation string unused: firewall hits per
 WARNING: translation string unused: firewall log viewer
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
@@ -301,9 +305,15 @@ WARNING: translation string unused: generatekeys
 WARNING: translation string unused: generatepolicy
 WARNING: translation string unused: generatereport
 WARNING: translation string unused: genkey
+WARNING: translation string unused: gpl i accept these terms and conditions
+WARNING: translation string unused: gpl license agreement
+WARNING: translation string unused: gpl please read carefully the general public license and accept it below
+WARNING: translation string unused: gpl unofficial translation of the general public license v3
+WARNING: translation string unused: graph per
 WARNING: translation string unused: green interface
 WARNING: translation string unused: guest ok
 WARNING: translation string unused: gz with key
+WARNING: translation string unused: harddisk temperature
 WARNING: translation string unused: harddisk temperature graphs
 WARNING: translation string unused: hint
 WARNING: translation string unused: host
@@ -365,6 +375,7 @@ WARNING: translation string unused: lang
 WARNING: translation string unused: lateprompting
 WARNING: translation string unused: length
 WARNING: translation string unused: line
+WARNING: translation string unused: linkq
 WARNING: translation string unused: load printer
 WARNING: translation string unused: loaded modules
 WARNING: translation string unused: local hard disk
@@ -399,11 +410,15 @@ WARNING: translation string unused: marked
 WARNING: translation string unused: max incoming size
 WARNING: translation string unused: max outgoing size
 WARNING: translation string unused: max size
+WARNING: translation string unused: mbmon fan
 WARNING: translation string unused: mbmon fan in
 WARNING: translation string unused: mbmon graphs
+WARNING: translation string unused: mbmon temp
 WARNING: translation string unused: mbmon temp in
 WARNING: translation string unused: mbmon value
+WARNING: translation string unused: mbmon volt
 WARNING: translation string unused: meaning
+WARNING: translation string unused: memory usage per
 WARNING: translation string unused: messages logging
 WARNING: translation string unused: min size
 WARNING: translation string unused: missing dat
@@ -637,6 +652,7 @@ WARNING: translation string unused: subnet
 WARNING: translation string unused: subnet is invalid
 WARNING: translation string unused: subscripted user rules
 WARNING: translation string unused: successfully refreshed updates list
+WARNING: translation string unused: swap usage per
 WARNING: translation string unused: system graphs
 WARNING: translation string unused: system log viewer
 WARNING: translation string unused: system status information
@@ -663,6 +679,7 @@ WARNING: translation string unused: traffic calc time
 WARNING: translation string unused: traffic calc time bad
 WARNING: translation string unused: traffic info messages
 WARNING: translation string unused: traffic monitor
+WARNING: translation string unused: traffic on
 WARNING: translation string unused: traffic shaping
 WARNING: translation string unused: traffic shaping settings
 WARNING: translation string unused: traffic warn level bad
@@ -802,7 +819,6 @@ WARNING: untranslated string: Scan for Songs = unknown string
 WARNING: untranslated string: access point name = Access Point Name
 WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
 WARNING: untranslated string: access point name is required = Access Point Name is required
-WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: addons = Add-Ons
 WARNING: untranslated string: administrator password = Administrator password
 WARNING: untranslated string: administrator username = Administrator username
@@ -921,7 +937,6 @@ WARNING: untranslated string: dhcp make fixed lease = Add to fix leases
 WARNING: untranslated string: dhcp valid range required when deny known clients checked = Valid range required when "Deny known clients:" is checked
 WARNING: untranslated string: disable = Disable
 WARNING: untranslated string: disconnected = Disconnected
-WARNING: untranslated string: disk access = Disk Access
 WARNING: untranslated string: dl client arch insecure = Download insecure Client Package (zip)
 WARNING: untranslated string: dnat address = Firewall Interface
 WARNING: untranslated string: dns check servers = Check DNS Servers
@@ -1261,6 +1276,7 @@ WARNING: untranslated string: info messages = unknown string
 WARNING: untranslated string: inodes = Index-Nodes
 WARNING: untranslated string: integrity = Integrity:
 WARNING: untranslated string: interface mode = Interface
+WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid input for dpd delay = Invalid input for DPD delay
 WARNING: untranslated string: invalid input for dpd timeout = Invalid input for DPD timeout
 WARNING: untranslated string: invalid input for inactivity timeout = Invalid input for Inactivity Timeout
@@ -1309,6 +1325,7 @@ WARNING: untranslated string: last = Last
 WARNING: untranslated string: least preferred = least preferred
 WARNING: untranslated string: lifetime = Lifetime:
 WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
+WARNING: untranslated string: load average = Load Average
 WARNING: untranslated string: local ip address = Local IP Address
 WARNING: untranslated string: location = Location
 WARNING: untranslated string: locationblock = Location Block
@@ -1390,6 +1407,7 @@ WARNING: untranslated string: ovpn ha = Hash algorithm
 WARNING: untranslated string: ovpn mgmt in root range = A port number of 1024 or higher is required.
 WARNING: untranslated string: ovpn no connections = No active OpenVPN connections
 WARNING: untranslated string: ovpn port in root range = A port number of 1024 or higher is required.
+WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: ovpn rw connection log = OpenVPN Roadwarrior Connections Log
 WARNING: untranslated string: ovpn tls auth = TLS Channel Protection:
 WARNING: untranslated string: ovpn warning rfc3280 = Your host certificate is not RFC3280 compliant. <br>Please update to the latest IPFire version and generate as soon as possible a new root and host certificate.</br><br>All OpenVPN clients needs then to be renewed!</br>
@@ -1408,6 +1426,7 @@ WARNING: untranslated string: pptp netconfig = My Net Config
 WARNING: untranslated string: pptp peer = Peer
 WARNING: untranslated string: pptp route = PPTP Route
 WARNING: untranslated string: processor vulnerability mitigations = Processor Vulnerability Mitigations
+WARNING: untranslated string: processors = Processors
 WARNING: untranslated string: proxy reports = Proxy Reports
 WARNING: untranslated string: proxy reports daily = Daily reports
 WARNING: untranslated string: proxy reports monthly = Monthly reports
@@ -1545,7 +1564,6 @@ WARNING: untranslated string: unlimited = Unlimited
 WARNING: untranslated string: updxlrtr passive mode = Delivery only/no download mode
 WARNING: untranslated string: uplink = Uplink
 WARNING: untranslated string: uplink bit rate = Uplink Bit Rate
-WARNING: untranslated string: uptime load average = Load average
 WARNING: untranslated string: urlfilter redirect template = Redirect page template
 WARNING: untranslated string: user management = User Management
 WARNING: untranslated string: vendor = Vendor
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index 6e077d5863..9cc962515b 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -33,6 +33,7 @@ WARNING: translation string unused: Remote VPN IP
 WARNING: translation string unused: Resolv
 WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
+WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
@@ -185,6 +186,8 @@ WARNING: translation string unused: could not download the available updates lis
 WARNING: translation string unused: could not open available updates file
 WARNING: translation string unused: could not open installed updates file
 WARNING: translation string unused: could not open update information file
+WARNING: translation string unused: cpu frequency per
+WARNING: translation string unused: cpu usage per
 WARNING: translation string unused: create
 WARNING: translation string unused: create mask
 WARNING: translation string unused: create new backup
@@ -233,6 +236,7 @@ WARNING: translation string unused: directory mask
 WARNING: translation string unused: directory writeable
 WARNING: translation string unused: disconnect
 WARNING: translation string unused: disconnects
+WARNING: translation string unused: disk access
 WARNING: translation string unused: display charset
 WARNING: translation string unused: display traffic at home
 WARNING: translation string unused: display webinterface effects
@@ -321,6 +325,7 @@ WARNING: translation string unused: extrahd to root
 WARNING: translation string unused: extrahd unable to read
 WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
+WARNING: translation string unused: firewall hits per
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
 WARNING: translation string unused: force update
@@ -388,9 +393,15 @@ WARNING: translation string unused: generatekeys
 WARNING: translation string unused: generatepolicy
 WARNING: translation string unused: generatereport
 WARNING: translation string unused: genkey
+WARNING: translation string unused: gpl i accept these terms and conditions
+WARNING: translation string unused: gpl license agreement
+WARNING: translation string unused: gpl please read carefully the general public license and accept it below
+WARNING: translation string unused: gpl unofficial translation of the general public license v3
+WARNING: translation string unused: graph per
 WARNING: translation string unused: green interface
 WARNING: translation string unused: guest ok
 WARNING: translation string unused: gz with key
+WARNING: translation string unused: harddisk temperature
 WARNING: translation string unused: harddisk temperature graphs
 WARNING: translation string unused: hint
 WARNING: translation string unused: host
@@ -454,6 +465,7 @@ WARNING: translation string unused: lang
 WARNING: translation string unused: lateprompting
 WARNING: translation string unused: length
 WARNING: translation string unused: line
+WARNING: translation string unused: linkq
 WARNING: translation string unused: load printer
 WARNING: translation string unused: loaded modules
 WARNING: translation string unused: local hard disk
@@ -491,11 +503,15 @@ WARNING: translation string unused: marked
 WARNING: translation string unused: max incoming size
 WARNING: translation string unused: max outgoing size
 WARNING: translation string unused: max size
+WARNING: translation string unused: mbmon fan
 WARNING: translation string unused: mbmon fan in
 WARNING: translation string unused: mbmon graphs
+WARNING: translation string unused: mbmon temp
 WARNING: translation string unused: mbmon temp in
 WARNING: translation string unused: mbmon value
+WARNING: translation string unused: mbmon volt
 WARNING: translation string unused: meaning
+WARNING: translation string unused: memory usage per
 WARNING: translation string unused: messages logging
 WARNING: translation string unused: min size
 WARNING: translation string unused: missing dat
@@ -745,6 +761,7 @@ WARNING: translation string unused: subnet
 WARNING: translation string unused: subnet is invalid
 WARNING: translation string unused: subscripted user rules
 WARNING: translation string unused: successfully refreshed updates list
+WARNING: translation string unused: swap usage per
 WARNING: translation string unused: system graphs
 WARNING: translation string unused: system log viewer
 WARNING: translation string unused: system status information
@@ -779,6 +796,7 @@ WARNING: translation string unused: traffic calc time
 WARNING: translation string unused: traffic calc time bad
 WARNING: translation string unused: traffic info messages
 WARNING: translation string unused: traffic monitor
+WARNING: translation string unused: traffic on
 WARNING: translation string unused: traffic shaping
 WARNING: translation string unused: traffic shaping settings
 WARNING: translation string unused: traffic warn level bad
@@ -835,6 +853,7 @@ WARNING: translation string unused: upstream proxy host:port
 WARNING: translation string unused: upstream username
 WARNING: translation string unused: uptime
 WARNING: translation string unused: uptime and users
+WARNING: translation string unused: uptime load average
 WARNING: translation string unused: urlfilter background image
 WARNING: translation string unused: urlfilter background text
 WARNING: translation string unused: urlfilter enable jpeg
@@ -881,7 +900,6 @@ WARNING: untranslated string: Scan for Songs = unknown string
 WARNING: untranslated string: access point name = Access Point Name
 WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
 WARNING: untranslated string: access point name is required = Access Point Name is required
-WARNING: untranslated string: acpitemp = ACPI - Temperatures
 WARNING: untranslated string: advproxy asbased anomaly detection = Anomaly detections based on Autonomous Systems information
 WARNING: untranslated string: advproxy errmsg invalid url = Invalid URL
 WARNING: untranslated string: advproxy errmsg wpad invalid ip or mask = WPAD: Invalid IP or subnet for excluded IP subnet
@@ -1053,6 +1071,7 @@ WARNING: untranslated string: ids working = Changes are being applied. Please wa
 WARNING: untranslated string: info messages = unknown string
 WARNING: untranslated string: inodes = Index-Nodes
 WARNING: untranslated string: interface mode = Interface
+WARNING: untranslated string: intrusion prevention system = Intrusion Prevention System
 WARNING: untranslated string: invalid input for interface address = Invalid input for interface address
 WARNING: untranslated string: invalid input for interface mode = Invalid input for interface mode
 WARNING: untranslated string: invalid input for interface mtu = Invalid input to interface MTU
@@ -1091,6 +1110,7 @@ WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table
 WARNING: untranslated string: ipsec settings = IPsec Settings
 WARNING: untranslated string: itlb multihit = iTLB MultiHit
 WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
+WARNING: untranslated string: load average = Load Average
 WARNING: untranslated string: local ip address = Local IP Address
 WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hostile networks
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
@@ -1111,6 +1131,7 @@ WARNING: untranslated string: optional = Optional
 WARNING: untranslated string: otp qrcode = OTP QRCode
 WARNING: untranslated string: ovpn connection name = Connection Name
 WARNING: untranslated string: ovpn error md5 = You host certificate uses MD5 for the signature which is not accepted anymore. <br>Please update to the latest IPFire version and generate a new root and host certificate.</br><br>All OpenVPN clients needs then to be renewed!</br>
+WARNING: untranslated string: ovpn roadwarrior server = OpenVPN Roadwarrior Server
 WARNING: untranslated string: ovpn rw connection log = OpenVPN Roadwarrior Connections Log
 WARNING: untranslated string: ovpn tls auth = TLS Channel Protection:
 WARNING: untranslated string: ovpn warning rfc3280 = Your host certificate is not RFC3280 compliant. <br>Please update to the latest IPFire version and generate as soon as possible a new root and host certificate.</br><br>All OpenVPN clients needs then to be renewed!</br>
@@ -1126,6 +1147,7 @@ WARNING: untranslated string: pakfire tree testing = Testing
 WARNING: untranslated string: pakfire tree unstable = Unstable
 WARNING: untranslated string: please reboot to apply your changes = Please reboot to apply your changes
 WARNING: untranslated string: processor vulnerability mitigations = Processor Vulnerability Mitigations
+WARNING: untranslated string: processors = Processors
 WARNING: untranslated string: ptr = PTR
 WARNING: untranslated string: reboot fsck = Reboot & run &lsquo;fsck&rsquo;
 WARNING: untranslated string: rebooting ipfire fsck = Rebooting IPFire, forcing filesystem check
diff --git a/doc/language_missings b/doc/language_missings
index 4c657f0997..05fff37d10 100644
--- a/doc/language_missings
+++ b/doc/language_missings
@@ -78,6 +78,7 @@
 < notes
 < okay
 < optional
+< ovpn roadwarrior server
 < quick control
 < random number generator daemon
 < regenerate host certificate
@@ -130,10 +131,13 @@
 < ids provider eol
 < ids unsupported provider
 < invalid ip or hostname
+< load average
 < log drop hostile in
 < log drop hostile out
 < openvpn cert expires soon
 < openvpn cert has expired
+< ovpn roadwarrior server
+< processors
 < regenerate host certificate
 < reg_file_data_sampling
 < reiserfs warning1
@@ -158,6 +162,9 @@
 < hostile networks total
 < ids provider eol
 < ids unsupported provider
+< load average
+< ovpn roadwarrior server
+< processors
 < reg_file_data_sampling
 < system time
 < timeformat
@@ -478,6 +485,7 @@
 < itlb multihit
 < legacy architecture warning
 < link-layer encapsulation
+< load average
 < local ip address
 < location
 < locationblock
@@ -526,6 +534,7 @@
 < ovpn add conf
 < ovpn connection name
 < ovpn error md5
+< ovpn roadwarrior server
 < ovpn rw connection log
 < ovpn tls auth
 < ovpn warning rfc3280
@@ -543,6 +552,7 @@
 < pptp netconfig
 < pptp peer
 < pptp route
+< processors
 < processor vulnerability mitigations
 < ptr
 < random number generator daemon
@@ -1010,6 +1020,7 @@
 < itlb multihit
 < legacy architecture warning
 < link-layer encapsulation
+< load average
 < local ip address
 < location
 < locationblock
@@ -1079,6 +1090,7 @@
 < ovpn generating the root and host certificates
 < ovpn ha
 < ovpn reneg sec
+< ovpn roadwarrior server
 < ovpn rw connection log
 < ovpn tls auth
 < ovpn warning rfc3280
@@ -1095,6 +1107,7 @@
 < pptp netconfig
 < pptp peer
 < pptp route
+< processors
 < processor vulnerability mitigations
 < ptr
 < random number generator daemon
@@ -1855,6 +1868,7 @@
 < legacy architecture warning
 < lifetime
 < link-layer encapsulation
+< load average
 < local ip address
 < location
 < locationblock
@@ -1959,6 +1973,7 @@
 < ovpn no connections
 < ovpn port in root range
 < ovpn reneg sec
+< ovpn roadwarrior server
 < ovpn routes push
 < ovpn routes push options
 < ovpn rw connection log
@@ -1978,6 +1993,7 @@
 < pptp netconfig
 < pptp peer
 < pptp route
+< processors
 < processor vulnerability mitigations
 < proxy reports
 < proxy reports daily
@@ -2859,6 +2875,7 @@
 < legacy architecture warning
 < lifetime
 < link-layer encapsulation
+< load average
 < local ip address
 < location
 < locationblock
@@ -2963,6 +2980,7 @@
 < ovpn no connections
 < ovpn port in root range
 < ovpn reneg sec
+< ovpn roadwarrior server
 < ovpn rw connection log
 < ovpn tls auth
 < ovpn warning rfc3280
@@ -2980,6 +2998,7 @@
 < pptp netconfig
 < pptp peer
 < pptp route
+< processors
 < processor vulnerability mitigations
 < proxy reports
 < proxy reports daily
@@ -3436,6 +3455,7 @@
 < itlb multihit
 < legacy architecture warning
 < link-layer encapsulation
+< load average
 < local ip address
 < log drop hostile in
 < log drop hostile out
@@ -3456,6 +3476,7 @@
 < otp qrcode
 < ovpn connection name
 < ovpn error md5
+< ovpn roadwarrior server
 < ovpn rw connection log
 < ovpn tls auth
 < ovpn warning rfc3280
@@ -3470,6 +3491,7 @@
 < pakfire tree unstable
 < pak update
 < please reboot to apply your changes
+< processors
 < processor vulnerability mitigations
 < ptr
 < random number generator daemon
diff --git a/html/cgi-bin/gpl.cgi b/html/cgi-bin/gpl.cgi
deleted file mode 100644
index 029b048e8c..0000000000
--- a/html/cgi-bin/gpl.cgi
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/perl
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2012  IPFire Team  <info(a)ipfire.org>                     #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-use strict;
-# enable only the following on debugging purpose
-#use warnings;
-#use CGI::Carp 'fatalsToBrowser';
-
-require '/var/ipfire/general-functions.pl';
-require "${General::swroot}/lang.pl";
-require "${General::swroot}/header.pl";
-require "/opt/pakfire/lib/functions.pl";
-
-# If the license has already been accepted.
-if ( -e "/var/ipfire/main/gpl_accepted" ) {
-	&redirect();
-}
-
-my %cgiparams;
-$cgiparams{'ACTION'} = '';
-
-&Header::getcgihash(\%cgiparams);
-
-# Check if the license agreement has been accepted.
-if ($cgiparams{'ACTION'} eq "$Lang::tr{'yes'}" && $cgiparams{'gpl_accepted'} eq '1') {
-	open(FILE, ">/var/ipfire/main/gpl_accepted");
-	close(FILE);
-
-	&redirect();
-}
-
-&Header::showhttpheaders();
-
-&Header::openpage($Lang::tr{'main page'}, 1);
-&Header::openbigbox('', 'center');
-
-&Header::openbox('100%', 'left', $Lang::tr{'gpl license agreement'});
-print <<END;
-	$Lang::tr{'gpl please read carefully the general public license and accept it below'}.
-	<br /><br />
-END
-;
-if ( -e "/usr/share/doc/licenses/GPLv3" ) {
-	print '<textarea rows=\'25\' cols=\'75\' readonly=\'readonly\'>';
-
-	# Open and read-in GPL file content.
-	open(FILE, "/usr/share/doc/licenses/GPLv3");
-
-	# Grab license.
-	my @license = <FILE>;
-
-	# Close filehandle.
-	close(FILE);
-
-	# Print license to textarea.
-	print "@license";
-
-	print '</textarea>';
-}
-else {
-	print '<br /><a href=\'http://www.gnu.org/licenses/gpl-3.0.txt\' target=\'_blank\'>GNU GENERAL PUBLIC LICENSE</a><br />';
-}
-print <<END;
-	<p>
-		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-			<input type='checkbox' name='gpl_accepted' value='1'/> $Lang::tr{'gpl i accept these terms and conditions'}.
-			<br/ >
-			<input type='submit' name='ACTION' value='$Lang::tr{'yes'}' />
-		</form>
-	</p>
-	<a href='http://www.gnu.org/licenses/translations.html' target='_blank'>$Lang::tr{'gpl unofficial translation of the general public license v3'}</a>
-
-END
-
-&Header::closebox();
-&Header::closebigbox();
-&Header::closepage();
-
-sub redirect {
-	print "Status: 302 Moved Temporarily\n";
-	print "Location: index.cgi\n\n";
-	exit (0);
-}
diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi
index 5e32ce0381..ed186cd1f0 100644
--- a/html/cgi-bin/index.cgi
+++ b/html/cgi-bin/index.cgi
@@ -48,12 +48,6 @@ my $showbox=0;
 my $showipsec=0;
 my $showovpn=0;
 
-if ( ! -e "/var/ipfire/main/gpl_accepted" ) {
-	print "Status: 302 Moved Temporarily\n";
-	print "Location: gpl.cgi\n\n";
-	exit (0);
-}
-
 &Header::showhttpheaders();
 
 $cgiparams{'ACTION'} = '';
@@ -74,12 +68,10 @@ my %mainsettings = ();
 
 my $connstate = &Header::connectionstatus();
 
-if ( -e "/var/ipfire/main/gpl_accepted" ) {
-	if ($connstate =~ /$Lang::tr{'connecting'}/ || /$Lang::tr{'connection closed'}/ ){
-		$refresh = "<meta http-equiv='refresh' content='5;'>";
-	}elsif ($connstate =~ /$Lang::tr{'dod waiting'}/ || -e "${General::swroot}/main/refreshindex") {
-		$refresh = "<meta http-equiv='refresh' content='30;'>";
-	}
+if ($connstate =~ /$Lang::tr{'connecting'}/ || /$Lang::tr{'connection closed'}/ ){
+	$refresh = "<meta http-equiv='refresh' content='5;'>";
+} elsif ($connstate =~ /$Lang::tr{'dod waiting'}/ || -e "${General::swroot}/main/refreshindex") {
+	$refresh = "<meta http-equiv='refresh' content='30;'>";
 }
 
 if ($cgiparams{'ACTION'} eq $Lang::tr{'dial profile'})
@@ -151,7 +143,7 @@ if (open(IPADDR,"${General::swroot}/red/local-ipaddress")) {
 	    chomp ($ipaddr);
 	}
 
-&Header::openbox('100%', 'center', '');
+&Header::opensection();
 if ( ( $pppsettings{'VALID'} eq 'yes' && $modemsettings{'VALID'} eq 'yes' ) || ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ )) {
 	if (open(IPADDR,"${General::swroot}/ddns/ipcache")) {
    	    $ipaddr = <IPADDR>;
@@ -171,7 +163,7 @@ if ( ( $pppsettings{'VALID'} eq 'yes' && $modemsettings{'VALID'} eq 'yes' ) || (
 
 print <<END;
 <!-- Table of networks -->
-<table class='tbl' style='width:80%;'>
+<table class='tbl'>
   <tr>
         <th>$Lang::tr{'network'}</th>
         <th>$Lang::tr{'ip address'}</th>
@@ -247,7 +239,7 @@ if ( $netsettings{'RED_TYPE'} ne "STATIC" && $netsettings{'RED_TYPE'} ne "DHCP"
 	if ( ( $pppsettings{'VALID'} eq 'yes' ) || ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) {
 		print <<END;
 		<br/>
-		<table style='width:80%;'>
+		<table>
 		<tr><td>
 		<form method='post' action='$ENV{'SCRIPT_NAME'}'>$Lang::tr{'profile'}:
 			<select name='PROFILE'>
@@ -292,7 +284,7 @@ END
 
 print <<END;
 <br/>
-<table class='tbl' style='width:80%;'>
+<table class='tbl'>
 <tr>
 	<th>$Lang::tr{'network'}</th>
 	<th>$Lang::tr{'ip address'}</th>
@@ -380,7 +372,7 @@ print <<END;
 END
 	}
 print"</table>";
-&Header::closebox();
+&Header::closesection();
 
 #Check if there are any vpns configured (ipsec and openvpn)
 &General::readhasharray("${General::swroot}/vpn/config", \%vpnconfig);
@@ -402,7 +394,7 @@ foreach my $dkey (sort { ncmp($ovpnconfig{$a}[1],$ovpnconfig{$b}[1])} keys %ovpn
 
 if ($showbox){
 # Start of Box wich contains all vpn connections
-	&Header::openbox('100%', 'center', $Lang::tr{'vpn'});
+	&Header::opensection();
 
 	#show ipsec connectiontable
 	if ( $showipsec ) {
@@ -414,7 +406,7 @@ if ($showbox){
 		my $col="";
 		my $count=0;
 		print <<END;
-		<table class='tbl' style='width:80%;'>
+		<table class='tbl'>
 		<tr>
 			<th style='width:40%;'>$Lang::tr{'ipsec network'}</th>
 			<th style='width:30%;'>$Lang::tr{'ip address'}</th>
@@ -478,7 +470,7 @@ END
 	if ( $showovpn ){
 		print <<END;
 		<br/>
-		<table class='tbl' style='width:80%;'>
+		<table class='tbl'>
 		<tr>
 			<th style='width:40%;'>$Lang::tr{'openvpn network'}</th>
 			<th style='width:30%;'>$Lang::tr{'ip address'}</th>
@@ -533,29 +525,15 @@ END
 		}
 		print"</table>";
 	}
-&Header::closebox();
-}
 
-# Fireinfo
-if ( ! -e "/var/ipfire/main/send_profile") {
-	$warnmessage .= "<li><a style='color: white;' href='fireinfo.cgi'>$Lang::tr{'fireinfo please enable'}</a></li>";
+	&Header::closesection();
 }
 
-# EOL architecture
-my ($sysname, $nodename, $release, $version, $machine) = &POSIX::uname();
-if ($machine =~ m/^arm/) {
-	$warnmessage .= "<li><a href='https://wiki.ipfire.org/hardware/requirements' style='color:white;'>$Lang::tr{'eol architecture warning'}</a></li>";
-}
+my @warnings = ();
 
-# Memory usage warning
-my @free = `/usr/bin/free`;
-$free[1] =~ m/(\d+)/;
-my $mem = $1;
-$free[2] =~ m/(\d+)/;
-my $used = $1;
-my $pct = int 100 * ($mem - $used) / $mem;
-if ($used / $mem > 90) {
-	$warnmessage .= "<li>$Lang::tr{'high memory usage'}: $pct% !</li>";
+# Fireinfo
+if ( ! -e "/var/ipfire/main/send_profile") {
+	push(@warnings, "<a href='fireinfo.cgi'>$Lang::tr{'fireinfo please enable'}</a>");
 }
 
 # Diskspace usage warning
@@ -571,7 +549,7 @@ foreach my $line (@df) {
 		if ($1<5) {
 			# available:plain value in MB, and not %used as 10% is too much to waste on small disk
 			# and root size should not vary during time
-			$warnmessage .= "<li>$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$1M</b> !</li>";
+			push(@warnings, "$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$1M</b>");
 		}
 
 	} else {
@@ -580,7 +558,7 @@ foreach my $line (@df) {
 		if ($1>90) {
 			@temp = split(/ /,$line);
 			$temp2=int(100-$1);
-			$warnmessage .= "<li>$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$temp2%</b> !</li>";
+			push(@warnings, "$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$temp2%</b>");
 		}
 	}
 }
@@ -592,35 +570,36 @@ foreach my $file (@files) {
 	my $disk=`echo $file | cut -d"-" -f2`;
 	chomp ($disk);
 	if (`/bin/grep "SAVE ALL DATA" $file`) {
-		$warnmessage .= "<li>$Lang::tr{'smartwarn1'} /dev/$disk $Lang::tr{'smartwarn2'} !</li>";
+		push(@warnings, "$Lang::tr{'smartwarn1'} /dev/$disk $Lang::tr{'smartwarn2'}");
 	}
 }
 
-if ($warnmessage) {
-	&Header::openbox('100%','center', );
-	print "<table class='tbl' style='width:80%;'>";
-	print "<tr><th>$Lang::tr{'fwhost hint'}</th></tr>";
-	print "<tr><td style='color:white; background-color:$Header::colourred;'>$warnmessage</td></tr>";
-    print "</table>";
-	&Header::closebox();
-}
-
 my %coredb = &Pakfire::coredbinfo();
 if (defined $coredb{'AvailableRelease'}) {
-	print "<br /><br /><br /><a href='pakfire.cgi'>$Lang::tr{'core notice 1'} $coredb{'Release'} $Lang::tr{'core notice 2'} $coredb{'AvailableRelease'} $Lang::tr{'core notice 3'}</a>";
+	push(@warnings, "<a href='pakfire.cgi'>$Lang::tr{'core notice 1'} $coredb{'Release'} $Lang::tr{'core notice 2'} $coredb{'AvailableRelease'} $Lang::tr{'core notice 3'}</a>");
 }
 
 if ( -e "/var/run/need_reboot" ) {
-	print "<div style='text-align:center; color:red;'>";
-	print "<br/><br/>$Lang::tr{'needreboot'}!";
-	print "</div>";
+	push(@warnings, $Lang::tr{'needreboot'});
 }
 
 if ( `/bin/grep -c "reiserfs" /proc/self/mounts`  > 0 ) {
-        print "<div style='text-align:center; color:blue;'>";
-        print "<br/><br/>$Lang::tr{'reiserfs warning1'}";
-        print "<br/>$Lang::tr{'reiserfs warning2'}";
-        print "</div>";
+	push (@warnings, $Lang::tr{'reiserfs warning1'} . " " . $Lang::tr{'reiserfs warning2'});
+}
+
+# Show any warnings
+if (@warnings) {
+	&Header::opensection();
+
+	print "<ul class=\"notes\">\n";
+
+	foreach my $warning (@warnings) {
+		print "<li class=\"is-warning\">$warning</li>\n";
+	}
+
+	print "</ul>\n";
+
+	&Header::closesection();
 }
 
 &Header::closebigbox();
diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi
index f0172978f0..5cf2f5eab0 100755
--- a/html/cgi-bin/ovpnmain.cgi
+++ b/html/cgi-bin/ovpnmain.cgi
@@ -5247,6 +5247,15 @@ END
 	$activeonrun = "disabled='disabled'";
     }
     &Header::openbox('100%', 'LEFT', $Lang::tr{'global settings'});
+
+	# Show the service status
+	&Header::ServiceStatus({
+		$Lang::tr{'ovpn roadwarrior server'} => {
+			"process" => "openvpn",
+			"pidfile" => "/var/run/openvpn.pid",
+		}
+	});
+
 	print <<END;
     <table width='100%' border='0'>
     <form method='post'>
diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi
index e1e901c4ee..a95c69e10c 100644
--- a/html/cgi-bin/services.cgi
+++ b/html/cgi-bin/services.cgi
@@ -43,101 +43,82 @@ my %netsettings=();
 my @dummy = ( ${Header::colourred} );
 undef (@dummy);
 
-
 my %cgiparams=();
-# Maps a nice printable name to the changing part of the pid file, which
-# is also the name of the program
-my %servicenames =(
-	$Lang::tr{'dhcp server'} => 'dhcpd',
-	$Lang::tr{'web server'} => 'httpd',
-	$Lang::tr{'cron server'} => 'fcron',
-	$Lang::tr{'dns proxy server'} => 'unbound',
-	$Lang::tr{'logging server'} => 'syslogd',
-	$Lang::tr{'kernel logging server'} => 'klogd',
-	$Lang::tr{'ntp server'} => 'ntpd',
-	$Lang::tr{'secure shell server'} => 'sshd',
-	$Lang::tr{'vpn'} => 'charon',
-	$Lang::tr{'web proxy'} => 'squid',
-	$Lang::tr{'intrusion detection system'} => 'suricata',
-	'OpenVPN' => 'openvpn'
-);
-
-my %link =(
-	$Lang::tr{'dhcp server'} => "<a href=\'dhcp.cgi\'>$Lang::tr{'dhcp server'}</a>",
-	$Lang::tr{'web server'} => $Lang::tr{'web server'},
-	$Lang::tr{'cron server'} => $Lang::tr{'cron server'},
-	$Lang::tr{'dns proxy server'} => "<a href=\'dns.cgi\'>$Lang::tr{'dns proxy server'}</a>",
-	$Lang::tr{'logging server'} => $Lang::tr{'logging server'},
-	$Lang::tr{'kernel logging server'} => $Lang::tr{'kernel logging server'},
-	$Lang::tr{'ntp server'} => "<a href=\'time.cgi\'>$Lang::tr{'ntp server'}</a>",
-	$Lang::tr{'secure shell server'} => "<a href=\'remote.cgi\'>$Lang::tr{'secure shell server'}</a>",
-	$Lang::tr{'vpn'} => "<a href=\'vpnmain.cgi\'>$Lang::tr{'vpn'}</a>",
-	$Lang::tr{'web proxy'} => "<a href=\'proxy.cgi\'>$Lang::tr{'web proxy'}</a>",
-	'OpenVPN' => "<a href=\'ovpnmain.cgi\'>OpenVPN</a>",
-	"$Lang::tr{'intrusion detection system'}" => "<a href=\'ids.cgi\'>$Lang::tr{'intrusion detection system'}</a>",
-);
-
-# Hash to overwrite the process name of a process if it differs fromt the launch command.
-my %overwrite_exename_hash = (
-	"suricata" => "Suricata-Main"
-);
-
-my $lines=0; # Used to count the outputlines to make different bgcolor
 
 my @querry = split(/\?/,$ENV{'QUERY_STRING'});
 $querry[0] = '' unless defined $querry[0];
 $querry[1] = 'hour' unless defined $querry[1];
 
-if ( $querry[0] =~ "processescpu"){
-	print "Content-type: image/png\n\n";
-	binmode(STDOUT);
-	&Graphs::updateprocessescpugraph($querry[1]);
-}elsif ( $querry[0] =~ "processesmemory"){
-	print "Content-type: image/png\n\n";
-	binmode(STDOUT);
-	&Graphs::updateprocessesmemorygraph($querry[1]);
-}else{
 	&Header::showhttpheaders();
 	&Header::openpage($Lang::tr{'status information'}, 1, '');
 	&Header::openbigbox('100%', 'left');
 
-	&Header::openbox('100%', 'left', $Lang::tr{'services'});
-	print <<END
-<div align='center'>
-<table width='80%' cellspacing='1' class='tbl'>
-<tr>
-	<th align='left'><b>$Lang::tr{'service'}</b></th>
-	<th align='center' ><b>$Lang::tr{'status'}</b></th>
-	<th align='center'><b>PID</b></th>
-	<th align='center'><b>$Lang::tr{'memory'}</b></th>
-</tr>
-END
-;
-	my $key = '';
-	my $col="";
-	foreach $key (sort keys %servicenames){
-		$lines++;
-		if ($lines % 2){
-			$col="bgcolor='$color{'color22'}'";
-			print "<tr><td align='left' $col>";
-			print $link{$key};
-			print "</td>";
-		}else{
-			$col="bgcolor='$color{'color20'}'";
-			print "<tr><td align='left' $col>";
-			print $link{$key};
-			print "</td>";
+	&Header::opensection();
+
+	&Header::ServiceStatus({
+		# DHCP Server
+		$Lang::tr{'dhcp server'} => {
+			"process" => "dhcpd",
+		},
+
+		# Web Server
+		$Lang::tr{'web server'} => {
+			"process" => "httpd",
+		},
+
+		# Cron Server
+		$Lang::tr{'cron server'} => {
+			"process" => "fcron",
+		},
+
+		# DNS Proxy
+		$Lang::tr{'dns proxy server'} => {
+			"process" => "unbound",
+		},
+
+		# Syslog
+		$Lang::tr{'logging server'} => {
+			"process" => "syslogd",
+		},
+
+		# Kernel Logger
+		$Lang::tr{'kernel logging server'} => {
+			"process" => "klogd",
+		},
+
+		# Time Server
+		$Lang::tr{'ntp server'} => {
+			"process" => "ntpd",
+		},
+
+		# SSH Server
+		$Lang::tr{'secure shell server'} => {
+			"process" => "sshd",
+		},
+
+		# IPsec
+		$Lang::tr{'vpn'} => {
+			"process" => "charon",
+		},
+
+		# Web Proxy
+		$Lang::tr{'web proxy'} => {
+			"process" => "squid",
+		},
+
+		# IPS
+		$Lang::tr{'intrusion prevention system'} => {
+			"process" => "suricata",
+		},
+
+		# OpenVPN Roadwarrior
+		$Lang::tr{'ovpn roadwarrior server'} => {
+			"process" => "openvpn",
+			"pidfile" => "/var/run/openvpn.pid",
 		}
+	});
 
-		my $shortname = $servicenames{$key};
-		my $status = &isrunning($shortname,$col);
-
-	 	print "$status\n";
-		print "</tr>\n";
-	}
-
-	print "</table></div>\n";
-	&Header::closebox();
+	&Header::closesection();
 
 	&Header::openbox('100%', 'left', "$Lang::tr{addon} - $Lang::tr{services}");
 	my $paramstr=$ENV{QUERY_STRING};
@@ -168,6 +149,7 @@ END
 ;
 
 	my $lines=0; # Used to count the outputlines to make different bgcolor
+	my $col;
 
 	my @paks;
 	my @addon_services;
@@ -177,7 +159,7 @@ END
 
 	foreach my $pak (sort keys %paklist) {
 		my %metadata = &Pakfire::getmetadata($pak, "installed");
-			
+
 		my $service;
 
 		if ("$metadata{'Services'}") {
@@ -195,7 +177,7 @@ END
 				my $displayname = ($pak ne $service) ? "$service ($pak)" : $service;
 				if ( -e "/srv/web/ipfire/cgi-bin/$pak.cgi" ) {
 					$displayname = ($pak ne $service) ? "$service (<a href=\'$pak.cgi\'>$pak</a>)" : "<a href=\'$pak.cgi\'>$service</a>";
-				} 
+				}
 
 				print "<td align='left' $col width='31%'>$displayname</td> ";
 
@@ -214,17 +196,8 @@ END
 	print "</table></div>\n";
 	&Header::closebox();
 
-	&Header::opensection('100%', 'center', "$Lang::tr{'processes'} $Lang::tr{'graph'}");
-	&Graphs::makegraphbox("services.cgi","processescpu","day");
-	&Header::closebox();
-
-	&Header::openbox('100%', 'center', "$Lang::tr{'processes'} $Lang::tr{'memory'} $Lang::tr{'graph'}");
-	&Graphs::makegraphbox("services.cgi","processesmemory","day");
-	&Header::closebox();
-
 	&Header::closebigbox();
 	&Header::closepage();
-}
 
 sub isautorun (@) {
 	my ($pak, $service, $col) = @_;
@@ -245,58 +218,6 @@ sub isautorun (@) {
 	return $status;
 }
 
-sub isrunning (@) {
-	my ($cmd, $col) = @_;
-	my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>";
-	my $pid = '';
-	my $testcmd = '';
-	my $exename;
-	my $memory;
-
-	$cmd =~ /(^[a-z]+)/;
-
-	# Check if the exename needs to be overwritten.
-	# This happens if the expected process name string
-	# differs from the real one. This may happened if
-	# a service uses multiple processes or threads.
-	if (exists($overwrite_exename_hash{$1})) {
-		# Grab the string which will be reported by
-		# the process from the corresponding hash.
-		$exename = $overwrite_exename_hash{$1};
-	} else {
-		# Directly expect the launched command as
-		# process name.
-		$exename = $1;
-	}
-
-	if (open(FILE, "/var/run/${cmd}.pid")){
-		$pid = <FILE>; chomp $pid;
-		close FILE;
-		if (open(FILE, "/proc/${pid}/status")){
-			while (<FILE>){
-				if (/^Name:\W+(.*)/) {
-					$testcmd = $1;
-				}
-			}
-			close FILE;
-		}
-		if (open(FILE, "/proc/${pid}/status")) {
-			while (<FILE>) {
-				my ($key, $val) = split(":", $_, 2);
-				if ($key eq 'VmRSS') {
-					$memory = $val;
-					last;
-				}
-			}
-			close(FILE);
-		}
-		if ($testcmd =~ /$exename/){
-			$status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td><td align='center' $col>$pid</td><td align='center' $col>$memory</td>";
-		}
-	}
-	return $status;
-}
-
 sub isrunningaddon (@) {
 	my ($pak, $service, $col) = @_;
 
diff --git a/html/html/index.cgi b/html/html/index.cgi
index f33f7019e8..b7e1012e16 100644
--- a/html/html/index.cgi
+++ b/html/html/index.cgi
@@ -19,11 +19,5 @@
 #                                                                             #
 ###############################################################################
 
-if (! -e "/var/ipfire/main/gpl_accepted" ) {
-	print "Status: 302 Moved Temporarily\n";
-	print "Location: /cgi-bin/gpl.cgi\n\n";
-	exit (0);
-}
-
 print "Status: 302 Moved Temporarily\n";
 print "Location: /cgi-bin/index.cgi\n\n";
diff --git a/html/html/themes/ipfire/include/css/style.css b/html/html/themes/ipfire/include/css/style.css
index 8fb3432639..49d13ffd22 100644
--- a/html/html/themes/ipfire/include/css/style.css
+++ b/html/html/themes/ipfire/include/css/style.css
@@ -133,6 +133,22 @@ iframe {
 	float: right !important;
 }
 
+/*
+	Text Alignment
+*/
+
+.text-left {
+	text-align: left;
+}
+
+.text-center {
+	text-align: center;
+}
+
+.text-right {
+	text-align: right;
+}
+
 /* Header */
 
 #header {
@@ -296,6 +312,10 @@ table {
 	border-spacing: 0;
 }
 
+.tbl {
+	width: 100%;
+}
+
 .tbl th {
 	color: #ffffff;
 	border-top: 1px solid #363636;
@@ -397,6 +417,16 @@ table {
 	color: var(--color-green-invert);
 }
 
+/* Notes */
+
+.notes .is-warning {
+	color: var(--color-yellow);
+}
+
+.notes a {
+	color: inherit;
+}
+
 table.fw-nat tbody tr td {
 	height: 2.25em;
 }
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index 4dbd049c9c..3888ef7439 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -1612,6 +1612,7 @@
 'lifetime' => 'Lebensdauer:',
 'line' => 'Leitung',
 'linkq' => 'Antwortzeit',
+'load average' => 'Load Average',
 'load printer' => 'Lade Drucker',
 'loaded modules' => 'Geladene Module:',
 'local hard disk' => 'Festplatte',
@@ -2092,6 +2093,7 @@
 'priority' => 'Priorität',
 'processes' => 'Prozesse',
 'processor vulnerability mitigations' => 'Prozessorverwundbarkeitsentschärfungen',
+'processors' => 'Prozessoren',
 'profile' => 'Profil',
 'profile deleted' => 'Profil gelöscht: ',
 'profile has errors' => 'Profil fehlerhaft',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index a9fb3a6f76..4b5d0779af 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -1669,6 +1669,7 @@
 'line' => 'Line',
 'link-layer encapsulation' => 'Link-Layer Encapsulation',
 'linkq' => 'Link Quality',
+'load average' => 'Load Average',
 'load printer' => 'Load Printer',
 'loaded modules' => 'Loaded modules:',
 'local hard disk' => 'Hard disk',
@@ -2043,6 +2044,7 @@
 'ovpn on red' => 'OpenVPN on RED:',
 'ovpn port in root range' => 'A port number of 1024 or higher is required.',
 'ovpn reneg sec' => 'Session key lifetime:',
+'ovpn roadwarrior server' => 'OpenVPN Roadwarrior Server',
 'ovpn routes push' => 'Routes (one per line) e.g. 192.168.10.0/255.255.255.0 192.168.20.0/24',
 'ovpn routes push options' => 'Route push options',
 'ovpn rw connection log' => 'OpenVPN Roadwarrior Connections Log',
@@ -2153,6 +2155,7 @@
 'priority' => 'Priority',
 'processes' => 'Processes',
 'processor vulnerability mitigations' => 'Processor Vulnerability Mitigations',
+'processors' => 'Processors',
 'profile' => 'Profile',
 'profile deleted' => 'Profile deleted: ',
 'profile has errors' => 'Profile has errors',
diff --git a/lfs/stage2 b/lfs/stage2
index b2ae5d0fff..64904fad53 100644
--- a/lfs/stage2
+++ b/lfs/stage2
@@ -143,10 +143,6 @@ endif
 	# A small hack to include /root to the iso but not all of it's files.
 	touch /root/ipfire
 
-	# License agreement
-	-mkdir -pv /usr/share/doc/licenses/
-	cp -vf $(DIR_SRC)/doc/COPYING /usr/share/doc/licenses/GPLv3
-
 	# System release
 	echo "$(SYSTEM_RELEASE)" > /etc/system-release
 
diff --git a/src/installer/main.c b/src/installer/main.c
index 70a240ccbc..9e3f4af833 100644
--- a/src/installer/main.c
+++ b/src/installer/main.c
@@ -24,7 +24,6 @@
 #define _(x) dgettext("installer", x)
 
 #define INST_FILECOUNT 30000
-#define LICENSE_FILE	"/cdrom/COPYING"
 #define SOURCE_TEMPFILE "/tmp/downloads/image.iso"
 
 extern char url[STRING_SIZE];
@@ -162,36 +161,6 @@ static int newtWinOkCancel(const char* title, const char* message, int width, in
 	return ret;
 }
 
-static int newtLicenseBox(const char* title, const char* text, int width, int height) {
-	int ret = 1;
-
-	newtCenteredWindow(width, height, title);
-
-	newtComponent form = newtForm(NULL, NULL, 0);
-
-	newtComponent textbox = newtTextbox(1, 1, width - 2, height - 7,
-		NEWT_FLAG_WRAP|NEWT_FLAG_SCROLL);
-	newtTextboxSetText(textbox, text);
-	newtFormAddComponent(form, textbox);
-
-	char choice;
-	newtComponent checkbox = newtCheckbox(3, height - 3, _("I accept this license"),
-		' ', " *", &choice);
-
-	newtComponent btn = newtButton(width - 15, height - 4, _("OK"));
-
-	newtFormAddComponents(form, checkbox, btn, NULL);
-
-	newtComponent answer = newtRunForm(form);
-	if (answer == btn && choice == '*')
-		ret = 0;
-
-	newtFormDestroy(form);
-	newtPopWindow();
-
-	return ret;
-}
-
 int write_lang_configs(const char* lang) {
 	struct keyvalue *kv = initkeyvalues();
 
@@ -365,8 +334,6 @@ int main(int argc, char *argv[]) {
 	// Read /etc/system-release
 	char* system_release = get_system_release();
 
-	char discl_msg[40000] =	"Disclaimer\n";
-
 	char* sourcedrive = NULL;
 	struct hw_destination* destination = NULL;
 	struct hw_disk** selected_disks = NULL;
@@ -376,7 +343,6 @@ int main(int argc, char *argv[]) {
 	char message[STRING_SIZE];
 	char title[STRING_SIZE];
 	int allok = 0;
-	FILE *copying;
 
 	setlocale(LC_ALL, "");
 	sethostname(DISTRO_SNAME, strlen(DISTRO_SNAME));
@@ -570,23 +536,6 @@ int main(int argc, char *argv[]) {
 		goto EXIT;
 	}
 
-	if (!config.unattended) {
-		// Read the license file.
-		if (!(copying = fopen(LICENSE_FILE, "r"))) {
-			sprintf(discl_msg, "Could not open license file: %s\n", LICENSE_FILE);
-			fprintf(flog, "%s", discl_msg);
-		} else {
-			fread(discl_msg, 1, 40000, copying);
-			fclose(copying);
-
-			if (newtLicenseBox(_("License Agreement"), discl_msg, 75, 20)) {
-				errorbox(_("License not accepted!"));
-
-				goto EXIT;
-			}
-		}
-	}
-
 	int part_type = HW_PART_TYPE_NORMAL;
 
 	// Scan for disks to install on.
@@ -865,12 +814,6 @@ int main(int argc, char *argv[]) {
 
 	newtPopWindow();
 
-	/* Set marker that the user has already accepted the GPL if the license has been shown
-	 * in the installation process. In unatteded mode, the user will be presented the
-	 * license when he or she logs on to the web user interface for the first time. */
-	if (!config.unattended)
-		mysystem(logfile, "/usr/bin/touch /harddisk/var/ipfire/main/gpl_accepted");
-
 	/* Copy restore file from cdrom */
 	char* backup_file = hw_find_backup_file(logfile, SOURCE_MOUNT_PATH);
 	if (backup_file) {


hooks/post-receive
--
IPFire 2.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-08-06 15:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-06 15:49 [git.ipfire.org] IPFire 2.x development tree branch, next, updated. ae7d1ef99721f6e3b7dadeb1e3ae13fd08c48e57 Michael Tremer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox