public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
* [PATCH] pakfire.cgi: Changes to install and remove confirmation pages
@ 2025-05-10 16:19 Stephen Cuka
  0 siblings, 0 replies; only message in thread
From: Stephen Cuka @ 2025-05-10 16:19 UTC (permalink / raw)
  To: development; +Cc: Stephen Cuka

 - On install confirmation page, add list of packages to install
   - if package is already installed, don't show it on the list

 - On install and remove confirmation pages, pad out translation
   of "Package:" to length of 10 so that the column spacing doesn't
   change for different languages.

 - Display dependencies for package(s) to remove in 'parent -> child'
   format.

 - Display packages in use in 'parent -> child' format.

 - Add translations for new text in all langs.

 - functional changes
   - When removing a package, remove it's dependencies.
   - Don't allow a package or dependency to be removed if other
     installed packages depend on it.

Signed-off-by: Stephen Cuka <stephen@firemypi.org>
---
 doc/language_issues.de   |   3 +
 doc/language_issues.en   |  12 +-
 doc/language_issues.es   |   3 +
 doc/language_issues.fr   |   3 +
 doc/language_issues.it   |   3 +
 doc/language_issues.nl   |   3 +
 doc/language_issues.pl   |   3 +
 doc/language_issues.ru   |   3 +
 doc/language_issues.tr   |   3 +
 html/cgi-bin/pakfire.cgi | 287 +++++++++++++++++++++++++++++++++------
 langs/de/cgi-bin/de.pl   |   9 ++
 langs/en/cgi-bin/en.pl   |   9 ++
 langs/es/cgi-bin/es.pl   |   9 ++
 langs/fr/cgi-bin/fr.pl   |   9 ++
 langs/it/cgi-bin/it.pl   |   9 ++
 langs/nl/cgi-bin/nl.pl   |   9 ++
 langs/pl/cgi-bin/pl.pl   |   9 ++
 langs/ru/cgi-bin/ru.pl   |   9 ++
 langs/tr/cgi-bin/tr.pl   |   9 ++
 19 files changed, 356 insertions(+), 48 deletions(-)

diff --git a/doc/language_issues.de b/doc/language_issues.de
index 9b15ac4f0..c1b777c35 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -636,8 +636,11 @@ WARNING: translation string unused: pakfire core update auto
 WARNING: translation string unused: pakfire dependecies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependecies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvdeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.en b/doc/language_issues.en
index cd291da91..4cddceefd 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -1454,28 +1454,34 @@ WARNING: untranslated string: pakfire check deps = Checking dependencies...
 WARNING: untranslated string: pakfire configuration = Pakfire Configuration
 WARNING: untranslated string: pakfire confirm upgrades = Do you want to install all upgrades?
 WARNING: untranslated string: pakfire core update level = Core-Update-Level
+WARNING: untranslated string: pakfire deps = Package dependencies:
+WARNING: untranslated string: pakfire errors = Errors occurred:
 WARNING: untranslated string: pakfire finished = Pakfire has finished! Returning...
 WARNING: untranslated string: pakfire finished error = Pakfire has finished! Errors occurred, please check the log output before proceeding.
 WARNING: untranslated string: pakfire install = Install
 WARNING: untranslated string: pakfire install description = Please select one or more add-ons to install.
 WARNING: untranslated string: pakfire install package = Packages to install:
+WARNING: untranslated string: pakfire installed = already installed
 WARNING: untranslated string: pakfire installed addons = Installed Add-ons:
+WARNING: untranslated string: pakfire inuse = Packages in use:
 WARNING: untranslated string: pakfire invalid tree = Invalid repository selected
+WARNING: untranslated string: pakfire keep = Packages to keep due to dependencies:
 WARNING: untranslated string: pakfire last core list update = Last core list update made
 WARNING: untranslated string: pakfire last package update = Last packages list update made
 WARNING: untranslated string: pakfire last serverlist update = Last server list update made
 WARNING: untranslated string: pakfire last update = Last update made
-WARNING: untranslated string: pakfire possible dependency =  There may be depending packages, here is a list of packages that need to be installed.
+WARNING: untranslated string: pakfire no deps = No dependencies found.
+WARNING: untranslated string: pakfire no remove = Due to dependencies, no packages can be removed.
+WARNING: untranslated string: pakfire package = Package:
 WARNING: untranslated string: pakfire refresh list = Refresh List
+WARNING: untranslated string: pakfire remove package = Packages to remove:
 WARNING: untranslated string: pakfire return = Return to Pakfire
 WARNING: untranslated string: pakfire system state = System Status
 WARNING: untranslated string: pakfire tree = Repository
 WARNING: untranslated string: pakfire tree stable = Stable
 WARNING: untranslated string: pakfire tree testing = Testing
 WARNING: untranslated string: pakfire tree unstable = Unstable
-WARNING: untranslated string: pakfire uninstall all = Do you want to uninstall the following packages?
 WARNING: untranslated string: pakfire uninstall description = Please select one or more add-ons to remove.
