BaselineOfBootstrapProcess not found
jgfoster opened this issue · 1 comments
jgfoster commented
Following the install instructions in a new directory yields an error because ./pharo-local/package-cache
is empty:
fostja@fostja:~/bootstrap$ wget -O - get.pharo.org/100+vm | bash
--2022-07-08 04:17:43-- http://get.pharo.org/100+vm
Resolving get.pharo.org (get.pharo.org)... 164.132.235.17, 2001:41d0:301::23
Connecting to get.pharo.org (get.pharo.org)|164.132.235.17|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3046 (3.0K)
Saving to: ‘STDOUT’
- 100%[==================================>] 2.97K --.-KB/s in 0s
2022-07-08 04:17:44 (125 MB/s) - written to stdout [3046/3046]
Downloading the latest 100 Image:
http://files.pharo.org/get-files/100/pharoImage-x86_64.zip
Pharo.image
Downloading the latest pharoVM:
http://files.pharo.org/get-files/100/pharo-vm-Linux-x86_64-stable.zip
pharo-vm/pharo
Creating starter scripts pharo and pharo-ui
fostja@fostja:~/bootstrap$ ./pharo Pharo.image eval "
Metacello new
baseline: 'BootstrapProcess';
repository: 'tonel://.';
load.
Smalltalk snapshot: true andQuit: true."
MetacelloNotification: ...RETRY->BaselineOfBootstrapProcess
MetacelloNotification: ...RETRY->BaselineOfBootstrapProcess
MetacelloNotification: ...FAILED->BaselineOfBootstrapProcess
Could not resolve: BaselineOfBootstrapProcess [BaselineOfBootstrapProcess] in /home/fostja/bootstrap/pharo-local/package-cache tonel:///home/fostja/bootstrap
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
[
| references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |
cachedReference := nil.
packageSpec
searchCacheRepositoryForPackage: [
"check to see if mcz file is already in cacheRepository"
cachedReference := self
resolvePackageSpec: packageSpec
cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [
cachedReference name = packageSpec file
ifTrue: [
"exact match between packageSpec file and cache"
^ self
scheduleFetchFor: packageSpec
cachedReference: cachedReference ] ] ].
references := self
retryingResolvePackageSpecReferences: packageSpec
gofer: gofer. "look up mcz file"
nearestReference := references last asMetacelloCachingResolvedReference.
(cachedReference ~~ nil
and: [ cachedReference name = nearestReference name ])
ifTrue: [
"latest reference in repository matches cachedReference ... "
^ self
scheduleFetchFor: packageSpec
nearestReference: nearestReference ].
(self ignoreImage not
and: [ (loadedVersionInfos := self ancestorsFor: packageSpec) ~~ nil ])
ifTrue: [
"If the mcz is already loaded into the image, no need to copy"
loadedVersionInfos
do: [ :info |
info name = nearestReference name
ifTrue: [
| spc |
spc := packageSpec copy.
spc file: info name.
(MetacelloIgnorePackageLoaded signal: spc)
ifFalse: [ ^ self ] ] ] ].
externalReference := (references
select: [ :ref | ref name = nearestReference name ]) first
asMetacelloCachingResolvedReference.
self repositoryMap
at: externalReference name
put: externalReference repository.
(self
resolveDependencies: externalReference
nearest: nearestReference
into: (OrderedCollection with: nearestReference))
do: [ :reference |
| pSpec l |
mcVersion := reference version.
(l := (GoferVersionReference name: reference name)
resolveAllWith: self loaderPolicy cacheGofer) isEmpty
ifTrue: [
self cacheRepository storeVersion: mcVersion.
reference == nearestReference
ifTrue: [ pSpec := packageSpec ]
ifFalse: [
pSpec := packageSpec project packageSpec.
pSpec name: mcVersion package name ].
self loadData
addVersion: mcVersion
versionInfo: mcVersion info
resolvedReference: reference
packageSpec: pSpec ] ].
self scheduleFetchFor: packageSpec externalReference: externalReference ] in MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer: in Block: [ ...
[:bar |
bar value: 1.
aBlock value.
bar value: 2 ] in IceMetacelloPharoPlatform(MetacelloPharoCommonPlatform)>>do:displaying: in Block: [:bar |...
FullBlockClosure(BlockClosure)>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ]
[ activeProcess
psValueAt: index
put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ activeProcess...
FullBlockClosure(BlockClosure)>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning....
FullBlockClosure(BlockClosure)>>ensure:
Job>>run
NonInteractiveUIManager(UIManager)>>displayProgress:from:to:during:
ByteString(String)>>displayProgressFrom:to:during:
IceMetacelloPharoPlatform(MetacelloPharoCommonPlatform)>>do:displaying:
MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer:
MetacelloPackageSpec>>loadUsing:gofer:
[:pkg | pkg loadUsing: self gofer: gofer ] in MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories: in Block: [:pkg | pkg loadUsing: self gofer: gofer ]
Array(SequenceableCollection)>>do:
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories:
[ super linearLoadPackageSpecs: packageSpecs repositories: repositories ] in MetacelloFetchingMCSpecLoader>>explicitLoadPackageSpecs:repositories: in Block: [ super linearLoadPackageSpecs: packageSpecs repos...etc...
FullBlockClosure(BlockClosure)>>ensure:
MetacelloLoaderPolicy>>pushLoadDirective:during:
MetacelloLoaderPolicy>>pushExplicitLoadDirectivesDuring:for:
MetacelloFetchingMCSpecLoader>>explicitLoadPackageSpecs:repositories:
MetacelloPackageSpec>>explicitLoadUsing:
MetacelloPackageSpec>>load
[ spec projectPackage load ] in MetacelloScriptEngine>>getBaselineUnconditionalLoad: in Block: [ spec projectPackage load ]
FullBlockClosure(BlockClosure)>>on:do:
MetacelloScriptEngine>>getBaselineUnconditionalLoad:
jgfoster commented
Adding the directory BaselineOfBootstrapProcess/
now yields this error:
Instance of ZnBufferedReadStream did not understand #resolveString:
ZnBufferedReadStream(Object)>>doesNotUnderstand: #resolveString:
TonelFileSystemUtils class>>directoryFromPath:relativeTo:
TonelReader>>packageDirectory:
TonelReader class>>on:fileName:
[:s |
(MCVersionReader readerClassForFileNamed: aString) ifNotNil:
[:class | aBlock value: (class on: s fileName: (self pathForFileNamed: aString))]] in MCCacheRepository(MCFileBasedRepository)>>versionReaderForFileNamed:do: in Block: [:s |...
[ :stream|
val := aBlock value: stream ] in MCCacheRepository(MCDirectoryRepository)>>readStreamForFileNamed:do: in Block: [ :stream|...
[ aBlock value: stream ] in FileReference(AbstractFileReference)>>binaryReadStreamDo: in Block: [ aBlock value: stream ]
FullBlockClosure(BlockClosure)>>ensure:
FileReference(AbstractFileReference)>>binaryReadStreamDo:
MCCacheRepository(MCDirectoryRepository)>>readStreamForFileNamed:do:
MCCacheRepository(MCFileBasedRepository)>>versionReaderForFileNamed:do:
MCCacheRepository>>loadVersionFromFileNamed:
TonelRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
[ :packageDirectory |
self loadVersionFromFileNamed: (self fileUtils directoryName: packageDirectory) ] in TonelRepository>>versionFrom: in Block: [ :packageDirectory | ...
FullBlockClosure(BlockClosure)>>cull:
[ :each |
(aBlock value: each)
ifTrue: [ ^ foundBlock cull: each ] ] in Array(Collection)>>detect:ifFound:ifNone: in Block: [ :each | ...
Array(SequenceableCollection)>>do:
Array(Collection)>>detect:ifFound:ifNone:
TonelRepository>>versionFrom:
MetacelloCachingGoferResolvedReference(GoferResolvedReference)>>version
MetacelloCachingGoferResolvedReference>>version
[ :each | each version ] in MetacelloFetchingMCSpecLoader>>resolveDependencies:nearest:into: in Block: [ :each | each version ]
OrderedCollection>>do:
[
"ensure that all resolved references have cached their version while wrapped by error handler"
aCollection do: [ :each | each version ].
nearestReference version dependencies do: block.
notDone := false ] in MetacelloFetchingMCSpecLoader>>resolveDependencies:nearest:into: in Block: [ ...
FullBlockClosure(BlockClosure)>>on:do:
MetacelloFetchingMCSpecLoader>>resolveDependencies:nearest:into:
[
| references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |
cachedReference := nil.
packageSpec
searchCacheRepositoryForPackage: [
"check to see if mcz file is already in cacheRepository"
cachedReference := self
resolvePackageSpec: packageSpec
cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [
cachedReference name = packageSpec file
ifTrue: [
"exact match between packageSpec file and cache"
^ self
scheduleFetchFor: packageSpec
cachedReference: cachedReference ] ] ].
references := self
retryingResolvePackageSpecReferences: packageSpec
gofer: gofer. "look up mcz file"
nearestReference := references last asMetacelloCachingResolvedReference.
(cachedReference ~~ nil
and: [ cachedReference name = nearestReference name ])
ifTrue: [
"latest reference in repository matches cachedReference ... "
^ self
scheduleFetchFor: packageSpec
nearestReference: nearestReference ].
(self ignoreImage not
and: [ (loadedVersionInfos := self ancestorsFor: packageSpec) ~~ nil ])
ifTrue: [
"If the mcz is already loaded into the image, no need to copy"
loadedVersionInfos
do: [ :info |
info name = nearestReference name
ifTrue: [
| spc |
spc := packageSpec copy.
spc file: info name.
(MetacelloIgnorePackageLoaded signal: spc)
ifFalse: [ ^ self ] ] ] ].
externalReference := (references
select: [ :ref | ref name = nearestReference name ]) first
asMetacelloCachingResolvedReference.
self repositoryMap
at: externalReference name
put: externalReference repository.
(self
resolveDependencies: externalReference
nearest: nearestReference
into: (OrderedCollection with: nearestReference))
do: [ :reference |
| pSpec l |
mcVersion := reference version.
(l := (GoferVersionReference name: reference name)
resolveAllWith: self loaderPolicy cacheGofer) isEmpty
ifTrue: [
self cacheRepository storeVersion: mcVersion.
reference == nearestReference
ifTrue: [ pSpec := packageSpec ]
ifFalse: [
pSpec := packageSpec project packageSpec.
pSpec name: mcVersion package name ].
self loadData
addVersion: mcVersion
versionInfo: mcVersion info
resolvedReference: reference
packageSpec: pSpec ] ].
self scheduleFetchFor: packageSpec externalReference: externalReference ] in MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer: in Block: [ ...
[:bar |
bar value: 1.
aBlock value.
bar value: 2 ] in IceMetacelloPharoPlatform(MetacelloPharoCommonPlatform)>>do:displaying: in Block: [:bar |...
FullBlockClosure(BlockClosure)>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ]