From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-da0-f51.google.com ([209.85.210.51]) by linuxtogo.org with esmtp (Exim 4.72) (envelope-from ) id 1UBBCz-0006xF-Io for openembedded-core@lists.openembedded.org; Thu, 28 Feb 2013 22:40:11 +0100 Received: by mail-da0-f51.google.com with SMTP id z17so1034187dal.24 for ; Thu, 28 Feb 2013 13:23:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:date:from:to:cc:subject:message-id:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=VZYRbAqs5TmK6KUms+Z9RPWgu8aXD9u3Vf5eN3Ka9j8=; b=XnL1lEeL5CygRdG+k3/j8xHHvmDO3rEHc+yxPfkjC2qaNEY78tcp9fta+fgOh30bRJ CRthabCZpVG8ruFKTz+1B5LugxWM/sPpUOmkyCyvhI8M4W0UCK75aZ1nyRqhIJOk/NPh NvLEW1MetpwlhsBhqRqOrHBhmp2725yQ17CsK43G3Urspit0y8+h2JElprTGZrYPHX/c Eh0w1BzRKBsHT7TfWvhkYecsB7Krr+gqe4i+a3WrEBzUnOIIHhma88/s1pT4cfG1PSRz jO6njX0JUPbqdah4MGHVgNaZHY59U0GKRu1ELXMQQXdwYmSuNf2QcaM4oFR6bOH/lf1e 9Ccg== X-Received: by 10.68.196.35 with SMTP id ij3mr11160524pbc.56.1362086626204; Thu, 28 Feb 2013 13:23:46 -0800 (PST) Received: from localhost (ip-62-24-80-7.net.upcbroadband.cz. [62.24.80.7]) by mx.google.com with ESMTPS id jp9sm9514085pbb.7.2013.02.28.13.23.41 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Thu, 28 Feb 2013 13:23:44 -0800 (PST) Date: Thu, 28 Feb 2013 22:23:39 +0100 From: Martin Jansa To: Mark Hatle Message-ID: <20130228212339.GB3279@jama> References: <1362074946-7062-1-git-send-email-mark.hatle@windriver.com> <1362074946-7062-3-git-send-email-mark.hatle@windriver.com> <1362084834.5119.115.camel@ted> <512FC707.6040408@windriver.com> MIME-Version: 1.0 In-Reply-To: <512FC707.6040408@windriver.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: openembedded-core@lists.openembedded.org Subject: Re: [PATCH 2/2] module.bbclass: Create a new depmodwrapper to assist cross-installs X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Feb 2013 21:40:12 -0000 X-Groupsio-MsgNum: 36050 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="WfZ7S8PLGjBY9Voh" Content-Disposition: inline --WfZ7S8PLGjBY9Voh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Feb 28, 2013 at 03:07:19PM -0600, Mark Hatle wrote: > On 2/28/13 2:53 PM, Richard Purdie wrote: > > On Thu, 2013-02-28 at 12:09 -0600, Mark Hatle wrote: > >> Previously the build path to STAGING_KERNEL_DIR was being embedded int= o the > >> package post install scripts. We avoid this behavior by generating a = special > >> depmodwrapper script. This script contains that hard-coded path, ensu= ring > >> that re-use of the sstate-cache (and/or packages) will always run thro= ugh the > >> wrapper generated by the current build with a checksum that includes > >> STAGING_KERNEL_DIR. > >> > >> [ YOCTO #3962 ] > >> > >> Signed-off-by: Mark Hatle > >> Signed-off-by: Bruce Ashfield > >> --- > >> meta/classes/image.bbclass | 4 +- > >> meta/classes/kernel.bbclass | 8 ++-- > >> meta/classes/module.bbclass | 4 +- > >> .../recipes-kernel/kmod/depmodwrapper-cross_1.0.bb | 34 ++++++++++= ++++++++++ > >> 4 files changed, 42 insertions(+), 8 deletions(-) > >> create mode 100644 meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.= bb > >> > >> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > >> index dd78acb..af17331 100644 > >> --- a/meta/classes/image.bbclass > >> +++ b/meta/classes/image.bbclass > >> @@ -10,7 +10,7 @@ inherit gzipnative > >> > >> LICENSE =3D "MIT" > >> PACKAGES =3D "" > >> -DEPENDS +=3D "${MLPREFIX}qemuwrapper-cross" > >> +DEPENDS +=3D "${MLPREFIX}qemuwrapper-cross depmodwrapper-cross" > >> RDEPENDS +=3D "${IMAGE_INSTALL} ${LINGUAS_INSTALL} ${NORMAL_FEATURE_= INSTALL} ${ROOTFS_BOOTSTRAP_INSTALL}" > >> RRECOMMENDS +=3D "${NORMAL_FEATURE_INSTALL_OPTIONAL}" > >> > >> @@ -283,7 +283,7 @@ fakeroot do_rootfs () { > >> KERNEL_VERSION=3D`cat ${STAGING_KERNEL_DIR}/kernel-abiversion` > >> > >> mkdir -p ${IMAGE_ROOTFS}/lib/modules/$KERNEL_VERSION > >> - depmod -a -b ${IMAGE_ROOTFS} -F ${STAGING_KERNEL_DIR}/System.map-$K= ERNEL_VERSION $KERNEL_VERSION > >> + depmodwrapper -a -b ${IMAGE_ROOTFS} $KERNEL_VERSION > >> fi > >> > >> ${IMAGE_PREPROCESS_COMMAND} > >> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass > >> index e8c585b..2bdc2fc 100644 > >> --- a/meta/classes/kernel.bbclass > >> +++ b/meta/classes/kernel.bbclass > >> @@ -1,7 +1,7 @@ > >> inherit linux-kernel-base module_strip > >> > >> PROVIDES +=3D "virtual/kernel" > >> -DEPENDS +=3D "virtual/${TARGET_PREFIX}gcc kmod-native" > >> +DEPENDS +=3D "virtual/${TARGET_PREFIX}gcc kmod-native depmodwrapper-c= ross" > >> > >> # we include gcc above, we dont need virtual/libc > >> INHIBIT_DEFAULT_DEPS =3D "1" > >> @@ -272,7 +272,7 @@ if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; th= en > >> mkdir -p $D/lib/modules/${KERNEL_VERSION} > >> fi > >> if [ -n "$D" ]; then > >> - depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION= } ${KERNEL_VERSION} > >> + depmodwrapper -a -b $D ${KERNEL_VERSION} > >> else > >> depmod -a ${KERNEL_VERSION} > >> fi > >> @@ -282,7 +282,7 @@ pkg_postinst_modules () { > >> if [ -z "$D" ]; then > >> depmod -a ${KERNEL_VERSION} > >> else > >> - depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION= } ${KERNEL_VERSION} > >> + depmodwrapper -a -b $D ${KERNEL_VERSION} > >> fi > >> } > >> > >> @@ -290,7 +290,7 @@ pkg_postrm_modules () { > >> if [ -z "$D" ]; then > >> depmod -a ${KERNEL_VERSION} > >> else > >> - depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION= } ${KERNEL_VERSION} > >> + depmodwrapper -a -b $D ${KERNEL_VERSION} > >> fi > >> } > >> > >> diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass > >> index e2174a1..2c1888c 100644 > >> --- a/meta/classes/module.bbclass > >> +++ b/meta/classes/module.bbclass > >> @@ -28,7 +28,7 @@ module_pkg_postinst () { > >> if [ -z "$D" ]; then > >> depmod -a ${KERNEL_VERSION} > >> else > >> - depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION= } ${KERNEL_VERSION} > >> + depmodwrapper -a -b $D ${KERNEL_VERSION} > >> fi > >> } > >> > >> @@ -36,7 +36,7 @@ module_pkg_postrm () { > >> if [ -z "$D" ]; then > >> depmod -a ${KERNEL_VERSION} > >> else > >> - depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION= } ${KERNEL_VERSION} > >> + depmodwrapper -a -b $D ${KERNEL_VERSION} > >> fi > >> } > >> > >> diff --git a/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb b/met= a/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb > >> new file mode 100644 > >> index 0000000..646c4cd > >> --- /dev/null > >> +++ b/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb > >> @@ -0,0 +1,34 @@ > >> +DESCRIPTION =3D "Depmod wrapper script" > >> +LICENSE =3D "MIT" > >> +PR =3D "r0" > >> +LIC_FILES_CHKSUM =3D "file://${COREBASE}/meta/COPYING.MIT;md5=3D3da9c= fbcb788c80a0384361b4de20420" > >> + > >> +# We need to evaluate it to the final path for vardeps to > >> +# work properly. > >> +STAGING_KERNEL_DIR :=3D "${STAGING_KERNEL_DIR}" > > > > Please get rid of the above line. Really. You do not need to do this. > > I've told you this already and I do mean it. > > > > No, it won't show up in the sstate dependencies directly but the sed run > > over text files containing "STAGING_DIR" expressions will take care of > > relocating it, hence it doesn't need to be there. > > > > If that doesn't happen, please say why the sed expressions don't catch > > it. >=20 > Without that line, the thing was never modified from what was installed i= nto the=20 > sysroot. I have no idea what is supposed to change the values, but it wa= sn't=20 > working. >=20 > Very easy to reproduce with master, take that code and run it in one buil= d,=20 > share the sstate, run it in the second. Without the :=3D bit, it keeps u= sing the=20 > old path. (I spent almost 4 hours on this yesterday before finally doing= the :=3D=20 > to make it work. I'd rather the sstate code "make it work", but it wasn'= t.) Did you append depmodwrapper to SSTATE_SCAN_FILES? > --Mark >=20 > > Cheers, > > > > Richard > > > >> +do_install() { > >> + install -d ${D}${bindir_crossscripts}/ > >> + > >> + cat > ${D}${bindir_crossscripts}/depmodwrapper << EOF > >> +#!/bin/sh > >> +# Expected to be called as: depmodwrapper -a KERNEL_VERSION > >> +if [ "\$1" !=3D "-a" -a "\$2" !=3D "-b" ]; then > >> + echo "Usage: depmodwrapper -a -b rootfs KERNEL_VERSION" >&2 > >> + exit 1 > >> +fi > >> +if [ ! -r ${STAGING_KERNEL_DIR}/System.map-\$4 ]; then > >> + echo "Unable to read: ${STAGING_KERNEL_DIR}/System.map-\$4" >&2 > >> + exec env depmod "\$1" "\$2" "\$3" "\$4" > >> +else > >> + exec env depmod "\$1" "\$2" "\$3" -F "${STAGING_KERNEL_DIR}/Syste= m.map-\$4" "\$4" > >> +fi > >> +EOF > >> + chmod +x ${D}${bindir_crossscripts}/depmodwrapper > >> +} > >> + > >> +SYSROOT_PREPROCESS_FUNCS +=3D "depmodwrapper_sysroot_preprocess" > >> + > >> +depmodwrapper_sysroot_preprocess () { > >> + sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bin= dir_crossscripts} > >> +} > > > > >=20 >=20 > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core --=20 Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com --WfZ7S8PLGjBY9Voh Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iEYEARECAAYFAlEvytsACgkQN1Ujt2V2gBzsMQCfQZdK7SIoAmjBmCd7qNIGslnR rigAn26cREm2l5WYx28fFlmkXqhZoGb9 =sVN2 -----END PGP SIGNATURE----- --WfZ7S8PLGjBY9Voh--