1

I am on a raspbian stretch system with the spur32 VM for ARM and a Pharo 7 image. At Startup I always get an exception: Error - Module not found.

It seems to have to do with lgitlibrary. I really cannot figure out what this error is about. Any ideas? Thanks, Henrik

enter image description here

Henrik Guschov
  • 317
  • 1
  • 8

2 Answers2

2

I see. If you check #unixModuleName

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.'

Here you have your error message: self error: 'Module not found.'

You probably have libgit2.so or libgit2.so.0 missing (or dependencies). You may suffer with similar problem as me: Getting error when adding OSSubprocess to my Pharo 6.1 on Centos 7.4x.

You should check the dependencies with ldd (check my question for details).

Edit Adding information due to comment:

I have yet to use IceBerg (the Pharo's git integration). My guess, would be to "(re-)initialize it": (Smalltalk at: #LGitLibrary) initialize.

For more information, I recommend reading these: pharo's iceberg and some Pharo project that uses git like pharo-contributor and checking blog pharoweekly (for some information about the pharo-contributor) - https://pharoweekly.wordpress.com/2018/04/24/pharo-contributor-to-contribute-to-pharo.

You may want to use some guide "How to use git and github with Pharo". Which was done by Peter Uhnak (you can find him on SO).

tukan
  • 17,050
  • 1
  • 20
  • 48
  • Thanks. I do have libgit2.so including all dependencies. I don't have libgit2.so.0 - but one of them should be enough, right? – Henrik Guschov Mar 16 '19 at 11:55
  • Yes, one is enough. #detect:ifFound: will trigger upon at least one detected and return ^ llibName. Are you sure you have at least one? (In the `pluginDir` not in the system!) You could see if Pharo see it by replacing ifFound: [ :libName | Transcript show: libName ]. Second question is if the libgit2.so is compatible with your ARM system. Third are the dependencies in the correct versions? – tukan Mar 16 '19 at 16:10
  • Okay, thanks so much! I had the file in the system, but not in my actual pluginDir. So that hint did the trick. I just put a symlink into the pluginDir. Only one last question: Do you happen to know how I can check whether this actually works and is not just satisfying the file being there? – Henrik Guschov Mar 17 '19 at 20:23
  • @HenrikGuschov I have added more information about Pharo's git. For more I recommend opeining separate question. It makes life easier for those that are searching for answers to their questions. – tukan Mar 18 '19 at 07:35
  • Thanks so much for all your help! – Henrik Guschov Mar 21 '19 at 15:03
0

I had the similar problem and I needed to build libgit2 library from source using this instructions. The basic build didn't work because Pharo wasn't able to initialize the library. I compiled it again with parameter -DSTDCALL=ON an it works.

FunkyMonkey
  • 21
  • 2
  • 4