[LU-45] building e2fsprogs should not require lustre to be installed or a built source tree Created: 19/Jan/11 Updated: 24/Apr/14 Resolved: 24/Apr/14 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | Lustre 2.0.0 |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Brian Murrell (Inactive) | Assignee: | Bruce Cassidy (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Severity: | 3 |
| Rank (Obsolete): | 10386 |
| Description |
|
In order to complete the build of e2fsprogs, the liblustreapi library needs to be accessible. Currently this is only possible if a built lustre source tree is available on the system building e2fsprogs. It should be available via an installable lustre-devel package. It is also available in the rpm installed in /usr/lib[64] but I'm not convinced that e2fsprogs' configure will actually find that. |
| Comments |
| Comment by Andreas Dilger [ 20/Jan/11 ] |
|
The e2fsprogs build should be able to get liblustreapi.h and liblustreapi.a from the installed lustre RPM, but it has been a long time since I checked whether this worked. |
| Comment by Brian Murrell (Inactive) [ 20/Jan/11 ] |
|
I have not actually tried a build that way but I'm not convinced. Looking at the patch we can see the link command line is: $(LD) -pthread $(ALL_LDFLAGS) $(LUSTRE_INC) $(LFSCK_OBJS) -o lfsck $(LUSTRE_LIB) -llustreapi $(DEPLIBS) and $LUSTRE_INC and $LUSTRE_LIB are defined as: LUSTRE_INC=-I @LUSTRE@/lustre/include -Wall and LUSTRE is defined in configure as:
So it's possible that a --with-lustre=/usr/include might work where the liblustreapi.a library is just found in the regular search path. it's ugly at best though. That macro to find LUSTRE could certainly do some more exhaustive checking for an installed lustre rpm. But even still, a build machine should not need the lustre RPM installed but should be able to work with a lustre-devel RPM that has the includes and libraries in it. The macro above would still need to be made better, to search for the locations that the lustre-devel RPM will drop the includes and libraries. |
| Comment by Andreas Dilger [ 11/Mar/11 ] |
|
In change 315 in Gerrit, I've attached a patchset for e2fsprogs-1.42 which, among many other things, can build against the installed Lustre RPM files. In order to do this, run: configure --with-lustre=/usr and it will find the include files under @LUSTRE@/include, and the libraries under @LUSTRE@/lib {64}. It is a bit clunky because it adds both "-L @LUSTRE@/lib64 -L @LUSTRE/lib" to LDFLAGS, but ld should do the right thing. If there was an easier way to know in the configure.in file which one was correct it could be fixed. |
| Comment by Build Master (Inactive) [ 11/Mar/11 ] |
|
Integrated in Andreas Dilger :
|
| Comment by Build Master (Inactive) [ 11/Mar/11 ] |
|
Integrated in Andreas Dilger :
|
| Comment by Andreas Dilger [ 16/Mar/11 ] |
|
This is addressed by the e2fsprogs-1.42/master-lustre patchset that is in Gerrit right now. Bruce should close it when that is committed. |
| Comment by Bruce Cassidy (Inactive) [ 23/Mar/11 ] |
|
Test: Set up a cleanToro machine. yum install: Output: |
| Comment by Bruce Cassidy (Inactive) [ 23/Mar/11 ] |
|
Test: Set up a cleanToro machine. yum install: Output: |
| Comment by Bruce Cassidy (Inactive) [ 23/Mar/11 ] |
|
Test: Set up a cleanToro machine. yum install: Output: |
| Comment by Bruce Cassidy (Inactive) [ 23/Mar/11 ] |
|
Andreas checked in code to fix this issue. That code is included in e2fsprogs-1.41.90.wc1. I tested the code for building in a machine that just had lustre client code installed via rpm. The build succeeded. |