All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] linux custom tarball: automatically detect a change in tarball configuration
@ 2011-09-21  8:55 Thomas De Schampheleire
  2011-09-22 19:58 ` Thomas Petazzoni
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas De Schampheleire @ 2011-09-21  8:55 UTC (permalink / raw)
  To: buildroot

When you specify a LINUX_TARBALL, the variable LINUX_VERSION will be set to
the fixed "custom". As a result, LINUX_DIR remains the same even though you
modified the .config file to specify a different tarball.  When re-running
make, buildroot does not see the change because the stamp files still look
up-to-date, and you'll have to force building the new kernel in some way.

This patch overwrites LINUX_VERSION to include the LINUX_TARBALL string, If a
new custom tarball is configured, LINUX_DIR will be different, the old stamp
files will not matter, and buildroot will correctly start the build process for
the new kernel.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
---

 linux/linux.mk |  4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/linux/linux.mk b/linux/linux.mk
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -10,6 +10,10 @@
 LINUX_TARBALL = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION))
 LINUX_SITE = $(dir $(LINUX_TARBALL))
 LINUX_SOURCE = $(notdir $(LINUX_TARBALL))
+# Overwrite LINUX_VERSION so that LINUX_DIR becomes unique, in which case a
+# change in the LINUX_TARBALL configuration automatically gets picked up.
+LINUX_VERSION = custom-$(LINUX_TARBALL)
+
 else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_GIT),y)
 LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL))
 LINUX_SITE_METHOD = git

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH] linux custom tarball: automatically detect a change in tarball configuration
  2011-09-21  8:55 [Buildroot] [PATCH] linux custom tarball: automatically detect a change in tarball configuration Thomas De Schampheleire
@ 2011-09-22 19:58 ` Thomas Petazzoni
  2011-09-23  6:16   ` Thomas De Schampheleire
  2011-09-27  8:56   ` Daniel Nyström
  0 siblings, 2 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2011-09-22 19:58 UTC (permalink / raw)
  To: buildroot

Le Wed, 21 Sep 2011 10:55:54 +0200,
Thomas De Schampheleire <patrickdepinguin+buildroot@gmail.com> a ?crit :

> When you specify a LINUX_TARBALL, the variable LINUX_VERSION will be set to
> the fixed "custom". As a result, LINUX_DIR remains the same even though you
> modified the .config file to specify a different tarball.  When re-running
> make, buildroot does not see the change because the stamp files still look
> up-to-date, and you'll have to force building the new kernel in some way.
> 
> This patch overwrites LINUX_VERSION to include the LINUX_TARBALL string, If a
> new custom tarball is configured, LINUX_DIR will be different, the old stamp
> files will not matter, and buildroot will correctly start the build process for
> the new kernel.

Sorry, but LINUX_TARBALL can be something like
http://foobar.com/blah/blek/linux-3.11.0.tar.bz2, and I don't think
it's a good idea to create a directory named
linux-custom-http://foobar.com/blah/blek/linux-3.11.0.tar.bz2

You could do something like:

LINUX_VERSION = $(LINUX_SOURCE), in which case the directory would be:

linux-linux-3.11.0.tar.bz2/ in the case highlighted above, which is not
very nice either.

Or:

