From 994c8efa8e7468df07db9b9ee6ecb147bcb45958 Mon Sep 17 00:00:00 2001 From: Ron Pedde Date: Fri, 31 Mar 2006 08:32:14 +0000 Subject: [PATCH] Add nsSCM service manager to be able to implement installation deps, fixing #29. Additionally, added a check for Bonjour for Windows before installing. --- win32/nsi/mt-daapd.nsi | 48 ++++-- win32/nsi/nsSCM.dll | Bin 0 -> 5632 bytes win32/nsi/servicelib.nsh | 348 --------------------------------------- 3 files changed, 31 insertions(+), 365 deletions(-) create mode 100644 win32/nsi/nsSCM.dll delete mode 100644 win32/nsi/servicelib.nsh diff --git a/win32/nsi/mt-daapd.nsi b/win32/nsi/mt-daapd.nsi index 706a1a8d..e1d1396e 100644 --- a/win32/nsi/mt-daapd.nsi +++ b/win32/nsi/mt-daapd.nsi @@ -14,7 +14,6 @@ ; MUI 1.67 compatible ------ !include "MUI.nsh" -!include "servicelib.nsh" ; MUI Settings !define MUI_ABORTWARNING @@ -47,6 +46,18 @@ InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" ShowInstDetails show ShowUnInstDetails show +Section -Pre + nsSCM::QueryStatus "Bonjour Service" + Pop $0 + Pop $1 + + StrCmp $0 "success" lbl_got_bonjour + MessageBox MB_OK "Bonjour for Windows service not found. Please install Apple's Bonjour for Windows." + Quit + + lbl_got_bonjour: +SectionEnd + Section "MainSection" SEC01 SetOutPath "$INSTDIR" SetOverwrite ifnewer @@ -120,8 +131,17 @@ Section -Post WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" - ExecWait "$INSTDIR\mt-daapd.exe -i" -; !insertmacro SERVICE "create" "${PRODUCT_SERVICE}" "path=$INSTDIR\mt-daapd.exe;autostart=1;interact=0;shortname=mt-daapd;" +; ExecWait "$INSTDIR\mt-daapd.exe -i" + + nsSCM::Install "${PRODUCT_NAME}" "${PRODUCT_SERVICE}" 16 2 "$INSTDIR\mt-daapd.exe" "" "Bonjour Service" "" "" + Pop $0 + Pop $1 + + StrCmp $0 "success" lbl_install_success + IntCmp $1 1073 lbl_install_success ; service already exists + MessageBox MB_OK "Error installing service: $1" + + lbl_install_success: SectionEnd @@ -136,21 +156,15 @@ Function un.onInit FunctionEnd Section Uninstall -; !undef UN -; !define UN "un." -; !insertmacro SERVICE "running" "${PRODUCT_SERVICE}" "" -; IntCmp $0 0 lbl_check_install -; !insertmacro SERVICE "stop" "${PRODUCT_SERVICE}" "" - -; lbl_check_install: -; !insertmacro SERVICE "installed" "${PRODUCT_SERVICE}" "" -; IntCmp $0 0 lbl_svc_done -; !insertmacro SERVICE "uninstall" "${PRODUCT_SERVICE}" "" - -; lbl_svc_done: + nsSCM::Stop "${PRODUCT_NAME}" + nsSCM::Remove "${PRODUCT_NAME}" - ExecWait "net stop mt-daapd" - ExecWait "$INSTDIR\mt-daapd.exe -u" + Pop $0 + StrCmp $0 "success" lbl_continue_uninstall + + MessageBox MB_OK "Error Uninstalling service: $1" + + lbl_continue_uninstall: Delete "$INSTDIR\${PRODUCT_NAME}.url" Delete "$INSTDIR\uninst.exe" Delete "$INSTDIR\gnu_regex.dll" diff --git a/win32/nsi/nsSCM.dll b/win32/nsi/nsSCM.dll new file mode 100644 index 0000000000000000000000000000000000000000..067a6d158ebe079302be055f1bae7ae2c7ac90b0 GIT binary patch literal 5632 zcmeHLZ){W76+bU={tz5uz@aGx)hTAs6-ADppI=g-wUamuEh#1@34t!fB!=J_JAHmH zfJT~R4^MO6TyfVdcGXIy7tGdli?U=G-p+l0 zl6ZpB4^uU%TdR=@3 zU>LPKZ2)A-U7H6$zU$y;4A=k~K4Z9w4;|)lTq5xid?ePnAdtsq1K3l=bqDz%VkN<# zLbX|f{etGfGN{tbU=`6jkcj;f?LbbDEzo2;l>K2Ii+5dwK zv`ROIZoGg%q-Lw+GmD#XlPyZJ)QX+dYzefrzhpr+Sz3Wlp-dL=vgm2Dfn{PnauVZ0 z*5eO*o;l~U{Nl`OAG9mu(v?8+8)kVqjwjL`yftyP?AUoMn}AYoCllX9{seLA@f+4z z`D0WP>q?0sMv1F@en1%)`^`{xOu{imFe~E|L&&8Py^5mv)Mnsn93lzbsj3=&62)NdNft`_S^cjz7 z*0i$mFDl&HeycvSwm(a_tTJBPZ=R^lbu!Z~PvbFBlcR^L@cEbvjCyw<)7CEc;UzWL zT|+?!J(fuKl?`sH-5{6-?X}?Dc%J)I2Nd?G$(B#*&Nk)bE}{7p`)7banIYM=*i+Y?E7cpL-J1d{LXWa|o|U-$Zm?)UIjO1s0J7)a_LlLD6c6 zS>RF38Y0=y(^zk~p%a-~iZWc7YPC#Xc__W+5B}kNl^OL97pcrSzvP=4E}nkxp|Ld= zw)@d(m{No(MVRbSs4{esC1t^=C0h=pY^IaGsfBnKYbn7}$`t0L`tE7b_l=YuVX^GQ z{wWY1R?64o3Q3N!C!;DtDk(MIk}5P-T*i&N&ww@8E*B z7fX{kxn~DX^(*C@3=iU2bB+^fhuuV{18u`4gR>4HHoS`(ym^=}7`(YtsHv+fJ5y38 z&N_~kh_kf=1>%Gwvr3!|5^*09+cTx&toP^+akg<_n>fLad}zua$y^|w)}p5rhtAl6 zm5;x7bcHl-`1*=C%MMhg8b&TOz2UD+`L6lH6e2Vu!geg5d8i!vG@$MyybARQatL+o z^J5iCD_5wDEed_tD}^USE+olh0RV*7ZCIWmt$|P|7RN;Y;MI%q%@YI&lW?a6HVU z1o4J>%M5R0!$3{{8o?JO@YZ3zLY*DuYe+`Bjyim`+_C*HaJryA5{ridA+GO0SLkcOXm=!pUx`r9g@U}H_5!?4 z1^6Jx>vmq)LT&2}Mdw6dpgtDmxmZM30kl%vg%Ec{mvJ^P!~qUNLnsoO^9(-CPknPR z8r&b^a3ya;o7caUc2;#qA^=0wmPl-GFyf7nPpR+fQX>~alq;z%A-*XX=Y3j|^YSBc zp6lv8f?f&?KI(<9`&ypzH5ndX%{vtDy~*UM>gdMtub7Fwy{00*QFY!+#V^5RC`wo7KR!M&o=C1JrV) zC8s5HFxD3WHPQHt^^&Rg+ZUbzd{5%PKKI*~HUoIB$^TGG9Tko>jz=Ag!{dlL4m*xJ zrX0(v*H(L~!`0ue{&n@c)g{jLPTKi|v)TEy^PA4I&I`^f&c8bU=G;Kn(@)WRX^xiY z@6$h`U!i|TpQkU;@6#XA|D!z!aF*6m6gL#5!V74=R zm@qTIq?i|(H<;ftzi0l){F(WLxy9tWE$&M9SKT%42KOHKe)qHPL+&5AUv-~$r`;Fb zAG`nIzUf}ZKFC(HHEcb*m2G7YvfpBd*yq_7*`Kh#WZz`3v!AfjY+lWmc6aX?_