From a2f244f982a98e9375e9ed92d1ef5d606f0e38e6 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 10:52:19 +0100 Subject: [PATCH 01/28] first shot at packaging 4.0 --- .gitignore | 3 + ...98-collect-scrollbar-click-preferenc.patch | 257 -- ...6937-insanely-slow-with-Zemberek-ins.patch | 970 ------ ...8368-view-ignored-while-view-accepte.patch | 37 - ...2292-crash-in-calling-callback-whose.patch | 144 - ...6775-Clipboard-must-be-disposed-befo.patch | 66 - ...5541-XIOError-handler-multithread-wo.patch | 74 - ...-java-XSL-transformer-into-extension.patch | 214 -- 0001-disable-failing-check.patch | 8 +- 0001-do-not-strip-install-set.patch | 26 - ...dle-system-db-test-to-link-on-RHEL-6.patch | 40 - ...-up-to-try-and-make-.o-s-small-enoug.patch | 208 -- ...l-attempt-at-re-work-for-new-playbin.patch | 193 -- ...-gstreamer-1.0-and-0.10-dual-compile.patch | 832 ----- ...on-of-transformer-for-an-XSLT-filter.patch | 730 ---- 0003-drop-saxon-based-XSLT-transformer.patch | 3001 ----------------- ...ke-avmedia-build-with-gstreamer-0.10.patch | 157 - 0004-remove-all-traces-of-saxon.patch | 1650 --------- ...tweak-old-school-gstreamer-link-line.patch | 38 - ...gure-with-older-gstreamer-plugins-ba.patch | 30 - ...r-various-fixes-for-1.0-and-cleanups.patch | 137 - 0007-gstreamer-fix-leaking-pads.patch | 45 - libreoffice.spec | 126 +- ....org-3.0.0.ooo88341.sc.verticalboxes.patch | 8 +- ...-3.1.0.ooo101274.opening-a-directory.patch | 6 +- ...g-3.1.0.oooXXXXX.solenv.allowmissing.patch | 48 +- ...1.1.ooo105784.vcl.sniffscriptforsubs.patch | 2 +- sources | 8 +- 28 files changed, 59 insertions(+), 8999 deletions(-) delete mode 100644 0001-Resolves-fdo-56198-collect-scrollbar-click-preferenc.patch delete mode 100644 0001-Resolves-rhbz-836937-insanely-slow-with-Zemberek-ins.patch delete mode 100644 0001-Resolves-rhbz-838368-view-ignored-while-view-accepte.patch delete mode 100644 0001-Resolves-rhbz-842292-crash-in-calling-callback-whose.patch delete mode 100644 0001-Resolves-rhbz-846775-Clipboard-must-be-disposed-befo.patch delete mode 100644 0001-Resolves-rhbz-855541-XIOError-handler-multithread-wo.patch delete mode 100644 0001-convert-java-XSL-transformer-into-extension.patch delete mode 100644 0001-do-not-strip-install-set.patch delete mode 100644 0001-fiddle-system-db-test-to-link-on-RHEL-6.patch delete mode 100644 0001-split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch delete mode 100644 0001-tentative-initial-attempt-at-re-work-for-new-playbin.patch delete mode 100644 0002-gstreamer-make-gstreamer-1.0-and-0.10-dual-compile.patch delete mode 100644 0002-rework-selection-of-transformer-for-an-XSLT-filter.patch delete mode 100644 0003-drop-saxon-based-XSLT-transformer.patch delete mode 100644 0003-make-avmedia-build-with-gstreamer-0.10.patch delete mode 100644 0004-remove-all-traces-of-saxon.patch delete mode 100644 0004-tweak-old-school-gstreamer-link-line.patch delete mode 100644 0005-Don-t-fail-configure-with-older-gstreamer-plugins-ba.patch delete mode 100644 0006-gstreamer-various-fixes-for-1.0-and-cleanups.patch delete mode 100644 0007-gstreamer-fix-leaking-pads.patch diff --git a/.gitignore b/.gitignore index c3886a4..5b9a5ac 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,6 @@ /libreoffice-core-3.6.4.1.tar.xz /libreoffice-help-3.6.4.1.tar.xz /libreoffice-translations-3.6.4.1.tar.xz +/libreoffice-4.0.0.0.alpha1.tar.xz +/libreoffice-help-4.0.0.0.alpha1.tar.xz +/libreoffice-translations-4.0.0.0.alpha1.tar.xz diff --git a/0001-Resolves-fdo-56198-collect-scrollbar-click-preferenc.patch b/0001-Resolves-fdo-56198-collect-scrollbar-click-preferenc.patch deleted file mode 100644 index f744995..0000000 --- a/0001-Resolves-fdo-56198-collect-scrollbar-click-preferenc.patch +++ /dev/null @@ -1,257 +0,0 @@ -From 2efa35a812a6f1e35e4959a357f50feff7e598f5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 6 Nov 2012 23:21:06 +0000 -Subject: [PATCH] Resolves: fdo#56198 collect scrollbar click preference - settings - -for gtk and merge with aqua equivalent so as to alternate "jump to here" -behavior for primary button vs primary means scroll by single page. Secondary -button takes the alternative behaviour - -Change-Id: I0a96f3131f41ec87052da39cbe96bfd895ca53f6 ---- - vcl/aqua/source/window/salframe.cxx | 6 +++--- - vcl/inc/svdata.hxx | 1 - - vcl/inc/vcl/settings.hxx | 17 ++++++++++++----- - vcl/source/app/settings.cxx | 15 +++++++++------ - vcl/source/control/scrbar.cxx | 24 ++++++++++++++++-------- - vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx | 10 +++++++--- - vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx | 10 +++++++--- - 7 files changed, 54 insertions(+), 29 deletions(-) - -diff --git a/vcl/aqua/source/window/salframe.cxx b/vcl/aqua/source/window/salframe.cxx -index 924210d..cf7c048 100644 ---- a/vcl/aqua/source/window/salframe.cxx -+++ b/vcl/aqua/source/window/salframe.cxx -@@ -1146,7 +1146,7 @@ rtl::OUString AquaSalFrame::GetKeyName( sal_uInt16 nKeyCode ) - - // ----------------------------------------------------------------------- - --static void getAppleScrollBarVariant(void) -+static void getAppleScrollBarVariant(StyleSettings &rSettings) - { - bool bIsScrollbarDoubleMax = true; // default is DoubleMax - -@@ -1183,7 +1183,7 @@ static void getAppleScrollBarVariant(void) - if( jumpStr ) - { - if( CFGetTypeID( jumpStr ) == CFBooleanGetTypeID() ) -- ImplGetSVData()->maNWFData.mbScrollbarJumpPage = (jumpStr == kCFBooleanTrue); -+ rSettings.SetPrimaryButtonWarpsSlider(jumpStr == kCFBooleanTrue); - CFRelease( jumpStr ); - } - CFRelease( jumpScroll ); -@@ -1324,7 +1324,7 @@ void AquaSalFrame::UpdateSettings( AllSettings& rSettings ) - // no mnemonics on aqua - aStyleSettings.SetOptions( aStyleSettings.GetOptions() | STYLE_OPTION_NOMNEMONICS ); - -- getAppleScrollBarVariant(); -+ getAppleScrollBarVariant(aStyleSettings); - - // set scrollbar size - aStyleSettings.SetScrollBarSize( static_cast([NSScroller scrollerWidth]) ); -diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx -index af547e9..974a67f 100644 ---- a/vcl/inc/svdata.hxx -+++ b/vcl/inc/svdata.hxx -@@ -294,7 +294,6 @@ struct ImplSVNWFData - bool mbCheckBoxNeedsErase:1; // set true for platforms that should draw the - // window background before drawing the native - // checkbox -- bool mbScrollbarJumpPage:1; // true for "jump to here" behavior - bool mbCanDrawWidgetAnySize:1; // set to true currently on gtk - }; - -diff --git a/vcl/inc/vcl/settings.hxx b/vcl/inc/vcl/settings.hxx -index 9a0a856..1052b49 100644 ---- a/vcl/inc/vcl/settings.hxx -+++ b/vcl/inc/vcl/settings.hxx -@@ -323,7 +323,10 @@ - sal_uLong mnPreferredSymbolsStyle; - sal_uInt16 mnSkipDisabledInMenus; - sal_Bool mbHideDisabledMenuItems; -- sal_Bool mnAcceleratorsInContextMenus; -+ sal_Bool mbAcceleratorsInContextMenus; -+ //mbPrimaryButtonWarpsSlider == true for "jump to here" behavior for primary button, otherwise -+ //primary means scroll by single page. Secondary button takes the alternative behaviour -+ sal_Bool mbPrimaryButtonWarpsSlider; - Wallpaper maWorkspaceGradient; - const void* mpFontOptions; - }; -@@ -628,10 +631,14 @@ - { CopyData(); mpData->mbHideDisabledMenuItems = bHideDisabledMenuItems; } - sal_Bool GetHideDisabledMenuItems() const - { return mpData->mbHideDisabledMenuItems; } -- void SetAcceleratorsInContextMenus( sal_Bool bAcceleratorsInContextMenus ) -- { CopyData(); mpData->mnAcceleratorsInContextMenus = bAcceleratorsInContextMenus; } -- sal_Bool GetAcceleratorsInContextMenus() const -- { return mpData->mnAcceleratorsInContextMenus; } -+ void SetAcceleratorsInContextMenus( sal_Bool bAcceleratorsInContextMenus ) -+ { CopyData(); mpData->mbAcceleratorsInContextMenus = bAcceleratorsInContextMenus; } -+ sal_Bool GetAcceleratorsInContextMenus() const -+ { return mpData->mbAcceleratorsInContextMenus; } -+ void SetPrimaryButtonWarpsSlider( sal_Bool bPrimaryButtonWarpsSlider ) -+ { CopyData(); mpData->mbPrimaryButtonWarpsSlider = bPrimaryButtonWarpsSlider; } -+ sal_Bool GetPrimaryButtonWarpsSlider() const -+ { return mpData->mbPrimaryButtonWarpsSlider; } - - void SetCairoFontOptions( const void *pOptions ) - { CopyData(); mpData->mpFontOptions = pOptions; } -diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx -index 273e118..a2acdad 100644 ---- a/vcl/source/app/settings.cxx -+++ b/vcl/source/app/settings.cxx -@@ -337,11 +337,12 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) : - mnUseImagesInMenus = rData.mnUseImagesInMenus; - mbPreferredUseImagesInMenus = rData.mbPreferredUseImagesInMenus; - mnSkipDisabledInMenus = rData.mnSkipDisabledInMenus; -- mbHideDisabledMenuItems = rData.mbHideDisabledMenuItems; -- mnAcceleratorsInContextMenus = rData.mnAcceleratorsInContextMenus; -+ mbHideDisabledMenuItems = rData.mbHideDisabledMenuItems; -+ mbAcceleratorsInContextMenus = rData.mbAcceleratorsInContextMenus; -+ mbPrimaryButtonWarpsSlider = rData.mbPrimaryButtonWarpsSlider; - mnToolbarIconSize = rData.mnToolbarIconSize; - mnSymbolsStyle = rData.mnSymbolsStyle; -- mnPreferredSymbolsStyle = rData.mnPreferredSymbolsStyle; -+ mnPreferredSymbolsStyle = rData.mnPreferredSymbolsStyle; - mpFontOptions = rData.mpFontOptions; - } - -@@ -425,10 +426,11 @@ void ImplStyleData::SetStandardStyles() - mnUseSystemUIFonts = 1; - mnUseFlatBorders = 0; - mnUseFlatMenues = 0; -- mbPreferredUseImagesInMenus = sal_True; -+ mbPreferredUseImagesInMenus = sal_True; - mnSkipDisabledInMenus = (sal_uInt16)sal_False; - mbHideDisabledMenuItems = sal_False; -- mnAcceleratorsInContextMenus = sal_True; -+ mbAcceleratorsInContextMenus = sal_True; -+ mbPrimaryButtonWarpsSlider = sal_False; - - Gradient aGrad( GradientStyle_LINEAR, DEFAULT_WORKSPACE_GRADIENT_START_COLOR, DEFAULT_WORKSPACE_GRADIENT_END_COLOR ); - maWorkspaceGradient = Wallpaper( aGrad ); -@@ -852,7 +854,8 @@ sal_Bool StyleSettings::operator ==( const StyleSettings& rSet ) const - (mpData->mbPreferredUseImagesInMenus == rSet.mpData->mbPreferredUseImagesInMenus) && - (mpData->mnSkipDisabledInMenus == rSet.mpData->mnSkipDisabledInMenus) && - (mpData->mbHideDisabledMenuItems == rSet.mpData->mbHideDisabledMenuItems) && -- (mpData->mnAcceleratorsInContextMenus == rSet.mpData->mnAcceleratorsInContextMenus) && -+ (mpData->mbAcceleratorsInContextMenus == rSet.mpData->mbAcceleratorsInContextMenus)&& -+ (mpData->mbPrimaryButtonWarpsSlider == rSet.mpData->mbPrimaryButtonWarpsSlider) && - (mpData->maFontColor == rSet.mpData->maFontColor )) - return sal_True; - else -diff --git a/vcl/source/control/scrbar.cxx b/vcl/source/control/scrbar.cxx -index dad66f6..9e90362 100644 ---- a/vcl/source/control/scrbar.cxx -+++ b/vcl/source/control/scrbar.cxx -@@ -948,7 +948,12 @@ - - void ScrollBar::MouseButtonDown( const MouseEvent& rMEvt ) - { -- if ( rMEvt.IsLeft() || rMEvt.IsMiddle() ) -+ bool bPrimaryWarps = GetSettings().GetStyleSettings().GetPrimaryButtonWarpsSlider(); -+ bool bWarp = bPrimaryWarps ? rMEvt.IsLeft() : rMEvt.IsMiddle(); -+ bool bPrimaryWarping = bWarp && rMEvt.IsLeft(); -+ bool bPage = bPrimaryWarps ? rMEvt.IsRight() : rMEvt.IsLeft(); -+ -+ if (rMEvt.IsLeft() || rMEvt.IsMiddle() || rMEvt.IsRight()) - { - const Point& rMousePos = rMEvt.GetPosPixel(); - sal_uInt16 nTrackFlags = 0; -@@ -964,7 +969,7 @@ - bIsInside: - maBtn1Rect.IsInside( rMousePos ) ) - { -- if ( !(mnStateFlags & SCRBAR_STATE_BTN1_DISABLE) ) -+ if (rMEvt.IsLeft() && !(mnStateFlags & SCRBAR_STATE_BTN1_DISABLE) ) - { - nTrackFlags = STARTTRACK_BUTTONREPEAT; - meScrollType = SCROLL_LINEUP; -@@ -978,7 +983,7 @@ - bIsInside: - maBtn2Rect.IsInside( rMousePos ) ) - { -- if ( !(mnStateFlags & SCRBAR_STATE_BTN2_DISABLE) ) -+ if (rMEvt.IsLeft() && !(mnStateFlags & SCRBAR_STATE_BTN2_DISABLE) ) - { - nTrackFlags = STARTTRACK_BUTTONREPEAT; - meScrollType = SCROLL_LINEDOWN; -@@ -992,7 +997,10 @@ - bool bThumbHit = HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal? PART_THUMB_HORZ : PART_THUMB_VERT, - maThumbRect, rMousePos, bIsInside ) - ? bIsInside : maThumbRect.IsInside( rMousePos ); -- bool bDragHandling = rMEvt.IsMiddle() || bThumbHit || ImplGetSVData()->maNWFData.mbScrollbarJumpPage; -+ -+ bool bThumbAction = bWarp || bPage; -+ -+ bool bDragHandling = bWarp || (bThumbHit && bThumbAction); - if( bDragHandling ) - { - if( mpData ) -@@ -1009,7 +1017,7 @@ - mnDragDraw = SCRBAR_DRAW_THUMB; - - // calculate mouse offset -- if( rMEvt.IsMiddle() || (ImplGetSVData()->maNWFData.mbScrollbarJumpPage && !bThumbHit) ) -+ if (bWarp && (!bThumbHit || !bPrimaryWarping)) - { - bDragToMouse = sal_True; - if ( GetStyle() & WB_HORZ ) -@@ -1031,9 +1039,9 @@ - else - Sound::Beep( SOUND_DISABLE, this ); - } -- else if( HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal? PART_TRACK_HORZ_AREA : PART_TRACK_VERT_AREA, -+ else if(bPage && (HitTestNativeControl( CTRL_SCROLLBAR, bHorizontal? PART_TRACK_HORZ_AREA : PART_TRACK_VERT_AREA, - aControlRegion, rMousePos, bIsInside )? -- bIsInside : sal_True ) -+ bIsInside : sal_True) ) - { - nTrackFlags = STARTTRACK_BUTTONREPEAT; - -diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx -index 65df181..1451476 100644 ---- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx -+++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx -@@ -3987,9 +3987,13 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings ) - aMouseSettings.SetMenuDelay( iMenuPopupDelay ); - rSettings.SetMouseSettings( aMouseSettings ); - -- gboolean showmenuicons = true; -- g_object_get( pSettings, "gtk-menu-images", &showmenuicons, (char *)NULL ); -- aStyleSet.SetPreferredUseImagesInMenus( showmenuicons ); -+ gboolean showmenuicons = true, primarybuttonwarps = false; -+ g_object_get( pSettings, -+ "gtk-menu-images", &showmenuicons, -+ "gtk-primary-button-warps-slider", &primarybuttonwarps, -+ (char *)NULL ); -+ aStyleSet.SetPreferredUseImagesInMenus(showmenuicons); -+ aStyleSet.SetPrimaryButtonWarpsSlider(primarybuttonwarps); - - // set scrollbar settings - gint slider_width = 14; -diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx -index 0774699f..1037d9d 100644 ---- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx -+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx -@@ -1376,9 +1376,13 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings ) - aMouseSettings.SetMenuDelay( iMenuPopupDelay ); - rSettings.SetMouseSettings( aMouseSettings ); - -- gboolean showmenuicons = true; -- g_object_get( pSettings, "gtk-menu-images", &showmenuicons, (char *)NULL ); -- aStyleSet.SetPreferredUseImagesInMenus( showmenuicons ); -+ gboolean showmenuicons = true, primarybuttonwarps = false; -+ g_object_get( pSettings, -+ "gtk-menu-images", &showmenuicons, -+ "gtk-primary-button-warps-slider", &primarybuttonwarps, -+ (char *)NULL ); -+ aStyleSet.SetPreferredUseImagesInMenus(showmenuicons); -+ aStyleSet.SetPrimaryButtonWarpsSlider(primarybuttonwarps); - - // set scrollbar settings - gint slider_width = 14; --- -1.7.11.7 - diff --git a/0001-Resolves-rhbz-836937-insanely-slow-with-Zemberek-ins.patch b/0001-Resolves-rhbz-836937-insanely-slow-with-Zemberek-ins.patch deleted file mode 100644 index 0e4a891..0000000 --- a/0001-Resolves-rhbz-836937-insanely-slow-with-Zemberek-ins.patch +++ /dev/null @@ -1,970 +0,0 @@ -diff -ru libreoffice-3.5.5.3.orig/cui/source/options/optlingu.cxx libreoffice-3.5.5.3/cui/source/options/optlingu.cxx ---- libreoffice-3.5.5.3.orig/cui/source/options/optlingu.cxx 2012-07-13 12:37:15.032259144 +0100 -+++ libreoffice-3.5.5.3/cui/source/options/optlingu.cxx 2012-07-16 08:49:26.294209540 +0100 -@@ -1150,12 +1150,6 @@ - aLinguDicsEditPB.SetAccessibleName(sAccessibleNameDicsEdit); - aLinguOptionsEditPB.SetAccessibleName(sAccessibleNameOptionEdit); - -- // force recalculation of hash value used for checking the need of updating -- // because new dictionaries might be installed / downloaded. -- //! Thus it needs to be called now since it may infuence the supported languages -- //! to be reported AND the found user-dictionaries(!) as well. -- SvxLinguConfigUpdate::UpdateAll( sal_True ); -- - xProp = uno::Reference< XPropertySet >( SvxGetLinguPropertySet(), UNO_QUERY ); - xDicList = uno::Reference< XDictionaryList >( SvxGetDictionaryList(), UNO_QUERY ); - if (xDicList.is()) -diff -ru libreoffice-3.5.5.3.orig/editeng/inc/editeng/unolingu.hxx libreoffice-3.5.5.3/editeng/inc/editeng/unolingu.hxx ---- libreoffice-3.5.5.3.orig/editeng/inc/editeng/unolingu.hxx 2012-07-13 12:37:16.109269892 +0100 -+++ libreoffice-3.5.5.3/editeng/inc/editeng/unolingu.hxx 2012-07-16 08:49:26.294209540 +0100 -@@ -46,29 +46,6 @@ - class Window; - - /////////////////////////////////////////////////////////////////////////// --// SvxLinguConfigUpdate --// class to update configuration items when (before!) the linguistic is used. --// --// This class is called by all the dummy implementations to update all of the --// configuration (list of used/available services) when the linguistic is --// accessed for the first time. -- --class SvxLinguConfigUpdate --{ -- static sal_Int32 nCurrentDataFilesChangedCheckValue; -- static sal_Int16 nNeedUpdating; // n == -1 => needs to be checked -- // n == 0 => already updated, nothing to be done -- // n == 1 => needs to be updated -- -- static sal_Int32 CalcDataFilesChangedCheckValue(); -- --public: -- -- EDITENG_DLLPUBLIC static void UpdateAll( sal_Bool bForceCheck = sal_False ); -- static sal_Bool IsNeedUpdateAll( sal_Bool bForceCheck = sal_False ); --}; -- --/////////////////////////////////////////////////////////////////////////// - - class EDITENG_DLLPUBLIC LinguMgr - { -diff -ru libreoffice-3.5.5.3.orig/editeng/source/misc/unolingu.cxx libreoffice-3.5.5.3/editeng/source/misc/unolingu.cxx ---- libreoffice-3.5.5.3.orig/editeng/source/misc/unolingu.cxx 2012-07-13 12:37:15.900267806 +0100 -+++ libreoffice-3.5.5.3/editeng/source/misc/unolingu.cxx 2012-07-16 08:52:53.919596778 +0100 -@@ -90,365 +90,6 @@ - return xRes; - } - --sal_Bool lcl_FindEntry( const OUString &rEntry, const Sequence< OUString > &rCfgSvcs ) --{ -- sal_Int32 nRes = -1; -- sal_Int32 nEntries = rCfgSvcs.getLength(); -- const OUString *pEntry = rCfgSvcs.getConstArray(); -- for (sal_Int32 i = 0; i < nEntries && nRes == -1; ++i) -- { -- if (rEntry == pEntry[i]) -- nRes = i; -- } -- return nRes != -1; --} -- -- --Sequence< OUString > lcl_RemoveMissingEntries( -- const Sequence< OUString > &rCfgSvcs, -- const Sequence< OUString > &rAvailSvcs ) --{ -- Sequence< OUString > aRes( rCfgSvcs.getLength() ); -- OUString *pRes = aRes.getArray(); -- sal_Int32 nCnt = 0; -- -- sal_Int32 nEntries = rCfgSvcs.getLength(); -- const OUString *pEntry = rCfgSvcs.getConstArray(); -- for (sal_Int32 i = 0; i < nEntries; ++i) -- { -- if (!pEntry[i].isEmpty() && lcl_FindEntry( pEntry[i], rAvailSvcs )) -- pRes[ nCnt++ ] = pEntry[i]; -- } -- -- aRes.realloc( nCnt ); -- return aRes; --} -- -- --Sequence< OUString > lcl_GetLastFoundSvcs( -- SvtLinguConfig &rCfg, -- const OUString &rLastFoundList , -- const Locale &rAvailLocale ) --{ -- Sequence< OUString > aRes; -- -- OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( -- SvxLocaleToLanguage( rAvailLocale ) ) ); -- -- Sequence< OUString > aNodeNames( rCfg.GetNodeNames(rLastFoundList) ); -- sal_Bool bFound = lcl_FindEntry( aCfgLocaleStr, aNodeNames); -- -- if (bFound) -- { -- Sequence< OUString > aNames(1); -- OUString &rNodeName = aNames.getArray()[0]; -- rNodeName = rLastFoundList; -- rNodeName += OUString::valueOf( (sal_Unicode)'/' ); -- rNodeName += aCfgLocaleStr; -- Sequence< Any > aValues( rCfg.GetProperties( aNames ) ); -- if (aValues.getLength()) -- { -- OSL_ENSURE( aValues.getLength() == 1, "unexpected length of sequence" ); -- Sequence< OUString > aSvcImplNames; -- if (aValues.getConstArray()[0] >>= aSvcImplNames) -- aRes = aSvcImplNames; -- else -- { -- OSL_FAIL( "type mismatch" ); -- } -- } -- } -- -- return aRes; --} -- -- --Sequence< OUString > lcl_GetNewEntries( -- const Sequence< OUString > &rLastFoundSvcs, -- const Sequence< OUString > &rAvailSvcs ) --{ -- sal_Int32 nLen = rAvailSvcs.getLength(); -- Sequence< OUString > aRes( nLen ); -- OUString *pRes = aRes.getArray(); -- sal_Int32 nCnt = 0; -- -- const OUString *pEntry = rAvailSvcs.getConstArray(); -- for (sal_Int32 i = 0; i < nLen; ++i) -- { -- if (!pEntry[i].isEmpty() && !lcl_FindEntry( pEntry[i], rLastFoundSvcs )) -- pRes[ nCnt++ ] = pEntry[i]; -- } -- -- aRes.realloc( nCnt ); -- return aRes; --} -- -- --Sequence< OUString > lcl_MergeSeq( -- const Sequence< OUString > &rCfgSvcs, -- const Sequence< OUString > &rNewSvcs ) --{ -- Sequence< OUString > aRes( rCfgSvcs.getLength() + rNewSvcs.getLength() ); -- OUString *pRes = aRes.getArray(); -- sal_Int32 nCnt = 0; -- -- for (sal_Int32 k = 0; k < 2; ++k) -- { -- // add previously configuerd service first and append -- // new found services at the end -- const Sequence< OUString > &rSeq = k == 0 ? rCfgSvcs : rNewSvcs; -- -- sal_Int32 nLen = rSeq.getLength(); -- const OUString *pEntry = rSeq.getConstArray(); -- for (sal_Int32 i = 0; i < nLen; ++i) -- { -- if (!pEntry[i].isEmpty() && !lcl_FindEntry( pEntry[i], aRes )) -- pRes[ nCnt++ ] = pEntry[i]; -- } -- } -- -- aRes.realloc( nCnt ); -- return aRes; --} -- --sal_Int16 SvxLinguConfigUpdate::nNeedUpdating = -1; --sal_Int32 SvxLinguConfigUpdate::nCurrentDataFilesChangedCheckValue = -1; -- --void SvxLinguConfigUpdate::UpdateAll( sal_Bool bForceCheck ) --{ -- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::UpdateAll" ); -- -- if (IsNeedUpdateAll( bForceCheck )) -- { -- typedef OUString OUstring_t; -- typedef Sequence< OUString > Sequence_OUString_t; -- typedef std::map< OUstring_t, Sequence_OUString_t > list_entry_map_t; -- -- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::UpdateAll - updating..." ); -- -- OSL_ENSURE( nNeedUpdating == 1, "SvxLinguConfigUpdate::UpdateAll already updated!" ); -- -- uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() ); -- OSL_ENSURE( xLngSvcMgr.is(), "service manager missing"); -- if (!xLngSvcMgr.is()) -- return; -- -- SvtLinguConfig aCfg; -- -- const int nNumServices = 4; -- const sal_Char * apServices[nNumServices] = { SN_SPELLCHECKER, SN_GRAMMARCHECKER, SN_HYPHENATOR, SN_THESAURUS }; -- const sal_Char * apCurLists[nNumServices] = { "ServiceManager/SpellCheckerList", "ServiceManager/GrammarCheckerList", "ServiceManager/HyphenatorList", "ServiceManager/ThesaurusList" }; -- const sal_Char * apLastFoundLists[nNumServices] = { "ServiceManager/LastFoundSpellCheckers", "ServiceManager/LastFoundGrammarCheckers", "ServiceManager/LastFoundHyphenators", "ServiceManager/LastFoundThesauri" }; -- -- // usage of indices as above: 0 = spell checker, 1 = grammar checker, 2 = hyphenator, 3 = thesaurus -- std::vector< list_entry_map_t > aLastFoundSvcs(nNumServices); -- std::vector< list_entry_map_t > aCurSvcs(nNumServices); -- -- for (int k = 0; k < nNumServices; ++k) -- { -- OUString aService( ::rtl::OUString::createFromAscii( apServices[k] ) ); -- OUString aActiveList( ::rtl::OUString::createFromAscii( apCurLists[k] ) ); -- OUString aLastFoundList( ::rtl::OUString::createFromAscii( apLastFoundLists[k] ) ); -- sal_Int32 i; -- -- // -- // remove configured but not available language/services entries -- // -- Sequence< OUString > aNodeNames( aCfg.GetNodeNames( aActiveList ) ); // list of configured locales -- sal_Int32 nNodeNames = aNodeNames.getLength(); -- const OUString *pNodeName = aNodeNames.getConstArray(); -- for (i = 0; i < nNodeNames; ++i) -- { -- Locale aLocale( SvxCreateLocale( MsLangId::convertIsoStringToLanguage(pNodeName[i]) ) ); -- Sequence< OUString > aCfgSvcs( -- xLngSvcMgr->getConfiguredServices( aService, aLocale )); -- Sequence< OUString > aAvailSvcs( -- xLngSvcMgr->getAvailableServices( aService, aLocale )); --#if OSL_DEBUG_LEVEL > 1 -- const OUString * pCfgSvcs = aCfgSvcs.getConstArray(); -- const OUString * pAvailSvcs = aAvailSvcs.getConstArray(); -- (void) pCfgSvcs; -- (void) pAvailSvcs; --#endif -- aCfgSvcs = lcl_RemoveMissingEntries( aCfgSvcs, aAvailSvcs ); -- -- aCurSvcs[k][ pNodeName[i] ] = aCfgSvcs; -- } -- -- // -- // add new available language/servcice entries -- // -- uno::Reference< XAvailableLocales > xAvail( xLngSvcMgr, UNO_QUERY ); -- Sequence< Locale > aAvailLocales( xAvail->getAvailableLocales(aService) ); -- sal_Int32 nAvailLocales = aAvailLocales.getLength(); -- const Locale *pAvailLocale = aAvailLocales.getConstArray(); -- for (i = 0; i < nAvailLocales; ++i) -- { -- Sequence< OUString > aAvailSvcs( -- xLngSvcMgr->getAvailableServices( aService, pAvailLocale[i] )); -- Sequence< OUString > aLastSvcs( -- lcl_GetLastFoundSvcs( aCfg, aLastFoundList , pAvailLocale[i] )); -- Sequence< OUString > aNewSvcs = -- lcl_GetNewEntries( aLastSvcs, aAvailSvcs ); --#if OSL_DEBUG_LEVEL > 1 -- const OUString * pAvailSvcs = aAvailSvcs.getConstArray(); -- const OUString * pLastSvcs = aLastSvcs.getConstArray(); -- const OUString * pNewSvcs = aNewSvcs.getConstArray(); -- (void) pAvailSvcs; -- (void) pLastSvcs; -- (void) pNewSvcs; --#endif -- -- OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( -- SvxLocaleToLanguage( pAvailLocale[i] ) ) ); -- Sequence< OUString > aCfgSvcs( aCurSvcs[k][ aCfgLocaleStr ] ); -- -- // merge services list (previously configured to be listed first). -- aCfgSvcs = lcl_MergeSeq( aCfgSvcs, aNewSvcs ); -- --/* -- // there is at most one Hyphenator per language allowed -- // to be configured, thus we only use the first one found. -- if (k == 2 && aCfgSvcs.getLength() > 1) -- aCfgSvcs.realloc(1); --*/ -- aCurSvcs[k][ aCfgLocaleStr ] = aCfgSvcs; -- } -- -- // -- // set last found services to currently available ones -- // -- for (i = 0; i < nAvailLocales; ++i) -- { -- Sequence< OUString > aSvcImplNames( -- xLngSvcMgr->getAvailableServices( aService, pAvailLocale[i] ) ); -- --#if OSL_DEBUG_LEVEL > 1 -- sal_Int32 nSvcs = aSvcImplNames.getLength(); -- const OUString *pSvcImplName = aSvcImplNames.getConstArray(); -- for (sal_Int32 j = 0; j < nSvcs; ++j) -- { -- OUString aImplName( pSvcImplName[j] ); -- } --#endif -- -- OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( -- SvxLocaleToLanguage( pAvailLocale[i] ) ) ); -- aLastFoundSvcs[k][ aCfgLocaleStr ] = aSvcImplNames; -- } -- } -- -- // -- // write new data back to configuration -- // -- for (int k = 0; k < nNumServices; ++k) -- { -- for (int i = 0; i < 2; ++i) -- { -- const sal_Char *pSubNodeName = (i == 0) ? apCurLists[k] : apLastFoundLists[k]; -- OUString aSubNodeName( ::rtl::OUString::createFromAscii(pSubNodeName) ); -- -- list_entry_map_t &rCurMap = (i == 0) ? aCurSvcs[k] : aLastFoundSvcs[k]; -- list_entry_map_t::const_iterator aIt( rCurMap.begin() ); -- sal_Int32 nVals = static_cast< sal_Int32 >( rCurMap.size() ); -- Sequence< PropertyValue > aNewValues( nVals ); -- PropertyValue *pNewValue = aNewValues.getArray(); -- while (aIt != rCurMap.end()) -- { -- OUString aCfgEntryName( aSubNodeName ); -- aCfgEntryName += OUString::valueOf( (sal_Unicode) '/' ); -- aCfgEntryName += (*aIt).first; -- --#if OSL_DEBUG_LEVEL > 1 -- Sequence< OUString > aSvcImplNames( (*aIt).second ); -- sal_Int32 nSvcs = aSvcImplNames.getLength(); -- const OUString *pSvcImplName = aSvcImplNames.getConstArray(); -- for (sal_Int32 j = 0; j < nSvcs; ++j) -- { -- OUString aImplName( pSvcImplName[j] ); -- } --#endif -- pNewValue->Name = aCfgEntryName; -- pNewValue->Value <<= (*aIt).second; -- ++pNewValue; -- ++aIt; -- } -- OSL_ENSURE( pNewValue - aNewValues.getArray() == nVals, -- "possible mismatch of sequence size and property number" ); -- -- { -- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::UpdateAll - ReplaceSetProperties" ); -- // add new or replace existing entries. -- sal_Bool bRes = aCfg.ReplaceSetProperties( aSubNodeName, aNewValues ); -- if (!bRes) -- { --#if OSL_DEBUG_LEVEL > 1 -- OSL_FAIL( "failed to set new configuration values" ); --#endif -- } -- } -- } -- } -- OSL_ENSURE( nCurrentDataFilesChangedCheckValue != -1, "SvxLinguConfigUpdate::UpdateAll DataFilesChangedCheckValue not yet calculated!" ); -- Any aAny; -- -- // for the time being (developer builds until OOo 3.0) -- // we should always check for everything available -- // otherwise we may miss a new installed extension dicitonary -- // just because e.g. the spellchecker is not asked what -- // languages it does support currently... -- // Since the check is on-demand occuring and executed once it should -- // not be too troublesome. -- // In OOo 3.0 we will not need the respective code anymore at all. --// aAny <<= nCurrentDataFilesChangedCheckValue; -- aAny <<= (sal_Int32) -1; // keep the value set to 'need to check' -- -- aCfg.SetProperty( A2OU( "DataFilesChangedCheckValue" ), aAny ); -- -- //! Note 1: the new values are commited when the 'aCfg' object -- //! gets destroyed. -- //! Note 2: the new settings in the configuration get applied -- //! because the 'LngSvcMgr' (in linguistic/source/lngsvcmgr.hxx) -- //! listens to the configuration for changes of the relevant -- //! properties and then applies the new settings. -- -- // nothing needs to be done anymore -- nNeedUpdating = 0; -- } --} -- -- --sal_Int32 SvxLinguConfigUpdate::CalcDataFilesChangedCheckValue() --{ -- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::CalcDataFilesChangedCheckValue" ); -- -- sal_Int32 nHashVal = 0; -- // nothing to be checked anymore since those old directory paths are gone by now -- return nHashVal; --} -- -- --sal_Bool SvxLinguConfigUpdate::IsNeedUpdateAll( sal_Bool bForceCheck ) --{ -- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::IsNeedUpdateAll" ); -- if (nNeedUpdating == -1 || bForceCheck ) // need to check if updating is necessary -- { -- // calculate hash value for current data files -- nCurrentDataFilesChangedCheckValue = CalcDataFilesChangedCheckValue(); -- -- // compare hash value and check value to see if anything has changed -- // and thus the configuration needs to be updated -- SvtLinguOptions aLinguOpt; -- SvtLinguConfig aCfg; -- aCfg.GetOptions( aLinguOpt ); -- nNeedUpdating = (nCurrentDataFilesChangedCheckValue == aLinguOpt.nDataFilesChangedCheckValue) ? 0 : 1; -- } -- OSL_ENSURE( nNeedUpdating != -1, -- "need for linguistic configuration update should have been already checked." ); -- -- return nNeedUpdating == 1; --} -- - - //! Dummy implementation in order to avoid loading of lingu DLL - //! when only the XSupportedLocales interface is used. -@@ -520,10 +158,6 @@ - - void ThesDummy_Impl::GetThes_Impl() - { -- // update configuration before accessing the service -- if (SvxLinguConfigUpdate::IsNeedUpdateAll()) -- SvxLinguConfigUpdate::UpdateAll(); -- - if (!xThes.is()) - { - uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() ); -@@ -543,8 +177,7 @@ - ThesDummy_Impl::getLocales() - throw(uno::RuntimeException) - { -- if (!SvxLinguConfigUpdate::IsNeedUpdateAll()) // configuration already update and thus lingu DLL's already loaded ? -- GetThes_Impl(); -+ GetThes_Impl(); - if (xThes.is()) - return xThes->getLocales(); - else if (!pLocaleSeq) // if not already loaded save startup time by avoiding loading them now -@@ -557,8 +190,7 @@ - ThesDummy_Impl::hasLocale( const lang::Locale& rLocale ) - throw(uno::RuntimeException) - { -- if (!SvxLinguConfigUpdate::IsNeedUpdateAll()) // configuration already update and thus lingu DLL's already loaded ? -- GetThes_Impl(); -+ GetThes_Impl(); - if (xThes.is()) - return xThes->hasLocale( rLocale ); - else if (!pLocaleSeq) // if not already loaded save startup time by avoiding loading them now -@@ -632,10 +264,6 @@ - - void SpellDummy_Impl::GetSpell_Impl() - { -- // update configuration before accessing the service -- if (SvxLinguConfigUpdate::IsNeedUpdateAll()) -- SvxLinguConfigUpdate::UpdateAll(); -- - if (!xSpell.is()) - { - uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() ); -@@ -748,10 +376,6 @@ - - void HyphDummy_Impl::GetHyph_Impl() - { -- // update configuration before accessing the service -- if (SvxLinguConfigUpdate::IsNeedUpdateAll()) -- SvxLinguConfigUpdate::UpdateAll(); -- - if (!xHyph.is()) - { - uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() ); -diff -ru libreoffice-3.5.5.3.orig/linguistic/Library_lng.mk libreoffice-3.5.5.3/linguistic/Library_lng.mk ---- libreoffice-3.5.5.3.orig/linguistic/Library_lng.mk 2012-07-13 12:23:35.568866084 +0100 -+++ libreoffice-3.5.5.3/linguistic/Library_lng.mk 2012-07-16 08:49:27.810226966 +0100 -@@ -56,6 +56,7 @@ - tl \ - ucbhelper \ - utl \ -+ vcl \ - xo \ - $(gb_STDLIBS) \ - )) -diff -ru libreoffice-3.5.5.3.orig/linguistic/prj/build.lst libreoffice-3.5.5.3/linguistic/prj/build.lst ---- libreoffice-3.5.5.3.orig/linguistic/prj/build.lst 2012-07-13 12:23:35.611866523 +0100 -+++ libreoffice-3.5.5.3/linguistic/prj/build.lst 2012-07-16 08:49:27.820227082 +0100 -@@ -1,2 +1,2 @@ --lg linguistic : svl xmloff ucbhelper comphelper ICU:icu LIBXSLT:libxslt NULL -+lg linguistic : svl vcl xmloff ucbhelper comphelper ICU:icu LIBXSLT:libxslt NULL - lg linguistic\prj nmake - all lg_prj NULL -diff -ru libreoffice-3.5.5.3.orig/linguistic/source/lngsvcmgr.cxx libreoffice-3.5.5.3/linguistic/source/lngsvcmgr.cxx ---- libreoffice-3.5.5.3.orig/linguistic/source/lngsvcmgr.cxx 2012-07-13 12:23:35.585866257 +0100 -+++ libreoffice-3.5.5.3/linguistic/source/lngsvcmgr.cxx 2012-07-16 08:49:27.829227184 +0100 -@@ -27,6 +27,7 @@ - ************************************************************************/ - - -+#include - #include - #include - #include -@@ -270,8 +271,6 @@ - } - } - -- --//IMPL_LINK( LngSvcMgrListenerHelper, TimeOut, Timer*, pTimer ) - long LngSvcMgrListenerHelper::Timeout() - { - osl::MutexGuard aGuard( GetLinguMutex() ); -@@ -483,11 +482,98 @@ - pNames[2] = "ServiceManager/HyphenatorList"; - pNames[3] = "ServiceManager/ThesaurusList"; - EnableNotification( aNames ); -+ -+ UpdateAll(); -+ -+ aUpdateTimer.SetTimeout(500); -+ aUpdateTimer.SetTimeoutHdl(LINK(this, LngSvcMgr, updateAndBroadcast)); -+ -+ // request to be notified if an extension has been added/removed -+ uno::Reference xContext(comphelper::getProcessComponentContext()); -+ -+ uno::Reference xExtensionManager( -+ deployment::ExtensionManager::get(xContext)); -+ if (xExtensionManager.is()) -+ { -+ xMB = uno::Reference(xExtensionManager, uno::UNO_QUERY_THROW); -+ -+ uno::Reference xListener(this); -+ xMB->addModifyListener( xListener ); -+ } -+} -+ -+// ::com::sun::star::util::XModifyListener -+void LngSvcMgr::modified(const lang::EventObject&) -+ throw(uno::RuntimeException) -+{ -+ osl::MutexGuard aGuard(GetLinguMutex()); -+ //assume that if an extension has been added/removed that -+ //it might be a dictionary extension, so drop our cache -+ -+ delete pAvailSpellSvcs; -+ pAvailSpellSvcs = NULL; -+ delete pAvailGrammarSvcs; -+ pAvailGrammarSvcs = NULL; -+ delete pAvailHyphSvcs; -+ pAvailHyphSvcs = NULL; -+ delete pAvailThesSvcs; -+ pAvailThesSvcs = NULL; -+ -+ //schedule in an update to execute in the main thread -+ aUpdateTimer.Start(); -+} -+ -+//run update, and inform everyone that dictionaries (may) have changed, this -+//needs to be run in the main thread because -+//utl::ConfigChangeListener_Impl::changesOccurred grabs the SolarMutex and we -+//get notified that an extension was added from an extension manager thread -+IMPL_LINK_NOARG(LngSvcMgr, updateAndBroadcast) -+{ -+ osl::MutexGuard aGuard( GetLinguMutex() ); -+ -+ UpdateAll(); -+ -+ if (pListenerHelper) -+ { -+ pListenerHelper->AddLngSvcEvt( -+ linguistic2::LinguServiceEventFlags::SPELL_CORRECT_WORDS_AGAIN | -+ linguistic2::LinguServiceEventFlags::SPELL_WRONG_WORDS_AGAIN | -+ linguistic2::LinguServiceEventFlags::PROOFREAD_AGAIN | -+ linguistic2::LinguServiceEventFlags::HYPHENATE_AGAIN ); -+ } -+ -+ return 0; - } - -+void LngSvcMgr::stopListening() -+{ -+ osl::MutexGuard aGuard(GetLinguMutex()); -+ -+ if (xMB.is()) -+ { -+ try -+ { -+ uno::Reference xListener(this); -+ xMB->removeModifyListener(xListener); -+ } -+ catch (const uno::Exception&) -+ { -+ } -+ -+ xMB.clear(); -+ } -+} -+ -+void LngSvcMgr::disposing(const lang::EventObject&) -+ throw (uno::RuntimeException) -+{ -+ stopListening(); -+} - - LngSvcMgr::~LngSvcMgr() - { -+ stopListening(); -+ - // memory for pSpellDsp, pHyphDsp, pThesDsp, pListenerHelper - // will be freed in the destructor of the respective Reference's - // xSpellDsp, xGrammarDsp, xHyphDsp, xThesDsp -@@ -498,6 +584,252 @@ - delete pAvailThesSvcs; - } - -+namespace -+{ -+ using lang::Locale; -+ using uno::Any; -+ using uno::Sequence; -+ -+ sal_Bool lcl_FindEntry( const OUString &rEntry, const Sequence< OUString > &rCfgSvcs ) -+ { -+ sal_Int32 nRes = -1; -+ sal_Int32 nEntries = rCfgSvcs.getLength(); -+ const OUString *pEntry = rCfgSvcs.getConstArray(); -+ for (sal_Int32 i = 0; i < nEntries && nRes == -1; ++i) -+ { -+ if (rEntry == pEntry[i]) -+ nRes = i; -+ } -+ return nRes != -1; -+ } -+ -+ Sequence< OUString > lcl_GetLastFoundSvcs( -+ SvtLinguConfig &rCfg, -+ const OUString &rLastFoundList , -+ const Locale &rAvailLocale ) -+ { -+ Sequence< OUString > aRes; -+ -+ OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( -+ LocaleToLanguage( rAvailLocale ) ) ); -+ -+ Sequence< OUString > aNodeNames( rCfg.GetNodeNames(rLastFoundList) ); -+ sal_Bool bFound = lcl_FindEntry( aCfgLocaleStr, aNodeNames); -+ -+ if (bFound) -+ { -+ Sequence< OUString > aNames(1); -+ OUString &rNodeName = aNames.getArray()[0]; -+ rNodeName = rLastFoundList; -+ rNodeName += OUString::valueOf( (sal_Unicode)'/' ); -+ rNodeName += aCfgLocaleStr; -+ Sequence< Any > aValues( rCfg.GetProperties( aNames ) ); -+ if (aValues.getLength()) -+ { -+ OSL_ENSURE( aValues.getLength() == 1, "unexpected length of sequence" ); -+ Sequence< OUString > aSvcImplNames; -+ if (aValues.getConstArray()[0] >>= aSvcImplNames) -+ aRes = aSvcImplNames; -+ else -+ { -+ OSL_FAIL( "type mismatch" ); -+ } -+ } -+ } -+ -+ return aRes; -+ } -+ -+ Sequence< OUString > lcl_RemoveMissingEntries( -+ const Sequence< OUString > &rCfgSvcs, -+ const Sequence< OUString > &rAvailSvcs ) -+ { -+ Sequence< OUString > aRes( rCfgSvcs.getLength() ); -+ OUString *pRes = aRes.getArray(); -+ sal_Int32 nCnt = 0; -+ -+ sal_Int32 nEntries = rCfgSvcs.getLength(); -+ const OUString *pEntry = rCfgSvcs.getConstArray(); -+ for (sal_Int32 i = 0; i < nEntries; ++i) -+ { -+ if (!pEntry[i].isEmpty() && lcl_FindEntry( pEntry[i], rAvailSvcs )) -+ pRes[ nCnt++ ] = pEntry[i]; -+ } -+ -+ aRes.realloc( nCnt ); -+ return aRes; -+ } -+ -+ Sequence< OUString > lcl_GetNewEntries( -+ const Sequence< OUString > &rLastFoundSvcs, -+ const Sequence< OUString > &rAvailSvcs ) -+ { -+ sal_Int32 nLen = rAvailSvcs.getLength(); -+ Sequence< OUString > aRes( nLen ); -+ OUString *pRes = aRes.getArray(); -+ sal_Int32 nCnt = 0; -+ -+ const OUString *pEntry = rAvailSvcs.getConstArray(); -+ for (sal_Int32 i = 0; i < nLen; ++i) -+ { -+ if (!pEntry[i].isEmpty() && !lcl_FindEntry( pEntry[i], rLastFoundSvcs )) -+ pRes[ nCnt++ ] = pEntry[i]; -+ } -+ -+ aRes.realloc( nCnt ); -+ return aRes; -+ } -+ -+ Sequence< OUString > lcl_MergeSeq( -+ const Sequence< OUString > &rCfgSvcs, -+ const Sequence< OUString > &rNewSvcs ) -+ { -+ Sequence< OUString > aRes( rCfgSvcs.getLength() + rNewSvcs.getLength() ); -+ OUString *pRes = aRes.getArray(); -+ sal_Int32 nCnt = 0; -+ -+ for (sal_Int32 k = 0; k < 2; ++k) -+ { -+ // add previously configuerd service first and append -+ // new found services at the end -+ const Sequence< OUString > &rSeq = k == 0 ? rCfgSvcs : rNewSvcs; -+ -+ sal_Int32 nLen = rSeq.getLength(); -+ const OUString *pEntry = rSeq.getConstArray(); -+ for (sal_Int32 i = 0; i < nLen; ++i) -+ { -+ if (!pEntry[i].isEmpty() && !lcl_FindEntry( pEntry[i], aRes )) -+ pRes[ nCnt++ ] = pEntry[i]; -+ } -+ } -+ -+ aRes.realloc( nCnt ); -+ return aRes; -+ } -+} -+ -+void LngSvcMgr::UpdateAll() -+{ -+ using beans::PropertyValue; -+ using lang::Locale; -+ using uno::Sequence; -+ -+ typedef OUString OUstring_t; -+ typedef Sequence< OUString > Sequence_OUString_t; -+ typedef std::map< OUstring_t, Sequence_OUString_t > list_entry_map_t; -+ -+ SvtLinguConfig aCfg; -+ -+ const int nNumServices = 4; -+ const sal_Char * apServices[nNumServices] = { SN_SPELLCHECKER, SN_GRAMMARCHECKER, SN_HYPHENATOR, SN_THESAURUS }; -+ const sal_Char * apCurLists[nNumServices] = { "ServiceManager/SpellCheckerList", "ServiceManager/GrammarCheckerList", "ServiceManager/HyphenatorList", "ServiceManager/ThesaurusList" }; -+ const sal_Char * apLastFoundLists[nNumServices] = { "ServiceManager/LastFoundSpellCheckers", "ServiceManager/LastFoundGrammarCheckers", "ServiceManager/LastFoundHyphenators", "ServiceManager/LastFoundThesauri" }; -+ -+ // usage of indices as above: 0 = spell checker, 1 = grammar checker, 2 = hyphenator, 3 = thesaurus -+ std::vector< list_entry_map_t > aLastFoundSvcs(nNumServices); -+ std::vector< list_entry_map_t > aCurSvcs(nNumServices); -+ -+ for (int k = 0; k < nNumServices; ++k) -+ { -+ OUString aService( ::rtl::OUString::createFromAscii( apServices[k] ) ); -+ OUString aActiveList( ::rtl::OUString::createFromAscii( apCurLists[k] ) ); -+ OUString aLastFoundList( ::rtl::OUString::createFromAscii( apLastFoundLists[k] ) ); -+ sal_Int32 i; -+ -+ // -+ // remove configured but not available language/services entries -+ // -+ Sequence< OUString > aNodeNames( aCfg.GetNodeNames( aActiveList ) ); // list of configured locales -+ sal_Int32 nNodeNames = aNodeNames.getLength(); -+ const OUString *pNodeName = aNodeNames.getConstArray(); -+ for (i = 0; i < nNodeNames; ++i) -+ { -+ Locale aLocale( CreateLocale( MsLangId::convertIsoStringToLanguage(pNodeName[i]) ) ); -+ Sequence< OUString > aCfgSvcs( getConfiguredServices( aService, aLocale )); -+ Sequence< OUString > aAvailSvcs( getAvailableServices( aService, aLocale )); -+ -+ aCfgSvcs = lcl_RemoveMissingEntries( aCfgSvcs, aAvailSvcs ); -+ -+ aCurSvcs[k][ pNodeName[i] ] = aCfgSvcs; -+ } -+ -+ // -+ // add new available language/service entries -+ // and -+ // set last found services to currently available ones -+ // -+ Sequence< Locale > aAvailLocales( getAvailableLocales(aService) ); -+ sal_Int32 nAvailLocales = aAvailLocales.getLength(); -+ const Locale *pAvailLocale = aAvailLocales.getConstArray(); -+ for (i = 0; i < nAvailLocales; ++i) -+ { -+ OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( -+ LocaleToLanguage( pAvailLocale[i] ) ) ); -+ -+ Sequence< OUString > aAvailSvcs( getAvailableServices( aService, pAvailLocale[i] )); -+ -+ aLastFoundSvcs[k][ aCfgLocaleStr ] = aAvailSvcs; -+ -+ Sequence< OUString > aLastSvcs( -+ lcl_GetLastFoundSvcs( aCfg, aLastFoundList , pAvailLocale[i] )); -+ Sequence< OUString > aNewSvcs = -+ lcl_GetNewEntries( aLastSvcs, aAvailSvcs ); -+ -+ Sequence< OUString > aCfgSvcs( aCurSvcs[k][ aCfgLocaleStr ] ); -+ -+ // merge services list (previously configured to be listed first). -+ aCfgSvcs = lcl_MergeSeq( aCfgSvcs, aNewSvcs ); -+ -+ aCurSvcs[k][ aCfgLocaleStr ] = aCfgSvcs; -+ } -+ } -+ -+ // -+ // write new data back to configuration -+ // -+ for (int k = 0; k < nNumServices; ++k) -+ { -+ for (int i = 0; i < 2; ++i) -+ { -+ const sal_Char *pSubNodeName = (i == 0) ? apCurLists[k] : apLastFoundLists[k]; -+ OUString aSubNodeName( ::rtl::OUString::createFromAscii(pSubNodeName) ); -+ -+ list_entry_map_t &rCurMap = (i == 0) ? aCurSvcs[k] : aLastFoundSvcs[k]; -+ list_entry_map_t::const_iterator aIt( rCurMap.begin() ); -+ sal_Int32 nVals = static_cast< sal_Int32 >( rCurMap.size() ); -+ Sequence< PropertyValue > aNewValues( nVals ); -+ PropertyValue *pNewValue = aNewValues.getArray(); -+ while (aIt != rCurMap.end()) -+ { -+ OUString aCfgEntryName( aSubNodeName ); -+ aCfgEntryName += OUString::valueOf( (sal_Unicode) '/' ); -+ aCfgEntryName += (*aIt).first; -+ -+ pNewValue->Name = aCfgEntryName; -+ pNewValue->Value <<= (*aIt).second; -+ ++pNewValue; -+ ++aIt; -+ } -+ OSL_ENSURE( pNewValue - aNewValues.getArray() == nVals, -+ "possible mismatch of sequence size and property number" ); -+ -+ { -+ // add new or replace existing entries. -+ sal_Bool bRes = aCfg.ReplaceSetProperties( aSubNodeName, aNewValues ); -+ if (!bRes) -+ { -+#if OSL_DEBUG_LEVEL > 1 -+ OSL_FAIL( "failed to set new configuration values" ); -+#endif -+ } -+ } -+ } -+ } -+ -+ //The new settings in the configuration get applied ! because we are -+ //listening to the configuration for changes of the relevant ! properties -+ //and Notify applies the new settings. -+} - - void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames ) - { -@@ -1263,32 +1595,21 @@ - - if (0 == rServiceName.compareToAscii( SN_SPELLCHECKER )) - { -- // don't used cached data here (force re-evaluation in order to have downloaded dictionaries -- // already found without the need to restart the office -- delete pAvailSpellSvcs; pAvailSpellSvcs = 0; - GetAvailableSpellSvcs_Impl(); - pInfoArray = pAvailSpellSvcs; - } - else if (0 == rServiceName.compareToAscii( SN_GRAMMARCHECKER )) - { --// disable force re-loading of the cache - re-start needed for new grammer checkers: fdo#35270 --// delete pAvailGrammarSvcs; pAvailGrammarSvcs = 0; - GetAvailableGrammarSvcs_Impl(); - pInfoArray = pAvailGrammarSvcs; - } - else if (0 == rServiceName.compareToAscii( SN_HYPHENATOR )) - { -- // don't used cached data here (force re-evaluation in order to have downloaded dictionaries -- // already found without the need to restart the office -- delete pAvailHyphSvcs; pAvailHyphSvcs = 0; - GetAvailableHyphSvcs_Impl(); - pInfoArray = pAvailHyphSvcs; - } - else if (0 == rServiceName.compareToAscii( SN_THESAURUS )) - { -- // don't used cached data here (force re-evaluation in order to have downloaded dictionaries -- // already found without the need to restart the office -- delete pAvailThesSvcs; pAvailThesSvcs = 0; - GetAvailableThesSvcs_Impl(); - pInfoArray = pAvailThesSvcs; - } -diff -ru libreoffice-3.5.5.3.orig/linguistic/source/lngsvcmgr.hxx libreoffice-3.5.5.3/linguistic/source/lngsvcmgr.hxx ---- libreoffice-3.5.5.3.orig/linguistic/source/lngsvcmgr.hxx 2012-07-13 12:23:35.598866391 +0100 -+++ libreoffice-3.5.5.3/linguistic/source/lngsvcmgr.hxx 2012-07-16 08:49:27.833227231 +0100 -@@ -30,7 +30,7 @@ - #define _LINGUISTIC_LNGSVCMGR_HXX_ - - #include // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type --#include // helper for implementations -+#include // helper for implementations - #include //OMultiTypeInterfaceContainerHelper - - -@@ -39,8 +39,10 @@ - #include - #include - #include -+#include -+#include - #include -- -+#include - #include - - #include "linguistic/misc.hxx" -@@ -65,12 +67,13 @@ - - - class LngSvcMgr : -- public cppu::WeakImplHelper4 -+ public cppu::WeakImplHelper5 - < - com::sun::star::linguistic2::XLinguServiceManager, - com::sun::star::linguistic2::XAvailableLocales, - com::sun::star::lang::XComponent, -- com::sun::star::lang::XServiceInfo -+ com::sun::star::lang::XServiceInfo, -+ com::sun::star::util::XModifyListener - >, - private utl::ConfigItem - { -@@ -90,6 +93,12 @@ - com::sun::star::uno::Reference< - ::com::sun::star::lang::XEventListener > xListenerHelper; - -+ com::sun::star::uno::Reference< -+ ::com::sun::star::util::XModifyBroadcaster> xMB; -+ -+ Timer aUpdateTimer; -+ -+ - com::sun::star::uno::Sequence< - com::sun::star::lang::Locale > aAvailSpellLocales; - com::sun::star::uno::Sequence< -@@ -140,6 +149,10 @@ - virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString > &rPropertyNames ); - virtual void Commit(); - -+ void UpdateAll(); -+ void stopListening(); -+ DECL_LINK( updateAndBroadcast, void* ); -+ - public: - LngSvcMgr(); - virtual ~LngSvcMgr(); -@@ -167,6 +180,11 @@ - virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); - -+ // XEventListener -+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& rSource ) throw(::com::sun::star::uno::RuntimeException); -+ -+ // XModifyListener -+ virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& rEvent ) throw(::com::sun::star::uno::RuntimeException); - - static inline ::rtl::OUString getImplementationName_Static(); - static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static() throw(); diff --git a/0001-Resolves-rhbz-838368-view-ignored-while-view-accepte.patch b/0001-Resolves-rhbz-838368-view-ignored-while-view-accepte.patch deleted file mode 100644 index d434c9b..0000000 --- a/0001-Resolves-rhbz-838368-view-ignored-while-view-accepte.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 4fc8af89257436b9cad70de574a166aa11ec42f1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Mon, 9 Jul 2012 12:51:16 +0100 -Subject: [PATCH] Resolves: rhbz#838368 --view ignored while -view accepted - -and our ooviewdoc script uses --view - -Change-Id: Ice708f1c72c8d29d411ba21e93cb19876af13881 ---- - desktop/source/app/cmdlineargs.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx -index af7ee26..c67db8c 100644 ---- a/desktop/source/app/cmdlineargs.cxx -+++ b/desktop/source/app/cmdlineargs.cxx -@@ -217,7 +217,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) - bStartEvent = false; - bDisplaySpec = false; - } -- else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-view" ))) -+ else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "view" ))) - { - // open in viewmode - bOpenEvent = false; -@@ -229,7 +229,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) - bStartEvent = false; - bDisplaySpec = false; - } -- else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-show" ))) -+ else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "show" ))) - { - // open in viewmode - bOpenEvent = false; --- -1.7.10.4 - diff --git a/0001-Resolves-rhbz-842292-crash-in-calling-callback-whose.patch b/0001-Resolves-rhbz-842292-crash-in-calling-callback-whose.patch deleted file mode 100644 index 3bb23ee..0000000 --- a/0001-Resolves-rhbz-842292-crash-in-calling-callback-whose.patch +++ /dev/null @@ -1,144 +0,0 @@ -From c29af1572ad15ac5199a09e5812fb8354c165329 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 22 Aug 2012 14:20:32 +0100 -Subject: [PATCH] Resolves: rhbz#842292 crash in calling callback whose - instance was deleted - -Change-Id: I4cc04d59f48b42cc105703daa9983dd7c9f7af62 ---- - .../controller/SlsDragAndDropContext.cxx | 6 +++-- - .../slidesorter/controller/SlsScrollBarManager.cxx | 8 ++++--- - .../controller/SlsSelectionFunction.cxx | 26 ++++++++++++++++++---- - .../inc/controller/SlsScrollBarManager.hxx | 2 ++ - 4 files changed, 33 insertions(+), 9 deletions(-) - -diff --git a/sd/source/ui/slidesorter/controller/SlsDragAndDropContext.cxx b/sd/source/ui/slidesorter/controller/SlsDragAndDropContext.cxx -index b8234b5..c1bf497 100644 ---- a/sd/source/ui/slidesorter/controller/SlsDragAndDropContext.cxx -+++ b/sd/source/ui/slidesorter/controller/SlsDragAndDropContext.cxx -@@ -100,11 +100,13 @@ void DragAndDropContext::UpdatePosition ( - ::boost::shared_ptr pInsertionIndicatorHandler ( - mpTargetSlideSorter->GetController().GetInsertionIndicatorHandler()); - -- if ( ! (bAllowAutoScroll -+ bool bDoAutoScroll = bAllowAutoScroll - && mpTargetSlideSorter->GetController().GetScrollBarManager().AutoScroll( - rMousePosition, - ::boost::bind( -- &DragAndDropContext::UpdatePosition, this, rMousePosition, eMode, false)))) -+ &DragAndDropContext::UpdatePosition, this, rMousePosition, eMode, false)); -+ -+ if (!bDoAutoScroll) - { - pInsertionIndicatorHandler->UpdatePosition(aMouseModelPosition, eMode); - -diff --git a/sd/source/ui/slidesorter/controller/SlsScrollBarManager.cxx b/sd/source/ui/slidesorter/controller/SlsScrollBarManager.cxx -index a45f640..4a2d808 100644 ---- a/sd/source/ui/slidesorter/controller/SlsScrollBarManager.cxx -+++ b/sd/source/ui/slidesorter/controller/SlsScrollBarManager.cxx -@@ -617,13 +617,15 @@ - } - } - -- maAutoScrollFunctor = ::boost::function(); -+ clearAutoScrollFunctor(); - mbIsAutoScrollActive = false; - return false; - } - -- -- -+void ScrollBarManager::clearAutoScrollFunctor() -+{ -+ maAutoScrollFunctor = ::boost::function(); -+} - - IMPL_LINK_NOARG(ScrollBarManager, AutoScrollTimeoutHandler) - { -diff --git a/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx b/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx -index 6217c07..16c23ad 100644 ---- a/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx -+++ b/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx -@@ -273,6 +273,7 @@ private: - SelectionMode meSelectionMode; - Point maSecondCorner; - Pointer maSavedPointer; -+ bool mbAutoScrollInstalled; - sal_Int32 mnAnchorIndex; - sal_Int32 mnSecondIndex; - view::ButtonBar::Lock maButtonBarLock; -@@ -1503,6 +1504,7 @@ MultiSelectionModeHandler::MultiSelectionModeHandler ( - meSelectionMode(SM_Normal), - maSecondCorner(rMouseModelPosition), - maSavedPointer(mrSlideSorter.GetContentWindow()->GetPointer()), -+ mbAutoScrollInstalled(false), - mnAnchorIndex(-1), - mnSecondIndex(-1), - maButtonBarLock(rSlideSorter) -@@ -1523,6 +1525,12 @@ void MultiSelectionModeHandler::Initialize(const sal_uInt32 nEventCode) - - MultiSelectionModeHandler::~MultiSelectionModeHandler (void) - { -+ if (mbAutoScrollInstalled) -+ { -+ //a call to this handler's MultiSelectionModeHandler::UpdatePosition -+ //may be still waiting to be called back -+ mrSlideSorter.GetController().GetScrollBarManager().clearAutoScrollFunctor(); -+ } - mrSlideSorter.GetContentWindow()->SetPointer(maSavedPointer); - } - -@@ -1564,6 +1572,14 @@ void MultiSelectionModeHandler::ProcessEvent ( - bool MultiSelectionModeHandler::ProcessButtonUpEvent ( - SelectionFunction::EventDescriptor& rDescriptor) - { -+ if (mbAutoScrollInstalled) -+ { -+ //a call to this handler's MultiSelectionModeHandler::UpdatePosition -+ //may be still waiting to be called back -+ mrSlideSorter.GetController().GetScrollBarManager().clearAutoScrollFunctor(); -+ mbAutoScrollInstalled = false; -+ } -+ - if (Match(rDescriptor.mnEventCode, BUTTON_UP | LEFT_BUTTON | SINGLE_CLICK)) - { - mrSelectionFunction.SwitchToNormalMode(); -@@ -1620,16 +1636,18 @@ void MultiSelectionModeHandler::UpdatePosition ( - SharedSdWindow pWindow (mrSlideSorter.GetContentWindow()); - const Point aMouseModelPosition (pWindow->PixelToLogic(rMousePosition)); - -- if ( ! (bAllowAutoScroll && mrSlideSorter.GetController().GetScrollBarManager().AutoScroll( -+ bool bDoAutoScroll = bAllowAutoScroll && mrSlideSorter.GetController().GetScrollBarManager().AutoScroll( - rMousePosition, - ::boost::bind( - &MultiSelectionModeHandler::UpdatePosition, - this, - rMousePosition, -- false)))) -- { -+ false)); -+ -+ if (!bDoAutoScroll) - UpdateModelPosition(aMouseModelPosition); -- } -+ -+ mbAutoScrollInstalled |= bDoAutoScroll; - } - - -diff --git a/sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx b/sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx -index 18807c1..41f3bde 100644 ---- a/sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx -+++ b/sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx -@@ -172,6 +172,8 @@ public: - - void StopAutoScroll (void); - -+ void clearAutoScrollFunctor(); -+ - enum Orientation { Orientation_Horizontal, Orientation_Vertical }; - enum Unit { Unit_Pixel, Unit_Slide }; - /** Scroll the slide sorter by setting the thumbs of the scroll bars and --- -1.7.11.2 - diff --git a/0001-Resolves-rhbz-846775-Clipboard-must-be-disposed-befo.patch b/0001-Resolves-rhbz-846775-Clipboard-must-be-disposed-befo.patch deleted file mode 100644 index 5cdb4be..0000000 --- a/0001-Resolves-rhbz-846775-Clipboard-must-be-disposed-befo.patch +++ /dev/null @@ -1,66 +0,0 @@ -From e99813f9372d24d3d2d734573c582d3e257cb5cc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 22 Aug 2012 11:46:50 +0100 -Subject: [PATCH] Resolves: rhbz#846775 Clipboard must be disposed before - Selection - -Change-Id: I968bc6da85cd444d504b08f85300a1fe251cdeee ---- - sd/source/ui/slidesorter/controller/SlideSorterController.cxx | 5 +++-- - sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx | 2 +- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx -index 10ca623..ae9a6e9 100644 ---- a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx -+++ b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx -@@ -110,10 +110,10 @@ SlideSorterController::SlideSorterController (SlideSorter& rSlideSorter) - mpPageSelector(), - mpFocusManager(), - mpSlotManager(), -- mpClipboard(), - mpScrollBarManager(), - mpCurrentSlideManager(), - mpSelectionManager(), -+ mpClipboard(), - mpInsertionIndicatorHandler(new InsertionIndicatorHandler(rSlideSorter)), - mpAnimator(new Animator(rSlideSorter)), - mpVisibleAreaManager(new VisibleAreaManager(rSlideSorter)), -@@ -156,9 +156,9 @@ void SlideSorterController::Init (void) - mpPageSelector.reset(new PageSelector(mrSlideSorter)); - mpFocusManager.reset(new FocusManager(mrSlideSorter)); - mpSlotManager.reset(new SlotManager(mrSlideSorter)); -- mpClipboard.reset(new Clipboard(mrSlideSorter)); - mpScrollBarManager.reset(new ScrollBarManager(mrSlideSorter)); - mpSelectionManager.reset(new SelectionManager(mrSlideSorter)); -+ mpClipboard.reset(new Clipboard(mrSlideSorter)); - - mpScrollBarManager->LateInitialization(); - -@@ -202,6 +202,7 @@ SlideSorterController::~SlideSorterController (void) - void SlideSorterController::Dispose (void) - { - mpInsertionIndicatorHandler->End(Animator::AM_Immediate); -+ mpClipboard.reset(); - mpSelectionManager.reset(); - mpAnimator->Dispose(); - } -diff --git a/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx b/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx -index f456cb4..bf3d844 100644 ---- a/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx -+++ b/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx -@@ -243,10 +243,10 @@ private: - ::boost::scoped_ptr mpPageSelector; - ::boost::scoped_ptr mpFocusManager; - ::boost::shared_ptr mpSlotManager; -- ::boost::scoped_ptr mpClipboard; - ::boost::scoped_ptr mpScrollBarManager; - mutable ::boost::shared_ptr mpCurrentSlideManager; - ::boost::shared_ptr mpSelectionManager; -+ ::boost::scoped_ptr mpClipboard; - ::boost::shared_ptr mpInsertionIndicatorHandler; - ::boost::shared_ptr mpAnimator; - ::boost::scoped_ptr mpVisibleAreaManager; --- -1.7.11.2 - diff --git a/0001-Resolves-rhbz-855541-XIOError-handler-multithread-wo.patch b/0001-Resolves-rhbz-855541-XIOError-handler-multithread-wo.patch deleted file mode 100644 index fdf22d6..0000000 --- a/0001-Resolves-rhbz-855541-XIOError-handler-multithread-wo.patch +++ /dev/null @@ -1,74 +0,0 @@ -From b0759366fc6cdda2db2f2cb4208df36c1b1fe8fc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 12 Sep 2012 13:44:09 +0100 -Subject: [PATCH] Resolves: rhbz#855541 XIOError handler multithread woes - -We have two threads using X, on an XIOError both -threads call their XIOError handlers and two -calls to exit trample all over eachother. - -Change-Id: I20defc6f84cc6ea2372a0d6c979e8078fe920a88 ---- - vcl/unx/generic/app/saldata.cxx | 6 ++++++ - vcl/unx/gtk/app/gtkdata.cxx | 14 ++++++++++++++ - 2 files changed, 20 insertions(+) - -diff --git a/vcl/unx/generic/app/saldata.cxx b/vcl/unx/generic/app/saldata.cxx -index 1fb6a7a..0596dce 100644 ---- a/vcl/unx/generic/app/saldata.cxx -+++ b/vcl/unx/generic/app/saldata.cxx -@@ -322,6 +322,12 @@ int X11SalData::XErrorHdl( Display *pDisplay, XErrorEvent *pEvent ) - - int X11SalData::XIOErrorHdl( Display * ) - { -+ if (::osl::Thread::getCurrentIdentifier() != Application::GetMainThreadIdentifier()) -+ { -+ pthread_exit(NULL); -+ return 0; -+ } -+ - /* #106197# hack: until a real shutdown procedure exists - * _exit ASAP - */ -diff --git a/vcl/unx/gtk/app/gtkdata.cxx b/vcl/unx/gtk/app/gtkdata.cxx -index 8f3151c..867883f 100644 ---- a/vcl/unx/gtk/app/gtkdata.cxx -+++ b/vcl/unx/gtk/app/gtkdata.cxx -@@ -526,6 +526,18 @@ GtkData::GtkData( SalInstance *pInstance ) - m_aDispatchCondition = osl_createCondition(); - } - -+XIOErrorHandler aOrigXIOErrorHandler = NULL; -+ -+int XIOErrorHdl(Display *pDisplay) -+{ -+ if (::osl::Thread::getCurrentIdentifier() != Application::GetMainThreadIdentifier()) -+ { -+ pthread_exit(NULL); -+ return 0; -+ } -+ return aOrigXIOErrorHandler ? aOrigXIOErrorHandler(pDisplay) : 0; -+} -+ - GtkData::~GtkData() - { - Yield( true, true ); -@@ -545,6 +557,7 @@ GtkData::~GtkData() - osl_destroyCondition( m_aDispatchCondition ); - osl_releaseMutex( m_aDispatchMutex ); - osl_destroyMutex( m_aDispatchMutex ); -+ XSetIOErrorHandler(aOrigXIOErrorHandler); - } - - void GtkData::Dispose() -@@ -664,6 +677,7 @@ void GtkData::Init() - // init gtk/gdk - gtk_init_check( &nParams, &pCmdLineAry ); - gdk_error_trap_push(); -+ aOrigXIOErrorHandler = XSetIOErrorHandler(XIOErrorHdl); - - for (i = 0; i < nParams; i++ ) - g_free( pCmdLineAry[i] ); --- -1.7.11.4 - diff --git a/0001-convert-java-XSL-transformer-into-extension.patch b/0001-convert-java-XSL-transformer-into-extension.patch deleted file mode 100644 index 1662751..0000000 --- a/0001-convert-java-XSL-transformer-into-extension.patch +++ /dev/null @@ -1,214 +0,0 @@ -From db698b1878a38c732e73bf0e5ab06368b1a5f29a Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Wed, 19 Sep 2012 12:54:24 +0200 -Subject: [PATCH 1/4] convert java XSL transformer into extension - -Change-Id: Ided6c480969764073056830722c8996e0df52285 -(cherry picked from commit 25113cd050d931b0e195fda6d6da9864a575070e) ---- - filter/Extension_xslt2_transformer.mk | 18 +++++++++++++++++ - filter/Module_filter.mk | 1 + - filter/source/xsltfilter/components.rdb | 8 ++++++++ - filter/source/xsltfilter/description-en-US.txt | 1 + - filter/source/xsltfilter/description.xml | 28 ++++++++++++++++++++++++++ - filter/source/xsltfilter/manifest.xml | 6 ++++++ - postprocess/packcomponents/makefile.mk | 1 - - scp2/InstallModule_ooo.mk | 3 --- - scp2/source/ooo/common_brand.scp | 3 --- - scp2/source/ooo/file_library_ooo.scp | 1 - - scp2/source/ooo/file_ooo.scp | 6 ------ - scp2/source/ooo/module_hidden_ooo.scp | 1 - - 12 files changed, 62 insertions(+), 15 deletions(-) - create mode 100644 filter/Extension_xslt2_transformer.mk - create mode 100644 filter/source/xsltfilter/components.rdb - create mode 100644 filter/source/xsltfilter/description-en-US.txt - create mode 100644 filter/source/xsltfilter/description.xml - create mode 100644 filter/source/xsltfilter/manifest.xml - -diff --git a/filter/Extension_xslt2_transformer.mk b/filter/Extension_xslt2_transformer.mk -new file mode 100644 -index 0000000..ab239d8 ---- /dev/null -+++ b/filter/Extension_xslt2_transformer.mk -@@ -0,0 +1,18 @@ -+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -+# -+# This file is part of the LibreOffice project. -+# -+# This Source Code Form is subject to the terms of the Mozilla Public -+# License, v. 2.0. If a copy of the MPL was not distributed with this -+# file, You can obtain one at http://mozilla.org/MPL/2.0/. -+# -+ -+$(eval $(call gb_Extension_Extension,xslt2-transformer,filter/source/xsltfilter)) -+ -+$(eval $(call gb_Extension_add_files,xslt2-transformer,,\ -+ $(call gb_Jar_get_outdir_target,saxon9) \ -+ $(call gb_Jar_get_outdir_target,XSLTFilter) \ -+ $(SRCDIR)/filter/source/xsltfilter/components.rdb \ -+)) -+ -+# vim: set noet sw=4 ts=4: -diff --git a/filter/Module_filter.mk b/filter/Module_filter.mk -index 922d4f5..9c18157 100644 ---- a/filter/Module_filter.mk -+++ b/filter/Module_filter.mk -@@ -72,6 +72,7 @@ $(eval $(call gb_Module_add_targets,filter,\ - - ifneq ($(SOLAR_JAVA),) - $(eval $(call gb_Module_add_targets,filter,\ -+ Extension_xslt2_transformer \ - Jar_XSLTFilter \ - Jar_XSLTValidate \ - )) -diff --git a/filter/source/xsltfilter/components.rdb b/filter/source/xsltfilter/components.rdb -new file mode 100644 -index 0000000..080cb7a ---- /dev/null -+++ b/filter/source/xsltfilter/components.rdb -@@ -0,0 +1,8 @@ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/filter/source/xsltfilter/description-en-US.txt b/filter/source/xsltfilter/description-en-US.txt -new file mode 100644 -index 0000000..88c8abf ---- /dev/null -+++ b/filter/source/xsltfilter/description-en-US.txt -@@ -0,0 +1 @@ -+The xslt2-transformer implements a transformer for XSLT import/export filters with support for XSLT 2.0. -diff --git a/filter/source/xsltfilter/description.xml b/filter/source/xsltfilter/description.xml -new file mode 100644 -index 0000000..ae6abcb ---- /dev/null -+++ b/filter/source/xsltfilter/description.xml -@@ -0,0 +1,28 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ The Document Foundation -+ -+ -+ -+ XSLT 2.0 transformer -+ -+ -+ -+ -+ -+ -+ -diff --git a/filter/source/xsltfilter/manifest.xml b/filter/source/xsltfilter/manifest.xml -new file mode 100644 -index 0000000..a443e65 ---- /dev/null -+++ b/filter/source/xsltfilter/manifest.xml -@@ -0,0 +1,6 @@ -+ -+ -+ -+ -+ -diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk -index 09e296b..ccb87f0 100644 ---- a/postprocess/packcomponents/makefile.mk -+++ b/postprocess/packcomponents/makefile.mk -@@ -288,7 +288,6 @@ my_components += component/framework/util/lomenubar - .IF "$(SOLAR_JAVA)" == "TRUE" - my_components += \ - component/xmerge/source/bridge/XMergeBridge \ -- component/filter/source/xsltfilter/XSLTFilter.jar \ - component/filter/source/xsltvalidate/XSLTValidate \ - component/scripting/java/ScriptFramework \ - component/scripting/java/ScriptProviderForJava \ -diff --git a/scp2/InstallModule_ooo.mk b/scp2/InstallModule_ooo.mk -index 0c49414..640ea3a 100644 ---- a/scp2/InstallModule_ooo.mk -+++ b/scp2/InstallModule_ooo.mk -@@ -158,9 +158,6 @@ $(eval $(call gb_InstallModule_add_defs,scp2/ooo,\ - $(if $(filter YES,$(SYSTEM_HSQLDB)),\ - -DHSQLDB_JAR=\""$(call gb_Helper_make_path,$(HSQLDB_JAR))"\" \ - ) \ -- $(if $(filter YES,$(SYSTEM_SAXON)),\ -- -DSAXON_JAR=\""$(call gb_Helper_make_path,$(SAXON_JAR))"\" \ -- ) \ - $(if $(filter-out YES,$(WITH_MOZILLA)),\ - -DWITHOUT_MOZILLA \ - ) \ -diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp -index 997a142..83c5c21 100644 ---- a/scp2/source/ooo/common_brand.scp -+++ b/scp2/source/ooo/common_brand.scp -@@ -1259,9 +1259,6 @@ ProfileItem gid_Brand_Profileitem_Fundamental_Ure_Java_Classpath_Urls - #ifdef SYSTEM_HSQLDB - ValueList1 = HSQLDB_JAR; - #endif --#ifdef SYSTEM_SAXON -- ValueList2 = SAXON_JAR; --#endif - End - - ProfileItem gid_Brand_Profileitem_Fundamental_Ure_Bin_Dir -diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp -index 66c50e2..f3448e5 100644 ---- a/scp2/source/ooo/file_library_ooo.scp -+++ b/scp2/source/ooo/file_library_ooo.scp -@@ -1382,7 +1382,6 @@ STD_LIB_FILE( gid_File_Lib_Textfd, textfd ) - STD_LIB_FILE( gid_File_Lib_Odfflatxml, odfflatxml ) - - #ifdef SOLAR_JAVA --STD_JAR_FILE( gid_File_Jar_Xsltfilter, XSLTFilter ) - STD_JAR_FILE( gid_File_Jar_Xsltvalidate, XSLTValidate ) - #endif - -diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp -index ebdcf25..e274fc3 100644 ---- a/scp2/source/ooo/file_ooo.scp -+++ b/scp2/source/ooo/file_ooo.scp -@@ -469,12 +469,6 @@ End - - #endif - --#ifdef SOLAR_JAVA --#ifndef SYSTEM_SAXON --STD_JAR_FILE( gid_File_Jar_Saxon, saxon9 ) --#endif --#endif -- - #ifndef AIX - #ifndef DISABLE_PYUNO - -diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp -index 76e062b..e00a38b 100644 ---- a/scp2/source/ooo/module_hidden_ooo.scp -+++ b/scp2/source/ooo/module_hidden_ooo.scp -@@ -129,7 +129,6 @@ Module gid_Module_Root_Files_3 - Default = YES; - Styles = (HIDDEN_ROOT); - Files = (gid_File_Dat_Root3, -- gid_File_Jar_Saxon, - gid_File_Jar_Unoil, - gid_File_Jar_Hsqldb, - gid_File_Jar_Hsqldb_Sdbc, --- -1.7.11.7 - diff --git a/0001-disable-failing-check.patch b/0001-disable-failing-check.patch index 0cf63df..44d2f67 100644 --- a/0001-disable-failing-check.patch +++ b/0001-disable-failing-check.patch @@ -3,10 +3,10 @@ index 6280984..ffafa6b 100644 --- a/sw/Module_sw.mk +++ b/sw/Module_sw.mk @@ -55,7 +55,6 @@ - CppunitTest_sw_filters_test \ + $(eval $(call gb_Module_add_slowcheck_targets,sw,\ CppunitTest_sw_macros_test \ CppunitTest_sw_subsequent_ooxmlexport \ -- CppunitTest_sw_subsequent_ooxmltok \ - CppunitTest_sw_subsequent_ww8tok \ +- CppunitTest_sw_subsequent_ooxmlimport \ + CppunitTest_sw_subsequent_ww8export \ + CppunitTest_sw_subsequent_ww8import \ CppunitTest_sw_subsequent_rtfexport \ - CppunitTest_sw_subsequent_rtftok \ diff --git a/0001-do-not-strip-install-set.patch b/0001-do-not-strip-install-set.patch deleted file mode 100644 index 56b18e4..0000000 --- a/0001-do-not-strip-install-set.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 5155612a6e3a63d5b29fa3da522c2544dc6c8453 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Fri, 2 Nov 2012 10:06:46 +0100 -Subject: [PATCH] do not strip install set - -Change-Id: I68fb75cc35b96ecd8e4a56ef3d5304741f8a443a ---- - instsetoo_native/util/makefile.mk | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/instsetoo_native/util/makefile.mk b/instsetoo_native/util/makefile.mk -index 7906d74..54e399d 100644 ---- a/instsetoo_native/util/makefile.mk -+++ b/instsetoo_native/util/makefile.mk -@@ -244,7 +244,7 @@ $(MAKETARGETS){$(PKGFORMAT:^".")} : $(ADDDEPS) - .ENDIF # "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)" - .ENDIF # "$(MAKETARGETS)"!="" - openoffice_%{$(PKGFORMAT:^".") .archive} : -- $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p LibreOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -strip -format $(@:e:s/.//) $(VERBOSESWITCH) -+ $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p LibreOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH) - $(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product LibreOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/`date +%Y%m%d_%H%M`_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml - - $(foreach,i,$(alllangiso) openofficedev_$i) : $$@{$(PKGFORMAT:^".")} --- -1.7.11.7 - diff --git a/0001-fiddle-system-db-test-to-link-on-RHEL-6.patch b/0001-fiddle-system-db-test-to-link-on-RHEL-6.patch deleted file mode 100644 index 57bf9fe..0000000 --- a/0001-fiddle-system-db-test-to-link-on-RHEL-6.patch +++ /dev/null @@ -1,40 +0,0 @@ -From efd2dddb7b2e7fe2a91f0da9b5f282bf1ca9cabb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 9 Nov 2012 17:11:22 +0000 -Subject: [PATCH] fiddle system-db test to link on RHEL-6 - -Change-Id: Ic256a10dd45123ae45024f4e77edd3214bc4c931 ---- - configure.ac | 16 +++++++--------- - 1 file changed, 7 insertions(+), 9 deletions(-) - -diff --git a/configure.ac b/configure.ac -index c968dc2..307c467 100644 ---- a/configure.in -+++ b/configure.in -@@ -7491,15 +7491,13 @@ if test "$with_system_db" = "yes"; then - SYSTEM_DB_CFLAGS="-DSYSTEM_DB_HEADER='<$db_header>'" - - DB_LIB= -- dnl At least on OpenBSD dbver is not appended to the library -- if test "$_os" = "OpenBSD"; then -- dbver='' -- fi -- for dash in - ''; do -- AC_CHECK_LIB(db$dash$dbver, dbopen, -- [ DB_LIB="db$dash$dbver"; DB_CPPLIB="db_cxx$dash$dbver"; break ]) -- AC_CHECK_LIB(db$dash$dbver, __db185_open, -- [ DB_LIB="db$dash$dbver"; DB_CPPLIB="db_cxx$dash$dbver"; break ]) -+ dnl At least on OpenBSD and RHEL-6 dbver is not appended to the library -+ dnl even though the headers are in a versioned dir -+ for suffix in '' '-$dbver' '$dbver' ''; do -+ AC_CHECK_LIB(db$suffix, dbopen, -+ [ DB_LIB="db$suffix"; DB_CPPLIB="db_cxx$suffix"; break ]) -+ AC_CHECK_LIB(db$suffix, __db185_open, -+ [ DB_LIB="db$suffix"; DB_CPPLIB="db_cxx$suffix"; break ]) - done - - if test -z "$DB_LIB"; then --- -1.7.11.7 - diff --git a/0001-split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch b/0001-split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch deleted file mode 100644 index 30e69ec..0000000 --- a/0001-split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch +++ /dev/null @@ -1,208 +0,0 @@ -From f1c795baf1268c2650c706fc2aec28c2a7fbaf0e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 23 Nov 2012 09:42:39 +0000 -Subject: [PATCH] split qnametostr up to try and make .o's small enough for - ppc64 - -i.e. relocation truncated to fix: R_PPC64_TOC16_DS - -while I'm at it merge the standalone header/footer files into the .xslt and -simplify the makefile. - -Change-Id: Iee0e9b5dd96868f49f1bed22fb5dc6d28c8cef81 ---- - writerfilter/CustomTarget_source.mk | 16 +++---- - writerfilter/Library_writerfilter.mk | 21 ++------- - writerfilter/source/doctok/qnametostr.xsl | 6 +++ - writerfilter/source/ooxml/qnametostr.xsl | 8 +++- - .../source/resourcemodel/qnametostrcore.cxx | 52 ++++++++++++++++++++++ - writerfilter/source/resourcemodel/qnametostrfooter | 7 --- - writerfilter/source/resourcemodel/qnametostrheader | 48 -------------------- - 7 files changed, 74 insertions(+), 84 deletions(-) - create mode 100644 writerfilter/source/resourcemodel/qnametostrcore.cxx - delete mode 100644 writerfilter/source/resourcemodel/qnametostrfooter - delete mode 100644 writerfilter/source/resourcemodel/qnametostrheader - -diff --git a/writerfilter/CustomTarget_source.mk b/writerfilter/CustomTarget_source.mk -index fc29784..5ee3041 100644 ---- a/writerfilter/CustomTarget_source.mk -+++ b/writerfilter/CustomTarget_source.mk -@@ -157,8 +157,8 @@ - - # resourcemodel - --wf_GEN_model_QNameToStr_cxx=$(writerfilter_WORK)/qnametostr.cxx --wf_GEN_ooxml_QNameToStr_tmp=$(writerfilter_WORK)/OOXMLqnameToStr.tmp -+wf_GEN_ooxml_QNameToStr_cxx=$(writerfilter_WORK)/doctok/qnametostr.cxx -+wf_GEN_ooxml_QNameToStr_cxx=$(writerfilter_WORK)/ooxml/qnametostr.cxx - wf_GEN_model_SprmCodeToStr_cxx=$(writerfilter_WORK)/sprmcodetostr.cxx - wf_GEN_model_SprmCodeToStr_tmp=$(writerfilter_WORK)/sprmcodetostr.tmp - wf_GEN_doctok_QnameToStr_tmp=$(writerfilter_WORK)/DOCTOKqnameToStr.tmp -@@ -170,18 +170,14 @@ - wf_DEP_ooxml_namespaces_txt=$(OUTDIR)/inc/oox/namespaces.txt - wf_GEN_ooxml_preprocess_xsl=$(writerfilter_WORK)/modelpreprocess.xsl - --$(wf_GEN_ooxml_QNameToStr_tmp): $(wf_SRC_ooxml_QNameToStr_xsl) $(wf_GEN_ooxml_Model_processed) -+$(wf_GEN_ooxml_QNameToStr_cxx): $(wf_SRC_ooxml_QNameToStr_xsl) $(wf_GEN_ooxml_Model_processed) $(wf_SRC_ooxml_FactoryTools_xsl) - $(call gb_Output_announce,$@,build,XSL,1) - $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(wf_SRC_ooxml_QNameToStr_xsl) $(wf_GEN_ooxml_Model_processed)) > $@ - --$(wf_GEN_doctok_QnameToStr_tmp): $(wf_SRC_doctok_QNameToStr_xsl) $(wf_SRC_doctok_Model) | $(writerfilter_WORK)/.dir -+$(wf_GEN_doctok_QnameToStr_cxx): $(wf_SRC_doctok_QNameToStr_xsl) $(wf_SRC_doctok_Model) $(wf_SRC_doctok_ResourceTools_xsl) | $(writerfilter_WORK)/.dir - $(call gb_Output_announce,$@,build,XSL,1) - $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(wf_SRC_doctok_QNameToStr_xsl) $(wf_SRC_doctok_Model)) > $@ - --$(wf_GEN_model_QNameToStr_cxx): $(wf_GEN_ooxml_QNameToStr_tmp) $(wf_GEN_doctok_QnameToStr_tmp) $(writerfilter_SRC)/resourcemodel/qnametostrheader $(writerfilter_SRC)/resourcemodel/qnametostrfooter $(wf_SRC_ooxml_FactoryTools_xsl) $(wf_SRC_doctok_ResourceTools_xsl) -- $(call gb_Output_announce,$@,build,CAT,1) -- cat $(writerfilter_SRC)/resourcemodel/qnametostrheader $(wf_GEN_ooxml_QNameToStr_tmp) $(wf_GEN_doctok_QnameToStr_tmp) $(writerfilter_SRC)/resourcemodel/qnametostrfooter > $@ -- - $(wf_GEN_model_SprmCodeToStr_tmp) : $(wf_SRC_doctok_SprmCodeToStr_xsl) $(wf_SRC_doctok_Model) | $(writerfilter_WORK)/.dir - $(call gb_Output_announce,$@,build,XSL,1) - $(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(wf_SRC_doctok_SprmCodeToStr_xsl) $(wf_SRC_doctok_Model)) > $@ -@@ -218,7 +214,8 @@ - $(wf_GEN_ooxml_FastTokens_hxx) \ - $(wf_GEN_ooxml_GperfFastToken_hxx) \ - $(wf_GEN_ooxml_NamespaceIds_hxx) \ -- $(wf_GEN_model_QNameToStr_cxx) \ -+ $(wf_GEN_doctok_QNameToStr_cxx) \ -+ $(wf_GEN_ooxml_QNameToStr_cxx) \ - $(wf_GEN_model_SprmCodeToStr_cxx) \ - $(patsubst %,$(writerfilter_WORK)/OOXMLFactory_%.hxx,$(WRITERFILTER_OOXMLNAMESPACES)) \ - $(patsubst %,$(writerfilter_WORK)/OOXMLFactory_%.cxx,$(WRITERFILTER_OOXMLNAMESPACES)) \ -diff --git a/writerfilter/Library_writerfilter.mk b/writerfilter/Library_writerfilter.mk -index 1d7c667..870732f 100644 ---- a/writerfilter/Library_writerfilter.mk -+++ b/writerfilter/Library_writerfilter.mk -@@ -170,6 +170,7 @@ $(eval $(call gb_Library_add_exception_objects,writerfilter,\ - writerfilter/source/resourcemodel/TagLogger \ - writerfilter/source/resourcemodel/WW8Analyzer \ - writerfilter/source/resourcemodel/XPathLogger \ -+ writerfilter/source/resourcemodel/qnametostrcore \ - writerfilter/source/resourcemodel/resourcemodel \ - writerfilter/source/resourcemodel/util \ - )) -@@ -180,24 +181,8 @@ $(eval $(call gb_Library_add_generated_exception_objects,writerfilter,\ - CustomTarget/writerfilter/source/OOXMLFactory_generated \ - CustomTarget/writerfilter/source/OOXMLFactory_values \ - CustomTarget/writerfilter/source/sprmcodetostr \ -+ CustomTarget/writerfilter/source/doctok/qnametostr \ -+ CustomTarget/writerfilter/source/ooxml/qnametostr \ - )) - --ifneq ($(COM)-$(OS)-$(CPUNAME),GCC-LINUX-POWERPC64) --#Apparently some compilers, according to the original .mk this was converted --#from, require this to be noopt or they fail to compile it, probably good to --#revisit that and narrow this down to where it's necessary --$(eval $(call gb_Library_add_generated_cxxobjects,writerfilter,\ -- CustomTarget/writerfilter/source/qnametostr \ -- , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \ --)) --else --#Ironically, on RHEL-6 PPC64 with no-opt the output is too large for the --#toolchain, "Error: operand out of range", but it build fine with --#normal flags --$(eval $(call gb_Library_add_generated_cxxobjects,writerfilter,\ -- CustomTarget/writerfilter/source/qnametostr \ -- , $(gb_LinkTarget_EXCEPTIONFLAGS) \ --)) --endif -- - # vim: set noet sw=4 ts=4: -diff --git a/writerfilter/source/doctok/qnametostr.xsl b/writerfilter/source/doctok/qnametostr.xsl -index a416512..e3009c9 100644 ---- a/writerfilter/source/doctok/qnametostr.xsl -+++ b/writerfilter/source/doctok/qnametostr.xsl -@@ -22,8 +22,14 @@ - - - -+#include "doctok/resourceids.hxx" -+#include "resourcemodel/QNameToString.hxx" -+ -+namespace writerfilter -+{ - - - -+} - - -diff --git a/writerfilter/source/ooxml/qnametostr.xsl b/writerfilter/source/ooxml/qnametostr.xsl -index 1dc689f..a7a7d6c 100644 ---- a/writerfilter/source/ooxml/qnametostr.xsl -+++ b/writerfilter/source/ooxml/qnametostr.xsl -@@ -113,8 +113,14 @@ void ooxmlidsToXML(::std::ostream & out) - - - -+#include "ooxml/resourceids.hxx" -+#include "resourcemodel/QNameToString.hxx" -+ -+namespace writerfilter -+{ - - -+} - - -- -\ No newline at end of file -+ -diff --git a/writerfilter/source/resourcemodel/qnametostrcore.cxx b/writerfilter/source/resourcemodel/qnametostrcore.cxx -new file mode 100644 -index 0000000..81ed0f1 ---- /dev/null -+++ b/writerfilter/source/resourcemodel/qnametostrcore.cxx -@@ -0,0 +1,52 @@ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#include -+ -+namespace writerfilter -+{ -+ -+QNameToString::Pointer_t QNameToString::pInstance; -+ -+QNameToString::Pointer_t WRITERFILTER_RESOURCEMODEL_DLLPUBLIC QNameToString::Instance() -+{ -+ if (pInstance.get() == NULL) -+ pInstance = QNameToString::Pointer_t(new QNameToString()); -+ -+ return pInstance; -+} -+ -+string WRITERFILTER_RESOURCEMODEL_DLLPUBLIC QNameToString::operator()(Id qName) -+{ -+ string sResult; -+ -+ Map::const_iterator aIt = mMap.find(qName); -+ -+ if (aIt != mMap.end()) -+ sResult = aIt->second; -+ -+ return mMap[qName]; -+} -+ -+QNameToString::QNameToString() -+{ -+ init_doctok(); -+ init_ooxml(); -+} -+ -+} diff --git a/0001-tentative-initial-attempt-at-re-work-for-new-playbin.patch b/0001-tentative-initial-attempt-at-re-work-for-new-playbin.patch deleted file mode 100644 index dbbd7fe..0000000 --- a/0001-tentative-initial-attempt-at-re-work-for-new-playbin.patch +++ /dev/null @@ -1,193 +0,0 @@ -From 90b9271771927a72dc27e71957376dd67c8f6d43 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= -Date: Sun, 29 Jul 2012 19:14:05 +0200 -Subject: [PATCH 1/7] tentative initial attempt at re-work for new playbin - -Change-Id: I257bdda8469be624d0cbeab21cff2c2e1c94cc6f -Signed-off-by: David Tardon ---- - avmedia/source/gstreamer/gstplayer.cxx | 94 ++++++++++++++++++++++++++-------- - 1 file changed, 74 insertions(+), 20 deletions(-) - -diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx -index 863d1e8..d95342a 100644 ---- a/avmedia/source/gstreamer/gstplayer.cxx -+++ b/avmedia/source/gstreamer/gstplayer.cxx -@@ -38,7 +38,9 @@ - #include "gstframegrabber.hxx" - #include "gstwindow.hxx" - --#include -+#ifndef AVMEDIA_GST_0_10 -+# include -+#endif - - #define AVMEDIA_GST_PLAYER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.Player_GStreamer" - #define AVMEDIA_GST_PLAYER_SERVICENAME "com.sun.star.media.Player_GStreamer" -@@ -96,7 +98,7 @@ Player::~Player() - if( mpPlaybin ) - { - gst_element_set_state( mpPlaybin, GST_STATE_NULL ); -- gst_object_unref( GST_OBJECT( mpPlaybin ) ); -+ g_object_unref( G_OBJECT( mpPlaybin ) ); - - mpPlaybin = NULL; - } -@@ -110,7 +112,7 @@ Player::~Player() - - // ------------------------------------------------------------------------------ - --static gboolean gst_pipeline_bus_callback( GstBus *, GstMessage *message, gpointer data ) -+static gboolean pipeline_bus_callback( GstBus *, GstMessage *message, gpointer data ) - { - Player* pPlayer = static_cast(data); - -@@ -119,7 +121,7 @@ static gboolean gst_pipeline_bus_callback( GstBus *, GstMessage *message, gpoint - return TRUE; - } - --static GstBusSyncReply gst_pipeline_bus_sync_handler( GstBus *, GstMessage * message, gpointer data ) -+static GstBusSyncReply pipeline_bus_sync_handler( GstBus *, GstMessage * message, gpointer data ) - { - Player* pPlayer = static_cast(data); - -@@ -144,7 +146,7 @@ void Player::processMessage( GstMessage *message ) - if( newstate == GST_STATE_PAUSED && - pendingstate == GST_STATE_VOID_PENDING && - mpXOverlay ) -- gst_x_overlay_expose( mpXOverlay ); -+ gst_video_overlay_expose( mpXOverlay ); - - if (mbPlayPending) - mbPlayPending = ((newstate == GST_STATE_READY) || (newstate == GST_STATE_PAUSED)); -@@ -154,6 +156,26 @@ void Player::processMessage( GstMessage *message ) - } - } - -+static gboolean wrap_element_query_position (GstElement *element, GstFormat format, gint64 *cur) -+{ -+#ifdef AVMEDIA_GST_0_10 -+ GstFormat my_format = format; -+ return gst_element_query_position( mpPlaybin, &my_format, cur) && my_format == format && *cur > 0L; -+#else -+ return gst_element_query_position( element, format, cur ); -+#endif -+} -+ -+static gboolean wrap_element_query_duration (GstElement *element, GstFormat format, gint64 *duration) -+{ -+#ifdef AVMEDIA_GST_0_10 -+ GstFormat my_format = format; -+ return gst_element_query_duration( mpPlaybin, &my_format, duration) && my_format == format && *duration > 0L; -+#else -+ return gst_element_query_duration( element, format, duration ); -+#endif -+} -+ - GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - { - DBG( "%p processSyncMessage: %s", this, GST_MESSAGE_TYPE_NAME( message ) ); -@@ -169,17 +191,17 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - } - #endif - -- if (message->structure) { -- if( !strcmp( gst_structure_get_name( message->structure ), "prepare-xwindow-id" ) && mnWindowID != 0 ) { -- if( mpXOverlay ) -- g_object_unref( G_OBJECT ( mpXOverlay ) ); -- mpXOverlay = GST_X_OVERLAY( GST_MESSAGE_SRC( message ) ); -- g_object_ref( G_OBJECT ( mpXOverlay ) ); -- gst_x_overlay_set_xwindow_id( mpXOverlay, mnWindowID ); -- return GST_BUS_DROP; -- } -+ if (gst_message_has_name (message, "prepare-xwindow-id") && mnWindowID != 0 ) -+ { -+ if( mpXOverlay ) -+ g_object_unref( G_OBJECT ( mpXOverlay ) ); -+ mpXOverlay = GST_VIDEO_OVERLAY( GST_MESSAGE_SRC( message ) ); -+ g_object_ref( G_OBJECT ( mpXOverlay ) ); -+ gst_video_overlay_set_window_handle( mpXOverlay, mnWindowID ); -+ return GST_BUS_DROP; - } - -+#ifdef AVMEDIA_GST_0_10 - if( GST_MESSAGE_TYPE( message ) == GST_MESSAGE_STATE_CHANGED ) { - if( message->src == GST_OBJECT( mpPlaybin ) ) { - GstState newstate, pendingstate; -@@ -193,10 +215,8 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - DBG( "%p change to paused received", this ); - - if( mnDuration == 0) { -- GstFormat format = GST_FORMAT_TIME; - gint64 gst_duration = 0L; -- -- if( gst_element_query_duration( mpPlaybin, &format, &gst_duration) && format == GST_FORMAT_TIME && gst_duration > 0L ) -+ if( wrap_element_query_duration( mpPlaybin, GST_FORMAT_TIME, &gst_duration) ) - mnDuration = gst_duration; - } - -@@ -234,6 +254,40 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - } - } - } -+#else -+ // We get to use the exciting new playbin2 ! (now known as playbin) -+ if( GST_MESSAGE_TYPE( message ) == GST_MESSAGE_ASYNC_DONE ) { -+ if( mnDuration == 0) { -+ gint64 gst_duration = 0L; -+ if( wrap_element_query_duration( mpPlaybin, GST_FORMAT_TIME, &gst_duration) ) -+ mnDuration = gst_duration; -+ } -+ if( mnWidth == 0 ) { -+ GstPad *pad = NULL; -+ GstCaps *caps; -+ -+ g_signal_emit_by_name( mpPlaybin, "get-video-pad", 0, &pad ); -+ -+ if( pad ) { -+ int w = 0, h = 0; -+ -+ caps = gst_pad_get_current_caps( pad ); -+ -+ if( gst_structure_get( gst_caps_get_structure (caps, 0), -+ "width", G_TYPE_INT, &w, -+ "height", G_TYPE_INT, &h, -+ NULL ) ) { -+ mnWidth = w; -+ mnHeight = h; -+ -+ DBG( "queried size: %d x %d", mnWidth, mnHeight ); -+ -+ maSizeCondition.set(); -+ } -+ gst_caps_unref( caps ); -+ } -+ } -+#endif - } else if( GST_MESSAGE_TYPE( message ) == GST_MESSAGE_ERROR ) { - if( mnWidth == 0 ) { - // an error occurred, set condition so that OOo thread doesn't wait for us -@@ -265,9 +319,9 @@ void Player::preparePlaybin( const ::rtl::OUString& rURL, bool bFakeVideo ) - g_object_set( G_OBJECT( mpPlaybin ), "uri", ascURL.getStr() , NULL ); - - pBus = gst_element_get_bus( mpPlaybin ); -- gst_bus_add_watch( pBus, gst_pipeline_bus_callback, this ); -+ gst_bus_add_watch( pBus, pipeline_bus_callback, this ); - DBG( "%p set sync handler", this ); -- gst_bus_set_sync_handler( pBus, gst_pipeline_bus_sync_handler, this ); -+ gst_bus_set_sync_handler( pBus, pipeline_bus_sync_handler, this ); - g_object_unref( pBus ); - } - -@@ -387,7 +441,7 @@ double SAL_CALL Player::getMediaTime( ) - // get current position in the stream - GstFormat format = GST_FORMAT_TIME; - gint64 gst_position; -- if( gst_element_query_position( mpPlaybin, &format, &gst_position ) && format == GST_FORMAT_TIME && gst_position > 0L ) -+ if( wrap_element_query_position( mpPlaybin, GST_FORMAT_TIME, &gst_position ) ) - position = gst_position / 1E9; - } - --- -1.7.11.4 - diff --git a/0002-gstreamer-make-gstreamer-1.0-and-0.10-dual-compile.patch b/0002-gstreamer-make-gstreamer-1.0-and-0.10-dual-compile.patch deleted file mode 100644 index fd18fc9..0000000 --- a/0002-gstreamer-make-gstreamer-1.0-and-0.10-dual-compile.patch +++ /dev/null @@ -1,832 +0,0 @@ -From a3f96fb4ddcc657f4448089eff07531735f23979 Mon Sep 17 00:00:00 2001 -From: Michael Meeks -Date: Mon, 30 Jul 2012 15:15:58 +0200 -Subject: [PATCH 2/7] gstreamer: make gstreamer 1.0 and 0.10 dual compile - -Add fallback activation of an _OLD media component to the core. -Compile both a 0.10 and 1.0 version of the gstreamer component - -Conflicts: - distro-configs/LibreOfficeAndroidX86.conf - distro-configs/LibreOfficeLinux.conf - -Change-Id: I91f65d05391cb2d7e02f9cff18f96178a128705O1 ---- - Repository.mk | 1 + - avmedia/Library_avmediagst.mk | 8 +-- - avmedia/Module_avmedia.mk | 6 ++ - .../gstreamer/avmediagstreamer_0_10.component | 6 ++ - avmedia/source/gstreamer/gst_0_10.cxx | 15 +++++ - avmedia/source/gstreamer/gstplayer.cxx | 69 ++++++++++++++-------- - avmedia/source/gstreamer/gstplayer.hxx | 4 +- - avmedia/source/gstreamer/gstuno.cxx | 17 ++++-- - avmedia/source/inc/mediamisc.hxx | 11 +--- - avmedia/source/viewer/mediawindowbase_impl.cxx | 21 ++++++- - config_host.mk.in | 3 + - configure.in | 41 +++++++++++-- - distro-configs/LibreOfficeAndroid.conf | 1 + - distro-configs/LibreOfficeLinux.conf | 2 +- - distro-configs/LibreOfficeOpenBSD.conf | 2 +- - distro-configs/LibreOfficeiOS.conf | 1 + - distro-configs/OxygenOfficeLinux.conf | 2 +- - postprocess/packcomponents/makefile.mk | 4 ++ - scp2/InstallModule_ooo.mk | 3 + - scp2/source/ooo/file_library_ooo.scp | 6 +- - scp2/source/ooo/module_hidden_ooo.scp | 19 +++--- - svx/source/sdr/contact/viewcontact.cxx | 2 +- - 22 files changed, 174 insertions(+), 70 deletions(-) - create mode 100644 avmedia/source/gstreamer/avmediagstreamer_0_10.component - create mode 100644 avmedia/source/gstreamer/gst_0_10.cxx - -diff --git a/Repository.mk b/Repository.mk -index 67ba527..881029e 100644 ---- a/Repository.mk -+++ b/Repository.mk -@@ -417,6 +417,7 @@ endif - - $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \ - avmediagst \ -+ avmediagst_0_10 \ - avmediawin \ - cached1 \ - collator_data \ -diff --git a/avmedia/Library_avmediagst.mk b/avmedia/Library_avmediagst.mk -index b6323bb..b7eeacd 100644 ---- a/avmedia/Library_avmediagst.mk -+++ b/avmedia/Library_avmediagst.mk -@@ -33,8 +33,9 @@ $(eval $(call gb_Library_set_componentfile,avmediagst,avmedia/source/gstreamer/a - $(eval $(call gb_Library_set_include,avmediagst,\ - $$(INCLUDE) \ - -I$(SRCDIR)/avmedia/source/inc \ -- $(shell pkg-config --cflags gstreamer-0.10, gstreamer-plugins-base-0.10) \ -+ $(GSTREAMER_CFLAGS) \ - )) -+$(eval $(call gb_Library_add_libs,avmediagst,$(GSTREAMER_LIBS))) - - $(eval $(call gb_Library_use_api,avmediagst,\ - udkapi \ -@@ -57,11 +58,6 @@ $(eval $(call gb_Library_use_libraries,avmediagst,\ - $(gb_STDLIBS) \ - )) - --$(eval $(call gb_Library_add_libs,avmediagst,\ -- $(shell pkg-config --libs gstreamer-0.10, gstreamer-plugins-base-0.10) \ -- -lgstinterfaces-0.10 \ --)) -- - $(eval $(call gb_Library_add_exception_objects,avmediagst,\ - avmedia/source/gstreamer/gstmanager \ - avmedia/source/gstreamer/gstplayer \ -diff --git a/avmedia/Module_avmedia.mk b/avmedia/Module_avmedia.mk -index 729c24f..ef50457 100644 ---- a/avmedia/Module_avmedia.mk -+++ b/avmedia/Module_avmedia.mk -@@ -40,6 +40,12 @@ $(eval $(call gb_Module_add_targets,avmedia,\ - )) - endif - -+ifeq ($(ENABLE_GSTREAMER_0_10),TRUE) -+$(eval $(call gb_Module_add_targets,avmedia,\ -+ Library_avmediagst_0_10 \ -+)) -+endif -+ - ifeq ($(GUIBASE),aqua) - $(eval $(call gb_Module_add_targets,avmedia,\ - Library_avmediaQuickTime \ -diff --git a/avmedia/source/gstreamer/avmediagstreamer_0_10.component b/avmedia/source/gstreamer/avmediagstreamer_0_10.component -new file mode 100644 -index 0000000..3fc61d7 ---- /dev/null -+++ b/avmedia/source/gstreamer/avmediagstreamer_0_10.component -@@ -0,0 +1,6 @@ -+ -+ -+ -+ -+ -+ -diff --git a/avmedia/source/gstreamer/gst_0_10.cxx b/avmedia/source/gstreamer/gst_0_10.cxx -new file mode 100644 -index 0000000..a0624c4 ---- /dev/null -+++ b/avmedia/source/gstreamer/gst_0_10.cxx -@@ -0,0 +1,15 @@ -+#define AVMEDIA_GST_0_10 -+ -+// forward compatibility goodness -+#include -+#define gst_video_overlay_expose(a) gst_x_overlay_expose(GST_X_OVERLAY (a)) -+#define gst_video_overlay_set_window_handle(a,b) gst_x_overlay_set_xwindow_id( \ -+ reinterpret_cast(a), (b) ) -+#define GST_VIDEO_OVERLAY(a) reinterpret_cast(a) -+ -+// #define GstVideoOverlay GstXOverlay -+ -+#include "gstmanager.cxx" -+#include "gstplayer.cxx" -+#include "gstuno.cxx" -+#include "gstwindow.cxx" -diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx -index d95342a..28e5d34 100644 ---- a/avmedia/source/gstreamer/gstplayer.cxx -+++ b/avmedia/source/gstreamer/gstplayer.cxx -@@ -33,7 +33,6 @@ - #include - #include - -- - #include "gstplayer.hxx" - #include "gstframegrabber.hxx" - #include "gstwindow.hxx" -@@ -45,8 +44,14 @@ - #define AVMEDIA_GST_PLAYER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.Player_GStreamer" - #define AVMEDIA_GST_PLAYER_SERVICENAME "com.sun.star.media.Player_GStreamer" - --#if OSL_DEBUG_LEVEL > 2 --#define DBG OSL_TRACE -+#ifdef AVMEDIA_GST_0_10 -+# define AVVERSION "gst 0.10: " -+#else -+# define AVVERSION "gst 1.0: " -+#endif -+ -+#if 1 //OSL_DEBUG_LEVEL > 2 -+#define DBG(...) do { fprintf (stderr, "%s", AVVERSION); fprintf (stderr, __VA_ARGS__); fprintf (stderr, "\n"); } while (0); - #else - #define DBG(...) - #endif -@@ -83,15 +88,22 @@ Player::Player( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) : - - mbInitialized = gst_init_check( &argc, &argv, &pError ); - -+ DBG( "%p Player::Player", this ); -+ - if (pError != NULL) -+ { - // TODO: thow an exception? -+ DBG( "%p Player::Player error '%s'", this, pError->message ); - g_error_free (pError); -+ } - } - - // ------------------------------------------------------------------------------ - - Player::~Player() - { -+ DBG( "%p Player::~Player", this ); -+ - // Release the elements and pipeline - if( mbInitialized ) - { -@@ -160,7 +172,7 @@ static gboolean wrap_element_query_position (GstElement *element, GstFormat form - { - #ifdef AVMEDIA_GST_0_10 - GstFormat my_format = format; -- return gst_element_query_position( mpPlaybin, &my_format, cur) && my_format == format && *cur > 0L; -+ return gst_element_query_position( element, &my_format, cur) && my_format == format && *cur > 0L; - #else - return gst_element_query_position( element, format, cur ); - #endif -@@ -170,7 +182,7 @@ static gboolean wrap_element_query_duration (GstElement *element, GstFormat form - { - #ifdef AVMEDIA_GST_0_10 - GstFormat my_format = format; -- return gst_element_query_duration( mpPlaybin, &my_format, duration) && my_format == format && *duration > 0L; -+ return gst_element_query_duration( element, &my_format, duration) && my_format == format && *duration > 0L; - #else - return gst_element_query_duration( element, format, duration ); - #endif -@@ -178,21 +190,27 @@ static gboolean wrap_element_query_duration (GstElement *element, GstFormat form - - GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - { -- DBG( "%p processSyncMessage: %s", this, GST_MESSAGE_TYPE_NAME( message ) ); -+// DBG( "%p processSyncMessage has handle: %s", this, GST_MESSAGE_TYPE_NAME( message ) ); - --#if OSL_DEBUG_LEVEL > 0 -+#if 1 // OSL_DEBUG_LEVEL > 0 - if ( GST_MESSAGE_TYPE( message ) == GST_MESSAGE_ERROR ) - { - GError* error; - gchar* error_debug; - - gst_message_parse_error( message, &error, &error_debug ); -- OSL_TRACE("gstreamer error: '%s' debug: '%s'", error->message, error_debug); -+ fprintf(stderr, "gstreamer error: '%s' debug: '%s'", error->message, error_debug); - } - #endif - -- if (gst_message_has_name (message, "prepare-xwindow-id") && mnWindowID != 0 ) -+#ifdef AVMEDIA_GST_0_10 -+ if (message->structure && -+ !strcmp( gst_structure_get_name( message->structure ), "prepare-xwindow-id" ) && mnWindowID != 0 ) -+#else -+ if (gst_message_has_name (message, "prepare-window-handle") && mnWindowID != 0 ) -+#endif - { -+ DBG( "%p processSyncMessage has handle: %s", this, GST_MESSAGE_TYPE_NAME( message ) ); - if( mpXOverlay ) - g_object_unref( G_OBJECT ( mpXOverlay ) ); - mpXOverlay = GST_VIDEO_OVERLAY( GST_MESSAGE_SRC( message ) ); -@@ -208,7 +226,8 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - - gst_message_parse_state_changed (message, NULL, &newstate, &pendingstate); - -- DBG( "%p state change received, new state %d", this, newstate ); -+ DBG( "%p state change received, new state %d pending %d", this, -+ (int)newstate, (int)pendingstate ); - if( newstate == GST_STATE_PAUSED && - pendingstate == GST_STATE_VOID_PENDING ) { - -@@ -280,7 +299,7 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - mnWidth = w; - mnHeight = h; - -- DBG( "queried size: %d x %d", mnWidth, mnHeight ); -+ fprintf (stderr, "queried size: %d x %d", mnWidth, mnHeight ); - - maSizeCondition.set(); - } -@@ -289,6 +308,7 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - } - #endif - } else if( GST_MESSAGE_TYPE( message ) == GST_MESSAGE_ERROR ) { -+ fprintf (stderr, "Error !\n"); - if( mnWidth == 0 ) { - // an error occurred, set condition so that OOo thread doesn't wait for us - maSizeCondition.set(); -@@ -353,7 +373,7 @@ bool Player::create( const ::rtl::OUString& rURL ) - - // ------------------------------------------------------------------------------ - --void SAL_CALL Player::start( ) -+void SAL_CALL Player::start() - throw (uno::RuntimeException) - { - // set the pipeline state to READY and run the loop -@@ -366,7 +386,7 @@ void SAL_CALL Player::start( ) - - // ------------------------------------------------------------------------------ - --void SAL_CALL Player::stop( ) -+void SAL_CALL Player::stop() - throw (uno::RuntimeException) - { - // set the pipeline in PAUSED STATE -@@ -397,7 +417,7 @@ sal_Bool SAL_CALL Player::isPlaying() - - // ------------------------------------------------------------------------------ - --double SAL_CALL Player::getDuration( ) -+double SAL_CALL Player::getDuration() - throw (uno::RuntimeException) - { - // slideshow checks for non-zero duration, so cheat here -@@ -432,14 +452,13 @@ void SAL_CALL Player::setMediaTime( double fTime ) - - // ------------------------------------------------------------------------------ - --double SAL_CALL Player::getMediaTime( ) -+double SAL_CALL Player::getMediaTime() - throw (uno::RuntimeException) - { - double position = 0.0; - - if( mpPlaybin ) { - // get current position in the stream -- GstFormat format = GST_FORMAT_TIME; - gint64 gst_position; - if( wrap_element_query_position( mpPlaybin, GST_FORMAT_TIME, &gst_position ) ) - position = gst_position / 1E9; -@@ -450,7 +469,7 @@ double SAL_CALL Player::getMediaTime( ) - - // ------------------------------------------------------------------------------ - --double SAL_CALL Player::getRate( ) -+double SAL_CALL Player::getRate() - throw (uno::RuntimeException) - { - double rate = 0.0; -@@ -475,7 +494,7 @@ void SAL_CALL Player::setPlaybackLoop( sal_Bool bSet ) - - // ------------------------------------------------------------------------------ - --sal_Bool SAL_CALL Player::isPlaybackLoop( ) -+sal_Bool SAL_CALL Player::isPlaybackLoop() - throw (uno::RuntimeException) - { - // TODO check how to do with GST -@@ -506,7 +525,7 @@ void SAL_CALL Player::setMute( sal_Bool bSet ) - - // ------------------------------------------------------------------------------ - --sal_Bool SAL_CALL Player::isMute( ) -+sal_Bool SAL_CALL Player::isMute() - throw (uno::RuntimeException) - { - return mbMuted; -@@ -530,7 +549,7 @@ void SAL_CALL Player::setVolumeDB( sal_Int16 nVolumeDB ) - - // ------------------------------------------------------------------------------ - --sal_Int16 SAL_CALL Player::getVolumeDB( ) -+sal_Int16 SAL_CALL Player::getVolumeDB() - throw (uno::RuntimeException) - { - sal_Int16 nVolumeDB(0); -@@ -548,7 +567,7 @@ sal_Int16 SAL_CALL Player::getVolumeDB( ) - - // ------------------------------------------------------------------------------ - --awt::Size SAL_CALL Player::getPreferredPlayerWindowSize( ) -+awt::Size SAL_CALL Player::getPreferredPlayerWindowSize() - throw (uno::RuntimeException) - { - awt::Size aSize( 0, 0 ); -@@ -556,7 +575,7 @@ awt::Size SAL_CALL Player::getPreferredPlayerWindowSize( ) - DBG( "%p Player::getPreferredPlayerWindowSize, member %d x %d", this, mnWidth, mnHeight ); - - TimeValue aTimeout = { 10, 0 }; --#if OSL_DEBUG_LEVEL > 2 -+#if 1 // OSL_DEBUG_LEVEL > 2 - osl::Condition::Result aResult = - #endif - maSizeCondition.wait( &aTimeout ); -@@ -612,7 +631,7 @@ uno::Reference< ::media::XPlayerWindow > SAL_CALL Player::createPlayerWindow( co - - // ------------------------------------------------------------------------------ - --uno::Reference< media::XFrameGrabber > SAL_CALL Player::createFrameGrabber( ) -+uno::Reference< media::XFrameGrabber > SAL_CALL Player::createFrameGrabber() - throw (uno::RuntimeException) - { - uno::Reference< media::XFrameGrabber > xRet; -@@ -622,7 +641,7 @@ uno::Reference< media::XFrameGrabber > SAL_CALL Player::createFrameGrabber( ) - - // ------------------------------------------------------------------------------ - --::rtl::OUString SAL_CALL Player::getImplementationName( ) -+::rtl::OUString SAL_CALL Player::getImplementationName() - throw (uno::RuntimeException) - { - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_GST_PLAYER_IMPLEMENTATIONNAME ) ); -@@ -638,7 +657,7 @@ sal_Bool SAL_CALL Player::supportsService( const ::rtl::OUString& ServiceName ) - - // ------------------------------------------------------------------------------ - --uno::Sequence< ::rtl::OUString > SAL_CALL Player::getSupportedServiceNames( ) -+uno::Sequence< ::rtl::OUString > SAL_CALL Player::getSupportedServiceNames() - throw (uno::RuntimeException) - { - uno::Sequence< ::rtl::OUString > aRet(1); -diff --git a/avmedia/source/gstreamer/gstplayer.hxx b/avmedia/source/gstreamer/gstplayer.hxx -index b5d7d83..65c3e46 100644 ---- a/avmedia/source/gstreamer/gstplayer.hxx -+++ b/avmedia/source/gstreamer/gstplayer.hxx -@@ -34,7 +34,7 @@ - - #include "com/sun/star/media/XPlayer.hdl" - --typedef struct _GstXOverlay GstXOverlay; -+typedef struct _GstVideoOverlay GstVideoOverlay; - - namespace avmedia { namespace gstreamer { - -@@ -95,7 +95,7 @@ private: - sal_Bool mbInitialized; - - long mnWindowID; -- GstXOverlay* mpXOverlay; -+ GstVideoOverlay* mpXOverlay; - gint64 mnDuration; - int mnWidth; - int mnHeight; -diff --git a/avmedia/source/gstreamer/gstuno.cxx b/avmedia/source/gstreamer/gstuno.cxx -index 8095353..affb8eb2 100644 ---- a/avmedia/source/gstreamer/gstuno.cxx -+++ b/avmedia/source/gstreamer/gstuno.cxx -@@ -26,6 +26,7 @@ - * - ************************************************************************/ - -+#include "mediamisc.hxx" - #include "gstmanager.hxx" - - using namespace ::com::sun::star; -@@ -34,6 +35,14 @@ using namespace ::com::sun::star; - // - factory methods - - // ------------------- - -+#ifdef AVMEDIA_GST_0_10 -+# define IMPL_NAME "com.sun.star.comp.media.Manager_GStreamer_0_10" -+# define SERVICE_NAME AVMEDIA_MANAGER_SERVICE_NAME_OLD // "com.sun.star.comp.avmedia.Manager_GStreamer_0_10" -+#else -+# define IMPL_NAME "com.sun.star.comp.media.Manager_GStreamer" -+# define SERVICE_NAME AVMEDIA_MANAGER_SERVICE_NAME // "com.sun.star.comp.avmedia.Manager_GStreamer" -+#endif -+ - static uno::Reference< uno::XInterface > SAL_CALL create_MediaPlayer( const uno::Reference< lang::XMultiServiceFactory >& rxFact ) - { - return uno::Reference< uno::XInterface >( *new ::avmedia::gstreamer::Manager( rxFact ) ); -@@ -44,14 +53,12 @@ extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_C - uno::Reference< lang::XSingleServiceFactory > xFactory; - void* pRet = 0; - -- if( rtl_str_compare( pImplName, "com.sun.star.comp.media.Manager_GStreamer" ) == 0 ) -+ if( rtl_str_compare( pImplName, IMPL_NAME ) == 0 ) - { -- const ::rtl::OUString aServiceName( ::rtl::OUString("com.sun.star.media.Manager_GStreamer" ) ); -- -+ const ::rtl::OUString aServiceName( SERVICE_NAME ); - xFactory = uno::Reference< lang::XSingleServiceFactory >( ::cppu::createSingleFactory( - reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ), -- ::rtl::OUString("com.sun.star.comp.media.Manager_GStreamer" ), -- create_MediaPlayer, uno::Sequence< ::rtl::OUString >( &aServiceName, 1 ) ) ); -+ IMPL_NAME, create_MediaPlayer, uno::Sequence< ::rtl::OUString >( &aServiceName, 1 ) ) ); - } - - if( xFactory.is() ) -diff --git a/avmedia/source/inc/mediamisc.hxx b/avmedia/source/inc/mediamisc.hxx -index 8f129bb..f042629 100644 ---- a/avmedia/source/inc/mediamisc.hxx -+++ b/avmedia/source/inc/mediamisc.hxx -@@ -30,23 +30,14 @@ class ResMgr; - - #define AVMEDIA_RESID( nId ) ResId( nId, * ::avmedia::GetResMgr() ) - --#ifdef GSTREAMER --#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.comp.avmedia.Manager_GStreamer" --#else - #ifdef WNT -- - #define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.comp.avmedia.Manager_DirectX" -- - #else - #ifdef QUARTZ -- - #define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.comp.avmedia.Manager_QuickTime" -- - #else -- -+#define AVMEDIA_MANAGER_SERVICE_NAME_OLD "com.sun.star.comp.avmedia.Manager_GStreamer_0_10" - #define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.comp.avmedia.Manager_GStreamer" -- --#endif - #endif - #endif - -diff --git a/avmedia/source/viewer/mediawindowbase_impl.cxx b/avmedia/source/viewer/mediawindowbase_impl.cxx -index 79e0bdf..fd2ffba 100644 ---- a/avmedia/source/viewer/mediawindowbase_impl.cxx -+++ b/avmedia/source/viewer/mediawindowbase_impl.cxx -@@ -72,10 +72,25 @@ uno::Reference< media::XPlayer > MediaWindowBaseImpl::createPlayer( const ::rtl: - { - try - { -+ uno::Reference< ::com::sun::star::media::XManager > xManager; - -- uno::Reference< ::com::sun::star::media::XManager > xManager( -- xFactory->createInstance( ::rtl::OUString( AVMEDIA_MANAGER_SERVICE_NAME ) ), -- uno::UNO_QUERY ); -+ try { -+ xManager = uno::Reference< ::com::sun::star::media::XManager >( -+ xFactory->createInstance( AVMEDIA_MANAGER_SERVICE_NAME ), -+ uno::UNO_QUERY ); -+ } catch ( const uno::Exception &e ) { -+ } -+ -+// a fallback path just for gstreamer which has -+// two significant versions deployed at once ... -+#ifdef AVMEDIA_MANAGER_SERVICE_NAME_OLD -+ if( !xManager.is() ) -+ { -+ xManager = uno::Reference< ::com::sun::star::media::XManager >( -+ xFactory->createInstance( AVMEDIA_MANAGER_SERVICE_NAME_OLD ), -+ uno::UNO_QUERY ); -+ } -+#endif - - if( xManager.is() ) - { -diff --git a/config_host.mk.in b/config_host.mk.in -index 4fb80d1..42355cc 100644 ---- a/config_host.mk.in -+++ b/config_host.mk.in -@@ -112,6 +112,7 @@ export ENABLE_GIO=@ENABLE_GIO@ - export ENABLE_GNOMEVFS=@ENABLE_GNOMEVFS@ - export ENABLE_GRAPHITE=@ENABLE_GRAPHITE@ - export ENABLE_GSTREAMER=@ENABLE_GSTREAMER@ -+export ENABLE_GSTREAMER_0_10=@ENABLE_GSTREAMER_0_10@ - export ENABLE_GTK3=@ENABLE_GTK3@ - export ENABLE_GTK=@ENABLE_GTK@ - export ENABLE_GTK_PRINT=@ENABLE_GTK_PRINT@ -@@ -182,6 +183,8 @@ export GRAPHITE_LIBS=@GRAPHITE_LIBS@ - @x_Cygwin@ export GREP=@WIN_GREP@ - export GSTREAMER_CFLAGS=@GSTREAMER_CFLAGS@ - export GSTREAMER_LIBS=@GSTREAMER_LIBS@ -+export GSTREAMER_0_10_CFLAGS=@GSTREAMER_0_10_CFLAGS@ -+export GSTREAMER_0_10_LIBS=@GSTREAMER_0_10_LIBS@ - export GTHREAD_CFLAGS=@GTHREAD_CFLAGS@ - export GTHREAD_LIBS=@GTHREAD_LIBS@ - export GTK3_CFLAGS=@GTK3_CFLAGS@ -diff --git a/configure.in b/configure.in -index 651963a..46b9892 100644 ---- a/configure.in -+++ b/configure.in -@@ -171,6 +171,7 @@ case "$host_os" in - solaris*) - test_gtk=yes - build_gstreamer=yes -+ build_gstreamer_0_10=yes - test_tde=yes - test_kde=yes - test_freetype=yes -@@ -200,6 +201,7 @@ solaris*) - linux-gnu*|k*bsd*-gnu*) - test_gtk=yes - build_gstreamer=yes -+ build_gstreamer_0_10=yes - test_tde=yes - test_kde=yes - test_kde4=yes -@@ -287,6 +289,7 @@ darwin*) # Mac OS X or iOS - freebsd*) - test_gtk=yes - build_gstreamer=yes -+ build_gstreamer_0_10=yes - test_tde=yes - test_kde=yes - test_kde4=yes -@@ -316,6 +319,7 @@ freebsd*) - *netbsd*) - test_gtk=yes - build_gstreamer=yes -+ build_gstreamer_0_10=yes - test_tde=no - test_kde=no - test_kde4=yes -@@ -344,6 +348,7 @@ openbsd*) - dragonfly*) - test_gtk=yes - build_gstreamer=yes -+ build_gstreamer_0_10=yes - test_tde=yes - test_kde=yes - test_kde4=yes -@@ -354,6 +359,7 @@ dragonfly*) - - linux-androideabi*) - build_gstreamer=no -+ build_gstreamer_0_10=no - test_cups=no - test_fontconfig=no - test_freetype=no -@@ -855,9 +861,14 @@ AC_ARG_ENABLE(randr-link, - ,enable_randr_link=yes) - - AC_ARG_ENABLE(gstreamer, -- AS_HELP_STRING([--disable-gstreamer], -+ AS_HELP_STRING([--enable-gstreamer], -+ [Enable building with the new gstreamer 1.0 avmedia backend.]), -+,enable_gstreamer=no) -+ -+AC_ARG_ENABLE(gstreamer-0-10, -+ AS_HELP_STRING([--disable-gstreamer-0-10], - [Disable building the gstreamer avmedia backend.]), --,enable_gstreamer=yes) -+,enable_gstreamer_0_10=yes) - - AC_ARG_ENABLE(neon, - AS_HELP_STRING([--disable-neon], -@@ -3703,6 +3714,7 @@ if test "$enable_headless" = "yes"; then - test_fontconfig=yes - test_gtk=no - build_gstreamer=no -+ build_gstreamer_0_10=no - test_tde=no - test_kde=no - test_kde4=no -@@ -8936,20 +8948,39 @@ dnl =================================================================== - - ENABLE_GSTREAMER="" - --if test "$build_gstreamer" = "yes"; then -+if test "$build_gstreamer" = "yes"; then - - AC_MSG_CHECKING([whether to enable the GStreamer avmedia backend]) - if test "x$enable_gstreamer" != "xno"; then - ENABLE_GSTREAMER="TRUE" - AC_MSG_RESULT([yes]) -- PKG_CHECK_MODULES( GSTREAMER, gstreamer-0.10 gstreamer-plugins-base-0.10 ) -+ PKG_CHECK_MODULES( GSTREAMER, gstreamer-1.0 gstreamer-plugins-base-1.0 gstreamer-video-1.0 ) - else - AC_MSG_RESULT([no]) - fi - fi -- -+AC_SUBST(GSTREAMER_CFLAGS) -+AC_SUBST(GSTREAMER_LIBS) - AC_SUBST(ENABLE_GSTREAMER) - -+ -+ENABLE_GSTREAMER_0_10="" -+if test "$build_gstreamer_0_10" = "yes"; then -+ -+ AC_MSG_CHECKING([whether to enable the GStreamer avmedia backend]) -+ if test "x$enable_gstreamer_0_10" != "xno"; then -+ ENABLE_GSTREAMER_0_10="TRUE" -+ AC_MSG_RESULT([yes]) -+ PKG_CHECK_MODULES( GSTREAMER_0_10, gstreamer-0.10 gstreamer-plugins-base-0.10 ) -+ else -+ AC_MSG_RESULT([no]) -+ fi -+fi -+ -+AC_SUBST(GSTREAMER_0_10_CFLAGS) -+AC_SUBST(GSTREAMER_0_10_LIBS) -+AC_SUBST(ENABLE_GSTREAMER_0_10) -+ - dnl =================================================================== - dnl Check whether the OpenGL libraries are available - dnl =================================================================== -diff --git a/distro-configs/LibreOfficeAndroid.conf b/distro-configs/LibreOfficeAndroid.conf -index d789052..8acf153 100644 ---- a/distro-configs/LibreOfficeAndroid.conf -+++ b/distro-configs/LibreOfficeAndroid.conf -@@ -6,6 +6,7 @@ - --disable-ext-report-builder - --disable-gconf - --disable-gnome-vfs -+--disable-gstreamer-0-10 - --disable-gstreamer - --disable-lockdown - --disable-mozilla -diff --git a/distro-configs/LibreOfficeLinux.conf b/distro-configs/LibreOfficeLinux.conf -index 21342e4..8e0ff3e 100644 ---- a/distro-configs/LibreOfficeLinux.conf -+++ b/distro-configs/LibreOfficeLinux.conf -@@ -26,7 +26,7 @@ - --enable-odk - --enable-lockdown - --enable-kde ----enable-gstreamer -+--enable-gstreamer-0-10 - --enable-evolution2 - --enable-gnome-vfs - --enable-ext-wiki-publisher -diff --git a/distro-configs/LibreOfficeOpenBSD.conf b/distro-configs/LibreOfficeOpenBSD.conf -index f55550a..b03a03f 100644 ---- a/distro-configs/LibreOfficeOpenBSD.conf -+++ b/distro-configs/LibreOfficeOpenBSD.conf -@@ -11,7 +11,7 @@ - --disable-randr-link - --disable-unix-qstart-libpng - --enable-binfilter ----enable-gstreamer -+--enable-gstreamer-0-10 - --enable-lockdown - --enable-ext-presenter-minimizer - --enable-ext-pdfimport -diff --git a/distro-configs/LibreOfficeiOS.conf b/distro-configs/LibreOfficeiOS.conf -index 705cb63..67afb67 100644 ---- a/distro-configs/LibreOfficeiOS.conf -+++ b/distro-configs/LibreOfficeiOS.conf -@@ -7,6 +7,7 @@ - --disable-extension-integration - --disable-gconf - --disable-gnome-vfs -+--disable-gstreamer-0-10 - --disable-gstreamer - --disable-librsvg - --disable-lockdown -diff --git a/distro-configs/OxygenOfficeLinux.conf b/distro-configs/OxygenOfficeLinux.conf -index a9203f2..62cd1d6 100644 ---- a/distro-configs/OxygenOfficeLinux.conf -+++ b/distro-configs/OxygenOfficeLinux.conf -@@ -73,7 +73,7 @@ - --without-junit - --with-helppack-integration - --enable-odk ----enable-gstreamer -+--enable-gstreamer-0-10 - --enable-graphite - --enable-dependency-tracking - --enable-python=internal -diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk -index 09e296b..572d9c2 100644 ---- a/postprocess/packcomponents/makefile.mk -+++ b/postprocess/packcomponents/makefile.mk -@@ -403,6 +403,10 @@ my_components += component/connectivity/source/drivers/evoab2/evoab - my_components += component/avmedia/source/gstreamer/avmediagstreamer - .END - -+.IF "$(OS)" != "WNT" && "$(ENABLE_GSTREAMER_0_10)" != "" -+my_components += component/avmedia/source/gstreamer/avmediagstreamer_0_10 -+.END -+ - .INCLUDE: target.mk - - ALLTAR : $(MISC)/services.rdb -diff --git a/scp2/InstallModule_ooo.mk b/scp2/InstallModule_ooo.mk -index 0c49414..b6b2a0e 100644 ---- a/scp2/InstallModule_ooo.mk -+++ b/scp2/InstallModule_ooo.mk -@@ -152,6 +152,9 @@ $(eval $(call gb_InstallModule_add_defs,scp2/ooo,\ - $(if $(filter TRUE,$(ENABLE_GSTREAMER)),\ - -DGSTREAMER \ - ) \ -+ $(if $(filter TRUE,$(ENABLE_GSTREAMER_0_10)),\ -+ -DGSTREAMER_0_10 \ -+ ) \ - $(if $(WINDOWS_SDK_HOME),\ - -DHAVE_WINDOWS_SDK \ - ) \ -diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp -index 66c50e2..40466b3 100644 ---- a/scp2/source/ooo/file_library_ooo.scp -+++ b/scp2/source/ooo/file_library_ooo.scp -@@ -1415,7 +1415,11 @@ STD_LIB_FILE( gid_File_Lib_AVMedia, avmedia ) - - #ifdef GSTREAMER - SPECIAL_LIB_FILE_PATCH( gid_File_Lib_AVMediaGStreamer, avmediagst ) --#elif defined WNT -+#endif -+#ifdef GSTREAMER_0_10 -+SPECIAL_LIB_FILE_PATCH( gid_File_Lib_AVMediaGStreamer_0_10, avmediagst_0_10 ) -+#endif -+#if defined WNT - #ifdef ENABLE_DIRECTX - SPECIAL_LIB_FILE( gid_File_Lib_AVMediaWin, avmediawin ) - #endif -diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp -index 76e062b..ef4c59b 100644 ---- a/scp2/source/ooo/module_hidden_ooo.scp -+++ b/scp2/source/ooo/module_hidden_ooo.scp -@@ -203,15 +203,15 @@ Module gid_Module_Root_Files_4 - gid_File_Lib_Charttools, - gid_File_Lib_Ctl, - gid_File_Lib_Cui, -- gid_File_Lib_Sdbt, -- gid_File_Lib_Dbmm, -+ gid_File_Lib_Sdbt, -+ gid_File_Lib_Dbmm, - gid_File_Lib_Dba, - gid_File_Lib_Dbase2, - gid_File_Lib_Dbaxml, - gid_File_Lib_Dbt, - gid_File_Lib_Dbfile, - gid_File_Lib_Drawinglayer, -- gid_File_Lib_Editeng, -+ gid_File_Lib_Editeng, - gid_File_Lib_Flat, - gid_File_Lib_For, - gid_File_Lib_Forui, -@@ -250,15 +250,16 @@ Module gid_Module_Root_Files_4 - gid_File_Lib_Svx, - gid_File_Lib_AVMedia, - gid_File_Lib_AVMediaWin, -- gid_File_Lib_AVMediaGStreamer, -+ gid_File_Lib_AVMediaGStreamer, -+ gid_File_Lib_AVMediaGStreamer_0_10, - gid_File_Lib_BaseGfx, -- gid_File_Lib_Merged, -+ gid_File_Lib_Merged, - gid_File_Lib_Sysdtrans, - gid_File_Lib_Sw, - gid_File_Lib_TextConversionDlgs, - gid_File_Lib_Tk, -- gid_File_Lib_Acc, -- gid_File_Lib_BaseBmp, -+ gid_File_Lib_Acc, -+ gid_File_Lib_BaseBmp, - gid_File_Lib_Tools, - gid_File_Lib_Utl, - gid_File_Lib_Uui, -@@ -284,8 +285,8 @@ Module gid_Module_Root_Files_4 - gid_File_Lib_Fwm, - gid_File_Lib_Lprx2, - gid_File_Lib_Lprxw, -- gid_File_Lib_Libtextcat, -- gid_File_Lib_Guesslang, -+ gid_File_Lib_Libtextcat, -+ gid_File_Lib_Guesslang, - gid_File_Lib_Tfu); - End - -diff --git a/svx/source/sdr/contact/viewcontact.cxx b/svx/source/sdr/contact/viewcontact.cxx -index 3f1f986..b4dec00 100644 ---- a/svx/source/sdr/contact/viewcontact.cxx -+++ b/svx/source/sdr/contact/viewcontact.cxx -@@ -269,7 +269,7 @@ namespace sdr - - drawinglayer::primitive2d::Primitive2DSequence ViewContact::createViewIndependentPrimitive2DSequence() const - { -- // This is the default impelemtation and should never be called (see header). If this is called, -+ // This is the default implementation and should never be called (see header). If this is called, - // someone implemented a ViewContact (VC) visualisation object without defining the visualisation by - // providing a seqence of primitives -> which cannot be correct. - // Since we have no access to any known model data here, the default implementation creates a yellow placeholder --- -1.7.11.4 - diff --git a/0002-rework-selection-of-transformer-for-an-XSLT-filter.patch b/0002-rework-selection-of-transformer-for-an-XSLT-filter.patch deleted file mode 100644 index 3ddfbf4..0000000 --- a/0002-rework-selection-of-transformer-for-an-XSLT-filter.patch +++ /dev/null @@ -1,730 +0,0 @@ -From f05438dda954965651f332b2f7ee97dbdd951b98 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Thu, 20 Sep 2012 10:28:56 +0200 -Subject: [PATCH 2/4] rework selection of transformer for an XSLT filter - -(cherry picked from commit ca0ea73a4ab104031a16b5bac7a9bb6e57c77ba0) - -Conflicts: - filter/source/xsltdialog/xmlfiltersettingsdialog.cxx - -Change-Id: I765762f11813c6b612416a8db2707bf94114c876 ---- - filter/source/xsltdialog/typedetectionexport.cxx | 2 +- - filter/source/xsltdialog/typedetectionimport.cxx | 2 +- - filter/source/xsltdialog/xmlfiltercommon.hxx | 2 +- - filter/source/xsltdialog/xmlfilterhelpids.hrc | 3 +- - .../source/xsltdialog/xmlfiltersettingsdialog.cxx | 19 ++---- - filter/source/xsltdialog/xmlfiltertabpagexslt.cxx | 20 ++----- - filter/source/xsltdialog/xmlfiltertabpagexslt.hrc | 5 +- - filter/source/xsltdialog/xmlfiltertabpagexslt.hxx | 5 +- - filter/source/xsltdialog/xmlfiltertabpagexslt.src | 23 +++---- - filter/source/xsltfilter/LibXSLTTransformer.cxx | 4 +- - filter/source/xsltfilter/LibXSLTTransformer.hxx | 18 +++--- - filter/source/xsltfilter/XSLTFilter.cxx | 70 +++++++++++++++------- - .../sun/star/comp/xsltfilter/XSLTransformer.java | 13 ++-- - filter/source/xsltfilter/components.rdb | 4 +- - filter/source/xsltfilter/xsltfilter.component | 2 +- - offapi/UnoApi_offapi.mk | 9 +++ - offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl | 30 ++++++++++ - offapi/com/sun/star/xml/xslt/XSLTTransformer.idl | 32 ++++++++++ - offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl | 36 +++++++++++ - 19 files changed, 204 insertions(+), 95 deletions(-) - create mode 100644 offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl - create mode 100644 offapi/com/sun/star/xml/xslt/XSLTTransformer.idl - create mode 100644 offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl - -diff --git a/filter/source/xsltdialog/typedetectionexport.cxx b/filter/source/xsltdialog/typedetectionexport.cxx -index a01b462..83bf7fa 100644 ---- a/filter/source/xsltdialog/typedetectionexport.cxx -+++ b/filter/source/xsltdialog/typedetectionexport.cxx -@@ -192,7 +192,7 @@ void TypeDetectionExporter::doExport( Reference< XOutputStream > xOS, const XML - sValue += sComma; - sValue += sXSLTFilterService; - sValue += sDelim; -- sValue += pFilter->maXSLTTransformerImpl; -+ sValue += OUString::valueOf( pFilter->mbNeedsXSLT2 ); - sValue += sDelim; - - const application_info_impl* pAppInfo = getApplicationInfo( pFilter->maExportService ); -diff --git a/filter/source/xsltdialog/typedetectionimport.cxx b/filter/source/xsltdialog/typedetectionimport.cxx -index 3d3b937..50428e7 100644 ---- a/filter/source/xsltdialog/typedetectionimport.cxx -+++ b/filter/source/xsltdialog/typedetectionimport.cxx -@@ -180,7 +180,7 @@ filter_info_impl* TypeDetectionImporter::createFilterForNode( Node * pNode ) - - OUString aAdapterService( getSubdata( 0, aDelim, aFilterUserData ) ); - //Import/ExportService -- pFilter->maXSLTTransformerImpl = getSubdata( 1, aDelim, aFilterUserData ); -+ pFilter->mbNeedsXSLT2 = getSubdata( 1, aDelim, aFilterUserData ).toBoolean(); - pFilter->maImportService = getSubdata( 2, aDelim, aFilterUserData ); - pFilter->maExportService = getSubdata( 3, aDelim, aFilterUserData ); - pFilter->maImportXSLT = getSubdata( 4, aDelim, aFilterUserData ); -diff --git a/filter/source/xsltdialog/xmlfiltercommon.hxx b/filter/source/xsltdialog/xmlfiltercommon.hxx -index cdb767e..41be2c7 100644 ---- a/filter/source/xsltdialog/xmlfiltercommon.hxx -+++ b/filter/source/xsltdialog/xmlfiltercommon.hxx -@@ -77,7 +77,7 @@ public: - - sal_Bool mbReadonly; - -- rtl::OUString maXSLTTransformerImpl; -+ sal_Bool mbNeedsXSLT2; - - filter_info_impl(); - filter_info_impl( const filter_info_impl& rInfo ); -diff --git a/filter/source/xsltdialog/xmlfilterhelpids.hrc b/filter/source/xsltdialog/xmlfilterhelpids.hrc -index 558a274..a22fa52 100644 ---- a/filter/source/xsltdialog/xmlfilterhelpids.hrc -+++ b/filter/source/xsltdialog/xmlfilterhelpids.hrc -@@ -50,8 +50,7 @@ - #define HID_XML_FILTER_DOCTYPE "FILTER_HID_XML_FILTER_DOCTYPE" - #define HID_XML_FILTER_DTD "FILTER_HID_XML_FILTER_DTD" - #define HID_XML_FILTER_DTD_BROWSE "FILTER_HID_XML_FILTER_DTD_BROWSE" --#define HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J "FILTER_HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J" --#define HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT "FILTER_HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT" -+#define HID_XML_FILTER_NEEDS_XSLT2 "FILTER_HID_XML_FILTER_NEEDS_XSLT2" - #define HID_XML_FILTER_EXPORT_XSLT "FILTER_HID_XML_FILTER_EXPORT_XSLT" - #define HID_XML_FILTER_EXPORT_XSLT_BROWSE "FILTER_HID_XML_FILTER_EXPORT_XSLT_BROWSE" - #define HID_XML_FILTER_IMPORT_XSLT "FILTER_HID_XML_FILTER_IMPORT_XSLT" -diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx -index 558ac0d..a54b520 100644 ---- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx -+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx -@@ -1164,7 +1164,7 @@ void XMLFilterSettingsDialog::initFilterList() - continue; - - // get filter information from userdata -- pTempFilter->maXSLTTransformerImpl = aUserData[1]; -+ pTempFilter->mbNeedsXSLT2 = aUserData[1].toBoolean(); - pTempFilter->maImportService = aUserData[2]; - pTempFilter->maExportService = aUserData[3]; - pTempFilter->maImportXSLT = aUserData[4]; -@@ -1590,7 +1590,8 @@ filter_info_impl::filter_info_impl() - : maFlags(0x00080040), - maFileFormatVersion(0), - mnDocumentIconID(0), -- mbReadonly(sal_False) -+ mbReadonly(sal_False), -+ mbNeedsXSLT2(sal_False) - { - } - -@@ -1615,7 +1616,7 @@ filter_info_impl::filter_info_impl( const filter_info_impl& rInfo ) : - maFileFormatVersion( rInfo.maFileFormatVersion ), - mnDocumentIconID( rInfo.mnDocumentIconID ), - mbReadonly( rInfo.mbReadonly ), -- maXSLTTransformerImpl( rInfo.maXSLTTransformerImpl ) -+ mbNeedsXSLT2( rInfo.mbNeedsXSLT2 ) - { - } - -@@ -1639,7 +1640,7 @@ int filter_info_impl::operator==( const filter_info_impl& r ) const - maImportTemplate != r.maImportTemplate || - maFlags != r.maFlags || - maFileFormatVersion != r.maFileFormatVersion || -- maXSLTTransformerImpl != r.maXSLTTransformerImpl -+ mbNeedsXSLT2 != r.mbNeedsXSLT2 - ) - return false; - -@@ -1653,15 +1654,7 @@ Sequence< OUString > filter_info_impl::getFilterUserData() const - Sequence< OUString > aUserData(8); - - aUserData[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.documentconversion.XSLTFilter" ) ); -- /* -- const application_info_impl* pInfo = getApplicationInfo( maDocumentService ); -- if( pInfo ) -- { -- aUserData[2] = pInfo->maXMLImporter; -- aUserData[3] = pInfo->maXMLExporter; -- } -- */ -- aUserData[1] = maXSLTTransformerImpl; -+ aUserData[1] = OUString::valueOf( mbNeedsXSLT2 ); - aUserData[2] = maImportService; - aUserData[3] = maExportService; - aUserData[4] = maImportXSLT; -diff --git a/filter/source/xsltdialog/xmlfiltertabpagexslt.cxx b/filter/source/xsltdialog/xmlfiltertabpagexslt.cxx -index dc1a4c8..b4cae16 100644 ---- a/filter/source/xsltdialog/xmlfiltertabpagexslt.cxx -+++ b/filter/source/xsltdialog/xmlfiltertabpagexslt.cxx -@@ -68,9 +68,8 @@ XMLFilterTabPageXSLT::XMLFilterTabPageXSLT( Window* pParent, ResMgr& rResMgr, co - maEDImportTemplate( this, ResId( ED_XML_IMPORT_TEMPLATE, rResMgr ), INET_PROT_FILE ), - maPBImportTemplate( this, ResId( PB_XML_IMPORT_TEMPLATE_BROWSE, rResMgr ) ), - -- maFTTransformationService( this, ResId (FT_XML_TRANSFORM_SERVICE, rResMgr ) ), -- maRBTransformationServiceLibXSLT( this, ResId (RB_XML_TRANSFORM_SERVICE_LIBXSLT, rResMgr ) ), -- maRBTransformationServiceSaxonJ( this, ResId (RB_XML_TRANSFORM_SERVICE_SAXON_J, rResMgr ) ), -+ maFTNeedsXSLT2( this, ResId (FT_XML_NEEDS_XSLT2, rResMgr ) ), -+ maCBNeedsXSLT2( this, ResId (CB_XML_NEEDS_XSLT2, rResMgr ) ), - - sHTTPSchema( RTL_CONSTASCII_USTRINGPARAM( "http://" ) ), - sSHTTPSchema( RTL_CONSTASCII_USTRINGPARAM( "shttp://" ) ), -@@ -100,8 +99,7 @@ XMLFilterTabPageXSLT::XMLFilterTabPageXSLT( Window* pParent, ResMgr& rResMgr, co - maEDExportXSLT.SetHelpId( HID_XML_FILTER_EXPORT_XSLT ); - maEDImportXSLT.SetHelpId( HID_XML_FILTER_IMPORT_XSLT ); - maEDImportTemplate.SetHelpId( HID_XML_FILTER_IMPORT_TEMPLATE ); -- maRBTransformationServiceLibXSLT.SetHelpId( HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT ); -- maRBTransformationServiceSaxonJ.SetHelpId( HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J ); -+ maCBNeedsXSLT2.SetHelpId( HID_XML_FILTER_NEEDS_XSLT2 ); - } - - XMLFilterTabPageXSLT::~XMLFilterTabPageXSLT() -@@ -117,10 +115,7 @@ bool XMLFilterTabPageXSLT::FillInfo( filter_info_impl* pInfo ) - pInfo->maExportXSLT = GetURL( maEDExportXSLT ); - pInfo->maImportXSLT = GetURL( maEDImportXSLT ); - pInfo->maImportTemplate = GetURL( maEDImportTemplate ); -- pInfo->maXSLTTransformerImpl -- = maRBTransformationServiceSaxonJ.IsChecked() ? OUString( -- RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.JAXTHelper" )) -- : OUString(RTL_CONSTASCII_USTRINGPARAM( "" )); -+ pInfo->mbNeedsXSLT2 = maCBNeedsXSLT2.IsChecked(); - } - - return true; -@@ -136,12 +131,7 @@ void XMLFilterTabPageXSLT::SetInfo(const filter_info_impl* pInfo) - SetURL( maEDExportXSLT, pInfo->maExportXSLT ); - SetURL( maEDImportXSLT, pInfo->maImportXSLT ); - SetURL( maEDImportTemplate, pInfo->maImportTemplate ); -- if (pInfo->maXSLTTransformerImpl.equals(OUString( -- RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.JAXTHelper" )))) { -- maRBTransformationServiceSaxonJ.Check(); -- } else { -- maRBTransformationServiceLibXSLT.Check(); -- } -+ maCBNeedsXSLT2.Check( pInfo->mbNeedsXSLT2 ); - } - } - -diff --git a/filter/source/xsltdialog/xmlfiltertabpagexslt.hrc b/filter/source/xsltdialog/xmlfiltertabpagexslt.hrc -index 12a9d46..bdd39e7 100644 ---- a/filter/source/xsltdialog/xmlfiltertabpagexslt.hrc -+++ b/filter/source/xsltdialog/xmlfiltertabpagexslt.hrc -@@ -44,8 +44,7 @@ - #define FT_XML_IMPORT_TEMPLATE 12 - #define ED_XML_IMPORT_TEMPLATE 13 - #define PB_XML_IMPORT_TEMPLATE_BROWSE 14 --#define FT_XML_TRANSFORM_SERVICE 15 --#define RB_XML_TRANSFORM_SERVICE_LIBXSLT 16 --#define RB_XML_TRANSFORM_SERVICE_SAXON_J 17 -+#define FT_XML_NEEDS_XSLT2 15 -+#define CB_XML_NEEDS_XSLT2 16 - - #endif -diff --git a/filter/source/xsltdialog/xmlfiltertabpagexslt.hxx b/filter/source/xsltdialog/xmlfiltertabpagexslt.hxx -index a9d8062..a0375b7 100644 ---- a/filter/source/xsltdialog/xmlfiltertabpagexslt.hxx -+++ b/filter/source/xsltdialog/xmlfiltertabpagexslt.hxx -@@ -69,9 +69,8 @@ public: - SvtURLBox maEDImportTemplate; - PushButton maPBImportTemplate; - -- FixedText maFTTransformationService; -- RadioButton maRBTransformationServiceLibXSLT; -- RadioButton maRBTransformationServiceSaxonJ; -+ FixedText maFTNeedsXSLT2; -+ CheckBox maCBNeedsXSLT2; - - private: - void SetURL( SvtURLBox& rURLBox, const rtl::OUString& rURL ); -diff --git a/filter/source/xsltdialog/xmlfiltertabpagexslt.src b/filter/source/xsltdialog/xmlfiltertabpagexslt.src -index 2d0391c..96b83f7 100644 ---- a/filter/source/xsltdialog/xmlfiltertabpagexslt.src -+++ b/filter/source/xsltdialog/xmlfiltertabpagexslt.src -@@ -175,27 +175,18 @@ TabPage RID_XML_FILTER_TABPAGE_XSLT - - // XSLT transformation service -------------------------------------------------------- - -- FixedText FT_XML_TRANSFORM_SERVICE -+ CheckBox CB_XML_NEEDS_XSLT2 - { -+ HelpID = HID_XML_FILTER_NEEDS_XSLT2; - Pos = MAP_APPFONT ( FIRST_ROW_X , FIRST_ROW_Y + 5 * ROW_HEIGHT + 5 * SPACING + FIXED_TEXT_OFFSET + EDIT_OFFSET ) ; -- Size = MAP_APPFONT ( FIRST_ROW_WIDTH , 8 ) ; -- Text [ en-US ] = "XSLT Transformation Service"; -- }; -- -- RadioButton RB_XML_TRANSFORM_SERVICE_LIBXSLT -- { -- HelpID = HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT; -- Pos = MAP_APPFONT ( SECOND_ROW_X , SECOND_ROW_Y + 5 * ROW_HEIGHT + 5 * SPACING + EDIT_OFFSET ) ; -- Size = MAP_APPFONT ( SECOND_ROW_WIDTH - SPACING - BROWSE_WIDTH, 12 ) ; -- Text[ en-US ] = "~Builtin (LibXSLT)"; -+ Size = MAP_APPFONT ( 12, 12 ) ; - }; - -- RadioButton RB_XML_TRANSFORM_SERVICE_SAXON_J -+ FixedText FT_XML_NEEDS_XSLT2 - { -- HelpID = HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J; -- Pos = MAP_APPFONT ( SECOND_ROW_X , SECOND_ROW_Y + 6 * ROW_HEIGHT + 6 * SPACING + EDIT_OFFSET ) ; -- Size = MAP_APPFONT ( SECOND_ROW_WIDTH - SPACING - BROWSE_WIDTH, 12 ) ; -- Text[ en-US ] = "~Saxon/J"; -+ Pos = MAP_APPFONT ( FIRST_ROW_X + 3 * SPACING , SECOND_ROW_Y + 5 * ROW_HEIGHT + 5 * SPACING + FIXED_TEXT_OFFSET + EDIT_OFFSET ) ; -+ Size = MAP_APPFONT ( 2 * FIRST_ROW_WIDTH , 8 ) ; // guess width -+ Text [ en-US ] = "The filter needs XSLT 2.0 processor"; - }; - - }; -diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx b/filter/source/xsltfilter/LibXSLTTransformer.cxx -index ff57fc1..ab03316 100644 ---- a/filter/source/xsltfilter/LibXSLTTransformer.cxx -+++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx -@@ -488,9 +488,11 @@ namespace XSLT - } - - void -- LibXSLTTransformer::initialize(const Sequence& params) -+ LibXSLTTransformer::initialize(const Sequence& args) - throw (RuntimeException) - { -+ Sequence params; -+ args[0] >>= params; - xmlSubstituteEntitiesDefault(0); - m_parameters.clear(); - for (int i = 0; i < params.getLength(); i++) -diff --git a/filter/source/xsltfilter/LibXSLTTransformer.hxx b/filter/source/xsltfilter/LibXSLTTransformer.hxx -index 444cb2f..a7c71a6 100644 ---- a/filter/source/xsltfilter/LibXSLTTransformer.hxx -+++ b/filter/source/xsltfilter/LibXSLTTransformer.hxx -@@ -42,7 +42,7 @@ - - #include - #include --#include -+#include - #include - - #include -@@ -51,14 +51,12 @@ - - #include - -+#include - #include - #include --#include --#include --#include - #include --#include - #include -+#include - - using namespace ::rtl; - using namespace ::cppu; -@@ -66,7 +64,6 @@ using namespace ::osl; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::io; - using namespace ::com::sun::star::uno; --using namespace ::com::sun::star::lang; - - using ::std::list; - using ::std::map; -@@ -90,8 +87,7 @@ namespace XSLT - * - * See Reader below. - */ -- class LibXSLTTransformer : public WeakImplHelper4 -+ class LibXSLTTransformer : public WeakImplHelper1 - { - private: - static const char* const PARAM_SOURCE_URL; -@@ -102,7 +98,7 @@ namespace XSLT - static const char* const PARAM_DOCTYPE_PUBLIC; - - // the UNO ServiceFactory -- com::sun::star::uno::Reference m_rServiceFactory; -+ com::sun::star::uno::Reference m_rServiceFactory; - - com::sun::star::uno::Reference m_rInputStream; - -@@ -129,7 +125,7 @@ namespace XSLT - public: - - // ctor... -- LibXSLTTransformer(const com::sun::star::uno::Reference &r); -+ LibXSLTTransformer(const com::sun::star::uno::Reference &r); - - // XActiveDataSink - virtual void SAL_CALL -@@ -169,7 +165,7 @@ namespace XSLT - ::std::map SAL_CALL - getParameters(); - -- virtual com::sun::star::uno::Reference SAL_CALL -+ virtual com::sun::star::uno::Reference SAL_CALL - getServiceFactory() { - return m_rServiceFactory; - } -diff --git a/filter/source/xsltfilter/XSLTFilter.cxx b/filter/source/xsltfilter/XSLTFilter.cxx -index f3ebd2f..36968e7 100644 ---- a/filter/source/xsltfilter/XSLTFilter.cxx -+++ b/filter/source/xsltfilter/XSLTFilter.cxx -@@ -41,6 +41,7 @@ - #include - #include - -+#include - #include - - #include -@@ -72,6 +73,8 @@ - #include - #include - #include -+#include -+#include - - #include - -@@ -102,14 +105,10 @@ namespace XSLT - * them to an XSLT transformation service. XSLT transformation errors are - * reported to XSLTFilter. - * -- * Currently, two implementations for the XSLT transformation service exist: -- * a java based service (see XSLTransformer.java) and a libxslt based -- * service (LibXSLTTransformer.cxx). -- * -- * The libxslt implementation will be used by default. -- * -- * If the value of the 2nd "UserData" parameter of the filter configuration is -- * not empty, the service name given there will be used. -+ * Currently, our transformation service is libxslt based, so it -+ * only supports XSLT 1.0. There is a possibility to use XSLT 2.0 -+ * supporting service from an extension for a specific filter; the -+ * service must support com.sun.star.xml.xslt.XSLT2Transformer. - */ - class XSLTFilter : public WeakImplHelper4 -@@ -122,7 +121,7 @@ namespace XSLT - // DocumentHandler interface of the css::xml::sax::Writer service - css::uno::Reference m_rOutputStream; - -- css::uno::Reference m_tcontrol; -+ css::uno::Reference m_tcontrol; - - oslCondition m_cTransformed; - sal_Bool m_bTerminated; -@@ -135,6 +134,8 @@ namespace XSLT - OUString - expandUrl(const OUString&); - -+ css::uno::Reference impl_createTransformer(const rtl::OUString& rTransformer, const Sequence& rArgs); -+ - public: - - // ctor... -@@ -211,6 +212,43 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False) - return sExpandedUrl; - } - -+ css::uno::Reference -+ XSLTFilter::impl_createTransformer(const rtl::OUString& rTransformer, const Sequence& rArgs) -+ { -+ css::uno::Reference xTransformer; -+ -+ // check if the filter needs XSLT-2.0-capable transformer -+ // COMPATIBILITY: libreoffice 3.5/3.6 used to save the impl. -+ // name of the XSLT 2.0 transformation service there, so check -+ // for that too (it is sufficient to check that there is _a_ -+ // service name there) -+ if (rTransformer.toBoolean() || rTransformer.match("com.sun.")) -+ { -+ try -+ { -+ xTransformer = xslt::XSLT2Transformer::create( -+ comphelper::ComponentContext(m_rServiceFactory).getUNOContext(), rArgs); -+ } -+ catch (const Exception&) -+ { -+ // TODO: put a dialog telling about the need to install -+ // xslt2-transformer extension here -+ SAL_WARN("filter.xslt", "could not create XSLT 2.0 transformer"); -+ throw; -+ } -+ } -+ -+ // instantiation of XSLT 2.0 transformer service failed, or the -+ // filter does not need it -+ if (!xTransformer.is()) -+ { -+ xTransformer = xslt::XSLTTransformer::create( -+ comphelper::ComponentContext(m_rServiceFactory).getUNOContext(), rArgs); -+ } -+ -+ return xTransformer; -+ } -+ - void - XSLTFilter::started() throw (RuntimeException) - { -@@ -322,11 +360,7 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False) - nv.Value <<= OUString(INetURLObject(aURL).getBase()); - args[2] <<= nv; - -- OUString serviceName("com.sun.star.comp.documentconversion.LibXSLTTransformer"); -- if (!msUserData[1].isEmpty()) -- serviceName = msUserData[1]; -- -- m_tcontrol = css::uno::Reference (m_rServiceFactory->createInstanceWithArguments(serviceName, args), UNO_QUERY); -+ m_tcontrol = impl_createTransformer(msUserData[1], args); - - OSL_ASSERT(xHandler.is()); - OSL_ASSERT(xInputStream.is()); -@@ -486,11 +520,7 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False) - nv.Value <<= m_aExportBaseUrl; - args[3] <<= nv; - -- OUString serviceName("com.sun.star.comp.documentconversion.LibXSLTTransformer"); -- if (!msUserData[1].isEmpty()) -- serviceName = msUserData[1]; -- -- m_tcontrol = css::uno::Reference (m_rServiceFactory->createInstanceWithArguments(serviceName, args), UNO_QUERY); -+ m_tcontrol = impl_createTransformer(msUserData[1], args); - - OSL_ASSERT(m_rOutputStream.is()); - OSL_ASSERT(m_tcontrol.is()); -@@ -566,7 +596,7 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False) - // -------------------------------------- - #define FILTER_SERVICE_NAME "com.sun.star.documentconversion.XSLTFilter" - #define FILTER_IMPL_NAME "com.sun.star.comp.documentconversion.XSLTFilter" --#define TRANSFORMER_SERVICE_NAME "com.sun.star.documentconversion.LibXSLTTransformer" -+#define TRANSFORMER_SERVICE_NAME "com.sun.star.xml.xslt.XSLTTransformer" - #define TRANSFORMER_IMPL_NAME "com.sun.star.comp.documentconversion.LibXSLTTransformer" - - static css::uno::Reference SAL_CALL -diff --git a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java b/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java -index 1a6d8cf..7036646 100644 ---- a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java -+++ b/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java -@@ -75,6 +75,7 @@ import com.sun.star.registry.XRegistryKey; - import com.sun.star.uno.AnyConverter; - import com.sun.star.uno.Type; - import com.sun.star.uno.UnoRuntime; -+import com.sun.star.xml.xslt.XXSLTTransformer; - - //Uno to java Adaptor - import com.sun.star.lib.uno.adapter.XInputStreamToInputStreamAdapter; -@@ -88,8 +89,8 @@ import net.sf.saxon.FeatureKeys; - * component on demand (__getServiceFactory()). - */ - public class XSLTransformer -- implements XTypeProvider, XServiceName, XServiceInfo, XActiveDataSink, -- XActiveDataSource, XActiveDataControl, XInitialization, URIResolver, EntityResolver { -+ implements XTypeProvider, XServiceName, XServiceInfo, XXSLTTransformer, -+ URIResolver, EntityResolver { - - /** - * This component provides java based XSL transformations -@@ -132,7 +133,7 @@ public class XSLTransformer - svcfactory = msf; - } - -- public void initialize(Object[] values) throws com.sun.star.uno.Exception { -+ public void initialize(Object[] args) throws com.sun.star.uno.Exception { - // some configurable debugging - String statsfilepath = null; - if ((statsfilepath = System.getProperty(STATSPROP)) != null) { -@@ -146,6 +147,8 @@ public class XSLTransformer - } - } - -+ Object[] values = (Object[]) args[0]; -+ - // reading the values - NamedValue nv = null; - debug("The transformation's parameters as 'name = value' pairs:\n"); -@@ -444,7 +447,7 @@ public class XSLTransformer - } - } - } // --- component management interfaces... --- -- private final static String _serviceName = "com.sun.star.comp.JAXTHelper"; -+ private final static String _serviceName = "com.sun.star.xml.xslt.XSLT2Transformer"; - - // Implement methods from interface XTypeProvider - public byte[] getImplementationId() { -@@ -494,7 +497,7 @@ public class XSLTransformer - public static XSingleServiceFactory __getServiceFactory( - String implName, XMultiServiceFactory multiFactory, XRegistryKey regKey) { - XSingleServiceFactory xSingleServiceFactory = null; -- if (implName.indexOf("XSLTransformer") != -1) { -+ if (implName.equals(XSLTransformer.class.getName())) { - xSingleServiceFactory = FactoryHelper.getServiceFactory(XSLTransformer.class, - _serviceName, multiFactory, regKey); - } -diff --git a/filter/source/xsltfilter/components.rdb b/filter/source/xsltfilter/components.rdb -index 080cb7a..6014b82 100644 ---- a/filter/source/xsltfilter/components.rdb -+++ b/filter/source/xsltfilter/components.rdb -@@ -1,8 +1,8 @@ - - - -- -- -+ -+ - - - -diff --git a/filter/source/xsltfilter/xsltfilter.component b/filter/source/xsltfilter/xsltfilter.component -index 5fb985c..296f2bc 100644 ---- a/filter/source/xsltfilter/xsltfilter.component -+++ b/filter/source/xsltfilter/xsltfilter.component -@@ -32,6 +32,6 @@ - - - -- -+ - - -diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk -index 98cca5f..007cc52 100644 ---- a/offapi/UnoApi_offapi.mk -+++ b/offapi/UnoApi_offapi.mk -@@ -285,6 +285,10 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/xml/sax,\ - FastShapeContextHandler \ - FastTokenHandler \ - )) -+$(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/xml/xslt,\ -+ XSLTTransformer \ -+ XSLT2Transformer \ -+)) - - - $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star,\ -@@ -4255,6 +4259,11 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xml/xpath,\ - XXPathExtension \ - XXPathObject \ - )) -+ -+$(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xml/xslt,\ -+ XXSLTTransformer \ -+)) -+ - $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xsd,\ - DataTypeClass \ - WhiteSpaceTreatment \ -diff --git a/offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl b/offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl -new file mode 100644 -index 0000000..af5abed ---- /dev/null -+++ b/offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl -@@ -0,0 +1,30 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ */ -+ -+#ifndef INCLUDED_COM_SUN_STAR_XML_XSLT_XSLT2TRANSFORMER_IDL -+#define INCLUDED_COM_SUN_STAR_XML_XSLT_XSLT2TRANSFORMER_IDL -+ -+#include -+ -+module com { module sun { module star { module xml { module xslt { -+ -+/** Get XSLT filter transformer supporting XSLT 2.0. -+ -+ @since LibreOffice 3.7 -+ */ -+service XSLT2Transformer : XXSLTTransformer -+{ -+ create([in] sequence args); -+}; -+ -+}; }; }; }; }; -+ -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/offapi/com/sun/star/xml/xslt/XSLTTransformer.idl b/offapi/com/sun/star/xml/xslt/XSLTTransformer.idl -new file mode 100644 -index 0000000..f9d75e3 ---- /dev/null -+++ b/offapi/com/sun/star/xml/xslt/XSLTTransformer.idl -@@ -0,0 +1,32 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ */ -+ -+#ifndef INCLUDED_COM_SUN_STAR_XML_XSLT_XSLTTRANSFORMER_IDL -+#define INCLUDED_COM_SUN_STAR_XML_XSLT_XSLTTRANSFORMER_IDL -+ -+#include -+ -+module com { module sun { module star { module xml { module xslt { -+ -+/** Get unspecified XSLT filter transformer. -+ -+

It is not safe to expect support for any features except XSLT 1.0 . -+ -+ @since LibreOffice 3.7 -+ */ -+service XSLTTransformer : XXSLTTransformer -+{ -+ create([in] sequence args); -+}; -+ -+}; }; }; }; }; -+ -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl b/offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl -new file mode 100644 -index 0000000..9316c25 ---- /dev/null -+++ b/offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl -@@ -0,0 +1,36 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ */ -+ -+#ifndef INCLUDED_COM_SUN_STAR_XML_XSLT_XXSLTTRANSFORMER_IDL -+#define INCLUDED_COM_SUN_STAR_XML_XSLT_XXSLTTRANSFORMER_IDL -+ -+#include -+#include -+#include -+#include -+ -+module com { module sun { module star { module xml { module xslt { -+ -+/** An interface for XSLT transformers. -+ -+ @since LibreOffice 3.7 -+ */ -+interface XXSLTTransformer -+{ -+ interface com::sun::star::io::XActiveDataControl; -+ interface com::sun::star::io::XActiveDataSink; -+ interface com::sun::star::io::XActiveDataSource; -+ interface com::sun::star::lang::XInitialization; -+}; -+ -+}; }; }; }; }; -+ -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ --- -1.7.11.7 - diff --git a/0003-drop-saxon-based-XSLT-transformer.patch b/0003-drop-saxon-based-XSLT-transformer.patch deleted file mode 100644 index d856a95..0000000 --- a/0003-drop-saxon-based-XSLT-transformer.patch +++ /dev/null @@ -1,3001 +0,0 @@ -From 45928a0bf76f4cd59f4bcb20ac60057e4a786910 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Wed, 10 Oct 2012 17:33:30 +0200 -Subject: [PATCH 3/4] drop saxon-based XSLT transformer - -(cherry picked from commit bfc71eb03e2bc6f26d53f70b32f9a8937086808b) - -Conflicts: - filter/Jar_XSLTFilter.mk - filter/source/xsltfilter/XSLTFilter.jar.component - filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64.java - filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTFilterOLEExtracter.java - filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java - -Change-Id: I2cd4e0965452c376df8c5e43353fbdd6f62fb27d ---- - filter/Extension_xslt2_transformer.mk | 18 - - filter/Jar_XSLTFilter.mk | 45 - - filter/Module_filter.mk | 2 - - filter/source/xsltfilter/Manifest | 2 - - filter/source/xsltfilter/XSLTFilter.jar.component | 34 - - .../com/sun/star/comp/xsltfilter/Base64.java | 1835 -------------------- - .../comp/xsltfilter/XSLTFilterOLEExtracter.java | 395 ----- - .../sun/star/comp/xsltfilter/XSLTransformer.java | 506 ------ - filter/source/xsltfilter/components.rdb | 8 - - filter/source/xsltfilter/description-en-US.txt | 1 - - filter/source/xsltfilter/description.xml | 28 - - filter/source/xsltfilter/manifest.xml | 6 - - 12 files changed, 2880 deletions(-) - delete mode 100644 filter/Extension_xslt2_transformer.mk - delete mode 100644 filter/Jar_XSLTFilter.mk - delete mode 100644 filter/source/xsltfilter/Manifest - delete mode 100644 filter/source/xsltfilter/XSLTFilter.jar.component - delete mode 100644 filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64.java - delete mode 100644 filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTFilterOLEExtracter.java - delete mode 100644 filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java - delete mode 100644 filter/source/xsltfilter/components.rdb - delete mode 100644 filter/source/xsltfilter/description-en-US.txt - delete mode 100644 filter/source/xsltfilter/description.xml - delete mode 100644 filter/source/xsltfilter/manifest.xml - -diff --git a/filter/Extension_xslt2_transformer.mk b/filter/Extension_xslt2_transformer.mk -deleted file mode 100644 -index ab239d8..0000000 ---- a/filter/Extension_xslt2_transformer.mk -+++ /dev/null -@@ -1,18 +0,0 @@ --# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- --# --# This file is part of the LibreOffice project. --# --# This Source Code Form is subject to the terms of the Mozilla Public --# License, v. 2.0. If a copy of the MPL was not distributed with this --# file, You can obtain one at http://mozilla.org/MPL/2.0/. --# -- --$(eval $(call gb_Extension_Extension,xslt2-transformer,filter/source/xsltfilter)) -- --$(eval $(call gb_Extension_add_files,xslt2-transformer,,\ -- $(call gb_Jar_get_outdir_target,saxon9) \ -- $(call gb_Jar_get_outdir_target,XSLTFilter) \ -- $(SRCDIR)/filter/source/xsltfilter/components.rdb \ --)) -- --# vim: set noet sw=4 ts=4: -diff --git a/filter/Jar_XSLTFilter.mk b/filter/Jar_XSLTFilter.mk -deleted file mode 100644 -index 9522c26..0000000 ---- a/filter/Jar_XSLTFilter.mk -+++ /dev/null -@@ -1,45 +0,0 @@ --#*************************************************************** --# Licensed to the Apache Software Foundation (ASF) under one --# or more contributor license agreements. See the NOTICE file --# distributed with this work for additional information --# regarding copyright ownership. The ASF licenses this file --# to you under the Apache License, Version 2.0 (the --# "License"); you may not use this file except in compliance --# with the License. You may obtain a copy of the License at --# --# http://www.apache.org/licenses/LICENSE-2.0 --# --# Unless required by applicable law or agreed to in writing, --# software distributed under the License is distributed on an --# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --# KIND, either express or implied. See the License for the --# specific language governing permissions and limitations --# under the License. --#*************************************************************** -- --$(eval $(call gb_Jar_Jar,XSLTFilter)) -- --$(eval $(call gb_Jar_use_jars,XSLTFilter,\ -- $(OUTDIR)/bin/ridl.jar \ -- $(OUTDIR)/bin/unoil.jar \ -- $(OUTDIR)/bin/jurt.jar \ -- $(OUTDIR)/bin/juh.jar \ --)) -- --$(eval $(call gb_Jar_use_externals,XSLTFilter,saxon)) -- --$(eval $(call gb_Jar_set_componentfile,XSLTFilter,filter/source/xsltfilter/XSLTFilter.jar,OOO)) -- --$(eval $(call gb_Jar_set_manifest,XSLTFilter,$(SRCDIR)/filter/source/xsltfilter/Manifest)) -- --$(eval $(call gb_Jar_set_jarclasspath,XSLTFilter,saxon9.jar)) -- --$(eval $(call gb_Jar_set_packageroot,XSLTFilter,com)) -- --$(eval $(call gb_Jar_add_sourcefiles,XSLTFilter,\ -- filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64 \ -- filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTFilterOLEExtracter \ -- filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer \ --)) -- --# vim: set noet sw=4 ts=4: -diff --git a/filter/Module_filter.mk b/filter/Module_filter.mk -index 9c18157..c372862 100644 ---- a/filter/Module_filter.mk -+++ b/filter/Module_filter.mk -@@ -72,8 +72,6 @@ $(eval $(call gb_Module_add_targets,filter,\ - - ifneq ($(SOLAR_JAVA),) - $(eval $(call gb_Module_add_targets,filter,\ -- Extension_xslt2_transformer \ -- Jar_XSLTFilter \ - Jar_XSLTValidate \ - )) - endif -diff --git a/filter/source/xsltfilter/Manifest b/filter/source/xsltfilter/Manifest -deleted file mode 100644 -index 1bd3102..0000000 ---- a/filter/source/xsltfilter/Manifest -+++ /dev/null -@@ -1,2 +0,0 @@ --RegistrationClassName: com.sun.star.comp.xsltfilter.XSLTransformer --UNO-Type-Path: -diff --git a/filter/source/xsltfilter/XSLTFilter.jar.component b/filter/source/xsltfilter/XSLTFilter.jar.component -deleted file mode 100644 -index d4ecd66..0000000 ---- a/filter/source/xsltfilter/XSLTFilter.jar.component -+++ /dev/null -@@ -1,34 +0,0 @@ -- -- -- -- -- -- -- -- -diff --git a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64.java b/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64.java -deleted file mode 100644 -index f92012e..0000000 ---- a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64.java -+++ /dev/null -@@ -1,1835 +0,0 @@ --package com.sun.star.comp.xsltfilter; -- --/************************************************************************ -- * -- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -- * -- * Copyright 2000, 2010 Oracle and/or its affiliates. -- * -- * OpenOffice.org - a multi-platform office productivity suite -- * -- * This file is part of OpenOffice.org. -- * -- * OpenOffice.org is free software: you can redistribute it and/or modify -- * it under the terms of the GNU Lesser General Public License version 3 -- * only, as published by the Free Software Foundation. -- * -- * OpenOffice.org is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU Lesser General Public License version 3 for more details -- * (a copy is included in the LICENSE file that accompanied this code). -- * -- * You should have received a copy of the GNU Lesser General Public License -- * version 3 along with OpenOffice.org. If not, see -- * -- * for a copy of the LGPLv3 License. -- * -- ************************************************************************/ --/** -- *

Encodes and decodes to and from Base64 notation.

-- *

Homepage: http://iharder.net/base64.

-- * -- *

The options parameter, which appears in a few places, is used to pass -- * several pieces of information to the encoder. In the "higher level" methods such as -- * encodeBytes( bytes, options ) the options parameter can be used to indicate such -- * things as first gzipping the bytes before encoding them, not inserting linefeeds -- * (though that breaks strict Base64 compatibility), and encoding using the URL-safe -- * and Ordered dialects.

-- * -- *

The constants defined in Base64 can be OR-ed together to combine options, so you -- * might make a call like this:

-- * -- * String encoded = Base64.encodeBytes( mybytes, Base64.GZIP | Base64.DONT_BREAK_LINES ); -- * -- *

to compress the data before encoding it and then making the output have no newline characters.

-- * -- * -- *

-- * Change Log: -- *

-- *
    -- *
  • v2.2.2 - Fixed encodeFileToFile and decodeFileToFile to use the -- * Base64.InputStream class to encode and decode on the fly which uses -- * less memory than encoding/decoding an entire file into memory before writing.
  • -- *
  • v2.2.1 - Fixed bug using URL_SAFE and ORDERED encodings. Fixed bug -- * when using very small files (~< 40 bytes).
  • -- *
  • v2.2 - Added some helper methods for encoding/decoding directly from -- * one file to the next. Also added a main() method to support command line -- * encoding/decoding from one file to the next. Also added these Base64 dialects: -- *
      -- *
    1. The default is RFC3548 format.
    2. -- *
    3. Calling Base64.setFormat(Base64.BASE64_FORMAT.URLSAFE_FORMAT) generates -- * URL and file name friendly format as described in Section 4 of RFC3548. -- * http://www.faqs.org/rfcs/rfc3548.html
    4. -- *
    5. Calling Base64.setFormat(Base64.BASE64_FORMAT.ORDERED_FORMAT) generates -- * URL and file name friendly format that preserves lexical ordering as described -- * in http://www.faqs.org/qa/rfcc-1940.html
    6. -- *
    -- * Special thanks to Jim Kellerman at http://www.powerset.com/ -- * for contributing the new Base64 dialects. -- *
  • -- * -- *
  • v2.1 - Cleaned up javadoc comments and unused variables and methods. Added -- * some convenience methods for reading and writing to and from files.
  • -- *
  • v2.0.2 - Now specifies UTF-8 encoding in places where the code fails on systems -- * with other encodings (like EBCDIC).
  • -- *
  • v2.0.1 - Fixed an error when decoding a single byte, that is, when the -- * encoded data was a single byte.
  • -- *
  • v2.0 - I got rid of methods that used booleans to set options. -- * Now everything is more consolidated and cleaner. The code now detects -- * when data that's being decoded is gzip-compressed and will decompress it -- * automatically. Generally things are cleaner. You'll probably have to -- * change some method calls that you were making to support the new -- * options format (ints that you "OR" together).
  • -- *
  • v1.5.1 - Fixed bug when decompressing and decoding to a -- * byte[] using decode( String s, boolean gzipCompressed ). -- * Added the ability to "suspend" encoding in the Output Stream so -- * you can turn on and off the encoding if you need to embed base64 -- * data in an otherwise "normal" stream (like an XML file).
  • -- *
  • v1.5 - Output stream pases on flush() command but doesn't do anything itself. -- * This helps when using GZIP streams. -- * Added the ability to GZip-compress objects before encoding them.
  • -- *
  • v1.4 - Added helper methods to read/write files.
  • -- *
  • v1.3.6 - Fixed OutputStream.flush() so that 'position' is reset.
  • -- *
  • v1.3.5 - Added flag to turn on and off line breaks. Fixed bug in input stream -- * where last buffer being read, if not completely full, was not returned.
  • -- *
  • v1.3.4 - Fixed when "improperly padded stream" error was thrown at the wrong time.
  • -- *
  • v1.3.3 - Fixed I/O streams which were totally messed up.
  • -- *
-- * -- *

-- * I am placing this code in the Public Domain. Do with it as you will. -- * This software comes with no guarantees or warranties but with -- * plenty of well-wishing instead! -- * Please visit http://iharder.net/base64 -- * periodically to check for updates or to contribute improvements. -- *

-- * -- * @author Robert Harder -- * @author rob@iharder.net -- * @version 2.2.2 -- */ --public class Base64 --{ -- --/* ******** P U B L I C F I E L D S ******** */ -- -- -- /** No options specified. Value is zero. */ -- public final static int NO_OPTIONS = 0; -- -- /** Specify encoding. */ -- public final static int ENCODE = 1; -- -- -- /** Specify decoding. */ -- public final static int DECODE = 0; -- -- -- /** Specify that data should be gzip-compressed. */ -- public final static int GZIP = 2; -- -- -- /** Don't break lines when encoding (violates strict Base64 specification) */ -- public final static int DONT_BREAK_LINES = 8; -- -- /** -- * Encode using Base64-like encoding that is URL- and Filename-safe as described -- * in Section 4 of RFC3548: -- * http://www.faqs.org/rfcs/rfc3548.html. -- * It is important to note that data encoded this way is not officially valid Base64, -- * or at the very least should not be called Base64 without also specifying that is -- * was encoded using the URL- and Filename-safe dialect. -- */ -- public final static int URL_SAFE = 16; -- -- -- /** -- * Encode using the special "ordered" dialect of Base64 described here: -- * http://www.faqs.org/qa/rfcc-1940.html. -- */ -- public final static int ORDERED = 32; -- -- --/* ******** P R I V A T E F I E L D S ******** */ -- -- -- /** Maximum line length (76) of Base64 output. */ -- private final static int MAX_LINE_LENGTH = 76; -- -- -- /** The equals sign (=) as a byte. */ -- private final static byte EQUALS_SIGN = (byte)'='; -- -- -- /** The new line character (\n) as a byte. */ -- private final static byte NEW_LINE = (byte)'\n'; -- -- -- /** Preferred encoding. */ -- private final static String PREFERRED_ENCODING = "UTF-8"; -- -- -- // I think I end up not using the BAD_ENCODING indicator. -- //private final static byte BAD_ENCODING = -9; // Indicates error in encoding -- private final static byte WHITE_SPACE_ENC = -5; // Indicates white space in encoding -- private final static byte EQUALS_SIGN_ENC = -1; // Indicates equals sign in encoding -- -- --/* ******** S T A N D A R D B A S E 6 4 A L P H A B E T ******** */ -- -- /** The 64 valid Base64 values. */ -- //private final static byte[] ALPHABET; -- /* Host platform me be something funny like EBCDIC, so we hardcode these values. */ -- private final static byte[] _STANDARD_ALPHABET = -- { -- (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', -- (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', -- (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', -- (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', -- (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', -- (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', -- (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', -- (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z', -- (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', (byte)'5', -- (byte)'6', (byte)'7', (byte)'8', (byte)'9', (byte)'+', (byte)'/' -- }; -- -- -- /** -- * Translates a Base64 value to either its 6-bit reconstruction value -- * or a negative number indicating some other meaning. -- **/ -- private final static byte[] _STANDARD_DECODABET = -- { -- -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8 -- -5,-5, // Whitespace: Tab and Linefeed -- -9,-9, // Decimal 11 - 12 -- -5, // Whitespace: Carriage Return -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26 -- -9,-9,-9,-9,-9, // Decimal 27 - 31 -- -5, // Whitespace: Space -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42 -- 62, // Plus sign at decimal 43 -- -9,-9,-9, // Decimal 44 - 46 -- 63, // Slash at decimal 47 -- 52,53,54,55,56,57,58,59,60,61, // Numbers zero through nine -- -9,-9,-9, // Decimal 58 - 60 -- -1, // Equals sign at decimal 61 -- -9,-9,-9, // Decimal 62 - 64 -- 0,1,2,3,4,5,6,7,8,9,10,11,12,13, // Letters 'A' through 'N' -- 14,15,16,17,18,19,20,21,22,23,24,25, // Letters 'O' through 'Z' -- -9,-9,-9,-9,-9,-9, // Decimal 91 - 96 -- 26,27,28,29,30,31,32,33,34,35,36,37,38, // Letters 'a' through 'm' -- 39,40,41,42,43,44,45,46,47,48,49,50,51, // Letters 'n' through 'z' -- -9,-9,-9,-9 // Decimal 123 - 126 -- /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */ -- }; -- -- --/* ******** U R L S A F E B A S E 6 4 A L P H A B E T ******** */ -- -- /** -- * Used in the URL- and Filename-safe dialect described in Section 4 of RFC3548: -- * http://www.faqs.org/rfcs/rfc3548.html. -- * Notice that the last two bytes become "hyphen" and "underscore" instead of "plus" and "slash." -- */ -- private final static byte[] _URL_SAFE_ALPHABET = -- { -- (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', -- (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', -- (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', -- (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', -- (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', -- (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', -- (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', -- (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z', -- (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', (byte)'5', -- (byte)'6', (byte)'7', (byte)'8', (byte)'9', (byte)'-', (byte)'_' -- }; -- -- /** -- * Used in decoding URL- and Filename-safe dialects of Base64. -- */ -- private final static byte[] _URL_SAFE_DECODABET = -- { -- -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8 -- -5,-5, // Whitespace: Tab and Linefeed -- -9,-9, // Decimal 11 - 12 -- -5, // Whitespace: Carriage Return -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26 -- -9,-9,-9,-9,-9, // Decimal 27 - 31 -- -5, // Whitespace: Space -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42 -- -9, // Plus sign at decimal 43 -- -9, // Decimal 44 -- 62, // Minus sign at decimal 45 -- -9, // Decimal 46 -- -9, // Slash at decimal 47 -- 52,53,54,55,56,57,58,59,60,61, // Numbers zero through nine -- -9,-9,-9, // Decimal 58 - 60 -- -1, // Equals sign at decimal 61 -- -9,-9,-9, // Decimal 62 - 64 -- 0,1,2,3,4,5,6,7,8,9,10,11,12,13, // Letters 'A' through 'N' -- 14,15,16,17,18,19,20,21,22,23,24,25, // Letters 'O' through 'Z' -- -9,-9,-9,-9, // Decimal 91 - 94 -- 63, // Underscore at decimal 95 -- -9, // Decimal 96 -- 26,27,28,29,30,31,32,33,34,35,36,37,38, // Letters 'a' through 'm' -- 39,40,41,42,43,44,45,46,47,48,49,50,51, // Letters 'n' through 'z' -- -9,-9,-9,-9 // Decimal 123 - 126 -- /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */ -- }; -- -- -- --/* ******** O R D E R E D B A S E 6 4 A L P H A B E T ******** */ -- -- /** -- * I don't get the point of this technique, but it is described here: -- * http://www.faqs.org/qa/rfcc-1940.html. -- */ -- private final static byte[] _ORDERED_ALPHABET = -- { -- (byte)'-', -- (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', -- (byte)'5', (byte)'6', (byte)'7', (byte)'8', (byte)'9', -- (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', -- (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', -- (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', -- (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', -- (byte)'_', -- (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', -- (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', -- (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', -- (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z' -- }; -- -- /** -- * Used in decoding the "ordered" dialect of Base64. -- */ -- private final static byte[] _ORDERED_DECODABET = -- { -- -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8 -- -5,-5, // Whitespace: Tab and Linefeed -- -9,-9, // Decimal 11 - 12 -- -5, // Whitespace: Carriage Return -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26 -- -9,-9,-9,-9,-9, // Decimal 27 - 31 -- -5, // Whitespace: Space -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42 -- -9, // Plus sign at decimal 43 -- -9, // Decimal 44 -- 0, // Minus sign at decimal 45 -- -9, // Decimal 46 -- -9, // Slash at decimal 47 -- 1,2,3,4,5,6,7,8,9,10, // Numbers zero through nine -- -9,-9,-9, // Decimal 58 - 60 -- -1, // Equals sign at decimal 61 -- -9,-9,-9, // Decimal 62 - 64 -- 11,12,13,14,15,16,17,18,19,20,21,22,23, // Letters 'A' through 'M' -- 24,25,26,27,28,29,30,31,32,33,34,35,36, // Letters 'N' through 'Z' -- -9,-9,-9,-9, // Decimal 91 - 94 -- 37, // Underscore at decimal 95 -- -9, // Decimal 96 -- 38,39,40,41,42,43,44,45,46,47,48,49,50, // Letters 'a' through 'm' -- 51,52,53,54,55,56,57,58,59,60,61,62,63, // Letters 'n' through 'z' -- -9,-9,-9,-9 // Decimal 123 - 126 -- /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243 -- -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */ -- }; -- -- --/* ******** D E T E R M I N E W H I C H A L H A B E T ******** */ -- -- -- /** -- * Returns one of the _SOMETHING_ALPHABET byte arrays depending on -- * the options specified. -- * It's possible, though silly, to specify ORDERED and URLSAFE -- * in which case one of them will be picked, though there is -- * no guarantee as to which one will be picked. -- */ -- private final static byte[] getAlphabet( int options ) -- { -- if( (options & URL_SAFE) == URL_SAFE ) return _URL_SAFE_ALPHABET; -- else if( (options & ORDERED) == ORDERED ) return _ORDERED_ALPHABET; -- else return _STANDARD_ALPHABET; -- -- } // end getAlphabet -- -- -- /** -- * Returns one of the _SOMETHING_DECODABET byte arrays depending on -- * the options specified. -- * It's possible, though silly, to specify ORDERED and URL_SAFE -- * in which case one of them will be picked, though there is -- * no guarantee as to which one will be picked. -- */ -- private final static byte[] getDecodabet( int options ) -- { -- if( (options & URL_SAFE) == URL_SAFE ) return _URL_SAFE_DECODABET; -- else if( (options & ORDERED) == ORDERED ) return _ORDERED_DECODABET; -- else return _STANDARD_DECODABET; -- -- } // end getAlphabet -- -- -- -- /** Defeats instantiation. */ -- private Base64(){} -- -- -- /** -- * Encodes or decodes two files from the command line; -- * feel free to delete this method (in fact you probably should) -- * if you're embedding this code into a larger program. -- */ -- public final static void main( String[] args ) -- { -- if( args.length < 3 ){ -- usage("Not enough arguments."); -- } // end if: args.length < 3 -- else { -- String flag = args[0]; -- String infile = args[1]; -- String outfile = args[2]; -- if( flag.equals( "-e" ) ){ -- Base64.encodeFileToFile( infile, outfile ); -- } // end if: encode -- else if( flag.equals( "-d" ) ) { -- Base64.decodeFileToFile( infile, outfile ); -- } // end else if: decode -- else { -- usage( "Unknown flag: " + flag ); -- } // end else -- } // end else -- } // end main -- -- /** -- * Prints command line usage. -- * -- * @param msg A message to include with usage info. -- */ -- private final static void usage( String msg ) -- { -- System.err.println( msg ); -- System.err.println( "Usage: java Base64 -e|-d inputfile outputfile" ); -- } // end usage -- -- --/* ******** E N C O D I N G M E T H O D S ******** */ -- -- -- /** -- * Encodes up to the first three bytes of array threeBytes -- * and returns a four-byte array in Base64 notation. -- * The actual number of significant bytes in your array is -- * given by numSigBytes. -- * The array threeBytes needs only be as big as -- * numSigBytes. -- * Code can reuse a byte array by passing a four-byte array as b4. -- * -- * @param b4 A reusable byte array to reduce array instantiation -- * @param threeBytes the array to convert -- * @param numSigBytes the number of significant bytes in your array -- * @return four byte array in Base64 notation. -- * @since 1.5.1 -- */ -- private static byte[] encode3to4( byte[] b4, byte[] threeBytes, int numSigBytes, int options ) -- { -- encode3to4( threeBytes, 0, numSigBytes, b4, 0, options ); -- return b4; -- } // end encode3to4 -- -- -- /** -- *

Encodes up to three bytes of the array source -- * and writes the resulting four Base64 bytes to destination. -- * The source and destination arrays can be manipulated -- * anywhere along their length by specifying -- * srcOffset and destOffset. -- * This method does not check to make sure your arrays -- * are large enough to accomodate srcOffset + 3 for -- * the source array or destOffset + 4 for -- * the destination array. -- * The actual number of significant bytes in your array is -- * given by numSigBytes.

-- *

This is the lowest level of the encoding methods with -- * all possible parameters.

-- * -- * @param source the array to convert -- * @param srcOffset the index where conversion begins -- * @param numSigBytes the number of significant bytes in your array -- * @param destination the array to hold the conversion -- * @param destOffset the index where output will be put -- * @return the destination array -- * @since 1.3 -- */ -- private static byte[] encode3to4( -- byte[] source, int srcOffset, int numSigBytes, -- byte[] destination, int destOffset, int options ) -- { -- byte[] ALPHABET = getAlphabet( options ); -- -- // 1 2 3 -- // 01234567890123456789012345678901 Bit position -- // --------000000001111111122222222 Array position from threeBytes -- // --------| || || || | Six bit groups to index ALPHABET -- // >>18 >>12 >> 6 >> 0 Right shift necessary -- // 0x3f 0x3f 0x3f Additional AND -- -- // Create buffer with zero-padding if there are only one or two -- // significant bytes passed in the array. -- // We have to shift left 24 in order to flush out the 1's that appear -- // when Java treats a value as negative that is cast from a byte to an int. -- int inBuff = ( numSigBytes > 0 ? ((source[ srcOffset ] << 24) >>> 8) : 0 ) -- | ( numSigBytes > 1 ? ((source[ srcOffset + 1 ] << 24) >>> 16) : 0 ) -- | ( numSigBytes > 2 ? ((source[ srcOffset + 2 ] << 24) >>> 24) : 0 ); -- -- switch( numSigBytes ) -- { -- case 3: -- destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ]; -- destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; -- destination[ destOffset + 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ]; -- destination[ destOffset + 3 ] = ALPHABET[ (inBuff ) & 0x3f ]; -- return destination; -- -- case 2: -- destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ]; -- destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; -- destination[ destOffset + 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ]; -- destination[ destOffset + 3 ] = EQUALS_SIGN; -- return destination; -- -- case 1: -- destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ]; -- destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; -- destination[ destOffset + 2 ] = EQUALS_SIGN; -- destination[ destOffset + 3 ] = EQUALS_SIGN; -- return destination; -- -- default: -- return destination; -- } // end switch -- } // end encode3to4 -- -- -- -- /** -- * Serializes an object and returns the Base64-encoded -- * version of that serialized object. If the object -- * cannot be serialized or there is another error, -- * the method will return null. -- * The object is not GZip-compressed before being encoded. -- * -- * @param serializableObject The object to encode -- * @return The Base64-encoded object -- * @since 1.4 -- */ -- public static String encodeObject( java.io.Serializable serializableObject ) -- { -- return encodeObject( serializableObject, NO_OPTIONS ); -- } // end encodeObject -- -- -- -- /** -- * Serializes an object and returns the Base64-encoded -- * version of that serialized object. If the object -- * cannot be serialized or there is another error, -- * the method will return null. -- *

-- * Valid options:

--     *   GZIP: gzip-compresses object before encoding it.
--     *   DONT_BREAK_LINES: don't break lines at 76 characters
--     *     Note: Technically, this makes your encoding non-compliant.
--     * 
-- *

-- * Example: encodeObject( myObj, Base64.GZIP ) or -- *

-- * Example: encodeObject( myObj, Base64.GZIP | Base64.DONT_BREAK_LINES ) -- * -- * @param serializableObject The object to encode -- * @param options Specified options -- * @return The Base64-encoded object -- * @see Base64#GZIP -- * @see Base64#DONT_BREAK_LINES -- * @since 2.0 -- */ -- public static String encodeObject( java.io.Serializable serializableObject, int options ) -- { -- // Streams -- java.io.ByteArrayOutputStream baos = null; -- java.io.OutputStream b64os = null; -- java.io.ObjectOutputStream oos = null; -- java.util.zip.GZIPOutputStream gzos = null; -- -- // Isolate options -- int gzip = (options & GZIP); -- int dontBreakLines = (options & DONT_BREAK_LINES); -- -- try -- { -- // ObjectOutputStream -> (GZIP) -> Base64 -> ByteArrayOutputStream -- baos = new java.io.ByteArrayOutputStream(); -- b64os = new Base64.OutputStream( baos, ENCODE | options ); -- -- // GZip? -- if( gzip == GZIP ) -- { -- gzos = new java.util.zip.GZIPOutputStream( b64os ); -- oos = new java.io.ObjectOutputStream( gzos ); -- } // end if: gzip -- else -- oos = new java.io.ObjectOutputStream( b64os ); -- -- oos.writeObject( serializableObject ); -- } // end try -- catch( java.io.IOException e ) -- { -- e.printStackTrace(); -- return null; -- } // end catch -- finally -- { -- try{ oos.close(); } catch( Exception e ){} -- try{ gzos.close(); } catch( Exception e ){} -- try{ b64os.close(); } catch( Exception e ){} -- try{ baos.close(); } catch( Exception e ){} -- } // end finally -- -- // Return value according to relevant encoding. -- try -- { -- return new String( baos.toByteArray(), PREFERRED_ENCODING ); -- } // end try -- catch (java.io.UnsupportedEncodingException uue) -- { -- return new String( baos.toByteArray() ); -- } // end catch -- -- } // end encode -- -- -- -- /** -- * Encodes a byte array into Base64 notation. -- * Does not GZip-compress data. -- * -- * @param source The data to convert -- * @since 1.4 -- */ -- public static String encodeBytes( byte[] source ) -- { -- return encodeBytes( source, 0, source.length, NO_OPTIONS ); -- } // end encodeBytes -- -- -- -- /** -- * Encodes a byte array into Base64 notation. -- *

-- * Valid options:

--     *   GZIP: gzip-compresses object before encoding it.
--     *   DONT_BREAK_LINES: don't break lines at 76 characters
--     *     Note: Technically, this makes your encoding non-compliant.
--     * 
-- *

-- * Example: encodeBytes( myData, Base64.GZIP ) or -- *

-- * Example: encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES ) -- * -- * -- * @param source The data to convert -- * @param options Specified options -- * @see Base64#GZIP -- * @see Base64#DONT_BREAK_LINES -- * @since 2.0 -- */ -- public static String encodeBytes( byte[] source, int options ) -- { -- return encodeBytes( source, 0, source.length, options ); -- } // end encodeBytes -- -- -- /** -- * Encodes a byte array into Base64 notation. -- * Does not GZip-compress data. -- * -- * @param source The data to convert -- * @param off Offset in array where conversion should begin -- * @param len Length of data to convert -- * @since 1.4 -- */ -- public static String encodeBytes( byte[] source, int off, int len ) -- { -- return encodeBytes( source, off, len, NO_OPTIONS ); -- } // end encodeBytes -- -- -- -- /** -- * Encodes a byte array into Base64 notation. -- *

-- * Valid options:

--     *   GZIP: gzip-compresses object before encoding it.
--     *   DONT_BREAK_LINES: don't break lines at 76 characters
--     *     Note: Technically, this makes your encoding non-compliant.
--     * 
-- *

-- * Example: encodeBytes( myData, Base64.GZIP ) or -- *

-- * Example: encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES ) -- * -- * -- * @param source The data to convert -- * @param off Offset in array where conversion should begin -- * @param len Length of data to convert -- * @param options Specified options -- * @param options alphabet type is pulled from this (standard, url-safe, ordered) -- * @see Base64#GZIP -- * @see Base64#DONT_BREAK_LINES -- * @since 2.0 -- */ -- public static String encodeBytes( byte[] source, int off, int len, int options ) -- { -- // Isolate options -- int dontBreakLines = ( options & DONT_BREAK_LINES ); -- int gzip = ( options & GZIP ); -- -- // Compress? -- if( gzip == GZIP ) -- { -- java.io.ByteArrayOutputStream baos = null; -- java.util.zip.GZIPOutputStream gzos = null; -- Base64.OutputStream b64os = null; -- -- -- try -- { -- // GZip -> Base64 -> ByteArray -- baos = new java.io.ByteArrayOutputStream(); -- b64os = new Base64.OutputStream( baos, ENCODE | options ); -- gzos = new java.util.zip.GZIPOutputStream( b64os ); -- -- gzos.write( source, off, len ); -- gzos.close(); -- } // end try -- catch( java.io.IOException e ) -- { -- e.printStackTrace(); -- return null; -- } // end catch -- finally -- { -- try{ gzos.close(); } catch( Exception e ){} -- try{ b64os.close(); } catch( Exception e ){} -- try{ baos.close(); } catch( Exception e ){} -- } // end finally -- -- // Return value according to relevant encoding. -- try -- { -- return new String( baos.toByteArray(), PREFERRED_ENCODING ); -- } // end try -- catch (java.io.UnsupportedEncodingException uue) -- { -- return new String( baos.toByteArray() ); -- } // end catch -- } // end if: compress -- -- // Else, don't compress. Better not to use streams at all then. -- else -- { -- // Convert option to boolean in way that code likes it. -- boolean breakLines = dontBreakLines == 0; -- -- int len43 = len * 4 / 3; -- byte[] outBuff = new byte[ ( len43 ) // Main 4:3 -- + ( (len % 3) > 0 ? 4 : 0 ) // Account for padding -- + (breakLines ? ( len43 / MAX_LINE_LENGTH ) : 0) ]; // New lines -- int d = 0; -- int e = 0; -- int len2 = len - 2; -- int lineLength = 0; -- for( ; d < len2; d+=3, e+=4 ) -- { -- encode3to4( source, d+off, 3, outBuff, e, options ); -- -- lineLength += 4; -- if( breakLines && lineLength == MAX_LINE_LENGTH ) -- { -- outBuff[e+4] = NEW_LINE; -- e++; -- lineLength = 0; -- } // end if: end of line -- } // en dfor: each piece of array -- -- if( d < len ) -- { -- encode3to4( source, d+off, len - d, outBuff, e, options ); -- e += 4; -- } // end if: some padding needed -- -- -- // Return value according to relevant encoding. -- try -- { -- return new String( outBuff, 0, e, PREFERRED_ENCODING ); -- } // end try -- catch (java.io.UnsupportedEncodingException uue) -- { -- return new String( outBuff, 0, e ); -- } // end catch -- -- } // end else: don't compress -- -- } // end encodeBytes -- -- -- -- -- --/* ******** D E C O D I N G M E T H O D S ******** */ -- -- -- /** -- * Decodes four bytes from array source -- * and writes the resulting bytes (up to three of them) -- * to destination. -- * The source and destination arrays can be manipulated -- * anywhere along their length by specifying -- * srcOffset and destOffset. -- * This method does not check to make sure your arrays -- * are large enough to accomodate srcOffset + 4 for -- * the source array or destOffset + 3 for -- * the destination array. -- * This method returns the actual number of bytes that -- * were converted from the Base64 encoding. -- *

This is the lowest level of the decoding methods with -- * all possible parameters.

-- * -- * -- * @param source the array to convert -- * @param srcOffset the index where conversion begins -- * @param destination the array to hold the conversion -- * @param destOffset the index where output will be put -- * @param options alphabet type is pulled from this (standard, url-safe, ordered) -- * @return the number of decoded bytes converted -- * @since 1.3 -- */ -- private static int decode4to3( byte[] source, int srcOffset, byte[] destination, int destOffset, int options ) -- { -- byte[] DECODABET = getDecodabet( options ); -- -- // Example: Dk== -- if( source[ srcOffset + 2] == EQUALS_SIGN ) -- { -- // Two ways to do the same thing. Don't know which way I like best. -- //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 ) -- // | ( ( DECODABET[ source[ srcOffset + 1] ] << 24 ) >>> 12 ); -- int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) -- | ( ( DECODABET[ source[ srcOffset + 1] ] & 0xFF ) << 12 ); -- -- destination[ destOffset ] = (byte)( outBuff >>> 16 ); -- return 1; -- } -- -- // Example: DkL= -- else if( source[ srcOffset + 3 ] == EQUALS_SIGN ) -- { -- // Two ways to do the same thing. Don't know which way I like best. -- //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 ) -- // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 ) -- // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 ); -- int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) -- | ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 ) -- | ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6 ); -- -- destination[ destOffset ] = (byte)( outBuff >>> 16 ); -- destination[ destOffset + 1 ] = (byte)( outBuff >>> 8 ); -- return 2; -- } -- -- // Example: DkLE -- else -- { -- try{ -- // Two ways to do the same thing. Don't know which way I like best. -- //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 ) -- // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 ) -- // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 ) -- // | ( ( DECODABET[ source[ srcOffset + 3 ] ] << 24 ) >>> 24 ); -- int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) -- | ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 ) -- | ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6) -- | ( ( DECODABET[ source[ srcOffset + 3 ] ] & 0xFF ) ); -- -- -- destination[ destOffset ] = (byte)( outBuff >> 16 ); -- destination[ destOffset + 1 ] = (byte)( outBuff >> 8 ); -- destination[ destOffset + 2 ] = (byte)( outBuff ); -- -- return 3; -- }catch( Exception e){ -- System.out.println(""+source[srcOffset]+ ": " + ( DECODABET[ source[ srcOffset ] ] ) ); -- System.out.println(""+source[srcOffset+1]+ ": " + ( DECODABET[ source[ srcOffset + 1 ] ] ) ); -- System.out.println(""+source[srcOffset+2]+ ": " + ( DECODABET[ source[ srcOffset + 2 ] ] ) ); -- System.out.println(""+source[srcOffset+3]+ ": " + ( DECODABET[ source[ srcOffset + 3 ] ] ) ); -- return -1; -- } // end catch -- } -- } // end decodeToBytes -- -- -- -- -- /** -- * Very low-level access to decoding ASCII characters in -- * the form of a byte array. Does not support automatically -- * gunzipping or any other "fancy" features. -- * -- * @param source The Base64 encoded data -- * @param off The offset of where to begin decoding -- * @param len The length of characters to decode -- * @return decoded data -- * @since 1.3 -- */ -- public static byte[] decode( byte[] source, int off, int len, int options ) -- { -- byte[] DECODABET = getDecodabet( options ); -- -- int len34 = len * 3 / 4; -- byte[] outBuff = new byte[ len34 ]; // Upper limit on size of output -- int outBuffPosn = 0; -- -- byte[] b4 = new byte[4]; -- int b4Posn = 0; -- int i = 0; -- byte sbiCrop = 0; -- byte sbiDecode = 0; -- for( i = off; i < off+len; i++ ) -- { -- sbiCrop = (byte)(source[i] & 0x7f); // Only the low seven bits -- sbiDecode = DECODABET[ sbiCrop ]; -- -- if( sbiDecode >= WHITE_SPACE_ENC ) // White space, Equals sign or better -- { -- if( sbiDecode >= EQUALS_SIGN_ENC ) -- { -- b4[ b4Posn++ ] = sbiCrop; -- if( b4Posn > 3 ) -- { -- outBuffPosn += decode4to3( b4, 0, outBuff, outBuffPosn, options ); -- b4Posn = 0; -- -- // If that was the equals sign, break out of 'for' loop -- if( sbiCrop == EQUALS_SIGN ) -- break; -- } // end if: quartet built -- -- } // end if: equals sign or better -- -- } // end if: white space, equals sign or better -- else -- { -- System.err.println( "Bad Base64 input character at " + i + ": " + source[i] + "(decimal)" ); -- return null; -- } // end else: -- } // each input character -- -- byte[] out = new byte[ outBuffPosn ]; -- System.arraycopy( outBuff, 0, out, 0, outBuffPosn ); -- return out; -- } // end decode -- -- -- -- -- /** -- * Decodes data from Base64 notation, automatically -- * detecting gzip-compressed data and decompressing it. -- * -- * @param s the string to decode -- * @return the decoded data -- * @since 1.4 -- */ -- public static byte[] decode( String s ) -- { -- return decode( s, NO_OPTIONS ); -- } -- -- -- /** -- * Decodes data from Base64 notation, automatically -- * detecting gzip-compressed data and decompressing it. -- * -- * @param s the string to decode -- * @param options encode options such as URL_SAFE -- * @return the decoded data -- * @since 1.4 -- */ -- public static byte[] decode( String s, int options ) -- { -- byte[] bytes; -- try -- { -- bytes = s.getBytes( PREFERRED_ENCODING ); -- } // end try -- catch( java.io.UnsupportedEncodingException uee ) -- { -- bytes = s.getBytes(); -- } // end catch -- // -- -- // Decode -- bytes = decode( bytes, 0, bytes.length, options ); -- -- -- // Check to see if it's gzip-compressed -- // GZIP Magic Two-Byte Number: 0x8b1f (35615) -- if( bytes != null && bytes.length >= 4 ) -- { -- -- int head = ((int)bytes[0] & 0xff) | ((bytes[1] << 8) & 0xff00); -- if( java.util.zip.GZIPInputStream.GZIP_MAGIC == head ) -- { -- java.io.ByteArrayInputStream bais = null; -- java.util.zip.GZIPInputStream gzis = null; -- java.io.ByteArrayOutputStream baos = null; -- byte[] buffer = new byte[2048]; -- int length = 0; -- -- try -- { -- baos = new java.io.ByteArrayOutputStream(); -- bais = new java.io.ByteArrayInputStream( bytes ); -- gzis = new java.util.zip.GZIPInputStream( bais ); -- -- while( ( length = gzis.read( buffer ) ) >= 0 ) -- { -- baos.write(buffer,0,length); -- } // end while: reading input -- -- // No error? Get new bytes. -- bytes = baos.toByteArray(); -- -- } // end try -- catch( java.io.IOException e ) -- { -- // Just return originally-decoded bytes -- } // end catch -- finally -- { -- try{ baos.close(); } catch( Exception e ){} -- try{ gzis.close(); } catch( Exception e ){} -- try{ bais.close(); } catch( Exception e ){} -- } // end finally -- -- } // end if: gzipped -- } // end if: bytes.length >= 2 -- -- return bytes; -- } // end decode -- -- -- -- -- /** -- * Attempts to decode Base64 data and deserialize a Java -- * Object within. Returns null if there was an error. -- * -- * @param encodedObject The Base64 data to decode -- * @return The decoded and deserialized object -- * @since 1.5 -- */ -- public static Object decodeToObject( String encodedObject ) -- { -- // Decode and gunzip if necessary -- byte[] objBytes = decode( encodedObject ); -- -- java.io.ByteArrayInputStream bais = null; -- java.io.ObjectInputStream ois = null; -- Object obj = null; -- -- try -- { -- bais = new java.io.ByteArrayInputStream( objBytes ); -- ois = new java.io.ObjectInputStream( bais ); -- -- obj = ois.readObject(); -- } // end try -- catch( java.io.IOException e ) -- { -- e.printStackTrace(); -- obj = null; -- } // end catch -- catch( java.lang.ClassNotFoundException e ) -- { -- e.printStackTrace(); -- obj = null; -- } // end catch -- finally -- { -- try{ bais.close(); } catch( Exception e ){} -- try{ ois.close(); } catch( Exception e ){} -- } // end finally -- -- return obj; -- } // end decodeObject -- -- -- -- /** -- * Convenience method for encoding data to a file. -- * -- * @param dataToEncode byte array of data to encode in base64 form -- * @param filename Filename for saving encoded data -- * @return true if successful, false otherwise -- * -- * @since 2.1 -- */ -- public static boolean encodeToFile( byte[] dataToEncode, String filename ) -- { -- boolean success = false; -- Base64.OutputStream bos = null; -- try -- { -- bos = new Base64.OutputStream( -- new java.io.FileOutputStream( filename ), Base64.ENCODE ); -- bos.write( dataToEncode ); -- success = true; -- } // end try -- catch( java.io.IOException e ) -- { -- -- success = false; -- } // end catch: IOException -- finally -- { -- try{ bos.close(); } catch( Exception e ){} -- } // end finally -- -- return success; -- } // end encodeToFile -- -- -- /** -- * Convenience method for decoding data to a file. -- * -- * @param dataToDecode Base64-encoded data as a string -- * @param filename Filename for saving decoded data -- * @return true if successful, false otherwise -- * -- * @since 2.1 -- */ -- public static boolean decodeToFile( String dataToDecode, String filename ) -- { -- boolean success = false; -- Base64.OutputStream bos = null; -- try -- { -- bos = new Base64.OutputStream( -- new java.io.FileOutputStream( filename ), Base64.DECODE ); -- bos.write( dataToDecode.getBytes( PREFERRED_ENCODING ) ); -- success = true; -- } // end try -- catch( java.io.IOException e ) -- { -- success = false; -- } // end catch: IOException -- finally -- { -- try{ bos.close(); } catch( Exception e ){} -- } // end finally -- -- return success; -- } // end decodeToFile -- -- -- -- -- /** -- * Convenience method for reading a base64-encoded -- * file and decoding it. -- * -- * @param filename Filename for reading encoded data -- * @return decoded byte array or null if unsuccessful -- * -- * @since 2.1 -- */ -- public static byte[] decodeFromFile( String filename ) -- { -- byte[] decodedData = null; -- Base64.InputStream bis = null; -- try -- { -- // Set up some useful variables -- java.io.File file = new java.io.File( filename ); -- byte[] buffer = null; -- int length = 0; -- int numBytes = 0; -- -- // Check for size of file -- if( file.length() > Integer.MAX_VALUE ) -- { -- System.err.println( "File is too big for this convenience method (" + file.length() + " bytes)." ); -- return null; -- } // end if: file too big for int index -- buffer = new byte[ (int)file.length() ]; -- -- // Open a stream -- bis = new Base64.InputStream( -- new java.io.BufferedInputStream( -- new java.io.FileInputStream( file ) ), Base64.DECODE ); -- -- // Read until done -- while( ( numBytes = bis.read( buffer, length, 4096 ) ) >= 0 ) -- length += numBytes; -- -- // Save in a variable to return -- decodedData = new byte[ length ]; -- System.arraycopy( buffer, 0, decodedData, 0, length ); -- -- } // end try -- catch( java.io.IOException e ) -- { -- System.err.println( "Error decoding from file " + filename ); -- } // end catch: IOException -- finally -- { -- try{ bis.close(); } catch( Exception e) {} -- } // end finally -- -- return decodedData; -- } // end decodeFromFile -- -- -- -- /** -- * Convenience method for reading a binary file -- * and base64-encoding it. -- * -- * @param filename Filename for reading binary data -- * @return base64-encoded string or null if unsuccessful -- * -- * @since 2.1 -- */ -- public static String encodeFromFile( String filename ) -- { -- String encodedData = null; -- Base64.InputStream bis = null; -- try -- { -- // Set up some useful variables -- java.io.File file = new java.io.File( filename ); -- byte[] buffer = new byte[ Math.max((int)(file.length() * 1.4),40) ]; // Need max() for math on small files (v2.2.1) -- int length = 0; -- int numBytes = 0; -- -- // Open a stream -- bis = new Base64.InputStream( -- new java.io.BufferedInputStream( -- new java.io.FileInputStream( file ) ), Base64.ENCODE ); -- -- // Read until done -- while( ( numBytes = bis.read( buffer, length, 4096 ) ) >= 0 ) -- length += numBytes; -- -- // Save in a variable to return -- encodedData = new String( buffer, 0, length, Base64.PREFERRED_ENCODING ); -- -- } // end try -- catch( java.io.IOException e ) -- { -- System.err.println( "Error encoding from file " + filename ); -- } // end catch: IOException -- finally -- { -- try{ bis.close(); } catch( Exception e) {} -- } // end finally -- -- return encodedData; -- } // end encodeFromFile -- -- -- -- -- /** -- * Reads infile and encodes it to outfile. -- * -- * @param infile Input file -- * @param outfile Output file -- * @return true if the operation is successful -- * @since 2.2 -- */ -- public static boolean encodeFileToFile( String infile, String outfile ) -- { -- boolean success = false; -- java.io.InputStream in = null; -- java.io.OutputStream out = null; -- try{ -- in = new Base64.InputStream( -- new java.io.BufferedInputStream( -- new java.io.FileInputStream( infile ) ), -- Base64.ENCODE ); -- out = new java.io.BufferedOutputStream( new java.io.FileOutputStream( outfile ) ); -- byte[] buffer = new byte[65536]; // 64K -- int read = -1; -- while( ( read = in.read(buffer) ) >= 0 ){ -- out.write( buffer,0,read ); -- } // end while: through file -- success = true; -- } catch( java.io.IOException exc ){ -- exc.printStackTrace(); -- } finally{ -- try{ in.close(); } catch( Exception exc ){} -- try{ out.close(); } catch( Exception exc ){} -- } // end finally -- -- return success; -- } // end encodeFileToFile -- -- -- -- /** -- * Reads infile and decodes it to outfile. -- * -- * @param infile Input file -- * @param outfile Output file -- * @return true if the operation is successful -- * @since 2.2 -- */ -- public static boolean decodeFileToFile( String infile, String outfile ) -- { -- boolean success = false; -- java.io.InputStream in = null; -- java.io.OutputStream out = null; -- try{ -- in = new Base64.InputStream( -- new java.io.BufferedInputStream( -- new java.io.FileInputStream( infile ) ), -- Base64.DECODE ); -- out = new java.io.BufferedOutputStream( new java.io.FileOutputStream( outfile ) ); -- byte[] buffer = new byte[65536]; // 64K -- int read = -1; -- while( ( read = in.read(buffer) ) >= 0 ){ -- out.write( buffer,0,read ); -- } // end while: through file -- success = true; -- } catch( java.io.IOException exc ){ -- exc.printStackTrace(); -- } finally{ -- try{ in.close(); } catch( Exception exc ){} -- try{ out.close(); } catch( Exception exc ){} -- } // end finally -- -- return success; -- } // end decodeFileToFile -- -- -- /* ******** I N N E R C L A S S I N P U T S T R E A M ******** */ -- -- -- -- /** -- * A {@link Base64.InputStream} will read data from another -- * java.io.InputStream, given in the constructor, -- * and encode/decode to/from Base64 notation on the fly. -- * -- * @see Base64 -- * @since 1.3 -- */ -- public static class InputStream extends java.io.FilterInputStream -- { -- private boolean encode; // Encoding or decoding -- private int position; // Current position in the buffer -- private byte[] buffer; // Small buffer holding converted data -- private int bufferLength; // Length of buffer (3 or 4) -- private int numSigBytes; // Number of meaningful bytes in the buffer -- private int lineLength; -- private boolean breakLines; // Break lines at less than 80 characters -- private int options; // Record options used to create the stream. -- private byte[] alphabet; // Local copies to avoid extra method calls -- private byte[] decodabet; // Local copies to avoid extra method calls -- -- -- /** -- * Constructs a {@link Base64.InputStream} in DECODE mode. -- * -- * @param in the java.io.InputStream from which to read data. -- * @since 1.3 -- */ -- public InputStream( java.io.InputStream in ) -- { -- this( in, DECODE ); -- } // end constructor -- -- -- /** -- * Constructs a {@link Base64.InputStream} in -- * either ENCODE or DECODE mode. -- *

-- * Valid options:

--         *   ENCODE or DECODE: Encode or Decode as data is read.
--         *   DONT_BREAK_LINES: don't break lines at 76 characters
--         *     (only meaningful when encoding)
--         *     Note: Technically, this makes your encoding non-compliant.
--         * 
-- *

-- * Example: new Base64.InputStream( in, Base64.DECODE ) -- * -- * -- * @param in the java.io.InputStream from which to read data. -- * @param options Specified options -- * @see Base64#ENCODE -- * @see Base64#DECODE -- * @see Base64#DONT_BREAK_LINES -- * @since 2.0 -- */ -- public InputStream( java.io.InputStream in, int options ) -- { -- super( in ); -- this.breakLines = (options & DONT_BREAK_LINES) != DONT_BREAK_LINES; -- this.encode = (options & ENCODE) == ENCODE; -- this.bufferLength = encode ? 4 : 3; -- this.buffer = new byte[ bufferLength ]; -- this.position = -1; -- this.lineLength = 0; -- this.options = options; // Record for later, mostly to determine which alphabet to use -- this.alphabet = getAlphabet(options); -- this.decodabet = getDecodabet(options); -- } // end constructor -- -- /** -- * Reads enough of the input stream to convert -- * to/from Base64 and returns the next byte. -- * -- * @return next byte -- * @since 1.3 -- */ -- public int read() throws java.io.IOException -- { -- // Do we need to get data? -- if( position < 0 ) -- { -- if( encode ) -- { -- byte[] b3 = new byte[3]; -- int numBinaryBytes = 0; -- for( int i = 0; i < 3; i++ ) -- { -- try -- { -- int b = in.read(); -- -- // If end of stream, b is -1. -- if( b >= 0 ) -- { -- b3[i] = (byte)b; -- numBinaryBytes++; -- } // end if: not end of stream -- -- } // end try: read -- catch( java.io.IOException e ) -- { -- // Only a problem if we got no data at all. -- if( i == 0 ) -- throw e; -- -- } // end catch -- } // end for: each needed input byte -- -- if( numBinaryBytes > 0 ) -- { -- encode3to4( b3, 0, numBinaryBytes, buffer, 0, options ); -- position = 0; -- numSigBytes = 4; -- } // end if: got data -- else -- { -- return -1; -- } // end else -- } // end if: encoding -- -- // Else decoding -- else -- { -- byte[] b4 = new byte[4]; -- int i = 0; -- for( i = 0; i < 4; i++ ) -- { -- // Read four "meaningful" bytes: -- int b = 0; -- do{ b = in.read(); } -- while( b >= 0 && decodabet[ b & 0x7f ] <= WHITE_SPACE_ENC ); -- -- if( b < 0 ) -- break; // Reads a -1 if end of stream -- -- b4[i] = (byte)b; -- } // end for: each needed input byte -- -- if( i == 4 ) -- { -- numSigBytes = decode4to3( b4, 0, buffer, 0, options ); -- position = 0; -- } // end if: got four characters -- else if( i == 0 ){ -- return -1; -- } // end else if: also padded correctly -- else -- { -- // Must have broken out from above. -- throw new java.io.IOException( "Improperly padded Base64 input." ); -- } // end -- -- } // end else: decode -- } // end else: get data -- -- // Got data? -- if( position >= 0 ) -- { -- // End of relevant data? -- if( /*!encode &&*/ position >= numSigBytes ) -- return -1; -- -- if( encode && breakLines && lineLength >= MAX_LINE_LENGTH ) -- { -- lineLength = 0; -- return '\n'; -- } // end if -- else -- { -- lineLength++; // This isn't important when decoding -- // but throwing an extra "if" seems -- // just as wasteful. -- -- int b = buffer[ position++ ]; -- -- if( position >= bufferLength ) -- position = -1; -- -- return b & 0xFF; // This is how you "cast" a byte that's -- // intended to be unsigned. -- } // end else -- } // end if: position >= 0 -- -- // Else error -- else -- { -- // When JDK1.4 is more accepted, use an assertion here. -- throw new java.io.IOException( "Error in Base64 code reading stream." ); -- } // end else -- } // end read -- -- -- /** -- * Calls {@link #read()} repeatedly until the end of stream -- * is reached or len bytes are read. -- * Returns number of bytes read into array or -1 if -- * end of stream is encountered. -- * -- * @param dest array to hold values -- * @param off offset for array -- * @param len max number of bytes to read into array -- * @return bytes read into array or -1 if end of stream is encountered. -- * @since 1.3 -- */ -- public int read( byte[] dest, int off, int len ) throws java.io.IOException -- { -- int i; -- int b; -- for( i = 0; i < len; i++ ) -- { -- b = read(); -- -- //if( b < 0 && i == 0 ) -- // return -1; -- -- if( b >= 0 ) -- dest[off + i] = (byte)b; -- else if( i == 0 ) -- return -1; -- else -- break; // Out of 'for' loop -- } // end for: each byte read -- return i; -- } // end read -- -- } // end inner class InputStream -- -- -- -- -- -- -- /* ******** I N N E R C L A S S O U T P U T S T R E A M ******** */ -- -- -- -- /** -- * A {@link Base64.OutputStream} will write data to another -- * java.io.OutputStream, given in the constructor, -- * and encode/decode to/from Base64 notation on the fly. -- * -- * @see Base64 -- * @since 1.3 -- */ -- public static class OutputStream extends java.io.FilterOutputStream -- { -- private boolean encode; -- private int position; -- private byte[] buffer; -- private int bufferLength; -- private int lineLength; -- private boolean breakLines; -- private byte[] b4; // Scratch used in a few places -- private boolean suspendEncoding; -- private int options; // Record for later -- private byte[] alphabet; // Local copies to avoid extra method calls -- private byte[] decodabet; // Local copies to avoid extra method calls -- -- /** -- * Constructs a {@link Base64.OutputStream} in ENCODE mode. -- * -- * @param out the java.io.OutputStream to which data will be written. -- * @since 1.3 -- */ -- public OutputStream( java.io.OutputStream out ) -- { -- this( out, ENCODE ); -- } // end constructor -- -- -- /** -- * Constructs a {@link Base64.OutputStream} in -- * either ENCODE or DECODE mode. -- *

-- * Valid options:

--         *   ENCODE or DECODE: Encode or Decode as data is read.
--         *   DONT_BREAK_LINES: don't break lines at 76 characters
--         *     (only meaningful when encoding)
--         *     Note: Technically, this makes your encoding non-compliant.
--         * 
-- *

-- * Example: new Base64.OutputStream( out, Base64.ENCODE ) -- * -- * @param out the java.io.OutputStream to which data will be written. -- * @param options Specified options. -- * @see Base64#ENCODE -- * @see Base64#DECODE -- * @see Base64#DONT_BREAK_LINES -- * @since 1.3 -- */ -- public OutputStream( java.io.OutputStream out, int options ) -- { -- super( out ); -- this.breakLines = (options & DONT_BREAK_LINES) != DONT_BREAK_LINES; -- this.encode = (options & ENCODE) == ENCODE; -- this.bufferLength = encode ? 3 : 4; -- this.buffer = new byte[ bufferLength ]; -- this.position = 0; -- this.lineLength = 0; -- this.suspendEncoding = false; -- this.b4 = new byte[4]; -- this.options = options; -- this.alphabet = getAlphabet(options); -- this.decodabet = getDecodabet(options); -- } // end constructor -- -- -- /** -- * Writes the byte to the output stream after -- * converting to/from Base64 notation. -- * When encoding, bytes are buffered three -- * at a time before the output stream actually -- * gets a write() call. -- * When decoding, bytes are buffered four -- * at a time. -- * -- * @param theByte the byte to write -- * @since 1.3 -- */ -- public void write(int theByte) throws java.io.IOException -- { -- // Encoding suspended? -- if( suspendEncoding ) -- { -- super.out.write( theByte ); -- return; -- } // end if: supsended -- -- // Encode? -- if( encode ) -- { -- buffer[ position++ ] = (byte)theByte; -- if( position >= bufferLength ) // Enough to encode. -- { -- out.write( encode3to4( b4, buffer, bufferLength, options ) ); -- -- lineLength += 4; -- if( breakLines && lineLength >= MAX_LINE_LENGTH ) -- { -- out.write( NEW_LINE ); -- lineLength = 0; -- } // end if: end of line -- -- position = 0; -- } // end if: enough to output -- } // end if: encoding -- -- // Else, Decoding -- else -- { -- // Meaningful Base64 character? -- if( decodabet[ theByte & 0x7f ] > WHITE_SPACE_ENC ) -- { -- buffer[ position++ ] = (byte)theByte; -- if( position >= bufferLength ) // Enough to output. -- { -- int len = Base64.decode4to3( buffer, 0, b4, 0, options ); -- out.write( b4, 0, len ); -- //out.write( Base64.decode4to3( buffer ) ); -- position = 0; -- } // end if: enough to output -- } // end if: meaningful base64 character -- else if( decodabet[ theByte & 0x7f ] != WHITE_SPACE_ENC ) -- { -- throw new java.io.IOException( "Invalid character in Base64 data." ); -- } // end else: not white space either -- } // end else: decoding -- } // end write -- -- -- -- /** -- * Calls {@link #write(int)} repeatedly until len -- * bytes are written. -- * -- * @param theBytes array from which to read bytes -- * @param off offset for array -- * @param len max number of bytes to read into array -- * @since 1.3 -- */ -- public void write( byte[] theBytes, int off, int len ) throws java.io.IOException -- { -- // Encoding suspended? -- if( suspendEncoding ) -- { -- super.out.write( theBytes, off, len ); -- return; -- } // end if: supsended -- -- for( int i = 0; i < len; i++ ) -- { -- write( theBytes[ off + i ] ); -- } // end for: each byte written -- -- } // end write -- -- -- -- /** -- * Method added by PHIL. [Thanks, PHIL. -Rob] -- * This pads the buffer without closing the stream. -- */ -- public void flushBase64() throws java.io.IOException -- { -- if( position > 0 ) -- { -- if( encode ) -- { -- out.write( encode3to4( b4, buffer, position, options ) ); -- position = 0; -- } // end if: encoding -- else -- { -- throw new java.io.IOException( "Base64 input not properly padded." ); -- } // end else: decoding -- } // end if: buffer partially full -- -- } // end flush -- -- -- /** -- * Flushes and closes (I think, in the superclass) the stream. -- * -- * @since 1.3 -- */ -- public void close() throws java.io.IOException -- { -- // 1. Ensure that pending characters are written -- flushBase64(); -- -- // 2. Actually close the stream -- // Base class both flushes and closes. -- super.close(); -- -- buffer = null; -- out = null; -- } // end close -- -- -- -- /** -- * Suspends encoding of the stream. -- * May be helpful if you need to embed a piece of -- * base640-encoded data in a stream. -- * -- * @since 1.5.1 -- */ -- public void suspendEncoding() throws java.io.IOException -- { -- flushBase64(); -- this.suspendEncoding = true; -- } // end suspendEncoding -- -- -- /** -- * Resumes encoding of the stream. -- * May be helpful if you need to embed a piece of -- * base640-encoded data in a stream. -- * -- * @since 1.5.1 -- */ -- public void resumeEncoding() -- { -- this.suspendEncoding = false; -- } // end resumeEncoding -- -- -- -- } // end inner class OutputStream -- -- --} // end class Base64 -diff --git a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTFilterOLEExtracter.java b/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTFilterOLEExtracter.java -deleted file mode 100644 -index 078e031..0000000 ---- a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTFilterOLEExtracter.java -+++ /dev/null -@@ -1,395 +0,0 @@ --package com.sun.star.comp.xsltfilter; -- --/************************************************************************ -- * -- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -- * -- * Copyright 2000, 2010 Oracle and/or its affiliates. -- * -- * OpenOffice.org - a multi-platform office productivity suite -- * -- * This file is part of OpenOffice.org. -- * -- * OpenOffice.org is free software: you can redistribute it and/or modify -- * it under the terms of the GNU Lesser General Public License version 3 -- * only, as published by the Free Software Foundation. -- * -- * OpenOffice.org is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU Lesser General Public License version 3 for more details -- * (a copy is included in the LICENSE file that accompanied this code). -- * -- * You should have received a copy of the GNU Lesser General Public License -- * version 3 along with OpenOffice.org. If not, see -- * -- * for a copy of the LGPLv3 License. -- * -- ************************************************************************/ -- --//Standard Java classes --import java.io.FileWriter; --import java.util.zip.Inflater; --import java.util.zip.Deflater; -- --//StarOffice Interfaces and UNO --import com.sun.star.bridge.XBridgeFactory; --import com.sun.star.bridge.XBridge; --import com.sun.star.connection.XConnector; --import com.sun.star.connection.XConnection; --import com.sun.star.container.XNameContainer; --import com.sun.star.embed.XTransactedObject; --import com.sun.star.io.XStream; --import com.sun.star.io.XSeekable; --import com.sun.star.io.XInputStream; --import com.sun.star.io.XOutputStream; --import com.sun.star.lang.XMultiServiceFactory; --import com.sun.star.lang.XComponent; --import com.sun.star.uno.XComponentContext; --import com.sun.star.uno.UnoRuntime; -- --/** This class is an xalan extension class. It provider 2 elements -- * and 2 functions to used in xslt script. With this elements and functions -- * we can convert between oledata between Wordml and OOo flat. -- * To use it, we need a running OOo. There are two ways to get the XMultiServiceFactory. -- * When called by OOo xslt filter, an XMultiServiceFactory will be add to the transformer -- * by setParameter(), then we can get it using getParameter(). Another way is using an -- * XConnection to connect to a running OOo. We connect to a running OOo, we need know the -- * uno url. It can be set in the xslt script. The default uno url is: -- * "uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -- * see XSLTXalanOLEExtracter.java -- */ --public class XSLTFilterOLEExtracter { -- -- protected XMultiServiceFactory m_xMSF; -- protected XNameContainer m_Storage; -- protected XStream m_RootStream; -- protected XConnection m_Connection; -- protected String sConnectionString; -- private static final String UNO_URL = "uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"; -- -- public XSLTFilterOLEExtracter() { -- } -- -- public void init(String unoUrl) { -- if (unoUrl == null || unoUrl.equals("")) { -- unoUrl = UNO_URL; -- } -- debugln("Init with uno url=" + unoUrl); -- if (null == m_xMSF) { -- try { -- m_xMSF = connectAwareGetServiceFactory(); -- } catch (Exception ex) { -- System.err.println("Could not connect to the office '" + unoUrl + "'\n" + ex.getMessage()); -- } -- } -- } -- -- public void exit() { -- m_Storage = null; -- m_xMSF = null; -- if (null != m_Connection) { -- try { -- m_Connection.close(); -- } catch (Exception ex) { -- System.err.println("Could not close connection to the office.\n" + ex.getMessage()); -- } -- } -- } -- //If aName = "oledata.mso" then we load the root storage from the given base64 string -- //Otherwise we compress the stream and add it to the root storage under the name of aName -- public void insertByName(String aName, String aBase64) { -- debugln("insertByName(" + aName + " : " + aBase64 + ")"); -- if (aName.equals("oledata.mso")) { -- loadRootStorageFromBase64(aBase64); -- } else { -- ensureCreateRootStorage(); -- insertSubStorage(aName, aBase64); -- } -- } -- //If aName = "oledata.mso" then we return the base64 encoded string of the root storage -- //Otherwise we return the base64 encoded string of the sub stream under the name of aName -- public String getByName(String aName) { -- if (aName.equals("oledata.mso")) { -- try { -- //get the length and seek to 0 -- XSeekable xSeek = (XSeekable) UnoRuntime.queryInterface(XSeekable.class, m_RootStream); -- int oleLength = (int) xSeek.getLength(); -- xSeek.seek(0); -- xSeek = null; -- //read all bytes -- XInputStream xInput = m_RootStream.getInputStream(); -- byte oledata[][] = new byte[1][oleLength]; -- xInput.readBytes(oledata, oleLength); -- //return the base64 encoded string -- return Base64.encodeBytes(oledata[0]); -- } catch (Exception ex) { -- ex.printStackTrace(); -- } -- } else { -- return getEncodedSubStorage(aName); -- } -- return ""; -- } -- //get the sub stream which name = aName, decompress it and return the base64 encoded string -- public String getEncodedSubStorage(String aName) { -- debugln("getByName(" + aName + ")"); -- try { -- if (!m_Storage.hasByName(aName)) { -- return "Not Found:" + aName; -- } -- Object oSubStream = m_Storage.getByName(aName); -- if (oSubStream == null) { -- return "Not Found:" + aName; -- } -- XInputStream xSubStream = (XInputStream) UnoRuntime.queryInterface(XInputStream.class, -- oSubStream); -- if (xSubStream == null) { -- return "Not Found:" + aName; -- } -- //The first four byte are the length of the uncompressed data -- byte pLength[][] = new byte[1][4]; -- XSeekable xSeek = (XSeekable) UnoRuntime.queryInterface(XSeekable.class, xSubStream); -- xSeek.seek(0); -- xSeek = null; -- //Get the uncompressed length -- int readbytes = xSubStream.readBytes(pLength, 4); -- if (4 != readbytes) { -- System.out.println("readbytes:" + readbytes); -- return "Can not read the length."; -- } -- int oleLength = (pLength[0][0] << 0) + (pLength[0][1] << 8) + (pLength[0][2] << 16) + (pLength[0][3] << 24); -- byte pContents[][] = new byte[1][oleLength]; -- //Read all bytes. The compressed length should less then the uncompressed length -- readbytes = xSubStream.readBytes(pContents, oleLength); -- if (oleLength < readbytes) { -- return "oleLength :" + oleLength + " readbytes: " + readbytes; -- } -- -- // Decompress the bytes -- Inflater decompresser = new Inflater(); -- decompresser.setInput(pContents[0], 0, readbytes); -- byte[] result = new byte[oleLength]; -- int resultLength = decompresser.inflate(result); -- decompresser.end(); -- -- //return the base64 string of the uncompressed data -- return Base64.encodeBytes(result); -- } catch (Exception ex) { -- ex.printStackTrace(); -- } -- return ""; -- } -- -- public XStream CreateTempFileStream(XMultiServiceFactory xMSF) { -- // try to get temporary file representation -- XStream xTempFileStream = null; -- try { -- Object oTempFile = xMSF.createInstance("com.sun.star.io.TempFile"); -- xTempFileStream = (XStream) UnoRuntime.queryInterface(XStream.class, oTempFile); -- } catch (Exception e) { -- } -- -- if (xTempFileStream == null) { -- System.out.println("Can't create temporary file!"); -- } -- -- return xTempFileStream; -- } -- //decode the base64 string and create an com.sun.star.embed.OLESimpleStorage from it -- public void loadRootStorageFromBase64(String aBase64) { -- try { -- //Decode and write the data to an temp stream -- byte[] oledata = Base64.decode(aBase64); -- m_RootStream = CreateTempFileStream(m_xMSF); -- XOutputStream xOutput = m_RootStream.getOutputStream(); -- xOutput.writeBytes(oledata); -- xOutput.flush(); -- //Get the input stream and seek to begin -- XInputStream xInput = m_RootStream.getInputStream(); -- XSeekable xSeek = (XSeekable) UnoRuntime.queryInterface(XSeekable.class, xInput); -- xSeek.seek(0); -- oledata = null; -- xSeek = null; -- -- //create an com.sun.star.embed.OLESimpleStorage from the temp stream -- Object pArgs[] = new Object[1]; -- pArgs[0] = (Object) xInput; -- Object oTempStorage = m_xMSF.createInstanceWithArguments("com.sun.star.embed.OLESimpleStorage", pArgs); -- pArgs = null; -- -- m_Storage = (XNameContainer) UnoRuntime.queryInterface(XNameContainer.class, oTempStorage); -- } catch (Exception e) { -- e.printStackTrace(); -- } -- } -- //Create a empty OLESimpleStorage if there is not one -- public void ensureCreateRootStorage() { -- if (null == m_RootStream || null == m_Storage) { -- try { -- m_RootStream = CreateTempFileStream(m_xMSF); -- -- Object pArgs[] = new Object[1]; -- pArgs[0] = (Object) m_RootStream; -- Object oTempStorage = m_xMSF.createInstanceWithArguments("com.sun.star.embed.OLESimpleStorage", pArgs); -- pArgs = null; -- -- m_Storage = (XNameContainer) UnoRuntime.queryInterface(XNameContainer.class, oTempStorage); -- } catch (Exception e) { -- e.printStackTrace(); -- } -- } -- } -- //decode the base64 string and insert the length and the compressed data of it to -- //the root storage as a sub stream under aName -- public void insertSubStorage(String aName, String aBase64) { -- try { -- //decode the base64 string -- byte[] oledata = Base64.decode(aBase64); -- //create a temp stream to write data to -- XStream subStream = CreateTempFileStream(m_xMSF); -- XInputStream xInput = subStream.getInputStream(); -- XOutputStream xOutput = subStream.getOutputStream(); -- //write the length to the temp stream -- byte oleHead[] = new byte[4]; -- oleHead[0] = (byte) ((oledata.length >>> 0) & 0xFF); -- oleHead[1] = (byte) ((oledata.length >>> 8) & 0xFF); -- oleHead[2] = (byte) ((oledata.length >>> 16) & 0xFF); -- oleHead[3] = (byte) ((oledata.length >>> 24) & 0xFF); -- xOutput.writeBytes(oleHead); -- -- // Compress the bytes -- byte[] output = new byte[oledata.length]; -- Deflater compresser = new Deflater(); -- compresser.setInput(oledata); -- compresser.finish(); -- int compressedDataLength = compresser.deflate(output); -- //realloc the data length -- byte[] compressedBytes = new byte[compressedDataLength]; -- for (int i = 0; i < compressedDataLength; i++) { -- compressedBytes[i] = output[i]; -- } -- -- //write the compressed data to the temp stream -- xOutput.writeBytes(compressedBytes); -- //seek to 0 -- XSeekable xSeek = (XSeekable) UnoRuntime.queryInterface(XSeekable.class, xInput); -- xSeek.seek(0); -- xSeek = null; -- oledata = null; -- -- //insert the temp stream as a sub stream and use an XTransactedObject to commit it immediately -- XTransactedObject xTransact = (XTransactedObject) UnoRuntime.queryInterface(XTransactedObject.class, m_Storage); -- m_Storage.insertByName(aName, xInput); -- xTransact.commit(); -- xTransact = null; -- -- } catch (Exception e) { -- e.printStackTrace(); -- } -- } -- -- /** separtates the uno-url into 3 different parts. -- */ -- protected static String[] parseUnoUrl(String url) { -- String[] aRet = new String[3]; -- -- if (!url.startsWith("uno:")) { -- return null; -- } -- -- int semicolon = url.indexOf(';'); -- if (semicolon == -1) { -- return null; -- } -- -- aRet[0] = url.substring(4, semicolon); -- int nextSemicolon = url.indexOf(';', semicolon + 1); -- -- if (semicolon == -1) { -- return null; -- } -- aRet[1] = url.substring(semicolon + 1, nextSemicolon); -- -- aRet[2] = url.substring(nextSemicolon + 1); -- return aRet; -- } -- //connect to running OOo and keep an XConnection object so that we can disconnect from OOo as we wish -- protected XMultiServiceFactory connectAwareGetServiceFactory() throws com.sun.star.uno.Exception, -- com.sun.star.uno.RuntimeException, -- Exception { -- -- // Get component context -- XComponentContext xComponentContext = -- com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null); -- -- // instantiate connector service -- Object x = xComponentContext.getServiceManager().createInstanceWithContext( -- "com.sun.star.connection.Connector", xComponentContext); -- -- XConnector xConnector = (XConnector) UnoRuntime.queryInterface(XConnector.class, x); -- -- String a[] = parseUnoUrl(sConnectionString); -- if (null == a) { -- throw new com.sun.star.uno.Exception("Couldn't parse uno-url " + sConnectionString); -- } -- -- // connect using the connection string part of the uno-url only. -- m_Connection = xConnector.connect(a[0]); -- -- x = xComponentContext.getServiceManager().createInstanceWithContext( -- "com.sun.star.bridge.BridgeFactory", xComponentContext); -- -- XBridgeFactory xBridgeFactory = (XBridgeFactory) UnoRuntime.queryInterface( -- XBridgeFactory.class, x); -- -- // create a nameless bridge with no instance provider -- // using the middle part of the uno-url -- XBridge bridge = xBridgeFactory.createBridge("", a[1], m_Connection, null); -- -- // query for the XComponent interface and add this as event listener -- XComponent xComponent = (XComponent) UnoRuntime.queryInterface( -- XComponent.class, bridge); -- -- // get the remote instance -- x = bridge.getInstance(a[2]); -- -- // Did the remote server export this object ? -- if (null == x) { -- throw new com.sun.star.uno.Exception( -- "Server didn't provide an instance for" + a[2], null); -- } -- -- XMultiServiceFactory xFac = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, x); -- return xFac; -- } -- protected static boolean DEBUG = false; -- protected static boolean DEBUGCHK = false; -- protected static String debugfile; -- -- protected static void debugln(String s) { -- debug(s + "\n"); -- } -- -- protected static void debug(String s) { -- if (!DEBUGCHK) { -- if (System.getProperty("xsltfilter.debug") == null) { -- DEBUGCHK = true; -- return; -- } else { -- debugfile = System.getProperty("xsltfilter.debug"); -- DEBUG = true; -- } -- } -- if (!DEBUG) { -- return; -- } -- try { -- FileWriter dbgwriter = new FileWriter(debugfile, true); -- dbgwriter.write(s); -- dbgwriter.close(); -- } catch (Exception e) { -- e.printStackTrace(); -- } -- } --} -diff --git a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java b/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java -deleted file mode 100644 -index 7036646..0000000 ---- a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java -+++ /dev/null -@@ -1,506 +0,0 @@ --package com.sun.star.comp.xsltfilter; -- --/************************************************************************ -- * -- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -- * -- * Copyright 2000, 2010 Oracle and/or its affiliates. -- * -- * OpenOffice.org - a multi-platform office productivity suite -- * -- * This file is part of OpenOffice.org. -- * -- * OpenOffice.org is free software: you can redistribute it and/or modify -- * it under the terms of the GNU Lesser General Public License version 3 -- * only, as published by the Free Software Foundation. -- * -- * OpenOffice.org is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU Lesser General Public License version 3 for more details -- * (a copy is included in the LICENSE file that accompanied this code). -- * -- * You should have received a copy of the GNU Lesser General Public License -- * version 3 along with OpenOffice.org. If not, see -- * -- * for a copy of the LGPLv3 License. -- * -- ************************************************************************/ -- --//Standard Java classes --import java.io.BufferedInputStream; --import java.io.BufferedOutputStream; --import java.io.File; --import java.io.FileOutputStream; --import java.io.InputStream; --import java.io.PrintStream; --import java.io.StringReader; --import java.net.URL; --import java.net.URLConnection; --import java.util.Enumeration; --import java.util.Hashtable; --import java.util.Vector; -- --// Imported TraX classes --import javax.xml.parsers.SAXParserFactory; --import javax.xml.transform.Source; --import javax.xml.transform.Transformer; --import javax.xml.transform.TransformerFactory; --import javax.xml.transform.URIResolver; --import javax.xml.transform.sax.SAXSource; --import javax.xml.transform.stream.StreamResult; --import javax.xml.transform.stream.StreamSource; --import org.xml.sax.EntityResolver; --import org.xml.sax.InputSource; --import org.xml.sax.SAXException; --import org.xml.sax.XMLReader; -- --//StarOffice Interfaces and UNO --import com.sun.star.beans.NamedValue; --import com.sun.star.comp.loader.FactoryHelper; --import com.sun.star.io.XActiveDataControl; --import com.sun.star.io.XActiveDataSink; --import com.sun.star.io.XActiveDataSource; --import com.sun.star.io.XInputStream; --import com.sun.star.io.XOutputStream; --import com.sun.star.io.XSeekable; --import com.sun.star.io.XStreamListener; --import com.sun.star.lang.XInitialization; --import com.sun.star.lang.XMultiServiceFactory; --import com.sun.star.lang.XServiceInfo; --import com.sun.star.lang.XServiceName; --import com.sun.star.lang.XSingleServiceFactory; --import com.sun.star.lang.XTypeProvider; --import com.sun.star.registry.XRegistryKey; --import com.sun.star.uno.AnyConverter; --import com.sun.star.uno.Type; --import com.sun.star.uno.UnoRuntime; --import com.sun.star.xml.xslt.XXSLTTransformer; -- --//Uno to java Adaptor --import com.sun.star.lib.uno.adapter.XInputStreamToInputStreamAdapter; --import com.sun.star.lib.uno.adapter.XOutputStreamToOutputStreamAdapter; --import javax.xml.transform.Templates; -- --import net.sf.saxon.FeatureKeys; -- --/** This outer class provides an inner class to implement the service -- * description and a method to instantiate the -- * component on demand (__getServiceFactory()). -- */ --public class XSLTransformer -- implements XTypeProvider, XServiceName, XServiceInfo, XXSLTTransformer, -- URIResolver, EntityResolver { -- -- /** -- * This component provides java based XSL transformations -- * A SAX based interface is not feasible when crossing language bordes -- * since too much time would be wasted by bridging the events between environments -- * example: 190 pages document, 82000 events 8seconds transform 40(!) sec. bridging -- * -- */ -- private XInputStream m_xis; -- private XOutputStream m_xos; // private static HashMap templatecache; -- private static final String STATSPROP = "XSLTransformer.statsfile"; -- private static PrintStream statsp; -- private String stylesheeturl; -- private String targeturl; -- private String targetbaseurl; -- private String sourceurl; -- private String sourcebaseurl; -- private String pubtype = new String(); -- private String systype = new String(); // processing thread -- private Thread t; // listeners -- private Vector listeners = new Vector(); // -- private XMultiServiceFactory svcfactory; // cache for transformations by stylesheet -- private static Hashtable xsltReferences = new Hashtable(); -- // struct for cached stylesheets -- private static class Transformation { -- -- public Templates cachedXSLT; -- public long lastmod; -- } -- // Resolve URIs to an empty source -- public Source resolve(String href, String base) { -- return new StreamSource(new StringReader("")); -- } -- -- public InputSource resolveEntity(String publicId, String systemId) throws SAXException, java.io.IOException { -- return new InputSource(new StringReader("")); -- } -- // --- Initialization --- -- public XSLTransformer(XMultiServiceFactory msf) { -- svcfactory = msf; -- } -- -- public void initialize(Object[] args) throws com.sun.star.uno.Exception { -- // some configurable debugging -- String statsfilepath = null; -- if ((statsfilepath = System.getProperty(STATSPROP)) != null) { -- try { -- File statsfile = new File(statsfilepath); -- statsp = new PrintStream(new FileOutputStream(statsfile.getPath(), false)); -- } catch (java.lang.Exception e) { -- System.err.println("XSLTransformer: could not open statsfile'" + statsfilepath + "'"); -- System.err.println(" " + e.getClass().getName() + ": " + e.getMessage()); -- System.err.println(" output disabled"); -- } -- } -- -- Object[] values = (Object[]) args[0]; -- -- // reading the values -- NamedValue nv = null; -- debug("The transformation's parameters as 'name = value' pairs:\n"); -- -- for (int i = 0; i < values.length; i++) { -- nv = (NamedValue) AnyConverter.toObject(new Type(NamedValue.class), values[i]); -- -- if (nv.Name != null && !nv.Name.equals("")) { -- debug(nv.Name + " = " + nv.Value); -- } -- -- if (nv.Name.equals("StylesheetURL")) { -- stylesheeturl = (String) AnyConverter.toObject( -- new Type(String.class), nv.Value); -- } else if (nv.Name.equals("SourceURL")) { -- sourceurl = (String) AnyConverter.toObject( -- new Type(String.class), nv.Value); -- } else if (nv.Name.equals("TargetURL")) { -- targeturl = (String) AnyConverter.toObject( -- new Type(String.class), nv.Value); -- } else if (nv.Name.equals("SourceBaseURL")) { -- sourcebaseurl = (String) AnyConverter.toObject( -- new Type(String.class), nv.Value); -- } else if (nv.Name.equals("TargetBaseURL")) { -- targetbaseurl = (String) AnyConverter.toObject( -- new Type(String.class), nv.Value); -- } else if (nv.Name.equals("SystemType")) { -- systype = (String) AnyConverter.toObject( -- new Type(String.class), nv.Value); -- } else if (nv.Name.equals("PublicType")) { -- pubtype = (String) AnyConverter.toObject( -- new Type(String.class), nv.Value); -- } -- } -- } -- -- // --- XActiveDataSink xistream = aStream; -- public void setInputStream(XInputStream aStream) { -- m_xis = aStream; -- } -- -- public com.sun.star.io.XInputStream getInputStream() { -- return m_xis; -- } -- -- // --- XActiveDataSource -- public void setOutputStream(XOutputStream aStream) { -- m_xos = aStream; -- } -- -- public com.sun.star.io.XOutputStream getOutputStream() { -- return m_xos; -- } -- -- // --- XActiveDataControl -- public void addListener(XStreamListener aListener) { -- if (aListener != null && !listeners.contains(aListener)) { -- listeners.add(aListener); -- } -- } -- -- public void removeListener(XStreamListener aListener) { -- if (aListener != null) { -- listeners.removeElement(aListener); -- } -- -- } -- -- public void start() { -- // notify listeners -- t = new Thread() { -- -- @Override -- public void run() { -- -- // Local variabes used outside try block in finally block -- InputStream is = null; -- Source source = null; -- BufferedOutputStream os = null; -- PrintStream origOut = System.out; -- PrintStream origErr = System.err; -- if (statsp != null) { -- System.setErr(statsp); -- System.setOut(statsp); -- } -- try { -- debug("\n\nStarting transformation..."); -- -- // Set up context class loader for SAXParserFactory and -- // TransformerFactory calls below: -- setContextClassLoader(this.getClass().getClassLoader()); -- -- for (Enumeration e = listeners.elements(); e.hasMoreElements();) { -- XStreamListener l = (XStreamListener) e.nextElement(); -- l.started(); -- } -- -- XSeekable xseek = (XSeekable) UnoRuntime.queryInterface(XSeekable.class, m_xis); -- if (xseek != null) { -- xseek.seek(0); -- } -- -- is = new BufferedInputStream( -- new XInputStreamToInputStreamAdapter(m_xis)); -- //Source xmlsource = new StreamSource(xmlinput); -- SAXParserFactory spf = SAXParserFactory.newInstance(); -- spf.setValidating(false); -- spf.setNamespaceAware(true); -- XMLReader xmlReader = spf.newSAXParser().getXMLReader(); -- xmlReader.setEntityResolver(XSLTransformer.this); -- source = new SAXSource(xmlReader, new InputSource(is)); -- -- // in order to help performance and to remedy a a possible memory -- // leak in xalan, where it seems, that Transformer instances cannot -- // be reclaimed though they are no longer referenced here, we use -- // a cache of weak references (ie. xsltReferences) created for specific -- // style sheet URLs see also #i48384# -- -- Templates xsltTemplate = null; -- Transformer transformer = null; -- Transformation transformation = null; -- // File stylefile = new File(new URI(stylesheeturl)); -- long lastmod = 0; -- try { -- URL uStyle = new URL(stylesheeturl); -- URLConnection c = uStyle.openConnection(); -- lastmod = c.getLastModified(); -- } catch (java.lang.Exception ex) { -- // lastmod will remain at 0; -- if (statsp != null) { -- statsp.println(ex.getClass().getName() + ": " + ex.getMessage()); -- ex.printStackTrace(statsp); -- } -- } -- -- synchronized (xsltReferences) { -- java.lang.ref.WeakReference ref = null; -- // try to get the xsltTemplate reference from the cache -- if ((ref = (java.lang.ref.WeakReference) xsltReferences.get(stylesheeturl)) == null || -- (transformation = ((Transformation) ref.get())) == null || -- ((Transformation) ref.get()).lastmod < lastmod) { -- // we cannot find a valid reference for this stylesheet -- // or the stylsheet was updated -- if (ref != null) { -- xsltReferences.remove(stylesheeturl); -- } -- // create new xsltTemplate for this stylesheet -- TransformerFactory tfactory = TransformerFactory.newInstance(); -- debug("TransformerFactory is '" + tfactory.getClass().getName() + "'"); -- // some external saxons (Debian, Ubuntu, ...) have this disabled -- // per default -- tfactory.setAttribute(FeatureKeys.ALLOW_EXTERNAL_FUNCTIONS, new Boolean(true)); -- xsltTemplate = tfactory.newTemplates(new StreamSource(stylesheeturl)); -- -- // store the transformation into the cache -- transformation = new Transformation(); -- transformation.lastmod = lastmod; -- transformation.cachedXSLT = xsltTemplate; -- ref = new java.lang.ref.WeakReference(transformation); -- xsltReferences.put(stylesheeturl, ref); -- } -- } -- xsltTemplate = transformation.cachedXSLT; -- transformer = xsltTemplate.newTransformer(); -- transformer.setOutputProperty("encoding", "UTF-8"); -- // transformer.setURIResolver(XSLTransformer.this); -- -- // invalid to set 'null' as parameter as 'null' is not a valid Java object -- if (sourceurl != null) { -- transformer.setParameter("sourceURL", sourceurl); -- } -- if (sourcebaseurl != null) { -- transformer.setParameter("sourceBaseURL", sourcebaseurl); -- } -- if (targeturl != null) { -- transformer.setParameter("targetURL", targeturl); -- } -- if (targetbaseurl != null) { -- transformer.setParameter("targetBaseURL", targetbaseurl); -- } -- if (pubtype != null) { -- transformer.setParameter("publicType", pubtype); -- } -- if (systype != null) { -- transformer.setParameter("systemType", systype); -- } -- if (svcfactory != null) { -- transformer.setParameter("XMultiServiceFactory", svcfactory); -- } -- os = new BufferedOutputStream( -- new XOutputStreamToOutputStreamAdapter(m_xos)); -- StreamResult sr = new StreamResult(os); -- long tstart = System.currentTimeMillis(); -- transformer.transform(source, sr); -- debug("finished transformation in " + (System.currentTimeMillis() - tstart) + "ms"); -- -- } catch (java.lang.Throwable ex) { -- // notify any listeners about close -- for (Enumeration e = listeners.elements(); e.hasMoreElements();) { -- -- XStreamListener l = (XStreamListener) e.nextElement(); -- l.error(new com.sun.star.uno.Exception(ex.getClass().getName() + ": " + ex.getMessage())); -- } -- if (statsp != null) { -- statsp.println(ex.getClass().getName() + ": " + ex.getMessage()); -- ex.printStackTrace(statsp); -- } -- } finally { -- // dereference input buffer -- source = null; -- try { -- if (is != null) { -- is.close(); -- } -- } catch (java.lang.Throwable ex) { -- if (statsp != null) { -- statsp.println(ex.getClass().getName() + ": " + ex.getMessage()); -- ex.printStackTrace(statsp); -- } -- } -- try { -- if (os != null) { -- os.close(); -- } -- } catch (java.lang.Throwable ex) { -- if (statsp != null) { -- statsp.println(ex.getClass().getName() + ": " + ex.getMessage()); -- ex.printStackTrace(statsp); -- } -- } -- try { -- if (m_xis != null) { -- m_xis.closeInput(); -- } -- } catch (java.lang.Throwable ex) { -- if (statsp != null) { -- statsp.println(ex.getClass().getName() + ": " + ex.getMessage()); -- ex.printStackTrace(statsp); -- } -- } -- try { -- if (m_xos != null) { -- m_xos.closeOutput(); -- } -- } catch (java.lang.Throwable ex) { -- if (statsp != null) { -- statsp.println(ex.getClass().getName() + ": " + ex.getMessage()); -- ex.printStackTrace(statsp); -- } -- } -- -- // resetting standard input/error streams from logfile to default -- if (statsp != null) { -- System.setErr(origErr); -- System.setOut(origOut); -- } -- // try to release references asap... -- m_xos = null; -- m_xis = null; -- is = null; -- os = null; -- // notify any listeners about close -- if (listeners != null) { -- for (Enumeration e = listeners.elements(); e.hasMoreElements();) { -- XStreamListener l = (XStreamListener) e.nextElement(); -- l.closed(); -- } -- } -- } -- } -- }; -- t.start(); -- } /* a statsfile have to be created as precondition to use this function */ -- -- -- private static final void debug(String s) { -- if (statsp != null) { -- statsp.println(s); -- } -- } -- -- public void terminate() { -- try { -- debug("terminate called"); -- if (t.isAlive()) { -- t.interrupt(); -- for (Enumeration e = listeners.elements(); e.hasMoreElements();) { -- XStreamListener l = (XStreamListener) e.nextElement(); -- l.terminated(); -- } -- } -- } catch (java.lang.Exception ex) { -- if (statsp != null) { -- statsp.println(ex.getClass().getName() + ": " + ex.getMessage()); -- ex.printStackTrace(statsp); -- } -- } -- } // --- component management interfaces... --- -- private final static String _serviceName = "com.sun.star.xml.xslt.XSLT2Transformer"; -- -- // Implement methods from interface XTypeProvider -- public byte[] getImplementationId() { -- byte[] byteReturn = {}; -- byteReturn = new String("" + this.hashCode()).getBytes(); -- return (byteReturn); -- } -- -- public com.sun.star.uno.Type[] getTypes() { -- Type[] typeReturn = {}; -- try { -- typeReturn = new Type[]{ -- new Type(XTypeProvider.class), -- new Type(XServiceName.class), -- new Type(XServiceInfo.class), -- new Type(XActiveDataSource.class), -- new Type(XActiveDataSink.class), -- new Type(XActiveDataControl.class), -- new Type(XInitialization.class) -- }; -- } catch (java.lang.Exception exception) { -- } -- -- return (typeReturn); -- } -- -- // --- Implement method from interface XServiceName --- -- public String getServiceName() { -- return (_serviceName); -- } -- -- // --- Implement methods from interface XServiceInfo --- -- public boolean supportsService(String stringServiceName) { -- return (stringServiceName.equals(_serviceName)); -- } -- -- public String getImplementationName() { -- return (XSLTransformer.class.getName()); -- } -- -- public String[] getSupportedServiceNames() { -- String[] stringSupportedServiceNames = {_serviceName}; -- return stringSupportedServiceNames; -- } -- -- // --- component registration methods --- -- public static XSingleServiceFactory __getServiceFactory( -- String implName, XMultiServiceFactory multiFactory, XRegistryKey regKey) { -- XSingleServiceFactory xSingleServiceFactory = null; -- if (implName.equals(XSLTransformer.class.getName())) { -- xSingleServiceFactory = FactoryHelper.getServiceFactory(XSLTransformer.class, -- _serviceName, multiFactory, regKey); -- } -- return xSingleServiceFactory; -- } --} -diff --git a/filter/source/xsltfilter/components.rdb b/filter/source/xsltfilter/components.rdb -deleted file mode 100644 -index 6014b82..0000000 ---- a/filter/source/xsltfilter/components.rdb -+++ /dev/null -@@ -1,8 +0,0 @@ -- -- -- -- -- -- -- -- -diff --git a/filter/source/xsltfilter/description-en-US.txt b/filter/source/xsltfilter/description-en-US.txt -deleted file mode 100644 -index 88c8abf..0000000 ---- a/filter/source/xsltfilter/description-en-US.txt -+++ /dev/null -@@ -1 +0,0 @@ --The xslt2-transformer implements a transformer for XSLT import/export filters with support for XSLT 2.0. -diff --git a/filter/source/xsltfilter/description.xml b/filter/source/xsltfilter/description.xml -deleted file mode 100644 -index ae6abcb..0000000 ---- a/filter/source/xsltfilter/description.xml -+++ /dev/null -@@ -1,28 +0,0 @@ -- -- -- -- -- -- -- -- -- -- -- -- -- The Document Foundation -- -- -- -- XSLT 2.0 transformer -- -- -- -- -- -- -- -diff --git a/filter/source/xsltfilter/manifest.xml b/filter/source/xsltfilter/manifest.xml -deleted file mode 100644 -index a443e65..0000000 ---- a/filter/source/xsltfilter/manifest.xml -+++ /dev/null -@@ -1,6 +0,0 @@ -- -- -- -- -- --- -1.7.11.7 - diff --git a/0003-make-avmedia-build-with-gstreamer-0.10.patch b/0003-make-avmedia-build-with-gstreamer-0.10.patch deleted file mode 100644 index 441cece..0000000 --- a/0003-make-avmedia-build-with-gstreamer-0.10.patch +++ /dev/null @@ -1,157 +0,0 @@ -From 03bd2fd7b97f8f8164039203027f89e82c1c4212 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Fri, 10 Aug 2012 08:11:46 +0200 -Subject: [PATCH 3/7] make avmedia build with gstreamer-0.10 - -Change-Id: I6124904cecdb8ea66477f40b6771a103a8058c10 -Signed-off-by: David Tardon ---- - avmedia/Library_avmediagst_0_10.mk | 65 +++++++++++++++++++++++++++++++++ - avmedia/source/gstreamer/gstmanager.cxx | 2 + - avmedia/source/gstreamer/gstplayer.cxx | 8 ++-- - configure.in | 2 +- - 4 files changed, 73 insertions(+), 4 deletions(-) - create mode 100644 avmedia/Library_avmediagst_0_10.mk - -diff --git a/avmedia/Library_avmediagst_0_10.mk b/avmedia/Library_avmediagst_0_10.mk -new file mode 100644 -index 0000000..9347c2b ---- /dev/null -+++ b/avmedia/Library_avmediagst_0_10.mk -@@ -0,0 +1,65 @@ -+# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*- -+# Version: MPL 1.1 / GPLv3+ / LGPLv3+ -+# -+# The contents of this file are subject to the Mozilla Public License Version -+# 1.1 (the "License"); you may not use this file except in compliance with -+# the License or as specified alternatively below. You may obtain a copy of -+# the License at http://www.mozilla.org/MPL/ -+# -+# Software distributed under the License is distributed on an "AS IS" basis, -+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+# for the specific language governing rights and limitations under the -+# License. -+# -+# The Initial Developer of the Original Code is -+# Matúš Kukan -+# Portions created by the Initial Developer are Copyright (C) 2011 the -+# Initial Developer. All Rights Reserved. -+# -+# Major Contributor(s): -+# -+# For minor contributions see the git repository. -+# -+# Alternatively, the contents of this file may be used under the terms of -+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or -+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), -+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable -+# instead of those above. -+ -+$(eval $(call gb_Library_Library,avmediagst_0_10)) -+ -+$(eval $(call gb_Library_set_componentfile,avmediagst_0_10,avmedia/source/gstreamer/avmediagstreamer_0_10)) -+ -+$(eval $(call gb_Library_set_include,avmediagst_0_10,\ -+ $$(INCLUDE) \ -+ -I$(SRCDIR)/avmedia/source/inc \ -+ $(GSTREAMER_0_10_CFLAGS) \ -+)) -+$(eval $(call gb_Library_add_libs,avmediagst_0_10,$(GSTREAMER_0_10_LIBS))) -+ -+$(eval $(call gb_Library_use_api,avmediagst_0_10,\ -+ offapi \ -+ udkapi \ -+)) -+ -+ifeq ($(GUI),WNT) -+$(eval $(call gb_Library_add_defs,avmediagst_0_10,\ -+ -DWINNT -+)) -+endif -+ -+$(eval $(call gb_Library_use_libraries,avmediagst_0_10,\ -+ comphelper \ -+ cppu \ -+ cppuhelper \ -+ sal \ -+ tl \ -+ vcl \ -+ $(gb_STDLIBS) \ -+)) -+ -+$(eval $(call gb_Library_add_exception_objects,avmediagst_0_10,\ -+ avmedia/source/gstreamer/gst_0_10 \ -+)) -+ -+# vim: set noet sw=4 ts=4: -diff --git a/avmedia/source/gstreamer/gstmanager.cxx b/avmedia/source/gstreamer/gstmanager.cxx -index 6b3ffff..f04e5cc 100644 ---- a/avmedia/source/gstreamer/gstmanager.cxx -+++ b/avmedia/source/gstreamer/gstmanager.cxx -@@ -34,11 +34,13 @@ - #define AVMEDIA_GST_MANAGER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.Manager_GStreamer" - #define AVMEDIA_GST_MANAGER_SERVICENAME "com.sun.star.media.Manager" - -+#if !defined DBG - #if OSL_DEBUG_LEVEL > 2 - #define DBG OSL_TRACE - #else - #define DBG(...) - #endif -+#endif - - using namespace ::com::sun::star; - -diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx -index 28e5d34..3654410 100644 ---- a/avmedia/source/gstreamer/gstplayer.cxx -+++ b/avmedia/source/gstreamer/gstplayer.cxx -@@ -50,11 +50,13 @@ - # define AVVERSION "gst 1.0: " - #endif - --#if 1 //OSL_DEBUG_LEVEL > 2 -+#if !defined DBG -+#if OSL_DEBUG_LEVEL > 2 - #define DBG(...) do { fprintf (stderr, "%s", AVVERSION); fprintf (stderr, __VA_ARGS__); fprintf (stderr, "\n"); } while (0); - #else - #define DBG(...) - #endif -+#endif - - using namespace ::com::sun::star; - -@@ -192,7 +194,7 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - { - // DBG( "%p processSyncMessage has handle: %s", this, GST_MESSAGE_TYPE_NAME( message ) ); - --#if 1 // OSL_DEBUG_LEVEL > 0 -+#if OSL_DEBUG_LEVEL > 0 - if ( GST_MESSAGE_TYPE( message ) == GST_MESSAGE_ERROR ) - { - GError* error; -@@ -575,7 +577,7 @@ awt::Size SAL_CALL Player::getPreferredPlayerWindowSize() - DBG( "%p Player::getPreferredPlayerWindowSize, member %d x %d", this, mnWidth, mnHeight ); - - TimeValue aTimeout = { 10, 0 }; --#if 1 // OSL_DEBUG_LEVEL > 2 -+#if OSL_DEBUG_LEVEL > 2 - osl::Condition::Result aResult = - #endif - maSizeCondition.wait( &aTimeout ); -diff --git a/configure.in b/configure.in -index 46b9892..0b60c3f 100644 ---- a/configure.in -+++ b/configure.in -@@ -8971,7 +8971,7 @@ if test "$build_gstreamer_0_10" = "yes"; then - if test "x$enable_gstreamer_0_10" != "xno"; then - ENABLE_GSTREAMER_0_10="TRUE" - AC_MSG_RESULT([yes]) -- PKG_CHECK_MODULES( GSTREAMER_0_10, gstreamer-0.10 gstreamer-plugins-base-0.10 ) -+ PKG_CHECK_MODULES( GSTREAMER_0_10, gstreamer-0.10 gstreamer-plugins-base-0.10 gstreamer-interfaces-0.10 ) - else - AC_MSG_RESULT([no]) - fi --- -1.7.11.4 - diff --git a/0004-remove-all-traces-of-saxon.patch b/0004-remove-all-traces-of-saxon.patch deleted file mode 100644 index 7c90ca2..0000000 --- a/0004-remove-all-traces-of-saxon.patch +++ /dev/null @@ -1,1650 +0,0 @@ -From acbef0543f72f48ff135864eed181a1111fc0700 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Wed, 10 Oct 2012 17:42:46 +0200 -Subject: [PATCH 4/4] remove all traces of saxon - -(cherry picked from commit 725eba738eae4eee6cd9b833d375db5463833119) - -Conflicts: - Makefile.top - Module_tail_build.mk - RepositoryExternal.mk - config_host.mk.in - configure.ac - ooo.lst.in - readlicense_oo/html/LICENSE.html - saxon/prj/build.lst - saxon/prj/d.lst - tail_build/prj/build.lst - -Change-Id: I33ca2c27d557d24e3900d7ebf8f3ea2d99b3cfb0 ---- - Makefile.top | 1 - - RepositoryExternal.mk | 14 - - config_host.mk.in | 3 - - configure.in | 138 --- - filter/prj/build.lst | 2 +- - ooo.lst.in | 5 - - readlicense_oo/html/THIRDPARTYLICENSEREADME.html | 14 +- - readlicense_oo/txt/NOTICE | 5 - - readlicense_oo/txt/license.txt | 14 - - saxon/README | 1 - - saxon/makefile.mk | 69 -- - saxon/prj/build.lst | 2 - - saxon/prj/d.lst | 1 - - saxon/saxon-9.0.0.7-bj.patch | 1031 ---------------------- - stax/README | 1 - - stax/makefile.mk | 78 -- - stax/prj/build.lst | 2 - - stax/prj/d.lst | 1 - - tail_build/prj/build.lst | 2 +- - 19 files changed, 3 insertions(+), 1381 deletions(-) - delete mode 100644 saxon/README - delete mode 100644 saxon/makefile.mk - delete mode 100644 saxon/prj/build.lst - delete mode 100644 saxon/prj/d.lst - delete mode 100644 saxon/prj/dmake - delete mode 100644 saxon/saxon-9.0.0.7-bj.patch - delete mode 100644 stax/README - delete mode 100644 stax/makefile.mk - delete mode 100644 stax/prj/build.lst - delete mode 100644 stax/prj/d.lst - delete mode 100644 stax/prj/dmake - -diff --git a/Makefile.top b/Makefile.top -index 7451445..c84cc6f 100644 ---- a/Makefile.top -+++ b/Makefile.top -@@ -232,7 +232,6 @@ rhino\ - saxon\ - setup_native\ - soltools\ --stax\ - stlport\ - sysui\ - tomcat\ -diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk -index 730043c..b8a3cbd 100644 ---- a/RepositoryExternal.mk -+++ b/RepositoryExternal.mk -@@ -1698,20 +1698,6 @@ endif - - ### Jars ############################################################ - --ifeq ($(SYSTEM_SAXON),YES) -- --define gb_JavaClassSet__use_saxon --$(call gb_JavaClassSet_use_system_jar,$(1),$(SAXON_JAR)) --endef -- --else # !SYSTEM_SAXON -- --define gb_JavaClassSet__use_saxon --$(call gb_JavaClassSet_use_jar,$(1),$(OUTDIR)/bin/saxon9.jar) --endef -- --endif # SYSTEM_SAXON -- - ifeq ($(SYSTEM_BSH),YES) - - define gb_JavaClassSet__use_bsh -diff --git a/config_host.mk.in b/config_host.mk.in -index 4fb80d1..f643039 100644 ---- a/config_host.mk.in -+++ b/config_host.mk.in -@@ -32,7 +32,6 @@ export BUILD_MOZAB=@BUILD_MOZAB@ - export BUILD_NCPUS=@BUILD_NCPUS@ - export BUILD_PLATFORM=@build@ - export BUILD_POSTGRESQL_SDBC=@BUILD_POSTGRESQL_SDBC@ --export BUILD_STAX=@BUILD_STAX@ - export BUILD_TYPE=@BUILD_TYPE@ - export BUILD_UNOWINREG=@BUILD_UNOWINREG@ - export BUILD_VER_STRING=@BUILD_VER_STRING@ -@@ -433,7 +432,6 @@ export RTL_OS=@RTL_OS@ - export RTL_ARCH=@RTL_ARCH@ - export SAC_JAR=@SAC_JAR@ - export SAL_ENABLE_FILE_LOCKING=1 --export SAXON_JAR=@SAXON_JAR@ - export SCPDEFS=@SCPDEFS@ - export SERVLETAPI_JAR=@SERVLETAPI_JAR@ - export SHOWINCLUDES_PREFIX=@SHOWINCLUDES_PREFIX@ -@@ -528,7 +526,6 @@ export SYSTEM_POSTGRESQL=@SYSTEM_POSTGRESQL@ - export SYSTEM_PYTHON=@SYSTEM_PYTHON@ - export SYSTEM_REDLAND=@SYSTEM_REDLAND@ - export SYSTEM_RHINO=@SYSTEM_RHINO@ --export SYSTEM_SAXON=@SYSTEM_SAXON@ - export SYSTEM_SERVLETAPI=@SYSTEM_SERVLETAPI@ - export SYSTEM_STDLIBS=@SYSTEM_STDLIBS@ - export SYSTEM_VIGRA=@SYSTEM_VIGRA@ -diff --git a/configure.in b/configure.in -index b2ae537..0b286ee 100644 ---- a/configure.in -+++ b/configure.in -@@ -1427,16 +1427,6 @@ AC_ARG_WITH(libbase-jar, - [Specify path to jarfile manually.]), - LIBBASE_JAR=$withval) - --AC_ARG_WITH(system-saxon, -- AS_HELP_STRING([--with-system-saxon], -- [Use saxon already on system.]),, -- [with_system_saxon="$with_system_jars"]) -- --AC_ARG_WITH(saxon-jar, -- AS_HELP_STRING([--with-saxon-jar=JARFILE], -- [Specify path to jarfile manually.]), -- SAXON_JAR=$withval) -- - AC_ARG_WITH(system-odbc, - AS_HELP_STRING([--with-system-odbc], - [Use the odbc headers already on system.]),, -@@ -7066,134 +7056,6 @@ AC_SUBST(SYSTEM_POSTGRESQL) - AC_SUBST(POSTGRESQL_INC) - AC_SUBST(POSTGRESQL_LIB) - -- --dnl =================================================================== --dnl Check for system saxon --dnl =================================================================== --if test "$with_java" != "no"; then --AC_MSG_CHECKING([which saxon to use]) --if test "$with_system_saxon" = "yes"; then -- AC_MSG_RESULT([external]) -- SYSTEM_SAXON=YES -- if test -z $SAXON_JAR; then -- AC_CHECK_FILE(/usr/share/java/saxon9.jar, -- [ SAXON_JAR=/usr/share/java/saxon9.jar ], -- [ -- AC_CHECK_FILE(/usr/share/java/saxon.jar, -- [ SAXON_JAR=/usr/share/java/saxon.jar ], -- [ AC_CHECK_FILE(/usr/share/java/saxon9.jar, -- [ SAXON_JAR=/usr/share/java/saxon9.jar ], -- [ AC_MSG_ERROR(saxon.jar replacement not found)] -- ) -- ] -- ) -- ] -- ) -- else -- AC_CHECK_FILE($SAXON_JAR, [], -- [AC_MSG_ERROR(saxon.jar replacement not found.)], []) -- fi -- if test -n "$SERIALIZER_JAR"; then -- AC_CHECK_FILE($SERIALIZER_JAR, [], -- [AC_MSG_ERROR(serializer.jar not found.)], []) -- AC_SUBST(SERIALIZER_JAR) -- fi -- -- dnl Saxon comes in two practically available versions, the out-of-date saxonb which -- dnl supports the Java extensions that LibreOffice uses, and the up-to-date saxon he -- dnl "home edition" version, which is crippled to not support those Java extensions. -- dnl And as an aside the he one also needs to be tweaked to include -- dnl a META-INF/services to broadcast that it supports the jaxp transform factory -- -- AC_MSG_CHECKING([if saxon works]) -- cat > saxontest.java <<_ACEOF --[import javax.xml.transform.TransformerFactory; --import javax.xml.transform.Transformer; --import javax.xml.transform.stream.StreamSource; --import java.io.*; -- --import net.sf.saxon.FeatureKeys; -- --class saxontest { -- public static void main(String[] args) { -- System.setProperty("javax.xml.transform.TransformerFactory", -- "net.sf.saxon.TransformerFactoryImpl"); -- try { -- TransformerFactory tfactory = TransformerFactory.newInstance(); -- // some external saxons (Debian, Ubuntu, ...) have this disabled -- // per default -- tfactory.setAttribute(FeatureKeys.ALLOW_EXTERNAL_FUNCTIONS, new Boolean(true)); -- System.out.println("TransformerFactory is" + -- tfactory.getClass().getName()); -- Transformer transformer = tfactory.newTransformer( -- new StreamSource(new File(args[0]))); -- } catch(Exception e){ -- e.printStackTrace(System.err); -- System.exit(-1); -- } -- System.exit(0); -- } --} --] --_ACEOF -- -- cat > saxontest.xsl<<_ACEOF --[ -- -- -- -- -- --] --_ACEOF -- -- javac_cmd="$JAVACOMPILER -cp $SAXON_JAR saxontest.java 1>&2" -- AC_TRY_EVAL(javac_cmd) -- if test $? = 0 -a -f ./saxontest.class; then -- java_cmd="$JAVAINTERPRETER -cp $SAXON_JAR:. saxontest saxontest.xsl 1>&2" -- AC_TRY_EVAL(java_cmd) -- if test $? = 0; then -- AC_MSG_RESULT([yes]) -- else -- cat saxontest.java >&5 -- AC_MSG_RESULT([no]) -- AC_MSG_ERROR([Non-functional saxon jar, e.g. crippled saxon-he instead of saxonb]) -- fi -- else -- AC_MSG_RESULT([no]) -- cat saxontest.java >&5 -- AC_MSG_ERROR([saxontest could not be compiled, non-functional saxon jar]) -- fi --else -- AC_MSG_RESULT([internal]) -- SYSTEM_SAXON=NO -- NEED_SAXON=TRUE --fi --fi --AC_SUBST(SYSTEM_SAXON) --AC_SUBST(SAXON_JAR) -- --if test -n "$NEED_SAXON"; then -- BUILD_TYPE="$BUILD_TYPE SAXON" --fi -- --# =================================================================== --# Check whether to build stax --# =================================================================== --AC_MSG_CHECKING([whether building the stax is required]) --BUILD_STAX=NO --if test -z "$SOLAR_JAVA"; then -- AC_MSG_RESULT([no (java disabled)]) --elif test "$SYSTEM_SAXON" = "YES"; then -- AC_MSG_RESULT([no (already provided by system saxon)]) --elif test -f "./stax/download/jsr173_1.0_api.jar"; then -- AC_MSG_RESULT([no (will use the prebuilt stax/download/jsr173_1.0_api.jar)]) --else -- BUILD_STAX=YES -- AC_MSG_RESULT([yes (no system saxon and no prebuilt copy)]) --fi --AC_SUBST(BUILD_STAX) -- - dnl =================================================================== - dnl Check for system curl - dnl =================================================================== -diff --git a/filter/prj/build.lst b/filter/prj/build.lst -index 9083dc7..2319f39 100644 ---- a/filter/prj/build.lst -+++ b/filter/prj/build.lst -@@ -1,2 +1,2 @@ --fl filter : TRANSLATIONS:translations svtools unotools xmloff cppu tools cppuhelper sal salhelper svx javaunohelper XPDF:xpdf jvmaccess canvas SAXON:saxon LIBXSLT:libxslt basegfx package PYTHON:python NULL -+fl filter : TRANSLATIONS:translations svtools unotools xmloff cppu tools cppuhelper sal salhelper svx javaunohelper XPDF:xpdf jvmaccess canvas LIBXSLT:libxslt basegfx package PYTHON:python NULL - fl filter\prj nmake - all fl_prj NULL -diff --git a/ooo.lst.in b/ooo.lst.in -index 02d14b0..4d5b977 100644 ---- a/ooo.lst.in -+++ b/ooo.lst.in -@@ -8,7 +8,6 @@ c63f411b3ad147db2bcce1bf262a0e02-pixman-0.24.4.tar.bz2 - 1756c4fa6c616ae15973c104cd8cb256-Adobe-Core35_AFMs-314.tar.gz - 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz - 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz --24be19595acad0a2cae931af77a0148a-LICENSE_source-9.0.0.7-bj.html - 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz - 284e768eeda0e2898b0d5bf7e26a016e-raptor-1.4.18.tar.gz - 2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz -@@ -30,12 +29,9 @@ f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz - 7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz - 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip - ecb2e37e45c9933e2a963cabe03670ab-curl-7.19.7.tar.gz --8294d6c42e3553229af9934c5c0ed997-stax-api-1.0-2-sources.jar - bd30e9cf5523cdfc019b94f5e1d7fd19-cppunit-1.12.1.tar.gz - a169ab152209200a7bad29a275cb0333-seamonkey-1.1.14.source.tar.gz --a4d9b30810a434a3ed39fc0003bbd637-LICENSE_stax-api-1.0-2-sources.html - a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip --ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip - af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz - bc702168a2af16869201dbe91e46ae48-LICENSE_Python-2.6.1 - c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz -@@ -48,7 +44,6 @@ e61d0364a30146aaa3001296f853b2b9-libxslt-1.1.26.tar.gz - ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz - ea91f2fb4212a21d708aced277e6e85a-vigra1.4.0.tar.gz - dd7dab7a5fea97d2a6a43f511449b7cd-expat-2.1.0.tar.gz --fb7ba5c2182be4e73748859967455455-README_stax-api-1.0-2-sources.txt - fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz - f872f4ac066433d8ff92f5e316b36ff9-dejavu-fonts-ttf-2.33.zip - 0981bda6548a8c8233ffce2b6e4b2a23-mysql-connector-c++-1.1.0.tar.gz -diff --git a/readlicense_oo/html/THIRDPARTYLICENSEREADME.html b/readlicense_oo/html/THIRDPARTYLICENSEREADME.html -index 46fc32f..4fca83d 100644 ---- a/readlicense_oo/html/THIRDPARTYLICENSEREADME.html -+++ b/readlicense_oo/html/THIRDPARTYLICENSEREADME.html -@@ -2110,18 +2110,6 @@ FITNESS FOR A PARTICULAR PURPOSE.

-

This - file declares SANE application interface. See the SANE standard for a - detailed explanation of the interface.

--

Saxon (B)

--

The --following software may be included in this product: Saxon (B). Use of --any of this software is governed by the terms of the license below:

--

Jump --to MPL Version 1.1

--

Stax

--

The --following software may be included in this product: Stax API. Use of --any of this software is governed by the terms of the license below:

--

Jump --to Apache License Version 2.0

-

STLPort

-

The - following software may be included in this product:STLport. Use of -@@ -9429,4 +9417,4 @@ this trademark restriction does not form part of the License.

-

Creative - Commons may be contacted at http://creativecommons.org/.

- -- -\ No newline at end of file -+ -diff --git a/readlicense_oo/txt/NOTICE b/readlicense_oo/txt/NOTICE -index 181aea7..8edf0f0 100644 ---- a/readlicense_oo/txt/NOTICE -+++ b/readlicense_oo/txt/NOTICE -@@ -139,7 +139,6 @@ As part of the base system this product also includes code from the following - projects which are licensed under the Apache license: - - serf - - redland --- StAX - - The notices from these projects are following: - -@@ -153,10 +152,6 @@ This product includes Redland software (http://librdf.org/) - developed at the Institute for Learning and Research Technology, - University of Bristol, UK (http://www.bristol.ac.uk/). - -- --StAX --[no notices] -- - ____ - - This product includes software developed by the OpenSSL Project -diff --git a/readlicense_oo/txt/license.txt b/readlicense_oo/txt/license.txt -index 6acf5b6d..137a892 100644 ---- a/readlicense_oo/txt/license.txt -+++ b/readlicense_oo/txt/license.txt -@@ -2057,20 +2057,6 @@ SANE - This file declares SANE application interface. See the SANE standard - for a detailed explanation of the interface. - --Saxon (B) -- -- The following software may be included in this product: Saxon (B). Use -- of any of this software is governed by the terms of the license below: -- -- See MPL Version 1.1 below -- --Stax -- -- The following software may be included in this product: Stax API. Use -- of any of this software is governed by the terms of the license below: -- -- See Apache License Version 2.0 below -- - STLPort - - The following software may be included in this product:STLport. Use of -diff --git a/saxon/README b/saxon/README -deleted file mode 100644 -index 26344a7..0000000 ---- a/saxon/README -+++ /dev/null -@@ -1 +0,0 @@ --XSLT and XQuery Processor from [[http://saxon.sourceforge.net/]] -diff --git a/saxon/makefile.mk b/saxon/makefile.mk -deleted file mode 100644 -index 40a7404..0000000 ---- a/saxon/makefile.mk -+++ /dev/null -@@ -1,69 +0,0 @@ --#************************************************************************* --# --# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. --# --# Copyright 2000, 2010 Oracle and/or its affiliates. --# --# OpenOffice.org - a multi-platform office productivity suite --# --# This file is part of OpenOffice.org. --# --# OpenOffice.org is free software: you can redistribute it and/or modify --# it under the terms of the GNU Lesser General Public License version 3 --# only, as published by the Free Software Foundation. --# --# OpenOffice.org is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU Lesser General Public License version 3 for more details --# (a copy is included in the LICENSE file that accompanied this code). --# --# You should have received a copy of the GNU Lesser General Public License --# version 3 along with OpenOffice.org. If not, see --# --# for a copy of the LGPLv3 License. --# --#************************************************************************* -- --PRJ=. -- --PRJNAME=saxon --TARGET=saxon -- --# --- Settings ----------------------------------------------------- -- --.INCLUDE : settings.mk --.INCLUDE : antsettings.mk -- --.IF "$(SOLAR_JAVA)" != "" --.IF "$(SYSTEM_SAXON)" == "YES" --all: -- @echo "An already available installation of saxon should exist on your system." -- @echo "Therefore the version provided here does not need to be built in addition." --.ENDIF -- --# --- Files -------------------------------------------------------- -- --TARFILE_NAME=source-9.0.0.7-bj --TARFILE_MD5=ada24d37d8d638b3d8a9985e80bc2978 --ADDITIONAL_FILES=build.xml --TARFILE_ROOTDIR=src -- --PATCH_FILES=saxon-9.0.0.7-bj.patch -- --BUILD_ACTION="$(ANT)" $(ANT_FLAGS) -Dsolarbindir=$(SOLARBINDIR) jar-bj -- --OUT2CLASS= saxon-build$/9.0.0.7$/bj$/saxon9.jar -- --.ELSE # $(SOLAR_JAVA)!= "" --nojava: -- @echo "Not building $(PRJNAME) because Java is disabled" --.ENDIF # $(SOLAR_JAVA)!= "" --# --- Targets ------------------------------------------------------ -- --.INCLUDE : set_ext.mk --.INCLUDE : target.mk --.IF "$(SOLAR_JAVA)" != "" --.INCLUDE : tg_ext.mk --.ENDIF -- -diff --git a/saxon/prj/build.lst b/saxon/prj/build.lst -deleted file mode 100644 -index 813097c..0000000 ---- a/saxon/prj/build.lst -+++ /dev/null -@@ -1,2 +0,0 @@ --xx saxon : solenv stax NULL --xx saxon nmake - all xx_saxon NULL -diff --git a/saxon/prj/d.lst b/saxon/prj/d.lst -deleted file mode 100644 -index 0793dad..0000000 ---- a/saxon/prj/d.lst -+++ /dev/null -@@ -1 +0,0 @@ --..\%__SRC%\class\saxon9.jar %_DEST%\bin\saxon9.jar -diff --git a/saxon/prj/dmake b/saxon/prj/dmake -deleted file mode 100644 -index e69de29..0000000 -diff --git a/saxon/saxon-9.0.0.7-bj.patch b/saxon/saxon-9.0.0.7-bj.patch -deleted file mode 100644 -index 11d3091..0000000 ---- a/saxon/saxon-9.0.0.7-bj.patch -+++ /dev/null -@@ -1,1031 +0,0 @@ ----- misc/src/build.xml 2008-07-11 12:11:50.079281000 +0200 --+++ misc/build/src/build.xml 2008-07-11 12:17:29.848740000 +0200 --@@ -1 +1,1027 @@ ---dummy --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ net.sf.saxon.xpath.XPathFactoryImpl --+http\://java.sun.com/jaxp/xpath/dom: net.sf.saxon.xpath.XPathFactoryImpl --+http\://saxon.sf.net/jaxp/xpath/om: net.sf.saxon.xpath.XPathFactoryImpl --+http\://www.xom.nu/jaxp/xpath/xom: net.sf.saxon.xpath.XPathFactoryImpl --+http\://jdom.org/jaxp/xpath/jdom: net.sf.saxon.xpath.XPathFactoryImpl --+http\://www.dom4j.org/jaxp/xpath/dom4j: net.sf.saxon.xpath.XPathFactoryImpl --+ --+ --+ --+ --+ com.saxonica.jaxp.SchemaFactoryImpl --+http\://www.w3.org/2001/XMLSchema: com.saxonica.jaxp.SchemaFactoryImpl --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ set NET="%PROGRAMFILES%\Microsoft.NET\SDK\v1.1\Bin" --+ %NET%\gacutil /if IKVM.Runtime.dll --+ %NET%\gacutil /if IKVM.GNU.Classpath.dll --+ %NET%\gacutil /if saxon9.dll --+ %NET%\gacutil /if saxon9api.dll --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ set NET="%PROGRAMFILES%\Microsoft.NET\SDK\v1.1\Bin" --+ %NET%\gacutil /if IKVM.Runtime.dll --+ %NET%\gacutil /if IKVM.GNU.Classpath.dll --+ %NET%\gacutil /if saxon9.dll --+ %NET%\gacutil /if saxon9sa.dll --+ %NET%\gacutil /if saxon9api.dll --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ --+ -diff --git a/stax/README b/stax/README -deleted file mode 100644 -index 13e69fb..0000000 ---- a/stax/README -+++ /dev/null -@@ -1 +0,0 @@ --Library implementing the Streaming API for XML. (CH: Which one, probably the one by Sun???) -diff --git a/stax/makefile.mk b/stax/makefile.mk -deleted file mode 100644 -index ff3238b..0000000 ---- a/stax/makefile.mk -+++ /dev/null -@@ -1,78 +0,0 @@ --#************************************************************************* --# --# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. --# --# Copyright 2000, 2010 Oracle and/or its affiliates. --# --# OpenOffice.org - a multi-platform office productivity suite --# --# This file is part of OpenOffice.org. --# --# OpenOffice.org is free software: you can redistribute it and/or modify --# it under the terms of the GNU Lesser General Public License version 3 --# only, as published by the Free Software Foundation. --# --# OpenOffice.org is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU Lesser General Public License version 3 for more details --# (a copy is included in the LICENSE file that accompanied this code). --# --# You should have received a copy of the GNU Lesser General Public License --# version 3 along with OpenOffice.org. If not, see --# --# for a copy of the LGPLv3 License. --# --#************************************************************************* -- --PRJ=. -- --PRJNAME=stax --TARGET=stax --USE_JAVAVER=TRUE -- --# --- Settings ----------------------------------------------------- -- --.INCLUDE : settings.mk --.INCLUDE : antsettings.mk -- --.IF "$(SOLAR_JAVA)" != "" --.IF "$(JAVANUMVER:s/.//)" >= "000100060000" || "$(JDK)"=="gcj" --all: -- @echo "Your java version already contains StAX" --.ENDIF # "$(JAVANUMVER:s/.//)" >= "000100060000" --.IF "$(SYSTEM_SAXON)" == "YES" --all: -- @echo "An already available installation of saxon should exist on your system." -- @echo "Therefore the files provided here does not need to be built in addition." --.ENDIF -- --.IF "$(BUILD_STAX)" != "YES" -- --$(OUT)$/class$/jsr173_1.0_api.jar : $(PRJ)$/download$/jsr173_1.0_api.jar -- +$(COPY) $< $@ -- --.ELSE # "$(BUILD_STAX)" != "YES" -- --# --- Files -------------------------------------------------------- --TARFILE_NAME=stax-api-1.0-2-sources --TARFILE_MD5=8294d6c42e3553229af9934c5c0ed997 --TARFILE_ROOTDIR=src -- --BUILD_ACTION=$(JAVAC) javax$/xml$/stream$/*.java && jar -cf jsr173_1.0_api.jar javax$/xml$/stream$/*.class javax$/xml$/stream$/events$/*.class javax$/xml$/stream$/util$/*.class -- --OUT2CLASS=jsr173_1.0_api.jar --.ENDIF # "$(BUILD_STAX)" != "YES" -- --.ELSE # $(SOLAR_JAVA)!= "" --nojava: -- @echo "Not building $(PRJNAME) because Java is disabled" --.ENDIF # $(SOLAR_JAVA)!= "" --# --- Targets ------------------------------------------------------ -- --.INCLUDE : set_ext.mk --.INCLUDE : target.mk --.IF "$(SOLAR_JAVA)" != "" --.INCLUDE : tg_ext.mk --.ENDIF -- -diff --git a/stax/prj/build.lst b/stax/prj/build.lst -deleted file mode 100644 -index cbfc6ea..0000000 ---- a/stax/prj/build.lst -+++ /dev/null -@@ -1,2 +0,0 @@ --tx stax : solenv NULL --tx stax nmake - all tx_stax NULL -diff --git a/stax/prj/d.lst b/stax/prj/d.lst -deleted file mode 100644 -index a4fd204..0000000 ---- a/stax/prj/d.lst -+++ /dev/null -@@ -1 +0,0 @@ --..\%__SRC%\class\jsr*.jar %_DEST%\bin -diff --git a/stax/prj/dmake b/stax/prj/dmake -deleted file mode 100644 -index e69de29..0000000 -diff --git a/tail_build/prj/build.lst b/tail_build/prj/build.lst -index c96ae74..0dced2b 100644 ---- a/tail_build/prj/build.lst -+++ b/tail_build/prj/build.lst -@@ -1,2 +1,2 @@ --tb tail_build : AFMS:afms APACHE_COMMONS:apache-commons BSH:beanshell BERKELEYDB:berkeleydb BOOST:boost CAIRO:cairo CPPUNIT:cppunit DESKTOP:codemaker CURL:curl EXPAT:expat FONTCONFIG:fontconfig FREETYPE:freetype GRAPHITE:graphite HSQLDB:hsqldb HUNSPELL:hunspell HYPHEN:hyphen ICU:icu DESKTOP:l10ntools JFREEREPORT:jfreereport JPEG:jpeg LCMS2:lcms2 LIBCDR:libcdr LIBCMIS:libcmis LIBEXTTEXTCAT:libexttextcat LIBXML2:libxml2 LIBXMLSEC:libxmlsec LIBXSLT:libxslt LIBWPG:libwpg LIBWPS:libwps LIBWPD:libwpd LIBVISIO:libvisio LPSOLVE:lpsolve MDDS:mdds MOZ:moz MYTHES:mythes NEON:neon NSS:nss OPENSSL:openssl POSTGRESQL:postgresql PYTHON:python REDLAND:redland SAXON:saxon DESKTOP:setup_native TRANSLATIONS:translations VIGRA:vigra XPDF:xpdf ZLIB:zlib bridges cli_ure comphelper cppu cppuhelper external jurt jvmaccess jvmfwk offapi officecfg DESKTOP:rdbmaker readlicense_oo remotebridges RHINO:rhino ridljar sal salhelper solenv soltools stoc sysui ucbhelper udkapi xmlreader xsltml NULL -+tb tail_build : AFMS:afms APACHE_COMMONS:apache-commons BSH:beanshell BERKELEYDB:berkeleydb BOOST:boost CAIRO:cairo CPPUNIT:cppunit DESKTOP:codemaker CURL:curl EXPAT:expat FONTCONFIG:fontconfig FREETYPE:freetype GRAPHITE:graphite HSQLDB:hsqldb HUNSPELL:hunspell HYPHEN:hyphen ICU:icu DESKTOP:l10ntools JFREEREPORT:jfreereport JPEG:jpeg LCMS2:lcms2 LIBCDR:libcdr LIBCMIS:libcmis LIBEXTTEXTCAT:libexttextcat LIBXML2:libxml2 LIBXMLSEC:libxmlsec LIBXSLT:libxslt LIBWPG:libwpg LIBWPS:libwps LIBWPD:libwpd LIBVISIO:libvisio LPSOLVE:lpsolve MDDS:mdds MOZ:moz MYTHES:mythes NEON:neon NSS:nss OPENSSL:openssl POSTGRESQL:postgresql PYTHON:python REDLAND:redland DESKTOP:setup_native TRANSLATIONS:translations VIGRA:vigra XPDF:xpdf ZLIB:zlib bridges cli_ure comphelper cppu cppuhelper external jurt jvmaccess jvmfwk offapi officecfg DESKTOP:rdbmaker readlicense_oo remotebridges RHINO:rhino ridljar sal salhelper solenv soltools stoc sysui ucbhelper udkapi xmlreader xsltml NULL - tb tail_build\prj nmake - all tb_prj NULL --- -1.7.11.7 - diff --git a/0004-tweak-old-school-gstreamer-link-line.patch b/0004-tweak-old-school-gstreamer-link-line.patch deleted file mode 100644 index 1d514f2..0000000 --- a/0004-tweak-old-school-gstreamer-link-line.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 300a14c4904a97cc217e56231cbcc7134ff036f3 Mon Sep 17 00:00:00 2001 -From: Michael Meeks -Date: Mon, 13 Aug 2012 15:58:26 +0100 -Subject: [PATCH 4/7] tweak old-school gstreamer link line - -Change-Id: If3f42a53ccfb4829009171c9b8325b2cb06277c2 -Signed-off-by: David Tardon ---- - avmedia/Library_avmediagst_0_10.mk | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/avmedia/Library_avmediagst_0_10.mk b/avmedia/Library_avmediagst_0_10.mk -index 9347c2b..5e4df70 100644 ---- a/avmedia/Library_avmediagst_0_10.mk -+++ b/avmedia/Library_avmediagst_0_10.mk -@@ -35,7 +35,6 @@ $(eval $(call gb_Library_set_include,avmediagst_0_10,\ - -I$(SRCDIR)/avmedia/source/inc \ - $(GSTREAMER_0_10_CFLAGS) \ - )) --$(eval $(call gb_Library_add_libs,avmediagst_0_10,$(GSTREAMER_0_10_LIBS))) - - $(eval $(call gb_Library_use_api,avmediagst_0_10,\ - offapi \ -@@ -58,6 +57,11 @@ $(eval $(call gb_Library_use_libraries,avmediagst_0_10,\ - $(gb_STDLIBS) \ - )) - -+$(eval $(call gb_Library_add_libs,avmediagst_0_10,\ -+ $(GSTREAMER_0_10_LIBS) \ -+ -lgstinterfaces-0.10 \ -+)) -+ - $(eval $(call gb_Library_add_exception_objects,avmediagst_0_10,\ - avmedia/source/gstreamer/gst_0_10 \ - )) --- -1.7.11.4 - diff --git a/0005-Don-t-fail-configure-with-older-gstreamer-plugins-ba.patch b/0005-Don-t-fail-configure-with-older-gstreamer-plugins-ba.patch deleted file mode 100644 index dd82601..0000000 --- a/0005-Don-t-fail-configure-with-older-gstreamer-plugins-ba.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 9aa662f549625ae4dd4d9fe2f54a1943923b9774 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Fridrich=20=C5=A0trba?= -Date: Fri, 31 Aug 2012 16:00:01 +0200 -Subject: [PATCH 5/7] Don't fail configure with older - gstreamer-plugins-base-0.10 - -Change-Id: Ia00293747d6041b86975f0e6539246310abfb957 -Signed-off-by: David Tardon ---- - configure.in | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/configure.in b/configure.in -index 0b60c3f..0351551 100644 ---- a/configure.in -+++ b/configure.in -@@ -8971,7 +8971,9 @@ if test "$build_gstreamer_0_10" = "yes"; then - if test "x$enable_gstreamer_0_10" != "xno"; then - ENABLE_GSTREAMER_0_10="TRUE" - AC_MSG_RESULT([yes]) -- PKG_CHECK_MODULES( GSTREAMER_0_10, gstreamer-0.10 gstreamer-plugins-base-0.10 gstreamer-interfaces-0.10 ) -+ PKG_CHECK_MODULES( [GSTREAMER_0_10], [gstreamer-0.10 gstreamer-plugins-base-0.10 gstreamer-interfaces-0.10],, [ -+ PKG_CHECK_MODULES( [GSTREAMER_0_10], [gstreamer-0.10 gstreamer-plugins-base-0.10] ) -+ ]) - else - AC_MSG_RESULT([no]) - fi --- -1.7.11.4 - diff --git a/0006-gstreamer-various-fixes-for-1.0-and-cleanups.patch b/0006-gstreamer-various-fixes-for-1.0-and-cleanups.patch deleted file mode 100644 index 0dfe24e..0000000 --- a/0006-gstreamer-various-fixes-for-1.0-and-cleanups.patch +++ /dev/null @@ -1,137 +0,0 @@ -From d6297345b26d09d9f6caa25109a165c739e1f92b Mon Sep 17 00:00:00 2001 -From: Michael Meeks -Date: Tue, 18 Sep 2012 17:48:10 +0100 -Subject: [PATCH 6/7] gstreamer: various fixes for 1.0 and cleanups - -always re-create the playbin after the fakeVideo pre-roll to avoid 1.0 issues. -handle the GstVideoOverlay object being created before we get our XID. -set force-aspect-ratio to allow user scaling un-conditionally - -Conflicts: - avmedia/source/gstreamer/gstplayer.cxx - -Change-Id: I8892b8f7a125c0daa7101e28f274bff3de57ee08 ---- - avmedia/source/gstreamer/gstplayer.cxx | 46 ++++++++++++++++++++-------------- - 1 file changed, 27 insertions(+), 19 deletions(-) - -diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx -index 3654410..4bcca8e 100644 ---- a/avmedia/source/gstreamer/gstplayer.cxx -+++ b/avmedia/source/gstreamer/gstplayer.cxx -@@ -51,11 +51,11 @@ - #endif - - #if !defined DBG --#if OSL_DEBUG_LEVEL > 2 -+# if OSL_DEBUG_LEVEL > 2 - #define DBG(...) do { fprintf (stderr, "%s", AVVERSION); fprintf (stderr, __VA_ARGS__); fprintf (stderr, "\n"); } while (0); --#else -+# else - #define DBG(...) --#endif -+# endif - #endif - - using namespace ::com::sun::star; -@@ -207,17 +207,20 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - - #ifdef AVMEDIA_GST_0_10 - if (message->structure && -- !strcmp( gst_structure_get_name( message->structure ), "prepare-xwindow-id" ) && mnWindowID != 0 ) -+ !strcmp( gst_structure_get_name( message->structure ), "prepare-xwindow-id" ) ) - #else -- if (gst_message_has_name (message, "prepare-window-handle") && mnWindowID != 0 ) -+ if (gst_is_video_overlay_prepare_window_handle_message (message) ) - #endif - { -- DBG( "%p processSyncMessage has handle: %s", this, GST_MESSAGE_TYPE_NAME( message ) ); -+ DBG( "%p processSyncMessage prepare window id: %s %d", this, -+ GST_MESSAGE_TYPE_NAME( message ), (int)mnWindowId ); - if( mpXOverlay ) - g_object_unref( G_OBJECT ( mpXOverlay ) ); -+ g_object_set( GST_MESSAGE_SRC( message ), "force-aspect-ratio", FALSE, NULL ); - mpXOverlay = GST_VIDEO_OVERLAY( GST_MESSAGE_SRC( message ) ); - g_object_ref( G_OBJECT ( mpXOverlay ) ); -- gst_video_overlay_set_window_handle( mpXOverlay, mnWindowID ); -+ if ( mnWindowID != 0 ) -+ gst_video_overlay_set_window_handle( mpXOverlay, mnWindowID ); - return GST_BUS_DROP; - } - -@@ -301,7 +304,7 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - mnWidth = w; - mnHeight = h; - -- fprintf (stderr, "queried size: %d x %d", mnWidth, mnHeight ); -+ DBG( "queried size: %d x %d", mnWidth, mnHeight ); - - maSizeCondition.set(); - } -@@ -310,7 +313,7 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - } - #endif - } else if( GST_MESSAGE_TYPE( message ) == GST_MESSAGE_ERROR ) { -- fprintf (stderr, "Error !\n"); -+ DBG( "Error !\n" ); - if( mnWidth == 0 ) { - // an error occurred, set condition so that OOo thread doesn't wait for us - maSizeCondition.set(); -@@ -331,9 +334,9 @@ void Player::preparePlaybin( const ::rtl::OUString& rURL, bool bFakeVideo ) - } - - mpPlaybin = gst_element_factory_make( "playbin", NULL ); -- -- if( bFakeVideo ) -- g_object_set( G_OBJECT( mpPlaybin ), "video-sink", gst_element_factory_make( "fakesink", NULL ), NULL ); -+ if( bFakeVideo ) // used for getting prefered size etc. -+ g_object_set( G_OBJECT( mpPlaybin ), "video-sink", -+ gst_element_factory_make( "fakesink", NULL ), NULL ); - - mbFakeVideo = bFakeVideo; - -@@ -343,7 +346,11 @@ void Player::preparePlaybin( const ::rtl::OUString& rURL, bool bFakeVideo ) - pBus = gst_element_get_bus( mpPlaybin ); - gst_bus_add_watch( pBus, pipeline_bus_callback, this ); - DBG( "%p set sync handler", this ); -+#ifdef AVMEDIA_GST_0_10 - gst_bus_set_sync_handler( pBus, pipeline_bus_sync_handler, this ); -+#else -+ gst_bus_set_sync_handler( pBus, pipeline_bus_sync_handler, this, NULL ); -+#endif - g_object_unref( pBus ); - } - -@@ -582,13 +589,8 @@ awt::Size SAL_CALL Player::getPreferredPlayerWindowSize() - #endif - maSizeCondition.wait( &aTimeout ); - -- if( mbFakeVideo ) { -- mbFakeVideo = sal_False; -- -- g_object_set( G_OBJECT( mpPlaybin ), "video-sink", NULL, NULL ); -- gst_element_set_state( mpPlaybin, GST_STATE_READY ); -- gst_element_set_state( mpPlaybin, GST_STATE_PAUSED ); -- } -+ if( mbFakeVideo ) // ready ourselves for the real thing -+ preparePlaybin( maURL, false ); - - DBG( "%p Player::getPreferredPlayerWindowSize after waitCondition %d, member %d x %d", this, aResult, mnWidth, mnHeight ); - -@@ -624,7 +626,13 @@ uno::Reference< ::media::XPlayerWindow > SAL_CALL Player::createPlayerWindow( co - const SystemEnvData* pEnvData = pParentWindow ? pParentWindow->GetSystemData() : NULL; - OSL_ASSERT(pEnvData); - if (pEnvData) -+ { - mnWindowID = pEnvData->aWindow; -+ DBG( "set window id to %d XOverlay %p\n", (int)mnWindowID, mpXOverlay); -+ gst_element_set_state( mpPlaybin, GST_STATE_PAUSED ); -+ if ( mpXOverlay != NULL ) -+ gst_video_overlay_set_window_handle( mpXOverlay, mnWindowID ); -+ } - } - } - --- -1.7.11.4 - diff --git a/0007-gstreamer-fix-leaking-pads.patch b/0007-gstreamer-fix-leaking-pads.patch deleted file mode 100644 index 4ca68e2..0000000 --- a/0007-gstreamer-fix-leaking-pads.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 9a54dc0d4db8eab09c9eee01be09815276da3088 Mon Sep 17 00:00:00 2001 -From: Michael Meeks -Date: Tue, 18 Sep 2012 17:29:31 +0100 -Subject: [PATCH 7/7] gstreamer: fix leaking pads. - -Conflicts: - avmedia/source/gstreamer/gstplayer.cxx - -Change-Id: Ie0ffb62c4f75f8af9c2268c07dfabf14ba036115 ---- - avmedia/source/gstreamer/gstplayer.cxx | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx -index 4bcca8e..448ea2d 100644 ---- a/avmedia/source/gstreamer/gstplayer.cxx -+++ b/avmedia/source/gstreamer/gstplayer.cxx -@@ -271,6 +271,7 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - gst_structure_get_int( pStructure, "height", &mnHeight ); - DBG( "queried size: %d x %d", mnWidth, mnHeight ); - } -+ g_object_unref (pPad); - } - } - -@@ -297,7 +298,7 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - - caps = gst_pad_get_current_caps( pad ); - -- if( gst_structure_get( gst_caps_get_structure (caps, 0), -+ if( gst_structure_get( gst_caps_get_structure( caps, 0 ), - "width", G_TYPE_INT, &w, - "height", G_TYPE_INT, &h, - NULL ) ) { -@@ -309,6 +310,7 @@ GstBusSyncReply Player::processSyncMessage( GstMessage *message ) - maSizeCondition.set(); - } - gst_caps_unref( caps ); -+ g_object_unref( pad ); - } - } - #endif --- -1.7.11.4 - diff --git a/libreoffice.spec b/libreoffice.spec index 6ccc458..1b474af 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -1,9 +1,9 @@ # download path contains version without the last (fourth) digit -%define libo_version 3.6.4 +%define libo_version 4.0.0 # Should contain .alphaX / .betaX, if this is pre-release (actually # pre-RC) version. The pre-release string is part of tarball file names, # so we need a way to define it easily at one place. -# %%define libo_prerelease +%define libo_prerelease .alpha1 # rhbz#715152 state vendor %if 0%{?rhel} %define vendoroption --with-vendor="Red Hat, Inc." @@ -20,13 +20,10 @@ %define source_url http://dev-builds.libreoffice.org/pre-releases/src # %%define source_url http://download.documentfoundation.org/libreoffice/src/%{libo_version} -# use rpmbuild --without binfilter (or mock --without binfilter) to get -# a faster build without old binary filters +# get english only and no-langpacks for a faster smoketest build # fedpkg compile/install/local/mockbuild does not handle --without ATM, # so it is necessary to change this to bcond_with to achieve the same # effect -%bcond_without binfilter -# get english only and no-langpacks for a faster smoketest build %bcond_without langpacks %if %{with langpacks} @@ -43,21 +40,19 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 -Version: %{libo_version}.1 +Version: %{libo_version}.0 Release: 1%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 Group: Applications/Productivity URL: http://www.documentfoundation.org/develop BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Source0: %{source_url}/libreoffice-core-%{version}%{?libo_prerelease}.tar.xz -Source1: %{source_url}/libreoffice-binfilter-%{version}%{?libo_prerelease}.tar.xz +Source0: %{source_url}/libreoffice-%{version}%{?libo_prerelease}.tar.xz Source2: %{source_url}/libreoffice-help-%{version}%{?libo_prerelease}.tar.xz Source3: %{source_url}/libreoffice-translations-%{version}%{?libo_prerelease}.tar.xz Source4: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll Source5: redhat-langpacks.tar.gz Source6: libreoffice-multiliblauncher.sh -Source7: http://hg.services.openoffice.org/binaries/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz Source8: http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip Source9: http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz Source10: http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip @@ -138,17 +133,13 @@ BuildRequires: libcmis-devel %endif BuildRequires: libcurl-devel %if %{undefined rhel} || 0%{?rhel} >= 7 -BuildRequires: libdb-devel -%else -BuildRequires: db4-devel -%endif -%if %{undefined rhel} || 0%{?rhel} >= 7 BuildRequires: libexttextcat-devel %endif BuildRequires: libicu-devel BuildRequires: libidn-devel BuildRequires: libjpeg-devel -BuildRequires: librsvg2-devel +BuildRequires: liblangtag-devel +BuildRequires: liborcus-devel %if %{undefined rhel} || 0%{?rhel} >= 7 BuildRequires: libvisio-devel BuildRequires: libwpd-devel @@ -224,27 +215,8 @@ Patch4: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch Patch5: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch Patch6: openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch Patch7: libreoffice-installfix.patch -Patch8: 0001-Resolves-rhbz-838368-view-ignored-while-view-accepte.patch -Patch9: 0001-Resolves-rhbz-836937-insanely-slow-with-Zemberek-ins.patch -Patch10: 0001-Resolves-rhbz-846775-Clipboard-must-be-disposed-befo.patch -Patch11: 0001-Resolves-rhbz-842292-crash-in-calling-callback-whose.patch -Patch12: 0001-Resolves-rhbz-855541-XIOError-handler-multithread-wo.patch -Patch13: 0001-tentative-initial-attempt-at-re-work-for-new-playbin.patch -Patch14: 0002-gstreamer-make-gstreamer-1.0-and-0.10-dual-compile.patch -Patch15: 0003-make-avmedia-build-with-gstreamer-0.10.patch -Patch16: 0004-tweak-old-school-gstreamer-link-line.patch -Patch17: 0005-Don-t-fail-configure-with-older-gstreamer-plugins-ba.patch -Patch18: 0006-gstreamer-various-fixes-for-1.0-and-cleanups.patch -Patch19: 0007-gstreamer-fix-leaking-pads.patch -Patch20: 0001-convert-java-XSL-transformer-into-extension.patch -Patch21: 0002-rework-selection-of-transformer-for-an-XSLT-filter.patch -Patch22: 0003-drop-saxon-based-XSLT-transformer.patch -Patch23: 0004-remove-all-traces-of-saxon.patch -Patch24: 0001-do-not-strip-install-set.patch -Patch25: 0001-Resolves-fdo-56198-collect-scrollbar-click-preferenc.patch #to-do, fix this on bigendian platforms Patch26: 0001-disable-failing-check.patch -Patch27: 0001-fiddle-system-db-test-to-link-on-RHEL-6.patch Patch28: 0001-split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch %if %{defined rhel} && 0%{?rhel} < 7 Patch29: libreoffice-rhel6gcj.patch @@ -586,16 +558,6 @@ Requires: %{name}-core = %{epoch}:%{version}-%{release} A plug-in for LibreOffice that enables integration into the KDE desktop environment. %endif -%if %{with binfilter} -%package binfilter -Summary: Legacy binary filters for LibreOffice -Group: Applications/Productivity -Requires: %{name}-core = %{epoch}:%{version}-%{release} - -%description binfilter -Filters for old StarOffice binary formats. -%endif - %if 0%{?_enable_debug_packages} %define debug_package %{nil} @@ -861,9 +823,8 @@ Rules for auto-correcting common %{langname} typing errors. \ %endif %prep -%setup -q -c -a 1 -a 2 -a 3 +%setup -q -n %{name}-%{version}%{?libo_prerelease} -a 2 -a 3 rm -rf git-hooks */git-hooks -for a in */*; do mv `pwd`/$a .; done #Customize Palette to remove Sun colours and add Red Hat colours (head -n -1 extras/source/palettes/standard.soc && \ echo -e ' @@ -878,33 +839,14 @@ mv -f redhat.soc extras/source/palettes/standard.soc %patch3 -p1 -b .ooo88341.sc.verticalboxes.patch %patch4 -p1 -b .oooXXXXX.solenv.allowmissing.patch %patch5 -p1 -b .ooo101274.opening-a-directory.patch -%patch6 -p1 -b .ooo105784.vcl.sniffscriptforsubs.patch +# FIXME ask Eike/Caolan about the broken hunk +#%%patch6 -p1 -b .ooo105784.vcl.sniffscriptforsubs.patch %patch7 -p1 -b .libreoffice-installfix.patch -%patch8 -p1 -b .rhbz838368-view-ignored-while-view-accepte.patch -%patch9 -p1 -b .rhbz-836937-insanely-slow-with-Zemberek-ins.patch -%patch10 -p1 -b .rhbz-846775-Clipboard-must-be-disposed-befo.patch -%patch11 -p1 -b .rhbz-842292-crash-in-calling-callback-whose.patch -%patch12 -p1 -b .rhbz-855541-XIOError-handler-multithread-wo.patch -%patch13 -p1 -b .tentative-initial-attempt-at-re-work-for-new-playbin.patch -%patch14 -p1 -b .gstreamer-make-gstreamer-1.0-and-0.10-dual-compile.patch -%patch15 -p1 -b .make-avmedia-build-with-gstreamer-0.10.patch -%patch16 -p1 -b .tweak-old-school-gstreamer-link-line.patch -%patch17 -p1 -b .Don-t-fail-configure-with-older-gstreamer-plugins-ba.patch -%patch18 -p1 -b .gstreamer-various-fixes-for-1.0-and-cleanups.patch -%patch19 -p1 -b .gstreamer-fix-leaking-pads.patch -%patch20 -p1 -b .convert-java-XSL-transformer-into-extension.patch -%patch21 -p1 -b .rework-selection-of-transformer-for-an-XSLT-filter.patch -%patch22 -p1 -b .drop-saxon-based-XSLT-transformer.patch -%patch23 -p1 -b .remove-all-traces-of-saxon.patch -%patch24 -p1 -b .do-not-strip-install-set.patch -%patch25 -p1 -b .fdo-56198-collect-scrollbar-click-preferenc.patch %patch26 -p1 -b .disable-failing-check.patch -%patch27 -p1 -b .fiddle-system-db-test-to-link-on-RHEL-6.patch -%patch28 -p1 -b .split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch %if %{defined rhel} && 0%{?rhel} < 7 -%patch29 -p1 -b .rhel6gcj.patch -%patch30 -p1 -b .rhel6poppler.patch -%patch31 -p1 -b .rhel6langs.patch +#%patch29 -p1 -b .rhel6gcj.patch +#%patch30 -p1 -b .rhel6poppler.patch +#%patch31 -p1 -b .rhel6langs.patch %endif # TODO: check this @@ -966,7 +908,6 @@ touch autogen.lastrun --disable-gnome-vfs --enable-gio --enable-symbols --enable-lockdown \ --enable-evolution2 --enable-dbus --enable-opengl --enable-vba \ --enable-ext-presenter-minimizer --enable-ext-nlpsolver \ - --enable-ext-presenter-console --enable-ext-pdfimport \ --enable-ext-wiki-publisher --enable-ext-report-builder \ --enable-ext-scripting-beanshell --enable-ext-scripting-javascript \ --without-system-servlet-api \ @@ -978,12 +919,10 @@ touch autogen.lastrun %{?with_lang} --with-poor-help-localizations="$POORHELPS" \ --with-external-tar=`pwd`/ext_sources --with-java-target-version=1.5 \ %{distrooptions} \ - %{?with_binfilter:--enable-binfilter} \ --disable-fetch-external mkdir -p ext_sources cp %{SOURCE4} ext_sources -cp %{SOURCE7} ext_sources cp %{SOURCE8} ext_sources cp %{SOURCE9} ext_sources cp %{SOURCE10} ext_sources @@ -1354,7 +1293,7 @@ echo "NoDisplay=true" >> startcenter.desktop sed -i -e "/NoDisplay=true/d" qstart.desktop # relocate the .desktop and icon files mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications -for app in base %{?with_binfilter:binfilter} calc draw impress javafilter math startcenter writer xsltfilter; do +for app in base calc draw impress javafilter math startcenter writer xsltfilter; do # FIXME enable again # desktop-file-validate $app.desktop cp -p $app.desktop $RPM_BUILD_ROOT/%{_datadir}/applications/libreoffice-$app.desktop @@ -2146,41 +2085,10 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/program/libvclplug_kde4lo.so %endif -%if %{with binfilter} -%files binfilter -%defattr(-,root,root,-) -%{baseinstdir}/program/legacy_binfilters.rdb -%{baseinstdir}/program/libbf_frmlo.so -%{baseinstdir}/program/libbf_golo.so -%{baseinstdir}/program/libbf_migratefilterlo.so -%{baseinstdir}/program/libbf_ofalo.so -%{baseinstdir}/program/libbf_sblo.so -%{baseinstdir}/program/libbf_schlo.so -%{baseinstdir}/program/libbf_sclo.so -%{baseinstdir}/program/libbf_sdlo.so -%{baseinstdir}/program/libbf_smlo.so -%{baseinstdir}/program/libbf_solo.so -%{baseinstdir}/program/libbf_svtlo.so -%{baseinstdir}/program/libbf_svxlo.so -%{baseinstdir}/program/libbf_swlo.so -%{baseinstdir}/program/libbf_wrapperlo.so -%{baseinstdir}/program/libbf_xolo.so -%{baseinstdir}/program/libbindetlo.so -%{baseinstdir}/program/liblegacy_binfilterslo.so -%{baseinstdir}/program/resource/bf_frmen-US.res -%{baseinstdir}/program/resource/bf_ofaen-US.res -%{baseinstdir}/program/resource/bf_scen-US.res -%{baseinstdir}/program/resource/bf_schen-US.res -%{baseinstdir}/program/resource/bf_sden-US.res -%{baseinstdir}/program/resource/bf_smen-US.res -%{baseinstdir}/program/resource/bf_svten-US.res -%{baseinstdir}/program/resource/bf_svxen-US.res -%{baseinstdir}/program/resource/bf_swen-US.res -%{baseinstdir}/share/registry/binfilter.xcd -%{_datadir}/applications/libreoffice-binfilter.desktop -%endif - %changelog +* Mon Nov 26 2012 David Tardon - 1:4.0.0.0.alpha1-1 +- 4.0.0 alpha1 + * Sun Nov 18 2012 David Tardon - 1:3.6.4.1-1 - 3.6.4 rc1 diff --git a/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch b/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch index b82f4df..a943d48 100644 --- a/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch +++ b/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch @@ -33,7 +33,7 @@ index de1506a..5522e69 100644 - // except when font size is from conditional formatting. - //! Allow clipping when vertically merged? - if ( eType != OUTTYPE_PRINTER || -- ( pDoc->GetRowFlags( rParam.mnCellY, nTab ) & CR_MANUALSIZE ) || +- ( mpDoc->GetRowFlags( rParam.mnCellY, nTab ) & CR_MANUALSIZE ) || - ( rParam.mpCondSet && SFX_ITEM_SET == - rParam.mpCondSet->GetItemState(ATTR_FONT_HEIGHT, true) ) ) + if (UseNormalClip(rParam.mnCellY, rParam.mpCondSet)) @@ -68,7 +68,7 @@ index de1506a..5522e69 100644 - // except when font size is from conditional formatting. - //! Allow clipping when vertically merged? - if ( eType != OUTTYPE_PRINTER || -- ( pDoc->GetRowFlags( rParam.mnCellY, nTab ) & CR_MANUALSIZE ) || +- ( mpDoc->GetRowFlags( rParam.mnCellY, nTab ) & CR_MANUALSIZE ) || - ( rParam.mpCondSet && SFX_ITEM_SET == - rParam.mpCondSet->GetItemState(ATTR_FONT_HEIGHT, true) ) ) + @@ -84,7 +84,7 @@ index de1506a..5522e69 100644 - // except when font size is from conditional formatting. - //! Allow clipping when vertically merged? - if ( eType != OUTTYPE_PRINTER || -- ( pDoc->GetRowFlags( rParam.mnCellY, nTab ) & CR_MANUALSIZE ) || +- ( mpDoc->GetRowFlags( rParam.mnCellY, nTab ) & CR_MANUALSIZE ) || - ( rParam.mpCondSet && SFX_ITEM_SET == - rParam.mpCondSet->GetItemState(ATTR_FONT_HEIGHT, true) ) ) + if (UseNormalClip(rParam.mnCellY, rParam.mpCondSet)) @@ -92,7 +92,7 @@ index de1506a..5522e69 100644 else bSimClip = true; @@ -4460,6 +4456,20 @@ void ScOutputData::DrawEditAsianVertical(DrawEditParam& rParam) - rParam.adjustForHyperlinkInPDF(aURLStart, pDev); + rParam.adjustForHyperlinkInPDF(aURLStart, mpDev); } +bool ScOutputData::UseNormalClip(SCROW nCellY, const SfxItemSet* pCondSet) diff --git a/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch b/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch index 12868d8..c443cf7 100644 --- a/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch +++ b/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch @@ -29,16 +29,16 @@ index 676acd5..4a599c9 100644 #include +#include + #include #include #include - #include @@ -47,6 +48,8 @@ #include #include #include +#include +#include - #include + #include #include #include @@ -64,6 +67,8 @@ @@ -49,7 +49,7 @@ index 676acd5..4a599c9 100644 + #include #include - #include + #include @@ -71,6 +76,10 @@ #include #include diff --git a/openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch b/openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch index 4d90bd7..1a52509 100644 --- a/openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch +++ b/openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch @@ -5,37 +5,37 @@ retrieving revision 1.17 diff -u -p -r1.17 scriptitems.pm --- openoffice.org.orig/solenv/bin/modules/installer/scriptitems.pm 24 Feb 2005 16:21:15 -0000 1.17 +++ openoffice.org/solenv/bin/modules/installer/scriptitems.pm 18 Mar 2005 22:39:42 -0000 -@@ -1066,7 +1066,7 @@ +@@ -963,7 +963,7 @@ } else { -- $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file -+ $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file +- $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file ++ $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file } push( @installer::globals::logfileinfo, $infoline); -@@ -1144,7 +1144,7 @@ +@@ -1039,7 +1039,7 @@ } else { -- $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file -+ $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file +- $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file ++ $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file } push( @installer::globals::logfileinfo, $infoline); @@ -1356,11 +1356,10 @@ - + if ( ! $installer::globals::languagepack && !$installer::globals::helppack) { - $infoline = "ERROR: Removing file $filename from file list.\n"; + $infoline = "WARNING: Removing file $filename from file list.\n"; push( @installer::globals::logfileinfo, $infoline); -- push(@missingfiles, "ERROR: File not found: $filename\n"); +- push(@missingfiles, "ERROR: File not found: $filename\n"); - $error_occurred = 1; -+ push(@missingfiles, "WARNING: File not found: $filename\n"); ++ push(@missingfiles, "WARNING: File not found: $filename\n"); - next; # removing this file from list, if sourcepath is empty + next; # removing this file from list, if sourcepath is empty } @@ -1368,11 +1367,10 @@ { @@ -45,11 +45,11 @@ diff -u -p -r1.17 scriptitems.pm + $infoline = "WARNING: Removing file $filename from file list.\n"; push( @installer::globals::logfileinfo, $infoline); -- push(@missingfiles, "ERROR: File not found: $filename\n"); +- push(@missingfiles, "ERROR: File not found: $filename\n"); - $error_occurred = 1; -+ push(@missingfiles, "WARNING: File not found: $filename\n"); ++ push(@missingfiles, "WARNING: File not found: $filename\n"); - next; # removing this file from list, if sourcepath is empty + next; # removing this file from list, if sourcepath is empty } @@ -1390,11 +1388,10 @@ { @@ -59,20 +59,20 @@ diff -u -p -r1.17 scriptitems.pm + $infoline = "WARNING: Removing file $filename from file list.\n"; push( @installer::globals::logfileinfo, $infoline); -- push(@missingfiles, "ERROR: File not found: $filename\n"); +- push(@missingfiles, "ERROR: File not found: $filename\n"); - $error_occurred = 1; -+ push(@missingfiles, "WARNING: File not found: $filename\n"); ++ push(@missingfiles, "WARNING: File not found: $filename\n"); - next; # removing this file from list, if sourcepath is empty + next; # removing this file from list, if sourcepath is empty } --- openoffice.org.orig/solenv/bin/modules/installer/simplepackage.pm 2010-07-12 10:27:26.000000000 +0100 +++ openoffice.org/solenv/bin/modules/installer/simplepackage.pm 2010-07-12 10:27:54.000000000 +0100 @@ -53,7 +53,7 @@ - ( $installer::globals::packageformat eq "archive" )) - { - $installer::globals::is_simple_packager_project = 1; -- $installer::globals::patch_user_dir = 1; -+ $installer::globals::patch_user_dir = 0; - } - elsif( $installer::globals::packageformat eq "dmg" ) - { + ( $installer::globals::packageformat eq "archive" )) + { + $installer::globals::is_simple_packager_project = 1; +- $installer::globals::patch_user_dir = 1; ++ $installer::globals::patch_user_dir = 1; + } + elsif( $installer::globals::packageformat eq "dmg" ) + { diff --git a/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch b/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch index efc5318..2da9afd 100644 --- a/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch +++ b/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch @@ -23,7 +23,7 @@ index 4d02a76..ecd3b5d 100644 #include @@ -747,6 +750,138 @@ static void addtopattern(FcPattern *pPattern, - } + return 0; } +static const char* pick_sample_language(const sal_uInt32 cCode) diff --git a/sources b/sources index c431b5c..8dc6d3f 100644 --- a/sources +++ b/sources @@ -5,10 +5,8 @@ 185d60944ea767075d27247c3162b3bc 185d60944ea767075d27247c3162b3bc-unowinreg.dll c1b5b8d1dd929a1261a6f8872d92b799 redhat-langpacks.tar.gz 74939c9ea525374776f09bf972ede99f libreoffice-multiliblauncher.sh -fdb27bfe2dbe2e7b57ae194d9bf36bab fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip 1f24ab1d39f4a51faf22244c94a6203f 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz -49164be68b7eeaf4f8070145194b14a1 libreoffice-binfilter-3.6.4.1.tar.xz -ae3aaab557c5f76ad93f70825ec0c6cb libreoffice-core-3.6.4.1.tar.xz -489bf570cd73180b988588714901efa3 libreoffice-help-3.6.4.1.tar.xz -12126bfed467d06b85e1e24647c5c45b libreoffice-translations-3.6.4.1.tar.xz +8200d0c9da3615a09d94068eada02c28 libreoffice-4.0.0.0.alpha1.tar.xz +b3912d2b9f8312a3b85472890997704d libreoffice-help-4.0.0.0.alpha1.tar.xz +9dfdbac725c0a31b411026108cf7cf22 libreoffice-translations-4.0.0.0.alpha1.tar.xz From c3957e37ac77a20a2985100a45c3f3bcb9fa3726 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 12:19:19 +0100 Subject: [PATCH 02/28] %{defined rhel} does not work in Fedora fedpkg defines rhel to %{nil}, so the condition evaluates as true. --- libreoffice.spec | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 1b474af..8b0ec31 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -27,7 +27,7 @@ %bcond_without langpacks %if %{with langpacks} -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 %define langpack_langs en-US af ar as bg bn ca cs cy da de dz el es et eu fi fr ga gl gu he hi hr hu it ja ko kn lt mai ml mr ms nb nl nn nr nso or pa-IN pl pt pt-BR ro ru sh sk sl sr ss st sv ta te th tn tr ts uk ur ve xh zh-CN zh-TW zu %else %define langpack_langs en-US af ar as bg bn ca cs cy da de dz el es et eu fa fi fr ga gl gu he hi hr hu it ja ko kn lt lv mai ml mr nb nl nn nr nso or pa-IN pl pt pt-BR ro ru sh si sk sl sr ss st sv ta te th tn tr ts uk ve xh zh-CN zh-TW zu @@ -61,7 +61,7 @@ Source12: http://hg.services.openoffice.org/binaries/18f577b374d60b3c760a3 #Unfortunately later versions of hsqldb changed the file format, so if we use a later version we loose #backwards compatability. Source13: http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 Source14: http://dev-www.libreoffice.org/src/9f9e15966b5624834157fe3d748312bc-mdds_0.6.1.tar.bz2 Source15: http://dev-www.libreoffice.org/src/e1e255dc43dbcbb34cb19e8a0eba90ae-mythes-1.2.2.tar.gz Source16: http://dev-www.libreoffice.org/src/ca66e26082cab8bb817185a116db809b-redland-1.0.8.tar.gz @@ -109,7 +109,7 @@ BuildRequires: expat-devel BuildRequires: fontpackages-devel BuildRequires: freetype-devel BuildRequires: gecko-devel -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 BuildRequires: gstreamer-devel BuildRequires: gstreamer-plugins-base-devel %else @@ -178,7 +178,7 @@ BuildRequires: zlib-devel # java stuff BuildRequires: ant BuildRequires: ant-apache-regexp -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 BuildRequires: jakarta-commons-codec BuildRequires: jakarta-commons-lang %else @@ -186,7 +186,7 @@ BuildRequires: apache-commons-codec BuildRequires: apache-commons-lang %endif BuildRequires: bsh -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 BuildRequires: hsqldb %endif BuildRequires: jakarta-commons-httpclient @@ -218,7 +218,7 @@ Patch7: libreoffice-installfix.patch #to-do, fix this on bigendian platforms Patch26: 0001-disable-failing-check.patch Patch28: 0001-split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 Patch29: libreoffice-rhel6gcj.patch Patch30: libreoffice-rhel6poppler.patch Patch31: libreoffice-rhel6langs.patch @@ -272,7 +272,7 @@ to be written in python. Summary: Database front-end for LibreOffice Group: Applications/Productivity Requires: postgresql-jdbc -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 Requires: hsqldb %endif Requires: %{name}-ure = %{epoch}:%{version}-%{release} @@ -316,7 +316,7 @@ Support JavaScript scripts in LibreOffice. %package wiki-publisher Summary: Create Wiki articles on MediaWiki servers with LibreOffice Group: Applications/Productivity -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 Requires: jakarta-commons-codec, jakarta-commons-httpclient Requires: jakarta-commons-lang, jakarta-commons-logging %else @@ -704,7 +704,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %if %{undefined rhel} || 0%{?rhel} >= 7 %langpack -l fa -n Farsi -A -H -Y -S %endif -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 %langpack -l fi -n Finnish -F -A -S %else %langpack -l fi -n Finnish -F -r libreoffice-voikko -A -S @@ -728,7 +728,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %langpack -l lv -n Latvian -F -H -Y -M -S %endif %langpack -l mai -n Maithili -F -S -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 %langpack -l ms -n Malay -F -H -S %endif %langpack -l ml -n Malayalam -F -H -Y -S @@ -767,7 +767,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %langpack -l tr -n Turkish -F -A -S %langpack -l ts -n Tsonga -F -H -S %langpack -l uk -n Ukrainian -F -H -Y -M -S -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 %langpack -l ur -n Urdu -F -H -S %endif %langpack -l ve -n Venda -F -H -S @@ -843,10 +843,10 @@ mv -f redhat.soc extras/source/palettes/standard.soc #%%patch6 -p1 -b .ooo105784.vcl.sniffscriptforsubs.patch %patch7 -p1 -b .libreoffice-installfix.patch %patch26 -p1 -b .disable-failing-check.patch -%if %{defined rhel} && 0%{?rhel} < 7 -#%patch29 -p1 -b .rhel6gcj.patch -#%patch30 -p1 -b .rhel6poppler.patch -#%patch31 -p1 -b .rhel6langs.patch +%if 0%{?rhel} && 0%{?rhel} < 7 +%patch29 -p1 -b .rhel6gcj.patch +%patch30 -p1 -b .rhel6poppler.patch +%patch31 -p1 -b .rhel6langs.patch %endif # TODO: check this @@ -887,7 +887,7 @@ export ARCH_FLAGS export CFLAGS=$ARCH_FLAGS export CXXFLAGS=$ARCH_FLAGS -%if %{defined rhel} +%if 0%{?rhel} %if 0%{?rhel} < 7 %define distrooptions --disable-graphite --without-system-mythes --without-system-mdds --without-junit --without-system-redland --disable-ext-mysql-connector --without-system-libexttextcat --without-system-libcdr --without-system-libwps --without-system-libwpd --without-system-libwpg --without-system-libcmis --without-system-clucene --without-system-libvisio --without-system-lcms2 --enable-gstreamer-0-10 --disable-gstreamer --disable-postgresql-sdbc %else @@ -929,7 +929,7 @@ cp %{SOURCE10} ext_sources cp %{SOURCE11} ext_sources cp %{SOURCE12} ext_sources cp %{SOURCE13} ext_sources -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 cp %{SOURCE14} ext_sources cp %{SOURCE15} ext_sources cp %{SOURCE16} ext_sources @@ -1334,7 +1334,7 @@ install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c -i %{baseinst #unset WITH_LANG ## work around flawed accessibility check #export JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY="1" -#%if %{defined rhel} && 0%{?rhel} < 7 +#%if 0%{?rhel} && 0%{?rhel} < 7 #timeout 2h make smoketest.subsequentcheck #%else #timeout -k 2m 2h make smoketest.subsequentcheck @@ -1731,7 +1731,7 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/soffice %{_bindir}/ooffice %{_bindir}/ooviewdoc -%if %{defined rhel} && 0%{?rhel} < 7 +%if 0%{?rhel} && 0%{?rhel} < 7 %{baseinstdir}/program/libraptor-lo.so.1 %{baseinstdir}/program/librasqal-lo.so.1 %{baseinstdir}/program/librdf-lo.so.0 From 0f491a9ce908d672438b0fdea3aa26de7826d07e Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 12:26:33 +0100 Subject: [PATCH 03/28] change %{undefined rhel} too --- libreoffice.spec | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 8b0ec31..5854862 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -99,7 +99,7 @@ BuildRequires: zip # libs / headers BuildRequires: GConf2-devel BuildRequires: boost-devel -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 BuildRequires: clucene-core-devel %endif BuildRequires: cppunit-devel @@ -120,19 +120,19 @@ BuildRequires: gstreamer1-plugins-base-devel BuildRequires: gtk2-devel BuildRequires: hunspell-devel BuildRequires: hyphen-devel -%if %{undefined rhel} +%if 0%{?!rhel} BuildRequires: kdelibs4-devel %endif BuildRequires: libICE-devel BuildRequires: libXext-devel BuildRequires: libXinerama-devel BuildRequires: libXt-devel -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 BuildRequires: libcdr-devel BuildRequires: libcmis-devel %endif BuildRequires: libcurl-devel -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 BuildRequires: libexttextcat-devel %endif BuildRequires: libicu-devel @@ -140,7 +140,7 @@ BuildRequires: libidn-devel BuildRequires: libjpeg-devel BuildRequires: liblangtag-devel BuildRequires: liborcus-devel -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 BuildRequires: libvisio-devel BuildRequires: libwpd-devel BuildRequires: libwpg-devel @@ -149,11 +149,11 @@ BuildRequires: libwps-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: lpsolve-devel -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 BuildRequires: mdds-devel %endif BuildRequires: mesa-libGLU-devel -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 BuildRequires: mysql-connector-c++-devel BuildRequires: mythes-devel %endif @@ -161,11 +161,11 @@ BuildRequires: neon-devel BuildRequires: nss-devel BuildRequires: openssl-devel BuildRequires: pam-devel -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 BuildRequires: poppler-cpp-devel %endif BuildRequires: poppler-devel -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 BuildRequires: postgresql-devel %endif BuildRequires: python-devel @@ -191,7 +191,7 @@ BuildRequires: hsqldb %endif BuildRequires: jakarta-commons-httpclient BuildRequires: java-devel -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 BuildRequires: junit %endif BuildRequires: pentaho-reporting-flow-engine @@ -490,7 +490,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %postun javafilter update-desktop-database %{_datadir}/applications &> /dev/null || : -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 %package postgresql Summary: PostgreSQL connector for LibreOffice Group: Applications/Productivity @@ -548,7 +548,7 @@ A plug-in for LibreOffice that enables it to function without an X server. It implements the -headless command line option and allows LibreOffice to be used as a backend server for e.g. document conversion. -%if %{undefined rhel} +%if 0%{?!rhel} %package kde Summary: LibreOffice KDE integration plug-in Group: Applications/Productivity @@ -701,7 +701,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %langpack -l es -n Spanish -F -H -Y -M -A -S %langpack -l et -n Estonian -F -H -Y -S %langpack -l eu -n Basque -F -H -Y -A -S -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 %langpack -l fa -n Farsi -A -H -Y -S %endif %if 0%{?rhel} && 0%{?rhel} < 7 @@ -724,7 +724,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %{baseinstdir}/share/registry/korea.xcd %langpack -l lt -n Lithuanian -F -H -Y -A -S -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 %langpack -l lv -n Latvian -F -H -Y -M -S %endif %langpack -l mai -n Maithili -F -S @@ -748,7 +748,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %langpack -l pt-PT -n Portuguese -f pt -h pt -y pt -m pt -a pt -p pt_PT -s pt %langpack -l ro -n Romanian -F -H -Y -M -S %langpack -l ru -n Russian -F -H -Y -M -A -S -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 %langpack -l si -n Sinhalese -F -H -S %endif %langpack -l sk -n Slovak -F -H -Y -M -A -S @@ -869,7 +869,7 @@ if [ $SMP_MFLAGS -lt 2 ]; then SMP_MFLAGS=2; fi NDMAKES=$SMP_MFLAGS NBUILDS=`dc -e "$SMP_MFLAGS v p"` -%if %{undefined rhel} +%if 0%{?!rhel} # KDE bits export QT4DIR=%{_qt4_prefix} export KDE4DIR=%{_kde4_prefix} @@ -1769,7 +1769,7 @@ done %{baseinstdir}/help/en/sdatabase.* %dir %{baseinstdir}/program %dir %{baseinstdir}/program/classes -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 %{baseinstdir}/program/classes/hsqldb.jar %endif %{baseinstdir}/program/classes/sdbc_hsqldb.jar @@ -1923,7 +1923,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/program/libhwplo.so %{baseinstdir}/program/liblwpftlo.so %{baseinstdir}/program/libmswordlo.so -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 %{baseinstdir}/program/libmsworks%{SOPOST}.so %endif %{baseinstdir}/program/libswdlo.so @@ -2024,7 +2024,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/share/registry/pocketexcel.xcd %{baseinstdir}/share/registry/pocketword.xcd -%if %{undefined rhel} || 0%{?rhel} >= 7 +%if 0%{?!rhel} || 0%{?rhel} >= 7 %files postgresql %defattr(-,root,root,-) %{baseinstdir}/program/postgresql-sdbc.uno.so @@ -2076,7 +2076,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/share/extensions/script-provider-for-python %{baseinstdir}/share/registry/pyuno.xcd -%if %{undefined rhel} +%if 0%{?!rhel} %files kde %defattr(-,root,root,-) %dir %{baseinstdir} From 54b61936763dac686d742f4e8baea1f7c7f64edb Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 12:50:35 +0100 Subject: [PATCH 04/28] fix unpacking of help and translations --- libreoffice.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libreoffice.spec b/libreoffice.spec index 5854862..74d576b 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -823,7 +823,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %endif %prep -%setup -q -n %{name}-%{version}%{?libo_prerelease} -a 2 -a 3 +%setup -q -n %{name}-%{version}%{?libo_prerelease} -b 2 -b 3 rm -rf git-hooks */git-hooks #Customize Palette to remove Sun colours and add Red Hat colours (head -n -1 extras/source/palettes/standard.soc && \ From 071c54b088486c9b9ecdae59d6c3659d403e3bb0 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 13:04:49 +0100 Subject: [PATCH 05/28] fix configure options --- libreoffice.spec | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 74d576b..f734f90 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -860,14 +860,6 @@ echo build start time is `date`, diskspace: `df -h . | tail -n 1` POORHELPS=`ls -d translations/source/*/helpcontent2 translations/source/*|cut -f 3 -d /|sort|uniq -u|xargs` #don't build localized helps which are poorly translated POORHELPS="$POORHELPS `grep 'msgstr .Working with Documents' translations/source/*/helpcontent2/source/text/swriter/guide.po| cut -f 3 -d / | xargs`" -#convert _smp_mflags to dmake equivalent -SMP_MFLAGS=%{?_smp_mflags} -SMP_MFLAGS=$[${SMP_MFLAGS/-j/}] -if [ $SMP_MFLAGS -lt 2 ]; then SMP_MFLAGS=2; fi -# NDMAKES (or --with-max-jobs) is what is used for tail_build. We surely -# want as much paralelism as possible there. -NDMAKES=$SMP_MFLAGS -NBUILDS=`dc -e "$SMP_MFLAGS v p"` %if 0%{?!rhel} # KDE bits @@ -902,18 +894,18 @@ autoconf # avoid running autogen.sh on make touch autogen.lastrun %configure \ - %vendoroption --with-num-cpus=$NBUILDS --with-max-jobs=$NDMAKES \ + %vendoroption %{?_smp_flags:--with-parallelism=%{_smp_flags}} \ --with-build-version="%{version}-%{release}" --with-unix-wrapper=%{name} \ - --disable-ldap --disable-epm --disable-mathmldtd \ + --disable-epm --disable-mathmldtd \ --disable-gnome-vfs --enable-gio --enable-symbols --enable-lockdown \ --enable-evolution2 --enable-dbus --enable-opengl --enable-vba \ --enable-ext-presenter-minimizer --enable-ext-nlpsolver \ --enable-ext-wiki-publisher --enable-ext-report-builder \ - --enable-ext-scripting-beanshell --enable-ext-scripting-javascript \ + --enable-scripting-beanshell --enable-scripting-javascript \ --without-system-servlet-api \ --with-system-jars --with-vba-package-format="builtin" \ --with-system-libs --with-system-headers --with-system-mozilla \ - --without-system-mozilla-headers --with-system-dicts \ + --without-system-npapi-headers --with-system-dicts \ --with-external-dict-dir=/usr/share/myspell \ --without-myspell-dicts --without-fonts --without-ppds --without-afms \ %{?with_lang} --with-poor-help-localizations="$POORHELPS" \ From 7e349ad0dc2962fa943cd4296c27f274ff5f0f1b Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 13:09:18 +0100 Subject: [PATCH 06/28] add ucpp tarball --- .gitignore | 1 + libreoffice.spec | 2 ++ sources | 1 + 3 files changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 5b9a5ac..9ca4156 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ /libreoffice-4.0.0.0.alpha1.tar.xz /libreoffice-help-4.0.0.0.alpha1.tar.xz /libreoffice-translations-4.0.0.0.alpha1.tar.xz +/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz diff --git a/libreoffice.spec b/libreoffice.spec index f734f90..f70da52 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -53,6 +53,7 @@ Source3: %{source_url}/libreoffice-translations-%{version}%{?libo_prerele Source4: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll Source5: redhat-langpacks.tar.gz Source6: libreoffice-multiliblauncher.sh +Source7: http://hg.services.openoffice.org/binaries/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz Source8: http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip Source9: http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz Source10: http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip @@ -915,6 +916,7 @@ touch autogen.lastrun mkdir -p ext_sources cp %{SOURCE4} ext_sources +cp %{SOURCE7} ext_sources cp %{SOURCE8} ext_sources cp %{SOURCE9} ext_sources cp %{SOURCE10} ext_sources diff --git a/sources b/sources index 8dc6d3f..2e380c9 100644 --- a/sources +++ b/sources @@ -10,3 +10,4 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2. 8200d0c9da3615a09d94068eada02c28 libreoffice-4.0.0.0.alpha1.tar.xz b3912d2b9f8312a3b85472890997704d libreoffice-help-4.0.0.0.alpha1.tar.xz 9dfdbac725c0a31b411026108cf7cf22 libreoffice-translations-4.0.0.0.alpha1.tar.xz +0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz From d7427b6b96fbc50261f4aa21ae23142e25d8d1f3 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 13:23:05 +0100 Subject: [PATCH 07/28] use system servlet-api.jar --- libreoffice.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libreoffice.spec b/libreoffice.spec index f70da52..9570ef0 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -196,6 +196,8 @@ BuildRequires: java-devel BuildRequires: junit %endif BuildRequires: pentaho-reporting-flow-engine +BuildRequires: tomcat-servlet-3.0-api + # fonts needed for unit tests BuildRequires: liberation-mono-fonts >= 1.0 BuildRequires: liberation-sans-fonts >= 1.0 @@ -903,8 +905,8 @@ touch autogen.lastrun --enable-ext-presenter-minimizer --enable-ext-nlpsolver \ --enable-ext-wiki-publisher --enable-ext-report-builder \ --enable-scripting-beanshell --enable-scripting-javascript \ - --without-system-servlet-api \ --with-system-jars --with-vba-package-format="builtin" \ + --with-servlet-api-jar=/usr/share/java/tomcat-servlet-api.jar \ --with-system-libs --with-system-headers --with-system-mozilla \ --without-system-npapi-headers --with-system-dicts \ --with-external-dict-dir=/usr/share/myspell \ From b92fc72bd76a9ec8864f7966db89f698d7103b44 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 13:37:04 +0100 Subject: [PATCH 08/28] temp. skip patch causing build error --- libreoffice.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libreoffice.spec b/libreoffice.spec index 9570ef0..2170ab5 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -841,7 +841,8 @@ mv -f redhat.soc extras/source/palettes/standard.soc %patch2 -p1 -b .ooo86080.unopkg.bodge.patch %patch3 -p1 -b .ooo88341.sc.verticalboxes.patch %patch4 -p1 -b .oooXXXXX.solenv.allowmissing.patch -%patch5 -p1 -b .ooo101274.opening-a-directory.patch +# FIXME build error +#%%patch5 -p1 -b .ooo101274.opening-a-directory.patch # FIXME ask Eike/Caolan about the broken hunk #%%patch6 -p1 -b .ooo105784.vcl.sniffscriptforsubs.patch %patch7 -p1 -b .libreoffice-installfix.patch From a277312a92a08fcf0517aa5408a2cb305a2afac1 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 14:23:19 +0100 Subject: [PATCH 09/28] temporarily disable failing PDF import test --- 0001-temporarily-disable-failing-test.patch | 25 +++++++++++++++++++++ libreoffice.spec | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 0001-temporarily-disable-failing-test.patch diff --git a/0001-temporarily-disable-failing-test.patch b/0001-temporarily-disable-failing-test.patch new file mode 100644 index 0000000..cf8c258 --- /dev/null +++ b/0001-temporarily-disable-failing-test.patch @@ -0,0 +1,25 @@ +From b568989dbd436fae841a260530c048293abce396 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Mon, 26 Nov 2012 14:22:00 +0100 +Subject: [PATCH] temporarily disable failing test + +Change-Id: I35779dee97cfdde25e33724e61edef8a65694428 +--- + sdext/Module_sdext.mk | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/sdext/Module_sdext.mk b/sdext/Module_sdext.mk +index 2d506be..648cafa 100644 +--- a/sdext/Module_sdext.mk ++++ b/sdext/Module_sdext.mk +@@ -50,7 +50,6 @@ $(eval $(call gb_Module_add_targets,sdext,\ + )) + + $(eval $(call gb_Module_add_check_targets,sdext,\ +- CppunitTest_pdfimport \ + )) + endif + +-- +1.8.0 + diff --git a/libreoffice.spec b/libreoffice.spec index 2170ab5..d65f41c 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -226,6 +226,7 @@ Patch29: libreoffice-rhel6gcj.patch Patch30: libreoffice-rhel6poppler.patch Patch31: libreoffice-rhel6langs.patch %endif +Patch32: 0001-temporarily-disable-failing-test.patch %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %define instdir %{_libdir} @@ -852,6 +853,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc %patch30 -p1 -b .rhel6poppler.patch %patch31 -p1 -b .rhel6langs.patch %endif +%patch32 -p1 -b .temporarily-disable-failing-test.patch # TODO: check this # these are horribly incomplete--empty translations and copied english From 7e41cd06c8caf29c2695ecfea25ad4c79365b517 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 26 Nov 2012 14:55:42 +0100 Subject: [PATCH 10/28] temp. disable another patch to get the build running --- libreoffice.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libreoffice.spec b/libreoffice.spec index d65f41c..b66c820 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -840,7 +840,8 @@ rm -rf git-hooks */git-hooks mv -f redhat.soc extras/source/palettes/standard.soc %patch1 -p1 %patch2 -p1 -b .ooo86080.unopkg.bodge.patch -%patch3 -p1 -b .ooo88341.sc.verticalboxes.patch +# FIXME build error +#%%patch3 -p1 -b .ooo88341.sc.verticalboxes.patch %patch4 -p1 -b .oooXXXXX.solenv.allowmissing.patch # FIXME build error #%%patch5 -p1 -b .ooo101274.opening-a-directory.patch From 9158d6068ab09bb6558313614efe115039a27e51 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Tue, 27 Nov 2012 08:30:44 +0100 Subject: [PATCH 11/28] set vars for create_tree.sh --- libreoffice.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index b66c820..31d7d64 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -954,13 +954,14 @@ if ! make VERBOSE=true; then make GMAKE_OPTIONS=-rj1 fi -# TODO: get rid of this -. ./config_host.mk.source #generate the icons and mime type stuff export DESTDIR=../../../output export KDEMAINDIR=/usr export GNOMEDIR=/usr export GNOME_MIME_THEME=hicolor +# TODO use empty variables? Should make the renaming hacks in %%install +# unnecessary. +. ./bin/get_config_variables PRODUCTVERSIONSHORT PRODUCTVERSION cd sysui/unxlng*/misc/libreoffice ./create_tree.sh From 426f7bae0a89c1a7449fde6b4f6aaeb993636b18 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Tue, 27 Nov 2012 08:38:43 +0100 Subject: [PATCH 12/28] move copying of sources to %prep --- libreoffice.spec | 56 ++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 31d7d64..0f5a8c2 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -861,6 +861,34 @@ mv -f redhat.soc extras/source/palettes/standard.soc # strings with spattering of translated strings rm -rf translations/source/{gu,he,hr}/helpcontent2 +mkdir -p ext_sources +cp %{SOURCE4} ext_sources +cp %{SOURCE7} ext_sources +cp %{SOURCE8} ext_sources +cp %{SOURCE9} ext_sources +cp %{SOURCE10} ext_sources +cp %{SOURCE11} ext_sources +cp %{SOURCE12} ext_sources +cp %{SOURCE13} ext_sources +%if 0%{?rhel} && 0%{?rhel} < 7 +cp %{SOURCE14} ext_sources +cp %{SOURCE15} ext_sources +cp %{SOURCE16} ext_sources +cp %{SOURCE17} ext_sources +cp %{SOURCE18} ext_sources +cp %{SOURCE19} ext_sources +cp %{SOURCE20} ext_sources +cp %{SOURCE21} ext_sources +cp %{SOURCE22} ext_sources +cp %{SOURCE23} ext_sources +cp %{SOURCE24} ext_sources +cp %{SOURCE25} ext_sources +cp %{SOURCE26} ext_sources +cp %{SOURCE27} ext_sources +cp -r translations/source/en-GB translations/source/ms +cp -r translations/source/en-GB translations/source/ur +%endif + %build echo build start time is `date`, diskspace: `df -h . | tail -n 1` #don't build localized helps which aren't translated @@ -920,34 +948,6 @@ touch autogen.lastrun %{distrooptions} \ --disable-fetch-external -mkdir -p ext_sources -cp %{SOURCE4} ext_sources -cp %{SOURCE7} ext_sources -cp %{SOURCE8} ext_sources -cp %{SOURCE9} ext_sources -cp %{SOURCE10} ext_sources -cp %{SOURCE11} ext_sources -cp %{SOURCE12} ext_sources -cp %{SOURCE13} ext_sources -%if 0%{?rhel} && 0%{?rhel} < 7 -cp %{SOURCE14} ext_sources -cp %{SOURCE15} ext_sources -cp %{SOURCE16} ext_sources -cp %{SOURCE17} ext_sources -cp %{SOURCE18} ext_sources -cp %{SOURCE19} ext_sources -cp %{SOURCE20} ext_sources -cp %{SOURCE21} ext_sources -cp %{SOURCE22} ext_sources -cp %{SOURCE23} ext_sources -cp %{SOURCE24} ext_sources -cp %{SOURCE25} ext_sources -cp %{SOURCE26} ext_sources -cp %{SOURCE27} ext_sources -cp -r translations/source/en-GB translations/source/ms -cp -r translations/source/en-GB translations/source/ur -%endif - if ! make VERBOSE=true; then # TODO Do we still need this? I think parallel build is reliable # enough these days... From 21c83685d367d488c9efc7b4d7a141cda08fd12a Mon Sep 17 00:00:00 2001 From: David Tardon Date: Tue, 27 Nov 2012 08:41:14 +0100 Subject: [PATCH 13/28] why copy the tarballs at all? --- libreoffice.spec | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 0f5a8c2..a45acb4 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -861,30 +861,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc # strings with spattering of translated strings rm -rf translations/source/{gu,he,hr}/helpcontent2 -mkdir -p ext_sources -cp %{SOURCE4} ext_sources -cp %{SOURCE7} ext_sources -cp %{SOURCE8} ext_sources -cp %{SOURCE9} ext_sources -cp %{SOURCE10} ext_sources -cp %{SOURCE11} ext_sources -cp %{SOURCE12} ext_sources -cp %{SOURCE13} ext_sources %if 0%{?rhel} && 0%{?rhel} < 7 -cp %{SOURCE14} ext_sources -cp %{SOURCE15} ext_sources -cp %{SOURCE16} ext_sources -cp %{SOURCE17} ext_sources -cp %{SOURCE18} ext_sources -cp %{SOURCE19} ext_sources -cp %{SOURCE20} ext_sources -cp %{SOURCE21} ext_sources -cp %{SOURCE22} ext_sources -cp %{SOURCE23} ext_sources -cp %{SOURCE24} ext_sources -cp %{SOURCE25} ext_sources -cp %{SOURCE26} ext_sources -cp %{SOURCE27} ext_sources cp -r translations/source/en-GB translations/source/ms cp -r translations/source/en-GB translations/source/ur %endif @@ -895,6 +872,8 @@ echo build start time is `date`, diskspace: `df -h . | tail -n 1` POORHELPS=`ls -d translations/source/*/helpcontent2 translations/source/*|cut -f 3 -d /|sort|uniq -u|xargs` #don't build localized helps which are poorly translated POORHELPS="$POORHELPS `grep 'msgstr .Working with Documents' translations/source/*/helpcontent2/source/text/swriter/guide.po| cut -f 3 -d / | xargs`" +# path to external tarballs +EXTSRCDIR=`dirname %{SOURCE0}` %if 0%{?!rhel} # KDE bits @@ -944,7 +923,7 @@ touch autogen.lastrun --with-external-dict-dir=/usr/share/myspell \ --without-myspell-dicts --without-fonts --without-ppds --without-afms \ %{?with_lang} --with-poor-help-localizations="$POORHELPS" \ - --with-external-tar=`pwd`/ext_sources --with-java-target-version=1.5 \ + --with-external-tar="$EXTSRCDIR" --with-java-target-version=1.5 \ %{distrooptions} \ --disable-fetch-external From 64fe96930fecdd44647dac9bbd5fa49bda34b24b Mon Sep 17 00:00:00 2001 From: David Tardon Date: Tue, 27 Nov 2012 09:53:02 +0100 Subject: [PATCH 14/28] config_host.mk.source is gone --- libreoffice.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index a45acb4..40a5901 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -949,8 +949,8 @@ echo build end time is `date`, diskspace: `df -h . | tail -n 1` %install rm -rf $RPM_BUILD_ROOT -# TODO: get rid of this -. ./config_host.mk.source +# TODO investigate use of make distro-pack-install +. ./bin/get_config_variables `sed -n -e '/^export/s/^export \([A-Z0-9_]\+\).*/\1/p' config_host.mk` #figure out the icon version export `grep "^PRODUCTVERSIONSHORT =" solenv/inc/productversion.mk | sed -e "s/ //g"` export `grep "PRODUCTVERSION[ ]*=[ ]*" solenv/inc/productversion.mk | sed -e "s/ //g"` From be6d3c63e5c171a59ae7fb1fb303f2ffc7cb3f6d Mon Sep 17 00:00:00 2001 From: David Tardon Date: Tue, 27 Nov 2012 12:53:34 +0100 Subject: [PATCH 15/28] fix RHEL inclusion conditions I just love the rpm macro syntax. It is so obvious and intuitive... --- libreoffice.spec | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 40a5901..716377c 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -100,7 +100,7 @@ BuildRequires: zip # libs / headers BuildRequires: GConf2-devel BuildRequires: boost-devel -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: clucene-core-devel %endif BuildRequires: cppunit-devel @@ -121,19 +121,19 @@ BuildRequires: gstreamer1-plugins-base-devel BuildRequires: gtk2-devel BuildRequires: hunspell-devel BuildRequires: hyphen-devel -%if 0%{?!rhel} +%if 0%{?fedora} BuildRequires: kdelibs4-devel %endif BuildRequires: libICE-devel BuildRequires: libXext-devel BuildRequires: libXinerama-devel BuildRequires: libXt-devel -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: libcdr-devel BuildRequires: libcmis-devel %endif BuildRequires: libcurl-devel -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: libexttextcat-devel %endif BuildRequires: libicu-devel @@ -141,7 +141,7 @@ BuildRequires: libidn-devel BuildRequires: libjpeg-devel BuildRequires: liblangtag-devel BuildRequires: liborcus-devel -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: libvisio-devel BuildRequires: libwpd-devel BuildRequires: libwpg-devel @@ -150,11 +150,11 @@ BuildRequires: libwps-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: lpsolve-devel -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: mdds-devel %endif BuildRequires: mesa-libGLU-devel -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: mysql-connector-c++-devel BuildRequires: mythes-devel %endif @@ -162,11 +162,11 @@ BuildRequires: neon-devel BuildRequires: nss-devel BuildRequires: openssl-devel BuildRequires: pam-devel -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: poppler-cpp-devel %endif BuildRequires: poppler-devel -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: postgresql-devel %endif BuildRequires: python-devel @@ -192,7 +192,7 @@ BuildRequires: hsqldb %endif BuildRequires: jakarta-commons-httpclient BuildRequires: java-devel -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: junit %endif BuildRequires: pentaho-reporting-flow-engine @@ -494,7 +494,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %postun javafilter update-desktop-database %{_datadir}/applications &> /dev/null || : -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 %package postgresql Summary: PostgreSQL connector for LibreOffice Group: Applications/Productivity @@ -552,7 +552,7 @@ A plug-in for LibreOffice that enables it to function without an X server. It implements the -headless command line option and allows LibreOffice to be used as a backend server for e.g. document conversion. -%if 0%{?!rhel} +%if 0%{?fedora} %package kde Summary: LibreOffice KDE integration plug-in Group: Applications/Productivity @@ -705,7 +705,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %langpack -l es -n Spanish -F -H -Y -M -A -S %langpack -l et -n Estonian -F -H -Y -S %langpack -l eu -n Basque -F -H -Y -A -S -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 %langpack -l fa -n Farsi -A -H -Y -S %endif %if 0%{?rhel} && 0%{?rhel} < 7 @@ -728,7 +728,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %{baseinstdir}/share/registry/korea.xcd %langpack -l lt -n Lithuanian -F -H -Y -A -S -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 %langpack -l lv -n Latvian -F -H -Y -M -S %endif %langpack -l mai -n Maithili -F -S @@ -752,7 +752,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %langpack -l pt-PT -n Portuguese -f pt -h pt -y pt -m pt -a pt -p pt_PT -s pt %langpack -l ro -n Romanian -F -H -Y -M -S %langpack -l ru -n Russian -F -H -Y -M -A -S -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 %langpack -l si -n Sinhalese -F -H -S %endif %langpack -l sk -n Slovak -F -H -Y -M -A -S @@ -875,7 +875,7 @@ POORHELPS="$POORHELPS `grep 'msgstr .Working with Documents' translations/source # path to external tarballs EXTSRCDIR=`dirname %{SOURCE0}` -%if 0%{?!rhel} +%if 0%{?fedora} # KDE bits export QT4DIR=%{_qt4_prefix} export KDE4DIR=%{_kde4_prefix} @@ -1749,7 +1749,7 @@ done %{baseinstdir}/help/en/sdatabase.* %dir %{baseinstdir}/program %dir %{baseinstdir}/program/classes -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 %{baseinstdir}/program/classes/hsqldb.jar %endif %{baseinstdir}/program/classes/sdbc_hsqldb.jar @@ -1903,7 +1903,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/program/libhwplo.so %{baseinstdir}/program/liblwpftlo.so %{baseinstdir}/program/libmswordlo.so -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 %{baseinstdir}/program/libmsworks%{SOPOST}.so %endif %{baseinstdir}/program/libswdlo.so @@ -2004,7 +2004,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/share/registry/pocketexcel.xcd %{baseinstdir}/share/registry/pocketword.xcd -%if 0%{?!rhel} || 0%{?rhel} >= 7 +%if 0%{?fedora} || 0%{?rhel} >= 7 %files postgresql %defattr(-,root,root,-) %{baseinstdir}/program/postgresql-sdbc.uno.so @@ -2056,7 +2056,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/share/extensions/script-provider-for-python %{baseinstdir}/share/registry/pyuno.xcd -%if 0%{?!rhel} +%if 0%{?fedora} %files kde %defattr(-,root,root,-) %dir %{baseinstdir} From 0053515ef34f66624531ebafb334cd2e5a062a2f Mon Sep 17 00:00:00 2001 From: David Tardon Date: Tue, 27 Nov 2012 12:51:40 +0100 Subject: [PATCH 16/28] update filelists --- libreoffice.spec | 30 ++++++++++++++---------------- sources | 2 +- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 716377c..960884d 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -1102,7 +1102,7 @@ nl help western nn help western \ nr nohelp western nso nohelp western \ or nohelp ctl pa-IN nohelp ctl \ pl help western pt help western \ -pt-BR help western ro help western \ +pt-BR help western ro nohelp western \ ru help western sh nohelp western \ si help ctl sk help western \ sl help western sr nohelp western \ @@ -1354,10 +1354,8 @@ rm -rf $RPM_BUILD_ROOT %dir %{baseinstdir}/program/classes %{baseinstdir}/program/classes/agenda.jar %{baseinstdir}/program/classes/commonwizards.jar -%{baseinstdir}/program/classes/fax.jar %{baseinstdir}/program/classes/form.jar %{baseinstdir}/program/classes/query.jar -%{baseinstdir}/program/classes/letter.jar %{baseinstdir}/program/classes/officebean.jar %{baseinstdir}/program/classes/report.jar %{baseinstdir}/program/classes/ScriptFramework.jar @@ -1385,6 +1383,7 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/program/hatchwindowfactory.uno.so %{baseinstdir}/program/kde-open-url %{baseinstdir}/program/i18nsearch.uno.so +%{baseinstdir}/program/ldapbe2.uno.so %{baseinstdir}/program/libacclo.so %{baseinstdir}/program/libavmedia*.so %{baseinstdir}/program/libbasctllo.so @@ -1443,7 +1442,6 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/program/libguesslanglo.so %{baseinstdir}/program/libhelplinkerlo.so %{baseinstdir}/program/libhyphenlo.so -%{baseinstdir}/program/libi18nregexplo.so %{baseinstdir}/program/libjdbclo.so %{baseinstdir}/program/liblnglo.so %{baseinstdir}/program/libloglo.so @@ -1452,6 +1450,7 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/program/liblocaledata_euro.so %{baseinstdir}/program/liblocaledata_others.so %{baseinstdir}/program/libmcnttype.so +%{baseinstdir}/program/libmorklo.so %{baseinstdir}/program/libmozbootstrap.so %{baseinstdir}/program/libmsfilterlo.so %{baseinstdir}/program/mtfrenderer.uno.so @@ -1509,6 +1508,8 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/program/libxsltdlglo.so %{baseinstdir}/program/libxsltfilterlo.so %{baseinstdir}/program/libxstor.so +# TODO how useful this is in Fedora? +%{baseinstdir}/program/losessioninstall.uno.so %{baseinstdir}/program/migrationoo2.uno.so %{baseinstdir}/program/migrationoo3.uno.so %{baseinstdir}/program/msforms.uno.so @@ -1524,7 +1525,6 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/program/resource/accen-US.res %{baseinstdir}/program/resource/basctlen-US.res %{baseinstdir}/program/resource/biben-US.res -%{baseinstdir}/program/resource/calen-US.res %{baseinstdir}/program/resource/chartcontrolleren-US.res %{baseinstdir}/program/resource/cuien-US.res %{baseinstdir}/program/resource/dbaen-US.res @@ -1579,6 +1579,8 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/program/ucptdoc1.uno.so %{baseinstdir}/program/unorc %{baseinstdir}/program/updatefeed.uno.so +# TODO do we need this? +%{baseinstdir}/program/ui-previewer %{baseinstdir}/ure-link %{baseinstdir}/program/uri-encode %{baseinstdir}/program/vbaevents.uno.so @@ -1595,10 +1597,13 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/share/config/images_hicontrast.zip %{baseinstdir}/share/config/images_oxygen.zip %{baseinstdir}/share/config/images_tango.zip +# TODO what's this? How it differs from images_tango.zip? +%{baseinstdir}/share/config/images_tango_testing.zip %{baseinstdir}/share/config/psetup.xpm %{baseinstdir}/share/config/psetupl.xpm %dir %{baseinstdir}/share/config/soffice.cfg %{baseinstdir}/share/config/soffice.cfg/modules +%{baseinstdir}/share/config/soffice.cfg/*/ui %{baseinstdir}/share/config/webcast %{baseinstdir}/share/config/wizard %dir %{baseinstdir}/share/dtd @@ -1616,12 +1621,12 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/share/registry/Langpack-en-US.xcd %dir %{baseinstdir}/share/registry/res %{baseinstdir}/share/registry/res/fcfg_langpack_en-US.xcd -%dir %{baseinstdir}/share/samples -%{baseinstdir}/share/samples/en-US %dir %{baseinstdir}/share/template %{baseinstdir}/share/template/en-US %dir %{baseinstdir}/share/template/common +%{baseinstdir}/share/template/common/internal %{baseinstdir}/share/template/common/layout +%{baseinstdir}/share/template/common/wizard %{baseinstdir}/share/template/wizard %dir %{baseinstdir}/share/wordbook %{baseinstdir}/share/wordbook/en-GB.dic @@ -1674,7 +1679,7 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/program/libucpfile1.so %{baseinstdir}/program/libutllo.so %{baseinstdir}/program/libvcllo.so -%{baseinstdir}/program/libxcrlo.so +%{baseinstdir}/program/libxmlscriptlo.so %{baseinstdir}/program/libxolo.so %{baseinstdir}/program/localebe1.uno.so %{baseinstdir}/program/ucpgio1.uno.so @@ -1689,9 +1694,9 @@ rm -rf $RPM_BUILD_ROOT %{baseinstdir}/program/setuprc %doc %{baseinstdir}/CREDITS.odt %doc %{baseinstdir}/LICENSE +%doc %{baseinstdir}/LICENSE.html %doc %{baseinstdir}/LICENSE.odt %doc %{baseinstdir}/NOTICE -%doc %{baseinstdir}/THIRDPARTYLICENSEREADME.html %{baseinstdir}/program/intro.* %{baseinstdir}/program/soffice %{baseinstdir}/program/soffice.bin @@ -1811,8 +1816,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %dir %{baseinstdir} %dir %{baseinstdir}/program %{baseinstdir}/program/OGLTrans.uno.so -%dir %{baseinstdir}/share/config -%dir %{baseinstdir}/share/config/soffice.cfg %dir %{baseinstdir}/share/config/soffice.cfg/simpress %{baseinstdir}/share/config/soffice.cfg/simpress/transitions-ogl.xml %{baseinstdir}/share/registry/ogltrans.xcd @@ -1903,9 +1906,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/program/libhwplo.so %{baseinstdir}/program/liblwpftlo.so %{baseinstdir}/program/libmswordlo.so -%if 0%{?fedora} || 0%{?rhel} >= 7 -%{baseinstdir}/program/libmsworks%{SOPOST}.so -%endif %{baseinstdir}/program/libswdlo.so %{baseinstdir}/program/libswuilo.so %{baseinstdir}/program/libt602filterlo.so @@ -1933,8 +1933,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %dir %{baseinstdir}/program %{baseinstdir}/program/libanimcorelo.so %{baseinstdir}/program/libplacewarelo.so -%dir %{baseinstdir}/share/config -%dir %{baseinstdir}/share/config/soffice.cfg %dir %{baseinstdir}/share/config/soffice.cfg/simpress %{baseinstdir}/share/config/soffice.cfg/simpress/effects.xml %{baseinstdir}/share/config/soffice.cfg/simpress/transitions.xml diff --git a/sources b/sources index 2e380c9..95320cc 100644 --- a/sources +++ b/sources @@ -3,7 +3,6 @@ 18f577b374d60b3c760a3a3350407632 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz 17410483b5b5f267aa18b7e00b65e6e0 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip 185d60944ea767075d27247c3162b3bc 185d60944ea767075d27247c3162b3bc-unowinreg.dll -c1b5b8d1dd929a1261a6f8872d92b799 redhat-langpacks.tar.gz 74939c9ea525374776f09bf972ede99f libreoffice-multiliblauncher.sh a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip 1f24ab1d39f4a51faf22244c94a6203f 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz @@ -11,3 +10,4 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2. b3912d2b9f8312a3b85472890997704d libreoffice-help-4.0.0.0.alpha1.tar.xz 9dfdbac725c0a31b411026108cf7cf22 libreoffice-translations-4.0.0.0.alpha1.tar.xz 0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz +f82cd768a220188dafa78207b5728d14 redhat-langpacks.tar.gz From 9d853ddb7e4f9b61113c26c8659f738e5bc38271 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Wed, 28 Nov 2012 13:06:48 +0100 Subject: [PATCH 17/28] this patch has been dropped --- libreoffice.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/libreoffice.spec b/libreoffice.spec index 960884d..4c64419 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -220,7 +220,6 @@ Patch6: openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch Patch7: libreoffice-installfix.patch #to-do, fix this on bigendian platforms Patch26: 0001-disable-failing-check.patch -Patch28: 0001-split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch %if 0%{?rhel} && 0%{?rhel} < 7 Patch29: libreoffice-rhel6gcj.patch Patch30: libreoffice-rhel6poppler.patch From 9455761a1f2090d0f0e42f4ac547ff17654bc207 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 29 Nov 2012 13:08:56 +0100 Subject: [PATCH 18/28] avoid the need to have system libcmis 0.3 for now --- .gitignore | 1 + libreoffice.spec | 10 +++++++++- sources | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9ca4156..68a779f 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ /libreoffice-help-4.0.0.0.alpha1.tar.xz /libreoffice-translations-4.0.0.0.alpha1.tar.xz /0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz +/b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz diff --git a/libreoffice.spec b/libreoffice.spec index 4c64419..ef98fb4 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -25,6 +25,8 @@ # so it is necessary to change this to bcond_with to achieve the same # effect %bcond_without langpacks +# simplify building before libcmis-0.3 is available +%bcond_without libcmis %if %{with langpacks} %if 0%{?rhel} && 0%{?rhel} < 7 @@ -78,6 +80,9 @@ Source25: http://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfd Source26: http://dev-www.libreoffice.org/src/94e7f271e38c976462558b4278590178-libvisio-0.0.19.tar.bz2 Source27: http://dev-www.libreoffice.org/src/327348d67c979c88c2dec59a23a17d85-lcms2-2.3.tar.gz %endif +%if %{with libcmis} +Source28: http://dev-www.libreoffice.org/src/b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz +%endif # build tools BuildRequires: autoconf @@ -130,7 +135,9 @@ BuildRequires: libXinerama-devel BuildRequires: libXt-devel %if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: libcdr-devel -BuildRequires: libcmis-devel +%if %{without libcmis} +BuildRequires: libcmis-devel >= 0.3 +%endif %endif BuildRequires: libcurl-devel %if 0%{?fedora} || 0%{?rhel} >= 7 @@ -924,6 +931,7 @@ touch autogen.lastrun %{?with_lang} --with-poor-help-localizations="$POORHELPS" \ --with-external-tar="$EXTSRCDIR" --with-java-target-version=1.5 \ %{distrooptions} \ + %{?with_libcmis:--without-system-libcmis} \ --disable-fetch-external if ! make VERBOSE=true; then diff --git a/sources b/sources index 95320cc..d78e79e 100644 --- a/sources +++ b/sources @@ -11,3 +11,4 @@ b3912d2b9f8312a3b85472890997704d libreoffice-help-4.0.0.0.alpha1.tar.xz 9dfdbac725c0a31b411026108cf7cf22 libreoffice-translations-4.0.0.0.alpha1.tar.xz 0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz f82cd768a220188dafa78207b5728d14 redhat-langpacks.tar.gz +b2371dc7cf4811c9d32146eec913d296 b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz From ce85ecbe65883a70d004ca6fd6278ff3555e7603 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 29 Nov 2012 14:35:40 +0100 Subject: [PATCH 19/28] fix patches --- libreoffice.spec | 9 +-- ....org-3.0.0.ooo88341.sc.verticalboxes.patch | 28 ++++----- ...-3.1.0.ooo101274.opening-a-directory.patch | 57 +++++++++---------- ...1.1.ooo105784.vcl.sniffscriptforsubs.patch | 38 +++++-------- 4 files changed, 60 insertions(+), 72 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index ef98fb4..3f2ed60 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -846,13 +846,10 @@ rm -rf git-hooks */git-hooks mv -f redhat.soc extras/source/palettes/standard.soc %patch1 -p1 %patch2 -p1 -b .ooo86080.unopkg.bodge.patch -# FIXME build error -#%%patch3 -p1 -b .ooo88341.sc.verticalboxes.patch +%patch3 -p1 -b .ooo88341.sc.verticalboxes.patch %patch4 -p1 -b .oooXXXXX.solenv.allowmissing.patch -# FIXME build error -#%%patch5 -p1 -b .ooo101274.opening-a-directory.patch -# FIXME ask Eike/Caolan about the broken hunk -#%%patch6 -p1 -b .ooo105784.vcl.sniffscriptforsubs.patch +%patch5 -p1 -b .ooo101274.opening-a-directory.patch +%patch6 -p1 -b .ooo105784.vcl.sniffscriptforsubs.patch %patch7 -p1 -b .libreoffice-installfix.patch %patch26 -p1 -b .disable-failing-check.patch %if 0%{?rhel} && 0%{?rhel} < 7 diff --git a/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch b/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch index a943d48..113cbe7 100644 --- a/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch +++ b/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch @@ -1,18 +1,18 @@ -From 5316edea6948f3e2a77e4fc68799f67de21fada7 Mon Sep 17 00:00:00 2001 +From 8208f795bb6882cf77adef940839f0c46b9befb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Mon, 5 Dec 2011 15:28:19 +0100 Subject: [PATCH] vertical content overflowing out of cell (#i88341#) --- - sc/source/ui/inc/output.hxx | 2 + - sc/source/ui/view/output2.cxx | 66 ++++++++++++++++++++++++++-------------- + sc/source/ui/inc/output.hxx | 2 ++ + sc/source/ui/view/output2.cxx | 66 ++++++++++++++++++++++++++++--------------- 2 files changed, 45 insertions(+), 23 deletions(-) diff --git a/sc/source/ui/inc/output.hxx b/sc/source/ui/inc/output.hxx -index 72934cf..3a91c14 100644 +index 1b8d8f5..6dcbe2e 100644 --- a/sc/source/ui/inc/output.hxx +++ b/sc/source/ui/inc/output.hxx -@@ -306,6 +306,8 @@ public: +@@ -296,6 +296,8 @@ public: void DrawExtraShadow(sal_Bool bLeft, sal_Bool bTop, sal_Bool bRight, sal_Bool bBottom); void DrawFrame(); @@ -22,10 +22,10 @@ index 72934cf..3a91c14 100644 void DrawEdit(sal_Bool bPixelToLogic); diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx -index de1506a..5522e69 100644 +index ac6365c..141ef00 100644 --- a/sc/source/ui/view/output2.cxx +++ b/sc/source/ui/view/output2.cxx -@@ -2818,13 +2818,7 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam) +@@ -2905,13 +2905,7 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam) (ScMergeAttr*)&rParam.mpPattern->GetItem(ATTR_MERGE); bool bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1; @@ -40,7 +40,7 @@ index de1506a..5522e69 100644 bClip = true; else bSimClip = true; -@@ -2859,6 +2853,19 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam) +@@ -2946,6 +2940,19 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam) } Rectangle aLogicClip; @@ -60,7 +60,7 @@ index de1506a..5522e69 100644 if (bClip || bSimClip) { // Clip marks are already handled in GetOutputArea -@@ -3191,13 +3198,8 @@ void ScOutputData::DrawEditBottomTop(DrawEditParam& rParam) +@@ -3278,13 +3285,8 @@ void ScOutputData::DrawEditBottomTop(DrawEditParam& rParam) (ScMergeAttr*)&rParam.mpPattern->GetItem(ATTR_MERGE); bool bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1; @@ -76,7 +76,7 @@ index de1506a..5522e69 100644 bClip = true; else bSimClip = true; -@@ -3563,13 +3565,7 @@ void ScOutputData::DrawEditTopBottom(DrawEditParam& rParam) +@@ -3650,13 +3652,7 @@ void ScOutputData::DrawEditTopBottom(DrawEditParam& rParam) (ScMergeAttr*)&rParam.mpPattern->GetItem(ATTR_MERGE); bool bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1; @@ -91,7 +91,7 @@ index de1506a..5522e69 100644 bClip = true; else bSimClip = true; -@@ -4460,6 +4456,20 @@ void ScOutputData::DrawEditAsianVertical(DrawEditParam& rParam) +@@ -4547,6 +4543,20 @@ void ScOutputData::DrawEditAsianVertical(DrawEditParam& rParam) rParam.adjustForHyperlinkInPDF(aURLStart, mpDev); } @@ -102,7 +102,7 @@ index de1506a..5522e69 100644 + // except when font size is from conditional formatting. + //! Allow clipping when vertically merged? + if ( eType != OUTTYPE_PRINTER || -+ ( pDoc->GetRowFlags( nCellY, nTab ) & CR_MANUALSIZE ) || ++ ( mpDoc->GetRowFlags( nCellY, nTab ) & CR_MANUALSIZE ) || + ( pCondSet && SFX_ITEM_SET == + pCondSet->GetItemState(ATTR_FONT_HEIGHT, sal_True) ) ) + bNormalClip = true; @@ -112,7 +112,7 @@ index de1506a..5522e69 100644 void ScOutputData::DrawEdit(sal_Bool bPixelToLogic) { ScFieldEditEngine* pEngine = NULL; -@@ -5168,11 +5178,21 @@ void ScOutputData::DrawRotated(sal_Bool bPixelToLogic) +@@ -5258,11 +5268,21 @@ void ScOutputData::DrawRotated(sal_Bool bPixelToLogic) else { // bei gedrehtem Text ist Standard zentriert @@ -137,5 +137,5 @@ index de1506a..5522e69 100644 } -- -1.7.7.3 +1.8.0 diff --git a/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch b/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch index c443cf7..9bfc221 100644 --- a/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch +++ b/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch @@ -1,18 +1,18 @@ -From 7e3bdb601c02e60b772e64ec9d11c56881c9a643 Mon Sep 17 00:00:00 2001 +From 1be2e01e592466aec2e60fbf1af528cfab1572db Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 1 Dec 2011 14:02:07 +0100 -Subject: [PATCH 1/2] #i101274 a directory on command line is silently ignored +Subject: [PATCH] #i101274 a directory on command line is silently ignored --- - .../source/misc/stillreadwriteinteraction.cxx | 1 + - ucbhelper/source/client/content.cxx | 75 ++++++++++++++++++++ - 2 files changed, 76 insertions(+), 0 deletions(-) + .../source/misc/stillreadwriteinteraction.cxx | 1 + + ucbhelper/source/client/content.cxx | 75 ++++++++++++++++++++++ + 2 files changed, 76 insertions(+) diff --git a/comphelper/source/misc/stillreadwriteinteraction.cxx b/comphelper/source/misc/stillreadwriteinteraction.cxx -index 124564d..506f31c 100644 +index b3dd6e8..d0f5738 100644 --- a/comphelper/source/misc/stillreadwriteinteraction.cxx +++ b/comphelper/source/misc/stillreadwriteinteraction.cxx -@@ -96,6 +96,7 @@ ucbhelper::InterceptedInteraction::EInterceptionState StillReadWriteInteraction: +@@ -87,6 +87,7 @@ ucbhelper::InterceptedInteraction::EInterceptionState StillReadWriteInteraction: bAbort = ( (exIO.Code == css::ucb::IOErrorCode_ACCESS_DENIED ) || (exIO.Code == css::ucb::IOErrorCode_LOCKING_VIOLATION ) @@ -21,10 +21,10 @@ index 124564d..506f31c 100644 #ifdef MACOSX // this is a workaround for MAC, on this platform if the file is locked diff --git a/ucbhelper/source/client/content.cxx b/ucbhelper/source/client/content.cxx -index 676acd5..4a599c9 100644 +index 95e589f..d7fc181 100644 --- a/ucbhelper/source/client/content.cxx +++ b/ucbhelper/source/client/content.cxx -@@ -38,6 +38,7 @@ +@@ -27,6 +27,7 @@ #include #include @@ -32,7 +32,7 @@ index 676acd5..4a599c9 100644 #include #include #include -@@ -47,6 +48,8 @@ +@@ -37,6 +38,8 @@ #include #include #include @@ -41,7 +41,7 @@ index 676acd5..4a599c9 100644 #include #include #include -@@ -64,6 +67,8 @@ +@@ -56,12 +59,18 @@ #include #include #include @@ -50,7 +50,6 @@ index 676acd5..4a599c9 100644 #include #include #include -@@ -71,6 +76,10 @@ #include #include #include @@ -61,7 +60,7 @@ index 676acd5..4a599c9 100644 using namespace com::sun::star::container; using namespace com::sun::star::beans; -@@ -373,6 +382,54 @@ static Reference< XContent > getContent( +@@ -283,6 +292,54 @@ static Reference< XContent > getContent( return Reference< XContent >(); } @@ -70,16 +69,16 @@ index 676acd5..4a599c9 100644 + +void +lcl_displayMessage( ++ const Reference& rContext, + const Reference& rEnvironment, + const rtl::OUString& rUri) +{ + // Create exception -+ const Reference xCPM( -+ getContentBroker(true)->getContentProviderManagerInterface()); ++ const Reference xBroker(UniversalContentBroker::create(rContext)); + const PropertyValue aUriProperty( + rtl::OUString::createFromAscii("Uri"), + -1, -+ makeAny(getSystemPathFromFileURL(xCPM, rUri)), ++ makeAny(getSystemPathFromFileURL(xBroker, rUri)), + PropertyState_DIRECT_VALUE) + ; + Sequence lArguments(1); @@ -116,72 +115,72 @@ index 676acd5..4a599c9 100644 //========================================================================= //========================================================================= // -@@ -787,7 +902,10 @@ Reference< XInputStream > Content::openStream() +@@ -699,7 +756,10 @@ Reference< XInputStream > Content::openStream() throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) + { -+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); ++ lcl_displayMessage(m_xImpl->getComponentContext(), m_xImpl->getEnvironment(), getURL()); return Reference< XInputStream >(); + } Reference< XActiveDataSink > xSink = new ActiveDataSink; -@@ -813,7 +930,10 @@ Reference< XInputStream > Content::openStreamNoLock() +@@ -724,7 +784,10 @@ Reference< XInputStream > Content::openStreamNoLock() throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) + { -+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); ++ lcl_displayMessage(m_xImpl->getComponentContext(), m_xImpl->getEnvironment(), getURL()); return Reference< XInputStream >(); + } Reference< XActiveDataSink > xSink = new ActiveDataSink; -@@ -838,7 +965,10 @@ Reference< XStream > Content::openWriteableStream() +@@ -749,7 +812,10 @@ Reference< XStream > Content::openWriteableStream() throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) + { -+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); ++ lcl_displayMessage(m_xImpl->getComponentContext(), m_xImpl->getEnvironment(), getURL()); return Reference< XStream >(); + } Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer; -@@ -863,7 +990,10 @@ Reference< XStream > Content::openWriteableStreamNoLock() +@@ -774,7 +840,10 @@ Reference< XStream > Content::openWriteableStreamNoLock() throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) + { -+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); ++ lcl_displayMessage(m_xImpl->getComponentContext(), m_xImpl->getEnvironment(), getURL()); return Reference< XStream >(); + } Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer; -@@ -888,7 +1019,10 @@ sal_Bool Content::openStream( const Reference< XActiveDataSink >& rSink ) +@@ -799,7 +868,10 @@ sal_Bool Content::openStream( const Reference< XActiveDataSink >& rSink ) throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) + { -+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); ++ lcl_displayMessage(m_xImpl->getComponentContext(), m_xImpl->getEnvironment(), getURL()); return sal_False; + } OpenCommandArgument2 aArg; aArg.Mode = OpenMode::DOCUMENT; -@@ -911,7 +1045,10 @@ sal_Bool Content::openStream( const Reference< XOutputStream >& rStream ) +@@ -822,7 +894,10 @@ sal_Bool Content::openStream( const Reference< XOutputStream >& rStream ) throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) + { -+ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); ++ lcl_displayMessage(m_xImpl->getComponentContext(), m_xImpl->getEnvironment(), getURL()); return sal_False; + } OpenCommandArgument2 aArg; aArg.Mode = OpenMode::DOCUMENT; -- -1.7.7.3 +1.8.0 diff --git a/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch b/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch index 2da9afd..4f68758 100644 --- a/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch +++ b/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch @@ -1,18 +1,18 @@ -From 36644331aad8382ccab7fb19d7ab3339bbff0c20 Mon Sep 17 00:00:00 2001 +From bda1b906c7bee734dfc7242b60b7b1510886aee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Thu, 1 Dec 2011 14:18:09 +0100 -Subject: [PATCH 2/2] #i105784# vcl: improve selection of fallback font by +Subject: [PATCH] #i105784# vcl: improve selection of fallback font by supplying language hint when none exists --- - vcl/generic/fontmanager/fontconfig.cxx | 143 +++++++++++++++++++++++++++++++- - 1 files changed, 141 insertions(+), 2 deletions(-) + vcl/generic/fontmanager/fontconfig.cxx | 141 +++++++++++++++++++++++++++++++++ + 1 file changed, 141 insertions(+) diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx -index 4d02a76..ecd3b5d 100644 +index 8270585..82ac6bc 100644 --- a/vcl/generic/fontmanager/fontconfig.cxx +++ b/vcl/generic/fontmanager/fontconfig.cxx -@@ -89,6 +89,9 @@ using namespace psp; +@@ -91,6 +91,9 @@ using namespace psp; #include "sal/alloca.h" @@ -22,7 +22,7 @@ index 4d02a76..ecd3b5d 100644 #include #include -@@ -747,6 +750,138 @@ static void addtopattern(FcPattern *pPattern, +@@ -911,6 +914,138 @@ IMPL_LINK_NOARG(PrintFontManager, autoInstallFontLangSupport) return 0; } @@ -161,23 +161,15 @@ index 4d02a76..ecd3b5d 100644 bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& rMissingCodes ) { bool bRet = false; -@@ -764,14 +899,13 @@ bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& r - FcPatternAddString(pPattern, FC_FAMILY, pTargetNameUtf8); +@@ -929,6 +1064,7 @@ bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& r - const rtl::OString aLangAttrib = MsLangId::convertLanguageToIsoByteString(rPattern.meLanguage); -+ const FcChar8* pLangAttribUtf8 = NULL; - if( !aLangAttrib.isEmpty() ) - { -- const FcChar8* pLangAttribUtf8; - if (aLangAttrib.equalsIgnoreAsciiCase(OString(RTL_CONSTASCII_STRINGPARAM("pa-in")))) - pLangAttribUtf8 = (FcChar8*)"pa"; - else - pLangAttribUtf8 = (FcChar8*)aLangAttrib.getStr(); -- FcPatternAddString(pPattern, FC_LANG, pLangAttribUtf8); - } + const LanguageTag aLangTag(rPattern.meLanguage); + const rtl::OString aLangAttrib = mapToFontConfigLangTag(aLangTag); ++ const FcChar8* pLangAttribUtf8 = (const FcChar8*)aLangAttrib.getStr(); + if (!aLangAttrib.isEmpty()) + FcPatternAddString(pPattern, FC_LANG, (FcChar8*)aLangAttrib.getStr()); - // Add required Unicode characters, if any -@@ -783,11 +917,16 @@ bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& r +@@ -941,11 +1077,16 @@ bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& r // also handle unicode surrogates const sal_uInt32 nCode = rMissingCodes.iterateCodePoints( &nStrIndex ); FcCharSetAddChar( unicodes, nCode ); @@ -195,5 +187,5 @@ index 4d02a76..ecd3b5d 100644 rPattern.meWidthType, rPattern.mePitch); -- -1.7.7.3 +1.8.0 From 1d0af5afb8caae9aee117d7be27932a09c28af34 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 29 Nov 2012 14:41:54 +0100 Subject: [PATCH 20/28] remove old cruft --- libreoffice.spec | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 3f2ed60..54c13a4 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -47,7 +47,6 @@ Release: 1%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 Group: Applications/Productivity URL: http://www.documentfoundation.org/develop -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Source0: %{source_url}/libreoffice-%{version}%{?libo_prerelease}.tar.xz Source2: %{source_url}/libreoffice-help-%{version}%{?libo_prerelease}.tar.xz @@ -586,7 +585,6 @@ Debug information is useful when developing applications that use this package or when debugging this package. %files debuginfo -f debugfiles.list -%defattr(-,root,root) %package gdb-debug-support Summary: Additional support for debugging with gdb @@ -598,7 +596,6 @@ AutoReqProv: 0 This package provides gdb pretty printers for package %{name}. %files gdb-debug-support -%defattr(-,root,root) %{_datadir}/gdb/auto-load%{baseinstdir} %{_datadir}/libreoffice/gdb @@ -659,7 +656,6 @@ Provides additional %{langname} translations and resources for %{project}. \ \ %define filelist %{-s:-f %{-s*}.filelist}%{!-s:%{-S:-f %{lang}.filelist}} \ %files %{pkgname} %{filelist} \ -%defattr(-,root,root,-) \ %* @@ -686,7 +682,6 @@ BuildArch: noarch \ Rules for auto-correcting common %{langname} typing errors. \ \ %files -n %{pkgname} \ -%defattr(-,root,root,-) \ %doc solver/unxlng*/bin/ure/LICENSE \ %dir %{_datadir}/autocorr \ %{!-X:%{_datadir}/autocorr/acor_%{lang}-*} \ @@ -952,7 +947,6 @@ echo build end time is `date`, diskspace: `df -h . | tail -n 1` %install -rm -rf $RPM_BUILD_ROOT # TODO investigate use of make distro-pack-install . ./bin/get_config_variables `sed -n -e '/^export/s/^export \([A-Z0-9_]\+\).*/\1/p' config_host.mk` #figure out the icon version @@ -1324,14 +1318,9 @@ install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c -i %{baseinst #timeout -k 2m 2h make smoketest.subsequentcheck #%endif -%clean -rm -rf $RPM_BUILD_ROOT - %files -%defattr(-,root,root,-) %files core -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/help %docdir %{baseinstdir}/help/en @@ -1753,7 +1742,6 @@ done %files base -%defattr(-,root,root,-) %dir %{baseinstdir} %{baseinstdir}/help/en/sdatabase.* %dir %{baseinstdir}/program @@ -1788,35 +1776,29 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : update-desktop-database %{_datadir}/applications &> /dev/null || : %files report-builder -%defattr(-,root,root,-) %docdir %{baseinstdir}/share/extensions/report-builder/help %{baseinstdir}/share/extensions/report-builder %files bsh -%defattr(-,root,root,-) %{baseinstdir}/program/classes/ScriptProviderForBeanShell.jar %{baseinstdir}/program/services/scriptproviderforbeanshell.rdb %{baseinstdir}/share/Scripts/beanshell %files rhino -%defattr(-,root,root,-) %{baseinstdir}/program/classes/js.jar %{baseinstdir}/program/classes/ScriptProviderForJavaScript.jar %{baseinstdir}/program/services/scriptproviderforjavascript.rdb %{baseinstdir}/share/Scripts/javascript %files wiki-publisher -%defattr(-,root,root,-) %docdir %{baseinstdir}/share/extensions/wiki-publisher/license %{baseinstdir}/share/extensions/wiki-publisher %files nlpsolver -%defattr(-,root,root,-) %docdir %{baseinstdir}/share/extensions/nlpsolver/help %{baseinstdir}/share/extensions/nlpsolver %files ogltrans -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/program %{baseinstdir}/program/OGLTrans.uno.so @@ -1825,17 +1807,14 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/share/registry/ogltrans.xcd %files presentation-minimizer -%defattr(-,root,root,-) %docdir %{baseinstdir}/share/extensions/presentation-minimizer/help %{baseinstdir}/share/extensions/presentation-minimizer %files presenter-screen -%defattr(-,root,root,-) %docdir %{baseinstdir}/share/extensions/presenter-screen/help %{baseinstdir}/share/extensions/presenter-screen %files pdfimport -%defattr(-,root,root,-) %docdir %{baseinstdir}/share/extensions/pdfimport/help %{baseinstdir}/share/extensions/pdfimport @@ -1843,7 +1822,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %doc solver/unxlng*/bin/ure/LICENSE %files calc -%defattr(-,root,root,-) %dir %{baseinstdir} %{baseinstdir}/help/en/scalc.* %dir %{baseinstdir}/program @@ -1878,7 +1856,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : update-desktop-database %{_datadir}/applications &> /dev/null || : %files draw -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/program %{baseinstdir}/help/en/sdraw.* @@ -1895,7 +1872,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : update-desktop-database %{_datadir}/applications &> /dev/null || : %files emailmerge -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/program %{baseinstdir}/program/mailmerge.py* @@ -1903,7 +1879,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/program/officehelper.py* %files writer -%defattr(-,root,root,-) %dir %{baseinstdir} %{baseinstdir}/help/en/swriter.* %dir %{baseinstdir}/program @@ -1931,7 +1906,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : update-desktop-database %{_datadir}/applications &> /dev/null || : %files impress -%defattr(-,root,root,-) %dir %{baseinstdir} %{baseinstdir}/help/en/simpress.* %dir %{baseinstdir}/program @@ -1953,7 +1927,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : update-desktop-database %{_datadir}/applications &> /dev/null || : %files math -%defattr(-,root,root,-) %dir %{baseinstdir} %{baseinstdir}/help/en/smath.* %dir %{baseinstdir}/program @@ -1973,7 +1946,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : update-desktop-database %{_datadir}/applications &> /dev/null || : %files graphicfilter -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/program %{baseinstdir}/program/libflashlo.so @@ -1981,7 +1953,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/share/registry/graphicfilter.xcd %files xsltfilter -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/share/xslt %{baseinstdir}/share/xslt/docbook @@ -1994,7 +1965,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{_datadir}/applications/libreoffice-xsltfilter.desktop %files javafilter -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/program %dir %{baseinstdir}/program/classes @@ -2008,7 +1978,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %if 0%{?fedora} || 0%{?rhel} >= 7 %files postgresql -%defattr(-,root,root,-) %{baseinstdir}/program/postgresql-sdbc.uno.so %{baseinstdir}/program/postgresql-sdbc-impl.uno.so %{baseinstdir}/program/postgresql-sdbc.ini @@ -2017,32 +1986,27 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %endif %files ure -%defattr(-,root,root,-) %doc solver/unxlng*/bin/ure/LICENSE %dir %{baseinstdir} %{ureinstdir} %files sdk -%defattr(-,root,root,-) %{sdkinstdir}/ %exclude %{sdkinstdir}/docs/ %exclude %{sdkinstdir}/examples/ %files sdk-doc -%defattr(-,root,root,-) %docdir %{sdkinstdir}/docs %{sdkinstdir}/docs/ %{sdkinstdir}/examples/ %files headless -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/program %{baseinstdir}/program/libbasebmplo.so %{baseinstdir}/program/libvclplug_svplo.so %files pyuno -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/program %{baseinstdir}/program/libpyuno.so @@ -2060,7 +2024,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %if 0%{?fedora} %files kde -%defattr(-,root,root,-) %dir %{baseinstdir} %dir %{baseinstdir}/program %{baseinstdir}/program/kde4be1.uno.so From 89e597aadb68851a8b90163b43e689b339202fcd Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 29 Nov 2012 14:43:39 +0100 Subject: [PATCH 21/28] reenable desktop-file-validate --- libreoffice.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 54c13a4..dd2a8da 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -1272,8 +1272,7 @@ sed -i -e "/NoDisplay=true/d" qstart.desktop # relocate the .desktop and icon files mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications for app in base calc draw impress javafilter math startcenter writer xsltfilter; do - # FIXME enable again - # desktop-file-validate $app.desktop + desktop-file-validate $app.desktop cp -p $app.desktop $RPM_BUILD_ROOT/%{_datadir}/applications/libreoffice-$app.desktop done popd From 423b00373021f7b9a0cfa20bfe7c8be2be7ddf27 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Sat, 1 Dec 2012 09:20:08 +0100 Subject: [PATCH 22/28] fix user config dir --- libreoffice.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libreoffice.spec b/libreoffice.spec index dd2a8da..6e9f88f 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -974,6 +974,12 @@ fi mkdir -p $RPM_BUILD_ROOT/%{baseinstdir} mv ../unxlng*.pro/LibreOffice/installed/install/en-US/* $RPM_BUILD_ROOT/%{baseinstdir} chmod -R +w $RPM_BUILD_ROOT/%{baseinstdir} +# The installer currently sets UserInstallation to +# $ORIGIN/../libreoffice/4, which is of course total nonsense. Because I +# have no inclination to crawl through mountains of perl code to figure out +# where it comes from, I am just going to replace it by a sensible +# value here. +sed -i -e '/UserInstallation/s@\$ORIGIN/..@$SYSUSERCONFIG@' $RPM_BUILD_ROOT/%{baseinstdir}/program/bootstraprc %if %{with langpacks} dmake ooolanguagepack rm -rf ../unxlng*.pro/LibreOffice_languagepack/installed/install/log From ed8de092b4e40560939821d9cb3627eb7b0f33e7 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Sat, 1 Dec 2012 09:35:49 +0100 Subject: [PATCH 23/28] exclude UI translations from -core --- libreoffice.spec | 4 ++++ sources | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libreoffice.spec b/libreoffice.spec index 6e9f88f..879b8b6 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -1601,7 +1601,11 @@ install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c -i %{baseinst %{baseinstdir}/share/config/psetupl.xpm %dir %{baseinstdir}/share/config/soffice.cfg %{baseinstdir}/share/config/soffice.cfg/modules +# UI translations go into langpacks +%exclude %{baseinstdir}/share/config/soffice.cfg/modules/*/ui/res %{baseinstdir}/share/config/soffice.cfg/*/ui +# UI translations go into langpacks +%exclude %{baseinstdir}/share/config/soffice.cfg/*/ui/res %{baseinstdir}/share/config/webcast %{baseinstdir}/share/config/wizard %dir %{baseinstdir}/share/dtd diff --git a/sources b/sources index d78e79e..e070d6c 100644 --- a/sources +++ b/sources @@ -10,5 +10,5 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2. b3912d2b9f8312a3b85472890997704d libreoffice-help-4.0.0.0.alpha1.tar.xz 9dfdbac725c0a31b411026108cf7cf22 libreoffice-translations-4.0.0.0.alpha1.tar.xz 0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz -f82cd768a220188dafa78207b5728d14 redhat-langpacks.tar.gz b2371dc7cf4811c9d32146eec913d296 b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz +8deb4ea1d88cb84354f7d8d837e3ddbb redhat-langpacks.tar.gz From 9df525f94d10c321ff83c91f1620495d5d7fdef9 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Sun, 2 Dec 2012 13:14:27 +0100 Subject: [PATCH 24/28] macroize creation of autocorr aliases --- libreoffice.spec | 58 +++++++++++++++--------------------------------- 1 file changed, 18 insertions(+), 40 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 879b8b6..2ab0562 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -827,6 +827,14 @@ Rules for auto-correcting common %{langname} typing errors. \ %endif +%define make_autocorr_aliases(l:) \ +%{?-l: \ +for lang in %{*}; do \ + ln -sf acor_%{-l*}.dat acor_$lang.dat \ +done \ +} \ +%{!?-l:%{error:-l must be present}} + %prep %setup -q -n %{name}-%{version}%{?libo_prerelease} -b 2 -b 3 rm -rf git-hooks */git-hooks @@ -1026,49 +1034,19 @@ popd #Set some aliases to canonical autocorrect language files for locales with matching languages pushd $RPM_BUILD_ROOT/%{baseinstdir}/share/autocorr -en_GB_aliases="en-AG en-AU en-BS en-BW en-BZ en-CA en-DK en-GH en-HK en-IE en-IN en-JM en-NG en-NZ en-SG en-TT" -for lang in $en_GB_aliases; do - ln -sf acor_en-GB.dat acor_$lang.dat -done -en_US_aliases="en-PH" -for lang in $en_US_aliases; do - ln -sf acor_en-US.dat acor_$lang.dat -done +%make_autocorr_aliases -l en-GB en-AG en-AU en-BS en-BW en-BZ en-CA en-DK en-GH en-HK en-IE en-IN en-JM en-NG en-NZ en-SG en-TT +%make_autocorr_aliases -l en-US en-PH #en-ZA exists and has a good autocorrect file with two or three extras that make sense for #neighbouring english speaking territories -en_ZA_aliases="en-NA en-ZW" -for lang in $en_ZA_aliases; do - ln -sf acor_en-ZA.dat acor_$lang.dat -done +%make_autocorr_aliases -l en-ZA en-NA en-ZW %if %{with langpacks} -af_ZA_aliases="af-NA" -for lang in $af_ZA_aliases; do - ln -sf acor_af-ZA.dat acor_$lang.dat -done -de_DE_aliases="de-AT de-BE de-CH de-LI de-LU" -for lang in $de_DE_aliases; do - ln -sf acor_de-DE.dat acor_$lang.dat -done -es_ES_aliases="es-AR es-BO es-CL es-CO es-CR es-CU es-DO es-EC es-GT es-HN es-MX es-NI es-PA es-PE es-PR es-PY es-SV es-US es-UY es-VE" -for lang in $es_ES_aliases; do - ln -sf acor_es-ES.dat acor_$lang.dat -done -fr_FR_aliases="fr-BE fr-CA fr-CH fr-LU fr-MC" -for lang in $fr_FR_aliases; do - ln -sf acor_fr-FR.dat acor_$lang.dat -done -it_IT_aliases="it-CH" -for lang in $it_IT_aliases; do - ln -sf acor_it-IT.dat acor_$lang.dat -done -nl_NL_aliases="nl-AW" -for lang in $nl_NL_aliases; do - ln -s acor_nl-NL.dat acor_$lang.dat -done -sv_SE_aliases="sv-FI" -for lang in $sv_SE_aliases; do - ln -s acor_sv-SE.dat acor_$lang.dat -done +%make_autocorr_aliases -l af-ZA af-NA +%make_autocorr_aliases -l de-DE de-AT de-BE de-CH de-LI de-LU +%make_autocorr_aliases -l es-ES es-AR es-BO es-CL es-CO es-CR es-CU es-DO es-EC es-GT es-HN es-MX es-NI es-PA es-PE es-PR es-PY es-SV es-US es-UY es-VE +%make_autocorr_aliases -l fr-FR fr-BE fr-CA fr-CH fr-LU fr-MC +%make_autocorr_aliases -l it-IT it-CH +%make_autocorr_aliases -l nl-NL nl-AW +%make_autocorr_aliases -l sv-SE sv-FI %else rm -f acor_[a-df-z]*.dat acor_e[su]*.dat %endif From 90dd62c089b8363351b23cf26faa564343e892a9 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Sun, 2 Dec 2012 15:08:45 +0100 Subject: [PATCH 25/28] define langpack filelists directly in spec Bye, bye, redhat-langpacks.tar.bz! --- libreoffice.spec | 282 +++++++++++++++++++---------------------------- sources | 1 - 2 files changed, 115 insertions(+), 168 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 2ab0562..ae90ca7 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -52,7 +52,6 @@ Source0: %{source_url}/libreoffice-%{version}%{?libo_prerelease}.tar.xz Source2: %{source_url}/libreoffice-help-%{version}%{?libo_prerelease}.tar.xz Source3: %{source_url}/libreoffice-translations-%{version}%{?libo_prerelease}.tar.xz Source4: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll -Source5: redhat-langpacks.tar.gz Source6: libreoffice-multiliblauncher.sh Source7: http://hg.services.openoffice.org/binaries/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz Source8: http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip @@ -601,6 +600,16 @@ This package provides gdb pretty printers for package %{name}. %endif +%define _langpack_common() \ +%{baseinstdir}/program/resource/*%{1}.res \ +%{baseinstdir}/share/config/soffice.cfg/modules/*/ui/res/%{1} \ +%{baseinstdir}/share/config/soffice.cfg/*/ui/res/%{1} \ +%{baseinstdir}/share/template/%{1} \ +%{baseinstdir}/share/registry/Langpack-%{1}.xcd \ +%{baseinstdir}/share/registry/res/registry_%{1}.xcd \ +%{baseinstdir}/share/registry/res/fcfg_langpack_%{1}.xcd \ +%{nil} + # Defines a language pack subpackage. # # It's necessary to define language code (-l) and language name (-n). @@ -617,23 +626,30 @@ This package provides gdb pretty printers for package %{name}. # All remaining arguments are considered to be files and added to the file # list. # -# Aa: autocorr dependency -# Ff: font language dependency -# Hh: hunspell dependency -# l: language code, e.g., cs -# Mm: mythes dependency -# n: language name, e.g., Czech -# p: Provides: of libreoffice-langpack -# r: comma-separated list of additional requires -# Ss: filelist -# Yy: hyphen dependency +# Aa: autocorr dependency +# c: additional config file (just the name stem) +# E the package does not contain any files (i.e., has empty filelist) +# Ff: font language dependency +# Hh: hunspell dependency +# i: additional language added to this package +# L: language code for files +# l: language code, e.g., cs +# Mm: mythes dependency +# n: language name, e.g., Czech +# p: Provides: of libreoffice-langpack +# r: comma-separated list of additional requires +# S:s: script classification (cjk, ctl). -T is only a marker, as it does +# not add any .xcd into the package (to be used for CTL scripts +# that should not be sequence checked) +# T has help files +# Yy: hyphen dependency # # Example: # libreoffice-langpack-cs: langpack for Czech lang. requiring hyphen-cs, -# autocorr-cs, mythes-cs-CZ and suitable font and taking the files from -# cs.filelist: -# %%langpack -l cs -n Czech -H -A -m cs-CZ -S -%define langpack(Aa:Ff:Hh:l:Mm:n:p:r:Ss:Yy:) \ +# autocorr-cs, mythes-cs-CZ and suitable font: +# %%langpack -l cs -n Czech -H -A -m cs-CZ +# b de g jk o q tuvwx z BCD G IJK NOPQR UVWX Z0123456789 +%define langpack(Aa:c:EFf:Hh:iL:l:Mm:n:p:r:S:s:TYy:) \ %define project LibreOffice \ %define lang %{-l:%{-l*}}%{!-l:%{error:Language code not defined}} \ %define pkgname langpack-%{lang} \ @@ -654,10 +670,19 @@ Requires: %{name}-core = %{epoch}:%{version}-%{release} \ %description %{pkgname} \ Provides additional %{langname} translations and resources for %{project}. \ \ -%define filelist %{-s:-f %{-s*}.filelist}%{!-s:%{-S:-f %{lang}.filelist}} \ -%files %{pkgname} %{filelist} \ -%* - +%files %{pkgname} \ +%{!-E: \ +%define _langpack_lang %{-L:%{-L*}}%{!-L:%{-l*}} \ +%{expand:%%_langpack_common %{_langpack_lang}} \ +%{-c:%{baseinstdir}/share/registry/%{-c*}.xcd} \ +%{-s:%{baseinstdir}/share/registry/%{-s*}_%{_langpack_lang}.xcd} \ +%{-T: \ +%docdir %{baseinstdir}/help/%{_langpack_lang} \ +%{baseinstdir}/help/%{_langpack_lang} \ +} \ +%{-i:%{expand:%%_langpack_common %{-i*}}} \ +} \ +%{nil} # Defines an auto-correction subpackage. # @@ -684,104 +709,101 @@ Rules for auto-correcting common %{langname} typing errors. \ %files -n %{pkgname} \ %doc solver/unxlng*/bin/ure/LICENSE \ %dir %{_datadir}/autocorr \ -%{!-X:%{_datadir}/autocorr/acor_%{lang}-*} \ +%{!?-X:%{_datadir}/autocorr/acor_%{lang}-*} \ %* %if %{with langpacks} -%langpack -l af -n Afrikaans -F -H -Y -A -S -%langpack -l ar -n Arabic -F -H -S -%langpack -l as -n Assamese -F -H -Y -S -%langpack -l bg -n Bulgarian -F -H -Y -M -A -S -%langpack -l bn -n Bengali -F -H -Y -S -%langpack -l ca -n Catalan -F -H -Y -M -S -%langpack -l cs -n Czech -F -H -Y -M -A -S -%langpack -l cy -n Welsh -F -H -Y -S -%langpack -l da -n Danish -F -H -Y -M -A -S -%langpack -l de -n German -F -H -Y -M -A -S -%langpack -l dz -n Dzongkha -F -S -%langpack -l el -n Greek -F -H -Y -M -S -%langpack -l en -n English -F -H -Y -M -A -%langpack -l es -n Spanish -F -H -Y -M -A -S -%langpack -l et -n Estonian -F -H -Y -S -%langpack -l eu -n Basque -F -H -Y -A -S +%langpack -l af -n Afrikaans -F -H -Y -A +%langpack -l ar -n Arabic -F -H -s ctl +%langpack -l as -n Assamese -F -H -Y +%langpack -l bg -n Bulgarian -F -H -Y -M -A -T +%langpack -l bn -n Bengali -F -H -Y -T +%langpack -l ca -n Catalan -F -H -Y -M -T +%langpack -l cs -n Czech -F -H -Y -M -A -T +%langpack -l cy -n Welsh -F -H -Y +%langpack -l da -n Danish -F -H -Y -M -A -T +%langpack -l de -n German -F -H -Y -M -A -T +%langpack -l dz -n Dzongkha -F -s ctl -T +%langpack -l el -n Greek -F -H -Y -M -T +%langpack -l en -n English -F -H -Y -M -A -E +%langpack -l es -n Spanish -F -H -Y -M -A -T +%langpack -l et -n Estonian -F -H -Y -T +%langpack -l eu -n Basque -F -H -Y -A -T %if 0%{?fedora} || 0%{?rhel} >= 7 -%langpack -l fa -n Farsi -A -H -Y -S +%langpack -l fa -n Farsi -A -H -Y -s ctl %endif %if 0%{?rhel} && 0%{?rhel} < 7 -%langpack -l fi -n Finnish -F -A -S +%langpack -l fi -n Finnish -F -A -T %else -%langpack -l fi -n Finnish -F -r libreoffice-voikko -A -S +%langpack -l fi -n Finnish -F -r libreoffice-voikko -A -T %endif -%langpack -l fr -n French -F -H -Y -M -A -S -%langpack -l ga -n Irish -F -H -Y -M -A -S -%langpack -l gl -n Galician -F -H -Y -S -%langpack -l gu -n Gujarati -F -H -Y -S -%langpack -l he -n Hebrew -F -H -S -%langpack -l hi -n Hindi -F -H -Y -S -%langpack -l hr -n Croatian -F -H -Y -A -S -%langpack -l hu -n Hungarian -F -H -Y -M -A -S -%langpack -l it -n Italian -F -H -Y -M -A -S -%langpack -l ja -n Japanese -F -A -S -%langpack -l kn -n Kannada -F -H -Y -S -%langpack -l ko -n Korean -F -H -A -S -%{baseinstdir}/share/registry/korea.xcd - -%langpack -l lt -n Lithuanian -F -H -Y -A -S +%langpack -l fr -n French -F -H -Y -M -A -T +%langpack -l ga -n Irish -F -H -Y -M -A +%langpack -l gl -n Galician -F -H -Y -T +%langpack -l gu -n Gujarati -F -H -Y -s ctl +%langpack -l he -n Hebrew -F -H -s ctl +%langpack -l hi -n Hindi -F -H -Y -s ctl -T +%langpack -l hr -n Croatian -F -H -Y -A +%langpack -l hu -n Hungarian -F -H -Y -M -A -T +%langpack -l it -n Italian -F -H -Y -M -A -T +%langpack -l ja -n Japanese -F -A -s cjk -T +%langpack -l kn -n Kannada -F -H -Y +%langpack -l ko -n Korean -F -H -A -s cjk -T -c korea +%langpack -l lt -n Lithuanian -F -H -Y -A %if 0%{?fedora} || 0%{?rhel} >= 7 -%langpack -l lv -n Latvian -F -H -Y -M -S +%langpack -l lv -n Latvian -F -H -Y -M %endif -%langpack -l mai -n Maithili -F -S +%langpack -l mai -n Maithili -F %if 0%{?rhel} && 0%{?rhel} < 7 -%langpack -l ms -n Malay -F -H -S +%langpack -l ms -n Malay -F -H %endif -%langpack -l ml -n Malayalam -F -H -Y -S -%langpack -l mr -n Marathi -F -H -Y -S -%langpack -l nb -n Bokmal -F -H -Y -M -S -%langpack -l nl -n Dutch -F -H -Y -M -A -S -%langpack -l nn -n Nynorsk -F -H -Y -M -S +%langpack -l ml -n Malayalam -F -H -Y +%langpack -l mr -n Marathi -F -H -Y +%langpack -l nb -n Bokmal -F -H -Y -M -T +%langpack -l nl -n Dutch -F -H -Y -M -A -T +%langpack -l nn -n Nynorsk -F -H -Y -M -T %define langpack_lang Southern Ndebele -%langpack -l nr -n %{langpack_lang} -F -H -S +%langpack -l nr -n %{langpack_lang} -F -H %define langpack_lang Northern Sotho -%langpack -l nso -n %{langpack_lang} -F -H -S -%langpack -l or -n Oriya -F -H -Y -S -%langpack -l pa -n Punjabi -F -H -Y -s pa-IN -%langpack -l pl -n Polish -F -H -Y -M -A -S +%langpack -l nso -n %{langpack_lang} -F -H +%langpack -l or -n Oriya -F -H -Y -s ctl +%langpack -l pa -n Punjabi -F -H -Y -s ctl -L pa-IN +%langpack -l pl -n Polish -F -H -Y -M -A -T %define langpack_lang Brazilian Portuguese -%langpack -l pt-BR -n %{langpack_lang} -f pt -h pt -y pt -m pt -a pt -p pt_BR -S -%langpack -l pt-PT -n Portuguese -f pt -h pt -y pt -m pt -a pt -p pt_PT -s pt -%langpack -l ro -n Romanian -F -H -Y -M -S -%langpack -l ru -n Russian -F -H -Y -M -A -S +%langpack -l pt-BR -n %{langpack_lang} -f pt -h pt -y pt -m pt -a pt -p pt_BR -T +%langpack -l pt-PT -n Portuguese -f pt -h pt -y pt -m pt -a pt -p pt_PT -T -L pt +%langpack -l ro -n Romanian -F -H -Y -M +%langpack -l ru -n Russian -F -H -Y -M -A -T %if 0%{?fedora} || 0%{?rhel} >= 7 -%langpack -l si -n Sinhalese -F -H -S +%langpack -l si -n Sinhalese -F -H -S ctl -T %endif -%langpack -l sk -n Slovak -F -H -Y -M -A -S -%langpack -l sl -n Slovenian -F -H -Y -M -A -S -%langpack -l sr -n Serbian -F -H -Y -A -S -%langpack -l ss -n Swati -F -H -S +%langpack -l sk -n Slovak -F -H -Y -M -A -T +%langpack -l sl -n Slovenian -F -H -Y -M -A -T +#rhbz#452379 clump serbian translations together +%langpack -l sr -n Serbian -F -H -Y -A -i sh +%langpack -l ss -n Swati -F -H %define langpack_lang Southern Sotho -%langpack -l st -n %{langpack_lang} -F -H -S -%langpack -l sv -n Swedish -F -H -Y -M -A -S -%langpack -l ta -n Tamil -F -H -Y -S -%langpack -l te -n Telugu -F -H -Y -S -%langpack -l th -n Thai -F -H -S -%{baseinstdir}/share/registry/ctlseqcheck_th.xcd - -%langpack -l tn -n Tswana -F -H -S -%langpack -l tr -n Turkish -F -A -S -%langpack -l ts -n Tsonga -F -H -S -%langpack -l uk -n Ukrainian -F -H -Y -M -S +%langpack -l st -n %{langpack_lang} -F -H +%langpack -l sv -n Swedish -F -H -Y -M -A -T +%langpack -l ta -n Tamil -F -H -Y -s ctl +%langpack -l te -n Telugu -F -H -Y +%langpack -l th -n Thai -F -H -s ctl -c ctlseqcheck_th +%langpack -l tn -n Tswana -F -H +%langpack -l tr -n Turkish -F -A -T +%langpack -l ts -n Tsonga -F -H +%langpack -l uk -n Ukrainian -F -H -Y -M -T %if 0%{?rhel} && 0%{?rhel} < 7 -%langpack -l ur -n Urdu -F -H -S +%langpack -l ur -n Urdu -F -H %endif -%langpack -l ve -n Venda -F -H -S -%langpack -l xh -n Xhosa -F -H -S +%langpack -l ve -n Venda -F -H +%langpack -l xh -n Xhosa -F -H %define langpack_lang Simplified Chinese -%langpack -l zh-Hans -n %{langpack_lang} -f zh-cn -a zh -p zh_CN -s zh-CN +%langpack -l zh-Hans -n %{langpack_lang} -f zh-cn -a zh -p zh_CN -s cjk -T -L zh-CN %define langpack_lang Traditional Chinese -%langpack -l zh-Hant -n %{langpack_lang} -f zh-tw -a zh -p zh_TW -s zh-TW -%langpack -l zu -n Zulu -F -H -Y -S +%langpack -l zh-Hant -n %{langpack_lang} -f zh-tw -a zh -p zh_TW -s cjk -T -L zh-TW +%langpack -l zu -n Zulu -F -H -Y %undefine langpack_lang %endif @@ -1056,80 +1078,6 @@ mkdir -p $RPM_BUILD_ROOT/%{_datadir} mv -f $RPM_BUILD_ROOT/%{baseinstdir}/share/autocorr $RPM_BUILD_ROOT/%{_datadir}/autocorr chmod 755 $RPM_BUILD_ROOT/%{_datadir}/autocorr -%if %{with langpacks} - -#auto generate the langpack file lists, format is... -#langpack id, has help or not, autocorrection glob, script classification -langpackdetails=\ -(\ -af nohelp western ar nohelp ctl \ -as nohelp western bg help western \ -bn help western ca help western \ -cs help western cy nohelp western \ -da help western de help western \ -dz help ctl el help western \ -es help western et help western \ -eu help western fa nohelp ctl \ -fi help western fr help western \ -ga nohelp western gl help western \ -gu nohelp ctl he nohelp ctl \ -hi help ctl hr nohelp western \ -hu help western it help western \ -ja help cjk ko help cjk \ -kn nohelp western lt nohelp western \ -lv nohelp western mai nohelp western \ -ml nohelp western mr nohelp western \ -ms nohelp western nb help western \ -nl help western nn help western \ -nr nohelp western nso nohelp western \ -or nohelp ctl pa-IN nohelp ctl \ -pl help western pt help western \ -pt-BR help western ro nohelp western \ -ru help western sh nohelp western \ -si help ctl sk help western \ -sl help western sr nohelp western \ -ss nohelp western st nohelp western \ -sv help western ta nohelp ctl \ -te nohelp western th nohelp ctlseqcheck \ -tn nohelp western tr help western \ -ts nohelp western uk help western \ -ur nohelp western ve nohelp western \ -xh nohelp western zh-CN help cjk \ -zh-TW help cjk zu nohelp western \ -) - -tar xzf %{SOURCE5} - -i=0 -while [ $i -lt ${#langpackdetails[@]} ]; do - lang=${langpackdetails[$i]} - sed -e "s/LANG/$lang/g" langpacks/libreoffice.langpack-common.template > $lang.filelist - i=$[i+1] - help=${langpackdetails[$i]} - if [ "$help" = "help" ]; then - sed -e "s/LANG/$lang/g" langpacks/libreoffice.langpack-help.template >> $lang.filelist - fi - i=$[i+1] - type=${langpackdetails[$i]} - if [ "$type" = "cjk" ]; then - sed -e "s/LANG/$lang/g" langpacks/libreoffice.langpack-cjk.template >> $lang.filelist - fi - #rh217269 upstream made a decision to sequence check all ctl languages - #I think this is wrong, and only Thai should be sequence checked - if [ "$type" = "ctlseqcheck" ]; then - sed -e "s/LANG/$lang/g" langpacks/libreoffice.langpack-ctl.template >> $lang.filelist - fi - if [ "$type" = "ctl" ]; then - rm -f $RPM_BUILD_ROOT/%{baseinstdir}/share/registry/ctl_$lang.xcd - fi - i=$[i+1] -done - -#rhbz#452379 clump serbian translations together -cat sh.filelist >> sr.filelist - -%endif - #remove it in case we didn't build with gcj rm -f $RPM_BUILD_ROOT/%{baseinstdir}/program/classes/sandbox.jar diff --git a/sources b/sources index e070d6c..60f2778 100644 --- a/sources +++ b/sources @@ -11,4 +11,3 @@ b3912d2b9f8312a3b85472890997704d libreoffice-help-4.0.0.0.alpha1.tar.xz 9dfdbac725c0a31b411026108cf7cf22 libreoffice-translations-4.0.0.0.alpha1.tar.xz 0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz b2371dc7cf4811c9d32146eec913d296 b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz -8deb4ea1d88cb84354f7d8d837e3ddbb redhat-langpacks.tar.gz From a5510eda5766a5af32599468c394056500cb1998 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Sun, 2 Dec 2012 15:19:46 +0100 Subject: [PATCH 26/28] extend %autocorr to avoid listing extra files --- libreoffice.spec | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index ae90ca7..d64276f 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -686,14 +686,14 @@ Provides additional %{langname} translations and resources for %{project}. \ # Defines an auto-correction subpackage. # +# i: add autocorrections from additional language # l: language code # n: language name -# X do not use default file match on %%{_datadir}/autocorr/acor_%%{lang}-* -# in file list +# L the filename does not contain country code # # All remaining arguments are considered to be files and added to the file # list. -%define autocorr(l:n:X) \ +%define autocorr(i:Ll:n:) \ %define lang %{-l:%{-l*}}%{!-l:%{error:Language code not defined}} \ %define pkgname autocorr-%{lang} \ %define langname %{-n:%{-n*}}%{!-n:%{error:Language name not defined}} \ @@ -709,9 +709,10 @@ Rules for auto-correcting common %{langname} typing errors. \ %files -n %{pkgname} \ %doc solver/unxlng*/bin/ure/LICENSE \ %dir %{_datadir}/autocorr \ -%{!?-X:%{_datadir}/autocorr/acor_%{lang}-*} \ -%* - +%{-L:%{_datadir}/autocorr/acor_%{lang}.dat} \ +%{!-L:%{_datadir}/autocorr/acor_%{lang}-*.dat} \ +%{-i:%{_datadir}/autocorr/acor_%{-i*}-*.dat} \ +%{nil} %if %{with langpacks} @@ -818,9 +819,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %autocorr -l da -n Danish %autocorr -l de -n German %autocorr -l es -n Spanish -%autocorr -l eu -n Basque -X -%{_datadir}/autocorr/acor_eu.dat - +%autocorr -l eu -n Basque -L %autocorr -l fa -n Farsi %autocorr -l fi -n Finnish %autocorr -l fr -n French @@ -839,9 +838,8 @@ Rules for auto-correcting common %{langname} typing errors. \ %autocorr -l ru -n Russian %autocorr -l sk -n Slovak %autocorr -l sl -n Slovenian -%autocorr -l sr -n Serbian -%{_datadir}/autocorr/acor_sh-* - +#rhbz#452379 clump serbian autocorrections together +%autocorr -l sr -n Serbian -i sh %autocorr -l sv -n Swedish %autocorr -l tr -n Turkish %autocorr -l vi -n Vietnamese From 5cb5cc6c2226424e43d9d46add97172b332613f4 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Mon, 3 Dec 2012 13:09:46 +0100 Subject: [PATCH 27/28] fix comment to match the reality --- evolocal.odb | Bin 3759 -> 0 bytes libreoffice.spec | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 evolocal.odb diff --git a/evolocal.odb b/evolocal.odb deleted file mode 100644 index 82f486a47ebf52bccd585916951eec696a2fccb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3759 zcmds4ZD<@t7``@bjc22@q@bd5t|=nT+~tdsEV;y3lM>U9)3mgTmCWtVCDZKAY<6}p z2^FD8E!sa7v{pl_AuT8+RYa*$Yg7bL#2*%a^oJ!>8j487A{4b)-UjjTR%!;3j3gNp1VK z4%Dc%wnU@NJd>dY(M@jnHt3?9jTopip$FWg*5`SSo=9+quz(cjZf~Nlrluhgd}}!c z;SF0PsrfF`ITlpt4BJHLo}o+Ka1=eTu7q{vTR`w|dg0nixKKO8^NtP<4#o%Tm6Nqi zO-+fN-J22}+_kY6Iyz)g)<3Vj;)bHkx6{O3Xiz5h@SMOnpYiSQlW3;%j+GLYBSeu7!s7o zB>_392{Ucz*ffD6bdu$kF9mdq8`#pMmhc@%GEvS&fS2XlOe8hW^&tQd0k{J&kg6ua z7R3Td%oIqZIkyOApldtWr2<^Axd{?vz{eJ%0Qz3yDr1C61R*hCHPs=bj~Gzm47Oyh zU?|$lxJ!`fQg8=3@Sql`7J35%z~CORr4vZ_Y2i^%g;n5@7#1F}Lqmdi9!x7Rqek%s zK`?!>#bKregR7*ftOj9bs0Bj=)H!72U=O&gWo>f;oG#SJvt*HCbJ#P(6ci7I?iCDI zf-Un?f{ds@78PC?$$Vl#$=Xb_lbK|wP1TeRseF{OD%ZKBmMg55^Q;(lq30-zEuXYV z#Hf%<84N^JT7tZk5V{TtXjk~#>O=h=;gq!t13LlsO8A5RuUSaBBtzVXx!6Se$tKE3 zJ2SIdVu(Rer!=5MXtXgLGaJw4&dis_|BJy4dJzTh2|Dz@@G*Z;XEvzfcH5H52 zmR;XY3;L7{g^hP%u?EtGP2|7Rsf7ho;L14_JP?(g2JmA!aY&6~fI@ zXsXK#0Xk!NE+F%~0FmWz3X$g$0Ac=G18TU;&%Vt%a4~W{qupgOVv9MPMrOH@A1PE_19h= z={)xIy;~=v{O4bnr@C$`zi{C0kG_SFCzeDasjekUD>SgZJmHly_r zyg~)T16#3T@wzahxFR}xl?XM%`V|Ht>o;>9h6Sc%HB(*7S4gpC@cRj#;}!DjFQIk- A4FCWD diff --git a/libreoffice.spec b/libreoffice.spec index d64276f..da6f25c 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -638,9 +638,9 @@ This package provides gdb pretty printers for package %{name}. # n: language name, e.g., Czech # p: Provides: of libreoffice-langpack # r: comma-separated list of additional requires -# S:s: script classification (cjk, ctl). -T is only a marker, as it does -# not add any .xcd into the package (to be used for CTL scripts -# that should not be sequence checked) +# S:s: script classification (cjk, ctl). -S is only a marker, as it does +# not add any .xcd into the package (the file does not exist for at +# least one CTL-using locale, si) # T has help files # Yy: hyphen dependency # From 01d76442cd8d7c06dbaa03cc11b606fbbac80b1e Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 6 Dec 2012 13:22:45 +0100 Subject: [PATCH 28/28] 4.0.0 beta1 --- .gitignore | 3 + 0001-temporarily-disable-failing-test.patch | 6 +- libreoffice.spec | 89 +++++++++++---------- sources | 6 +- 4 files changed, 55 insertions(+), 49 deletions(-) diff --git a/.gitignore b/.gitignore index 68a779f..b967e0c 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,6 @@ /libreoffice-translations-4.0.0.0.alpha1.tar.xz /0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz /b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz +/libreoffice-4.0.0.0.beta1.tar.xz +/libreoffice-help-4.0.0.0.beta1.tar.xz +/libreoffice-translations-4.0.0.0.beta1.tar.xz diff --git a/0001-temporarily-disable-failing-test.patch b/0001-temporarily-disable-failing-test.patch index cf8c258..d25905f 100644 --- a/0001-temporarily-disable-failing-test.patch +++ b/0001-temporarily-disable-failing-test.patch @@ -17,9 +17,9 @@ index 2d506be..648cafa 100644 $(eval $(call gb_Module_add_check_targets,sdext,\ - CppunitTest_pdfimport \ - )) - endif - + CustomTarget_pdfimport \ + Executable_pdf2xml \ + Executable_pdfunzip \ -- 1.8.0 diff --git a/libreoffice.spec b/libreoffice.spec index da6f25c..d49cf9d 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -3,7 +3,7 @@ # Should contain .alphaX / .betaX, if this is pre-release (actually # pre-RC) version. The pre-release string is part of tarball file names, # so we need a way to define it easily at one place. -%define libo_prerelease .alpha1 +%define libo_prerelease .beta1 # rhbz#715152 state vendor %if 0%{?rhel} %define vendoroption --with-vendor="Red Hat, Inc." @@ -26,7 +26,7 @@ # effect %bcond_without langpacks # simplify building before libcmis-0.3 is available -%bcond_without libcmis +%bcond_with libcmis %if %{with langpacks} %if 0%{?rhel} && 0%{?rhel} < 7 @@ -43,43 +43,43 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 Version: %{libo_version}.0 -Release: 1%{?libo_prerelease}%{?dist} +Release: 2%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 Group: Applications/Productivity URL: http://www.documentfoundation.org/develop Source0: %{source_url}/libreoffice-%{version}%{?libo_prerelease}.tar.xz -Source2: %{source_url}/libreoffice-help-%{version}%{?libo_prerelease}.tar.xz -Source3: %{source_url}/libreoffice-translations-%{version}%{?libo_prerelease}.tar.xz -Source4: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll -Source6: libreoffice-multiliblauncher.sh -Source7: http://hg.services.openoffice.org/binaries/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz -Source8: http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip -Source9: http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz -Source10: http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip -Source11: http://hg.services.openoffice.org/binaries/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip -Source12: http://hg.services.openoffice.org/binaries/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz +Source1: %{source_url}/libreoffice-help-%{version}%{?libo_prerelease}.tar.xz +Source2: %{source_url}/libreoffice-translations-%{version}%{?libo_prerelease}.tar.xz +Source3: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll +Source4: libreoffice-multiliblauncher.sh +Source5: http://hg.services.openoffice.org/binaries/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz +Source6: http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip +Source7: http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz +Source8: http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip +Source9: http://hg.services.openoffice.org/binaries/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip +Source10: http://hg.services.openoffice.org/binaries/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz #Unfortunately later versions of hsqldb changed the file format, so if we use a later version we loose #backwards compatability. -Source13: http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip +Source11: http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip %if 0%{?rhel} && 0%{?rhel} < 7 -Source14: http://dev-www.libreoffice.org/src/9f9e15966b5624834157fe3d748312bc-mdds_0.6.1.tar.bz2 -Source15: http://dev-www.libreoffice.org/src/e1e255dc43dbcbb34cb19e8a0eba90ae-mythes-1.2.2.tar.gz -Source16: http://dev-www.libreoffice.org/src/ca66e26082cab8bb817185a116db809b-redland-1.0.8.tar.gz -Source17: http://dev-www.libreoffice.org/src/284e768eeda0e2898b0d5bf7e26a016e-raptor-1.4.18.tar.gz -Source18: http://dev-www.libreoffice.org/src/fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz -Source19: http://dev-www.libreoffice.org/src/6097739c841f671cb21332b9cc593ae7-libexttextcat-3.3.1.tar.bz2 -Source20: http://dev-www.libreoffice.org/src/3c0037fb07dea2f0bbae8386fa7c6a9a-libcdr-0.0.9.tar.bz2 -Source21: http://dev-www.libreoffice.org/src/9d283e02441d8cebdcd1e5d9df227d67-libwpg-0.2.1.tar.bz2 -Source22: http://dev-www.libreoffice.org/src/c01351d7db2b205de755d58769288224-libwpd-0.9.4.tar.bz2 -Source23: http://dev-www.libreoffice.org/src/d197bd6211669a2fa4ca648faf04bcb1-libwps-0.2.7.tar.bz2 -Source24: http://dev-www.libreoffice.org/src/0d2dcdfbf28d6208751b33057f5361f0-libcmis-0.2.3.tar.gz -Source25: http://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz -Source26: http://dev-www.libreoffice.org/src/94e7f271e38c976462558b4278590178-libvisio-0.0.19.tar.bz2 -Source27: http://dev-www.libreoffice.org/src/327348d67c979c88c2dec59a23a17d85-lcms2-2.3.tar.gz +Source12: http://dev-www.libreoffice.org/src/9f9e15966b5624834157fe3d748312bc-mdds_0.6.1.tar.bz2 +Source13: http://dev-www.libreoffice.org/src/e1e255dc43dbcbb34cb19e8a0eba90ae-mythes-1.2.2.tar.gz +Source14: http://dev-www.libreoffice.org/src/ca66e26082cab8bb817185a116db809b-redland-1.0.8.tar.gz +Source15: http://dev-www.libreoffice.org/src/284e768eeda0e2898b0d5bf7e26a016e-raptor-1.4.18.tar.gz +Source16: http://dev-www.libreoffice.org/src/fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz +Source17: http://dev-www.libreoffice.org/src/6097739c841f671cb21332b9cc593ae7-libexttextcat-3.3.1.tar.bz2 +Source18: http://dev-www.libreoffice.org/src/3c0037fb07dea2f0bbae8386fa7c6a9a-libcdr-0.0.9.tar.bz2 +Source19: http://dev-www.libreoffice.org/src/9d283e02441d8cebdcd1e5d9df227d67-libwpg-0.2.1.tar.bz2 +Source20: http://dev-www.libreoffice.org/src/c01351d7db2b205de755d58769288224-libwpd-0.9.4.tar.bz2 +Source21: http://dev-www.libreoffice.org/src/d197bd6211669a2fa4ca648faf04bcb1-libwps-0.2.7.tar.bz2 +Source22: http://dev-www.libreoffice.org/src/0d2dcdfbf28d6208751b33057f5361f0-libcmis-0.2.3.tar.gz +Source23: http://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz +Source24: http://dev-www.libreoffice.org/src/94e7f271e38c976462558b4278590178-libvisio-0.0.19.tar.bz2 +Source25: http://dev-www.libreoffice.org/src/327348d67c979c88c2dec59a23a17d85-lcms2-2.3.tar.gz %endif %if %{with libcmis} -Source28: http://dev-www.libreoffice.org/src/b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz +Source26: http://dev-www.libreoffice.org/src/b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz %endif # build tools @@ -224,13 +224,13 @@ Patch5: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch Patch6: openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch Patch7: libreoffice-installfix.patch #to-do, fix this on bigendian platforms -Patch26: 0001-disable-failing-check.patch +Patch8: 0001-disable-failing-check.patch %if 0%{?rhel} && 0%{?rhel} < 7 -Patch29: libreoffice-rhel6gcj.patch -Patch30: libreoffice-rhel6poppler.patch -Patch31: libreoffice-rhel6langs.patch +Patch9: libreoffice-rhel6gcj.patch +Patch10: libreoffice-rhel6poppler.patch +Patch11: libreoffice-rhel6langs.patch %endif -Patch32: 0001-temporarily-disable-failing-test.patch +Patch12: 0001-temporarily-disable-failing-test.patch %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %define instdir %{_libdir} @@ -856,7 +856,7 @@ done \ %{!?-l:%{error:-l must be present}} %prep -%setup -q -n %{name}-%{version}%{?libo_prerelease} -b 2 -b 3 +%setup -q -n %{name}-%{version}%{?libo_prerelease} -b 1 -b 2 rm -rf git-hooks */git-hooks #Customize Palette to remove Sun colours and add Red Hat colours (head -n -1 extras/source/palettes/standard.soc && \ @@ -874,13 +874,13 @@ mv -f redhat.soc extras/source/palettes/standard.soc %patch5 -p1 -b .ooo101274.opening-a-directory.patch %patch6 -p1 -b .ooo105784.vcl.sniffscriptforsubs.patch %patch7 -p1 -b .libreoffice-installfix.patch -%patch26 -p1 -b .disable-failing-check.patch +%patch8 -p1 -b .disable-failing-check.patch %if 0%{?rhel} && 0%{?rhel} < 7 -%patch29 -p1 -b .rhel6gcj.patch -%patch30 -p1 -b .rhel6poppler.patch -%patch31 -p1 -b .rhel6langs.patch +%patch9 -p1 -b .rhel6gcj.patch +%patch10 -p1 -b .rhel6poppler.patch +%patch11 -p1 -b .rhel6langs.patch %endif -%patch32 -p1 -b .temporarily-disable-failing-test.patch +%patch12 -p1 -b .temporarily-disable-failing-test.patch # TODO: check this # these are horribly incomplete--empty translations and copied english @@ -1160,12 +1160,12 @@ echo \#\!/bin/sh > $RPM_BUILD_ROOT/%{_bindir}/oobase echo exec libreoffice --base \"\$@\" >> $RPM_BUILD_ROOT/%{_bindir}/oobase chmod a+x $RPM_BUILD_ROOT/%{_bindir}/oobase -cp -f %{SOURCE6} $RPM_BUILD_ROOT/%{_bindir}/unopkg +cp -f %{SOURCE4} $RPM_BUILD_ROOT/%{_bindir}/unopkg sed -i -e "s/LAUNCHER/unopkg/g" $RPM_BUILD_ROOT/%{_bindir}/unopkg sed -i -e "s/BRAND/libreoffice/g" $RPM_BUILD_ROOT/%{_bindir}/unopkg chmod a+x $RPM_BUILD_ROOT/%{_bindir}/unopkg -cp -f %{SOURCE6} $RPM_BUILD_ROOT/%{_bindir}/libreoffice +cp -f %{SOURCE4} $RPM_BUILD_ROOT/%{_bindir}/libreoffice sed -i -e "s/LAUNCHER/soffice/g" $RPM_BUILD_ROOT/%{_bindir}/libreoffice sed -i -e "s/BRAND/libreoffice/g" $RPM_BUILD_ROOT/%{_bindir}/libreoffice chmod a+x $RPM_BUILD_ROOT/%{_bindir}/libreoffice @@ -1964,7 +1964,10 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %endif %changelog -* Mon Nov 26 2012 David Tardon - 1:4.0.0.0.alpha1-1 +* Thu Dec 06 2012 David Tardon - 1:4.0.0.0-2.beta1 +- 4.0.0 beta1 + +* Mon Nov 26 2012 David Tardon - 1:4.0.0.0-1.alpha1 - 4.0.0 alpha1 * Sun Nov 18 2012 David Tardon - 1:3.6.4.1-1 diff --git a/sources b/sources index 60f2778..b581cc0 100644 --- a/sources +++ b/sources @@ -6,8 +6,8 @@ 74939c9ea525374776f09bf972ede99f libreoffice-multiliblauncher.sh a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip 1f24ab1d39f4a51faf22244c94a6203f 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz -8200d0c9da3615a09d94068eada02c28 libreoffice-4.0.0.0.alpha1.tar.xz -b3912d2b9f8312a3b85472890997704d libreoffice-help-4.0.0.0.alpha1.tar.xz -9dfdbac725c0a31b411026108cf7cf22 libreoffice-translations-4.0.0.0.alpha1.tar.xz 0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz b2371dc7cf4811c9d32146eec913d296 b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz +16cddb4c3dd8706b5912f93beaf1241d libreoffice-4.0.0.0.beta1.tar.xz +9834fd7294c003417d33894d30057b6a libreoffice-help-4.0.0.0.beta1.tar.xz +103a68b634d421a6ff7311d506e43714 libreoffice-translations-4.0.0.0.beta1.tar.xz