solenv/gbuild/Extension.mk | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
New commits: commit 5511a7b77bcceb812737533de1184c5d009f0a78 Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> AuthorDate: Mon Jul 24 12:49:46 2023 +0200 Commit: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> CommitDate: Mon Apr 22 13:32:51 2024 +0200 avoid exceeding command-line length limits when using zip to package an Extension. With all languages enabled one can reach the limit with longish buildpaths Change-Id: I8943d6570ded57761350311fb34a0cf469d3ce83 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166326 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> diff --git a/solenv/gbuild/Extension.mk b/solenv/gbuild/Extension.mk index 4342859e415f..200e7d9e2a4f 100644 --- a/solenv/gbuild/Extension.mk +++ b/solenv/gbuild/Extension.mk @@ -89,17 +89,20 @@ $(call gb_Extension_get_workdir,%)/description.xml : $(gb_Extension_XRMEXDEPS) $ -o $@ \ -m $${MERGEINPUT} \ -l all) && \ - rm -rf $${MERGEINPUT} + rm -f $${MERGEINPUT} $(call gb_Trace_EndRange,$*/description.xml,XRM) endif # rule to create oxt package in workdir # --filesync makes sure that all files in the oxt package will be removed that no longer are in $(FILES) +# TODO: kinda pointless/ineffective to copy from one point in workdir to another, also makes the command +# very long when building with all languages (nlpsolver extension for example), hence read list via pipe $(call gb_Extension_get_target,%) : \ $(call gb_Extension_get_workdir,%)/description.xml $(call gb_Output_announce,$*,$(true),OXT,3) $(call gb_Trace_StartRange,$*,OXT) + RESPONSEFILE=$(call gb_var2file,$(shell $(gb_MKTEMP)),$(subst $(WHITESPACE),$(NEWLINE),$(sort $(FILES)))) && \ $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(call gb_Extension_get_rootdir,$*)/META-INF \ $(if $(LICENSE),$(call gb_Extension_get_rootdir,$*)/registration) && \ @@ -108,10 +111,8 @@ $(call gb_Extension_get_target,%) : \ $(if $(LICENSE),cp -f $(LICENSE) $(call gb_Extension_get_rootdir,$*)/registration &&) \ $(if $(and $(gb_Extension_TRANS_LANGS),$(DESCRIPTION)),cp $(foreach lang,$(gb_Extension_TRANS_LANGS),$(call gb_Extension_get_workdir,$*)/description-$(lang).txt) $(call gb_Extension_get_rootdir,$*) &&) \ cd $(call gb_Extension_get_rootdir,$*) && \ - ZIPFILES=$(call gb_var2file,$(shell $(gb_MKTEMP)),$(sort $(FILES))) && \ - $(gb_Extension_ZIPCOMMAND) -rX --filesync --must-match \ - $(call gb_Extension_get_target,$*) \ - `cat $${ZIPFILES} | tr -d ' '` && rm $${ZIPFILES}) + cat $$RESPONSEFILE | $(gb_Extension_ZIPCOMMAND) -rX --filesync --must-match \ + $(call gb_Extension_get_target,$*) --names-stdin) && rm -f $$RESPONSEFILE $(call gb_Trace_EndRange,$*,OXT) # set file list and location of manifest and description files