| Submitter | Mark Hatle |
|---|---|
| Date | Dec. 5, 2012, 2:33 a.m. |
| Message ID | <1354674831-24287-1-git-send-email-mark.hatle@windriver.com> |
| Download | mbox | patch |
| Permalink | /patch/40395/ |
| State | New |
| Headers | show |
Comments
On Tue, 2012-12-04 at 20:33 -0600, Mark Hatle wrote: > When using update-alternatives, there should be a runtime dependency on > ${VIRTUAL-RUNTIME_update-alternatives}. Without this, it's possible to > get into a situation where the package is not installable. > > (If VIRTUAL-RUNTIME_update-alternatives is not defined, no requirement > is added.) > > Signed-off-by: Mark Hatle <mark.hatle@windriver.com> > --- > meta/classes/update-alternatives.bbclass | 8 ++++++++ > 1 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass > index 4e1ff27..96fd1e8 100644 > --- a/meta/classes/update-alternatives.bbclass > +++ b/meta/classes/update-alternatives.bbclass > @@ -304,6 +304,14 @@ python populate_packages_prepend () { > alt_remove_links += '\tupdate-alternatives --remove %s %s\n' % (alt_name, alt_target) > > if alt_setup_links: > + # RDEPENDS setup > + provider = d.getVar('VIRTUAL-RUNTIME_update-alternatives', True) > + if provider: > + bb.note('adding runtime requirement for update-alternatives for %s' % pkg) > + rdepends = d.getVar('RDEPENDS_%s' % pkg, True) or "" > + rdepends += ' ' + d.getVar('MLPREFIX') + provider > + d.setVar("RDEPENDS_%s" % pkg, rdepends) > + > bb.note('adding update-alternatives calls to postinst/postrm for %s' % pkg) > bb.note('%s' % alt_setup_links) > postinst = (d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True)) or '#!/bin/sh\n' I'm afraid I don't like this patch. Firstly, do we really need a bb.note in there? We don't note every little thing we do, not least as it would kill performance. Secondly, why not simply do: d.appendVar('RDEPENDS_%s' % pkg, ' ' + d.getVar('MLPREFIX') + provider) ? Cheers, Richard
On 12/6/12 6:12 AM, Richard Purdie wrote: > On Tue, 2012-12-04 at 20:33 -0600, Mark Hatle wrote: >> When using update-alternatives, there should be a runtime dependency on >> ${VIRTUAL-RUNTIME_update-alternatives}. Without this, it's possible to >> get into a situation where the package is not installable. >> >> (If VIRTUAL-RUNTIME_update-alternatives is not defined, no requirement >> is added.) >> >> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> >> --- >> meta/classes/update-alternatives.bbclass | 8 ++++++++ >> 1 files changed, 8 insertions(+), 0 deletions(-) >> >> diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass >> index 4e1ff27..96fd1e8 100644 >> --- a/meta/classes/update-alternatives.bbclass >> +++ b/meta/classes/update-alternatives.bbclass >> @@ -304,6 +304,14 @@ python populate_packages_prepend () { >> alt_remove_links += '\tupdate-alternatives --remove %s %s\n' % (alt_name, alt_target) >> >> if alt_setup_links: >> + # RDEPENDS setup >> + provider = d.getVar('VIRTUAL-RUNTIME_update-alternatives', True) >> + if provider: >> + bb.note('adding runtime requirement for update-alternatives for %s' % pkg) >> + rdepends = d.getVar('RDEPENDS_%s' % pkg, True) or "" >> + rdepends += ' ' + d.getVar('MLPREFIX') + provider >> + d.setVar("RDEPENDS_%s" % pkg, rdepends) >> + >> bb.note('adding update-alternatives calls to postinst/postrm for %s' % pkg) >> bb.note('%s' % alt_setup_links) >> postinst = (d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True)) or '#!/bin/sh\n' > > I'm afraid I don't like this patch. Firstly, do we really need a bb.note > in there? We don't note every little thing we do, not least as it would > kill performance. There are very few instances of this, I'm surprised if performance would be impacted beyond the noise. The next item has a similar bb.note as well. > Secondly, why not simply do: > > d.appendVar('RDEPENDS_%s' % pkg, ' ' + d.getVar('MLPREFIX') + provider) There was originally code in there to remove duplicates, when it got refactored out the rest was never changed. I'll fix that up. --Mark > ? > > Cheers, > > Richard >
Patch
diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass index 4e1ff27..96fd1e8 100644 --- a/meta/classes/update-alternatives.bbclass +++ b/meta/classes/update-alternatives.bbclass @@ -304,6 +304,14 @@ python populate_packages_prepend () { alt_remove_links += '\tupdate-alternatives --remove %s %s\n' % (alt_name, alt_target) if alt_setup_links: + # RDEPENDS setup + provider = d.getVar('VIRTUAL-RUNTIME_update-alternatives', True) + if provider: + bb.note('adding runtime requirement for update-alternatives for %s' % pkg) + rdepends = d.getVar('RDEPENDS_%s' % pkg, True) or "" + rdepends += ' ' + d.getVar('MLPREFIX') + provider + d.setVar("RDEPENDS_%s" % pkg, rdepends) + bb.note('adding update-alternatives calls to postinst/postrm for %s' % pkg) bb.note('%s' % alt_setup_links) postinst = (d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True)) or '#!/bin/sh\n'
When using update-alternatives, there should be a runtime dependency on ${VIRTUAL-RUNTIME_update-alternatives}. Without this, it's possible to get into a situation where the package is not installable. (If VIRTUAL-RUNTIME_update-alternatives is not defined, no requirement is added.) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> --- meta/classes/update-alternatives.bbclass | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)