updates

package
v1.6.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2024 License: AGPL-3.0 Imports: 43 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// ModuleName is the name of the update module
	// and can be used when declaring module dependencies.
	ModuleName = "updates"

	// VersionUpdateEvent is emitted every time a new
	// version of a monitored resource is selected.
	// During module initialization VersionUpdateEvent
	// is also emitted.
	VersionUpdateEvent = "active version update"

	// ResourceUpdateEvent is emitted every time the
	// updater successfully performed a resource update.
	// ResourceUpdateEvent is emitted even if no new
	// versions are available. Subscribers are expected
	// to check if new versions of their resources are
	// available by checking File.UpgradeAvailable().
	ResourceUpdateEvent = "resource update"
)
View Source
const (
	// RestartExitCode will instruct portmaster-start to restart the process immediately, potentially with a new version.
	RestartExitCode = 23
)

Variables

View Source
var (

	// UserAgent is an HTTP User-Agent that is used to add
	// more context to requests made by the registry when
	// fetching resources from the update server.
	UserAgent = fmt.Sprintf("Portmaster (%s %s)", runtime.GOOS, runtime.GOARCH)

	// DefaultUpdateURLs defines the default base URLs of the update server.
	DefaultUpdateURLs = []string{
		"https://updates.safing.io",
	}

	// DisableSoftwareAutoUpdate specifies whether software updates should be disabled.
	// This is used on Android, as it will never require binary updates.
	DisableSoftwareAutoUpdate = false
)
View Source
var (

	// ErrRequiresManualUpgrade is returned when a system integration file requires a manual upgrade.
	ErrRequiresManualUpgrade = errors.New("requires a manual upgrade")
)
View Source
var (
	// RebootOnRestart defines whether the whole system, not just the service,
	// should be restarted automatically when triggering a restart internally.
	RebootOnRestart bool
)

Functions

func AbortRestart added in v0.9.4

func AbortRestart()

AbortRestart aborts a (delayed) restart.

func AddToDebugInfo added in v1.0.4

func AddToDebugInfo(di *debug.Info)

AddToDebugInfo adds the update system status to the given debug.Info.

func CopyFile added in v0.4.4

func CopyFile(srcPath, dstPath string) error

CopyFile atomically copies a file using the update registry's tmp dir.

func DelayedRestart added in v0.5.2

func DelayedRestart(delay time.Duration)

DelayedRestart triggers a restart of the application by shutting down the module system gracefully and returning with RestartExitCode. The restart may be further delayed by up to 10 minutes by the internal task scheduling system. This only works if the process is managed by portmaster-start.

func DisableUpdateSchedule added in v0.4.0

func DisableUpdateSchedule() error

DisableUpdateSchedule disables the update schedule. If called, updates are only checked when TriggerUpdate() is called.

func GetFile

func GetFile(identifier string) (*updater.File, error)

GetFile returns the latest generic file identified by the given identifier.

func GetPlatformFile

func GetPlatformFile(identifier string) (*updater.File, error)

GetPlatformFile returns the latest platform specific file identified by the given identifier.

func GetPlatformVersion added in v1.0.12

func GetPlatformVersion(identifier string) (*updater.ResourceVersion, error)

GetPlatformVersion returns the selected platform specific version of the given identifier. The returned resource version may not be modified.

func GetVersion added in v1.0.12

func GetVersion(identifier string) (*updater.ResourceVersion, error)

GetVersion returns the selected generic version of the given identifier. The returned resource version may not be modified.

func GetVersionWithFullID added in v1.0.13

func GetVersionWithFullID(identifier string) (*updater.ResourceVersion, error)

GetVersionWithFullID returns the selected generic version of the given full identifier. The returned resource version may not be modified.

func IsRestarting added in v0.7.6

func IsRestarting() bool

IsRestarting returns whether a restart has been triggered.

func RestartIsPending added in v0.9.4

func RestartIsPending() (pending bool, restartAt time.Time)

RestartIsPending returns whether a restart is pending.

func RestartNow added in v0.5.2

func RestartNow()

RestartNow immediately executes a restart. This only works if the process is managed by portmaster-start.

func RootPath added in v0.6.5

func RootPath() string

RootPath returns the root path used for storing updates.

func TriggerRestartIfPending added in v0.5.2

func TriggerRestartIfPending()

TriggerRestartIfPending triggers an automatic restart, if one is pending. This can be used to prepone a scheduled restart if the conditions are preferable.

func TriggerUpdate added in v0.4.0

func TriggerUpdate(forceIndexCheck, downloadAll bool) error

TriggerUpdate queues the update task to execute ASAP.

Types

type RegistryStateExport added in v1.0.12

type RegistryStateExport struct {
	record.Base
	*updater.RegistryState
}

RegistryStateExport is a wrapper to export the registry state.

type SimpleVersions added in v0.9.0

type SimpleVersions struct {
	record.Base
	sync.Mutex

	Build     *info.Info
	Resources map[string]*SimplifiedResourceVersion
	Channel   string
}

SimpleVersions holds simplified update versions and status information.

func GetSimpleVersions added in v0.9.0

func GetSimpleVersions() *SimpleVersions

GetSimpleVersions returns the simplified update versions and status information.

type SimplifiedResourceVersion added in v0.9.0

type SimplifiedResourceVersion struct {
	Version string
}

SimplifiedResourceVersion holds version information about one resource.

type UpdateStateExport added in v1.0.12

type UpdateStateExport struct {
	record.Base
	sync.Mutex

	*updater.UpdateState
}

UpdateStateExport is a wrapper to export the updates state.

func GetStateExport added in v1.0.12

func GetStateExport() *UpdateStateExport

GetStateExport gets the update state from the registry and returns it in an exportable struct.

func LoadStateExport added in v1.0.12

func LoadStateExport() (*UpdateStateExport, error)

LoadStateExport loads the exported update state from the database.

type Versions added in v0.9.0

type Versions struct {
	record.Base
	sync.Mutex

	Core      *info.Info
	Resources map[string]*updater.Resource
	Channel   string
	Beta      bool
	Staging   bool
}

Versions holds update versions and status information.

func GetVersions added in v0.9.0

func GetVersions() *Versions

GetVersions returns the update versions and status information. Resources must be locked when accessed.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL