| Submitter | Richard Purdie |
|---|---|
| Date | Nov. 12, 2011, 8:36 a.m. |
| Message ID | <1321087015.26881.15.camel@ted> |
| Download | mbox | patch |
| Permalink | /patch/14867/ |
| State | Accepted |
| Commit | 215ff6b2e9676c8c7dd8acfd696151bcd0f1490f |
| Headers | show |
Comments
On Sat, Nov 12, 2011 at 06:36, Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > Currently bad recommendations are added to the status file with status > "ok". After a single opkg command, whilst it will ignore the recommendation, > the status changes to "installed" even if the recommended package was not > installed. Whilst this is likely a glitch in opkg's logic, the correct > way to persist the information in the status file is to set the status > to "hold" as deinstall packages with that status remain. With this change > the bad recommendations persist accross multiple opkg runs and the system > behaves as expected. I personally dislike fixing it in rootfs_ipk instead of opkg ... opkg has change its behaviour behind the scenes and this needs to be fixed IMO.
On Sat, 2011-11-12 at 13:57 -0200, Otavio Salvador wrote: > On Sat, Nov 12, 2011 at 06:36, Richard Purdie > <richard.purdie@linuxfoundation.org> wrote: > > Currently bad recommendations are added to the status file with status > > "ok". After a single opkg command, whilst it will ignore the recommendation, > > the status changes to "installed" even if the recommended package was not > > installed. Whilst this is likely a glitch in opkg's logic, the correct > > way to persist the information in the status file is to set the status > > to "hold" as deinstall packages with that status remain. With this change > > the bad recommendations persist accross multiple opkg runs and the system > > behaves as expected. > > I personally dislike fixing it in rootfs_ipk instead of opkg ... opkg > has change its behaviour behind the scenes and this needs to be fixed > IMO. I'm not sure opkg has changed behaviour. We used to just do one single "opkg install" after which the status file was incorrect but the bad recommends was not installed. We started doing more than one "opkg install" and this has muddied the waters so to speak. I'm still unclear if the bad recommends actually make it onto the target system but certainly the status file was incorrect. The summary is we were not using opkg correctly in the first place. This patch corrects that problem so we do what we what that code intended to do and persists the bad recommend into the status file. This fixes the bug that was reported too. There look to be remaining issues in opkg but not ones that directly affect the build system. Please do take this up with the opkg people but I'm afraid I personally don't have time to start debugging opkg and I think there are other more urgent priorities at the moment now this is a non-issue for the builds. Cheers, Richard
On Sat, Nov 12, 2011 at 16:17, Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > On Sat, 2011-11-12 at 13:57 -0200, Otavio Salvador wrote: >> On Sat, Nov 12, 2011 at 06:36, Richard Purdie >> <richard.purdie@linuxfoundation.org> wrote: >> > Currently bad recommendations are added to the status file with status >> > "ok". After a single opkg command, whilst it will ignore the recommendation, >> > the status changes to "installed" even if the recommended package was not >> > installed. Whilst this is likely a glitch in opkg's logic, the correct >> > way to persist the information in the status file is to set the status >> > to "hold" as deinstall packages with that status remain. With this change >> > the bad recommendations persist accross multiple opkg runs and the system >> > behaves as expected. >> >> I personally dislike fixing it in rootfs_ipk instead of opkg ... opkg >> has change its behaviour behind the scenes and this needs to be fixed >> IMO. > > I'm not sure opkg has changed behaviour. We used to just do one single > "opkg install" after which the status file was incorrect but the bad > recommends was not installed. We started doing more than one "opkg > install" and this has muddied the waters so to speak. I'm still unclear > if the bad recommends actually make it onto the target system but > certainly the status file was incorrect. It does end onto the target. > The summary is we were not using opkg correctly in the first place. This > patch corrects that problem so we do what we what that code intended to > do and persists the bad recommend into the status file. This fixes the > bug that was reported too. > > There look to be remaining issues in opkg but not ones that directly > affect the build system. Please do take this up with the opkg people but > I'm afraid I personally don't have time to start debugging opkg and I > think there are other more urgent priorities at the moment now this is a > non-issue for the builds. This does fix the problem we were having but I am concerned about other possible behaviour changes it might happen. I think this patch ought to go but someone skilled on opkg might take a look at opkg code to see if this isn't a regression of lately changes.
Patch
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass index 3b4c392..4a5a2dd 100644 --- a/meta/classes/rootfs_ipk.bbclass +++ b/meta/classes/rootfs_ipk.bbclass @@ -44,7 +44,7 @@ fakeroot rootfs_ipk_do_rootfs () { pkginfo="`opkg-cl ${IPKG_ARGS} info $i`" if [ ! -z "$pkginfo" ]; then echo "$pkginfo" | grep -e '^Package:' -e '^Architecture:' -e '^Version:' >> $STATUS - echo "Status: deinstall ok not-installed" >> $STATUS + echo "Status: deinstall hold not-installed" >> $STATUS echo >> $STATUS else echo "Requested ignored recommendation $i is not a package"
Currently bad recommendations are added to the status file with status "ok". After a single opkg command, whilst it will ignore the recommendation, the status changes to "installed" even if the recommended package was not installed. Whilst this is likely a glitch in opkg's logic, the correct way to persist the information in the status file is to set the status to "hold" as deinstall packages with that status remain. With this change the bad recommendations persist accross multiple opkg runs and the system behaves as expected. [YOCTO #1758] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> ---