-
Notifications
You must be signed in to change notification settings - Fork 7
rb-gsl broken on heroku (and similar platforms) #5
Comments
I'm not familiar with the build process on Heroku. Can you tell me where NArray is configured through |
At build time narray.so will be located in something along the lines of: /tmp/some_tmpdir/vendor/bundle/ruby/2.1.0/gems/narray-0.6.0.9/src/narray.so After your app builds, heroku basically does a: So at runtime the path to the same file will be /app/vendor/bundle/ruby/2.1.0/gems/narray-0.6.0.9/src/narray.so. A relative path should remain unbroken? Sorry I do not have much experience with c extensions in ruby, I am not sure how other C gems with native extensions solve this problem. |
Giving it more thought, does it make sense to copy the .h and .so in? Similarly to how eventmachine copies in openssl's header files? https://github.com/eventmachine/eventmachine/blob/master/ext/extconf.rb#L47 I can't think of any other gems that require .h and .so files from dependent gems, are you aware of any? I would be curious how they solve this same problem. |
I see, thanks for the info.
Unfortunately, no. Relative paths won't help much as that includes even more assumptions about the build environment into the process. We don't have the same information for rb-gsl that we have for narray at install time. In addition to that, a
I can't say I'd be in favour of such an approach. It should work, yes, but somehow I wouldn't feel comfortable doing it.
So would I, but a cursory search for narray specifically only revealed ruby-netcdf, ruby-fftw3 and nmap. And they don't have this exact problem as they don't try to fix the underlinking issue (see #4). In conclusion, I think we should reconsider the "solution" for #4 so that it only applies where necessary. I don't see a way to make Could you try and test rb-gsl-1.16.0.2.pre2? |
The change introduced in this commit: a8ce8f0 to link narray.so breaks on heroku and similar platforms as the build directories do not match the release directories.
The text was updated successfully, but these errors were encountered: