More Open-Source Software History

Bash

In the beginning was the Bourne shell, /bin/sh, written by Stephen Bourne at Bell Labs in 1979, as part of Unix. Then there was the csh, or "c shell", that was part of BSD. David Korn significantly improved sh in 1983; this shell was known as ksh. Getting code for it, however, was difficult.

Bash stands for "Bourne-again shell", and represents the incorporation of many shell improvements that is compatible with sh. It was written by Brian Fox in 1989.

In 2014 a serious security vulnerability was found in bash, dubbed "shellshock". Bash supports the definition of functions. It turned out that if commands were included after the function definition, they would be executed as well.

Bash supports all the basics: command arguments, file redirection, pipelines, background processing, shell variables and filename globbing (using *.foo to find all files with extension "foo", for example). Traditional shell-scripting control structures such as if, while and test are also included. Newer features include tilde expansion (~/ is a synonym for ones home directory), job control, process substitution, inline arithmetic, command history and the $( ... ) format for converting command output into command-line data (as in for i in $(ls *.c); do gcc $i; done ).

Bash was a core project for the Free Software Foundation.

The Bourne shell executed commands in ~/.profile on startup. Since bash has some incompatible features, it executes ~/.bash_profile if it exists (and then not .profile).

Bash is not a GUI program. The window that runs bash is a separate program (typically gnome-terminal or xterm).

LibreOffice

LibreOffice is the word processor / spreadsheet / etc package of the open-source world. It currently is managed by the Document Foundation. Components include:

The history starts with StarWriter, written in 1985 for Z-80 systems (like the TRS-80) running CP/M, a predecessor to MS-DOS. StarWriter was a commercial project; it competed with WordPerfect. StarWriter for MS-DOS was released in 1986, the same year the company itself became StarDivision. In 1994 a spreadsheet and database were added, and the combo became StarOffice (or maybe the StarOffice name was used earlier; sources differ). In 1996, Linux versions were released.

But the word-processing market had by 1996 pretty much evaporated, except for Microsoft Word. In 1998, Star Division began offering StarOffice for free (it is not clear whether it was offered as open source).

Sun Microsystems bought the rights (perhaps the entire company) in 1999, for $70 million. In 2000 Sun began distributing StarOffice for free for "personal use". Shortly thereafter Sun released most of the source code as OpenOffice.org (sometimes "OOo"). Sun took OpenOffice code contributions and integrated them into StarOffice, which remained a proprietary product for commercial users. OpenOffice contributors had to sign a "contributor agreement" agreeing to this. Sun added its own proprietary extensions to StarOffice. OpenOffice 1.0 was released in 2002.

At various points in its history, the project was described as an MS-Office "clone", or at least as an MS-Word clone. This was never strictly true, though early versions of MS Word bears a strong resemblance.

OpenOffice saw significant further development through 2010. In 2005 the new XML-based OpenDocument standards were made the default OpenOffice formats (.odt, .ods), with OO version 2.0.

In 2010, Oracle bought Sun, and thus acquired OpenOffice (making it OOOo?). Oracle continued to support the product but at a greatly diminished scale, and by the end of 2010 most developers had left to found The Document Foundation, which forked OpenOffice to LibreOffice. The first version of LibreOffice was released in January 2011, and by April Oracle had fired the last of its OpenOffice developers. In June, all the Open Office code and trademarks were turned over to the Apache Foundation. Work on Apache OpenOffice (AOO) is actually continuing, though LibreOffice clearly has the majority mindshare.

Somewhere around 2002 a Mac-specific fork split off that became known as NeoOffice. One can, of course, also get LibreOffice for the Mac.

Favorite bugs:

Here's where I should report them:

bugs.documentfoundation.org

Open-source projects have some notoriety for weak user interfaces. But LibreOffice has well-thought-out standards. See, for example, wiki.documentfoundation.org/Design, and, in particular, wiki.documentfoundation.org/Design/MenuBar.

Building LibreOffice

Some LibreOffice sites:


Build instructions:

Steps:
1. apt-get build-dep libreoffice

    This resulted in a warning about how the phonon backend was only a stub.

2. apt-get install phonon-backend-gstreamer

git clone git://gerrit.libreoffice.org/core libreoffice
cd libreoffice
./autogen.sh

This resulted in an error about libkrb5 (Kerberos 5) being missing:

    apt-get install libkrb5-dev

The next message was a warning that JAVA_HOME was not set. I tried these, but they did not work:

JAVA_HOME=/usr/lib/jvm/default-java
export JAVA_HOME

Next time I will try:
    ./autogen.sh --with-jdk-home=$JAVA_HOME

Now it was time for:

make

This took ~12 hours.

To run:

instdir/program/soffice

After running make, the libreoffice directory took up about 12 GB.

And finally

blogs.igalia.com/jaragunde/files/2014/11/libreoffice-architecture-a11y-qa.pdf