Merge branch 'dist' of ssh://git.carlh.net/home/carl/git/dcpomatic into dist
authorCarl Hetherington <cth@carlh.net>
Sun, 5 Apr 2020 19:41:23 +0000 (21:41 +0200)
committerCarl Hetherington <cth@carlh.net>
Sun, 5 Apr 2020 19:41:23 +0000 (21:41 +0200)
25 files changed:
graphics/linux/128/dcpomatic2_disk.png
graphics/linux/16/dcpomatic2_disk.png
graphics/linux/22/dcpomatic2_disk.png
graphics/linux/256/dcpomatic2_disk.png
graphics/linux/32/dcpomatic2_disk.png
graphics/linux/48/dcpomatic2_disk.png
graphics/linux/512/dcpomatic2_disk.png
graphics/linux/64/dcpomatic2_disk.png
graphics/osx/dcpomatic2_disk.iconset/icon_128x128.png
graphics/osx/dcpomatic2_disk.iconset/icon_128x128@2x.png
graphics/osx/dcpomatic2_disk.iconset/icon_16x16.png
graphics/osx/dcpomatic2_disk.iconset/icon_16x16@2x.png
graphics/osx/dcpomatic2_disk.iconset/icon_256x256.png
graphics/osx/dcpomatic2_disk.iconset/icon_256x256@2x.png
graphics/osx/dcpomatic2_disk.iconset/icon_32x32.png
graphics/osx/dcpomatic2_disk.iconset/icon_32x32@2x.png
graphics/osx/dcpomatic2_disk.iconset/icon_512x512.png
graphics/osx/dcpomatic2_disk.iconset/icon_512x512@2x.png
graphics/src/dcpomatic2_disk.svg
graphics/web/favicon-128x128.png
graphics/web/favicon-16x16.png
graphics/web/favicon-32x32.png
graphics/web/favicon-64x64.png
graphics/windows/dcpomatic2_disk.ico
platform/osx/make_dmg.sh

