Open volkertb opened 2 months ago
I agree, these build instructions are horrifically out of date, and I appologize. I will attempt to write up something a little bit better and more modern.
To address some of your criticisms.
I don't personally use Conda during Linux development, we have been using this for our Apple and Windows targets as a place to centrally manage dependencies, specifically to collect the Python modules, golang and rust tooling into one place. For Linux it should be sufficient to ensure that the build-dependencies (either from linux/debian/control
for .deb based distros, or linux/mozillavpn.spec
for RPM based distrios) are satisfied, and then install the python modules from requirements.txt
.
We initially decided to cite the Qt installer as our recommended way to install Qt because the oldest distro we need to support (Ubuntu 20.04/Focal) doesn't include Qt6. But times have changed an nearly all distibutions supply a usable version of Qt6. So this section should probably be written to recommend installation from the Distribution package manager and to remove the references to the Qt installer.
Qt is in fact an open source project, and we use it under the terms of the LGPL license under which it is distributed. Unfortunately though, they don't offer any download links to compiled versions of this software (they really want to steer everyone towards creating Qt accounts and pushing the commercial version). This makes it feel significantly less open source.
As for better alternatives. I actually really like Flatpaks and I have been doing my best to maintain the manifests to build them in the linux/flatpak
directory. This has been a bit of a side-project of mine and I would like to start making an effort to getting them onto flathub in the next release or two - but I can't really promise much of a timeline for that as it only gets worked on when I am outside of my work hours.
One downside of the flatpaks though is that they don't allow us to perform split tunneling (this requires significantly more permissions than the sandbox will permit). So making use of the Flatpak versions of the VPN client comes at the cost of some features.
Thanks for the explanation and clarification. And for your efforts to improve all this, of course.
As for the split tunneling limitation in the Flatpak sandbox, would it make sense to open a feature ticket for this at the Flatpak project? (Perhaps you or someone else has already done so.)
Even with the reduced features, having MozillaVPN available as a Flatpak would still be worth it, IMO.
Also, as discussed in another issue a while back, I would really recommend that you decouple the UI from the core application, and allow the official MozillaVPN to be used from the command line or through a locally running web console, without having to compile the client with QT6 dependencies.
I'd be interested in helping with:
I also see that the issue tracking the flatpak build is actually #1014.
Dear Mozilla developers,
Is the Mozilla VPN client open source or not?
Because if it is, why are the Linux build instructions making me jump through these arcane and unconventional hoops by having me install miniconda and running the commercial Qt installer, which also forces me to create a Qt account, even for open source use?
Also, even after doing all of that, I still end up with errors. (See below.)
This is on Clear Linux OS, version 42410.
Not only are you forcing me to build the Mozilla VPN client yourself (since you keep insisting that "Ubuntu is Linux"), but you're making the Linux build process non-trivial as well.
Is miniconda really necessary? It's used for data science and AI purposes. Why should it be needed as part of the build toolchain? Just CMake, with perhaps a Python script here and there, should be enough.
And instead of having to use Qt's installer application, just having the Qt 6.x development dependencies installed through our distros' package managers should be sufficient.
To summarize my frustrations: why do you continue to make it so damn hard for non-Ubuntu Linux users?
Please stop focusing on only Ubuntu and instead offer the original Mozilla VPN application binary in a distro-neutral package format (Flatpak or AppImage) format already!