[Libreoffice-commits] core.git: Branch 'ports/macosx10.5/master' - 637 commits - accessibility/inc accessibility/source android/Bootstrap android/source apple_remote/Library_AppleRemote.mk avmedia/Library_avmediaQuickTime.mk avmedia/Module_avmedia.mk avmedia/source basctl/inc basctl/source basegfx/source basic/source binaryurp/source bin/check-elf-dynamic-objects bin/gbuild-to-ide bridges/inc bridges/Library_cpp_uno.mk bridges/source canvas/source chart2/inc chart2/qa chart2/source chart2/uiconfig cli_ure/source codemaker/source comphelper/inc comphelper/source compilerplugins/clang config_host/config_kde4.h.in config_host/config_version.h.in config_host.mk.in configmgr/qa configure.ac connectivity/inc connectivity/source cppcanvas/source cppuhelper/qa cppuhelper/source cppuhelper/test cppu/source cui/inc cui/source cui/uiconfig dbaccess/inc dbaccess/Module_dbaccess.mk dbaccess/source desktop/CppunitTest_desktop_lib.mk desktop/Library_sofficeapp.mk desktop/qa desktop/source desktop/test desktop/u til desktop/win32 desktop/WinResTarget_sbase.mk desktop/WinResTarget_scalc.mk desktop/WinResTarget_sdraw.mk desktop/WinResTarget_simpress.mk desktop/WinResTarget_smath.mk desktop/WinResTarget_sofficebin.mk desktop/WinResTarget_soffice.mk desktop/WinResTarget_sweb.mk desktop/WinResTarget_swriter.mk download.lst drawinglayer/inc drawinglayer/source editeng/inc editeng/qa editeng/source .editorconfig embeddedobj/source extensions/source external/apache-commons external/beanshell external/clew external/coinmp external/curl external/firebird external/harfbuzz external/hsqldb external/jfreereport external/languagetool external/liblangtag external/liborcus external/libzmf external/nss external/openssl external/python3 external/rhino external/unixODBC extras/source filter/Configuration_filter.mk filter/qa filter/source forms/inc forms/source formula/source fpicker/Library_fps_aqua.mk fpicker/source fpicker/uiconfig framework/inc framework/Library_fwk.mk framework/qa framework/source .gitign ore helpcompiler/inc helpcompiler/source helpcontent2 hwpfilter/source i18npool/inc i18npool/source i18nutil/source icon-themes/galaxy idlc/inc idl/inc idl/source include/basegfx include/basic include/canvas include/codemaker include/com include/comphelper include/connectivity include/cppuhelper include/dbaccess include/default.rc include/drawinglayer include/editeng include/filter include/formula include/framework include/i18nutil include/LibreOfficeKit include/o3tl include/oox include/osl include/registry include/rtl include/sal include/sax include/sfx2 include/sot include/store include/svl include/svtools include/svx include/toolkit include/tools include/typelib include/ucbhelper include/uno include/unotools include/vcl include/version.hrc include/xmloff include/xmlscript instsetoo_native/CustomTarget_install.mk instsetoo_native/CustomTarget_setup.mk instsetoo_native/util io/source jvmfwk/Library_jvmfwk.mk jvmfwk/plugins l10ntools/inc l10ntools/source libreofficekit/qa libreoffic ekit/source lingucomponent/source linguistic/source lotuswordpro/source Makefile.in mysqlc/source odk/CppunitTest_odk_checkapi.mk odk/CustomTarget_settings.mk odk/examples odk/Package_odk_headers.mk odk/settings offapi/com offapi/UnoApi_offapi.mk officecfg/files.mk officecfg/registry onlineupdate/source oox/source opencl/inc postprocess/CustomTarget_registry.mk postprocess/Module_postprocess.mk postprocess/Rdb_services.mk pyuno/inc pyuno/README qadevOOo/qa qadevOOo/runner qadevOOo/tests readlicense_oo/docs readlicense_oo/license README.Solaris registry/source remotebridges/examples reportdesign/inc reportdesign/source reportdesign/uiconfig reportdesign/UIConfig_dbreport.mk RepositoryExternal.mk Repository.mk rsc/inc rsc/source sal/cpprt sal/CppunitTest_sal_rtl_oustringbuffer.mk sal/Library_sal.mk sal/osl sal/qa sal/rtl sax/inc sax/source scaddins/source sc/CppunitTest_sc_subsequent_filters_test.mk sc/inc sc/Library_sc.mk sc/Module_sc.mk scp2/source sc/Package_res_xml.mk sc/qa sc/res scripting/java scripting/source sc/sdi sc/source sc/uiconfig sc/UIConfig_scalc.mk sdext/source sd/inc sd/qa sd/source sd/uiconfig sd/UIConfig_simpress.mk setup_native/install_name_patcher.app setup_native/scripts setup_native/source sfx2/classification sfx2/source shell/Library_macbe.mk shell/source slideshow/source solenv/bin solenv/gbuild solenv/lldb sot/source starmath/inc starmath/qa starmath/source stoc/source store/source svgio/inc svgio/qa svgio/source svl/qa svl/source svtools/inc svtools/source svx/inc svx/Library_svxcore.mk svx/source svx/uiconfig sw/CppunitTest_sw_mailmerge.mk sw/CppunitTest_sw_ooxmlimport.mk swext/mediawiki sw/inc sw/Module_sw.mk sw/qa sw/sdi sw/source sw/uiconfig sysui/CustomTarget_deb.mk sysui/CustomTarget_rpm.mk sysui/desktop test/source testtools/CustomTarget_uno_test.mk toolkit/Library_tk.mk toolkit/source tools/qa tools/source ucb/CppunitTest_ucb_webdav_res_access.mk ucbhelper/source ucb/Module_ucb.mk ucb/qa ucb/source unotools/Library_utl.mk unot ools/source ure/source vbahelper/inc vcl/CustomTarget_tde_moc.mk vcl/inc vcl/Library_vcl.mk vcl/Library_vclplug_kde4.mk vcl/null vcl/opengl vcl/osx vcl/qa vcl/quartz vcl/source vcl/StaticLibrary_vclmain.mk vcl/unx vcl/win vcl/workben wizards/com writerfilter/inc writerfilter/Module_writerfilter.mk writerfilter/source writerperfect/Library_wpftdraw.mk xmlhelp/source xmloff/inc xmloff/source

Douglas Mencken dougmencken at gmail.com
Wed Sep 28 22:57:16 UTC 2016


Rebased ref, commits from common ancestor:
commit cff232634b03bca19bf9572a53b20d7d35f04aae
Author: Douglas Mencken <dougmencken at gmail.com>
Date:   Sun Sep 25 04:49:44 2016 -0400

    The logic is “ no QuickTime™ in the 10.12 SDK & beyond ”
    
    instead of “ QuickTime only in 10.8 10.9 10.10 & 10.11 ”
    
    related commits are
      a4e81b7c313e5cb0e0f23a8605502b4b0b7f599e
      bfbbbd87d33c0d51a9ff844f2175400b753ba5b9
    
    Change-Id: Ie65abb736aa11ad063edeaed798d2e03db1684fe

