[yocto] Cleanly moving files from one package to another

Bryan Evenson bevenson at melinkcorp.com
Thu Dec 10 06:15:05 PST 2015


Martin,

> -----Original Message-----
> From: Martin Jansa [mailto:martin.jansa at gmail.com]
> Sent: Thursday, December 10, 2015 4:20 AM
> To: Bryan Evenson <bevenson at melinkcorp.com>
> Cc: yocto at yoctoproject.org
> Subject: Re: [yocto] Cleanly moving files from one package to another
> 
> On Wed, Dec 09, 2015 at 08:19:40PM +0000, Bryan Evenson wrote:
> > All,
> >
> > I'm on poky/dizzy-1.7.3 and I'm using opkg for a package manager.  I have a
> few script files that are part of one package that really belong with another.
> So I updated both recipes, removed the file from one recipe and added it to
> the other recipe.  I built everything, made the opkg feed repo and tried to
> upgrade with "opkg update; opkg upgrade" to see how clean the upgrade
> was.  For each script file I moved from one package to the other I get an error
> message of the form:
> >
> > * check_data_file_clashes: Package A wants to install file
> /path/to/script/file
> >         But that file is already provided by package  * B
> >
> > I know I can do "opkg upgrade --force-overwrite", but I'd like to make
> recipe changes so that it upgrades cleanly.  All I've done in the recipes is
> remove the script files from the FILES variable and the do_install step of one
> recipe and added the script to the FILES variable and do_install step of the
> other recipe.  I know update-alternatives can be used if more than one
> package provides the same binary, but is that necessary in this case when
> transferring ownership to another package?  Is there anything else I can do in
> the recipes to prevent the opkg install errors?
> 
> Have you tried to set
> RREPLACES_<pkg-new> = "<pkg-old>"
> ?

I haven't tried that because I'm not replacing a package.  Both packages still exist on the system and are both needed, it's just that ownership of one of the files is being transferred from one package to another.  Would I still use RREPLACES even if I want to keep both packages on the system?

Specifically in this case, I have some script files for scheduled tasks that were part of one of my self-made packages.  However, they really belong with cronie since this is what is calling the scripts.  So I removed the script files from my self-made package and added them to cronie.  My package has other files still associated with it (that do belong with it) installed on my system.  So I want to keep both packages on my system, but I just want to change ownership of these script files from my package to cronie.  Is RREPLACES the tool for this job?

Thanks,
Bryan

> 
> If the old package should be removed completely during opkg upgrade, then
> you'll need to set whole combo, that is RREPLACES,RCONFLICTS,RPROVIDES.
> 
> --
> Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com



More information about the yocto mailing list