mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	tools: Add gzip-libdeflate advanced compressor
Several devices provide U-Boot versions with only gzip compressed kernel support (e.g. Realtek switches). This compression method produces larger images than lzma. To save space on flash and avoid going the hard way with lzma-loader we can make use of enhanced gzip tool based on libdeflate compression library from https://github.com/ebiggers/libdeflate. It keeps 100% deflate/gzip compatibility while improving compression ratio. The image can be unpacked by the default inflate routines inside U-Boot. Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de> [Switched to v1.15 and made it work with cmake] Signed-off-by: Olliver Schinagl <oliver@schinagl.nl> Reviewed-by: Robert Marko <robimarko@gmail.com> Reviewed-by: Rosen Penev <rosenp@gmail.com> Reviewed-by: Sander Vanheule <sander@svanheule.net>
This commit is contained in:
		
							parent
							
								
									c9a7c00f80
								
							
						
					
					
						commit
						a51ca085bf
					
				@ -306,6 +306,11 @@ define Build/fit
 | 
			
		||||
	@mv $@.new $@
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
define Build/libdeflate-gzip
 | 
			
		||||
	$(STAGING_DIR_HOST)/bin/libdeflate-gzip -f -12 -c $@ $(1) > $@.new
 | 
			
		||||
	@mv $@.new $@
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
define Build/gzip
 | 
			
		||||
	$(STAGING_DIR_HOST)/bin/gzip -f -9n -c $@ $(1) > $@.new
 | 
			
		||||
	@mv $@.new $@
 | 
			
		||||
 | 
			
		||||
@ -36,6 +36,7 @@ tools-y += findutils
 | 
			
		||||
tools-y += firmware-utils
 | 
			
		||||
tools-y += flex
 | 
			
		||||
tools-y += gengetopt
 | 
			
		||||
tools-y += libdeflate
 | 
			
		||||
tools-y += libressl
 | 
			
		||||
tools-y += libtool
 | 
			
		||||
tools-y += lzma
 | 
			
		||||
@ -88,6 +89,7 @@ $(curdir)/genext2fs/compile := $(curdir)/libtool/compile
 | 
			
		||||
$(curdir)/gengetopt/compile := $(curdir)/libtool/compile
 | 
			
		||||
$(curdir)/gmp/compile := $(curdir)/libtool/compile
 | 
			
		||||
$(curdir)/isl/compile := $(curdir)/gmp/compile
 | 
			
		||||
$(curdir)/libdeflate/compile := $(curdir)/cmake/compile
 | 
			
		||||
$(curdir)/libressl/compile := $(curdir)/pkgconf/compile
 | 
			
		||||
$(curdir)/libtool/compile := $(curdir)/automake/compile $(curdir)/missing-macros/compile
 | 
			
		||||
$(curdir)/lzma-old/compile := $(curdir)/zlib/compile
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										31
									
								
								tools/libdeflate/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								tools/libdeflate/Makefile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
#
 | 
			
		||||
# Copyright (C) 2022 OpenWrt.org
 | 
			
		||||
#
 | 
			
		||||
# This is free software, licensed under the GNU General Public License v2.
 | 
			
		||||
# See /LICENSE for more information.
 | 
			
		||||
 | 
			
		||||
include $(TOPDIR)/rules.mk
 | 
			
		||||
 | 
			
		||||
PKG_NAME:=libdeflate
 | 
			
		||||
PKG_VERSION:=1.15
 | 
			
		||||
PKG_RELEASE:=1
 | 
			
		||||
 | 
			
		||||
PKG_SOURCE_URL:=https://github.com/ebiggers/libdeflate.git
 | 
			
		||||
PKG_SOURCE_PROTO:=git
 | 
			
		||||
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 | 
			
		||||
PKG_MIRROR_HASH:=122feff4543541b547dc89e832adf262c81911ae1acbccdc591f0353a85b600a
 | 
			
		||||
 | 
			
		||||
include $(INCLUDE_DIR)/host-build.mk
 | 
			
		||||
include $(INCLUDE_DIR)/cmake.mk
 | 
			
		||||
 | 
			
		||||
define Host/Install
 | 
			
		||||
	$(INSTALL_BIN) $(HOST_BUILD_DIR)/programs/libdeflate-gzip $(STAGING_DIR_HOST)/bin/
 | 
			
		||||
	$(LN) libdeflate-gzip $(STAGING_DIR_HOST)/bin/libdeflate-gunzip
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
define Host/Clean
 | 
			
		||||
	rm -f $(STAGING_DIR_HOST)/bin/libdeflate-gzip
 | 
			
		||||
	rm -f $(STAGING_DIR_HOST)/bin/libdeflate-gunzip
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
$(eval $(call HostBuild))
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user