Staging libraries for the Install goal

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Staging libraries for the Install goal

Aditya
Hi Devs,

Currently, the Install goal for a native executable copies all the native libraries to the "lib" folder along with the executable.

This does work for many libraries which requires to be located under their usual installation location. JVM is one such library.

I created a pull request to address this by adding the parent folder of each of these libraries to the LD_LIBRARY_PATH instead of copying, however I understand that this may not be an acceptable solution (already breaks many existing test cases among other issues).

A slightly less fundamental change to the current approach would be to create a symbolic link to the library instead of copying. I have verified that this works with JVM.

If there is no concern with this approach, I will resubmit the pull request with this second approach.

Regards,
https://github.com/adityakishore/
Reply | Threaded
Open this post in threaded view
|

Re: Staging libraries for the Install goal

Daz DeBoer-2
I think that symlinking libraries into the developer installation image makes sense, on platforms where symlinking is possible.
If you want to take a stab at making this change, that would be cool.

You'll need to ensure that all of the integration tests continue to function on your local system: the command I usually use to check this is:
"./gradlew --continue quickCheck :cpp:check"

Thanks for offering to help out.
cheers
Daz


On Mon, Feb 24, 2014 at 1:22 AM, Aditya <[hidden email]> wrote:
Hi Devs,

Currently, the Install goal for a native executable copies all the native libraries to the "lib" folder along with the executable.

This does work for many libraries which requires to be located under their usual installation location. JVM is one such library.

I created a pull request to address this by adding the parent folder of each of these libraries to the LD_LIBRARY_PATH instead of copying, however I understand that this may not be an acceptable solution (already breaks many existing test cases among other issues).

A slightly less fundamental change to the current approach would be to create a symbolic link to the library instead of copying. I have verified that this works with JVM.

If there is no concern with this approach, I will resubmit the pull request with this second approach.

Regards,
https://github.com/adityakishore/

Reply | Threaded
Open this post in threaded view
|

Re: Staging libraries for the Install goal

Aditya
Will do that and put up a patch soon.


On Tue, Feb 25, 2014 at 11:02 AM, Daz DeBoer <[hidden email]> wrote:
I think that symlinking libraries into the developer installation image makes sense, on platforms where symlinking is possible.
If you want to take a stab at making this change, that would be cool.

You'll need to ensure that all of the integration tests continue to function on your local system: the command I usually use to check this is:
"./gradlew --continue quickCheck :cpp:check"

Thanks for offering to help out.
cheers
Daz


On Mon, Feb 24, 2014 at 1:22 AM, Aditya <[hidden email]> wrote:
Hi Devs,

Currently, the Install goal for a native executable copies all the native libraries to the "lib" folder along with the executable.

This does work for many libraries which requires to be located under their usual installation location. JVM is one such library.

I created a pull request to address this by adding the parent folder of each of these libraries to the LD_LIBRARY_PATH instead of copying, however I understand that this may not be an acceptable solution (already breaks many existing test cases among other issues).

A slightly less fundamental change to the current approach would be to create a symbolic link to the library instead of copying. I have verified that this works with JVM.

If there is no concern with this approach, I will resubmit the pull request with this second approach.

Regards,
https://github.com/adityakishore/