diff --git a/Repository.mk b/Repository.mk
index 72352b5..137a718 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -282,7 +282,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
 	$(if $(filter MACOSX,$(OS)),\
 		$(if $(shell test $(MACOSX_SDK_VERSION) -ge 1070 && echo yep),avmediaMacAVF) \
 		$(if $(ENABLE_MACOSX_SANDBOX),,\
-			$(if $(filter 1080 1090 101000 101100,$(MACOSX_SDK_VERSION)),avmediaQuickTime) \
+			$(if $(shell test $(MACOSX_SDK_VERSION) -ge 101200 || echo not),avmediaQuickTime) \
 		) \
 	) \
 	$(call gb_Helper_optional,SCRIPTING, \
diff --git a/avmedia/Module_avmedia.mk b/avmedia/Module_avmedia.mk
index b8a2ac7..3617c88 100644
--- a/avmedia/Module_avmedia.mk
+++ b/avmedia/Module_avmedia.mk
@@ -37,7 +37,7 @@ endif
 
 ifeq ($(OS),MACOSX)
 ifneq ($(ENABLE_MACOSX_SANDBOX),TRUE)
-ifneq ($(filter 1080 1090 101000 101100,$(MACOSX_SDK_VERSION)),)
+ifneq ($(shell test $(MACOSX_SDK_VERSION) -ge 101200; echo $$?),0)
 $(eval $(call gb_Module_add_targets,avmedia,\
 	Library_avmediaQuickTime \
 ))
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index 52cc6fe..12d4b8c 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -129,7 +129,7 @@ $(eval $(call gb_Rdb_add_components,services,\
 			$(call gb_Helper_optional,AVMEDIA,avmedia/source/macavf/avmediaMacAVF) \
 		) \
 		$(if $(filter TRUE,$(ENABLE_MACOSX_SANDBOX)),, \
-			$(if $(filter 1080 1090 101000 101100,$(MACOSX_SDK_VERSION)), \
+			$(if $(shell test $(MACOSX_SDK_VERSION) -ge 101200 || echo nope), \
 				$(call gb_Helper_optional,AVMEDIA,avmedia/source/quicktime/avmediaQuickTime) \
 			) \
 		) \
commit 9326e27872d7b93c1dc7aa683e070987030e468b
Author: Douglas Mencken <dougmencken at gmail.com>
Date:   Sun Sep 25 09:15:34 2016 -0400

    Tweaks for instsetoo_native/CustomTarget_setup.mk
    
    when “ ' ” is used in some variable, this script fails e.g
    
        syntax error near unexpected token `('
        /bin/sh: -c: line 9: `&& echo 'UpdateUserAgent=<PRODUCT> (${buildid}; ${_OS}; ${_ARCH}; <OPTIONAL_OS_HW_DATA>)' \'
    
        /bin/sh: -c: line 10: unexpected EOF while looking for matching `''
        /bin/sh: -c: line 12: syntax error: unexpected end of file
    
    Change-Id: Id68558533b14e81bd4c4a3f72e7946d9c6ffc5bd

diff --git a/instsetoo_native/CustomTarget_setup.mk b/instsetoo_native/CustomTarget_setup.mk
index ae98954..084e3a2 100644
--- a/instsetoo_native/CustomTarget_setup.mk
+++ b/instsetoo_native/CustomTarget_setup.mk
@@ -135,16 +135,16 @@ $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_
 $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_rcfile,version) :
 	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
 	( \
-		echo '[Version]' \
-		&& echo 'AllLanguages=$(if $(gb_WITH_LANG),$(gb_WITH_LANG),en-US)' \
-		&& echo 'BuildVersion=$(BUILD_VER_STRING)' \
-		&& echo 'buildid=$(shell cd $(SRCDIR) && git log -1 --format=%H)' \
-		&& echo 'ExtensionUpdateURL=http://updateexte.libreoffice.org/ExtensionUpdateService/check.Update' \
-		&& echo 'ReferenceOOoMajorMinor=4.1' \
-		&& echo 'UpdateID=$(PRODUCTNAME)_$(LIBO_VERSION_MAJOR)_en-US' \
-		&& echo 'UpdateURL=$(if $(ENABLE_ONLINE_UPDATE),http://update.libreoffice.org/check.php$(if $(filter-out WNT,$(OS)),?pkgfmt=$(PKGFORMAT)))' \
-		&& echo 'UpdateUserAgent=<PRODUCT> ($${buildid}; $${_OS}; $${_ARCH}; <OPTIONAL_OS_HW_DATA>)' \
-		&& echo 'Vendor=$(OOO_VENDOR)' \
+		echo "[Version]" \
+		&& echo "AllLanguages=$(if $(gb_WITH_LANG),$(gb_WITH_LANG),en-US)" \
+		&& echo "BuildVersion=$(BUILD_VER_STRING)" \
+		&& echo "buildid=$(shell cd $(SRCDIR) && git log -1 --format=%H)" \
+		&& echo "ExtensionUpdateURL=http://updateexte.libreoffice.org/ExtensionUpdateService/check.Update" \
+		&& echo "ReferenceOOoMajorMinor=4.1" \
+		&& echo "UpdateID=$(PRODUCTNAME)_$(LIBO_VERSION_MAJOR)_en-US" \
+		&& echo "UpdateURL=$(if $(ENABLE_ONLINE_UPDATE),http://update.libreoffice.org/check.php$(if $(filter-out WNT,$(OS)),?pkgfmt=$(PKGFORMAT)))" \
+		&& echo "UpdateUserAgent=LibreOffice for Mac OS X PowerPC <OPTIONAL_OS_HW_DATA>" \
+		&& echo "Vendor=$(OOO_VENDOR)" \
 	) > $@
 
 # vim: set noet sw=4 ts=4:
commit 54012762bd28b582ffe703979e13cfdcbb460a7b
Author: Douglas Mencken <dougmencken at gmail.com>
Date:   Sun Sep 18 16:49:21 2016 -0400

    trying to figure out what’s wrong with gengal and paths

diff --git a/svx/source/gallery2/gallery1.cxx b/svx/source/gallery2/gallery1.cxx
index d9b5ce5..06886c5 100644
--- a/svx/source/gallery2/gallery1.cxx
+++ b/svx/source/gallery2/gallery1.cxx
@@ -193,11 +193,17 @@ Gallery* Gallery::GetGalleryInstance()
 
 void Gallery::ImplLoad( const OUString& rMultiPath )
 {
+OString blah = OUStringToOString( rMultiPath, RTL_TEXTENCODING_UTF8 );
+fprintf( stderr, "void Gallery::ImplLoad( \"%s\" )\n", blah.pData->buffer );
+
     const sal_Int32 nTokenCount = comphelper::string::getTokenCount(rMultiPath, ';');
     bool            bIsReadOnlyDir;
 
     bMultiPath = ( nTokenCount > 0 );
 
+OString configpath = OUStringToOString( SvtPathOptions().GetConfigPath(), RTL_TEXTENCODING_UTF8 );
+fprintf( stderr, "void Gallery::ImplLoad SvtPathOptions().GetConfigPath() is \"%s\"\n", configpath.pData->buffer );
+
     INetURLObject aCurURL(SvtPathOptions().GetConfigPath());
     ImplLoadSubDirs( aCurURL, bIsReadOnlyDir );
 
@@ -227,6 +233,8 @@ void Gallery::ImplLoad( const OUString& rMultiPath )
 
 void Gallery::ImplLoadSubDirs( const INetURLObject& rBaseURL, bool& rbDirIsReadOnly )
 {
+fprintf( stderr, "void Gallery::ImplLoadSubDirs\n" );
+
     rbDirIsReadOnly = false;
 
     try
diff --git a/svx/source/gengal/gengal.cxx b/svx/source/gengal/gengal.cxx
index f8b5385..a5e92c8 100644
--- a/svx/source/gengal/gengal.cxx
+++ b/svx/source/gengal/gengal.cxx
@@ -61,6 +61,9 @@ protected:
 
 Gallery* createGallery( const OUString& rURL )
 {
+OString blah = OUStringToOString( rURL, RTL_TEXTENCODING_UTF8 );
+fprintf( stderr, "gengal createGallery( \"%s\" )\n", blah.pData->buffer );
+
     return new Gallery( rURL );
 }
 
@@ -73,9 +76,9 @@ static void createTheme( const OUString& aThemeName, const OUString& aGalleryURL
                          const OUString& aDestDir, std::vector<INetURLObject> &rFiles,
                          bool bRelativeURLs )
 {
-    Gallery* pGallery;
+fprintf( stderr, "gengal top of static void createTheme\n" );
 
-    pGallery = createGallery( aGalleryURL );
+    Gallery* pGallery = createGallery( aGalleryURL );
     if (!pGallery ) {
             fprintf( stderr, "Could't create '%s'\n",
                      OUStringToOString( aGalleryURL, RTL_TEXTENCODING_UTF8 ).getStr() );
@@ -169,9 +172,10 @@ static INetURLObject Smartify( const OUString &rPath )
 
 void GalApp::Init()
 {
-    try {
         if( !mbInBuildTree && getenv( "OOO_INSTALL_PREFIX" ) == nullptr ) {
             OUString fileName = GetAppFileName();
+OString blah = OUStringToOString( fileName, RTL_TEXTENCODING_UTF8 );
+fprintf( stderr, "gengal GalApp::Init() fileName is \"%s\"\n", blah.pData->buffer );
             int lastSlash = fileName.lastIndexOf( '/' );
 #ifdef _WIN32
         // Don't know which directory separators GetAppFileName() returns on Windows.
@@ -179,32 +183,30 @@ void GalApp::Init()
             if( fileName.lastIndexOf( '\\' ) > lastSlash )
                 lastSlash = fileName.lastIndexOf( '\\' );
 #endif
-            OUString baseBinDir = fileName.copy( 0, lastSlash );
-            OUString installPrefix = baseBinDir + "/../..";
+            OUString path = fileName.copy( 0, lastSlash );
+            OUString installPrefix = path + "/../..";
 
-            OUString envVar( "OOO_INSTALL_PREFIX");
-            osl_setEnvironment(envVar.pData, installPrefix.pData);
+            OUString envVar( "OOO_INSTALL_PREFIX" );
+            osl_setEnvironment( envVar.pData, installPrefix.pData );
         }
         OSL_TRACE( "OOO_INSTALL_PREFIX=%s", getenv( "OOO_INSTALL_PREFIX" ) );
 
-        uno::Reference<uno::XComponentContext> xComponentContext
-            = ::cppu::defaultBootstrap_InitialComponentContext();
-        xMSF.set( xComponentContext->getServiceManager(), uno::UNO_QUERY );
-        if( !xMSF.is() )
+        uno::Reference<uno::XComponentContext> xComponentContext = ::cppu::defaultBootstrap_InitialComponentContext();
+        bool okay = true;
+        if ( ! xComponentContext.is() )
+            okay = false;
+        else
+        {
+            xMSF.set( xComponentContext->getServiceManager(), uno::UNO_QUERY );
+            if( !xMSF.is() ) okay = false;
+        }
+        if ( ! okay )
         {
-            fprintf( stderr, "Failed to bootstrap\n" );
+            fprintf( stderr, "GalApp::Init can not bootstrap\n" );
             exit( 1 );
         }
-        ::comphelper::setProcessServiceFactory( xMSF );
 
-        // For backwards compatibility, in case some code still uses plain
-        // createInstance w/o args directly to obtain an instance:
-        css::ucb::UniversalContentBroker::create(xComponentContext);
-    } catch (const uno::Exception &e) {
-        fprintf( stderr, "Bootstrap exception '%s'\n",
-                 rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ).getStr() );
-        exit( 1 );
-    }
+        ::comphelper::setProcessServiceFactory( xMSF );
 }
 
 std::vector<OUString> ReadResponseFile_Impl(OUString const& rInput)
@@ -274,6 +276,8 @@ ReadResponseFile(std::vector<INetURLObject> & rFiles, OUString const& rInput)
 
 int GalApp::Main()
 {
+fprintf( stderr, "hola from gengal GalApp::Main()\n" );
+
     try
     {
         OUString aPath, aDestDir;
@@ -340,6 +344,7 @@ void GalApp::DeInit()
 
 void vclmain::createApplication()
 {
+fprintf( stderr, "top of gengal vclmain::createApplication()\n" );
     Application::EnableConsoleOnly();
     static GalApp aGalApp;
 }
diff --git a/unotools/source/config/pathoptions.cxx b/unotools/source/config/pathoptions.cxx
index 944eb36..3be8a77 100644
--- a/unotools/source/config/pathoptions.cxx
+++ b/unotools/source/config/pathoptions.cxx
@@ -211,6 +211,8 @@ static const VarNameAttribute aVarNameAttribute[] =
 
 const OUString& SvtPathOptions_Impl::GetPath( SvtPathOptions::Paths ePath )
 {
+fprintf( stderr, "const OUString& SvtPathOptions_Impl::GetPath( SvtPathOptions::Paths ePath )\n" );
+
     if ( ePath >= SvtPathOptions::PATH_COUNT )
         return m_aEmptyString;
 
@@ -384,12 +386,18 @@ SvtPathOptions_Impl::SvtPathOptions_Impl() :
     m_aLanguageTag( LANGUAGE_DONTKNOW )
 {
     Reference< XComponentContext > xContext = comphelper::getProcessComponentContext();
+fprintf( stderr, "xContext okay @ SvtPathOptions_Impl::SvtPathOptions_Impl()\n" );
 
     // Create necessary services
     Reference< XPathSettings > xPathSettings = thePathSettings::get(xContext);
+fprintf( stderr, "xPathSettings okay @ SvtPathOptions_Impl::SvtPathOptions_Impl()\n" );
+
     m_xPathSettings.set( xPathSettings, UNO_QUERY_THROW );
+fprintf( stderr, "m_xPathSettings okay @ SvtPathOptions_Impl::SvtPathOptions_Impl()\n" );
     m_xSubstVariables.set( PathSubstitution::create(xContext) );
+fprintf( stderr, "m_xSubstVariables okay @ SvtPathOptions_Impl::SvtPathOptions_Impl()\n" );
     m_xMacroExpander = theMacroExpander::get(xContext);
+fprintf( stderr, "m_xMacroExpander okay @ SvtPathOptions_Impl::SvtPathOptions_Impl()\n" );
 
     // Create temporary hash map to have a mapping between property names and property handles
     Reference< XPropertySetInfo > xPropSetInfo = xPathSettings->getPropertySetInfo();
@@ -418,15 +426,17 @@ SvtPathOptions_Impl::SvtPathOptions_Impl() :
         }
     }
 
-    // Create hash map for path variables that need a system path as a return value!
+    // Create hash map for path variables that need a system path as a return value
     nCount = sizeof( aVarNameAttribute ) / sizeof( VarNameAttribute );
     for ( i = 0; i < nCount; i++ )
     {
         m_aSystemPathVarNames.insert( OUString::createFromAscii( aVarNameAttribute[i].pVarName ) );
     }
 
-    // Set language type!
+    // Set language type
     m_aLanguageTag.reset( ConfigManager::getLocale() );
+
+fprintf( stderr, "exit from constructor SvtPathOptions_Impl::SvtPathOptions_Impl()\n" );
 }
 
 // class SvtPathOptions --------------------------------------------------
@@ -435,14 +445,19 @@ namespace { struct lclMutex : public rtl::Static< ::osl::Mutex, lclMutex > {}; }
 
 SvtPathOptions::SvtPathOptions()
 {
+fprintf( stderr, "constructor SvtPathOptions::SvtPathOptions()\n" );
+
     // Global access, must be guarded (multithreading)
     ::osl::MutexGuard aGuard( lclMutex::get() );
     pImpl = g_pOptions.lock();
     if ( !pImpl )
     {
-        pImpl = std::make_shared<SvtPathOptions_Impl>();
+fprintf( stderr, "( !pImpl ) @ SvtPathOptions::SvtPathOptions()\n" );
+        pImpl = std::make_shared< SvtPathOptions_Impl >();
+fprintf( stderr, "( !pImpl ) @ SvtPathOptions::SvtPathOptions() ~ make shared okay\n" );
         g_pOptions = pImpl;
         ItemHolder1::holdConfigItem(E_PATHOPTIONS);
+fprintf( stderr, "( !pImpl ) @ SvtPathOptions::SvtPathOptions() ~ holdConfigItem okay\n" );
     }
 }
 
@@ -486,6 +501,8 @@ const OUString& SvtPathOptions::GetBitmapPath() const
 
 const OUString& SvtPathOptions::GetConfigPath() const
 {
+fprintf( stderr, "const OUString& SvtPathOptions::GetConfigPath() const\n" );
+
     return pImpl->GetConfigPath();
 }
 
commit af56438dcb2db270033ee8c2f191ac4d6f850df7
Author: Douglas Mencken <dougmencken at gmail.com>
Date:   Thu Sep 15 14:47:50 2016 -0400

    Revert "remove use of Archive::Zip"
    
    This reverts commit 4e3dc8c141c2efd037c1f214b5edff071812b6a8
    
    because at build time
      Can't locate object method "newdir" via package "File::Temp"
      at solenv/bin/packimages.pl line 358
    
    Change-Id: I8a6b218170ffde5b412f1c730dfe2c141c8cd3e4

diff --git a/README.Solaris b/README.Solaris
index a9ad888..ce460d9 100644
--- a/README.Solaris
+++ b/README.Solaris
@@ -20,6 +20,8 @@ sudo -s
 
 pkg install git make gcc-45 autoconf autogen automake-110 gnu-m4
 
+perl -MCPAN -e 'install Archive::Zip::Archive'
+
 pkg install pkg:/system/header at 0.5.11-0.175.0.0.0.2.1
 pkg install pkg:/developer/gperf at 3.0.3-0.175.0.0.0.2.537
 pkg install pkg:/developer/parser/bison at 2.3-0.175.0.0.0.2.537
diff --git a/configure.ac b/configure.ac
index cc39ea7..39e818b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5071,11 +5071,15 @@ dnl Testing for required Perl modules
 dnl ===================================================================
 
 AC_MSG_CHECKING([for required Perl modules])
-if `$PERL -e 'use Cwd; use Digest::MD5'>/dev/null 2>&1`; then
+if `$PERL -e 'use Archive::Zip; use Cwd; use Digest::MD5'>/dev/null 2>&1`; then
     AC_MSG_RESULT([all modules found])
 else
     AC_MSG_RESULT([failed to find some modules])
     # Find out which modules are missing.
+    missing_perl_modules=
+    if ! `$PERL -e 'use Archive::Zip;'>/dev/null 2>&1`; then
+        missing_perl_modules=Archive::Zip
+    fi
     if ! `$PERL -e 'use Cwd;'>/dev/null 2>&1`; then
         missing_perl_modules="$missing_perl_modules Cwd"
     fi
diff --git a/solenv/bin/packimages.pl b/solenv/bin/packimages.pl
index e9875b5..d2831da 100644
--- a/solenv/bin/packimages.pl
+++ b/solenv/bin/packimages.pl
@@ -27,10 +27,9 @@ use strict;
 use Getopt::Long;
 use File::Find;
 use File::Basename;
-use File::Copy qw(copy);
-use File::Path qw(make_path);
 require File::Temp;
 use File::Temp ();
+use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
 
 #### globals ####
 
@@ -92,8 +91,7 @@ remove_links_from_zip_list($zip_hash_ref, \%links);
 
 $do_rebuild = is_file_newer($zip_hash_ref) if $do_rebuild == 0;
 if ( $do_rebuild == 1 ) {
-    my $tmpdir = copy_images($zip_hash_ref);
-    create_zip_archive($zip_hash_ref, \%links, $tmpdir);
+    create_zip_archive($zip_hash_ref, \%links);
     replace_file($tmp_out_file, $out_file);
     print_message("packing  $out_file finished.") if $verbose;
 } else {
@@ -352,50 +350,40 @@ sub optimize_zip_layout($)
     return @sorted;
 }
 
-sub copy_images($)
+sub create_zip_archive
 {
-    my ($zip_hash_ref) = @_;
-    my $dir = File::Temp->newdir();
-    foreach (keys %$zip_hash_ref) {
-        my $path = $zip_hash_ref->{$_} . "/$_";
-        my $outpath = $dir . "/$_";
-        print_message("copying '$path' to '$outpath' ...") if $extra_verbose;
-        if ( -e $path) {
-            my $dirname = dirname($outpath);
-            if (!-d $dirname) {
-                make_path($dirname);
-            }
-            copy($path, $outpath)
-                or print_error("can't add file '$path' to image dir: $!", 5);
-        }
-    }
-    return $dir;
-}
-
-sub create_zip_archive($$$)
-{
-    my ($zip_hash_ref, $links_hash_ref, $image_dir_ref) = @_;
+    my $zip_hash_ref = shift;
+    my $links_hash_ref = shift;
 
     print_message("creating image archive ...") if $verbose;
+    my $zip = Archive::Zip->new();
 
-    chdir $image_dir_ref;
-
+    my $linktmp;
     if (keys %{$links_hash_ref}) {
-        write_links($links_hash_ref, $image_dir_ref);
-        system "zip $tmp_out_file links.txt";
-            # print_error("failed to add links file: $!", 5);
+        $linktmp = write_links($links_hash_ref);
+        my $member = $zip->addFile($linktmp->filename, "links.txt", COMPRESSION_DEFLATED);
+        if (!$member) {
+            print_error("failed to add links file: $!", 5);
+        }
     }
 
-    my @sorted_list = optimize_zip_layout($zip_hash_ref);
-    my $sorted_file = File::Temp->new();
-    foreach my $item (@sorted_list) {
-        print $sorted_file "$item\n";
+# FIXME: test - $member = addfile ... $member->desiredCompressionMethod( COMPRESSION_STORED );
+# any measurable performance win/loss ?
+    foreach ( optimize_zip_layout($zip_hash_ref) ) {
+        my $path = $zip_hash_ref->{$_} . "/$_";
+        print_message("zipping '$path' ...") if $extra_verbose;
+        if ( -e $path) {
+            my $member = $zip->addFile($path, $_, COMPRESSION_STORED);
+            if ( !$member ) {
+                print_error("can't add file '$path' to image zip archive: $!", 5);
+            }
+        }
     }
-    binmode $sorted_file; # flush
-
-    system "cat $sorted_file | zip -0 -@ $tmp_out_file";
-        # print_error("write image zip archive '$tmp_out_file' failed. Reason: $!", 6);
-    chdir; # just go out of the temp dir
+    my $status = $zip->writeToFileNamed($tmp_out_file);
+    if ( $status != AZ_OK ) {
+        print_error("write image zip archive '$tmp_out_file' failed. Reason: $status", 6);
+    }
+    return;
 }
 
 sub replace_file
@@ -497,17 +485,18 @@ sub read_links($$)
     close ($fh);
 }
 
-# write out the links
-sub write_links($$)
+# write out the links to a tmp file
+sub write_links($)
 {
-    my ($links, $out_dir_ref) = @_;
-    open (my $fh, ">", "$out_dir_ref/links.txt")
-        || die "can't create links.txt";
+    my $links = shift;
+    my $tmp = File::Temp->new( TEMPLATE => "linksXXXXXXX" );
+    $tmp || die "can't create tmp: $!";
     for my $missing (sort keys %{$links}) {
         my $line = $missing . " " . $links->{$missing} . "\n";
-        print $fh $line;
+        print $tmp $line;
     }
-    close $fh;
+    binmode $tmp; # force flush
+    return $tmp;
 }
 
 # Ensure that no link points to another link
commit b395f401170d177f9fff96533ad08adff5dfe087
Author: Douglas Mencken <dougmencken at gmail.com>
Date:   Mon Aug 29 14:55:50 2016 -0400

    hey I want JDK 1.5 back and GCJ too
    
    revert with some changes
        7fe8c0b852fa421fe52de99a7f59e45027139eed  Remove gcj support from build system
        1b8c61d5ca8e2a7ae7a0bcd189b7a87defecea03  Bump JDK buildtime requirement to 1.6
        16c0807d75cfd9ecbca9c703ed0eadda80529aab  configure: reject Apple JDK
    
    Change-Id: I13a36fa9bb500b74de9fca7f88225376a19697f5

diff --git a/config_host.mk.in b/config_host.mk.in
index eedc6d2..e918250 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -250,6 +250,7 @@ export HAVE_GCC_FNO_SIZED_DEALLOCATION=@HAVE_GCC_FNO_SIZED_DEALLOCATION@
 export HAVE_GCC_GGDB2=@HAVE_GCC_GGDB2@
 export HAVE_GCC_PRAGMA_OPERATOR=@HAVE_GCC_PRAGMA_OPERATOR@
 export HAVE_GNUMAKE_FILE_FUNC=@HAVE_GNUMAKE_FILE_FUNC@
+export HAVE_JAVA6=@HAVE_JAVA6@
 export HAVE_LD_BSYMBOLIC_FUNCTIONS=@HAVE_LD_BSYMBOLIC_FUNCTIONS@
 export HAVE_LD_HASH_STYLE=@HAVE_LD_HASH_STYLE@
 export HAVE_NON_CONST_NPP_GETMIMEDESCRIPTION=@HAVE_NON_CONST_NPP_GETMIMEDESCRIPTION@
@@ -284,6 +285,7 @@ export INSTDIR_FOR_BUILD=@INSTDIR_FOR_BUILD@
 export INSTROOT=@INSTROOT@
 export INSTROOT_FOR_BUILD=@INSTROOT_FOR_BUILD@
 export IWYU_PATH=@IWYU_PATH@
+export JAVACISGCJ=@JAVACISGCJ@
 export JAVACOMPILER=@JAVACOMPILER@
 export JAVADOC=@JAVADOC@
 export JAVADOCISGJDOC=@JAVADOCISGJDOC@
diff --git a/configure.ac b/configure.ac
index de62b3f..cc39ea7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6842,6 +6842,7 @@ if test "$ENABLE_JAVA" != ""; then
     fi
 fi
 
+HAVE_JAVA6=
 HAVE_JAVA9=
 dnl ===================================================================
 dnl Checks for JDK.
@@ -6859,7 +6860,11 @@ if test "$ENABLE_JAVA" != ""; then
         if test `$JAVAINTERPRETER -version 2>&1 | $GREP -c "Kaffe"` -gt 0; then
             AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
         elif test `$JAVAINTERPRETER --version 2>&1 | $GREP -c "GNU libgcj"` -gt 0; then
-            AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
+            JDK=gcj
+            AC_MSG_RESULT([checked (gcj)])
+            _gij_version=`$JAVAINTERPRETER --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`
+            _gij_longver=`echo $_gij_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
+
         elif test `$JAVAINTERPRETER -version 2>&1 | $AWK '{ print }' | $GREP -c "BEA"` -gt 0; then
             AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
         elif test `$JAVAINTERPRETER -version 2>&1 | $AWK '{ print }' | $GREP -c "IBM"` -gt 0; then
@@ -6869,8 +6874,11 @@ if test "$ENABLE_JAVA" != ""; then
             _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//`
             _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
 
-            if test "$_jdk_ver" -lt 10600; then
-                AC_MSG_ERROR([IBM JDK is too old, you need at least 1.6])
+            if test "$_jdk_ver" -lt 10500; then
+                AC_MSG_ERROR([IBM JDK is too old, you need at least 1.5])
+            fi
+            if test "$_jdk_ver" -ge 10600; then
+                HAVE_JAVA6=TRUE
             fi
 
             AC_MSG_RESULT([checked (IBM JDK $_jdk)])
@@ -6888,12 +6896,15 @@ you must use the "--with-jdk-home" configure option explicitly])
             _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//`
             _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
 
-            if test "$_jdk_ver" -lt 10600; then
-                AC_MSG_ERROR([JDK is too old, you need at least 1.6])
+            if test "$_jdk_ver" -lt 10500; then
+                AC_MSG_ERROR([JDK is too old, you need at least 1.5])
             fi
             if test "$_jdk_ver" -gt 10600; then
                 JAVA_CLASSPATH_NOT_SET="1"
             fi
+            if test "$_jdk_ver" -ge 10600; then
+                HAVE_JAVA6=TRUE
+            fi
             if test "$_jdk_ver" -ge 10900; then
                 HAVE_JAVA9=TRUE
             fi
@@ -6910,13 +6921,15 @@ you must use the "--with-jdk-home" configure option explicitly])
             JAVAFLAGS=-J-Xmx128M
         fi
     else
