diff mbox

pkg-infra: rename <pkg>-rsync to <pkg>-extract

Message ID 1350225704-5693-1-git-send-email-arnout@mind.be
State Superseded
Headers show

Commit Message

Arnout Vandecappelle Oct. 14, 2012, 2:41 p.m. UTC
The legal-info target (and possibly others as well) depends on
<pkg>-extract to make sure the license file is available.  However,
when <PKG>_OVERRIDE_SRCDIR is active, the <pkg>-extract target
doesn't exist.

To solve this, we just call the target that rsyncs the source
<pkg>-extract.

While we're at it, also add a <pkg>-patch target (which is equivalent
to <pkg>-extract).  That avoids the same problem in the future if
something starts depending on <pkg>-patch.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

---
 package/pkg-generic.mk |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Thomas Petazzoni Oct. 14, 2012, 6:01 p.m. UTC | #1
Arnout,

On Sun, 14 Oct 2012 16:41:44 +0200, Arnout Vandecappelle
(Essensium/Mind) wrote:
> The legal-info target (and possibly others as well) depends on
> <pkg>-extract to make sure the license file is available.  However,
> when <PKG>_OVERRIDE_SRCDIR is active, the <pkg>-extract target
> doesn't exist.
> 
> To solve this, we just call the target that rsyncs the source
> <pkg>-extract.
> 
> While we're at it, also add a <pkg>-patch target (which is equivalent
> to <pkg>-extract).  That avoids the same problem in the future if
> something starts depending on <pkg>-patch.
> 
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> 
> ---
>  package/pkg-generic.mk |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index ffe7dfb..c2c1b06 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -378,9 +378,11 @@ else
>  $(1)-configure:		$(1)-depends \
>  			$$($(2)_TARGET_CONFIGURE)
>  
> -$(1)-depends:		$(1)-rsync $$($(2)_DEPENDENCIES)
> +$(1)-depends:		$(1)-extract $$($(2)_DEPENDENCIES)
>  
> -$(1)-rsync:		$$($(2)_TARGET_RSYNC)
> +$(1)-patch:		$(1)-extract
> +
> +$(1)-extract:		$$($(2)_TARGET_RSYNC)
>  
>  $(1)-source:		$$($(2)_TARGET_RSYNC_SOURCE)
>  endif

I think I would prefer to keep the 1:1 mapping between virtual target
name and real target name, and only have aliases when it makes sense.
I.e:

$(1)-rsync:	$$($(2)_TARGET_RSYNC)

# Possibly some comment here to explain what's going on
$(1)-extract:	$(1)-rsync
$(1)-patch:	$(1)-rsync

Otherwise, I'm fine with fixing this problem using this approach, looks
good to me.

Thomas
Arnout Vandecappelle Oct. 14, 2012, 9 p.m. UTC | #2
On 14/10/12 20:01, Thomas Petazzoni wrote:
> I think I would prefer to keep the 1:1 mapping between virtual target
> name and real target name, and only have aliases when it makes sense.
> I.e:
>
> $(1)-rsync:	$$($(2)_TARGET_RSYNC)
>
> # Possibly some comment here to explain what's going on
> $(1)-extract:	$(1)-rsync
> $(1)-patch:	$(1)-rsync
>
> Otherwise, I'm fine with fixing this problem using this approach, looks
> good to me.

  The reason that I choose to rename the -rsync target is that I'm hesitant
to add more targets - they slow down make.

  However, this would only be for the OVERRIDE packages, so it just adds a few
targets, not 1000.  So I'll take your suggestion and resend.

  Regards,
  Arnout
Thomas Petazzoni Oct. 14, 2012, 9:06 p.m. UTC | #3
On Sun, 14 Oct 2012 23:00:21 +0200, Arnout Vandecappelle wrote:

> > Otherwise, I'm fine with fixing this problem using this approach, looks
> > good to me.
> 
>   The reason that I choose to rename the -rsync target is that I'm hesitant
> to add more targets - they slow down make.
> 
>   However, this would only be for the OVERRIDE packages, so it just adds a few
> targets, not 1000.  So I'll take your suggestion and resend.

Ok, thanks!