-WARNING: untranslated string: pakfire uninstall package = You want to uninstall the following packages: 
 WARNING: untranslated string: pakfire updating = Updating pakfire database, please wait...
 WARNING: untranslated string: pakfire upgrade = Upgrade
 WARNING: untranslated string: pakfire upgrades = Available Upgrades:
diff --git a/doc/language_issues.es b/doc/language_issues.es
index 0d461c48d..7d4048dab 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -691,8 +691,11 @@ WARNING: translation string unused: pakfire core update auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 1fe0a9396..f9cd8ae65 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -666,8 +666,11 @@ WARNING: translation string unused: pakfire core update auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.it b/doc/language_issues.it
index 195feec80..04bf0353d 100644
--- a/doc/language_issues.it
+++ b/doc/language_issues.it
@@ -620,8 +620,11 @@ WARNING: translation string unused: pakfire core update auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index 22211c5dd..d37914f3d 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -619,8 +619,11 @@ WARNING: translation string unused: pakfire core update auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index cb1700e0d..10fc61866 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -544,8 +544,11 @@ WARNING: translation string unused: pakfire core update auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index 1e48a6543..5fb6a07b4 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -539,8 +539,11 @@ WARNING: translation string unused: pakfire core update auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index a7c080da3..fd36e9eef 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -649,8 +649,11 @@ WARNING: translation string unused: pakfire core update auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/html/cgi-bin/pakfire.cgi b/html/cgi-bin/pakfire.cgi
index 3cd5b1563..159d63c9d 100644
--- a/html/cgi-bin/pakfire.cgi
+++ b/html/cgi-bin/pakfire.cgi
@@ -319,7 +319,7 @@ END
 	if (@errors)
 	{
 		chomp @errors;
-		print "\nErrors occurred:\n";
+		print "\n$Lang::tr{'pakfire errors'}\n";
 		foreach (@errors)
 		{
 			print "$_\n";
@@ -339,40 +339,24 @@ END
 	@all_deps = grep { ! $dedupe{ $_ }++ } @all_deps;
 
 	# build dependencies tree
-	my @search = @pkgs_deps;
-	my @pkgs_deps_tree;
-	my @temp;
-	do
-	{
-		@temp = ();
-		foreach my $i (@search)
-		{
-			(my $child) = $i =~ /.+:(.+)/;
-			foreach my $j (@all_deps)
-			{
-				(my $all_deps_parent) = $j =~ /(.+):.+/;
-				(my $all_deps_child) = $j =~ /.+:(.+)/;
-				if ( $child eq $all_deps_parent )
-				{
-					push @temp, "$i:$all_deps_child";
-				}
-			}
-		}
-		push @pkgs_deps_tree, @temp;
-		@search = @temp;
-	} until ( ! (@search));
-
+	my @pkgs_deps_tree = build_tree(\@pkgs_deps, \@all_deps);
 	push @pkgs_deps, @pkgs_deps_tree;
-
 	@pkgs_deps = sort @pkgs_deps;
 
 	my @installed = get_package_names($instdir);
 
-	# display dependencies
-	print "\nPackage dependencies:\n";
+	# display summary
+	print "\n$Lang::tr{'pakfire deps'}\n";
+	my $package_display;
+	if ($mainsettings{'LANGUAGE'} eq "ru")
+	{
+		$package_display = $Lang::tr{'pakfire package'} . " ";
+	} else {
+		$package_display = sprintf("%-10s", $Lang::tr{'pakfire package'});
+	}
 	foreach my $i (@pkgs)
 	{
-		print "\n  Package:  $i\n";
+		print "\n  $package_display  $i\n";
 		if (grep (/^$i/, @pkgs_deps))
 		{
 			foreach my $j (@pkgs_deps)
@@ -382,16 +366,39 @@ END
 					(my $child) = $j =~ /.+:(.+)/;
 					if (grep (/$child/, @installed))
 					{
-						print "            " . (arrow_format($j)) . "<span style='font-size:80%'> (already installed)</span>\n";
+						print "              " . (arrow_format($j)) . "<span style='font-size:80%'> ($Lang::tr{'pakfire installed'})</span>\n";
 					} else {
-						print "            " . (arrow_format($j)) . "\n";
+						print "              " . (arrow_format($j)) . "\n";
 					}
 				}
 			}
 		} else {
-			print "            No dependencies found.\n";
+			print "              $Lang::tr{'pakfire no deps'}\n";
+		}
+	}
+
+	my @pkgs_install = @pkgs;
+	foreach my $i (@pkgs_deps)
+	{
+		(my $child) = $i =~ /.+:(.+)/;
+		push @pkgs_install, $child;
+	}
+	my %dedupe;
+	@pkgs_install = grep { ! $dedupe{ $_ }++ } @pkgs_install;
+	foreach my $i (@installed)
+	{
+		if (grep (/$i/, @pkgs_install))
+		{
+			@pkgs_install = grep { $_ ne $i } @pkgs_install;
 		}
 	}
