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

Provide KeePassXC as a FlatPak #1524

Closed
buhund opened this issue Feb 24, 2018 · 82 comments
Closed

Provide KeePassXC as a FlatPak #1524

buhund opened this issue Feb 24, 2018 · 82 comments
Assignees

Comments

@buhund
Copy link

buhund commented Feb 24, 2018

Hello.

First, thanks for the awesome work you do!

My question pertains to KeepassXC as Flatpak. I have found KeepassXC on Flathub, but since there's no mention of it on the official KeepassXC page (neither on download, nor blog), I'm hessitant to use it.

https://flathub.org/apps/ (ctrl+F --> "keepassxc")

https://github.com/flathub/org.keepassxc.KeePassXC

I currently use the offical PPA, since the Snaps I've used (KPXC and others) always end up with "Win 95" interface, and a Win 95 window for locating files.

My question is largely this:

  • Are these official Flatpaks of KeepassXC?
  • ...if no, are there any plans for an official Flatpak?
@droidmonkey
Copy link
Member

droidmonkey commented Feb 24, 2018

That is NOT official, but it looks like its just instructions for a machine to auto-build from source. The patch doesn't do anything but add Flatpack to the cmake file. We could support this officially in the future.

@TheZ3ro
Copy link
Contributor

TheZ3ro commented Feb 24, 2018

This is related to keepassxreboot/keepassxc-org#28

@droidmonkey droidmonkey changed the title [Question] Official KeepassXC Flatpak (KPXC is on Flathub, which is why I ask) Provide KeePassXC as a FlatPak Feb 24, 2018
@buhund
Copy link
Author

buhund commented Feb 25, 2018

Slightly confused. droidmonkey says it's not official, but is not the one I found on Flathub the same as the one mentioned on the ticked linked by TheZ3ro, which is there under "offical Flatpak from flathub"? The url for both seems to be the same at least.

@TheZ3ro
Copy link
Contributor

TheZ3ro commented Feb 25, 2018

@lutracw the first comment is not by a KeePassXC owner.
It's official for flathuib in the sense that flathub directly release it (they maintain it)
It NOT official by us, in the sense that we don't build it directly ourself and we don't offer support for it

@buhund
Copy link
Author

buhund commented Feb 28, 2018

@TheZ3ro I see. Thanks for the clarification. I should think it would be "safe" then, to use it, but I understand that you can't in good conscience vouch for it since you're not the ones to package/provide it. I'll just keep to the PPA for now (already installed, after all), and keeping an eye out for an official Flatpack release by you guys.

@phoerious
Copy link
Member

It not so much about security, it's more about deployment bugs we cannot fix.

@rugk
Copy link

rugk commented Mar 16, 2018

Whoever created the flatpak repo, you could just ask them to take it over. I'd also suggest you to do that.

@TheZ3ro
Copy link
Contributor

TheZ3ro commented Mar 16, 2018

@rugk it's the flathub repository, we can't "take it over". As said in #1524 (comment) flatpak is an "offical" build since it's compiled locally from github sources, but we do NOT offer support for bug with that distribution channel (unlike snap and appimage)

@TheZ3ro TheZ3ro closed this as completed Mar 16, 2018
@rugk
Copy link

rugk commented Mar 16, 2018

That's stupid. First, most bugs are likely not related to the flatpak and secondly it is kinda unfair to offer it for one technology, but not for the other. To get a widespread software, you should support as much technology stacks as possible.

@WizardGed
Copy link

WizardGed commented Mar 16, 2018 via email

@phoerious
Copy link
Member

We simply cannot support all platforms. Bugs that are present in any KeePassXC release will be fixed by us, but any packaging-related bugs have to be fixed by the package provider. We already have enough weird packaging bugs with Snaps and we really don't feel like (and don't have the time for) fixing a whole bunch more for another "bleeding-edge" distribution channel.

@TheZ3ro
Copy link
Contributor

TheZ3ro commented Mar 17, 2018

Maybe my comment was not clear enough: we do NOT offer support for bugs in that specific distribution channel, the guys at flathub will take care of bugs in the KeePassXC flatpak package.
Bugs in KeePassXC itself are always "supported"*

[*] Note: this project is open-source and maintained on our free-time as an hobby

@fabiscafe
Copy link

Would be still nice to have you guys taking a look on it too, because at the end of the day the flatpak is not usable right now (because of sandboxing).

What I dont understand is that you support PPA and snap, both are Ubuntu packages. 🤔

@rugk
Copy link

rugk commented May 23, 2018

I think flathub/org.keepassxc.KeePassXC#4 is a bug and could be fixed. Maybe the flatpak needs some more permissions or so, or you need to save it somewhere else. So it is not flatpak's problem that this does not work…

@fabiscafe
Copy link

@rugk could be a Qt/kde runtime thing or a portal bug. I have no idea..

@droidmonkey
Copy link
Member

Snaps are not just for ubuntu, they can be run on many different distributions. https://snapcraft.io/

In fact based on the icons i see on their website, every single major linux distro...

@fabiscafe
Copy link

@droidmonkey it's only in the AUR of arch, wich sucks, because the reason for me to use flatpak is to not use the AUR..
it's based on the ubuntu runtime, instead of a nice generic one.
It's not secure, there is no desktop integration yet and there is this annoying visible snap folder in my users home.

So all in all, they can advertise whatever they want, its a Ubuntu thing, while flatpak is the freedesktop project project.

@rugk
Copy link

rugk commented May 26, 2018

Also AFAIK it does not have sandboxing on other distros than Ubuntu.

@droidmonkey
Copy link
Member

I'll take a look at flatpak and possibly fork the existing one being run by the other individual. It looks like we can achieve feature parity with snap at this point, but its just another syntax to learn and maintain...

@droidmonkey droidmonkey self-assigned this May 26, 2018
@droidmonkey droidmonkey reopened this May 26, 2018
@RoyiAvital
Copy link

RoyiAvital commented May 28, 2018

FlatPak is great.
The sand boxing is really a great security feature and matched KeePassXC narrative of securing the user data.

I think the main issue with the FlatPak is the the need to allow access to the Home folder.
I wrote about it here - flathub/org.keepassxc.KeePassXC#4 (comment).

May I ask why did you prefer Snap over FlatPak (Or for that matter AppImage over FlatPak)?

@phoerious
Copy link
Member

phoerious commented May 28, 2018

AppImage is just a self-contained binary that runs everywhere. Flatpak and Snap both need some other software installed first, so those are not comparable for that matter. The reason we chose Snap was that is was probably the most mature and widely available implementation of confined cross-platform application environments at that time. Generally, we might have chosen Flatpak as well, but it happened to be Snap and we don't want to maintain both.

@droidmonkey
Copy link
Member

Snaps are 100x easier to define, build, and deploy at this point. Flatpak reminds me of using command line Git... I could not get the Flatpak hosted on Flathub built using the standard commands....

@RoyiAvital
Copy link

@droidmonkey @phoerious ,
Out of curiosity, what are the difference between FlatPak and Snap security and performance wise?

@ssokolow
Copy link

Not necessarily. "The application on Flathub should reflect, as closely as possible, the application in its unadulterated form, direct from its authors", but "should" =/= "must".

Yeah. Not long ago, having forgotten about that passage, I took the long route to convincing the maintainer of the MPV Flatpak to remove their custom extensions which were overriding my disabling of the OSC GUI to add features I didn't care about.

@phoerious
Copy link
Member

phoerious commented Nov 13, 2021

I couldn't disagree more with that article.

There are hundreds of Linux distros and each does things differently — the package maintainers are the experts who save you the burden of learning how all of them work.

That is exactly the point. So how do we fix it? Certainly not by fostering more divergence by encouraging distros even more to do their own thing, right? On the contrary: Developers should absolutely ship their own apps. They are the only ones who know their apps inside out and things like backporting CVE patches are a total farce. Nobody knows if a 4-year old backport Frankenstein app is really any more secure than the original unpatched 4-year old app, because who knows if the patch works at all on that old code base? Worst case, it's even less secure because your untested partial patch created a totally new security vulnerability. Nobody tests those things.
Also the argument that packagers take care of creating the best user experience is total bullshit. Yes, they do a great job ironing out certain minor platform bugs, but in the end it is us developers who have to fix such stuff. The number of reports that we have to deal with saying "KeePassXC does this weird thing X on Tipsydibble Linux with Kittybims-i3 wm" is utterly ridiculous.

So developers should package their apps and there should be a good, well-maintained, easy easy-to-use, and universal platform for it. There should of course also be guidelines for basic quality assurance, but they better be universal as well. It is absolutely absurd that even in 2021 it is still near-impossible to make a proper Linux binary. All other operating systems solved that problem decades ago.

I do agree that Snaps are quite clearly the worst implementation of this model and totally Canonical's NIH syndrome, but at least they try to break with Linux's technical debt of being virtually unpackageable for in their own weird way. If you ask me, I would prefer if all distros switched to Flatpak tomorrow, but as it stands, Flatpak is just yet another package format for us, unfortunately. We have to maintain at least three different Linux package formats already and they are not going away any time soon.

@Hasshu
Copy link

Hasshu commented Nov 13, 2021

Yeah. Not long ago, having forgotten about that passage, I took the long route to convincing the maintainer of the MPV Flatpak to remove their custom extensions which were overriding my disabling of the OSC GUI to add features I didn't care about.

@ssokolow Ah, I've seen that one... Incidentally, mpv remains the only thing (apart from Nvidia drivers) that forces me to use third-party RPM repos on Fedora. But I digress.

@phoerious Heck, even Linus Torvalds himself believes it's a problem.

@JaneSmith
Copy link

I just want to chime in and point out that Valve's upcoming new portable Linux PC — the Steam Deck — will be making use of a similar approach to Fedora Silverblue. That is, an immutable base OS with third-party applications installed via modern Flatpaks. Further evidence that Flatpak is the solution most everyone is uniting on and standardising on. Having a modern Flatpak package for this application will make it much easier for users to install on the Steam Deck.

@ssokolow
Copy link

ssokolow commented Nov 23, 2021

See: https://drewdevault.com/2021/09/27/Let-distros-do-their-job.html

I agree with most of what's presented, but I don't agree with the effects. Namely that an elite collection of users (myself included) who know how to build stuff from source should have "This doesn't interest me, therefore it will never get popular" power of veto over projects that may not be targeting their demographic.

Ship your software as a simple tarball. Don’t ship pre-built binaries

One thing you shouldn’t do is go around asking distros to add your program to their repos. Once you ship your tarballs, your job is done. It’s the users who will go to their distro and ask for a new package.

How are users supposed to know they want a package if nobody can try it out first?

That's like saying that any music/audio technology which doesn't interest people sufficiently audiophile to know how to hook up a multi-component hi-fi system should be denied a chance to compete in the market. Thus delegitimizing the opinions of anyone outside our/your demographic.

P.S. Systems which invert this model, e.g. Flatpak, are completely missing the point.

Flathub. Flatpak is just a technology and Red Hat is providing its own APT/RPM-style repo for Fedora that meets the stated maintainership criteria and is pretty obviously intended to become a successor to RPM at the application level for spins like Fedora Silverblue.

@phoerious
Copy link
Member

phoerious commented Nov 23, 2021

That is, an immutable base OS with third-party applications installed via modern Flatpaks.

Sounds like classic Android. Funny that most modern Android phones tend to diverge from that pattern again.

@rugk
Copy link

rugk commented Nov 23, 2021

Funny that most modern Android phones tend to diverge from that pattern again.

Huh no? Android (respectively it's apps) is/are and always was/were sandboxed. And yes, I guess they got some inspiration from it.
Generally, sandbox-like the desktop systems are worse than mobile platforms, because they miss a lot of strong/solid sandboxing.
See xckd 1200. Even flatpak is far from perfect, but it is a try for a larger user base, at least. So yes, that's a very good development.

Anyway, to get on-topic again, don't even know why this issue here is still open, KeePassXC is available as a flatpak already, so what's up here?

@ssokolow
Copy link

ssokolow commented Nov 23, 2021

Even flatpak is far from perfect, but it is a try for a larger user base

To be fair to Flatpak, they are very much focused on retrofitting an improved security baseline onto existing codebases. The more you need to modify the codebases, the harder that is to scale up. Most of their more impressive successes, like XDG portals, were achieved by retrofitting "the platform" in places like the GTK and Qt common dialogs.

KeePassXC is available as a flatpak already, so what's up here?

It's maintained by others, which adds another opportunity for a mistake or malicious action to open up a hole without someone familiar with the codebase noticing.

@phoerious
Copy link
Member

Huh no? Android (respectively it's apps) is/are and always was/were sandboxed.

The apps are sandboxed, but the OS is usually no longer an immutable ROM that needs to be flashed in full in order to update it.

@gasinvein
Copy link

gasinvein commented Nov 30, 2021

The KeePassXC flatpak has several patches improving quality of life for flatpak users. Maybe those could be merged into KeePassXC upstream codebase? Was it even proposed/considered?

@droidmonkey droidmonkey added this to the v2.7.1 milestone Mar 21, 2022
@phoerious phoerious modified the milestones: v2.7.1, v2.7.2 Apr 12, 2022
@droidmonkey droidmonkey removed this from the v2.7.2 milestone Apr 15, 2022
@droidmonkey
Copy link
Member

And we have now taken over the FlatPak repository and published 2.7.1 to the main line Flathub distribution.

@ghost
Copy link

ghost commented Apr 15, 2022

Reading your 2.7.1 release blog post, I wonder if you will be announcing the official transition to Flatpak separately?

we recommend you switch to one of our other two supported Linux packages or to Flatpak once we announce an official Flathub channel.

The blog post gives me the impression that it will still take a while for this transition to be completed. Is that the case?

@ghost
Copy link

ghost commented Apr 15, 2022

And I also want to take this opportunity to say thank you for making official KeePassXC Flatpak support possible!

@droidmonkey
Copy link
Member

It's already done, the existing flathub instance is now controlled by us

@ghost
Copy link

ghost commented Apr 16, 2022

So the updated version her https://flathub.org/apps/details/org.keepassxc.KeePassXC from April 15th is already the official version of the KeePassXC team and therefore safe to install?

P.s. Would you like to see issues concerning the Flatpak opened here
https://github.com/flathub/org.keepassxc.KeePassXC/issues
or here https://github.com/keepassxreboot/keepassxc/issues?
At least the link on https://flathub.org/apps/details/org.keepassxc.KeePassXC refers to the KeePassXC repository for the issues.

@droidmonkey
Copy link
Member

If it is a flatpak packaging or sandbox issue it goes in the flathub repo

@ghost
Copy link

ghost commented Apr 16, 2022

It is an issue with screenshots not being up to date. I think that's part of the packaging, isn't it?

Can you imagine giving me a more clear statement on my first question?

@droidmonkey
Copy link
Member

droidmonkey commented Apr 16, 2022

So the updated version her flathub.org/apps/details/org.keepassxc.KeePassXC from April 15th is already the official version of the KeePassXC team and therefore safe to install?

Yes

I'll see if I can get the screenshots updated.

@ghost
Copy link

ghost commented Apr 16, 2022

thank you very much! yes, the screenshots do not show a dark mode yet, for example.
maybe they can be matched regularly with the ones on your website when there are visible changes or new features.

@ghost
Copy link

ghost commented Apr 16, 2022

P.s. I had also noticed that I do not get to KeePassXC in the Flathub search for "keepass". Only when I enter at least "keepassx". Maybe you can make the application even easier to find by adjusting the keywords?

@droidmonkey
Copy link
Member

That seems like a major problem with the search function on flathub to me.

@fossrob
Copy link

fossrob commented Apr 17, 2022

That seems like a major problem with the search function on flathub to me.

Looks like it's being worked on: flathub-infra/linux-store-frontend#280

https://flathub.vercel.app/apps/search/keepass

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