diff options
-rw-r--r-- | connectivity/source/drivers/firebird/Driver.cxx | 17 | ||||
-rw-r--r-- | connectivity/source/drivers/firebird/Driver.hxx | 1 | ||||
-rw-r--r-- | external/firebird/ExternalPackage_firebird.mk | 2 | ||||
-rw-r--r-- | scp2/source/firebird/file_firebird.scp | 16 | ||||
-rw-r--r-- | scp2/source/firebird/module_firebird.scp | 2 |
5 files changed, 26 insertions, 12 deletions
diff --git a/connectivity/source/drivers/firebird/Driver.cxx b/connectivity/source/drivers/firebird/Driver.cxx index 16abcde2df29..4b51ed22d80c 100644 --- a/connectivity/source/drivers/firebird/Driver.cxx +++ b/connectivity/source/drivers/firebird/Driver.cxx @@ -27,7 +27,9 @@ #include <comphelper/processfactory.hxx> #include <cppuhelper/supportsservice.hxx> +#include <osl/file.hxx> #include <osl/process.h> +#include <rtl/bootstrap.hxx> #include <svtools/miscopt.hxx> using namespace com::sun::star; @@ -57,6 +59,7 @@ namespace connectivity // Static const member variables const OUString FirebirdDriver::our_sFirebirdTmpVar("FIREBIRD_TMP"); const OUString FirebirdDriver::our_sFirebirdLockVar("FIREBIRD_LOCK"); +const OUString FirebirdDriver::our_sFirebirdMsgVar("FIREBIRD_MSG"); FirebirdDriver::FirebirdDriver(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext) : ODriver_BASE(m_aMutex) @@ -76,6 +79,16 @@ FirebirdDriver::FirebirdDriver(const ::com::sun::star::uno::Reference< ::com::su // Overrides firebird's default of /tmp/firebird or c:\temp\firebird osl_setEnvironment(our_sFirebirdLockVar.pData, m_firebirdLockDirectory.GetFileName().pData); + +#ifndef SYSTEM_FIREBIRD + // Overrides firebird's hardcoded default of /usr/local/firebird on *nix, + // however on Windows it seems to use the current directory as a default. + OUString sMsgURL("$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/firebird"); + ::rtl::Bootstrap::expandMacros(sMsgURL); + OUString sMsgPath; + ::osl::FileBase::getSystemPathFromFileURL(sMsgURL, sMsgPath); + osl_setEnvironment(our_sFirebirdMsgVar.pData, sMsgPath.pData); +#endif } void FirebirdDriver::disposing() @@ -93,6 +106,10 @@ void FirebirdDriver::disposing() osl_clearEnvironment(our_sFirebirdTmpVar.pData); osl_clearEnvironment(our_sFirebirdLockVar.pData); +#ifndef SYSTEM_FIREBIRD + osl_clearEnvironment(our_sFirebirdMsgVar.pData); +#endif + ODriver_BASE::disposing(); } diff --git a/connectivity/source/drivers/firebird/Driver.hxx b/connectivity/source/drivers/firebird/Driver.hxx index 0c03bac5603e..83a48565a039 100644 --- a/connectivity/source/drivers/firebird/Driver.hxx +++ b/connectivity/source/drivers/firebird/Driver.hxx @@ -48,6 +48,7 @@ namespace connectivity private: static const ::rtl::OUString our_sFirebirdTmpVar; static const ::rtl::OUString our_sFirebirdLockVar; + static const ::rtl::OUString our_sFirebirdMsgVar; css::uno::Reference<css::uno::XComponentContext> m_aContext; ::utl::TempFile m_firebirdTMPDirectory; diff --git a/external/firebird/ExternalPackage_firebird.mk b/external/firebird/ExternalPackage_firebird.mk index 0a14e4106469..59b938bbcc4c 100644 --- a/external/firebird/ExternalPackage_firebird.mk +++ b/external/firebird/ExternalPackage_firebird.mk @@ -19,4 +19,6 @@ else $(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/libfbembed.so.2.5,gen/firebird/lib/libfbembed.so.2.5.2)) endif +$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_SHARE_FOLDER)/firebird/firebird.msg,gen/firebird/firebird.msg)) + # vim: set noet sw=4 ts=4: diff --git a/scp2/source/firebird/file_firebird.scp b/scp2/source/firebird/file_firebird.scp index 3f89147a8f51..cbdd232f67d5 100644 --- a/scp2/source/firebird/file_firebird.scp +++ b/scp2/source/firebird/file_firebird.scp @@ -20,17 +20,11 @@ #ifndef SYSTEM_FIREBIRD -File gid_File_Firebird_Lib - LIB_FILE_BODY; - Styles = (PACKED); - Dir = SCP2_OOO_LIB_DIR; - #if defined MACOSX - Name = "libfbembed.dylib"; - #elif defined UNX - Name = STRING(CONCAT3(libfbembed,UNXSUFFIX,.2.5)); - #else - Name = "ifbembed.dll"; - #endif +File gid_File_Firebird + TXT_FILE_BODY; + Styles = (FILELIST, PACKED); + Dir = FILELIST_DIR; + Name = "firebird.filelist"; End #endif diff --git a/scp2/source/firebird/module_firebird.scp b/scp2/source/firebird/module_firebird.scp index 1e7f74412dda..8e6c7d79aaaa 100644 --- a/scp2/source/firebird/module_firebird.scp +++ b/scp2/source/firebird/module_firebird.scp @@ -26,7 +26,7 @@ Module gid_Module_Firebird PackageInfo = "packinfo_office.txt"; ParentID = gid_Module_Root_Brand; Files = ( - File gid_File_Firebird_Lib + File gid_File_Firebird ); Styles = (HIDDEN_ROOT); End |