From ecb958e59851186630e946d7973d91f8d524ea17 Mon Sep 17 00:00:00 2001 From: Jhon Honce Date: Wed, 11 Sep 2019 14:35:18 -0700 Subject: [PATCH 1/2] Support building Windows msi file * Update Makefile to build msi * Add podman.wxs to define podman.msi * Version information provided by Makefile * Add podman.bat wrapper for podman-remote-windows.exe to ensure environment * Add wix xml schemas for reference Signed-off-by: Jhon Honce --- Makefile | 5 +++++ contrib/msi/podman.bat | 43 ++++++++++++++++++++++++++++++++++++++++ contrib/msi/podman.wxs | 45 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 contrib/msi/podman.bat create mode 100644 contrib/msi/podman.wxs diff --git a/Makefile b/Makefile index 840bfced7f2c..b4f8020f2bdc 100644 --- a/Makefile +++ b/Makefile @@ -84,6 +84,7 @@ GINKGOTIMEOUT ?= -timeout=90m RELEASE_VERSION ?= $(shell hack/get_release_info.sh VERSION) RELEASE_NUMBER ?= $(shell hack/get_release_info.sh NUMBER) +RELEASE_NUMERIC = $(shell echo $(RELEASE_NUMBER) |sed -e 's/^v\(.*\)/\1/') RELEASE_DIST ?= $(shell hack/get_release_info.sh DIST) RELEASE_DIST_VER ?= $(shell hack/get_release_info.sh DIST_VER) RELEASE_ARCH ?= $(shell hack/get_release_info.sh ARCH) @@ -164,6 +165,10 @@ podman: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman podman-remote: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman on remote environment $(GO_BUILD) $(BUILDFLAGS) -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS) remoteclient" -o bin/$@ $(PROJECT)/cmd/podman +.PHONY: podman.msi +podman.msi: podman-remote-windows ## Will always rebuild exe as there is no podman-remote-windows.exe target to verify timestamp + wixl -D VERSION=$(RELEASE_NUMERIC) -o bin/podman-$(RELEASE_NUMBER).msi contrib/msi/podman.wxs + podman-remote-%: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build podman for a specific GOOS $(eval BINSFX := $(shell test "$*" != "windows" || echo ".exe")) CGO_ENABLED=0 GOOS=$* $(GO_BUILD) -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "remoteclient containers_image_openpgp exclude_graphdriver_devicemapper" -o bin/$@$(BINSFX) $(PROJECT)/cmd/podman diff --git a/contrib/msi/podman.bat b/contrib/msi/podman.bat new file mode 100644 index 000000000000..091c1c4c472a --- /dev/null +++ b/contrib/msi/podman.bat @@ -0,0 +1,43 @@ +@echo off +setlocal enableextensions + +title Podman + +:: If remote-host is given on command line -- use it +setlocal enabledelayedexpansion +for %%a in (%*) do ( + echo "%%a" |find "--remote-host" >NUL + if !errorlevel! == 0 ( + goto run_podman + ) +) + +:: If PODMAN_VARLINK_BRIDGE is set -- use it +if defined PODMAN_VARLINK_BRIDGE ( + goto run_podman +) + +:: If the configuration file exists -- use it +set config_home=%USERPROFILE%\AppData\podman +set config_file=%config_home%\podman-remote.conf +if exist "%config_file%" ( + goto run_podman +) + +:: Get connection information from user and build configuration file +md "%config_home%" +set /p host="Please enter the remote hosts name or IP address: " +set /p user="Please enter the remote user name: " +( + echo [connections] + echo [connections."%host%"] + echo destination = "%host%" + echo username = "%user%" + echo default = true +) >"%config_file%" + +:run_podman +endlocal +podman-remote-windows.exe %* + +:End diff --git a/contrib/msi/podman.wxs b/contrib/msi/podman.wxs new file mode 100644 index 000000000000..165bb42b678e --- /dev/null +++ b/contrib/msi/podman.wxs @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOT Installed + + + + From 046c081ed0a321ac34fe0fc713ad33a926efb48e Mon Sep 17 00:00:00 2001 From: Jhon Honce Date: Thu, 12 Sep 2019 09:35:54 -0700 Subject: [PATCH 2/2] Add podman icon to installer Update Makefile per review comments Signed-off-by: Jhon Honce --- Makefile | 15 +++++++-------- contrib/msi/podman-logo.ico | Bin 0 -> 15086 bytes contrib/msi/podman.wxs | 3 +++ 3 files changed, 10 insertions(+), 8 deletions(-) create mode 100644 contrib/msi/podman-logo.ico diff --git a/Makefile b/Makefile index b4f8020f2bdc..482b2d2c2cad 100644 --- a/Makefile +++ b/Makefile @@ -83,8 +83,7 @@ LIBSECCOMP_COMMIT := release-2.3 GINKGOTIMEOUT ?= -timeout=90m RELEASE_VERSION ?= $(shell hack/get_release_info.sh VERSION) -RELEASE_NUMBER ?= $(shell hack/get_release_info.sh NUMBER) -RELEASE_NUMERIC = $(shell echo $(RELEASE_NUMBER) |sed -e 's/^v\(.*\)/\1/') +RELEASE_NUMBER ?= $(shell hack/get_release_info.sh NUMBER|sed -e 's/^v\(.*\)/\1/') RELEASE_DIST ?= $(shell hack/get_release_info.sh DIST) RELEASE_DIST_VER ?= $(shell hack/get_release_info.sh DIST_VER) RELEASE_ARCH ?= $(shell hack/get_release_info.sh ARCH) @@ -167,7 +166,7 @@ podman-remote: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman on .PHONY: podman.msi podman.msi: podman-remote-windows ## Will always rebuild exe as there is no podman-remote-windows.exe target to verify timestamp - wixl -D VERSION=$(RELEASE_NUMERIC) -o bin/podman-$(RELEASE_NUMBER).msi contrib/msi/podman.wxs + wixl -D VERSION=$(RELEASE_NUMBER) -o bin/podman-v$(RELEASE_NUMBER).msi contrib/msi/podman.wxs podman-remote-%: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build podman for a specific GOOS $(eval BINSFX := $(shell test "$*" != "windows" || echo ".exe")) @@ -333,9 +332,9 @@ release.txt: echo -n " $$field"; done >> "$@" echo "" >> "$@" -podman-$(RELEASE_NUMBER).tar.gz: binaries docs release.txt +podman-v$(RELEASE_NUMBER).tar.gz: binaries docs release.txt $(eval TMPDIR := $(shell mktemp -d -p '' podman_XXXX)) - $(eval SUBDIR := podman-$(RELEASE_NUMBER)) + $(eval SUBDIR := podman-v$(RELEASE_NUMBER)) mkdir -p "$(TMPDIR)/$(SUBDIR)" $(MAKE) install.bin install.man install.cni install.systemd "DESTDIR=$(TMPDIR)/$(SUBDIR)" "PREFIX=/usr" # release.txt location and content depended upon by automated tooling @@ -344,7 +343,7 @@ podman-$(RELEASE_NUMBER).tar.gz: binaries docs release.txt -rm -rf "$(TMPDIR)" # Must call make in-line: Dependency-spec. w/ wild-card also consumes variable value. -podman-remote-$(RELEASE_NUMBER)-%.zip: +podman-remote-v$(RELEASE_NUMBER)-%.zip: $(MAKE) podman-remote-$* install-podman-remote-docs release.txt \ RELEASE_BASENAME=$(shell hack/get_release_info.sh REMOTENAME) \ RELEASE_DIST=$* RELEASE_DIST_VER="-" @@ -369,12 +368,12 @@ podman-remote-$(RELEASE_NUMBER)-%.zip: .PHONY: podman-release podman-release: rm -f release.txt - $(MAKE) podman-$(RELEASE_NUMBER).tar.gz + $(MAKE) podman-v$(RELEASE_NUMBER).tar.gz .PHONY: podman-remote-%-release podman-remote-%-release: rm -f release.txt - $(MAKE) podman-remote-$(RELEASE_NUMBER)-$*.zip + $(MAKE) podman-remote-v$(RELEASE_NUMBER)-$*.zip docker-docs: docs (cd docs; ./dckrman.sh *.1) diff --git a/contrib/msi/podman-logo.ico b/contrib/msi/podman-logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..cb1dab6a75ca66387a3ee719272466a7bd19c1c5 GIT binary patch literal 15086 zcmeHO2Y6h?wY~;}A>?6_M@a&~4iHL!053oYFN8o62+f292*wx)uEZVVD%mPl?|r3} zcGY&ZTJ@E*tFkJqu2r>qZ&vTUmp^B&SRt!eGBNqy_de$HXm;k_J9B2{%$alkbIfrY zxa+wmpX8|A$_4(MZtK>s>bG%RJ+<9NC40VqBgdK13lGyf^a=MVW!BE82j+|K z{(iRt->ty6y8?o{&R_4j)%Xdo2TVQ{-fQ%L^X4-fzTFY8P49vqoxef2#rPS&r>tF6 zA4^-aOyXxF-}R~XdCbzt#Pd7h_Rj# zU=A2=89<3BdoJpI-v-~ut;{{{HG0(b_Wv96aR0Hv&7MEI@CV7W_EPn}px(O3QcU!Z zVWl+EK8P~ETqr;EyX5^^a(%tI|HRol zF*!7`64}ez#=3@4AuE7tr?l1YDH~_vx2Ng6(9QMjCtB~#UiX{)P4Cwq$G%jtJo1MYTg9$)8ZAu1_1qy}TSts6BFC5YQC z@0L7m=Plf7{DS+B&u_XG^AJ5~dWZNSvpvCo6l7!?#ZGqQH)D2kW<@%eHO|e^I!}Vp z-``k{{-z2HP-egT>Ps-#T!pdTcFfJpufxRPIO?Lypxz(cCwbOR>UE#V%ifPzeB*g| z+-WG1yv*j^Z>lriJlqUZwN|pH*I{R*6tW zxjIHnzrD~&@2!-kh9|+!Q{3*rA)m)Bk9^a85d8T3R^^BO_2a#xD-E;IHaXmn+5{=e z6>g}G^}(gAD6|))puHpmm+}))mmY} zRZGyA8p@wX#v`NMEnl6@Q8cATAl=&(!RCjM;$wjfxhvEX7kE0D!`0FNRu}Yf?C448 zpVfoCsXjywW{|ntAVubiG>JW;98MzA<|rCd;t;*vua?gAz29UHynkVFvfMu(!yWas zuHI-&4@X;}1|4Nt=&s5~UqdOzhx#x@GG%IF9J8~tU~*=1unTcf;V?EhkCx_UG&MCL zUaf|;ogK`qtr4wM;iZ>8#ooQA5SO6FIU^&udwL=_Hy3SfZ3qhqhNX!S_0xyc)6t_O zmtMYF`t3I!-x%<`qr5ev4nys=Xvk8bMCFU3Z~>CNjFISJfK<^1WcZjO*5wQ|UPdSk zaYk{pH`*?yKouSgV`F0s3=E*VyBint^C1tEL*OYyR(3YFZQF+9$B(0^xEN+umQaL7 zpsch6!^1;}jEsbnlM~OMbZ_{^wwhuj28&^L{8L0qggAFjAI;58sM3}~vQGg2eQv}n zo^Wz?!ACoH;^4u9@bVTzYUT~$2R2Zd2BW2+30_{F5Q{`S{Vi#Akp9}<&y3r5ReBTY zTF)gP4Ih}Dn&H>*$dMz+P0L1-T{MF9ec@p11XD9JSlimd)!q$}hBBnM#zC!$gPy(~ zN=r+L$B&}2vJ9y%v9Q`>jBO9T0)=4!q_P0mJ37MI)fJIp3ON1M6z}}@Er@nGp+ubr zBO?RE$H(*Z4_)d<_*5=a9B5OzU=T~BU@`zJP#S^L1)#2CXPBRER*r=@C8sK|m=kPPd$&Lc~bgqrF~ zlol7EocN`tvJzpZd?Eg)3krm3(5lmM;NStYw6ySJPmfO_;q%}gk9!Q6IlS&9dD_;! zDWQt*V`gRsXZ6k^)J=v=CpCm0+M+Nv8`V`6JS{mPsSthafEwoKQ4t>odbD*w=|DOE`4i3h7eSL&_$`I@!MOjJl!uZ^ycmyM(W5~(L!S3C=A@TEF_@=hHieGoO_N)(9 z4+{;!&iA%KX89#rv`P$Is=x%vW@bS2lyxBJWmh%Xa5t}K4y0ecueC^Arku65w!+ZR z5XWf_9<)}WB&X#x7du-U?A@~mW~L@+YHS3Xt1gewIVd8Y`SQyz={z5SAMHU>Vgj-< z(xFL8M1aH}hlt;qd??Unl1@~Kj*@gd!h ze7e|Jw0e_s3-X^ z!>(Psh^O}Q^Zk7PejGV`7;nD$CN5pNv}B~Ot8=q+V0r-Q1Fx<{Kkd;?@|Rp=yGz=> z?qG#q`E(zhI(d@cd&WcTJTTgWf`X8nqvhKfUo6g9nHh+P2uEs43N9ApqoS;o-vidq z)YSZ0U12D`smwPQOdnW_e%hn0${qd<<9%1w*&1k#+1fD~$j$9rEGH^|nL*=#s^MSGL&5!)-a zXLF>#v%FI3=;$E6J&2N`i~JfVCnq5=Fc3bzzAz_!z`@xWv2+LJkWLdG5dl*R3plyB zKtgv0lVusi{|$Au#Qzf5kzTY~;%T6V3$Lmt# z_YmXp)|O@z6yzaF83kJh2P7pY!-2{(XU;%Gx+6NDw>JcCZYz$#8rk?vr|WF(fcijiAKCoRT#0_)Us^eo`sHABd<>J5ldG;j z)5#e9Z2cMiO;z~(L;YM_Q@WBVfOKQ~A*22fz2SqVCxTqxho0`Gs z_w?}K=eODf*!oY>*%%%iLh=d46xn2dxf1>1tF+X#c|9%&m~wOghaGnt)7yik%_fZ$`^Ftaqr zZ|`~r;YL!3NzSu<5D|ZfeS9Dbkip|a8$9>OGY~quBjUI}YAdQ>Zf1(;=;&3)VGla; zni2N8u!L}?$JU~qJ$L_!;dS1Rm>SMyYKTIQPe6DDcZbj*kXa73KVW&hEF>(ol0hVm_93 z(7M029@=&92=6t%g|H>hVy|qnsaBRj9>lw@Bxjf$Opc64vWE)kA&ICeFX!oH`oUsd zAwMez8t)jy3L;RHo6qZ}><%wfmY4DLvo+UcUeBaE!Q8?Owstls%+Djl7~P~>*Q+gw=bn!Ei>RijtbN6Cn2fZsvf}kIMw9M7)6u=O zEWTLC&o4@$z`+9tc->;9j%yVqAp13%Y~MA{>soUX{oM3D!e;wN3AbFDdV72E#j#`X z6nZT1%2Jva*BP&=NfzzdvzynWmiEW$9eI~P`g<|0-J@&Kww~wi_ZVJJx`$rYh4?9E z4=qj1R$}_4smTT8YPI}%(CNiG{fE_=&frb_wU_j_^z`(l-SBm0FOuJYo!39Fhqm>; zLp=Cj{!iQbG5mWaor1|zp->2>Q<|9)_CvZ)0^PYuq|-%`&gSIkK=%3pUe~Fst6P!w z$)Rzio}}~okl6v(ALw26d0lHRbe^}89g)E>XI*0YG|Mcpd9l3+4Go1Eoz2svTc0|0 zinkfO=^iL6D+80eEHSKz-S4`@&TD~lDm$+ZB>TScd0lG`g!w-o`JPW>UsV@bMsvJw zGCI1luFC9YM(;}d#oC!(qtlxi{!HgJ%5#hH74@^V=v&WoI?p?q&tkB>AN_;EVt)0f#t@;DyTk^w9|QA)3*9|>0bOjov|N~FV2AQbsxgV#EY`8^f`yc*^lZH zvOT1fS*iOSNc<8=-vyFv+aZ3y(|oDfFkf<< z0c)S(xGk(4;J8h!)KJ_JD;W{G(%`H5qH>Nsr#fH0xV)rpIgZ--a?A2^f<349%gW7P z)fbgS7RN2B>-xKFT!TgQ8PfZpf10o6(a3SvvpSXh{B-lAfj6^u-TbM1k<}^l>%uQA ztFyGcWN}(sDgU1GLY&rZRQWDlvlY0oaqkV5HypZkH}~p)^o}s%cHKz6tN&H)l!%g# zMP!f<{D{l#XYamd6I-PtQ*PhQ6tDA#m`?+wr9L^mgAKiy8lFIFM#D^|QCvyLD}ocQ zck12yJa@}AT@TBR2X7&q{|&?DVe@i$JqO1-r8X4^%dwiM6KZnttHXaurxKxhbno`uN(&w_x;%dU) z^fYq6$Kb)wxEHSKE+$=dv+Q}t9ptA=tcxlgAM2)gqos*-`q}A8J~p6}{Jt$Yv1rYU zM{8~zdg}@?JvNT6qPDp_TTOk$+g|1r8fh{oy$lc75B6sJX=R}c>6OcG1{k7vetFZP$v+M2p_Z2#)HL^I62AW%4YB;Jj zp=i!aKu2Xh&8-YW9i;P;PuIoH8cp@JEYBW+zl#O(VndJ>;e#lV z9h@EP&{$WGB(VzKh92Zg6X74^C-WeCRb=cAm2()%E|x$f7EwIQ2oev5Dh_b3-nh!p zd~?_v!n6Gqok-6}g+$Cd;-jwQdyIfQIEd%oTX4#g!XIB)ZT|L~PW(t~kx(`_GY4ja*;rXaXyb;Qv`jS6K3~kshp&?t zObm>Xog9O*+%#AbwkjgOd|GPC0#3uQ4UHxVR_3N~G1Eh1MkL9HG9G^k{)5|r)y5~= z<#~$xS^#&8DTcv>e0R(@r;3gutX7J11pO%rH26>PiN@X;dZ-@ET7(EfRCMuPR_njpW9?7tdl~RdV+etAH z%kXMT?$B-N=T+L#q0t5GK=(cKuewo81M>@IW@YfcFh@G?0Wuka$Yndtx@n&Lc z?#TCb^IWSW|G?*josH@A9kvD$`%xGe92K*T(?37`Tb2G$m zK8)XN|F%-!>un=!_c6lbO8eS-F;203Yo*DlNgg|-I8VlJr}l9#UzP5;5?!PNzezE+ z_2vG#J%p2YQ|>AE&(r1Ja%r9}_f-Vs_ZN9)4n+Ok*TaT8ddo`vU2Pl1++9!S@&S_D zk9+*o@Nv>(e@R%hEXDtt&1Vk&nxh^gQw<76oOdxZS9~aE48|ec!8#DNBkE zi$;Kj7{Ov0B&I^hyoCrA1Rz=*28}uqG7HjIL&C@=t!+`fEvElPIG@P2xWA{k{ZeTO z#XR^*5wD7YuTV@jN**G@!Vn)Di;T2X$S9_+C^ZKCwJnpWrv5r5xh0IUbw1=$5Xh`##$;;rMX(yidKWs}pGyZlE@v51a{ z40}U8+5S_g z3@QxreDDH0TFa8)p7XbooR$uE4Whrh50#}As3;-qqO%8MgQI9vSLK9l^SpoAhl?5% z?}@kMIcN+h{>-Y + + + NOT Installed