Message ID | 20211025215520.3712974-1-fontaine.fabrice@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [v2,1/1] package/p7zip: add 7za support | expand |
On 25/10/2021 23:55, Fabrice Fontaine wrote: > 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> > --- > Changes v1 -> v2 (after review of Arnout Vandecappelle): > - Add a dedicated option > > 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 Unfortunately, this means 7za will never be built in the autobuilders, because they don't randomize choices. Oh well, tough luck. Applied to master, thanks. Regards, Arnout > + > +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)) >
>>>>> "Arnout" == Arnout Vandecappelle <arnout@mind.be> writes: > On 25/10/2021 23:55, Fabrice Fontaine wrote: >> 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> >> --- >> Changes v1 -> v2 (after review of Arnout Vandecappelle): >> - Add a dedicated option >> >> 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 > Unfortunately, this means 7za will never be built in the > autobuilders, because they don't randomize choices. Oh well, tough > luck. > Applied to master, thanks. Next, not master. >> + >> +config BR2_PACKAGE_P7ZIP_7ZA >> + bool "7za" >> + help >> + Stand-alone executable that handles fewer archive formats >> + than 7z I guess this text is taken from the man page: https://linux.die.net/man/1/7za But it doesn't really make much sense if we don't provide the full 7z. As a user it isn't really clear if I want "..that handles fewer archive formats" or "a light-version of 7za". Perhaps the z7a help text should be something like: Full 7za archiver. The program supports 7z, ZIP, CAB, ARJ, GZIP, BZIP2, TAR, CPIO, RPM and DEB formats (also from the man page). And for 7zr: Lightweight 7zr archiver. The program only handles 7z archives and cannot handle encrypted archives
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))
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> --- Changes v1 -> v2 (after review of Arnout Vandecappelle): - Add a dedicated option package/p7zip/Config.in | 22 ++++++++++++++++++++++ package/p7zip/p7zip.mk | 11 +++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-)