Details
-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
16493
Description
After some discussion on Skype with Brian Murrell I'm entering this ticket for lbuild. Currently lbuild works well for reproducibly building kernel and lustre rpms in our Jenkins build environment. If it could be made to perform argument free it would be more useful for manual builds in other than Jenkins. This would have a number of advantages over other documented methods like those on our wiki pages:
1) a single line, simple command for building kernel and/or lustre rpms without a lot of manual, error prone steps.
2) rpm payloads from a manual build that would look a lot more like those from Jenkins builds. this is especially true of kernel rpms, where those generated by Jenkins builds look a lot more like distro based kernel rpms than those generated by current manual methods.
3) would provide a simple, standard, and repeatable way of doing manual builds so that we could move away from everybody doing them a little differently.
It would also be nice if lbuild could optionally keep around the patched kernel source tree after the build finishes instead of cleaning it all up and deleting it. Having the sources around for reference is an invaluable resource for many developers.
Brian advises "nothing comes to mind immediately about why that cannot work"
Yes, that would make much more sense. lbuild is a high level script that builds many packages (e.g. Linux, Lustre, IB packages, ZFS.) It is part of the Intel automated build system, not part of the Lustre build system. That is why lbuild was relocated to the contrib subdirectory. Nothing in lbuild is necessary to build Lustre, and we should strive to keep it that way.
Lustre's internal build system calling out to lbuild would be a laying violation.
Currently that is not the case. make srpm makes a source rpm. make rpm ignores make srpm's product entirely and goes ahead and rebuilds the source rpm in addition to building the binary rpms.
Livermore's 2.5.3-llnl branch has a patch that accomplishes that (see github.com/chaos/lustre). There are three patches on that branch labelled "
LU-1199" that eventually could be pushed upstream again.In the mean time, I created
LU-5919to track that issue. I also pushed a copy of the patch in question to gerrit. It is based on b2_5, but I won't have time to port it to master until after Supercomputing.