[gimp-macos-build/gimp-2-10] Build 2.10.28



commit d6dff9f91f884d1f935bcf4b5d55ed559ec16818
Author: Lukas Oberhuber <lukaso gmail com>
Date:   Sun Sep 12 12:48:44 2021 +0100

    Build 2.10.28
    
    - install python 3.9.7
    - .circleci: Correctly set $PYTHON variable
    - glib-networking is a webkit dependency for libsoup
    -.circleci: Comment out webkit
    
    Webkit is failing to build so this comments it out until we have it
    building again and against gtk3
    
    - .cricleci: Fix notarize script to use DMG name
    - Upgrade create-dmg to version 1.0.9
    - .circleci: Never fail signing and notarizing TODO
    
    Other accounts than Infrastructure don't have the right secrets
    on circle ci to have this succeed. A better approach would be to
    detect that we are on the right account and otherwise avoid
    calling the scripts.
    
    However, it wasn't immediately clear how to frame the conditional
    so it was skipped.
    
    - .circleci: Use patched mac bundler
    
      Use version of mac bundler forked by lukaso, while waiting for change
      to be incorporated back to main bundler.
    
      Fork ensures dependencies in libraries are followed and copied into
      application.
    
    - jhbuildrc-2.10: locked to python2
    - Fix bootstrap
    - .circleci: Remove test of building gettext
    - jhbuildrc: force pygobject and gtk-mac-integration-gtk2-python
      to use python2
    - .circleci Modify build script to build 2.10.28
    - .circleci: switch to icu from icu55: build failure
    - jhbuild: Mismatched gettext version on icu
    
    ```
    *** Building icu55 *** [1/28]
    make CFLAGS="$CFLAGS -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0"  -j 5
    dyld: Library not loaded: /Users/distiller/gtk/inst/lib/libintl.8.dylib
      Referenced from: /Users/distiller/gtk/inst/bin/make
      Reason: Incompatible library version: make requires version 11.0.0 or later, but libintl.8.dylib 
provides version 10.0.0
    ```
    
    - .circleci: Remove test of building gettext
    - gimp-2-10.bundle: remove libpyglib
    
    Not needed and also not available after build.
    
    - build.sh: Correct path to remove old DMG
    - .circleci applescript: allow access to finder.

 .circleci/config.yml                               |  56 ++++---
 ...drc-gtk-osx-gimp => jhbuildrc-gtk-osx-gimp-2.10 |  16 +-
 package/build.sh                                   |   2 +-
 package/create-dmg/LICENSE                         |   1 +
 package/create-dmg/Makefile                        |  33 +++++
 package/create-dmg/README.md                       | 113 ++++++++------
 package/create-dmg/create-dmg                      |  16 +-
 package/create-dmg/doc-project/Developer Notes.md  |  35 +++++
 .../create-dmg/doc-project/Release Checklist.md    |  10 ++
 .../01-main-example/installer_background.png       | Bin 0 -> 35656 bytes
 package/create-dmg/examples/01-main-example/sample |  25 ++++
 .../01-main-example/source_folder/Application.app  |   0
 package/create-dmg/sample                          |  18 ---
 package/create-dmg/support/brew-me.sh              |  21 ---
 package/create-dmg/support/dmg-license.py          | 163 ---------------------
 .../create-dmg/support/eula-resources-template.xml | 105 +++++++++++++
 package/create-dmg/support/template.applescript    |   2 +-
 .../tests/007-space-in-dir-name/my files/hello.txt |   1 +
 .../tests/007-space-in-dir-name/run-test           |   5 +
 package/gimp-2.10.bundle                           |  10 +-
 20 files changed, 346 insertions(+), 286 deletions(-)
---
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 62d6434..188ec56 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,8 +1,8 @@
-version: 2
+version: 2.1
 jobs:
   build-gimp-2-10:
     macos:
-        xcode: "10.1.0"
+        xcode: "12.5.1"
 
     steps:
         - checkout
@@ -31,16 +31,18 @@ jobs:
               echo 'export MACOSX_DEPLOYMENT_TARGET=10.12' >> ~/.profile
         - restore_cache:
             keys:
-              - jhbuild-v12
+              - jhbuild-v2-10
         - run:
             name: Setup JHBuild
             command: |
               cd $HOME
-              mkdir -p ~/.config && mv ~/project/jhbuildrc-gtk-osx-gimp ~/.config/jhbuildrc-custom
+              mkdir -p ~/.config && cp ~/project/jhbuildrc-gtk-osx-gimp-2.10 ~/.config/jhbuildrc-custom
               curl https://gitlab.gnome.org/samm-git/gtk-osx/raw/gimp/gtk-osx-setup.sh > gtk-osx-setup.sh
               chmod +x gtk-osx-setup.sh
               echo 'export PATH="$HOME/.cargo/bin:$HOME/.local/bin:$PATH:$HOME/.new_local/bin"' >> ~/.profile
               echo 'export ARCHFLAGS="-arch x86_64"' >> ~/.profile
