clientupdate: return ErrUnsupported for macSys clients (#9793)

The Sparkle-based update is not quite working yet. Make `NewUpdater`
return `ErrUnsupported` for it to avoid the proliferation of exceptions
up the stack.

Updates #755

Signed-off-by: Andrew Lytvynov <awly@tailscale.com>
pull/9826/head
Andrew Lytvynov 1 year ago committed by GitHub
parent 51078b6486
commit 8a5b02133d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -185,7 +185,9 @@ func (up *Updater) getUpdateFunction() updateFunction {
case !up.Arguments.AppStore && !version.IsSandboxedMacOS(): case !up.Arguments.AppStore && !version.IsSandboxedMacOS():
return nil return nil
case !up.Arguments.AppStore && strings.HasSuffix(os.Getenv("HOME"), "/io.tailscale.ipn.macsys/Data"): case !up.Arguments.AppStore && strings.HasSuffix(os.Getenv("HOME"), "/io.tailscale.ipn.macsys/Data"):
return up.updateMacSys // TODO(noncombatant): return up.updateMacSys when we figure out why
// Sparkle update doesn't work when running "tailscale update".
return nil
default: default:
return up.updateMacAppStore return up.updateMacAppStore
} }

@ -261,8 +261,6 @@ func (b *LocalBackend) handleC2NPostureIdentityGet(w http.ResponseWriter, r *htt
func (b *LocalBackend) newC2NUpdateResponse() tailcfg.C2NUpdateResponse { func (b *LocalBackend) newC2NUpdateResponse() tailcfg.C2NUpdateResponse {
// If NewUpdater does not return an error, we can update the installation. // If NewUpdater does not return an error, we can update the installation.
// Exception: When version.IsMacSysExt returns true, we don't support that
// yet. TODO(cpalmer, #6995): Implement it.
// //
// Note that we create the Updater solely to check for errors; we do not // Note that we create the Updater solely to check for errors; we do not
// invoke it here. For this purpose, it is ok to pass it a zero Arguments. // invoke it here. For this purpose, it is ok to pass it a zero Arguments.
@ -270,7 +268,7 @@ func (b *LocalBackend) newC2NUpdateResponse() tailcfg.C2NUpdateResponse {
_, err := clientupdate.NewUpdater(clientupdate.Arguments{}) _, err := clientupdate.NewUpdater(clientupdate.Arguments{})
return tailcfg.C2NUpdateResponse{ return tailcfg.C2NUpdateResponse{
Enabled: envknob.AllowsRemoteUpdate() || prefs.Apply, Enabled: envknob.AllowsRemoteUpdate() || prefs.Apply,
Supported: err == nil && !version.IsMacSysExt(), Supported: err == nil,
} }
} }

Loading…
Cancel
Save