[Lustre-devel] Lustre version number and rpm "Release"
Brian J. Murrell
Brian.Murrell at Sun.COM
Fri Oct 2 06:55:00 PDT 2009
On Thu, 2009-10-01 at 19:14 -0700, Christopher J. Morrone wrote:
> As far as I can tell, setting LUSTRE_VERS will change the "Build
> Version:" string that you see on the console upon loading the lustre
> modules, and not much else.
Right.
> Mainly here at LLNL we just want to append our own local version number
> extension to Lustre's version number. If the upstream version is
> "1.8.1.50", we want our local build to have the version
> "1.8.1.50-3chaos". LUSTRE_VERS mostly covers this part.
For the version embedded in the lustre modules (only) yes?
> But we also want to prefix the rpm Release string with the same number.
>
> In other words, when we build rpms we get:
>
> $ rpm -qpi lustre-1.8.1.50-2.6.18_70chaos_200910011803.x86_64.rpm
> Name : lustre Relocations: (not relocatable)
> Version : 1.8.1.50 Vendor: (none)
> Release : 2.6.18_70chaos_200910011803 Build Date: Thu Oct 1
Then presumably the kernel you built against is 2.6.18_70chaos. Is that
correct?
> And instead we want this:
>
> $ rpm -qpi lustre-1.8.1.50-3chaos_2.6.18_70chaos_200910011803.x86_64.rpm
> Name : lustre Relocations: (not relocatable)
> Version : 1.8.1.50 Vendor: (none)
> Release : 3chaos_2.6.18_70chaos_200910011803 Build Date: Thu Oct
> 1 18:11:30 2009
>
> Is there current a method for doing that?
Well, backtracking to see how we get to the value for Release that's in
the lustre.spec, we start with lustre.spec.in:
%{!?release: %define release @RELEASE@}
...
Release: %{release}
and @RELEASE@ is a subst'd variable from configure which is generated
with:
RELEASE="`echo ${LINUXRELEASE} | tr '-' '_'`_`date +%Y%m%d%H%M`"
and $LINUXRELEASE is determined by grabbing the value of the UTS_RELEASE
macro from either of utsrelease.h or version.h in
$LINUX_TREE/include/linux/.
That's how the *default* value is determined. However! Notice that in
the lustre.spec, we use:
%{!?release: %define release @RELEASE@}
That means you can define Release for your rpm build on the command line
with:
$ rpmbuild --define 'release whatever_you_want' ... lustre.spec
I made this change a while ago as a first step toward getting rid of the
lustre.spec.in and passing all external values via rpmbuild macros to
facilitate just this sort of thing. I have not gotten back to getting
more of that task complete, unfortunately. But it's complete enough
currently for you to do what you want.
Cheers,
b.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20091002/52c3900e/attachment.pgp>
More information about the lustre-devel
mailing list