Patchwork [00/30] Refactor update-alternatives

login
register
mail settings
Submitter Mark Hatle
Date May 22, 2012, 7:30 p.m.
Message ID <cover.1337714416.git.mark.hatle@windriver.com>
Download mbox
Permalink /patch/28277/
State New
Headers show

Pull-request

git://git.pokylinux.org/poky-contrib mhatle/upd-alt-2

Comments

Mark Hatle - May 22, 2012, 7:30 p.m.
This set of commits refactors update-alternatives.  The primary purpose 
is to cover all of the corner cases currently in oe-core (and hopefully 
other layers) so that recipes can all use the update-alternatives class, 
instead of manual update-alternatives calls in man post install/remove 
scripts.

The refactored update-alternatives is compatible with the older methods, 
but does indicate they are deprecated via a warning message.  One of the 
key changes is that all referenced alternatives are not added to the 
per-file dependency information.  For example, gawk sets up an 
alternative for 'awk'.  The /bin/gawk binary now says it provides 
/bin/awk, so that the package management systems that use per file 
dependencies (i.e. RPM), will be able to find the minimum set of 
packages to resolve the image.

In addition, to all of that, the references have been changed from 
".${PN}" to ".${BPN}" for alternatives.  This will allow the multilib
system to work as intended by resolving multilib binaries.

All of the work has been tested using buildhistory and building various 
images.  Buildhistory indicated only expected changes were performed.

(To avoid spamming the list, I have decided to only send the first 3 
patches, lrzsz, busybox, util-linux and shadow-native as this is a 
reasonable representation of the changes.  Please see the referenced 
repository and branch below for full details on the series.)

*** BLURB HERE ***
The following changes since commit e6333825c3482a559a0c0499e17f8f48d3042ddf:

  tune-mips64.inc: Add new tune file for mips64 big-endian (2012-05-20 20:24:37 -0700)

are available in the git repository at:
  git://git.pokylinux.org/poky-contrib mhatle/upd-alt-2
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/upd-alt-2

Mark Hatle (30):
  update-alternatives.bbclass: Refactor the implementation
  update-alternatives.bbclass: Change from using PN to BPN
  which: use BPN for alternatives
  wget: use BPN for alternatives
  time: use BPN for alternatives
  shadow: use BPN for alternatives
  sed: use BPN for alternatives
  mktemp: use BPN for alternatives
  less: use BPN for alternatives
  patch: use BPN for alternatives
  tinylogin: use BPN for alternatives
  sysvinit: use new update-alternatives
  lrzsz: use new update-alternatives
  openssh: use new update-alternatives
  busybox: use new update-alternatives
  coreutils: use new update-alternatives
  dropbear: use new update-alternatives
  ncurses: use new update-alternatives
  psplash: use new update-alternatives
  util-linux: use new update-alternatives
  binutils: use new update-alternatives
  tar: use new update-alternatives
  opkg: use new update-alternatives
  cpio: use new update-alternatives
  grep: use new update-alternatives
  iputils: use new update-alternatives
  psmisc: use new update-alternatives
  sysklogd: use new update-alternatives
  kmod: use new update-alternatives
  shadow-utils-native: remove unnecessary alternatives

 meta/classes/package.bbclass                       |   16 +-
 meta/classes/package_rpm.bbclass                   |    4 -
 meta/classes/update-alternatives.bbclass           |  348 ++++++++++++++++----
 meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb            |   30 +-
 meta/recipes-connectivity/openssh/openssh_6.0p1.bb |   31 +--
 meta/recipes-core/busybox/busybox.inc              |   66 ++---
 meta/recipes-core/busybox/busybox_1.19.4.bb        |    2 +-
 meta/recipes-core/coreutils/coreutils_6.9.bb       |   48 +--
 meta/recipes-core/coreutils/coreutils_8.14.bb      |   49 ++--
 meta/recipes-core/dropbear/dropbear.inc            |   12 +-
 meta/recipes-core/dropbear/dropbear_2012.55.bb     |    2 +-
 meta/recipes-core/ncurses/ncurses.inc              |   24 +-
 meta/recipes-core/psplash/psplash_git.bb           |   23 +-
 meta/recipes-core/sysvinit/sysvinit/postinst       |   17 -
 meta/recipes-core/sysvinit/sysvinit/prerm          |    9 -
 meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb     |   65 +---
 meta/recipes-core/tinylogin/tinylogin_1.4.bb       |    4 +-
 meta/recipes-core/util-linux/util-linux.inc        |  212 +++----------
 meta/recipes-core/util-linux/util-linux_2.21.1.bb  |    2 +-
 meta/recipes-devtools/binutils/binutils.inc        |   18 +-
 meta/recipes-devtools/binutils/binutils_2.22.bb    |    2 +-
 meta/recipes-devtools/opkg/opkg.inc                |   13 +-
 meta/recipes-devtools/patch/patch.inc              |    4 +-
 meta/recipes-extended/cpio/cpio_2.11.bb            |    2 +-
 meta/recipes-extended/cpio/cpio_2.8.bb             |    2 +-
 meta/recipes-extended/cpio/cpio_v2.inc             |   29 +-
 meta/recipes-extended/grep/grep_2.5.1a.bb          |   25 +-
 meta/recipes-extended/grep/grep_2.9.bb             |   26 +-
 meta/recipes-extended/iputils/iputils_s20101006.bb |   34 +-
 meta/recipes-extended/less/less_444.bb             |    4 +-
 meta/recipes-extended/mktemp/mktemp_1.7.bb         |    4 +-
 meta/recipes-extended/psmisc/psmisc.inc            |   26 +--
 meta/recipes-extended/psmisc/psmisc_22.16.bb       |    2 +-
 meta/recipes-extended/sed/sed_4.1.2.bb             |    4 +-
 meta/recipes-extended/sed/sed_4.2.1.bb             |    4 +-
 .../shadow/shadow-native_4.1.4.3.bb                |   21 --
 meta/recipes-extended/shadow/shadow_4.1.4.3.bb     |    4 +-
 meta/recipes-extended/sysklogd/sysklogd.inc        |   29 +-
 meta/recipes-extended/sysklogd/sysklogd_1.5.bb     |    2 +-
 meta/recipes-extended/tar/tar.inc                  |   18 +-
 meta/recipes-extended/tar/tar_1.17.bb              |    2 +-
 meta/recipes-extended/tar/tar_1.26.bb              |    2 +-
 meta/recipes-extended/time/time.inc                |    4 +-
 meta/recipes-extended/wget/wget.inc                |    4 +-
 meta/recipes-extended/which/which_2.18.bb          |    4 +-
 meta/recipes-extended/which/which_2.20.bb          |    4 +-
 meta/recipes-kernel/kmod/kmod_git.bb               |   39 +--
 47 files changed, 603 insertions(+), 693 deletions(-)
 delete mode 100644 meta/recipes-core/sysvinit/sysvinit/postinst
 delete mode 100644 meta/recipes-core/sysvinit/sysvinit/prerm