+              # PYTHON variable seems to be incorrectly set
+              echo 'export PYTHON=/Library/Frameworks/Python.framework/Versions/3.9/bin/python3' >> 
~/.profile
               source ~/.profile
               PIPENV_YES=1 ./gtk-osx-setup.sh
               $HOME/.new_local/bin/jhbuild bootstrap-gtk-osx-gimp
@@ -50,38 +52,39 @@ jobs:
               - ~/.new_local
               - ~/gtk
               - ~/.config
-            key: jhbuild-v12
+            key: jhbuild-v2-10
         - run:
             name: Setup gtk-mac-bundler
             command: |
               cd ~/Source
-              git clone https://github.com/samm-git/gtk-mac-bundler -b fix-otool
+              git clone https://gitlab.gnome.org/lukaso/gtk-mac-bundler
               cd gtk-mac-bundler
               make install
         # we can try to make it automatically depended on the corresponding modules
         - restore_cache:
             keys:
-              - gimp-2.10.22-v3a
-              - webkit-v23
-              - gimp-deps-v12
-              - bootstrap-v23
+              - gimp-2.10.28-v1
+              - webkit-v2-10
+              - gimp-deps-v2-10
+              - bootstrap-v2-10
         - run:
             name: Bootstrap
-            command: source ~/.profile && jhbuild build icu55 meta-gtk-osx-freetype meta-gtk-osx-bootstrap 
meta-gtk-osx-core
+            command: |
+              source ~/.profile && jhbuild build icu meta-gtk-osx-freetype meta-gtk-osx-bootstrap 
meta-gtk-osx-core
         - run:
             name: Cleanup
             command: find  ~/gtk/source -type d -mindepth 1 -maxdepth 1 | xargs -I% rm -rf %/*
         - save_cache:
             paths:
               - ~/gtk
-            key: bootstrap-v23
+            key: bootstrap-v2-10
         - run:
             name: Build GIMP dependencies (without gegl/babl)
             command: |
-              source ~/.profile && jhbuild build suitesparse lcms libunistring gmp libnettle libtasn1 gnutls 
libjpeg readline python glib-networking openjpeg  gtk-mac-integration poppler poppler-data
+              source ~/.profile && jhbuild build suitesparse lcms libunistring gmp libnettle libtasn1 gnutls 
libjpeg readline python2 glib-networking openjpeg  gtk-mac-integration-gtk2 poppler poppler-data
               source ~/.profile && jhbuild build json-glib p2tc exiv2 gexiv2 ilmbase openexr libwebp 
libcroco librsvg-24 json-c
               source ~/.profile && jhbuild build libmypaint mypaint-brushes libde265 nasm x265 libheif aalib 
shared-mime-info iso-codes libwmf libmng ghostscript
-              source ~/.profile && jhbuild build pycairo pygobject pygtk gtk-mac-integration-python
+              source ~/.profile && jhbuild build pycairo pygobject pygtk gtk-mac-integration-gtk2-python
         - run:
             name: Build all WebKit dependencies
             command: |
@@ -93,18 +96,18 @@ jobs:
         - save_cache:
             paths:
               - ~/gtk
-            key: gimp-deps-v12
-        - run:
-            name: Build WebKit v1
-            no_output_timeout: 1h
-            command: source ~/.profile && jhbuild buildone webkit
+            key: gimp-deps-v2-10
+        # - run:
+            # name: Build WebKit v1
+            # no_output_timeout: 1h
+            # command: source ~/.profile && jhbuild buildone webkit
         - run:
             name: Cleanup
             command: find  ~/gtk/source -type d -mindepth 1 -maxdepth 1 | xargs -I% rm -rf %/*
         - save_cache:
             paths:
               - ~/gtk
-            key: webkit-v23
+            key: webkit-v2-10
         - run:
             name: Build and test babl/gegl
             command: source ~/.profile && jhbuild build --check babl gegl
@@ -124,10 +127,11 @@ jobs:
         - save_cache:
             paths:
               - ~/gtk
-            key: gimp-2.10.22-v3a
+            key: gimp-2.10.28-v1
         - run:
             name: Importing signing certificate
             command: |
+              set +e
               mkdir ${HOME}/codesign && cd ${HOME}/codesign
               echo "$osx_crt" | base64 -D > gnome.pfx
               curl 'https://developer.apple.com/certificationauthority/AppleWWDRCA.cer' > apple.cer
@@ -139,18 +143,28 @@ jobs:
               security import gnome.pfx  -k signchain -P "$osx_crt_pw" -T /usr/bin/codesign
               security set-key-partition-list -S apple-tool:,apple: -k "" signchain
               rm -rf ${HOME}/codesign
+              exit 0
         - run:
             name: Creating DMG package
             command: |
               source ~/.profile
               cd ${HOME}/project/package
+
+              # Authorize applescript on circle ci build
+              epochdate=$(($(date +'%s * 1000 + %-N / 1000000')))
+              tcc_service_appleevents="replace into access 
(service,client,client_type,auth_value,auth_reason,auth_version,indirect_object_identifier_type,indirect_object_identifier,flags,last_modified)
 values (\"kTCCServiceAppleEvents\",\"/usr/sbin/sshd\",1,2,4,1,0,\"com.apple.finder\",0,$epochdate);"
+              sudo sqlite3 "/Users/distiller/Library/Application Support/com.apple.TCC/TCC.db" 
"$tcc_service_appleevents"
+
+              # run script
               jhbuild run ./build.sh
         - run:
             name:  Notarizing DMG package
             command: |
+              set +e
               source ~/.profile
               cd ${HOME}/project/package
               jhbuild run ./notarize.sh
+              exit 0
         - store_artifacts:
             path: /tmp/artifacts
             destination: builds
diff --git a/jhbuildrc-gtk-osx-gimp b/jhbuildrc-gtk-osx-gimp-2.10
similarity index 94%
rename from jhbuildrc-gtk-osx-gimp
rename to jhbuildrc-gtk-osx-gimp-2.10
index 9e94d7d..a253594 100644
--- a/jhbuildrc-gtk-osx-gimp
+++ b/jhbuildrc-gtk-osx-gimp-2.10
@@ -116,6 +116,7 @@ setup_sdk("10.9","x86_64")
 environ_prepend('CFLAGS', "-O3")
 environ_prepend('CXXFLAGS', "-O3")
 environ_prepend('OBJCFLAGS', "-O3")
+# setup_debug()
 
 # Comment out the previous and uncomment this one to build for all
 # systems running SnowLeopard and later:
@@ -154,11 +155,11 @@ environ_prepend('OBJCFLAGS', "-O3")
 #
 # os.environ["CC"] = "/usr/bin/gcc-4.0"
 
-# use our modulset
+# use our moduleset
 moduleset = 'https://gitlab.gnome.org/samm-git/gtk-osx/raw/gimp/modulesets-stable/gtk-osx.modules'
 
-# force python 3.6 for the libxml2 to avoid build issues
-module_extra_env['libxml2'] = { "ac_cv_path_PYTHON": "python3.6" }
+# force python 3.9 for the libxml2 to avoid build issues
+module_extra_env['libxml2'] = { "ac_cv_path_PYTHON": "python3.9" }
 
 # force python 3.8 for gimp-help because libxml2 is built with Python
 # 3.8 support.
@@ -169,7 +170,14 @@ module_extra_env['meson'] = { "LC_ALL": "en_US.UTF-8" }
 
 # DJM - gtk-doc needs PYTHON to be python3, and then creates gtkdoc-rebase with a shebang of $PYTHON, so we 
need to be
 # absolute here, otherwise anything calling gtkdoc-rebase (i.e. the later gtk+ install) will err with  "bad 
interpreter"
-module_extra_env['gtk-doc'] = { 'PYTHON': '/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6' }
+module_extra_env['gtk-doc'] = { 'PYTHON': 'python3.9' }
+
+# gimp2.10 needs PYTHON to be python2
+module_extra_env['gimp'] = { 'PYTHON': 'python2' }
+
+# Needs PYTHON to be python2
+module_extra_env['pygobject'] = { 'PYTHON': 'python2' }
+module_extra_env['gtk-mac-integration-gtk2-python'] = { 'PYTHON': 'python2' }
 
 # DJM - c files built from defs are not including all necessary headers - ignore that
 module_extra_env['pygtk'] = { 'CFLAGS' : '-Wno-error=implicit-function-declaration' }
diff --git a/package/build.sh b/package/build.sh
index 215aa68..7854341 100755
--- a/package/build.sh
+++ b/package/build.sh
@@ -131,7 +131,7 @@ fi
 
 mkdir -p /tmp/artifacts/
 rm -f /tmp/tmp.dmg
-rm -f "gimp-${GIMP_VERSION}-x86_64.dmg"
+rm -f "/tmp/artifacts/gimp-${GIMP_VERSION}-x86_64.dmg"
 
 cd create-dmg
 
diff --git a/package/create-dmg/LICENSE b/package/create-dmg/LICENSE
index 349b6d8..deb407f 100644
--- a/package/create-dmg/LICENSE
+++ b/package/create-dmg/LICENSE
@@ -1,6 +1,7 @@
 The MIT License (MIT)
 
 Copyright (c) 2008-2014 Andrey Tarantsov
+Copyright (c) 2020 Andrew Janke
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/package/create-dmg/Makefile b/package/create-dmg/Makefile
new file mode 100644
index 0000000..41e8f08
--- /dev/null
+++ b/package/create-dmg/Makefile
@@ -0,0 +1,33 @@
+# Makefile for Cowsay
+
+PACKAGE_TARNAME = create-dmg
+
+prefix = /usr/local
+exec_prefix = ${prefix}
+bindir = ${exec_prefix}/bin
+datarootdir = ${prefix}/share
+datadir = ${datarootdir}
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+sysconfdir = ${prefix}/etc
+mandir=${datarootdir}/man
+srcdir = .
+
+SHELL = /bin/sh
+INSTALL = install
+INSTALL_PROGRAM = $(INSTALL)
+INSTALL_DATA = ${INSTALL} -m 644
+
+.PHONY: install uninstall
+
+install: create-dmg
+       $(INSTALL) -d $(DESTDIR)$(prefix)
+       $(INSTALL) -d $(DESTDIR)$(bindir)
+       $(INSTALL_PROGRAM) create-dmg $(DESTDIR)$(bindir)/create-dmg
+       $(INSTALL) -d $(DESTDIR)$(datadir)/$(PACKAGE_TARNAME)
+       cp -R support $(DESTDIR)$(datadir)/$(PACKAGE_TARNAME)
+       cp -R examples $(DESTDIR)$(datadir)/$(PACKAGE_TARNAME)
+       cp -R tests $(DESTDIR)$(datadir)/$(PACKAGE_TARNAME)
+
+uninstall:
+       rm -f $(DESTDIR)$(bindir)/create-dmg
+       rm -rf $(DESTDIR)$(datadir)/$(PACKAGE_TARNAME)
diff --git a/package/create-dmg/README.md b/package/create-dmg/README.md
index 495f306..e62c424 100644
--- a/package/create-dmg/README.md
+++ b/package/create-dmg/README.md
@@ -3,16 +3,18 @@ create-dmg
 
 A shell script to build fancy DMGs.
 
-
 Status and contribution policy
 ------------------------------
 
-This project is maintained thanks to the contributors who send pull requests, and now (Sep 2018) with the 
help of [@aonez](https://github.com/aonez).
+Create-dmg is maintained thanks to the contributors who send pull requests.
+As of May 2020, [Andrew Janke](https://github.com/apjanke) is the primary maintainer, and (since September 
2018) [@aonez](https://github.com/aonez) has helped with the maintenance.
+The project home page is <https://github.com/create-dmg/create-dmg>.
 
-We will merge any pull request that adds something useful and does not break existing things, and will often 
grant commit access to the repository.
+We will merge any pull request that adds something useful and does not break existing things.
 
-If you're an active user and want to be a maintainer, or just want to chat, please ping us at 
[gitter.im/create-dmg/Lobby](https://gitter.im/create-dmg/Lobby).
+If you're an active user and want to be a maintainer, or just want to chat, please ping us on Gitter at 
[gitter.im/create-dmg/Lobby](https://gitter.im/create-dmg/Lobby), or [email Andrew directly](floss apjanke 
net).
 
+Create-dmg was originally created by [Andrey Tarantsov](https://github.com/andreyvit).
 
 Installation
 ------------
@@ -23,50 +25,52 @@ Installation
   brew install create-dmg
   ```
 
-- You can download the [latest release](https://github.com/andreyvit/create-dmg/releases/latest)
+- You can download the [latest release](https://github.com/create-dmg/create-dmg/releases/latest) and 
install it from there:
+
+  ```sh
+  make install
+  ```
 
-- You can also clone the entire repository:
+- You can also clone the entire repository and run it locally from there:
 
   ```sh
-  git clone https://github.com/andreyvit/create-dmg.git
+  git clone https://github.com/create-dmg/create-dmg.git
   ```
 
 Usage
 -----
 
 ```sh
-create-dmg [options...] [output\_name.dmg] [source\_folder]
+create-dmg [options ...] <output_name.dmg> <source_folder>
 ```
 
 All contents of source\_folder will be copied into the disk image.
 
 **Options:**
 
-*   **--volname [name]:** set volume name (displayed in the Finder sidebar and window title)
-*   **--volicon [icon.icns]:** set volume icon
-*   **--background [pic.png]:** set folder background image (provide png, gif, jpg)
-*   **--window-pos [x y]:** set position the folder window
-*   **--window-size [width height]:** set size of the folder window
-*   **--text-size [text size]:** set window text size (10-16)
-*   **--icon-size [icon size]:** set window icons size (up to 128)
-*   **--icon [file name] [x y]:** set position of the file's icon
-*   **--hide-extension [file name]:** hide the extension of file
-*   **--custom-icon [file name]/[custom icon]/[sample file] [x y]:** set position and custom icon
-*   **--app-drop-link [x y]:** make a drop link to Applications, at location x, y
-*   **--ql-drop-link [x y]:** make a drop link to /Library/QuickLook, at location x, y
-*   **--eula [eula file]:** attach a license file to the dmg
-*   **--rez [rez path]:** specify custom path to Rez tool used to include license file
-*   **--no-internet-enable:** disable automatic mount&copy
-*   **--format:** specify the final image format (default is UDZO)
-*   **--add-file [target name] [path to source file] [x y]:** add additional file (option can be used 
multiple times)
-*   **--add-folder [target name] [path to source folder] [x y]:** add additional folder (option can be used 
multiple times)
-*   **--disk-image-size [x]:** set the disk image size manually to x MB
-*   **--hdiutil-verbose:** execute hdiutil in verbose mode
-*   **--hdiutil-quiet:** execute hdiutil in quiet mode
-*   **--sandbox-safe:** execute hdiutil with sandbox compatibility and don not bless
-*   **--version:** show tool version number
-*   **-h, --help:** display the help
-
+- **--volname \<name\>:** set volume name (displayed in the Finder sidebar and window title)
+- **--volicon \<icon.icns\>:** set volume icon
+- **--background \<pic.png\>:** set folder background image (provide png, gif, jpg)
+- **--window-pos \<x\> \<y\>:** set position the folder window
+- **--window-size \<width\> \<height\>:** set size of the folder window
+- **--text-size \<text_size\>:** set window text size (10-16)
+- **--icon-size \<icon_size\>:** set window icons size (up to 128)
+- **--icon \<file_name\> \<x\> \<y\>:** set position of the file's icon
+- **--hide-extension \<file_name\>:** hide the extension of file
+- **--custom-icon \<file_name|custom_icon|sample_file\> \<x\> \<y\>:** set position and -tom icon
+- **--app-drop-link \<x\> \<y\>:** make a drop link to Applications, at location x, y
+- **--ql-drop-link \<x\> \<y\>:** make a drop link to /Library/QuickLook, at location x, y
+- **--eula \<eula_file\>:** attach a license file to the dmg
+- **--rez \<rez_path\>:** specify custom path to Rez tool used to include license file
+- **--no-internet-enable:** disable automatic mount&copy
+- **--format:** specify the final image format (default is UDZO)
+- **--add-file \<target_name\> \<file|folder\> \<x\> \<y\>:** add additional file or folder (can be used 
multiple times)
+- **--disk-image-size \<x\>:** set the disk image size manually to x MB
+- **--hdiutil-verbose:** execute hdiutil in verbose mode
+- **--hdiutil-quiet:** execute hdiutil in quiet mode
+- **--sandbox-safe:** execute hdiutil with sandbox compatibility, do not bless and do not execute the 
cosmetic AppleScript
+- **--version:** show tool version number
+- **-h, --help:** display the help
 
 Example
 -------
@@ -75,22 +79,37 @@ Example
 #!/bin/sh
 test -f Application-Installer.dmg && rm Application-Installer.dmg
 create-dmg \
---volname "Application Installer" \
---volicon "application\_icon.icns" \
---background "installer\_background.png" \
---window-pos 200 120 \
---window-size 800 400 \
---icon-size 100 \
---icon "Application.app" 200 190 \
---hide-extension "Application.app" \
---app-drop-link 600 185 \
-"Application-Installer.dmg" \
-"source_folder/"
+  --volname "Application Installer" \
+  --volicon "application_icon.icns" \
+  --background "installer_background.png" \
+  --window-pos 200 120 \
+  --window-size 800 400 \
+  --icon-size 100 \
+  --icon "Application.app" 200 190 \
+  --hide-extension "Application.app" \
+  --app-drop-link 600 185 \
+  "Application-Installer.dmg" \
+  "source_folder/"
 ```
 
+See the `examples` folder in the source tree for more examples.
+
+Requirements
+------------
+
+Nothing except a standard installation of macOS/OS X is required.
+
+We think this works in OS X 10.6 Snow Leopard and later.
+
+We'd like to keep it working in as many versions as possible, but unfortunately, we just don't have test 
boxes running old versions of OS X adequate to make this happen. Development and testing mostly happens in 
the last 3-5 years' worth of macOS releases; as of 2020, this means macOS 10.12 and later.
+
+But if you find a bug in an older version, go ahead and report it! We'll try to work with you to get it 
fixed.
+
+If you're running OS X 10.5 or later, you're SOL. That's just too hard to deal with in 2020. ;)
+
 Alternatives
 ------------
 
-* [node-appdmg](https://github.com/LinusU/node-appdmg)
-* [dmgbuild](https://pypi.python.org/pypi/dmgbuild)
-* see the [StackOverflow 
question](http://stackoverflow.com/questions/96882/how-do-i-create-a-nice-looking-dmg-for-mac-os-x-using-command-line-tools)
+- [node-appdmg](https://github.com/LinusU/node-appdmg)
+- [dmgbuild](https://pypi.python.org/pypi/dmgbuild)
+- see the [StackOverflow 
question](http://stackoverflow.com/questions/96882/how-do-i-create-a-nice-looking-dmg-for-mac-os-x-using-command-line-tools)
diff --git a/package/create-dmg/create-dmg b/package/create-dmg/create-dmg
index 299b01f..99d00e5 100755
--- a/package/create-dmg/create-dmg
+++ b/package/create-dmg/create-dmg
@@ -351,9 +351,19 @@ EOS
 
 if [ $SKIP_JENKINS -eq 0 ]; then
        applescript_source | sed -e "s/WINX/$WINX/g" -e "s/WINY/$WINY/g" -e "s/WINW/$WINW/g" -e 
"s/WINH/$WINH/g" -e "s/BACKGROUND_CLAUSE/$BACKGROUND_CLAUSE/g" -e 
"s/REPOSITION_HIDDEN_FILES_CLAUSE/$REPOSITION_HIDDEN_FILES_CLAUSE/g" -e "s/ICON_SIZE/$ICON_SIZE/g" -e 
"s/TEXT_SIZE/$TEXT_SIZE/g" | perl -pe  "s/POSITION_CLAUSE/$POSITION_CLAUSE/g" | perl -pe 
"s/QL_CLAUSE/$QL_CLAUSE/g" | perl -pe "s/APPLICATION_CLAUSE/$APPLICATION_CLAUSE/g" | perl -pe 
"s/HIDING_CLAUSE/$HIDING_CLAUSE/" >"$APPLESCRIPT"
-       sleep 2 # pause to workaround occasional "Can’t get disk" (-1728) issues  
-       echo "Running Applescript: /usr/bin/osascript \"${APPLESCRIPT}\" \"${VOLUME_NAME}\""
-       (/usr/bin/osascript "${APPLESCRIPT}" "${VOLUME_NAME}" || if [[ "$?" -ne 0 ]]; then echo "Failed 
running AppleScript"; hdiutil detach "${DEV_NAME}"; exit 64; fi)
+       sleep 2 # pause to workaround occasional "Can’t get disk" (-1728) issues
+       if false; then
+               echo "Compiling and running ${APPLESCRIPT}.app --args \"${VOLUME_NAME}\""
+               osacompile -o "${APPLESCRIPT}.app" "${APPLESCRIPT}"
+               while [ ! -f "${APPLESCRIPT}.app/Contents/MacOS/applet" ]; do sleep 1; done
+               sleep 10
+               (open -g -W "${APPLESCRIPT}.app" --args "${VOLUME_NAME}" || if [[ "$?" -ne 0 ]]; then echo 
"Failed running AppleScript"; hdiutil detach "${DEV_NAME}"; exit 64; fi)
+               sleep 4
+               rm -rf "${APPLESCRIPT}.app"
+       else
+               echo "Running Applescript: /usr/bin/osascript \"${APPLESCRIPT}\" \"${VOLUME_NAME}\""
+               (/usr/bin/osascript "${APPLESCRIPT}" "${VOLUME_NAME}" || if [[ "$?" -ne 0 ]]; then echo 
"Failed running AppleScript"; hdiutil detach "${DEV_NAME}"; exit 64; fi)
+       fi
        echo "Done running the applescript..."
        sleep 4
        rm "$APPLESCRIPT"
diff --git a/package/create-dmg/doc-project/Developer Notes.md b/package/create-dmg/doc-project/Developer 
Notes.md
new file mode 100644
index 0000000..892c0e5
--- /dev/null
+++ b/package/create-dmg/doc-project/Developer Notes.md 
@@ -0,0 +1,35 @@
+# create-dmg Developer Notes
+
+## Repo layout
+
+- `create-dmg` in the root of the repo is the main program
+- `support/` contains auxiliary scripts used by `create-dmg`; it must be at that relative position to 
`create-dmg`
+- `builder/` contains ????
+- `examples/` contains user-facing examples
+- `tests/` contains regression tests for developers
+- `doc-project/` contains developer-facing documentation about this project
+
+### tests/
+
+The `tests/` folder contains regression tests for developers.
+
+Each test is in its own subfolder.
+Each subfolder name should start with a 3-digit number that is the number of the corresponding bug report in 
create-dmg's GitHub issue tracker.
+
+The tests are to be run manually, with the results examined manually.
+There's no automated script to run them as a suite and check their results.
+That might be nice to have.
+
+### examples/
+
+Each example is in its own subfolder.
+The subfolder prefix number is arbitrary; these numbers should roughly be in order of "advancedness" of 
examples, so it makes sense for users to go through them in order.
+
+## Versioning
+
+As of May 2020, we're using SemVer versioning.
+The old version numbers were 4-parters, like "1.0.0.7".
+Now we use 3-part SemVer versions, like "1.0.8".
+This change happened after version 1.0.0.7; 1.0.8 is the next release after 1.0.0.7.
+
+The suffix "-SNAPSHOT" is used to denote a version that is still under development.
diff --git a/package/create-dmg/doc-project/Release Checklist.md b/package/create-dmg/doc-project/Release 
Checklist.md
new file mode 100644
index 0000000..5083920
--- /dev/null
+++ b/package/create-dmg/doc-project/Release Checklist.md       
@@ -0,0 +1,10 @@
+# Release Checklist
+
+- Update the version in `create-dmg`'s `pure_version` function
+  - Remove the "-SNAPSHOT" suffix
+- Commit
+- Tag the release as `vX.X.X`
+- `git push --tags`
+- Create a release on the GitHub project page
+- Open development on the next release
+  - Bump the version number and add a "-SNAPSHOT" suffix to it
diff --git a/package/create-dmg/examples/01-main-example/installer_background.png 
b/package/create-dmg/examples/01-main-example/installer_background.png
new file mode 100644
index 0000000..bdfa5ed
Binary files /dev/null and b/package/create-dmg/examples/01-main-example/installer_background.png differ
diff --git a/package/create-dmg/examples/01-main-example/sample 
b/package/create-dmg/examples/01-main-example/sample
new file mode 100755
index 0000000..c18a65b
--- /dev/null
+++ b/package/create-dmg/examples/01-main-example/sample
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+if [[ -e ../../create-dmg ]]; then
+  # We're running from the repo
+  CREATE_DMG=../../create-dmg
+else
+  # We're running from an installation under a prefix
+  CREATE_DMG=../../../../bin/create-dmg
+fi
+
+# Since create-dmg does not clobber, be sure to delete previous DMG
+[[ -f Application-Installer.dmg ]] && rm Application-Installer.dmg
+
+# Create the DMG
+$CREATE_DMG \
+  --volname "Application Installer" \
+  --background "installer_background.png" \
+  --window-pos 200 120 \
+  --window-size 800 400 \
+  --icon-size 100 \
+  --icon "Application.app" 200 190 \
+  --hide-extension "Application.app" \
+  --app-drop-link 600 185 \
+  "Application-Installer.dmg" \
+  "source_folder/"
diff --git a/package/create-dmg/examples/01-main-example/source_folder/Application.app 
b/package/create-dmg/examples/01-main-example/source_folder/Application.app
new file mode 100644
index 0000000..e69de29
diff --git a/package/create-dmg/support/eula-resources-template.xml 
b/package/create-dmg/support/eula-resources-template.xml
new file mode 100644
index 0000000..7495632
--- /dev/null
+++ b/package/create-dmg/support/eula-resources-template.xml
@@ -0,0 +1,105 @@
+<?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>LPic</key>
+       <array>
+               <dict>
+                       <key>Attributes</key>
+                       <string>0x0000</string>
+                       <key>Data</key>
+                       <data>
+                       AAAAAgAAAAAAAAAAAAQAAA==
+                       </data>
+                       <key>ID</key>
+                       <string>5000</string>
+                       <key>Name</key>
+                       <string></string>
+               </dict>
+       </array>
+       <key>STR#</key>
+       <array>
+               <dict>
+                       <key>Attributes</key>
+                       <string>0x0000</string>
+                       <key>Data</key>
+                       <data>
+                       AAYNRW5nbGlzaCB0ZXN0MQVBZ3JlZQhEaXNhZ3JlZQVQcmludAdT
+                       YXZlLi4ueklmIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcyBvZiB0
+                       aGlzIGxpY2Vuc2UsIGNsaWNrICJBZ3JlZSIgdG8gYWNjZXNzIHRo
+                       ZSBzb2Z0d2FyZS4gIElmIHlvdSBkbyBub3QgYWdyZWUsIHByZXNz
+                       ICJEaXNhZ3JlZS4i
+                       </data>
+                       <key>ID</key>
+                       <string>5000</string>
+                       <key>Name</key>
+                       <string>English buttons</string>
+               </dict>
+               <dict>
+                       <key>Attributes</key>
+                       <string>0x0000</string>
+                       <key>Data</key>
+                       <data>
+                       AAYHRW5nbGlzaAVBZ3JlZQhEaXNhZ3JlZQVQcmludAdTYXZlLi4u
+                       e0lmIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcyBvZiB0aGlzIGxp
+                       Y2Vuc2UsIHByZXNzICJBZ3JlZSIgdG8gaW5zdGFsbCB0aGUgc29m
+                       dHdhcmUuICBJZiB5b3UgZG8gbm90IGFncmVlLCBwcmVzcyAiRGlz
+                       YWdyZWUiLg==
+                       </data>
+                       <key>ID</key>
+                       <string>5002</string>
+                       <key>Name</key>
+                       <string>English</string>
+               </dict>
+       </array>
+       <key>${EULA_FORMAT}</key>
+       <array>
+               <dict>
+                       <key>Attributes</key>
+                       <string>0x0000</string>
+                       <key>Data</key>
+                       <data>
+${EULA_DATA}
+                       </data>
+                       <key>ID</key>
+                       <string>5000</string>
+                       <key>Name</key>
+                       <string>English</string>
+               </dict>
+       </array>
+       <key>TMPL</key>
+       <array>
+               <dict>
+                       <key>Attributes</key>
+                       <string>0x0000</string>
+                       <key>Data</key>
+                       <data>
+                       E0RlZmF1bHQgTGFuZ3VhZ2UgSUREV1JEBUNvdW50T0NOVAQqKioq
+                       TFNUQwtzeXMgbGFuZyBJRERXUkQebG9jYWwgcmVzIElEIChvZmZz
+                       ZXQgZnJvbSA1MDAwRFdSRBAyLWJ5dGUgbGFuZ3VhZ2U/RFdSRAQq
+                       KioqTFNURQ==
+                       </data>
+                       <key>ID</key>
+                       <string>128</string>
+                       <key>Name</key>
+                       <string>LPic</string>
+               </dict>
+       </array>
+       <key>styl</key>
+       <array>
+               <dict>
+                       <key>Attributes</key>
+                       <string>0x0000</string>
+                       <key>Data</key>
+                       <data>
+                       AAMAAAAAAAwACQAUAAAAAAAAAAAAAAAAACcADAAJABQBAAAAAAAA
+                       AAAAAAAAKgAMAAkAFAAAAAAAAAAAAAA=
+                       </data>
+                       <key>ID</key>
+                       <string>5000</string>
+                       <key>Name</key>
+                       <string>English</string>
+               </dict>
+       </array>
+</dict>
+</plist>
diff --git a/package/create-dmg/support/template.applescript b/package/create-dmg/support/template.applescript
index fee634d..2d39ca7 100644
--- a/package/create-dmg/support/template.applescript
+++ b/package/create-dmg/support/template.applescript
@@ -66,7 +66,7 @@ on run (volumeName)
                repeat while ejectMe is false
                        delay 1
                        set waitTime to waitTime + 1
-                       
+
                        if (do shell script "[ -f " & dsStore & " ]; echo $?") = "0" then set ejectMe to true
                end repeat
                log "waited " & waitTime & " seconds for .DS_STORE to be created."
diff --git a/package/create-dmg/tests/007-space-in-dir-name/my files/hello.txt 
b/package/create-dmg/tests/007-space-in-dir-name/my files/hello.txt
new file mode 100644
index 0000000..802992c
--- /dev/null
+++ b/package/create-dmg/tests/007-space-in-dir-name/my files/hello.txt 
@@ -0,0 +1 @@
+Hello world
diff --git a/package/create-dmg/tests/007-space-in-dir-name/run-test 
b/package/create-dmg/tests/007-space-in-dir-name/run-test
new file mode 100755
index 0000000..ab7f96a
--- /dev/null
+++ b/package/create-dmg/tests/007-space-in-dir-name/run-test
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+# Test for https://github.com/create-dmg/create-dmg/issues/7 - spaces in folder names
+
+../../create-dmg "my disk image.dmg" "my files"
\ No newline at end of file
diff --git a/package/gimp-2.10.bundle b/package/gimp-2.10.bundle
index c69d778..25b0b89 100644
--- a/package/gimp-2.10.bundle
+++ b/package/gimp-2.10.bundle
@@ -56,10 +56,6 @@
 
   <!-- Copy in Info.plist -->
   <plist>${project}/info-2.10.plist</plist>
-  <!-- Copy in libpyglib, which will pull in other dependencies we need -->
-  <binary>
-    ${prefix}/lib/libpyglib-2.0-python.0.dylib
-  </binary>
   <!-- Gtk+ is required by python modules which aren't searched for
        dependencies, so we have to pull it in explicitly. It will
        bring Pango and Cairo with it. Note the use of ${gtkversion},
@@ -69,8 +65,8 @@
     ${prefix}/lib/libgtk-quartz-${gtkversion}.0.dylib
   </binary>
   <binary>
- ${prefix}/lib/libgegl-sc-0.4.dylib
-</binary>
+    ${prefix}/lib/libgegl-sc-0.4.dylib
+  </binary>
   <!-- We have to pull in the python modules, which are mixed python
        and loadable modules.  -->
 
@@ -78,7 +74,7 @@
     ${prefix}/lib/python2.7/*.so
   </binary>
   <binary>
-  ${prefix}/lib/gio/modules
+    ${prefix}/lib/gio/modules
   </binary>
   <data recurse="True">
     ${prefix}/lib/python2.7/*.py


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]