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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collabora #308151

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from
Draft

Collabora #308151

wants to merge 8 commits into from

Conversation

EricTheMagician
Copy link
Contributor

@EricTheMagician EricTheMagician commented May 1, 2024

Description of changes

Started adding collabora online.
Built-it, but couldn't get the runtime configuration working.

Currently, lots of things wrong with this PR.
This is a work in progress to resolve #218878 (comment)

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 馃憤 reaction to pull requests you find important.

@EricTheMagician
Copy link
Contributor Author

I think I just need to build a chroot environment with buildFHSEnv but I didn't know about buildFHSEnv at the time. What I'm not sure about is that it may need to build a minimal environment from the cool executables, but I haven't gotten that far.

Also, I don't fully understand what I was doing, so part of it was just getting it to ocmpile.
I don't know if I missed any flags that I was supposed to add, but I followed the instructions as closely as possible.

@drupol
Copy link
Contributor

drupol commented May 1, 2024

Maybe @Minion3665 might be interested.

@Minion3665
Copy link
Member

Thanks for the ping @drupol, I certainly am!

I've worked on getting Collabora packaged outside buildFHSEnv, but not quite got to the state where it worked enough for me to upstream it.

@EricTheMagician please let me know if I can help in any way, I am employed by Collabora as a developer so have some experience in compiling it, knowledge of the architecture, etc.

@EricTheMagician
Copy link
Contributor Author

Thanks for the ping @drupol, I certainly am!

I've worked on getting Collabora packaged outside buildFHSEnv, but not quite got to the state where it worked enough for me to upstream it.

@EricTheMagician please let me know if I can help in any way, I am employed by Collabora as a developer so have some experience in compiling it, knowledge of the architecture, etc.

Oh awesome!

Thanks @Minion3665
Compiling it was a bit of a challenge because finding the correct tag was not clear, but I was able to get past that.

Where I was having issue is with the runtime (because I didn't want to just package it without the nixos module).

@Minion3665 The actual issue I came across is that collabora expects to run an each tab/window process in a chroot environment and I couldn't get past that. It's been a while since I've really sunk my teeth in it, but I'll see what I can find. It's probably that I am still learning to do things the nix way and I'll ask more questions in the next few weeks.

@Minion3665
Copy link
Member

Minion3665 commented May 8, 2024

The actual issue I came across is that collabora expects to run an each tab/window process in a chroot environment and I couldn't get past that

This was a problem I ran up against as well. Unfortunately, I think we shouldn't try to disable this, Collabora Online expects this for security reasons. The approach I was trying before was to make a NixOS module with some security wrappers to give COOL the capabilities it wants. I think I got into some trouble with trying to force COOL to use a wrapped coolmount binary around this point and never got it working, but it was definitely the most promising approach I have seen...

because I didn't want to just package it without the nixos module

...and yes, so I think if you did package it without the module you would end up finding it still very challenging to make it run. The module is definitely a good approach.

@Atemu
Copy link
Member

Atemu commented May 24, 2024

I think I just need to build a chroot environment with buildFHSEnv

Could you elaborate on why? If it's packaged natively, you shouldn't require any such hacks.

The actual issue I came across is that collabora expects to run an each tab/window process in a chroot environment

Could it perhaps be possible to run each as a systemd service instance?

Similar to how systemd-coredumpd creates i.e. systemd-coredump@7-1086852-0.services.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Package request: Collabora Online Development Edition & Nextcloud support
5 participants