mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 20:18:18 +00:00 
			
		
		
		
	The previous commit ("add a new command to show .config contents")
improves the basic infrastructure of "embed a compressed file into
the U-Boot image, and print it by a command".  The same pattern for
the "license" command.
This commit reworks the command to improve the following:
[1] Improve log style
Kbuild style log
  GZIP    cmd/license_data.gz
  CHK     cmd/license_data_gz.h
  UPD     cmd/license_data_gz.h
  CHK     cmd/license_data_size.h
  UPD     cmd/license_data_size.h
instead of the bare Make log:
cat ./Licenses/gpl-2.0.txt | gzip -9 -c | \
		tools/bin2header license_gzip > ./include/license.h
[2] Collect related code into the "cmd" directory
Prior to this commit, the license.h was created by tools/Makefile,
placed under the "include" directory, included from cmd/license.c,
and deleted by the top-level Makefile.  It is not a good idea to
scatter related code.
[3] Drop the fixed-malloc size LICENSE_MAX
Just allocate the minimum required size of buffer because we know
the size of the original gpl-2.0.txt.
[4] Fix more issues
Terminate the buffer with zero to prevent puts() from over-running.
Add "static" to do_license.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
		
	
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			790 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			790 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * (C) Copyright 2007 by OpenMoko, Inc.
 | |
|  * Author: Harald Welte <laforge@openmoko.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #include <common.h>
 | |
| #include <command.h>
 | |
| #include <malloc.h>
 | |
| 
 | |
| #include "license_data_gz.h"
 | |
| #include "license_data_size.h"
 | |
| 
 | |
| static int do_license(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 | |
| {
 | |
| 	char *dst;
 | |
| 	unsigned long len = data_size;
 | |
| 	int ret = CMD_RET_SUCCESS;
 | |
| 
 | |
| 	dst = malloc(data_size + 1);
 | |
| 	if (!dst)
 | |
| 		return CMD_RET_FAILURE;
 | |
| 
 | |
| 	ret = gunzip(dst, data_size, (unsigned char *)data_gz, &len);
 | |
| 	if (ret) {
 | |
| 		printf("Error uncompressing license text\n");
 | |
| 		ret = CMD_RET_FAILURE;
 | |
| 		goto free;
 | |
| 	}
 | |
| 
 | |
| 	dst[data_size] = 0;
 | |
| 	puts(dst);
 | |
| 
 | |
| free:
 | |
| 	free(dst);
 | |
| 
 | |
| 	return ret;
 | |
| }
 | |
| 
 | |
| U_BOOT_CMD(
 | |
| 	license, 1, 1, do_license,
 | |
| 	"print GPL license text",
 | |
| 	""
 | |
| );
 |