Thomas
Stephan Hoffmann Nov. 12, 2012, 8:27 a.m. UTC | #4
Am 14.10.2012 16:41, schrieb Arnout Vandecappelle (Essensium/Mind):
> The legal-info target (and possibly others as well) depends on
> <pkg>-extract to make sure the license file is available.  However,
> when <PKG>_OVERRIDE_SRCDIR is active, the <pkg>-extract target
> doesn't exist.
>
> To solve this, we just call the target that rsyncs the source
> <pkg>-extract.
>
> While we're at it, also add a <pkg>-patch target (which is equivalent
> to <pkg>-extract).  That avoids the same problem in the future if
> something starts depending on <pkg>-patch.
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>
> ---
>  package/pkg-generic.mk |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index ffe7dfb..c2c1b06 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -378,9 +378,11 @@ else
>  $(1)-configure:		$(1)-depends \
>  			$$($(2)_TARGET_CONFIGURE)
>  
> -$(1)-depends:		$(1)-rsync $$($(2)_DEPENDENCIES)
> +$(1)-depends:		$(1)-extract $$($(2)_DEPENDENCIES)
>  
> -$(1)-rsync:		$$($(2)_TARGET_RSYNC)
> +$(1)-patch:		$(1)-extract
> +
> +$(1)-extract:		$$($(2)_TARGET_RSYNC)
>  
>  $(1)-source:		$$($(2)_TARGET_RSYNC_SOURCE)
>  endif
Hello,

this does not fix my issue, not even after doing a "make clean".

> LANG=C make legal-info
> mkdir -p /home/stephan/Dokumente/BeagleBone/buildroot/output/target
> if ! [ -d
> "/home/stephan/Dokumente/BeagleBone/buildroot/output/target/bin" ]; then \
>                 if [ -d
> "/home/stephan/Dokumente/BeagleBone/buildroot/fs/skeleton" ]; then \
>                         cp -fa
> /home/stephan/Dokumente/BeagleBone/buildroot/fs/skeleton/*
> /home/stephan/Dokumente/BeagleBone/buildroot/output/target/; \
>                 fi; \
>         fi
> find /home/stephan/Dokumente/BeagleBone/buildroot/output/target -type
> d -name CVS -print0 -o -name .svn -print0 | xargs -0 rm -rf
> find /home/stephan/Dokumente/BeagleBone/buildroot/output/target -type
> f \( -name .empty -o -name '*~' \) -print0 | xargs -0 rm -rf
> touch /home/stephan/Dokumente/BeagleBone/buildroot/output/build/.root
> >>>   Collecting legal info
<snip>
> >>> linux custom Syncing from source dir
> /home/stephan/Dokumente/BeagleBone/kernel/kernel
> rsync -au /home/stephan/Dokumente/BeagleBone/kernel/kernel/
> /home/stephan/Dokumente/BeagleBone/buildroot/output/build/linux-custom
> cp: cannot stat `/home/stephan/Dokumente/dl/linux-custom.tar.gz': No
> such file or directory
> make: *** [linux-legal-info] Error 1

Regards

Stephan
Arnout Vandecappelle Nov. 13, 2012, 11:48 p.m. UTC | #5
On 12/11/12 09:27, Stephan Hoffmann wrote:
> Am 14.10.2012 16:41, schrieb Arnout Vandecappelle (Essensium/Mind):
[snip]
>> +$(1)-extract:		$$($(2)_TARGET_RSYNC)
>>
>>   $(1)-source:		$$($(2)_TARGET_RSYNC_SOURCE)
>>   endif
> Hello,
>
> this does not fix my issue, not even after doing a "make clean".
[snip]
>>>>> linux custom Syncing from source dir
>> /home/stephan/Dokumente/BeagleBone/kernel/kernel
>> rsync -au /home/stephan/Dokumente/BeagleBone/kernel/kernel/
>> /home/stephan/Dokumente/BeagleBone/buildroot/output/build/linux-custom
>> cp: cannot stat `/home/stephan/Dokumente/dl/linux-custom.tar.gz': No
>> such file or directory
>> make: *** [linux-legal-info] Error 1

  One step at a time :-)

  The .tar.gz doesn't exist for overridden packages.  So what should we do -
exclude the source for overridden packages?

  Regards,
  Arnout
Stephan Hoffmann Nov. 14, 2012, 8:20 a.m. UTC | #6
Am 14.11.2012 00:48, schrieb Arnout Vandecappelle:
> On 12/11/12 09:27, Stephan Hoffmann wrote:
>> Am 14.10.2012 16:41, schrieb Arnout Vandecappelle (Essensium/Mind):
> [snip]
>>> +$(1)-extract:        $$($(2)_TARGET_RSYNC)
>>>
>>>   $(1)-source:        $$($(2)_TARGET_RSYNC_SOURCE)
>>>   endif
>> Hello,
>>
>> this does not fix my issue, not even after doing a "make clean".
> [snip]
>>>>>> linux custom Syncing from source dir
>>> /home/stephan/Dokumente/BeagleBone/kernel/kernel
>>> rsync -au /home/stephan/Dokumente/BeagleBone/kernel/kernel/
>>> /home/stephan/Dokumente/BeagleBone/buildroot/output/build/linux-custom
>>> cp: cannot stat `/home/stephan/Dokumente/dl/linux-custom.tar.gz': No
>>> such file or directory
>>> make: *** [linux-legal-info] Error 1
>
>  One step at a time :-)
>
>  The .tar.gz doesn't exist for overridden packages.  So what should we
> do -
> exclude the source for overridden packages?
Good point. At the first glance, I'd suggest to create the tar.gz using
the x_OVERRIDE_SRCDIR. That seems to be better than nothing.

After creating a linux-custom.tar.gz, "make legal-info" works for me,
but it does not seem to make sence to copy a .tar.gz file that has not
been extracted to build the packet.

Kind regards

Stephan
>
>  Regards,
>  Arnout
>
Stephan Hoffmann Dec. 3, 2012, 9:58 a.m. UTC | #7
Am 14.11.2012 09:20, schrieb Stephan Hoffmann:
> Am 14.11.2012 00:48, schrieb Arnout Vandecappelle:
>> On 12/11/12 09:27, Stephan Hoffmann wrote:
>>> Am 14.10.2012 16:41, schrieb Arnout Vandecappelle (Essensium/Mind):
>> [snip]
>>>> +$(1)-extract:        $$($(2)_TARGET_RSYNC)
>>>>
>>>>   $(1)-source:        $$($(2)_TARGET_RSYNC_SOURCE)
>>>>   endif
>>> Hello,
>>>
>>> this does not fix my issue, not even after doing a "make clean".
>> [snip]
>>>>>>> linux custom Syncing from source dir
>>>> /home/stephan/Dokumente/BeagleBone/kernel/kernel
>>>> rsync -au /home/stephan/Dokumente/BeagleBone/kernel/kernel/
>>>> /home/stephan/Dokumente/BeagleBone/buildroot/output/build/linux-custom
>>>> cp: cannot stat `/home/stephan/Dokumente/dl/linux-custom.tar.gz': No
>>>> such file or directory
>>>> make: *** [linux-legal-info] Error 1
>>  One step at a time :-)
>>
>>  The .tar.gz doesn't exist for overridden packages.  So what should we
>> do -
>> exclude the source for overridden packages?
> Good point. At the first glance, I'd suggest to create the tar.gz using
> the x_OVERRIDE_SRCDIR. That seems to be better than nothing.
>
> After creating a linux-custom.tar.gz, "make legal-info" works for me,
> but it does not seem to make sence to copy a .tar.gz file that has not
> been extracted to build the packet.
Hello,

I just started looking at this again and found in package/pkg-generic.mk:
> # legal-info: produce legally relevant info.
> $(1)-legal-info:
> # Packages without a source are assumed to be part of Buildroot, skip
> them.
> ifneq ($(call qstrip,$$($(2)_SOURCE)),)
> ifeq ($$($(2)_SITE_METHOD),local)
> # Packages without a tarball: don't save and warn
>         @$(call legal-warning-pkg-savednothing,$$($(2)_RAWNAME),local)
> else ifeq ($$($(2)_SITE_METHOD),override)
>         @$(call legal-warning-pkg-savednothing,$$($(2)_RAWNAME),override)
> else
So there should just be a warning, but no make failing. Obviously, the
test for "override" does not work as expected. A patch changing this to

    ifneq ($$($(2)_OVERRIDE_SRCDIR),)
 
follows, but I do not think that SITE_METHOD ever gets set to "override"
at all. So other parts of pkg-generic.mk might also need a closer look.

> Kind regards
>
> Stephan
>>  Regards,
>>  Arnout
>>
>
diff mbox

Patch

diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index ffe7dfb..c2c1b06 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -378,9 +378,11 @@  else
 $(1)-configure:		$(1)-depends \
 			$$($(2)_TARGET_CONFIGURE)
 
-$(1)-depends:		$(1)-rsync $$($(2)_DEPENDENCIES)
+$(1)-depends:		$(1)-extract $$($(2)_DEPENDENCIES)
 
-$(1)-rsync:		$$($(2)_TARGET_RSYNC)
+$(1)-patch:		$(1)-extract
+
+$(1)-extract:		$$($(2)_TARGET_RSYNC)
 
 $(1)-source:		$$($(2)_TARGET_RSYNC_SOURCE)
 endif