Rather soon we will be releasing LibreOffice 4.1—currently we're in
a Beta phase of that, and we appreciate people getting stuck in and helping
with testing. You can download builds from here pre-releases or
if you like some up-to-the-hour builds from
dev-builds.
We're still building our list of features and credits. We have a
number of new visible
features of course with credits against them. Cor has made a pair of beautiful
blog entries highlighting UI improvement and the Photo Album features in 4.1.
That made me think of the many developers who
have been working extremely hard on things that are under the covers and not
so easily seen, but are still really important. I'd like to explain just some
highlights of that here, (crediting the developers' employer where there is one at
the first mention). Often these are tasks that are easy to get involved with,
and may seem trivial in isolation but cumulatively add up to a code-base that is
far easier to understand and to contribute to.
Build system: configure / make
One of the tasks that most irritates and has distracted new developers
from doing interesting feature work on the code-base over many years has been
our build system.
At the start of LibreOffice, there was an incomplete transition to using GNU
make, which required us to use both the horrible old dmake tool as well as
gnumake, with configure using a Perl script to generate a shell script
configuring a set of environment variables that had to be sourced into your
shell in order to compile (making it impossible to re-configure
from that shell), with a Perl build script that batched compilation with two
layers of parallelism, forcing you to over- or undercommit on any modern
builder; it looked something like this:
# old and awful
autoconf
./configure --enable-this-and-that
source LinuxIntelEnv.Set.sh
./bootstrap
cd instsetoo_native
build --all
Thanks to the stirling efforts Björn Michaelsen (Canonical), David Tardon (Red Hat),
Peter Foley, Norbert Thiebaud, Michael Stahl (Red Hat), Matúš Kukan,
Tor Lillqvist (SUSE), Stephan Bergmann (Red Hat), Luboš Luňák (SUSE),
Caolán McNamara (Red Hat), Mathias Bauer (Oracle), Jan Holesovsky (SUSE),
Andras Timar (SUSE), David Ostrovsky, Hans-Joachim Lankenau (Oracle)
and more—(more details) the
126 thousand targets, and 1700 makefiles are now fully converted to GNU make
so we have the significantly simpler:
# LibreOffice configure & make as of now:
./autogen.sh --enable-this-and-that
make
No shell pollution, no 'bootstrap' script, no Perl build wrapper, no
obsolete 'dmake' required, just plain GNU make files—and incredible build
parallelism—after generating headers, we could utilize a thousand CPUs.
This is a clean-cut task with a clear boundary; like the process of removing
dead code in previous releases, it is now complete—freeing up developers
for more interesting things.
Build system: make dev-install
LibreOffice, in contrast to much other software, is fully
relocateable—you can plonk it down where you like, and run it from there.
As such we use a
make …