Merge remote-tracking branch 'origin/master' into next

This commit is contained in:
Arne Fitzenreiter
2021-07-10 17:51:41 +00:00
7 changed files with 60 additions and 27 deletions

View File

@@ -1,6 +1,7 @@
etc/rc.d/init.d/firewall
etc/ssh/sshd_config
opt/pakfire/lib/functions.pl
opt/pakfire/lib/functions.sh
opt/pakfire/pakfire
usr/lib/firewall/ipsec-policy
var/ipfire/backup/bin/backup.pl

View File

@@ -74,6 +74,9 @@ ldconfig
# Filesytem cleanup
/usr/local/bin/filesystem-cleanup
# Apply local configuration to sshd_config
/usr/local/bin/sshctrl
# Start services
/etc/init.d/vnstat restart
/etc/init.d/rngd restart

View File

@@ -171,20 +171,28 @@ if (($settings{'ACTION'} eq $Lang::tr{'add'}) || ($settings{'ACTION'} eq $Lang::
$errormessage = $Lang::tr{'invalid domain name'};
}
# Check if a username has been sent.
if ($settings{'LOGIN'} eq '') {
$errormessage = $Lang::tr{'username not set'};
}
# Check if the choosen provider supports token based authentication.
if ($settings{'SERVICE'} ~~ @token_provider) {
# Check if a token has been given.
unless ($settings{'TOKEN'}) {
$errormessage = $Lang::tr{'token not set'};
}
# Check if a password has been typed in.
# freedns.afraid.org does not require this field.
if (($settings{'PASSWORD'} eq '') && ($settings{'SERVICE'} ne 'freedns.afraid.org') && ($settings{'SERVICE'} ne 'regfish.com')) {
$errormessage = $Lang::tr{'password not set'};
}
# Automatically set the username to token.
$settings{'LOGIN'} = "token";
# Check if a token has been given for provider which support tokens.
if (($settings{'SERVICE'} ~~ @token_provider) && ($settings{'TOKEN'} eq '')) {
$errormessage = $Lang::tr{'token not set'};
# A provider without token support has been choosen.
} else {
# Check if a username has been sent.
if ($settings{'LOGIN'} eq '') {
$errormessage = $Lang::tr{'username not set'};
}
# Check if a password has been typed in.
# freedns.afraid.org does not require this field.
if (($settings{'PASSWORD'} eq '') && ($settings{'SERVICE'} ne 'freedns.afraid.org') && ($settings{'SERVICE'} ne 'regfish.com')) {
$errormessage = $Lang::tr{'password not set'};
}
}
# Go furter if there was no error.

View File

@@ -94,7 +94,7 @@ my $ipfire_version = <FILE>;
close(FILE);
my $pakfire_version = &Pakfire::make_version();
my $kernel_version = &General::system_output("uname", "-a");
my @kernel_version = &General::system_output("uname", "-a");
&Header::openbox('100%', 'left', $Lang::tr{'fireinfo system version'});
print <<END;
@@ -109,7 +109,7 @@ print <<END;
</tr>
<tr>
<td align='center' bgcolor='#F0F0F0' width='15%'>$Lang::tr{'fireinfo kernel version'}</td>
<td bgcolor='#F0F0F0'><code>$kernel_version</code></td>
<td bgcolor='#F0F0F0'><code>@kernel_version</code></td>
</tr>
</table>
END

View File

@@ -55,14 +55,15 @@ sub refreshpage{&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' cont
&Header::openbigbox('100%', 'left', '', $errormessage);
if (($cgiparams{'ACTION'} eq 'install') && (! -e $Pakfire::lockfile)) {
$cgiparams{'INSPAKS'} =~ s/\|/\ /g;
my @pkgs = split(/\|/, $cgiparams{'INSPAKS'});
if ("$cgiparams{'FORCE'}" eq "on") {
&General::system_background("/usr/local/bin/pakfire", "install", "--non-interactive", "--no-colors", $cgiparams{'INSPAKS'});
&General::system_background("/usr/local/bin/pakfire", "install", "--non-interactive", "--no-colors", @pkgs);
sleep(2);
} else {
&Header::openbox("100%", "center", $Lang::tr{'request'});
my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", $cgiparams{'INSPAKS'});
my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", @pkgs);
print <<END;
<table><tr><td colspan='2'>$Lang::tr{'pakfire install package'}.$cgiparams{'INSPAKS'}.$Lang::tr{'pakfire possible dependency'}
<table><tr><td colspan='2'>$Lang::tr{'pakfire install package'} @pkgs $Lang::tr{'pakfire possible dependency'}
<pre>
END
foreach (@output) {
@@ -92,15 +93,15 @@ END
exit;
}
} elsif (($cgiparams{'ACTION'} eq 'remove') && (! -e $Pakfire::lockfile)) {
$cgiparams{'DELPAKS'} =~ s/\|/\ /g;
my @pkgs = split(/\|/, $cgiparams{'DELPAKS'});
if ("$cgiparams{'FORCE'}" eq "on") {
&General::system_background("/usr/local/bin/pakfire", "remove", "--non-interactive", "--no-colors", $cgiparams{'DELPAKS'});
&General::system_background("/usr/local/bin/pakfire", "remove", "--non-interactive", "--no-colors", @pkgs);
sleep(2);
} else {
&Header::openbox("100%", "center", $Lang::tr{'request'});
my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", $cgiparams{'DELPAKS'});
my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", @pkgs);
print <<END;
<table><tr><td colspan='2'>$Lang::tr{'pakfire uninstall package'}.$cgiparams{'DELPAKS'}.$Lang::tr{'pakfire possible dependency'}
<table><tr><td colspan='2'>$Lang::tr{'pakfire uninstall package'} @pkgs $Lang::tr{'pakfire possible dependency'}
<pre>
END
foreach (@output) {

View File

@@ -2,7 +2,7 @@
###############################################################################
# #
# IPFire.org - A linux based firewall #
# Copyright (C) 2007-2012 IPFire Team <info@ipfire.org> #
# Copyright (C) 2007-2021 IPFire Team <info@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 #
@@ -22,17 +22,28 @@
. /etc/sysconfig/rc
. $rc_functions
TAR_OPTIONS=(
--acls
--xattrs
--xattrs-include='*'
--no-overwrite-dir
--no-delay-directory-restore
--preserve-permissions
--numeric-owner
)
extract_files() {
echo "Extracting files..."
tar --acls --xattrs --xattrs-include='*' \
-xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C /
tar -xavf /opt/pakfire/tmp/files* "${TAR_OPTIONS[@]}" -C /
sync
echo "...Finished."
}
extract_backup_includes() {
echo "Extracting backup includes..."
tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C / \
tar xavf /opt/pakfire/tmp/files* "${TAR_OPTIONS[@]}" -C / \
var/ipfire/backup/addons/includes
sync
echo "...Finished."
}

View File

@@ -27,6 +27,10 @@ function _strip() {
fi
done
# Fetch any capabilities
local capabilities="$(getfattr --no-dereference --name="security.capability" \
--absolute-names --dump "${file}")"
local cmd=( "${strip}" )
case "$(file -bi ${file})" in
@@ -40,6 +44,11 @@ function _strip() {
echo "Stripping ${file}..."
${cmd[*]} ${file}
# Restore capabilities
if [ -n "${capabilities}" ]; then
setfattr --no-dereference --restore=<(echo "${capabilities}")
fi
}
for dir in ${dirs}; do