From c1723424b8189730087006fc879fdae0cc123ca1 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 25 Oct 2021 23:55:20 +0200 Subject: [PATCH] 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 Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- package/p7zip/Config.in | 22 ++++++++++++++++++++++ package/p7zip/p7zip.mk | 11 +++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/package/p7zip/Config.in b/package/p7zip/Config.in index badfb9b9e8..3b30fd71cc 100644 --- a/package/p7zip/Config.in +++ b/package/p7zip/Config.in @@ -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 diff --git a/package/p7zip/p7zip.mk b/package/p7zip/p7zip.mk index f94b55ecd2..b6c5adae26 100644 --- a/package/p7zip/p7zip.mk +++ b/package/p7zip/p7zip.mk @@ -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))