[Libreoffice-commits] core.git: odk/CustomTarget_build-examples.mk

Jan-Marek Glogowski glogow at fbihome.de
Wed Sep 6 12:38:58 UTC 2017


 odk/CustomTarget_build-examples.mk |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

New commits:
commit 9ac2aad4c1cd0f8d513c02a897da90c42f2fa961
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date:   Fri Aug 25 22:03:47 2017 +0200

    OSX fix ODK example builds with enabled SIP
    
    The "System Integrity Protection”, introduced in macOS El Capitan,
    strips DYLD_* environment variables from all calls of software in
    /bin and /usr/bin.
    
    As a workaround we copy the shell to a temporary file and use it
    in our "sub-make" calls to build the examples.
    
    Change-Id: I3f07492782d56e153e8fcdea605a042ec1898276
    Reviewed-on: https://gerrit.libreoffice.org/41975
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/odk/CustomTarget_build-examples.mk b/odk/CustomTarget_build-examples.mk
index 81ac3a1437c6..f7dc1db1e30d 100644
--- a/odk/CustomTarget_build-examples.mk
+++ b/odk/CustomTarget_build-examples.mk
@@ -93,6 +93,11 @@ ifneq ($(gb_SUPPRESS_TESTS),)
 	@true
 else
 	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CHK,1)
+ifeq (MACOSX,$(OS))
+	$(eval ODK_BUILD_SHELL := $(shell $(gb_MKTEMP)))
+	cp /bin/sh "$(ODK_BUILD_SHELL)"
+	chmod 0700 "$(ODK_BUILD_SHELL)"
+endif
 	(saved_library_path=$${$(gb_Helper_LIBRARY_PATH_VAR)} && . $< \
         $(if $(filter MACOSX,$(OS)),, \
             && $(gb_Helper_LIBRARY_PATH_VAR)=$$saved_library_path) \
@@ -100,11 +105,16 @@ else
             UserInstallation=$(call gb_Helper_make_url,$(call gb_CustomTarget_get_workdir,odk/build-examples)/user) \
         $(foreach my_dir,$(my_example_dirs), \
             && (cd $(INSTDIR)/$(SDKDIRNAME)/examples/$(my_dir) \
-                && printf 'yes\n' | LC_ALL=C make))) \
+                && printf 'yes\n' | LC_ALL=C make \
+                    $(if $(filter MACOSX,$(OS)), SHELL=$(ODK_BUILD_SHELL), )))) \
             >$(call gb_CustomTarget_get_workdir,odk/build-examples)/log 2>&1 \
         || (RET=$$? \
+            $(if $(filter MACOSX,$(OS)), && rm -f $(ODK_BUILD_SHELL) , ) \
             && cat $(call gb_CustomTarget_get_workdir,odk/build-examples)/log \
             && exit $$RET)
+ifeq (MACOSX,$(OS))
+	-rm -f $(ODK_BUILD_SHELL)
+endif
 endif
 
 $(call gb_CustomTarget_get_workdir,odk/build-examples)/setsdkenv: \


More information about the Libreoffice-commits mailing list