-        AC_MSG_ERROR([Java not found. You need at least jdk-1.6])
+        AC_MSG_ERROR([Java not found. You need at least JDK 1.5 or GCJ])
     fi
 else
     dnl Java disabled
     JAVA_HOME=
     export JAVA_HOME
 fi
+AC_SUBST([HAVE_JAVA6])
+AC_SUBST([HAVE_JAVA9])
 
 dnl ===================================================================
 dnl Set target Java bytecode version
@@ -6935,7 +6948,11 @@ dnl ===================================================================
 dnl Checks for javac
 dnl ===================================================================
 if test "$ENABLE_JAVA" != ""; then
-    javacompiler="javac"
+    if test "$JDK" = "gcj"; then
+        javacompiler=`echo $with_java | $SED -e "s/gij/gcj/g" | $SED -e "s/java/javac/g"`
+    else
+        javacompiler="javac"
+    fi
     if test -z "$with_jdk_home"; then
         AC_PATH_PROG(JAVACOMPILER, $javacompiler)
     else
@@ -6954,7 +6971,25 @@ if test "$ENABLE_JAVA" != ""; then
         fi
         JAVACOMPILER=`win_short_path_for_make "$JAVACOMPILER"`
     fi
+
+    if test `$JAVACOMPILER -version 2>&1 | $GREP -c "Eclipse Java Compiler"` -gt 0; then
+        AC_MSG_CHECKING([re-checking JDK])
+        JDK=gcj
+        AC_MSG_RESULT([checked (ecj)])
+        _gij_longver="40200"
+    fi
+fi
+
+JAVACISGCJ=""
+dnl ===================================================================
+dnl Checks that javac is gcj
+dnl ===================================================================
+if test "$ENABLE_JAVA" != ""; then
+    if test `$JAVACOMPILER --version 2>&1 | $GREP -c "GCC"` -gt 0; then
+        JAVACISGCJ="yes"
+    fi
 fi
+AC_SUBST(JAVACISGCJ)
 
 dnl ===================================================================
 dnl Checks for javadoc
@@ -7071,28 +7106,24 @@ _ACEOF
         fi
     fi
 
