The attached patch applied to the /etc/perl/GNUpod/SysInfo.pm file
installed by gnupod-tools package version 0.99.7-2 fixes the hang for
me.

The patch was derived from the 0.99.7 to 0.99.8 patch set in git.

It was odd, but the package also provides a SysInfo.pm file in
/usr/share/perl5/GNUpod/SysInfo.pm ... which I didn't need to change.

-- 
James Cameron
http://quozl.linux.org.au/
diff --git a/src/ext/SysInfo.pm b/src/ext/SysInfo.pm
index ceaeef8..9b56222 100644
--- a/src/ext/SysInfo.pm
+++ b/src/ext/SysInfo.pm
@@ -94,7 +94,8 @@ sub __GrabFWGUID_LINUX {
         opendir(BLOCKDIR, "/sys/block") or return undef;
    while (my $dirent = readdir(BLOCKDIR)) {
           next if $dirent eq '.'; next if $dirent eq '..';
-               open(UDEV, "-|") or exec("udevinfo", "--name", $dirent, "--query", "env");
+         next unless $dirent =~ /^sd/;
+            open(UDEV, "-|") or exec("/sbin/udevadm", "info", "--name", $dirent, "--query", "env");
                while(<UDEV>) {
                       if($_ =~ /^ID_SERIAL=Apple_iPod_([A-Za-z0-9]{16})/) {
                             $found = $1;

Reply via email to