package fs; # $Id$
use diagnostics;
use strict;
use MDK::Common::System;
use MDK::Common::Various;
use common;
use log;
use devices;
use fs::type;
use fs::get;
use fs::format;
use fs::mount_options;
use run_program;
use detect_devices;
use modules;
use fsedit;
use loopback;
sub read_fstab {
my ($prefix, $file, @reading_options) = @_;
if (member('keep_default', @reading_options)) {
push @reading_options, 'freq_passno', 'keep_devfs_name', 'keep_device_LABEL';
}
my %comments;
my $comment;
my @l = grep {
if (/^Filename\s*Type\s*Size/) {
0; #- when reading /proc/swaps
} elsif (/^\s*#/) {
$comment .= chomp_($_) . "\n";
0;
} else {
$comments{$_} = $comment if $comment;
$comment = '';
1;
}
} cat_("$prefix$file");
#- attach comments at the end of fstab to the previous line
$comments{$l[-1]} = $comment if $comment;
map {
my ($dev, $mntpoint, $fs_type, $options, $freq, $passno) = split;
my $comment = $comments{$_};
$options = 'defaults' if $options eq 'rw'; # clean-up for mtab read
if ($fs_type eq 'supermount') {
# normalize this bloody supermount
$options = join(",", 'supermount', grep {
if (/fs=(.*)/) {
$fs_type = $1;
0;
} elsif (/dev=(.*)/) {
$dev = $1;
0;
} elsif ($_ eq '--') {
0;
} else {
1;
}
} split(',', $options));
} elsif ($fs_type eq 'smb') {
# prefering type "smbfs" over "smb"
$fs_type = 'smbfs';
}
s/\\040/ /g foreach $mntpoint, $dev, $options;
my $h = {
mntpoint => $mntpoint, fs_type => $fs_type,
options => $options, comment => $comment,
if_(member('keep_freq_passno', @reading_options), freq => $freq, passno => $passno),
};
put_in_hash($h, subpart_from_wild_device_name($dev));
if ($h->{device_LABEL} && member('keep_device_LABEL', @reading_options)) {
$h->{prefer_device_LABEL} = 1;
} elsif ($h->{devfs_device} && member('keep_devfs_name', @reading_options)) {
$h->{prefer_devfs_name} = 1;
}
if ($h->{options} =~ /credentials=/ && !member('verbatim_credentials', @reading_options)) {
require network::smb;
#- remove credentials=file with username=foo,password=bar,domain=zoo
#- the other way is done in fstab_to_string
my ($options, $unknown) = fs::mount_options::unpack($h);
my $file = delete $options->{'credentials='};
my $credentials = network::smb::read_credentials_raw($file);
if ($credentials->{username}) {
$options->{"$_="} = $credentials->{$_} foreach qw(username password domain);
fs::mount_options::pack($h, $options, $unknown);
}
}
$h;
} @l;
}
sub merge_fstabs {
my ($loose, $fstab, @l) = @_;
foreach my $p (@$fstab) {
my ($l1, $l2) = partition { fsedit::is_same_hd($_, $p) } @l;
my ($p2) = @$l1 or next;
@l = @$l2;
$p->{mntpoint} = $p2->{mntpoint} if delete $p->{unsafeMntpoint};
if (!$loose) {
$p->{fs_type} = $p2->{fs_type} if $p2->{fs_type};
$p->{options} = $p2->{options} if $p2->{options};
add2hash($p, $p2);
} else {
$p->{isMounted} ||= $p2->{isMounted};
}
$p->{device_alias} ||= $p2->{device_alias} || $p2->{device} if $p->{device} ne $p2->{device} && $p2->{device} !~ m|/|;
$p->{fs_type} && $p2->{fs_type} && $p->{fs_type} ne $p2->{fs_type}
&& $p->{fs_type} ne 'auto' && $p2->{fs_type} ne 'auto' and
log::l("err, fstab and partition table do not agree for $p->{device} type: $p->{fs_type} vs $p2->{fs_type}");
}
@l;
}
sub analyze_wild_device_name {
my ($dev) = @_;
if ($dev =~ m!^/u?dev/(.*)!) {
'dev', $dev;
} elsif ($dev !~ m!^/! && (-e "/dev/$dev" || -e "$::prefix/dev/$dev")) {
'dev', "/dev/$dev";
} elsif ($dev =~ /^LABEL=(.*)/) {
'label', $1;
} elsif ($dev eq 'none' || $dev eq 'rootfs') {
'virtual';
} elsif ($dev =~ m!^(\S+):/\w!) {
'nfs';
} elsif ($dev =~ m!^//\w!) {
'smb';
} elsif ($dev =~ m!^http://!) {
'dav';
}
}
sub subpart_from_wild_device_name {
my ($dev) = @_;
my $part = { device => $dev, faked_device => 1 }; #- default
if (my ($kind, $val) = analyze_wild_device_name($dev)) {
if ($kind eq 'label') {
$part->{device_LABEL} = $val;
} elsif ($kind eq 'dev') {
my %part = (faked_device => 0);
if (my $rdev = (stat "$::prefix$dev")[6]) {
($part{major}, $part{minor}) = unmakedev($rdev);
}
my $symlink = readlink("$::prefix$dev");
$dev =~ s!/u?dev/!!;
if ($symlink && $symlink =~ m|^[^/]+$|) {
$part{device_alias} = $dev;
$dev = $symlink;
}
if (my (undef, $part_number) = $dev =~ m!/(disc|part(\d+))$!) {
$part{part_number} = $part_number if $part_number;
$part{devfs_device} = $dev;
} else {
my $part_number = devices::part_number(\%part);
$part{part_number} = $part_number if $part_number;
}
$part{device} = $dev;
return \%part;
}
} else {
if ($dev =~ m!^/! && -f "$::prefix$dev") {
#- it must be a loopback file or directory to bind
} else {
log::l("part_from_wild_device_name: unknown device $dev");
}
}
$part;
}
sub part2wild_device_name {
my ($prefix, $part) = @_;
if ($part->{prefer_device_LABEL}) {
'LABEL=' . $part->{device_LABEL};
} elsif ($part->{prefer_devfs_name}) {
"/dev/$part->{devfs_device}";
} elsif ($part->{device_alias}) {
"/dev/$part->{device_alias}";
} else {
my $faked_device = exists $part->{faked_device} ?
$part->{faked_device} :
do {
#- in case $part has been created without using subpart_from_wild_device_name()
my ($kind) = analyze_wild_device_name($part->{device});
$kind ? $kind ne 'dev' : $part->{device} =~ m!^/!;
};
if ($faked_device) {
$part->{device};
} elsif ($part->{device} =~ m!^/dev/!) {
log::l("ERROR: i have a full device $part->{device}, this should not happen. use subpart_from_wild_device_name() instead of creating bad part data-structures!");
$part->{device};
} else {
my $dev = "/dev/$part->{device}";
eval { devices::make("$prefix$dev") };
$dev;
}
}
}
sub add2all_hds {
my ($all_hds, @l) = @_;
@l = merge_fstabs('', [ fs::get::really_all_fstab($all_hds) ], @l);
foreach (@l) {
my $s =
$_->{fs_type} eq 'nfs' ? 'nfss' :
$_->{fs_type} eq 'smbfs' ? 'smbs' :
$_->{fs_type} eq 'davfs' ? 'davs' :
isTrueLocalFS($_) || isSwap($_) || isOtherAvailableFS($_) ? '' :
'special';
push @{$all_hds->{$s}}, $_ if $s;
}
}
sub get_major_minor {
eval {
my (undef, $major, $minor) = devices::entry($_->{device});
($_->{major}, $_->{minor}) = ($major, $minor);
} foreach @_;
}
sub merge_info_from_mtab {
my ($fstab) = @_;
my @l1 = map { my $l = $_;
my $h = fs::type::fs_type2subpart('swap');
$h->{$_} = $l->{$_} foreach qw(device major minor);
$h;
} read_fstab('', '/proc/swaps');
my @l2 = map { read_fstab('', $_) } '/etc/mtab', '/proc/mounts';
foreach (@l1, @l2) {
log::l("found mounted partition on $_->{device} with $_->{mntpoint}");
if ($::isInstall && $_->{mntpoint} =~ m!/tmp/(image|hdimage)!) {
$_->{real_mntpoint} = delete $_->{mntpoint};
if ($_->{real_mntpoint} eq '/tmp/hdimage') {
log::l("found hdimage on $_->{device}");
$_->{mntpoint} = "/mnt/hd"; #- remap for hd install.
}
}
$_->{isMounted} = 1;
set_isFormatted($_, 1);
}
merge_fstabs('loose', $fstab, @l1, @l2);
}
# - when using "$loose", it does not merge in type&options from the fstab
sub merge_info_from_fstab {
my ($fstab, $prefix, $uniq, $loose) = @_;
my @l = grep {
if ($uniq) {
my $part = fs::get::mntpoint2part($_->{mntpoint}, $fstab);
!$part || fsedit::is_same_hd($part, $_); #- keep it only if it is the mountpoint AND the same device
} else {
1;
}
} read_fstab($prefix, '/etc/fstab', 'keep_default');
merge_fstabs($loose, $fstab, @l);
}
sub get_info_from_fstab {
my ($all_hds) = @_;
my @l = read_fstab($::prefix, '/etc/fstab', 'keep_default');
add2all_hds($all_hds, @l);
}
sub prepare_write_fstab {
my ($fstab, $o_prefix, $b_keep_smb_credentials) = @_;
$o_prefix ||= '';
my %new;
my @smb_credentials;
my @l = map {
my $device =
isLoopback($_) ?
($_->{mntpoint} eq '/' ? "/initrd/loopfs" : $_->{loopback_device}{mntpoint}) . $_->{loopback_file} :
part2wild_device_name($o_prefix, $_);
my $real_mntpoint = $_->{mntpoint} || ${{ '/tmp/hdimage' => '/mnt/hd' }}{$_->{real_mntpoint}};
mkdir_p("$o_prefix$real_mntpoint") if $real_mntpoint =~ m|^/|;
my $mntpoint = loopback::carryRootLoopback($_) ? '/initrd/loopfs' : $real_mntpoint;
my ($freq, $passno) =
exists $_->{freq} ?
($_->{freq}, $_->{passno}) :
isTrueLocalFS($_) && $_->{options} !~ /encryption=/ && (!$_->{is_removable} || member($_->{mntpoint}, fs::type::directories_needed_to_boot())) ?
(1, $_->{mntpoint} eq '/' ? 1 : loopback::carryRootLoopback($_) ? 0 : 2) :
(0, 0);
if (($device eq 'none' || !$new{$device}) && ($mntpoint eq 'swap' || !$new{$mntpoint})) {
#- keep in mind the new line for fstab.
$new{$device} = 1;
$new{$mntpoint} = 1;
my $options = $_->{options};
if ($_->{fs_type} eq 'smbfs' && $options =~ /password=/ && !$b_keep_smb_credentials) {
require network::smb;
if (my ($opts, $smb_credentials) = network::smb::fstab_entry_to_credentials($_)) {
$options = $opts;
push @smb_credentials, $smb_credentials;
}
}
my $fs_type = $_->{fs_type} || 'auto';
s/ /\\040/g foreach $mntpoint, $device, $options;
# handle bloody supermount special case
if ($options =~ /supermount/) {
my @l = grep { $_ ne 'supermount' } split(',', $options);
my ($l1, $l2) = partition { member($_, 'ro', 'exec') } @l;
$options = join(",", "dev=$device", "fs=$fs_type", @$l1, if_(@$l2, '--', @$l2));
($device, $fs_type) = ('none', 'supermount');
} else {
#- if we were using supermount, the type could be something like ext2:vfat
#- but this can not be done without supermount, so switching to "auto"
$fs_type = 'auto' if $fs_type =~ /:/;
}
my $file_dep = $options =~ /\b(loop|bind)\b/ ? $device : '';
[ $file_dep, $mntpoint, $_->{comment} . join(' ', $device, $mntpoint, $fs_type, $options || 'defaults', $freq, $passno) . "\n" ];
} else {
();
}
} grep { $_->{device} && ($_->{mntpoint} || $_->{real_mntpoint}) && $_->{fs_type} && ($_->{isFormatted} || !$_->{notFormatted}) } @$fstab;
sub sort_it {
my (@l) = @_;
if (my $file_based = find { $_->[0] } @l) {
my ($before, $other) = partition { $file_based->[0] =~ /^\Q$_->[1]/ } @l;
$file_based->[0] = ''; #- all dependencies are now in before
if (@$other && @$before) {
sort_it(@$before), sort_it(@$other);
} else {
sort_it(@l);
}
} else {
sort { $a->[1] cmp $b->[1] } @l;
}
}
@l = sort_it(@l);
join('', map { $_->[2] } @l), \@smb_credentials;
}
sub fstab_to_string {
my ($all_hds, $o_prefix) = @_;
my $fstab = [ fs::get::really_all_fstab($all_hds), @{$all_hds->{special}} ];
my ($s, undef) = prepare_write_fstab($fstab, $o_prefix, 'keep_smb_credentials');
$s;
}
sub write_fstab {
my ($all_hds, $o_prefix) = @_;
log::l("writing $o_prefix/etc/fstab");
my $fstab = [ fs::get::really_all_fstab($all_hds), @{$all_hds->{special}} ];
my ($s, $smb_credentials) = prepare_write_fstab($fstab, $o_prefix, '');
output("$o_prefix/etc/fstab", $s);
network::smb::save_credentials($_) foreach @$smb_credentials;
}
sub auto_fs() {
grep { chop; $_ && !/nodev/ } cat_("/etc/filesystems");
}
sub set_removable_mntpoints {
my ($all_hds) = @_;
my %names;
foreach (@{$all_hds->{raw_hds}}) {
my $name = detect_devices::suggest_mount_point($_) or next;
$name eq 'zip' and next;
my $s = ++$names{$name};
$_->{mntpoint} ||= "/mnt/$name" . ($s == 1 ? '' : $s);
}
}
sub get_raw_hds {
my ($prefix, $all_hds) = @_;
push @{$all_hds->{raw_hds}}, detect_devices::removables();
$_->{is_removable} = 1 foreach @{$all_hds->{raw_hds}};
get_major_minor(@{$all_hds->{raw_hds}});
my @fstab = read_fstab($prefix, '/etc/fstab', 'keep_default');
$all_hds->{nfss} = [ grep { $_->{fs_type} eq 'nfs' } @fstab ];
$all_hds->{smbs} = [ grep { $_->{fs_type} eq 'smbfs' } @fstab ];
$all_hds->{davs} = [ grep { $_->{fs_type} eq 'davfs' } @fstab ];
$all_hds->{special} = [
(grep { $_->{fs_type} eq 'tmpfs' } @fstab),
{ device => 'none', mntpoint => '/proc', fs_type => 'proc' },
];
}
################################################################################
# mounting functions
################################################################################
sub set_loop {
my ($part) = @_;
$part->{real_device} ||= devices::set_loop(devices::make($part->{device}), $part->{encrypt_key}, $part->{options} =~ /encryption=(\w+)/);
}
sub swapon {
my ($dev) = @_;
log::l("swapon called with $dev");
syscall_('swapon', devices::make($dev), 0) or die "swapon($dev) failed: $!";
}
sub swapoff {
my ($dev) = @_;
syscall_('swapoff', devices::make($dev)) or die "swapoff($dev) failed: $!";
}
sub formatMount_part {
my ($part, $raids, $fstab, $prefix, $wait_message) = @_;
if (isLoopback($part)) {
formatMount_part($part->{loopback_device}, $raids, $fstab, $prefix, $wait_message);
}
if (my $p = fs::get::up_mount_point($part->{mntpoint}, $fstab)) {
formatMount_part($p, $raids, $fstab, $prefix, $wait_message) unless loopback::carryRootLoopback($part);
}
if ($part->{toFormat}) {
fs::format::part($raids, $part, $prefix, $wait_message);
}
mount_part($part, $prefix, 0, $wait_message);
}
sub formatMount_all {
my ($raids, $fstab, $prefix, $wait_message) = @_;
formatMount_part($_, $raids, $fstab, $prefix, $wait_message)
foreach sort { isLoopback($a) ? 1 : isSwap($a) ? -1 : 0 } grep { $_->{mntpoint} } @$fstab;
#- ensure the link is there
loopback::carryRootCreateSymlink($_, $prefix) foreach @$fstab;
#- for fun :)
#- that way, when install exits via ctrl-c, it gives hand to partition
eval {
my ($_type, $major, $minor) = devices::entry(fs::get::root($fstab)->{device});
output "/proc/sys/kernel/real-root-dev", makedev($major, $minor);
};
}
sub mount {
my ($dev, $where, $fs, $b_rdonly, $o_options, $o_wait_message) = @_;
log::l("mounting $dev on $where as type $fs, options $o_options");
mkdir_p($where);
$fs or log::l("not mounting $dev partition"), return;
{
my @fs_modules = qw(ext3 hfs jfs ntfs romfs reiserfs ufs xfs vfat);
my @types = (qw(ext2 proc sysfs usbfs usbdevfs iso9660 devfs devpts), @fs_modules);
push @types, 'smb', 'smbfs', 'nfs', 'davfs' if !$::isInstall;
if (!member($fs, @types) && !$::move) {
log::l("skipping mounting $dev partition ($fs)");
return;
}
if ($::isInstall) {
if (member($fs, @fs_modules)) {
eval { modules::load($fs) };
} elsif ($fs eq 'iso9660') {
eval { modules::load('isofs') };
}
}
}
$where =~ s|/$||;
my @mount_opt = split(',', $o_options || '');
if ($fs eq 'vfat') {
@mount_opt = 'check=relaxed';
} elsif ($fs eq 'jfs' && !$b_rdonly) {
fsck_jfs($dev, $o_wait_message);
} elsif ($fs eq 'ext2' && !$b_rdonly) {
fsck_ext2($dev, $o_wait_message);
}
push @mount_opt, 'ro' if $b_rdonly;
log::l("calling mount -t $fs $dev $where @mount_opt");
$o_wait_message->(N("Mounting partition %s", $dev)) if $o_wait_message;
run_program::run('mount', '-t', $fs, $dev, $where, if_(@mount_opt, '-o', join(',', @mount_opt))) or die N("mounting partition %s in directory %s failed", $dev, $where);
}
sub fsck_ext2 {
my ($dev, $o_wait_message) = @_;
$o_wait_message->(N("Checking %s", $dev)) if $o_wait_message;
foreach ('-a', '-y') {
run_program::raw({ timeout => 60 * 60 }, "fsck.ext2", $_, $dev);
my $err = $?;
if ($err & 0x0100) {
log::l("fsck corrected partition $dev");
}
if ($err & 0xfeff) {
my $txt = sprintf("fsck failed on %s with exit code %d or signal %d", $dev, $err >> 8, $err & 255);
$_ eq '-y' ? die($txt) : cdie($txt);
} else {
last;
}
}
}
sub fsck_jfs {
my ($dev, $o_wait_message) = @_;
$o_wait_message->(N("Checking %s", $dev)) if $o_wait_message;
#- needed if the system is dirty otherwise mounting read-write simply fails
run_program::raw({ timeout => 60 * 60 }, "fsck.jfs", $dev) or do {
my $err = $?;
die "fsck.jfs failed" if $err & 0xfc00;
};
}
#- takes the mount point to umount (can also be the device)
sub umount {
my ($mntpoint) = @_;
$mntpoint =~ s|/$||;
log::l("calling umount($mntpoint)");
syscall_('umount2', $mntpoint, 0) or do {
kill 15, fuzzy_pidofs('^fam\b');
syscall_('umount2', $mntpoint, 0) or die N("error unmounting %s: %s", $mntpoint, $!);
};
substInFile { $_ = '' if /(^|\s)$mntpoint\s/ } '/etc/mtab'; #- do not care about error, if we can not read, we will not manage to write... (and mess mtab)
}
sub mount_part {
my ($part, $o_prefix, $b_rdonly, $o_wait_message) = @_;
#- root carrier's link can not be mounted
loopback::carryRootCreateSymlink($part, $o_prefix);
log::l("mount_part: " . join(' ', map { "$_=$part->{$_}" } 'device', 'mntpoint', 'isMounted', 'real_mntpoint'));
if ($part->{isMounted} && $part->{real_mntpoint} && $part->{mntpoint}) {
log::l("remounting partition on $o_prefix$part->{mntpoint} instead of $part->{real_mntpoint}");
if ($::isInstall) { #- ensure partition will not be busy.
require install_any;
install_any::getFile('XXX');
}
eval {
umount($part->{real_mntpoint});
rmdir $part->{real_mntpoint};
symlinkf "$o_prefix$part->{mntpoint}", $part->{real_mntpoint};
delete $part->{real_mntpoint};
$part->{isMounted} = 0;
};
}
return if $part->{isMounted};
unless ($::testing) {
if (isSwap($part)) {
$o_wait_message->(N("Enabling swap partition %s", $part->{device})) if $o_wait_message;
swapon($part->{device});
} else {
$part->{mntpoint} or die "missing mount point for partition $part->{device}";
my $mntpoint = ($o_prefix || '') . $part->{mntpoint};
if (isLoopback($part) || $part->{encrypt_key}) {
set_loop($part);
} elsif ($part->{options} =~ /encrypted/) {
log::l("skip mounting $part->{device} since we do not have the encrypt_key");
return;
} elsif (loopback::carryRootLoopback($part)) {
$mntpoint = "/initrd/loopfs";
}
my $dev = $part->{real_device} || part2wild_device_name('', $part);
mount($dev, $mntpoint, $part->{fs_type}, $b_rdonly, $part->{options}, $o_wait_message);
rmdir "$mntpoint/lost+found";
}
}
$part->{isMounted} = 1;
set_isFormatted($part, 1); #- assume that if mount works, partition is formatted
}
sub umount_part {
my ($part, $o_prefix) = @_;
$part->{isMounted} || $part->{real_mntpoint} or return;
unless ($::testing) {
if (isSwap($part)) {
swapoff($part->{device});
} elsif (loopback::carryRootLoopback($part)) {
umount("/initrd/loopfs");
} else {
umount(($o_prefix || '') . $part->{mntpoint} || devices::make($part->{device}));
devices::del_loop(delete $part->{real_device}) if $part->{real_device};
}
}
$part->{isMounted} = 0;
}
sub umount_all($;$) {
my ($fstab, $prefix) = @_;
log::l("unmounting all filesystems");
foreach (sort { $b->{mntpoint} cmp $a->{mntpoint} } @$fstab) {
$_->{mntpoint} and umount_part($_, $prefix);
}
}
################################################################################
# various functions
################################################################################
sub df {
my ($part, $o_prefix) = @_;
my $dir = "/tmp/tmp_fs_df";
return $part->{free} if exists $part->{free};
if ($part->{isMounted}) {
$dir = ($o_prefix || '') . $part->{mntpoint};
} elsif ($part->{notFormatted} && !$part->{isFormatted}) {
return; #- will not even try!
} else {
mkdir_p($dir);
eval { mount(devices::make($part->{device}), $dir, $part->{fs_type}, 'readonly') };
if ($@) {
set_isFormatted($part, 0);
unlink $dir;
return;
}
}
my (undef, $free) = MDK::Common::System::df($dir);
if (!$part->{isMounted}) {
umount($dir);
unlink($dir);
}
$part->{free} = 2 * $free if defined $free;
$part->{free};
}
sub mount_usbfs {
my ($prefix) = @_;
my $fs = cat_('/proc/filesystems') =~ /usbfs/ ? 'usbfs' : 'usbdevfs';
mount('none', "$prefix/proc/bus/usb", $fs);
}
1;
msgid ""
"# You can use uids to see the content of your uploads at this url :\n"
"# http://dudf.forge.mandriva.com/"
msgstr ""
+"# Questo è il log degli invii di file DUDF effettuati.\n"
+"# Il formato della linea è : <date ed ora di generazione> <uid>\n"
+"# Puoi usare gli uid per controllare il contenuto degli invii al seguente URL :\n"
+"# http://dudf.forge.mandriva.com/"
#: ../urpm/dudf.pm:239
#, c-format
msgid "curl is missing, cannot upload DUDF file.\n"
-msgstr ""
+msgstr "manca curl , non posso inviare il file DUDF.\n"
#: ../urpm/dudf.pm:242
#, c-format
msgid "Compressing DUDF data... "
-msgstr ""
+msgstr "Compressione dei dati DUDF..."
#: ../urpm/dudf.pm:244 ../urpm/dudf.pm:245
#, c-format
msgid "NOT OK\n"
-msgstr ""
+msgstr "NON OK\n"
#: ../urpm/dudf.pm:253 ../urpm/dudf.pm:485
#, c-format
msgid "OK\n"
-msgstr ""
+msgstr "OK\n"
#: ../urpm/dudf.pm:255
#, c-format
msgid "Uploading DUDF data:\n"
-msgstr ""
+msgstr "Invio dei dati DUDF:\n"
#: ../urpm/dudf.pm:276
#, c-format
@@ -793,6 +791,10 @@ msgid ""
"You can see your DUDF report at the following URL :\n"
"\t"
msgstr ""
+"\n"
+"Puoi controllare il rapporto DUDF al seguente URL:"
+"\n"
+"\t"
#: ../urpm/dudf.pm:279
#, c-format
@@ -800,6 +802,8 @@ msgid ""
"You can access to a log of your uploads in\n"
"\t"
msgstr ""
+"Puoi accedere al log degli invii in\n"
+"\t"
#: ../urpm/dudf.pm:358 ../urpm/msg.pm:76 ../urpmi:511 ../urpmi:526
#: ../urpmi:633
@@ -815,11 +819,15 @@ msgid ""
"This is a part of the Mancoosi european research project.\n"
"More at http://www.mancoosi.org\n"
msgstr ""
+"Si è verificato un problema. Puoi aiutare Mandriva a migliorare l'installazione\n"
+"dei pacchetti inviando un file di rapporto DUDF.\n"
+"Questo è parte del progetto di ricerca europeo Mancoosi.\n"
+"Maggiori informazioni su http://www.mancoosi.org\n"
#: ../urpm/dudf.pm:360
#, c-format
msgid "Do you want to upload to Mandriva a DUDF report?"
-msgstr ""
+msgstr "Desideri inviare il rapporto DUDF a Mandriva?"
#: ../urpm/dudf.pm:361 ../urpmi:513 ../urpmi:528 ../urpmi:634
#: ../urpmi.addmedia:135
@@ -833,13 +841,17 @@ msgid ""
"\n"
"Generating DUDF... "
msgstr ""
+"\n"
+"Generazione del rapporto DUDF... "
#: ../urpm/dudf.pm:489
-#, fuzzy, c-format
+#, c-format
msgid ""
"Cannot write DUDF file\n"
"."
-msgstr "Impossibile scrivere il file"
+msgstr ""
+"Impossibile scrivere il file DUDF\n"
+"."
#: ../urpm/get_pkgs.pm:16
#, c-format
@@ -863,8 +875,7 @@ msgstr "[rimpacchetto]"
#: ../urpm/install.pm:168
#, c-format
-msgid ""
-"created transaction for installing on %s (remove=%d, install=%d, upgrade=%d)"
+msgid "created transaction for installing on %s (remove=%d, install=%d, upgrade=%d)"
msgstr ""
"creata transazione per installare su %s (rimuove=%d, installa=%d, aggiorna=%"
"d)"
@@ -1033,7 +1044,7 @@ msgstr "installazione di %s"
#: ../urpm/main_loop.pm:256
#, c-format
msgid "Try installation without checking dependencies?"
-msgstr "Provare l'installazione senza controllare le dipendenze?"
+msgstr "Provo l'installazione senza controllare le dipendenze?"
#: ../urpm/main_loop.pm:263
#, c-format
@@ -1065,12 +1076,12 @@ msgstr ""
#: ../urpm/media.pm:256
#, c-format
msgid "unable to access list file of \"%s\", medium ignored"
-msgstr "impossibile accedere al file list per \"%s\", supporto ignorato"
+msgstr "impossibile accedere alla lista dei file \"%s\", supporto ignorato"
#: ../urpm/media.pm:259
#, c-format
msgid "unable to access synthesis file of \"%s\", medium ignored"
-msgstr "impossibile accedere al file di sintesi per \"%s\", supporto ignorato"
+msgstr "impossibile accedere al file synthesis per \"%s\", supporto ignorato"
#: ../urpm/media.pm:285
#, c-format
@@ -1119,12 +1130,12 @@ msgstr "installerebbe il pacchetto %s invece di aggiornarlo "
#: ../urpm/media.pm:765
#, c-format
msgid "medium \"%s\" already exists"
-msgstr "il supporto \"%s\" esiste già"
+msgstr "il supporto \"%s\" già esistente"
#: ../urpm/media.pm:804
#, c-format
msgid "(ignored by default)"
-msgstr "(ignorato per default)"
+msgstr "(ignorato come predefinito)"
#: ../urpm/media.pm:810
#, c-format
@@ -1137,9 +1148,9 @@ msgid "adding medium \"%s\""
msgstr "viene aggiunto il supporto \"%s\""
#: ../urpm/media.pm:842
-#, fuzzy, c-format
+#, c-format
msgid "failed to copy media.cfg to %s (%d)"
-msgstr "cp non riuscito sull'host %s (%d)"
+msgstr "Errore copiando il file media.cfg in %s (%d)"
#: ../urpm/media.pm:883
#, c-format
@@ -1159,8 +1170,7 @@ msgstr "impossibile esaminare media.cfg"
#: ../urpm/media.pm:913
#, c-format
msgid "unable to access the distribution medium (no media.cfg file found)"
-msgstr ""
-"impossibile accedere al supporto di installazione (manca il file media.cfg)"
+msgstr "impossibile accedere al supporto di installazione (manca il file media.cfg)"
#: ../urpm/media.pm:931
#, c-format
@@ -1205,12 +1215,12 @@ msgstr "riconfigurazione eseguita"
#: ../urpm/media.pm:1226
#, c-format
msgid "Error generating names file: dependency %d not found"
-msgstr "Problemi nel generare i nomi dei file: non esiste la dipendenza %d"
+msgstr "Errore generando i nomi dei file: non esiste la dipendenza %d"
#: ../urpm/media.pm:1247
#, c-format
msgid "medium \"%s\" is up-to-date"
-msgstr "il supporto \"%s\" è aggiornato"
+msgstr "il supporto \"%s\" risulta già aggiornato"
#: ../urpm/media.pm:1258
#, c-format
@@ -1425,7 +1435,7 @@ msgid "Marking %s as manually installed, it won't be auto-orphaned"
msgstr "Se segni %s come installato manualmente, non diventerà «auto-orphaned»"
#: ../urpm/orphans.pm:362
-#, fuzzy, c-format
+#, c-format
msgid ""
"The following package:\n"
"%s\n"
@@ -1437,16 +1447,20 @@ msgid_plural ""
"are now orphaned, if you wish to remove them, you can use \"urpme --auto-"
"orphans\""
msgstr[0] ""
-"Questo pacchetto ora è orfano. Se vuoi rimuoverlo, puoi eseguire «urpme --"
-"auto-orphans»."
+"Il seguente pacchetto:\n"
+"%s\n"
+"è ora orfano, se desideri rimuoverlo, puoi eseguire il comando \"urpme --auto-orphans"
+"\""
msgstr[1] ""
-"Questi pacchetti ora sono orfani. Esegui «urpme --auto-orphans» per "
-"rimuoverli."
+"I seguenti pacchetti:\n"
+"%s\n"
+"sono ora orfani, se desideri rimuoverli, puoi eseguire il comando \"urpme --auto-orphans"
+"\""
#: ../urpm/parallel.pm:15
#, c-format
msgid "unable to parse \"%s\" in file [%s]"
-msgstr "impossibile effettuare il parsing di \"%s\" nel file [%s]"
+msgstr "impossibile analizzare \"%s\" nel file [%s]"
#: ../urpm/parallel.pm:24
#, c-format
@@ -1520,13 +1534,11 @@ msgstr "sto smontando %s"
#: ../urpm/select.pm:31
#, c-format
msgid "urpmi was restarted, and the list of priority packages did not change"
-msgstr ""
-"urpmi è stato riavviato, ma l'elenco dei pacchetti prioritari non è cambiato"
+msgstr "urpmi è stato riavviato, ma l'elenco dei pacchetti prioritari non è cambiato"
#: ../urpm/select.pm:33
#, c-format
-msgid ""
-"urpmi was restarted, and the list of priority packages did change: %s vs %s"
+msgid "urpmi was restarted, and the list of priority packages did change: %s vs %s"
msgstr ""
"urpmi è stato riavviato. L'elenco dei pacchetti prioritari è cambiato da %s "
"a %s"
@@ -1587,7 +1599,7 @@ msgid ""
"The following package has to be removed for others to be upgraded:\n"
"%s"
msgstr ""
-"Questi pacchetti devono essere rimossi per poterne aggiornare altri:\n"
+"Questo pacchetto deve essere rimosso per poterne aggiornare altri:\n"
"%s"
#: ../urpm/select.pm:613
@@ -1664,13 +1676,12 @@ msgstr ""
"Questo è software libero e può essere ridistribuito secondo i termini della "
"licenza GNU GPL.\n"
"\n"
-"utilizzo:\n"
+"uso:\n"
#: ../urpme:47
#, c-format
msgid " --auto - automatically select a package in choices.\n"
-msgstr ""
-" --auto - include automaticamente un pacchetto nelle scelte.\n"
+msgstr " --auto - include automaticamente un pacchetto nelle scelte.\n"
#: ../urpme:48
#, c-format
@@ -1680,8 +1691,7 @@ msgstr " --auto-orphans - rimuove orfani\n"
#: ../urpme:49
#, c-format
msgid " --test - verify if the removal can be achieved correctly.\n"
-msgstr ""
-" --test - verifica se la rimozione può avvenire correttamente.\n"
+msgstr " --test - verifica se la rimozione può avvenire correttamente.\n"
#: ../urpme:51 ../urpmi:118 ../urpmq:68
#, c-format
@@ -1696,7 +1706,7 @@ msgstr " --repackage - Ri-pacchetta i file prima della cancellazione.\n"
#: ../urpme:53
#, c-format
msgid " --root - use another root for rpm removal.\n"
-msgstr " --root - usa un'altra root per rimuovere i file rpm. \n"
+msgstr " --root - usa un'altra directory root per rimuovere i file rpm. \n"
#: ../urpme:54 ../urpmf:40 ../urpmi:120 ../urpmi.addmedia:72
#: ../urpmi.removemedia:45 ../urpmi.update:48 ../urpmq:70
@@ -1714,7 +1724,7 @@ msgstr " --update - aggiorna solo il DB degli rpm, non il filesystem.\n"
#: ../urpme:56
#, c-format
msgid " --noscripts - do not execute package scriptlet(s).\n"
-msgstr " --noscripts - non esegue gli scriptlet presenti nei pacchetti.\n"
+msgstr " --noscripts - non esegue gli script presenti nei pacchetti.\n"
#: ../urpme:57
#, c-format
@@ -1742,7 +1752,7 @@ msgstr ""
#: ../urpme:75
#, c-format
msgid "Only superuser is allowed to remove packages"
-msgstr "Solo superuser è abilitato a rimuovere pacchetti"
+msgstr "Solo superuser può rimuovere pacchetti"
#: ../urpme:108
#, c-format
@@ -1764,7 +1774,7 @@ msgstr[1] "la rimozione dei seguenti pacchetti comprometterà il sistema:"
#: ../urpme:128
#, c-format
msgid "Nothing to remove"
-msgstr "Niente da rimuovere"
+msgstr "Nulla da rimuovere"
#: ../urpme:145
#, c-format
@@ -1774,11 +1784,9 @@ msgstr "Nessun orfano da rimuovere"
#: ../urpme:151
#, c-format
msgid "To satisfy dependencies, the following package will be removed"
-msgid_plural ""
-"To satisfy dependencies, the following %d packages will be removed"
+msgid_plural "To satisfy dependencies, the following %d packages will be removed"
msgstr[0] "Per soddisfare le dipendenze, sarà rimosso il seguente pacchetto"
-msgstr[1] ""
-"Per soddisfare le dipendenze, saranno rimossi i seguenti %d pacchetti"
+msgstr[1] "Per soddisfare le dipendenze, saranno rimossi i seguenti %d pacchetti"
#: ../urpme:156
#, c-format
@@ -1802,7 +1810,7 @@ msgstr "test di rimozione per %s"
#: ../urpme:185
#, c-format
msgid "Removal failed"
-msgstr "Rimozione fallita"
+msgstr "Rimozione non riuscita"
#: ../urpme:187
#, c-format
@@ -1834,8 +1842,7 @@ msgstr " --version - stampa la versione di questo tool.\n"
#: ../urpmf:37 ../urpmi:141 ../urpmq:80
#, c-format
msgid " --env - use specific environment (typically a bug report).\n"
-msgstr ""
-" --env - usa un ambiente specifico (tipicamente un bug report).\n"
+msgstr " --env - usa un ambiente specifico (tipicamente un bug report).\n"
#: ../urpmf:38 ../urpmi:83 ../urpmq:49
#, c-format
@@ -1844,16 +1851,14 @@ msgstr " --excludemedia - non usa i supporti elencati, separati da virgole.\n"
#: ../urpmf:39
#, c-format
-msgid ""
-" --literal, -l - don't match patterns, use argument as a literal string.\n"
+msgid " --literal, -l - don't match patterns, use argument as a literal string.\n"
msgstr ""
"--literal, -l - non considerare i caratteri speciali, usa l'argomento come "
"è.\n"
#: ../urpmf:42 ../urpmi:86 ../urpmq:50
#, c-format
-msgid ""
-" --sortmedia - sort media according to substrings separated by comma.\n"
+msgid " --sortmedia - sort media according to substrings separated by comma.\n"
msgstr ""
" --sortmedia - ordina i supporti in base alle sotto-stringhe separate da "
"virgole\n"
@@ -1866,8 +1871,7 @@ msgstr " --use-distrib - utilizza questo percorso per accedere al supporto\n"
#: ../urpmf:44 ../urpmi:87 ../urpmq:51
#, c-format
msgid " --synthesis - use the given synthesis instead of urpmi db.\n"
-msgstr ""
-" --synthesis - utilizza la synthesis specificata invece del db urpmi.\n"
+msgstr " --synthesis - utilizza il file synthesis specificato invece del db urpmi.\n"
#: ../urpmf:45
#, c-format
@@ -1901,7 +1905,7 @@ msgstr ""
#: ../urpmf:50
#, c-format
msgid " -F<str> - change field separator (defaults to ':').\n"
-msgstr "-F<str> - cambia il separatore di campo (default ':').\n"
+msgstr "-F<str> - cambia il separatore di campo (predefinito a ':').\n"
#: ../urpmf:51
#, c-format
@@ -1911,8 +1915,7 @@ msgstr "Chiavi di ricerca:\n"
#: ../urpmf:52
#, c-format
msgid " text - any text is parsed as a regexp, unless -l is used.\n"
-msgstr ""
-"-text - il testo è usato come regexp, se non viene specificato -l.\n"
+msgstr "-text - il testo è usato come regexp, se non viene specificato -l.\n"
#: ../urpmf:53
#, c-format
@@ -1942,7 +1945,7 @@ msgstr "( ) - parentesi destra e sinistra.\n"
#: ../urpmf:58
#, c-format
msgid "List of tags:\n"
-msgstr "Elenco dei tag\n"
+msgstr "Elenco delle etichette\n"
#: ../urpmf:59
#, c-format
@@ -1977,7 +1980,7 @@ msgstr " --conffiles - file di configurazione\n"
#: ../urpmf:65
#, c-format
msgid " --conflicts - conflict tags\n"
-msgstr " --conflicts - conflitti\n"
+msgstr " --conflicts - conflitti nelle etichette\n"
#: ../urpmf:66
#, c-format
@@ -2047,12 +2050,12 @@ msgstr " --size - dimensione del pacchetto installato.\n"
#: ../urpmf:79
#, c-format
msgid " --sourcerpm - source rpm name\n"
-msgstr " --sourcerpm - nome dei pacchetti rpm con sorgenti.\n"
+msgstr " --sourcerpm - nome dei pacchetti rpm con i sorgenti.\n"
#: ../urpmf:80
#, c-format
msgid " --suggests - suggests tags\n"
-msgstr " --suggests - cerca nel campo \"suggests\"\n"
+msgstr " --suggests - lista dei pacchetti suggeriti\n"
#: ../urpmf:81
#, c-format
@@ -2062,12 +2065,12 @@ msgstr " --summary - sommario del pacchetto.\n"
#: ../urpmf:82
#, c-format
msgid " --url - url\n"
-msgstr " --url - cerca nel campo \"url\"\n"
+msgstr " --url - URL del pacchetto\n"
#: ../urpmf:83
#, c-format
msgid " --vendor - vendor\n"
-msgstr " --vendor - distributore\n"
+msgstr " --vendor - fornitore\n"
#: ../urpmf:84
#, c-format
@@ -2077,8 +2080,7 @@ msgstr " -m - il supporto dov'è stato trovato il pacchetto\n"
#: ../urpmf:85 ../urpmq:99
#, c-format
msgid " -f - print version, release and arch with name.\n"
-msgstr ""
-" -f - stampa versione, release e architettura con il nome.\n"
+msgstr " -f - stampa versione, release e architettura con il nome.\n"
#: ../urpmf:153
#, c-format
@@ -2088,7 +2090,7 @@ msgstr "espressione non completata (%s)"
#: ../urpmf:198
#, c-format
msgid "Incorrect format: you may use only one multi-valued tag"
-msgstr "formato non corretto, puoi usare un solo tag "
+msgstr "formato non corretto, puoi usare una sola etichetta multi-valore"
#: ../urpmf:291
#, c-format
@@ -2098,18 +2100,17 @@ msgstr "manca il file hdlist per il supporto \"%s\""
#: ../urpmf:298
#, c-format
msgid "no synthesis available for medium \"%s\""
-msgstr "manca il file di sintesi per il supporto \"%s\""
+msgstr "manca il file di synthesis per il supporto \"%s\""
#: ../urpmf:307
#, c-format
msgid "no xml-info available for medium \"%s\""
-msgstr "manca xml-info per il supporto \"%s\""
+msgstr "manca il file xml-info per il supporto \"%s\""
#: ../urpmi:90
#, c-format
msgid " --auto-update - update media then upgrade the system.\n"
-msgstr ""
-" --auto-update - aggiorna i supporti prima di aggiornare il sistema.\n"
+msgstr " --auto-update - aggiorna i supporti prima di aggiornare il sistema.\n"
#: ../urpmi:91
#, c-format
@@ -2139,13 +2140,13 @@ msgid ""
" --no-uninstall - never ask to uninstall a package, abort the "
"installation.\n"
msgstr ""
-" --no-uninstall - non chiedere mai di rimuovere un pacchetto, ferma "
+" --no-uninstall - non chiedere mai di rimuovere un pacchetto, interrompe"
"l'installazione\n"
#: ../urpmi:96
#, c-format
msgid " --no-install - don't install packages (only download)\n"
-msgstr " --no-install - non installa i pacchetti, esegue solo il download\n"
+msgstr " --no-install - non installa i pacchetti, esegue solo il recupero\n"
#: ../urpmi:97 ../urpmq:56
#, c-format
@@ -2153,8 +2154,8 @@ msgid ""
" --keep - keep existing packages if possible, reject requested\n"
" packages that lead to removals.\n"
msgstr ""
-" --keep - usa i pacchetti esistenti se possibile, rifiuta\n"
-" i pacchetti richiesti se sono da rimuovere.\n"
+" --keep - mantiene i pacchetti esistenti se possibile, rifiuta\n"
+" i pacchetti richiesti che tentano di rimuoverli.\n"
#: ../urpmi:99
#, c-format
@@ -2164,8 +2165,8 @@ msgid ""
" default is %d.\n"
msgstr ""
" --split-level - divide l'operazione in piccole transazioni se più di\n"
-" un pacchetto sta per essere installato o\n"
-" aggiornato, il valore predefinito è %d.\n"
+" n pacchetti stanno per essere installati o\n"
+" aggiornato, il valore predefinito di n è %d.\n"
#: ../urpmi:103
#, c-format
@@ -2182,15 +2183,12 @@ msgstr " --fuzzy, -y - impone una ricerca fuzzy.\n"
#: ../urpmi:106
#, c-format
msgid " --buildrequires - install the buildrequires of the packages\n"
-msgstr ""
-" --buildrequires - installa quanto richiesto (buildrequires) per il "
-"pacchetto\n"
+msgstr " --buildrequires - installa i pacchetti necessari alla compilazione del pacchetto (buildrequires)\n"
#: ../urpmi:107
#, c-format
msgid " --install-src - install only source package (no binaries).\n"
-msgstr ""
-" --install-src - installa solo il pacchetto dei sorgenti (non i binari).\n"
+msgstr " --install-src - installa solo il pacchetto dei sorgenti (non i binari).\n"
#: ../urpmi:108
#, c-format
@@ -2202,14 +2200,12 @@ msgstr ""
#: ../urpmi:109
#, c-format
msgid " --noclean - don't clean rpms from cache.\n"
-msgstr " --noclean - tieni in cache gli rpm inutilizzati.\n"
+msgstr " --noclean - mantieni nella cache i pacchetti rpm scaricati\n"
#: ../urpmi:111
#, c-format
-msgid ""
-" --replacepkgs - force installing packages which are already installed.\n"
-msgstr ""
-" --replacepkgs - forza l'installazione dei pacchetti già installati.\n"
+msgid " --replacepkgs - force installing packages which are already installed.\n"
+msgstr " --replacepkgs - forza l'installazione dei pacchetti anche se già installati.\n"
#: ../urpmi:113
#, c-format
@@ -2232,8 +2228,7 @@ msgstr ""
#: ../urpmi:117
#, c-format
msgid " --allow-suggests - auto select \"suggested\" packages.\n"
-msgstr ""
-" --allow-suggests - seleziona automaticamente i pacchetti \"suggeriti\"\n"
+msgstr " --allow-suggests - seleziona automaticamente i pacchetti \"suggeriti\"\n"
#: ../urpmi:121
#, c-format
@@ -2243,7 +2238,7 @@ msgid ""
msgstr ""
"..--use-distrib - configura urpmi \"al volo\" da un albero distribuito, "
"utile\n"
-" per installare un pacchetto chroot con l'opzione --"
+" per installare un ambiente chroot con l'opzione --"
"root.\n"
#: ../urpmi:123 ../urpmi.addmedia:59 ../urpmi.update:37
@@ -2257,7 +2252,7 @@ msgid ""
" --downloader - program to use to retrieve distant files. \n"
" known programs: %s\n"
msgstr ""
-" --downloader - programma da usare per scaricare i file remoti. \n"
+" --downloader - programma da usare per recuperare i file remoti. \n"
" programmi noti: %s\n"
#: ../urpmi:127
@@ -2268,17 +2263,17 @@ msgstr "--curl-options - opzioni aggiuntive da passare a curl\n"
#: ../urpmi:128
#, c-format
msgid " --rsync-options- additional options to pass to rsync\n"
-msgstr "--rsync-options - opzioni da passare ad rsync\n"
+msgstr "--rsync-options - opzioni aggiuntive da passare ad rsync\n"
#: ../urpmi:129
#, c-format
msgid " --wget-options - additional options to pass to wget\n"
-msgstr "--wget-options - opzioni da passare a wget\n"
+msgstr "--wget-options - opzioni aggiuntive da passare a wget\n"
#: ../urpmi:130
#, c-format
msgid " --prozilla-options - additional options to pass to prozilla\n"
-msgstr "--prozilla-options - opzioni da passare a prozilla\n"
+msgstr "--prozilla-options - opzioni aggiuntive da passare a prozilla\n"
#: ../urpmi:131
#, c-format
@@ -2288,7 +2283,7 @@ msgstr " --aria2-options - opzioni aggiuntive da passare ad aria2\n"
#: ../urpmi:132 ../urpmi.addmedia:60 ../urpmi.update:38
#, c-format
msgid " --limit-rate - limit the download speed.\n"
-msgstr " --limit-rate - limita la velocità del download.\n"
+msgstr " --limit-rate - limita la velocità di recupero.\n"
#: ../urpmi:133
#, c-format
@@ -2297,9 +2292,8 @@ msgid ""
" (--no-resume disables it, default is disabled).\n"
msgstr ""
"..--resume - riprende il trasferimento dei file parzialmente "
-"scaricati\n"
-" (--no-resume lo disabilita, solitamente è "
-"disabilitato).\n"
+"recuperati\n"
+" (--no-resume lo disabilita, questa è l'opzione predefinita).\n"
#: ../urpmi:135 ../urpmi.addmedia:61 ../urpmi.update:39 ../urpmq:76
#, c-format
@@ -2341,19 +2335,17 @@ msgstr " --excludedocs - esclude i file di documentazione.\n"
#: ../urpmi:147
#, c-format
msgid " --ignoresize - don't verify disk space before installation.\n"
-msgstr ""
-" --ignoresize -non verifica lo spazio disponibile prima dell'installazione\n"
+msgstr " --ignoresize -non verifica lo spazio disponibile prima dell'installazione\n"
#: ../urpmi:148
#, c-format
msgid " --ignorearch - allow to install rpms for unmatched architectures.\n"
-msgstr ""
-"--ignore-arch...- permette di installare pacchetti di altre architetture.\n"
+msgstr " --ignorearch - permette di installare pacchetti di altre architetture.\n"
#: ../urpmi:149
#, c-format
msgid " --noscripts - do not execute package scriptlet(s)\n"
-msgstr "--noscripts - non esegue gli script contenuti nei pacchetti\n"
+msgstr " --noscripts - non esegue gli script contenuti nei pacchetti\n"
#: ../urpmi:150
#, c-format
@@ -2387,14 +2379,12 @@ msgstr "--nolock - non bloccare il db degli rpm\n"
#: ../urpmi:157
#, c-format
msgid " --strict-arch - upgrade only packages with the same architecture.\n"
-msgstr ""
-" --strict-arch - aggiorna solo i pacchetti della stessa architettura.\n"
+msgstr " --strict-arch - aggiorna solo i pacchetti della stessa architettura.\n"
#: ../urpmi:158 ../urpmq:97
#, c-format
msgid " -a - select all matches on command line.\n"
-msgstr ""
-" -a - seleziona tutte le corrispondenze da riga di comando.\n"
+msgstr " -a - seleziona tutte le corrispondenze da riga di comando.\n"
#: ../urpmi:161
#, c-format
@@ -2431,7 +2421,7 @@ msgstr ""
#: ../urpmi:235
#, c-format
msgid "You can't install binary rpm files when using --install-src"
-msgstr "Non puoi installare rpm binari rpm quando viene usato --install-src"
+msgstr "Non puoi installare rpm binari quando si usa --install-src"
#: ../urpmi:236
#, c-format
@@ -2441,13 +2431,12 @@ msgstr "Non puoi installare i file spec"
#: ../urpmi:243
#, c-format
msgid "defaulting to --buildrequires"
-msgstr "si mette --buildrequires come opzione predefinita"
+msgstr "impostata --buildrequires come opzione predefinita"
#: ../urpmi:248
#, c-format
-msgid ""
-"please use --buildrequires or --install-src, defaulting to --buildrequires"
-msgstr "devi utilizzare --buildrequires (predefinito) o --install-src"
+msgid "please use --buildrequires or --install-src, defaulting to --buildrequires"
+msgstr "bisogna usare --buildrequires (predefinito) o --install-src"
#: ../urpmi:268
#, c-format
@@ -2501,8 +2490,7 @@ msgstr "%s (da installare)"
msgid ""
"In order to satisfy the '%s' dependency, one of the following packages is "
"needed:"
-msgstr ""
-"Per soddisfare le dipendenze di \"%s\" serve uno dei seguenti pacchetti:"
+msgstr "Per soddisfare le dipendenze di \"%s\" serve uno dei seguenti pacchetti:"
#: ../urpmi:462
#, c-format
@@ -2570,8 +2558,8 @@ msgid ""
"has to be removed for others to be upgraded:\n"
"%s\n"
msgstr ""
-"L'installazione non può proseguire perché questi pacchetti\n"
-"devono essere rimossi per poterne aggiornare altri:\n"
+"L'installazione non può proseguire perché questo pacchetto\n"
+"deve essere rimosso per poterne aggiornare altri:\n"
"%s\n"
#: ../urpmi:549
@@ -2643,7 +2631,7 @@ msgstr "Annulla"
#: ../urpmi:656
#, c-format
msgid "Press Enter when mounted..."
-msgstr "Premi invio dopo averlo montato..."
+msgstr "Premi Invio dopo averlo montato..."
#. -PO: The URI types strings 'file:', 'ftp:', 'http:', and 'cdrom:' must not be translated!
#. -PO: neither the ``with''. Only what is between <brackets> can be translated.
@@ -2691,22 +2679,22 @@ msgstr ""
#: ../urpmi.addmedia:55 ../urpmi.update:33 ../urpmq:73
#, c-format
msgid " --wget - use wget to retrieve distant files.\n"
-msgstr " --wget - usa wget per recuperare file remoti.\n"
+msgstr " --wget - usa wget per scaricare file remoti.\n"
#: ../urpmi.addmedia:56 ../urpmi.update:34 ../urpmq:74
#, c-format
msgid " --curl - use curl to retrieve distant files.\n"
-msgstr " --curl - usa curl per recuperare i file remoti.\n"
+msgstr " --curl - usa curl per scaricare file remoti.\n"
#: ../urpmi.addmedia:57 ../urpmi.update:35 ../urpmq:75
#, c-format
msgid " --prozilla - use prozilla to retrieve distant files.\n"
-msgstr " --prozilla - usa prozilla per recuperare i file remoti.\n"
+msgstr " --prozilla - usa prozilla per scaricare file remoti.\n"
#: ../urpmi.addmedia:58 ../urpmi.update:36
#, c-format
msgid " --aria2 - use aria2 to retrieve distant files.\n"
-msgstr " --aria2 - usa aria2 per recuperare i file remoti.\n"
+msgstr " --aria2 - usa aria2 per scaricare file remoti.\n"
#: ../urpmi.addmedia:65
#, c-format
@@ -2724,9 +2712,9 @@ msgid ""
" one of: never, on-demand, update-only, always. cf urpmi."
"cfg(5)\n"
msgstr ""
-" --xml-info - segui una politica assegnata per scaricare i file xml-"
+" --xml-info - segui una politica assegnata per recuperare i file xml-"
"info\n"
-" scelta tra: never, on-demand, update-only, always. cf "
+" scelta tra: never(mai), on-demand(su richiesta), update-only(solo aggiornamenti), always(sempre). cf "
"urpmi.cfg(5)\n"
#: ../urpmi.addmedia:69
@@ -2761,14 +2749,12 @@ msgstr "--interactive - con --distrib, chiede conferma per ogni supporto\n"
#: ../urpmi.addmedia:76
#, c-format
msgid " --all-media - with --distrib, add every listed media\n"
-msgstr ""
-" --all-media - with --distrib, aggiunge tutti supporti disponibili.\n"
+msgstr " --all-media - with --distrib, aggiunge tutti supporti disponibili.\n"
#: ../urpmi.addmedia:77
#, c-format
msgid " --virtual - create virtual media wich are always up-to-date.\n"
-msgstr ""
-" --virtual - crea supporti virtuali che sono sempre aggiornati.\n"
+msgstr " --virtual - crea supporti virtuali che sono sempre aggiornati.\n"
#: ../urpmi.addmedia:78 ../urpmi.update:44
#, c-format
@@ -2778,14 +2764,12 @@ msgstr " --no-md5sum - disabilita il controllo MD5SUM sui file.\n"
#: ../urpmi.addmedia:79
#, c-format
msgid " --nopubkey - don't import pubkey of added media\n"
-msgstr ""
-"--nopubkey - non importa la chiave pubblica dei supporti aggiunti\n"
+msgstr "--nopubkey - non importa la chiave pubblica dei supporti aggiunti\n"
#: ../urpmi.addmedia:80
#, c-format
msgid " --raw - add the media in config, but don't update it.\n"
-msgstr ""
-"--raw - aggiunge il supporto alla configurazione ma non lo aggiorna.\n"
+msgstr "--raw - aggiunge il supporto alla configurazione ma non lo aggiorna.\n"
#: ../urpmi.addmedia:81 ../urpmi.removemedia:43 ../urpmi.update:53
#, c-format
@@ -2800,7 +2784,7 @@ msgstr " -v - modalità prolissa.\n"
#: ../urpmi.addmedia:95
#, c-format
msgid "known xml-info policies are %s"
-msgstr "le politiche conosciute per gli xml-info sono: %s"
+msgstr "le regole conosciute per gli xml-info sono: %s"
#: ../urpmi.addmedia:106
#, c-format
@@ -2878,7 +2862,7 @@ msgstr " -y - imponi una ricerca fuzzy sul nome dei supporti.\n"
#: ../urpmi.removemedia:59
#, c-format
msgid "Only superuser is allowed to remove media"
-msgstr "Solo superuser è abilitato a rimuovere i supporti"
+msgstr "Solo superuser può rimuovere i supporti"
#: ../urpmi.removemedia:72
#, c-format
@@ -2921,14 +2905,12 @@ msgstr " --ignore - non aggiornare, segna il supporto come ignorato.\n"
#: ../urpmi.update:47
#, c-format
msgid " --no-ignore - don't update, mark the media as enabled.\n"
-msgstr ""
-" --no-ignore - non aggiornare, segna il supporto come disponibile.\n"
+msgstr " --no-ignore - non aggiornare, segna il supporto come disponibile.\n"
#: ../urpmi.update:49
#, c-format
msgid " --probe-rpms - do not use synthesis, use rpm files directly\n"
-msgstr ""
-" --probe-rpms - usa direttamente i file rpm, invece di synthesis\n"
+msgstr " --probe-rpms - usa direttamente i file rpm, invece di synthesis\n"
#: ../urpmi.update:50
#, c-format
@@ -2948,7 +2930,7 @@ msgstr " -ff - impone con forza l'aggiornamento di synthesis\n"
#: ../urpmi.update:69
#, c-format
msgid "Only superuser is allowed to update media"
-msgstr "Solo superuser è abilitato ad aggiornare i supporti"
+msgstr "Solo superuser può aggiornare i supporti"
#: ../urpmi.update:86
#, c-format
@@ -2962,7 +2944,7 @@ msgid ""
"(one of %s)\n"
msgstr ""
"la voce da aggiornare non è presente\n"
-"(uno di %s)\n"
+"(una di %s)\n"
#: ../urpmi.update:98
#, c-format
@@ -3033,8 +3015,7 @@ msgstr " --list-url - elenca i supporti disponibili e la loro url.\n"
#: ../urpmq:61
#, c-format
msgid " --list-nodes - list available nodes when using --parallel.\n"
-msgstr ""
-" --list-nodes - elenca i nodi disponibili quando si utilizza --parallel.\n"
+msgstr " --list-nodes - elenca i nodi disponibili quando si utilizza --parallel.\n"
#: ../urpmq:62
#, c-format
@@ -3043,8 +3024,7 @@ msgstr " --list-aliases - elenca gli alias paralleli disponibili.\n"
#: ../urpmq:63
#, c-format
-msgid ""
-" --dump-config - dump the config in form of urpmi.addmedia argument.\n"
+msgid " --dump-config - dump the config in form of urpmi.addmedia argument.\n"
msgstr ""
" --dump-config - mostra la configurazione nella forma usata da urpmi."
"addmedia\n"
@@ -3058,17 +3038,15 @@ msgstr ""
#: ../urpmq:65
#, c-format
-msgid ""
-" --sources - give all source packages before downloading (root only).\n"
+msgid " --sources - give all source packages before downloading (root only).\n"
msgstr ""
-" --sources - elenca tutti i pacchetti sorgenti prima del download "
+" --sources - elenca tutti i pacchetti sorgenti prima del recupero "
"(solo root).\n"
#: ../urpmq:67
#, c-format
msgid " --ignorearch - allow to query rpms for unmatched architectures.\n"
-msgstr ""
-" --ignorearch - permette di cercare rpm per un'altra architettura.\n"
+msgstr " --ignorearch - permette di cercare rpm per un'altra architettura.\n"
#: ../urpmq:71
#, c-format
@@ -3082,7 +3060,7 @@ msgstr ""
#: ../urpmq:81
#, c-format
msgid " --changelog - print changelog.\n"
-msgstr " --changelog - mostra la lista delle modifiche.\n"
+msgstr " --changelog - mostra l'elenco delle modifiche.\n"
#: ../urpmq:82
#, c-format
@@ -3097,7 +3075,7 @@ msgstr " --obsoletes - elenca obsoleti.\n"
#: ../urpmq:84
#, c-format
msgid " --provides - print provides.\n"
-msgstr " --provides - elenca gli elementi forniti(provides).\n"
+msgstr " --provides - elenca gli elementi forniti.\n"
#: ../urpmq:85
#, c-format
@@ -3150,7 +3128,7 @@ msgid ""
" - search in provides to find package.\n"
msgstr ""
" --whatprovides, -p\n"
-" - cerca tra i \"provides\" per trovare il pacchetto.\n"
+" - cerca tra gli elementi forniti per trovare il pacchetto.\n"
#: ../urpmq:98
#, c-format
@@ -3165,7 +3143,7 @@ msgstr " -g - stampa i gruppi anche col nome.\n"
#: ../urpmq:101
#, c-format
msgid " -i - print useful information in human readable form.\n"
-msgstr " -i - stampa informazioni utili in forma leggibile.\n"
+msgstr " -i - mostra informazioni utili in forma leggibile.\n"
#: ../urpmq:102
#, c-format
@@ -3180,7 +3158,7 @@ msgstr " -m - equivalente a -du\n"
#: ../urpmq:104
#, c-format
msgid " -r - print version and release with name also.\n"
-msgstr " -r - stampa versione e release anche col nome.\n"
+msgstr " -r - mostra versione e release anche col nome.\n"
#: ../urpmq:105
#, c-format
@@ -3211,8 +3189,7 @@ msgstr " -Y - come -y, ma non distingue maiuscole da minuscole.\n"
#: ../urpmq:109
#, c-format
msgid " names or rpm files given on command line are queried.\n"
-msgstr ""
-" i nomi o i file rpm passati da riga di comando vengono interrogati.\n"
+msgstr " i nomi o i file rpm passati da riga di comando vengono interrogati.\n"
#: ../urpmq:156
#, c-format
@@ -3245,32 +3222,28 @@ msgstr ""
#: ../urpmq:409
#, c-format
-msgid ""
-"no xml info for medium \"%s\", unable to return any result for package %s"
+msgid "no xml info for medium \"%s\", unable to return any result for package %s"
msgstr ""
-"manca xml-info per il supporto \"%s\", impossibile dare risultati per il "
+"manca xml-info per il supporto \"%s\", impossibile fornire risultati per il "
"pacchetto %s"
#: ../urpmq:410
#, c-format
-msgid ""
-"no xml info for medium \"%s\", unable to return any result for packages %s"
+msgid "no xml info for medium \"%s\", unable to return any result for packages %s"
msgstr ""
-"manca xml-info per il supporto \"%s\", impossibile dare risultati per i "
+"manca xml-info per il supporto \"%s\", impossibile fornire risultati per i "
"pacchetti %s"
#: ../urpmq:477
#, c-format
msgid "No changelog found\n"
-msgstr "Nessun changelog trovato\n"
+msgstr "Nessun elenco delle modifiche trovato\n"
#: ../gurpmi.desktop.in.h:1
msgid "Graphical front end to install RPM files"
-msgstr "Front end grafico per l'installare i pacchetti RPM"
+msgstr "Interrfaccia grafica per l'installazione dei pacchetti RPM"
#: ../gurpmi.desktop.in.h:2
msgid "Software Installer"
-msgstr "Installazione software"
+msgstr "Programma d'installazione"
-#~ msgid "due to already installed %s"
-#~ msgstr "perché è già installato %s"