-    # now check if $JAVA_HOME is really valid
-    if test "$_os" = "Darwin" -o "$OS_FOR_BUILD" = MACOSX; then
-        case "${JAVA_HOME}" in
-            /Library/Java/JavaVirtualMachines/*)
-                ;;
-            *)
-                AC_MSG_ERROR([JDK in $JAVA_HOME cannot be used in CppUnit tests - install Oracle JDK])
-                ;;
-        esac
-        if test ! -f "$JAVA_HOME/lib/jvm.cfg" -a "x$with_jdk_home" = "x"; then
+    dnl second sanity check JAVA_HOME if possible
+    if test "$JDK" != "gcj" -o "$_gij_longver" -ge "40200"; then
+        # now check if $JAVA_HOME is really okay
+        if test "$_os" = "Darwin" -o "$OS_FOR_BUILD" = MACOSX; then
+            if test ! -f "$JAVA_HOME/lib/jvm.cfg" -a "x$with_jdk_home" = "x"; then
+                JAVA_HOME_OK="NO"
+            fi
+        elif test ! -d "$JAVA_HOME/jre" -a "x$with_jdk_home" = "x"; then
             JAVA_HOME_OK="NO"
         fi
-    elif test ! -d "$JAVA_HOME/jre" -a "x$with_jdk_home" = "x"; then
-        JAVA_HOME_OK="NO"
-    fi
-    if test "$JAVA_HOME_OK" = "NO"; then
-        AC_MSG_WARN([JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script])
-        AC_MSG_WARN([attempted to find JAVA_HOME automatically, but apparently it failed])
-        AC_MSG_WARN([in case JAVA_HOME is incorrectly set, some projects with not be built correctly])
-        add_warning "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script"
-        add_warning "attempted to find JAVA_HOME automatically, but apparently it failed"
-        add_warning "in case JAVA_HOME is incorrectly set, some projects with not be built correctly"
+        if test "$JAVA_HOME_OK" = "NO"; then
+            AC_MSG_WARN([JAVA_HOME was not explicitly informed with --with-jdk-home])
+            AC_MSG_WARN([attempted to find JAVA_HOME automatically, but apparently it failed])
+            AC_MSG_WARN([in case JAVA_HOME is incorrectly set, some projects with not be built correctly])
+            add_warning "JAVA_HOME was not explicitly informed with --with-jdk-home"
+            add_warning "attempted to find JAVA_HOME automatically, but apparently it failed"
+            add_warning "in case JAVA_HOME is incorrectly set, some projects with not be built correctly"
+        fi
     fi
     PathFormat "$JAVA_HOME"
     JAVA_HOME="$formatted_path"
@@ -11897,7 +11928,12 @@ EOF
         </project>
 EOF
 
-        AC_TRY_COMMAND("$ANT" -buildfile conftest.xml 1>&2)
+        oldJAVA_HOME=$JAVA_HOME
+        if test "$JAVACISGCJ" = "yes"; then
+            JAVA_HOME=; export JAVA_HOME
+            ant_gcj="-Dbuild.compiler=gcj"
+        fi
+        AC_TRY_COMMAND("$ANT" $ant_gcj -buildfile conftest.xml 1>&2)
         if test $? = 0 -a -f ./conftest.class; then
             AC_MSG_RESULT([Ant works])
             if test -z "$WITH_ANT_HOME"; then
@@ -11914,6 +11950,7 @@ EOF
             cat conftest.xml >&5
             AC_MSG_ERROR([Ant does not work - Some Java projects will not build!])
         fi
+        JAVA_HOME=$oldJAVA_HOME
         rm -f conftest* core core.* *.core
     fi
     if test -z "$ANT_HOME"; then
@@ -12793,7 +12830,7 @@ else
     case "$host_os" in
 
     aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
-        if test "$ENABLE_JAVA" != ""; then
+        if test "$ENABLE_JAVA" != "" -a "$JDK"!="gcj"; then
             pathmunge "$JAVA_HOME/bin" "after"
         fi
         ;;
@@ -12832,7 +12869,7 @@ else
             pathmunge "$COMPATH/bin" "before"
             pathmunge "$WINDOWS_SDK_HOME/bin/x86" "before"
         fi
-        if test "$ENABLE_JAVA" != ""; then
+        if test "$ENABLE_JAVA" != "" -a "$JDK"!="gcj"; then
             if test -d "$JAVA_HOME/jre/bin/client"; then
                 pathmunge "$JAVA_HOME/jre/bin/client" "before"
             fi
@@ -12845,7 +12882,7 @@ else
 
     solaris*)
         pathmunge "/usr/css/bin" "before"
-        if test "$ENABLE_JAVA" != ""; then
+        if test "$ENABLE_JAVA" != "" -a "$JDK"!="gcj"; then
             pathmunge "$JAVA_HOME/bin" "after"
         fi
         ;;
diff --git a/external/apache-commons/ExternalProject_apache_commons_logging.mk b/external/apache-commons/ExternalProject_apache_commons_logging.mk
index c34b067..9d329aa 100644
--- a/external/apache-commons/ExternalProject_apache_commons_logging.mk
+++ b/external/apache-commons/ExternalProject_apache_commons_logging.mk
@@ -20,8 +20,10 @@ $(call gb_ExternalProject_get_state_target,apache_commons_logging,build) :
 		-q \
 		-f build.xml \
 		-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
-		-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
-		-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+		-Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) \
+		$(if $(filter yes,$(JAVACISGCJ)),\
+			-Dbuild.compiler=gcj \
+		) \
 		$(if $(debug),-Dcompile.debug="true",-Dcompile.debug="false") \
 		compile build-jar \
 	)
diff --git a/external/beanshell/ExternalProject_beanshell.mk b/external/beanshell/ExternalProject_beanshell.mk
index eb76ad1..fd7846b 100644
--- a/external/beanshell/ExternalProject_beanshell.mk
+++ b/external/beanshell/ExternalProject_beanshell.mk
@@ -21,6 +21,9 @@ $(call gb_ExternalProject_get_state_target,beanshell,build) :
 		-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 		-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 		-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+		$(if $(filter yes,$(JAVACISGCJ)),\
+			-Dbuild.compiler=gcj \
+		) \
 		$(if $(debug),-Dbuild.debug="on") \
 	)
 
diff --git a/external/hsqldb/ExternalProject_hsqldb.mk b/external/hsqldb/ExternalProject_hsqldb.mk
index 07f93ad..cd8d4d3 100644
--- a/external/hsqldb/ExternalProject_hsqldb.mk
+++ b/external/hsqldb/ExternalProject_hsqldb.mk
@@ -21,6 +21,9 @@ $(call gb_ExternalProject_get_state_target,hsqldb,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)), \
+				-Dbuild.compiler=gcj \
+			) \
 			$(if $(debug),-Dbuild.debug="on") \
 			jar \
 	)
diff --git a/external/jfreereport/ExternalProject_jfreereport_flow_engine.mk b/external/jfreereport/ExternalProject_jfreereport_flow_engine.mk
index 8be1e8a..7b8a567 100644
--- a/external/jfreereport/ExternalProject_jfreereport_flow_engine.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_flow_engine.mk
@@ -23,6 +23,7 @@ $(call gb_ExternalProject_get_state_target,jfreereport_flow_engine,build) :
 			-q \
 			-f build.xml \
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
+			-Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) \
 			$(if $(SYSTEM_APACHE_COMMONS),\
 				-Dcommons-logging.jar=$(COMMONS_LOGGING_JAR), \
 				-Dcommons-logging.jar="$(call gb_UnpackedTarball_get_dir,apache_commons_logging)/target/commons-logging-$(COMMONS_LOGGING_VERSION).jar") \
@@ -32,8 +33,9 @@ $(call gb_ExternalProject_get_state_target,jfreereport_flow_engine,build) :
 			-Dlibloader.jar=$(call gb_UnpackedTarball_get_dir,jfreereport_libloader)/dist/libloader-$(LIBLOADER_VERSION).jar \
 			-Dlibserializer.jar=$(call gb_UnpackedTarball_get_dir,jfreereport_libserializer)/dist/libserializer-$(LIBBASE_VERSION).jar \
 			-Dlibxml.jar=$(call gb_UnpackedTarball_get_dir,jfreereport_libxml)/dist/libxml-$(LIBXML_VERSION).jar \
-			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
-			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)), \
+				-Dbuild.compiler=gcj \
+			) \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
 
diff --git a/external/jfreereport/ExternalProject_jfreereport_flute.mk b/external/jfreereport/ExternalProject_jfreereport_flute.mk
index c8dfc4c..a78ca65 100644
--- a/external/jfreereport/ExternalProject_jfreereport_flute.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_flute.mk
@@ -24,8 +24,11 @@ $(call gb_ExternalProject_get_state_target,jfreereport_flute,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)),\
+				-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
-			-Dbuild.id="10682" \
+			-Dbuild.id="12398" \
 			-Dproject.revision="$(FLUTE_VERSION)" \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
diff --git a/external/jfreereport/ExternalProject_jfreereport_libbase.mk b/external/jfreereport/ExternalProject_jfreereport_libbase.mk
index 77bece5..2c0a079 100644
--- a/external/jfreereport/ExternalProject_jfreereport_libbase.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_libbase.mk
@@ -24,8 +24,11 @@ $(call gb_ExternalProject_get_state_target,jfreereport_libbase,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)),\
+				-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
-			-Dbuild.id="10682" \
+			-Dbuild.id="12398" \
 			-Dproject.revision="$(LIBBASE_VERSION)" \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
diff --git a/external/jfreereport/ExternalProject_jfreereport_libfonts.mk b/external/jfreereport/ExternalProject_jfreereport_libfonts.mk
index c71db70..5507732 100644
--- a/external/jfreereport/ExternalProject_jfreereport_libfonts.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_libfonts.mk
@@ -24,8 +24,11 @@ $(call gb_ExternalProject_get_state_target,jfreereport_libfonts,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)),\
+				-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
-			-Dbuild.id="10682" \
+			-Dbuild.id="12398" \
 			-Dproject.revision="$(LIBFONTS_VERSION)" \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
diff --git a/external/jfreereport/ExternalProject_jfreereport_libformula.mk b/external/jfreereport/ExternalProject_jfreereport_libformula.mk
index 7e985c8..e706d67 100644
--- a/external/jfreereport/ExternalProject_jfreereport_libformula.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_libformula.mk
@@ -24,8 +24,11 @@ $(call gb_ExternalProject_get_state_target,jfreereport_libformula,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)),\
+				-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
-			-Dbuild.id="10682" \
+			-Dbuild.id="12398" \
 			-Dproject.revision="$(LIBFORMULA_VERSION)" \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
diff --git a/external/jfreereport/ExternalProject_jfreereport_liblayout.mk b/external/jfreereport/ExternalProject_jfreereport_liblayout.mk
index 9a72002..bacd22a 100644
--- a/external/jfreereport/ExternalProject_jfreereport_liblayout.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_liblayout.mk
@@ -35,6 +35,7 @@ $(call gb_ExternalProject_get_state_target,jfreereport_liblayout,build) :
 			-q \
 			-f build.xml \
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
+			-Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) \
 			$(if $(SYSTEM_APACHE_COMMONS),\
 				-Dcommons-logging.jar=$(COMMONS_LOGGING_JAR), \
 				-Dcommons-logging.jar="$(call gb_UnpackedTarball_get_dir,apache_commons_logging)/target/commons-logging-$(COMMONS_LOGGING_VERSION).jar") \
@@ -47,10 +48,11 @@ $(call gb_ExternalProject_get_state_target,jfreereport_liblayout,build) :
 			-Dlibserializer.jar=$(call gb_UnpackedTarball_get_dir,jfreereport_libserializer)/dist/libserializer-$(LIBBASE_VERSION).jar \
 			-Dlibxml.jar=$(call gb_UnpackedTarball_get_dir,jfreereport_libxml)/dist/libxml-$(LIBXML_VERSION).jar \
 			-Dsac.jar=$(call gb_UnpackedTarball_get_dir,jfreereport_sac)/build/lib/sac.jar \
-			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
-			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)), \
+				-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
-			-Dbuild.id="10682" \
+			-Dbuild.id="12398" \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
 
diff --git a/external/jfreereport/ExternalProject_jfreereport_libloader.mk b/external/jfreereport/ExternalProject_jfreereport_libloader.mk
index 275ef12..5eb9417 100644
--- a/external/jfreereport/ExternalProject_jfreereport_libloader.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_libloader.mk
@@ -24,8 +24,11 @@ $(call gb_ExternalProject_get_state_target,jfreereport_libloader,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)), \
+				-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
-			-Dbuild.id="10682" \
+			-Dbuild.id="12398" \
 			-Dproject.revision="$(LIBLOADER_VERSION)" \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
diff --git a/external/jfreereport/ExternalProject_jfreereport_librepository.mk b/external/jfreereport/ExternalProject_jfreereport_librepository.mk
index 8e953c3..2814457 100644
--- a/external/jfreereport/ExternalProject_jfreereport_librepository.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_librepository.mk
@@ -24,8 +24,11 @@ $(call gb_ExternalProject_get_state_target,jfreereport_librepository,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)), \
+				-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
-			-Dbuild.id="10682" \
+			-Dbuild.id="12398" \
 			-Dproject.revision="$(LIBREPOSITORY_VERSION)" \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
diff --git a/external/jfreereport/ExternalProject_jfreereport_libserializer.mk b/external/jfreereport/ExternalProject_jfreereport_libserializer.mk
index 0e7ff25..7e8761d 100644
--- a/external/jfreereport/ExternalProject_jfreereport_libserializer.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_libserializer.mk
@@ -24,8 +24,11 @@ $(call gb_ExternalProject_get_state_target,jfreereport_libserializer,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)) \
+			,	-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
-			-Dbuild.id="10682" \
+			-Dbuild.id="12398" \
 			-Dproject.revision="$(LIBSERIALIZER_VERSION)" \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
diff --git a/external/jfreereport/ExternalProject_jfreereport_libxml.mk b/external/jfreereport/ExternalProject_jfreereport_libxml.mk
index bfe65a3..c6c24f6 100644
--- a/external/jfreereport/ExternalProject_jfreereport_libxml.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_libxml.mk
@@ -24,8 +24,11 @@ $(call gb_ExternalProject_get_state_target,jfreereport_libxml,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)), \
+				-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
-			-Dbuild.id="10682" \
+			-Dbuild.id="12398" \
 			-Dproject.revision="$(LIBXML_VERSION)" \
 			$(if $(debug),-Dbuild.debug="on") jar \
 	)
diff --git a/external/jfreereport/ExternalProject_jfreereport_sac.mk b/external/jfreereport/ExternalProject_jfreereport_sac.mk
index ff17db9..99d9f25 100644
--- a/external/jfreereport/ExternalProject_jfreereport_sac.mk
+++ b/external/jfreereport/ExternalProject_jfreereport_sac.mk
@@ -21,6 +21,9 @@ $(call gb_ExternalProject_get_state_target,jfreereport_sac,build) :
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ)), \
+				-Dbuild.compiler=gcj \
+			) \
 			-Dantcontrib.available="true" \
 			$(if $(debug),-Dbuild.debug="on") all \
 	)
diff --git a/external/languagetool/ExternalProject_languagetool.mk b/external/languagetool/ExternalProject_languagetool.mk
index ebefbf0..5496017 100644
--- a/external/languagetool/ExternalProject_languagetool.mk
+++ b/external/languagetool/ExternalProject_languagetool.mk
@@ -28,6 +28,9 @@ $(call gb_ExternalProject_get_state_target,languagetool,build) :
 		-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
 		-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
 		-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+		$(if $(filter yes,$(JAVACISGCJ)), \
+			-Dbuild.compiler=gcj \
+		) \
 		$(if $(debug),-Dbuild.debug="on") \
 		-Dext.ooo.juh.lib="$(call gb_Jar_get_target,juh)" \
 		-Dext.ooo.jurt.lib="$(call gb_Jar_get_target,jurt)" \
diff --git a/external/rhino/ExternalProject_rhino.mk b/external/rhino/ExternalProject_rhino.mk
index 6f0719d..3a62972 100644
--- a/external/rhino/ExternalProject_rhino.mk
+++ b/external/rhino/ExternalProject_rhino.mk
@@ -19,9 +19,11 @@ $(call gb_ExternalProject_get_state_target,rhino,build) :
 			-q \
 			-f build.xml \
 			-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO)" \
+			-Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) \
 			-DTARFILE_LOCATION="$(if $(findstring -cygwin,$(BUILD_PLATFORM)),$(shell cygpath -m $(TARFILE_LOCATION)),$(TARFILE_LOCATION))" \
-			-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
-			-Dant.build.javac.target=$(JAVA_TARGET_VER) \
+			$(if $(filter yes,$(JAVACISGCJ))\
+				,-Dbuild.compiler=gcj \
+			) \
 			$(if $(debug),-Dbuild.debug="on") \
 			jar \
 	)
commit 51a5e2a51d2d45194383c0feddb0febba542e789
Author: Douglas Mencken <dougmencken at gmail.com>
Date:   Tue Feb 2 22:08:25 2016 -0500

    try to fix build of external:firebird
    
    Change-ID: Ia07a2e34208763228bd78f5b6cbda78c78015d4b

diff --git a/external/firebird/InputDevices-darwin.patch b/external/firebird/InputDevices-darwin.patch
new file mode 100644
index 0000000..b5adbed
--- /dev/null
+++ b/external/firebird/InputDevices-darwin.patch
@@ -0,0 +1,15 @@
+--- src/isql/InputDevices.cpp
++++ src/isql/InputDevices.cpp
+@@ -22,11 +22,10 @@
+  */
+ 
+ #include "firebird.h"
++
+ #if defined(DARWIN) && !defined(IOS)
+ #if defined(i386) || defined(__x86_64__)
+ #include <architecture/i386/io.h>
+-#else
+-#include <io.h>
+ #endif
+ #endif
+ 
diff --git a/external/firebird/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch b/external/firebird/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch
new file mode 100644
index 0000000..02e7363
--- /dev/null
+++ b/external/firebird/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch
@@ -0,0 +1,46 @@
+From: asfernandes <asfernandes at users.sourceforge.net>
+Date: Sat, 5 Mar 2016 03:39:36 +0000
+Subject: Make the generated code compatible with gcc 6 in C++-14 mode.
+ (cherry picked from commit 3618aa2171674babf79ef935aa049c40a3db1321)
+Patch-mainline: 
+Git-commit: 3618aa2171674babf79ef935aa049c40a3db1321
+References: bsc#964466 CORE-5099
+​
+--- src/gpre/c_cxx.cpp
++++ src/gpre/c_cxx.cpp
+@@ -2004,7 +2004,7 @@
+ 	int ident = CMP_next_ident();
+ 	init->nod_arg[2] = (gpre_nod*)(IPTR)ident;
+ 
+-	printa(0, "static %schar\n   *isc_%da, *isc_%db;", CONST_STR, ident, ident);
++	printa(0, "static %sunsigned char\n   *isc_%da, *isc_%db;", CONST_STR, ident, ident);
+ 	printa(0, "static short\n   isc_%dl;", ident);
+ 
+ 	const gpre_nod* list = init->nod_arg[1];
+@@ -2820,7 +2820,7 @@
+ 		printa(0, "static %sshort\n   isc_%dl = %d;",
+ 			   (request->req_flags & REQ_extend_dpb) ? "" : CONST_STR,
+ 			   request->req_ident, request->req_length);
+-		printa(0, "static %schar\n   isc_%d [] = {", CONST_STR, request->req_ident);
++		printa(0, "static %sunsigned char\n   isc_%d [] = {", CONST_STR, request->req_ident);
+ 
+ 		const TEXT* string_type = "blr";
+ 		if (gpreGlob.sw_raw)
+@@ -2891,7 +2891,7 @@
+ 			{
+ 				printa(0, "static %sshort\n   isc_%dl = %d;", CONST_STR,
+ 					   reference->ref_sdl_ident, reference->ref_sdl_length);
+-				printa(0, "static %schar\n   isc_%d [] = {", CONST_STR, reference->ref_sdl_ident);
++				printa(0, "static %sunsigned char\n   isc_%d [] = {", CONST_STR, reference->ref_sdl_ident);
+ 				if (gpreGlob.sw_raw)
+ 					gen_raw(reference->ref_sdl, reference->ref_sdl_length);
+ 				else if (PRETTY_print_sdl(reference->ref_sdl, gen_blr, 0, 0))
+@@ -2909,7 +2909,7 @@
+ 	{
+ 		if (blob->blb_bpb_length)
+ 		{
+-			printa(0, "static %schar\n   isc_%d [] = {", CONST_STR, blob->blb_bpb_ident);
++			printa(0, "static %sunsigned char\n   isc_%d [] = {", CONST_STR, blob->blb_bpb_ident);
+ 			gen_raw(blob->blb_bpb, blob->blb_bpb_length);
+ 			printa(INDENT, "};\n");
+ 		}
diff --git a/external/firebird/Provide-sized-global-delete-operators-when-compiled-.patch b/external/firebird/Provide-sized-global-delete-operators-when-compiled-.patch
new file mode 100644
index 0000000..6f171db
--- /dev/null
+++ b/external/firebird/Provide-sized-global-delete-operators-when-compiled-.patch
@@ -0,0 +1,27 @@
+From: Michal Kubecek <mkubecek at suse.cz>
+Date: Mon, 25 Apr 2016 08:55:36 +0200
+Subject: Provide sized global delete operators when compiled in C++14 mode
+Patch-mainline: submitted
+Git-commit: 038f9fbf559e56032e4cb49eb7ce4c3ead23fda9
+References: bsc#964466 CORE-5099
+​
+--- src/common/classes/alloc.h
++++ src/common/classes/alloc.h
+@@ -331,6 +331,17 @@
+ 	MemoryPool::globalFree(mem);
+ }
+ 
++#if __cplusplus >= 201402L
++inline void operator delete(void* mem, std::size_t s ALLOC_PARAMS) throw()
++{
++	MemoryPool::globalFree(mem);
++}
++inline void operator delete[](void* mem, std::size_t s ALLOC_PARAMS) throw()
++{
++	MemoryPool::globalFree(mem);
++}
++#endif
++
+ #ifdef DEBUG_GDS_ALLOC
+ 
+ #ifdef __clang__
diff --git a/external/firebird/UnpackedTarball_firebird.mk b/external/firebird/UnpackedTarball_firebird.mk
index 0e9277a..3c87133 100644
--- a/external/firebird/UnpackedTarball_firebird.mk
+++ b/external/firebird/UnpackedTarball_firebird.mk
@@ -14,13 +14,17 @@ $(eval $(call gb_UnpackedTarball_set_tarball,firebird,$(FIREBIRD_TARBALL)))
 $(eval $(call gb_UnpackedTarball_set_patchlevel,firebird,0))
 
 $(eval $(call gb_UnpackedTarball_add_patches,firebird,\
+		external/firebird/Provide-sized-global-delete-operators-when-compiled-.patch \
+		external/firebird/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch \
         external/firebird/firebird.disable-ib-util-not-found.patch.1 \
 		external/firebird/firebird-Engine12.patch \
 		external/firebird/firebird-rpath.patch.0 \
 		external/firebird/firebird-cloop-compiler.patch.1 \
-		external/firebird/firebird-gcc6.patch.1 \
 		external/firebird/wnt-dbgutil.patch \
 		external/firebird/debug-gfix-failure.patch \
+		external/firebird/os_utils-O_CLOEXEC.patch \
+		external/firebird/remote-inet-SOL_TCP.patch \
+		external/firebird/my-own-version-of-strnlen.patch \
 ))
 
 ifeq ($(OS)-$(COM),WNT-MSC)
@@ -31,10 +35,20 @@ endif
 
 ifeq ($(OS),MACOSX)
 $(eval $(call gb_UnpackedTarball_add_patches,firebird,\
-	external/firebird/firebird-configure-x86-64-macosx.patch.1 \
 	external/firebird/firebird-macosx.patch.1 \
-	external/firebird/macosx-elcapitan-dyld.patch \
+	external/firebird/firebird-macosx-print-dyldlibpath.patch \
+	external/firebird/InputDevices-darwin.patch \
+))
+ifeq ($(CPUNAME),POWERPC)
+$(eval $(call gb_UnpackedTarball_add_patches,firebird,\
+	external/firebird/lSystemStubs-darwin.patch \
+	external/firebird/prefix.darwin_powerpc.patch \
+	external/firebird/semaphore.h-darwin.patch \
+))
+else
+$(eval $(call gb_UnpackedTarball_add_patches,firebird,\
+	external/firebird/firebird-configure-x86-64-macosx.patch.1 \
 ))
 endif
-
+endif
 # vim: set noet sw=4 ts=4:
diff --git a/external/firebird/firebird-gcc6.patch.1 b/external/firebird/firebird-gcc6.patch.1
deleted file mode 100644
index e136141..0000000
--- a/external/firebird/firebird-gcc6.patch.1
+++ /dev/null
@@ -1,19 +0,0 @@
-commit 3618aa2171674babf79ef935aa049c40a3db1321
-Author: asfernandes <asfernandes at users.sourceforge.net>
-Date:   Sat Mar 5 03:39:36 2016 +0000
-
-    Make the generated code compatible with gcc 6 in C++-14 mode.
-
-diff --git a/src/gpre/c_cxx.cpp b/src/gpre/c_cxx.cpp
-index 2af96c6..2dcffd6 100644
---- a/src/gpre/c_cxx.cpp
-+++ b/src/gpre/c_cxx.cpp
-@@ -2820,7 +2820,7 @@ static void gen_request(const gpre_req* request)
- 		printa(0, "static %sshort\n   isc_%dl = %d;",
- 			   (request->req_flags & REQ_extend_dpb) ? "" : CONST_STR,
- 			   request->req_ident, request->req_length);
--		printa(0, "static %schar\n   isc_%d [] = {", CONST_STR, request->req_ident);
-+		printa(0, "static %sunsigned char\n   isc_%d [] = {", CONST_STR, request->req_ident);
- 
- 		const TEXT* string_type = "blr";
- 		if (gpreGlob.sw_raw)
diff --git a/external/firebird/macosx-elcapitan-dyld.patch b/external/firebird/firebird-macosx-print-dyldlibpath.patch
similarity index 100%
rename from external/firebird/macosx-elcapitan-dyld.patch
rename to external/firebird/firebird-macosx-print-dyldlibpath.patch
diff --git a/external/firebird/lSystemStubs-darwin.patch b/external/firebird/lSystemStubs-darwin.patch
new file mode 100644
index 0000000..3523d4f
--- /dev/null
+++ b/external/firebird/lSystemStubs-darwin.patch
@@ -0,0 +1,44 @@
+--- configure
++++ configure
+@@ -2925,7 +2925,7 @@
+ 
+ $as_echo "#define DARWIN 1" >>confdefs.h
+ 
+-	LIBS="$LIBS -framework CoreFoundation"
++	LIBS="$LIBS -lSystemStubs -framework CoreFoundation"
+     EDITLINE_FLG=Y
+     SHRLIB_EXT=dylib
+ 	EXPORT_SYMBOLS_STYLE=darwin
+--- configure.ac
++++ configure.ac
+@@ -117,7 +117,7 @@
+     PLATFORM=DARWIN
+     INSTALL_PREFIX=darwin
+     AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
+-	XE_APPEND(-framework CoreFoundation,LIBS)
++	XE_APPEND(-lSystemStubs -framework CoreFoundation,LIBS)
+     EDITLINE_FLG=Y
+     SHRLIB_EXT=dylib
+ dnl CPU_TYPE=ppc64
+--- extern/btyacc/Makefile
++++ extern/btyacc/Makefile
+@@ -17,7 +17,7 @@
+ # No LDFLAGS
+ #LDFLAGS=
+ 
+-LIBS=
++LIBS = -lSystemStubs
+ 
+ # For GNU environment, gmake will set $CC to gcc
+ # Other environments will have different values, maybe no GNU installed!
+--- extern/cloop/Makefile
++++ extern/cloop/Makefile
+@@ -4,7 +4,7 @@
+
+ TARGET	:= release
+
+-LD	:= $(CXX)
++LD	:= $(CXX) -lSystemStubs
+
+ SRC_DIR		:= src
+ BUILD_DIR	:= build
diff --git a/external/firebird/my-own-version-of-strnlen.patch b/external/firebird/my-own-version-of-strnlen.patch
new file mode 100644
index 0000000..c9b530a
--- /dev/null
+++ b/external/firebird/my-own-version-of-strnlen.patch
@@ -0,0 +1,51 @@
+--- src/auth/SecureRemotePassword/Message.h
++++ src/auth/SecureRemotePassword/Message.h
+@@ -19,6 +19,14 @@
+ 
+ #endif // INTERNAL_FIREBIRD
+ 
++/* My implementation of strnlen */
++static size_t my_strnlen( const char *s, size_t maxlen )
++{
++    const char *end = static_cast< const char * >( memchr( s, 0, maxlen ) );
++    return end ? static_cast< size_t >( end - s ) : maxlen;
++}
++
++
+ #ifdef INTERNAL_FIREBIRD
+ // This class helps to work with metadata iface
+ class Meta : public Firebird::RefPtr<Firebird::IMessageMetadata>
+@@ -347,7 +355,7 @@
+ 	const char* operator= (const char* newVal)
+ 	{
+ 		msg->getBuffer();
+-		setStrValue(newVal, static_cast<unsigned>(strnlen(newVal, size)));
++		setStrValue(newVal, static_cast< unsigned >( my_strnlen( newVal, size ) ));
+ 		null = FB_FALSE;
+ 		return newVal;
+ 	}
+--- src/isql/isql.epp
++++ src/isql/isql.epp
+@@ -89,6 +89,13 @@
+ #include "editline.h"
+ #endif
+ 
++/* My implementation of strnlen */
++size_t my_strnlen( const char *s, size_t maxlen )
++{
++    const char *end = static_cast< const char * >( memchr( s, 0, maxlen ) );
++    return end ? static_cast< size_t >( end - s ) : maxlen;
++}
++
+ enum literal_string_type
+ {
+ 	INIT_STR_FLAG			= 0,
+@@ -7179,7 +7186,7 @@
+ 			else
+ 			{
+ 				IcuUtil::pad(p, var->charSet,
+-					static_cast<unsigned>(strnlen(var->value.asChar, var->length)),
++					static_cast<unsigned>( my_strnlen( var->value.asChar, var->length ) ),
+ 					var->value.asChar, length, false);
+ 				strcat(p, " ");
+ 			}
diff --git a/external/firebird/os_utils-O_CLOEXEC.patch b/external/firebird/os_utils-O_CLOEXEC.patch
new file mode 100644
index 0000000..c9ce3f8
--- /dev/null
+++ b/external/firebird/os_utils-O_CLOEXEC.patch
@@ -0,0 +1,13 @@
+--- src/common/os/posix/os_utils.cpp
++++ src/common/os/posix/os_utils.cpp
+@@ -251,6 +251,10 @@
+ #endif
+ }
+ 
++#ifndef O_CLOEXEC
++#define O_CLOEXEC 0
++#endif
++
+ // setting flag is not absolutely required, therefore ignore errors here
+ void setCloseOnExec(int fd)
+ {
diff --git a/external/firebird/prefix.darwin_powerpc.patch b/external/firebird/prefix.darwin_powerpc.patch
new file mode 100644
index 0000000..fa534fd
--- /dev/null
+++ b/external/firebird/prefix.darwin_powerpc.patch
@@ -0,0 +1,17 @@
+--- builds/posix/prefix.darwin_powerpc
++++ builds/posix/prefix.darwin_powerpc
+@@ -20,11 +20,11 @@
+ DYLD_LIBRARY_PATH=$(FIREBIRD)/lib
+ export DYLD_LIBRARY_PATH
+
+-MACOSX_DEPLOYMENT_TARGET=10.2
++MACOSX_DEPLOYMENT_TARGET=10.5
+ export MACOSX_DEPLOYMENT_TARGET
+
+-PROD_FLAGS=-DDARWIN -pipe -p -MMD -fPIC -fno-common -arch ppc -mmacosx-version-min=10.2
+-DEV_FLAGS=-ggdb -DDARWIN -pipe -p -MMD -fPIC -fno-common -Wall -arch ppc -mmacosx-version-min=10.2 -Wno-non-virtual-dtor
++PROD_FLAGS=-DDARWIN -pipe -p -MMD -fPIC -fno-common
++DEV_FLAGS=-ggdb -DDARWIN -pipe -p -MMD -fPIC -fno-common -Wall -Wno-non-virtual-dtor
+ CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden -fno-weak
+
+ EXE_LINK_OPTIONS:=
diff --git a/external/firebird/remote-inet-SOL_TCP.patch b/external/firebird/remote-inet-SOL_TCP.patch
new file mode 100644
index 0000000..a76927c
--- /dev/null
+++ b/external/firebird/remote-inet-SOL_TCP.patch
@@ -0,0 +1,15 @@
+--- src/remote/inet.cpp
++++ src/remote/inet.cpp
+@@ -803,11 +803,7 @@
+ 	gai_hints.ai_family = ((packet || host.hasData() || !ipv6) ? AF_UNSPEC : AF_INET6);
+ 	gai_hints.ai_socktype = SOCK_STREAM;
+ 
+-#if !defined(WIN_NT) && !defined(__clang__)
+-	gai_hints.ai_protocol = SOL_TCP;
+-#else
+-	gai_hints.ai_protocol = IPPROTO_TCP;
+-#endif
++	gai_hints.ai_protocol = getprotobyname("TCP")->p_proto;
+ 
+ 	gai_hints.ai_flags =
+ #ifndef ANDROID
diff --git a/external/firebird/semaphore.h-darwin.patch b/external/firebird/semaphore.h-darwin.patch
new file mode 100644
index 0000000..a409962
--- /dev/null
+++ b/external/firebird/semaphore.h-darwin.patch
@@ -0,0 +1,57 @@
+--- src/common/classes/semaphore.h
++++ src/common/classes/semaphore.h
+@@ -78,53 +78,7 @@
+ 
+ #else // WINNT
+ 
+-#if defined(DARWIN)
+-
+-// dispatch semaphore
+-#define COMMON_CLASSES_SEMAPHORE_DISPATCH
+-#include <dispatch/dispatch.h>
+-
+-namespace Firebird
+-{
+-
+-class MemoryPool;
+-
+-class SignalSafeSemaphore
+-{
+-private:
+-	dispatch_semaphore_t semaphore;
+-
+-	void init();
+-
+-	// Forbid copying
+-	SignalSafeSemaphore(const SignalSafeSemaphore&);
+-	SignalSafeSemaphore& operator=(const SignalSafeSemaphore&);
+-
+-public:
+-	SignalSafeSemaphore() { init(); }
+-	explicit SignalSafeSemaphore(MemoryPool&) { init(); }
+-
+-	~SignalSafeSemaphore();
+-
+-	void enter()
+-	{
+-		dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
+-	}
+-
+-	void release(SLONG count = 1)
+-	{
+-		fb_assert(count >= 0);
+-		while (count--)
+-		{
+-			dispatch_semaphore_signal(semaphore);
+-		}
+-	}
+-};
+-
+-} // namespace Firebird
+-
+-
+-#elif defined(HAVE_SEMAPHORE_H)
++#if defined(HAVE_SEMAPHORE_H)
+ 
+ #define COMMON_CLASSES_SEMAPHORE_POSIX_RT
+ #include <semaphore.h>
commit 9517ff408e8f679ec97f0046d39e67acf7bfec13
Author: Douglas Mencken <dougmencken at gmail.com>
Date:   Fri Apr 15 19:59:49 2016 -0400

    peaceful lexis : changes for framework
    
      exempli gratia “search right target frame” gets new name “look for recipient frame”
    
      rename framework/inc/targets.h to recipients.h
      rename framework/source/inc/loadenv/targethelper.hxx to deliveryhelper.hxx
      rename framework/source/loadenv/targethelper.cxx to deliveryhelper.cxx
    
    eke simplify framework a bit
    
    introduce com.sun.star.frame.FrameSearchOption
      since this com.sun.star.frame.FrameSearchFlag is obsolete but it is left for compatibility
    
    +++ reduce visual noise from ascii fences +++
    
    Change-Id: I402dc2370ffdb25b3073418f62712326cb7362e4

diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk
index e6d0ae2..54af46e 100644
--- a/framework/Library_fwk.mk
+++ b/framework/Library_fwk.mk
@@ -100,7 +100,7 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\
     framework/source/layoutmanager/toolbarlayoutmanager \
     framework/source/layoutmanager/uielement \
     framework/source/loadenv/loadenv \
-    framework/source/loadenv/targethelper \
+    framework/source/loadenv/deliveryhelper \
     framework/source/services/ContextChangeEventMultiplexer \
     framework/source/services/autorecovery \
     framework/source/services/desktop \
diff --git a/framework/inc/classes/actiontriggerpropertyset.hxx b/framework/inc/classes/actiontriggerpropertyset.hxx
index 7b19039..562f1be 100644
--- a/framework/inc/classes/actiontriggerpropertyset.hxx
+++ b/framework/inc/classes/actiontriggerpropertyset.hxx
@@ -106,7 +106,7 @@ class ActionTriggerPropertySet :  private cppu::BaseMutex,
 
         //  members
 
-        OUString                                    m_aCommandURL;
+        OUString                                    m_aActionURL;
         OUString                                    m_aHelpURL;
         OUString                                    m_aText;
         css::uno::Reference< css::awt::XBitmap >    m_xBitmap;
diff --git a/framework/inc/classes/framecontainer.hxx b/framework/inc/classes/framecontainer.hxx
index 838d1e1..32ad5b9 100644
--- a/framework/inc/classes/framecontainer.hxx
+++ b/framework/inc/classes/framecontainer.hxx
@@ -41,7 +41,7 @@ namespace framework{
 
 typedef ::std::vector< css::uno::Reference< css::frame::XFrame > >  TFrameContainer;
 
-/*-************************************************************************************************************
+/*
     @short          implement a container to hold children of frame, task or desktop
     @descr          Every object of frame, task or desktop hold reference to his children. These container is used as helper
                     to do this. Some helper-classes like OFrames or OTasksAccess use it to. They hold a pointer to an instance
@@ -51,12 +51,10 @@ typedef ::std::vector< css::uno::Reference< css::frame::XFrame > >  TFrameContai
 
     @devstatus      ready to use
     @threadsafe     yes
-*//*-*************************************************************************************************************/
+*/
 class FrameContainer
 {
 
-    // member
-
     private:
 
         /// list to hold all frames
@@ -68,7 +66,6 @@ class FrameContainer
 
     public:
 
-        /// constructor / destructor
                  FrameContainer();
         virtual ~FrameContainer();
 
@@ -76,14 +73,14 @@ class FrameContainer
         void                                      append     ( const css::uno::Reference< css::frame::XFrame >& xFrame );
         void                                      remove     ( const css::uno::Reference< css::frame::XFrame >& xFrame );
         void                                      setActive  ( const css::uno::Reference< css::frame::XFrame >& xFrame );
-        css::uno::Reference< css::frame::XFrame > getActive  (                                                         ) const;
+        css::uno::Reference< css::frame::XFrame > getActive  ( ) const;
 
         /// checks and free memory
-        bool exist      ( const css::uno::Reference< css::frame::XFrame >& xFrame ) const;
-        void     clear      (                                                         );
+        bool exist ( const css::uno::Reference< css::frame::XFrame >& xFrame ) const;
+        void clear ( );
 
-        /// deprecated IndexAccess!
-        sal_uInt32                                getCount  (                   ) const;
+        /// deprecated IndexAccess
+        sal_uInt32 getCount ( ) const;
         css::uno::Reference< css::frame::XFrame > operator[]( sal_uInt32 nIndex ) const;
 
         /// replacement for deprecated index access
@@ -93,9 +90,9 @@ class FrameContainer
         css::uno::Reference< css::frame::XFrame > searchOnAllChildrens   ( const OUString& sName ) const;
         css::uno::Reference< css::frame::XFrame > searchOnDirectChildrens( const OUString& sName ) const;
 
-}; // class FrameContainer
+};
 
-} // namespace framework
+}
 
 #endif // INCLUDED_FRAMEWORK_INC_CLASSES_FRAMECONTAINER_HXX
 
