Am Donnerstag, den 13.06.2013, 22:44 +0200 schrieb Mattias Ellert:
tor 2013-06-13 klockan 19:20 +0200 skrev Björn Esser:
What will break the spec by removing _isa-macro from BRs? Is there any PROVEN reason for this? I'm NOT talking about the final-Requires in spec.
It is VERY EASY to construct such an example.
Consider a package containing the following BRs:
BuildRequires: nss-devel >= 3.10 BuildRequires: openssl-devel BuildRequires: cppunit-devel BuildRequires: glibmm24-devel BuildRequires: libdb-cxx-devel
All the BRs are satisfied:
$ rpm -q --whatprovides nss-devel openssl-devel cppunit-devel glibmm24-devel libdb-cxx-devel nss-devel-3.14.3-2.fc18.i686 openssl-devel-1.0.1e-4.fc18.x86_64 cppunit-devel-1.12.1-8.fc18.x86_64 glibmm24-devel-2.34.1-1.fc18.x86_64 libdb-cxx-devel-5.3.21-3.fc18.i686
rpmbuild does not complain about missing BRs, but starts the build:
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.5K5NNA
- umask 022
. . . checking for NSS... no configure: WARNING: Cannot locate nss lib configure: Looking for db_cxx.h in standard locations checking db_cxx.h usability... yes checking db_cxx.h presence... yes checking for db_cxx.h... yes configure: Looking for libdb_cxx.so or libdb_cxx.dylib in standard locations checking for main in -ldb_cxx... no . . . /usr/bin/ld: skipping incompatible /lib/libdb_cxx.so when searching for -ldb_cxx /usr/bin/ld: skipping incompatible /usr/lib/libdb_cxx.so when searching for -ldb_cxx /usr/bin/ld: cannot find -ldb_cxx collect2: error: ld returned 1 exit status
So not the spec file is broken, but you actually do not have the libs needed for linking installed on your local machine... That's all. Just an improper build-environment.
No more to say about this here... Look at the guidelines:
https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRequires_and_.25.7B...
Cheers, Björn