Guille - it looks like modifying that method and : "I installed some other package (`libcurl-gnutls`) which is an "addon" to the regular `libcurl`.”
Got us further - now he’s getting IceAuthenticationError- which could be down to git vs https. (I can use the #remoteTypeSelector: trick to hopefully fix that). When I confirm everything, I will report back the magic syntax (at least for Arch) - as well as the desire to back port that fix to 7. Thanks for chipping in (and this is the thread that keeps on giving…) Tim > On 30 Apr 2019, at 16:08, Tim Mackinnon <[email protected]> wrote: > > Actually - the user has confirmed a bit more (which sounds like your hunch > Guille): > > Hmm… Just loading the image without `eval`ing something seems to boot up > well. But then I also realise, that there is a warning: > > ```ioLoadModule(/opt/pharo/bin/../lib/pharo/5.0-201901231209/libgit2.so): > libcurl-gnutls.so.4: cannot open shared object file: No such file or > directory``` > (edited) > > So this looks like pharo tries to load a bundled libgit2 first during bootup > which fails and only later, when trying to call into it, system resolves into > the system installed one. > Which then causes the segfault for some reason. > > I’ll see if I can guide him through changing that method. > > Tim > >> On 30 Apr 2019, at 15:53, Tim Mackinnon <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi Guille - I’m not using Arch Linux myself - this was a seasoned exercism >> contributor trying to give pharo a spin - and sadly it hasn’t gone well >> (shame as they might have been an advocate) They also commented: >> >> "I'm not quite sure though if I really want to continue from here. As >> someone new to pharo, I basically can't find any installation instructions >> that go beyond that evil `curl`. I'm happy to play this to the end with you, >> that at least exercism gets proper instructions, but the pharo community >> really should change their mind and provide more and better documentation >> about systemwide installation and packages. I have a hard time seeing >> something used at my compnay that does not provide an RPM out of the box…” >> >> Which is fair play. >> >> However I did get some details which might salvage something (and maybe they >> can try) >> >> Its ArchLinux (apparently there are no versions in Arch, its always the >> latest). >> Pharo wa installed via AUR (looks like a bit old - 2019-01-24 18:18) - not >> sure that is the issue though >> AUR does give an image so they downloaded the latest 64 bit one from here - >> https://files.pharo.org/image/70/ <https://files.pharo.org/image/70/> >> Libgit2 was missing - that was installed (not clear on how - could ask) >> >> After all of this - it did launch - they saw a welcome screen then it >> crashed (I think they were doing our eval string to metacello load exercism >> - so it would then use libgit2) >> >> They then got this error: >> https://pastebin.com/W2D86ZS4 <https://pastebin.com/W2D86ZS4> >> >> I’ve pasted the error below - for prosperity. >> >> Tim >> >> Pharo VM version: 5.0-201901231209 Wed Jan 23 12:32:13 UTC 2019 gcc 4.8 >> [Production Spur 64-bit VM] >> Built from: CoInterpreter VMMaker.oscog-eem.2509 uuid: >> 91e81f64-95de-4914-a960-8f842be3a194 Jan 23 2019 >> With: StackToRegisterMappingCogit VMMaker.oscog-eem.2509 uuid: >> 91e81f64-95de-4914-a960-8f842be3a194 Jan 23 2019 >> Revision: VM: 201901231209 >> https://github.com/OpenSmalltalk/opensmalltalk-vm.git >> <https://github.com/OpenSmalltalk/opensmalltalk-vm.git> Date: Wed Jan 23 >> 07:09:49 2019 CommitHash: a4b2dfa6 Plugins: 201901231209 >> https://github.com/OpenSmalltalk/opensmalltalk-vm.git >> <https://github.com/OpenSmalltalk/opensmalltalk-vm.git> >> Build host: Linux travis-job-3a8f8935-e791-48da-aa41-2eccc2452870 >> 4.4.0-101-generic #124~14.04.1-Ubuntu SMP Fri Nov 10 19:05:36 UTC 2017 >> x86_64 x86_64 x86_64 GNU/Linux >> plugin path: /opt/pharo/bin [default: /opt/pharo/lib/pharo/5.0-201901231209/] >> >> >> C stack backtrace & registers: >> rax 0x00000000 rbx 0x7f4aacbce700 rcx 0x00000000 rdx 0x00000014 >> rdi 0x00000000 rsi 0x00000000 rbp 0x00000000 rsp 0x7fffdc831d00 >> r8 0x00000000 r9 0x7f4aacbbce22 r10 0x00000006 r11 0x7fffdc831d08 >> r12 0x00000040 r13 0x00000014 r14 0x00000000 r15 0x7f4aacbbce22 >> rip 0x7f4aac72f3b9 >> */lib/libcrypto.so.1.1(BN_num_bits+0x9)[0x7f4aac72f3b9] >> /opt/pharo/bin/../lib/pharo/5.0-201901231209/pharo[0x41b0d3] >> /opt/pharo/bin/../lib/pharo/5.0-201901231209/pharo[0x41cb2e] >> /lib/libpthread.so.0(+0x124d0)[0x7f4aaeb2d4d0] >> /lib/libcrypto.so.1.1(BN_num_bits+0x9)[0x7f4aac72f3b9] >> /lib/libcrypto.so.1.1(RSA_size+0xe)[0x7f4aac81fa5e] >> /lib/libcrypto.so.1.1(+0x1b43b6)[0x7f4aac8273b6] >> /lib/libcrypto.so.1.1(RSA_verify+0x2b)[0x7f4aac82777b] >> /opt/pharo/lib/pharo/5.0-201901231209/libssh2.so.1(+0x2c2df)[0x7f4aac4672df] >> /opt/pharo/lib/pharo/5.0-201901231209/libssh2.so.1(+0xabbf)[0x7f4aac445bbf] >> /opt/pharo/lib/pharo/5.0-201901231209/libssh2.so.1(+0xe377)[0x7f4aac449377] >> /opt/pharo/lib/pharo/5.0-201901231209/libssh2.so.1(+0xffbe)[0x7f4aac44afbe] >> /opt/pharo/lib/pharo/5.0-201901231209/libssh2.so.1(+0x11cb6)[0x7f4aac44ccb6] >> /opt/pharo/lib/pharo/5.0-201901231209/libssh2.so.1(+0x1ad00)[0x7f4aac455d00] >> /opt/pharo/lib/pharo/5.0-201901231209/libssh2.so.1(libssh2_session_handshake+0x2e)[0x7f4aac455f8f] >> /lib/libgit2.so(+0xc3265)[0x7f4aacb33265] >> /lib/libgit2.so(+0xbf06b)[0x7f4aacb2f06b] >> /lib/libgit2.so(git_remote_connect+0x166)[0x7f4aacb0bf66] >> /lib/libgit2.so(git_remote_fetch+0x97)[0x7f4aacb0d417] >> /lib/libgit2.so(git_clone+0x36a)[0x7f4aaca9c4ea] >> /opt/pharo/bin/../lib/pharo/5.0-201901231209/pharo[0x4cacb6] >> /opt/pharo/bin/../lib/pharo/5.0-201901231209/pharo[0x4585f7] >> /opt/pharo/bin/../lib/pharo/5.0-201901231209/pharo[0x45a667] >> /opt/pharo/bin/../lib/pharo/5.0-201901231209/pharo(ceSendsupertonumArgs+0x265)[0x45c4b5] >> [0x1f00100] >> [0x7f4aacbcc7b0] >> >> >> Smalltalk stack dump: >> 0x7fffdc85b750 M LGitRepository>clone:url:local_path:options: 0x246e7f0: >> a(n) LGitRepository >> 0x7fffdc85b7d0 I FFICalloutAPI>function:module: 0x25189e8: a(n) >> FFICalloutAPI >> 0x7fffdc85b820 I >> LGitRepository(LGitExternalObject)>callUnchecked:options: 0x246e7f0: a(n) >> LGitRepository >> 0x7fffdc85b870 I LGitRepository>clone:url:local_path:options: 0x246e7f0: >> a(n) LGitRepository >> 0x7fffdc85b8e8 I [] in LGitRepository>clone:options:to: 0x246e7f0: a(n) >> LGitRepository >> 0x7fffdc85b928 I LGitRepository(LGitExternalObject)>withReturnHandlerDo: >> 0x246e7f0: a(n) LGitRepository >> 0x7fffdc85b970 I LGitRepository>clone:options:to: 0x246e7f0: a(n) >> LGitRepository >> 0x7fffdc85b9c8 I LGitRepository>clone:options: 0x246e7f0: a(n) >> LGitRepository >> 0x7fffdc85ba10 M [] in IceGitClone>execute 0x24431e0: a(n) IceGitClone >> 0x7fffdc859530 M BlockClosure>on:do: 0x245dcf0: a(n) BlockClosure >> 0x7fffdc859588 I IceGitClone>execute 0x24431e0: a(n) IceGitClone >> 0x7fffdc8595c8 I IceRepositoryCreator>cloneRepository 0x2425258: a(n) >> IceRepositoryCreator >> 0x7fffdc8595f8 M [] in IceRepositoryCreator>createRepository 0x2425258: >> a(n) IceRepositoryCreator >> 0x7fffdc859628 M BlockClosure>on:do: 0x2425460: a(n) BlockClosure >> 0x7fffdc859678 I IceRepositoryCreator>createRepository 0x2425258: a(n) >> IceRepositoryCreator >> 0x7fffdc8596b8 M [] in >> MCGitHubRepository(MCGitBasedNetworkRepository)>createIcebergRepositoryFor: >> 0x2424000: a(n) MCGitHubRepository >> 0x7fffdc8596e8 M BlockClosure>on:do: 0x2425350: a(n) BlockClosure >> 0x7fffdc859748 I >> MCGitHubRepository(MCGitBasedNetworkRepository)>createIcebergRepositoryFor: >> 0x2424000: a(n) MCGitHubRepository >> 0x7fffdc859788 M [] in >> MCGitHubRepository(MCGitBasedNetworkRepository)>createIcebergRepositoryWithFallbackFor:url: >> 0x2424000: a(n) MCGitHubRepository >> 0x7fffdc8597b8 M BlockClosure>on:do: 0x24251f0: a(n) BlockClosure >> 0x7fffdc859810 I >> MCGitHubRepository(MCGitBasedNetworkRepository)>createIcebergRepositoryWithFallbackFor:url: >> 0x2424000: a(n) MCGitHubRepository >> 0x7fffdc859860 M [] in >> MCGitHubRepository(MCGitBasedNetworkRepository)>getOrCreateIcebergRepository >> 0x2424000: a(n) MCGitHubRepository >> 0x7fffdc859890 M OrderedCollection(Collection)>detect:ifFound:ifNone: >> 0x433cdb0: a(n) OrderedCollection >> 0x7fffdc8598d8 M OrderedCollection(Collection)>detect:ifNone: 0x433cdb0: >> a(n) OrderedCollection >> 0x7fffdc859930 I >> MCGitHubRepository(MCGitBasedNetworkRepository)>getOrCreateIcebergRepository >> 0x2424000: a(n) MCGitHubRepository >> 0x7fffdc859980 I IceGithubRepositoryType>mcRepository 0x2423178: a(n) >> IceGithubRepositoryType >> 0x7fffdc8599c0 I Iceberg class>mcRepositoryFor: 0x4319310: a(n) Iceberg >> class >> 0x7fffdc859a08 I IceMetacelloPharoPlatform>createRepository: 0x4348f58: >> a(n) IceMetacelloPharoPlatform >> 0x7fffdc8575a8 I >> MetacelloMCBaselineProject(MetacelloMCProject)>createRepository: 0x23f7300: >> a(n) MetacelloMCBaselineProject >> 0x7fffdc8575f8 I MetacelloRepositorySpec>createRepository 0x23f7550: >> a(n) MetacelloRepositorySpec >> 0x7fffdc857630 M [] in >> MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>repositoriesFrom:ignoreOverrides: >> 0x23fd2f8: a(n) MetacelloFetchingMCSpecLoader >> 0x7fffdc857660 M Array(Collection)>detect:ifFound:ifNone: 0x241ff70: >> a(n) Array >> 0x7fffdc8576a8 M Array(Collection)>detect:ifNone: 0x241ff70: a(n) Array >> 0x7fffdc857708 M [] in >> MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>repositoriesFrom:ignoreOverrides: >> 0x23fd2f8: a(n) MetacelloFetchingMCSpecLoader >> 0x7fffdc857750 M Array(SequenceableCollection)>do: 0x23fd878: a(n) Array >> 0x7fffdc8577a8 I >> MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>repositoriesFrom:ignoreOverrides: >> 0x23fd2f8: a(n) MetacelloFetchingMCSpecLoader >> 0x7fffdc8577f8 I >> MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>repositoriesFrom: >> 0x23fd2f8: a(n) MetacelloFetchingMCSpecLoader >> 0x7fffdc857860 I MetacelloPackageSpec>explicitLoadUsing: 0x23f9898: a(n) >> MetacelloPackageSpec >> 0x7fffdc8578a8 I MetacelloPackageSpec>load 0x23f9898: a(n) >> MetacelloPackageSpec >> 0x7fffdc8578e0 M [] in >> MetacelloScriptEngine>getBaselineUnconditionalLoad: 0x23f7638: a(n) >> MetacelloScriptEngine >> 0x7fffdc857910 M BlockClosure>on:do: 0x23f9850: a(n) BlockClosure >> 0x7fffdc857968 I MetacelloScriptEngine>getBaselineUnconditionalLoad: >> 0x23f7638: a(n) MetacelloScriptEngine >> 0x7fffdc8579b8 I >> MetacelloScriptEngine>getBaselineProjectUnconditionalLoad: 0x23f7638: a(n) >> MetacelloScriptEngine >> 0x7fffdc857a00 I >> MetacelloMCBaselineProject>projectForScriptEngine:unconditionalLoad: >> 0x23f7300: a(n) MetacelloMCBaselineProject >> 0x7fffdc853408 I >> MetacelloMCBaselineProject(MetacelloProject)>projectForScriptEngine: >> 0x23f7300: a(n) MetacelloMCBaselineProject >> 0x7fffdc853458 I >> MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>versionForScriptEngine: >> 0x23f8ed0: a(n) MetacelloMCBaselineOfProjectSpec >> 0x7fffdc8534b8 M [] in >> MetacelloScriptEngine>load:onProjectDownGrade:onProjectUpgrade: 0x23f7638: >> a(n) MetacelloScriptEngine >> 0x7fffdc8534e8 M BlockClosure>on:do: 0x23f7e58: a(n) BlockClosure >> 0x7fffdc853530 M [] in >> MetacelloScriptEngine>handleNotificationsForAction: 0x23f7638: a(n) >> MetacelloScriptEngine >> 0x7fffdc853560 M BlockClosure>on:do: 0x23f8148: a(n) BlockClosure >> 0x7fffdc8535a8 M [] in >> MetacelloScriptEngine>handleNotificationsForAction: 0x23f7638: a(n) >> MetacelloScriptEngine >> 0x7fffdc8535d8 M BlockClosure>on:do: 0x23f8048: a(n) BlockClosure >> 0x7fffdc853620 M [] in >> MetacelloScriptEngine>handleNotificationsForAction: 0x23f7638: a(n) >> MetacelloScriptEngine >> 0x7fffdc853650 M BlockClosure>on:do: 0x23f7f48: a(n) BlockClosure >> 0x7fffdc8536a0 I MetacelloScriptEngine>handleNotificationsForAction: >> 0x23f7638: a(n) MetacelloScriptEngine >> 0x7fffdc8536f0 M [] in >> MetacelloScriptEngine>load:onProjectDownGrade:onProjectUpgrade: 0x23f7638: >> a(n) MetacelloScriptEngine >> 0x7fffdc853730 M BlockClosure>ensure: 0x23f7970: a(n) BlockClosure >> 0x7fffdc853788 I MetacelloProjectRegistration >> class>copyRegistryRestoreOnErrorWhile: 0x2e68c50: a(n) >> MetacelloProjectRegistration class >> 0x7fffdc8537d0 I >> MetacelloScriptEngine>load:onProjectDownGrade:onProjectUpgrade: 0x23f7638: >> a(n) MetacelloScriptEngine >> 0x7fffdc853818 M MetacelloScriptEngine>load: 0x23f7638: a(n) >> MetacelloScriptEngine >> 0x7fffdc853860 M [] in >> MetacelloScriptApiExecutor(MetacelloScriptExecutor)>execute: 0x23f69a8: a(n) >> MetacelloScriptApiExecutor >> 0x7fffdc8538a0 M [] in MetacelloScriptApiExecutor>executeString:do: >> 0x23f69a8: a(n) MetacelloScriptApiExecutor >> 0x7fffdc8538e8 M Array(SequenceableCollection)>do: 0x23f73c0: a(n) Array >> 0x7fffdc853930 I MetacelloScriptApiExecutor>executeString:do: 0x23f69a8: >> a(n) MetacelloScriptApiExecutor >> 0x7fffdc853980 I ByteString(String)>execute:against: 0x23d3510: a(n) >> ByteString >> 0x7fffdc8539d0 I >> MetacelloScriptApiExecutor(MetacelloScriptExecutor)>execute: 0x23f69a8: a(n) >> MetacelloScriptApiExecutor >> 0x7fffdc853a10 M [] in MetacelloScriptApiExecutor>execute: 0x23f69a8: >> a(n) MetacelloScriptApiExecutor >> 0x7fffdc855368 M [] in >> IceMetacelloLoadSessionContext(DynamicVariable)>value:during: 0x43a6b48: >> a(n) IceMetacelloLoadSessionContext >> 0x7fffdc8553a8 M BlockClosure>ensure: 0x23f6bf8: a(n) BlockClosure >> 0x7fffdc855400 I >> IceMetacelloLoadSessionContext(DynamicVariable)>value:during: 0x43a6b48: >> a(n) IceMetacelloLoadSessionContext >> 0x7fffdc855450 I IceMetacelloLoadSessionContext class(DynamicVariable >> class)>value:during: 0x433ce98: a(n) IceMetacelloLoadSessionContext class >> 0x7fffdc8554a8 I IceMetacelloPharoPlatform>withMetacelloLoadSessionDo: >> 0x4348f58: a(n) IceMetacelloPharoPlatform >> 0x7fffdc8554f0 I MetacelloScriptApiExecutor>execute: 0x23f69a8: a(n) >> MetacelloScriptApiExecutor >> 0x7fffdc855540 I Metacello>execute:args: 0x23f6660: a(n) Metacello >> 0x7fffdc855590 I Metacello>load 0x23f6660: a(n) Metacello >> 0x7fffdc8555c0 M UndefinedObject>DoIt 0x28e78e0: a(n) UndefinedObject >> 0x7fffdc855608 I OpalCompiler>evaluate 0x23d12e0: a(n) OpalCompiler >> 0x7fffdc855648 I OpalCompiler>evaluate: 0x23d12e0: a(n) OpalCompiler >> 0x7fffdc855690 M [] in EvaluateCommandLineHandler>evaluate: 0x23cd350: >> a(n) EvaluateCommandLineHandler >> 0x7fffdc8556c0 M BlockClosure>on:do: 0x23d1290: a(n) BlockClosure >> 0x7fffdc855718 I EvaluateCommandLineHandler>evaluate: 0x23cd350: a(n) >> EvaluateCommandLineHandler >> 0x7fffdc855768 I EvaluateCommandLineHandler>evaluateArguments 0x23cd350: >> a(n) EvaluateCommandLineHandler >> 0x7fffdc8557a8 I EvaluateCommandLineHandler>activate 0x23cd350: a(n) >> EvaluateCommandLineHandler >> 0x7fffdc8557e8 I EvaluateCommandLineHandler class(CommandLineHandler >> class)>activateWith: 0x2a271e0: a(n) EvaluateCommandLineHandler class >> 0x7fffdc855828 M [] in >> PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand: >> 0x604b7b8: a(n) PharoCommandLineHandler >> 0x7fffdc855858 M BlockClosure>on:do: 0x23cd300: a(n) BlockClosure >> 0x7fffdc855898 M >> PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand: >> 0x604b7b8: a(n) PharoCommandLineHandler >> 0x7fffdc8558e8 I >> PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand 0x604b7b8: >> a(n) PharoCommandLineHandler >> 0x7fffdc855928 I >> PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument: 0x604b7b8: >> a(n) PharoCommandLineHandler >> 0x7fffdc855960 M [] in >> PharoCommandLineHandler(BasicCommandLineHandler)>activate 0x604b7b8: a(n) >> PharoCommandLineHandler >> 0x7fffdc855990 M BlockClosure>on:do: 0x23c9fb8: a(n) BlockClosure >> 0x7fffdc8559d0 M [] in >> PharoCommandLineHandler(BasicCommandLineHandler)>activate 0x604b7b8: a(n) >> PharoCommandLineHandler >> 0x7fffdc855a10 I [] in BlockClosure>newProcess 0x23c97a0: a(n) >> BlockClosure >> >> Most recent primitives >> compare:with:collated: >> **StackOverflow** >> translate:from:to:table: >> stringHash:initialHash: >> **StackOverflow** >> translate:from:to:table: >> compare:with:collated: >> findFirstInString:inSet:startingAt: >> **StackOverflow** >> translate:from:to:table: >> stringHash:initialHash: >> **StackOverflow** >> translate:from:to:table: >> compare:with:collated: >> **StackOverflow** >> translate:from:to:table: >> stringHash:initialHash: >> **StackOverflow** >> translate:from:to:table: >> compare:with:collated: >> findFirstInString:inSet:startingAt: >> lookupDirectory:filename: >> class >> stringHash:initialHash: >> compare:with:collated: >> compare:with:collated: >> perform: >> stringHash:initialHash: >> compare:with:collated: >> perform: >> class >> stringHash:initialHash: >> compare:with:collated: >> stringHash:initialHash: >> compare:with:collated: >> stringHash:initialHash: >> at: >> basicNew: >> replaceFrom:to:with:startingAt: >> stringHash:initialHash: >> stringHash:initialHash: >> stringHash:initialHash: >> compare:with:collated: >> basicNew >> **StackOverflow** >> **StackOverflow** >> stringHash:initialHash: >> compare:with:collated: >> compare:with:collated: >> compare:with:collated: >> **StackOverflow** >> stringHash:initialHash: >> isOctetString >> basicNew: >> **StackOverflow** >> stringHash:initialHash: >> **StackOverflow** >> **StackOverflow** >> stringHash:initialHash: >> stringHash:initialHash: >> stringHash:initialHash: >> compare:with:collated: >> stringHash:initialHash: >> compare:with:collated: >> stringHash:initialHash: >> compare:with:collated: >> class >> **StackOverflow** >> stringHash:initialHash: >> compare:with:collated: >> **StackOverflow** >> **StackOverflow** >> stringHash:initialHash: >> compare:with:collated: >> compare:with:collated: >> compare:with:collated: >> stringHash:initialHash: >> compare:with:collated: >> basicNew >> basicNew >> basicNew >> basicNew >> shallowCopy >> stringHash:initialHash: >> basicNew >> basicNew >> class >> basicNew >> basicIdentityHash >> basicNew >> basicNew >> **StackOverflow** >> basicNew >> stringHash:initialHash: >> **StackOverflow** >> parameterAt: >> stringHash:initialHash: >> setIsReadOnlyObject: >> basicIdentityHash >> stringHash:initialHash: >> class >> = >> class >> findSubstring:in:startingAt:matchTable: >> indexOfAscii:inString:startingAt: >> indexOfAscii:inString:startingAt: >> size >> stringHash:initialHash: >> stringHash:initialHash: >> findSubstring:in:startingAt:matchTable: >> indexOfAscii:inString:startingAt: >> indexOfAscii:inString:startingAt: >> stringHash:initialHash: >> stringHash:initialHash: >> stringHash:initialHash: >> stringHash:initialHash: >> stringHash:initialHash: >> stringHash:initialHash: >> findSubstring:in:startingAt:matchTable: >> indexOfAscii:inString:startingAt: >> indexOfAscii:inString:startingAt: >> class >> stringHash:initialHash: >> stringHash:initialHash: >> stringHash:initialHash: >> findSubstring:in:startingAt:matchTable: >> indexOfAscii:inString:startingAt: >> indexOfAscii:inString:startingAt: >> stringHash:initialHash: >> findSubstring:in:startingAt:matchTable: >> indexOfAscii:inString:startingAt: >> indexOfAscii:inString:startingAt: >> stringHash:initialHash: >> stringHash:initialHash: >> findSubstring:in:startingAt:matchTable: >> indexOfAscii:inString:startingAt: >> indexOfAscii:inString:startingAt: >> stringHash:initialHash: >> stringHash:initialHash: >> stringHash:initialHash: >> class >> stringHash:initialHash: >> hash >> stringHash:initialHash: >> stringHash:initialHash: >> findSubstring:in:startingAt:matchTable: >> indexOfAscii:inString:startingAt: >> indexOfAscii:inString:startingAt: >> stringHash:initialHash: >> stringHash:initialHash: >> basicNew >> class >> stringHash:initialHash: >> compare:with:collated: >> perform: >> newMethod:header: >> at:put: >> at:put: >> at:put: >> at:put: >> basicNew >> size >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> basicIdentityHash >> objectAt:put: >> stringHash:initialHash: >> stringHash:initialHash: >> objectAt:put: >> basicNew: >> instVarAt: >> instVarAt:put: >> instVarAt: >> instVarAt:put: >> objectAt:put: >> basicNew: >> instVarAt: >> instVarAt:put: >> instVarAt: >> instVarAt:put: >> objectAt:put: >> basicAt: >> at:put: >> flushCache >> basicIdentityHash >> basicIdentityHash >> at: >> new: >> tempAt: >> at:put: >> tempAt: >> at:put: >> tempAt: >> at:put: >> tempAt: >> at:put: >> withArgs:executeMethod: >> instVarAt: >> size >> allocate: >> integerAt:put:size:signed: >> integerAt:put:size:signed: >> integerAt:put:size:signed: >> integerAt:put:size:signed: >> integerAt:put:size:signed: >> integerAt:put:size:signed: >> integerAt:put:size:signed: >> integerAt:put:size:signed: >> class >> clone >> basicIdentityHash >> at: >> wait >> **StackOverflow** >> basicNew: >> basicNew: >> signal >> invokeWithArguments: >> >> stack page bytes 8192 available headroom 5576 minimum unused headroom 5936 >> >> (Segmentation fault) >> >> >>> On 30 Apr 2019, at 15:18, Guillermo Polito <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hi Tim, >>> >>> Looking at the resolution of the libgit library, I see that in pharo7 the >>> following: >>> >>> LGitLibrary >> unixModuleName >>> | pluginDir | >>> pluginDir := Smalltalk vm binary parent. >>> #('libgit2.so' 'libgit2.so.0') >>> detect: [ :each | (pluginDir / each) exists ] >>> ifFound: [ :libName | ^ libName ]. >>> >>> self error: 'Module not found.' >>> >>> That definition may be the root of the problem in linux because it is >>> returning the unqualified library name without the VM path. >>> Then, the order of resolution of libraries is the one in the operating >>> system, which is in your case probably searching in /usr/lib or something >>> like that. >>> I'd bet that you have in your system (/usr/lib/something) another libgit >>> version but probably not matching the expected version in pharo or the >>> architecture of pharo (32/64 bits). >>> Thus, pharo finds the library but cannot load it... >>> >>> If you check in Pharo8, the same method reads slightly different: >>> >>> LGitLibrary >> unixModuleName >>> | pluginDir | >>> pluginDir := Smalltalk vm binary parent. >>> #('libgit2.so' 'libgit2.so.0') >>> detect: [ :each | (pluginDir / each) exists ] >>> ifFound: [ :libName | ^ (pluginDir / libName) fullName ]. >>> >>> self error: 'Module not found.' >>> >>> Can you check that patching the method like that works in your case? >>> This maybe deserves a backporting as it may make it super complicated to >>> work with Iceberg in some linuxes... >>> >>> On Tue, Apr 30, 2019 at 3:08 PM Tim Mackinnon <[email protected] >>> <mailto:[email protected]>> wrote: >>> Did we ever get the bottom of installing Pharo on linux? I have a user on >>> Arch linux who installed pharo from AUR (this is new stuff to me) - and >>> once they downloaded an image - they now get an error that looks >>> suspiciously like this libgit2 debacle - so I’m wondering what the solution >>> was? >>> >>> The error is: >>> >>> External module not found >>> ExternalLibraryFunction(Object)>>error: >>> ExternalLibraryFunction(Object)>>externalCallFailed >>> ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments: >>> LGitLibrary>>libgit2_init >>> FFICalloutAPI>>function:module: >>> LGitLibrary(Object)>>ffiCall: >>> LGitLibrary>>libgit2_init >>> [ self libgit2_init. >>> self recordInitializationSuccess ] in LGitLibrary>>initializeLibGit2 in >>> Block: [ self libgit2_init.... >>> BlockClosure>>on:do: >>> >>> ... >>> >>>> On 4 Apr 2019, at 15:07, Vitor Medina Cruz <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> No, you can't install libcurl3 with libcurl4. There is a known conflict >>>> between them: https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1754294 >>>> <https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1754294>, >>>> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900511 >>>> <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900511> >>>> >>>> Ubuntu 18.4 don't come with curl, but I think it comes with libcurl3 (I >>>> don't have means to verify it now), but when you install curl, it installs >>>> libcurl4 and removes libcurl3. >>>> >>>> On Thu, Apr 4, 2019 at 11:00 AM Richard O'Keefe <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> apt-cache search >>>> reports everything it knows about, not just things that are INSTALLED. >>>> For example, apt-cache search reports lua-curl-dev, but it is not >>>> installed. >>>> apt list | grep lua-curl-dev >>>> >>>> The fact that neither libcurl3 nor libcurl4 is initially installed >>>> means that either of them can be installed without conflict. >>>> >>>> On Thu, 4 Apr 2019 at 01:34, Ben Coman <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> On Wed, 3 Apr 2019 at 05:09, Richard O'Keefe <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> I just did a complete reinstall of Ubuntu 18.4 on this >>>> laptop yesterday, >>>> >>>> >>>> and it did not come with any version of curl. >>>> >>>> What do you mean? Under WSL I have installed Ubuntu 18.4 and for... >>>> $ apt-cache search libcurl | less >>>> I see libcurl3 and libcurl4 >>>> >>>> cheers -ben >>>> >>>> uname -a => >>>> Linux Inspiron 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 >>>> 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux >>>> >>>> >>>> >>>> On Wed, 3 Apr 2019 at 01:27, Vitor Medina Cruz <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> Installing curl don't work because there is a conflict between curl >>>> version name used on Ubuntu and that used by Pharo, you can't install >>>> libcurl 3 and libcru4 together. Ubuntu 18 comes with libcurl4 and older >>>> software depending on libcurl3 broke with it. I tested with minidebian and >>>> it also failed. >>>> >>>> Richard, was you able to use Iceberg? It should only work if either Ubuntu >>>> fix this dependency problem with libcurl or Pharo started to use libcrl4. >>>> >>>> >>>> >>>> On Tue, Apr 2, 2019 at 5:50 AM Richard O'Keefe <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> I have Pharo 6.1 and Pharo 7.0 working in Ubuntu 18.04 >>>> with no trouble so far. I just downloaded the launcher >>>> from pharo.org <http://pharo.org/> and pulled the images down that way. >>>> >>>> One thing I do find annoying in Ubuntu 18.04 is the >>>> number of programs (like okular) that spew warning >>>> messages out the terminal. Pharo, sadly, is one of >>>> them. Whenever a debugger window comes up in Pharo >>>> there is spewage on the terminal. But it works. >>>> >>>> >>>> On Tue, 2 Apr 2019 at 13:07, john pfersich <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> Ubuntu 18.04 LTS is, IMHO, is royal piece of crap. Ubuntu seems to have >>>> abandoned programmers tools almost completely in 18.04. I’ve had more >>>> problems with support of programming tools in 18.04, more than even >>>> Windows. I have run ‘sudo apt install’ maybe 80 times to install tools and >>>> libraries. Ubuntu 18.04’s hardware support is also lame compared to 16.04. >>>> Personally , I’m not surprised that Pharo doesn’t run on 18.04. I stopped >>>> installing 18.04 on my new machines, after all 16.04 still has a few years >>>> of support going for it, and at least it works without hours of upgrading. >>>> >>>> /*—————————————————-*/ >>>> Sent from my iPhone >>>> https://boincstats.com/signature/-1/user/51616339056/sig.png >>>> <https://boincstats.com/signature/-1/user/51616339056/sig.png> >>>> See https://objectnets.net <https://objectnets.net/> and >>>> https://objectnets.org <https://objectnets.org/> >>>> >>>> > On Apr 1, 2019, at 06:06, horrido <[email protected] >>>> > <mailto:[email protected]>> wrote: >>>> > >>>> > This issue bit me in the ass before, but I forgot. Yes, I had a senior >>>> > moment. >>>> > >>>> > The issue is this: When I tried to run Pharo under Ubuntu Server 18.04 at >>>> > OVH last year, it failed. I had to fall back to Ubuntu Server 16.04. >>>> > >>>> > This week, I tried to run Pharo under Ubuntu Server 18.04 at Google Cloud >>>> > Platform and it failed. Again, I had to fall back to Ubuntu Server 16.04. >>>> > >>>> > Why does this issue keep biting me in the ass??? Because I'm 65 and my >>>> > brain >>>> > is dying. >>>> > >>>> > The bigger issue is this: Hosting services like Digital Ocean, OVH, and >>>> > Google Cloud Platform are becoming increasingly important in the >>>> > enterprise >>>> > space. If Pharo can't run on these server operating systems, it's going >>>> > to >>>> > be a black eye for the language. We can get away with not supporting this >>>> > for now, but it will eventually catch up with us. >>>> > >>>> > At Google Cloud Platform, for example, the user can choose from this >>>> > list of >>>> > hosts: Debian GNU/Linux 9 (Stretch), CentOS 6, CentOS 7, various >>>> > versions of >>>> > CoreOS, Ubuntu 14.04 LTS Minimal, Ubuntu 16.04 LTS Minimal, Ubuntu 18.04 >>>> > LTS >>>> > Minimal, Ubuntu 18.10 Minimal, various versions of Red Hat, various >>>> > versions >>>> > of SUSE, various versions of Window, and so on. It's a long list. *I >>>> > strongly suspect that many of these are unusable with Pharo.* >>>> > >>>> > How to address this? I don't know. But if it's not a major problem now, >>>> > it >>>> > will be. It's bitten me in the ass twice, and I can't be alone. >>>> > >>>> > I'm giving a fair warning to everyone. Don't lash back at me – I'm just >>>> > the >>>> > canary in the coal mine. >>>> > >>>> > >>>> > >>>> > >>>> > Tim Mackinnon wrote >>>> >> Come on, let’s try not to be dismissive , we’ve all had that annoying >>>> >> moment where something doesn’t work. >>>> >> >>>> >> Richard, was this installed with zero conf or Launcher, and as >>>> >> mentioned - >>>> >> a Linux distro is going to be helpful. >>>> >> >>>> >> I’m assuming it worked before at some point for you right? But was that >>>> >> v6 >>>> >> and now you’re trying v7? >>>> >> >>>> >> Tim >>>> >> >>>> >> >>>> >> Sent from my iPhone >>>> >> >>>> >>> On 31 Mar 2019, at 23:46, john pfersich < >>>> > >>>> >> jpfersich@ >>>> > >>>> >> > wrote: >>>> >>> >>>> >>> What Linux (distro and version) and which version of Pharo. You >>>> >>> couldn’t >>>> >>> supply less information if you tried. >>>> >>> >>>> >>> >>>> >>> /*—————————————————-*/ >>>> >>> Sent from my iPhone >>>> >>> https://boincstats.com/signature/-1/user/51616339056/sig.png >>>> >>> <https://boincstats.com/signature/-1/user/51616339056/sig.png> >>>> >>> See https://objectnets.net <https://objectnets.net/> and >>>> >>> https://objectnets.org <https://objectnets.org/> >>>> >>> >>>> >>>> On Mar 31, 2019, at 14:21, Richard Kenneth Eng < >>>> > >>>> >> horrido.hobbies@ >>>> > >>>> >> > wrote: >>>> >>>> >>>> >>>> I just installed Pharo under Linux and when I start it up, I get: >>>> >>>> >>>> >>>> Error: External module not found >>>> >>>> >>>> >>>> It doesn't matter how I install Pharo. >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > -- >>>> > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html >>>> > <http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html> >>>> > >>>> >>> >>> >>> >>> -- >>> >>> Guille Polito >>> Research Engineer >>> >>> Centre de Recherche en Informatique, Signal et Automatique de Lille >>> CRIStAL - UMR 9189 >>> French National Center for Scientific Research - http://www.cnrs.fr >>> <http://www.cnrs.fr/> >>> >>> Web: http://guillep.github.io <http://guillep.github.io/> >>> Phone: +33 06 52 70 66 13 >> >