diff --git a/framework/inc/classes/taskcreator.hxx b/framework/inc/classes/taskcreator.hxx
index 295fb21..1a410a0 100644
--- a/framework/inc/classes/taskcreator.hxx
+++ b/framework/inc/classes/taskcreator.hxx
@@ -30,15 +30,15 @@
 
 namespace framework{
 
-/*-************************************************************************************************************
-    @short          a helper to create new tasks or sub frames for "_blank" or FrameSearchFlag::CREATE
-    @descr          There are different places to create new (task)frames. Its not easy to service this code!
-                    Thats the reason for this helper. He capsulate asynchronous/synchronous creation by calling
+/*
+    @short          a helper to create new tasks or sub frames for "_blank" or FrameSearchOption::Create
+    @descr          There are different places to create new (task)frames. Its not easy to service this code.
+                    Thats the reason for this helper. He capsulates asynchronous/synchronous creation by calling
                     a simple interface.
 
     @devstatus      ready to use
     @threadsafe     yes
-*//*-*************************************************************************************************************/
+*/
 class TaskCreator
 {
 
diff --git a/framework/inc/dispatch/closedispatcher.hxx b/framework/inc/dispatch/closedispatcher.hxx
index a20db060..5171d23 100644
--- a/framework/inc/dispatch/closedispatcher.hxx
+++ b/framework/inc/dispatch/closedispatcher.hxx
@@ -82,8 +82,8 @@ class CloseDispatcher : public  ::cppu::WeakImplHelper<
                    uno resources. */
         css::uno::Reference< css::uno::XComponentContext > m_xContext;
 
-        /** @short  reference to the target frame, which should be
-                    closed by this dispatch. */
+        /** @short  reference to the frame which is going to be closed
+                    by this dispatch */
         css::uno::WeakReference< css::frame::XFrame > m_xCloseFrame;
 
         /** @short  used for asynchronous callbacks within the main thread.
@@ -119,12 +119,12 @@ class CloseDispatcher : public  ::cppu::WeakImplHelper<
             @param  xFrame
                     the frame where the corresponding dispatch was started.
 
-            @param  sTarget
-                    help us to find the right target for this close operation.
+            @param  sRecipient
+                    help us to find the recipient for this close dispatch.
          */
         CloseDispatcher(const css::uno::Reference< css::uno::XComponentContext >& rxContext  ,
                         const css::uno::Reference< css::frame::XFrame >&          xFrame ,
-                        const OUString&                                           sTarget);
+                        const OUString&  sRecipient );
 
         /** @short  does nothing real. */
         virtual ~CloseDispatcher() override;
@@ -243,27 +243,26 @@ class CloseDispatcher : public  ::cppu::WeakImplHelper<
                                                sal_Int16                                                   nState   ,
                                          const css::uno::Any&                                              aResult  );
 
