From: Amarnath Valluri <amarnath.valluri@intel.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH v2 24/25] image: create symlinks needed for merged /usr
Date: Wed, 22 Feb 2017 10:27:21 +0200 [thread overview]
Message-ID: <1487752042-19804-50-git-send-email-amarnath.valluri@intel.com> (raw)
In-Reply-To: <1487752042-19804-1-git-send-email-amarnath.valluri@intel.com>
Prepare the symlinks required for merged /usr at the time of rootfs creation.
The links created in rootfs are:
/bin --> /usr/sbin
/sbin --> /usr/sbin
/lib --> /usr/lib
/lib64 --> /usr/lib64
We cannot make these symlinks as part of 'base-files' or some other package.
Because at rootfs creation, installation of the package(say kernel) that depends
on these root folders/links fails, if package manager installs this package
prior to base-files.
These symbolic links in top level folder should present as long as
- kerenl tools use /lib/{module,firmware}
- shell scripts uses "#!/bin/sh"
Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
---
meta/classes/image.bbclass | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 127e62d..4a9b40e 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -617,3 +617,26 @@ do_bundle_initramfs () {
:
}
addtask bundle_initramfs after do_image_complete
+
+# Prepare the root links to point to the /usr counterparts.
+create_merged_usr_symlinks() {
+ install -m 0755 -d ${IMAGE_ROOTFS}/${base_bindir}
+ install -m 0755 -d ${IMAGE_ROOTFS}/${base_sbindir}
+ install -m 0755 -d ${IMAGE_ROOTFS}/${base_libdir}
+ lnr ${IMAGE_ROOTFS}${base_bindir} ${IMAGE_ROOTFS}/bin
+ lnr ${IMAGE_ROOTFS}${base_sbindir} ${IMAGE_ROOTFS}/sbin
+ lnr ${IMAGE_ROOTFS}${base_libdir} ${IMAGE_ROOTFS}/${baselib}
+
+ if [ "${nonarch_base_libdir}" != "${base_libdir}" ]; then
+ install -m 0755 -d ${IMAGE_ROOTFS}/${nonarch_base_libdir}
+ lnr ${IMAGE_ROOTFS}${nonarch_base_libdir} ${IMAGE_ROOTFS}/lib
+ fi
+
+ # create base links for multilibs
+ multi_libdirs="${@d.getVar('MULTILIB_VARIANTS')}"
+ for d in $multi_libdirs; do
+ install -m 0755 -d ${IMAGE_ROOTFS}/${exec_prefix}/$d
+ lnr ${IMAGE_ROOTFS}/${exec_prefix}/$d ${IMAGE_ROOTFS}/$d
+ done
+}
+ROOTFS_PREPROCESS_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'create_merged_usr_symlinks; ', '',d)}"
--
2.7.4
next prev parent reply other threads:[~2017-02-22 8:28 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 ` Amarnath Valluri [this message]
2017-02-22 8:27 ` [PATCH v2 25/25] insane.bbclass: Add package QA check for merged /usr 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
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=1487752042-19804-50-git-send-email-amarnath.valluri@intel.com \
--to=amarnath.valluri@intel.com \
--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