Details
-
Technical task
-
Resolution: Done
-
Major
-
None
-
9223372036854775807
Description
We need to stop trying to control the RPM Release field from instide Lustre's build system (where "build system" means autogen.sh/configure/autoconf/automake/libtool, not anything to do with lbuild).
Lustre is open source software, and there are many subreleases created by various organizations that need to be uniquely versioned. Some of these releases are small and have little distribution, some are major and part of a vendor's product line. What they all have in common is that we need some way to tell them apart when they are installed in the wild.
We have gone through a couple rounds of trying to address this problem. In the most recent round we created the configure --downstream-release option that allows us to specify an additional version string at configure time. This string is inserted by the current Lustre build and packaging scripts into the RPM Release field.
I myself was involved in this recent design, so I share the blame for this approach. But now I'm older, wiser, and balder. We should not be doing this.
The RPM Release field is not the correct place to put versioning information about the source code. configuration time isn't really the right time to specify the versioning either, except maybe for one-off build information like a commit number for debug and testing fields. But even when configuration time is acceptable to add version information, that should go in the Version field, not the Release field.
It is clear to me now that the Release field needs to be left unmolested by Lustre's build system. The Release field is the sole domain of the packager. Right now the concepts of building and packaging are pretty intertwined in the lustre tree, but we need to work to make a clearer separation.
The first step is to stop using the Release field. That is not in Lustre's domain to use for its versioning purposes. Lustre's versioning should only appear in the Version field.