-        /** @short  try to find the right target frame where this close request
-                    must be really done.
+        /** @short  try to find the recipient frame where this close request
+                    is going to be really done.
 
             @descr  The problem behind: closing some resources depends sometimes from the
                     context where its dispatched. Sometimes the start frame of the dispatch
-                    has to be closed itself (target=_self) ... sometimes its parent frame
+                    has to be closed itself (recipient=_self) ... sometimes its parent frame
                     has to be closed - BUT(!) it means a parent frame containing a top level
                     window. _top can't be used then for dispatch - because it address TopFrames
                     not frames containg top level windows. So normally _magic (which btw does not
-                    exists at the moment .-) ) should be used. So we interpret target=<empty>
+                    exists at the moment .-) ) should be used. So we interpret recipient=<empty>
                     as _magic !
 
             @param  xFrame
                     start point for search of right dispatch frame.
 
-            @param  sTarget
-                    give us an idea how this target frame must be searched.
+            @param  sRecipient
+                    give us an idea how this recipient frame is going to be searched.
         */
-
-        static css::uno::Reference< css::frame::XFrame > static_impl_searchRightTargetFrame(const css::uno::Reference< css::frame::XFrame >& xFrame ,
-                                                                                            const OUString&                           sTarget);
+        static css::uno::Reference< css::frame::XFrame > static_impl_lookForRecipientFrame( const css::uno::Reference< css::frame::XFrame >& xFrame ,
+                                                                                            const OUString& sRecipient );
 
 }; // class CloseDispatcher
 
