[LU-9215] build: Re-add the lustre-devel package. Created: 15/Mar/17  Updated: 18/Dec/20  Resolved: 18/Dec/20

Status: Closed
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.14.0

Type: Bug Priority: Major
Reporter: parinay v kondekar (Inactive) Assignee: James A Simmons
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Related
is related to LU-9897 Tracking of lustre library improvements. Open
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

This re-adds the lustre-devel package.



 Comments   
Comment by Gerrit Updater [ 15/Mar/17 ]

Parinay Kondekar (parinay.kondekar@seagate.com) uploaded a new patch: https://review.whamcloud.com/25997
Subject: LU-9215 build: Re-add the lustre-devel package.
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 9022560c5978768aada71bec251db751837f32c3

Comment by Minh Diep [ 17/Mar/17 ]

Hi parinay,

Could you elaborate the reason we want devel packages? is there anything you are doing that can't be done with existing packages?

Comment by Brian Murrell (Inactive) [ 16/May/17 ]

Building other tools that want to use Lustre also needs this, such as Robinhood.

Comment by Andreas Dilger [ 24/May/17 ]

Brian, I agree that based on the name "lustre-devel" one would assume this would be used by externally-built packages, but if you look at the patch it includes every header from the Lustre source tree (including kernel headers). I would instead expect that lustre-devel would include the lustre/include/lustre directory headers, and the liblustreapi.a library (the liblustreapi.so library should always be installed).

Comment by Sebastien Piechurski [ 10/Jul/18 ]

Can we reconsider this ticket ?

We have a use-case where such a package would be useful: we build an external LND, which needs to be rebuilt with each new lustre release. Having the headers (mainly lustre/include libcfs/include  and lnet/include), the config.h and the Module.symvers file for a given build in a package would help streamlining the build process.

Would a revised patch that provides such a package with these files (filtering out the kernel headers) be acceptable ?

About the liblustreapi.a, as it is already part of the main lustre rpm, I guess it does not really need to be provided by the -devel package.

Comment by Andreas Dilger [ 16/Jul/18 ]

spiechurski, I'm not against having a lustre-devel package per-se, but I am against including every header into that package. My preference would be to include header files into that package on an as-needed basis to build the required modules, rather than including everything. That avoids adding dependence on internal implementation details that are not really forming a stable API, and also makes it easier to see which interfaces are actually being used by external modules.

On the other hand, is there a reason that the ptl4lnd is not submitted into the master branch? That would simplify keeping it updated for newer Lustre releases, since you will have at least some of the ptl4lnd updates as part of the ongoing development activities by other parties, even if the LND is itself not always being tested for each patch. Having a small test system at Atos that is fetching any patches from Gerrit that affect LNet and running a brief test (e.g. lnet-selftest with NETTYPE=ptl4) would go a long way to ensuring that this LND does not break.

Comment by James A Simmons [ 17/Jul/18 ]

That is not how devel rpms work. They normally contain only static libraries and user land headers. Your ptl4lnd driver is a kernel driver so its going to always be dependent on the lustre kernel code  Their is no guarantee that the internal kernel apis will remain stable. In fact more changes to the LNet core are in the pipe line. 

Comment by Andreas Dilger [ 17/Jul/18 ]

I don't think there is any question about the kernel or Lustre APIs being kept stable,, but that doesn't prevent modules from having conditional compilation as we already do with Lustre today.

I don't object in principle to our-of-tree modules being built, but agree that "lustre-devel" is maybe not a good package name unless it also includes both the in-kernel and userspace development headers.

Comment by Gerrit Updater [ 20/Nov/20 ]

James Simmons (jsimmons@infradead.org) uploaded a new patch: https://review.whamcloud.com/40728
Subject: LU-9215 build: Re-add the lustre-devel package
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 1d71647c5ce75d7d7dbd464e218764b7314b7811

Comment by James A Simmons [ 21/Nov/20 ]

By popular demand I added back lustre-devel for user land handling. As for what people are requesting that is kmod-lustre-devel rpm that you want. 

Comment by Gerrit Updater [ 17/Dec/20 ]

Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/40728/
Subject: LU-9215 build: Re-add the lustre-devel package
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 16af4e5ed634942cf6d8a847832684c5542a956c

Comment by Peter Jones [ 17/Dec/20 ]

Aa true man of the people Landed for 2.14

Comment by James A Simmons [ 17/Dec/20 ]

Actually one more patch. People want the ability to build against external LND drivers.

Comment by Andreas Dilger [ 17/Dec/20 ]

James, that could go under a separate ticket? My understanding is that would be something quite different - building out-of-tree kernel modules, rather than the patch which just landed, which is for userspace tools that need access to the interface/protocol structures and constants and such?

Comment by Cory Spitz [ 18/Dec/20 ]

simmonsja, FYI: https://github.com/Cray/lustre/blob/cray-2.12-int/cray-obs/cray-lnet.pc and https://github.com/Cray/lustre/blob/cray-2.12-int/cray-obs/cray-lustre-api-devel.pc

Comment by James A Simmons [ 18/Dec/20 ]

Andreas I can do that. The only reason I brought this up is that people earlier in this ticket asked for it. Also patch https://review.whamcloud.com/#/c/25997 seemed to be heading into that direction instead of handling the user land devel package handling. Cory those *.pc inspired me to develop the patch that just landed 

Generated at Sat Feb 10 02:24:14 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.