index 76e27f73604d97895db7dfe532b0e457657e46b0..eea4e234ba17d70471ae2e272a019a9b0726f588 100644 (file)
Binary files a/graphics/linux/128/dcpomatic2_disk.png and b/graphics/linux/128/dcpomatic2_disk.png differ
index f842ea340bc04578070866bb169b8bb8a5fa616c..9184f8488e3ff04ea14d9b1350891b7e749c7e38 100644 (file)
Binary files a/graphics/linux/16/dcpomatic2_disk.png and b/graphics/linux/16/dcpomatic2_disk.png differ
index 9fbe61c057976936686973a80a817939fb3da7ce..99f74a78980937f8b80d9fd014210a040b9b4f26 100644 (file)
Binary files a/graphics/linux/22/dcpomatic2_disk.png and b/graphics/linux/22/dcpomatic2_disk.png differ
index 2654d84c0101cbed1387da9a8baa72e345b3c653..d049cc96793fc0948092d29eced3c713efe438a2 100644 (file)
Binary files a/graphics/linux/256/dcpomatic2_disk.png and b/graphics/linux/256/dcpomatic2_disk.png differ
index 7893e4c41d17c61ead0f98f151399da3fdc0c578..6f0605c520a8c67db7954fd4299ce91c2900fa7d 100644 (file)
Binary files a/graphics/linux/32/dcpomatic2_disk.png and b/graphics/linux/32/dcpomatic2_disk.png differ
index 8124195b4313923f1a40a09c52f956335fd0440b..b3d63e0afa010b75b4a636aeedf29c690dc7096b 100644 (file)
Binary files a/graphics/linux/48/dcpomatic2_disk.png and b/graphics/linux/48/dcpomatic2_disk.png differ
index 9802ad6dc1ec8a88acb6725a26b10bab616ac488..4dd1d65984d1d2e77144f339b83bc7c1565771fa 100644 (file)
Binary files a/graphics/linux/512/dcpomatic2_disk.png and b/graphics/linux/512/dcpomatic2_disk.png differ
index 9cd6d12e359c74b0447a6ecb8c7da88597c81e51..d0a57a3f12637892141db49b302741ceda17467e 100644 (file)
Binary files a/graphics/linux/64/dcpomatic2_disk.png and b/graphics/linux/64/dcpomatic2_disk.png differ
index 76e27f73604d97895db7dfe532b0e457657e46b0..eea4e234ba17d70471ae2e272a019a9b0726f588 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_128x128.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_128x128.png differ
index 76e27f73604d97895db7dfe532b0e457657e46b0..eea4e234ba17d70471ae2e272a019a9b0726f588 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_128x128@2x.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_128x128@2x.png differ
index f842ea340bc04578070866bb169b8bb8a5fa616c..9184f8488e3ff04ea14d9b1350891b7e749c7e38 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_16x16.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_16x16.png differ
index f842ea340bc04578070866bb169b8bb8a5fa616c..9184f8488e3ff04ea14d9b1350891b7e749c7e38 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_16x16@2x.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_16x16@2x.png differ
index 2654d84c0101cbed1387da9a8baa72e345b3c653..d049cc96793fc0948092d29eced3c713efe438a2 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_256x256.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_256x256.png differ
index 2654d84c0101cbed1387da9a8baa72e345b3c653..d049cc96793fc0948092d29eced3c713efe438a2 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_256x256@2x.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_256x256@2x.png differ
index 7893e4c41d17c61ead0f98f151399da3fdc0c578..6f0605c520a8c67db7954fd4299ce91c2900fa7d 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_32x32.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_32x32.png differ
index 7893e4c41d17c61ead0f98f151399da3fdc0c578..6f0605c520a8c67db7954fd4299ce91c2900fa7d 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_32x32@2x.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_32x32@2x.png differ
index 9802ad6dc1ec8a88acb6725a26b10bab616ac488..4dd1d65984d1d2e77144f339b83bc7c1565771fa 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_512x512.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_512x512.png differ
index 9802ad6dc1ec8a88acb6725a26b10bab616ac488..4dd1d65984d1d2e77144f339b83bc7c1565771fa 100644 (file)
Binary files a/graphics/osx/dcpomatic2_disk.iconset/icon_512x512@2x.png and b/graphics/osx/dcpomatic2_disk.iconset/icon_512x512@2x.png differ
index 0a022b71ce7f93a5ea68bc49a02cee04ea852fb2..d93c8c1f58d0832a6e409db50a3f79ca2777b539 100644 (file)
@@ -15,7 +15,7 @@
    id="svg2"
    version="1.1"
    inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="dcpomatic2_dist.svg"
+   sodipodi:docname="dcpomatic2_disk.svg"
    viewBox="0 0 1000 1000">
   <sodipodi:namedview
      id="base"
@@ -24,9 +24,9 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="0.34926264"
-     inkscape:cx="218.18331"
-     inkscape:cy="476.21434"
+     inkscape:zoom="0.061741495"
+     inkscape:cx="-2231.4864"
+     inkscape:cy="438.2963"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
      inkscape:window-y="27"
      inkscape:window-maximized="1"
      inkscape:document-rotation="0"
-     inkscape:snap-global="false" />
+     inkscape:snap-global="true"
+     inkscape:snap-bbox="true" />
   <defs
      id="defs4">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient979">
+      <stop
+         style="stop-color:#255a54;stop-opacity:1;"
+         offset="0"
+         id="stop975" />
+      <stop
+         style="stop-color:#133430;stop-opacity:1"
+         offset="1"
+         id="stop977" />
+    </linearGradient>
+    <linearGradient
+       x1="403.63"
+       y1="448.35001"
+       gradientTransform="matrix(0.70711,-0.70711,0.70711,0.70711,-203.97741,756.21351)"
+       x2="382.89999"
+       gradientUnits="userSpaceOnUse"
+       y2="448.35001"
+       id="linearGradient855">
+      <stop
+         offset="0"
+         stop-opacity=".39216"
+         stop-color="#7f7f7f"
+         id="stop893"
+         style="stop-color:#7f7f7f;stop-opacity:1" />
+      <stop
+         offset="1"
+         stop-opacity=".39216"
+         stop-color="#6f6f6f"
+         id="stop895"
+         style="stop-color:#6f6f6f;stop-opacity:0" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient855-3"
+       y2="448.35001"
+       gradientUnits="userSpaceOnUse"
+       x2="382.89999"
+       gradientTransform="matrix(0.70711,-0.70711,0.70711,0.70711,-203.97741,756.21351)"
+       y1="448.35001"
+       x1="403.63">
+      <stop
+         style="stop-color:#7f7f7f;stop-opacity:1"
+         id="stop851"
+         stop-color="#7f7f7f"
+         stop-opacity=".39216"
+         offset="0" />
+      <stop
+         style="stop-color:#6f6f6f;stop-opacity:0"
+         id="stop853"
+         stop-color="#6f6f6f"
+         stop-opacity=".39216"
+         offset="1" />
+    </linearGradient>
     <inkscape:perspective
        sodipodi:type="inkscape:persp3d"
        inkscape:vp_x="573.17725 : 70.615423 : 0"
          offset="0"
          stop-opacity=".39216"
          stop-color="#7f7f7f"
