From 282bc829b6082b23024cd34fd9ab1ab2e97d5494 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 16 Feb 2020 19:28:23 +0000 Subject: [PATCH] Overhaul macOS packaging. --- .travis.yml | 22 +- Makefile | 6 +- mod.config | 10 +- packaging/artwork/icon_1024x1024.png | Bin 0 -> 33306 bytes packaging/artwork/icon_128x128.png | Bin 0 -> 1852 bytes packaging/artwork/icon_16x16.png | Bin 0 -> 265 bytes packaging/artwork/icon_256x256.png | Bin 0 -> 4487 bytes packaging/artwork/icon_32x32.png | Bin 0 -> 542 bytes packaging/artwork/icon_48x48.png | Bin 0 -> 1672 bytes packaging/artwork/icon_512x512.png | Bin 0 -> 11687 bytes packaging/artwork/icon_64x64.png | Bin 0 -> 952 bytes packaging/artwork/macos-background-2x.png | Bin 0 -> 31678 bytes packaging/artwork/macos-background.png | Bin 0 -> 14756 bytes packaging/macos/buildpackage.sh | 271 ++++++++++++++++++++++ packaging/macos/entitlements.plist | 16 ++ packaging/osx/buildpackage.sh | 133 ----------- packaging/osx/mod.icns | Bin 70471 -> 0 bytes packaging/package-all.sh | 33 +-- 18 files changed, 329 insertions(+), 162 deletions(-) create mode 100644 packaging/artwork/icon_1024x1024.png create mode 100644 packaging/artwork/icon_128x128.png create mode 100644 packaging/artwork/icon_16x16.png create mode 100644 packaging/artwork/icon_256x256.png create mode 100644 packaging/artwork/icon_32x32.png create mode 100644 packaging/artwork/icon_48x48.png create mode 100644 packaging/artwork/icon_512x512.png create mode 100644 packaging/artwork/icon_64x64.png create mode 100644 packaging/artwork/macos-background-2x.png create mode 100644 packaging/artwork/macos-background.png create mode 100755 packaging/macos/buildpackage.sh create mode 100644 packaging/macos/entitlements.plist delete mode 100755 packaging/osx/buildpackage.sh delete mode 100644 packaging/osx/mod.icns diff --git a/.travis.yml b/.travis.yml index b0a75f1..bc6af3c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,17 @@ # Travis-CI Build for OpenRAModSDK # see travis-ci.org for details -dist: xenial language: csharp mono: 6.4.0 +jobs: + include: + - os: linux + dist: xenial + - os: osx + if: tag IS present + osx_image: xcode10 + addons: apt: packages: @@ -19,13 +26,13 @@ script: if [ "${TRAVIS_TEST_MOD}" == "True" ]; then make test || travis_terminate 1; fi; - if [ "${TRAVIS_TEST_PACKAGING}" == "True" ] || [ -n "${TRAVIS_TAG}" ]; then + if [ "$TRAVIS_OS_NAME" == "linux" ] && ( [ "${TRAVIS_TEST_PACKAGING}" == "True" ] || [ -n "${TRAVIS_TAG}" ] ); then wget http://mirrors.kernel.org/ubuntu/pool/universe/n/nsis/nsis-common_3.03-2_all.deb || travis_terminate 1; wget http://mirrors.kernel.org/ubuntu/pool/universe/n/nsis/nsis_3.03-2_amd64.deb || travis_terminate 1; sudo dpkg -i nsis-common_3.03-2_all.deb || travis_terminate 1; sudo dpkg -i nsis_3.03-2_amd64.deb || travis_terminate 1; fi - if [ "${TRAVIS_TEST_PACKAGING}" == "True" ] && [ -z "${TRAVIS_TAG}" ]; then + if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "${TRAVIS_TEST_PACKAGING}" == "True" ] && [ -z "${TRAVIS_TAG}" ]; then make check-packaging-scripts && ./packaging/package-all.sh test-0 || travis_terminate 1; fi @@ -36,13 +43,8 @@ before_deploy: deploy: provider: releases api_key: ${GH_DEPLOY_API_KEY} - file: - - build/${PACKAGING_INSTALLER_NAME}-${TRAVIS_TAG}-x86.exe - - build/${PACKAGING_INSTALLER_NAME}-${TRAVIS_TAG}-x64.exe - - build/${PACKAGING_INSTALLER_NAME}-${TRAVIS_TAG}-x86-winportable.zip - - build/${PACKAGING_INSTALLER_NAME}-${TRAVIS_TAG}-x64-winportable.zip - - build/${PACKAGING_INSTALLER_NAME}-${TRAVIS_TAG}-macOS.zip - - build/${PACKAGING_INSTALLER_NAME}-${TRAVIS_TAG}-x86_64.AppImage + file_glob: true + file: build/* skip_cleanup: true on: tags: true diff --git a/Makefile b/Makefile index e7d0ada..e7ba025 100644 --- a/Makefile +++ b/Makefile @@ -67,7 +67,7 @@ check-sdk-scripts: fi check-packaging-scripts: - @if [ ! -x "packaging/package-all.sh" ] || [ ! -x "packaging/linux/buildpackage.sh" ] || [ ! -x "packaging/osx/buildpackage.sh" ] || [ ! -x "packaging/windows/buildpackage.sh" ]; then \ + @if [ ! -x "packaging/package-all.sh" ] || [ ! -x "packaging/linux/buildpackage.sh" ] || [ ! -x "packaging/macos/buildpackage.sh" ] || [ ! -x "packaging/windows/buildpackage.sh" ]; then \ echo "Required SDK scripts are not executable:"; \ if [ ! -x "packaging/package-all.sh" ]; then \ echo " packaging/package-all.sh"; \ @@ -75,8 +75,8 @@ check-packaging-scripts: if [ ! -x "packaging/linux/buildpackage.sh" ]; then \ echo " packaging/linux/buildpackage.sh"; \ fi; \ - if [ ! -x "packaging/osx/buildpackage.sh" ]; then \ - echo " packaging/osx/buildpackage.sh"; \ + if [ ! -x "packaging/macos/buildpackage.sh" ]; then \ + echo " packaging/macos/buildpackage.sh"; \ fi; \ if [ ! -x "packaging/windows/buildpackage.sh" ]; then \ echo " packaging/windows/buildpackage.sh"; \ diff --git a/mod.config b/mod.config index a665739..944666c 100644 --- a/mod.config +++ b/mod.config @@ -37,7 +37,7 @@ TRAVIS_TEST_PACKAGING="False" # The prefix used for the installer filenames. # - Windows installers will be named as {PACKAGING_INSTALLER_NAME}-{TAG}.exe -# - macOS installers will be named as {PACKAGING_INSTALLER_NAME}-{TAG}.zip +# - macOS installers will be named as {PACKAGING_INSTALLER_NAME}-{TAG}.dmg # - Linux .appimages will be named as {PACKAGING_INSTALLER_NAME}-${TAG}.AppImage PACKAGING_INSTALLER_NAME="ExampleMod" @@ -47,6 +47,7 @@ PACKAGING_INSTALLER_NAME="ExampleMod" # - macOS .app bundle name # - macOS menu bar # - macOS "About" window +# - macOS disk image title # - Windows installer # - Windows start menu # - Windows desktop shortcut @@ -68,7 +69,12 @@ PACKAGING_FAQ_URL="http://wiki.openra.net/FAQ" PACKAGING_AUTHORS="Example Mod authors" # The git tag to use for the macOS Launcher files. -PACKAGING_OSX_LAUNCHER_TAG="osx-launcher-20191007" +PACKAGING_OSX_LAUNCHER_TAG="osx-launcher-20200209" + +# The macOS disk image icon positions, matched to the background artwork +PACKAGING_OSX_DMG_MOD_ICON_POSITION="190, 210" +PACKAGING_OSX_DMG_APPLICATION_ICON_POSITION="410, 210" +PACKAGING_OSX_DMG_HIDDEN_ICON_POSITION="190, 350" # Filename to use for the launcher executable on Windows. PACKAGING_WINDOWS_LAUNCHER_NAME="ExampleMod" diff --git a/packaging/artwork/icon_1024x1024.png b/packaging/artwork/icon_1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..a1fb514aa61350db287f7e01c804ac472d8b9723 GIT binary patch literal 33306 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 UTf{c(Gz?sUTS@p^Khcl>3qL_u0RR91 literal 0 HcmV?d00001 diff --git a/packaging/artwork/icon_128x128.png b/packaging/artwork/icon_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1b45814844596ec65165f9bf5d84430dad50eb GIT binary patch literal 1852 zcmcJQ`#;kQ1INFc88){~NNzn(u5nzFTytL@m*lu4O>N>(xnvP=t$~nm8#Sn5# zb4!KfGUjp)wsc%_+h)q7n1n5Bc|3o_dA&ZL&-=H}=f_X3uaCPN>=+CH06CBUxcMED z_ z{0%{Mg;BiUH`l3hm~ZMXS}G3FlpI3Qwhz6_5ESZjc=C(j%u#IY+?E) zIV}5QJ0KltIqo^?zBO0E2rIUjWbq&o)V!|4@|_ z1=ZiswrR-jbM(rU$68L-TmCDPVK7%?j(Qm_jGbvStC&Tn-bPRAYpWB zE)}{^eErP8NaE^f)<;IfUtp|CEHPL{Gh{3%MR?mJ6hYm)c6JweQ%X9!@Mw%OqiHr+ zXdZ9)xhB&&xr?KD@ETm@tkieq{Z#zvAzO(!*bDxU;8iTyurd!(1TlML$+i>OBeM3- zwc+GE0N3|cVHTz|)GofBLk}(Oe5peW?X~U}XiyF2nqNj`|BJg&0MzrM39lEy@w)SY zf}NesFFggo9Yz`RwCRx37r26rY9BOa@fVN?%0M# zpPoduurmp~%562Rf*xIvtlCocL`^vFMH}Wh3S8>Bbn5$xC;7FG>U29h#XpoQG6H#v zrDu|q3mp}qeD#MpreY-}3LLAdvtgP4USuyAvCdNs^tb{fok0JZgkv4FEXSW3=NaQ7 z1Lj5;^~S^}*6C5YO!k(I`tUQ^h$a1S@d1Bo*O3AvUT_gnIXzK284guPl83Fs>oAd+ zdIMtF=shNkHM?xJzj&7)LVLQVJ|uP`fjc$-{Ii>-u&%#cm=wgfLys!El1(Wx9NF-! z`&Xd3cf`EJANUjT_{`C1EA$A?$BO%$RZ##4&$It%jV=gT=(R}2SBy_Pq6Iei)d5?y zAEIA2oXFh$rEq25#G<25irce-_=*z7efKF2fW#TCbt5aAo^Efj%yUGw?w`wT%hEmv zz`$E+td?~c%gY|pUq=7?l|g1NykC%uxyl?d%zqre7tNjjanvDxSWRcaYRd91*x<4j z!!nK+E){ztRbu!9#A|Ngk-h3MGRswjJgU7(z1)est{I(y!2UE}qVDkE3_21hDOhMg z|C~W$dRE5d*!8(Y2bJ7ycy9~4&zx>%#7yr70==JpT!ccIY_(^Q{tsdICGycWA=;9h z?(L++Uv3U*&Q{MMX%WJ46ZyZrqqHTrvfRNARC7=aytU}|z8=8#->UH|`pfPslJ4J= zsMkrwueF}t*8$k&W~92@+b5uH5XEi1=Woq-Q9$a-n$>>+LL>6YO|tN3ad3WGhZCMBLM^T`g6XYM# cK8oY$aqe|X+VkVahj$2gpnTk#U9g$|1G=bJdH?_b literal 0 HcmV?d00001 diff --git a/packaging/artwork/icon_16x16.png b/packaging/artwork/icon_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..c31b0fc1ede7a516b92e25aff207321f28ed7d42 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|4tu&dhFAzD zCrEs15Io6lCltrX$Bsvq&cNyRwQ0`0)A0 zFrIkM(rMVp!SujBpiWqT-SKKG^UK}gTe~DWM4fI9OZ6 literal 0 HcmV?d00001 diff --git a/packaging/artwork/icon_256x256.png b/packaging/artwork/icon_256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..e05a6f8b7142ecc0e249760d5cf5ee9fef7d0052 GIT binary patch literal 4487 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 literal 0 HcmV?d00001 diff --git a/packaging/artwork/icon_32x32.png b/packaging/artwork/icon_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..155dafd27917b353eee46282493406534787b4e9 GIT binary patch literal 542 zcmV+(0^$9MP)Px$*hxe|R9Fe^l}#&!K@`W4*9egmb~YAlC>Bal>||#p;RCQ^N7>of_yXQmlqf5< zBqCN;bi2wzSs)AV{Qfe`z2?q+E;lyMsb6#EoHJ+6Ju~y%jEqpi4ul=}=MH2#_HV;h z>9EI}q8Rq#jp>+gkmNN03+dP_+mmDq-?qnp=-s z+Yzs)>lN5}E0_#fhCcL!`y_N&2~ts&Zyu^a&+-I1U=#w&Z;oJ$UDSGQTmnsS2ali+ zQ6Twg0nKE;hX-h}b{aufQD;zY*%PX!fO8`DJuF)p%Fv^rjfO3|RK2uSkWZuLUNHq| zfe*cRi4y9(6}$d1XNZwfW)Vb%7 literal 0 HcmV?d00001 diff --git a/packaging/artwork/icon_48x48.png b/packaging/artwork/icon_48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..e5cc191c7c34a5532a0cb7f82e1f718a515c1a85 GIT binary patch literal 1672 zcmY*Z4Ls9n9RCxSP32{nmrL6$Q|v`Ku{JEqT+PcGGjbu)Vxw)?$*`GEUW!y7N^?|1 zNtc&!B{EYfp_e;S7iFE0V^>+C+<(<|chBeZynUbV@B4jz&+~kq9DiT$#!gL%m0xph!A4A ze4EcA|LAx{^LO#s2?BOJ7opLOh>TAZkWna&(bw{Mp91#of1SAeFKK}Z;x#LHM;rnF zRT~T?X;7jcj~xvLn|*~~zbo8If~wUHJT*{m#S3nb3;7NQ{sQDWHWvBU0xt>Njc+=F>6YPDfd z|EhjxthZf9uALFmzsgP$WbEiz>2zb+dg7U=N9x!6)$=FkpSC8aPjBeS?$|gZQa|DM zxvFLSKGC##a-3a#&SSgytTs)z1iDaQe`&4J{N7q|<^9r1OWc95wRPMDd~w-r@*QW7 zB&NB^H&WI!EiD#iQ%o&kO{+~0ME1O0PPS>jyJm{&v9+V|Rf?wq-5#k7zvJ9uBz499gcB;twqr6%2J%jtF7XZHVnQ10rVV|Qo=o{j_L)NV79N$B zCR*$?`fcg&_Ll9&t=5WKWYIN;?osV5Yk05T%I<56KRH3ZO|@p#Q8p->`>od1yAPdm zcTtTGRgIzJL^nz)9Um{W?{U~Vl6UL)-Vt<`OZV|b|D+WYaFv@;bA9G;_2qL^^(A5U zU}QQrLKRTtQG3STC3gewSL>o)1IbbILvb>l`E;xCREu$!rlwn4I22va&9jh~FmtVA zMm)(vh&gPqKi=T{{;h*HhKQfXrnGC{HjRwr=cM~)T!eUHagVPG&vnw%F4+u=ABQA$ zP2_iWtft&l&czxJ4Gce@&%9q#D0>Ufe3BGVVqIh-&NQ{+r*LZvx;8?Fa?xo8QQitq zZhKsiaERq#tCe306OtVkDpc50zWQYJwLE#BM3lpUX{m^5j23j9*`PtWL9hN}o$4O% zCb~)i@bm*J`$CTVX&v2Fx3pQ&V7vo9m|0mDl=(E4yx)> zC<#_mW_>kg6GG^TA^8KJF08W5n30)y!#8-Q<@y{wpQ_AVT>WvpoQF6vY_hoR@YNS` zC-Sk?hQnfIq3w>1*<+QXBNoXzR?PQ;#*b%&?H;Yx4{Hw8>+}ZIV3@KC_KVU+j1DFN z72Hq-du6&9ThU1tr#^q=K$>#FEQ2|VTd1K@KV4^e;eg@~Jy#+lHu&8S2m%iKMm!Uh zH#z>x1=Zc_qp+2NIovDLHluRnGs#SjM{ApBuJaA>$!D#=;SLR&>q4!CKZMgn$-#E-pPNkh s-^0zaZnoWHukB})fBqQM$+{nx;LbX3FJYV=)cp58n|-}5ZVH$D4Z)Pf7ytkO literal 0 HcmV?d00001 diff --git a/packaging/artwork/icon_512x512.png b/packaging/artwork/icon_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..351150e1da03331598907489b89f2713bf304d9c GIT binary patch literal 11687 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 literal 0 HcmV?d00001 diff --git a/packaging/artwork/macos-background.png b/packaging/artwork/macos-background.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b0b21b81f4ff7b78d8122cf5a896ddd9c579b5 GIT binary patch literal 14756 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 +# If the identity is not already in the default keychain, specify the following environment variables to import it: +# MACOS_DEVELOPER_CERTIFICATE_BASE64: base64 content of the exported .p12 developer ID certificate. +# Generate using `base64 certificate.p12 | pbcopy` +# MACOS_DEVELOPER_CERTIFICATE_PASSWORD: password to unlock the MACOS_DEVELOPER_CERTIFICATE_BASE64 certificate +# +# The applicaton bundles will be notarized if the following environment variables are defined: +# MACOS_DEVELOPER_USERNAME: Email address for the developer account +# MACOS_DEVELOPER_PASSWORD: App-specific password for the developer account +# +set -e + +if [[ "$OSTYPE" != "darwin"* ]]; then + echo >&2 "macOS packaging requires a macOS host" + exit 1 +fi + +command -v make >/dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires make."; exit 1; } +command -v python >/dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires python."; exit 1; } + +require_variables() { + missing="" + for i in "$@"; do + eval check="\$$i" + [ -z "${check}" ] && missing="${missing} ${i}\n" + done + if [ ! -z "${missing}" ]; then + echo "Required mod.config variables are missing:\n${missing}Repair your mod.config (or user.config) and try again." + exit 1 + fi +} + +if [ $# -eq "0" ]; then + echo "Usage: `basename $0` version [outputdir]" + exit 1 +fi + +PACKAGING_DIR=$(python -c "import os; print(os.path.dirname(os.path.realpath('$0')))") +TEMPLATE_ROOT="${PACKAGING_DIR}/../../" +ARTWORK_DIR="${PACKAGING_DIR}/../artwork/" + +# shellcheck source=mod.config +. "${TEMPLATE_ROOT}/mod.config" + +if [ -f "${TEMPLATE_ROOT}/user.config" ]; then + # shellcheck source=user.config + . "${TEMPLATE_ROOT}/user.config" +fi + +require_variables "MOD_ID" "ENGINE_DIRECTORY" "PACKAGING_DISPLAY_NAME" "PACKAGING_INSTALLER_NAME" \ + "PACKAGING_OSX_LAUNCHER_TAG" "PACKAGING_OSX_LAUNCHER_SOURCE" "PACKAGING_OSX_LAUNCHER_TEMP_ARCHIVE_NAME" \ + "PACKAGING_OSX_DMG_MOD_ICON_POSITION" "PACKAGING_OSX_DMG_APPLICATION_ICON_POSITION" "PACKAGING_OSX_DMG_HIDDEN_ICON_POSITION" \ + "PACKAGING_FAQ_URL" "PACKAGING_OVERWRITE_MOD_VERSION" + +# Import code signing certificate +if [ -n "${MACOS_DEVELOPER_CERTIFICATE_BASE64}" ] && [ -n "${MACOS_DEVELOPER_CERTIFICATE_PASSWORD}" ] && [ -n "${MACOS_DEVELOPER_IDENTITY}" ]; then + echo "Importing signing certificate" + echo "${MACOS_DEVELOPER_CERTIFICATE_BASE64}" | base64 --decode > build.p12 + security create-keychain -p build build.keychain + security default-keychain -s build.keychain + security unlock-keychain -p build build.keychain + security import build.p12 -k build.keychain -P "${MACOS_DEVELOPER_CERTIFICATE_PASSWORD}" -T /usr/bin/codesign >/dev/null 2>&1 + security set-key-partition-list -S apple-tool:,apple: -s -k build build.keychain >/dev/null 2>&1 + rm -fr build.p12 +fi + +TAG="$1" +if [ $# -eq "1" ]; then + OUTPUTDIR=$(python -c "import os; print(os.path.realpath('.'))") +else + OUTPUTDIR=$(python -c "import os; print(os.path.realpath('$2'))") +fi + +BUILTDIR="${PACKAGING_DIR}/build" +PACKAGING_OSX_APP_NAME="OpenRA - ${PACKAGING_DISPLAY_NAME}.app" + +# Set the working dir to the location of this script +cd "${PACKAGING_DIR}" + +modify_plist() { + sed "s|$1|$2|g" "$3" > "$3.tmp" && mv "$3.tmp" "$3" +} + +echo "Building launcher" +curl -s -L -o "${PACKAGING_OSX_LAUNCHER_TEMP_ARCHIVE_NAME}" -O "${PACKAGING_OSX_LAUNCHER_SOURCE}" || exit 3 +unzip -qq -d "${BUILTDIR}" "${PACKAGING_OSX_LAUNCHER_TEMP_ARCHIVE_NAME}" +rm "${PACKAGING_OSX_LAUNCHER_TEMP_ARCHIVE_NAME}" + +modify_plist "{DEV_VERSION}" "${TAG}" "${BUILTDIR}/OpenRA.app/Contents/Info.plist" +modify_plist "{FAQ_URL}" "${PACKAGING_FAQ_URL}" "${BUILTDIR}/OpenRA.app/Contents/Info.plist" + +pushd "${TEMPLATE_ROOT}" > /dev/null + +if [ ! -f "${ENGINE_DIRECTORY}/Makefile" ]; then + echo "Required engine files not found." + echo "Run \`make\` in the mod directory to fetch and build the required files, then try again."; + exit 1 +fi + +if [ ! -d "${OUTPUTDIR}" ]; then + echo "Output directory '${OUTPUTDIR}' does not exist."; + exit 1 +fi + +MOD_VERSION=$(grep 'Version:' mods/${MOD_ID}/mod.yaml | awk '{print $2}') + +if [ "${PACKAGING_OVERWRITE_MOD_VERSION}" == "True" ]; then + make version VERSION="${TAG}" +else + echo "Mod version ${MOD_VERSION} will remain unchanged."; +fi + +pushd "${ENGINE_DIRECTORY}" > /dev/null +echo "Building core files" + +make clean +make osx-dependencies +make core +make version VERSION="${ENGINE_VERSION}" +make install-engine gameinstalldir="/Contents/Resources/" DESTDIR="${BUILTDIR}/OpenRA.app" +make install-common-mod-files gameinstalldir="/Contents/Resources/" DESTDIR="${BUILTDIR}/OpenRA.app" + +for f in ${PACKAGING_COPY_ENGINE_FILES}; do + mkdir -p "${BUILTDIR}/OpenRA.app/Contents/Resources/$(dirname "${f}")" + cp -r "${f}" "${BUILTDIR}/OpenRA.app/Contents/Resources/${f}" +done + +popd > /dev/null + +echo "Building mod files" +make core +cp -LR mods/* "${BUILTDIR}/OpenRA.app/Contents/Resources/mods" + +popd > /dev/null + +pushd "${BUILTDIR}" > /dev/null +mv "OpenRA.app" "${PACKAGING_OSX_APP_NAME}" + + +# Assemble multi-resolution icon +mkdir mod.iconset +cp "${ARTWORK_DIR}/icon_16x16.png" "mod.iconset/icon_16x16.png" +cp "${ARTWORK_DIR}/icon_32x32.png" "mod.iconset/icon_16x16@2.png" +cp "${ARTWORK_DIR}/icon_32x32.png" "mod.iconset/icon_32x32.png" +cp "${ARTWORK_DIR}/icon_64x64.png" "mod.iconset/icon_32x32@2x.png" +cp "${ARTWORK_DIR}/icon_128x128.png" "mod.iconset/icon_128x128.png" +cp "${ARTWORK_DIR}/icon_256x256.png" "mod.iconset/icon_128x128@2x.png" +cp "${ARTWORK_DIR}/icon_256x256.png" "mod.iconset/icon_256x256.png" +cp "${ARTWORK_DIR}/icon_512x512.png" "mod.iconset/icon_256x256@2x.png" +iconutil --convert icns "mod.iconset" -o "${PACKAGING_OSX_APP_NAME}/Contents/Resources/${MOD_ID}.icns" +rm -rf mod.iconset + +# Copy macOS specific files +modify_plist "{MOD_ID}" "${MOD_ID}" "${PACKAGING_OSX_APP_NAME}/Contents/Info.plist" +modify_plist "{MOD_NAME}" "${PACKAGING_DISPLAY_NAME}" "${PACKAGING_OSX_APP_NAME}/Contents/Info.plist" +modify_plist "{JOIN_SERVER_URL_SCHEME}" "openra-${MOD_ID}-${TAG}" "${PACKAGING_OSX_APP_NAME}/Contents/Info.plist" + +# Sign binaries with developer certificate +if [ -n "${MACOS_DEVELOPER_IDENTITY}" ]; then + codesign -s "${MACOS_DEVELOPER_IDENTITY}" --timestamp --options runtime -f --entitlements "${PACKAGING_DIR}/entitlements.plist" "${PACKAGING_OSX_APP_NAME}/Contents/Resources/"*.dylib + codesign -s "${MACOS_DEVELOPER_IDENTITY}" --timestamp --options runtime -f --entitlements "${PACKAGING_DIR}/entitlements.plist" --deep "${PACKAGING_OSX_APP_NAME}" +fi + +if [ -n "${MACOS_DEVELOPER_CERTIFICATE_BASE64}" ] && [ -n "${MACOS_DEVELOPER_CERTIFICATE_PASSWORD}" ] && [ -n "${MACOS_DEVELOPER_IDENTITY}" ]; then + security delete-keychain build.keychain +fi + +echo "Packaging disk image" +hdiutil create build.dmg -format UDRW -volname "${PACKAGING_DISPLAY_NAME}" -fs HFS+ -srcfolder "${BUILTDIR}" +DMG_DEVICE=$(hdiutil attach -readwrite -noverify -noautoopen "build.dmg" | egrep '^/dev/' | sed 1q | awk '{print $1}') +sleep 2 + +# Background image is created from source svg in artsrc repository +mkdir "/Volumes/${PACKAGING_DISPLAY_NAME}/.background/" +tiffutil -cathidpicheck "${ARTWORK_DIR}/macos-background.png" "${ARTWORK_DIR}/macos-background-2x.png" -out "/Volumes/${PACKAGING_DISPLAY_NAME}/.background/background.tiff" + +cp "${BUILTDIR}/${PACKAGING_OSX_APP_NAME}/Contents/Resources/${MOD_ID}.icns" "/Volumes/${PACKAGING_DISPLAY_NAME}/.VolumeIcon.icns" + +echo ' + tell application "Finder" + tell disk "'${PACKAGING_DISPLAY_NAME}'" + open + set current view of container window to icon view + set toolbar visible of container window to false + set statusbar visible of container window to false + set the bounds of container window to {400, 100, 1000, 550} + set theViewOptions to the icon view options of container window + set arrangement of theViewOptions to not arranged + set icon size of theViewOptions to 72 + set background picture of theViewOptions to file ".background:background.tiff" + make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"} + set position of item "'${PACKAGING_OSX_APP_NAME}'" of container window to {'${PACKAGING_OSX_DMG_MOD_ICON_POSITION}'} + set position of item "Applications" of container window to {'${PACKAGING_OSX_DMG_APPLICATION_ICON_POSITION}'} + set position of item ".background" of container window to {'${PACKAGING_OSX_DMG_HIDDEN_ICON_POSITION}'} + set position of item ".fseventsd" of container window to {'${PACKAGING_OSX_DMG_HIDDEN_ICON_POSITION}'} + set position of item ".VolumeIcon.icns" of container window to {'${PACKAGING_OSX_DMG_HIDDEN_ICON_POSITION}'} + update without registering applications + delay 5 + close + end tell + end tell +' | osascript + +# HACK: Copy the volume icon again - something in the previous step seems to delete it...? +cp "${BUILTDIR}/${PACKAGING_OSX_APP_NAME}/Contents/Resources/${MOD_ID}.icns" "/Volumes/${PACKAGING_DISPLAY_NAME}/.VolumeIcon.icns" +SetFile -c icnC "/Volumes/${PACKAGING_DISPLAY_NAME}/.VolumeIcon.icns" +SetFile -a C "/Volumes/${PACKAGING_DISPLAY_NAME}" + +chmod -Rf go-w "/Volumes/${PACKAGING_DISPLAY_NAME}" +sync +sync + +hdiutil detach "${DMG_DEVICE}" + +# Submit for notarization +if [ -n "${MACOS_DEVELOPER_USERNAME}" ] && [ -n "${MACOS_DEVELOPER_PASSWORD}" ]; then + echo "Submitting disk image for notarization" + + # Reset xcode search path to fix xcrun not finding altool + sudo xcode-select -r + + # Create a temporary read-only dmg for submission (notarization service rejects read/write images) + hdiutil convert build.dmg -format UDZO -imagekey zlib-level=9 -ov -o notarization.dmg + + NOTARIZATION_UUID=$(xcrun altool --notarize-app --primary-bundle-id "net.openra.modsdk" -u "${MACOS_DEVELOPER_USERNAME}" -p "${MACOS_DEVELOPER_PASSWORD}" --file notarization.dmg 2>&1 | awk -F' = ' '/RequestUUID/ { print $2; exit }') + if [ -z "${NOTARIZATION_UUID}" ]; then + echo "Submission failed" + exit 1 + fi + + echo "Submission UUID is ${NOTARIZATION_UUID}" + rm notarization.dmg + + while :; do + sleep 30 + NOTARIZATION_RESULT=$(xcrun altool --notarization-info "${NOTARIZATION_UUID}" -u "${MACOS_DEVELOPER_USERNAME}" -p "${MACOS_DEVELOPER_PASSWORD}" 2>&1 | awk -F': ' '/Status/ { print $2; exit }') + echo "Submission status: ${NOTARIZATION_RESULT}" + + if [ "${NOTARIZATION_RESULT}" == "invalid" ]; then + NOTARIZATION_LOG_URL=$(xcrun altool --notarization-info "${NOTARIZATION_UUID}" -u "${MACOS_DEVELOPER_USERNAME}" -p "${MACOS_DEVELOPER_PASSWORD}" 2>&1 | awk -F': ' '/LogFileURL/ { print $2; exit }') + echo "Notarization failed with error:" + curl -s "${NOTARIZATION_LOG_URL}" -w "\n" + exit 1 + fi + + if [ "${NOTARIZATION_RESULT}" == "success" ]; then + echo "Stapling notarization ticket" + DMG_DEVICE=$(hdiutil attach -readwrite -noverify -noautoopen "build.dmg" | egrep '^/dev/' | sed 1q | awk '{print $1}') + sleep 2 + + xcrun stapler staple "/Volumes/${PACKAGING_DISPLAY_NAME}/${PACKAGING_OSX_APP_NAME}" + + sync + sync + + hdiutil detach "${DMG_DEVICE}" + break + fi + done +fi + +hdiutil convert build.dmg -format UDZO -imagekey zlib-level=9 -ov -o "${OUTPUTDIR}/${PACKAGING_INSTALLER_NAME}-${TAG}.dmg" + +popd > /dev/null + +# Clean up +rm -rf "${BUILTDIR}" diff --git a/packaging/macos/entitlements.plist b/packaging/macos/entitlements.plist new file mode 100644 index 0000000..dcfe14c --- /dev/null +++ b/packaging/macos/entitlements.plist @@ -0,0 +1,16 @@ + + + + +com.apple.security.cs.allow-jit + +com.apple.security.cs.allow-unsigned-executable-memory + +com.apple.security.cs.disable-executable-page-protection + +com.apple.security.cs.disable-library-validation + +com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/packaging/osx/buildpackage.sh b/packaging/osx/buildpackage.sh deleted file mode 100755 index 6dc0c2b..0000000 --- a/packaging/osx/buildpackage.sh +++ /dev/null @@ -1,133 +0,0 @@ -#!/bin/bash -# OpenRA packaging script for macOS -set -e - -command -v make >/dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires make."; exit 1; } -command -v python >/dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires python."; exit 1; } -command -v curl >/dev/null 2>&1 || command -v wget > /dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires curl or wget."; exit 1; } - -require_variables() { - missing="" - for i in "$@"; do - eval check="\$$i" - [ -z "${check}" ] && missing="${missing} ${i}\n" - done - if [ ! -z "${missing}" ]; then - echo "Required mod.config variables are missing:\n${missing}Repair your mod.config (or user.config) and try again." - exit 1 - fi -} - -if [ $# -eq "0" ]; then - echo "Usage: `basename $0` version [outputdir]" - exit 1 -fi - -PACKAGING_DIR=$(python -c "import os; print(os.path.dirname(os.path.realpath('$0')))") -TEMPLATE_ROOT="${PACKAGING_DIR}/../../" - -# shellcheck source=mod.config -. "${TEMPLATE_ROOT}/mod.config" - -if [ -f "${TEMPLATE_ROOT}/user.config" ]; then - # shellcheck source=user.config - . "${TEMPLATE_ROOT}/user.config" -fi - -require_variables "MOD_ID" "ENGINE_DIRECTORY" "PACKAGING_DISPLAY_NAME" "PACKAGING_INSTALLER_NAME" \ - "PACKAGING_OSX_LAUNCHER_TAG" "PACKAGING_OSX_LAUNCHER_SOURCE" "PACKAGING_OSX_LAUNCHER_TEMP_ARCHIVE_NAME" \ - "PACKAGING_FAQ_URL" "PACKAGING_OVERWRITE_MOD_VERSION" - -TAG="$1" -if [ $# -eq "1" ]; then - OUTPUTDIR=$(python -c "import os; print(os.path.realpath('.'))") -else - OUTPUTDIR=$(python -c "import os; print(os.path.realpath('$2'))") -fi - -BUILTDIR="${PACKAGING_DIR}/build" -PACKAGING_OSX_APP_NAME="OpenRA - ${PACKAGING_DISPLAY_NAME}.app" - -# Set the working dir to the location of this script -cd "${PACKAGING_DIR}" - -modify_plist() { - sed "s|$1|$2|g" "$3" > "$3.tmp" && mv "$3.tmp" "$3" -} - -echo "Building launcher" - -if command -v curl >/dev/null 2>&1; then - curl -s -L -o "${PACKAGING_OSX_LAUNCHER_TEMP_ARCHIVE_NAME}" -O "${PACKAGING_OSX_LAUNCHER_SOURCE}" || exit 3 -else - wget -cq "${PACKAGING_OSX_LAUNCHER_SOURCE}" -O "${PACKAGING_OSX_LAUNCHER_TEMP_ARCHIVE_NAME}" || exit 3 -fi - -unzip -qq -d "${BUILTDIR}" "${PACKAGING_OSX_LAUNCHER_TEMP_ARCHIVE_NAME}" -rm "${PACKAGING_OSX_LAUNCHER_TEMP_ARCHIVE_NAME}" - -modify_plist "{DEV_VERSION}" "${TAG}" "${BUILTDIR}/OpenRA.app/Contents/Info.plist" -modify_plist "{FAQ_URL}" "${PACKAGING_FAQ_URL}" "${BUILTDIR}/OpenRA.app/Contents/Info.plist" - -pushd ${TEMPLATE_ROOT} > /dev/null - -if [ ! -f "${ENGINE_DIRECTORY}/Makefile" ]; then - echo "Required engine files not found." - echo "Run \`make\` in the mod directory to fetch and build the required files, then try again."; - exit 1 -fi - -if [ ! -d "${OUTPUTDIR}" ]; then - echo "Output directory '${OUTPUTDIR}' does not exist."; - exit 1 -fi - -MOD_VERSION=$(grep 'Version:' mods/${MOD_ID}/mod.yaml | awk '{print $2}') - -if [ "${PACKAGING_OVERWRITE_MOD_VERSION}" == "True" ]; then - make version VERSION="${TAG}" -else - echo "Mod version ${MOD_VERSION} will remain unchanged."; -fi - -pushd ${ENGINE_DIRECTORY} > /dev/null -echo "Building core files" - -make clean -make osx-dependencies -make core -make version VERSION="${ENGINE_VERSION}" -make install-engine gameinstalldir="/Contents/Resources/" DESTDIR="${BUILTDIR}/OpenRA.app" -make install-common-mod-files gameinstalldir="/Contents/Resources/" DESTDIR="${BUILTDIR}/OpenRA.app" - -for f in ${PACKAGING_COPY_ENGINE_FILES}; do - mkdir -p "${BUILTDIR}/OpenRA.app/Contents/Resources/$(dirname "${f}")" - cp -r "${f}" "${BUILTDIR}/OpenRA.app/Contents/Resources/${f}" -done - -popd > /dev/null - -echo "Building mod files" -make core -cp -Lr mods/* "${BUILTDIR}/OpenRA.app/Contents/Resources/mods" - -popd > /dev/null - -cp "mod.icns" "${BUILTDIR}/OpenRA.app/Contents/Resources/${MOD_ID}.icns" - -pushd "${BUILTDIR}" > /dev/null -mv "OpenRA.app" "${PACKAGING_OSX_APP_NAME}" - -# Copy macOS specific files -modify_plist "{MOD_ID}" "${MOD_ID}" "${PACKAGING_OSX_APP_NAME}/Contents/Info.plist" -modify_plist "{MOD_NAME}" "${PACKAGING_DISPLAY_NAME}" "${PACKAGING_OSX_APP_NAME}/Contents/Info.plist" -modify_plist "{JOIN_SERVER_URL_SCHEME}" "openra-${MOD_ID}-${TAG}" "${PACKAGING_OSX_APP_NAME}/Contents/Info.plist" - -echo "Packaging zip archive" - -zip "${PACKAGING_INSTALLER_NAME}-${TAG}-macOS.zip" -r -9 "${PACKAGING_OSX_APP_NAME}" --quiet -mv "${PACKAGING_INSTALLER_NAME}-${TAG}-macOS.zip" "${OUTPUTDIR}" -popd > /dev/null - -# Clean up -rm -rf "${BUILTDIR}" diff --git a/packaging/osx/mod.icns b/packaging/osx/mod.icns deleted file mode 100644 index 68e41c80551542abd1fb481749723612ed43daab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70471 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�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/dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires python."; exit 1; } command -v make >/dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires make."; exit 1; } -command -v curl >/dev/null 2>&1 || command -v wget > /dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires curl or wget."; exit 1; } -command -v makensis >/dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires makensis."; exit 1; } + +if [[ "$OSTYPE" != "darwin"* ]]; then + command -v curl >/dev/null 2>&1 || command -v wget > /dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires curl or wget."; exit 1; } + command -v makensis >/dev/null 2>&1 || { echo >&2 "The OpenRA mod template requires makensis."; exit 1; } +fi PACKAGING_DIR=$(python -c "import os; print(os.path.dirname(os.path.realpath('$0')))") -echo "Building Windows package" -${PACKAGING_DIR}/windows/buildpackage.sh "${TAG}" "${OUTPUTDIR}" -if [ $? -ne 0 ]; then - echo "Windows package build failed." -fi - -echo "Building macOS package" -${PACKAGING_DIR}/osx/buildpackage.sh "${TAG}" "${OUTPUTDIR}" -if [ $? -ne 0 ]; then - echo "macOS package build failed." -fi - if [[ "$OSTYPE" == "darwin"* ]]; then + echo "Windows packaging requires a Linux host." echo "Linux AppImage packaging requires a Linux host." + echo "Building macOS package" + ${PACKAGING_DIR}/macos/buildpackage.sh "${TAG}" "${OUTPUTDIR}" + if [ $? -ne 0 ]; then + echo "macOS package build failed." + fi else + echo "Building Windows package" + ${PACKAGING_DIR}/windows/buildpackage.sh "${TAG}" "${OUTPUTDIR}" + if [ $? -ne 0 ]; then + echo "Windows package build failed." + fi + echo "Building Linux AppImage package" ${PACKAGING_DIR}/linux/buildpackage.sh "${TAG}" "${OUTPUTDIR}" if [ $? -ne 0 ]; then echo "Linux AppImage package build failed." fi + + echo "macOS packaging requires a macOS host." fi echo "Package build done."