native cmds and libs in the module library

Sean Mullan sean.mullan at oracle.com
Mon Dec 19 08:23:52 PST 2011


On most systems, you'll probably also run into file permission issues if you
aren't superuser or an administrator. Is this something you are going to detect
up-front and warn the user or will the command just fail when it tries to
install the files?

--Sean

On 12/19/11 10:34 AM, Alan Bateman wrote:
> On 12/12/2011 16:46, Chris Hegarty wrote:
>> Hi,
>>
>> I've been looking into where native commands and native libraries get 
>> installed in the modules library. Today the files in the NATIVE_LIBS 
>> and NATIVE_CMDS sections of jmod files [1] are installed into 
>> directories in the the module library. This is not ideal for a few 
>> reasons:
>>
>> 1. Native commands hidden down in modules directory are not easy to
>>    find, and complicates the PATH.
>>
>> 2. One native library may have a dependency on another, which
>>    complicates the LD_LIBRARY_PATH. Again, having to poke around
>>    in the modules directory of each module.
>>
>> 3. JDK images cannot be built with simple jmod create/install. This
>>    would be nice! Currently, in the build native libs and cmds are
>>    copied into place.
>>
>> 4. At some point you could imagine it would be desirable to install
>>    native commands into /usr/bin.
>>
>> I've prototyped changes to the SimpleLibrary where, at the point of 
>> creation (jmod create), you can optionally specify a path for native 
>> libs and cmds. The creator of the library can decide where these get 
>> installed. Then, when a jmod file is installed the native cmds and 
>> libs are placed in the libraries appropriate directory.
>>
>> If 'jmod create' is called without these optional arguments then the 
>> current behavior is maintained, native libs and cmds are installed in 
>> each module under its 'lib' and 'bin' directories, respectively. I 
>> think this behavior may be desirable in some cases, a module has a 
>> single native library that implements some platform specific operation.
>>
>> http://cr.openjdk.java.net/~chegar/jigsaw/libbin_webrev.00/webrev/
> The approach to optionally specify the location for commands and native 
> libraries make sense to me. I suspect defaulting to directories in each 
> module will need a bit of thought, at least for legacy mode.
> 
> Once commands and native libraries are installed to locations outside of 
> the per module directory then it does mean handling the case that files 
> already exist. It also means the module library needs somewhere to track 
> these files so that removing a module knows to remove the files in these 
> other locations.
> 
> The proposed option to jmod create are -natcmd and -natlibs but as they 
> are long names then I assume they should be --.
> 
> -Alan.
> 
> 
> 



More information about the jigsaw-dev mailing list