pkgsrc-Bugs archive

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

pkg/42907: REQUIRES/PROVIDES variable in pkg_summary(5) is sometimes set incorrectly



>Number:         42907
>Category:       pkg
>Synopsis:       Errors in REQUIRES/PROVIDES variables in pkg_summary(5)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 01 19:35:00 +0000 2010
>Originator:     Aleksey Cheusov
>Release:        NetBSD 5.0_STABLE
>Organization:
>Environment:
System: NetBSD asrock.chizhovka.net 5.0_STABLE NetBSD 5.0_STABLE (GENERIC) #0: 
Sat Feb 20 12:33:43 EET 2010 
cheusov%asrock.chizhovka.net@localhost:/srv/obj/sys/arch/amd64/compile/GENERIC 
amd64
Architecture: x86_64
Machine: amd64
>Description:
pkg_summary(5) describes PROVIDES and REQUIRES variables in the
following way.

     PROVIDES
             (optional) A list of shared libraries provided by the package,
             including major version number, one per line.  If missing, this
             package does not provide shared libraries.

     REQUIRES
             (optional) A list of shared libraries needed by the package,
             including major version number, one per line.  If missing, this
             package does not require shared libraries.

If present REQUIRES variable *usually* means that the package requires
the specified library which is provided (listed in PROVIDES) by some
other package or by the base system (e.g. in /lib or /usr/lib).

But there are packages that list a library in REQUIRES not provided by
any other package. Actually the package itself provides it but it is
not listed in PROVIDES.

For example, 'pkg_info -X perl' shows the following

   ...
   REQUIRES=/usr/pkg/lib/perl5/5.10.0/x86_64-netbsd-thread-multi/CORE/libperl.so

This file is provided by perl package itself but it is not listed in
PROVIDES.

Some package management tools may check PROVIDES/REQUIRES consistency
just before installing the package. Therefore the problem described
above may make some packages uninstallable with such tools.

This problem was shortly discussed here
http://mail-index.netbsd.org/tech-pkg/2010/03/01/msg005067.html

>How-To-Repeat:
There are more affected packages than just perl.
Have a look at wip/pkg_summary-utils. There you'll find
pkg_lint_summary utility. With a help of it you can find other examples of
PROVIDES/REQUIRES inconsistencies. Typescript is below

$ ftp 
ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/5.0.1_2009Q4/All/pkg_summary.bz2
$ bzcat pkg_summary.bz2 | pkg_lint_summary -l

>Fix:



Home | Main Index | Thread Index | Old Index