diff --git a/framework/inc/dispatch/dispatchinformationprovider.hxx b/framework/inc/dispatch/dispatchinformationprovider.hxx
index b59c878..da1af24 100644
--- a/framework/inc/dispatch/dispatchinformationprovider.hxx
+++ b/framework/inc/dispatch/dispatchinformationprovider.hxx
@@ -34,9 +34,9 @@
 
 namespace framework{
 
-/*-************************************************************************************************************
+/*
     @short          a helper to merge dispatch information of different sources together.
-*//*-*************************************************************************************************************/
+*/
 class DispatchInformationProvider : public  ::cppu::WeakImplHelper< css::frame::XDispatchInformationProvider >
 {
 
@@ -65,9 +65,9 @@ class DispatchInformationProvider : public  ::cppu::WeakImplHelper< css::frame::
 
         css::uno::Sequence< css::uno::Reference< css::frame::XDispatchInformationProvider > > implts_getAllSubProvider();
 
-}; // class DispatchInformationProvider
+};
 
-} // namespace framework
+}
 
 #endif // INCLUDED_FRAMEWORK_INC_DISPATCH_DISPATCHINFORMATIONPROVIDER_HXX
 
diff --git a/framework/inc/dispatch/dispatchprovider.hxx b/framework/inc/dispatch/dispatchprovider.hxx
index af0d910..17c6de7 100644
--- a/framework/inc/dispatch/dispatchprovider.hxx
+++ b/framework/inc/dispatch/dispatchprovider.hxx
@@ -62,8 +62,8 @@ enum EDispatchHelper
                             - a task can have a beamer as direct child
                             - a normal frame never can create a new one by himself
 
-    @attention      Use this class as member only! Never use it as baseclass.
-                    XInterface will be ambigous and we hold a weakreference to our OWNER - not to our SUPERCLASS!
+    @attention      Use this class as a member only, not as a parent.
+                    XInterface will be ambigous and we hold a weakreference to OWNER - not to SUPERCLASS
 
     @base           OWeakObject
                         provides ref count and weak mechanism
@@ -88,31 +88,30 @@ class DispatchProvider: public ::cppu::WeakImplHelper< css::frame::XDispatchProv
         DispatchProvider( const css::uno::Reference< css::uno::XComponentContext >&     xContext ,
                           const css::uno::Reference< css::frame::XFrame >&              xFrame   );
 
-        virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL                       queryDispatch  ( const css::util::URL&                                       aURL             ,
-                                                                                                             const OUString&                                      sTargetFrameName ,
-                                                                                                                   sal_Int32                                             nSearchFlags     ) throw( css::uno::RuntimeException, std::exception ) override;
+        virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch  ( const css::util::URL&  aURL ,
+                                                                                       const OUString&  sRecipientFrameName ,
+                                                                                             sal_Int32  nSearchOptions ) throw( css::uno::RuntimeException, std::exception ) override;
         virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptions    ) throw( css::uno::RuntimeException, std::exception ) override;
 
     /* helper */
     protected:
-        // Let him protected! So nobody can use us as base ...
         virtual ~DispatchProvider() override;
 
     private:
-        css::uno::Reference< css::frame::XDispatch > implts_getOrCreateDispatchHelper   (       EDispatchHelper                            eHelper                       ,
-                                                                                          const css::uno::Reference< css::frame::XFrame >& xOwner                        ,
-                                                                                          const OUString&                           sTarget = OUString()   ,
-                                                                                                sal_Int32                                  nSearchFlags = 0              );
-        bool                                         implts_isLoadableContent           ( const css::util::URL&                            aURL                          );
-        css::uno::Reference< css::frame::XDispatch > implts_queryDesktopDispatch        ( const css::uno::Reference< css::frame::XFrame >&  xDesktop                      ,
-                                                                                          const css::util::URL&                            aURL                          ,
-                                                                                          const OUString&                           sTargetFrameName              ,
-                                                                                                sal_Int32                                  nSearchFlags                  );
-        css::uno::Reference< css::frame::XDispatch > implts_queryFrameDispatch          ( const css::uno::Reference< css::frame::XFrame >&  xFrame                        ,
-                                                                                          const css::util::URL&                            aURL                          ,
-                                                                                          const OUString&                           sTargetFrameName              ,
-                                                                                                sal_Int32                                  nSearchFlags                  );
-        css::uno::Reference< css::frame::XDispatch > implts_searchProtocolHandler       ( const css::util::URL&                            aURL                          );
+        css::uno::Reference< css::frame::XDispatch > implts_getOrCreateDispatchHelper   (       EDispatchHelper eHelper ,
+                                                                                          const css::uno::Reference< css::frame::XFrame >&  xOwner ,
+                                                                                          const OUString&  sRecipient = OUString() ,
+                                                                                                sal_Int32  nSearchOptions = 0 );
+        bool                                         implts_isLoadableContent           ( const css::util::URL&  aURL );
+        css::uno::Reference< css::frame::XDispatch > implts_queryDesktopDispatch        ( const css::uno::Reference< css::frame::XFrame >&  xDesktop ,
+                                                                                          const css::util::URL&  aURL ,
+                                                                                          const OUString&  sRecipientFrameName ,
+                                                                                                sal_Int32  nSearchOptions );
+        css::uno::Reference< css::frame::XDispatch > implts_queryFrameDispatch          ( const css::uno::Reference< css::frame::XFrame >&  xFrame ,
+                                                                                          const css::util::URL&  aURL ,
+                                                                                          const OUString&  sRecipientFrameName ,
+                                                                                                sal_Int32  nSearchOptions );
+        css::uno::Reference< css::frame::XDispatch > implts_searchProtocolHandler       ( const css::util::URL&  aURL );
 
 }; // class DispatchProvider
 
diff --git a/framework/inc/dispatch/interceptionhelper.hxx b/framework/inc/dispatch/interceptionhelper.hxx
index 7c6e555..7473e1f 100644
--- a/framework/inc/dispatch/interceptionhelper.hxx
+++ b/framework/inc/dispatch/interceptionhelper.hxx
@@ -41,7 +41,7 @@ namespace framework{
 /** @short      implements a helper to support interception with additional functionality.
 
     @descr      This helper implements the complete XDispatchProviderInterception interface with
-                master/slave functionality AND using of optional features like registration of URL pattern!
+                master/servant functionality AND using of optional features like registration of URL pattern!
 
     @attention  Don't use this class as direct member - use it dynamicly. Do not derive from this class.
                 We hold a weakreference to our owner not to our superclass.
@@ -136,8 +136,8 @@ class InterceptionHelper : public  ::cppu::WeakImplHelper<
         css::uno::WeakReference< css::frame::XFrame > m_xOwnerWeak;
 
         /** @short this interception helper implements the top level master of an interceptor list ...
-                   but this member is the lowest possible slave! */
-        css::uno::Reference< css::frame::XDispatchProvider > m_xSlave;
+                   but this member is the lowest possible servant */
+        css::uno::Reference< css::frame::XDispatchProvider > m_xServant;
 
         /** @short contains all registered interceptor objects. */
         InterceptorList m_lInterceptionRegs;
@@ -151,11 +151,11 @@ class InterceptionHelper : public  ::cppu::WeakImplHelper<
             @param xOwner
                     points to the frame, which use this instances to support it's own interception interfaces.
 
-            @param xSlave
-                    an outside creates dispatch provider, which has to be used here as lowest slave "interceptor".
+            @param xServant
+                    an outside created dispatch provider, which has to be used here as lowest servant "interceptor".
          */
         InterceptionHelper(const css::uno::Reference< css::frame::XFrame >&            xOwner,
-                           const css::uno::Reference< css::frame::XDispatchProvider >& xSlave);
+                           const css::uno::Reference< css::frame::XDispatchProvider >& xServant );
 
     protected:
 
@@ -177,37 +177,36 @@ class InterceptionHelper : public  ::cppu::WeakImplHelper<
 
             @descr  We search inside our list of interception registrations, to locate
                     any interested interceptor. In case no interceptor exists or nobody is
-                    interested on this URL our lowest slave will be used.
+                    interested on this URL the lowest servant will be used.
 
             @param  aURL
                         describes the requested dispatch functionality.
 
-            @param  sTargetFrameName
-                        the name of the target frame or a special name like "_blank", "_top" ...
+            @param  sRecipientFrameName
+                        the name of the recipient frame or a special name like "_blank", "_top" ...
                         Won't be used here ... but may by one of our registered interceptor objects
-                        or our slave.
+                        or the servant.
 
-            @param  nSearchFlags
-                        optional search parameter for targeting, if sTargetFrameName isn't a special one.
+            @param  nSearchOptions
+                        optional parameter to look if sRecipientFrameName is a special one
 
-            @return A valid dispatch object, if any interceptor or at least our slave is interested on the given URL;
+            @return A valid dispatch object, if any interceptor or at least the servant is interested on the given URL;
                     or NULL otherwise.
          */
-        virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(const css::util::URL&  aURL            ,
-                                                                                    const OUString& sTargetFrameName,
-                                                                                          sal_Int32        nSearchFlags    )
+        virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(const css::util::URL&  aURL,
+                                                                                    const OUString& sRecipientFrameName,
+                                                                                          sal_Int32        nSearchOptions    )
             throw(css::uno::RuntimeException, std::exception) override;
 
         // XDispatchProvider
 
         /** @short implements an optimized queryDispatch() for remote.
 
-            @descr It capsulate more than one queryDispatch() requests and return a lits of dispatch objects
-                   as result. Because both lists (in and out) correspond together, it's not allowed to
-                   pack it - means suppress NULL references!
+            @descr It capsulates more than one queryDispatch() requests and return a lits of dispatch objects.
+                   Because both lists (in and out) correspond together, it wouldn't pack them - means suppress null-references
 
             @param lDescriptor
-                    a list of queryDispatch() arguments.
+                    a list of queryDispatch() arguments
 
             @return A list of dispatch objects.
          */