+	@pkgs_install = sort @pkgs_install;
+
+	print "\n$Lang::tr{'pakfire install package'}\n\n";
+	foreach (@pkgs_install)
+	{
+		print "              $_\n";
+	}
 
 	print <<END;
 			</pre>
@@ -418,34 +425,190 @@ END
 	&Header::openbox("100%", "center", $Lang::tr{'remove'});
 
 	my @pkgs = split(/\|/, $cgiparams{'DELPAKS'});
-	my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", @pkgs);
+
 	print <<END;
 	<table style="width: 100%">
 		<tr>
-			<td colspan='2'>
-			<p>$Lang::tr{'pakfire uninstall package'} <strong>@{pkgs}</strong><br>$Lang::tr{'pakfire possible dependency'}</p>
-			<pre>
+			<td>
+			$Lang::tr{'pakfire remove package'}  <strong>
+END
+        foreach (my $i = 0; $i < $#pkgs; $i++)
+        {
+                print "$pkgs[$i], ";
+        }
+        print "$pkgs[$#pkgs]";
+
+        print <<END;
+                        </strong>
+                        <br><br>$Lang::tr{'pakfire check deps'}
+                        <pre>
 END
-	foreach (@output) {
-		$_ =~ s/\^[\[[0-1]\;[0-9]+m//g;
-		print "$_\n";
+
+ 	# get dependencies from metafiles
+	my $instdir = "/opt/pakfire/db/installed";
+	my @inst_deps = deps_from_metafiles($instdir);
+
+	# get package dependencies
+	my @pkgs_deps;
+	foreach my $i (@pkgs)
+	{
+		foreach my $j (@inst_deps)
+		{
+			(my $child) = $j =~ /.+:(.+)/;
+			if (grep(/^$i/, $j))
+			{
+				push @pkgs_deps, "$i:$child";
+			}
+		}
 	}
-	print <<END;
+
+	# build dependencies tree
+	my @pkgs_deps_tree = build_tree(\@pkgs_deps, \@inst_deps);
+	push @pkgs_deps, @pkgs_deps_tree;
+	@pkgs_deps = sort @pkgs_deps;
+
+	# add dependencies to list of packages to remove
+	my @pkgs_list = @pkgs;
+	foreach (@pkgs_deps)
+	{
+		(my $child) = $_ =~ /.+:(.+)/;
+		push @pkgs_list, $child,
+	}
+
+	my %dedupe;
+	@pkgs_list = grep { ! $dedupe{ $_ }++ } @pkgs_list;
+	@pkgs_list = sort @pkgs_list;
+
+	# find packages in use elsewhere
+	# omit the package if it's in the list to be removed
+	my @pkgs_inuse;
+	foreach my $i (@pkgs_list)
+	{
+		foreach my $j (@inst_deps)
+		{
+			(my $parent) = $j =~ /(.+):.+/;
+			(my $child) = $j =~ /.+:(.+)/;
+			if (( $i eq $child ) && ( ! grep(/$parent/, @pkgs_list)))
+			{
+				push @pkgs_inuse, "$j";
+			}
+		}
+	}
+
+	# build dependencies tree
+	my @pkgs_inuse_tree = build_tree(\@pkgs_inuse, \@inst_deps);
+	push @pkgs_inuse, @pkgs_inuse_tree;
+	@pkgs_inuse = sort @pkgs_inuse;
+
+	# create list of packages to keep
+	my @pkgs_keep;
+	foreach (@pkgs_inuse)
+	{
+		(my $child) = $_ =~ /.+:(.+)/;
+		push @pkgs_keep, $child;
+	}
+
+	my %dedupe;
+	@pkgs_keep = grep { ! $dedupe{ $_ }++ } @pkgs_keep;
+	@pkgs_keep = sort @pkgs_keep;
+
+	# delete packages that are in use from list of packages to remove
+	my @pkgs_remove = @pkgs_list;
+	foreach my $i (@pkgs_keep)
+	{
+		@pkgs_remove = grep { $_ ne $i } @pkgs_remove;
+	}
+
+	# create list for pakfire remove command
+	my $remove_list = join('|', @pkgs_remove);
+
+	# display summary
+	print "\n$Lang::tr{'pakfire deps'}\n";
+	my $package_display;
+	if ($mainsettings{'LANGUAGE'} eq "ru")
+	{
+		$package_display = $Lang::tr{'pakfire package'} . " ";
+	} else {
+		$package_display = sprintf("%-10s", $Lang::tr{'pakfire package'});
+	}
+	foreach my $i (@pkgs)
+	{
+		print "\n  $package_display  $i\n";
+		if (grep (/^$i/, @pkgs_deps))
+		{
+			foreach my $j (@pkgs_deps)
+			{
+				if (grep (/^$i/, $j))
+				{
+					(my $child) = $j =~ /.+:(.+)/;
+					print "              " . (arrow_format($j)) . "\n";
+				}
+			}
+		} else {
+			print "              $Lang::tr{'pakfire no deps'}\n";
+		}
+	}
+
+	if (@pkgs_inuse)
+	{
+		print "\n$Lang::tr{'pakfire inuse'}\n\n";
+		foreach (@pkgs_inuse)
+		{
+			print "              " . (arrow_format($_)) . "\n";
+		}
+	}
+
+	if (@pkgs_keep)
+	{
+		print "\n$Lang::tr{'pakfire keep'}\n\n";
+		foreach (@pkgs_keep)
+		{
+			print "              $_\n";
+		}
+
+	}
+
+	if (@pkgs_remove)
+	{
+	        print "\n$Lang::tr{'pakfire remove package'}\n\n";
+		foreach (@pkgs_remove)
+		{
+			print "              $_\n";
+		}
+		print <<END;
 			</pre>
 			</td>
 		</tr>
-		<tr>
-			<td colspan='2'>$Lang::tr{'pakfire uninstall all'}</td>
+END
+	} else {
+		print <<END;
+			</pre>
+			</td>
 		</tr>
 		<tr>
-			<td colspan='2'>&nbsp;</td>
+			<td align='center' style='padding-top:0px;padding-bottom:8px;color:red'>
+			$Lang::tr{'pakfire no remove'}
+			</td>
 		</tr>
+END
+	}
+
+	print <<END;
 		<tr>
-			<td align='center'>
+			<td align='center' style='padding-top:8px;padding-bottom:4px'>
 			<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-			<input type='hidden' name='DELPAKS' value='$cgiparams{'DELPAKS'}' />
+			<input type='hidden' name='DELPAKS' value='$remove_list' />
 			<input type='hidden' name='FORCE' value='on' />
-			<input type='submit' name='ACTION' value='$Lang::tr{'remove'}'/>
+END
+
+	if (@pkgs_remove)
+	{
+		print "<input type='submit' name='ACTION' value='$Lang::tr{'remove'}'/>";
+	} else {
+		print "<input disabled type='submit' name='ACTION' value='$Lang::tr{'remove'}'/>";
+	}
+
+	print <<END;
 			<input type='submit' name='ACTION' value='$Lang::tr{'cancel'}'/>
 			</form>
 			</td>
@@ -803,3 +966,37 @@ sub arrow_format
         $line = substr($line, 0, -4);
         return $line;
 }
+
+# build dependencies tree from array of package
+# dependencies
+sub build_tree
+{
+	my $pref = $_[0];
+	my $dref = $_[1];
+	my @packages = @$pref;
+	my @deps = @$dref;
+	my @tree;
+	my @temp;
+
+	do
+	{
+		@temp = ();
+		foreach my $i (@packages)
+		{
+			(my $child) = $i =~ /.+:(.+)/;
+			foreach my $j (@deps)
+			{
+				(my $deps_parent) = $j =~ /(.+):.+/;
+				(my $deps_child) = $j =~ /.+:(.+)/;
+				if ( $child eq $deps_parent )
+				{
+					push @temp, "$i:$deps_child";
+				}
+			}
+		}
+		push @tree, @temp;
+		@packages = @temp;
+	} until ( ! (@packages));
+
+	return @tree;
+}
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index 52e0d8f47..7bb50c30d 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -2016,22 +2016,31 @@
 'pakfire core update auto' => 'Core- und Add-on-Updates automatisch installieren:',
 'pakfire core update level' => 'Core-Update-Level',
 'pakfire dependecies found' => 'Abhängigkeiten gefunden:',
+'pakfire deps' => 'Paketabhängigkeiten:',
+'pakfire errors' => 'Es sind Fehler aufgetreten:',
 'pakfire finished' => 'Pakfire ist fertig! Kehre zurück...',
 'pakfire finished error' => 'Pakfire ist fertig! Fehler sind aufgetreten, bitte überprüfen Sie die Log-Ausgabe, bevor Sie fortfahren.',
 'pakfire health check' => 'Mirrors auf Erreichbarkeit prüfen (Ping):',
 'pakfire install' => 'Installieren',
 'pakfire install description' => 'Bitte wählen Sie ein oder mehrere Add-Ons zur Installation aus.',
 'pakfire install package' => 'Zu installierende Pakete:',
+'pakfire installed' => 'bereits installiert',
 'pakfire installed addons' => 'Installierte Add-ons:',
+'pakfire inuse' => 'Verwendete Pakete:',
 'pakfire invalid tree' => '',
+'pakfire keep' => 'Aufgrund von Abhängigkeiten aufzubewahrende Pakete:',
 'pakfire last core list update' => 'Letztes Corelisten Update ist',
 'pakfire last package update' => 'Letztes Paketlisten Update ist',
 'pakfire last serverlist update' => 'Letztes Serverlisten Update ist',
 'pakfire last update' => 'Letztes Update ist',
 'pakfire no dependecies found' => 'Keine Abhängigkeiten gefunden.',
+'pakfire no deps' => 'Keine Abhängigkeiten gefunden.',
+'pakfire no remove' => 'Aufgrund von Abhängigkeiten können keine Pakete entfernt werden.',
+'pakfire package' => 'Paket:',
 'pakfire possible dependency' => ' Möglicherweise haben diese Pakete Abhängigkeiten, d.h. andere Pakete müssen zusätzlich installiert werden. Dazu sehen Sie unten eine Liste.',
 'pakfire refresh list' => 'Liste aktualisieren',
 'pakfire register' => 'Registrierung am Pakfire-Server:',
+'pakfire remove package' => 'Zu entfernende Pakete:',
 'pakfire resolvdeps wait' => 'Prüfen auf Abhängigkeiten, bitte warten...',
 'pakfire return' => 'Zurück zu Pakfire',
 'pakfire system state' => 'System Status',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index 979d9d701..f5d4cd5f6 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -2082,22 +2082,31 @@
 'pakfire core update auto' => 'Install core and add-on updates automatically:',
 'pakfire core update level' => 'Core-Update-Level',
 'pakfire dependencies found' => 'Dependencies found:',
+'pakfire deps' => 'Package dependencies:',
+'pakfire errors' => 'Errors occurred:',
 'pakfire finished' => 'Pakfire has finished! Returning...',
 'pakfire finished error' => 'Pakfire has finished! Errors occurred, please check the log output before proceeding.',
 'pakfire health check' => 'Check if mirror is reachable (ping):',
 'pakfire install' => 'Install',
 'pakfire install description' => 'Please select one or more add-ons to install.',
 'pakfire install package' => 'Packages to install:',
+'pakfire installed' => 'already installed',
 'pakfire installed addons' => 'Installed Add-ons:',
+'pakfire inuse' => 'Packages in use:',
 'pakfire invalid tree' => 'Invalid repository selected',
+'pakfire keep' => 'Packages to keep due to dependencies:',
 'pakfire last core list update' => 'Last core list update made',
 'pakfire last package update' => 'Last packages list update made',
 'pakfire last serverlist update' => 'Last server list update made',
 'pakfire last update' => 'Last update made',
 'pakfire no dependencies found' => 'No dependencies found.',
+'pakfire no deps' => 'No dependencies found.',
+'pakfire no remove' => 'Due to dependencies, no packages can be removed.',
+'pakfire package' => 'Package:',
 'pakfire possible dependency' => ' There may be depending packages, here is a list of packages that need to be installed.',
 'pakfire refresh list' => 'Refresh List',
 'pakfire register' => 'Register at pakfire-server:',
+'pakfire remove package' => 'Packages to remove:',
 'pakfire resolvedeps wait' => 'Checking for dependencies, please wait...',
 'pakfire return' => 'Return to Pakfire',
 'pakfire system state' => 'System Status',
diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl
index 3d7531621..51a2a0467 100644
--- a/langs/es/cgi-bin/es.pl
+++ b/langs/es/cgi-bin/es.pl
@@ -2079,22 +2079,31 @@
 'pakfire core update auto' => 'Instar actualizaciones principales y complementarias automáticamente:',
 'pakfire core update level' => 'Nivel de actualización del núcleo',
 'pakfire dependencies found' => 'Dependencias encontradas:',
+'pakfire deps' => 'Dependencias del paquete:',
+'pakfire errors' => 'Se produjeron errores:',
 'pakfire finished' => '¡Pakfire ha terminado! Volviendo...',
 'pakfire finished error' => '¡Pakfire ha terminado! Ocurrieron errores, verifique la salida del registro antes de continuar.',
 'pakfire health check' => 'Verificar disponibilidad del espejo (ping):',
 'pakfire install' => 'Instalar',
 'pakfire install description' => 'Seleccione uno o más complementos para instalar.',
 'pakfire install package' => 'Paquetes a instalar:',
+'pakfire installed' => 'ya instalado',
 'pakfire installed addons' => 'Complementos instalados:',
+'pakfire inuse' => 'Paquetes en uso:',
 'pakfire invalid tree' => 'Repositorio no válido seleccionado',
+'pakfire keep' => 'Paquetes a conservar debido a dependencias:',
 'pakfire last core list update' => 'Última lista de actualización de núcleo hecha',
 'pakfire last package update' => 'Última lista de actualización de paquetes hecha',
 'pakfire last serverlist update' => 'Última lista de actualización de servidor hecha',
 'pakfire last update' => 'Última actualización realizada',
 'pakfire no dependencies found' => 'No se encontraron dependencias.',
+'pakfire no deps' => 'No se encontraron dependencias.',
+'pakfire no remove' => 'Debido a las dependencias, no se pueden eliminar paquetes.',
+'pakfire package' => 'Paquete:',
 'pakfire possible dependency' => 'Puede haber paquetes con dependencias, aquí está una lista de paquetes que necesitan ser instalados.',
 'pakfire refresh list' => 'Refrescar Lista',
 'pakfire register' => 'Registrar en el servidor pakfire:',
+'pakfire remove package' => 'Paquetes a eliminar:',
 'pakfire resolvedeps wait' => 'Buscando dependencias, por favor espere...',
 'pakfire return' => 'Regresar a Pakfire',
 'pakfire system state' => 'Estado del sistema',
diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl
index 4fb67afcb..dc0134379 100644
--- a/langs/fr/cgi-bin/fr.pl
+++ b/langs/fr/cgi-bin/fr.pl
@@ -2077,22 +2077,31 @@
 'pakfire core update auto' => 'Installer automatiquement les mises à jour du noyau et des modules :',
 'pakfire core update level' => 'Version de mise à jour du noyau ',
 'pakfire dependencies found' => 'Dépendances trouvées :',
+'pakfire deps' => 'Dépendances du paquet :',
+'pakfire errors' => 'Des erreurs se sont produites :',
 'pakfire finished' => 'Pakfire a fini ! Retour...',
 'pakfire finished error' => 'Pakfire a fini ! Des erreurs se sont produites, veuillez vérifier les rapports système des journaux avant de continuer.',
 'pakfire health check' => 'Vérifier si le miroir est accessible (ping) :',
 'pakfire install' => 'Installer',
 'pakfire install description' => 'Veuillez sélectionner un ou plusieurs modules complémentaires à installer.',
 'pakfire install package' => 'Paquets à installer :',
+'pakfire installed' => 'déjà installé',
 'pakfire installed addons' => 'Modules installés :',
+'pakfire inuse' => 'Paquets en cours d\'utilisation :',
 'pakfire invalid tree' => 'Dépôt choisi invalide',
+'pakfire keep' => 'Paquets à conserver en raison des dépendances :',
 'pakfire last core list update' => 'Dernière mise à jour de la liste du noyau : ',
 'pakfire last package update' => 'Dernière mise à jour de la liste des paquets : ',
 'pakfire last serverlist update' => 'Dernière mise à jour de la liste des serveurs : ',
 'pakfire last update' => 'Dernière mise à jour : ',
 'pakfire no dependencies found' => 'Aucune dépendance trouvée.',
+'pakfire no deps' => 'Aucune dépendance trouvée.',
+'pakfire no remove' => 'En raison des dépendances, aucun paquet ne peut être supprimé.',
+'pakfire package' => 'Paquet :',
 'pakfire possible dependency' => 'Il y a peut-être des dépendances, voici la liste des paquets qu\'il faut (dés)installer.',
 'pakfire refresh list' => 'Actualiser la Liste',
 'pakfire register' => 'S\'inscrire au serveur pakfire :',
+'pakfire remove package' => 'Paquets à supprimer :',
 'pakfire resolvedeps wait' => 'Vérification des dépendances, veuillez patienter...',
 'pakfire return' => 'Retour à Pakfire',
 'pakfire system state' => 'Statut système PakFire ',
diff --git a/langs/it/cgi-bin/it.pl b/langs/it/cgi-bin/it.pl
index 1cf14bd90..067e32ca7 100644
--- a/langs/it/cgi-bin/it.pl
+++ b/langs/it/cgi-bin/it.pl
@@ -1717,19 +1717,28 @@
 'pakfire core update auto' => 'Install core and addon updates automatically:',
 'pakfire core update level' => 'Core-Update-Level',
 'pakfire dependencies found' => 'Dipendenze trovate:',
+'pakfire deps' => 'Dipendenze del pacchetto:',
+'pakfire errors' => 'Si sono verificati degli errori:',
 'pakfire health check' => 'Controllare se il mirror è raggiungibile (ping):',
 'pakfire install' => 'Installare',
 'pakfire install description' => 'Selezionare uno o più componenti aggiuntivi da installare.',
 'pakfire install package' => 'Pacchetti da installare:',
+'pakfire installed' => 'già installato',
 'pakfire installed addons' => 'Addons installati:',
+'pakfire inuse' => 'Pacchetti in uso:',
+'pakfire keep' => 'Pacchetti da mantenere a causa delle dipendenze:',
 'pakfire last core list update' => 'Ultimo aggiornamento della lista di sistema',
 'pakfire last package update' => 'Ultimo aggiornamento della lista pacchetti',
 'pakfire last serverlist update' => 'Ultimo aggiornamento della lista server',
 'pakfire last update' => 'Ultimo aggiornamento di sistema effettuato',
 'pakfire no dependencies found' => 'Nessuna dipendenza trovata.',
+'pakfire no deps' => 'Nessuna dipendenza trovata.',
+'pakfire no remove' => 'A causa delle dipendenze, nessun pacchetto può essere rimosso.',
+'pakfire package' => 'Pacchetto:',
 'pakfire possible dependency' => ' There may be depending packages, here is a list of packages that need to be installed.',
 'pakfire refresh list' => 'Aggiorna le Liste',
 'pakfire register' => 'Registrati sul pakfire-server:',
+'pakfire remove package' => 'Pacchetti da rimuovere:',
 'pakfire resolvedeps wait' => 'Controllo delle dipendenze, attendere prego...',
 'pakfire system state' => 'Stato del Sistema',
 'pakfire uninstall all' => 'Vuoi disinstallare i seguenti pacchetti?',
diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl
index 68f79a262..8150b8c97 100644
--- a/langs/nl/cgi-bin/nl.pl
+++ b/langs/nl/cgi-bin/nl.pl
@@ -1692,19 +1692,28 @@
 'pakfire core update auto' => 'Installeer core- en extensie-updates automatisch:',
 'pakfire core update level' => 'Core-updateniveau',
 'pakfire dependencies found' => 'Afhankelijkheden gevonden:',
+'pakfire deps' => 'Pakketafhankelijkheden:',
+'pakfire errors' => 'Er zijn fouten opgetreden:',
 'pakfire health check' => 'Controleer of de mirror bereikbaar is  (ping):',
 'pakfire install' => 'Installeren',
 'pakfire install description' => 'Selecteer een of meer add-ons om te installeren.',
 'pakfire install package' => 'Pakketten om te installeren:',
+'pakfire installed' => 'al geïnstalleerd',
 'pakfire installed addons' => 'Geïnstalleerde add-ons:',
+'pakfire inuse' => 'Pakketten in gebruik:',
+'pakfire keep' => 'Pakketten die moeten worden bewaard vanwege afhankelijkheden:',
 'pakfire last core list update' => 'Laatste core-lijst update gemaakt',
 'pakfire last package update' => 'Laatste pakketlijst update gemaakt',
 'pakfire last serverlist update' => 'Laatste serverlijst update gemaakt',
 'pakfire last update' => 'Laatste update gemaakt',
 'pakfire no dependencies found' => 'Geen afhankelijkheden gevonden.',
+'pakfire no deps' => 'Geen afhankelijkheden gevonden.',
+'pakfire no remove' => 'Vanwege afhankelijkheden kunnen er geen pakketten worden verwijderd.',
+'pakfire package' => 'Pakket:',
 'pakfire possible dependency' => ' Er kunnen pakketafhankelijkheden zijn, hier is een lijst met pakketten die moeten worden geïnstalleerd.',
 'pakfire refresh list' => 'Ververs Lijst',
 'pakfire register' => 'Registreer bij de pakfire-server:',
+'pakfire remove package' => 'Te verwijderen pakketten:',
 'pakfire resolvedeps wait' => 'Controleren op afhankelijkheden, even geduld...',
 'pakfire system state' => 'Systeemstatus',
 'pakfire uninstall all' => 'Wilt u de volgende pakketten verwijderen?',
diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl
index 2dd9ccee0..03d54e28a 100644
--- a/langs/pl/cgi-bin/pl.pl
+++ b/langs/pl/cgi-bin/pl.pl
@@ -1357,19 +1357,28 @@
 'pakfire core update auto' => 'Instaluj aktualizacje jądra automatycznie:',
 'pakfire core update level' => 'Aktualizacja jądra',
 'pakfire dependencies found' => 'Znaleziono zależności:',
+'pakfire deps' => 'Zależności pakietów:',
+'pakfire errors' => 'Wystąpiły błędy:',
 'pakfire health check' => 'Sprawdź czy mirror jest dostępny (ping):',
 'pakfire install' => 'Instaluj',
 'pakfire install description' => 'Wybierz jeden lub więcej dodatków do zainstalowania.',
 'pakfire install package' => 'Pakiety do zainstalowania:',
+'pakfire installed' => 'już zainstalowany',
 'pakfire installed addons' => 'Zainstalowane dodatki:',
+'pakfire inuse' => 'Pakiety w użyciu:',
+'pakfire keep' => 'Pakiety do zachowania ze względu na zależności:',
 'pakfire last core list update' => 'Sprawdzenie aktualizacja jądra:',
 'pakfire last package update' => 'Ostatnia aktualizacja listy pakietów:',
 'pakfire last serverlist update' => 'Ostatnia aktualizacja listy serwerów:',
 'pakfire last update' => 'Ostatnia aktualizacja:',
 'pakfire no dependencies found' => 'Nie znaleziono zależności.',
+'pakfire no deps' => 'Nie znaleziono zależności.',
+'pakfire no remove' => 'Ze względu na zależności, żadne pakiety nie mogą zostać usunięte.',
+'pakfire package' => 'Pakiet:',
 'pakfire possible dependency' => ' Pewne pakiety mogą wymagać zależności. Oto lista pakietów które muszę zostać zainstalowane.',
 'pakfire refresh list' => 'Odśwież Listę',
 'pakfire register' => 'Register at pakfire-server:',
+'pakfire remove package' => 'Pakiety do usunięcia:',
 'pakfire resolvedeps wait' => 'Sprawdzanie zależności, proszę czekać...',
 'pakfire system state' => 'Status systemu',
 'pakfire uninstall all' => 'Czy chcesz odinstalować następujące pakiety?',
diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl
index 155a4d8d1..e6a61c3eb 100644
--- a/langs/ru/cgi-bin/ru.pl
+++ b/langs/ru/cgi-bin/ru.pl
@@ -1352,19 +1352,28 @@
 'pakfire core update auto' => 'Устанавливать обновления ядра и аддонов автоматически:',
 'pakfire core update level' => 'Уровень обновления системы',
 'pakfire dependencies found' => 'Зависимости найдены:',
+'pakfire deps' => 'Зависимости пакетов:',
+'pakfire errors' => 'Произошли ошибки:',
 'pakfire health check' => 'Пинговать зеркало на доступность:',
 'pakfire install' => 'Установить',
 'pakfire install description' => 'Пожалуйста, выберите одно или несколько дополнений для установки.',
 'pakfire install package' => 'Пакеты для установки:',
+'pakfire installed' => 'уже установлено',
 'pakfire installed addons' => 'Установленные Аддоны:',
+'pakfire inuse' => 'Используемые пакеты:',
+'pakfire keep' => 'Пакеты, которые необходимо сохранить из-за наличия зависимостей:',
 'pakfire last core list update' => 'Обновление core-списков',
 'pakfire last package update' => 'Обновление списка пакетов',
 'pakfire last serverlist update' => 'Обновление серверных списков',
 'pakfire last update' => 'Последнее обновление',
 'pakfire no dependencies found' => 'Зависимости не найдены.',
+'pakfire no deps' => 'Зависимости не найдены.',
+'pakfire no remove' => 'Из-за зависимостей ни один пакет не может быть удален.',
+'pakfire package' => 'Упаковка:',
 'pakfire possible dependency' => ' There may be depending packages, here is a list of packages that need to be installed.',
 'pakfire refresh list' => 'Обновить Список',
 'pakfire register' => 'Регистрировать на pakfire-сервере:',
+'pakfire remove package' => 'Пакеты для удаления:',
 'pakfire resolvedeps wait' => 'Проверка зависимостей, пожалуйста, подождите...',
 'pakfire system state' => 'Статус системы',
 'pakfire uninstall all' => 'Вы хотите удалить следующие пакеты?',
diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl
index 1194b3ec6..38d090ebd 100644
--- a/langs/tr/cgi-bin/tr.pl
+++ b/langs/tr/cgi-bin/tr.pl
@@ -1861,19 +1861,28 @@
 'pakfire core update auto' => 'Otomatik olarak çekirdek ve eklenti güncelleştirmelerini yükle:',
 'pakfire core update level' => 'Çekirdek-Güncelleme-Seviyesi',
 'pakfire dependencies found' => 'Bağımlılıklar bulundu:',
+'pakfire deps' => 'Paket bağımlılıkları:',
+'pakfire errors' => 'Hatalar oluştu:',
 'pakfire health check' => 'Yansımanın ulaşılabilir olup olmadığını kontrol et (ping):',
 'pakfire install' => 'Yükle',
 'pakfire install description' => 'Lütfen yüklemek için bir veya daha fazla eklenti seçin.',
 'pakfire install package' => 'Kurulacak paketler:',
+'pakfire installed' => 'zaten kurulu',
 'pakfire installed addons' => 'Kurulu eklentiler:',
+'pakfire inuse' => 'Kullanımdaki paketler:',
+'pakfire keep' => 'Bağımlılıklar nedeniyle saklanacak paketler:',
 'pakfire last core list update' => 'Son çekirdek listesi güncellemesi',
 'pakfire last package update' => 'Son paket listesi güncellemesi',
 'pakfire last serverlist update' => 'Son sunucu listesi güncellemesi',
 'pakfire last update' => 'Son güncelleme',
 'pakfire no dependencies found' => 'Hiçbir bağımlılık bulunamadı.',
+'pakfire no deps' => 'Bağımlılık bulunamadı.',
+'pakfire no remove' => 'Bağımlılıklar nedeniyle hiçbir paket kaldırılamaz.',
+'pakfire package' => 'Paket:',
 'pakfire possible dependency' => ' Yüklenemesi gereken paketlerin yüklenebilmesi için buradaki paketlere ihtiyaç duyulabilir.',
 'pakfire refresh list' => 'Listeyi Yenile',
 'pakfire register' => 'Pakfire sunucusuna kayıt:',
+'pakfire remove package' => 'Kaldırılacak paketler:',
 'pakfire resolvedeps wait' => 'Bağımlılıklar kontrol ediliyor, lütfen bekleyin...',
 'pakfire system state' => 'Sistem durumu',
 'pakfire uninstall all' => 'Aşağıdaki paketleri kaldırmak istiyor musunuz?',
-- 
2.43.0



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

only message in thread, other threads:[~2025-05-10 16:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-10 16:19 [PATCH] pakfire.cgi: Changes to install and remove confirmation pages Stephen Cuka

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