-         id="stop3636" />
+         id="stop3636"
+         style="stop-color:#7f7f7f;stop-opacity:1" />
       <stop
          offset="1"
          stop-opacity=".39216"
          stop-color="#6f6f6f"
-         id="stop3638" />
+         id="stop3638"
+         style="stop-color:#6f6f6f;stop-opacity:0.01941748" />
     </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient979"
+       id="linearGradient981"
+       x1="258.13272"
+       y1="581.64954"
+       x2="280.90915"
+       y2="487.69684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2956992,0,0,1.1173853,-70.442976,-75.323286)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient979"
+       id="linearGradient981-5"
+       x1="258.13272"
+       y1="581.64954"
+       x2="280.90915"
+       y2="487.69684"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2956992,0,0,1.1173853,346.73201,-93.640862)" />
   </defs>
   <metadata
      id="metadata7">
      inkscape:groupmode="layer"
      id="layer1"
      transform="translate(0,-52.362188)">
+    <rect
+       style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#ececec;stroke-width:15.00000095;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-end:none;paint-order:stroke fill markers"
+       id="rect945"
+       width="1167.6385"
+       height="1151.5332"
+       x="1217.4148"
+       y="1347.8682"
+       rx="33.75"
+       ry="33.75" />
     <image
        sodipodi:absref="/home/carl/src/dcpomatic/graphics/src/dcpomatic.png"
        xlink:href="dcpomatic.png"
-       y="80.386467"
-       x="10.670144"
-       width="960.00006"
-       height="960.00006"
-       preserveAspectRatio="none"
+       style="stroke:#000000;stroke-opacity:1;stroke-width:2.5000001;stroke-miterlimit:4;stroke-dasharray:none;opacity:1"
        id="image4358"
-       style="stroke:#000000;stroke-opacity:1;stroke-width:2.5000001;stroke-miterlimit:4;stroke-dasharray:none;opacity:1" />
-    <g
-       id="g4865"
-       transform="matrix(1,0,0,0.7632365,969.89577,587.12592)"
-       style="stroke:#0b0000;stroke-width:8.01250839;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:0.691">
-      <path
-         sodipodi:nodetypes="ccccc"
-         d="m -213.36669,-76.521967 -237.25434,29.22973 v 131.7236 l 237.25434,-29.22973 z"
-         style="opacity:1;fill:#f2f2f2;fill-opacity:1;fill-rule:evenodd;stroke:#0b0000;stroke-width:8.01250839;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-end:none;paint-order:stroke fill markers"
-         id="path4664"
-         inkscape:connector-curvature="0" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         d="m -512.46942,-153.6491 -237.25434,29.22973 300.80072,73.481127 235.55635,-25.583724 z"
-         style="opacity:1;fill:#767676;fill-opacity:1;fill-rule:evenodd;stroke:#0b0000;stroke-width:8.01250839;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-end:none;paint-order:stroke fill markers"
-         id="path4666"
-         inkscape:connector-curvature="0" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         d="M -749.72376,-124.41937 V 7.3042426 l 299.10273,77.1271204 v -131.7236 z"
-         style="opacity:1;fill:#bcbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#0b0000;stroke-width:8.01250839;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-end:none;paint-order:stroke fill markers"
-         id="path4668"
-         inkscape:connector-curvature="0" />
-    </g>
+       preserveAspectRatio="none"
+       height="960.00006"
+       width="960.00006"
+       x="10.670144"
+       y="80.386467" />
+    <rect
+       style="opacity:1;vector-effect:none;fill:url(#linearGradient981);fill-opacity:1;stroke:none;stroke-width:15.00000095;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-end:none;paint-order:stroke fill markers"
+       id="rect958"
+       width="95.643623"
+       height="189.7067"
+       x="238.2251"
+       y="451.96884"
+       rx="43.729847"
+       ry="36.004051" />
+    <rect
+       style="opacity:1;vector-effect:none;fill:url(#linearGradient981-5);fill-opacity:1;stroke:none;stroke-width:15.00000095;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-end:none;paint-order:stroke fill markers"
+       id="rect958-6"
+       width="95.643623"
+       height="189.70668"
+       x="655.40009"
+       y="433.65125"
+       rx="43.729847"
+       ry="36.004051" />
     <path
