diff -Nur e-smith-backup-2.2.0/root/usr/lib/perl5/site_perl/esmith/Backup.pm e-smith-backup-2.2.0_bz7932/root/usr/lib/perl5/site_perl/esmith/Backup.pm --- e-smith-backup-2.2.0/root/usr/lib/perl5/site_perl/esmith/Backup.pm 2013-12-12 22:27:35.093555578 +0100 +++ e-smith-backup-2.2.0_bz7932/root/usr/lib/perl5/site_perl/esmith/Backup.pm 2013-12-12 22:31:48.577920936 +0100 @@ -11,7 +11,7 @@ use File::Copy; use Unix::PasswdFile; -use Unix::GroupFile; +use Passwd::Unix; use vars qw($VERSION @ISA @EXPORT_OK); @@ -252,7 +252,7 @@ copy $restored, $tmp or warn "Couldn't copy $restored, $tmp\n"; copy $pre_restored, $restored or warn "Couldn't copy $pre_restored, $restored\n"; - my $merge_from = new Unix::GroupFile($tmp, rmode => 'r' ); + my $merge_from = new Passwd::Unix(group => $tmp); unless ($merge_from) { @@ -260,7 +260,7 @@ return undef; } - my $merge_into = new Unix::GroupFile($restored); + my $merge_from = new Passwd::Unix(group => $tmp); unless ($merge_into) { @@ -299,7 +299,9 @@ next; } - unless ( $merge_into->gid($group) eq $merge_from->gid($group) ) + my ($merge_into_gid, undef) = $merge_into->group($group); + my ($merge_from_gid, undef) = $merge_from->group($group); + unless ($merge_into_gid eq $merge_from_gid) { warn "merge_group: $group - GID changed during restore\n"; next; @@ -311,8 +313,6 @@ $merge_into->group($special_group, $merge_from->group($special_group)); } - $merge_into->commit; - return 1; }