package/p7zip: add 7za support

Add 7za stand-alone executable as 7zr is a "light-version" of 7za that
only handles 7z archives and cannot handle encrypted archives.

Fixes:
 - https://bugs.buildroot.org/show_bug.cgi?id=14266

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Fabrice Fontaine 2021-10-25 23:55:20 +02:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 6170020898
commit c1723424b8
2 changed files with 31 additions and 2 deletions

View File

@ -12,6 +12,28 @@ config BR2_PACKAGE_P7ZIP
http://sourceforge.net/projects/p7zip
if BR2_PACKAGE_P7ZIP
choice
prompt "p7zip binary"
default BR2_PACKAGE_P7ZIP_7ZR
config BR2_PACKAGE_P7ZIP_7ZA
bool "7za"
help
Stand-alone executable that handles fewer archive formats
than 7z
config BR2_PACKAGE_P7ZIP_7ZR
bool "7zr"
help
Stand-alone executable which is a "light-version" of 7za that
only handles 7z archives and cannot handle encrypted archives
endchoice
endif
comment "p7zip needs a toolchain w/ threads, wchar, C++"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP

View File

@ -10,6 +10,12 @@ P7ZIP_LICENSE = LGPL-2.1+ with unRAR restriction
P7ZIP_LICENSE_FILES = DOC/License.txt
P7ZIP_CPE_ID_VENDOR = 7-zip
ifeq ($(BR2_PACKAGE_P7ZIP_7ZA),y)
P7ZIP_TARGET = 7za
else
P7ZIP_TARGET = 7zr
endif
# p7zip buildsystem is a mess: it plays dirty tricks with CFLAGS and
# CXXFLAGS, so we can't pass them. Instead, it accepts ALLFLAGS_C
# and ALLFLAGS_CPP as variables to pass the CFLAGS and CXXFLAGS.
@ -17,11 +23,12 @@ define P7ZIP_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" ALLFLAGS_C="$(TARGET_CFLAGS)" \
CXX="$(TARGET_CXX)" ALLFLAGS_CPP="$(TARGET_CXXFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
-C $(@D) 7zr
-C $(@D) $(P7ZIP_TARGET)
endef
define P7ZIP_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/bin/7zr $(TARGET_DIR)/usr/bin/7zr
$(INSTALL) -D -m 0755 $(@D)/bin/$(P7ZIP_TARGET) \
$(TARGET_DIR)/usr/bin/$(P7ZIP_TARGET)
endef
$(eval $(generic-package))