Affects Version/s: Lustre 2.7.0
Fix Version/s: None
Cray would like to have an LGPL version of the liblustreapi
library. We believe that there is also a desire in the
community to do that move also.
A starting point would be to create that new library with the existing
code already licensed under the LGPL (such as HSM and layout), and
start from there.
We should take this opportunity to do some cleanup in the library, and
start a new one, independent of the older code. Some of the things
that we propose are:
- prefix all API functions with lustre_, as opposed to llapi_
- have a better API to work with the copytool and changelog
readers. As these programs know which filesystem they are dealing
with, there could be an lustre_open_fs / lustre_close_fs type of
API, which would prevent calls to function such as get_root_path for
every request. The HSM API already has something similar, and should
- every function must have a test. Currently the liblustreapi is only
tested indirectly with program like lfs, and that's not good enough.
- every function must have a comment describing what it does, its
parameters and return code. This is done for some but not all
functions the existing library.
As a test of the viability for this plan, we'd like to first port the
posix tool to this new API. Currently, besides the API already in some
LGPLed source files, the following functions and their dependencies are needed:
Cray would like to do the preliminary implementation of this new library, and would like to know if the copyright holders of the above mentioned functions agree to relicense their code under the LGPL. Otherwise they will have to be recoded.
The second phase would be to also port Robinhood to it, since the most
of the API should be there already, except for the changelog