Oh well - even after modifying that method and trying the remoteTypeSelector: trick it insists on giving the iceAuthenticationError - so maybe the libcurl2 install didn’t work (he said he had to install "libcurl-gnutls” to get that far).
Interestingly - my osx setup has suddenly starting giving me an IceAuthenticationError in a fresh image (I can’t imagine its related is it? Could that repo suddenly have some issue? I had the same error yesterday and had to clear out the iceberg-local). It seems that iceberg is still not quite as rock solid as we would like. Tim > On 30 Apr 2019, at 17:15, Tim Mackinnon <tim@testit.works> wrote: > > 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 <tim@testit.works >> <mailto:tim@testit.works>> 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 <tim@testit.works >>> <mailto:tim@testit.works>> 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 <guillermopol...@gmail.com >>>> <mailto:guillermopol...@gmail.com>> 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 <tim@testit.works >>>> <mailto:tim@testit.works>> 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 <vitormc...@gmail.com >>>>> <mailto:vitormc...@gmail.com>> 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 <rao...@gmail.com >>>>> <mailto:rao...@gmail.com>> 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 <b...@openinworld.com >>>>> <mailto:b...@openinworld.com>> wrote: >>>>> >>>>> On Wed, 3 Apr 2019 at 05:09, Richard O'Keefe <rao...@gmail.com >>>>> <mailto:rao...@gmail.com>> 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 <vitormc...@gmail.com >>>>> <mailto:vitormc...@gmail.com>> 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 <rao...@gmail.com >>>>> <mailto:rao...@gmail.com>> 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 <jpfers...@gmail.com >>>>> <mailto:jpfers...@gmail.com>> 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 <horrido.hobb...@gmail.com >>>>> > <mailto:horrido.hobb...@gmail.com>> 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 >>> >> >