Patchwork runqemu: Ensure ROOTFS path is absolute

login
register
mail settings
Submitter Saul Wold
Date Feb. 20, 2014, 8:57 p.m.
Message ID <1392929845-23411-1-git-send-email-sgw@linux.intel.com>
Download mbox | patch
Permalink /patch/67071/
State Accepted
Commit 425dc69bc7b9ea0f8ca886c442e37bba4f76ec8f
Headers show

Comments

Saul Wold - Feb. 20, 2014, 8:57 p.m.
There is a problem if a relative path is passed to the kernel for NFS usage
that it will not correctly find it, so ensure that the ROOTFS path is absolute.

[YOCTO #2807]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 scripts/runqemu | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Khem Raj - Feb. 22, 2014, 5:57 a.m.
On Feb 20, 2014, at 12:57 PM, Saul Wold <sgw@linux.intel.com> wrote:

> There is a problem if a relative path is passed to the kernel for NFS usage
> that it will not correctly find it, so ensure that the ROOTFS path is absolute.
> 
> [YOCTO #2807]
> 
> Signed-off-by: Saul Wold <sgw@linux.intel.com>
> ---
> scripts/runqemu | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/runqemu b/scripts/runqemu
> index 0db7ad6..57c5de4 100755
> --- a/scripts/runqemu
> +++ b/scripts/runqemu
> @@ -462,7 +462,9 @@ if [ -z "$ROOTFS" -a "x$FSTYPE" != "xvmdk" ]; then
>         error "Unable to determine default rootfs for MACHINE [$MACHINE]"
>     fi
> fi
> -# ROOTFS is now set for all cases
> +# ROOTFS is now set for all cases, now expand it to be an absolute path, it should exist at this point
> +
> +ROOTFS=`realpath $ROOTFS`

I think this change also means we need to add dependency on realpath package as prerequisite for build host.
Paul Eggleton - Feb. 22, 2014, 12:55 p.m.
On Friday 21 February 2014 21:57:37 Khem Raj wrote:
> On Feb 20, 2014, at 12:57 PM, Saul Wold <sgw@linux.intel.com> wrote:
> > There is a problem if a relative path is passed to the kernel for NFS
> > usage
> > that it will not correctly find it, so ensure that the ROOTFS path is
> > absolute.
> > 
> > [YOCTO #2807]
> > 
> > Signed-off-by: Saul Wold <sgw@linux.intel.com>
> > ---
> > scripts/runqemu | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/scripts/runqemu b/scripts/runqemu
> > index 0db7ad6..57c5de4 100755
> > --- a/scripts/runqemu
> > +++ b/scripts/runqemu
> > @@ -462,7 +462,9 @@ if [ -z "$ROOTFS" -a "x$FSTYPE" != "xvmdk" ]; then
> > 
> >         error "Unable to determine default rootfs for MACHINE [$MACHINE]"
> >     
> >     fi
> > 
> > fi
> > -# ROOTFS is now set for all cases
> > +# ROOTFS is now set for all cases, now expand it to be an absolute path,
> > it should exist at this point +
> > +ROOTFS=`realpath $ROOTFS`
> 
> I think this change also means we need to add dependency on realpath package
> as prerequisite for build host.

realpath is part of coreutils. Another alternative would be readlink -f (but 
that also appears to be part of coreutils.)

Cheers,
Paul
Paul Barker - Feb. 22, 2014, 4:21 p.m.
On 22 February 2014 12:55, Paul Eggleton <paul.eggleton@linux.intel.com> wrote:
> On Friday 21 February 2014 21:57:37 Khem Raj wrote:
>> On Feb 20, 2014, at 12:57 PM, Saul Wold <sgw@linux.intel.com> wrote:
>> > There is a problem if a relative path is passed to the kernel for NFS
>> > usage
>> > that it will not correctly find it, so ensure that the ROOTFS path is
>> > absolute.
>> >
>> > [YOCTO #2807]
>> >
>> > Signed-off-by: Saul Wold <sgw@linux.intel.com>
>> > ---
>> > scripts/runqemu | 4 +++-
>> > 1 file changed, 3 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/scripts/runqemu b/scripts/runqemu
>> > index 0db7ad6..57c5de4 100755
>> > --- a/scripts/runqemu
>> > +++ b/scripts/runqemu
>> > @@ -462,7 +462,9 @@ if [ -z "$ROOTFS" -a "x$FSTYPE" != "xvmdk" ]; then
>> >
>> >         error "Unable to determine default rootfs for MACHINE [$MACHINE]"
>> >
>> >     fi
>> >
>> > fi
>> > -# ROOTFS is now set for all cases
>> > +# ROOTFS is now set for all cases, now expand it to be an absolute path,
>> > it should exist at this point +
>> > +ROOTFS=`realpath $ROOTFS`
>>
>> I think this change also means we need to add dependency on realpath package
>> as prerequisite for build host.
>
> realpath is part of coreutils. Another alternative would be readlink -f (but
> that also appears to be part of coreutils.)
>

Looks like busybox should provide realpath:
http://www.busybox.net/downloads/BusyBox.html#realpath

Thanks,
Khem Raj - Feb. 22, 2014, 4:34 p.m.
On Feb 22, 2014, at 4:55 AM, Paul Eggleton <paul.eggleton@linux.intel.com> wrote:

> On Friday 21 February 2014 21:57:37 Khem Raj wrote:
>> On Feb 20, 2014, at 12:57 PM, Saul Wold <sgw@linux.intel.com> wrote:
>>> There is a problem if a relative path is passed to the kernel for NFS
>>> usage
>>> that it will not correctly find it, so ensure that the ROOTFS path is
>>> absolute.
>>> 
>>> [YOCTO #2807]
>>> 
>>> Signed-off-by: Saul Wold <sgw@linux.intel.com>
>>> ---
>>> scripts/runqemu | 4 +++-
>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>> 
>>> diff --git a/scripts/runqemu b/scripts/runqemu
>>> index 0db7ad6..57c5de4 100755
>>> --- a/scripts/runqemu
>>> +++ b/scripts/runqemu
>>> @@ -462,7 +462,9 @@ if [ -z "$ROOTFS" -a "x$FSTYPE" != "xvmdk" ]; then
>>> 
>>>        error "Unable to determine default rootfs for MACHINE [$MACHINE]"
>>> 
>>>    fi
>>> 
>>> fi
>>> -# ROOTFS is now set for all cases
>>> +# ROOTFS is now set for all cases, now expand it to be an absolute path,
>>> it should exist at this point +
>>> +ROOTFS=`realpath $ROOTFS`
>> 
>> I think this change also means we need to add dependency on realpath package
>> as prerequisite for build host.
> 
> realpath is part of coreutils.

realpath is package of its own not coreutils, at least on ubuntu

> Another alternative would be readlink -f (but 
> that also appears to be part of coreutils.)


this might be better options since coreutils is more or less
given on any distro

> 
> Cheers,
> Paul
> 
> -- 
> 
> Paul Eggleton
> Intel Open Source Technology Centre
Alexandru Palalau - Feb. 25, 2014, 3:10 p.m.
On 2/22/2014 6:34 PM, Khem Raj wrote:
>
> On Feb 22, 2014, at 4:55 AM, Paul Eggleton <paul.eggleton@linux.intel.com> wrote:
>
>> On Friday 21 February 2014 21:57:37 Khem Raj wrote:
>>> On Feb 20, 2014, at 12:57 PM, Saul Wold <sgw@linux.intel.com> wrote:
>>>> There is a problem if a relative path is passed to the kernel for NFS
>>>> usage
>>>> that it will not correctly find it, so ensure that the ROOTFS path is
>>>> absolute.
>>>>
>>>> [YOCTO #2807]
>>>>
>>>> Signed-off-by: Saul Wold <sgw@linux.intel.com>
>>>> ---
>>>> scripts/runqemu | 4 +++-
>>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/scripts/runqemu b/scripts/runqemu
>>>> index 0db7ad6..57c5de4 100755
>>>> --- a/scripts/runqemu
>>>> +++ b/scripts/runqemu
>>>> @@ -462,7 +462,9 @@ if [ -z "$ROOTFS" -a "x$FSTYPE" != "xvmdk" ]; then
>>>>
>>>>         error "Unable to determine default rootfs for MACHINE [$MACHINE]"
>>>>
>>>>     fi
>>>>
>>>> fi
>>>> -# ROOTFS is now set for all cases
>>>> +# ROOTFS is now set for all cases, now expand it to be an absolute path,
>>>> it should exist at this point +
>>>> +ROOTFS=`realpath $ROOTFS`
>>>
>>> I think this change also means we need to add dependency on realpath package
>>> as prerequisite for build host.
>>
>> realpath is part of coreutils.
>
> realpath is package of its own not coreutils, at least on ubuntu

On CentOS 6.5 realpath is not part of coreutils and is not part of a 
default repo. I could find it only on RPMforge.

>
>> Another alternative would be readlink -f (but
>> that also appears to be part of coreutils.)
>
>
> this might be better options since coreutils is more or less
> given on any distro
>
>>
>> Cheers,
>> Paul
>>
>> --
>>
>> Paul Eggleton
>> Intel Open Source Technology Centre
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
Alexandru Palalau - Feb. 25, 2014, 3:16 p.m.
On 2/25/2014 5:10 PM, Alexandru Palalau wrote:
> On 2/22/2014 6:34 PM, Khem Raj wrote:
>>
>> On Feb 22, 2014, at 4:55 AM, Paul Eggleton
>> <paul.eggleton@linux.intel.com> wrote:
>>
>>> On Friday 21 February 2014 21:57:37 Khem Raj wrote:
>>>> On Feb 20, 2014, at 12:57 PM, Saul Wold <sgw@linux.intel.com> wrote:
>>>>> There is a problem if a relative path is passed to the kernel for NFS
>>>>> usage
>>>>> that it will not correctly find it, so ensure that the ROOTFS path is
>>>>> absolute.
>>>>>
>>>>> [YOCTO #2807]
>>>>>
>>>>> Signed-off-by: Saul Wold <sgw@linux.intel.com>
>>>>> ---
>>>>> scripts/runqemu | 4 +++-
>>>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/scripts/runqemu b/scripts/runqemu
>>>>> index 0db7ad6..57c5de4 100755
>>>>> --- a/scripts/runqemu
>>>>> +++ b/scripts/runqemu
>>>>> @@ -462,7 +462,9 @@ if [ -z "$ROOTFS" -a "x$FSTYPE" != "xvmdk" ]; then
>>>>>
>>>>>         error "Unable to determine default rootfs for MACHINE
>>>>> [$MACHINE]"
>>>>>
>>>>>     fi
>>>>>
>>>>> fi
>>>>> -# ROOTFS is now set for all cases
>>>>> +# ROOTFS is now set for all cases, now expand it to be an absolute
>>>>> path,
>>>>> it should exist at this point +
>>>>> +ROOTFS=`realpath $ROOTFS`
>>>>
>>>> I think this change also means we need to add dependency on realpath
>>>> package
>>>> as prerequisite for build host.
>>>
>>> realpath is part of coreutils.
>>
>> realpath is package of its own not coreutils, at least on ubuntu
>
> On CentOS 6.5 realpath is not part of coreutils and is not part of a
> default repo. I could find it only on RPMforge.
Added https://bugzilla.yoctoproject.org/show_bug.cgi?id=5879 on this matter.
>
>>
>>> Another alternative would be readlink -f (but
>>> that also appears to be part of coreutils.)
>>
>>
>> this might be better options since coreutils is more or less
>> given on any distro
>>
>>>
>>> Cheers,
>>> Paul
>>>
>>> --
>>>
>>> Paul Eggleton
>>> Intel Open Source Technology Centre
>>
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>
>
>

Patch

diff --git a/scripts/runqemu b/scripts/runqemu
index 0db7ad6..57c5de4 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -462,7 +462,9 @@  if [ -z "$ROOTFS" -a "x$FSTYPE" != "xvmdk" ]; then
         error "Unable to determine default rootfs for MACHINE [$MACHINE]"
     fi
 fi
-# ROOTFS is now set for all cases
+# ROOTFS is now set for all cases, now expand it to be an absolute path, it should exist at this point
+
+ROOTFS=`realpath $ROOTFS`
 
 echo ""
 echo "Continuing with the following parameters:"