summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2011-05-27 20:39:04 +0200
committerJan Holesovsky <kendy@suse.cz>2011-05-27 20:39:04 +0200
commitca907e02205e8e99e28608ddfe7bdaca24f23aa4 (patch)
treeafdf8fb6a8aef6920ad0f658bdad85c419e0c43e
parent817da75b0809642d68b3cab35a1a9348139e9321 (diff)
parent35c884841001c6367d428db8e4407afc4d5077ca (diff)
Merge remote-tracking branch 'origin/integration/dev300_m106'
Conflicts: Makefile.in Repository.mk autogen.sh bin/lo-commit-stat configure.in distro-configs/LibreOfficeOpenBSD.conf distro-configs/LibreOfficeWin32.conf instsetoo_native/util/openoffice.lst ooo.lst.in scp2/source/ooo/module_langpack.ulf set_soenv.in solenv/bin/ooinstall solenv/gbuild/CppunitTest.mk solenv/gbuild/Library.mk solenv/gbuild/LinkTarget.mk solenv/gbuild/TargetLocations.mk solenv/gbuild/platform/macosx.mk solenv/gbuild/platform/solaris.mk solenv/gbuild/platform/unxgcc.mk solenv/gbuild/platform/windows.mk solenv/inc/minor.mk solenv/inc/settings.mk tail_build/prj/makefile.mk
-rw-r--r--.gitignore9
-rw-r--r--Makefile.in11
-rwxr-xr-x[-rw-r--r--]Repository.mk13
-rwxr-xr-x[-rw-r--r--]RepositoryFixes.mk6
-rwxr-xr-xautogen.sh18
-rwxr-xr-xbin/lo-pack-sources651
-rwxr-xr-xconfigure.in354
-rwxr-xr-xdownload23
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt1
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt1
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt1
-rw-r--r--instsetoo_native/util/openoffice.lst16
-rw-r--r--ooo.lst.in12
-rw-r--r--scp2/source/accessories/module_samples_accessories.ulf14
-rw-r--r--scp2/source/accessories/module_templates_accessories.ulf14
-rw-r--r--[-rwxr-xr-x]scp2/source/base/registryitem_base.scp0
-rw-r--r--[-rwxr-xr-x]scp2/source/calc/registryitem_calc.scp0
-rw-r--r--[-rwxr-xr-x]scp2/source/canvas/mtfrenderer.scp0
-rw-r--r--[-rwxr-xr-x]scp2/source/draw/registryitem_draw.scp0
-rw-r--r--scp2/source/extensions/module_extensions_lightproof.ulf14
-rw-r--r--scp2/source/extensions/module_extensions_sun_templates.ulf14
-rw-r--r--[-rwxr-xr-x]scp2/source/impress/registryitem_impress.scp0
-rw-r--r--[-rwxr-xr-x]scp2/source/ooo/directory_ooo_macosx.scp0
-rw-r--r--[-rwxr-xr-x]scp2/source/ooo/file_library_ooo.scp158
-rw-r--r--scp2/source/ooo/file_ooo.scp1
-rw-r--r--scp2/source/ooo/makefile.mk32
-rw-r--r--scp2/source/ooo/module_helppack.ulf8
-rw-r--r--scp2/source/ooo/module_hidden_ooo.scp28
-rw-r--r--[-rwxr-xr-x]scp2/source/ooo/module_lang_template.scp0
-rw-r--r--scp2/source/ooo/module_langpack.ulf14
-rw-r--r--scp2/source/ooo/shortcut_ooo.scp7
-rw-r--r--[-rwxr-xr-x]scp2/source/ooo/ure.scp0
-rw-r--r--[-rwxr-xr-x]scp2/source/ooo/ure_into_ooo.scp0
-rw-r--r--[-rwxr-xr-x]scp2/source/ooo/ure_standalone.scp0
-rw-r--r--[-rwxr-xr-x]scp2/source/ooo/windowscustomaction_ooo.scp32
-rw-r--r--[-rwxr-xr-x]scp2/source/writer/registryitem_writer.scp0
-rwxr-xr-xset_soenv.in27
-rwxr-xr-xsolenv/bin/checkdll.sh2
-rw-r--r--solenv/bin/macosx-change-install-names.pl20
-rw-r--r--solenv/bin/modules/installer/globals.pm7
-rw-r--r--solenv/bin/modules/installer/parameter.pm1
-rw-r--r--solenv/bin/modules/installer/systemactions.pm2
-rw-r--r--solenv/bin/modules/installer/windows/file.pm12
-rw-r--r--solenv/bin/modules/installer/windows/idtglobal.pm3
-rw-r--r--solenv/bin/modules/installer/windows/msp.pm197
-rw-r--r--solenv/bin/modules/installer/windows/property.pm6
-rw-r--r--solenv/bin/modules/installer/windows/registry.pm76
-rw-r--r--solenv/bin/modules/installer/worker.pm6
-rwxr-xr-xsolenv/bin/ooinstall26
-rw-r--r--solenv/gbuild/ComponentTarget.mk10
-rw-r--r--solenv/gbuild/Library.mk7
-rw-r--r--solenv/gbuild/LinkTarget.mk3
-rwxr-xr-x[-rw-r--r--]solenv/gbuild/TargetLocations.mk2
-rw-r--r--solenv/gbuild/WinResTarget.mk70
-rwxr-xr-xsolenv/gbuild/filter-showIncludes.pl62
-rw-r--r--solenv/gbuild/gbuild.mk1
-rw-r--r--solenv/gbuild/platform/macosx.mk4
-rw-r--r--solenv/gbuild/platform/solaris.mk13
-rw-r--r--solenv/gbuild/platform/unxgcc.mk4
-rw-r--r--solenv/gbuild/platform/windows.mk190
-rw-r--r--solenv/gbuild/platform/winmingw.mk69
-rw-r--r--solenv/inc/langlist.mk1
-rw-r--r--solenv/inc/minor.mk6
-rw-r--r--solenv/inc/settings.mk4
64 files changed, 2017 insertions, 266 deletions
diff --git a/.gitignore b/.gitignore
index bdc4858d0db7..d82ad755e3fa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,7 +50,6 @@
/bin/repo-list
/src.downloaded
/ooo.lst
-/instsetoo_native/*
# misc
/set_soenv.last
@@ -131,6 +130,9 @@
/formula
/fpicker
/framework
+/gdk-pixbuf
+/gettext
+/glib
/graphite
/helpcontent2
/hsqldb
@@ -154,7 +156,11 @@
/l10n
/l10ntools
/languagetool
+/libcroco
/libegg
+/libgsf
+/libpng
+/librsvg
/libtextcat
/libvisio
/libwpd
@@ -191,6 +197,7 @@
/package
/packimages
/padmin
+/pango
/postprocess
/psprint_config
/python
diff --git a/Makefile.in b/Makefile.in
index 7c9477f58cb8..c1d911d32cc9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -8,19 +8,22 @@ else
GBUILD_OPT:=--gmake
endif
-all: Makefile dmake/dmake@EXEEXT_FOR_BUILD@ src.downloaded
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+libdir = @libdir@
+all: Makefile dmake/dmake@EXEEXT_FOR_BUILD@ src.downloaded
@. ./*Env.Set.sh && \
cd instsetoo_native && \
build.pl $(GBUILD_OPT) -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@
install:
@. ./*Env.Set.sh && \
- echo "Installing in $${prefix:-@prefix@}..." && \
- ooinstall "$${prefix:-@prefix@}" && \
+ echo "Installing in $${libdir:-@libdir@}/@INSTALL_DIRNAME@..." && \
+ ooinstall "$${libdir:-@libdir@}/@INSTALL_DIRNAME@" && \
echo "" && \
echo "Installation finished, you can now execute:" && \
- echo "$${prefix:-@prefix@}/program/soffice"
+ echo "$${libdir:-@libdir@}/@INSTALL_DIRNAME@/program/soffice"
dev-install:
@. ./*Env.Set.sh && \
diff --git a/Repository.mk b/Repository.mk
index 3609e71f90a7..0afca0dca6ae 100644..100755
--- a/Repository.mk
+++ b/Repository.mk
@@ -43,8 +43,10 @@ $(eval $(call gb_Helper_register_executables,OOO, \
$(eval $(call gb_Helper_register_libraries,OOOLIBS, \
adabasui \
+ AppleRemote \
avmedia \
basegfx \
+ basebmp \
canvastools \
chartcontroller \
chartmodel \
@@ -57,6 +59,7 @@ $(eval $(call gb_Helper_register_libraries,OOOLIBS, \
dbmm \
dbtools \
dbu \
+ desktop_detector \
doctok \
drawinglayer \
editeng \
@@ -111,6 +114,11 @@ $(eval $(call gb_Helper_register_libraries,OOOLIBS, \
utl \
vbahelper \
vcl \
+ vclplug_gen \
+ vclplug_gtk \
+ vclplug_kde \
+ vclplug_kde4 \
+ vclplug_svp \
writerfilter \
xcr \
xo \
@@ -129,6 +137,9 @@ $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
icui18n \
icule \
icuuc \
+ icule \
+ graphite_dll \
+ cppunit \
rdf \
ssl \
xslt \
@@ -139,6 +150,7 @@ $(eval $(call gb_Helper_register_libraries,RTLIBS, \
comphelper \
i18nisolang1 \
i18nutil \
+ jvmaccess \
ucbhelper \
))
@@ -170,6 +182,7 @@ $(eval $(call gb_Helper_register_libraries,UNOVERLIBS, \
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
crypto \
+ graphite2_off \
libeay32 \
ssleay32 \
jpeglib \
diff --git a/RepositoryFixes.mk b/RepositoryFixes.mk
index f56313869d82..2e7be72f73ca 100644..100755
--- a/RepositoryFixes.mk
+++ b/RepositoryFixes.mk
@@ -109,9 +109,14 @@ gb_Library_FILENAMES := $(patsubst z:iz%,z:zlib%,$(gb_Library_FILENAMES))
gb_Library_NOILIBFILENAMES:=\
advapi32 \
gdi32 \
+ gdiplus \
+ graphite_dll \
gnu_getopt \
icuuc \
+ icule \
+ imm32\
kernel32 \
+ msimg32 \
msvcrt \
msvcprt \
mpr \
@@ -125,6 +130,7 @@ gb_Library_NOILIBFILENAMES:=\
user32 \
uuid \
uwinapi \
+ winspool \
gb_Library_FILENAMES := $(filter-out $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):%),$(gb_Library_FILENAMES))
gb_Library_FILENAMES += $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):$(lib)$(gb_Library_PLAINEXT))
diff --git a/autogen.sh b/autogen.sh
index 7d57e13203f9..444d970e51d9 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -44,20 +44,19 @@ sub read_args($)
sub invalid_distro($$)
{
my ($config, $distro) = @_;
- print STDERR "can't find distro option set: $config\n";
- print STDERR "valid values are:\n";
+ print STDERR "Can't find distro option set: $config\nThis is not necessarily a problem.\n";
+ print STDERR "Distros with distro option sets are:\n";
my $dirh;
opendir ($dirh, "distro-configs");
- while (readdir ($dirh)) {
+ while (($_ = readdir ($dirh))) {
/(.*)\.conf$/ || next;
print STDERR "\t$1\n";
}
closedir ($dirh);
- exit (1);
}
my @cmdline_args = ();
-if (@ARGV == 0) {
+if (!@ARGV) {
my $lastrun = "autogen.lastrun";
@cmdline_args = read_args ($lastrun) if (-f $lastrun);
} else {
@@ -72,8 +71,9 @@ for my $arg (@cmdline_args) {
my $config = "distro-configs/$1.conf";
if (! -f $config) {
invalid_distro ($config, $1);
- }
- push @args, read_args ($config);
+ } else {
+ push @args, read_args ($config);
+ }
} else {
push @args, $arg;
}
@@ -98,8 +98,8 @@ die "failed to generate configure" if (! -x "configure");
if (defined $ENV{NOCONFIGURE}) {
print "Skipping configure process.";
} else {
- if (@ARGV > 0) {
- print "writing args to autogen.lastrun\n";
+ if ($#cmdline_args > 0) {
+# print "writing args to autogen.lastrun\n";
my $fh;
open ($fh, ">autogen.lastrun") || die "can't open autogen.lastrun: $!";
for my $arg (@cmdline_args) {
diff --git a/bin/lo-pack-sources b/bin/lo-pack-sources
new file mode 100755
index 000000000000..26ac6c1fc94d
--- /dev/null
+++ b/bin/lo-pack-sources
@@ -0,0 +1,651 @@
+#!/usr/bin/perl
+ eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
+ if $running_under_some_shell;
+#!/usr/bin/perl
+
+use strict;
+use File::Copy;
+use File::Temp qw/ tempfile tempdir /;
+
+# get libreoffice-build version from the given libreoffice-build sources
+sub get_config_version($)
+{
+ my ($lo_build_dir) = @_;
+ my $version;
+
+ open (CONFIGURE, "$lo_build_dir/configure.in") ||
+ die "can't open \"$lo_build_dir/configure.in\" for reading: $!\n";
+
+ while (my $line = <CONFIGURE>) {
+ chomp $line;
+
+ if ($line =~ /AC_INIT\s*\(\s*libreoffice-build\s*,\s*([\w\.]*)\)/) {
+ $version="$1";
+ }
+ }
+ close (CONFIGURE);
+ return $version;
+}
+
+# set libreoffice-build version in the given libreoffice-build sources
+sub set_config_version($$)
+{
+ my ($lo_build_dir, $version) = @_;
+ my $configure = "$lo_build_dir/configure.in";
+
+ open (CONFIGURE, "$configure") ||
+ die "can't open \"$configure\" for reading: $!\n";
+
+ my ( $tmp_fh, $tmp_filename ) = tempfile( "$configure.XXXXXX" );
+ if ( !defined $tmp_fh ) {
+ close (CONFIGURE);
+ die "Error: can't create temporary file: \"$configure.XXXXXX\"\n";
+ }
+
+ while (my $line = <CONFIGURE>) {
+ chomp $line;
+
+ if ($line =~ /^(\s*AC_INIT\s*\(\s*libreoffice-build\s*,\s*)([\w\.]*)(\s*\)\s*)$/) {
+ print ${tmp_fh} "$1$version$3\n";
+ } else {
+ print ${tmp_fh} "$line\n";
+ }
+ }
+ close (CONFIGURE);
+ close (${tmp_fh});
+
+ # preserve permissions on target file by applying them to temp file
+ my ( $mode, $uid, $gid ) = ( stat($configure) )[ 2, 4, 5 ];
+ $mode = $mode & 07777;
+
+ chmod $mode, $tmp_filename;
+ chown $uid, $gid, $tmp_filename;
+
+ rename ($tmp_filename, $configure) ||
+ die "Can't rename \"$tmp_filename\" to \"$configure\": $!\n";
+}
+
+# increment the version for a test build:
+# + add 'a' if the version ended with a number
+# + bump the letter otherwise
+sub inc_test_version($)
+{
+ my ($version) = @_;
+
+ my $lastchar = chop $version;
+ my $new_version;
+
+ if ($lastchar =~ /\d/) {
+ return "$version" . "$lastchar" . "a";
+ } elsif ($lastchar =~ /\w/) {
+ # select next letter alhabeticaly: a->b, b->c, ...
+ $lastchar =~ tr/0a-zA-Z/a-zA-Z0/;
+ return "$version" . "$lastchar";
+ } else {
+ die "Can't generate test version from \"$version$lastchar\n";
+ }
+}
+
+sub get_release_version($$$$)
+{
+ my ($config_version, $state_config_version, $state_release_version, $inc_version) = @_;
+ my $release_version;
+
+ if (defined $state_config_version &&
+ defined $state_release_version &&
+ "$state_config_version" eq "$config_version") {
+ $release_version = "$state_release_version";
+ } else {
+ $release_version = "$config_version";
+ }
+
+ if ( defined $inc_version ) {
+ $release_version = inc_test_version($release_version);
+ }
+
+ return $release_version;
+}
+
+
+sub generate_lo_build_blacklist($)
+{
+ my ($blacklist) = @_;
+
+ # FIXME: crazy hacks to copy libreoffice-build without too big and useless subdirectories and to show a progress
+ open (BLACKLIST, ">$blacklist") || die "Can't open $blacklist: $!\n";
+
+ # IMPORTANT: Do not remove .git directories because "git log" is called during "make dist"
+ print BLACKLIST "*/.svn\n";
+ print BLACKLIST "rawbuild/*\n";
+ print BLACKLIST "build/*\n";
+ print BLACKLIST "clone/*\n";
+ print BLACKLIST "src/libreoffice-*.tar.bz2\n";
+ print BLACKLIST "src/????????????????????????????????-*\n";
+
+ close BLACKLIST;
+}
+
+sub generate_lo_piece_blacklist($)
+{
+ my ($blacklist) = @_;
+
+ # FIXME: crazy hacks to copy libreoffice-build without too big and useless subdirectories and to show a progress
+ open (BLACKLIST, ">$blacklist") || die "Can't open $blacklist: $!\n";
+
+ # IMPORTANT: Do not remove .git directories because "git log" is called during "make dist"
+ print BLACKLIST ".git\n";
+ print BLACKLIST ".gitignore\n";
+ print BLACKLIST ".gitattributes\n";
+ print BLACKLIST "autom4te.cache/*\n";
+ print BLACKLIST "autom4te.cache\n";
+ print BLACKLIST "autogen.lastrun\n";
+ print BLACKLIST "clone/*\n";
+ print BLACKLIST "config.log\n";
+ print BLACKLIST "config.parms\n";
+ print BLACKLIST "git-hooks\n";
+ print BLACKLIST "Linux*Env.Set.sh\n";
+ print BLACKLIST "warn\n";
+
+ close BLACKLIST;
+}
+
+# remove symlinks to clone subdir
+sub remove_module_symlinks($$)
+{
+ my ($tempdir, $piece_tarball_name) = @_;
+
+ print STDERR "find $tempdir/$piece_tarball_name -mindepth 1 -maxdepth 1 -type l -exec rm {} \\;\n";
+ system ("find $tempdir/$piece_tarball_name -mindepth 1 -maxdepth 1 -type l -exec rm {} \\;") &&
+ die "Error: can't delete symlinks to clone dir in $tempdir: $!\n";
+}
+
+
+# copy files to temp dir; showing a progress; using a black list
+sub copy_dir_filter_and_show_progress($$$)
+{
+ my ($source_dir, $target_dir, $blacklist) = @_;
+
+ print "Copying \"$source_dir\" -> \"$target_dir\"...";
+ # FIXME: crazy hacks to copy dir with a blacklist and showing a progress
+ system ("tar -cf - -C $source_dir -X $blacklist \.\/ | " .
+ "tar -xf - -C $target_dir --checkpoint 2>&1 | " .
+ "awk '{ ORS=\"\" ; if (++nlines\%50 == 0) printf \".\"; fflush() }'") &&
+ die "Error: copying failed: $!\n";
+ print "\n";
+}
+
+# copy the local version of libreoffice-build into a tmp directory
+# omit the .svn subdirectories
+sub copy_lo_build_to_tempdir($)
+{
+ my ($lo_build_dir) = @_;
+
+ my $tempdir = tempdir( 'libreoffice-XXXXXX', DIR => File::Spec->tmpdir );
+ my $blacklist = "$tempdir/libreoffice-build.copy.blacklist";
+
+ generate_lo_build_blacklist($blacklist);
+ copy_dir_filter_and_show_progress($lo_build_dir, $tempdir, $blacklist);
+
+ unlink $blacklist;
+
+ return $tempdir;
+}
+
+# copy the piece lo source directory into a tmp directory
+# omit the .git subdirectories
+sub copy_lo_piece_to_tempdir($$$)
+{
+ my ($piece_dir, $piece, $piece_tarball_name) = @_;
+
+
+ my $tempdir = tempdir( 'libreoffice-XXXXXX', DIR => File::Spec->tmpdir );
+ my $blacklist = "$tempdir/libreoffice-$piece.copy.blacklist";
+
+ mkdir "$tempdir/$piece_tarball_name" || die "Can't create directory \"$tempdir/$piece_tarball_name\": $!\n";
+
+ generate_lo_piece_blacklist($blacklist);
+ copy_dir_filter_and_show_progress("$piece_dir", "$tempdir/$piece_tarball_name", $blacklist);
+ remove_module_symlinks($tempdir, $piece_tarball_name);
+
+ unlink $blacklist;
+
+ return $tempdir;
+}
+
+sub generate_lo_piece_changelog($$$)
+{
+ my ($lo_piece_clone, $lo_piece_release_dir, $piece) = @_;
+ print "Generating changelog for $piece...\n";
+ print "1:$lo_piece_clone, 2:$lo_piece_release_dir, 3:$piece\n";
+ # FIXME: crazy hacks to copy dir with a blacklist and showing a progress
+ system ("cd $lo_piece_clone && " .
+ "git log --date=short --pretty='format:@%cd %an <%ae> [%H]%n%n%s%n%n%e%b' | " .
+ " sed -e 's|^\([^@]\)|\t\1|' -e 's|^@||' >$lo_piece_release_dir/ChangeLog" ) &&
+ die "Error: generating failed: $!\n";
+}
+
+sub run_autoreconf($$)
+{
+ my ($dir, $piece) = @_;
+
+ print "Running autoreconf for $piece...\n";
+ system ("cd $dir && " .
+ "autoreconf -f -i && " .
+ "rm -rf autom4te.cache && " .
+ "cd - >/dev/null 2>&1") && die "Error: autoreconf failed: $!\n";
+}
+
+sub generate_version_file($$$)
+{
+ my ($dir, $piece, $release_version) = @_;
+
+ # FIXME: crazy hacks to copy libreoffice-build without too big and useless subdirectories and to show a progress
+ open (VERFILE, ">$dir/$piece.ver") || die "Can't open $dir/lo-$piece.ver: $!\n";
+
+ print VERFILE "lo_bootstrap_ver=$release_version\n";
+
+ close VERFILE;
+}
+
+sub release_lo_build($)
+{
+ my ($lo_build_dir) = @_;
+
+ print "Creating libreoffice-build tarball...\n";
+ system ("cd $lo_build_dir && " .
+ "./autogen.sh --with-distro=GoOoLinux && " .
+ "make dist && " .
+ "cd - >/dev/null 2>&1") && die "Error: releasing failed: $!\n";
+}
+
+sub release_lo_piece($$)
+{
+ my ($lo_piece_dir, $piece_tarball_name) = @_;
+
+ print "Creating $piece_tarball_name.tar.bz2...";
+ system ("cd $lo_piece_dir && " .
+ "tar -cjf $piece_tarball_name.tar.bz2 --checkpoint * 2>&1 | awk '{ ORS=\"\" ; if (++nlines\%50 == 0) printf \".\"; fflush() }' && " .
+ "cd - >/dev/null 2>&1") && die "Error: releasing failed: $!\n";
+ print "\n";
+}
+
+sub generate_md5($$$)
+{
+ my ($dir, $tarball_name, $tarball_suffix) = @_;
+
+ print "Generating MD5...\n";
+ system ("cd $dir && " .
+ "md5sum $tarball_name$tarball_suffix >$tarball_name$tarball_suffix.md5 && " .
+ "cd - >/dev/null 2>&1") && die "Error: releasing failed: $!\n";
+}
+
+sub default_releases_state_file($)
+{
+ my ($lo_build_dir) = @_;
+
+ my $rootdir = $lo_build_dir;
+ $rootdir =~ s/^(.*?)\/?[^\/]+\/?$/$1/;
+
+ my $releases_state_file;
+ if ($rootdir) {
+ $releases_state_file = "$rootdir/.releases";
+ } else {
+ $releases_state_file = ".releases";
+ }
+
+ return "$releases_state_file";
+}
+
+sub default_releases_archive($)
+{
+ my ($lo_build_dir) = @_;
+
+ my $rootdir = $lo_build_dir;
+ $rootdir =~ s/^(.*?)\/?[^\/]+\/?$/$1/;
+
+ my $releases_archive_dir;
+ if ($rootdir) {
+ $releases_archive_dir = "$rootdir/archive";
+ } else {
+ $releases_archive_dir = "archive";
+ }
+
+ return "$releases_archive_dir";
+}
+
+sub load_releases_state($)
+{
+ my ($releases_state_file) = @_;
+
+ my $state_config_version;
+ my $state_release_version;
+
+ if (open (STATE, "$releases_state_file")) {
+
+ while (my $line = <STATE>) {
+ chomp $line;
+
+ if ($line =~ /^\s*configure_version\s*=\s*(.*)$/) {
+ $state_config_version = "$1";
+ } elsif ($line =~ /^\s*released_version\s*=\s*(.*)$/) {
+ $state_release_version = "$1";
+ }
+ }
+ close (STATE);
+ }
+
+ return $state_config_version, $state_release_version;
+}
+
+sub save_releases_state($$$)
+{
+ my ($releases_state_file, $config_version, $release_version) = @_;
+
+ open (STATE, '>', "$releases_state_file") ||
+ die "Can't open \"$releases_state_file\" for writing: $!\n";
+
+ print STATE "configure_version = $config_version\n";
+ print STATE "released_version = $release_version\n";
+
+ close (STATE);
+}
+
+sub remove_tempdir($)
+{
+ my ($tempdir) = @_;
+
+# print "Cleaning $tempdir...\n";
+ system ("rm -rf $tempdir") && die "Error: rm failed: $!\n";
+}
+
+sub save_file($$$)
+{
+ my ($source_dir, $target_dir, $file) = @_;
+
+ unless ( -d "$target_dir" ) {
+ mkdir ("$target_dir") ||
+ die "Can't create directory \"$target_dir\": $!\n";
+ }
+
+ if ( -f "$target_dir/$file" ) {
+ print "Warning: $target_dir/$file already exists and will be replaced\n";
+ unlink ("$target_dir/$file");
+ }
+
+ print "Copying into archive: $target_dir/$file ...\n";
+ copy ("$source_dir/$file", "$target_dir/$file") ||
+ die "Error: Can't copy $source_dir/$file to $target_dir/$file: $!\n";
+}
+
+sub check_if_file_exists($$)
+{
+ my ($file, $force) = @_;
+
+ if (-e $file) {
+ if (defined $force) {
+ print "Warning: $file already exists and will be replaced!\n";
+ } else {
+ die "Error: $file alrady exists.\n".
+ " Use --force if you want to replace it.\n";
+ }
+ }
+}
+
+sub check_if_tarball_already_released($$$)
+{
+ my ($tarball, $releases_archive_dir, $force) = @_;
+
+ check_if_file_exists($tarball, $force);
+ check_if_file_exists("$releases_archive_dir/$tarball", $force) if (defined $releases_archive_dir);
+}
+
+sub check_if_already_released($$$$$$)
+{
+ my ($lo_build_tarball_name, $p_piece_tarball_name, $releases_archive_dir, $force, $pack_lo_build, $pack_lo_pieces) = @_;
+
+ check_if_tarball_already_released("$lo_build_tarball_name.tar.gz", $releases_archive_dir, $force) if ($pack_lo_build);
+
+ if ($pack_lo_pieces) {
+ foreach my $tarball_name ( values %{$p_piece_tarball_name} ) {
+ check_if_tarball_already_released("$tarball_name.tar.bz2", $releases_archive_dir, $force);
+ }
+ }
+}
+
+sub prepare_lo_build_tarball($$$$)
+{
+ my ($lo_build_dir, $release_version, $md5, $lo_build_tarball_name) = @_;
+
+ my $temp_dir = copy_lo_build_to_tempdir("$lo_build_dir");
+ set_config_version($temp_dir, $release_version);
+ release_lo_build($temp_dir);
+ generate_md5($temp_dir, $lo_build_tarball_name, ".tar.gz") if (defined $md5);
+
+ return $temp_dir;
+}
+
+sub prepare_lo_piece_tarball($$$$$)
+{
+ my ($piece_dir, $release_version, $md5, $piece, $piece_tarball_name) = @_;
+
+ my $temp_dir = copy_lo_piece_to_tempdir($piece_dir, $piece, $piece_tarball_name);
+ generate_lo_piece_changelog($piece_dir, "$temp_dir/$piece_tarball_name", $piece);
+ run_autoreconf("$temp_dir/$piece_tarball_name", $piece) if ($piece eq 'bootstrap');
+ generate_version_file("$temp_dir/$piece_tarball_name", $piece, $release_version) if ($piece eq 'bootstrap');
+ release_lo_piece($temp_dir, $piece_tarball_name);
+ generate_md5($temp_dir, $piece_tarball_name, ".tar.bz2") if (defined $md5);
+
+ return $temp_dir;
+}
+
+sub move_tarball_to_final_location($$$$)
+{
+ my ($temp_dir, $releases_archive_dir, $md5, $tarball) = @_;
+
+ save_file($temp_dir, ".", "$tarball");
+ save_file($temp_dir, ".", "$tarball.md5") if (defined $md5);
+ if ( defined $releases_archive_dir ) {
+ save_file($temp_dir, $releases_archive_dir, "$tarball");
+ save_file($temp_dir, $releases_archive_dir, "$tarball.md5") if (defined $md5);
+ }
+
+ remove_tempdir($temp_dir);
+}
+
+
+sub generate_tarballs($$$$$$$$$)
+{
+ my ($source_dir, $releases_archive_dir, $release_version, $md5, $lo_build_tarball_name, $p_piece_tarball_name, $pack_lo_build, $pack_lo_pieces, $is_lo_build_dir) = @_;
+
+ if ($pack_lo_build) {
+# my $temp_dir=prepare_lo_build_tarball($source_dir, $release_version, $md5, $lo_build_tarball_name);
+# move_tarball_to_final_location($temp_dir, $releases_archive_dir, $md5, "$lo_build_tarball_name.tar.gz");
+ my $temp_dir=prepare_lo_piece_tarball($source_dir, $release_version, $md5, "bootstrap", $lo_build_tarball_name);
+ move_tarball_to_final_location($temp_dir, $releases_archive_dir, $md5, "$lo_build_tarball_name.tar.bz2");
+ }
+
+ if ($pack_lo_pieces) {
+ my $piece_dir = $source_dir;
+ foreach my $piece ( keys %{$p_piece_tarball_name} ) {
+ print "\n--- Generating $piece ---\n";
+ $piece_dir = "$source_dir/clone/$piece" if ($is_lo_build_dir);
+ my $temp_dir=prepare_lo_piece_tarball($piece_dir, $release_version, $md5, $piece, $p_piece_tarball_name->{$piece});
+ move_tarball_to_final_location($temp_dir, $releases_archive_dir, $md5, "$p_piece_tarball_name->{$piece}.tar.bz2");
+ }
+ }
+
+}
+
+
+sub usage()
+{
+ print "This tool helps to pack the libreoffice-build and piece sources\n\n" .
+
+ "Usage:\n".
+ "\tlo-pack-sources [--help] [--force] [--version]\n" .
+ "\t [--set-version=<ver>] [--inc-version] [--md5]\n" .
+ "\t [--no-lo-build] [--no-lo-pieces] [--piece=<piece>]\n" .
+ "\t [dir]\n\n" .
+
+ "Options:\n\n" .
+ "\t--help: print this help\n" .
+ "\t--force: replace an already existing release of the same version\n" .
+ "\t--version: just print version of the released package but do not\n" .
+ "\t\trelease it; the version is affected by the other options, e.g.\n" .
+ "\t\t--inc-version\n" .
+ "\t--set-version: force another version\n" .
+ "\t--inc-version: increment the latest version; there is a difference\n" .
+ "\t\tbetween test release (default) and final (not yet supported)\n" .
+ "\t--md5: generate md5 sum for the final tarball\n" .
+ "\t--no-lo-build: do not pack the libreoffice-build tarball\n" .
+ "\t--no-lo-pieces: do not pack the libreoffice-build piece sources\n" .
+ "\t--piece=<piece>: pack just a single piece, .e.g. \"writer\",\n" .
+ "\tdir: path of the source directory, either libreoffice-build or piece\n";
+}
+
+
+my $ptf;
+my $md5;
+my $inc_version;
+my $config_version;
+my $set_version;
+my $get_config_version;
+my $release_version;
+my $pack_lo_build=1;
+my $pack_lo_pieces=1;
+my $source_dir;
+my $releases_archive_dir;
+my $releases_state_file;
+my $state_config_version;
+my $state_release_version;
+my $lo_build_tarball_name;
+my $lo_build_tempdir;
+my $force;
+my $verbose=1;
+my $is_lo_build_dir=0;
+my @pieces=("artwork", "base", "calc", "components",
+ "extensions", "extras", "filters", "help", "impress",
+ "libs-core", "libs-extern", "libs-extern-sys", "libs-gui",
+ "postprocess", "sdk", "testing", "translations", "ure", "writer");
+my %piece_tarball_name;
+
+###################
+# Arguments parsing
+###################
+
+for my $arg (@ARGV) {
+ if ($arg eq '--help' || $arg eq '-h') {
+ usage;
+ exit 0;
+ } elsif ($arg eq '--force') {
+ $force=1;
+ } elsif ($arg eq '--md5') {
+ $md5=1;
+ } elsif ($arg eq '--version') {
+ $get_config_version=1;
+ $verbose = undef;
+ } elsif ($arg eq '--inc-version') {
+ $inc_version=1
+ } elsif ($arg =~ m/--set-version=(.*)/) {
+ $set_version="$1";
+ } elsif ($arg eq '--no-lo-build') {
+ $pack_lo_build=0;
+ } elsif ($arg eq '--no-lo-pieces') {
+ $pack_lo_pieces=0;
+ } elsif ($arg =~ m/--piece=(.*)/) {
+ # process just one piece and do not pack libreoffice-build
+ @pieces=();
+ push @pieces, "$1";
+ $pack_lo_build=0;
+ } elsif ($arg =~ /^-/ ) {
+ die "Error: unknown option: $arg\n";
+ } else {
+ if (! defined $source_dir) {
+ $source_dir = $arg;
+ } else {
+ die "Error: Too many arguments $arg\n";
+ }
+ }
+}
+
+###################
+# Initial checks
+###################
+
+unless ( defined $source_dir ) {
+ die "Error: undefined source directory, try --help\n";
+}
+
+unless ( -d "$source_dir" ) {
+ die "Error: is not a directory: $source_dir\n";
+}
+
+# check if it is a valid libreoffice-bootstrap directory
+$is_lo_build_dir=1 if (-f "$source_dir/autogen.sh" && -f "$source_dir/set_soenv.in");
+
+# all tarballs are generated from the libreoffice-bootstrap directory
+if (@pieces > 1 && $is_lo_build_dir == 0 ) {
+ die "Error: \"$source_dir\" is not a valid libreoffice-bootstrap directory\n";
+}
+
+# just a single piece tarball can be generated from piece directory; version must be explicitely set in this case
+if (@pieces == 1 && $is_lo_build_dir == 0 && ! defined $set_version ) {
+ die "Error: version must be set using the --set-version=<version> option\n" unless (defined $set_version);
+}
+
+if (defined $set_version && defined $inc_version) {
+ die "Error: --set-version and --inc-version options can't be used together\n";
+}
+
+
+###################
+# Main logic
+###################
+
+
+print "Source: $source_dir\n" if ($verbose);
+
+if ($is_lo_build_dir) {
+ # detect some paths
+ $releases_state_file = default_releases_state_file($source_dir) unless (defined $releases_state_file);
+ $releases_archive_dir = default_releases_archive($source_dir) unless (defined $releases_archive_dir);
+
+ # detect versions
+ $config_version = get_config_version($source_dir);
+ ($state_config_version, $state_release_version) = load_releases_state($releases_state_file);
+ if (defined $set_version) {
+ $release_version = "$set_version";
+ } else {
+ $release_version = get_release_version($config_version, $state_config_version, $state_release_version, $inc_version);
+ }
+} else {
+ # must be single piece release with predefined version
+ $release_version = "$set_version";
+}
+
+# define tarball names
+$lo_build_tarball_name = "libreoffice-bootstrap-$release_version";
+foreach my $piece (@pieces) {
+ $piece_tarball_name{$piece} = "libreoffice-$piece-$release_version";
+}
+
+print "Default version : $config_version\n" if ($verbose && defined $config_version);
+print "Last used version : $state_release_version\n" if ($verbose && defined $state_release_version);
+print "New version : $release_version\n" if ($verbose);
+
+# do the real job
+if ( defined $get_config_version ) {
+ print "$release_version\n";
+} else {
+ check_if_already_released($lo_build_tarball_name, \%piece_tarball_name, $releases_archive_dir, $force, $pack_lo_build, $pack_lo_pieces);
+
+ # give a chance to stop the process
+ print ("\nWaiting 3 seconds...\n");
+ sleep 3;
+
+ generate_tarballs($source_dir, $releases_archive_dir, $release_version, $md5, $lo_build_tarball_name, \%piece_tarball_name, $pack_lo_build, $pack_lo_pieces, $is_lo_build_dir);
+
+ if ( defined $releases_state_file ) {
+ save_releases_state($releases_state_file, $config_version, $release_version);
+ }
+}
diff --git a/configure.in b/configure.in
index 6ed7ea1fc14e..31f8a4d6a208 100755
--- a/configure.in
+++ b/configure.in
@@ -79,11 +79,6 @@ AC_ARG_ENABLE(ext-presenter-minimizer,
[Enables the Presentation Minimizer extension.]),
,)
-AC_ARG_ENABLE(ext-presenter-ui,
- AS_HELP_STRING([--enable-ext-presenter-ui],
- [Enables extra functionality during slideshows, e.g. selecting pen color.]),
-,)
-
AC_ARG_ENABLE(ext-report-builder,
AS_HELP_STRING([--enable-ext-report-builder],
[Enables the build of the Report Builder extension.]),
@@ -283,6 +278,20 @@ AC_ARG_ENABLE(cairo,
available.]),
,enable_cairo=yes)
+AC_ARG_ENABLE(librsvg,
+[ --enable-librsvg Determines whether to use librsvg library on
+ platforms where librsvg is available.
+ (actually, it is possible to build with
+ --disable-librsvg and to still have SVG support
+ within a running soffice instance, since this
+ dependency is a runtime only dependency.
+ To have SVG suppport at runtime, the librsvg, the cairo
+ and the gobject library - and all depending libraries
+ as well - need to be accessible by the running soffice
+ instance.
+ The intention of defaulting this flag to yes is to
+ indicate this fact to the build maintainer)
+],,enable_librsvg=yes)
AC_ARG_ENABLE(opengl,
AS_HELP_STRING([--disable-opengl],
[Determines whether to build the OpenGL 3D slide transitions component.]),
@@ -1219,6 +1228,20 @@ AC_ARG_WITH(vendor,
],
,)
+AC_ARG_WITH(install-dirname,
+ AS_HELP_STRING([--with-install-dirname],
+ [Specify the directory name of the core LibO install dir. The final
+ installation path is defined by <libdir>/<install-dirname>.
+ The default value is "libreoffice" and the default installation
+ patch is /usr/lib/libreoffice.
+
+ FIXME: It affects only the installation by "make install" and not the
+ generated installation sets.])
+ [
+ Usage: --with-install-dirname=lo-3.4.2
+ ],
+,)
+
AC_ARG_WITH(unix-wrapper,
AS_HELP_STRING([--with-unix-wrapper],
[Redefines the name of the UNIX wrapper that will be used in the desktop
@@ -1386,6 +1409,7 @@ case "$host_os" in
solaris*)
test_gtk=yes
build_gstreamer=yes
+ test_librsvg=yes
test_kde=yes
test_freetype=yes
test_gstreamer=yes
@@ -1418,6 +1442,7 @@ case "$host_os" in
linux-gnu*|k*bsd*-gnu*)
test_gtk=yes
build_gstreamer=yes
+ test_librsvg=yes
test_kde=yes
test_kde4=yes
test_freetype=yes
@@ -1449,6 +1474,7 @@ case "$host_os" in
test_cups=no
test_randr=no
+ test_librsvg=no
test_freetype=no
test_cairo=no
test_fontconfig=no
@@ -1465,6 +1491,7 @@ case "$host_os" in
;;
darwin*) # Mac OS X or iOS
test_gtk=yes
+ test_librsvg=no
test_randr=no
test_freetype=no
test_fontconfig=no
@@ -1484,6 +1511,7 @@ case "$host_os" in
freebsd*)
test_gtk=yes
build_gstreamer=yes
+ test_librsvg=yes
test_kde=yes
test_kde4=yes
test_freetype=yes
@@ -1511,6 +1539,7 @@ case "$host_os" in
*netbsd*)
test_gtk=yes
build_gstreamer=yes
+ test_librsvg=yes
test_kde=no
test_kde4=yes
test_freetype=yes
@@ -2212,6 +2241,7 @@ fi
dnl ===================================================================
dnl Check which Microsoft C/C++ or MinGW compiler is used for WINNT
dnl ===================================================================
+SHOWINCLUDES_PREFIX=
if test "$_os" = "WINNT"; then
if test "$WITH_MINGW" != "yes"; then
AC_MSG_CHECKING([for a friendly Microsoft C/C++ compiler installation path])
@@ -2231,7 +2261,7 @@ if test "$_os" = "WINNT"; then
fi
with_cl_home=`cygpath -d "$with_cl_home"`
with_cl_home=`cygpath -u "$with_cl_home"`
- AC_MSG_RESULT([done])
+ AC_MSG_RESULT([$with_cl_home])
dnl ===========================================================
dnl Check for mspdb80.dll/mspdb100.dll
@@ -2264,7 +2294,7 @@ if test "$_os" = "WINNT"; then
fi
if test -z "$MSPDB_PATH"; then
- AC_MSG_ERROR([You need a mspdb80.dllor mspdb100.dll, make sure it's in the path or use --with-mspdb-path])
+ AC_MSG_ERROR([You need a mspdb80.dllor mspdb100.dll, make sure it is in the path or use --with-mspdb-path])
fi
MSPDB_PATH=`cygpath -d "$MSPDB_PATH"`
MSPDB_PATH=`cygpath -u "$MSPDB_PATH"`
@@ -2272,27 +2302,29 @@ if test "$_os" = "WINNT"; then
PATH="$MSPDB_PATH:$PATH"
AC_MSG_CHECKING([the Microsoft C/C++ Compiler])
- if test "$CL_X64" = ""; then
- if test -x "$with_cl_home/bin/cl.exe"; then
- CC="$with_cl_home/bin/cl.exe"
+ if test -z "$CC"; then
+ if test "$CL_X64" = ""; then
+ if test -x "$with_cl_home/bin/cl.exe"; then
+ CC="$with_cl_home/bin/cl.exe"
+ fi
+ else
+ if test -x "$with_cl_home/bin/amd64/cl.exe"; then
+ CC="$with_cl_home/bin/amd64/cl.exe"
+ fi
fi
- else
- if test -x "$with_cl_home/bin/amd64/cl.exe"; then
- CC="$with_cl_home/bin/amd64/cl.exe"
+ if test -z "$CC"; then
+ AC_PATH_PROG(CC, cl.exe)
fi
- fi
- if test -z "$CC"; then
- AC_PATH_PROG(CC, cl.exe)
- fi
-
- if test -e "$CC"; then
# This gives us a posix path with 8.3 filename restrictions
CC=`cygpath -d "$CC"`
CC=`cygpath -u "$CC"`
+ fi
+
+ if test -n "$CC"; then
# Remove /cl.exe from CC case insensitive
AC_MSG_RESULT([found ($CC)])
if test "$CL_X64" = ""; then
- COMPATH=`echo $CC | $SED 's@\/[[Bb]][[Ii]][[Nn]]\/[[cC]][[lL]]\.[[eE]][[xX]][[eE]]@@'`
+ COMPATH=`echo $CC | $SED -e 's@\/[[Bb]][[Ii]][[Nn]]\/[[cC]][[lL]]\.[[eE]][[xX]][[eE]].*@@' -e 's@^.* @@'`
else
if test -n "$with_cl_home"; then
COMPATH=`echo $with_cl_home`
@@ -2324,6 +2356,19 @@ if test "$_os" = "WINNT"; then
AC_MSG_ERROR([Microsoft C/C++ Compiler not found. Use --with-cl-home or set path to cl.exe.])
fi
+ dnl We need to guess the prefix of the -showIncludes output, it can be
+ dnl localized
+ AC_MSG_CHECKING([the dependency generation prefix (cl.exe -showIncludes)])
+ echo "#include <stdlib.h>" > conftest.c
+ SHOWINCLUDES_PREFIX=`$CC -c -showIncludes conftest.c 2>/dev/null | \
+ grep 'stdlib\.h' | head -n1 | sed 's/ [[[:alpha:]]]:.*//'`
+ rm -f conftest.c conftest.obj
+ if test -z "$SHOWINCLUDES_PREFIX" ; then
+ AC_MSG_ERROR([cannot determine the -showIncludes prefix])
+ else
+ AC_MSG_RESULT(["$SHOWINCLUDES_PREFIX"])
+ fi
+
# Check for 64-bit (cross-)compiler to use to build the 64-bit
# version of the Explorer extension (and maybe other small
# bits, too) needed when installing a 32-bit LibreOffice on a
@@ -2389,6 +2434,7 @@ fi
AC_SUBST(COMEX)
AC_SUBST(MSPDB_PATH)
AC_SUBST(USE_MINGW)
+AC_SUBST(SHOWINCLUDES_PREFIX)
if test "$_os" != "WINNT" -o "$WITH_MINGW" = "yes"; then
@@ -2651,7 +2697,7 @@ dnl ===================================================================
dnl Testing for C++ compiler and version...
dnl ===================================================================
if test "$_os" = "WINNT" -a "$WITH_MINGW" != "yes"; then
- if test -e "$CC"; then
+ if test -n "$CC" -a -z "$CXX"; then
CXX="$CC"
fi
fi
@@ -6173,7 +6219,12 @@ fi
dnl We also need to check for --with-gnu-cp
if test -z "$with_gnu_cp"; then
- AC_PATH_PROGS(GNUCP, gnucp cp)
+ # check the place where the good stuff is hidden on Solaris...
+ if test -x /usr/gnu/bin/cp; then
+ GNUCP=/usr/gnu/bin/cp
+ else
+ AC_PATH_PROGS(GNUCP, gnucp cp)
+ fi
if test -z $GNUCP; then
AC_MSG_ERROR([Neither gnucp nor cp found. Install GNU cp and/or specify --with-gnu-cp=/path/to/it])
fi
@@ -6350,6 +6401,7 @@ if test "$test_gtk" = "yes"; then
if test "$ENABLE_GTK" = "TRUE" ; then
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4 gdk-pixbuf-xlib-2.0 >= 2.2 ,,AC_MSG_ERROR([requirements to build the gtk-plugin not met. Use --disable-gtk or install the missing packages]))
+ PKG_CHECK_MODULES(GTHREAD, gthread-2.0,,AC_MSG_ERROR([requirements to build the gtk-plugin not met. Use --disable-gtk or install the missing packages]))
BUILD_TYPE="$BUILD_TYPE GTK"
if test "x$enable_systray" = "xyes"; then
@@ -6385,6 +6437,8 @@ AC_SUBST(ENABLE_DBUS)
AC_SUBST(ENABLE_SYSTRAY_GTK)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
+AC_SUBST(GTHREAD_CFLAGS)
+AC_SUBST(GTHREAD_LIBS)
PKG_CHECK_MODULES( LIBPNG, libpng, ENABLE_QUICKSTART_LIBPNG="TRUE", ENABLE_QUICKSTART_LIBPNG="" )
AC_SUBST(LIBPNG_LIBS)
@@ -6474,6 +6528,29 @@ fi
AC_SUBST(ENABLE_GSTREAMER)
dnl ===================================================================
+dnl Check whether the librsvg libraries are available.
+dnl ===================================================================
+
+ENABLE_LIBRSVG=""
+LIBRSVG_CFLAGS=""
+LIBRSVG_LIBS=""
+
+if test "$test_librsvg" = "yes"; then
+ AC_MSG_CHECKING([whether to use librsvg])
+ if test "x$enable_librsvg" != "xno" ; then
+ PKG_CHECK_MODULES( LIBRSVG, librsvg-2.0 >= 2.14,,AC_MSG_ERROR([requirements to build with librsvg support not met. Use --disable-librsvg or install the missing packages]))
+ ENABLE_LIBRSVG="TRUE"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+fi
+
+AC_SUBST(ENABLE_LIBRSVG)
+AC_SUBST(LIBRSVG_CFLAGS)
+AC_SUBST(LIBRSVG_LIBS)
+
+dnl ===================================================================
dnl Check whether the OpenGL libraries are available
dnl ===================================================================
@@ -6528,17 +6605,6 @@ fi
AC_SUBST(SYSTEM_MESA_HEADERS)
AC_SUBST(ENABLE_OPENGL)
-# presenter extra ui extension?
-AC_MSG_CHECKING([whether to build extra presenter ui])
-AS_IF([test "x$enable_ext_presenter_ui" = "xyes"], [
- AC_MSG_RESULT([yes])
- ENABLE_PRESENTER_EXTRA_UI=YES
-],[
- AC_MSG_RESULT([no])
- ENABLE_PRESENTER_EXTRA_UI=NO
-])
-AC_SUBST(ENABLE_PRESENTER_EXTRA_UI)
-
# presenter minimizer extension?
AC_MSG_CHECKING([whether to build the Presentation Minimizer extension])
AS_IF([test "x$enable_ext_presenter_minimizer" = "xyes"], [
@@ -7849,6 +7915,205 @@ AC_SUBST(USE_XINERAMA)
AC_SUBST(XINERAMA_LINK)
dnl ===================================================================
+dnl Test whether to build librsvg or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of librsvg])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBRSVG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_LIBRSVG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBRSVG=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_LIBRSVG)
+
+dnl ===================================================================
+dnl Test whether to build gdk-pixbuf or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of gdk-pixbuf])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_GDKPIXBUF=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_GDKPIXBUF=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_GDKPIXBUF=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_GDKPIXBUF)
+
+dnl ===================================================================
+dnl Test whether to build glib or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of glib])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_GLIB=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_GLIB=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_GLIB=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_GLIB)
+
+dnl ===================================================================
+dnl Test whether to build gettext or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of gettext])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_GETTEXT=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_GETTEXT=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_GETTEXT=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_GETTEXT)
+
+dnl ===================================================================
+dnl Test whether to build libcroco or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of libcroco])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBCROCO=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_LIBCROCO=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBCROCO=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_LIBCROCO)
+
+dnl ===================================================================
+dnl Test whether to build pango or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of pango])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_PANGO=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_PANGO=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_PANGO=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_PANGO)
+
+dnl ===================================================================
+dnl Test whether to build libgsf or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of libgsf])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBGSF=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBGSF=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_LIBGSF)
+
+dnl ===================================================================
+dnl Test whether to build libpng or rely on the system version
+dnl ===================================================================
+AC_MSG_CHECKING([whether to build own version of libpng])
+
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBPNG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_LIBPNG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBPNG=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+AC_SUBST(SYSTEM_LIBPNG)
+
+dnl ===================================================================
+dnl Test whether to build libjpeg or rely on the system version
+dnl ===================================================================
+dnl FIXME: this is currently because we have jpeg-6b for our filters
+dnl and jpeg-8 as dependency for librsvg
+dnl this should be unified into using only one version for both
+
+AC_MSG_CHECKING([whether to build own version of libjpeg])
+
+if test "$SYSTEM_JPEG" == "YES"; then
+SYSTEM_LIBJPEG=YES
+else
+case "$_os" in
+ WINNT*) # Windows
+ SYSTEM_LIBJPEG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ Darwin*)
+ SYSTEM_LIBJPEG=NO
+ AC_MSG_RESULT([yes])
+ ;;
+ *)
+ SYSTEM_LIBJPEG=YES
+ AC_MSG_RESULT([no])
+ ;;
+esac
+fi
+
+if test "$SYSTEM_LIBJPEG" == "YES"; then
+ AC_MSG_RESULT([no])
+else
+ AC_MSG_RESULT([yes])
+fi
+AC_SUBST(SYSTEM_LIBJPEG)
+
+dnl ===================================================================
dnl Check for runtime JVM search path
dnl ===================================================================
if test "$SOLAR_JAVA" != ""; then
@@ -7969,8 +8234,12 @@ if test "$ANT_HOME" != "NO_ANT_HOME"; then
if test -f $ANT_HOME/lib/ant/ant.jar; then
ANT_LIB="$ANT_HOME/lib/ant"
else
- AC_MSG_ERROR([Ant libraries not found!])
- fi
+ if test -f /usr/share/lib/ant/ant.jar; then
+ ANT_LIB=/usr/share/lib/ant
+ else
+ AC_MSG_ERROR([Ant libraries not found!])
+ fi
+ fi
fi
fi
fi
@@ -8052,7 +8321,11 @@ if test "$SOLAR_JAVA" != "" && test "$with_junit" != "no"; then
if test -e /usr/share/java/junit4.jar; then
OOO_JUNIT_JAR=/usr/share/java/junit4.jar
else
- OOO_JUNIT_JAR=/usr/share/java/junit.jar
+ if test -e /usr/share/lib/java/junit.jar; then
+ OOO_JUNIT_JAR=/usr/share/lib/java/junit.jar
+ else
+ OOO_JUNIT_JAR=/usr/share/java/junit.jar
+ fi
fi
else
OOO_JUNIT_JAR=$with_junit
@@ -8107,6 +8380,7 @@ fi
# check that the list is valid
for lang in $WITH_LANG ; do
test "$lang" = "ALL" && continue;
+ test "$lang" = "kid" && continue;
# need to check for the exact string, so add space before and after the list of all languages
all_langs=" $ALL_LANGS "
test `echo "$all_langs" | sed "s|.* $lang .*|found|"` = "found" && continue;
@@ -8164,6 +8438,14 @@ else
fi
AC_SUBST(UNIXWRAPPERNAME)
+INSTALL_DIRNAME=`echo AC_PACKAGE_NAME | tr [[:upper:]] [[:lower:]]`
+AC_MSG_CHECKING([for install dirname])
+if test -n "$with_install_dirname" -a "$with_install_dirname" != "no" -a "$with_install_dirname" != "yes" ; then
+ INSTALL_DIRNAME="$with_install_dirname"
+fi
+AC_MSG_RESULT([$INSTALL_DIRNAME])
+AC_SUBST(INSTALL_DIRNAME)
+
AC_MSG_CHECKING([whether to statically link to Gtk])
if test -n "$enable_static_gtk" && test "$enable_static_gtk" != "no"; then
ENABLE_STATIC_GTK="TRUE"
diff --git a/download b/download
index c74e00ed3e93..c337fd2d0826 100755
--- a/download
+++ b/download
@@ -140,7 +140,7 @@ downloaditem()
failed="$failed $2"
wret=0
fi
- if [ -f $2 -a -n "$md5sum" ]; then
+ if [ -f $2 -a -n "$3" -a -n "$md5sum" ]; then
sum=`$md5sum $md5special $2 | sed "s/ .*//"`
if [ "$sum" != "$3" ]; then
echo checksum failure for $2 2>&1 | tee -a $logfile
@@ -189,6 +189,27 @@ if [ "$COM" = "MSC" ]; then
fi
+if [ -f $start_dir/bootstrap.ver -a ! -d $start_dir/.git ] ; then
+ # bootstrap is from sources, so get the other source tarballs
+ . $start_dir/bootstrap.ver
+ lo_src_dir="$start_dir/src"
+ mkdir -p "$lo_src_dir"
+ for piece in `cat $start_dir/bin/repo-list` ; do
+ tarname="libreoffice-$piece-$lo_bootstrap_ver"
+ if [ ! -f "$TARFILE_LOCATION/$tarname.tar.bz2" ] ; then
+ downloaditem "http://download.documentfoundation.org/libreoffice/src/" "$tarname.tar.bz2" ""
+ fi
+ if [ ! -d $lo_src_dir/$tarname ] ; then
+ echo "Unpacking $tarname.tar.bz2..."
+ tar -xf "$TARFILE_LOCATION/$tarname.tar.bz2" -C "$lo_src_dir"
+ fi
+ # create symlinks
+ for dir in `find "$lo_src_dir/$tarname" -mindepth 1 -maxdepth 1 -type d` ; do
+ ln -sf "$dir" "$start_dir"
+ done
+ done
+fi
+
rm $TARFILE_LOCATION/tmp/*-*
cd $start_dir
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt
index ede3f7cb4f42..18b3ca47bdf2 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt
@@ -11,3 +11,4 @@ InstallFinalize 400
InstallInitialize 250
InstallValidate 200
ScheduleReboot ISSCHEDULEREBOOT 375
+SetInstalllocation 390
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt
index 17a47e8e9889..8708803f2cc9 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt
@@ -122,6 +122,7 @@ setAllUsersProfile2K 51 ALLUSERSPROFILE [%ALLUSERSPROFILE]
SetAllUsersProfileNT 51 ALLUSERSPROFILE [%SystemRoot]\Profiles\All Users
setUserProfileNT 51 USERPROFILE [%USERPROFILE]
SetARPInstallLocation 51 ARPINSTALLLOCATION [INSTALLLOCATION]
+SetInstalllocation 51 RegisterExtensions [INSTALLLOCATION]
NewProductFound 19 OOO_CUSTOMACTION_1
SameProductFound 19 OOO_CUSTOMACTION_2
SetLanguageSelected 51 LANG_SELECTED 1
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt
index defde2299409..13ac5a5aaf55 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt
@@ -173,6 +173,7 @@ ScheduleReboot ISSCHEDULEREBOOT 3125
SelfRegModules 2850
SelfUnregModules 1100
SetARPInstallLocation 990
+SetInstalllocation 3140
SetODBCFolders 550
StartServices VersionNT 2800
StopServices VersionNT 950
diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst
index 9f7188d578e7..d5121ad0bee0 100644
--- a/instsetoo_native/util/openoffice.lst
+++ b/instsetoo_native/util/openoffice.lst
@@ -56,7 +56,7 @@ LibreOffice
PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION
+ SHORT_PRODUCTEXTENSION beta2
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 3
@@ -121,7 +121,7 @@ LibreOffice_wJRE
PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION
+ SHORT_PRODUCTEXTENSION beta2
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 3
@@ -185,7 +185,7 @@ LibreOffice_Dev
PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION
+ SHORT_PRODUCTEXTENSION beta2
BASISROOTNAME LibO-dev
UNIXBASISROOTNAME lo-dev
POSTVERSIONEXTENSION
@@ -261,7 +261,7 @@ URE
PRODUCTEXTENSION
BRANDPACKAGEVERSION 3
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION
+ SHORT_PRODUCTEXTENSION beta2
LICENSENAME LGPL
SETSTATICPATH 1
NOVERSIONINDIRNAME 1
@@ -299,7 +299,7 @@ LibreOffice_SDK
PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION
+ SHORT_PRODUCTEXTENSION beta2
POSTVERSIONEXTENSION SDK
POSTVERSIONEXTENSIONUNIX sdk
BRANDPACKAGEVERSION 3
@@ -345,7 +345,7 @@ LibreOffice_Dev_SDK
PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION
+ SHORT_PRODUCTEXTENSION beta2
BASISROOTNAME LibO-dev
UNIXBASISROOTNAME lo-dev
POSTVERSIONEXTENSION SDK
@@ -397,7 +397,7 @@ OxygenOffice
PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION rc2
+ SHORT_PRODUCTEXTENSION beta2
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 3
@@ -467,7 +467,7 @@ OxygenOffice_wJRE
PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION rc2
+ SHORT_PRODUCTEXTENSION beta2
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 3
diff --git a/ooo.lst.in b/ooo.lst.in
index c698634d86ca..bcd039083db6 100644
--- a/ooo.lst.in
+++ b/ooo.lst.in
@@ -41,7 +41,6 @@ c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz
ca66e26082cab8bb817185a116db809b-redland-1.0.8.tar.gz
d4c4d91ab3a8e52a2e69d48d34ef4df4-core.zip
d70951c80dabecc2892c919ff5d07172-db-4.7.25.NC-custom.tar.gz
-dbd5f3b47ed13132f04c685d608a7547-jpeg-6b.tar.gz
e0707ff896045731ff99e99799606441-README_db-4.7.25.NC-custom.txt
e81c2f0953aa60f8062c05a4673f2be0-Python-2.6.1.tar.bz2
e61d0364a30146aaa3001296f853b2b9-libxslt-1.1.26.tar.gz
@@ -65,6 +64,17 @@ eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
ff369e69ef0f0143beb5626164e87ae2-neon-0.29.5.tar.gz
+3dd55b952826d2b32f51308f2f91aa89-gettext-0.18.1.1.tar.gz
+9f6e85e1e38490c3956f4415bcd33e6e-glib-2.28.1.tar.gz
+a7d6c5f2fe2d481149ed3ba807b5c043-gdk-pixbuf-2.23.0.tar.gz
+3a84ac2da37cae5bf7ce616228c6fbde-libgsf-1.14.19.tar.gz
+22ad1c8d3fda7e73b0798035f3dd96bc-pango-1.28.3.tar.gz
+0611e099e807210cf738dcb41425d104-libcroco-0.6.2.tar.gz
+d7a242ca43e33e1b63d3073f9d46a6a8-librsvg-2.32.1.tar.gz
+220035f111ea045a51e290906025e8b5-libpng-1.5.1.tar.gz
+a2c10c04f396a9ce72894beb18b4e1f9-jpeg-8c.tar.gz
+c735eab2d659a96e5a594c9e8541ad63-zlib-1.2.5.tar.gz
+
314e582264c36b3735466c522899aa07-icu4c-4_4_2-src.tgz
451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
47e1edaa44269bc537ae8cabebb0f638-JLanguageTool-1.0.0.tar.bz2
diff --git a/scp2/source/accessories/module_samples_accessories.ulf b/scp2/source/accessories/module_samples_accessories.ulf
index 42166a600afb..b6a0f5229786 100644
--- a/scp2/source/accessories/module_samples_accessories.ulf
+++ b/scp2/source/accessories/module_samples_accessories.ulf
@@ -284,10 +284,16 @@ en-US = "Lao"
[STR_DESC_MODULE_LANGPACK_LO]
en-US = "Installs Lao support in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_LANGPACK_NS]
+[STR_NAME_MODULE_LANGPACK_MY]
+en-US = "Burmese"
+
+[STR_DESC_MODULE_LANGPACK_MY]
+en-US = "Installs Burmese (Myanmar) support in %PRODUCTNAME %PRODUCTVERSION"
+
+[STR_NAME_MODULE_LANGPACK_NSO]
en-US = "Northern Sotho"
-[STR_DESC_MODULE_LANGPACK_NS]
+[STR_DESC_MODULE_LANGPACK_NSO]
en-US = "Installs Northern Sotho support in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_LANGPACK_BN]
@@ -428,10 +434,10 @@ en-US = "Ukrainian"
[STR_DESC_MODULE_LANGPACK_UK]
en-US = "Installs Ukrainian support in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_LANGPACK_BE_BY]
+[STR_NAME_MODULE_LANGPACK_BE]
en-US = "Belarusian"
-[STR_DESC_MODULE_LANGPACK_BE_BY]
+[STR_DESC_MODULE_LANGPACK_BE]
en-US = "Installs Belarusian support in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_LANGPACK_SL]
diff --git a/scp2/source/accessories/module_templates_accessories.ulf b/scp2/source/accessories/module_templates_accessories.ulf
index 31411cb4743b..da17fc11244f 100644
--- a/scp2/source/accessories/module_templates_accessories.ulf
+++ b/scp2/source/accessories/module_templates_accessories.ulf
@@ -279,10 +279,16 @@ en-US = "Lao"
[STR_DESC_MODULE_LANGPACK_LO]
en-US = "Installs Lao support in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_LANGPACK_NS]
+[STR_NAME_MODULE_LANGPACK_MY]
+en-US = "Burmese"
+
+[STR_DESC_MODULE_LANGPACK_MY]
+en-US = "Installs Burmese (Myanmar) support in %PRODUCTNAME %PRODUCTVERSION"
+
+[STR_NAME_MODULE_LANGPACK_NSO]
en-US = "Northern Sotho"
-[STR_DESC_MODULE_LANGPACK_NS]
+[STR_DESC_MODULE_LANGPACK_NSO]
en-US = "Installs Northern Sotho support in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_LANGPACK_BN]
@@ -423,10 +429,10 @@ en-US = "Ukrainian"
[STR_DESC_MODULE_LANGPACK_UK]
en-US = "Installs Ukrainian support in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_LANGPACK_BE_BY]
+[STR_NAME_MODULE_LANGPACK_BE]
en-US = "Belarusian"
-[STR_DESC_MODULE_LANGPACK_BE_BY]
+[STR_DESC_MODULE_LANGPACK_BE]
en-US = "Installs Belarusian support in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_LANGPACK_SL]
diff --git a/scp2/source/base/registryitem_base.scp b/scp2/source/base/registryitem_base.scp
index 833ed3905241..833ed3905241 100755..100644
--- a/scp2/source/base/registryitem_base.scp
+++ b/scp2/source/base/registryitem_base.scp
diff --git a/scp2/source/calc/registryitem_calc.scp b/scp2/source/calc/registryitem_calc.scp
index 8220610ec5c3..8220610ec5c3 100755..100644
--- a/scp2/source/calc/registryitem_calc.scp
+++ b/scp2/source/calc/registryitem_calc.scp
diff --git a/scp2/source/canvas/mtfrenderer.scp b/scp2/source/canvas/mtfrenderer.scp
index fa2a3f908a49..fa2a3f908a49 100755..100644
--- a/scp2/source/canvas/mtfrenderer.scp
+++ b/scp2/source/canvas/mtfrenderer.scp
diff --git a/scp2/source/draw/registryitem_draw.scp b/scp2/source/draw/registryitem_draw.scp
index d722319649cd..d722319649cd 100755..100644
--- a/scp2/source/draw/registryitem_draw.scp
+++ b/scp2/source/draw/registryitem_draw.scp
diff --git a/scp2/source/extensions/module_extensions_lightproof.ulf b/scp2/source/extensions/module_extensions_lightproof.ulf
index 944f4e745f34..b78fe12a00d7 100644
--- a/scp2/source/extensions/module_extensions_lightproof.ulf
+++ b/scp2/source/extensions/module_extensions_lightproof.ulf
@@ -274,10 +274,16 @@ en-US = "Lao"
[STR_DESC_MODULE_LANGPACK_LO]
en-US = "Installs Lao support in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_LANGPACK_NS]
+[STR_NAME_MODULE_LANGPACK_MY]
+en-US = "Burmese"
+
+[STR_DESC_MODULE_LANGPACK_MY]
+en-US = "Installs Burmese (Myanmar) support in %PRODUCTNAME %PRODUCTVERSION"
+
+[STR_NAME_MODULE_LANGPACK_NSO]
en-US = "Northern Sotho"
-[STR_DESC_MODULE_LANGPACK_NS]
+[STR_DESC_MODULE_LANGPACK_NSO]
en-US = "Installs Northern Sotho support in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_LANGPACK_BN]
@@ -418,10 +424,10 @@ en-US = "Ukrainian"
[STR_DESC_MODULE_LANGPACK_UK]
en-US = "Installs Ukrainian support in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_LANGPACK_BE_BY]
+[STR_NAME_MODULE_LANGPACK_BE]
en-US = "Belarusian"
-[STR_DESC_MODULE_LANGPACK_BE_BY]
+[STR_DESC_MODULE_LANGPACK_BE]
en-US = "Installs Belarusian support in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_LANGPACK_SL]
diff --git a/scp2/source/extensions/module_extensions_sun_templates.ulf b/scp2/source/extensions/module_extensions_sun_templates.ulf
index 944f4e745f34..b78fe12a00d7 100644
--- a/scp2/source/extensions/module_extensions_sun_templates.ulf
+++ b/scp2/source/extensions/module_extensions_sun_templates.ulf
@@ -274,10 +274,16 @@ en-US = "Lao"
[STR_DESC_MODULE_LANGPACK_LO]
en-US = "Installs Lao support in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_LANGPACK_NS]
+[STR_NAME_MODULE_LANGPACK_MY]
+en-US = "Burmese"
+
+[STR_DESC_MODULE_LANGPACK_MY]
+en-US = "Installs Burmese (Myanmar) support in %PRODUCTNAME %PRODUCTVERSION"
+
+[STR_NAME_MODULE_LANGPACK_NSO]
en-US = "Northern Sotho"
-[STR_DESC_MODULE_LANGPACK_NS]
+[STR_DESC_MODULE_LANGPACK_NSO]
en-US = "Installs Northern Sotho support in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_LANGPACK_BN]
@@ -418,10 +424,10 @@ en-US = "Ukrainian"
[STR_DESC_MODULE_LANGPACK_UK]
en-US = "Installs Ukrainian support in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_LANGPACK_BE_BY]
+[STR_NAME_MODULE_LANGPACK_BE]
en-US = "Belarusian"
-[STR_DESC_MODULE_LANGPACK_BE_BY]
+[STR_DESC_MODULE_LANGPACK_BE]
en-US = "Installs Belarusian support in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_LANGPACK_SL]
diff --git a/scp2/source/impress/registryitem_impress.scp b/scp2/source/impress/registryitem_impress.scp
index 063bcf91f4eb..063bcf91f4eb 100755..100644
--- a/scp2/source/impress/registryitem_impress.scp
+++ b/scp2/source/impress/registryitem_impress.scp
diff --git a/scp2/source/ooo/directory_ooo_macosx.scp b/scp2/source/ooo/directory_ooo_macosx.scp
index ee4ad7522938..ee4ad7522938 100755..100644
--- a/scp2/source/ooo/directory_ooo_macosx.scp
+++ b/scp2/source/ooo/directory_ooo_macosx.scp
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index 922c07a5754a..bbca5d19a91e 100755..100644
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -803,17 +803,6 @@ End
#ifdef WNT
-File gid_File_Lib_relnotes
- BIN_FILE_BODY;
- Styles = (PACKED, BINARYTABLE, BINARYTABLE_ONLY, DONTRENAMEINPATCH);
- Dir = SCP2_OOO_BIN_DIR;
- Name = "relnotes.dll";
-End
-
-#endif
-
-#ifdef WNT
-
File gid_File_Lib_Patchmsi
TXT_FILE_BODY;
Name = "patchmsi.dll";
@@ -1729,6 +1718,153 @@ STD_LIB_FILE(gid_File_Lib_Unordf, unordf)
STD_LIB_FILE( gid_File_Lib_For, for)
STD_LIB_FILE( gid_File_Lib_Forui, forui)
+// RSVG and dependencies
+#if ! defined (SYSTEM_GETTEXT)
+File gid_File_Lib_Intl
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libintl.8.dylib";
+ #elif defined WNT
+ Name = "intl.dll";
+ #endif
+End
+#endif
+
+#if ! defined SYSTEM_GLIB
+File gid_File_Lib_Glib
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libglib-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libglib-2.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Gthread
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgthread-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgthread-2.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Gobject
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgobject-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgobject-2.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Gio
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgio-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgio-2.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Gmodule
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgmodule-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgmodule-2.0-0.dll";
+ #endif
+End
+#endif
+
+#if ! defined SYSTEM_GDKPIXBUF
+File gid_File_Lib_Gdkpixbuf
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libgdk_pixbuf-2.0.0.dylib";
+ #elif defined WNT
+ Name = "libgdk_pixbuf-2.0-0.dll";
+ #endif
+End
+#endif
+
+#if ! defined SYSTEM_LIBCROCO
+File gid_File_Lib_Libcroco
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libcroco-0.6.3.0.1.dylib";
+ #elif defined WNT
+ Name = "libcroco-0.6-3.dll";
+ #endif
+End
+#endif
+
+#if ! defined SYSTEM_PANGO
+File gid_File_Lib_Libpango
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libpango-1.0.0.dylib";
+ #elif defined WNT
+ Name = "libpango-1.0-0.dll";
+ #endif
+End
+File gid_File_Lib_Libpangocairo
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "libpangocairo-1.0.0.dylib";
+ #elif defined WNT
+ Name = "libpangocairo-1.0-0.dll";
+ #endif
+End
+#if defined WNT
+File gid_File_Lib_Libpangowin32
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ Name = "libpangowin32-1.0-0.dll";
+End
+#endif
+#endif
+
+#if ! defined SYSTEM_LIBGSF
+File gid_File_Lib_Libgsf
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+#ifdef WNT
+ Name = "gsf-1.dll";
+#endif
+End
+#endif
+
+#if ! defined SYSTEM_LIBRSVG
+File gid_File_Lib_Librsvg
+ TXT_FILE_BODY;
+ Styles = (PACKED);
+ Dir = SCP2_OOO_BIN_DIR;
+ #ifdef MACOSX
+ Name = "librsvg-2.2.dylib";
+ #elif defined WNT
+ Name = "librsvg-2-2.dll";
+ #endif
+End
+#endif
#ifdef WNT
File gid_File_Lib_sellangmsi
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index 0c618093bc85..bd291fb786e2 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -2133,3 +2133,4 @@ End
// UnixRights = 444;
// End
// #endif
+
diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk
index 1df99f36fb3e..4dba9553e8b0 100644
--- a/scp2/source/ooo/makefile.mk
+++ b/scp2/source/ooo/makefile.mk
@@ -246,6 +246,38 @@ SCPDEFS+=-DMINGW_GCCDLL=\""$(MINGW_GCCDLL)"\"
SCPDEFS+=-DMINGW_GXXDLL=\""$(MINGW_GXXDLL)"\"
.ENDIF
+.IF "$(SYSTEM_GDKPIXBUF)" == "YES"
+SCPDEFS+=-DSYSTEM_GDKPIXBUF
+.ENDIF
+
+.IF "$(SYSTEM_GETTEXT)" == "YES"
+SCPDEFS+=-DSYSTEM_GETTEXT
+.ENDIF
+
+.IF "$(SYSTEM_GLIB)" == "YES"
+SCPDEFS+=-DSYSTEM_GLIB
+.ENDIF
+
+.IF "$(SYSTEM_LIBCROCO)" == "YES"
+SCPDEFS+=-DSYSTEM_LIBCROCO
+.ENDIF
+
+.IF "$(SYSTEM_LIBJPEG)" == "YES"
+SCPDEFS+=-DSYSTEM_LIBJPEG
+.ENDIF
+
+.IF "$(SYSTEM_LIBRSVG)" == "YES"
+SCPDEFS+=-DSYSTEM_LIBRSVG
+.ENDIF
+
+.IF "$(SYSTEM_PANGO)" == "YES"
+SCPDEFS+=-DSYSTEM_PANGO
+.ENDIF
+
+.IF "$(SYSTEM_LIBGSF)" == "YES"
+SCPDEFS+=-DSYSTEM_LIBGSF
+.ENDIF
+
.IF "$(ENABLE_LOMENUBAR)" == "TRUE"
SCPDEFS+=-DENABLE_LOMENUBAR
.ENDIF
diff --git a/scp2/source/ooo/module_helppack.ulf b/scp2/source/ooo/module_helppack.ulf
index 64604c3cf424..b9bb3616fabd 100644
--- a/scp2/source/ooo/module_helppack.ulf
+++ b/scp2/source/ooo/module_helppack.ulf
@@ -271,10 +271,10 @@ en-US = "Lao"
[STR_DESC_MODULE_HELPPACK_LO]
en-US = "Installs Lao help in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_HELPPACK_NS]
+[STR_NAME_MODULE_HELPPACK_NSO]
en-US = "Northern Sotho"
-[STR_DESC_MODULE_HELPPACK_NS]
+[STR_DESC_MODULE_HELPPACK_NSO]
en-US = "Installs Northern Sotho help in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_HELPPACK_BN]
@@ -421,10 +421,10 @@ en-US = "Ukrainian"
[STR_DESC_MODULE_HELPPACK_UK]
en-US = "Installs Ukrainian help in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_HELPPACK_BE_BY]
+[STR_NAME_MODULE_HELPPACK_BE]
en-US = "Belarusian"
-[STR_DESC_MODULE_HELPPACK_BE_BY]
+[STR_DESC_MODULE_HELPPACK_BE]
en-US = "Installs Belarusian help in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_HELPPACK_SL]
diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp
index 4e4fbb9fe678..d2d46cd9f1e0 100644
--- a/scp2/source/ooo/module_hidden_ooo.scp
+++ b/scp2/source/ooo/module_hidden_ooo.scp
@@ -303,6 +303,32 @@ Module gid_Module_Root_Files_5
Default = YES;
Styles = (HIDDEN_ROOT);
Files = (gid_File_Dat_Root5,
+#if ! defined SYSTEM_GETTEXT
+ gid_File_Lib_Intl,
+#endif
+#if ! defined SYSTEM_GLIB
+ gid_File_Lib_Glib,
+ gid_File_Lib_Gobject,
+ gid_File_Lib_Gthread,
+ gid_File_Lib_Gmodule,
+ gid_File_Lib_Gio,
+#endif
+#if ! defined SYSTEM_GDKPIXBUF
+ gid_File_Lib_Gdkpixbuf,
+#endif
+#if ! defined SYSTEM_LIBCROCO
+ gid_File_Lib_Libcroco,
+#endif
+#if ! defined SYSTEM_PANGO
+ gid_File_Lib_Libpango,
+ gid_File_Lib_Libpangocairo,
+#ifdef WNT
+ gid_File_Lib_Libpangowin32,
+#endif
+#endif
+#if ! defined SYSTEM_LIBGSF
+ gid_File_Lib_Libgsf,
+#endif
gid_File_Lib_Dict_Ja,
gid_File_Lib_Dict_Zh,
gid_File_Lib_Collator_Data,
@@ -430,7 +456,6 @@ Module gid_Module_Root_Files_5
gid_File_Lib_Lomenubar,
#endif
gid_File_Lib_sn_tools,
- gid_File_Lib_relnotes,
GID_FILE_LIB_WPD,
gid_File_Lib_Mingw_GccS,
gid_File_Lib_Mingw_Stdcpp,
@@ -862,4 +887,3 @@ End
// Styles = (HIDDEN_ROOT);
// End
// #endif
-
diff --git a/scp2/source/ooo/module_lang_template.scp b/scp2/source/ooo/module_lang_template.scp
index f801a6201dc6..f801a6201dc6 100755..100644
--- a/scp2/source/ooo/module_lang_template.scp
+++ b/scp2/source/ooo/module_lang_template.scp
diff --git a/scp2/source/ooo/module_langpack.ulf b/scp2/source/ooo/module_langpack.ulf
index 3f9e27bf1784..7e1f9e6e8d3e 100644
--- a/scp2/source/ooo/module_langpack.ulf
+++ b/scp2/source/ooo/module_langpack.ulf
@@ -271,10 +271,16 @@ en-US = "Lao"
[STR_DESC_MODULE_LANGPACK_LO]
en-US = "Installs the Lao user interface"
-[STR_NAME_MODULE_LANGPACK_NS]
+[STR_NAME_MODULE_LANGPACK_MY]
+en-US = "Burmese"
+
+[STR_DESC_MODULE_LANGPACK_MY]
+en-US = "Installs the Burmese (Myanmar) user interface"
+
+[STR_NAME_MODULE_LANGPACK_NSO]
en-US = "Northern Sotho"
-[STR_DESC_MODULE_LANGPACK_NS]
+[STR_DESC_MODULE_LANGPACK_NSO]
en-US = "Installs the Northern Sotho user interface"
[STR_NAME_MODULE_LANGPACK_BN]
@@ -421,10 +427,10 @@ en-US = "Ukrainian"
[STR_DESC_MODULE_LANGPACK_UK]
en-US = "Installs the Ukrainian user interface"
-[STR_NAME_MODULE_LANGPACK_BE_BY]
+[STR_NAME_MODULE_LANGPACK_BE]
en-US = "Belarusian"
-[STR_DESC_MODULE_LANGPACK_BE_BY]
+[STR_DESC_MODULE_LANGPACK_BE]
en-US = "Installs the Belarusian user interface"
[STR_NAME_MODULE_LANGPACK_SL]
diff --git a/scp2/source/ooo/shortcut_ooo.scp b/scp2/source/ooo/shortcut_ooo.scp
index cec7ed172b52..9f400afbbed0 100644
--- a/scp2/source/ooo/shortcut_ooo.scp
+++ b/scp2/source/ooo/shortcut_ooo.scp
@@ -87,6 +87,13 @@ Shortcut gid_Shortcut_Lib_Hsqldb_2
Styles = (NETWORK, RELATIVE);
End
+Shortcut gid_Shortcut_Lib_Libcroco
+ FileID = gid_File_Lib_Libcroco;
+ Dir = SCP2_OOO_BIN_DIR;
+ Name = "libcroco-0.6.3.dylib";
+ Styles = (NETWORK, RELATIVE);
+End
+
#endif
//i44154 -end-
diff --git a/scp2/source/ooo/ure.scp b/scp2/source/ooo/ure.scp
index 6d61daff3df0..6d61daff3df0 100755..100644
--- a/scp2/source/ooo/ure.scp
+++ b/scp2/source/ooo/ure.scp
diff --git a/scp2/source/ooo/ure_into_ooo.scp b/scp2/source/ooo/ure_into_ooo.scp
index 397d8fd8f2da..397d8fd8f2da 100755..100644
--- a/scp2/source/ooo/ure_into_ooo.scp
+++ b/scp2/source/ooo/ure_into_ooo.scp
diff --git a/scp2/source/ooo/ure_standalone.scp b/scp2/source/ooo/ure_standalone.scp
index 8579139f95e3..8579139f95e3 100755..100644
--- a/scp2/source/ooo/ure_standalone.scp
+++ b/scp2/source/ooo/ure_standalone.scp
diff --git a/scp2/source/ooo/windowscustomaction_ooo.scp b/scp2/source/ooo/windowscustomaction_ooo.scp
index dd0874492ec9..f35482e4dd39 100755..100644
--- a/scp2/source/ooo/windowscustomaction_ooo.scp
+++ b/scp2/source/ooo/windowscustomaction_ooo.scp
@@ -210,12 +210,12 @@ End
WindowsCustomAction gid_Customaction_Register_Extensions
Name = "RegisterExtensions";
- Typ = "65";
+ Typ = "1025";
Source = "shlxtmsi.dll";
Target = "RegisterExtensions";
Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "end");
- Assignment2 = ("AdminExecuteSequence", "Not REMOVE=\"ALL\"", "end");
+ Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "behind_SetInstalllocation");
+ Assignment2 = ("AdminExecuteSequence", "Not REMOVE=\"ALL\"", "behind_SetInstalllocation");
End
WindowsCustomAction gid_Customaction_Remove_Extensions
@@ -273,8 +273,8 @@ WindowsCustomAction gid_Customaction_CopyExtensionData
Source = "shlxtmsi.dll";
Target = "copyExtensionData";
Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "RegisterExtensions");
- Assignment2 = ("AdminExecuteSequence", "", "RegisterExtensions");
+ Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "end");
+ Assignment2 = ("AdminExecuteSequence", "", "end");
End
WindowsCustomAction gid_Customaction_RegCleanOld
@@ -459,24 +459,6 @@ WindowsCustomAction gid_Customaction_CheckVersions
Assignment2 = ("InstallUISequence", "NOT Installed", "NewProductFound");
End
-WindowsCustomAction gid_Customaction_ShowReleaseNotes1
- Name = "ShowReleaseNotesBefore";
- Typ = "65";
- Source = "relnotes.dll";
- Target = "ShowReleaseNotesBefore";
- Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "(Not Installed or ISPATCH) and Not REMOVE=\"ALL\"", "behind_InstallValidate");
-End
-
-WindowsCustomAction gid_Customaction_ShowReleaseNotes2
- Name = "ShowReleaseNotesAfter";
- Typ = "65";
- Source = "relnotes.dll";
- Target = "ShowReleaseNotesAfter";
- Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "(Not Installed or ISPATCH) and Not REMOVE=\"ALL\"", "end");
-End
-
WindowsCustomAction gid_Customaction_SelectLanguage
Name = "SelectLanguage";
Typ = "321";
@@ -492,8 +474,8 @@ WindowsCustomAction gid_Customaction_RebaseLibrariesonproperties
Source = "rebase.dll";
Target = "RebaseLibrariesOnProperties";
Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\"", "end");
- Assignment2 = ("AdminExecuteSequence", "Not REMOVE=\"ALL\"", "end");
+ Assignment1 = ("InstallExecuteSequence", "VersionNT < 600 And Not REMOVE=\"ALL\"", "end");
+ Assignment2 = ("AdminExecuteSequence", "VersionNT < 600 And Not REMOVE=\"ALL\"", "end");
End
WindowsCustomAction gid_Customaction_LookForRegisteredExtensions
diff --git a/scp2/source/writer/registryitem_writer.scp b/scp2/source/writer/registryitem_writer.scp
index 6e3d9741430b..6e3d9741430b 100755..100644
--- a/scp2/source/writer/registryitem_writer.scp
+++ b/scp2/source/writer/registryitem_writer.scp
diff --git a/set_soenv.in b/set_soenv.in
index ee990a9f2800..569a867f4677 100755
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -77,7 +77,7 @@ my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAVA_HOME, $JDK, $JAVAFLAGS, $OOO_SHELL,
$UPD, $WORK_STAMP, $gb_REPOS, $BUILD_TYPE,
$SOLARSRC, $DEVROOT, $SOLARVER, $SOLARVERSION, $WORKDIR, $OUTDIR, $SOLARENV, $SOLARDEFIMG,
$DMAKEROOT, $CLASSPATH, $XCLASSPATH, $COMPATH,
- $MSPDB_PATH, $MIDL_PATH, $CSC_PATH,
+ $MSPDB_PATH, $MIDL_PATH, $CSC_PATH, $SHOWINCLUDES_PREFIX,
$PATH, $SOLAREXTRAINC, $SOLAREXTRALIB, $SOLARLIB, $JAVALIB,
$SOLARINC, $FRAMEWORKSHOME, $COMEX, $PERL,
$COMP_ENV, $ILIB, $JAVAHOME, $WINDOWS_SDK_HOME, $DIRECTXSDK_LIB, $DOTNET_FRAMEWORK_HOME,
@@ -123,12 +123,8 @@ $JDK = '@JDK@';
$JAVAFLAGS = '@JAVAFLAGS@';
$MINGW = '@WITH_MINGW@'; # use MinGW for Windows build
$USE_MINGW = '@USE_MINGW@'; # use MinGW in cygwin or pure-mingw
-if ( $MINGW eq "yes" )
-{ $CC = '@CC@'; # C compiler
- $CXX = '@CXX@'; } # C++ compiler
-else
-{ $CC = PathFormat('@CC@'); # C compiler
- $CXX = PathFormat('@CXX@'); } # C++ compiler
+$CC = '@CC@'; # C compiler
+$CXX = '@CXX@'; # C++ compiler
$MOZILLA_VERSION = '@MOZILLA_VERSION@'; # mozilla version to use to build mozilla
$MOZILLA_TOOLKIT = '@MOZILLA_TOOLKIT@'; # GUI toolkit to use to build mozilla
$FLIPCMD = ""; # Flip '/' to '\' wrapper (only for winnt)
@@ -199,7 +195,7 @@ if ( $platform =~ m/solaris/ )
$CPU = "I";
$CPUNAME = "INTEL";
$JRELIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386";
- $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."motif21";
+ $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."xawt";
$JRETHREADDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."native_threads";
}
@@ -215,7 +211,7 @@ if ( $platform =~ m/solaris/ )
$CPU = "S";
$CPUNAME = "SPARC";
$JRELIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc";
- $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc".$ds."motif21";
+ $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc".$ds."xawt";
$JRETHREADDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc".$ds."native_threads";
}
@@ -639,6 +635,7 @@ elsif ( $platform =~ m/cygwin|mingw32/ )
$MSPDB_PATH = PathFormat('@MSPDB_PATH@');
$MIDL_PATH = PathFormat('@MIDL_PATH@');
$CSC_PATH = PathFormat('@CSC_PATH@');
+ $SHOWINCLUDES_PREFIX = '@SHOWINCLUDES_PREFIX@';
$WINDOWS_SDK_HOME = PathFormat('@WINDOWS_SDK_HOME@');
$DIRECTXSDK_LIB = PathFormat('@DIRECTXSDK_LIB@');
$USE_DIRECTX5 = "";
@@ -1558,12 +1555,13 @@ ToFile( "DEFAULT_TO_ENGLISH_FOR_PACKING", "yes", "e" );
ToFile( "ENABLE_GTK", "@ENABLE_GTK@", "e" );
ToFile( "GTK_CFLAGS", "@GTK_CFLAGS@", "e" );
ToFile( "GTK_LIBS", "@GTK_LIBS@", "e" );
+ToFile( "GTHREAD_CFLAGS", "@GTHREAD_CFLAGS@", "e" );
+ToFile( "GTHREAD_LIBS", "@GTHREAD_LIBS@", "e" );
ToFile( "ENABLE_SYSTRAY_GTK", "@ENABLE_SYSTRAY_GTK@", "e" );
ToFile( "ENABLE_STATIC_GTK", "@ENABLE_STATIC_GTK@", "e" );
ToFile( "ENABLE_CAIRO", "@ENABLE_CAIRO@", "e" );
ToFile( "ENABLE_OPENGL", "@ENABLE_OPENGL@", "e" );
ToFile( "ENABLE_PDFIMPORT", "@ENABLE_PDFIMPORT@", "e" );
-ToFile( "ENABLE_PRESENTER_EXTRA_UI","@ENABLE_PRESENTER_EXTRA_UI@","e" );
ToFile( "ENABLE_MINIMIZER", "@ENABLE_MINIMIZER@","e" );
ToFile( "ENABLE_PRESENTER_SCREEN","@ENABLE_PRESENTER_SCREEN@","e" );
ToFile( "ENABLE_REPORTBUILDER","@ENABLE_REPORTBUILDER@","e" );
@@ -1987,6 +1985,15 @@ ToFile( "MDDS_CPPFLAGS", "@MDDS_CPPFLAGS@", "e" );
ToFile( "SYSTEM_MDDS", "@SYSTEM_MDDS@", "e" );
ToFile( "SYSTEM_VIGRA", "@SYSTEM_VIGRA@", "e" );
ToFile( "SYSTEM_NEON", "@SYSTEM_NEON@", "e" );
+ToFile( "SYSTEM_LIBRSVG", "@SYSTEM_LIBRSVG@", "e" );
+ToFile( "SYSTEM_GDKPIXBUF", "@SYSTEM_GDKPIXBUF@", "e" );
+ToFile( "SYSTEM_GLIB", "@SYSTEM_GLIB@", "e" );
+ToFile( "SYSTEM_GETTEXT", "@SYSTEM_GETTEXT@", "e" );
+ToFile( "SYSTEM_LIBCROCO", "@SYSTEM_LIBCROCO@", "e" );
+ToFile( "SYSTEM_PANGO", "@SYSTEM_PANGO@", "e" );
+ToFile( "SYSTEM_LIBGSF", "@SYSTEM_LIBGSF@", "e" );
+ToFile( "SYSTEM_LIBPNG", "@SYSTEM_LIBPNG@", "e" );
+ToFile( "SYSTEM_LIBJPEG", "@SYSTEM_LIBJPEG@", "e" );
ToFile( "NEON_VERSION", "@NEON_VERSION@", "e" );
ToFile( "NEON_LIBS", "@NEON_LIBS@", "e" );
ToFile( "NEON_CFLAGS", "@NEON_CFLAGS@", "e" );
diff --git a/solenv/bin/checkdll.sh b/solenv/bin/checkdll.sh
index 42a6725750a4..aa281af5d353 100755
--- a/solenv/bin/checkdll.sh
+++ b/solenv/bin/checkdll.sh
@@ -42,7 +42,7 @@ if [ -x $checkdll ]; then
-L) shift; option=$1;;
--) break;;
esac
- case "${libpath+X}" in
+ case "${libpath:+X}" in
X) libpath=$libpath:$option;;
*) libpath=$option;;
esac
diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl
index 52b2ffa343ec..7ac07d9f88b0 100644
--- a/solenv/bin/macosx-change-install-names.pl
+++ b/solenv/bin/macosx-change-install-names.pl
@@ -43,6 +43,7 @@ sub action($$$)
'shl/URELIB/URELIB' => '@loader_path',
'shl/OOO/URELIB' => '@loader_path/../ure-link/lib',
'shl/OOO/OOO' => '@loader_path',
+ 'shl/LOADER/LOADER' => '@loader_path',
'shl/OXT/URELIB' => '@executable_path/urelibs',
'shl/BOXT/URELIB' => '@executable_path/urelibs',
'shl/BOXT/OOO' => '@loader_path/../../../basis-link/program',
@@ -57,7 +58,7 @@ sub action($$$)
}
@ARGV == 3 || @ARGV >= 2 && $ARGV[0] eq "extshl" or die
- 'Usage: app|shl|extshl UREBIN|URELIB|OOO|SDK|BRAND|OXT|BOXT|NONE <filepath>*';
+ 'Usage: app|shl|extshl UREBIN|URELIB|OOO|SDK|BRAND|OXT|BOXT|NONE|LOADER <filepath>*';
$type = shift @ARGV;
$loc = shift @ARGV;
if ($type eq "SharedLibrary")
@@ -85,10 +86,21 @@ if ($type eq "extshl")
$change .= " -change $1 " . action($type, $loc, $loc) . "/$2";
$inames{$file} = $2;
}
- foreach $file (@ARGV)
+ if( $loc eq "LOADER" )
{
- my $call = "install_name_tool$change -id \@__________________________________________________$loc/$inames{$file} $file";
- system($call) == 0 or die "cannot $call";
+ foreach $file (@ARGV)
+ {
+ my $call = "install_name_tool$change -id \@loader_path/$inames{$file} $file";
+ system($call) == 0 or die "cannot $call";
+ }
+ }
+ else
+ {
+ foreach $file (@ARGV)
+ {
+ my $call = "install_name_tool$change -id \@__________________________________________________$loc/$inames{$file} $file";
+ system($call) == 0 or die "cannot $call";
+ }
}
}
foreach $file (@ARGV)
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm
index 2f7249c24f47..ace634a3ac5e 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -94,7 +94,8 @@ BEGIN
"fur",
"ny",
"so",
- "kab"
+ "kab",
+ "tk"
);
@items_at_modules = ("Files", "Dirs", "Unixlinks");
@asianlanguages = ("ja", "ko", "zh-CN", "zh-TW");
@@ -385,6 +386,10 @@ BEGIN
%allcomponents_in_this_database = ();
%allshortcomponents = ();
%alluniquedirectorynames = ();
+ %allregistrycomponents_ = ();
+ %allregistrycomponents_in_this_database_ = ();
+ %allshortregistrycomponents = ();
+ %allregistryidentifier = ();
$installlocationdirectory = "";
$installlocationdirectoryset = 0;
diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm
index 8c844d55609c..9c5ec8c24394 100644
--- a/solenv/bin/modules/installer/parameter.pm
+++ b/solenv/bin/modules/installer/parameter.pm
@@ -397,7 +397,6 @@ sub setglobalvariables
if ($installer::globals::unpackpath eq "") # unpackpath not set
{
$installer::globals::unpackpath = cwd();
- if ( $installer::globals::iswin ) { $installer::globals::unpackpath =~ s/\//\\/g; }
}
if ( $installer::globals::localunpackdir ne "" ) { $installer::globals::unpackpath = $installer::globals::localunpackdir; }
diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm
index b96b1268a716..09b4cb1882a3 100644
--- a/solenv/bin/modules/installer/systemactions.pm
+++ b/solenv/bin/modules/installer/systemactions.pm
@@ -859,7 +859,7 @@ sub find_file_with_file_extension
push(@installer::globals::logfileinfo, $infoline);
opendir(DIR, $dir);
- @sourcefiles = readdir(DIR);
+ @sourcefiles = sort readdir(DIR);
closedir(DIR);
my $onefile;
diff --git a/solenv/bin/modules/installer/windows/file.pm b/solenv/bin/modules/installer/windows/file.pm
index 059c394278d6..c4315b43aceb 100644
--- a/solenv/bin/modules/installer/windows/file.pm
+++ b/solenv/bin/modules/installer/windows/file.pm
@@ -282,7 +282,7 @@ sub get_file_component_name
}
else
{
- if ( length($componentname) > 72 )
+ if ( length($componentname) > 60 )
{
# Using md5sum needs much time
# chomp(my $shorter = `echo $componentname | md5sum | sed -e "s/ .*//g"`);
@@ -674,7 +674,15 @@ sub get_language_for_file
if ( $fileref->{'specificlanguage'} ) { $language = $fileref->{'specificlanguage'}; }
- if (!($language eq ""))
+ if ( $language eq "" )
+ {
+ $language = 0; # language independent
+ # If this is not a font, the return value should be "0" (Check ICE 60)
+ my $styles = "";
+ if ( $fileref->{'Styles'} ) { $styles = $fileref->{'Styles'}; }
+ if ( $styles =~ /\bFONT\b/ ) { $language = ""; }
+ }
+ else
{
$language = installer::windows::language::get_windows_language($language);
}
diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm
index 333df0e8ea08..94b5dcc62399 100644
--- a/solenv/bin/modules/installer/windows/idtglobal.pm
+++ b/solenv/bin/modules/installer/windows/idtglobal.pm
@@ -49,11 +49,14 @@ sub shorten_feature_gid
my ($stringref) = @_;
$$stringref =~ s/gid_Module_/gm_/;
+ $$stringref =~ s/_Extension_/_ex_/;
$$stringref =~ s/_Root_/_r_/;
$$stringref =~ s/_Prg_/_p_/;
$$stringref =~ s/_Optional_/_o_/;
+ $$stringref =~ s/_Tools_/_tl_/;
$$stringref =~ s/_Wrt_Flt_/_w_f_/;
$$stringref =~ s/_Javafilter_/_jf_/;
+ $$stringref =~ s/_Productivity_/_pr_/;
}
############################################
diff --git a/solenv/bin/modules/installer/windows/msp.pm b/solenv/bin/modules/installer/windows/msp.pm
index 85945a05499d..7593c96a6ea8 100644
--- a/solenv/bin/modules/installer/windows/msp.pm
+++ b/solenv/bin/modules/installer/windows/msp.pm
@@ -27,6 +27,7 @@
package installer::windows::msp;
+use File::Copy;
use installer::control;
use installer::converter;
use installer::exiter;
@@ -85,6 +86,196 @@ sub install_installation_sets
}
#################################################################################
+# Collecting the destinations of all files with flag PATCH in a hash.
+#################################################################################
+
+sub collect_patch_file_destinations
+{
+ my ( $filesarray ) = @_;
+
+ my %patchfiledestinations = ();
+ my %nopatchfiledestinations = ();
+ my $patchcounter = 0;
+ my $nopatchcounter = 0;
+
+ for ( my $i = 0; $i <= $#{$filesarray}; $i++ )
+ {
+ my $onefile = ${$filesarray}[$i];
+ my $styles = "";
+
+ if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'} };
+
+ if ( $styles =~ /\bPATCH\b/ )
+ {
+ $patchfiledestinations{$onefile->{'destination'}} = 1;
+ $patchcounter++;
+ }
+ else
+ {
+ $nopatchfiledestinations{$onefile->{'destination'}} = 1;
+ $nopatchcounter++;
+ }
+ }
+
+ return (\%patchfiledestinations, \%nopatchfiledestinations, $patchcounter, $nopatchcounter);
+}
+
+#################################################################################
+# Returning the first path segment of a path
+#################################################################################
+
+sub get_first_path_segment
+{
+ my ( $path ) = @_;
+
+ my $firstsegment = "";
+ my $remainder = $path;
+
+ if ( $path =~ /^\s*(.*?)[\/\\](.*)\s*$/ )
+ {
+ $firstsegment = $1;
+ $remainder = $2;
+ }
+
+ return ($firstsegment, $remainder);
+}
+
+#################################################################################
+# Finding the flexible path in the destinations, that are saved in
+# the hash $nopatchfiledestinations.
+#################################################################################
+
+sub prepare_path_in_nopatchfilehash
+{
+ my ($nopatchfiledestinations, $newpath) = @_;
+
+ my $infoline = "";
+ my $flexiblepath = "";
+ my $found = 0;
+ my %checked_destinations = ();
+
+ foreach my $onedestination ( keys %{$nopatchfiledestinations} )
+ {
+ $flexiblepath = "";
+ $found = 0;
+
+ my $found_first_segement = 1;
+ my $firstsegement = "";
+ my $fixedpath = $onedestination;
+ my $testfile = $newpath . $installer::globals::separator . $fixedpath;
+
+ while (( ! -f $testfile ) && ( $found_first_segement ))
+ {
+ $firstsegement = "";
+ ( $firstsegement, $fixedpath ) = get_first_path_segment($fixedpath);
+
+ if ( $firstsegement ne "" )
+ {
+ $found_first_segement = 1;
+ $flexiblepath = $flexiblepath . $firstsegement . $installer::globals::separator;
+ }
+ else
+ {
+ $found_first_segement = 0;
+ }
+
+ $testfile = $newpath . $installer::globals::separator . $fixedpath;
+ }
+
+ if ( -f $testfile ) { $found = 1; }
+
+ if ( $found ) { last; }
+ }
+
+ if ( ! $found ) { installer::exiter::exit_program("ERROR: Could not determine flexible destination path for msp patch creation!", "prepare_path_in_nopatchfilehash"); }
+
+ $infoline = "Setting flexible path for msp creation: $flexiblepath\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ foreach my $onedestination ( keys %{$nopatchfiledestinations} )
+ {
+ $onedestination =~ s/^\s*\Q$flexiblepath\E//;
+ $checked_destinations{$onedestination} = 1;
+ }
+
+ return \%checked_destinations;
+}
+
+#################################################################################
+# Synchronizing the two installed products in that way, that only
+# files with flag PATCH are different.
+#################################################################################
+
+sub synchronize_installation_sets
+{
+ my ($olddatabase, $newdatabase, $filesarray) = @_;
+
+ my $infoline = "\nSynchronizing installed products because of PATCH flag\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "Old product: $olddatabase\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "New product: $newdatabase\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ my ( $patchfiledestinations, $nopatchfiledestinations, $patchfilecounter, $nopatchfilecounter ) = collect_patch_file_destinations($filesarray);
+
+ $infoline = "Number of files with PATCH flag: $patchfilecounter\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ $infoline = "Number of files without PATCH flag: $nopatchfilecounter\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ foreach my $localfile ( sort keys %{$patchfiledestinations} )
+ {
+ $infoline = "\tPATCH file: $localfile\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ }
+
+ my $oldpath = $olddatabase;
+ if ( $^O =~ /cygwin/i ) { $oldpath =~ s/\\/\//g; }
+ installer::pathanalyzer::get_path_from_fullqualifiedname(\$oldpath);
+ $oldpath =~ s/\\\s*$//;
+ $oldpath =~ s/\/\s*$//;
+
+ my $newpath = $newdatabase;
+ if ( $^O =~ /cygwin/i ) { $newpath =~ s/\\/\//g; }
+ installer::pathanalyzer::get_path_from_fullqualifiedname(\$newpath);
+ $newpath =~ s/\\\s*$//;
+ $newpath =~ s/\/\s*$//;
+
+ # The destination path is not correct. destinations in the hash contain
+ # the flexible installation path, that is not part in the administrative installation
+ $nopatchfiledestinations = prepare_path_in_nopatchfilehash($nopatchfiledestinations, $newpath);
+
+ foreach my $onedestination ( keys %{$nopatchfiledestinations} )
+ {
+ my $source = $oldpath . $installer::globals::separator . $onedestination;
+ my $dest = $newpath . $installer::globals::separator . $onedestination;
+
+ if ( -f $source )
+ {
+ if ( -f $dest )
+ {
+ my $copyreturn = copy($source, $dest);
+ # installer::systemactions::copy_one_file($source, $dest);
+ # $infoline = "Synchronizing file: $source to $dest\n";
+ # push( @installer::globals::logfileinfo, $infoline);
+ }
+ else
+ {
+ $infoline = "Not synchronizing. Destination file \"$dest\" does not exist.\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ }
+ }
+ else
+ {
+ $infoline = "Not synchronizing. Source file \"$source\" does not exist.\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ }
+ }
+}
+
+#################################################################################
# Extracting all tables from a pcp file
#################################################################################
@@ -1197,6 +1388,12 @@ sub create_msp_patch
installer::logger::print_message( "... installing products ...\n" );
my ($olddatabase, $newdatabase) = install_installation_sets($installationdir);
+ installer::logger::include_timestamp_into_logfile("\nPerformance Info: Starting synchronization of installation sets");
+
+ # Synchronizing installed products, allowing only different files with PATCH flag
+ installer::logger::print_message( "... synchronizing installation sets ...\n" );
+ synchronize_installation_sets($olddatabase, $newdatabase, $filesarray);
+
installer::logger::include_timestamp_into_logfile("\nPerformance Info: Starting pcp file creation");
# Create pcp file
diff --git a/solenv/bin/modules/installer/windows/property.pm b/solenv/bin/modules/installer/windows/property.pm
index 29e8b4d57b00..5cfa674dd7c0 100644
--- a/solenv/bin/modules/installer/windows/property.pm
+++ b/solenv/bin/modules/installer/windows/property.pm
@@ -307,6 +307,12 @@ sub set_important_properties
push(@{$propertyfile}, $onepropertyline);
}
+ if ( $allvariables->{'EXCLUDE_FROM_REBASE'} )
+ {
+ my $onepropertyline = "EXCLUDE_FROM_REBASE" . "\t" . $allvariables->{'EXCLUDE_FROM_REBASE'} . "\n";
+ push(@{$propertyfile}, $onepropertyline);
+ }
+
if ( $allvariables->{'PREREQUIREDPATCH'} )
{
my $onepropertyline = "PREREQUIREDPATCH" . "\t" . $allvariables->{'PREREQUIREDPATCH'} . "\n";
diff --git a/solenv/bin/modules/installer/windows/registry.pm b/solenv/bin/modules/installer/windows/registry.pm
index bc907d704f50..ad036865ebc3 100644
--- a/solenv/bin/modules/installer/windows/registry.pm
+++ b/solenv/bin/modules/installer/windows/registry.pm
@@ -61,12 +61,13 @@ sub get_registry_component_name
# Attention: Maximum length for the componentname is 72
+ # identifying this component as registryitem component
+ $componentname = "registry_" . $componentname;
+
$componentname =~ s/gid_module_/g_m_/g;
$componentname =~ s/_optional_/_o_/g;
$componentname =~ s/_javafilter_/_jf_/g;
- $componentname = $componentname . "_registry"; # identifying this component as registryitem component
-
# This componentname must be more specific
my $addon = "_";
if ( $allvariables->{'PRODUCTNAME'} ) { $addon = $addon . $allvariables->{'PRODUCTNAME'}; }
@@ -96,11 +97,74 @@ sub get_registry_component_name
elsif (( $styles =~ /\bHELPPACK\b/ ) && ( $installer::globals::helppack )) { $componentname = $componentname . "_help"; }
if ( $styles =~ /\bALWAYS_REQUIRED\b/ ) { $componentname = $componentname . "_forced"; }
+ # Attention: Maximum length for the componentname is 72
+ # %installer::globals::allregistrycomponents_in_this_database_ : resetted for each database
+ # %installer::globals::allregistrycomponents_ : not resetted for each database
+ # Component strings must be unique for the complete product, because they are used for
+ # the creation of the globally unique identifier.
+
+ my $fullname = $componentname; # This can be longer than 72
+
+ if (( exists($installer::globals::allregistrycomponents_{$fullname}) ) && ( ! exists($installer::globals::allregistrycomponents_in_this_database_{$fullname}) ))
+ {
+ # This is not allowed: One component cannot be installed with different packages.
+ installer::exiter::exit_program("ERROR: Windows registry component \"$fullname\" is already included into another package. This is not allowed.", "get_registry_component_name");
+ }
+
+ if ( exists($installer::globals::allregistrycomponents_{$fullname}) )
+ {
+ $componentname = $installer::globals::allregistrycomponents_{$fullname};
+ }
+ else
+ {
+ if ( length($componentname) > 60 )
+ {
+ $componentname = generate_new_short_registrycomponentname($componentname); # This has to be unique for the complete product, not only one package
+ }
+
+ $installer::globals::allregistrycomponents_{$fullname} = $componentname;
+ $installer::globals::allregistrycomponents_in_this_database_{$fullname} = 1;
+ }
+
if ( $isrootmodule ) { $installer::globals::registryrootcomponent = $componentname; }
return $componentname;
}
+#########################################################
+# Create a shorter version of a long component name,
+# because maximum length in msi database is 72.
+# Attention: In multi msi installation sets, the short
+# names have to be unique over all packages, because
+# this string is used to create the globally unique id
+# -> no resetting of
+# %installer::globals::allshortregistrycomponents
+# after a package was created.
+#########################################################
+
+sub generate_new_short_registrycomponentname
+{
+ my ($componentname) = @_;
+
+ my $shortcomponentname = "";
+ my $counter = 1;
+
+ my $startversion = substr($componentname, 0, 60); # taking only the first 60 characters
+ $startversion = $startversion . "_";
+
+ $shortcomponentname = $startversion . $counter;
+
+ while ( exists($installer::globals::allshortregistrycomponents{$shortcomponentname}) )
+ {
+ $counter++;
+ $shortcomponentname = $startversion . $counter;
+ }
+
+ $installer::globals::allshortregistrycomponents{$shortcomponentname} = 1;
+
+ return $shortcomponentname;
+}
+
##############################################################
# Returning identifier for registry table.
##############################################################
@@ -122,8 +186,16 @@ sub get_registry_identifier
$identifier =~ s/_clsid_/_c_/;
$identifier =~ s/_currentversion_/_cv_/;
$identifier =~ s/_microsoft_/_ms_/;
+ $identifier =~ s/_manufacturer_/_mf_/;
+ $identifier =~ s/_productname_/_pn_/;
+ $identifier =~ s/_productversion_/_pv_/;
$identifier =~ s/_staroffice_/_so_/;
+ $identifier =~ s/_software_/_sw_/;
+ $identifier =~ s/_capabilities_/_cap_/;
$identifier =~ s/_classpath_/_cp_/;
+ $identifier =~ s/_extension_/_ex_/;
+ $identifier =~ s/_fileassociations_/_fa_/;
+ $identifier =~ s/_propertysheethandlers_/_psh_/;
$identifier =~ s/__/_/g;
# Saving this in the registry collector
diff --git a/solenv/bin/modules/installer/worker.pm b/solenv/bin/modules/installer/worker.pm
index c50813f4ee27..ad4ac9d47de8 100644
--- a/solenv/bin/modules/installer/worker.pm
+++ b/solenv/bin/modules/installer/worker.pm
@@ -547,7 +547,7 @@ sub clean_jds_temp_dirs
###########################################################
# Setting one language in the language independent
-# array of include pathes with $(LANG)
+# array of include paths with $(LANG)
###########################################################
sub get_language_specific_include_pathes
@@ -2314,7 +2314,7 @@ sub add_variables_from_inc_to_hashref
}
##############################################
-# Collecting all files from include pathes
+# Collecting all files from include paths
##############################################
sub collect_all_files_from_includepathes
@@ -2322,7 +2322,7 @@ sub collect_all_files_from_includepathes
my ($patharrayref) = @_;
installer::logger::globallog("Reading all directories: Start");
- installer::logger::print_message( "... reading include pathes ...\n" );
+ installer::logger::print_message( "... reading include paths ...\n" );
# empty the global
@installer::globals::allincludepathes =();
diff --git a/solenv/bin/ooinstall b/solenv/bin/ooinstall
index b080598c91ed..c4f44b4d713b 100755
--- a/solenv/bin/ooinstall
+++ b/solenv/bin/ooinstall
@@ -13,7 +13,13 @@ use Cwd;
$path = '';
$do_link = 0;
+$is_windows = 0;
my $tmp_dir;
+
+if ($ENV{GUI} eq 'WNT') {
+ $is_windows = 1;
+}
+
if( defined($ENV{TMPDIR}) ) {
$tmp_dir = $ENV{TMPDIR};
} elsif( defined($ENV{TMP}) ) {
@@ -87,9 +93,9 @@ else {
$langs = join (",", @larr);
$destdir='';
-if ( defined $ENV{OODESTDIR} &&
- $ENV{OODESTDIR} ne "" ) {
- $destdir = "-destdir \"$ENV{OODESTDIR}\"";
+if ( defined $ENV{DESTDIR} &&
+ $ENV{DESTDIR} ne "" ) {
+ $destdir = "-destdir \"$ENV{DESTDIR}\"";
}
$strip='';
@@ -98,12 +104,18 @@ if ( defined $ENV{DISABLE_STRIP} &&
$strip = "-dontstrip";
}
-print "Running OOo installer\n";
+$msi='';
+if ($is_windows) {
+ $msi = "-msitemplate $ENV{SRC_ROOT}/instsetoo_native/$ENV{INPATH}/misc/openoffice/msi_templates " .
+ "-msilanguage $ENV{SRC_ROOT}/instsetoo_native/$ENV{INPATH}/misc/win_ulffiles";
+}
+
+print "Running LibreOffice installer\n";
system ("cd $ENV{SRC_ROOT}/instsetoo_native/util ; " .
"perl -w $ENV{SOLARENV}/bin/make_installer.pl " .
"-f openoffice.lst -l $langs -p LibreOffice " .
"-u $tmp_dir " .
- "-buildid $BUILD $destdir $strip " .
+ "-buildid $BUILD $destdir $strip $msi " .
"-simple $path") && die "Failed to install: $!";
if ($ENV{BUILD_TYPE} =~ m/ODK/) {
@@ -112,11 +124,11 @@ if ($ENV{BUILD_TYPE} =~ m/ODK/) {
"perl -w $ENV{SOLARENV}/bin/make_installer.pl " .
"-f openoffice.lst -l en-US -p LibreOffice_SDK " .
"-u $tmp_dir " .
- "-buildid $BUILD $destdir $strip " .
+ "-buildid $BUILD $destdir $strip $msi" .
"-simple $path") && die "Failed to install: $!";
}
print "Installer finished\n";
-if ($do_link) {
+if ($do_link && !$is_windows) {
`$ENV{SOLARENV}/bin/linkoo $path $ENV{SRC_ROOT}`;
}
diff --git a/solenv/gbuild/ComponentTarget.mk b/solenv/gbuild/ComponentTarget.mk
index 504bd5a64930..7b76fd39df84 100644
--- a/solenv/gbuild/ComponentTarget.mk
+++ b/solenv/gbuild/ComponentTarget.mk
@@ -53,16 +53,16 @@ endef
$(foreach repo,$(gb_ComponentTarget_REPOS),$(eval $(call gb_ComponentTarget__rules,$(repo))))
$(call gb_ComponentTarget_get_target,%) :
- $(eval $(call gb_Outpt_error,Unable to find component file $(call gb_ComponentTarget_get_source,,$*) in the repositories: $(gb_ComponentTarget_REPOS) or xlstproc is missing.))
+ $(eval $(call gb_Outpt_error,Unable to find component file $(call gb_ComponentTarget_get_source,,$*) in the repositories: $(gb_ComponentTarget_REPOS) or xsltproc is missing.))
$(call gb_ComponentTarget_get_external_target,%) :
$(call gb_Deliver_deliver,$<,$@)
define gb_ComponentTarget_ComponentTarget
-$(call gb_ComponentTarget_get_target,$(1)) : LIBFILENAME := $(3)
-$(call gb_ComponentTarget_get_target,$(1)) : COMPONENTPREFIX := $(2)
-$(call gb_ComponentTarget_get_outdir_target,$(1)) : $(call gb_ComponentTarget_get_target,$(1))
-$(call gb_Deliver_add_deliverable,$(call gb_ComponentTarget_get_outdir_target,$(1)),$(call gb_ComponentTarget_get_target,$(1)))
+$(call gb_ComponentTarget_get_target,$(4)) : LIBFILENAME := $(3)
+$(call gb_ComponentTarget_get_target,$(4)) : COMPONENTPREFIX := $(2)
+$(call gb_ComponentTarget_get_outdir_target,$(1)) : $(call gb_ComponentTarget_get_target,$(4))
+$(call gb_Deliver_add_deliverable,$(call gb_ComponentTarget_get_outdir_target,$(1)),$(call gb_ComponentTarget_get_target,$(4)))
endef
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 47640bdf0255..7eafe5b93e68 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -60,6 +60,7 @@ $$(eval $$(call gb_Output_error,Library $(1) must be registered in Repository.mk
endif
$(call gb_Library_get_target,$(1)) : AUXTARGETS :=
$(call gb_Library__Library_impl,$(1),$(call gb_Library_get_linktargetname,$(1)))
+$(call gb_Library_add_default_nativeres,$(1),default)
endef
@@ -79,9 +80,9 @@ $(call gb_Deliver_add_deliverable,$(call gb_Library_get_target,$(1)),$(call gb_L
endef
define gb_Library_set_componentfile
-$(call gb_ComponentTarget_ComponentTarget,$(2),$(call gb_Library__get_componentprefix,$(1)),$(call gb_Library_get_runtime_filename,$(1)))
-$(call gb_Library_get_target,$(1)) : $(call gb_ComponentTarget_get_outdir_target,$(2))
-$(call gb_Library_get_clean_target,$(1)) : $(call gb_ComponentTarget_get_clean_target,$(2))
+$(call gb_ComponentTarget_ComponentTarget,$(or $(strip $(3)),$(strip $(2))),$(call gb_Library__get_componentprefix,$(1)),$(call gb_Library_get_runtime_filename,$(1)),$(2))
+$(call gb_Library_get_target,$(1)) : $(call gb_ComponentTarget_get_outdir_target,$(or $(strip $(3)),$(strip $(2))))
+$(call gb_Library_get_clean_target,$(1)) : $(call gb_ComponentTarget_get_clean_target,$(or $(strip $(3)),$(strip $(2))))
endef
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index dfbbb916da71..3584fd35118f 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -453,6 +453,7 @@ $(call gb_LinkTarget_get_target,$(1)) : PCHOBJS :=
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : PDBFILE :=
$(call gb_LinkTarget_get_target,$(1)) : EXTRAOBJECTLISTS :=
+$(call gb_LinkTarget_get_target,$(1)) : NATIVERES :=
ifeq ($(gb_FULLDEPS),$(true))
ifneq ($(wildcard $(call gb_LinkTarget_get_dep_target,$(1))),)
@@ -694,6 +695,7 @@ endef
define gb_LinkTarget_add_linktarget_objects
$(call gb_LinkTarget_get_target,$(1)) : $(foreach linktarget,$(2),$(call gb_LinkTarget_get_target,$(linktarget)))
+$(info gb_LinkTarget_add_linktarget_objects,$(1),$(2))
$(call gb_LinkTarget_get_target,$(1)) : EXTRAOBJECTLISTS += $(foreach linktarget,$(2),$(call gb_LinkTarget_get_objects_list,$(linktarget)))
endef
@@ -703,6 +705,7 @@ ifneq (,$$(filter-out $(gb_Library_KNOWNLIBS),$(2)))
$$(eval $$(call gb_Output_info,currently known libraries are: $(sort $(gb_Library_KNOWNLIBS)),ALL))
$$(eval $$(call gb_Output_error,Cannot import objects library/libraries $$(filter-out $(gb_Library_KNOWNLIBS),$(2)). Libraries must be registered in Repository.mk))
endif
+$(info gb_LinkTarget_add_library_objects,$(1),$(2))
$(call gb_LinkTarget_add_linktarget_objects,$(1),$(foreach lib,$(2),$(call gb_Library_get_linktargetname,$(lib))))
endef
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index f2c7320452df..40ccb305ae7f 100644..100755
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -92,6 +92,7 @@ gb_SrsPartTarget_get_target = $(WORKDIR)/SrsPartTarget/$(1)
gb_SrsTarget_get_target = $(WORKDIR)/SrsTarget/$(1).srs
gb_SrsTemplatePartTarget_get_target = $(WORKDIR)/inc/$(firstword $(subst /, ,$(1)))/$(subst _tmpl,,$(notdir $(1)))
gb_SrsTemplateTarget_get_target = $(WORKDIR)/SrsTemplateTarget/$(1)
+gb_WinResTarget_get_target = $(WORKDIR)/WinResTarget/$(1)$(gb_WinResTarget_POSTFIX)
define gb_Library_get_external_headers_target
$(patsubst $(1):%,$(WORKDIR)/ExternalHeaders/Library/%,$(filter $(1):%,$(gb_Library_FILENAMES)))
@@ -116,6 +117,7 @@ $(eval $(call gb_Helper_make_clean_targets,\
JunitTest \
LinkTarget \
Module \
+ WinResTarget \
NoexPrecompiledHeader \
PackagePart \
PrecompiledHeader \
diff --git a/solenv/gbuild/WinResTarget.mk b/solenv/gbuild/WinResTarget.mk
new file mode 100644
index 000000000000..af768ff2c596
--- /dev/null
+++ b/solenv/gbuild/WinResTarget.mk
@@ -0,0 +1,70 @@
+
+# WinResTarget class
+
+gb_WinResTarget_DEFAULTDEFS := $(gb_RCDEFS)
+
+define gb_WinResTarget_WinResTarget
+$(call gb_WinResTarget_WinResTarget_init,$(1))
+$$(eval $$(call gb_Module_register_target,$(call gb_WinResTarget_get_target,$(1)),$(call gb_WinResTarget_get_clean_target,$(1))))
+
+endef
+
+define gb_WinResTarget_WinResTarget_init
+$(call gb_WinResTarget_get_target,$(1)) : DEFS := $(gb_WinResTarget_DEFAULTDEFS)
+$(call gb_WinResTarget_get_target,$(1)) : INCLUDE := $(SOLARINC)
+$(call gb_WinResTarget_get_clean_target,$(1)) : RCFILE :=
+$(call gb_WinResTarget_get_target,$(1)) : RCFILE :=
+ifeq ($(gb_FULLDEPS),$(true))
+$(call gb_WinResTarget_get_target,$(1)) : $(call gb_WinResTarget_get_dep_target,$(1))
+ifneq ($(wildcard $(call gb_WinResTarget_get_dep_target,$(1))),)
+include $(call gb_WinResTarget_get_dep_target,$(1))
+else
+$(firstword $(MAKEFILE_LIST)) : $(call gb_WinResTarget_get_dep_target,$(1))
+endif
+$(call gb_WinResTarget_get_dep_target,$(1)) : DEFS := $$(gb_WinResTarget_DEFAULTDEFS)
+$(call gb_WinResTarget_get_dep_target,$(1)) : INCLUDE := $$(gb_WinResTarget_INCLUDE)
+$(call gb_WinResTarget_get_dep_target,$(1)) : RCFILE :=
+endif
+
+endef
+
+ifeq ($(gb_FULLDEPS),$(true))
+$(call gb_WinResTarget_get_dep_target,%) : $(gb_Helper_MISCDUMMY)
+ mkdir -p $(dir $@) && \
+ echo '$(call gb_WinResTarget_get_target,$*) : $$(gb_Helper_PHONY)' > $@
+endif
+
+
+$(call gb_WinResTarget_get_target,%) :
+ $(call gb_Output_announce,$*,$(true),RES,1)
+ $(call gb_WinResTarget__command_dep,$*,$<)
+ $(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $@))
+ $(call gb_WinResTarget__command,$@)
+
+$(call gb_WinResTarget_get_clean_target,%) :
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -f $(call gb_WinResTarget_get_target,$*))
+
+define gb_WinResTarget_set_defs
+$(call gb_WinResTarget_get_target,$(1)) : DEFS := $(2)
+$(call gb_WinResTarget_get_dep_target,$(1)) : DEFS := $(2)
+
+endef
+
+define gb_WinResTarget_set_include
+$(call gb_WinResTarget_get_target,$(1)) : INCLUDE := $(2)
+
+endef
+
+define gb_WinResTarget_add_file
+$(call gb_WinResTarget_get_clean_target,$(1)) : RCFILE=$(gb_Helper_SRCDIR_NATIVE)/$(2).rc
+$(call gb_WinResTarget_get_target,$(1)) : RCFILE=$(foreach file,$(gb_REPOS),$(realpath $(file)/$(strip $(2)).rc))
+$(call gb_WinResTarget_get_target,$(1)) : $(foreach file,$(gb_REPOS),$(realpath $(file)/$(strip $(2)).rc))
+
+endef
+
+define gb_WinResTarget_add_dependency
+$(call gb_WinResTarget_get_target,$(1)) : $(foreach file,$(2),$(foreach repo,$(gb_REPOS),$(realpath $(repo)/$(strip $(file)))))
+
+endef
diff --git a/solenv/gbuild/filter-showIncludes.pl b/solenv/gbuild/filter-showIncludes.pl
new file mode 100755
index 000000000000..f72a9eb07fd8
--- /dev/null
+++ b/solenv/gbuild/filter-showIncludes.pl
@@ -0,0 +1,62 @@
+#!/usr/bin/env perl
+#
+# filter-showIncludes.pl depfile.d objfile.o orginal.cxx
+#
+# Create dependency information from the output of cl.exe's showInclude. It
+# needs additional information - the output name to which to write, objfile
+# that depends on the includes, and the original file name.
+#
+# It also consolidates the file names to a canonical form, and filters out
+# duplicates.
+#
+# LGPL v3 / GPL v3 / MPL 1.1
+#
+# Original author: Jan Holesovsky <kendy@suse.cz>
+
+my $outfile = $ARGV[0];
+my $objfile = $ARGV[1];
+my $srcfile = $ARGV[2];
+if ( !defined $outfile || !defined $objfile || !defined $srcfile ) {
+ die "Not enough parameters to create dependencies.";
+}
+
+my $showincludes_prefix = $ENV{'SHOWINCLUDES_PREFIX'};
+if ( !defined( $showincludes_prefix ) || $showincludes_prefix eq "" ) {
+ $showincludes_prefix = 'Note: including file:';
+}
+
+open( OUT, "> $outfile" ) or die "Cannot open $outfile for writing.";
+print OUT "$objfile: \\\n $srcfile";
+
+my %seen;
+my $first_line = 1;
+while ( <STDIN> ) {
+ if ( /^$showincludes_prefix/ ) {
+ s/^$showincludes_prefix\s*//;
+ s/\r$//;
+
+ chomp;
+ s/\\/\//g;
+
+ # X: -> /cygdrive/x/
+ s/^(.):/\/cygdrive\/\l\1/;
+
+ s/ /\\ /g;
+
+ if ( !defined $seen{$_} ) {
+ $seen{$_} = 1;
+ print OUT " \\\n $_";
+ }
+ }
+ else {
+ # skip the first line, it always just duplicates what is being
+ # compiled
+ print unless ( $first_line );
+ }
+ $first_line = 0;
+}
+
+print OUT "\n";
+close( OUT ) or die "Cannot close $outfile.";
+
+# vim: shiftwidth=4 softtabstop=4 expandtab:
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 4c20c8d77d11..9943b334903a 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -264,6 +264,7 @@ $(eval $(call gb_Deliver_init))
include $(foreach class, \
ComponentTarget \
AllLangResTarget \
+ WinResTarget \
LinkTarget \
Library \
StaticLibrary \
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index b016a95fdc0f..ae57972d814d 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -29,7 +29,7 @@ GUI := UNX
COM := GCC
# Darwin mktemp -t expects a prefix, not a pattern
-gb_MKTEMP := /usr/bin/mktemp -t gbuild.
+gb_MKTEMP ?= /usr/bin/mktemp -t gbuild.
gb_CC := cc
gb_CXX := g++
@@ -246,7 +246,7 @@ endef
gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
-gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_OBJCXXFLAGS) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) $(gb_OBJCXXFLAGS) $(gb_COMPILEROPTFLAGS)
gb_LinkTarget_OBJCFLAGS := $(gb_CFLAGS) $(gb_OBJCFLAGS) $(gb_COMPILEROPTFLAGS)
ifeq ($(gb_SYMBOL),$(true))
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 591c10003cea..d30fe2fdb03a 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -101,6 +101,8 @@ gb_LinkTarget_LDFLAGS := \
-temp=/tmp \
-w \
-mt \
+ -Bdirect \
+ -z defs \
-z combreloc \
-norunpath \
-PIC \
@@ -244,14 +246,23 @@ gb_Library_OOOEXT := ss$(gb_Library_PLAINEXT)
gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
endif
+gb_STDLIBS := \
+ Crun \
+ m \
+ c \
+
gb_Library_PLAINLIBS_NONE += \
+ $(gb_STDLIBS) \
dl \
+ freetype \
GL \
GLU \
jpeg \
- m \
pthread \
X11 \
+ Xext \
+ SM \
+ ICE \
z
gb_Library_FILENAMES := \
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index c17805fb1883..dde1bc8ed5b1 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -298,12 +298,16 @@ gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
gb_Library_PLAINLIBS_NONE += \
dl \
+ freetype \
GL \
GLU \
+ ICE \
jpeg \
m \
pthread \
+ SM \
X11 \
+ Xext \
z
gb_Library_FILENAMES := \
diff --git a/solenv/gbuild/platform/windows.mk b/solenv/gbuild/platform/windows.mk
index 05d73080af60..5fff55f4bf09 100644
--- a/solenv/gbuild/platform/windows.mk
+++ b/solenv/gbuild/platform/windows.mk
@@ -37,6 +37,7 @@ gb_CXX := cl
gb_LINK := link
gb_AWK := awk
gb_CLASSPATHSEP := ;
+gb_RC := rc
# use CC/CXX if they are nondefaults
ifneq ($(origin CC),default)
@@ -67,6 +68,13 @@ gb_COMPILERDEFS := \
gb_CPUDEFS := -DINTEL -D_X86_=1
+gb_RCDEFS := \
+ -DWINVER=0x0400 \
+ -DWIN32 \
+
+gb_RCFLAGS := \
+ -V
+
gb_CFLAGS := \
-Gd \
-GR \
@@ -211,6 +219,16 @@ endif
gb_COMPILERNOOPTFLAGS := -Od
+ifeq ($(gb_FULLDEPS),$(true))
+gb_COMPILERDEPFLAGS := -showIncludes
+define gb_create_deps
+| $(GBUILDDIR)/filter-showIncludes.pl $(2) $(1) $(3)
+endef
+else
+gb_COMPILERDEPFLAGS :=
+define gb_create_deps
+endef
+endif
# Helper class
gb_Helper_SRCDIR_NATIVE := $(shell cygpath -m $(SRCDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
@@ -239,27 +257,6 @@ endef
# CObject class
-ifeq ($(gb_FULLDEPS),$(true))
-define gb_CObject__command_deponcompile
-$(call gb_Helper_abbreviate_dirs_native,\
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \
- -I$(dir $(3)) \
- $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \
- $(3) \
- -f - \
- | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
- -v WORKDIR=$(WORKDIR)/ \
- -v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
- > $(call gb_CObject_get_dep_target,$(2)))
-endef
-else
-CObject__command_deponcompile =
-endif
-
define gb_CObject__command
$(call gb_Output_announce,$(2),$(true),C ,3)
$(call gb_Helper_abbreviate_dirs_native,\
@@ -268,37 +265,16 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(gb_CC) \
$(DEFS) $(CFLAGS) -Fd$(PDBFILE) \
$(PCHFLAGS) \
+ $(gb_COMPILERDEPFLAGS) \
-I$(realpath $(dir $(3))) \
$(INCLUDE) \
-c $(realpath $(3)) \
- -Fo$(1))
-$(call gb_CObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE))
+ -Fo$(1)) $(call gb_create_deps,$(1),$(call gb_CObject_get_dep_target,$(2)),$(realpath $(3)))
endef
# CxxObject class
-ifeq ($(gb_FULLDEPS),$(true))
-define gb_CxxObject__command_deponcompile
-$(call gb_Helper_abbreviate_dirs_native,\
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \
- -I$(dir $(3)) \
- $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \
- $(3) \
- -f - \
- | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
- -v WORKDIR=$(WORKDIR)/ \
- -v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
- > $(call gb_CxxObject_get_dep_target,$(2)))
- endef
-else
-gb_CxxObject__command_deponcompile =
-endif
-
define gb_CxxObject__command
$(call gb_Output_announce,$(2),$(true),CXX,3)
$(call gb_Helper_abbreviate_dirs_native,\
@@ -307,40 +283,18 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(gb_CXX) \
$(DEFS) $(CXXFLAGS) -Fd$(PDBFILE)\
$(PCHFLAGS) \
+ $(gb_COMPILERDEPFLAGS) \
-I$(realpath $(dir $(3))) \
$(INCLUDE_STL) $(INCLUDE) \
-c $(realpath $(3)) \
- -Fo$(1))
-$(call gb_CxxObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE))
+ -Fo$(1)) $(call gb_create_deps,$(1),$(call gb_CxxObject_get_dep_target,$(2)),$(realpath $(3)))
endef
# PrecompiledHeader class
gb_PrecompiledHeader_get_enableflags = -Yu$(1).hxx \
- -Fp$(call gb_PrecompiledHeader_get_target,$(1))
-
-ifeq ($(gb_FULLDEPS),$(true))
-define gb_PrecompiledHeader__command_deponcompile
-$(call gb_Helper_abbreviate_dirs_native,\
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(4) $(5) \
- -I$(dir $(3)) \
- $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \
- $(3) \
- -f - \
- | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
- -v WORKDIR=$(WORKDIR)/ \
- -v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
- > $(call gb_PrecompiledHeader_get_dep_target,$(2)))
-endef
-else
-gb_PrecompiledHeader__command_deponcompile =
-endif
-
+ -Fp$(call gb_PrecompiledHeader_get_target,$(1))
define gb_PrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
@@ -349,39 +303,17 @@ $(call gb_Helper_abbreviate_dirs_native,\
unset INCLUDE && \
$(gb_CXX) \
$(4) $(5) -Fd$(PDBFILE) \
+ $(gb_COMPILERDEPFLAGS) \
-I$(realpath $(dir $(3))) \
$(6) \
-c $(realpath $(3)) \
- -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj)
-$(call gb_PrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
+ -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj) $(call gb_create_deps,$(1),$(call gb_PrecompiledHeader_get_dep_target,$(2)),$(realpath $(3)))
endef
# NoexPrecompiledHeader class
gb_NoexPrecompiledHeader_get_enableflags = -Yu$(1).hxx \
- -Fp$(call gb_NoexPrecompiledHeader_get_target,$(1))
-
-ifeq ($(gb_FULLDEPS),$(true))
-define gb_NoexPrecompiledHeader__command_deponcompile
-$(call gb_Helper_abbreviate_dirs_native,\
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(4) $(5) \
- -I$(dir $(3)) \
- $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \
- $(3) \
- -f - \
- | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
- -v WORKDIR=$(WORKDIR)/ \
- -v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
- > $(call gb_NoexPrecompiledHeader_get_dep_target,$(2)))
-endef
-else
-gb_NoexPrecompiledHeader__command_deponcompile =
-endif
-
+ -Fp$(call gb_NoexPrecompiledHeader_get_target,$(1))
define gb_NoexPrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
@@ -390,14 +322,13 @@ $(call gb_Helper_abbreviate_dirs_native,\
unset INCLUDE && \
$(gb_CXX) \
$(4) $(5) -Fd$(PDBFILE) \
+ $(gb_COMPILERDEPFLAGS) \
-I$(realpath $(dir $(3))) \
$(6) \
-c $(realpath $(3)) \
- -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj)
-$(call gb_NoexPrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
+ -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj) $(call gb_create_deps,$(1),$(call gb_NoexPrecompiledHeader,$(2)),$(realpath $(3)))
endef
-
# LinkTarget class
gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
@@ -421,7 +352,7 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),$(shell cat $(extraobjectlist))) \
- $(PCHOBJS))) && \
+ $(PCHOBJS) $(NATIVERES))) && \
$(gb_LINK) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \
@@ -447,8 +378,11 @@ gb_Library_PLAINEXT := .lib
gb_Library_PLAINLIBS_NONE += \
advapi32 \
gdi32 \
+ gdiplus \
gnu_getopt \
+ imm32\
kernel32 \
+ msimg32 \
msvcrt \
msvcprt \
mpr \
@@ -461,6 +395,7 @@ gb_Library_PLAINLIBS_NONE += \
user32 \
uuid \
uwinapi \
+ winspool \
z \
gb_Library_LAYER := \
@@ -525,6 +460,26 @@ $(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_g
endef
+define gb_Library_add_default_nativeres
+$(call gb_WinResTarget_WinResTarget_init,$(1)/$(2))
+$(call gb_WinResTarget_add_file,$(1)/$(2),solenv/inc/shlinfo)
+$(call gb_WinResTarget_set_defs,$(1)/$(2),\
+ $$(DEFS) \
+ -DADDITIONAL_VERINFO1 \
+ -DADDITIONAL_VERINFO2 \
+ -DADDITIONAL_VERINFO3 \
+)
+$(call gb_Library_add_nativeres,$(1),$(2))
+$(call gb_Library_get_clean_target,$(1)) : $(call gb_WinResTarget_get_clean_target,$(1)/$(2))
+
+endef
+
+define gb_Library_add_nativeres
+$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : $(call gb_WinResTarget_get_target,$(1)/$(2))
+$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : NATIVERES += $(call gb_WinResTarget_get_target,$(1)/$(2))
+
+endef
+
define gb_Library_get_dllname
$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_DLLFILENAMES)))
endef
@@ -685,6 +640,45 @@ else
gb_SrsPartTarget__command_dep =
endif
+# WinResTarget class
+
+gb_WinResTarget_POSTFIX :=.res
+
+define gb_WinResTarget__command
+$(call gb_Output_announce,$(2),$(true),RES,3)
+$(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_RC) \
+ $(DEFS) $(FLAGS) \
+ -I$(dir $(3)) \
+ $(INCLUDE) \
+ -Fo$(1) \
+ $(RCFILE) )
+endef
+
+$(eval $(call gb_Helper_make_dep_targets,\
+ WinResTarget \
+))
+
+ifeq ($(gb_FULLDEPS),$(true))
+define gb_WinResTarget__command_dep
+$(call gb_Helper_abbreviate_dirs_native,\
+ $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
+ $(INCLUDE) \
+ $(DEFS) \
+ $(2) \
+ -f - \
+ | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
+ -v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \
+ -v OUTDIR=$(OUTDIR)/ \
+ -v WORKDIR=$(WORKDIR)/ \
+ -v SRCDIR=$(SRCDIR)/ \
+ -v REPODIR=$(REPODIR)/ \
+ > $(call gb_WinResTarget_get_dep_target,$(1)))
+endef
+else
+gb_WinResTarget__command_dep =
+endif
# ComponentTarget
diff --git a/solenv/gbuild/platform/winmingw.mk b/solenv/gbuild/platform/winmingw.mk
index d846f7c18cdf..c8fe4f0d85a9 100644
--- a/solenv/gbuild/platform/winmingw.mk
+++ b/solenv/gbuild/platform/winmingw.mk
@@ -100,6 +100,13 @@ gb_CPUDEFS := \
-DINTEL \
-D_M_IX86 \
+gb_RCDEFS := \
+ -DWINVER=0x0400 \
+ -DWIN32 \
+
+gb_RCFLAGS := \
+ -V
+
gb_CFLAGS := \
-Wall \
-Wendif-labels \
@@ -546,6 +553,26 @@ $(call gb_Deliver_add_deliverable,$(OUTDIR)/bin/$(notdir $(3)),$(3))
endef
+define gb_Library_add_default_nativeres
+$(call gb_WinResTarget_WinResTarget_init,$(1)/$(2))
+$(call gb_WinResTarget_add_file,$(1)/$(2),solenv/inc/shlinfo)
+$(call gb_WinResTarget_set_defs,$(1)/$(2),\
+ $$(DEFS) \
+ -DADDITIONAL_VERINFO1 \
+ -DADDITIONAL_VERINFO2 \
+ -DADDITIONAL_VERINFO3 \
+)
+$(call gb_Library_add_nativeres,$(1),$(2))
+$(call gb_Library_get_clean_target,$(1)) : $(call gb_WinResTarget_get_clean_target,$(1)/$(2))
+
+endef
+
+define gb_Library_add_nativeres
+$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : $(call gb_WinResTarget_get_target,$(1)/$(2))
+$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : NATIVERES += $(call gb_WinResTarget_get_target,$(1)/$(2))
+
+endef
+
define gb_Library_get_dllname
$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_DLLFILENAMES)))
endef
@@ -624,6 +651,48 @@ else
gb_SrsPartTarget__command_dep =
endif
+# WinResTarget class
+
+gb_WinResTarget_POSTFIX :=_res.o
+
+define gb_WinResTarget__command
+$(call gb_Output_announce,$(2),$(true),RES,3)
+$(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_RC) \
+ $(DEFS) $(FLAGS) \
+ -I$(dir $(3)) \
+ $(INCLUDE) \
+ -Fo$(patsubst %_res.o,%.res,$(1)) \
+ $(RCFILE) )
+ windres $(patsubst %_res.o,%.res,$(1)) $(1)
+ rm $(patsubst %_res.o,%.res,$(1))
+endef
+
+$(eval $(call gb_Helper_make_dep_targets,\
+ WinResTarget \
+))
+
+ifeq ($(gb_FULLDEPS),$(true))
+define gb_WinResTarget__command_dep
+$(call gb_Helper_abbreviate_dirs_native,\
+ $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
+ $(INCLUDE) \
+ $(DEFS) \
+ $(2) \
+ -f - \
+ | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
+ -v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \
+ -v OUTDIR=$(OUTDIR)/ \
+ -v WORKDIR=$(WORKDIR)/ \
+ -v SRCDIR=$(SRCDIR)/ \
+ -v REPODIR=$(REPODIR)/ \
+ > $(call gb_WinResTarget_get_dep_target,$(1)))
+endef
+else
+gb_WinResTarget__command_dep =
+endif
+
# ComponentTarget
gb_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
diff --git a/solenv/inc/langlist.mk b/solenv/inc/langlist.mk
index 18680e77ce38..f4e485380ae1 100644
--- a/solenv/inc/langlist.mk
+++ b/solenv/inc/langlist.mk
@@ -150,6 +150,7 @@ tlh \
th \
tn \
tr \
+tk \
ts \
tg \
ug \
diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk
index dfd0189badb8..38646f16b5b3 100644
--- a/solenv/inc/minor.mk
+++ b/solenv/inc/minor.mk
@@ -1,5 +1,5 @@
-RSCVERSION=340
-RSCREVISION=340m1(Build:1)
+RSCVERSION=350
+RSCREVISION=350m1(Build:1)
BUILD=1
LAST_MINOR=m1
-SOURCEVERSION=OOO340
+SOURCEVERSION=OOO350
diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index 04dfd3490387..da564bf60724 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -826,6 +826,10 @@ SOLARCOMMONSDFDIR=$(SOLARSDFDIR)
.EXPORT : SOLARBINDIR
+.IF "$(GUI)" == "WNT"
+L10N_MODULE*=$(shell cygpath -m $(SRC_ROOT)/translations)
+.ELSE
+.ENDIF
.IF "$(WITH_LANG)"!=""
.INCLUDE .IGNORE: $(L10N_MODULE)/$(COMMON_OUTDIR)$(PROEXT)/inc/localization_present.mk