Hi,

after reading previous posts, having tried to get the daemon running on
Windows, and looking through the code I seem to have located the problem.

Common.pm:

if ( !eval { $cmd } ) {
    return 0, "";
} else {
  if ( defined ( $minimum_package_version ) ) {
      my $version;

      # A specific package version is requested. Check if this
      # version exists.
      no strict 'refs';
      $version = ${"${package_name}::VERSION"} ||
                 ${"${package_name}::Version"} || 0;
      $version = ${"${package_name}::VERSION"} ||
                 ${"${package_name}::Version"} || 0;
      $version = -1 if $@;
      if (package_version_compare($version, $minimum_package_version) > -1){
      # The requested package version was found.
      return 1;
      } else {
      return 0, "$version";
      }

  }
return 1;
}

the eval-function parses and executes "require $package_name$", checking
if the package exists. The code that follows checks the version of the
package, which afaics is only required for the Windows DBI-package.
Unfortunately, outside of the eval-block ({}) DBI's symbols apparently do
not exist. Which implies that the $package-name$::VERSION variable does
not exist either. Replacing eval{} with eval fixes it. But as I'm not a
perl-programmer, I don't know whether that is desirable.

Regards,

Roger Karis

_______________________________________________
scmbug-users mailing list
[email protected]
http://lists.mkgnu.net/cgi-bin/mailman/listinfo/scmbug-users

Reply via email to