From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6621956091070644224 Date: Fri, 16 Nov 2018 08:29:44 -0800 (PST) From: chombourger@gmail.com To: isar-users Message-Id: In-Reply-To: <20181114084455.2f46bf86@md1za8fc.ad001.siemens.net> References: <20181112103125.6884a9af@md1za8fc.ad001.siemens.net> <1542085173-650-1-git-send-email-Cedric_Hombourger@mentor.com> <1542085173-650-2-git-send-email-Cedric_Hombourger@mentor.com> <20181114084455.2f46bf86@md1za8fc.ad001.siemens.net> Subject: Re: [PATCH v3 2/2] buildchroot: add sysfs mount since expected by some packages MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_1071_1662929589.1542385784585" X-Google-Token: EPjgu98FZnhLdgio_x00 X-Google-IP: 192.94.31.2 X-TUID: Jl47GxSa3CLJ ------=_Part_1071_1662929589.1542385784585 Content-Type: multipart/alternative; boundary="----=_Part_1072_1736212194.1542385784585" ------=_Part_1072_1736212194.1542385784585 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi Henning, 1. the hook we have for when the build ends does handle nested mounts just fine. I will however post a new patch with 'umount -R' calls in places where we explicitly umount /dev, /proc and /sys 2. I don't think we have an issue here, the use-case is similar to e.g. lxc, they do have /sys mounted and packages may be installed at will within the container Cedric On Tuesday, November 13, 2018 at 11:44:57 PM UTC-8, Henning Schild wrote: > > Two more things to double-check. > > 1. Do the umount hooks we have in place clean up all the recursiveness? > 2. Once we rbind mount sys the chroot will probably be allowed to mess > with cgroups, tracing etc. Does a debootstrap change anything there, > i.e. by installing systemd, libvirt, or perf? > > Henning > > Am Mon, 12 Nov 2018 20:59:33 -0800 > schrieb Cedric Hombourger >: > > > Some packages look for /sys when they configure, build or test > > themselves (for instance golang-google-grpc). > > > > Signed-off-by: Cedric Hombourger > > > --- > > meta/classes/buildchroot.bbclass | 2 ++ > > meta/classes/image.bbclass | 1 + > > meta/classes/isar-bootstrap-helper.bbclass | 3 +++ > > meta/classes/isar-image.bbclass | 1 + > > 4 files changed, 7 insertions(+) > > > > diff --git a/meta/classes/buildchroot.bbclass > > b/meta/classes/buildchroot.bbclass index 26d5e80..d2f138f 100644 > > --- a/meta/classes/buildchroot.bbclass > > +++ b/meta/classes/buildchroot.bbclass > > @@ -31,5 +31,7 @@ buildchroot_do_mounts() { > > mount --make-rslave ${BUILDCHROOT_DIR}/dev > > mount --rbind /proc ${BUILDCHROOT_DIR}/proc > > mount --make-rslave ${BUILDCHROOT_DIR}/proc > > + mount --rbind /sys ${BUILDCHROOT_DIR}/sys > > + mount --make-rslave ${BUILDCHROOT_DIR}/sys > > fi' > > } > > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > > index d033cf5..5806a59 100644 > > --- a/meta/classes/image.bbclass > > +++ b/meta/classes/image.bbclass > > @@ -110,6 +110,7 @@ do_populate_sdk() { > > > > sudo umount ${SDKCHROOT_DIR}/rootfs/dev || true > > sudo umount ${SDKCHROOT_DIR}/rootfs/proc || true > > + sudo umount ${SDKCHROOT_DIR}/rootfs/sys || true > > > > # Create SDK archive > > sudo tar -C ${SDKCHROOT_DIR} > > --transform="s|^rootfs|sdk-${DISTRO}-${DISTRO_ARCH}|" \ diff --git > > a/meta/classes/isar-bootstrap-helper.bbclass > > b/meta/classes/isar-bootstrap-helper.bbclass index 62c0839..7b2ddf3 > > 100644 --- a/meta/classes/isar-bootstrap-helper.bbclass +++ > > b/meta/classes/isar-bootstrap-helper.bbclass @@ -107,6 +107,9 @@ > > setup_root_file_system() { sudo mount --make-rslave ${ROOTFSDIR}/dev > > sudo mount --rbind /proc ${ROOTFSDIR}/proc > > sudo mount --make-rslave ${ROOTFSDIR}/proc > > + sudo install -m 755 -d ${ROOTFSDIR}/sys > > + sudo mount --rbind /sys ${ROOTFSDIR}/sys > > + sudo mount --make-rslave ${ROOTFSDIR}/sys > > > > # Install packages: > > E="${@ bb.utils.export_proxies(d)}" > > diff --git a/meta/classes/isar-image.bbclass > > b/meta/classes/isar-image.bbclass index e0508be..356c97a 100644 > > --- a/meta/classes/isar-image.bbclass > > +++ b/meta/classes/isar-image.bbclass > > @@ -61,6 +61,7 @@ isar_image_cleanup() { > > sudo rmdir ${IMAGE_ROOTFS}/isar-apt > > sudo umount -l ${IMAGE_ROOTFS}/dev > > sudo umount -l ${IMAGE_ROOTFS}/proc > > + sudo umount -l ${IMAGE_ROOTFS}/sys > > sudo rm -f > > "${IMAGE_ROOTFS}/etc/apt/apt.conf.d/55isar-fallback.conf" } > > > > ------=_Part_1072_1736212194.1542385784585 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Hi Henning,

