Experiences building LO from scratch as a "new" developer

Mike Saunders mike.saunders at documentfoundation.org
Thu Aug 3 15:10:15 UTC 2017


Hi everyone,

You may know me from doing marketing work and videos for TDF. But a
while back I was talking to some developers and we had an idea: I should
try to build LO from scratch (something I've never done before), using
our existing documentation, to find out what could be improved.

I'm pretty geeky (been using Linux since 1998, know my way around the
Bash prompt, and have written programming tutorials for magazines) so
I'm probably quite representative of a typical new LO developer.

I've described my findings below, running a fresh installation of
Xubuntu 17.04. Overall the process wasn't too complicated, although
there are some rather confusing bits, and places where we could provide
more info. Let me know what you think!


STEPS I TOOK

1. I go to Google and type "How to build LibreOffice".


2. The first hit is
https://wiki.documentfoundation.org/Development/BuildingOnLinux - so I
go there.


3. First job is build dependencies. I execute the command specified in
the bullet point:

 sudo apt-get build-dep libreoffice

An error comes up: "E: You must put some 'source' URIs in your
sources.list". I Googled the error and fixed this by checking "Source
code" in the software-properties-gtk tool

I ran the command again and it worked. It could be noted in the wiki
that it installs around 1GB of dependencies (of course that will vary
from distro to distro).


4. Next is this bullet point:

"With modern releases, use autogen to select a newer gstreamer, or
install the old package with: sudo apt install libgstreamer0.10-dev
libgstreamer-plugins-base0.10-dev"

I don't know what "modern" is here - I'm assuming my distro is modern as
it's just a few months old. But it's very vague. I click the link which
takes me to
https://wiki.documentfoundation.org/Development/Linux_Build_Dependencies#Debian
- but there's no anchor for that so I just see the top of the page

I scroll down to "Debian / Ubuntu" and run the command specified:

 sudo apt-get install git gstreamer1.0-libav libkrb5-dev nasm

In point 2 I'm told:

"To run build-dep your repository source should contain source-code
repository source"

It looks like this fixes the problem I encountered earlier, in the first
step of BuildingOnLinux, but I wasn't told until now. The wording here
is very confusing with "source" three times in one sentence - one
referring to repositories, and one to source code.

The following steps on that page just repeat what I did before as well.


5. I'm done with dependencies, so I go back to the BuildingOnLinux page.
I look again at:

 "With modern releases, use autogen to select a newer gstreamer"

But I don't know how to do that, and I can't recall using autogen to
select anything; I only installed gstreamer1.0-libav. I try entering
"autogen" but I'm told it's not installed. Looking back in
Linux_Build_Dependencies, I see "When you use autogen.sh" under the
"Older Ubuntu" section - but the previous page said "With *modern*
releases, use autogen"

So now I'm *totally confused* about when and where to use autogen, or
autogen.sh - if I should use it at all!


6. I decide to continue with the "Cloning and building" part. I run:

 git clone git://anongit.freedesktop.org/libreoffice/core libreoffice

NOTE: This requires 2.4GB of disk space - it's worth mentioning in the
wiki before the command. (I discover later that this info is buried
under "Details, Tips, Tricks and Hints" further down the page, but IMO
it should be higher.)

I'm assuming this is the master (very latest) LibreOffice source code,
but it could also be from the latest stable release. Might be good to
clarify this here.


7. Next, I cd into libreoffice and then I see the autogen.sh command in
the instructions - which I'm assuming is what was mentioned before. So I
run this, and it appears to work fine.


8. Then I run "make" which starts downloading more stuff from the
internet. It's probably worth mentioning this, for devs who want to work
offline or when travelling, and assume they don't need net access after
the "git clone" bit.

Question: does parallel make (eg "make -j 2") have any effect here on
multi-core systems?

Thought: it would be useful to have some rough benchmarks for how long
the build process takes. eg "Dual-core Intel i5 2.4GHz: around X hours".
It doesn't need to be very specific, but it should give new developers a
rough indication.

It has been building for a few hours now, so I thought I'd post this
instead of waiting further. My next task is to fix a minor bug (or
translate some German comments), and submit a patch, to see how that
process works.

-- 
Mike Saunders, Marketing & PR
The Document Foundation


More information about the LibreOffice mailing list