[LU-6987] python-docutils required despite --disable-manpages Created: 12/Aug/15 Updated: 27/Feb/16 Resolved: 27/Feb/16 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.8.0 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Stephen Champion | Assignee: | Dmitry Eremin (Inactive) |
| Resolution: | Incomplete | Votes: | 0 |
| Labels: | None | ||
| Environment: |
lustre-master |
||
| Severity: | 3 |
| Rank (Obsolete): | 9223372036854775807 |
| Description |
rpmbuilddir=`mktemp -t -d rpmbuild-lustre-$USER-XXXXXXXX`; \
make \
rpmbuilddir="$rpmbuilddir" rpm-local || exit 1; \
/usr/bin/rpmbuild \
--define "_tmppath $rpmbuilddir/TMP" \
--define "_topdir $rpmbuilddir" \
--define "build_src_rpm 1" \
--define "dist %{nil}" \
-ts lustre-2.7.57.tar.gz || exit 1; \
cp $rpmbuilddir/SRPMS/lustre-2.7.57-*.src.rpm . || exit 1; \
rm -rf $rpmbuilddir
make[1]: Entering directory `/root/schamp/build/sles11sp3-client-build'
make[1]: Leaving directory `/root/schamp/build/sles11sp3-client-build'
error: Failed build dependencies:
python-docutils is needed by lustre-2.7.57-1_gc45c8ad.x86_64
make: *** [srpm] Error 1
My configure line is : ./configure --with-o2ib --disable-server --without-ldiskfs \
--disable-doc --disable-manpages \
--enable-tests \
--enable-mpitests=yes --enable-liblustre-tests \
--with-linux=${BOBJ}/linux-${KVER} \
--with-linux-obj=${BOBJ}/linux-${KVER}-obj/x86_64/default \
--with-linux-config=${BOBJ}/linux-${KVER}-obj/x86_64/default/.config || exit 1
Which makes this surprising given that lustre.spec says: %if %\{with manpages\}
BuildRequires: python-docutils
%endif
|
| Comments |
| Comment by Stephen Champion [ 12/Aug/15 ] |
|
Fixing this exposes another bug: make[1]: Entering directory `/root/schamp/build/sles11sp3-client-build' make[1]: Leaving directory `/root/schamp/build/sles11sp3-client-build' Wrote: /tmp/rpmbuild-lustre-schamp-T8yyLDoh/SRPMS/lustre-client-2.7.57-1_gc45c8ad.src.rpm cp: cannot stat `/tmp/rpmbuild-lustre-schamp-T8yyLDoh/SRPMS/lustre-2.7.57-*.src.rpm': No such file or directory make: *** [srpm] Error 1 Once configure flags are passed to the srpm build to fix the dependency problem, the srpm name is subject to be changed to lustre-client. This is also easy to fix, leading to: diff --git a/autoMakefile.am b/autoMakefile.am
index 3bad8c2..c38774d 100644
--- a/autoMakefile.am
+++ b/autoMakefile.am
@@ -133,7 +133,9 @@ srpm: @PACKAGE_TARNAME@.spec dist Makefile
$(RPMBUILD) \
--define "_tmppath $$rpmbuilddir/TMP" \
--define "_topdir $$rpmbuilddir" \
+ @RPMBUILD_BINARY_ARGS@ \
--define "build_src_rpm 1" \
+ --define "lustre_name lustre" \
--define "dist %{nil}" \
-ts $(distdir).tar.gz || exit 1; \
cp $$rpmbuilddir/SRPMS/$(distdir)-*.src.rpm $(top_srcdir) || exit 1; \
Which I stashed in a branch and would be happy to submit as a single or series of patches. But I'm curious why there is a separate srpm build stage, and if I just nuke that instead. |
| Comment by Peter Jones [ 12/Aug/15 ] |
|
Dmitry Could you please advise? Thanks Peter |
| Comment by Dmitry Eremin (Inactive) [ 17/Aug/15 ] |
|
Could you provide the complete commands sequence to reproduce this issue? I cannot reproduce this on my machine but this is RHEL 6.7. Probably this is an issue with RPM on SuSe. I need more details to understand. When RPM produce .srpm package the "BuildRequires" from .spec file are not used. So, this line should not be an issue during srpm make target. |
| Comment by Stephen Champion [ 17/Aug/15 ] |
|
My configure line is in the description. $BOBJ is just a directory with a copy of the directories the kernel packages install in /usr/src/. After configure is 'make', which leads to this error. There is clearly a difference in behavior between the sles11 and rhel6 rpm commands: I made a simple spec: Name: foo
Version: 0.1
Release: 1
License: GPLv2
Group: Development/Tools/Other
Source: http://oss.sgi.com/projects/foo/foo-0.1.tar.gz
URL: http://oss.sgi.com/projects/foo
Summary: Universal foo machine
BuildRequires: bar-devel >= 9000
%description
None of this foo ever works like it's suppose do.
%prep
%setup
%build
touch foo
%install
mkdir -p $RPM_BUILD_ROOT/usr/lib/%{NAME}-%{VERSION}
cp foo $RPM_BUILD_ROOT/usr/lib/%{NAME}-%{VERSION}/foo
%files
%defattr(-,root,root)
/usr/lib/%{NAME}-%{VERSION}
RHEL6.6: $ rpmbuild -ts foo-0.1.tar.gz Wrote: /home/schamp/rpmbuild/SRPMS/foo-0.1-1.src.rpm SLES11SP3: $ rpmbuild -ts foo-0.1.tar.gz
error: Failed build dependencies:
bar-devel >= 9000 is needed by foo-0.1-1.x86_64
SLES11 : rpm-4.4.2.3-37.63.64.1 Fedora, with rpm-4.12.0.1-12.fc22.x86_64 has the same behavior as RHEL. I don't have an OpenSuSE or SLES 12 box handy to test - but I suspect that this is a bug fixed between 4.4 and 4.8 Do we want to work around this behavior? SLES 11 will be around for another year or two, and 11SP4 still has rpm-4.4. |
| Comment by John Fuchs-Chesney (Inactive) [ 19/Feb/16 ] |
|
Can I just check with Dmitry and Stephen if this ticket is still being worked on? If not, I'd like to mark it as resolved. Thanks, |
| Comment by John Fuchs-Chesney (Inactive) [ 27/Feb/16 ] |
|
Marking this as resolved incomplete. Thanks, |