From 773467dee4e79e0dfd97c5ee98fc253dead3302c Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Thu, 13 May 2021 16:16:50 +0200 Subject: Refactor macOS bundle generation to avoid "quarantine" macOS Big Sur 11.3 introduced a new "security feature" such that app bundles created from existing bundle templates in downloaded files (tar distibutions, expanded) could no longer be executed without unsetting the "quarantine" attribute. This commit fixes this by creating all bundles from scratch. Known *workaround* for older tarballs and snapshots: $ xattr -d -r com.apple.quarantine xxx.app --- fluid/CMakeLists.txt | 4 +- fluid/Makefile | 11 +++--- fluid/fluid.app/Contents/Info.plist | 53 -------------------------- fluid/fluid.app/Contents/PkgInfo | 1 - fluid/fluid.app/Contents/Resources/fluid.icns | Bin 34579 -> 0 bytes fluid/fluid.plist | 53 ++++++++++++++++++++++++++ fluid/icons/fluid.icns | Bin 0 -> 34579 bytes 7 files changed, 61 insertions(+), 61 deletions(-) delete mode 100644 fluid/fluid.app/Contents/Info.plist delete mode 100644 fluid/fluid.app/Contents/PkgInfo delete mode 100644 fluid/fluid.app/Contents/Resources/fluid.icns create mode 100644 fluid/fluid.plist create mode 100644 fluid/icons/fluid.icns (limited to 'fluid') diff --git a/fluid/CMakeLists.txt b/fluid/CMakeLists.txt index 73cdb4528..48df3eed8 100644 --- a/fluid/CMakeLists.txt +++ b/fluid/CMakeLists.txt @@ -49,7 +49,7 @@ endif (WIN32) if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL)) set (ICON_NAME fluid.icns) - set (ICON_PATH "${PROJECT_SOURCE_DIR}/fluid/fluid.app/Contents/Resources/${ICON_NAME}") + set (ICON_PATH "${CMAKE_CURRENT_SOURCE_DIR}/icons/${ICON_NAME}") add_executable (fluid MACOSX_BUNDLE ${CPPFILES} ${ICON_PATH}) # create macOS bundle wrapper script @@ -82,7 +82,7 @@ endif (FLTK_HAVE_CAIRO) if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL)) # create bundle - set_target_properties (fluid PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/fluid/fluid.app/Contents/Info.plist") + set_target_properties (fluid PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/fluid.plist") set_target_properties (fluid PROPERTIES MACOSX_BUNDLE_ICON_FILE ${ICON_NAME}) set_target_properties (fluid PROPERTIES RESOURCE ${ICON_PATH}) # install diff --git a/fluid/Makefile b/fluid/Makefile index a4656be46..7d946cb80 100644 --- a/fluid/Makefile +++ b/fluid/Makefile @@ -1,7 +1,7 @@ # # FLUID Makefile for the Fast Light Tool Kit (FLTK). # -# Copyright 1998-2020 by Bill Spitzak and others. +# Copyright 1998-2021 by Bill Spitzak and others. # # This library is free software. Distribution and use rights are outlined in # the file "COPYING" which should have been included with this file. If this @@ -57,9 +57,11 @@ fluid$(EXEEXT): $(OBJECTS) $(LIBNAME) $(FLLIBNAME) \ $(IMGLIBNAME) echo Linking $@... $(CXX) $(ARCHFLAGS) $(CXXFLAGS) -o $@ $(OBJECTS) $(LINKFLTKFORMS) $(LINKFLTKIMG) $(LDFLAGS) $(LDLIBS) - $(OSX_ONLY) $(RM) -r -f fluid.app/Contents/MacOS - $(OSX_ONLY) mkdir fluid.app/Contents/MacOS + $(OSX_ONLY) $(RM) -r -f fluid.app + $(OSX_ONLY) mkdir -p fluid.app/Contents/MacOS fluid.app/Contents/Resources $(OSX_ONLY) $(INSTALL_BIN) fluid fluid.app/Contents/MacOS + $(OSX_ONLY) $(INSTALL) icons/fluid.icns fluid.app/Contents/Resources + $(OSX_ONLY) $(INSTALL) fluid.plist fluid.app/Contents/Info.plist fluid-shared$(EXEEXT): $(OBJECTS) ../src/$(DSONAME) ../src/$(FLDSONAME) \ ../src/$(IMGDSONAME) @@ -69,7 +71,7 @@ fluid-shared$(EXEEXT): $(OBJECTS) ../src/$(DSONAME) ../src/$(FLDSONAME) \ clean: -$(RM) *.o core.* *~ *.bck *.bak -$(RM) core fluid$(EXEEXT) fluid-shared$(EXEEXT) - -$(RM) fluid.app/Contents/MacOS/fluid$(EXEEXT) + $(OSX_ONLY) -$(RMDIR) fluid.app depend: $(CPPFILES) makedepend -Y -I.. -f makedepend -w 20 $(CPPFILES) @@ -103,7 +105,6 @@ install-osx: -$(INSTALL_DIR) $(DESTDIR)/Applications/fluid.app -$(INSTALL_DIR) $(DESTDIR)/Applications/fluid.app/Contents $(INSTALL_DATA) fluid.app/Contents/Info.plist $(DESTDIR)/Applications/fluid.app/Contents/Info.plist - $(INSTALL_DATA) fluid.app/Contents/PkgInfo $(DESTDIR)/Applications/fluid.app/Contents/PkgInfo -$(INSTALL_DIR) $(DESTDIR)/Applications/fluid.app/Contents/MacOS $(RM) $(DESTDIR)/Applications/fluid.app/Contents/MacOS/fluid $(LN) $(bindir)/fluid $(DESTDIR)/Applications/fluid.app/Contents/MacOS/fluid diff --git a/fluid/fluid.app/Contents/Info.plist b/fluid/fluid.app/Contents/Info.plist deleted file mode 100644 index 4f0333f0a..000000000 --- a/fluid/fluid.app/Contents/Info.plist +++ /dev/null @@ -1,53 +0,0 @@ - - - - - CFBundleInfoDictionaryVersion - 6.0 - CFBundleExecutable - fluid - CFBundleIdentifier - org.fltk.fluid - CFBundleVersion - 1.4.0 - CFBundleDevelopmentRegion - English - NSHumanReadableCopyright - Copyright 1998-2021 by Bill Spitzak and others - CFAppleHelpAnchor - help - CFBundleName - Fluid - CFBundlePackageType - APPL - CFBundleSignature - FLID - CFBundleIconFile - fluid.icns - CFBundleShortVersionString - 1.4.0 - CFBundleGetInfoString - 1.4.0, Copyright 1998-2021 by Bill Spitzak and others - CFBundleDocumentTypes - - - CFBundleTypeExtensions - - fl - - CFBundleTypeIconFile - fluid.icns - CFBundleTypeName - FLUID Designer File - CFBundleTypeOSTypes - - Flid - - CFBundleTypeRole - Editor - - - NSHighResolutionCapable - - - diff --git a/fluid/fluid.app/Contents/PkgInfo b/fluid/fluid.app/Contents/PkgInfo deleted file mode 100644 index c5f93635d..000000000 --- a/fluid/fluid.app/Contents/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -FLIDFlid diff --git a/fluid/fluid.app/Contents/Resources/fluid.icns b/fluid/fluid.app/Contents/Resources/fluid.icns deleted file mode 100644 index 0fda05512..000000000 Binary files a/fluid/fluid.app/Contents/Resources/fluid.icns and /dev/null differ diff --git a/fluid/fluid.plist b/fluid/fluid.plist new file mode 100644 index 000000000..4f0333f0a --- /dev/null +++ b/fluid/fluid.plist @@ -0,0 +1,53 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleExecutable + fluid + CFBundleIdentifier + org.fltk.fluid + CFBundleVersion + 1.4.0 + CFBundleDevelopmentRegion + English + NSHumanReadableCopyright + Copyright 1998-2021 by Bill Spitzak and others + CFAppleHelpAnchor + help + CFBundleName + Fluid + CFBundlePackageType + APPL + CFBundleSignature + FLID + CFBundleIconFile + fluid.icns + CFBundleShortVersionString + 1.4.0 + CFBundleGetInfoString + 1.4.0, Copyright 1998-2021 by Bill Spitzak and others + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + fl + + CFBundleTypeIconFile + fluid.icns + CFBundleTypeName + FLUID Designer File + CFBundleTypeOSTypes + + Flid + + CFBundleTypeRole + Editor + + + NSHighResolutionCapable + + + diff --git a/fluid/icons/fluid.icns b/fluid/icons/fluid.icns new file mode 100644 index 000000000..0fda05512 Binary files /dev/null and b/fluid/icons/fluid.icns differ -- cgit v1.2.3