Richard Purdie - May 30, 2012, 12:04 p.m.
On Tue, 2012-05-22 at 14:30 -0500, Mark Hatle wrote:
> This set of commits refactors update-alternatives.  The primary purpose 
> is to cover all of the corner cases currently in oe-core (and hopefully 
> other layers) so that recipes can all use the update-alternatives class, 
> instead of manual update-alternatives calls in man post install/remove 
> scripts.
> 
> The refactored update-alternatives is compatible with the older methods, 
> but does indicate they are deprecated via a warning message.  One of the 
> key changes is that all referenced alternatives are not added to the 
> per-file dependency information.  For example, gawk sets up an 
> alternative for 'awk'.  The /bin/gawk binary now says it provides 
> /bin/awk, so that the package management systems that use per file 
> dependencies (i.e. RPM), will be able to find the minimum set of 
> packages to resolve the image.
> 
> In addition, to all of that, the references have been changed from 
> ".${PN}" to ".${BPN}" for alternatives.  This will allow the multilib
> system to work as intended by resolving multilib binaries.
> 
> All of the work has been tested using buildhistory and building various 
> images.  Buildhistory indicated only expected changes were performed.
> 
> (To avoid spamming the list, I have decided to only send the first 3 
> patches, lrzsz, busybox, util-linux and shadow-native as this is a 
> reasonable representation of the changes.  Please see the referenced 
> repository and branch below for full details on the series.)
> 
> *** BLURB HERE ***
> The following changes since commit e6333825c3482a559a0c0499e17f8f48d3042ddf:
> 
>   tune-mips64.inc: Add new tune file for mips64 big-endian (2012-05-20 20:24:37 -0700)
> 
> are available in the git repository at:
>   git://git.pokylinux.org/poky-contrib mhatle/upd-alt-2
>   http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/upd-alt-2
> 
> Mark Hatle (30):
>   update-alternatives.bbclass: Refactor the implementation
>   update-alternatives.bbclass: Change from using PN to BPN
>   which: use BPN for alternatives
>   wget: use BPN for alternatives
>   time: use BPN for alternatives
>   shadow: use BPN for alternatives
>   sed: use BPN for alternatives
>   mktemp: use BPN for alternatives
>   less: use BPN for alternatives
>   patch: use BPN for alternatives
>   tinylogin: use BPN for alternatives
>   sysvinit: use new update-alternatives
>   lrzsz: use new update-alternatives
>   openssh: use new update-alternatives
>   busybox: use new update-alternatives
>   coreutils: use new update-alternatives
>   dropbear: use new update-alternatives
>   ncurses: use new update-alternatives
>   psplash: use new update-alternatives
>   util-linux: use new update-alternatives
>   binutils: use new update-alternatives
>   tar: use new update-alternatives
>   opkg: use new update-alternatives
>   cpio: use new update-alternatives
>   grep: use new update-alternatives
>   iputils: use new update-alternatives
>   psmisc: use new update-alternatives
>   sysklogd: use new update-alternatives
>   kmod: use new update-alternatives
>   shadow-utils-native: remove unnecessary alternatives

Merged to master, thanks.

I've noticed a few issues and this obviously introduces a lot of warning
messages. I've posted a couple of fixes but we need a plan to get the
warnings resolved...

Cheers,

Richard
Mark Hatle - May 30, 2012, 1:55 p.m.
On 5/30/12 7:04 AM, Richard Purdie wrote:
> On Tue, 2012-05-22 at 14:30 -0500, Mark Hatle wrote:
>> This set of commits refactors update-alternatives.  The primary purpose
>> is to cover all of the corner cases currently in oe-core (and hopefully
>> other layers) so that recipes can all use the update-alternatives class,
>> instead of manual update-alternatives calls in man post install/remove
>> scripts.
>>
>> The refactored update-alternatives is compatible with the older methods,
>> but does indicate they are deprecated via a warning message.  One of the
>> key changes is that all referenced alternatives are not added to the
>> per-file dependency information.  For example, gawk sets up an
>> alternative for 'awk'.  The /bin/gawk binary now says it provides
>> /bin/awk, so that the package management systems that use per file
>> dependencies (i.e. RPM), will be able to find the minimum set of
>> packages to resolve the image.
>>
>> In addition, to all of that, the references have been changed from
>> ".${PN}" to ".${BPN}" for alternatives.  This will allow the multilib
>> system to work as intended by resolving multilib binaries.
>>
>> All of the work has been tested using buildhistory and building various
>> images.  Buildhistory indicated only expected changes were performed.
>>
>> (To avoid spamming the list, I have decided to only send the first 3
>> patches, lrzsz, busybox, util-linux and shadow-native as this is a
>> reasonable representation of the changes.  Please see the referenced
>> repository and branch below for full details on the series.)
>>
>> *** BLURB HERE ***
>> The following changes since commit e6333825c3482a559a0c0499e17f8f48d3042ddf:
>>
>>    tune-mips64.inc: Add new tune file for mips64 big-endian (2012-05-20 20:24:37 -0700)
>>
>> are available in the git repository at:
>>    git://git.pokylinux.org/poky-contrib mhatle/upd-alt-2
>>    http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/upd-alt-2
>>
>> Mark Hatle (30):
>>    update-alternatives.bbclass: Refactor the implementation
>>    update-alternatives.bbclass: Change from using PN to BPN
>>    which: use BPN for alternatives
>>    wget: use BPN for alternatives
>>    time: use BPN for alternatives
>>    shadow: use BPN for alternatives
>>    sed: use BPN for alternatives
>>    mktemp: use BPN for alternatives
>>    less: use BPN for alternatives
>>    patch: use BPN for alternatives
>>    tinylogin: use BPN for alternatives
>>    sysvinit: use new update-alternatives
>>    lrzsz: use new update-alternatives
>>    openssh: use new update-alternatives
>>    busybox: use new update-alternatives
>>    coreutils: use new update-alternatives
>>    dropbear: use new update-alternatives
>>    ncurses: use new update-alternatives
>>    psplash: use new update-alternatives
>>    util-linux: use new update-alternatives
>>    binutils: use new update-alternatives
>>    tar: use new update-alternatives
>>    opkg: use new update-alternatives
>>    cpio: use new update-alternatives
>>    grep: use new update-alternatives
>>    iputils: use new update-alternatives
>>    psmisc: use new update-alternatives
>>    sysklogd: use new update-alternatives
>>    kmod: use new update-alternatives
>>    shadow-utils-native: remove unnecessary alternatives
>
> Merged to master, thanks.
>
> I've noticed a few issues and this obviously introduces a lot of warning
> messages. I've posted a couple of fixes but we need a plan to get the
> warnings resolved...

I can work through the warnings fairly quickly.  I left them there 
intentionally.  I wanted to proved the deprecated functionality was complete and 
worked as expected.  (I forgot to note that in the original submission.)

If nobody else is working on revising the other items I'll start working through 
them.

--Mark

> Cheers,
>
> Richard
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core