LINUX_VERSION = $(firstword $(shell echo $(LINUX_TARBALL) | md5sum)

which would create a hash from the LINUX_TARBALL URL, and that hash
would change when the LINUX_TARBALL URL is changed. I don't know if
it's nicer.

I agree that their is a minor inconvenience in having the directory
always named linux-custom/, but I don't have a good solution in mind.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH] linux custom tarball: automatically detect a change in tarball configuration
  2011-09-22 19:58 ` Thomas Petazzoni
@ 2011-09-23  6:16   ` Thomas De Schampheleire
  2011-09-27  6:18     ` Arnout Vandecappelle
  2011-09-27  8:56   ` Daniel Nyström
  1 sibling, 1 reply; 5+ messages in thread
From: Thomas De Schampheleire @ 2011-09-23  6:16 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Thu, Sep 22, 2011 at 9:58 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Le Wed, 21 Sep 2011 10:55:54 +0200,
> Thomas De Schampheleire <patrickdepinguin+buildroot@gmail.com> a ?crit :
>
>> When you specify a LINUX_TARBALL, the variable LINUX_VERSION will be set to
>> the fixed "custom". As a result, LINUX_DIR remains the same even though you
>> modified the .config file to specify a different tarball. ?When re-running
>> make, buildroot does not see the change because the stamp files still look
>> up-to-date, and you'll have to force building the new kernel in some way.
>>
>> This patch overwrites LINUX_VERSION to include the LINUX_TARBALL string, If a
>> new custom tarball is configured, LINUX_DIR will be different, the old stamp
>> files will not matter, and buildroot will correctly start the build process for
>> the new kernel.
>
> Sorry, but LINUX_TARBALL can be something like
> http://foobar.com/blah/blek/linux-3.11.0.tar.bz2, and I don't think
> it's a good idea to create a directory named
> linux-custom-http://foobar.com/blah/blek/linux-3.11.0.tar.bz2
>

Ai, I didn't think of that. In my case, I'm relying on the
BR2_PRIMARY_SITE to know where the tarball is at.
The directory that's created in that case would be:
linux-custom-linux-2.XXX-myproject.tar.bz2

> You could do something like:
>
> LINUX_VERSION = $(LINUX_SOURCE), in which case the directory would be:
>
> linux-linux-3.11.0.tar.bz2/ in the case highlighted above, which is not
> very nice either.

I agree that these directory names do not look very good. But they do
uniquely map a custom tarball on a directory, and cause the build
process to detect a change in tarball.
Personally, I don't mind having such a funny-looking directory in output/build.

>
> Or:
>
> LINUX_VERSION = $(firstword $(shell echo $(LINUX_TARBALL) | md5sum)
>
> which would create a hash from the LINUX_TARBALL URL, and that hash
> would change when the LINUX_TARBALL URL is changed. I don't know if
> it's nicer.

This would also do the trick, but has the downside of not being
user-readable. If a user changes from tarball, he will have two linux
directories in output/build, and no direct way of knowing which is the
old and new one (except for looking at the timestamp or calculating
the md5sum himself).

>
> I agree that their is a minor inconvenience in having the directory
> always named linux-custom/, but I don't have a good solution in mind.

The other solution that I implemented in buildroot-2010.11 is to make
the download step depend on the tarball, instead of on a stamp file.
Since linux now uses gentargets, this would require a change in the
whole of gentargets as well.
Essentially, the .stamp_downloaded file would be no longer needed, and
the tarball would serve as stamp file.

Would you prefer such a solution?

Best regards,
Thomas

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH] linux custom tarball: automatically detect a change in tarball configuration
  2011-09-23  6:16   ` Thomas De Schampheleire
@ 2011-09-27  6:18     ` Arnout Vandecappelle
  0 siblings, 0 replies; 5+ messages in thread
From: Arnout Vandecappelle @ 2011-09-27  6:18 UTC (permalink / raw)
  To: buildroot


On Friday 23 September 2011 08:16:09, Thomas De Schampheleire wrote:
> > I agree that their is a minor inconvenience in having the directory
> > always named linux-custom/, but I don't have a good solution in mind.
> 
> The other solution that I implemented in buildroot-2010.11 is to make
> the download step depend on the tarball, instead of on a stamp file.
> Since linux now uses gentargets, this would require a change in the
> whole of gentargets as well.
> Essentially, the .stamp_downloaded file would be no longer needed, and
> the tarball would serve as stamp file.
> 
> Would you prefer such a solution?

 I certainly would.

 I never really understood why the dependencies are between the phony targets 
instead of the stamp files.  Otherwise, I could just touch a stamp file to 
force all subsequent build steps to run.  However, I guess the buildroot 
masters must have their reasons :-)

 Regards,
 Arnout

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20110927/54579cfd/attachment-0001.html>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH] linux custom tarball: automatically detect a change in tarball configuration
  2011-09-22 19:58 ` Thomas Petazzoni
  2011-09-23  6:16   ` Thomas De Schampheleire
@ 2011-09-27  8:56   ` Daniel Nyström
  1 sibling, 0 replies; 5+ messages in thread
From: Daniel Nyström @ 2011-09-27  8:56 UTC (permalink / raw)
  To: buildroot

On Thu, Sep 22, 2011 at 9:58 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Le Wed, 21 Sep 2011 10:55:54 +0200,
> Thomas De Schampheleire <patrickdepinguin+buildroot@gmail.com> a ?crit :
>
>> When you specify a LINUX_TARBALL, the variable LINUX_VERSION will be set to
>> the fixed "custom". As a result, LINUX_DIR remains the same even though you
>> modified the .config file to specify a different tarball. ?When re-running
>> make, buildroot does not see the change because the stamp files still look
>> up-to-date, and you'll have to force building the new kernel in some way.
>>
>> This patch overwrites LINUX_VERSION to include the LINUX_TARBALL string, If a
>> new custom tarball is configured, LINUX_DIR will be different, the old stamp
>> files will not matter, and buildroot will correctly start the build process for
>> the new kernel.
>
> Sorry, but LINUX_TARBALL can be something like
> http://foobar.com/blah/blek/linux-3.11.0.tar.bz2, and I don't think
> it's a good idea to create a directory named
> linux-custom-http://foobar.com/blah/blek/linux-3.11.0.tar.bz2

$ echo "http://foobar.com/blah/blek/linux-3.11.0.tar.bz2" | sed -e
's|^[a-z]*://||;s|[/]|_|g'
foobar.com_blah_blek_linux-3.11.0.tar.bz2

How would "output/build/linux-foobar.com_blah_blek_linux-3.11.0.tar.bz2/" work?

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-09-27  8:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-21  8:55 [Buildroot] [PATCH] linux custom tarball: automatically detect a change in tarball configuration Thomas De Schampheleire
2011-09-22 19:58 ` Thomas Petazzoni
2011-09-23  6:16   ` Thomas De Schampheleire
2011-09-27  6:18     ` Arnout Vandecappelle
2011-09-27  8:56   ` Daniel Nyström

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.