Red Hat Bugzilla – Bug 111008
gnome-python2 needs spec cleanup
Last modified: 2007-11-30 17:10:34 EST
Description of problem:
libgnomeprint22 and libgnomeprintui headers and development libs
needed to build gnome-python2, thus it should BuildRequires:
libgnomeprintui-devel >= 2.2.0 (according to configure.in of
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1.rpm -e libgnomeprintui-devel
2.rpmbuild --rebuild gnome-python2-2.0.0-3.src.rpm
3.Wait for build errors
Missing BuildRequires are (some may be redundant):
libgnomeui-devel gnome-panel-devel gtkhtml2-devel libbonoboui-devel
nautilus libgnomeprint22-devel libgnomeprintui22-devel
This spec file needs to be largely redone because it depends on
existence of stuff in the buildroot in order to conditionally include
BuildRequires, which is wrong. This is because pkg-config and the .pc
files that it looks for are not present during parsing of the
specfile, which is then used to tell the build system which packages
to install within the buildroot. I suspect this kind of requirement
is missing from fedora.us documents. Perhaps it could be worded
"Do not use conditional BuildRequires unless they are only dependent
upon packages within the defined minimal buildroot. Also do not
depend on features or version of the running kernel."
Without a comment in the spec file, it doesn't become clear _why_ it
is done like that.
Even if pkgconfig were added as a buildrequires, it would not find any
of the .pc templates in a clean build environment and hence would not
enable any of the sub-packages. --with/--without switches would be
The notion of "conditional BuildRequires" may need a good definition
before it is discussed. There's a difference between "%define buildfoo
1" and "%define buildfoo $(do something to find out)".
At fedora.us, most auto-conditional buildrequires are used to adapt a
single spec file to the specific features of the different build
target platforms (e.g. different chain of -devel dependencies,
different vfolder structure of KDE 3.2, Python checks for versioned
[As a side-note, current "mach" is broken easily by anything in a spec
file which is executed to modify buildrequires:
Created attachment 103725 [details]
Fix installed file permissions, own more dirs
Here's one suggested patch, fixes the following: there are a lot of bad file
permissions in the current package, some unowned directories, and cosmetic
issues with the %doc's in all subpackages.
Created attachment 104539 [details]
Patch to make BuildRequires complete.
Looks like someone fixed the rawhide spec file to take care of the conditional
BuildRequires problem in comments #2 and #3. This patch should add the
necessary BuildRequires reported in the original report and Comment #2. It
also removes a great many BuildRequires dragged in via dependencies. Tested
with mach configured for FC2.
Created attachment 104541 [details]
Patch to complete BuildRequires.
Sorry, older version. This is the one that also removes BuildRequires dragged
in via dependencies.
Please note that the patch in attachment 104541 [details] is not cumulative, and
attachment 103725 [details] is still needed in addition to it.
I've tested attachment 103725 [details] and it is a definite improvement to the
%files section. The only thing I noticed is that it needs to include
the COPYING file, probably in the main package's %doc line.
Should be fixed in tomorrow's rawhide.