diff mbox

deb-pkg: Fix for relative paths

Message ID 1402928339-29785-1-git-send-email-mmarek@suse.cz (mailing list archive)
State New, archived
Headers show

Commit Message

Michal Marek June 16, 2014, 2:18 p.m. UTC
When $srctree or $objtree are relative paths, we cannot change directory
and refer to them in the same subshell. Do the redirection outside of
the subshell to fix this.

Reported-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
---
 scripts/package/builddeb | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Alexei Starovoitov June 17, 2014, 2:47 a.m. UTC | #1
On Mon, Jun 16, 2014 at 7:18 AM, Michal Marek <mmarek@suse.cz> wrote:
> When $srctree or $objtree are relative paths, we cannot change directory
> and refer to them in the same subshell. Do the redirection outside of
> the subshell to fix this.
>
> Reported-by: Ilya Dryomov <idryomov@gmail.com>
> Signed-off-by: Michal Marek <mmarek@suse.cz>
> ---
>  scripts/package/builddeb | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)

this patch didn't help to fix the broken deb-pkg for me:

../scripts/Makefile.build:44: ../../scripts/package/Makefile: No such
file or directory
make[2]: *** No rule to make target `../../scripts/package/Makefile'.  Stop.
make[1]: *** [deb-pkg] Error 2

steps to reproduce:
$ export KBUILD_OUTPUT=/make it out of src tree
$ make deb-pkg

> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index b5f08f7..9a38e85 100644
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -290,13 +290,13 @@ EOF
>  fi
>
>  # Build header package
> -(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles")
> -(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles")
> -(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles")
> +(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles"
> +(cd $srctree; find arch/$SRCARCH/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles"
> +(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles"
>  destdir=$kernel_headers_dir/usr/src/linux-headers-$version
>  mkdir -p "$destdir"
> -(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
> -(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
> +(cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -)
> +(cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -)
>  (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be
>  ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
>  rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
> --
> 1.9.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ilya Dryomov June 18, 2014, 7:52 a.m. UTC | #2
On Tue, Jun 17, 2014 at 6:47 AM, Alexei Starovoitov
<alexei.starovoitov@gmail.com> wrote:
> On Mon, Jun 16, 2014 at 7:18 AM, Michal Marek <mmarek@suse.cz> wrote:
>> When $srctree or $objtree are relative paths, we cannot change directory
>> and refer to them in the same subshell. Do the redirection outside of
>> the subshell to fix this.
>>
>> Reported-by: Ilya Dryomov <idryomov@gmail.com>
>> Signed-off-by: Michal Marek <mmarek@suse.cz>
>> ---
>>  scripts/package/builddeb | 10 +++++-----
>>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> this patch didn't help to fix the broken deb-pkg for me:

Alexei, you must have some other issue with your environment.  This
patch fixes it for me, and in fact I had almost the exact same patch
committed internally in the interim.  (I wanted to give Michal the
opportunity to fix this perhaps in a more general way, since tar
targets seems to misbehave too.)

Thanks,

                Ilya
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michal Marek June 18, 2014, 11:08 a.m. UTC | #3
Dne 18.6.2014 09:52, Ilya Dryomov napsal(a):
> On Tue, Jun 17, 2014 at 6:47 AM, Alexei Starovoitov
> <alexei.starovoitov@gmail.com> wrote:
>> On Mon, Jun 16, 2014 at 7:18 AM, Michal Marek <mmarek@suse.cz> wrote:
>>> When $srctree or $objtree are relative paths, we cannot change directory
>>> and refer to them in the same subshell. Do the redirection outside of
>>> the subshell to fix this.
>>>
>>> Reported-by: Ilya Dryomov <idryomov@gmail.com>
>>> Signed-off-by: Michal Marek <mmarek@suse.cz>
>>> ---
>>>  scripts/package/builddeb | 10 +++++-----
>>>  1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> this patch didn't help to fix the broken deb-pkg for me:
> 
> Alexei, you must have some other issue with your environment.  This
> patch fixes it for me, and in fact I had almost the exact same patch
> committed internally in the interim.  (I wanted to give Michal the
> opportunity to fix this perhaps in a more general way, since tar
> targets seems to misbehave too.)

So can I add your Tested-by: and send it to Linus? I haven't managed to
set up a debian building environment yesterday and I'm a bit busy today.

Thanks,
Michal

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ilya Dryomov June 18, 2014, 12:43 p.m. UTC | #4
> Dne 18.6.2014 09:52, Ilya Dryomov napsal(a):
>> On Tue, Jun 17, 2014 at 6:47 AM, Alexei Starovoitov
>> <alexei.starovoitov@gmail.com> wrote:
>>> On Mon, Jun 16, 2014 at 7:18 AM, Michal Marek <mmarek@suse.cz> wrote:
>>>> When $srctree or $objtree are relative paths, we cannot change directory
>>>> and refer to them in the same subshell. Do the redirection outside of
>>>> the subshell to fix this.
>>>>
>>>> Reported-by: Ilya Dryomov <idryomov@gmail.com>
>>>> Signed-off-by: Michal Marek <mmarek@suse.cz>
>>>> ---
>>>>  scripts/package/builddeb | 10 +++++-----
>>>>  1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> this patch didn't help to fix the broken deb-pkg for me:
>>
>> Alexei, you must have some other issue with your environment.  This
>> patch fixes it for me, and in fact I had almost the exact same patch
>> committed internally in the interim.  (I wanted to give Michal the
>> opportunity to fix this perhaps in a more general way, since tar
>> targets seems to misbehave too.)
>
> So can I add your Tested-by: and send it to Linus? I haven't managed to
> set up a debian building environment yesterday and I'm a bit busy today.

Yes, Tested-by: Ilya Dryomov <idryomov@gmail.com>

Thanks,

                Ilya
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index b5f08f7..9a38e85 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -290,13 +290,13 @@  EOF
 fi
 
 # Build header package
-(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles")
-(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles")
-(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles")
+(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles"
+(cd $srctree; find arch/$SRCARCH/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles"
+(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles"
 destdir=$kernel_headers_dir/usr/src/linux-headers-$version
 mkdir -p "$destdir"
-(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
-(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
+(cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -)
+(cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -)
 (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be
 ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
 rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"