Re: buildreq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Gene Heskett wrote:
> Apparently not Rahul, according to its manpage its married to the
> requirement that the src package is also an rpm, which in the two
> cases at hand, don't exist, one of them as only an svn checkout I
> haven't even ./configured yet.  I'm trying to build a fully
> compatible rpm, using checkinstall, from the already built and
> installed tarball.  I've built it as an rpm and installed it, but
> the dependency list is pretty close to a null entry in the one I've
> built.

So if you do rpm -qp --requires "your_package.rpm" is the list empty?
Or is it just a lack of explicit Requires in the spec file?

> That doesn't matter here as the ./configure step took care of those
> as it built the Makefile and such, but it will matter greatly on
> someone elses machine that doesn't have all the deps installed
> already.

It should mostly only matter to someone trying to rebuild that SRPM.
rpm generally does a pretty decent job of finding Requires for binary
rpms.  It's the BuildRequires (stuff need just to build the package)
that usally needs some manual feeding.  Someone rebuilding the SRPM
would still be running configure and they could then find the missing
stuff and add it.  Putting it in the SRPM is simply a more helpful way
to prevent someone from chasing down deps.

> There has to be, someplace, a utility than can scan the files in a
> tarballs unpacked and configured tree, or in an svn checkout tree
> after its been ./configured, and build a list of the dependencies
> this package has.  If there is not, I can't believe its not on
> somebodies list of usefull tools.

There may well be such a tool and it would indeed be handy.  But it
would also be fairly difficult to do right.  Some dependencies are
optional and the package will work fine without them if it's built
without them.  For rpm packages though, it's important that someone
rebuilding the rpm gets the same capabilities in the rebuilt package,
so the BuildRequires are listed explicitly.

One way I find what should be required is to check out the
configure.ac (or configure.in).  This is the source file that
configure is generated from.  It isn't perfectly readable without some
practice, but it's infinitely more readable than configure is. :)

It's also quite helpful to run configure and then check the output and
the config.log and config.status.  It is mostly a manual task to
figure out what rpms provide certain capabilities.  For example, the
configure.ac file for libgpod use pkg-config to find the devel files
and settings needed to compile.  It has stuff like this:

PKG_CHECK_MODULES(LIBGPOD, glib-2.0>= 2.4.0 gobject-2.0)

This use the pkg-config program to find the headers and compile flags
for glib and gobject, ensuring that the version of glib found is
greater than 2.4.0.  It does this by reading the glib-2.0.pc in
/usr/lib/pkgconfig.  To find the rpm that provides this file I run
"rpm -qf /usr/lib/pkgconfig/glib-2.0.pc" (you could likely do this
with yum as well, but rpm is faster).

> build-dep from the rpm-utils package, has been suggested as one
> possibility, which is why I ask why this package isn't available in
> a fedora compatible rpm.

Do you have any references to the rpm-utils you're talking about?
There was an rpm-utils by Kirk Bauer (sp?) a long time ago, but it
doesn't contain any buildreq script.  There's also an ALTlinux package
named rpm-utils which does have a buildreq script.  I'm not sure if
this is something ALTlinux specific or not.  The specfile doesn't list
a URL for the upstream source.

-- 
Todd        OpenPGP -> KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
======================================================================
Damn you, broccoli!
    -- Stewie Griffin

Attachment: pgpazMZrDUlwk.pgp
Description: PGP signature


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux