[squeak-dev] Metacello load error 'File is too short' in Squeak6.0alpha latest update: #17402 ?
Tobias Pape
Das.Linux at gmx.de
Thu Sep 28 10:55:30 UTC 2017
Hannes,
> On 28.09.2017, at 12:05, H. Hirzel <hannes.hirzel at gmail.com> wrote:
>
> Thank you, Tobias, for the explanation
>
> --------------------------------------------------------
>
> Found that the file
>
> MultiByteFileStream:
> '/home/user20/Documents/Squeak6.0alpha-17382-64bit-All-in-One.app/Contents/Resources/package-cache/Metacello-MC-dkh.680.mcz'
>
> just had 0 bytes length. I deleted it and restarted [3]. Then the load
> process [4] as given in https://github.com/Metacello/metacello went
> fine.
That's great :)
Best regards
-Tobias
>
> --Hannes
>
> ----------------------------------------------------
>
> [3]
> "Bootstrap Metacello Preview, using mcz files (#'previewBootstrap'
> symbolic version"
> ((Smalltalk at: #ConfigurationOfMetacello) project
> version: #'previewBootstrap') load.
>
>
> ------------------------------------------------------------------------------------------
> [4] Installation instructions for Metacello (
> http://wiki.squeak.org/squeak/6157 )
> https://github.com/Metacello/metacello
>
>
>
> "Get the Metacello configuration (for Squeak users)"
> Installer gemsource
> project: 'metacello';
> addPackage: 'ConfigurationOfMetacello';
> install.
>
> "Bootstrap Metacello Preview, using mcz files (#'previewBootstrap'
> symbolic version"
> ((Smalltalk at: #ConfigurationOfMetacello) project
> version: #'previewBootstrap') load.
>
> "Load the Preview version of Metacello from GitHub"
> (Smalltalk at: #Metacello) new
> configuration: 'MetacelloPreview';
> version: #stable;
> repository: 'github://dalehenrich/metacello-work:configuration';
> load.
>
> "Now load latest version of Metacello"
> (Smalltalk at: #Metacello) new
> baseline: 'Metacello';
> repository: 'github://dalehenrich/metacello-work:master/repository';
> get.
> (Smalltalk at: #Metacello) new
> baseline: 'Metacello';
> repository: 'github://dalehenrich/metacello-work:master/repository';
> load.
>
> On 9/28/17, Tobias Pape <Das.Linux at gmx.de> wrote:
>> Hi Hannes
>>
>>> On 28.09.2017, at 11:45, H. Hirzel <hannes.hirzel at gmail.com> wrote:
>>>
>>> Hello
>>>
>>> Following the Metacello installation instructions [1] the following
>>> step A runs fine but the step B afterwards gives an error message
>>> 'File too short' [2], marked with '"ERROR FILE TOO SHORT'
>>>
>>> "A: Get the Metacello configuration (for Squeak users)"
>>> Installer gemsource
>>> project: 'metacello';
>>> addPackage: 'ConfigurationOfMetacello';
>>> install.
>>>
>>>
>>> "B: Bootstrap Metacello Preview, using mcz files (#'previewBootstrap'
>>> symbolic version"
>>> ((Smalltalk at: #ConfigurationOfMetacello) project
>>> version: #'previewBootstrap') load.
>>>
>>>
>>> Any suggestion how to fix this?
>>
>>
>> Please make sure to clean your package cache, maybe an mcz got corrupted
>> earlier during download.
>> (I just recently fixed some things in the workflow)
>>
>> For reference, When I execute the snippet, My transcript output is as
>> follows:
>>
>> ================================================================================================================================================
>> found ConfigurationOfMetacello-topa.803.mcz...
>>
>> ConfigurationOfMetacello class>>unloadMetacello (Gofer is Undeclared) loaded
>>
>> Loading 1.0-beta.31.1.8 of ConfigurationOfMetacello...
>> Fetched -> ConfigurationOfGofer-dkh.45 ---
>> http://seaside.gemtalksystems.com/ss/metacello ---
>> http://seaside.gemtalksystems.com/ss/metacello
>> Loaded -> ConfigurationOfGofer-dkh.45 ---
>> http://seaside.gemtalksystems.com/ss/metacello ---
>> http://seaside.gemtalksystems.com/ss/metacello
>> Project: Gofer Core 1.0.5.1
>> Fetched -> Gofer-Core.squeak-dkh.135 ---
>> http://seaside.gemtalksystems.com/ss/metacello ---
>> http://seaside.gemtalksystems.com/ss/metacello
>> Fetched -> Metacello-Core-dkh.494 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main ---
>> http://seaside.gemtalksystems.com/ss/metacello
>> Fetched -> Metacello-Platform.squeak-dkh.17 ---
>> http://seaside.gemtalksystems.com/ss/metacello ---
>> http://smalltalkhub.com/mc/dkh/metacello/main
>> Loaded -> Gofer-Core.squeak-dkh.135 ---
>> http://seaside.gemtalksystems.com/ss/metacello --- cache
>> Loaded -> Metacello-Core-dkh.494 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main --- cache
>> MetacelloSqueakPlatform>>downloadFile:to: (OSProcess is Undeclared)
>> MetacelloSqueakPlatform>>downloadFile:to: (OSProcess is Undeclared)
>> MetacelloSqueakPlatform>>extractRepositoryFrom:to: (OSProcess is Undeclared)
>> Loaded -> Metacello-Platform.squeak-dkh.17 ---
>> http://seaside.gemtalksystems.com/ss/metacello --- cache
>> ...finished 1.0-beta.31.1.8
>> Loading 1.0-beta.32.3 of ConfigurationOfMetacello...
>> Fetched -> ConfigurationOfFileTree-dkh.67 ---
>> http://ss3.gemtalksystems.com/ss/FileTree ---
>> http://ss3.gemtalksystems.com/ss/FileTree
>> Loaded -> ConfigurationOfFileTree-dkh.67 ---
>> http://ss3.gemtalksystems.com/ss/FileTree ---
>> /Users/tobias/dev/Squeak-Trunk/package-cache
>> Project: FileTree stable
>> Fetched -> MonticelloFileTree-Core.squeak43-dkh.169 ---
>> http://ss3.gemtalksystems.com/ss/FileTree ---
>> http://ss3.gemtalksystems.com/ss/FileTree
>> Fetched -> MonticelloFileTree-FileDirectory-Utilities.squeak43-dkh.12 ---
>> http://ss3.gemtalksystems.com/ss/FileTree ---
>> http://ss3.gemtalksystems.com/ss/FileTree
>> Project: Gofer stable
>> Fetched -> Metacello-Base-dkh.109 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main ---
>> http://seaside.gemtalksystems.com/ss/metacello
>> Fetched -> Metacello-Core-dkh.695 ---
>> http://seaside.gemtalksystems.com/ss/metacello ---
>> http://smalltalkhub.com/mc/dkh/metacello/main
>> Fetched -> Metacello-MC-dkh.680 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main ---
>> http://seaside.gemtalksystems.com/ss/metacello
>> Fetched -> Metacello-Platform.squeak-tfel.25 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main ---
>> http://seaside.gemtalksystems.com/ss/metacello
>> Fetched -> Metacello-ToolBox-dkh.134 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main ---
>> http://seaside.gemtalksystems.com/ss/metacello
>> Fetched -> Metacello-FileTree-dkh.29 ---
>> http://seaside.gemtalksystems.com/ss/metacello ---
>> http://smalltalkhub.com/mc/dkh/metacello/main
>> Fetched -> Metacello-GitHub-dkh.29 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main ---
>> http://seaside.gemtalksystems.com/ss/metacello
>> MCFileTreeStCypressWriter class>>fileNameForSelector:(specials is shadowed)
>> Loaded -> MonticelloFileTree-Core.squeak43-dkh.169 ---
>> http://ss3.gemtalksystems.com/ss/FileTree --- cache
>> Loaded -> MonticelloFileTree-FileDirectory-Utilities.squeak43-dkh.12 ---
>> http://ss3.gemtalksystems.com/ss/FileTree --- cache
>> BaselineOf>>projectClass (MetacelloMCBaselineProject is Undeclared)
>> ConfigurationOf>>versionNumberClass (MetacelloSemanticVersionNumber is
>> Undeclared)
>> Loaded -> Metacello-Base-dkh.109 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main --- cache
>> MetacelloProjectRegistration>>version (MetacelloMCBaselineProject is
>> Undeclared)
>> MetacelloBaselineSpecGenerator>>projectSpecCreationBlock
>> (MetacelloMCBaselineProject is Undeclared)
>> Loaded -> Metacello-Core-dkh.695 ---
>> http://seaside.gemtalksystems.com/ss/metacello --- cache
>> Loaded -> Metacello-MC-dkh.680 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main --- cache
>> Loaded -> Metacello-Platform.squeak-tfel.25 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main --- cache
>> Loaded -> Metacello-ToolBox-dkh.134 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main --- cache
>> Loaded -> Metacello-FileTree-dkh.29 ---
>> http://seaside.gemtalksystems.com/ss/metacello --- cache
>> Loaded -> Metacello-GitHub-dkh.29 ---
>> http://smalltalkhub.com/mc/dkh/metacello/main --- cache
>> Evaluated -> 1.0-beta.32.3 [ConfigurationOfMetacello] >>
>> metacelloPrimeRegistry
>> ...finished 1.0-beta.32.3
>> ================================================================================================================================================
>>
>> Hope that helps.
>>
>> Best regards
>> -Tobias
>>
>> PS: Metacello is now at https://github.com/Metacello/metacello but the
>> bootstrap should work nonetheless.
>>
>>
>>
>>>
>>> Kind regards
>>> Hannes
>>>
>>>
>>> [1] https://github.com/dalehenrich/metacello-work
>>>
>>> [2] ZipArchive class findEndOfCentralDirectoryFrom: stream
>>> "Seek in the given stream to the end, then read backwards until we find
>>> the
>>> signature of the central directory record. Leave the file positioned
>>> right
>>> before the signature.
>>>
>>> Answers the file position of the EOCD, or 0 if not found."
>>>
>>> | data fileLength seekOffset pos maxOffset |
>>> stream setToEnd.
>>> fileLength := stream position.
>>> "If the file length is less than 18 for the EOCD length plus 4 for
>>> the signature, we have a problem"
>>> fileLength < 22 ifTrue: [^ self error: 'file is too short'].
>>> "ERROR FILE TOO SHORT"
>>>
>>> seekOffset := 0.
>>> pos := 0.
>>> data := ByteArray new: 4100.
>>> maxOffset := 40960 min: fileLength. "limit search range to 40K"
>>>
>>> [
>>> seekOffset := (seekOffset + 4096) min: fileLength.
>>> stream position: fileLength - seekOffset.
>>> data := stream next: (4100 min: seekOffset) into: data startingAt: 1.
>>> pos := self lastIndexOfPKSignature: EndOfCentralDirectorySignature in:
>>> data.
>>> pos = 0 and: [seekOffset < maxOffset]
>>> ] whileTrue.
>>>
>>> ^ pos > 0
>>> ifTrue: [ | newPos | stream position: (newPos := (stream position +
>>> pos - seekOffset - 1)). newPos]
>>> ifFalse: [0]
>>>
>>
>>
>>
>
More information about the Squeak-dev
mailing list
|