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

[QUESTION] how to "exclude" update specific flatpak #2834

Closed
fastoslinux opened this issue Apr 16, 2019 · 16 comments
Closed

[QUESTION] how to "exclude" update specific flatpak #2834

fastoslinux opened this issue Apr 16, 2019 · 16 comments

Comments

@fastoslinux
Copy link

Linux distribution and version

Fedora 30

Flatpak version

Flatpak 1.2.4

Description of the problem

there is command like "flatpak update --exclude = packagename"

Steps to reproduce

@matthiasclasen
Copy link
Collaborator

no, there is no such command. you can update individual apps, though

@matthiasclasen
Copy link
Collaborator

why do you feel you need to exclude an app from updates?

@mwleeds
Copy link
Collaborator

mwleeds commented Apr 18, 2019

I don't know if this is the OP's use case but I suppose if you downgrade something to workaround a recent regression, you wouldn't want your downgrade to be undone.

@SreeChandan
Copy link

Another way to approach this would be to 'freeze' a software(package) from updating. This way you can just do it once instead of having to use --exclude every time you use the update command.

@ahayzen
Copy link

ahayzen commented Apr 18, 2019

I had wondered before if a feature similar to apt-mark hold and apt-mark unhold [0] would be useful for flatpak - this bug would also be solved by this.

The use case for this can be if the latest version of an app has a regression and you want to "hold" the package at a specific version until it is fixed. Eg imagine the latest version of a video chat app is broken for you, but the previous version works. One can rollback to the previous version so that I can continue doing meetings. But i do not want automatic or manual updates to update the app until i have confirmed that the issue has been fixed or I have time to do so.

0 - http://manpages.ubuntu.com/manpages/bionic/man8/apt-mark.8.html

@fastoslinux
Copy link
Author

why do you feel you need to exclude an app from updates?

because of this
flathub/org.gnome.Boxes#15

@SreeChandan
Copy link

This might mean Flathub(or any one else) might need to store multiple versions of a package. Is it already like that? If so, how many previous versions of a software would(should) be available?

@mwleeds
Copy link
Collaborator

mwleeds commented Apr 19, 2019

This might mean Flathub(or any one else) might need to store multiple versions of a package. Is it already like that? If so, how many previous versions of a software would(should) be available?

Yes, some history is kept, which you can see with flatpak remote-info --log. I don't know exactly how much.

@SreeChandan
Copy link

I recently came across a use case for this myself.
I had KeepassXC 2.4.0(flatpak), and recently it got updated to keepassXC 2.4.1. And the database doesn't work on the new version. I had to look up for a workaround. If i could downgrade it, it would have been a time saver.

@alexlarsson
Copy link
Member

Yeah, i don't think excluding manually is right. Something like freezing/holding seems much more workable. It would work with all the tooling that updates, like ui updaters, etc.

@GoodMirek
Copy link

I believe there are valid use cases for both options:

  1. Exclude manually - I need to postpone the update temporarily, e.g. until I test the specific version elsewhere, in case I have rolled back manually to a previous version due to a known bug. However, I do not want a long term hold, as I generally want to update the app. Or, I need to test whether the update will go through without updating a specific runtime. Or, I am on a slow/metered mobile connection and want to avoid one particularly huge update. Generally, there are cases when I do not want to touch the package update settings (hold/freeze), but want to temporarily avoid the update.
  2. Hold/freeze - I want to avoid updates permanently, e.g. because I have a specific plugin for the app or dependency on a deprecated behavior of the app, which is not available for the newer versions or my old settings cannot be easily migrated to the new version (e.g. when app changes configuration backend).

@alexlarsson
Copy link
Member

It seems that the first case is already possible (although not with a great experience) with the current system, as you can manually cut and paste update the specific other things you need. So, is doesn't seem as important.

@GoodMirek
Copy link

It seems that the first case is already possible (although not with a great experience) with the current system, as you can manually cut and paste update the specific other things you need. So, is doesn't seem as important.

Same thing one can say about dnf and still dnf has the exclude option. I agree it is not super important, but I still believe it is worth considering as a nice to have feature. It is not great user experience when I need to update tens of flatpaks and just exclude one. Sure I can write a bash script for that.

@SreeChandan
Copy link

The way i look at it is, Hold/freeze is just an automated version of excluding manually. Still excluding manually at 'flatpak update --exclude {list of apps} should be an option. What Hold/freeze, hopefully, does is to save that preference so that you can just set that preference once and the rest of the time you can just use 'flatpak update'. And that should automatically check for that preference of exclusions and avoid updating them. It might look something like 'flatpak update --freeze {list of apps}'
TLDR: Given the relation btw the two of them, should be easy enough to implement one if the other one if figured out.

@wjt
Copy link
Contributor

wjt commented Oct 14, 2019

I think the flatpak mask command added in #3130 implements this feature request.

@mwleeds
Copy link
Collaborator

mwleeds commented Oct 14, 2019

Yeah I think we can close this.

@mwleeds mwleeds closed this as completed Oct 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants