diff --git a/go.mod b/go.mod index f8e2ebc14..394f0e650 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/gorilla/websocket v1.4.2 github.com/groob/plist v0.0.0-20190114192801-a99fbe489d03 github.com/knightsc/system_policy v1.1.1-0.20211029142728-5f4c0d5419cc - github.com/kolide/kit v0.0.0-20240411131714-94dd1939cf50 + github.com/kolide/kit v0.0.0-20241104170139-c647b1ab5279 github.com/kolide/krypto v0.1.1-0.20231229162826-db516b7e0121 github.com/mat/besticon v3.9.0+incompatible github.com/mattn/go-sqlite3 v1.14.19 diff --git a/go.sum b/go.sum index 1335f7765..fc9535927 100644 --- a/go.sum +++ b/go.sum @@ -174,8 +174,8 @@ github.com/kolide/go-ole v0.0.0-20241008210444-65130153c767 h1:kcLxfX6wdtztSwpgz github.com/kolide/go-ole v0.0.0-20241008210444-65130153c767/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/kolide/goleveldb v0.0.0-20240514204455-8d30cd4d31c6 h1:6/RKW8FQlrtaBeL7We3SdpdoiGZk3Pm5STXsSxbm9ho= github.com/kolide/goleveldb v0.0.0-20240514204455-8d30cd4d31c6/go.mod h1:zgOxCKTwS/xpJtz6LH60b3lZoQ30kqtc252N+SM4enc= -github.com/kolide/kit v0.0.0-20240411131714-94dd1939cf50 h1:N7RaYBPTK5o4y2z1z8kl/G3iAeP73QCfAUH4y39GRCc= -github.com/kolide/kit v0.0.0-20240411131714-94dd1939cf50/go.mod h1:pFbEKXFww1uqu4RRO7qCnUmQ2EIwKYRzUqpJbODNlfc= +github.com/kolide/kit v0.0.0-20241104170139-c647b1ab5279 h1:nFN/UwsX1OuTgekQWuynr1SwWlcPT8t1iNtjtm81sMA= +github.com/kolide/kit v0.0.0-20241104170139-c647b1ab5279/go.mod h1:pFbEKXFww1uqu4RRO7qCnUmQ2EIwKYRzUqpJbODNlfc= github.com/kolide/krypto v0.1.1-0.20231229162826-db516b7e0121 h1:f7APX9VNsCkD/tdlAjbU4A22FyfTOCF6QadlvnzZElg= github.com/kolide/krypto v0.1.1-0.20231229162826-db516b7e0121/go.mod h1:/0sxd3OIxciTlMTeZI/9WTaUHsx/K/+3f+NbD5dywTY= github.com/kolide/systray v1.10.5-0.20241021175748-13aef6380bdb h1:d2pfEh5Yd6+C+D096YQlHwcq28TPOjoeoG+lCQojkJM= diff --git a/pkg/packagekit/assets/main.wxs b/pkg/packagekit/assets/main.wxs index 1238c979e..7a93d0285 100644 --- a/pkg/packagekit/assets/main.wxs +++ b/pkg/packagekit/assets/main.wxs @@ -57,6 +57,7 @@ + diff --git a/pkg/packagekit/package.go b/pkg/packagekit/package.go index 7198bf3cc..bd88b6d99 100644 --- a/pkg/packagekit/package.go +++ b/pkg/packagekit/package.go @@ -9,6 +9,7 @@ type PackageOptions struct { Root string // source directory to package Scripts string // directory of packaging scripts (postinst, prerm, etc) Version string // package version + VersionNum int // package version in numeric format. used to create comparable windows registry keys FlagFile string // Path to the flagfile for configuration DisableService bool // Whether to install a system service in a disabled state diff --git a/pkg/packagekit/package_wix.go b/pkg/packagekit/package_wix.go index 01fb5d1d4..e5c78b14c 100644 --- a/pkg/packagekit/package_wix.go +++ b/pkg/packagekit/package_wix.go @@ -16,6 +16,7 @@ import ( "text/template" "github.com/google/uuid" + "github.com/kolide/kit/version" "github.com/kolide/launcher/pkg/packagekit/authenticode" "github.com/kolide/launcher/pkg/packagekit/wix" "golang.org/x/text/cases" @@ -52,6 +53,13 @@ func PackageWixMSI(ctx context.Context, w io.Writer, po *PackageOptions, include return err } + // populate VersionNum if it isn't already set by the caller. we'll + // store this in the registry on install to give a comparable field + // for intune to drive upgrade behavior from + if po.VersionNum == 0 { + po.VersionNum = version.VersionNum() + } + // We include a random nonce as part of the ProductCode // guid. This is so that any MSI rebuild triggers the Major // Upgrade flow, and not the "Another version of this product