Collabora Online Weekly Meeting #6

Collabora Online Weekly Meeting #6

Date: Dec 17, 2020

Next meeting: Jan 07, 2021

Attendees: Muhammet, Pedro, Nicolas Christener, Ezinne, Aron, Gabriel Masei, Michael Meeks, Cor, Mert, Andreas Kainz, Kendy, Gökay, Tor, Andras, Pranam, Szymon, Shubham Goyal,


Agenda Suggestions:

  • Some topic or important matter to be discussed (Your Name and Surname)

    • More details about the topic

    • github…

  • Next meeting? Not 24th or 31st Christmas break? (Kara)

    • Next meeting the 7th …

Quick update (Muhammet)

CSV handling (Pedro)

  • AI: add “Download CSV” -> go for it (Pedro)

    • created an easy-hack for this #1020

    • and Rizal accepted creating an icon already – which is great.

    • Hope to get to it next year.

Template Contest (Nicolas)

Managing templates in Online (Andreas K)

  • Why does COOL use another template by default than core LibreOffice (Andreas K)

    • when you open a new document in COOL, you don’t have the default LibO template

    • It is some other template.

    • It is because the LibreOffice template is totally hard-coded (Kendy)

      • while for COOL – defined by the integration:

      • Nextcloud has a set of default templates for creating new documents.

      • In core – it’s all hard-coded, in ours it has to be defined by external entity

      • some improvements here: the documents that are used now

      • We’ve improved these to make them minimal – so language etc. comes from the core

    • Writer has three templates: Default, Modern, something-else (Andreas K)

      • could use these in COOL

      • Default: making two paragraphs – no space between them, which is uglier.

        • Would be nice to improve those.
    • Is there git submodules magic ? Template repo to build for that ? (Michael)

      • we need to tweak the templates to remove language bits ourselves.

      • Also done for the core templates (Andreas K)

      • who should do what ? (Michael)

        • NC needs to store things in richdocuments (Kendy)

          • not a big fan of git submodules

          • perhaps the best – to create an issue against richdocuments
            and CC Julius against that – what are his ideas.

          • Does he know how we can add more provided by COOL in addition to the internal templates ?

            • We could serve them some way – with an end-point to expose those?
        • One note – making language agnostic templates (Andreas)

          • we use very minimal ODF files, created outside of LibreOffice

          • the minimal valid ODF skeleton – no reference to lang/locale

            • which then gets current lang/locale.
          • Previously had German templates in richdocuments – and all
            started with German spell-checking number formats etc.

            • ok for me (Andreas K)
  • A note → sounds painful modifying templates to be minimal (AronB)

    • could we find out what it takes to export language/locale agnostic templates ?

    • Would be cool (Andreas K)

      • would help core & the template contest.

      • Perhaps an XLST filter might do this (.fott → XLST – remove locale bits)

Blog about iOS / Android improvements (Nicolas)

Toolbar changes (Pedro)

  • Opened an issue with UI changes

    • several of Andreas’ patches are merged already.

    • Reviewed & commented on some things

      • some useful discussion in Telgram about it.

Contextual toolbars (Andreas K)

  • Explained in telegram channel – NC use the Notebookbar now.

Dynamic changes of Toolbar type (Gabriel)

  • Managed to get some results / seems to be working

  • Need to solve some small issues; overall it works.

  • Plan to submit the patch to github, ideally before Friday end of day.

  • Feature won’t be exposed to the UI

    • don’t know whether to expose something in the UI
  • would be useful to have a button for it (Kendy)

    • ideally if the state of the button can be preserved across sessions.

    • where to store that needs further thought.

    • Maybe can do it in another way (Szymon)

      • so the integrator remembers this for the user ? So we know the value early.
  • Not a fan of providing a user-option for this (Tor)

    • this way lies madness; agree (Nicolas, Pedro)
  • Do it in a way – not C’bra Online’s problem (Kendy)

    • done via post-messages; a button you add – via a PostMessage if you have this functionality.
  • Conclusion → not to add the UX pieces (Gabriel)

    • hard to test …

    • perhaps this belongs in the the 4th test listed (Michael)

      • in ‘make run’ – the framed.html

      • we could defer loading the iframe, and do a JS post there

Bind Mounting / Hard-linking (Michael)

  • started looking at this – some improvements to bind-mount more aggressively

    • when /etc_/_resolve.conf is re-written but theame can still bind mount.
  • Hard-linking an issue with ownership of the files having to be owned by the lool user

    • solved that with slow start (Gabriel)

      • resolve.conf – can be solved without copying.

      • changed the user from lool → root …

        • are inter-twined.
      • The copy should be performed when the container starts

      • disabled bind mounting

      • Do the copy, and then change user in the container.

      • Have a separate exec with chowner capability.

      • Could be solved by moving this stuff inside loolwsd.

      • Need to know – at this point if bind mounting is disabled.

      • If it works or not; not so straight forward.

  • If hard-linking (Michael)

    • ownership is in the inode.

    • Then copy → copying quite a lot of data …

  • Reducing copy volume (Ash did it)

    • Dictionaries → big chunk of this, already load them → not needed in the jail.

    • Fonts → mmap in advance before we fork → don’t need them in the jail.

    • Ash has a patch to turn off python libraries … → 30Mb

  • Copying is very fast (Gabriel)

    • the ‘cp’ command executed – inside a container, does only hard-linking.

    • Need to change user-id as you chroot to avoid access to files (Michael)

    • hard-linking is not so fast on Docker (Kendy)

      • one of the stacked file-systems is very slow when hard-linking

      • doesn’t do copy-on-write, but copies the files 1st.

      • We know this issue with overlay2 (Gabriel)

    • Could we call ‘setuid’ and have a ‘loolforkit’ vs. ‘lool’ pair of users (Michael)

      • loolforkit owns the files, and can hard-link jails & we setuid to lool after the fork?

      • Would setfsuid ? …

  • What really works is ‘fork’ (Michael)

    • we have very safe copy-on-write, so mmap then fork is preferred

      • with smaller jails.

Where do minutes go ? (Gabriel)

  • can you send them out via E-mail ?

  • Currently we mail it internally (Muhammet) – and share in weekly roundups

    • probably we do need a mailing list (Michael)

    • mostly for minutes & important announcements (Gabriel)

    • It is possible to have mails from the forum ? (Kendy)

      • can we just publish it on the forums – and opt-in via E-mail.
    • AI: check options (Muhammet)

CanvasTileLayer bits

  • Lots of progress (Gokay)

    • now working on drawing row/column headers on the same canvas with the tiles.

    • Hope to be finished soon.

  • Zooming work is pending from Dennis

    • profiling ongoing.
  • Hopefully getting closer to getting rid of Leaflet’s tile layer.

Icon theming (css class names) (Kendy)

  • AI: setup a call to sort it out Kendy, Pedro, Andreas K (Pedro)

    • tried to set it up rather late, supposed to have it today.

    • Lets ask Andreas about his holiday plans (Pedro)

Pivot bits (Szymon)

  • Finished all the sub-dialogs to theme them

  • Added statistical functions dialogs

  • Define name bits in there too

  • Want to finish dragging of dialogs on tablets to make that work.

three new pull requests (MKara)

Help / getting setup ?

  • All questions / comments welcome here – or on IRC / Telegram etc. ?

    • Ping MKara any time for help / if stuck.

Next Meeting

Next meeting will take place on Thursday, January 07, 2021 at 11:00 am (UTC)