Desktop: Build without qt-webengine

Created on 10 Dec 2018  路  24Comments  路  Source: nextcloud/desktop

Hello,

Thank you very much for your efforts on providing such a good cloud application.

I saw that the nextcloud client depends on qt-webengine. As this software is
considered to be nonfree the hole client cannot be free. For a more informations about free software see fsf.org.

I would kindly ask you how I can build the client without qt-webengine?

Furthermore: Do the daily images contain the nonfree parts with qt-webengine?

(OS: Parabola GNU/Linux-libre)

Most helpful comment

I second @doronbehar.
As a Gentoo user, it would additionally save me hours of compilation.
Can we at least have a choice between qtwebengine and qtwebkit?

All 24 comments

I second this, and also add, that I had problems with Nextcloud's appimage (desktop) for the very same reason as the Nitrokey's appimage. My point being I get this error:
[redacted!@redacted! ~]$ ./Nextcloud-2.5.0.AppImage
./Nextcloud-2.5.0.AppImage: /usr/lib/libQt5Core.so.5: version Qt_5.11' not found (required by ./Nextcloud-2.5.0.AppImage) ./Nextcloud-2.5.0.AppImage: /usr/lib/libQt5Core.so.5: versionQt_5.11' not found (required by /tmp/.mount_NextclbNcT8M/usr/bin/../lib/libnextcloudsync.so.0)
./Nextcloud-2.5.0.AppImage: /usr/lib/libQt5Core.so.5: version Qt_5.11' not found (required by /tmp/.mount_NextclbNcT8M/usr/bin/../lib/libocsync.so.0) ./Nextcloud-2.5.0.AppImage: /usr/lib/libQt5Core.so.5: versionQt_5.11' not found (required by /tmp/.mount_NextclbNcT8M/usr/bin/../lib/libqt5keychain.so.1)
./Nextcloud-2.5.0.AppImage: /usr/lib/libQt5Core.so.5: version `Qt_5.11' not found (required by /tmp/.mount_NextclbNcT8M/usr/bin/../lib/libQt5WebEngineWidgets.so.5)

My OS is Hyperbola GNU/Linux-Libre

Additionally, regardless of the Linux distribution and the legal issues / concerns. Qt5-webengine is pretty heavy - 132.96Mib on Arch Linux and as I assume it is only needed for the initial login procedure. Perhaps it could be replaced with simple Qt text boxes and a POST request to the server? Excuse my nativity and correct me if I'm wrong but it's too bad to see the desktop client weights more then 140MiB just because it depends on Qt5-webengine which is so heavy.

Thanks.

so to sum it up, can we A: remove qt5-webengine from the dependencies? and B: can appimage depend not on what qt5 I have, but on what qt5 is within the appimage? As I have said, I use Hyperbola a derivative of arch, with debian packages for stability and security. But AUR is absolutely not an option. It isn't available and it would cause major issues probably even if it was. let me know if you can do this down the road. either next stable version, or two later, until then I have to use an outdated version sadly...

BTW I've started using Rclone which works a little bit differently but has no qt5 dependecies at all.

BTW I've started using Rclone which works a little bit differently but has no qt5 dependecies at all.

It is a bit too hard for me though. Sadly...

I second @doronbehar.
As a Gentoo user, it would additionally save me hours of compilation.
Can we at least have a choice between qtwebengine and qtwebkit?

Here is a patch that will let you build the client without WebEngine, setting the default back to HTTP / Basic auth. Someone familiar with CMake can adapt this and make it a build time configuration option.

I would love to see this added sroracle, wouldn't be me though, to add the code though, never done something like that before.

Thanks @sroracle for this patch!
Here is a modified PKGBUILD for Parabola (may work for other Arch derivativies as well).

It would be great to see this patch included upstream. Is there any chance to see this happen?

Any chance you could make an appimage of that and have it bypass whatever qt I am using? I have an old qt, but the current appimages keep depending on what I have not what's in the appimage.

ps, thanks sroracle for making that patch!

Any chance you could make an appimage of that and have it bypass whatever qt I am using? I have an old qt, but the current appimages keep depending on what _I_ have not what's _in_ the appimage.

No, sorry. I don't know how to do this.

Well, its possible, I had a problem like this with nitrokey-app also. And they figured out how to fix that bug. :)
Maybe you should ask them... and yes they have an appimage too. ;)

Any chance you could make an appimage of that and have it bypass whatever qt I am using? I have an old qt, but the current appimages keep depending on what _I_ have not what's _in_ the appimage.

No, sorry. I don't know how to do this.

The nitrokey people know how to fix that bug, can you ask them how they fixed it? so an appimage that works can be made?
Also, can we stop only support the latest LTS qt5? and instead support the last two LTS qt5 builds?

Sorry to necro this, but I figured, since it's still open, I might as well, instead of creating a whole new issue. Anyway, I really need this, as WebEngine isn't available on Raspbian (at least, not anymore. It seems to have been in the past, but I can't figure out how to get apt sources for it). I haven't tried building the entire system from source yet, but I have my doubts. It's really unfortunate, though, because I need to be able to develop on my Pi remotely, and my internet provider is a reseller, so opening a port on my router for sftp connections isn't an option, and neither is LogMeIn or Dropbox (no clients for Raspbian), and Nextcloud is the only cloud sync service I've been able to find that even has a history of being usable on Raspbian (I have tried MegaSync, but it's hit or miss on the synchronization, and often takes minutes to register a change, so it's unusable for my purposes).

Is there a way to bypass the qt5 requirements check? If so could someone tell me.
I currently have an old qt5, qt5.8 to be precise...
I don't have a way to upgrade it thus I wondered if there is a way to stop the nextcloud appimage from checking for dependencies so I can just run it. Or if supported could be added for qt5.6 and that would make it work...

webengine is not available in OpenBSD, and there are little efforts in porting the package, as the porting of Chrome already needs hundreds(!) of patches. I fully support making this dependency optional.

Has someone already managed to create a batch for version 2.6.1 ? @sroracle ?

@cogitri adapted it for 2.6.0, but Alpine has since dropped the patch since they appear to have webengine working now. https://github.com/alpinelinux/aports/blob/5589ebabf15ac1225b9ef6ac0082fcf47601201f/community/nextcloud-client/remove-qtwebengine.patch

Yup, we've patched QtWebengine into shape

Thank you! The patch works for 2.6.1 as well :-)

Parabola GNU/Linux-libre includes nextcloud-client without qt-webengine. The package can be found here and should be installable on any Arch-like distro.

Two problems for me anyways... one I don't use openssl, i use libressl, two, is it available via appimage?
Also, how do you install from a non pkgbuild from parabola.nu?

Actually there is a fourth problem, the current qt in my distro is qt5.8...

I have switched from source based compiling to the AppImage version on my gentoo, because nextcloud-client pulls in the qtwebengine with its >130MB of sources. Not being able to optionally build the desktop client against qtwebengine is bad. As well as pulling in 130MB for a simple 3 step authentication mechanism is in my humble opinion disproportionate and should be changed.

Was this page helpful?
0 / 5 - 0 ratings