[OE-core] eudev: opkg not automatically upgrading from udev to eudev

Bryan Evenson bevenson at melinkcorp.com
Wed May 17 16:14:42 UTC 2017


All,

> -----Original Message-----
> From: Bryan Evenson
> Sent: Wednesday, May 17, 2017 11:27 AM
> To: Bryan Evenson <bevenson at melinkcorp.com>; Openembedded-
> core at lists.openembedded.org
> Subject: RE: eudev: opkg not automatically upgrading from udev to eudev
> 
> All,
> 
> > -----Original Message-----
> > From: openembedded-core-bounces at lists.openembedded.org
> > [mailto:openembedded-core-bounces at lists.openembedded.org] On
> Behalf Of
> > Bryan Evenson
> > Sent: Tuesday, May 16, 2017 2:01 PM
> > To: Openembedded-core at lists.openembedded.org
> > Subject: [OE-core] eudev: opkg not automatically upgrading from udev
> > to eudev
> >
> >
> > I have an image based on core-image-minimal that uses sysvinit for
> > init and opkg for package management.  I am doing some upgrade testing
> > and I see an issue with eudev.  I am testing upgrading an image that
> > was built under dizzy to my latest image built under morty.  I'm first
> > testing that all the correct packages and new dependencies are
> > correctly being identified for upgrade by running "opkg update; opkg
> > upgrade --download-only" from the command line and comparing what is
> > in the opkg cache directory with what was available.  All packages
> > except eudev and udev-cache are being downloaded for upgrade.
> >
> > I ran the opkg upgrade again with the -V4 option for additional debug
> > output Here's what I saw in one section regarding udev:
> >
> > pkg_hash_fetch_best_installation_candidate: Best installation
> > candidate for
> > udev:
> > pkg_hash_fetch_best_installation_candidate: apkg=udev nprovides=2.
> > pkg_hash_fetch_best_installation_candidate: Adding eudev to providers.
> > pkg_hash_fetch_best_installation_candidate: Adding udev to providers.
> > pkg_hash_fetch_best_installation_candidate: eudev arch=armv5e
> > arch_priority=41 version=3.2.
> > pkg_hash_fetch_best_installation_candidate: udev arch=arm926ejste
> > arch_priority=51 version=182.
> > pkg_hash_fetch_best_installation_candidate: Candidate: udev 182.
> > pkg_hash_fetch_best_installation_candidate: 2 matching pkgs for
> > apkg=udev:
> > pkg_hash_fetch_best_installation_candidate: eudev 3.2 armv5e
> > pkg_hash_fetch_best_installation_candidate: udev 182 arm926ejste
> > opkg_upgrade_pkg: Comparing visible versions of pkg udev:
> >         182-r9.9 is installed
> >         182-r9.9 is available
> >         0 was comparison result
> > opkg_upgrade_pkg: Package udev (182-r9.9) installed in root is up to date.
> >
> > I'm assuming the problem is that udev is version 182 and eudev is
> > version 3.2 and that opkg doesn't think udev needs to be upgraded.  Is
> > there an RDEPENDS that needs to be added somewhere so opkg sees that
> > it needs to upgrade udev to eudev?
> 
> I made some changes and now both eudev and udev-cache are being pulled
> in on upgrade.  However, I'd like a second opinion that what I did was
> reasonable.
> 
> First, I created eudev_%.bbappend in my private layer and added "PE = "1""
> to the bbappend.  Since the numbering scheme changed between udev and
> eudev, I figured this was a reasonable move.  This brought the update udev-
> cache in for upgrade, but not eudev.  In my private layer, I also have an image
> version number package.  I added eudev to the RDEPENDS list for this
> package since my image, which now has linux version 4.4, does depend on
> eudev.
> 
> Does this sound reasonable?  Is there a better way to do the same thing?

Things didn't go as well when I did the upgrade.  I attempted the upgrade with "opkg upgrade" (no options) and everything worked until then end.  Then I got a bunch of error messages like the following:

* check_data_file_clashes: Package eudev wants to install file /lib/udev/scsi_id
        But that file is already provided by package  * udev

After the upgrade neither udev nor eudev were installed on my system.  I've solved similar problems in the past by adding RCONFLICTS/RREPLACES listings in the new packages recipe, but since eudev is listed as providing udev I'm not sure what is appropriate here.  Should there be RCONFLICTS/RREPLACES in the eudev recipe, or is there another solution to this problem?

Thanks,
Bryan

> 
> Thanks,
> Bryan
> 
> >
> > Thanks,
> > Bryan
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list