[Libreoffice-commits] core.git: 4 commits - config_host.mk.in configure.ac desktop/source instsetoo_native/CustomTarget_setup.mk instsetoo_native/Package_setup.mk Makefile.in README.cross sal/osl solenv/bin solenv/gbuild solenv/README

Matúš Kukan matus.kukan at gmail.com
Tue Sep 17 10:48:03 PDT 2013


 Makefile.in                            |   12 
 README.cross                           |    6 
 config_host.mk.in                      |    2 
 configure.ac                           |   31 -
 desktop/source/app/app.cxx             |   24 -
 instsetoo_native/CustomTarget_setup.mk |    6 
 instsetoo_native/Package_setup.mk      |    2 
 sal/osl/unx/file_url.cxx               |   32 -
 solenv/README                          |    5 
 solenv/bin/linkoo                      |  602 ---------------------------------
 solenv/bin/ooinstall                   |   13 
 solenv/gbuild/Library.mk               |    2 
 12 files changed, 27 insertions(+), 710 deletions(-)

New commits:
commit 5522d9aebe53952805ab24b8ffee30df439daa40
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Tue Sep 17 09:34:52 2013 +0200

    do not copy invalid, merged libraries to instdir
    
    Change-Id: I7f8e12530344e23e9bc68510795e90640ea8fd43

diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 9064a08..2c2d5ca 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -86,7 +86,7 @@ $(call gb_Library_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target
 $(call gb_Library_get_clean_target,$(1)) : AUXTARGETS :=
 $(call gb_Library_Library_platform,$(1),$(2),$(gb_Library_DLLDIR)/$(call gb_Library_get_dllname,$(1)))
 
-$(if $(call gb_Library_get_instdir,$(1)),\
+$(if $(and $(call gb_Library_get_instdir,$(1)),$(filter-out $(gb_MERGEDLIBS),$(1))),\
 $(call gb_Library__install,$(call gb_Library__get_final_target,$(1)), \
 	$(call gb_Library_get_install_target,$(1)), \
 	$(gb_Library_DLLDIR)/$(call gb_Library_get_runtime_filename,$(1)), \
commit b900b6ed25123cce890aa7ab4bdd59e35a6223a7
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Tue Sep 17 18:57:52 2013 +0200

    Revert "fix-linkoo.diff: Fix linkoo to work again."
    
    This reverts commit 904e5801aea86a79d6256fcbc3cfdba4535ca8a9.
    We don't use linkoo and SAL_ALLOW_LINKOO_SYMLINKS anymore.
    
    Conflicts:
    	sal/osl/unx/file_url.cxx
    
    Change-Id: I1a0211295afef79f72356677d9b3bc6c5211d496

diff --git a/sal/osl/unx/file_url.cxx b/sal/osl/unx/file_url.cxx
index 1400216..5a1dd2b 100644
--- a/sal/osl/unx/file_url.cxx
+++ b/sal/osl/unx/file_url.cxx
@@ -624,37 +624,7 @@ oslFileError osl_getAbsoluteFileURL(rtl_uString*  ustrBaseDirURL, rtl_uString* u
     }
 
     rtl::OUString resolved_path;
-
-    static bool allow_symlinks = getenv("SAL_ALLOW_LINKOO_SYMLINKS") != 0;
-        // getenv is not thread safe, so minimize use of result
-    if (!allow_symlinks)
-    {
-        rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
-    }
-    else
-    {
-        // SAL_ALLOW_LINKOO_SYMLINKS environment variable:
-        // for linkoo to work, we need to let the symlinks to the libraries untouched
-        rtl::OUString base;
-        sal_Int32 last_slash = unresolved_path.lastIndexOf( '/' );
-
-        if (last_slash >= 0 && last_slash + 1 < unresolved_path.getLength()
-            && ! ( last_slash + 2 == unresolved_path.getLength() && unresolved_path.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("."), last_slash + 1) )
-            && ! ( last_slash + 3 == unresolved_path.getLength() && unresolved_path.matchAsciiL(RTL_CONSTASCII_STRINGPARAM(".."), last_slash + 1) ))
-        {
-            base = unresolved_path.copy(last_slash+1);
-            unresolved_path = unresolved_path.copy(0, last_slash);
-        }
-
-        rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
-
-        if (!base.isEmpty())
-        {
-            resolved_path += "/";
-            resolved_path += base;
-        }
-    }
-
+    rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
     if (FileBase::E_None == rc)
     {
         rc = (FileBase::RC) osl_getFileURLFromSystemPath(resolved_path.pData, pustrAbsoluteURL);
commit 9759bbde8939263fb308f7f8a7315354945f859b
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Tue Sep 17 18:49:33 2013 +0200

    Revert "warn if people havn't source the environment after linkoo"
    
    This reverts commit b0eeac20a1c1db422eaf152c353a4101cb200de9.
    Linkoo is now dead, whatever the problem was.
    
    Conflicts:
    	desktop/source/app/app.cxx
    
    Change-Id: Ic8fce7db9ac8b5e9661b2b767bfba9f7cdd84e9a

diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 70036d7..2e3ee0e 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -1325,23 +1325,6 @@ void Desktop::AppEvent( const ApplicationEvent& rAppEvent )
     HandleAppEvent( rAppEvent );
 }
 
-namespace {
-    void SetDocumentExtendedStyle( const Reference< ::com::sun::star::awt::XWindow > &xContainerWindow )
-    {
-        // set the WB_EXT_DOCUMENT style. Normally, this is done by the TaskCreator service when a "_blank"
-        // frame/window is created. Since we do not use the TaskCreator here, we need to mimic its behavior,
-        // otherwise documents loaded into this frame will later on miss functionality depending on the style.
-        Window* pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
-        SAL_WARN_IF( !pContainerWindow, "desktop.app", "Desktop::Main: no implementation access to the frame's container window!" );
-        if (!pContainerWindow) {
-            fprintf (stderr, "Error: It very much looks as if you have used 'linkoo' (or bin/ooinstall -l)\n"
-                     "but have then forgotten to source 'ooenv' into your shell before running !\n"
-                     "to save a crash, we will exit now with an error - please '. ./ooenv' first.\n");
-            exit (1);
-        }
-        pContainerWindow->SetExtendedStyle( pContainerWindow->GetExtendedStyle() | WB_EXT_DOCUMENT );
-    }
-}
 
 struct ExecuteGlobals
 {
@@ -2903,7 +2886,12 @@ void Desktop::ShowBackingComponent(Desktop * progress)
         xContainerWindow = xBackingFrame->getContainerWindow();
     if (xContainerWindow.is())
     {
-        SetDocumentExtendedStyle(xContainerWindow);
+        // set the WB_EXT_DOCUMENT style. Normally, this is done by the TaskCreator service when a "_blank"
+        // frame/window is created. Since we do not use the TaskCreator here, we need to mimic its behavior,
+        // otherwise documents loaded into this frame will later on miss functionality depending on the style.
+        Window* pContainerWindow = VCLUnoHelper::GetWindow( xContainerWindow );
+        SAL_WARN_IF( !pContainerWindow, "desktop.app", "Desktop::Main: no implementation access to the frame's container window!" );
+        pContainerWindow->SetExtendedStyle( pContainerWindow->GetExtendedStyle() | WB_EXT_DOCUMENT );
         if (progress != 0)
         {
             progress->SetSplashScreenProgress(75);
commit f5b840a3ee14a2086647596246d3491a58bf33bb
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Tue Sep 17 13:56:12 2013 +0200

    goodbye linkoo.. you have served well
    
    This commit:
    - removes linkoo and --disable-linkoo option
    - removes 'dev-update' make target
    - creates --disable-ooenv option
    - removes LD_LIBRARY_PATH and PATH settings in ooenv
    
    Change-Id: I9530558531e9cb58b8282754ec8a6c655f190480

diff --git a/Makefile.in b/Makefile.in
index 5598af4..da2beb2 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -271,7 +271,6 @@ dev-install: build
 ifeq ($(OS_FOR_BUILD),WNT)
 	cd $(SRCDIR)/instsetoo_native && $(GNUMAKE) LIBO_DEV_INSTALL=TRUE $(GMAKE_OPTIONS)
 else
-ifeq ($(DISABLE_LINKOO),TRUE)
 	@ooinstall $(DEVINSTALLDIR)/opt
 ifneq ($(MACOSX_CODESIGNING_IDENTITY),)
 	@macosx-codesign-app-bundle $(DEVINSTALLDIR)/opt/LibreOffice.app
@@ -279,9 +278,6 @@ endif
 ifneq ($(OS),MACOSX)
 	@install-gdb-printers -L
 endif
-else
-	@ooinstall -l $(DEVINSTALLDIR)/opt
-endif
 endif
 	@rm -f $(BUILDDIR)/install && ln -s $(DEVINSTALLDIR)/opt/ $(BUILDDIR)/install
 	@echo
@@ -305,14 +301,6 @@ endif
 dev-install-nocheck: build-nocheck
 	$(MAKE) dev-install -o build
 
-# FIXME: shouldn't linkoo be BUILDDIR vs SRCDIR aware ?
-dev-update:
-ifeq ($(DISABLE_LINKOO),TRUE)
-	@linkoo --copy $(DEVINSTALLDIR)/opt $(SRCDIR)
-else
-	@linkoo $(DEVINSTALLDIR)/opt $(SRCDIR)
-endif
-
 install-tb:
 	@rm -rf $(DEVINSTALLDIR)
 	@mkdir $(DEVINSTALLDIR)
diff --git a/README.cross b/README.cross
index 28e4a333..6b68fde 100644
--- a/README.cross
+++ b/README.cross
@@ -193,11 +193,6 @@ http://www.winehq.org/docs/wineusr-guide/environment-variables, and add
 Z:\tmp\LibO-Dev_4.1.0.0.alpha0_Win_x86_archive/LOdev\ 4.1\URE\bin
 to "Path" in My Computer->HKEY_CURRENT_USER->Environment.
 
-Then run linkoo, so that when you rebuild something, you can directly see the
-changes the next time you run it:
-
-solenv/bin/linkoo '/tmp/LibO-Dev_4.1.0.0.alpha0_Win_x86_archive/LOdev\ 4.1' <your_clone_dir>
-
 And start debugging:
 
 $ winedbg soffice.bin
@@ -422,7 +417,6 @@ CC=<path-to-arm-linux-gnueabihf-gcc> --sysroot=<path-to-raspbian_rootfs>
 CXX=<path-to-arm-linux-gnueabihf-g++> --sysroot=<path-to-raspbian_rootfs>
 --build=x86_64-unknown-linux-gnu
 --host=arm-unknown-linux-gnueabihf
---disable-linkoo
 --without-doxygen
 --disable-gnome-vfs
 --enable-python=system
diff --git a/config_host.mk.in b/config_host.mk.in
index cfd1357..6b9768f 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -95,7 +95,6 @@ export DISABLE_CVE_TESTS=@DISABLE_CVE_TESTS@
 export DISABLE_DBCONNECTIVITY=@DISABLE_DBCONNECTIVITY@
 export DISABLE_DYNLOADING=@DISABLE_DYNLOADING@
 export DISABLE_EXPORT=@DISABLE_EXPORT@
-export DISABLE_LINKOO=@DISABLE_LINKOO@
 export DISABLE_NEON=@DISABLE_NEON@
 export DISABLE_OPENSSL=@DISABLE_OPENSSL@
 export DISABLE_PYTHON=@DISABLE_PYTHON@
@@ -145,6 +144,7 @@ export ENABLE_MARIADBC=@ENABLE_MARIADBC@
 export ENABLE_NPAPI_FROM_BROWSER=@ENABLE_NPAPI_FROM_BROWSER@
 export ENABLE_NPAPI_INTO_BROWSER=@ENABLE_NPAPI_INTO_BROWSER@
 export ENABLE_ONLINE_UPDATE=@ENABLE_ONLINE_UPDATE@
+export ENABLE_OOENV=@ENABLE_OOENV@
 export ENABLE_OPENGL=@ENABLE_OPENGL@
 export ENABLE_OPENCL=@ENABLE_OPENCL@
 export ENABLE_PACKAGEKIT=@ENABLE_PACKAGEKIT@
diff --git a/configure.ac b/configure.ac
index c145970..bf78f35 100644
--- a/configure.ac
+++ b/configure.ac
@@ -848,9 +848,9 @@ AC_ARG_ENABLE(compiler-plugins,
         [Enable compiler plugins that will perform additional checks during
          building. Enabled automatically by --enable-dbgutil.]))
 
-AC_ARG_ENABLE(linkoo,
-    AS_HELP_STRING([--disable-linkoo],
-        [Disable linkoo for the smoketest installation.]))
+AC_ARG_ENABLE(ooenv,
+    AS_HELP_STRING([--disable-ooenv],
+        [Disable ooenv for the instdir installation.]))
 
 AC_ARG_ENABLE(lto,
     AS_HELP_STRING([--enable-lto],
@@ -4601,21 +4601,18 @@ else
 fi
 AC_SUBST(ASSERT_ALWAYS_ABORT)
 
-dnl Determine whether to use linkoo for the smoketest installation
-dnl ===================================================================
-AC_MSG_CHECKING([whether to use linkoo for the smoketest installation])
-if test $_os = Darwin; then
-    enable_linkoo=no
-fi
-
-if test "$enable_linkoo" = "no"; then
-    DISABLE_LINKOO="TRUE"
-    AC_MSG_RESULT([no])
-else
-    DISABLE_LINKOO=
-    AC_MSG_RESULT([yes])
+# Determine whether to use ooenv for the instdir installation
+# ===================================================================
+if test $_os != "WINNT" -a $_os != "Darwin"; then
+    AC_MSG_CHECKING([whether to use ooenv for the instdir installation])
+    if test "$enable_ooenv" = "no"; then
+        AC_MSG_RESULT([no])
+    else
+        ENABLE_OOENV="TRUE"
+        AC_MSG_RESULT([yes])
+    fi
 fi
-AC_SUBST(DISABLE_LINKOO)
+AC_SUBST(ENABLE_OOENV)
 
 if test "$enable_headless" = "yes"; then
     # be sure to do not mess with uneeded stuff
diff --git a/instsetoo_native/CustomTarget_setup.mk b/instsetoo_native/CustomTarget_setup.mk
index 8556ff5..6f2c647 100644
--- a/instsetoo_native/CustomTarget_setup.mk
+++ b/instsetoo_native/CustomTarget_setup.mk
@@ -12,7 +12,7 @@ $(eval $(call gb_CustomTarget_CustomTarget,instsetoo_native/setup))
 $(eval $(call gb_CustomTarget_register_targets,instsetoo_native/setup,\
 	$(call gb_Helper_get_rcfile,bootstrap) \
 	$(call gb_Helper_get_rcfile,fundamental) \
-	ooenv \
+	$(if $(ENABLE_OOENV),ooenv) \
 	$(if $(filter TRUE,$(DISABLE_PYTHON)),,$(call gb_Helper_get_rcfile,pythonloader.uno)) \
 	$(call gb_Helper_get_rcfile,uno) \
 	$(call gb_Helper_get_rcfile,version) \
@@ -69,11 +69,7 @@ $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_
 $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/ooenv :
 	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
 	( \
-		echo 'java_path=`$(gb_INSTROOT)/ure/bin/javaldx 2>/dev/null`' && \
-		echo 'export LD_LIBRARY_PATH="$(gb_INSTROOT)/program:$$java_path$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}"' && \
 		echo 'ulimit -c unlimited' && \
-		echo 'export PATH="$(gb_INSTROOT)/program:$(gb_INSTROOT)/ure/bin:$$PATH"' && \
-		echo 'export GNOME_DISABLE_CRASH_DIALOG=1' && \
 		echo '# debugging assistance' && \
 		echo 'export SAL_DISABLE_FLOATGRAB=1' && \
 		echo 'export G_SLICE=always-malloc' && \
diff --git a/instsetoo_native/Package_setup.mk b/instsetoo_native/Package_setup.mk
index 2cd15fc..caada4f 100644
--- a/instsetoo_native/Package_setup.mk
+++ b/instsetoo_native/Package_setup.mk
@@ -14,7 +14,7 @@ $(eval $(call gb_Package_set_outdir,instsetoo_native_setup,$(gb_INSTROOT)))
 $(eval $(call gb_Package_add_files,instsetoo_native_setup,$(gb_PROGRAMDIRNAME),\
 	$(call gb_Helper_get_rcfile,bootstrap) \
 	$(call gb_Helper_get_rcfile,fundamental) \
-	ooenv \
+	$(if $(ENABLE_OOENV),ooenv) \
 	$(if $(filter TRUE,$(DISABLE_PYTHON)),,$(call gb_Helper_get_rcfile,pythonloader.uno)) \
 	$(call gb_Helper_get_rcfile,uno) \
 	$(call gb_Helper_get_rcfile,version) \
diff --git a/solenv/README b/solenv/README
index 983b4c6..fd0c593 100644
--- a/solenv/README
+++ b/solenv/README
@@ -15,11 +15,6 @@ bin/
 		the scp2/ module to create an installer, and/or to
 		do a local install for the smoketest.
 
-	linkoo
-		creates a forest of symlinks inside an install such
-		that a developer can re-compile in the source tree,
-		and re-run without re-installing (on Unix at least)
-
 gbuild/
 	the (shiny new) gnumake build makefile fragments we are
 	migrating the codebase to use.
diff --git a/solenv/bin/linkoo b/solenv/bin/linkoo
deleted file mode 100755
index 8f3db1b..0000000
--- a/solenv/bin/linkoo
+++ /dev/null
@@ -1,602 +0,0 @@
-:
-    eval 'exec perl -S $0 ${1+"$@"}'
-        if 0;
-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-#   Licensed to the Apache Software Foundation (ASF) under one or more
-#   contributor license agreements. See the NOTICE file distributed
-#   with this work for additional information regarding copyright
-#   ownership. The ASF licenses this file to you under the Apache
-#   License, Version 2.0 (the "License"); you may not use this file
-#   except in compliance with the License. You may obtain a copy of
-#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-#*************************************************************************
-#
-#    This app makes it easy to link a live build
-# set into an install set. Then your devel iteration
-# is: 'build', execute.
-#
-#*************************************************************************
-
-use strict;
-use File::stat;
-use File::Copy;
-use File::Find;
-use File::Spec::Functions qw[splitdir catdir];
-
-# ends up in program/ooenv
-( my $moz_lib = `pkg-config --variable=libdir mozilla-nss` ) =~ tr/\n/:/;
-my $env_script = '
-java_path=`$thisdir/../ure-link/bin/javaldx 2>/dev/null`
-export LD_LIBRARY_PATH="$thisdir:$java_path:' . $moz_lib . '$LD_LIBRARY_PATH"
-ulimit -c unlimited
-export PATH="$thisdir:$thisdir/../ure-link/bin:$PATH"
-export GNOME_DISABLE_CRASH_DIALOG=1
-# debugging assistance
-export SAL_DISABLE_FLOATGRAB=1
-export G_SLICE=always-malloc
-export MALLOC_CHECK_=2
-export MALLOC_PERTURB_=153
-export OOO_DISABLE_RECOVERY=1
-export SAL_ALLOW_LINKOO_SYMLINKS=1
-';
-
-my $dry_run = 0;
-my $backup = 0;
-my $copy = 0;
-my $usage = 0;
-my $windows = 0;
-my $LANG;
-my $TARGET;
-my $LIBVER;
-my $OOO_BUILD;
-my $OOO_INSTALL;
-my $SOLARVER;
-
-if ($ENV{'OS'} eq 'MACOSX') {
-    print "FIXME: linkoo currently does not work on Mac OS X\n";
-    exit(0);
-}
-
-# process options
-for my $a (@ARGV) {
-
-    # options
-    if ($a =~ /--dry-run/) {
-        $dry_run = 1;
-    } elsif (($a eq '--help') || ($a eq '-h')) {
-	$usage = 1;
-    } elsif ($a eq '--backup') {
-	$backup = 1;
-    } elsif ($a eq '--copy') {
-	$copy = 1;
-    # ordered arguments
-    } elsif (!defined $OOO_INSTALL) {
-	$OOO_INSTALL = $a;
-    } elsif (!defined $OOO_BUILD) {
-	$OOO_BUILD = $a;
-    } else {
-	print "Unknown argument '$a'\n";
-	$usage = 1;
-    }
-}
-
-if (!defined $OOO_BUILD && defined $ENV{SRC_ROOT}) {
-    $OOO_BUILD = $ENV{SRC_ROOT};
-}
-
-if ($usage || !defined $OOO_INSTALL || !defined $OOO_BUILD) {
-    printf "Usage: linkoo </path/to/ooo/install> [</path/to/ooo/build/tree>] [--dry-run] [--backup] [--copy]\n";
-    exit (1);
-}
-
-File::Spec->file_name_is_absolute($OOO_INSTALL) || die "linkoo requires absolute paths ($OOO_INSTALL does not qualify)";
-File::Spec->file_name_is_absolute($OOO_BUILD) || die "linkoo requires absolute paths ($OOO_BUILD does not qualify)";
-
--d $OOO_INSTALL || die "No such directory $OOO_INSTALL";
--w $OOO_INSTALL || die "You need write access to $OOO_INSTALL";
--d $OOO_BUILD || die "No such directory $OOO_BUILD";
-
-($TARGET, $LIBVER, $LANG) = sniff_target ($OOO_BUILD);
-
-$SOLARVER = "$OOO_BUILD/solver";
-
-if ($TARGET =~ /^wntgcci/ || $TARGET =~ /^wntgccx/ || $TARGET =~ /^wntmsci[0-9]+/|| $TARGET =~ /^wntmscx[0-9]+/) {
-    $windows = 1;
-}
-
-if ($TARGET =~ /^wntmsci[0-9]+/ || $TARGET =~ /^wntmscx[0-9]+/) {
-    # wntgcci means are cross-compiling & can symlink, so copy only on real
-    # Windows
-    $copy = 1;
-}
-
-# setup global variables
-my $brand_program_dir = 'program';
-my $ure_lib_dir = 'ure-link/lib';
-my $win_ure_lib_dir = 'URE/bin';
-
-my @exceptions = ( 'libsunjavaplugin', 'libjvmfwk' );
-push @exceptions, 'cppuhelper' if (!$windows);
-
-my $bin;
-$bin = "|\\.bin" if ($windows);
-my %replaceable = (
-    $brand_program_dir => "(\\.so|\\.dll|\\.exe|\\.com$bin)\$",
-    $ure_lib_dir => "(\\.so\$|\\.so\\.3\$)",
-    $win_ure_lib_dir => "(\\.dll|\\.exe|\\.bin|\\.com)\$",
-    $brand_program_dir . '/resource' => '\.res$',
-    $brand_program_dir . '/classes' => '\.jar$',
-    'ure-link/share/java' => '\.jar$',
-    'share/extensions/nlpsolver' => '\.jar$',
-    'share/extensions/wiki-publisher' => '\.jar$',
-    'share/extensions/pdf-import' => "(\\.so|\\.dll|\\.exe|\\.com$bin)\$",
-    'share/extensions/presenter-screen' => "(\\.so|\\.dll|\\.exe|\\.com$bin)\$",
-    'share/extensions/presentation-minimizer' => "(\\.so|\\.dll|\\.exe|\\.com$bin)\$",
-    'share/config' => '\.zip$',
-#    'share/uno_packages' => '\.zip$'
-);
-
-my @instdir_replaceable = (
-    'share',
-    'program',
-#    'presets', # leave these guys alone for now
-    'help',
-);
-
-my @search_dirs = ( 'lib', 'bin', 'class' );
-
-my @known_duplicates = ( 'db.jar', 'libi18n', 'libnssckbi', 'libnssdbm', 'libsqlite3', 'libnssutil3', 'pythonloader.uno', 'pyuno', 'libpyuno' );
-
-sub sniff_target($)
-{
-    my $build_dir = shift;
-    my ($target, $libver, $lang) = ( 'unxlngi6.pro', '680', 'en-US' ); # defaults
-
-    chomp($target=`cat $build_dir/config_host.mk | grep INPATH= | sed -e 's/.*=//' | sed -e 's/"//g'`);
-    chomp($libver=`cat $build_dir/config_host.mk | grep UPD= | sed -e 's/.*=//' | sed -e 's/"//g'`);
-
-    print "Sniffed target: $target, $libver\n";
-
-    return ($target, $libver, $lang);
-}
-
-sub build_installed_list($)
-{
-    my $path = shift;
-    my %files = ();
-
-    for my $suffix (keys %replaceable) {
-	my $dirname = "$path/$suffix";
-	my $dirhandle;
-	my $pattern = $replaceable{$suffix};
-	if (opendir ($dirhandle, $dirname)) {
-	    while (my $fname = readdir ($dirhandle)) {
-		$fname =~ m/$pattern/ || next;
-
-		my $skip = 0;
-		for $pattern (@exceptions) {
-		    $fname =~ /$pattern/ || next;
-		    $skip = 1;
-		}
-		$files{$fname} = $dirname if !$skip;
-	    }
-	    closedir ($dirhandle);
-	} else {
-	    print "Couldn't find '$dirname': skipping\n";
-	}
-    }
-    return \%files;
-}
-
-sub check_create_linked($)
-{
-    my $path = shift;
-    my $linked_dir = "$path/linked";
-    if (! -d $linked_dir) {
-	mkdir $linked_dir || die "Can't make $linked_dir: $!";
-    }
-}
-
-sub do_link($$$$@)
-{
-    my $src = shift;
-    my $dest = shift;
-    my $src_name = shift;
-    my $dest_name = shift;
-    my $dont_check_link = shift;
-
-    if ($dest_name eq 'soffice' ||
-        $dest_name eq 'unopkg' ||
-        $dest_name eq 'unoinfo' ||
-        $dest_name eq 'spadmin' ||
-        $dest_name eq 'gengal' ||
-        $dest_name eq 'python')
-    { return; } # these scripts uses `pwd`...
-
-    if ($copy) { # copy if older ...
-	my $src_mtime = stat("$src/$src_name")->mtime;
-	my $dest_mtime = stat("$dest/$dest_name")->mtime;
-	if ($src_mtime > $dest_mtime) {
-#	    print " copy $src/$src_name ($src_mtime) -> $dest/$dest_name ($dest_mtime)\n";
-	    print " copy $src/$src_name -> $dest/$dest_name\n";
-	    unlink ("$dest/$dest_name");
-	    copy("$src/$src_name", "$dest/$dest_name") || die "Failed top copy: $!";
-	} else {
-#	    print " up-to-date $src/$src_name -> $dest/$dest_name\n";
-	}
-    } elsif (-l "$dest/$dest_name" ) {
-	my $link = readlink ("$dest/$dest_name");
-	if ($link =~ /^\//) { # Absolute path
-	    if (!$dry_run) {
-		# re-write the link
-		unlink ("$dest/$dest_name");
-		symlink ("$src/$src_name", "$dest/$dest_name") || die "Failed to symlink $src/$src_name: $!";
-		print " [$dest_name]";
-	    } else {
-		print "re-make link $src/$src_name => $dest/$dest_name\n";
-	    }
-	} elsif ($dry_run) {
-	    print "skipping symbolic link $dest/$dest_name -> $link\n";
-	}
-    } else {
-	if (!$dry_run) {
-	    # move / write the link
-	    if ($backup) {
-		check_create_linked ($dest);
-		rename ("$dest/$dest_name", "$dest/linked/$dest_name") ||
-		    defined $dont_check_link || die "Failed rename of $dest/$dest_name: $!";
-	    } else {
-	        unlink ("$dest/$dest_name") ||
-		    defined $dont_check_link || die "Failed remove of $dest/$dest_name: $!";
-	    }
-	    symlink ("$src/$src_name", "$dest/$dest_name") || die "Failed to symlink $src/$src_name: $!";
-	    print " $dest_name";
-	} else {
-	    print "move / symlink $src/$src_name => $dest/$dest_name\n";
-	}
-    }
-}
-
-sub scan_one_dir($$$$)
-{
-    my ($installed_files, $build_files, $path, $solver) = @_;
-    my $dirh_module;
-
-    if (!$solver) {
-	if (opendir ($dirh_module, "$path/..")) {
-	    while (my $file = readdir ($dirh_module)) {
-		if ($file =~ /Library_.*\.mk/) {
-		    if (-d $path) {
-			print STDERR "gnu-makeified module contains stale output dir '$path', renaming it away\n";
-			rename ($path, "$path.obsolete"); # if it fails, nevermind ...
-		    }
-		    return;
-		}
-	    }
-	    closedir ($dirh_module);
-	}
-    }
-
-    for my $elem (@search_dirs) {
-	my $module_path = "$path/$elem";
-	if (opendir ($dirh_module, $module_path)) {
-	    while (my $file = readdir ($dirh_module)) {
-		if (defined $installed_files->{$file}) {
-		    if (defined $build_files->{$file}) {
-			my $known = 0;
-			for my $regexp (@known_duplicates) {
-			    if ($file =~ m/$regexp/) {
-				$known = 1;
-			    }
-			}
-			if (!$known && !$solver) {
-			    print STDERR "\nlinkoo:: Unknown duplicate file '$file' in: '" .
-				$build_files->{$file} . "' vs '" .
-				$module_path . "' in module $path\n";
-			    exit (1);
-			}
-		    } else {
-			$build_files->{$file} = $module_path;
-		    }
-		}
-	    }
-	}
-	closedir ($dirh_module);
-    }
-}
-
-sub get_modules($$)
-{
-    my $build_path = shift;
-    my $target = shift;
-
-    my @modules = ();
-    my $dirh_toplevel;
-    opendir ($dirh_toplevel, $build_path) || die "Can't open '$build_path': $!";
-    while ( my $subdir = readdir ($dirh_toplevel) )
-    {
-        $subdir =~ m/\./ && next; # eg. vcl.old,
-            $subdir eq 'solver' && next; # skip solver dir itself
-        my $test = "$build_path/$subdir/$target";
-        -d $test || next;
-        push @modules, $test;
-    }
-    closedir ($dirh_toplevel);
-
-    return \@modules;
-}
-
-sub scan_and_link_files($$$)
-{
-    my $build_path = shift;
-    my $installed_files = shift;
-    my $target = shift;
-
-    my @modules = get_modules( $build_path, $target );
-
-    # Scan the old-style module/$target/lib directories ...
-    my %build_files;
-    for my $module (@modules) {
-	scan_one_dir ($installed_files, \%build_files, $module, 0);
-    }
-
-    # Now scan the solver
-    scan_one_dir ($installed_files, \%build_files, "$SOLARVER/$target", 1);
-
-    for my $file (keys %build_files) {
-	my $src = $build_files{$file};
-	my $dest = $installed_files->{$file};
-
-	do_link ($src, $dest, $file, $file);
-    }
-    print "\n";
-}
-
-sub evilness($)
-{
-    my $doit = shift;
-    my $name = 'librecentfile.so';
-    my $src  = "$OOO_BUILD/shell/$TARGET/lib/$name";
-    my $dest = "$OOO_BUILD/sfx2/$TARGET/lib/$name";
-
-    return if ($windows);
-
-    if ($doit eq 'undo') {
-	if (-l $dest) {
-	    print " unlink $name\n";
-	    unlink $dest;
-	}
-    } else {
-	$doit eq 'do' || die;
-        if (-f $src) {
-	    print " link $name\n";
-	    symlink $src, $dest;
-	}
-    }
-}
-
-sub do_link_gdb_py($$$)
-{
-    my $srcdir = shift;
-    my $libdir = shift;
-    my $loader = shift;
-
-    my $lib = $loader =~ s/-gdb.py$//;
-    my $destdir = $libdir;
-    # Autoloader for a library is looked for in the same directory the library
-    # is (the library, not a symlink to it). Therefore it does not help to link
-    # it from solver into install, because there is only a symlink in install
-    # anyway. Instead, we must follow the link.
-    if (-l "$libdir/$lib") {
-        $destdir = readlink ("$libdir/$lib");
-        $destdir =~ s@/[^/]*$@@;
-    }
-
-    if ($destdir ne $srcdir) {
-        do_link ($srcdir, $destdir, $loader, $loader, 1);
-    }
-}
-
-sub link_gdb_py()
-{
-    return if ($windows);
-    print "Special gdb.py helpers case: ";
-
-    my $dirh;
-    my @basis;
-    my @ure;
-    my $src = "$SOLARVER/$TARGET/lib";
-    opendir ($dirh, $src) || die "can't open solver: $src: $!";
-    while (my $dent = readdir ($dirh)) {
-	$dent =~ /^\./ && next;
-	$dent =~ /\-gdb\.py/ || next;
-	if ($dent =~ /uno/) {
-	    push @ure, $dent;
-	} else {
-	    push @basis, $dent;
-	}
-    }
-    closedir ($dirh);
-    if (@ure < 1 || @basis < 1) {
-	print STDERR "Warning: missing helpful python debug helpers\n";
-    } else {
-	for my $c (@basis) {
-	    do_link_gdb_py ($src, "$OOO_INSTALL/program", $c);
-	}
-	for my $c (@ure) {
-	    do_link_gdb_py ($src, "$OOO_INSTALL/ure/lib", $c);
-	}
-    }
-    print "\n";
-}
-
-sub link_pagein_files()
-{
-    return if ($windows);
-
-    print "pagein case:";
-    my $src  = "$SOLARVER/$TARGET/bin";
-    my $dest = "$OOO_INSTALL/" . $brand_program_dir;
-    for my $c ('calc', 'draw', 'impress', 'writer', 'common') {
-	do_link ($src, $dest, "pagein-$c", "pagein-$c");
-    }
-    print "\n";
-}
-
-sub link_ui_files()
-{
-    # First find all the en-US .ui files installed
-    my @files = ();
-
-    find( sub
-          {
-              if ( $File::Find::dir !~ /\/res\// && $_ =~ /\.ui$/ )
-              {
-                  push( @files, $File::Find::name );
-              }
-          }, "$OOO_INSTALL/" );
-
-    my @modules = get_modules( $OOO_BUILD, $TARGET );
-
-    print "ui case:";
-    # Search the files in the source tree
-    for my $dest ( @files )
-    {
-        my @dest_dirs = splitdir( $dest );
-        my $module_dir = @dest_dirs[-3];
-
-        my $name = @dest_dirs[-1];
-        my $nb_dirs = @dest_dirs - 2;
-        my $dest_dir = catdir( @dest_dirs[0..$nb_dirs] );
-
-        # Find out the file to link to in the source tree
-        my $modulepath = "";
-        my $nb_segments = 3;
-        if ( $dest =~ /\/modules\// )
-        {
-            # Handle the modules/* cases
-            if ( $module_dir =~ /^sw/ || $module_dir eq "sglobal" ) { $modulepath = "sw/uiconfig"; }
-            elsif ( $module_dir eq "smath" ) { $modulepath = "starmath/uiconfig"; }
-            elsif ( $module_dir eq "simpress" || $module_dir eq "sdraw" ) { $modulepath = "sd/uiconfig"; }
-            elsif ( $module_dir eq "scalc" ) { $modulepath = "sc/uiconfig"; }
-            elsif ( $module_dir =~ /^db/ ) { $modulepath = "dbaccess/uiconfig"; }
-            elsif ( $module_dir eq "BasicIDE" ) { $modulepath = "basctl/uiconfig/basicide"; $nb_segments = 2; }
-            elsif ( $module_dir eq "schart" ) { $modulepath = "chart2/uiconfig"; $nb_segments = 2; }
-            elsif ( $module_dir eq "tubes" ) { $modulepath = "tubes/uiconfig"; }
-            elsif ( $module_dir eq "StartModule" ) { $modulepath = "framework/uiconfig/startmodule"; $nb_segments = 2; }
-        }
-        else
-        {
-            $nb_segments = 2;
-            # Handle the <module>/ui/ cases
-            my $module = $module_dir;
-            if ( $module_dir eq "sfx" ) { $module = "sfx2"; }
-            elsif ( $module_dir eq "svt" ) { $module = "svtools"; }
-            elsif ( $module_dir eq "sw" ) { $module = "sw"; $nb_segments = 3; }
-            elsif ( $module_dir eq "spa" ) { $module = "padmin"; }
-	    elsif ( $module_dir eq "xmlsec" ) { $module = "xmlsecurity"; }
-
-            $modulepath = "$module/uiconfig";
-        }
-        my $subpath = catdir( @dest_dirs[-$nb_segments..-2] );
-        my $src_dir = "$OOO_BUILD/$modulepath/$subpath";
-
-#	print STDERR "$module_dir : $modulepath : '$src_dir/$name'\n";
-
-        if ( -e "$src_dir/$name" )
-        {
-            do_link ( $src_dir, $dest_dir, $name, $name );
-        }
-    }
-    print "\n";
-}
-
-sub link_rdb_files()
-{
-    print "linking rdb:";
-    my $src_prefix  = "$SOLARVER/$TARGET/";
-    my $dest_prefix = "$OOO_INSTALL/";
-
-    do_link ($src_prefix . "xml" , $dest_prefix . $brand_program_dir . "/services", "services.rdb", "services.rdb");
-    do_link ($src_prefix . "xml/ure" , $dest_prefix . "ure/share/misc", "services.rdb", "services.rdb");
-
-    do_link ($src_prefix . "bin" , $dest_prefix . "ure/share/misc", "udkapi.rdb", "types.rdb");
-
-    print "\n";
-}
-
-# instdir is an internal directory in the build tree
-# installdir is the directory we installed into.
-sub do_recursive_link($$)
-{
-    my ($instdir, $installdir) = @_;
-
-    (-d $installdir && -d $instdir) || die "not directories";
-
-    my $dirhandle;
-    if (opendir ($dirhandle, $instdir)) {
-	while (my $fname = readdir ($dirhandle)) {
-	    $fname =~ /^\./ && next;
-	    if (-d "$instdir/$fname") {
-		if (-d "$installdir/$fname") {
-		    do_recursive_link("$instdir/$fname", "$installdir/$fname");
-		} else {
-		    print STDERR "mismatching directories $instdir/$fname vs. $installdir/$fname\n";
-		}
-	    } elsif (-f "$installdir/$fname") {
-		do_link ($instdir, $installdir, $fname, $fname, 0);
-	    } else {
-		print STDERR "Warning: odd file type for $instdir/$fname\n";
-	    }
-	}
-    } else {
-	print STDERR "Couldn't scan '$instdir': $!";
-    }
-}
-
-sub link_instdir($$)
-{
-    my ($instdir, $installdir) = @_;
-
-    print "linking instdir ...\n";
-    for my $dir (@instdir_replaceable) {
-# include target ...
-	do_recursive_link("$instdir/$dir", "$installdir/$dir");
-    }
-}
-
-evilness ('undo');
-
-my $installed_files = build_installed_list ($OOO_INSTALL);
-
-scan_and_link_files ($OOO_BUILD, $installed_files, $TARGET);
-link_instdir("$OOO_BUILD/instdir/$TARGET", $OOO_INSTALL);
-link_gdb_py();
-link_pagein_files();
-link_ui_files();
-link_rdb_files();
-
-if (!-f "$OOO_INSTALL/" . $brand_program_dir . "/ooenv") {
-    my $ooenv;
-    print "Creating '$OOO_INSTALL/", $brand_program_dir, "/ooenv'\n";
-    open ($ooenv, ">$OOO_INSTALL/" . $brand_program_dir . "/ooenv") || die "Can't open $OOO_INSTALL/" . $brand_program_dir . "/ooenv: $!";
-    print $ooenv "thisdir=$OOO_INSTALL/" . $brand_program_dir . "/\n";
-    print $ooenv $env_script;
-    close ($ooenv);
-}
-
-evilness ('do');
-
-print "\nlinkoo finished\n";
-
-# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/solenv/bin/ooinstall b/solenv/bin/ooinstall
index f2606f3..d634b61 100755
--- a/solenv/bin/ooinstall
+++ b/solenv/bin/ooinstall
@@ -20,7 +20,6 @@ use Cwd;
 
 $path = '';
 $strip = '';
-$do_link = 0;
 $is_windows = 0;
 my $tmp_dir;
 
@@ -45,9 +44,7 @@ if ($ENV{'SYSTEM_MOZILLA'} eq 'YES') {
 $ENV{'PYTHONPATH'} = "$ENV{'SRC_ROOT'}/instsetoo_native/$ENV{'INPATH'}/bin:$ENV{'SOLARVERSION'}/$ENV{'INPATH'}/lib:$ENV{'SOLARVERSION'}/$ENV{'INPATH'}/lib/python:$ENV{'SOLARVERSION'}/$ENV{'INPATH'}/lib/python/lib-dynload";
 
 for $arg (@ARGV) {
-    if ($arg eq '-l' || $arg eq '--link') {
-        $do_link = 1;
-    } elsif ($arg eq '-s' || $arg eq '--strip') {
+    if ($arg eq '-s' || $arg eq '--strip') {
         $strip = "-strip";
     } elsif ($arg eq '-h' || $arg eq '--help') {
         $help = 1;
@@ -61,8 +58,7 @@ for $arg (@ARGV) {
 $help = 1 if $path eq '';
 
 if ($help) {
-    print "ooinstall [-l] [-s] <prefix to install to>\n";
-    print "  -l/--link  - performs a linkoo on the installed source\n";
+    print "ooinstall [-s] <prefix to install to>\n";
     print "  -s/--strip - strip the installed binaries\n";
     exit 1;
 }
@@ -121,11 +117,6 @@ if ($ENV{BUILD_TYPE} =~ m/ODK/) {
 }
 print "Installer finished\n";
 
-if ($do_link && !$is_windows) {
-    system("$ENV{SOLARENV}/bin/linkoo $path $ENV{BUILDDIR}") &&
-      die "linkoo failed: $!";
-}
-
 # Local Variables:
 # cperl-indent-level: 4
 # indent-tabs-mode: nil


More information about the Libreoffice-commits mailing list