FLTK logo

[master] 773467d - Refactor macOS bundle generation to avoid "quarantine"

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[master] 773467d - Refactor macOS bundle generation to avoid "quarantine" "Albrecht Schlosser" May 13, 2021  
 
commit 773467dee4e79e0dfd97c5ee98fc253dead3302c
Author:     Albrecht Schlosser <albrechts.fltk@online.de>
AuthorDate: Thu May 13 16:16:50 2021 +0200
Commit:     Albrecht Schlosser <albrechts.fltk@online.de>
CommitDate: Thu May 13 16:18:13 2021 +0200

    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

 .gitignore                                         |  10 +--
 CMake/fl_create_example.cmake                      |  29 ++++---
 fltk.list.in                                       |   4 -
 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
 test/.gitignore                                    |  84 +--------------------
 test/CMakeLists.txt                                |   8 +-
 test/Makefile                                      |  57 +++++---------
 test/blocks.app/Contents/Info.plist                |  47 ------------
 test/blocks.app/Contents/PkgInfo                   |   1 -
 test/blocks.app/Contents/Resources/blocks.icns     | Bin 51049 -> 0 bytes
 test/checkers.app/Contents/Info.plist              |  47 ------------
 test/checkers.app/Contents/PkgInfo                 |   1 -
 test/checkers.app/Contents/Resources/checkers.icns | Bin 61235 -> 0 bytes
 test/editor-Info.plist                             |  43 -----------
 test/mac-resources/blocks.icns                     | Bin 0 -> 51049 bytes
 test/mac-resources/blocks.plist                    |  47 ++++++++++++
 test/mac-resources/checkers.icns                   | Bin 0 -> 61235 bytes
 test/mac-resources/checkers.plist                  |  47 ++++++++++++
 test/mac-resources/editor.plist                    |  43 +++++++++++
 test/mac-resources/sudoku.icns                     | Bin 0 -> 34921 bytes
 test/mac-resources/sudoku.plist                    |  47 ++++++++++++
 test/sudoku.app/Contents/Info.plist                |  47 ------------
 test/sudoku.app/Contents/PkgInfo                   |   1 -
 test/sudoku.app/Contents/Resources/sudoku.icns     | Bin 34921 -> 0 bytes
 30 files changed, 285 insertions(+), 400 deletions(-)

diff --git .gitignore .gitignore
index 7685448..21d2cd1 100644
--- .gitignore
+++ .gitignore
@@ -97,11 +97,7 @@ etc/FLTKConfig.cmake
 /fluid/*.bck
 /fluid/*.exe
 /fluid/TAGS
-
-# /fluid/fluid.app/Contents/MacOS/
-/fluid/fluid.app/Contents/MacOS/fluid
-
-# /fluid/pixmaps/
+/fluid/fluid.app
 /fluid/pixmaps/*.bck
 
 # /lib/
@@ -124,8 +120,4 @@ etc/FLTKConfig.cmake
 # /test/
 # see test/.gitignore
 
-# macOS binary files
-# (see also test/.gitignore)
-
-fluid/*.app/Contents/MacOS
 **/.DS_Store
diff --git CMake/fl_create_example.cmake CMake/fl_create_example.cmake
index 8071b50..22c418b 100644
--- CMake/fl_create_example.cmake
+++ CMake/fl_create_example.cmake
@@ -27,7 +27,7 @@
 #   Sources can be:
 #   - .c/.cxx files, e.g. 'hello.cxx'
 #   - .fl (fluid) files, e.g. 'radio.fl'
-#   - .plist file (macOS), e.g. 'editor-Info.plist'
+#   - .plist file (macOS), e.g. 'editor.plist'
 #   - .icns file (macOS Icon), e.g. 'checkers.icns'
 #   - .rc file (Windows resource file, e.g. icon definition)
 #
@@ -39,10 +39,11 @@
 #   all other file types are added to the target's source files.
 #
 #   macOS specific .icns and .plist files are ignored on other platforms.
+#   These files must reside in the subdirectory 'mac-resources'.
 #
 # - LIBRARIES:
 #   List of libraries (CMake target names), separated by ';'. Needs
-#   quotes if more than one library is needed, e.g. "fltk_gl;fltk"
+#   quotes if more than one library is required, e.g. "fltk_gl;fltk"
 #
 # CREATE_EXAMPLE can have an optional fourth argument with a list of options
 # - the option ANDROID_OK is set if CREATE_EXAMPLE creates code for Android
@@ -99,7 +100,7 @@ macro (CREATE_EXAMPLE NAME SOURCES LIBRARIES)
   # set macOS (icon) resource path if applicable
 
   if (MAC_BUNDLE AND ICON_NAME)