-       style="fill:#00ff00;stroke:#00ff00;stroke-width:15.00000095;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 536.48268,574.56478 38.71392,-3.11173"
-       id="path4867"
+       style="fill:#808080;stroke:#ffffff;stroke-width:15.00000095;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 635.01872,349.90824 85.16099,283.02659 H 263.60389 l 87.18344,-281.69086 c 3.82184,-13.96906 23.00671,-28.47528 36.85535,-28.47528 l 213.6276,-0.35249 c 17.09674,0.72772 28.6937,11.26128 33.74844,27.49204 z"
+       id="path947"
        inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc"
-       inkscape:transform-center-x="-29.634214"
-       inkscape:transform-center-y="30.068191" />
+       sodipodi:nodetypes="ccccccc" />
+    <rect
+       style="opacity:1;vector-effect:none;fill:#999999;fill-opacity:1;stroke:#ececec;stroke-width:30.00000191;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-end:none;paint-order:stroke fill markers"
+       id="rect943"
+       width="456.57584"
+       height="105.73843"
+       x="263.60385"
+       y="632.93481"
+       ry="17.726633"
+       rx="17.773174" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.50000191px;line-height:1.20000005;font-family:'Bitstream Vera Sans Mono';-inkscape-font-specification:'Bitstream Vera Sans Mono';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.9375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;"
+       x="-1064.7976"
+       y="826.49603"
+       id="text1027"><tspan
+         sodipodi:role="line"
+         id="tspan1025"
+         x="-1064.7976"
+         y="846.88104"
+         style="stroke-width:0.9375;-inkscape-font-specification:'Bitstream Vera Sans Mono';font-family:'Bitstream Vera Sans Mono';font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:128.48579407px;line-height:1.20000005;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman,  Bold';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.93749988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       x="394.93756"
+       y="729.72614"
+       id="text1035"><tspan
+         sodipodi:role="line"
+         id="tspan1033"
+         x="394.93756"
+         y="729.72614"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman,  Bold';stroke-width:0.93749988">DCP</tspan></text>
+    <path
+       style="opacity:1;vector-effect:none;fill:#999999;fill-opacity:1;stroke:#ececec;stroke-width:30.00000191;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-end:none;paint-order:stroke fill markers"
+       d="m 292.58069,687.62725 h 37.57918"
+       id="path1037"
+       inkscape:connector-curvature="0" />
   </g>
 </svg>
index a78e5a2302dd2cdd763b71abc1b3d643c7568f87..6214556419d2b3b204e3cb6afd2b6d10c5387eb2 100644 (file)
Binary files a/graphics/web/favicon-128x128.png and b/graphics/web/favicon-128x128.png differ
index ec3726302609d0a94e7899ab015f44499900e876..4c31c0258b920b7011bf47ae6e91059812748ffc 100644 (file)
Binary files a/graphics/web/favicon-16x16.png and b/graphics/web/favicon-16x16.png differ
index 54658330f3c959079301dad8b4b14b17314a59dd..847bc813a7a7e6c3206fd2bdc6e50cbcbdee54fe 100644 (file)
Binary files a/graphics/web/favicon-32x32.png and b/graphics/web/favicon-32x32.png differ
index 59d009247f46ca55dd7e98c45e1042a660022d19..e836814d1bb9b2fda9c4684643886de028795d96 100644 (file)
Binary files a/graphics/web/favicon-64x64.png and b/graphics/web/favicon-64x64.png differ
index e092bce766171d9a002cda57d8cba578483ec350..3ec68e2546b9be1a3f1d352e65d10fb28b30518d 100644 (file)
Binary files a/graphics/windows/dcpomatic2_disk.ico and b/graphics/windows/dcpomatic2_disk.ico differ
index 1dfd813b41580ac80f7c9d3da423643c17d30026..95606e2e2e8db793a94f7fea920fa85197e3a812 100644 (file)
@@ -254,12 +254,14 @@ function relink {
 }
 
 # @param #1 .app directory
