On Wed, Jan 11, 2012 at 12:07 AM, Andrea Adami <andrea.ad...@gmail.com> wrote: > On Fri, Jan 6, 2012 at 11:58 PM, Andrea Adami <andrea.ad...@gmail.com> wrote: >> On Fri, Jan 6, 2012 at 11:57 AM, Richard Purdie >> <richard.pur...@linuxfoundation.org> wrote: >>> On Fri, 2012-01-06 at 02:00 +0100, Andrea Adami wrote: >>>> On Fri, Jan 6, 2012 at 12:36 AM, Darren Hart <dvh...@linux.intel.com> >>>> wrote: >>>> > >>>> > >>>> > On 01/05/2012 04:30 AM, Richard Purdie wrote: >>>> >> On Thu, 2012-01-05 at 01:05 +0100, Andrea Adami wrote: >>>> >>> I'd say we have to test for the in-existence of the file instead of >>>> >>> blindly touching it. >>>> >>> Smthg like >>>> >>> >>>> >>> if [! -e ${IMAGE_ROOTFS}/init]; then >>>> >>> touch ${IMAGE_ROOTFS}/init >>>> >>> fi >>>> > >>>> > Why? Touch creates it if it doesn't exist and updates the modtime if it >>>> > does. It doesn't modify the content of the file if it exists. What is >>>> > the motivation for testing for it's existence? >>>> > >>>> touch fails with Permission denied because one package in my rootfs >>>> already created the symlink >>>> >>>> >>> >>>> >>> >>>> >>> Now, repeating that block for all 4 cpio images is a bit ugly... >>>> >>> better ideas? >>>> >> >>>> >> Make it a shell function we call? I'd also check for >>>> >> ${base_sbindir}/init first too? >>>> > >>>> > Why check for that? So we can link to it instead of creating an empty >>>> > file? >>>> >>>> Nonsense, kernel looks for /init >>>> ( >>>> http://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt >>>> ) >>> >>> Yes, please ignore my comment about /sbin/init, I'm misremembering >>> something. We should deal with the symlink case though. >>> >>> Cheers, >>> >>> Richard >>> >>> >>> _______________________________________________ >>> Openembedded-core mailing list >>> Openembedded-core@lists.openembedded.org >>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core >> >> ok, I think the issue is the behavior of touch when trying to change >> the timestamp of a symlink. >> >> http://fossplanet.com/f13/bug-7122-touch-gnu-coreutils-7-4-no-way-touch-symlink-57418/ >> >> Using 'touch -h' seems solving the issue and the image is built. >> However, the timestamp of the /init symlink now differs from the >> timestamp of the binary. >> >> Regards >> >> Andrea > > > Ok, now I think I understand the issue: > > the /init symlink in rootfs is absolute, being its path is pointing to > /usr/bin/kexecboot in our case. > Now, until this becomes the real rootfs, the symlink appears broken > and that's why adding the -h (do not dereference) fixes the case of > existent symlink. > > Unfortunately it appears touch -h fails if /init is a file and not a > symlink (tested now).
This must have been an error on my side mixing previous builds. No errors using touch -h on files. Sorry for the confusion > > Afterall, I think it would be easier to add a guard around touch as > initially proposed. > > Just my 2 cents > Andrea _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core