Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] RPM build errors when creating multiple rpms
From: Christopher Irving (cirving_at_[hidden])
Date: 2008-03-18 21:18:36

On Tue, 2008-03-18 at 12:28 -0700, Michael Jennings wrote:
> On Tuesday, 18 March 2008, at 12:15:34 (-0700),
> Christopher Irving wrote:
> > Now, if you removed line 651 and 653 from the new spec file it works
> > for both cases. You wont get the files listed twice error because
> > although you have the statement %dir %{_prefix} on line 649 you
> > never have a line with just %{_prefix}. So the _prefix directory
> > itself gets included but not all files underneath it. You've
> > handled that by explicitly including all files and sub directories
> > on lines 672-681 and in the runtime.file.
> The only package which should own %{_prefix} is something like setup
> or filesystem in the core OS package set. No openmpi RPM should ever
> own %{_prefix}, so it should never appear in %files, either by itself
> or with %dir.

Well you're half correct. You're thinking that _prefix is always
defined as /usr. But in the case were install_in_opt is defined they
have redefined _prefix to be
/opt/%{name}/%{version} in which case it is fine for one of the openmpi
rpms to claim that directory with a %dir directive. However I think you
missed the point. I'm not suggesting they need to a %{_prefix}
statement in the %files section, I'm just pointing out what's not the
source of the duplicated files. In other words %dir %{_prefix} is not
the same as %{_prefix} and wont cause all the files in _prefix to be

> > Going back to the original spec file, the one that came with the
> > source RPM, the problems where kind of reversed. Building with the
> > 'install_in_opt 1' option worked just fine but when it wasn't set
> > you got the files listed twice error as I described in my original
> > message.
> "files listed twice" messages are not errors, per se, and can usually
> be safely ignored. Those who are truly bothered by them can always
> add %exclude directives if they so choose.
> Michael

It can't be safely ignored when it causes rpm build to fail. Also you
don't want to use an %exclude because that would prevent the specified
files from ever getting included which is not the desired result. It's
much easier and makes a lot more sense to remove the source of the
duplicated inclusion. Which is exactly what they did and why that's no
longer the problem with the new spec file.