Index: client/1.0/neutral/pkgd.eagle ================================================================== --- client/1.0/neutral/pkgd.eagle +++ client/1.0/neutral/pkgd.eagle @@ -1585,37 +1585,45 @@ } else { verifyPersistentRootDirectory set persistentDirectory $persistentRootDirectory } - set fileName [file join $packageName VERSION] - set downloadFileName [file join $temporaryDirectory $fileName] - - file mkdir [file dirname $downloadFileName] - - downloadOneFile $language $version $platform \ - $fileName $downloadFileName $usePgp - - if {$usePgp} then { - downloadOneFile $language $version $platform \ - [appendArgs $fileName .asc] \ - [appendArgs $downloadFileName .asc] $usePgp - } - - set localFileName [file join $persistentDirectory $fileName] - - set compare [package vcompare \ - [extractVersionFromFile $downloadFileName] \ - [extractVersionFromFile $localFileName]] - - if {[isEagle]} then { - file delete -recursive -- $temporaryDirectory - } else { - file delete -force -- $temporaryDirectory - } - - return [expr {$compare > 0}] + set fileNamesOnly [list VERSION pkgIndex.eagle pkgIndex.tcl] + + foreach fileNameOnly $fileNamesOnly { + set fileName [file join $packageName $fileNameOnly] + set downloadFileName [file join $temporaryDirectory $fileName] + + file mkdir [file dirname $downloadFileName] + + if {[catch { + downloadOneFile $language $version $platform \ + $fileName $downloadFileName $usePgp + }] == 0} then { + if {$usePgp} then { + downloadOneFile $language $version $platform \ + [appendArgs $fileName .asc] \ + [appendArgs $downloadFileName .asc] $usePgp + } + + set localFileName [file join $persistentDirectory $fileName] + + set compare [package vcompare \ + [extractVersionFromFile $downloadFileName] \ + [extractVersionFromFile $localFileName]] + + if {[isEagle]} then { + file delete -recursive -- $temporaryDirectory + } else { + file delete -force -- $temporaryDirectory + } + + return [expr {$compare > 0}] + } + } + + error "could not check higher version: no supported file names" } # # NOTE: This procedure attempts to guess a package name based on a list of # its files. It relies upon the fact that all packages must include