Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-5969

Create an LGPL version of liblustreapi

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: Lustre 2.7.0
    • Fix Version/s: None
    • Labels:
      None
    • Rank (Obsolete):
      16672

      Description

      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
        be reused.
      • 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:

             get_param
             get_root_path
             libcfs_ukuc_get_rfd
             libcfs_ukuc_msg_get
             libcfs_ukuc_start
             libcfs_ukuc_stop
             llapi_chomp_string
             llapi_create_volatile_idx
             llapi_error
             llapi_error_callback_set
             llapi_fd2fid
             llapi_fid2path
             llapi_file_open_pool
             llapi_get_agent_uuid
             llapi_get_mdt_index_by_fid
             llapi_msg_set_level
             llapi_open_by_fid
             llapi_parse_size
             llapi_search_fsname
             llapi_search_mounts
      

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

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                hongchao.zhang Hongchao Zhang
                Reporter:
                fzago Frank Zago
              • Votes:
                1 Vote for this issue
                Watchers:
                27 Start watching this issue

                Dates

                • Created:
                  Updated: