Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: "André Draszik" <git@andred.net>,
	openembedded-core@lists.openembedded.org
Subject: Re: [PATCH v3 07/15] update-alternatives: try to update FILES_${PN} when renaming a file
Date: Wed, 16 Jan 2019 12:18:42 +0000	[thread overview]
Message-ID: <d8e7a584d5fe4fb73ce26f3bf54cc3317c5650ce.camel@linuxfoundation.org> (raw)
In-Reply-To: <20190116120051.12182-8-git@andred.net>

On Wed, 2019-01-16 at 12:00 +0000, André Draszik wrote:
> From: André Draszik <andre.draszik@jci.com>
> 
> When using update-alternatives, FILES_${PN} must be
> referencing the new name after update-alternatives has
> renamed files.
> 
> This is more or less OK when having static lists of files to
> be packaged into a package, but makes it quite hard to
> dynamically generate FILES_${PN}, e.g. using do_split_packages(),
> as in that case we can not easily modify what goes into
> FILES_${PN}, because that list is based on filenames as seen
> at the time do_split_packages() is executing.
> 
> Of couse one could explicitly specify the (renamed) file(s)
> in the recipe, but that contradicts the intended usage of
> do_split_packages().
> 
> Instead, if FILES_${PN} contains the file name as it was pre
> renaming, we here modify this to reflect the new name.
> 
> This will allow usage of do_split_packages() to populate
> FILES_${PN}.
> 
> [YOCTO #13058]
> 
> Signed-off-by: André Draszik <andre.draszik@jci.com>
> ---
>  meta/classes/update-alternatives.bbclass | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass
> index 78291e7e45..363f1ae129 100644
> --- a/meta/classes/update-alternatives.bbclass
> +++ b/meta/classes/update-alternatives.bbclass
> @@ -135,6 +135,8 @@ populate_packages[vardeps] += "${UPDALTVARS} ${@gen_updatealternativesvars(d)}"
>  # place for that.
>  PACKAGE_PREPROCESS_FUNCS += "${@'apply_update_alternative_renames' if update_alternatives_enabled(d) else ''}"
>  python apply_update_alternative_renames () {
> +    from re import sub
> +
>      # Check for deprecated usage...
>      pn = d.getVar('BPN')
>      if d.getVar('ALTERNATIVE_LINKS') != None:
> @@ -174,6 +176,10 @@ python apply_update_alternative_renames () {
>                      else:
>                          bb.note('%s: Rename %s -> %s' % (pn, alt_target, alt_target_rename))
>                          os.rename(src, dest)
> +                        f = d.getVar('FILES_' + pkg)
> +                        if f:
> +                            f = sub(r'(^|\s)%s(\s|$)' % alt_target, r'\1%s\2' % alt_target_rename, f)
> +                            d.setVar('FILES_' + pkg, f)
>                  else:
>                      bb.warn("%s: alternative target (%s or %s) does not exist, skipping..." % (pn, alt_target, alt_target_rename))
>                      continue
> @@ -200,6 +206,11 @@ python apply_update_alternative_renames () {
>                      os.unlink(src)
>                  else:
>                      bb.warn('%s: Unable to resolve dangling symlink: %s' % (pn, alt_target))
> +                    continue
> +            f = d.getVar('FILES_' + pkg)
> +            if f:
> +                f = sub(r'(^|\s)%s(\s|$)' % alt_target, r'\1%s\2' % alt_target_rename, f)
> +                d.setVar('FILES_' + pkg, f)
>  }
> 

Create an internal function and call it twice:

    def update_files(alt_target, alt_target_rename, pkg, d):
        f = d.getVar('FILES_' + pkg)
        if f:
            f = sub(r'(^|\s)%s(\s|$)' % alt_target, r'\1%s\2' % alt_target_rename, f)
            d.setVar('FILES_' + pkg, f)

?

Cheers,

Richard



  reply	other threads:[~2019-01-16 12:18 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-14 12:56 [PATCH 00/12] RFC: util-linux: one package per binary André Draszik
2019-01-14 12:56 ` [PATCH 01/12] util-linux: simplify version upgrades (MAJOR_VERSION) André Draszik
2019-01-14 12:56 ` [PATCH 02/12] util-linux: remove erroneous patch (qsort_r) André Draszik
2019-01-14 12:56 ` [PATCH 03/12] util-linux: remove minix remnants André Draszik
2019-01-14 12:56 ` [PATCH 04/12] util-linux: be more explicit about what files go into packages André Draszik
2019-01-14 12:56 ` [PATCH 05/12] util-linux: fix the su and runuser packages André Draszik
2019-01-14 12:56 ` [PATCH 06/12] update-alternatives: allow hooks before renaming files André Draszik
2019-01-14 12:56 ` [PATCH 07/12] update-alternatives: try to update FILES_${PN} when renaming a file André Draszik
2019-01-14 12:56 ` [PATCH 08/12] util-linux: one package per binary (pt 1: base_sbindir) André Draszik
2019-01-14 12:56 ` [PATCH 09/12] util-linux: one package per binary (pt 2: base_bindir) André Draszik
2019-01-14 12:56 ` [PATCH 10/12] util-linux: one package per binary (pt 3: sbindir) André Draszik
2019-01-14 12:56 ` [PATCH 11/12] util-linux: one package per binary (pt 4: bindir) André Draszik
2019-01-14 12:56 ` [PATCH 12/12] utils-linux: final cleanup André Draszik
2019-01-15 14:45 ` [PATCH v2 00/12] util-linux: one package per binary André Draszik
2019-01-15 14:45   ` [PATCH v2 01/15] util-linux: simplify version upgrades (MAJOR_VERSION) André Draszik
2019-01-15 14:45   ` [PATCH v2 02/15] util-linux: remove erroneous patch (qsort_r) André Draszik
2019-01-15 14:45   ` [PATCH v2 03/15] util-linux: remove minix remnants André Draszik
2019-01-15 14:45   ` [PATCH v2 04/15] util-linux: be more explicit about what files go into packages André Draszik
2019-01-15 14:45   ` [PATCH v2 05/15] util-linux: fix the su and runuser packages André Draszik
2019-01-15 14:45   ` [PATCH v2 06/15] update-alternatives: allow hooks before renaming files André Draszik
2019-01-15 16:45     ` Richard Purdie
2019-01-16 11:40       ` André Draszik
2019-01-15 14:45   ` [PATCH v2 07/15] update-alternatives: try to update FILES_${PN} when renaming a file André Draszik
2019-01-15 14:45   ` [PATCH v2 08/15] util-linux: one package per binary (pt 1: base_sbindir) André Draszik
2019-01-15 14:45   ` [PATCH v2 09/15] util-linux: one package per binary (pt 2: base_bindir) André Draszik
2019-01-15 14:45   ` [PATCH v2 10/15] util-linux: one package per binary (pt 3: sbindir) André Draszik
2019-01-15 14:45   ` [PATCH v2 11/15] util-linux: one package per binary (pt 4: bindir) André Draszik
2019-01-15 14:45   ` [PATCH v2 12/15] util-linux: simplify meta-package RDEPENDS / RRECOMMENDS André Draszik
2019-01-15 14:45   ` [PATCH v2 13/15] util-linux: move /etc/default/mountall into -mount subpackage André Draszik
2019-01-15 14:45   ` [PATCH v2 14/15] util-linux: let -ptest package depend on all of util-linux André Draszik
2019-01-15 14:45   ` [PATCH v2 15/15] utils-linux: final cleanup André Draszik
2019-01-16 12:00 ` [PATCH v3 00/12] util-linux: one package per binary André Draszik
2019-01-16 12:00   ` [PATCH v3 01/15] util-linux: simplify version upgrades (MAJOR_VERSION) André Draszik
2019-01-16 12:00   ` [PATCH v3 02/15] util-linux: remove erroneous patch (qsort_r) André Draszik
2019-01-16 12:00   ` [PATCH v3 03/15] util-linux: remove minix remnants André Draszik
2019-01-16 12:00   ` [PATCH v3 04/15] util-linux: be more explicit about what files go into packages André Draszik
2019-01-16 12:00   ` [PATCH v3 05/15] util-linux: fix the su and runuser packages André Draszik
2019-01-16 12:00   ` [PATCH v3 06/15] update-alternatives: convert file renames to PACKAGE_PREPROCESS_FUNCS André Draszik
2019-01-16 12:17     ` Richard Purdie
2019-01-16 12:00   ` [PATCH v3 07/15] update-alternatives: try to update FILES_${PN} when renaming a file André Draszik
2019-01-16 12:18     ` Richard Purdie [this message]
2019-01-16 12:00   ` [PATCH v3 08/15] util-linux: one package per binary (pt 1: base_sbindir) André Draszik
2019-01-16 12:00   ` [PATCH v3 09/15] util-linux: one package per binary (pt 2: base_bindir) André Draszik
2019-01-16 12:00   ` [PATCH v3 10/15] util-linux: one package per binary (pt 3: sbindir) André Draszik
2019-01-16 12:00   ` [PATCH v3 11/15] util-linux: one package per binary (pt 4: bindir) André Draszik
2019-01-16 12:00   ` [PATCH v3 12/15] util-linux: simplify meta-package RDEPENDS / RRECOMMENDS André Draszik
2019-01-16 12:00   ` [PATCH v3 13/15] util-linux: move /etc/default/mountall into -mount subpackage André Draszik
2019-01-16 12:00   ` [PATCH v3 14/15] util-linux: let -ptest package depend on all of util-linux André Draszik
2019-01-16 12:00   ` [PATCH v3 15/15] utils-linux: final cleanup André Draszik
2019-01-16 12:02   ` [PATCH v3 00/12] util-linux: one package per binary André Draszik
2019-01-16 12:51 ` [PATCH v4 " André Draszik
2019-01-16 12:51   ` [PATCH v4 01/15] util-linux: simplify version upgrades (MAJOR_VERSION) André Draszik
2019-01-16 12:51   ` [PATCH v4 02/15] util-linux: remove erroneous patch (qsort_r) André Draszik
2019-01-16 12:51   ` [PATCH v4 03/15] util-linux: remove minix remnants André Draszik
2019-01-16 12:51   ` [PATCH v4 04/15] util-linux: be more explicit about what files go into packages André Draszik
2019-01-16 12:51   ` [PATCH v4 05/15] util-linux: fix the su and runuser packages André Draszik
2019-01-16 12:51   ` [PATCH v4 06/15] update-alternatives: convert file renames to PACKAGE_PREPROCESS_FUNCS André Draszik
2019-01-16 12:51   ` [PATCH v4 07/15] update-alternatives: try to update FILES_${PN} when renaming a file André Draszik
2019-01-16 12:51   ` [PATCH v4 08/15] util-linux: one package per binary (pt 1: base_sbindir) André Draszik
2019-01-16 12:51   ` [PATCH v4 09/15] util-linux: one package per binary (pt 2: base_bindir) André Draszik
2019-01-16 12:51   ` [PATCH v4 10/15] util-linux: one package per binary (pt 3: sbindir) André Draszik
2019-01-16 12:51   ` [PATCH v4 11/15] util-linux: one package per binary (pt 4: bindir) André Draszik
2019-01-16 12:51   ` [PATCH v4 12/15] util-linux: simplify meta-package RDEPENDS / RRECOMMENDS André Draszik
2019-01-16 12:51   ` [PATCH v4 13/15] util-linux: move /etc/default/mountall into -mount subpackage André Draszik
2019-01-16 12:51   ` [PATCH v4 14/15] util-linux: let -ptest package depend on all of util-linux André Draszik
2019-01-16 12:51   ` [PATCH v4 15/15] utils-linux: final cleanup André Draszik
2019-01-29  9:09   ` [PATCH v4 00/12] util-linux: one package per binary André Draszik
2019-02-01  7:32   ` Richard Purdie
2019-02-02 10:02     ` André Draszik
2019-02-04 10:09     ` André Draszik
2019-02-04 11:53     ` André Draszik
2019-02-04 12:39       ` Richard Purdie
2019-02-04 10:05 ` [PATCH v5 00/11] " André Draszik
2019-02-04 10:05   ` [PATCH v5 01/11] util-linux: be more explicit about what files go into packages André Draszik
2019-02-04 10:05   ` [PATCH v5 02/11] util-linux: fix the su and runuser packages André Draszik
2019-02-04 10:05   ` [PATCH v5 03/11] util-linux: one package per binary (pt 1: base_sbindir) André Draszik
2019-02-04 10:05   ` [PATCH v5 04/11] util-linux: one package per binary (pt 1b: symlinks) André Draszik
2019-02-04 10:05   ` [PATCH v5 05/11] util-linux: one package per binary (pt 2: base_bindir) André Draszik
2019-02-04 10:05   ` [PATCH v5 06/11] util-linux: one package per binary (pt 3: sbindir) André Draszik
2019-02-04 10:05   ` [PATCH v5 07/11] util-linux: one package per binary (pt 4: bindir) André Draszik
2019-02-04 10:05   ` [PATCH v5 08/11] util-linux: simplify meta-package RDEPENDS / RRECOMMENDS André Draszik
2019-02-04 10:05   ` [PATCH v5 09/11] util-linux: move /etc/default/mountall into -mount subpackage André Draszik
2019-02-04 10:05   ` [PATCH v5 10/11] util-linux: let -ptest package depend on all of util-linux André Draszik
2019-02-04 10:05   ` [PATCH v5 11/11] util-linux: final cleanup André Draszik
2019-02-05  2:32 ` [PATCH v6 00/13] util-linux: one package per binary André Draszik
2019-02-05  2:32   ` [PATCH v6 01/13] update-alternatives: correctly escape PATHs when updating FILES_${PN} André Draszik
2019-02-05  2:32   ` [PATCH v6 02/13] util-linux: be more explicit about what files go into packages André Draszik
2019-02-05  2:32   ` [PATCH v6 03/13] util-linux: fix the su and runuser packages André Draszik
2019-02-05  2:32   ` [PATCH v6 04/13] util-linux: fix packaging nativesdk-util-linux-lib* André Draszik
2019-02-05  2:32   ` [PATCH v6 05/13] util-linux: one package per binary (pt 1: base_sbindir) André Draszik
2019-02-05  2:32   ` [PATCH v6 06/13] util-linux: one package per binary (pt 1b: symlinks) André Draszik
2019-02-05  2:32   ` [PATCH v6 07/13] util-linux: one package per binary (pt 2: base_bindir) André Draszik
2019-02-05  2:32   ` [PATCH v6 08/13] util-linux: one package per binary (pt 3: sbindir) André Draszik
2019-02-05  2:32   ` [PATCH v6 09/13] util-linux: one package per binary (pt 4: bindir) André Draszik
2019-02-05  2:32   ` [PATCH v6 10/13] util-linux: simplify meta-package RDEPENDS / RRECOMMENDS André Draszik
2019-02-05  2:32   ` [PATCH v6 11/13] util-linux: move /etc/default/mountall into -mount subpackage André Draszik
2019-02-05  2:32   ` [PATCH v6 12/13] util-linux: let -ptest package depend on all of util-linux André Draszik
2019-02-05  2:32   ` [PATCH v6 13/13] util-linux: final cleanup André Draszik
2019-02-21 21:08     ` Burton, Ross
2019-02-23 12:11       ` Richard Purdie
2019-02-05  8:09   ` [PATCH v6 00/13] util-linux: one package per binary André Draszik
2019-02-05 18:26   ` Richard Purdie
2019-02-08 12:08     ` André Draszik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d8e7a584d5fe4fb73ce26f3bf54cc3317c5650ce.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=git@andred.net \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox