diff mbox

[RESEND] dtbsinstall: don't move target directory out of the way

Message ID E1ZoWXk-0007DX-SY@rmk-PC.arm.linux.org.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Russell King Oct. 20, 2015, 1:01 p.m. UTC
No other kernel installation target moves the target directory out of
the way, even deleting an old version of it.  These are destructive
operations, ones which the kernel build system should not be making.

This behaviour prevents being able to do:

	make install INSTALL_PATH=/some/path/boot
	make dtbs_install INSTALL_DTBS_PATH=/some/path/boot

As it causes the boot directory containing the kernel installed in
step 1 to be moved to /some/path/boot.old.  Things get even more fun
if you do:

	make install dtbs_install INSTALL_PATH=/some/path/boot INSTALL_DTBS_PATH=/some/path/boot

The kernel gets installed into /some/path/boot, then the directory gets
renamed to /some/path/boot.old, and a new directory created to hold the
dtbs.  Even more fun if you supply -j2 when we end up with races in
make.

Remove this behaviour.

If this behaviour is required at installation time, this should be
done by the installation external to the kernel makefiles, just like
it would be done for 'make modules_install'.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 scripts/Makefile.dtbinst | 2 --
 1 file changed, 2 deletions(-)

Comments

Jason Cooper Oct. 20, 2015, 1:20 p.m. UTC | #1
Hey Russell,

On Tue, Oct 20, 2015 at 02:01:32PM +0100, Russell King wrote:
> No other kernel installation target moves the target directory out of
> the way, even deleting an old version of it.  These are destructive
> operations, ones which the kernel build system should not be making.
> 
> This behaviour prevents being able to do:
> 
> 	make install INSTALL_PATH=/some/path/boot
> 	make dtbs_install INSTALL_DTBS_PATH=/some/path/boot
> 
> As it causes the boot directory containing the kernel installed in
> step 1 to be moved to /some/path/boot.old.  Things get even more fun
> if you do:
> 
> 	make install dtbs_install INSTALL_PATH=/some/path/boot INSTALL_DTBS_PATH=/some/path/boot
> 
> The kernel gets installed into /some/path/boot, then the directory gets
> renamed to /some/path/boot.old, and a new directory created to hold the
> dtbs.  Even more fun if you supply -j2 when we end up with races in
> make.
> 
> Remove this behaviour.
> 
> If this behaviour is required at installation time, this should be
> done by the installation external to the kernel makefiles, just like
> it would be done for 'make modules_install'.
> 
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Acked-by: Jason Cooper <jason@lakedaemon.net>

fwiw, I honestly don't remember adding this brokenness, but the git
history doesn't lie:

  f4d4ffc03efc8 kbuild: dtbs_install: new make target

thx,

Jason.