@@ -219,15 +218,13 @@ class InterceptionHelper : public  ::cppu::WeakImplHelper<
         /** @short      register an interceptor.
 
             @descr      Somebody can register himself to intercept all or some special dispatches.
-                        It's depend from his supported interfaces. If he implement XInterceptorInfo
-                        he his called for some special URLs only - otherwise we call it for every request!
-
-            @attention  We don't check for double registrations here!
+                        It depends on its supported interfaces. If it implements XInterceptorInfo
+                        it is called for special URLs only and otherwise for every one
 
             @param      xInterceptor
                         reference to interceptor, which wish to be registered here.
 
-            @throw      A RuntimeException if the given reference is NULL!
+            @throw      A RuntimeException if the given reference is null
          */
         virtual void SAL_CALL registerDispatchProviderInterceptor(const css::uno::Reference< css::frame::XDispatchProviderInterceptor >& xInterceptor)
             throw(css::uno::RuntimeException, std::exception) override;
diff --git a/framework/inc/dispatch/mailtodispatcher.hxx b/framework/inc/dispatch/mailtodispatcher.hxx
index f1dbabb..bc4f94b 100644
--- a/framework/inc/dispatch/mailtodispatcher.hxx
+++ b/framework/inc/dispatch/mailtodispatcher.hxx
@@ -71,8 +71,8 @@ class MailToDispatcher : public  ::cppu::WeakImplHelper<
 
         // XDispatchProvider
         virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL                       queryDispatch  ( const css::util::URL&                                       aURL        ,
-                                                                                                             const OUString&                                      sTarget     ,
-                                                                                                                   sal_Int32                                             nFlags      ) throw( css::uno::RuntimeException, std::exception ) override;
+                                                                                                             const OUString&                                      sRecipient     ,
+                                                                                                                   sal_Int32                                             nOptions      ) throw( css::uno::RuntimeException, std::exception ) override;
         virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptor ) throw( css::uno::RuntimeException, std::exception ) override;
 
         // XNotifyingDispatch
diff --git a/framework/inc/dispatch/oxt_handler.hxx b/framework/inc/dispatch/oxt_handler.hxx
index c3cfddb..36297ce 100644
--- a/framework/inc/dispatch/oxt_handler.hxx
+++ b/framework/inc/dispatch/oxt_handler.hxx
@@ -39,17 +39,15 @@
 
 namespace framework{
 
-/*-************************************************************************************************************
-    @short          handler to detect and play sounds ("wav" and "au" only!)
-    @descr          Register this implementation as a content handler to detect and/or play wav- and au-sounds.
-                    It doesn't depend from the target platform. But one instance of this class
-                    can play one sound at the same time only. Means every new dispatch request will stop the
-                    might still running one. So we support one operation/one URL/one listener at the same time
-                    only.
+/*
+    @short          handler to detect and play sounds (only "wav" and "au" yet)
+    @descr          Register this implementation as a content handler to detect and/or play wav and au sounds.
+                    One instance of this class can play one sound at the same time only.
+                    Means every new dispatch request will stop the still running one.
 
     @devstatus      ready
     @threadsafe     yes
-*//*-*************************************************************************************************************/
+*/
 class Oxt_Handler  :    public  ::cppu::WeakImplHelper<
                                     css::lang::XServiceInfo,
                                     css::frame::XNotifyingDispatch, // => XDispatch
diff --git a/framework/inc/dispatch/popupmenudispatcher.hxx b/framework/inc/dispatch/popupmenudispatcher.hxx
index c4dd32b..d9993b43 100644
--- a/framework/inc/dispatch/popupmenudispatcher.hxx
+++ b/framework/inc/dispatch/popupmenudispatcher.hxx
@@ -52,7 +52,7 @@ namespace framework{
 typedef cppu::OMultiTypeInterfaceContainerHelperVar<OUString>
     IMPL_ListenerHashContainer;
 
-/*-************************************************************************************************************
+/*
     @short          helper for desktop only(!) to create new tasks on demand for dispatches
     @descr          Use this class as member only! Never use it as baseclass.
                     XInterface will be ambigous and we hold a weakcss::uno::Reference to our OWNER - not to our SUPERCLASS!
@@ -65,7 +65,7 @@ typedef cppu::OMultiTypeInterfaceContainerHelperVar<OUString>
     @base           OWeakObject
 
     @devstatus      ready to use
-*//*-*************************************************************************************************************/
+*/
 class PopupMenuDispatcher :     public  ::cppu::WeakImplHelper<
                                            css::lang::XServiceInfo,
                                            css::frame::XDispatchProvider,
@@ -90,8 +90,8 @@ class PopupMenuDispatcher :     public  ::cppu::WeakImplHelper<
         // XDispatchProvider
         virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
             const css::util::URL&  aURL        ,
-            const OUString& sTarget     ,
-            sal_Int32              nFlags      )
+            const OUString& sRecipient     ,
+            sal_Int32              nOptions      )
         throw( css::uno::RuntimeException, std::exception ) override;
 
         virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches(
@@ -133,9 +133,9 @@ class PopupMenuDispatcher :     public  ::cppu::WeakImplHelper<
         bool                                                    m_bAlreadyDisposed;   /// Protection against multiple disposing calls.
         bool                                                    m_bActivateListener;   /// dispatcher is listener for frame activation
 
-}; //  class PopupMenuDispatcher
+};
 
-}       //  namespace framework
+}
 
 #endif // INCLUDED_FRAMEWORK_INC_DISPATCH_POPUPMENUDISPATCHER_HXX
 
diff --git a/framework/inc/dispatch/servicehandler.hxx b/framework/inc/dispatch/servicehandler.hxx
index ea3a66d..8613351 100644
--- a/framework/inc/dispatch/servicehandler.hxx
+++ b/framework/inc/dispatch/servicehandler.hxx
@@ -75,8 +75,8 @@ class ServiceHandler : public  ::cppu::WeakImplHelper<
 
         // XDispatchProvider
         virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL                       queryDispatch  ( const css::util::URL&                                       aURL        ,
-                                                                                                             const OUString&                                      sTarget     ,
-                                                                                                                   sal_Int32                                             nFlags      ) throw( css::uno::RuntimeException, std::exception ) override;
+                                                                                                             const OUString&                                      sRecipient     ,
+                                                                                                                   sal_Int32                                             nOptions      ) throw( css::uno::RuntimeException, std::exception ) override;
         virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptor ) throw( css::uno::RuntimeException, std::exception ) override;
 
         // XNotifyingDispatch
diff --git a/framework/inc/dispatch/systemexec.hxx b/framework/inc/dispatch/systemexec.hxx
index fe87a90..46ef9d4 100644
--- a/framework/inc/dispatch/systemexec.hxx
+++ b/framework/inc/dispatch/systemexec.hxx
@@ -73,8 +73,8 @@ class SystemExec :     public  ::cppu::WeakImplHelper<
 
         // XDispatchProvider
         virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL                       queryDispatch  ( const css::util::URL&                                       aURL        ,
-                                                                                                             const OUString&                                      sTarget     ,
-                                                                                                                   sal_Int32                                             nFlags      ) throw( css::uno::RuntimeException, std::exception ) override;
+                                                                                                             const OUString&                                      sRecipient     ,
+                                                                                                                   sal_Int32                                             nOptions      ) throw( css::uno::RuntimeException, std::exception ) override;
         virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptor ) throw( css::uno::RuntimeException, std::exception ) override;
 
         // XNotifyingDispatch
diff --git a/framework/inc/helper/dockingareadefaultacceptor.hxx b/framework/inc/helper/dockingareadefaultacceptor.hxx
index 9581c77..f6ed996 100644
--- a/framework/inc/helper/dockingareadefaultacceptor.hxx
+++ b/framework/inc/helper/dockingareadefaultacceptor.hxx
@@ -36,9 +36,7 @@ class DockingAreaDefaultAcceptor    :   public ::cppu::WeakImplHelper< css::ui::
 {
     public:
 
-        //  constructor / destructor
-
-        /*-****************************************************************************************************
+        /*
             @short      constructor to initialize this instance
             @descr      A docking area acceptor
                         But we need a instance to create more than one enumerations to the same tasklist!
@@ -49,7 +47,7 @@ class DockingAreaDefaultAcceptor    :   public ::cppu::WeakImplHelper< css::ui::
             @param      "xOwner" is a reference to our owner and must be the desktop!
             @param      "pTasks" is a pointer to the taskcontainer of the desktop. We need it to create a new enumeration.
             @onerror    Do nothing and reset this object to default with an empty list.
-        *//*-*****************************************************************************************************/
+        */
 
          DockingAreaDefaultAcceptor(    const css::uno::Reference< css::frame::XFrame >& xOwner );
         virtual ~DockingAreaDefaultAcceptor() override;
@@ -60,15 +58,12 @@ class DockingAreaDefaultAcceptor    :   public ::cppu::WeakImplHelper< css::ui::
         virtual sal_Bool SAL_CALL requestDockingAreaSpace( const css::awt::Rectangle& RequestedSpace ) throw (css::uno::RuntimeException, std::exception) override;
         virtual void SAL_CALL setDockingAreaSpace( const css::awt::Rectangle& BorderSpace ) throw (css::uno::RuntimeException, std::exception) override;
 
-    //  variables
-    //  (should be private everyway!)
-
     private:
 
-        css::uno::WeakReference< css::frame::XFrame >       m_xOwner;   /// weak reference to our frame object!
+        css::uno::WeakReference< css::frame::XFrame >       m_xOwner;   /// weak reference to our frame object
 };
 
-} // namespace framework
+}
 
 #endif // INCLUDED_FRAMEWORK_INC_HELPER_DOCKINGAREADEFAULTACCEPTOR_HXX
 
diff --git a/framework/inc/helper/ocomponentaccess.hxx b/framework/inc/helper/ocomponentaccess.hxx
index 1d541b1..ba1e943 100644
--- a/framework/inc/helper/ocomponentaccess.hxx
+++ b/framework/inc/helper/ocomponentaccess.hxx
@@ -37,7 +37,7 @@
 
 namespace framework{
 
-/*-************************************************************************************************************
+/*
     @short          implement XEnumerationAccess interface as helper to create many oneway enumeration of components
     @descr          We share mutex and framecontainer with our owner and have full access to his child tasks.
                     (Our owner can be the Desktop only!) We create oneway enumerations on demand. These "lists"
@@ -52,7 +52,7 @@ namespace framework{
     @base           OWeakObject
 
     @devstatus      ready to use
-*//*-*************************************************************************************************************/
+*/
 
 class OComponentAccess  :   public ::cppu::WeakImplHelper< css::container::XEnumerationAccess >
 {
@@ -63,7 +63,7 @@ class OComponentAccess  :   public ::cppu::WeakImplHelper< css::container::XEnum
 
         //  constructor / destructor
 
-        /*-****************************************************************************************************
+        /*
             @short      constructor to initialize this instance
             @descr      A desktop will create an enumeration-access-object. An enumeration is a oneway-list and a
                         snapshot of the components of current tasks under the desktop.
@@ -74,13 +74,13 @@ class OComponentAccess  :   public ::cppu::WeakImplHelper< css::container::XEnum
 
             @param      "xOwner" is a reference to our owner and must be the desktop!
             @onerror    Do nothing and reset this object to default with an empty list.
-        *//*-*****************************************************************************************************/
+        */
 
         OComponentAccess( const css::uno::Reference< css::frame::XDesktop >& xOwner );
 
         //  XEnumerationAccess
 
-        /*-****************************************************************************************************
+        /*
             @short      create a new enumeration of components
             @descr      You can call this method to get a new snapshot from all components of all tasks of the desktop as an enumeration.
 
@@ -89,27 +89,27 @@ class OComponentAccess  :   public ::cppu::WeakImplHelper< css::container::XEnum
             @seealso    class Desktop
             @return     If the desktop and some components exist => a valid reference to an enumeration<BR>
                         An NULL-reference, other way.
-        *//*-*****************************************************************************************************/
+        */
 
         virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw( css::uno::RuntimeException, std::exception ) override;
 
         //  XElementAccess
 
-        /*-****************************************************************************************************
+        /*
             @short      get the type of elements in enumeration
             @seealso    interface XElementAccess
             @seealso    class OComponentEnumeration
             @return     The uno-type XComponent.
-        *//*-*****************************************************************************************************/
+        */
 
         virtual css::uno::Type SAL_CALL getElementType() throw( css::uno::RuntimeException, std::exception ) override;
 
-        /*-****************************************************************************************************
+        /*
             @short      get state of componentlist of enumeration.
             @seealso    interface XElementAccess
             @return     sal_True  ,if more than 0 elements exist.
             @return     sal_False ,otherwise.
-        *//*-*****************************************************************************************************/
+        */
 
         virtual sal_Bool SAL_CALL hasElements() throw( css::uno::RuntimeException, std::exception ) override;
 
@@ -117,7 +117,7 @@ class OComponentAccess  :   public ::cppu::WeakImplHelper< css::container::XEnum
 
     protected:
 
-        /*-****************************************************************************************************
+        /*
             @short      standard destructor
             @descr      This method destruct an instance of this class and clear some member.
                         Don't use an instance of this class as normal member. Use it dynamicly with a pointer.
@@ -125,14 +125,14 @@ class OComponentAccess  :   public ::cppu::WeakImplHelper< css::container::XEnum
                         Thats the reason for a protected dtor.

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list