[Buildroot] [PATCH] core/legal-info: use hash file from version sub-dir

Arnout Vandecappelle arnout at mind.be
Tue Jul 18 19:48:51 UTC 2017



On 14-07-17 10:38, Yann E. MORIN wrote:
> Joshua, All,
> 
> On 2017-07-13 16:32 -0700, Joshua Henderson spake thusly:
>> On 07/13/2017 03:19 PM, Yann E. MORIN wrote:
>>
>>> diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
>>> index accf48c464..f285395267 100644
>>> --- a/package/pkg-utils.mk
>>> +++ b/package/pkg-utils.mk
>>> @@ -86,9 +86,12 @@ endef
>>>  define legal-license-file # pkgname, pkgname-pkgver, pkgdir, filename, file-fullpath, {HOST|TARGET}
>>>  	mkdir -p $(LICENSE_FILES_DIR_$(6))/$(2)/$(dir $(4)) && \
>>>  	{ \
>>> -		support/download/check-hash $(3)/$(1).hash $(5) $(4); \
>>> -		ret=$${?}; \
>>> -		case $${ret} in (0|3) ;; (*) exit 1;; esac; \
>>> +		if [ -d $(3)/$($(PKG)_VERSION) ]; then \
>>> +			support/download/check-hash $(3)/$($(PKG)_VERSION)/$(1).hash $(5) $(4); \
>>> +		else \
>>> +			support/download/check-hash $(3)/$(1).hash $(5) $(4); \
>>> +		fi; \
>>> +		case $${?} in (0|3) ;; (*) exit 1;; esac; \
>>>  	} && \
>>>  	cp $(5) $(LICENSE_FILES_DIR_$(6))/$(2)/$(4)
>>>  endef
>>>
>>
>> I think this has unintended side effects.  If there is already a $(PKG)_VERSION directory for patches, 
>> it will look for the hash file there even if there are no hash file differences, which results in missing
>> license file hash.
> 
> This is the intended behaviour, yes: if there is a version choice, then
> we _want_ the license hashes to be per version, even if they are the
> same across versions. We do not want them in the 'main' hash file.
> 
> Yes, this means duplicated entries.
> 
> I was also wondering if we should also move the hashes for the
> downlaoded files to be per-version as well, to keep things together.
> 
> Ie., we would have something like:
> 
>     package/qt5/qt5base/Config.in
>     package/qt5/qt5base/qt5base.mk
>     package/qt5/qt5base/5.6.2/*.patch
>     package/qt5/qt5base/5.6.2/qt5base.hash
>     package/qt5/qt5base/5.8.0/*.patch
>     package/qt5/qt5base/5.8.0/qt5base.hash

 This indeed sounds like the right approach. But then both uses of the hash file
(download and legal-info) should use the same approach, as you say.

 In fact, this can be a workaround for cases where we often don't have a hash
because of custom version specification, like the kernel...


 Perhaps the nicest approach is to move the intelligence down into check-hash
itself (the less shell code in the makefiles the better). So check-hash would
not get a hash file as argument, but it would get package directory and version.


 Note by the way that pkg-stats should probably be updated as well.


 Sorry to give you more work :-)


 Regards,
 Arnout

> 
> 
> 
>> I believe it would work if you test -f on the actual .hash file instead of just the directory.
> 
> Again, if the directory exists, I intended that the main hash file was
> not used at all.
> 
>>  But, do note
>> that if there are multiple license files per package, and only one of them is different, this still results
>> in putting all hashes including duplicate ones in separate hash files.
> 
> Yes, this is what I had in mind in this case.
> 
> Regards,
> Yann E. MORIN.
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
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:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list