-    set (ICON_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_NAME}.app/Contents/Resources/${ICON_NAME}")
+    set (ICON_PATH "${CMAKE_CURRENT_SOURCE_DIR}/mac-resources/${ICON_NAME}")
   endif (MAC_BUNDLE AND ICON_NAME)
 
   ##############################################################################
@@ -109,7 +110,7 @@ macro (CREATE_EXAMPLE NAME SOURCES LIBRARIES)
   if (MAC_BUNDLE)
     add_executable        (${TARGET_NAME} MACOSX_BUNDLE ${srcs} ${ICON_PATH})
   else ()
-    add_executable        (${TARGET_NAME} WIN32 ${srcs} ${ICON_PATH})
+    add_executable        (${TARGET_NAME} WIN32 ${srcs})
   endif (MAC_BUNDLE)
 
   set_target_properties   (${TARGET_NAME} PROPERTIES OUTPUT_NAME ${NAME})
@@ -123,16 +124,19 @@ macro (CREATE_EXAMPLE NAME SOURCES LIBRARIES)
     endif()
   endif (FLTK_HAVE_CAIRO)
 
-  if (ICON_PATH)
-    set_target_properties (${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_ICON_FILE ${ICON_NAME})
-    set_target_properties (${TARGET_NAME} PROPERTIES RESOURCE ${ICON_PATH})
-  endif (ICON_PATH)
+  if (MAC_BUNDLE)
+    if (PLIST)
+      set_target_properties (${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST
+                            "${CMAKE_CURRENT_SOURCE_DIR}/mac-resources/${PLIST}")
+    endif()
 
-  if (PLIST)
-    set_target_properties (${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/${PLIST}")
-  elseif (MAC_BUNDLE)
     set_target_properties (${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "${TARGET_NAME}")
     set_target_properties (${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.fltk.${TARGET_NAME}")
+
+    if (ICON_NAME)
+      set_target_properties (${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_ICON_FILE ${ICON_NAME})
+      set_target_properties (${TARGET_NAME} PROPERTIES RESOURCE ${ICON_PATH})
+    endif ()
   endif ()
 
   ##############################################################################
@@ -142,9 +146,10 @@ macro (CREATE_EXAMPLE NAME SOURCES LIBRARIES)
 
   if (MAC_BUNDLE)
     set (WRAPPER "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/${TARGET_NAME}")
+
     add_custom_command (
       TARGET ${TARGET_NAME} POST_BUILD
-      COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../CMake/macOS-bundle-wrapper.in ${WRAPPER}
+      COMMAND cp ${FLTK_SOURCE_DIR}/CMake/macOS-bundle-wrapper.in ${WRAPPER}
       COMMAND chmod u+x,g+x,o+x ${WRAPPER}
       BYPRODUCTS ${WRAPPER}
       # COMMENT "Creating macOS bundle wrapper script ${WRAPPER}"
diff --git fltk.list.in fltk.list.in
index 89c6142..f9fbab0 100644
--- fltk.list.in
+++ fltk.list.in
@@ -107,7 +107,6 @@ f 0555 root sys $libdir/libfltk_gl.so.@FL_DSO_VERSION@ src/libfltk_gl.so.@FL_DSO
 d 0555 root sys /Applications/fluid.app -
 d 0555 root sys /Applications/fluid.app/Contents -
 f 0444 root sys /Applications/fluid.app/Contents/Info.plist fluid/fluid.app/Contents/Info.plist
-f 0444 root sys /Applications/fluid.app/Contents/PkgInfo fluid/fluid.app/Contents/PkgInfo
 d 0555 root sys /Applications/fluid.app/Contents/MacOS -
 l 0555 root sys /Applications/fluid.app/Contents/MacOS/fluid $bindir/fluid
 d 0555 root sys /Applications/fluid.app/Contents/Resources -
@@ -376,7 +375,6 @@ f 0444 root sys $docdir/examples/ test/*.h
 d 0555 root sys /Applications/blocks.app -
 d 0555 root sys /Applications/blocks.app/Contents -
 f 0444 root sys /Applications/blocks.app/Contents/Info.plist test/blocks.app/Contents/Info.plist
-f 0444 root sys /Applications/blocks.app/Contents/PkgInfo test/blocks.app/Contents/PkgInfo
 d 0555 root sys /Applications/blocks.app/Contents/MacOS -
 f 0555 root sys /Applications/blocks.app/Contents/MacOS/blocks test/blocks
 d 0555 root sys /Applications/blocks.app/Contents/Resources -
@@ -386,7 +384,6 @@ f 0444 root sys /Applications/blocks.app/Contents/Resources/blocks.icns test/blo
 d 0555 root sys /Applications/checkers.app -
 d 0555 root sys /Applications/checkers.app/Contents -
 f 0444 root sys /Applications/checkers.app/Contents/Info.plist test/checkers.app/Contents/Info.plist
-f 0444 root sys /Applications/checkers.app/Contents/PkgInfo test/checkers.app/Contents/PkgInfo
 d 0555 root sys /Applications/checkers.app/Contents/MacOS -
 f 0555 root sys /Applications/checkers.app/Contents/MacOS/checkers test/checkers
 d 0555 root sys /Applications/checkers.app/Contents/Resources -
@@ -396,7 +393,6 @@ f 0444 root sys /Applications/checkers.app/Contents/Resources/checkers.icns test
 d 0555 root sys /Applications/sudoku.app -
 d 0555 root sys /Applications/sudoku.app/Contents -
 f 0444 root sys /Applications/sudoku.app/Contents/Info.plist test/sudoku.app/Contents/Info.plist
-f 0444 root sys /Applications/sudoku.app/Contents/PkgInfo test/sudoku.app/Contents/PkgInfo
 d 0555 root sys /Applications/sudoku.app/Contents/MacOS -
 f 0555 root sys /Applications/sudoku.app/Contents/MacOS/sudoku test/sudoku
 d 0555 root sys /Applications/sudoku.app/Contents/Resources -
diff --git fluid/CMakeLists.txt fluid/CMakeLists.txt
index 73cdb45..48df3ee 100644
--- fluid/CMakeLists.txt
+++ 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 fluid/Makefile fluid/Makefile
index a4656be..7d946cb 100644
--- fluid/Makefile
+++ 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 fluid/fluid.app/Contents/Info.plist fluid/fluid.app/Contents/Info.plist
deleted file mode 100644
index 4f0333f..0000000
--- fluid/fluid.app/Contents/Info.plist
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
-<plist version="1.0">
-<dict>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleExecutable</key>
-	<string>fluid</string>
-	<key>CFBundleIdentifier</key>
-	<string>org.fltk.fluid</string>
-	<key>CFBundleVersion</key>
-	<string>1.4.0</string>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>NSHumanReadableCopyright</key>
-	<string>Copyright 1998-2021 by Bill Spitzak and others</string>
-	<key>CFAppleHelpAnchor</key>
-	<string>help</string>
-	<key>CFBundleName</key>
-	<string>Fluid</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>FLID</string>
-	<key>CFBundleIconFile</key>
-	<string>fluid.icns</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.4.0</string>
-	<key>CFBundleGetInfoString</key>
-	<string>1.4.0, Copyright 1998-2021 by Bill Spitzak and others</string>
-	<key>CFBundleDocumentTypes</key>
-	<array>
-		<dict>
-			<key>CFBundleTypeExtensions</key>
-			<array>
-				<string>fl</string>
-			</array>
-			<key>CFBundleTypeIconFile</key>
-			<string>fluid.icns</string>
-			<key>CFBundleTypeName</key>
-			<string>FLUID Designer File</string>
-			<key>CFBundleTypeOSTypes</key>
-			<array>
-				<string>Flid</string>
-			</array>
-			<key>CFBundleTypeRole</key>
-			<string>Editor</string>
-		</dict>
-	</array>
-	<key>NSHighResolutionCapable</key>
-	<true/>
-</dict>
-</plist>
diff --git fluid/fluid.app/Contents/PkgInfo fluid/fluid.app/Contents/PkgInfo
deleted file mode 100644
index c5f9363..0000000
--- fluid/fluid.app/Contents/PkgInfo
+++ /dev/null
@@ -1 +0,0 @@
-FLIDFlid
diff --git fluid/fluid.app/Contents/Resources/fluid.icns fluid/fluid.app/Contents/Resources/fluid.icns
deleted file mode 100644
index 0fda055..0000000
Binary files fluid/fluid.app/Contents/Resources/fluid.icns and /dev/null differ
diff --git fluid/fluid.plist fluid/fluid.plist
new file mode 100644
index 0000000..4f0333f
--- /dev/null
+++ fluid/fluid.plist
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
+<plist version="1.0">
+<dict>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleExecutable</key>
+	<string>fluid</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.fltk.fluid</string>
+	<key>CFBundleVersion</key>
+	<string>1.4.0</string>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright 1998-2021 by Bill Spitzak and others</string>
+	<key>CFAppleHelpAnchor</key>
+	<string>help</string>
+	<key>CFBundleName</key>
+	<string>Fluid</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>FLID</string>
+	<key>CFBundleIconFile</key>
+	<string>fluid.icns</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.4.0</string>
+	<key>CFBundleGetInfoString</key>
+	<string>1.4.0, Copyright 1998-2021 by Bill Spitzak and others</string>
+	<key>CFBundleDocumentTypes</key>
+	<array>
+		<dict>
+			<key>CFBundleTypeExtensions</key>
+			<array>
+				<string>fl</string>
+			</array>
+			<key>CFBundleTypeIconFile</key>
+			<string>fluid.icns</string>
+			<key>CFBundleTypeName</key>
+			<string>FLUID Designer File</string>
+			<key>CFBundleTypeOSTypes</key>
+			<array>
+				<string>Flid</string>
+			</array>
+			<key>CFBundleTypeRole</key>
+			<string>Editor</string>
+		</dict>
+	</array>
+	<key>NSHighResolutionCapable</key>
+	<true/>
+</dict>
+</plist>
diff --git fluid/icons/fluid.icns fluid/icons/fluid.icns
new file mode 100644
index 0000000..0fda055
Binary files /dev/null and fluid/icons/fluid.icns differ
diff --git test/.gitignore test/.gitignore
index cb9e85b..e11a9a2 100644
--- test/.gitignore
+++ test/.gitignore
@@ -132,86 +132,4 @@ windowfocus
 
 # macOS binary files
 
-# (a) bundles *partially* in Git: ignore executables only
-
-blocks.app/Contents/MacOS/blocks
-checkers.app/Contents/MacOS/checkers
-sudoku.app/Contents/MacOS/sudoku
-
-# (b) other bundles created by in-source builds
-
-adjuster.app
-animated.app
-arc.app
-ask.app
-bitmap.app
-boxtype.app
-browser.app
-button.app
-buttons.app
-cairo_test.app
-clock.app
-colbrowser.app
-color_chooser.app
-cube.app
-CubeView.app
-cursor.app
-curve.app
-demo.app
-device.app
-doublebuffer.app
-editor.app
-fast_slow.app
-file_chooser.app
-fonts.app
-forms.app
-fractals.app
-fullscreen.app
-gl_overlay.app
-glpuzzle.app
-hello.app
-help_dialog.app
-icon.app
-iconize.app
-image.app
-inactive.app
-input.app
-input_choice.app
-keyboard.app
-label.app
-line_style.app
-list_visuals.app
-mandelbrot.app
-menubar.app
-message.app
-minimum.app
-native-filechooser.app
-navigation.app
-offscreen.app
-output.app
-overlay.app
-pack.app
-pixmap.app
-pixmap_browser.app
-preferences.app
-radio.app
-resize.app
-resize-example*.app
-resizebox.app
-rotated_text.app
-scroll.app
-shape.app
-subwindow.app
-symbols.app
-table.app
-tabs.app
-tabs.app/Contents
-threads.app
-tile.app
-tiled_image.app
-tree.app
-twowin.app
-unittests.app
-utf8.app
-valuators.app
-windowfocus.app
+*.app
diff --git test/CMakeLists.txt test/CMakeLists.txt
index 7341de8..9c602ce 100644
--- test/CMakeLists.txt
+++ test/CMakeLists.txt
@@ -1,7 +1,7 @@
 #
 # CMakeLists.txt used to build test and demo apps by the CMake build system
 #
-# Copyright 2004-2020 by Bill Spitzak and others.
+# Copyright 2004-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,7 +57,7 @@ CREATE_EXAMPLE (arc arc.cxx fltk ANDROID_OK)
 CREATE_EXAMPLE (animated animated.cxx fltk ANDROID_OK)
 CREATE_EXAMPLE (ask ask.cxx fltk ANDROID_OK)
 CREATE_EXAMPLE (bitmap bitmap.cxx fltk ANDROID_OK)
-CREATE_EXAMPLE (blocks "blocks.cxx;blocks.icns" "fltk;${AUDIOLIBS}")
+CREATE_EXAMPLE (blocks "blocks.cxx;blocks.plist;blocks.icns" "fltk;${AUDIOLIBS}")
 CREATE_EXAMPLE (boxtype boxtype.cxx fltk ANDROID_OK)
 CREATE_EXAMPLE (browser browser.cxx fltk ANDROID_OK)
 CREATE_EXAMPLE (button button.cxx fltk ANDROID_OK)
@@ -71,7 +71,7 @@ CREATE_EXAMPLE (curve curve.cxx fltk ANDROID_OK)
 CREATE_EXAMPLE (demo demo.cxx fltk)
 CREATE_EXAMPLE (device device.cxx "fltk_images;fltk")
 CREATE_EXAMPLE (doublebuffer doublebuffer.cxx fltk ANDROID_OK)
-CREATE_EXAMPLE (editor "editor.cxx;editor-Info.plist" fltk ANDROID_OK)
+CREATE_EXAMPLE (editor "editor.cxx;editor.plist" fltk ANDROID_OK)
 CREATE_EXAMPLE (fast_slow fast_slow.fl fltk ANDROID_OK)
 CREATE_EXAMPLE (file_chooser file_chooser.cxx "fltk_images;fltk")
 CREATE_EXAMPLE (fltk-versions fltk-versions.cxx fltk)
@@ -120,7 +120,7 @@ CREATE_EXAMPLE (resize-example4b "resize-example4b.cxx;resize-arrows.cxx" fltk)
 CREATE_EXAMPLE (rotated_text rotated_text.cxx fltk)
 CREATE_EXAMPLE (scroll scroll.cxx fltk)
 CREATE_EXAMPLE (subwindow subwindow.cxx fltk)
-CREATE_EXAMPLE (sudoku "sudoku.cxx;sudoku.icns;sudoku.rc" "fltk_images;fltk;${AUDIOLIBS}")
+CREATE_EXAMPLE (sudoku "sudoku.cxx;sudoku.plist;sudoku.icns;sudoku.rc" "fltk_images;fltk;${AUDIOLIBS}")
 CREATE_EXAMPLE (symbols symbols.cxx fltk)
 CREATE_EXAMPLE (tabs tabs.fl fltk)
 CREATE_EXAMPLE (table table.cxx fltk)
diff --git test/Makefile test/Makefile
index b3f2131..e7f71af 100644
--- test/Makefile
+++ test/Makefile
@@ -1,7 +1,7 @@
 #
-# Test/example program makefile for the Fast Light Tool Kit (FLTK).
+# Test/example program 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
@@ -208,35 +208,9 @@ depend:	$(CPPFILES)
 # Automatically generated dependencies...
 include makedepend
 
-# Additional dependencies...
-cairo_test.o: ../FL/Fl_Bitmap.H
-cairo_test.o: ../FL/Fl_Box.H
-cairo_test.o: ../FL/Fl_Cairo_Window.H
-cairo_test.o: ../FL/Fl_Device.H
-cairo_test.o: ../FL/Fl_Double_Window.H
-cairo_test.o: ../FL/fl_draw.H
-cairo_test.o: ../FL/Fl_Graphics_Driver.H
-cairo_test.o: ../FL/Fl_Group.H
-cairo_test.o: ../FL/Fl.H
-cairo_test.o: ../FL/Fl_Image.H
-cairo_test.o: ../FL/Fl_Pixmap.H
-cairo_test.o: ../FL/Fl_Plugin.H
-cairo_test.o: ../FL/Fl_Preferences.H
-cairo_test.o: ../FL/Fl_RGB_Image.H
-cairo_test.o: ../FL/fl_utf8.h
-cairo_test.o: ../FL/Fl_Widget.H
-cairo_test.o: ../FL/Fl_Window.H
-cairo_test.o: ../FL/math.h
-cairo_test.o: ../FL/platform.H
-
 clean:
 	$(RM) $(ALL) $(GLALL) core
-	for file in $(ALL) $(GLALL); do \
-		if [ $$file = "blocks" -o $$file = "checkers" -o $$file = "sudoku" ]; then \
-			continue; \
-		fi; \
-		$(OSX_ONLY) rm -f -r $$file.app; \
-	done
+	$(RMDIR) *.app
 	$(RM) *.o core.* *~ *.bck *.bak
 	$(RM) CubeViewUI.cxx CubeViewUI.h
 	$(RM) checkers_pieces.cxx checkers_pieces.h
@@ -250,9 +224,6 @@ clean:
 	$(RM) tabs.cxx tabs.h
 	$(RM) tree.cxx tree.h
 	$(RM) valuators.cxx valuators.h
-	$(OSX_ONLY) $(RM) blocks.app/Contents/MacOS/blocks$(EXEEXT)
-	$(OSX_ONLY) $(RM) checkers.app/Contents/MacOS/checkers$(EXEEXT)
-	$(OSX_ONLY) $(RM) sudoku.app/Contents/MacOS/sudoku$(EXEEXT)
 
 install:	all
 	echo "Installing example programs to $(DESTDIR)$(docdir)/examples..."
@@ -288,7 +259,6 @@ install-osx:
 			$(INSTALL_DIR) $(DESTDIR)/Applications/$$game.app/Contents/Resources; \
 		fi; \
 		$(INSTALL_DATA) $$game.app/Contents/Info.plist $(DESTDIR)/Applications/$$game.app/Contents; \
-		$(INSTALL_DATA) $$game.app/Contents/PkgInfo $(DESTDIR)/Applications/$$game.app/Contents; \
 		$(INSTALL_BIN) $$game.app/Contents/MacOS/$$game $(DESTDIR)/Applications/$$game.app/Contents/MacOS; \
 		$(INSTALL_DATA) $$game.app/Contents/Resources/$$game.icns $(DESTDIR)/Applications/$$game.app/Contents/Resources; \
 	done
@@ -348,16 +318,21 @@ buttons$(EXEEXT): buttons.o
 blocks$(EXEEXT): blocks.o
 	echo Linking $@...
 	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) blocks.o -o $@ $(AUDIOLIBS) $(LINKFLTK) $(LDLIBS)
-	$(OSX_ONLY) $(RM) -f -r blocks.app/Contents/MacOS
-	$(OSX_ONLY) mkdir blocks.app/Contents/MacOS
+	$(OSX_ONLY) $(RM) -f -r blocks.app
+	$(OSX_ONLY) mkdir -p blocks.app/Contents/MacOS blocks.app/Contents/Resources
 	$(OSX_ONLY) $(INSTALL_BIN) blocks$(EXEEXT) blocks.app/Contents/MacOS
+	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/blocks.icns blocks.app/Contents/Resources/
+	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/blocks.plist blocks.app/Contents/Info.plist
 
 checkers$(EXEEXT): checkers.o checkers_pieces.o
 	echo Linking $@...
 	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) checkers.o checkers_pieces.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
-	$(OSX_ONLY) $(RM) -f -r checkers.app/Contents/MacOS
-	$(OSX_ONLY) mkdir checkers.app/Contents/MacOS
+	$(OSX_ONLY) $(RM) -f -r checkers.app
+	$(OSX_ONLY) mkdir -p checkers.app/Contents/MacOS checkers.app/Contents/Resources
 	$(OSX_ONLY) $(INSTALL_BIN) checkers$(EXEEXT) checkers.app/Contents/MacOS
+	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/checkers.icns checkers.app/Contents/Resources/
+	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/checkers.plist checkers.app/Contents/Info.plist
+
 checkers.cxx:		checkers_pieces.h
 checkers_pieces.o:	checkers_pieces.h
 checkers_pieces.h:	checkers_pieces.fl
@@ -396,7 +371,7 @@ editor$(EXEEXT): editor.o
 	echo Linking $@...
 	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) editor.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
 	$(OSX_ONLY) ../fltk-config --post $@
-	$(OSX_ONLY) cp -f editor-Info.plist editor.app/Contents/Info.plist
+	$(OSX_ONLY) cp -f mac-resources/editor.plist editor.app/Contents/Info.plist
 
 fast_slow$(EXEEXT): fast_slow.o
 fast_slow.cxx:	fast_slow.fl ../fluid/fluid$(EXEEXT)
@@ -548,9 +523,11 @@ subwindow$(EXEEXT): subwindow.o
 sudoku: sudoku.o
 	echo Linking $@...
 	$(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(LDFLAGS) sudoku.o -o $@ $(AUDIOLIBS) $(LINKFLTKIMG) $(LDLIBS)
-	$(OSX_ONLY) $(RM) -r -f sudoku.app/Contents/MacOS
-	$(OSX_ONLY) mkdir sudoku.app/Contents/MacOS
+	$(OSX_ONLY) $(RM) -f -r sudoku.app
+	$(OSX_ONLY) mkdir -p sudoku.app/Contents/MacOS sudoku.app/Contents/Resources
 	$(OSX_ONLY) $(INSTALL_BIN) sudoku$(EXEEXT) sudoku.app/Contents/MacOS
+	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/sudoku.icns sudoku.app/Contents/Resources/
+	$(OSX_ONLY) $(INSTALL_BIN) mac-resources/sudoku.plist sudoku.app/Contents/Info.plist
 
 sudoku.exe: sudoku.o sudoku.rc
 	echo Linking $@...
diff --git test/blocks.app/Contents/Info.plist test/blocks.app/Contents/Info.plist
deleted file mode 100644
index 9448901..0000000
--- test/blocks.app/Contents/Info.plist
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plist version="0.9">
-    <dict>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-
-	<key>CFBundleExecutable</key>
-	<string>blocks</string>
-
-	<key>CFBundleIdentifier</key>
-	<string>com.easysw.blocks</string>
-
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-
-	<key>NSHumanReadableCopyright</key>
-	<string>Copyright 2006 by Michael Sweet</string>
-
-	<key>CFAppleHelpAnchor</key>
-	<string>help</string>
-
-	<key>CFBundleName</key>
-	<string>blocks</string>
-
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-
-	<key>CFBundleSignature</key>
-	<string>BLKS</string>
-
-	<key>CFBundleIconFile</key>
-	<string>blocks.icns</string>
-
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-
-	<key>CFBundleGetInfoString</key>
-	<string>1.0, Copyright 2006 by Michael Sweet</string>
-
-	<key>NSHighResolutionCapable</key>
-	<true/>
-
-    </dict>
-</plist>
diff --git test/blocks.app/Contents/PkgInfo test/blocks.app/Contents/PkgInfo
deleted file mode 100644
index 103810a..0000000
--- test/blocks.app/Contents/PkgInfo
+++ /dev/null
@@ -1 +0,0 @@
-BLKSBlks
diff --git test/blocks.app/Contents/Resources/blocks.icns test/blocks.app/Contents/Resources/blocks.icns
deleted file mode 100644
index 7e7ba24..0000000
Binary files test/blocks.app/Contents/Resources/blocks.icns and /dev/null differ
diff --git test/checkers.app/Contents/Info.plist test/checkers.app/Contents/Info.plist
deleted file mode 100644
index 4929602..0000000
--- test/checkers.app/Contents/Info.plist
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plist version="0.9">
-    <dict>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-
-	<key>CFBundleExecutable</key>
-	<string>checkers</string>
-
-	<key>CFBundleIdentifier</key>
-	<string>org.fltk.checkers</string>
-
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-
-	<key>NSHumanReadableCopyright</key>
-	<string>Copyright 1997-2010 by Bill Spitzak and others</string>
-
-	<key>CFAppleHelpAnchor</key>
-	<string>help</string>
-
-	<key>CFBundleName</key>
-	<string>checkers</string>
-
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-
-	<key>CFBundleSignature</key>
-	<string>FLSU</string>
-
-	<key>CFBundleIconFile</key>
-	<string>checkers.icns</string>
-
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-
-	<key>CFBundleGetInfoString</key>
-	<string>1.0, Copyright 1997-2010 by Bill Spitzak and others</string>
-
-	<key>NSHighResolutionCapable</key>
-	<true/>
-
-    </dict>
-</plist>
diff --git test/checkers.app/Contents/PkgInfo test/checkers.app/Contents/PkgInfo
deleted file mode 100644
index 5af7226..0000000
--- test/checkers.app/Contents/PkgInfo
+++ /dev/null
@@ -1 +0,0 @@
-FLSUFlsu
diff --git test/checkers.app/Contents/Resources/checkers.icns test/checkers.app/Contents/Resources/checkers.icns
deleted file mode 100644
index 5bdec12..0000000
Binary files test/checkers.app/Contents/Resources/checkers.icns and /dev/null differ
diff --git test/editor-Info.plist test/editor-Info.plist
deleted file mode 100644
index dea3f13..0000000
--- test/editor-Info.plist
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleDocumentTypes</key>
-	<array>
-		<dict>
-			<key>CFBundleTypeExtensions</key>
-			<array>
-				<string>*</string>
-			</array>
-			<key>CFBundleTypeName</key>
-			<string>AllFiles</string>
-			<key>CFBundleTypeRole</key>
-			<string>Editor</string>
-			<key>LSTypeIsPackage</key>
-			<false/>
-			<key>NSPersistentStoreTypeKey</key>
-			<string>XML</string>
-		</dict>
-	</array>
-	<key>CFBundleExecutable</key>
-	<string>editor</string>
-	<key>CFBundleGetInfoString</key>
-	<string>Part of the FLTK library. Please visit www.fltk.org.</string>
-	<key>CFBundleIdentifier</key>
-	<string>org.fltk.editor</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>FLTK</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>NSHumanReadableCopyright</key>
-	<string>Copyright 1998-2010 by Bill Spitzak and others.</string>
-	<key>NSHighResolutionCapable</key>
-	<true/>
-</dict>
-</plist>
diff --git test/mac-resources/blocks.icns test/mac-resources/blocks.icns
new file mode 100644
index 0000000..7e7ba24
Binary files /dev/null and test/mac-resources/blocks.icns differ
diff --git test/mac-resources/blocks.plist test/mac-resources/blocks.plist
new file mode 100644
index 0000000..bb256be
--- /dev/null
+++ test/mac-resources/blocks.plist
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plist version="0.9">
+    <dict>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+
+	<key>CFBundleExecutable</key>
+	<string>blocks</string>
+
+	<key>CFBundleIdentifier</key>
+	<string>org.fltk.blocks</string>
+
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright 2006-2021 by Michael Sweet</string>
+
+	<key>CFAppleHelpAnchor</key>
+	<string>help</string>
+
+	<key>CFBundleName</key>
+	<string>blocks</string>
+
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+
+	<key>CFBundleSignature</key>
+	<string>BLKS</string>
+
+	<key>CFBundleIconFile</key>
+	<string>blocks.icns</string>
+
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+
+	<key>CFBundleGetInfoString</key>
+	<string>1.0, Copyright 2006-2021 by Michael Sweet</string>
+
+	<key>NSHighResolutionCapable</key>
+	<true/>
+
+    </dict>
+</plist>
diff --git test/mac-resources/checkers.icns test/mac-resources/checkers.icns
new file mode 100644
index 0000000..5bdec12
Binary files /dev/null and test/mac-resources/checkers.icns differ
diff --git test/mac-resources/checkers.plist test/mac-resources/checkers.plist
new file mode 100644
index 0000000..66ec8d1
--- /dev/null
+++ test/mac-resources/checkers.plist
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plist version="0.9">
+    <dict>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+
+	<key>CFBundleExecutable</key>
+	<string>checkers</string>
+
+	<key>CFBundleIdentifier</key>
+	<string>org.fltk.checkers</string>
+
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright 1997-2021 by Bill Spitzak and others</string>
+
+	<key>CFAppleHelpAnchor</key>
+	<string>help</string>
+
+	<key>CFBundleName</key>
+	<string>checkers</string>
+
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+
+	<key>CFBundleSignature</key>
+	<string>FLCK</string>
+
+	<key>CFBundleIconFile</key>
+	<string>checkers.icns</string>
+
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+
+	<key>CFBundleGetInfoString</key>
+	<string>1.0, Copyright 1997-2021 by Bill Spitzak and others</string>
+
+	<key>NSHighResolutionCapable</key>
+	<true/>
+
+    </dict>
+</plist>
diff --git test/mac-resources/editor.plist test/mac-resources/editor.plist
new file mode 100644
index 0000000..6324e5c
--- /dev/null
+++ test/mac-resources/editor.plist
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleDocumentTypes</key>
+	<array>
+		<dict>
+			<key>CFBundleTypeExtensions</key>
+			<array>
+				<string>*</string>
+			</array>
+			<key>CFBundleTypeName</key>
+			<string>AllFiles</string>
+			<key>CFBundleTypeRole</key>
+			<string>Editor</string>
+			<key>LSTypeIsPackage</key>
+			<false/>
+			<key>NSPersistentStoreTypeKey</key>
+			<string>XML</string>
+		</dict>
+	</array>
+	<key>CFBundleExecutable</key>
+	<string>editor</string>
+	<key>CFBundleGetInfoString</key>
+	<string>Part of the FLTK library. Please visit www.fltk.org.</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.fltk.editor</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>FLTK</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright 1998-2021 by Bill Spitzak and others.</string>
+	<key>NSHighResolutionCapable</key>
+	<true/>
+</dict>
+</plist>
diff --git test/mac-resources/sudoku.icns test/mac-resources/sudoku.icns
new file mode 100644
index 0000000..abbe75e
Binary files /dev/null and test/mac-resources/sudoku.icns differ
diff --git test/mac-resources/sudoku.plist test/mac-resources/sudoku.plist
new file mode 100644
index 0000000..0583828
--- /dev/null
+++ test/mac-resources/sudoku.plist
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plist version="0.9">
+    <dict>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+
+	<key>CFBundleExecutable</key>
+	<string>sudoku</string>
+
+	<key>CFBundleIdentifier</key>
+	<string>org.fltk.sudoku</string>
+
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright 2005-2021 by Michael Sweet</string>
+
+	<key>CFAppleHelpAnchor</key>
+	<string>help</string>
+
+	<key>CFBundleName</key>
+	<string>sudoku</string>
+
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+
+	<key>CFBundleSignature</key>
+	<string>FLSU</string>
+
+	<key>CFBundleIconFile</key>
+	<string>sudoku.icns</string>
+
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+
+	<key>CFBundleGetInfoString</key>
+	<string>1.0, Copyright 2005-2021 by Michael Sweet</string>
+
+	<key>NSHighResolutionCapable</key>
+	<true/>
+
+    </dict>
+</plist>
diff --git test/sudoku.app/Contents/Info.plist test/sudoku.app/Contents/Info.plist
deleted file mode 100644
index b75285c..0000000
--- test/sudoku.app/Contents/Info.plist
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plist version="0.9">
-    <dict>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-
-	<key>CFBundleExecutable</key>
-	<string>sudoku</string>
-
-	<key>CFBundleIdentifier</key>
-	<string>org.fltk.sudoku</string>
-
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-
-	<key>NSHumanReadableCopyright</key>
-	<string>Copyright 2005-2006 by Michael Sweet</string>
-
-	<key>CFAppleHelpAnchor</key>
-	<string>help</string>
-
-	<key>CFBundleName</key>
-	<string>sudoku</string>
-
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-
-	<key>CFBundleSignature</key>
-	<string>FLSU</string>
-
-	<key>CFBundleIconFile</key>
-	<string>sudoku.icns</string>
-
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-
-	<key>CFBundleGetInfoString</key>
-	<string>1.0, Copyright 2005-2006 by Michael Sweet</string>
-
-	<key>NSHighResolutionCapable</key>
-	<true/>
-
-    </dict>
-</plist>
diff --git test/sudoku.app/Contents/PkgInfo test/sudoku.app/Contents/PkgInfo
deleted file mode 100644
index 5af7226..0000000
--- test/sudoku.app/Contents/PkgInfo
+++ /dev/null
@@ -1 +0,0 @@
-FLSUFlsu
diff --git test/sudoku.app/Contents/Resources/sudoku.icns test/sudoku.app/Contents/Resources/sudoku.icns
deleted file mode 100644
index abbe75e..0000000
Binary files test/sudoku.app/Contents/Resources/sudoku.icns and /dev/null differ
Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.