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

Reply via email to