Docker-CODE
Docker-CODE copied to clipboard
Offer an ARMv7 version
When using docker on an ARMv7 device, this container cannot start ([8] System error: exec format error
) as it seems to use x86 or x64 code…
Could you please also offer a version, which is able to run on arm devices?
It is not an easy task, because we need an ARMv7 port of Poco, LibreOffice and loolwsd.
At least LibreOffice is already available in moist distros for ARM.
Yes, but plain LibreOffice does not contain all of the features required by LibreOffice Online. We need either a recent LibreOffice build from master branch or Collabora Office for ARM.
+1 on ARMv7 support - I'd love to add Collabora CODE to my personal Nextcloud running on my Raspberry Pi 3. While I was looking for ways to do so I found the following https://github.com/husisusi/officeonlin-install.sh which (as far as I can tell) does the trick. Maybe it helps. Though I am not sure whether this thingy can be convinced to cross compile and unfortunately I do not have an ARM machine meeting the requirements.
Can this be said to have become any more feasible in the year since the issue was opened?
Given the demise of the "Documents" Nextcloud app, whose deprecation notice points to Collabora, I suspect there would be a good number of potential users.
ODroid HC1 owner here, I didn't even try to run the docker image when I saw it's based on the ubuntu base image as I gained some routine recognizing non-arm32v7 images over time and expected it won't run :smile:
What I was thinking that I switch out the FROM
part to build on this image: https://hub.docker.com/r/arm32v7/ubuntu/ but then I read you mention that Poco, LibreOffice and loolwsd needs to be also ported to arm32v7. What does porting mean in this case, compiling from source? If I just switch base images, won't it be solved at the same time? I don't really know how Ubuntu packages work but isn't an arm32v7 image comes with the compatible packages as well?
I'd really love to make it work on my ODroid but I also don't want to try the FROM switch and burn some time until I don't know if it's enough to solve the problem.
When I was about to install Nextcloud, I went for this image: https://hub.docker.com/r/arm32v7/nextcloud/
However, I needed the full install with cron enabled and other extensions added, so I built the image myself according to the example documentation: https://github.com/nextcloud/docker/tree/master/.examples
Here is a note:
NOTE: The Dockerfile does not install the LibreOffice package (line is commented), because it would increase the generated Image size by approximately 500 MB. In order to install it, simply uncomment the 13th line of the Dockerfile.
It talks about this full
example Dockerfile, this is what I also used but left the line as-is, I didn't comment it out: https://github.com/nextcloud/docker/blob/master/.examples/dockerfiles/full/apache/Dockerfile
Is this LibreOffice the same as the one we need and talk about? Would Collabora work out of the box if I uncomment this line?
FYI, the full
Dockerfile references this base image of Nextcloud if it helps to see what happens there: https://github.com/nextcloud/docker/blob/master/13.0/apache/Dockerfile
If you check the Docker file for CODE you will find out that its preparation is more-or-less just an installation of x86 packages from a Collabora repository. As long as they don't go through the effort of compiling all these packages from arm, switching the base image won't help you.
Oh, I've just seen their repo :disappointed: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE/
Have you ever tried to notify them about the issue? What do you think, if we/I write to them, what chances do we have that they will port and publish the packages?
I also have a Odroid HC1 running nextcloud - I find it hard to believe that an 8-core 2GB Cortex A7 is too slow - how can we get it ported ? I can perhaps help, have developer skills.
The first problem is that LibreOffice Online, which CODE is based on, doesn't compile on 32-bit at the moment (see bug report here). Directions on how to build are here. No idea what other challenges lay further ahead, no one tried running it on ARM, yet.
So we have two challenges to solve,
- building LibreOffice Online and
- building CODE
?
@Blindfreddy For a working CODE on ARM platform, we would have to build LibreOffice itself, from the Collabora release branch. Then we would have to port and build LibreOffice Online to ARM (also from the Collabora release branch). After this, building a docker image would be a no-brainer.
You can try to do this yourself on master branches of LibreOffice and LibreOffice Online. Currently we (Collabora) don't plan to do this.
ok thanks - there seems to be a working LibreOffice for ARMv7 so I guess one question is how different your branch is. Additionally porting and building LibreOffice online. Not sure why both are required.... I believe there is significant demand for this so I'd like to support but would appreciate some 'hand feeding' on specifically what to do.
It is really nice to finally see some movement on this :)
I'd like to offer my help as well, I own an Odroid HC2 and would love to have online office added to my Nextcloud.
I tried some time ago to build LibreOffice using Yocto (its the only way I know to efficiently cross-compile stuff) and failed.
@timar is there any place we can find your buildscripts, including all config switches? And I guess a headless is enough, is it?
@j-be Nice to have a collaborator !!
The whole point of Collabora online is being served from a headless machine, so we shouldn't need a display. Nevertheless, I have some RPIs lying around which I could connect to a display if need be.
Hello. I got to compile LibreOffice Online for Debian armhf, using the pre-packaged LibreOffice, following essentially this guide: https://www.boniface.me/post/building-libreoffice-online-for-debian/
With some tweaks, as I said, I got it to compile, but it would crash as soon as you tried to load a document. This is the repo, in case someone is interested: https://github.com/teacupx/online-arm/tree/debian-arm
[EDIT: Remember you need a custom version of POCO, as described in the guide I linked at the beginning of this post. I also have a repo with the modified sources: https://github.com/teacupx/poco/tree/debian ]
Ok, that sounds like a pretty good start. Is there a bug report stating no document can be loaded on armhf / arm32v7 ?
Also, any chance you could compile the collabora CODE branch (refer above) using the same build environment and see if that works or reproduces the same defect ?
Is there a bug report stating no document can be loaded on armhf / arm32v7 ?
Well, I didn't bother because in the first place Libreoffice Online doesn't support ARM. The source code only includes references to i386 and x86_64. If you notice, I patched the sources to include ARM, based on an Archlinux PKGBUILD. So I assumed any bug report would be closed as "we don't support ARM". And also, right now I'm not sure whether it crashed when trying to load a document, or when loading the web interface. I did all this back in May, and I cannot remember the detalis.
Also, any chance you could compile the collabora CODE branch (refer above) using the same build environment and see if that works or reproduces the same defect ?
I don't have the build environment anymore. I don't feel like trying this until some of the LOOnline / CODE developers shows some interest in supporting ARM. Without that, I don't have the capabilities to develop it by myself. However, if you want to give it a try, the sources are there, in the repo I linked above. ARM patches are in the debian-arm branch.
@Blindfreddy For a working CODE on ARM platform, we would have to build LibreOffice itself, from the Collabora release branch. Then we would have to port and build LibreOffice Online to ARM (also from the Collabora release branch). After this, building a docker image would be a no-brainer.
You can try to do this yourself on master branches of LibreOffice and LibreOffice Online. Currently we (Collabora) don't plan to do this.
@timar Understand Collabora currently has no plans to do this, but, assuming we could build LO and port LOOL to ARM, would you support it ? Specifically, if we found some defects or had to rewrite some of the code to run on ARM, would you even accept such issues and support us in getting them fixed ? And would you support the ARM platform once we get it running ?
@timar Understand Collabora currently has no plans to do this, but, assuming we could build LO and port LOOL to ARM, would you support it ? Specifically, if we found some defects or had to rewrite some of the code to run on ARM, would you even accept such issues and support us in getting them fixed ? And would you support the ARM platform once we get it running ?
@Blindfreddy With my "LibreOffice Community" hat on: I think you should work on master branches of LibreOffice core and LibreOffice Online. You can push patches to gerrit, and they will be reviewed and merged, if they are good enough. Collabora would support ARM, if there were paying customers who demanded it. Having said that, LibreOffice Online is FLOSS, patches are welcome, and LibreOffice Community including Collabora engineers will help you on a best effort basis. Please read https://wiki.documentfoundation.org/Development about how to get involved. Thanks!
Ok thanks for the suggestions. I hope to find some time in the next few weeks.
Are there any Github milestones associated with getting Collabora CODE alongside Nextcloud for RPI3? To make it easier for a developer new to the project to identify what needs to be done
Any news????? O_o
Nope, sorry, have not had any time at all for this topic.
On 8. Jun 2019, at 12:38, jsanfe [email protected] wrote:
Any news????? O_o
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/CollaboraOnline/Docker-CODE/issues/4?email_source=notifications&email_token=ACXGCXEM7QCPHRWJRHP2DQLPZOD3LA5CNFSM4DCNVML2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXHSGIY#issuecomment-500114211, or mute the thread https://github.com/notifications/unsubscribe-auth/ACXGCXHHFVQ3NITJ6ROTOG3PZOD3LANCNFSM4DCNVMLQ.
How does it look like? Are there any news about CODE for the Raspberry Pi? Because i would also like to use it with my Raspberry Pi 3B+
just popping this up. It is getting very interesting for me in combination with nextcloud. @teacupx I could try to setup one of my RasPi4 (aarch64!) for testing. Just need detailed instructions what to do (I am not a linux dev :D)
@teacupx I could try to setup one of my RasPi4 (aarch64!) for testing. Just need detailed instructions what to do (I am not a linux dev :D)
I'm afraid the problem here is not simply the lack of arm64 hardware to test on. I, for example, have several arm64-based SBC's lying around. The problem is that somone with the necessary knowledge needs to go through the compilation process for arm64, debug the errors and fix them. This means many hours of work for someone familiar with CODE's source, and even more time for someone who is not familiar with it but is versed in programming. If we are talking about someone who does not have any developer skills, then it becomes an extremely difficult task.
I'm afraid the problem here is not simply the lack of arm64 hardware
When did this get hijacked for arm64? The issue refers to armv7.
Anyway, I think ONLYOFFICE would be the way to go now, because:
- There is work being done: ONLYOFFICE/DocumentServer/issues/152
- Nextcloud themselves seem to move more and more towards it https://nextcloud.com/onlyoffice/
There is work being done:
Well, if you follow the whole issue that you reference, the status is exactly the same as CODE: some of us got to compile it for armv7, but it segfaults when trying to open a document.
Anyway, I agree that Onlyoffice is more interesting for the Nextcloud integration. As a matter of fact, what I ended up doing is running a Onlyoffice Document Server in a x86 virtual machine on a server, and connecting to it my arm-based Nextcloud.