pharo-project / PharoBootstrap

MIT License
10 stars 8 forks source link

BaselineOfBootstrapProcess not found #9

Open jgfoster opened 2 years ago

jgfoster commented 2 years ago

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 2 years ago

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 ]