From: Patrick Ohly <patrick.ohly@intel.com>
To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Cc: Joshua Lock <joshua.g.lock@intel.com>,
"openembedded-core@lists.openembedded.org"
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH v2 01/25] bitbake.conf: support for merged usr with DISTRO_FEATURE usrmerge
Date: Thu, 08 Jun 2017 08:18:47 +0200 [thread overview]
Message-ID: <1496902727.30163.125.camel@intel.com> (raw)
In-Reply-To: <2ccad72ffc0b44ad9cf94c67325a2658@XBOX02.axis.com>
On Wed, 2017-06-07 at 17:04 +0000, Peter Kjellerstedt wrote:
> I actually suggested an alternative change to bitbake.conf in the GitHub
> review that changes bitbake.conf to take usrmerge into account:
>
> https://github.com/avalluri/openembedded-core/commit/1655a93238902a883052a55d88ae14dd02243530
>
> I will include my suggested solution here since I will refer to it
> below:
>
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index 0f27e92e96..305eaff583 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -17,11 +17,13 @@ export base_prefix = ""
> export prefix = "/usr"
> export exec_prefix = "${prefix}"
>
> +root_prefix = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '${exec_prefix}', '${base_prefix}', d)}"
> +
> # Base paths
> -export base_bindir = "${base_prefix}/bin"
> -export base_sbindir = "${base_prefix}/sbin"
> -export base_libdir = "${base_prefix}/${baselib}"
> -export nonarch_base_libdir = "${base_prefix}/lib"
> +export base_bindir = "${root_prefix}/bin"
> +export base_sbindir = "${root_prefix}/sbin"
> +export base_libdir = "${root_prefix}/${baselib}"
> +export nonarch_base_libdir = "${root_prefix}/lib"
>
> # Architecture independent paths
> export sysconfdir = "${base_prefix}/etc"
>
> I think that better maintains the readability of the bitbake.conf file,
> while making the $root_prefix variable available as it can be useful in
> its own (e.g., in the systemd recipe).
Looks good to me.
> > One downside is that code using the variables earlier will just see the
> > non-usrmerge version, with no indication in "bitbake -e" that the value
> > might have been different in the middle of parsing. The if check in the
> > proposed patch has the same effect on the actual values, but at least
> > it shows up in "bitbake -e". This is not a particularly strong argument
> > either way, I just wanted to mention it.
>
> Based on your concerns about when the path variables affected by
> usrmerge would have what values, maybe my suggested change above
> should be changed to define root_prefix like this instead:
>
> root_prefix ?= "${base_prefix}"
>
> and then we create a usrmerge.inc file with the following contents:
>
> DISTRO_FEATURES_append = " usrmerge"
>
> root_prefix = "${exec_prefix}"
>
> This file should then be required by a layer.conf file so that
> root_prefix is set before bitbake.conf is read.
That's already a big no-no to me. It would get us back to where merely
adding a layer makes fundamental build configuration changes. Including
it in a distro config would not solve the problem and still be less
flexible than the current approach (user cannot enable or disable the
feature merely via changing DISTRO_FEATURES in local.conf).
So I think we have to and can live with the paths changing during base
configuration parsing.
Perhaps we can move the definitions below the include section? That
would emphasize that they are only final at that point and might flush
out any unwanted evaluation of them during the include phase.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
next prev parent reply other threads:[~2017-06-08 6:18 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-10 13:42 [PATCH 00/23] Fix for #7040 - Support for /usr merge Amarnath Valluri
2017-02-10 13:42 ` [PATCH 01/23] bitbake.conf: support for merged usr with DISTRO_FEATURE usrmerge Amarnath Valluri
2017-02-10 16:29 ` Christopher Larson
2017-02-10 13:42 ` [PATCH 02/23] bitbake.conf: Modify nativesdk variables to support 'usrmerge' DISTRO_FEATURE Amarnath Valluri
2017-02-10 13:42 ` [PATCH 03/23] cross.bbclass: merged /usr support Amarnath Valluri
2017-02-10 13:42 ` [PATCH 04/23] base-files: support merged /usr Amarnath Valluri
2017-02-10 13:42 ` [PATCH 05/23] systemd: chagnes to " Amarnath Valluri
2017-02-10 13:42 ` [PATCH 06/23] bash: changes " Amarnath Valluri
2017-02-10 13:42 ` [PATCH 07/23] busybox: " Amarnath Valluri
2017-02-10 13:42 ` [PATCH 08/23] sed: " Amarnath Valluri
2017-02-10 13:42 ` [PATCH 09/23] package_deb.bbclass: Ignore file paths in RPROVIDES Amarnath Valluri
2017-02-13 12:57 ` Alexander Kanavin
2017-02-10 13:42 ` [PATCH 10/23] musl: Fix issues in relative symlink creation Amarnath Valluri
2017-02-10 13:42 ` [PATCH 11/23] glibc: Ensure ldconfig is packaged into glibc Amarnath Valluri
2017-02-10 13:42 ` [PATCH 12/23] util-linux: Fix packaging with "usrmerge" Amarnath Valluri
2017-02-10 13:42 ` [PATCH 13/23] attr/acl: Do not create broken static library link when not needed Amarnath Valluri
2017-02-10 13:42 ` [PATCH 14/23] systemd: Do not add libnss_* to systemd package Amarnath Valluri
2017-02-10 13:42 ` [PATCH 15/23] util-linux: Make sure '${base_bindir}/reset' is part of util-linux-reset package Amarnath Valluri
2017-02-10 13:42 ` [PATCH 16/23] util-linux, shadow: Make 'nologin' alternative command Amarnath Valluri
2017-02-10 13:42 ` [PATCH 17/23] libarchive: Backport upstream fixes Amarnath Valluri
2017-02-10 13:42 ` [PATCH 18/23] kernel: use ${nonarch_base_libdir} for kernel modules installation Amarnath Valluri
2017-02-10 13:42 ` [PATCH 19/23] firmware: use ${nonarch_base_libdir} for firmware installation Amarnath Valluri
2017-02-10 13:42 ` [PATCH 20/23] mdadm: Avoid using hardocded udev, sbin paths Amarnath Valluri
2017-02-10 13:42 ` [PATCH 21/23] mktemp: Move installed files only when needed Amarnath Valluri
2017-02-10 13:42 ` [PATCH 22/23] net-tools: Place package content as per bitbake environment Amarnath Valluri
2017-02-10 13:42 ` [PATCH 23/23] lsb: Make use of appropriate bitbake variables Amarnath Valluri
2017-02-10 13:59 ` ✗ patchtest: failure for Fix for #7040 - Support for /usr merge Patchwork
2017-02-22 8:26 ` [PATCH v2 01/25] bitbake.conf: support for merged usr with DISTRO_FEATURE usrmerge Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 00/25] Fix for #7040 - Support for /usr merge Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 01/25] bitbake.conf: support for merged usr with DISTRO_FEATURE usrmerge Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 02/25] bitbake.conf: Modify nativesdk variables to support 'usrmerge' DISTRO_FEATURE Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 03/25] cross.bbclass: merged /usr support Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 04/25] base-files: Replace hardcoded root paths with appropriate bitbake variables Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 05/25] systemd: chagnes to support merged /usr Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 06/25] bash: changes " Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 07/25] busybox: " Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 08/25] sed: " Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 09/25] musl: Fix issues in relative symlink creation Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 10/25] glibc: Ensure ldconfig is packaged into glibc Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 11/25] util-linux: Fix packaging with "usrmerge" Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 12/25] attr/acl: Do not create broken static library link when not needed Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 13/25] systemd: Do not add libnss_* to systemd package Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 14/25] util-linux: Make sure '${base_bindir}/reset' is part of util-linux-reset package Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 15/25] util-linux, shadow: Make 'nologin' alternative command Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 16/25] libarchive: Backport upstream fixes Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 17/25] kernel: use ${nonarch_base_libdir} for kernel modules installation Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 18/25] firmware: use ${nonarch_base_libdir} for firmware installation Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 19/25] mdadm: Avoid using hardocded udev, sbin paths Amarnath Valluri
2017-03-02 20:11 ` Burton, Ross
2017-03-03 12:27 ` [OE-Core[[PATCH v3 19/25] mdadm: Avoid using hardocded sbin path Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 20/25] mktemp: Move installed files only when needed Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 21/25] net-tools: Place package content as per bitbake environment Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 22/25] lsb: Make use of appropriate bitbake variables Amarnath Valluri
2017-03-02 20:13 ` Burton, Ross
2017-03-03 12:36 ` [PATCH v3] " Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 23/25] lttng-modules: Replace '/lib' with ${nonarch_base_libdir} Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 24/25] image: create symlinks needed for merged /usr Amarnath Valluri
2017-02-22 8:27 ` [PATCH v2 25/25] insane.bbclass: Add package QA check " Amarnath Valluri
2017-06-07 11:52 ` [PATCH v2 01/25] bitbake.conf: support for merged usr with DISTRO_FEATURE usrmerge Richard Purdie
2017-06-07 14:31 ` Patrick Ohly
2017-06-07 17:04 ` Peter Kjellerstedt
2017-06-08 6:18 ` Patrick Ohly [this message]
2017-06-08 6:37 ` Richard Purdie
2017-06-09 12:52 ` Valluri, Amarnath
2017-02-22 8:26 ` [PATCH v2 02/25] bitbake.conf: Modify nativesdk variables to support 'usrmerge' DISTRO_FEATURE Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 03/25] cross.bbclass: merged /usr support Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 04/25] base-files: Replace hardcoded root paths with appropriate bitbake variables Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 05/25] systemd: chagnes to support merged /usr Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 06/25] bash: changes " Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 07/25] busybox: " Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 08/25] sed: " Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 09/25] musl: Fix issues in relative symlink creation Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 10/25] glibc: Ensure ldconfig is packaged into glibc Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 11/25] util-linux: Fix packaging with "usrmerge" Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 12/25] attr/acl: Do not create broken static library link when not needed Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 13/25] systemd: Do not add libnss_* to systemd package Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 14/25] util-linux: Make sure '${base_bindir}/reset' is part of util-linux-reset package Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 15/25] util-linux, shadow: Make 'nologin' alternative command Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 16/25] libarchive: Backport upstream fixes Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 17/25] kernel: use ${nonarch_base_libdir} for kernel modules installation Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 18/25] firmware: use ${nonarch_base_libdir} for firmware installation Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 19/25] mdadm: Avoid using hardocded udev, sbin paths Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 20/25] mktemp: Move installed files only when needed Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 21/25] net-tools: Place package content as per bitbake environment Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 22/25] lsb: Make use of appropriate bitbake variables Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 23/25] lttng-modules: Replace '/lib' with ${nonarch_base_libdir} Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 24/25] image: create symlinks needed for merged /usr Amarnath Valluri
2017-02-22 8:26 ` [PATCH v2 25/25] insane.bbclass: Add package QA check " Amarnath Valluri
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=1496902727.30163.125.camel@intel.com \
--to=patrick.ohly@intel.com \
--cc=joshua.g.lock@intel.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=peter.kjellerstedt@axis.com \
/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