core/legal-info: use hash file from version sub-dir
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 16 Jul 2017 17:22:39 +0000 (19:22 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 29 Jul 2017 20:34:41 +0000 (22:34 +0200)
When we have multiple versions for a package, and the licensing terms
depend on the version actually selected (e.g. like Qt5), storing the
hashes for those license files in the .hash file is broken: the infra
will ensure that all hashes for a file do match, which would not be the
case here.

We fix that by first looking for a hash file in the version sub-dir
first, and if that does not exist, then we use the main hash file.

Drop the useless intermediate variable 'ret'.

Update the documentation accordingly.

Reported-by: Joshua Henderson <joshua.henderson@microchip.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Joshua Henderson <joshua.henderson@microchip.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
docs/manual/adding-packages-directory.txt
package/pkg-utils.mk

index 804946c5040b91d43f36c3cf901bfab92dd900c3..809cc97389662113651508c98b8adcc4c8301e61 100644 (file)
@@ -482,7 +482,9 @@ this in a comment line above the hashes.
 
 .Note
 The hashes for license files are used to detect a license change when a
-package version is bumped.
+package version is bumped. For a package with multiple versions (like Qt5),
+create the hash file in a subdirectory +<packageversion>+ of that package
+(see also xref:patch-apply-order[]).
 
 .Note
 The number of spaces does not matter, so one can use spaces (or tabs) to
index accf48c4643ae02378914709b1fb3d2b872d28ad..c3acc22b17c2279b653c2fab22396f0e25b5bbbd 100644 (file)
@@ -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 [ -f $(3)/$($(PKG)_VERSION)/$(1).hash ]; 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