richdocumentscode
richdocumentscode copied to clipboard
AppImage fallback when libfuse is not present is not working in Ubuntu LXC container
The documentation of this project states that libfuse is optional, but this is not my experience:
Kernel supporting the FUSE (Filesystem in Userspace) FUSE 2 (libfuse.so.2)
Note: If FUSE support is not present, a warning (dlopen(): error loading libfuse.so.2) will be generated, but then the AppImage will be started with the --appimage-extract-and-run parameter automatically as a fallback.
I use NextCloud, installed as a snap in an Ubuntu LXC container, and discovered I have to run the Collabore AppImage manually to get online editing functionalities. Without it, I get the "loading" spinner forever when opening a document.
I added a systemd unit to start it after boot, but did a re-test to make sure this was my issue:
Start: Online editing working.
root@mynextcloud:~# snap stop nextcloud
2023-11-05T17:49:51Z INFO Waiting for "snap.nextcloud.mysql.service" to stop.
Stopped.
root@mynextcloud:~# apt remove libfuse2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
libfuse2
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 330 kB disk space will be freed.
Do you want to continue? [Y/n]
(Reading database ... 24191 files and directories currently installed.)
Removing libfuse2:amd64 (2.9.9-5ubuntu3) ...
Processing triggers for libc-bin (2.35-0ubuntu3.4) ...
root@mynextcloud:~# snap start nextcloud
Started.
root@mynextcloud:~# snap services nextcloud
Service Startup Current Notes
nextcloud.apache enabled active -
nextcloud.logrotate enabled inactive timer-activated
nextcloud.mysql enabled active -
nextcloud.nextcloud-cron enabled active -
nextcloud.nextcloud-fixer enabled active -
nextcloud.php-fpm enabled active -
nextcloud.redis-server enabled active -
nextcloud.renew-certs enabled active -
root@mynextcloud:~#
Online editing not possible.
root@mynextcloud:~# /var/snap/nextcloud/current/nextcloud/extra-apps/richdocumentscode/collabora/Collabora_Online.AppImage
dlopen(): error loading libfuse.so.2
AppImages require FUSE to run.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.
See https://github.com/AppImage/AppImageKit/wiki/FUSE
for more information
root@mynextcloud:~#
Online editing not possible.
root@mynextcloud:~# apt install libfuse2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
libfuse2
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 90.3 kB of archives.
After this operation, 330 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libfuse2 amd64 2.9.9-5ubuntu3 [90.3 kB]
Fetched 90.3 kB in 6s (15.9 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libfuse2:amd64.
(Reading database ... 24179 files and directories currently installed.)
Preparing to unpack .../libfuse2_2.9.9-5ubuntu3_amd64.deb ...
Unpacking libfuse2:amd64 (2.9.9-5ubuntu3) ...
Setting up libfuse2:amd64 (2.9.9-5ubuntu3) ...
Processing triggers for libc-bin (2.35-0ubuntu3.4) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
Scanning processes...
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
root@mynextcloud:~# /var/snap/nextcloud/current/nextcloud/extra-apps/richdocumentscode/collabora/Collabora_Online.AppImage
Logging at warning level to file: /tmp/coolwsd.npgkjwOUpw/coolwsd.log
Security: coolforkit incorrect user-name, other than 'cool'
coolforkit version details: 23.05.5.3 - 5093121
Init vcl
preload: xsec_xmlsec merged ucpchelp1 wpftwriter wpftcalc wpftimpress wpftdraw writerfilter msforms ucppkg1 ucpcmis1 cached1 vbaswobj swd sw ucpdav1 smd sm pdfimport PresentationMinimizer sd scriptframe protocolhandler dlgprov date analysis vbaobj scfilt scd xmlsecurity sc expwrap oox LanguageTool ldapbe2 pcr storagefd log chartcore pdffilter migrationoo3 deploymentgui scn cui sdbt mozbootstrap bootstrap flat io animcore svgfilter embobj t602filter dbaxml stocservices chartcontroller namingservice cairocanvas invocadapt introspection migrationoo2 dbpool2 binaryurp mysql_jdbc pricing proxyfac calc invocation dba uuresolver solver reflection writer textconversiondlgs hwp msword graphicfilter emboleobj sdd slideshow dbase bib
Disabled: ucpftp1 rptxml rptui rpt dbp abp sdbc2 cmdmail PresenterScreen dbu odbc
Allowlisted languages: de_DE el en_GB en_US es_ES fr_FR hu it nl pt_BR pt_PT ru
Preloading dictionaries: de-DE en-US fr-FR it-IT nl-NL pt-BR ru-RU en-GB nl-BE pt-PT es-ES
Preloading thesauri: de-DE en-US fr-FR it-IT nl-NL pt-BR ru-RU en-GB nl-BE pt-PT es-ES
Preload icons
Preload short cut accelerators
Preload languages
Preload fonts
Fontconfig error: Cannot load default config file: No such file: (null)
Preload config
office version details: { "ProductName": "Collabora Office", "ProductVersion": "23.05", "ProductExtension": ".5.3", "BuildId": "e7921fedb8b5615b0dc7cd3ec8b91c9b4e06d002", "BuildConfig": "'--enable-mpl-subset' '--with-vendor=Collabora' '--disable-community-flavor' '--with-branding=icon-themes/galaxy/brand_cp' '--with-system-dicts' '--with-myspell-dicts' '--with-system-zlib' '--disable-poppler' '--enable-cairo-rgba' '--without-system-cairo' '--without-system-fontconfig' '--without-system-freetype' '--without-system-graphite' '--without-system-harfbuzz' '--without-system-openssl' '--without-system-libpng' '--without-system-libxml' '--without-system-jpeg' '--without-system-expat' '--without-system-curl' '--without-system-icu' '--without-system-nss' '--without-system-jars' '--without-system-postgresql' '--without-java' '--without-junit' '--without-help' '--with-linker-hash-style=both' '--with-fonts' '--enable-noto-font' '--with-galleries=no' '--with-theme=colibre colibre_svg' '--with-external-thes-dir=/usr/share/mythes' '--with-external-hyph-dir=/usr/share/hyphen' '--with-external-dict-dir=/usr/share/hunspell' '--disable-dbus' '--enable-extension-integration' '--disable-odk' '--disable-kf5' '--disable-gtk3' '--disable-qt5' '--disable-gstreamer-1-0' '--disable-evolution2' '--disable-gio' '--disable-gui' '--disable-scripting-beanshell' '--disable-scripting-javascript' '--disable-ext-wiki-publisher' '--disable-report-builder' '--disable-ext-nlpsolver' '--disable-sdremote' '--disable-sdremote-bluetooth' '--disable-postgresql-sdbc' '--disable-firebird-sdbc' '--disable-randr' '--disable-ext-numbertext' '--enable-epm' '--enable-python=internal' '--disable-online-update' '--disable-dconf' '--enable-mergelibs' '--with-package-format=deb rpm' '--enable-release-build' '--with-lang=ar bg ca cs da de el en-US en-GB eo es eu fi fr gl he hr hu id is it ja ko lo nb nl oc pl pt pt-BR sq ru sk sl sv tr uk vi zh-CN zh-TW' '--disable-lotuswordpro' '--disable-lpsolve' '--enable-symbols' '--enable-sal-log' '--without-templates' '--srcdir=/opt/collaboraoffice/debugsource' '--enable-option-checking=fatal' 'PKG_CONFIG_PATH=/opt/rh/devtoolset-10/root/usr/lib64/pkgconfig:/opt/rh/devtoolset-10/root/usr/lib64/pkgconfig'" }
Ready to accept connections on port 9983.
Online editing works again.
Initial issue https://github.com/nextcloud/richdocuments/issues/3190
Hi @samvde - I just realized you're running the AppImage directly? That's not how richdocumentscode
is intended to be used. It makes sense libfuse2 is required in your case: you're bypassing the proxy.php
that handles the fallback to extraction:
https://github.com/CollaboraOnline/richdocumentscode/blob/b7fe65df4cfbb8bcf148f891256e83c6932c393a/proxy.php#L89-L90
In this case, things are operating as expected, given that you're doing things in an unconventional way. :)
Hi @joshtrichards
Perhaps I was not explicit enough in my initial report. I start it manually (or now via systemd) because it does not get autostarted ever. Loading a document gives and eternal spinner. So it is not by choice.
I have seen a lot of bug reports about people getting eternal spinners especially on snap installations, it took a while to get it figured out. Perhaps it is a safe workaround to make it default for that use case, not sure.
I think this issue might be caused because Ubuntu made fuse3 the default.
E.g. https://github.com/AppImage/AppImageKit/issues/1194
Not sure you can add libfuse2 to the snap or something like that but I think it breaks for everyone using the Nextcloud snap out of the box on at least Ubuntu and/or Debian-based distributions.