[LU-3197] lustre client 2.3 asking for lustre-backend-fs Created: 20/Apr/13  Updated: 09/Oct/21  Resolved: 09/Oct/21

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.3.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: amit bajaj Assignee: WC Triage
Resolution: Won't Fix Votes: 0
Labels: llnl
Environment:

centos 6.3 with kernel 2.6-32-279.5.1.el6


Severity: 3
Rank (Obsolete): 7808

 Description   

when rebuilding using rpmbuild lustre-client, it is asking for lustre-backend-fs,

if we install prebuilt rpm, modprobe lustre fails with error.



 Comments   
Comment by Andreas Dilger [ 21/Apr/13 ]

The lustre-backend-fs RPM is lustre-ldiskfs.

Comment by amit bajaj [ 21/Apr/13 ]

yes but do we really need to install on client?
second when installing lustre-ldiskfs , it is asking for ldisksfsprogs*.oral, e2fsprogs is already installed,

Comment by Christopher Morrone [ 22/Apr/13 ]

Yes, lustre's build system is broken in a number of ways that I've long been trying to fix over in LU-1199. Bringing sanity to the src rpm is my primary goal. Unfortunately, that work didn't make it into 2.4. Maybe by 2.5 things will be better.

In the mean time, you need to know a couple of things:

1) The lustre-client-*.src.rpm is not really just the lustre client. It really contains the full source of lustre.
2) Conversely, lustre-*.src.rpm is not lacking the client code, it also contains the full sources.

If our build system was sane, we would have only a single source rpm (more or less) and then just have good options that could be passed in on the rpmbuild command line to enable or disable the various options.

To enable the client-only build of lustre, you need to enable the "is_client" macro in the spec file. Granted, "is_client" is really misnamed. You are always building the lustre client code. Really "is_client" disables the build of the server code. And that is the root of your issue. You need to disable the build of the server code to eliminate the rpm "Requires: lustre-backend-fs".

But wait! Don't set is_client directly. That would be too sane. Instead, you need to change the package name.

So try this:

rpmbuild --define "lustre_name lustre-client" <source rpm>

I can't claim that it will be sufficient, but it is at least the starting point you'll need to build client-only rpms from the source rpm.

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