[oe] Problem with dependencies in packages

Andreas Oberritter obi at opendreambox.org
Mon Feb 14 10:35:24 UTC 2011


On 02/13/2011 11:50 PM, Filip Zyzniewski wrote:
> Hi,
> 
> I think I have found a problem with versioned dependencies (or I don't
> unserstand something).
> 
> I am trying to switch the jlime distribution from ipk to deb packages.
> When debugging do_rootfs problems I stumbled upon this:
> 
> The following packages have unmet dependencies:
>   libncursesw5: Depends: libtinfo5 (>= 5.7+20110115) but 5.7-r16 is to
> be installed
> E: Broken packages
> 
> The Depends line in deb package control file comes from
> classes/package_deb.bbclass:do_package_deb():
> 
> rdepends = explode_deps(unicode(bb.data.getVar("RDEPENDS", localdata, 1) or ""))
> [...]
> ctrlfile.write(u"Depends: %s\n" % ", ".join(rdepends))
> 
> 
> The dependency string comes from classes/package.bbclass:766:
> dep = "%s (>= %s)" % (dep_pkg, ver_needed)
> 
> ver_needed comes (in case of ncurses) from .ver files in the build
> tree, generated by the same function a bit earlier using pkgver
> variable set in lines 657-661:
> 
>                 pkgver = bb.data.getVar('PKGV_' + pkg, d, True)
>                 if not pkgver:
>                         pkgver = bb.data.getVar('PV_' + pkg, d, True)
>                 if not pkgver:
>                         pkgver = ver
> 
> and in ncurses_5.7.bb we have:
> 
> PATCHDATE = "20110115"
> PKGV = "${PV}+${PATCHDATE}"
> 
> 
> Isn't this an incosistency that ncurses_5.7-r16 depends on
> libtinfo5_5.7+20110115 ? Shouldn't it depend on libtinfo5_5.7-r16?
> 
> What's the reason for this situation? Does opkg somehow compare these
> versions in another way causing the problem to be invisible?

It looks like deb packages currently use PV where PKGV should be used
instead:

package_ipk.bbclass:
fields.append(["Version: %s:%s-%s\n", ['PE', 'PKGV', 'PKGR']])

package_deb.bbclass:
fields.append(["Version: %s:%s-%s%s\n", ['PE', 'PV', 'PR',  'DISTRO_PR']])

Maybe it's worth factoring out common code for deb and ipk into a new
file to avoid future bit rot.

Regards,
Andreas




More information about the Openembedded-devel mailing list