Automattic / Automattic/auto-update

Linux Port

Open
#1 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Objective-C
Stars
72
Forks
20
PR merge metrics
No merged PRs in 30d

Description

Porting `auto-update` to linux induces a few complications & tradeofs such as:
- There's no such things as MacOS packages
- Finding the executable path is non-portable cross unix flavours ([stackoverflow](http://stackoverflow.com/questions/1023306/finding-current-executables-path-without-proc-self-exe))
- Most linux distributions have package managers that update software automatically

After a discussion on #chromium, it looks like chrome on linux lets the package manager update the distributed software and notifies the user in the UI whenever a new version is installed, prompting her to relaunch chrome.
## Chrome approach
- Let the package manager handle updates
- Provide instructions to construct auto-update compliant npm, deb packages
- Build a library to detect updates from the package manager prompting the user to relaunch
## Independent approach
- We would have to enforce the fact that software release would have to be packaged in a directory easily identifiable from the running executable path.
- We would want to avoid prompting a root password anytime the program tries to update itself. auto-update managed package would probably have to set permissions in a quite specific way at install to support the update model: eg. setgid on the exec and authorize write for the given group on all relevant files

It guess this deserves a discussion here to see what would work best!

Contributor guide

No contributing guide indexed for this repository

Research direction

No files, tests, or entry points are named. Start by reviewing the proposed Chrome/package-manager approach against the independent approach, then define an agreed Linux update strategy; the issue is done when that direction and its implementation scope are decided.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, objective-c
Domain
operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.