1. the hook we have for whe= n the build ends does handle nested mounts just fine. I will however post a= new patch with 'umount -R' calls in places where we explicitly umo= unt /dev, /proc and /sys
2. I don't think we have an issue he= re, the use-case is similar to e.g. lxc, they do have /sys mounted and pack= ages may be installed at will within the container

Cedric

On Tuesday, November 13, 2018 at 11:44:57 PM UTC-8, Henning = Schild wrote:
Two more things t= o double-check.

1. Do the umount hooks we have in place clean up all the recursiveness?
2. Once we rbind mount sys the chroot will probably be allowed to mess
with cgroups, tracing etc. Does a debootstrap change anything there,
i.e. by installing systemd, libvirt, or perf?

Henning

Am Mon, 12 Nov 2018 20:59:33 -0800
schrieb Cedric Hombourger <Cedric_H...@mentor.com>:

> Some packages look for /sys when they configure, build or test
> themselves (for instance golang-google-grpc).
>=20
> Signed-off-by: Cedric Hombourger <Cedric_H...@mentor.com>
> ---
> =C2=A0meta/classes/buildchroot.bbclass =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 | 2 ++
> =C2=A0meta/classes/image.bbclass =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 | 1 +
> =C2=A0meta/classes/isar-bootstrap-helper.bbclass | 3 +++
> =C2=A0meta/classes/isar-image.bbclass =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0| 1 +
> =C2=A04 files changed, 7 insertions(+)
>=20
> diff --git a/meta/classes/buildchroot.bbclass
> b/meta/classes/buildchroot.bbclass index 26d5e80..d2f138f 100= 644
> --- a/meta/classes/buildchroot.bbclass
> +++ b/meta/classes/buildchroot.bbclass
> @@ -31,5 +31,7 @@ buildchroot_do_mounts() {
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mount --make-rslav= e ${BUILDCHROOT_DIR}/dev
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mount --rbind /pro= c ${BUILDCHROOT_DIR}/proc
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mount --make-rslav= e ${BUILDCHROOT_DIR}/proc
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mount --rbind /sys ${BU= ILDCHROOT_DIR}/sys
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mount --make-rslave ${B= UILDCHROOT_DIR}/sys
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fi'
> =C2=A0}
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbcla= ss
> index d033cf5..5806a59 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -110,6 +110,7 @@ do_populate_sdk() {
> =C2=A0
> =C2=A0 =C2=A0 =C2=A0sudo umount ${SDKCHROOT_DIR}/rootfs/dev || tru= e
> =C2=A0 =C2=A0 =C2=A0sudo umount ${SDKCHROOT_DIR}/rootfs/proc || tr= ue
> + =C2=A0 =C2=A0sudo umount ${SDKCHROOT_DIR}/rootfs/sys || true
> =C2=A0
> =C2=A0 =C2=A0 =C2=A0# Create SDK archive
> =C2=A0 =C2=A0 =C2=A0sudo tar -C ${SDKCHROOT_DIR}
> --transform=3D"s|^rootfs|sdk-${DISTRO}-${DISTRO_ARCH}|&q= uot; \ diff --git
> a/meta/classes/isar-bootstrap-helper.bbclass
> b/meta/classes/isar-bootstrap-helper.bbclass index 62c0839..7= b2ddf3
> 100644 --- a/meta/classes/isar-bootstrap-helper.bbclass +++
> b/meta/classes/isar-bootstrap-helper.bbclass @@ -107,6 +107,9= @@
> setup_root_file_system() { sudo mount --make-rslave ${ROOTFSDIR}/d= ev
> =C2=A0 =C2=A0 =C2=A0sudo mount --rbind /proc ${ROOTFSDIR}/proc
> =C2=A0 =C2=A0 =C2=A0sudo mount --make-rslave ${ROOTFSDIR}/proc
> + =C2=A0 =C2=A0sudo install -m 755 -d ${ROOTFSDIR}/sys
> + =C2=A0 =C2=A0sudo mount --rbind /sys ${ROOTFSDIR}/sys
> + =C2=A0 =C2=A0sudo mount --make-rslave ${ROOTFSDIR}/sys
> =C2=A0
> =C2=A0 =C2=A0 =C2=A0# Install packages:
> =C2=A0 =C2=A0 =C2=A0E=3D"${@ bb.utils.export_proxies(d)}"= ;
> diff --git a/meta/classes/isar-image.bbclass
> b/meta/classes/isar-image.bbclass index e0508be..356c97a 1006= 44
> --- a/meta/classes/isar-image.bbclass
> +++ b/meta/classes/isar-image.bbclass
> @@ -61,6 +61,7 @@ isar_image_cleanup() {
> =C2=A0 =C2=A0 =C2=A0sudo rmdir ${IMAGE_ROOTFS}/isar-apt
> =C2=A0 =C2=A0 =C2=A0sudo umount -l ${IMAGE_ROOTFS}/dev
> =C2=A0 =C2=A0 =C2=A0sudo umount -l ${IMAGE_ROOTFS}/proc
> + =C2=A0 =C2=A0sudo umount -l ${IMAGE_ROOTFS}/sys
> =C2=A0 =C2=A0 =C2=A0sudo rm -f
> "${IMAGE_ROOTFS}/etc/apt/apt.conf.d/55isar-fallback.conf= " }
> =C2=A0

------=_Part_1072_1736212194.1542385784585-- ------=_Part_1071_1662929589.1542385784585--