From 25493fc80c9e50a290c009617044b4dcbbdafbfd Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Fri, 7 Jul 2017 12:29:27 -0400 Subject: [PATCH] Proofreading; turn off draft mode ready to commit live --- .../building-libreoffice-online-for-debian.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/content/post/building-libreoffice-online-for-debian.md b/content/post/building-libreoffice-online-for-debian.md index d6439e1..a209e73 100644 --- a/content/post/building-libreoffice-online-for-debian.md +++ b/content/post/building-libreoffice-online-for-debian.md @@ -6,7 +6,7 @@ date = "2017-07-06T22:44:53-04:00" title = "Building LibreOffice Online for Debian" type = "post" weight = 1 -draft = true +draft = false +++ @@ -18,6 +18,13 @@ This however was no small task - there's precious little usable information in a As mentioned briefly above, my philosophy in BLSE2 is "use a package" - this is a core feature of Debian, and one of the most solid examples of quality forethought in design in the Free Software world. By separating applications from their libraries, you keep security updates easy and with minimal administrative work. As such, I always choose to build a package if I can, and luckily with LibreOffice Online I can. And it's right there in the repo! A huge win in my mind, especially considering my initial fear of a program distributed as a Docker Image [re-re-asside: poor dependency lifecycle management and monolithic software bundles - another reason I hate Docker; but I digress]. As this is a brand-new project and I'm a keen `dist-upgrade`er, I've gone with the brand-new Stretch (9.0) release in the `amd64` arch - you should probably be running the same, but 32-bit will work too. +``` +$ cat /etc/debian_version +9.0 +$ uname -a +Linux libreoffice-online 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u2 (2017-06-26) x86_64 GNU/Linux +``` + So without further ado, here's how to build LibreOffice Online on Debian Stretch! ## Installing the [Easy] Dependencies @@ -25,8 +32,8 @@ So without further ado, here's how to build LibreOffice Online on Debian Stretch The `m-jowlett` guide lists a couple of dependencies: `libpng12-dev`, `libcap-dev`, `libtool`, `m4`, and `automake`, and I'll add in `fakeroot`, `debhelper`, `dh-systemd`, and the `build-essential` metapackage to build the Debian packages, as well as `unixodbc-dev` which is required by the POCO build process below. The only one to cause problems in Stretch is `libpng12-dev`: you need the `libpng-dev` package instead, which installs `libpng16-dev`. The version bump doesn't seem to affect anything negatively, however. And of course, we need the full `libreoffice` suite and it's build-deps installed as well, `python-polib`, `nodejs-legacy` and `node-jake` to grab some modules during the build, as well as `libghc-zlib-bindings-dev` and `libghc-zlib-dev` which pulls in `ghc`. ``` -apt install libpng-dev libcap-dev libtool m4 automake fakeroot debhelper dh-systemd build-essential unixodbc-dev libreoffice python-polib nodejs-legacy node-jake libghc-zlib-bindings-dev libghc-zlib-dev -apt build-dep libreoffice +$ sudo apt install libpng-dev libcap-dev libtool m4 automake fakeroot debhelper dh-systemd build-essential unixodbc-dev libreoffice python-polib nodejs-legacy node-jake libghc-zlib-bindings-dev libghc-zlib-dev +$ sudo apt build-dep libreoffice ``` ## Building POCO @@ -162,7 +169,7 @@ We now have a working set of POCO libraries and can now begin building LibreOffi ## Building LibreOffice Online -Once the dependencies are in place building the LibreOffice Online package itself is actually fairly straightforward - the repo contains a working `debian` folder. +Once the dependencies are in place building the LibreOffice Online package itself is actually fairly straightforward - the repo contains a working `debian` folder, though it too requires some tweaking to work properly. Begin by making a separate directory, and cloning the git repo; I'm using version 2.1.2 as it's the latest stable one at the time of writing. Note that because the LibreOffice Online devs use tags, we have to actually `cd` into and `git checkout` the right version _before_ we proceed. Then, as we did for POCO, make a `tar` archive for the package build to use containing the source before we start editing anything.