[Open Office] Internal quickstarter

Giuseppe Ghibò ghibo at mandriva.com
Sun Mar 5 14:04:23 EST 2006


I tried to build 2.0.2m5 using --disable-quickstart.
As result instead of the BASH wrapper ooffice2.0:

----------------------------------
#!/bin/sh
export OOO_EXTRA_ARG='$2'
$OOINSTBASE/program/ooqstart "\$@"
----------------------------------

the perl one is used:

----------------------------------------------
#!/usr/bin/perl -w
#
# ooffice - Wrapper script for OpenOffice.org
#

# Define system installation directory
my $SystemInstallDir = '/usr/lib/ooo-2.0';
# Suffix for parallel installable versioning
my $BinSuffix = '2.0';
# ooo-build version
my $OOO_BUILDVERSION = 'oob680.5.0';

if ($SystemInstallDir =~ /^@/) {
     $SystemInstallDir = '/usr/lib/ooo-2.0';
     $BinSuffix = '';
}

my $Binary = 'soffice';
if (-x "$SystemInstallDir/program/ooqstart") {
     $Binary = 'ooqstart';
}
....
-----------------------------------------------

and also the <ooo-instdir>/program/ooqstart is built anyway.
Infact the perl wrapper will call oooqstart it if it's found.
This might be good if one decide to package the
<ooo-instdir>/program/ooqstart in a standalone sub
package (so to have the <ooo-instdir>/program/soffice fallback)
and behaviour can be tuned installing or not installing this subpackage
(on the other hand IMHO the overhead of calling #!/bin/perl
instead of #!/bin/bash should be minimal).

What I also wonder is this. Does using --disable-quickstart
ooo-build option, affects also the rest of OOo building
(e.g. VCL, etc.) or just the choice
of the wrapper? Because if it would affect only the wrapper, I
would like to move these files:

program/libqstart_gtk680li.so
program/ooqstart
share/xdg/qstart.desktop

from common_list.txt to oooqstart_list.txt? Petr, it's OK if I apply this
to package-ooo?

--------------------------------------------------------------------
Speaking of performance, I also retried ooqstart (but built
using --disable-quickstart) on a slower machine (Celeron 1300)
and here were the results:

starting ooo with ooqstart (bash wrapper):
000003 1 | : PERFORMANCE - enter Main()
003305 1 | : PERFORMANCE - enter Application::Execute()
003306 1 { PERFORMANCE - DesktopOpenClients_Impl()
003321 1 { PERFORMANCE - Desktop::loadComponentFromURL()
005500 1 } PERFORMANCE - Desktop::loadComponentFromURL()
005531 1 } PERFORMANCE - DesktopOpenClients_Impl()

starting ooo with perl wrapper (but it calls <oooinstdir>/program/soffice):

000003 1 | : PERFORMANCE - enter Main()
004040 1 | : PERFORMANCE - enter Application::Execute()
004041 1 { PERFORMANCE - DesktopOpenClients_Impl()
004046 1 } PERFORMANCE - DesktopOpenClients_Impl()

So it seems the oooqstart one initially starts faster but then spent
2 seconds on Desktop::loadComponentFromURL(), which make the ooqstart slower.
What exactly is doing Desktop::loadComponentFromURL()?
BTW, I also just found that to start OOo with ooqstart
and leave it in the background, this command sequence should be used:

ooffice2.0 -quickstart -nologo -nodefault

and then

oowriter2.0 would start in around 2.0 seconds (exporting RTL_LOGFILE=...
has no effect when the second oowriter2.0 is called). But after oowriter2.0
is closed also the first instance of the background
ooffice2.0 -quickstart -nologo -nodefault is terminated too.

Thanks.
Bye.
Giuseppe.


More information about the Openoffice mailing list