cmd: Fix license command
authorTom Rini <trini@konsulko.com>
Tue, 15 Mar 2016 16:49:12 +0000 (12:49 -0400)
committerTom Rini <trini@konsulko.com>
Tue, 22 Mar 2016 16:16:13 +0000 (12:16 -0400)
The license command isn't usually built and has a few problems:
- The rules to generate license.h haven't worked in a long time,
  re-write these based on the bmp_logo.h rules.
- 'tok' is unused and the license text size has increased
- bin2header.c wasn't grabbing unistd.h to know the prototype for
  read().

Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Makefile
cmd/license.c
include/.gitignore
tools/Makefile
tools/bin2header.c

index 53569e8089f2cdfe1959cbb586a07c43094d99c4..25ef3c18dad46871a714e7081e6e8068f752b95f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1405,8 +1405,6 @@ CHANGELOG:
        git log --no-merges U-Boot-1_1_5.. | \
        unexpand -a | sed -e 's/\s\s*$$//' > $@
 
-include/license.h: tools/bin2header COPYING
-       cat COPYING | gzip -9 -c | ./tools/bin2header license_gzip > include/license.h
 #########################################################################
 
 ###
@@ -1421,7 +1419,7 @@ CLEAN_DIRS  += $(MODVERDIR) \
               $(foreach d, spl tpl, $(patsubst %,$d/%, \
                        $(filter-out include, $(shell ls -1 $d 2>/dev/null))))
 
-CLEAN_FILES += include/bmp_logo.h include/bmp_logo_data.h \
+CLEAN_FILES += include/bmp_logo.h include/bmp_logo_data.h include/license.h \
               boot* u-boot* MLO* SPL System.map
 
 # Directories & files removed with 'make mrproper'
index b07de72d36ca0ccedd148f12f14336b3af53b1d4..5ee57f8ca3d922cc96c1ba00fd00ae596c32d1fb 100644 (file)
@@ -7,7 +7,7 @@
 
 #include <common.h>
 
-/* COPYING is currently 15951 bytes in size */
+/* Licenses/gpl-2.0.txt is currently 18092 bytes in size */
 #define LICENSE_MAX    20480
 
 #include <command.h>
 
 int do_license(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
-       char *tok, *dst = malloc(LICENSE_MAX);
+       char *dst = malloc(LICENSE_MAX);
        unsigned long len = LICENSE_MAX;
 
        if (!dst)
                return -1;
 
-       if (gunzip(dst, LICENSE_MAX, license_gz, &len) != 0) {
+       if (gunzip(dst, LICENSE_MAX, license_gzip, &len) != 0) {
                printf("Error uncompressing license text\n");
                free(dst);
                return -1;
index 8e41a9511d47b77f04463d340037d14390e13974..75be5270b16ddd16ba8e93c7aeeba62173a6243e 100644 (file)
@@ -2,3 +2,4 @@
 /bmp_logo.h
 /bmp_logo_data.h
 /config.h
+/license.h
index 1e4b4aaa0226a99fee84f0e5d9492bc68d7827e2..da50e1bffca459b6a14bb4fe73371a8a79269e05 100644 (file)
@@ -31,7 +31,6 @@ CONFIG_BUILD_ENVCRC ?= $(ENVCRC-y)
 
 hostprogs-$(CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER) += atmel_pmecc_params
 
-# TODO: CONFIG_CMD_LICENSE does not work
 hostprogs-$(CONFIG_CMD_LICENSE) += bin2header
 hostprogs-$(CONFIG_LCD_LOGO) += bmp_logo
 hostprogs-$(CONFIG_VIDEO_LOGO) += bmp_logo
@@ -212,6 +211,10 @@ endif
 
 endif # !LOGO_BMP
 
+# Generated gziped GPL-2.0 license text
+LICENSE_H = $(objtree)/include/license.h
+LICENSE-$(CONFIG_CMD_LICENSE) += $(LICENSE_H)
+
 #
 # Use native tools and options
 # Define __KERNEL_STRICT_NAMES to prevent typedef overlaps
@@ -226,7 +229,7 @@ HOST_EXTRACFLAGS += -include $(srctree)/include/libfdt_env.h \
                -D__KERNEL_STRICT_NAMES \
                -D_GNU_SOURCE
 
-__build:       $(LOGO-y)
+__build:       $(LOGO-y) $(LICENSE-y)
 
 $(LOGO_H):     $(obj)/bmp_logo $(LOGO_BMP)
        $(obj)/bmp_logo --gen-info $(LOGO_BMP) > $@
@@ -234,6 +237,10 @@ $(LOGO_H): $(obj)/bmp_logo $(LOGO_BMP)
 $(LOGO_DATA_H):        $(obj)/bmp_logo $(LOGO_BMP)
        $(obj)/bmp_logo --gen-data $(LOGO_BMP) > $@
 
+$(LICENSE_H): $(obj)/bin2header $(srctree)/Licenses/gpl-2.0.txt
+       cat $(srctree)/Licenses/gpl-2.0.txt | gzip -9 -c | \
+               $(obj)/bin2header license_gzip > $(LICENSE_H)
+
 # Let clean descend into subdirs
 subdir- += env
 
index 27a5b6aab6ecbac10bc866312bd03c5957b6188c..6c2c23f624efd2a71b612af3f0aee63f342881e0 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <unistd.h>
 
 int main(int argc, char **argv)
 {