> ---
>  scripts/Makefile.dtbinst | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
> index 1c15717e0d56..a1be75d0a5fd 100644
> --- a/scripts/Makefile.dtbinst
> +++ b/scripts/Makefile.dtbinst
> @@ -23,8 +23,6 @@ include $(src)/Makefile
>  PHONY += __dtbs_install_prep
>  __dtbs_install_prep:
>  ifeq ("$(dtbinst-root)", "$(obj)")
> -	$(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi
> -	$(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi
>  	$(Q)mkdir -p $(INSTALL_DTBS_PATH)
>  endif
>  
> -- 
> 2.1.0
> 
--
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
Russell King - ARM Linux Jan. 27, 2016, 8:18 p.m. UTC | #2
So what needs to happen to get this change merged?

On Tue, Oct 20, 2015 at 01:20:02PM +0000, Jason Cooper wrote:
> Hey Russell,
> 
> On Tue, Oct 20, 2015 at 02:01:32PM +0100, Russell King wrote:
> > No other kernel installation target moves the target directory out of
> > the way, even deleting an old version of it.  These are destructive
> > operations, ones which the kernel build system should not be making.
> > 
> > This behaviour prevents being able to do:
> > 
> > 	make install INSTALL_PATH=/some/path/boot
> > 	make dtbs_install INSTALL_DTBS_PATH=/some/path/boot
> > 
> > As it causes the boot directory containing the kernel installed in
> > step 1 to be moved to /some/path/boot.old.  Things get even more fun
> > if you do:
> > 
> > 	make install dtbs_install INSTALL_PATH=/some/path/boot INSTALL_DTBS_PATH=/some/path/boot
> > 
> > The kernel gets installed into /some/path/boot, then the directory gets
> > renamed to /some/path/boot.old, and a new directory created to hold the
> > dtbs.  Even more fun if you supply -j2 when we end up with races in
> > make.
> > 
> > Remove this behaviour.
> > 
> > If this behaviour is required at installation time, this should be
> > done by the installation external to the kernel makefiles, just like
> > it would be done for 'make modules_install'.
> > 
> > Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> 
> Acked-by: Jason Cooper <jason@lakedaemon.net>
> 
> fwiw, I honestly don't remember adding this brokenness, but the git
> history doesn't lie:
> 
>   f4d4ffc03efc8 kbuild: dtbs_install: new make target
> 
> thx,
> 
> Jason.
> 
> > ---
> >  scripts/Makefile.dtbinst | 2 --
> >  1 file changed, 2 deletions(-)
> > 
> > diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
> > index 1c15717e0d56..a1be75d0a5fd 100644
> > --- a/scripts/Makefile.dtbinst
> > +++ b/scripts/Makefile.dtbinst
> > @@ -23,8 +23,6 @@ include $(src)/Makefile
> >  PHONY += __dtbs_install_prep
> >  __dtbs_install_prep:
> >  ifeq ("$(dtbinst-root)", "$(obj)")
> > -	$(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi
> > -	$(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi
> >  	$(Q)mkdir -p $(INSTALL_DTBS_PATH)
> >  endif
> >  
> > -- 
> > 2.1.0
> >
Michal Marek Jan. 27, 2016, 9:32 p.m. UTC | #3
Dne 27.1.2016 v 21:18 Russell King - ARM Linux napsal(a):
> So what needs to happen to get this change merged?

Rob, Grant, shall I merged it to the kbuild tree or do you want to take it?

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
Rob Herring Jan. 28, 2016, 1:13 a.m. UTC | #4
On Wed, Jan 27, 2016 at 3:32 PM, Michal Marek <mmarek@suse.com> wrote:
> Dne 27.1.2016 v 21:18 Russell King - ARM Linux napsal(a):
>> So what needs to happen to get this change merged?
>
> Rob, Grant, shall I merged it to the kbuild tree or do you want to take it?

Yes, please take it.

Acked-by: Rob Herring <robh@kernel.org>

Rob
--
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 Jan. 28, 2016, 10:44 a.m. UTC | #5
Dne 28.1.2016 v 02:13 Rob Herring napsal(a):
> On Wed, Jan 27, 2016 at 3:32 PM, Michal Marek <mmarek@suse.com> wrote:
>> Dne 27.1.2016 v 21:18 Russell King - ARM Linux napsal(a):
>>> So what needs to happen to get this change merged?
>>
>> Rob, Grant, shall I merged it to the kbuild tree or do you want to take it?
> 
> Yes, please take it.
> 
> Acked-by: Rob Herring <robh@kernel.org>

Done.

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
diff mbox

Patch

diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
index 1c15717e0d56..a1be75d0a5fd 100644
--- a/scripts/Makefile.dtbinst
+++ b/scripts/Makefile.dtbinst
@@ -23,8 +23,6 @@  include $(src)/Makefile
 PHONY += __dtbs_install_prep
 __dtbs_install_prep:
 ifeq ("$(dtbinst-root)", "$(obj)")
-	$(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi
-	$(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi
 	$(Q)mkdir -p $(INSTALL_DTBS_PATH)
 endif