[LU-3957] Create separate server and client binary rpms from one build Created: 16/Sep/13  Updated: 24/Feb/17

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.5.0
Fix Version/s: None

Type: Task Priority: Minor
Reporter: Christopher Morrone Assignee: Minh Diep
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Related
is related to LU-7228 lustre rpm should provide lustre-client Resolved
is related to LU-3464 Create lustre-client and lustre-serve... Closed
is related to LU-5104 Split binaries across packages more s... Closed
is related to LU-6677 Package lustre correctly for Fedora/RHEL Closed
Rank (Obsolete): 10527

 Description   

I think it would be advantageous to start building separate lustre-client and lustre-server binary rpms as part of our normal build process. There are a couple of reasons why I think this is the way to go, despite the fact that the rpm count is certainly growing large.

  1. Current lustre-client-* vs lustre-* package names are confusing. lustre-* actually contains client code as well. lustre-client-* binary rpms are just lacking the server code. And the lustre-client-<version>.src.rpm is not lacking the server code, which is more confusing still!
  2. A Linux distro can contain one version of lustre, and allow admins to select client and/or server components at install time. Our current build does not allow that. This means that places like LLNL wind up with server init scripts installed on client nodes. Less than optimal.

This would also be a great opportunity to fix the terribly bad "is_client" macro in the lustre spec file. "is_client" does not really control whether client code is built, instead it controls whether server code is build. And even more confusingly, it shouldn't really be set directly; the proscribed method of selecting a client-only build of lustre is to change the package name to a special string. Not a good design.

That should be cleaned up as part of the modifications to create the lustre-client- and lustre-server- rpms.



 Comments   
Comment by Frank Zago (Inactive) [ 29/Sep/15 ]

Some source files are compiled differently whether they are for the server or a client. Look at least for "#ifdef HAVE_SERVER_SUPPORT".

Comment by Christopher Morrone [ 05/Dec/15 ]

I am aware of that, but that is not necessarily relevant to this packaging discussion.

Generated at Sat Feb 10 01:38:23 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.