From c2ead0e2657ddfeecb8e7b34841dd79c791d451b Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Sat, 13 Jan 2018 22:10:26 +0100 Subject: [PATCH] Fix macOS building and code signing, resolves #1344 --- COPYING | 4 ++++ LICENSE.MIT | 19 +++++++++++++++++++ release-tool | 25 ++++++++++++------------- share/macosx/DS_Store.in | Bin 0 -> 10244 bytes share/macosx/Info.plist.cmake | 2 +- share/macosx/background.tiff | Bin 0 -> 17836 bytes src/CMakeLists.txt | 2 ++ 7 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 LICENSE.MIT create mode 100644 share/macosx/DS_Store.in create mode 100644 share/macosx/background.tiff diff --git a/COPYING b/COPYING index 7aa9c0333..fe199fcd4 100644 --- a/COPYING +++ b/COPYING @@ -235,3 +235,7 @@ Files: src/gui/KMessageWidget.h Copyright: 2011 Aurélien Gâteau 2014 Dominik Haumann License: LGPL-2.1 + +Files: share/macosx/dmg-background.tiff +Copyright: 2008-2014, Andrey Tarantsov +License: MIT diff --git a/LICENSE.MIT b/LICENSE.MIT new file mode 100644 index 000000000..d13cc4b26 --- /dev/null +++ b/LICENSE.MIT @@ -0,0 +1,19 @@ +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/release-tool b/release-tool index 93e964bc3..492f7c08c 100755 --- a/release-tool +++ b/release-tool @@ -317,13 +317,6 @@ checkCodesignCommandExists() { fi } -checkCreateDMGCommandExists() { - command -v create-dmg > /dev/null - if [ 0 -ne $? ]; then - exitError "create-dmg command not found on the PATH! Please install it using 'npm install --global create-dmg'." - fi -} - checkQt5LUpdateExists() { command -v lupdate > /dev/null if [ 0 -eq $? ] && ! $(lupdate -version | grep -q "lupdate version 5\."); then @@ -813,17 +806,16 @@ appsign() { fi checkCodesignCommandExists - checkCreateDMGCommandExists local orig_dir="$(pwd)" for f in "${sign_files[@]}"; do if [[ ${f: -4} == '.dmg' ]]; then logInfo "Unpacking disk image '${f}'..." local tmp_dir="/tmp/KeePassXC_${RANDOM}" - mkdir -p ${tmp_dir}/{mnt,app} + mkdir -p ${tmp_dir}/mnt hdiutil attach -quiet -noautoopen -mountpoint ${tmp_dir}/mnt "${f}" cd ${tmp_dir} - cp -a ./mnt/KeePassXC.app ./app + cp -a ./mnt ./app hdiutil detach -quiet ${tmp_dir}/mnt if [ ! -d ./app/KeePassXC.app ]; then @@ -839,10 +831,17 @@ appsign() { exitError "Signing failed!" fi - logInfo "Repacking and signing disk image..." - create-dmg ./app/KeePassXC.app + logInfo "Repacking disk image..." + hdiutil create \ + -volname "KeePassXC" \ + -size $((1000 * ($(du -sk ./app | cut -f1) + 5000))) \ + -srcfolder ./app \ + -fs HFS+ \ + -fsargs "-c c=64,a=16,e=16" \ + -format UDBZ \ + "${tmp_dir}/$(basename "${f}")" cd "${orig_dir}" - cp -f ${tmp_dir}/KeePassXC-*.dmg "${f}" + cp -f "${tmp_dir}/$(basename "${f}")" "${f}" rm -Rf ${tmp_dir} else logInfo "Skipping non-DMG file '${f}'..." diff --git a/share/macosx/DS_Store.in b/share/macosx/DS_Store.in new file mode 100644 index 0000000000000000000000000000000000000000..9f03769c1c97baa5022a6e29321c6723505d3eb3 GIT binary patch literal 10244 zcmZQzU|@7AO)+F(P+(wS;9!8z0z3>@0Z1N%F(jFwBK#op7#IW?@{<@C7)~S=Y1CEp6ZyBnOGbzz+aq^U+$TlpBGS+T9%nw z9-Us4nG#%(n4FoH9#N87Q4*Y4l^QP~gwPE(GblAB4j~j$S%7K-SdDv8YHA+XJpZ(` z;?$A|Bz7do=H#OMoScCC;>?oF{Jh8*uuDo(b3OCY^5X@BK(6sG07(^xr4|)u=I3GP ziHJ-rDoV^tPj#w{%}Gp3&GFB3$}cI&&yC1T&d&q6T-pBpA5T!g`U^63foP^KP~p$% zotheuSX><83=%`d*BS&IJhT~D85kHu_z`~8E6GetLsdx>PxM-YfIUp*|NsC0GcfQ% zD*>1&1GgT+9#BQZ!N72>fysb@fk6;dzg%lz(g&vsP^BTlz{H>icfJ*pPAdk4DG=B4 zF(@$bGbAx2G9)u(Go&*VG2}CpGUPF&Fz7LqFk~{MF{Cl@Gl(#7GI%qjGNdvDFeEY* zGZZsKFgP;^G05m68Lp3RwlIT`epr4^X>Mw(i!*}coK z`5p5I=ASG~EZi(SEPO1&EFus~n4m2b21N)TMzY9)gGR5w$;kj()Gm1dm2?nbV7LHf zgBm_FKnawAfq_YZf#Cx)M1oa;fq?^Rwtxa;$QC3csKCJB0~HriU|`UJvV|2G7;KHb>tp76eNZA~ z0K1VPAsg&WkQ-rkf$UcSnZd}wU}S9SVr1ZKtZQWHW~ys!WMH6cVQgfgYia4^>gr-{ zXkut)0drR()NSvD5pD#z2^7JgI9b5Yz`zSN7aj-D5(K0M6t+tk5pHt}Py%TOIg0@# zcLFL05^y}g>Uy97qLvZKub^506nEf40UCy&uxC&>*dq+(gZ1y7WCkivVE%M9GIus` zGceS3bTfC;H8wSL)pc|=GuL%8G&3?cF)?>^b1{ecvk~M61_lOne}WP?$Zk;CKOdxq ziGd+CImN`((kLm_JT1x6&@wT_%*@;@#lSMrJlQhM(kR);I5|1h!Zgj=017Y}5D6m# z>*V}gy~KiooKz60Tb!7el9XSeSCpEVqFY{+S&|CVYG`d>2-ai-6EQF_FfuYVFfp^% z&rVG(NGvX{NQMOb76t}}fB*mg2gMC2u=yAm7+3@t81{fX!@$76D!{;S1IiWKl zNuEH(L8V6nI2AE4fJ%=qP;pS{!2%Trl^!NgHmLLvfwDoRhYFMpDm@aQYy(hb05b=z z#OQ&l5dwuVBLf3w0%u@IfclH!0|SEzGo&n_g*!p%7L>L@_Q2VoFl1n00EvUV0Lu5E z^jpHhz|g?Lz|aGwLG1k?KQJ*c7+IL7nwyv#Cz%~8X2Tn!ebPZ0giG5a?*(@+%Sk4hNjl~WzePqJiXv;Trix0hBwH+JS>nh5|oZW z@c>F!pmYSvZy+`(9f7>fpjQ@Ll$VpA2WmoqG;%ZOVQc(&=Hw?s>I877J%NFN(HPWZ z09DN3A{?tOG_$!F^cd0@iWyQF${11^@)$}OiWyQ+O=grpGa0KMG;?_v92p823K()2 zG8vK?62Z;1e1<%RVl=b=GB7Z#Lvl6t#z`W`EL5Ega~K#H))S{QC*3eOIX|}m6v~X( zD^@dr3S7*lq8Lf$t8~iz=n?!BQpd* z%`wp2Kd7zc%D{kY{(oc!&Zw_PLtuo203(Y_u!|G8=Ev@1P`eJ)?t?WNKy3n0rCFBundleVersion ${KEEPASSXC_VERSION_NUM} NSHumanReadableCopyright - Copyright 2016-2017 KeePassXC Development Team + Copyright 2016-2018 KeePassXC Development Team CFBundleDocumentTypes diff --git a/share/macosx/background.tiff b/share/macosx/background.tiff new file mode 100644 index 0000000000000000000000000000000000000000..99ae807ec865cd1321f715bd520601d3056c4de4 GIT binary patch literal 17836 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 Ht$YOl)BsZb literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b007f0f93..6a9638959 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -305,6 +305,8 @@ if(APPLE AND WITH_APP_BUNDLE) set(CPACK_GENERATOR "DragNDrop") set(CPACK_DMG_FORMAT "UDBZ") + set(CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/share/macosx/DS_Store.in") + set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/share/macosx/background.tiff") set(CPACK_DMG_VOLUME_NAME "${PROGNAME}") set(CPACK_SYSTEM_NAME "OSX") set(CPACK_STRIP_FILES ON)