-# @param #2 full name e.g. DCP-o-matic Batch Converter
-# @param #3 bundle id e.g. com.dcpomatic.batch
+# @param #2 .pkg or ""
+# @param #3 full name e.g. DCP-o-matic Batch Converter
+# @param #4 bundle id e.g. com.dcpomatic.batch
 function make_dmg {
     local appdir="$1"
-    local full_name="$2"
-    local bundle_id="$3"
+    local pkg="$2"
+    local full_name="$3"
+    local bundle_id="$4"
     tmp_dmg=dcpomatic_tmp.dmg
     dmg="$full_name $version.dmg"
     vol_name=DCP-o-matic-$version
@@ -272,6 +274,9 @@ function make_dmg {
 
     mkdir -p $vol_name
     cp -a "$appdir" $vol_name
+    if [ "$pkg" != ""]; then
+        cp -a "$pkg" $vol_name
+    fi
     ln -s /Applications "$vol_name/Applications"
     cat<<EOF > "$vol_name/READ ME.txt"
 Welcome to DCP-o-matic!  The first time you run the program there may be
@@ -399,7 +404,7 @@ copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2.Info.plist "$approot/Info.plist"
 rl=("$approot/MacOS/dcpomatic2" "$approot/MacOS/dcpomatic2_cli" "$approot/MacOS/dcpomatic2_create" "$approot/MacOS/ffprobe" "$approot/Frameworks/"*.dylib)
 relink "${rl[@]}"
-make_dmg "$appdir" "DCP-o-matic" com.dcpomatic
+make_dmg "$appdir" "" "DCP-o-matic" com.dcpomatic
 
 # DCP-o-matic KDM Creator
 setup "DCP-o-matic 2 KDM Creator.app"
@@ -409,7 +414,7 @@ copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_kdm.Info.plist "$approot/Info.plist"
 rl=("$approot/MacOS/dcpomatic2_kdm" "$approot/MacOS/dcpomatic2_kdm_cli" "$approot/Frameworks/"*.dylib)
 relink "${rl[@]}"
-make_dmg "$appdir" "DCP-o-matic KDM Creator" com.dcpomatic.kdm
+make_dmg "$appdir" "" "DCP-o-matic KDM Creator" com.dcpomatic.kdm
 
 # DCP-o-matic Encode Server
 setup "DCP-o-matic 2 Encode Server.app"
@@ -419,7 +424,7 @@ copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_server.Info.plist "$approot/Info.plist"
 rl=("$approot/MacOS/dcpomatic2_server" "$approot/MacOS/dcpomatic2_server_cli" "$approot/Frameworks/"*.dylib)
 relink "${rl[@]}"
-make_dmg "$appdir" "DCP-o-matic Encode Server" com.dcpomatic.server
+make_dmg "$appdir" "" "DCP-o-matic Encode Server" com.dcpomatic.server
 
 # DCP-o-matic Batch Converter
 setup "DCP-o-matic 2 Batch converter.app"
@@ -428,7 +433,7 @@ copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_batch.Info.plist "$approot/Info.plist"
 rl=("$approot/MacOS/dcpomatic2_batch" "$approot/Frameworks/"*.dylib)
 relink "${rl[@]}"
-make_dmg "$appdir" "DCP-o-matic Batch Converter" com.dcpomatic.batch
+make_dmg "$appdir" "" "DCP-o-matic Batch Converter" com.dcpomatic.batch
 
 # DCP-o-matic Player
 setup "DCP-o-matic 2 Player.app"
@@ -437,7 +442,7 @@ copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_player.Info.plist "$approot/Info.plist"
 rl=("$approot/MacOS/dcpomatic2_player" "$approot/Frameworks/"*.dylib)
 relink "${rl[@]}"
-make_dmg "$appdir" "DCP-o-matic Player" com.dcpomatic.player
+make_dmg "$appdir" "" "DCP-o-matic Player" com.dcpomatic.player
 
 # DCP-o-matic Playlist Editor
 setup "DCP-o-matic 2 Playlist Editor.app"
@@ -446,12 +451,11 @@ copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_playlist.Info.plist "$approot/Info.plist"
 rl=("$approot/MacOS/dcpomatic2_playlist" "$approot/Frameworks/"*.dylib)
 relink "${rl[@]}"
-make_dmg "$appdir" "DCP-o-matic Playlist Editor" com.dcpomatic.playlist
+make_dmg "$appdir" "" "DCP-o-matic Playlist Editor" com.dcpomatic.playlist
 
 # DCP-o-matic Disk Writer
 setup "DCP-o-matic 2 Disk Writer.app"
 copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_disk "$approot/MacOS"
-copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_disk_writer "$approot/MacOS"
 # XXX: this shouldn't really be necessary
 copy $ROOT src/openssl/apps/openssl "$approot/MacOS"
 cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_disk.Info.plist "$approot/Info.plist"
@@ -459,4 +463,70 @@ rl=("$approot/MacOS/dcpomatic2_disk" "$approot/Frameworks/"*.dylib)
 relink "${rl[@]}"
 rl=("$approot/MacOS/dcpomatic2_disk_writer" "$approot/Frameworks/"*.dylib)
 relink "${rl[@]}"
-make_dmg "$appdir" "DCP-o-matic Disk Writer" com.dcpomatic.disk
+
+# DCP-o-matic Disk Writer daemon .pkg
+pkgbase=tmp-disk-writer
+rm -rf $pkgbase
+mkdir $pkgbase
+pkgroot=$pkgbase/root
+mkdir -p $pkgroot/Library/LaunchDaemons
+cat > $pkgroot/Library/LaunchDaemons/com.dcpomatic.disk.writer.plist <<EOF
+<?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>Label</key>
+    <string>com.dcpomatic.disk.writer</string>
+    <key>ProgramArguments</key>
+    <array>
+        <string>/Library/Application Support/com.dcpomatic/dcpomatic2_disk_writer</string>
+    </array>
+    <key>EnvironmentVariables</key>
+    <dict>
+        <key>DYLD_LIBRARY_PATH</key>
+        <string><![CDATA[/Library/Application Support/com.dcpomatic]]></string>
+    </dict>
+    <key>KeepAlive</key>
+    <true/>
+    <key>RunAtLoad</key>
+    <true/>
+    <key>Debug</key>
+    <true/>
+    <key>StandardOutPath</key>
+    <string>/Users/carl/damon.out.log</string>
+    <key>StandardErrorPath</key>
+    <string>/Users/carl/damon.err.log</string>
+</dict>
+</plist>
+EOF
+
+mkdir -p "$pkgroot/Library/Application Support/com.dcpomatic"
+target="$pkgroot/Library/Application Support/com.dcpomatic"
+copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_disk_writer "$target"
+copy_lib_root libcxml "$target"
+copy_lib_env libboost_system "$dest"
+copy_lib_env libboost_filesystem "$dest"
+copy_lib_env libboost_thread "$dest"
+copy_lib_env libboost_date_time "$dest"
+copy_lib_env libboost_locale "$dest"
+copy_lib_env libboost_regex "$dest"
+copy_lib_env libicui18n "$dest"
+copy_lib_env libicudata "$dest"
+copy_lib_env libicuio "$dest"
+copy_lib_env libicule "$dest"
+copy_lib_env libiculx "$dest"
+copy_lib_env libicutest "$dest"
+copy_lib_env libicutu "$dest"
+copy_lib_env libicuuc "$dest"
+
+mkdir $pkgbase/scripts
+cat > $pkgbase/scripts/postinstall <<EOF
+#!/bin/sh
+/bin/launchctl load "/Library/LaunchDaemons/com.dcpomatic.disk.writer.plist"
+exit 0
+EOF
+chmod gou+x scripts/postinstall
+
+pkgbuild --root $pkgroot --identifier com.dcpomatic.disk.writer --scripts $pkgbase/scripts "DCP-o-matic Disk Writer.pkg"
+
+make_dmg "$appdir" "DCP-o-matic Disk Writer.pkg" "DCP-o-matic Disk Writer" com.dcpomatic.disk