Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mackup: deprecate #181714

Closed
wants to merge 2 commits into from
Closed

mackup: deprecate #181714

wants to merge 2 commits into from

Conversation

chrisbloom7
Copy link
Sponsor

@chrisbloom7 chrisbloom7 commented Aug 19, 2024

mackup works by moving config files to an off-disk backup location (usually a cloud storage provider like iCloud or Dropbox, etc.) and then replacing the original file with a symlink to the backed up version. The intended use is to make sure program configuration settings and preferences can be restored if you need to replace computers, factory reset, etc.

As documented here, here, here, mackup backup no longer works on MacOS Sonoma (likely due to security changes in the app sandbox in Sonoma) and running either the backup or restore commands on MacOS Sonoma will result in the loss of all preference files. Users who backup to a storage provider that has versioning or backup snapshots may be able to restore preferences to an older version. For users backing up to other storage providers that do not have this feature, such as iCloud, the command results in total data loss. This issue has been known to the developer for over a year but there is no fix, no mention of the issue in the project README, no warning when running the command, and no indication in the program output that the backup process may not have completed properly - neither in the dry-run mode nor in live mode.

  • Have you followed the guidelines for contributing?
  • Have you ensured that your commits follow the commit style guide?
  • Have you checked that there aren't other open pull requests for the same formula update/change?
  • Have you built your formula locally with HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>, where <formula> is the name of the formula you're submitting?
  • Is your test running fine brew test <formula>, where <formula> is the name of the formula you're submitting?
  • Does your build pass brew audit --strict <formula> (after doing HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>)? If this is a new formula, does it pass brew audit --new <formula>?

`mackup` works by moving config files to an
off-disk backup location (usually a cloud storage
provider like iCloud or Dropbox, etc.) and then
replacing the original file with a symlink to the
backed up version. The intended use is to make
sure program configuration settings and
preferences can be restored if you need to replace
computers, factory reset, etc.

As documented
[here](lra/mackup#2035),
[here](lra/mackup#1924),
[here](lra/mackup#1969 (reply in thread)),
`mackup backup` no longer works on MacOS Sonoma
(likely due to [security
changes](lra/mackup#1924 (comment))
in the app sandbox in Sonoma) and running either
the backup or restore commands on MacOS Sonoma
will result in the loss of all preference files.
Users who backup to a storage provider that has
versioning or backup snapshots may be able to
restore preferences to an older version. For users
backing up to other storage providers that do not
have this feature, such as iCloud, the command
results in total data loss. This issue has been
known to the developer for over a year but there
is no fix, no mention of the issue in the project
README, no warning when running the command, and
no indication in the program output that the
backup process may not have completed properly -
neither in the dry-run mode nor in live mode.
@github-actions github-actions bot added python Python use is a significant feature of the PR or issue formula deprecated Formula deprecated labels Aug 19, 2024
@SMillerDev
Copy link
Member

So is the project deprecated? Or you just shouldn't use it on Sonoma?

Copy link
Contributor

Thanks for contributing to Homebrew! 🎉 It looks like you're having trouble with a CI failure. See our contribution guide for help. You may be most interested in the section on dealing with CI failures. You can find the CI logs in the Checks tab of your pull request.

@chrisbloom7
Copy link
Sponsor Author

chrisbloom7 commented Aug 19, 2024

@SMillerDev It doesn't really fall cleanly into either deprecated or disabled. Having seen this warning recently when auditing my brewfile, I assumed this might fall into the same category. (Though I initially thought that was coming from a deprecation message when trying to install the postgres cask, not realizing until today that it had been renamed to postgres-unofficial and that warning was referring to the official postgresql database formula)

#181592 also seemed relevant when I went looking for examples of how to deprecate a formula. I'll defer to you if this isn't the appropriate way to go, but I was surprised to discover this morning that all of my preferences had been deleted, then dismayed to learn that this is a known problem that a lot of other folks have already posted about in the repo, and then just shocked to learn that the developer hasn't made any effort to warn Sonoma users that this could happen despite publishing a new version just a couple weeks ago.

@github-actions github-actions bot added the autosquash Automatically squash pull request commits according to Homebrew style. label Aug 19, 2024
@chrisbloom7
Copy link
Sponsor Author

(fixed the links in the description)

@chrisbloom7
Copy link
Sponsor Author

Apparently there is a workaround one can try that may be able to restore preferences that were lost by tricking the program into trying to do a backup or restore, during which symlinking will fail, and then use the uninstall command to force the program to move the backed up files back to their original locations in place of the missing symlinks. Changes are no longer automatically backed up this way, so the program is still technically broken, but it does mean the data loss may not be permanent in all cases.

@SMillerDev
Copy link
Member

Seeing how it's not actually deprecated, just broken I don't think we should deprecate this.

@chrisbloom7
Copy link
Sponsor Author

Understood. Thanks for walking me through it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosquash Automatically squash pull request commits according to Homebrew style. formula deprecated Formula deprecated python Python use is a significant feature of the PR or issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants