Opened 5 years ago

Closed 5 years ago

#16131 closed bug (invalid)

Do not use full-sync for release upgrades, introduce another command instead

Reported by: bitigchi Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: - General Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Currently pkgman full-sync is required for upgrading to another release. But if the user doesn't want to upgrade and just sync his/her existing 3rd party packages?

And SoftwareUpdater uses full-sync as default. This introduces the risk of upgrading to another release by accident or without knowledge. Why?

Possible solutions:

  • Use another command for releases, like pkgman release-upgrade
  • Whenever a new release is out, SoftwareUpdater should spawn a button and a label at the bottom part of the window, saying: "There is a new Haiku release available (%s). Click "Upgrade" to install.", with buttons "Upgrade", "Dismiss".
  • Whenever pkgman update is triggered, there should be an informative output with the text above, plus "Use pkgman release-upgrade to upgrade to Haiku %s"
  • If Dismiss is selected, the same check should be available in SoftwareUpdater preferences, namely: "Check new Haiku releases", so that user can trigger a new release upgrade again.

Change History (2)

comment:1 by Starcrasher, 5 years ago

If I'm not wrong, full-sync won't change repositories used.
So you will only change up release when using nightlies.
If you're using beta1 repos, you should stay with beta1.

But, yes having a notification that a new version is available and a piece of software that would help you to migrate would be welcome. It would need to

  • check your packages to warn you if something is no more available like i.e Qupzilla was in Beta1 won't be in Beta2. So you can abort or prepare your data for migration.
  • offer to backup personal files. (Not necessary but a good habit to do it from time to time)
  • change repos for you and launch the sync

comment:2 by waddlesplash, 5 years ago

Resolution: invalid
Status: newclosed

Yes, all "full-sync" does is that it synchronizes all installed "provides" you have with the ones in the repositories. So, for instance, if you have "gawk" installed, but it was replaced with "gawk_x86" and "gawk" removed from the repos, "full-sync" will uninstall "gawk" and install "gawk_x86" instead. Similarly, it will also downgrade packages, etc. whereas "update" will only take updates, and never downgrade or uninstall packages. So "full-sync" as the SoftwareUpdater default makes sense, because otherwise you can get "stuck" when packages that Haiku itself depends on are replaced/removed/etc., as has happened in the past few months.

In order to change releases, you have to change repositories first to get the newer packages. If we pushed a new release out in the existing repositories, but we did not remove any packages, then "pkgman update" would also upgrade to that; so running "pkgman upgrade" is not actually protection against a "distribution upgrade", which is a Linuxism we never really adopted. (It is worth noting that on e.g. Ubuntu, you have to run "apt dist-upgrade" to get newer kernels occasionally, within a release, and the GUI package managers usually run "dist-upgrade" always under the hood.)

Note: See TracTickets for help on using tickets.