configure.ac                                             |    2 
 download.lst                                             |   20 ++--
 external/libcdr/UnpackedTarball_libcdr.mk                |    1 
 external/libcdr/ax_gcc_func_attribute.m4.patch           |   11 --
 external/libcdr/libcdr-visibility-win.patch              |    8 -
 external/libetonyek/0001-allow-0-size-message.patch.1    |   30 ------
 external/libetonyek/0001-fix-build-with-MSVC.patch.1     |   28 -----
 external/libetonyek/0002-fix-build-with-MSVC.patch.1     |   55 -----------
 external/libetonyek/UnpackedTarball_libetonyek.mk        |    5 -
 external/libetonyek/include.patch                        |   10 --
 external/libetonyek/warnings.patch                       |   11 --
 external/libqxp/UnpackedTarball_libqxp.mk                |    2 
 helpcontent2                                             |    2 
 officecfg/Configuration_officecfg.mk                     |    1 
 officecfg/registry/data/org/openoffice/Office/Common.xcu |    2 
 postprocess/CustomTarget_registry.mk                     |    1 
 sc/qa/unit/data/xlsx/sortconditionref.xlsx               |binary
 sc/qa/unit/subsequent_export_test2.cxx                   |   16 +++
 sc/source/filter/oox/autofilterbuffer.cxx                |   10 --
 sd/qa/unit/PNGExportTests.cxx                            |    4 
 solenv/gbuild/AllLangMoTarget.mk                         |    7 -
 svl/source/undo/undo.cxx                                 |    8 -
 sw/qa/extras/htmlexport/data/ul_with_disc.fodt           |   23 ++++
 sw/qa/extras/htmlexport/htmlexport.cxx                   |   13 ++
 sw/source/filter/html/htmlnumwriter.cxx                  |   35 +++----
 sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx     |    2 
 vcl/inc/quartz/salgdi.h                                  |    1 
 vcl/osx/salframeview.mm                                  |   33 ++++++
 vcl/osx/salnativewidgets.cxx                             |   27 ++++-
 vcl/skia/gdiimpl.cxx                                     |   22 ++--
 vcl/skia/osx/gdiimpl.cxx                                 |   74 ++++++++-------
 vcl/uiconfig/ui/combobox.ui                              |    5 -
 vcl/unx/gtk3/gtkinst.cxx                                 |   29 ++++-
 vcl/win/gdi/DWriteTextRenderer.cxx                       |    3 
 34 files changed, 240 insertions(+), 261 deletions(-)

New commits:
commit f20eb280989d13861c7ea7dfcafef041c3be3749
Merge: 6821953fbb17 82c324933a77
Author:     Thorsten Behrens <[email protected]>
AuthorDate: Tue Dec 3 12:27:46 2024 +0100
Commit:     Thorsten Behrens <[email protected]>
CommitDate: Tue Dec 3 12:27:46 2024 +0100

    Merge remote-tracking branch 'libreoffice-24-8-4' into 
feature/cib_contract49d
    
    Change-Id: I41f33a6be28328832f3c48687b02996c8d50055b
    
    Conflicts:
            .gitreview
            configure.ac
            dictionaries
            translations

commit 82c324933a7711b3e82dc719637119f158a65791
Author:     Christian Lohmaier <[email protected]>
AuthorDate: Thu Nov 28 22:35:53 2024 +0100
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 22:35:53 2024 +0100

    bump product version to 24.8.4.1.0+
    
    Change-Id: I0e3f67dac062ce9b6fd35467dc0b22ac0241fc00

diff --git a/configure.ac b/configure.ac
index 67a836db4977..b39ca2e3bcb9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for 
the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no 
idea.
 
-AC_INIT([LibreOffice],[24.8.4.0.0+],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[24.8.4.1.0+],[],[],[http://documentfoundation.org/])
 
 dnl libnumbertext needs autoconf 2.68, but that can pick up autoconf268 just 
fine if it is installed
 dnl whereas aclocal (as run by autogen.sh) insists on using autoconf and fails 
hard
commit c569c4445c5783cd17cf4f705c2a07bac78f8ccc
Author:     Christian Lohmaier <[email protected]>
AuthorDate: Thu Nov 28 22:31:18 2024 +0100
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 22:31:18 2024 +0100

    Branch libreoffice-24-8-4
    
    This is 'libreoffice-24-8-4' - the stable branch for the 24.8.4 release.
    Only very safe changes, reviewed by three people are allowed.
    
    If you want to commit more complicated fix for the next 24.8.x release,
    please use the 'libreoffice-24-8' branch.
    
    If you want to build something cool, unstable, and risky, use master.

diff --git a/.gitreview b/.gitreview
index 90dbf14f3add..49c7692c842a 100644
--- a/.gitreview
+++ b/.gitreview
@@ -3,5 +3,5 @@ host=gerrit.libreoffice.org
 port=29418
 project=core
 defaultremote=logerrit
-defaultbranch=libreoffice-24-8
+defaultbranch=libreoffice-24-8-4
 
diff --git a/dictionaries b/dictionaries
index ca2fa16f706d..52e5da345a2a 160000
--- a/dictionaries
+++ b/dictionaries
@@ -1 +1 @@
-Subproject commit ca2fa16f706dbfbc2ec767e6be4f723ec4c2d669
+Subproject commit 52e5da345a2a7fd7ea5ff1879caa62e5147947fa
diff --git a/helpcontent2 b/helpcontent2
index bad768594be4..8a580a454831 160000
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit bad768594be416143c007c52fecb5a26c495f396
+Subproject commit 8a580a454831fe4662b9e0bac5bbd16dd8893281
diff --git a/translations b/translations
index 14ca3ba24125..aacdd748845e 160000
--- a/translations
+++ b/translations
@@ -1 +1 @@
-Subproject commit 14ca3ba241258f3ce46fd9b9a1588655529c2494
+Subproject commit aacdd748845e3c34772e7eac2c2d00738b8ccd9d
commit f8a61e7bb0a2bc8fe574812926b2d1b6cfce26df
Author:     Christian Lohmaier <[email protected]>
AuthorDate: Thu Nov 28 22:19:51 2024 +0100
Commit:     Gerrit Code Review <[email protected]>
CommitDate: Thu Nov 28 22:19:51 2024 +0100

    Update git submodules
    
    * Update translations from branch 'libreoffice-24-8'
      to 14ca3ba241258f3ce46fd9b9a1588655529c2494
      - update translations for 24.8.4 rc1
    
        and force-fix errors using pocheck
    
        Change-Id: I44564a43201a6e77b8cce8ea294f950a3398ae71

diff --git a/translations b/translations
index 98e9d50ec53f..14ca3ba24125 160000
--- a/translations
+++ b/translations
@@ -1 +1 @@
-Subproject commit 98e9d50ec53ff2fee91104c9505a7790f029b78a
+Subproject commit 14ca3ba241258f3ce46fd9b9a1588655529c2494
commit 975b34914ad2016786eae115fb38d1bce654ec2b
Author:     Caolán McNamara <[email protected]>
AuthorDate: Thu Nov 28 14:38:55 2024 +0000
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 22:02:44 2024 +0100

    crash seen in export of forum-mso-en-2962.doc to rtf and reimport
    
    Change-Id: I3813d8ebcb1e678ece2e3c3554bb0ddb7b546b34
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177491
    Tested-by: Jenkins
    Reviewed-by: Christian Lohmaier <[email protected]>

diff --git a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx 
b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
index 606e1213b707..988ee222370c 100644
--- a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
+++ b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
@@ -8036,7 +8036,7 @@ void DomainMapper_Impl::CloseFieldCommand()
                         }
 
                         //extract quick help text
-                        if (sCommand.getLength() > nIndex + 1)
+                        if (nIndex != -1 && sCommand.getLength() > nIndex + 1)
                         {
                             xFieldProperties->setPropertyValue(
                                 getPropertyName(PROP_HINT),
commit 9471401da95e7b31785dfbe24597da5484e8c35d
Author:     Noel Grandin <[email protected]>
AuthorDate: Mon Oct 14 17:07:31 2024 +0200
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 22:01:53 2024 +0100

    tdf#157130 undo and track changes not restoring characters (macOS)
    
    Not sure about the real underlying issue here.
    
    In debug mode, we hit this assert. Changing it from an assert to a "do 
decrement mnEmptyMark if it would become negative" seems to help.
    
    Change-Id: Ie23a685552d2f8153b67e18f9c0203ecbaad0ede
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174905
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>
    (cherry picked from commit 148fa9e9405b143f9fc228d9b5f967cad3139967)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175493
    Reviewed-by: Christian Lohmaier <[email protected]>

diff --git a/svl/source/undo/undo.cxx b/svl/source/undo/undo.cxx
index 488a0538244f..f9256e0ab7e9 100644
--- a/svl/source/undo/undo.cxx
+++ b/svl/source/undo/undo.cxx
@@ -575,13 +575,9 @@ bool SfxUndoManager::ImplAddUndoAction_NoNotify( 
std::unique_ptr<SfxUndoAction>
             if (m_xData->pActUndoArray->nCurUndoAction > 0)
             {
                 --m_xData->pActUndoArray->nCurUndoAction;
+                // fdo#66071 invalidate the current empty mark when removing
+                --m_xData->mnEmptyMark;
             }
-            else
-            {
-                assert(!"CurrentUndoAction going negative (!)");
-            }
-            // fdo#66071 invalidate the current empty mark when removing
-            --m_xData->mnEmptyMark;
         }
     }
 
commit c68355376f155018eabbf4cffeaa18e06c634562
Author:     Patrick Luby <[email protected]>
AuthorDate: Fri Nov 15 08:12:26 2024 -0500
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 21:59:06 2024 +0100

    tdf#163876 ignore marked text generated from Command-` events
    
    For some unknown reason, when using the standard macOS French
    layout, pressing Command-` causes -[NSView interpretKeyEvents:]
    to temporarily set and unset the marked text.
    
    Command-` should only cycle through the application's windows
    so ignore marked text changes from such key down events.
    
    Change-Id: Ifeb4ad637d572b339d7b389466815bb60a4b3120
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176652
    Reviewed-by: Patrick Luby <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 0c065c5e233044361713c0003dac6294a82a6e6e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176653
    Reviewed-by: Christian Lohmaier <[email protected]>

diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm
index 8ff27b9e63cf..40007e0fc38a 100644
--- a/vcl/osx/salframeview.mm
+++ b/vcl/osx/salframeview.mm
@@ -2016,8 +2016,22 @@ static bool isMouseScrollWheelEvent( NSEvent *pEvent )
         aString = [[[NSAttributedString alloc] initWithString:aString] 
autorelease];
 
     // Reset cached state
+    BOOL bOldHasMarkedText = [self hasMarkedText];
     [self unmarkText];
 
+    // tdf#163876 ignore marked text generated from Command-` events
+    // For some unknown reason, when using the standard macOS French
+    // layout, pressing Command-` causes -[NSView interpretKeyEvents:]
+    // to temporarily set and unset the marked text.
+    // Command-` should only cycle through the application's windows
+    // so ignore marked text changes from such key down events.
+    if( !bOldHasMarkedText && mpLastEvent && [mpLastEvent type] == 
NSEventTypeKeyDown && [mpLastEvent keyCode] == 42 && ( [mpLastEvent 
modifierFlags] & ( NSEventModifierFlagCommand | NSEventModifierFlagOption | 
NSEventModifierFlagControl | NSEventModifierFlagShift ) ) == 
NSEventModifierFlagCommand )
+    {
+        NSString* pUnmodifiedString = [mpLastEvent 
charactersIgnoringModifiers];
+        if( pUnmodifiedString && ![pUnmodifiedString length] )
+            return;
+    }
+
     int len = [aString length];
     bool bReschedule = false;
     SalExtTextInputEvent aInputEvent;
commit 8f08c9ac2805488ab60e32cc641d72aac1cbf3ce
Author:     Michael Weghorn <[email protected]>
AuthorDate: Mon Nov 18 13:02:52 2024 +0100
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 21:56:37 2024 +0100

    tdf#163792 gtk3: Don't always focus combobox when its popup closes
    
    Since
    
        commit 405cf00e4818886b0d3053d03cfb2e3f3a5e8eb8
        Author: Michael Weghorn <[email protected]>
        Date:   Tue May 28 11:50:12 2024 +0200
    
            related tdf#160971 gtk3 a11y: Keep new combobox value
    
    , closing an (editable) combobox like the font size one
    in the Writer formatting toolbar resulted in the combobox's entry
    having focus, while the focus was set to the document before that
    commit.
    
    Make this work as expected (again), by making grabbing the
    focus conditional in 2 places:
    
    1) In GtkInstanceComboBox::signal_popup_toggled,
    only set the focus to the GtkEntry of the custom
    combobox implementation if the child focus is already
    inside of the combobox. As I understand it, the intended
    logic is "move focus from the combo box's button to its entry",
    not "unconditionally grab the focus".
    This also matches what the gtk4 implementation does. Sync the
    comment from the gtk4 implementation, which explicitly
    mentions the case of the font combobox in the toolbar (which
    behaves the same as the font size one in that regard) where
    focus should not be grabbed.
    
    2) In GtkComboBox::menu_toggled, only explicitly set focus to
    the toggle button if the combo box is located inside of a popup.
    This is the same condition used to grab all keyboard events.
    
    The code to do both was introduced in
    
        commit 131c1c7da8c567636ca55751e49d24cb6d6c9b9e
        Date:   Sun Nov 21 19:53:47 2021 +0000
    
            Related: tdf#145786 cooperate between our own grabs
    
    whose commit message only explicitly mentions grabs
    for popups. The scenarios described in the commit message
    still work as expected with GDK_BACKEND=x11.
    
    With this in place, focus now moves to the document
    as expected when clicking on a combobox entry in the popup
    for the font size combobox in Writer's formatting toolbar,
    while clicking an entry in any of the comboboxes in e.g.
    Writer's "Format" -> "Character" dialog's "Font" tab still
    results in the entry of the combobox getting focus.
    
    Change-Id: Ib07b034f8327dab19a2264ae3ed8e20ea918dd89
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176713
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>
    (cherry picked from commit 4e770803c63417791cf2e38e27ec85127056b7a5)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176730
    Reviewed-by: Christian Lohmaier <[email protected]>

diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index d8844aacc65b..1f1ea5d3ac15 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -21330,8 +21330,10 @@ private:
                 GdkSurface* pParentSurface = pParent ? 
widget_get_surface(pParent) : nullptr;
                 void* pParentIsPopover = pParentSurface ? 
g_object_get_data(G_OBJECT(pParentSurface), "g-lo-InstancePopup") : nullptr;
                 if (pParentIsPopover)
+                {
                     do_grab(m_pToggleButton);
-                gtk_widget_grab_focus(m_pToggleButton);
+                    gtk_widget_grab_focus(m_pToggleButton);
+                }
             }
         }
         else
@@ -21377,11 +21379,18 @@ private:
         ComboBox::signal_popup_toggled();
         if (!m_bPopupActive && m_pEntry)
         {
-            disable_notify_events();
-            //restore focus to the GtkEntry when the popup is gone, which
-            //is what the vcl case does, to ease the transition a little
-            gtk_widget_grab_focus(m_pEntry);
-            enable_notify_events();
+            if (has_child_focus())
+            {
+                // restore focus to the GtkEntry when the popup is gone, which
+                // is what the vcl case does, to ease the transition a little,
+                // but don't do it if the focus was moved out of togglebutton
+                // by something else already (e.g. font combobox in toolbar
+                // on a "direct pick" from the menu which moves focus into
+                // the main document
+                disable_notify_events();
+                gtk_widget_grab_focus(m_pEntry);
+                enable_notify_events();
+            }
 
             // tdf#160971: For some reason, the tree view in the no longer 
visible
             // popup still incorrectly assumes it has focus in addition to the 
now
commit 8d9bb143730c9866ef40b27d374d7b571b71a8b9
Author:     Michael Weghorn <[email protected]>
AuthorDate: Wed Oct 30 12:44:33 2024 +0100
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 21:56:03 2024 +0100

    tdf#163684 gtk3 a11y: Don't use combobox role twice for non-editable one
    
    Since
    
        commit 9f078ed7b625e86182d64d5ccfbb410cdd38081c
        Author: Michael Weghorn <[email protected]>
        Date:   Tue May 7 10:04:16 2024 +0200
    
            tdf#160971 gtk3 a11y: Set role for custom editable combobox
    
            Set the combobox a11y role for the box in the .ui file
            used for the custom gtk3 combobox implementation.
    
            With this in place, moving focus to the "Font Name" or
            another editable combobox in the Writer toolbar now
            makes Orca announce that one as "editable combobox"
            rather than just "text".
    
    , the combobox a11y role is set for the GtkBox of
    the custom combobox implementation used for gtk3.
    That box contains the edit (for editable comboboxes)
    and the button.
    
    While this is needed for editable comboboxes for
    AT to identify this as a combobox when the edit
    receives focus (by the fact that the edit's parent
    has a combobox role), this resulted in Orca no
    longer announcing the combobox role when the
    button receives focus for non-editable comboboxes.
    
    While the button also has the combobox role, Orca
    has logic to not announce the role of combobox
    children. (`SpeechGenerator._should_speak_role`
    returns `false` for that case [1].)
    
    To avoid this problem and make announcement for both,
    editable and non-editable comboboxes work as expected,
    no longer set a combobox role for the box in the .ui
    file, but set it only for the editable combobox
    in the C++ code.
    
    [1] 
https://gitlab.gnome.org/GNOME/orca/-/blob/78e44c625ef5fb082907ca484230458624d24ee8/src/orca/speech_generator.py#L365-366
    
    Change-Id: Ia3ff00688f47e61d5a98c79f1a256061b2fb18a8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175823
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>
    (cherry picked from commit cf627ab2c8c070a620c81cff1faf7b6f04205255)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175842
    Reviewed-by: Christian Lohmaier <[email protected]>

diff --git a/vcl/uiconfig/ui/combobox.ui b/vcl/uiconfig/ui/combobox.ui
index a9c697f10bc7..6abaa6a25171 100644
--- a/vcl/uiconfig/ui/combobox.ui
+++ b/vcl/uiconfig/ui/combobox.ui
@@ -67,11 +67,6 @@
         <property name="position">2</property>
       </packing>
     </child>
-    <child internal-child="accessible">
-      <object class="AtkObject" id="box-atkobject">
-        <property name="AtkObject::accessible-role">combo-box</property>
-      </object>
-    </child>
     <style>
       <class name="linked"/>
     </style>
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index d83d209f7974..d8844aacc65b 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -22281,6 +22281,14 @@ public:
             m_nEntryKeyPressEventSignalId = g_signal_connect(m_pEntry, 
"key-press-event", G_CALLBACK(signalEntryKeyPress), this);
             m_nEntryPopulatePopupMenuSignalId = g_signal_connect(m_pEntry, 
"populate-popup", G_CALLBACK(signalEntryPopulatePopup), nullptr);
             m_nKeyPressEventSignalId = 0;
+
+            // for editable combobox, set a11y combobox role for the box 
containing the entry
+            // (in addition to the button for which this is already set in the 
.ui file that
+            // gets focus in case of the the non-editable combobox)
+            GtkWidget* pBox = GTK_WIDGET(gtk_builder_get_object(pComboBuilder, 
"box"));
+            assert(pBox);
+            if (AtkObject* pBoxAccessible = gtk_widget_get_accessible(pBox))
+                atk_object_set_role(pBoxAccessible, ATK_ROLE_COMBO_BOX);
         }
         else
         {
commit 13fcfcf7593bfa962d783bb5a91ae54fc15c0683
Author:     Christian Lohmaier <[email protected]>
AuthorDate: Thu Nov 28 22:51:01 2024 +0200
Commit:     Gerrit Code Review <[email protected]>
CommitDate: Thu Nov 28 21:51:01 2024 +0100

    Update git submodules
    
    * Update helpcontent2 from branch 'libreoffice-24-8'
      to bad768594be416143c007c52fecb5a26c495f396
      - enable help for Tagalog (tl)
    
        Change-Id: I0e35015d4d2526ea0d09404140a1ee73ce658350
        Reviewed-on: https://gerrit.libreoffice.org/c/help/+/177502
        Tested-by: Jenkins
        Reviewed-by: Christian Lohmaier <[email protected]>

diff --git a/helpcontent2 b/helpcontent2
index fce7eb57bb9b..bad768594be4 160000
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit fce7eb57bb9b4fb063ff2eb7bc44f17a9221c020
+Subproject commit bad768594be416143c007c52fecb5a26c495f396
commit f70922e2a9a074f3dbad419952e4d584146af169
Author:     Christian Lohmaier <[email protected]>
AuthorDate: Thu Nov 28 21:50:34 2024 +0100
Commit:     Gerrit Code Review <[email protected]>
CommitDate: Thu Nov 28 21:50:34 2024 +0100

    Update git submodules
    
    * Update helpcontent2 from branch 'libreoffice-24-8'
      to fce7eb57bb9b4fb063ff2eb7bc44f17a9221c020
      - add screenshots and files for Tagalog
    
        run through optipng -o7 to reduce the filesize
    
        XMLSourceDialog.png as well as the sample files were copied from
        existing languages
    
        Change-Id: Ie40b83f115342832f040a619f057b0ea83dc709d
        Reviewed-on: https://gerrit.libreoffice.org/c/help/+/177501
        Reviewed-by: Christian Lohmaier <[email protected]>
        Tested-by: Jenkins

diff --git a/helpcontent2 b/helpcontent2
index e4fdfbd1a4a4..fce7eb57bb9b 160000
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit e4fdfbd1a4a4b5c13f94eae59274377a05f69b30
+Subproject commit fce7eb57bb9b4fb063ff2eb7bc44f17a9221c020
commit f0062fe405036642ff2e5cba172b3a8b81ed5a76
Author:     Xisco Fauli <[email protected]>
AuthorDate: Wed Nov 27 10:46:51 2024 +0100
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 17:11:12 2024 +0100

    openldap: upgrade to 2.6.9
    
    Downloaded from 
https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.6.9.tgz
    
    Change-Id: Ie26290f4443d92cb9f0801548782c0f10a518984
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177401
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit e73b5b0afad2daaafe76b9a201ddcad74560c4d2)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177411
    Reviewed-by: Christian Lohmaier <[email protected]>

diff --git a/download.lst b/download.lst
index 597bc6f6c630..d881ee2aa0d4 100644
--- a/download.lst
+++ b/download.lst
@@ -503,8 +503,8 @@ ONLINEUPDATE_TARBALL := 
onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-OPENLDAP_SHA256SUM := 
48969323e94e3be3b03c6a132942dcba7ef8d545f2ad35401709019f696c3c4e
-OPENLDAP_TARBALL := openldap-2.6.8.tgz
+OPENLDAP_SHA256SUM := 
2cb7dc73e9c8340dff0d99357fbaa578abf30cc6619f0521972c555681e6b2ff
+OPENLDAP_TARBALL := openldap-2.6.9.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
commit fdaa4119632b1aa0caa9a5de5e9c43f42d27062a
Author:     Christian Lohmaier <[email protected]>
AuthorDate: Tue Nov 26 14:07:23 2024 +0100
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 14:28:49 2024 +0100

    show extension link on startcenter for macosxsandbox case
    
    the ShowDonation has already a default value of true via the schema,
    so it is enough to override it to false for the macosxsandbox case
    similar to how it is done with the Infobar / using the install:module
    method
    
    Change-Id: I8f1ea6d3530e66806f66f9f2d2fb16ef0276e460
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177333
    Tested-by: Jenkins
    Reviewed-by: Christian Lohmaier <[email protected]>
    (cherry picked from commit fd2c9abe5229f98e062b7b32994e9e015975ca90)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177358
    Reviewed-by: Heiko Tietze <[email protected]>

diff --git a/officecfg/Configuration_officecfg.mk 
b/officecfg/Configuration_officecfg.mk
index 57ac28bbed51..868a6626755b 100644
--- a/officecfg/Configuration_officecfg.mk
+++ b/officecfg/Configuration_officecfg.mk
@@ -87,6 +87,7 @@ $(eval $(call 
gb_Configuration_add_spool_modules,registry,officecfg/registry/dat
        org/openoffice/Office/Common-unx.xcu \
        org/openoffice/Office/Common-unixdesktop.xcu \
        org/openoffice/Office/Common-macosx.xcu \
+       org/openoffice/Office/Common-macosxsandbox.xcu \
        org/openoffice/Office/Common-wnt.xcu \
        org/openoffice/Office/Common-UseOOoFileDialogs.xcu \
        org/openoffice/Office/Common-32bit.xcu \
diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu 
b/officecfg/registry/data/org/openoffice/Office/Common.xcu
index f146d5a82769..002aafc8fac9 100644
--- a/officecfg/registry/data/org/openoffice/Office/Common.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu
@@ -458,7 +458,7 @@
       <value install:module="wnt">true</value>
     </prop>
     <prop oor:name="ShowDonation">
-      <value>true</value>
+      <value install:module="macosxsandbox">false</value>
     </prop>
   </node>
   <node oor:name="Save">
diff --git a/postprocess/CustomTarget_registry.mk 
b/postprocess/CustomTarget_registry.mk
index 20d68d3bc7aa..4be442c49ae4 100644
--- a/postprocess/CustomTarget_registry.mk
+++ b/postprocess/CustomTarget_registry.mk
@@ -309,6 +309,7 @@ endif
 
 ifneq ($(ENABLE_MACOSX_SANDBOX),)
 postprocess_FILES_main += 
$(postprocess_MOD)/org/openoffice/Office/UI/Infobar-macosxsandbox.xcu
+postprocess_FILES_main += 
$(postprocess_MOD)/org/openoffice/Office/Common-macosxsandbox.xcu
 endif
 
 ifneq (,$(SYSTEM_LIBEXTTEXTCAT_DATA))
commit b54ecbdca64c469e25e46a4c047ee36d355da7c7
Author:     Christian Lohmaier <[email protected]>
AuthorDate: Tue Aug 27 14:04:14 2024 +0200
Commit:     Christian Lohmaier <[email protected]>
CommitDate: Thu Nov 28 14:27:25 2024 +0100

    run msguniq .. | msgfmt in a subshell to help out wsl1
    
    handling stdout / pipe / redirections seems to be fragile when using
    
    wsl command1 | wsl command2
    
    when multiple of those are run concurrently. So as a workaround make
    that a single invocation of
    
    wsl shell -c "command1 | command2"
    
    Change-Id: I9e67fddd6cf377aa0461515036ea7b709714153d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172468
    Reviewed-by: Christian Lohmaier <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 1c84943890afea8eaa8fdaeabbd4394680d657f9)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177437
    Reviewed-by: Michael Stahl <[email protected]>

diff --git a/solenv/gbuild/AllLangMoTarget.mk b/solenv/gbuild/AllLangMoTarget.mk
index ec05985d5ecc..3811ff4ee478 100644
--- a/solenv/gbuild/AllLangMoTarget.mk
+++ b/solenv/gbuild/AllLangMoTarget.mk
@@ -32,12 +32,13 @@ $(call gb_MoTarget_get_clean_target,%) :
                        $(call gb_MoTarget_get_target,$*) \
                        $(call gb_MoTarget_get_install_target,$*))
 
+# wsl1 seems to have issues with writing to stdout/pipes when running with 
high parallelism
+# so as a workaround run the two statements in a single command run by a shell
 $(call gb_MoTarget_get_target,%) : $(gb_Helper_MISCDUMMY)
        $(call gb_Output_announce,$*,$(true),MO ,2)
        $(call gb_Trace_StartRange,$*,MO )
-       $(call gb_Helper_abbreviate_dirs,\
-               mkdir -p $(dir $@) && \
-               $(MSGUNIQ) --force-po 
$(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION)/messages.po | $(MSGFMT) - -o $@)
+       $(call gb_Helper_abbreviate_dirs,mkdir -p $(dir $@)) && \
+       $(call gb_Helper_wsl_path,$(WSL) /bin/sh -c "$(MSGUNIQ) --force-po 
$(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION)/messages.po | $(MSGFMT) - -o $@")
        $(call gb_Trace_EndRange,$*,MO )
 
 #$(info $(call gb_MoTarget_get_target,$(1)))
commit 14d5d8c685b509840202f72748b71f221fa95be8
Author:     Xisco Fauli <[email protected]>
AuthorDate: Tue Nov 26 13:39:23 2024 +0100
Commit:     Michael Stahl <[email protected]>
CommitDate: Thu Nov 28 11:01:53 2024 +0100

    libcdr: upgrade to 0.1.8
    
    Generated with:
    ./autogen.sh
    ./configure
    make dist-xz
    
    Change-Id: I46b921f3c2ef41ab52e272df5afd82a1d9331f42
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177332
    Reviewed-by: Xisco Fauli <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 0e334b25b91b4585a8660e49355c3442ebfd334e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177346
    Reviewed-by: Michael Stahl <[email protected]>

diff --git a/download.lst b/download.lst
index e5da31a3a7d0..597bc6f6c630 100644
--- a/download.lst
+++ b/download.lst
@@ -45,8 +45,8 @@ CAIRO_TARBALL := cairo-1.17.$(CAIRO_VERSION_MICRO).tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-CDR_SHA256SUM := 
5666249d613466b9aa1e987ea4109c04365866e9277d80f6cd9663e86b8ecdd4
-CDR_TARBALL := libcdr-0.1.7.tar.xz
+CDR_SHA256SUM := 
ced677c8300b29c91d3004bb1dddf0b99761bf5544991c26c2ee8f427e87193c
+CDR_TARBALL := libcdr-0.1.8.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/libcdr/UnpackedTarball_libcdr.mk 
b/external/libcdr/UnpackedTarball_libcdr.mk
index f0e80f06f05f..fd227a2f7445 100644
--- a/external/libcdr/UnpackedTarball_libcdr.mk
+++ b/external/libcdr/UnpackedTarball_libcdr.mk
@@ -17,7 +17,6 @@ $(eval $(call 
gb_UnpackedTarball_update_autoconf_configs,libcdr))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libcdr, \
     external/libcdr/libcdr-visibility-win.patch \
-    external/libcdr/ax_gcc_func_attribute.m4.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libcdr/ax_gcc_func_attribute.m4.patch 
b/external/libcdr/ax_gcc_func_attribute.m4.patch
deleted file mode 100644
index 37f4edf0bd46..000000000000
--- a/external/libcdr/ax_gcc_func_attribute.m4.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -19167,7 +19167,7 @@
- 
- _ACEOF
- if ac_fn_cxx_try_link "$LINENO"; then :
--                                      if test -s conftest.err; then :
-+                                      if grep -- -Wattributes conftest.err; 
then :
-   ax_cv_have_func_attribute_visibility=no
- else
-   ax_cv_have_func_attribute_visibility=yes
diff --git a/external/libcdr/libcdr-visibility-win.patch 
b/external/libcdr/libcdr-visibility-win.patch
index 7700cfd32f2f..5333b5e44b1f 100644
--- a/external/libcdr/libcdr-visibility-win.patch
+++ b/external/libcdr/libcdr-visibility-win.patch
@@ -1,11 +1,11 @@
 --- configure.dt       2018-12-29 16:23:02.355271146 +0100
 +++ configure  2018-12-29 16:23:21.644060142 +0100
-@@ -19116,6 +19116,8 @@
+@@ -23329,6 +23329,8 @@
  
- 
- if test $platform_win32 = yes; then :
+ if test $platform_win32 = yes
+ then :
 +  HAVE_VISIBILITY_TRUE='#'
 +  HAVE_VISIBILITY_FALSE=
  
- else
+ else $as_nop
  
commit 75b15fa500b5f1cdbc50a54f9edcec3f549ed4a5
Author:     Gülşah Köse <[email protected]>
AuthorDate: Fri Nov 22 14:38:40 2024 +0300
Commit:     Xisco Fauli <[email protected]>
CommitDate: Thu Nov 28 10:36:21 2024 +0100

    tdf#163842 Fix autofilter ascending sort condition reference import
    
    if (rSorConditionLoaded.mbDescending) condition ignores the ascending sort.
    So when we import a document that uses ascending sort then export it, we
    don't know which column is sorted.
    
    With the following patch we fix this case.
    
    Signed-off-by: Gülşah Köse <[email protected]>
    Change-Id: I561146517959a87eb0fb6cec419d68299bcb7eee
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177016
    Reviewed-by: Szymon Kłos <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177222
    Tested-by: Jenkins
    (cherry picked from commit d902401452d85db0c320401335b5170dfa5f6c51)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177318
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sc/qa/unit/data/xlsx/sortconditionref.xlsx 
b/sc/qa/unit/data/xlsx/sortconditionref.xlsx
new file mode 100644
index 000000000000..7aaebcc20471
Binary files /dev/null and b/sc/qa/unit/data/xlsx/sortconditionref.xlsx differ
diff --git a/sc/qa/unit/subsequent_export_test2.cxx 
b/sc/qa/unit/subsequent_export_test2.cxx
index f7a8e35c0907..cff515a1a950 100644
--- a/sc/qa/unit/subsequent_export_test2.cxx
+++ b/sc/qa/unit/subsequent_export_test2.cxx
@@ -410,6 +410,22 @@ CPPUNIT_TEST_FIXTURE(ScExportTest2, 
testTdf95640_xlsx_to_xlsx)
                 "customList"_ostr, u"Low,Medium,High"_ustr);
 }
 
+CPPUNIT_TEST_FIXTURE(ScExportTest2, testSortConditionRef)
+{
+    // Ascending sortCondition reference detected wrong without fix.
+    // - Expected: B3:B2
+    // - Actual  : A3:A2
+    // - In <>, attribute 'ref' of 
'//x:worksheet/x:autoFilter/x:sortState/x:sortCondition' incorrect value.
+    createScDoc("xlsx/sortconditionref.xlsx");
+
+    save(u"Calc Office Open XML"_ustr);
+    xmlDocUniquePtr pDoc = parseExport(u"xl/worksheets/sheet1.xml"_ustr);
+
+    assertXPath(pDoc, "//x:worksheet/x:autoFilter"_ostr, "ref"_ostr, 
u"B2"_ustr);
+    assertXPath(pDoc, 
"//x:worksheet/x:autoFilter/x:sortState/x:sortCondition"_ostr, "ref"_ostr,
+                u"B3:B2"_ustr);
+}
+
 CPPUNIT_TEST_FIXTURE(ScExportTest2, testDateAutofilterXLSX)
 {
     // XLSX Roundtripping autofilter with date list
diff --git a/sc/source/filter/oox/autofilterbuffer.cxx 
b/sc/source/filter/oox/autofilterbuffer.cxx
index 2aaeae049be1..1d7b7ffb0d70 100644
--- a/sc/source/filter/oox/autofilterbuffer.cxx
+++ b/sc/source/filter/oox/autofilterbuffer.cxx
@@ -847,15 +847,13 @@ void AutoFilter::finalizeImport( const Reference< 
XDatabaseRange >& rxDatabaseRa
         return;
 
     SCCOLROW nStartPos = aParam.bByRow ? maRange.aStart.Col() : 
maRange.aStart.Row();
+    // descending sort - need to enable 1st SortParam slot
     if (rSorConditionLoaded.mbDescending)
-    {
-        // descending sort - need to enable 1st SortParam slot
         assert(aParam.GetSortKeyCount() == DEFSORT);
 
-        aParam.maKeyState[0].bDoSort = true;
-        aParam.maKeyState[0].bAscending = false;
-        aParam.maKeyState[0].nField += nStartPos;
-    }
+    aParam.maKeyState[0].bDoSort = true;
+    aParam.maKeyState[0].bAscending = !rSorConditionLoaded.mbDescending;
+    aParam.maKeyState[0].nField += nStartPos;
 
     ScDBData* pDBData = rDoc.GetDBAtArea(
         nSheet,
commit 4e3e708f7877a44be25f542be95ae4547cb613bc
Author:     Mike Kaganski <[email protected]>
AuthorDate: Fri Nov 22 13:38:08 2024 +0500
Commit:     Xisco Fauli <[email protected]>
CommitDate: Thu Nov 28 10:35:47 2024 +0100

    ReqIF: avoid 'type' attribute in 'ul' elements
    
    Change-Id: I028737cac0b89344be5df55f9b60046230603979
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176987
    Reviewed-by: Mike Kaganski <[email protected]>
    Tested-by: Jenkins
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177241

diff --git a/sw/qa/extras/htmlexport/data/ul_with_disc.fodt 
b/sw/qa/extras/htmlexport/data/ul_with_disc.fodt
new file mode 100644
index 000000000000..b41da841cf61
--- /dev/null
+++ b/sw/qa/extras/htmlexport/data/ul_with_disc.fodt
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
+ <office:automatic-styles>
+  <text:list-style style:name="L1">
+   <text:list-level-style-bullet text:level="1" text:bullet-char="•"/>
+   <text:list-level-style-bullet text:level="2" text:bullet-char=""/>
+  </text:list-style>
+ </office:automatic-styles>
+ <office:body>
+  <office:text>
+   <text:list text:style-name="L1">
+    <text:list-item>
+     <text:list>
+      <text:list-header>
+       <text:p>list header</text:p>
+      </text:list-header>
+     </text:list>
+    </text:list-item>
+   </text:list>
+  </office:text>
+ </office:body>
+</office:document>
\ No newline at end of file
diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx 
b/sw/qa/extras/htmlexport/htmlexport.cxx
index 1e4b78f78670..307301b28706 100644
--- a/sw/qa/extras/htmlexport/htmlexport.cxx
+++ b/sw/qa/extras/htmlexport/htmlexport.cxx
@@ -3470,6 +3470,19 @@ CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, 
testHTML_162426)
     assertXPath(pDoc, "/html/body/p/img"_ostr, "border"_ostr, u"0"_ustr);
 }
 
+CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testReqifNoTypeInUL)
+{
+    // Given a document with an unordered list:
+    createSwDoc("ul_with_disc.fodt");
+
+    // When exporting to XHTML:
+    ExportToReqif();
+
+    // Check that 'ul' element has no 'type' attribute
+    xmlDocUniquePtr pXmlDoc = WrapReqifFromTempFile();
+    // Without the accompanying fix in place, this test would have failed
+    assertXPathNoAttribute(pXmlDoc, 
"//reqif-xhtml:ul/reqif-xhtml:li/reqif-xhtml:ul", "type");
+}
 } // end of anonymous namespace
 CPPUNIT_PLUGIN_IMPLEMENT();
 
diff --git a/sw/source/filter/html/htmlnumwriter.cxx 
b/sw/source/filter/html/htmlnumwriter.cxx
index 046747754a38..7f09fd8ce8cc 100644
--- a/sw/source/filter/html/htmlnumwriter.cxx
+++ b/sw/source/filter/html/htmlnumwriter.cxx
@@ -187,24 +187,27 @@ SwHTMLWriter& OutHTML_NumberBulletListStart( 
SwHTMLWriter& rWrt,
             // unordered list: <UL>
             sOut += OOO_STRING_SVTOOLS_HTML_unorderlist;
 
-            // determine the type by the bullet character
-            const char *pStr = nullptr;
-            switch( rNumFormat.GetBulletChar() )
+            if (!rWrt.mbReqIF) // No 'type' attribute in ReqIF
             {
-            case HTML_BULLETCHAR_DISC:
-                pStr = OOO_STRING_SVTOOLS_HTML_ULTYPE_disc;
-                break;
-            case HTML_BULLETCHAR_CIRCLE:
-                pStr = OOO_STRING_SVTOOLS_HTML_ULTYPE_circle;
-                break;
-            case HTML_BULLETCHAR_SQUARE:
-                pStr = OOO_STRING_SVTOOLS_HTML_ULTYPE_square;
-                break;
-            }
+                // determine the type by the bullet character
+                const char* pStr = nullptr;
+                switch (rNumFormat.GetBulletChar())
+                {
+                    case HTML_BULLETCHAR_DISC:
+                        pStr = OOO_STRING_SVTOOLS_HTML_ULTYPE_disc;
+                        break;
+                    case HTML_BULLETCHAR_CIRCLE:
+                        pStr = OOO_STRING_SVTOOLS_HTML_ULTYPE_circle;
+                        break;
+                    case HTML_BULLETCHAR_SQUARE:
+                        pStr = OOO_STRING_SVTOOLS_HTML_ULTYPE_square;
+                        break;
+                }
 
-            if( pStr )
-            {
-                sOut += OString::Concat(" " OOO_STRING_SVTOOLS_HTML_O_type 
"=\"") + pStr + "\"";
+                if (pStr)
+                {
+                    sOut += OString::Concat(" " OOO_STRING_SVTOOLS_HTML_O_type 
"=\"") + pStr + "\"";
+                }
             }
         }
         else if( SVX_NUM_BITMAP == eType )
commit 4dc3896752241befcb29a3ff1ea82297fc4b7f9d
Author:     Patrick Luby <[email protected]>
AuthorDate: Sun Nov 24 20:25:59 2024 -0500
Commit:     Adolfo Jayme Barrientos <[email protected]>
CommitDate: Thu Nov 28 02:14:01 2024 +0100

    Improve rendering speed for native controls when using Skia/Metal
    
    While debugging tdf#163945, Xcode's Instruments application uncovered
    the following performance bottlenecks when using Skia/Metal:
    
    1. Very slow rendering an NSBox:
       Many system colors have the NSColorTypeCatalog color type. For
       some unkown reason, setting the NSBox's fill color to a color set
       to NSColorTypeCatalog causes drawing to take at least twice as
       long as when the fill color is set to NSColorTypeComponentBased.
       So, only draw with a fill color set to NSColorTypeComponentBased.
    
    2. Excessively large offscreen buffers when drawing native controls:
       The temporary bitmap was set to the control region expanded by
       50 * mScaling (e.g. both width and height were increased by 200
       pixels when running on a Retina display). This caused temporary
       bitmaps to be up to several times larger than needed. Also,
       drawing NSBox objects to a CGBitmapContext is noticeably slow
       so filling all that unneeded temporary bitmap area can slow down
       performance when a large number of NSBox objects like the status
       bar are redrawn in quick succession.
       Using getNativeControlRegion() isn't perfect, but it does try to
       account for the focus ring as well as the minimum width and/or
       height of the native control so union the two regions set by
       getNativeControlRegion() and add double the focus ring width on
       each side just to be safe. In most cases, this should ensure
       that the temporary bitmap is large enough to draw the entire
       native control and a focus ring.
    
    3. Unncessary copying of bitmap buffer when drawing native controls:
       Let Skia own the CGBitmapContext's buffer so that an SkImage
       can be created without Skia making a copy of the buffer.
    
    Change-Id: Ibd3abb4b9d7045c47268319772fe97a5c4dba3c6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177225
    Tested-by: Jenkins
    Reviewed-by: Patrick Luby <[email protected]>
    (cherry picked from commit 0807fe362819629259a9a80a48d2826e588d909c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177291
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/vcl/inc/quartz/salgdi.h b/vcl/inc/quartz/salgdi.h
index b7fb674f7553..003bf077510f 100644
--- a/vcl/inc/quartz/salgdi.h
+++ b/vcl/inc/quartz/salgdi.h
@@ -446,6 +446,7 @@ protected:
     virtual bool            drawNativeControl( ControlType nType, ControlPart 
nPart, const tools::Rectangle& rControlRegion,
                                                ControlState nState, const 
ImplControlValue& aValue,
                                                const OUString& aCaption, const 
Color& rBackgroundColor ) override;
+public:
     virtual bool            getNativeControlRegion( ControlType nType, 
ControlPart nPart, const tools::Rectangle& rControlRegion, ControlState nState,
                                                     const ImplControlValue& 
aValue, const OUString& aCaption,
                                                     tools::Rectangle 
&rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion ) override;
diff --git a/vcl/osx/salnativewidgets.cxx b/vcl/osx/salnativewidgets.cxx
index 8a7e81fd5d86..3340722281e8 100644
--- a/vcl/osx/salnativewidgets.cxx
+++ b/vcl/osx/salnativewidgets.cxx
@@ -380,6 +380,8 @@ bool AquaGraphicsBackend::drawNativeControl(ControlType 
nType,
 
 static void drawBox(CGContextRef context, const NSRect& rc, NSColor* pColor)
 {
+    assert(pColor);
+
     CGContextSaveGState(context);
     CGContextTranslateCTM(context, rc.origin.x, rc.origin.y + rc.size.height);
     CGContextScaleCTM(context, 1, -1);
@@ -388,12 +390,27 @@ static void drawBox(CGContextRef context, const NSRect& 
rc, NSColor* pColor)
 
     NSRect rect = { NSZeroPoint, NSMakeSize(rc.size.width, rc.size.height) };
     NSBox* pBox = [[NSBox alloc] initWithFrame: rect];
-
     [pBox setBoxType: NSBoxCustom];
-    [pBox setFillColor: pColor];
-    SAL_WNODEPRECATED_DECLARATIONS_PUSH // setBorderType first deprecated in 
macOS 10.15
-    [pBox setBorderType: NSNoBorder];
-    SAL_WNODEPRECATED_DECLARATIONS_POP
+
+    // Related tdf#163945: Set fill color to NSColorTypeComponentBased color 
type
+    // Many system colors have the NSColorTypeCatalog color type. For
+    // some unkown reason, setting the NSBox's fill color to a color set
+    // to NSColorTypeCatalog causes drawing to take at least twice as long
+    // as when the fill color is set to NSColorTypeComponentBased. So,
+    // only draw with a fill color set to NSColorTypeComponentBased.
+    NSColor* pRGBColor = pColor;
+    if ([pColor type] != NSColorTypeComponentBased)
+    {
+        pRGBColor = [pColor colorUsingType: NSColorTypeComponentBased];
+        if (!pRGBColor)
+            pRGBColor = pColor;
+    }
+    [pBox setFillColor: pRGBColor];
+
+    // -[NSBox setBorderType: NSNoBorder] is deprecated so hide the border
+    // by setting the border color to transparent
+    [pBox setBorderColor: [NSColor clearColor]];
+    [pBox setTitlePosition: NSNoTitle];
 
     [pBox displayRectIgnoringOpacity: rect inContext: graphicsContext];
 
diff --git a/vcl/skia/osx/gdiimpl.cxx b/vcl/skia/osx/gdiimpl.cxx
index ffe1ebc42d65..e74db4ec5475 100644
--- a/vcl/skia/osx/gdiimpl.cxx
+++ b/vcl/skia/osx/gdiimpl.cxx
@@ -27,6 +27,7 @@
 
 #include <quartz/CoreTextFont.hxx>
 #include <quartz/SystemFontList.hxx>
+#include <osx/salnativewidgets.h>
 #include <skia/quartz/cgutils.h>
 
 #include <SkBitmap.h>
@@ -254,28 +255,51 @@ bool 
AquaSkiaSalGraphicsImpl::drawNativeControl(ControlType nType, ControlPart n
         return false;
 
     // rControlRegion is not the whole area that the control should be painted 
to (e.g. highlight
-    // around focused lineedit is outside of it). Since we draw to a temporary 
bitmap, we need tofind out
-    // the real size. Using getNativeControlRegion() might seem like the 
function to call, but we need
-    // the other direction - what is called rControlRegion here is 
rNativeContentRegion in that function
-    // what's called rControlRegion there is what we need here. Moreover 
getNativeControlRegion()
-    // in some cases returns a fixed size that does not depend on its input, 
so we have no way to
-    // actually find out what the original size was (or maybe the function is 
kind of broken, I don't know).
-    // So, add a generous margin and hope it's enough.
+    // around focused lineedit is outside of it). Since we draw to a temporary 
bitmap, we need to find out
+    // the real size.
+    // Related tdf#163945 Reduce the size of the temporary bitmap
+    // Previously, the temporary bitmap was set to the control region
+    // expanded by 50 * mScaling (e.g. both width and height were
+    // increased by 200 pixels when running on a Retina display). This
+    // caused temporary bitmaps to be up to several times larger than
+    // needed. Also, drawing NSBox objects to a CGBitmapContext is
+    // noticeably slow so filling all that unneeded temporary bitmap
+    // area can slow down performance when a large number of NSBox
+    // objects like the status bar are redrawn in quick succession.
+    // Using getNativeControlRegion() isn't perfect, but it does try to
+    // account for the focus ring as well as the minimum width and/or
+    // height of the native control so union the two regions set by
+    // getNativeControlRegion() and add double the focus ring width on
+    // each side just to be safe. In most cases, this should ensure
+    // that the temporary bitmap is large enough to draw the entire
+    // native control and a focus ring.
     tools::Rectangle boundingRegion(rControlRegion);
-    boundingRegion.expand(50 * mScaling);
+    tools::Rectangle rNativeBoundingRegion;
+    tools::Rectangle rNativeContentRegion;
+    AquaSalGraphics* pGraphics = mrShared.mpFrame->mpGraphics;
+    if (pGraphics
+        && pGraphics->getNativeControlRegion(nType, nPart, rControlRegion, 
nState, aValue,
+                                             OUString(), rNativeBoundingRegion,
+                                             rNativeContentRegion))
+    {
+        boundingRegion.Union(rNativeBoundingRegion);
+        boundingRegion.Union(rNativeContentRegion);
+    }
+    boundingRegion.expand(2 * FOCUS_RING_WIDTH * mScaling);
+
     // Do a scaled bitmap in HiDPI in order not to lose precision.
     const tools::Long width = boundingRegion.GetWidth() * mScaling;
     const tools::Long height = boundingRegion.GetHeight() * mScaling;
     const size_t bytes = width * height * 4;
-    sal_uInt8* data = new sal_uInt8[bytes];
-    memset(data, 0, bytes);
+    // Let Skia own the CGBitmapContext's buffer so that an SkImage
+    // can be created without Skia making a copy of the buffer
+    sk_sp<SkData> data = SkData::MakeZeroInitialized(bytes);
     CGContextRef context = CGBitmapContextCreate(
-        data, width, height, 8, width * 4, GetSalData()->mxRGBSpace,
+        data->writable_data(), width, height, 8, width * 4, 
GetSalData()->mxRGBSpace,
         SkiaToCGBitmapType(mSurface->imageInfo().colorType(), 
kPremul_SkAlphaType));
     if (!context)
     {
         SAL_WARN("vcl.skia", "drawNativeControl(): Failed to allocate bitmap 
context");
-        delete[] data;
         return false;
     }
     // Setup context state for drawing (performDrawNativeControl() e.g. fills 
background in some cases).
@@ -307,14 +331,6 @@ bool 
AquaSkiaSalGraphicsImpl::drawNativeControl(ControlType nType, ControlPart n
     CGContextRelease(context);
     if (bOK)
     {
-        // Let SkBitmap determine when it is safe to delete the pixel buffer
-        SkBitmap bitmap;
-        if (!bitmap.installPixels(SkImageInfo::Make(width, height,
-                                                    
mSurface->imageInfo().colorType(),
-                                                    kPremul_SkAlphaType),
-                                  data, width * 4, nullptr, nullptr))
-            abort();
-
         preDraw();
         SAL_INFO("vcl.skia.trace", "drawnativecontrol(" << this << "): " << 
rControlRegion << ":"
                                                         << int(nType) << "/" 
<< int(nPart));
@@ -327,22 +343,18 @@ bool 
AquaSkiaSalGraphicsImpl::drawNativeControl(ControlType nType, ControlPart n
                                          updateRect.GetWidth(), 
updateRect.GetHeight()));
         SkRect drawRect = SkRect::MakeXYWH(boundingRegion.getX(), 
boundingRegion.getY(),
                                            boundingRegion.GetWidth(), 
boundingRegion.GetHeight());
-        assert(drawRect.width() * mScaling == bitmap.width()); // no scaling 
should be needed
-        getDrawCanvas()->drawImageRect(bitmap.asImage(), drawRect, 
SkSamplingOptions());
+        sk_sp<SkImage> image = SkImages::RasterFromData(
+            SkImageInfo::Make(width, height, mSurface->imageInfo().colorType(),
+                              kPremul_SkAlphaType),
+            data, width * 4);
+        assert(image
+               && drawRect.width() * mScaling == image->width()); // no 
scaling should be needed
+        getDrawCanvas()->drawImageRect(image, drawRect, SkSamplingOptions());
         // Related: tdf#156881 flush the canvas after drawing the pixel buffer
         getDrawCanvas()->flush();
         ++pendingOperationsToFlush; // tdf#136369
         postDraw();
     }
-    // Related: tdf#159529 eliminate possible memory leak
-    // Despite confirming that the release function passed to
-    // SkBitmap.bitmap.installPixels() does get called for every
-    // data array that has been allocated, Apple's Instruments
-    //  indicates that the data is leaking. While it is likely a
-    // false positive, it makes leak analysis difficult so leave
-    // the bitmap mutable. That causes SkBitmap.asImage() to make
-    // a copy of the data and the data can be safely deleted here.
-    delete[] data;
     return bOK;
 }
 
commit 514aef42f6d5cab539e5ba80bdc2de8fb51801ba
Author:     Patrick Luby <[email protected]>
AuthorDate: Sat Nov 23 17:18:57 2024 -0500
Commit:     Adolfo Jayme Barrientos <[email protected]>
CommitDate: Thu Nov 28 02:09:44 2024 +0100

    tdf#157312 and tdf#163945 Lower Skia flush timer priority on macOS
    
    On macOS, flushing with Skia/Metal is noticeably slower than
    with Skia/Raster. So lower the flush timer priority to
    TaskPriority::POST_PAINT so that the flush timer runs less
    frequently but each pass copies a more up-to-date offscreen
    surface.
    
    Unfortunately, lowering the priority causes tdf#163734 to reoccur.
    When a dockable window is dragged by its titlebar, a rectangle
    may be drawn in its parent window. However, the Skia flush
    timer doesn't run until after the mouse button has been
    released (probably due to lowering of the Skia flush timer's
    priority to fix tdf#163734). So run the parent frame's Skia
    flush timer immediately to display the rectangle.
    
    Change-Id: I289eab85a087cb76a751dc6b777342b8dee49e1c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177190
    Reviewed-by: Patrick Luby <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 16b629cf08f93e27e52816c761eeb3b5c128647b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177210
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm
index 8948b77985df..8ff27b9e63cf 100644
--- a/vcl/osx/salframeview.mm
+++ b/vcl/osx/salframeview.mm
@@ -439,6 +439,25 @@ static bool isMouseScrollWheelEvent( NSEvent *pEvent )
     {
         mpFrame->UpdateFrameGeometry();
         mpFrame->CallCallback( SalEvent::Move, nullptr );
+
+#if HAVE_FEATURE_SKIA
+        // tdf#163734 Flush parent frame when Skia is enabled
+        // When a dockable window is dragged by its titlebar, a rectangle
+        // may be drawn in its parent window. However, the Skia flush
+        // timer doesn't run until after the mouse button has been
+        // released (probably due to lowering of the Skia flush timer's
+        // priority to fix tdf#163734). So run the parent frame's Skia
+        // flush timer immediately to display the rectangle.
+        if ( SkiaHelper::isVCLSkiaEnabled() &&
+             mpFrame->mbShown && mpFrame->mpParent &&
+             AquaSalFrame::isAlive( mpFrame->mpParent ) &&
+             mpFrame->mpParent->mbShown )
+        {
+            AquaSalGraphics* pGraphics = mpFrame->mpParent->mpGraphics;
+            if ( pGraphics )
+                pGraphics->Flush();
+        }
+#endif
     }
 }
 
diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index 791ebe46a923..4da83890a31d 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -269,16 +269,18 @@ public:
     {
         mpGraphics->performFlush();
         Stop();
-        // tdf#163945 Lower priority of Skia flush timer
-        // Commit f4c2c7c79cfe4464ac596afda37b8904d06969db fixed tdf#157312
-        // by lowering the timer priority to TaskPriority::POST_PAINT. But
-        // it caused tdf#163734 so it was reverted to TaskPriority::HIGHEST
-        // in commit 5a38e4f9798c5ff247aa57581adf2671485627fd.
-        // While reverting to TaskPriority::HIGHEST did not cause tdf#157312
-        // to reoccur, it did cause tdf#163945 so set the timer priority to
-        // TaskPriority::HIGH_IDLE. This priority appears to be low enough to
-        // fix tdf#16394 without causing tdf#163734 to reoccur.
-        SetPriority(TaskPriority::HIGH_IDLE);
+#ifdef MACOSX
+        // tdf#157312 and tdf#163945 Lower Skia flush timer priority on macOS
+        // On macOS, flushing with Skia/Metal is noticeably slower than
+        // with Skia/Raster. So lower the flush timer priority to
+        // TaskPriority::POST_PAINT so that the flush timer runs less
+        // frequently but each pass copies a more up-to-date offscreen
+        // surface.
+        // TODO: fix tdf#163734 on macOS
+        SetPriority(TaskPriority::POST_PAINT);
+#else
+        SetPriority(TaskPriority::HIGHEST);
+#endif
     }
 };
 
commit 23b2e9757362174aa93c14ca798f0404076e0379
Author:     Xisco Fauli <[email protected]>
AuthorDate: Tue Nov 26 19:24:12 2024 +0100
Commit:     Adolfo Jayme Barrientos <[email protected]>
CommitDate: Wed Nov 27 22:36:29 2024 +0100

    NotoSerif: upgrade to v2.015
    
    Downloaded from 
https://github.com/notofonts/latin-greek-cyrillic/releases/download/NotoSerif-v2.015/NotoSerif-v2.015.zip
    
    Change-Id: I2cf07988ddb411db69457998e8171b19c46ea356
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177362
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit 77bcd4dbbb0e18bc15ebb42afd45bc382aa4e925)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177367
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/download.lst b/download.lst
index 910433c634aa..e5da31a3a7d0 100644
--- a/download.lst
+++ b/download.lst
@@ -172,8 +172,8 @@ FONT_NOTO_SANS_TARBALL := NotoSans-v2.015.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-FONT_NOTO_SERIF_SHA256SUM := 
6abce0a80df4ef6d5a944d60c81099364481d6a7015b0721d87bc4c16acc1fd3
-FONT_NOTO_SERIF_TARBALL := NotoSerif-v2.014.zip
+FONT_NOTO_SERIF_SHA256SUM := 
0e9a43c8a4b94ac76f55069ed1d7385bbcaf6b99527a94deb5619e032b7e76c1
+FONT_NOTO_SERIF_TARBALL := NotoSerif-v2.015.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
commit eaa37729fcf720b299f9e3bfc7f27a825b71b7ee
Author:     Xisco Fauli <[email protected]>
AuthorDate: Tue Nov 26 19:22:14 2024 +0100
Commit:     Adolfo Jayme Barrientos <[email protected]>
CommitDate: Wed Nov 27 22:35:54 2024 +0100

    NotoSans: upgrade to v2.015
    
    Downloaded from 
https://github.com/notofonts/latin-greek-cyrillic/releases/download/NotoSans-v2.015/NotoSans-v2.015.zip
    
    Change-Id: I924800998d31235eb7d2fcea83adfc64ff748ea2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177361
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit aa6b56cdda0883ff86151f84c0aafe1e2bec7b53)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177373
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/download.lst b/download.lst
index 933c58d4af6a..910433c634aa 100644
--- a/download.lst
+++ b/download.lst
@@ -167,8 +167,8 @@ FONT_NOTO_KUFI_ARABIC_TARBALL := NotoKufiArabic-v2.109.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-FONT_NOTO_SANS_SHA256SUM := 
1dffbaf31a0a699ee2c57dfb60c1a628010425301dd076cfb485adbe017352c1
-FONT_NOTO_SANS_TARBALL := NotoSans-v2.014.zip
+FONT_NOTO_SANS_SHA256SUM := 
0c34df072a3fa7efbb7cbf34950e1f971a4447cffe365d3a359e2d4089b958f5
+FONT_NOTO_SANS_TARBALL := NotoSans-v2.015.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
commit 98f56aee675ef339acddfe44b195b3ca9d53ec0a
Author:     Xisco Fauli <[email protected]>
AuthorDate: Tue Nov 26 13:30:36 2024 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Wed Nov 27 15:53:26 2024 +0100

    libqxp: fix copy&paste path
    
    Since
    commit 05aedcba6672979d317b540bbfa74f5c9b409402
    Author: Stephan Bergmann <[email protected]>
    Date:   Thu Jan 21 23:19:20 2021 +0100
    
        Fix use of -fvisibility=hidden with Clang in external/libcdr, 
external/libqxp
    
    Change-Id: Idb97eaea30f5a2b15379b18981455532de0308b6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177330
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit 174d1d3f3b57547c86ff858d1c2ed931eca3bb37)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177354

diff --git a/external/libqxp/UnpackedTarball_libqxp.mk 
b/external/libqxp/UnpackedTarball_libqxp.mk
index 9f111bcb2b81..54d3e36addd4 100644
--- a/external/libqxp/UnpackedTarball_libqxp.mk
+++ b/external/libqxp/UnpackedTarball_libqxp.mk
@@ -17,7 +17,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libqxp,0))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libqxp, \
        external/libqxp/android-workaround.patch.1 \
-       external/libcdr/ax_gcc_func_attribute.m4.patch \
+       external/libqxp/ax_gcc_func_attribute.m4.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
commit 34d9b2211a0427ec6d7624759b26e1d32f4d94ff
Author:     Mike Kaganski <[email protected]>
AuthorDate: Wed Nov 27 14:48:19 2024 +0500
Commit:     Xisco Fauli <[email protected]>
CommitDate: Wed Nov 27 15:09:38 2024 +0100

    D2DWriteTextOutRenderer: use grayscale AA for file output
    
    It makes no sense to use ClearType for file output - because it, by
    definition, depends on the device and scale; and the file output is
    for display on unknown device and scale.
    
    Change-Id: Icf032b1fecc1a4a7f0a4be53797728c9f9505fdb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177402
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>
    (cherry picked from commit 785a56b6be7f3128c2e7a131381e02525a50eb6b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177416
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sd/qa/unit/PNGExportTests.cxx b/sd/qa/unit/PNGExportTests.cxx
index a4f56d4daddc..26729feb1ae2 100644
--- a/sd/qa/unit/PNGExportTests.cxx
+++ b/sd/qa/unit/PNGExportTests.cxx
@@ -1040,8 +1040,8 @@ CPPUNIT_TEST_FIXTURE(SdPNGExportTest, testTdf162259)
         }
     }
 
-    CPPUNIT_ASSERT_GREATER(350, topNonWhites); // 399 in my testing
-    CPPUNIT_ASSERT_GREATER(350, bottomNonWhites); // 362 in my testing
+    CPPUNIT_ASSERT_GREATER(310, topNonWhites); // Win: 399 with Skia, 325 with 
DWriteTextRenderer
+    CPPUNIT_ASSERT_GREATER(350, bottomNonWhites); // Win: 362 with Skia, 371 
with DWriteTextRenderer
 }
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/vcl/win/gdi/DWriteTextRenderer.cxx 
b/vcl/win/gdi/DWriteTextRenderer.cxx
index 8a3ade545e36..06f927b725a6 100644
--- a/vcl/win/gdi/DWriteTextRenderer.cxx
+++ b/vcl/win/gdi/DWriteTextRenderer.cxx
@@ -101,7 +101,8 @@ D2DWriteTextOutRenderer::MODE 
D2DWriteTextOutRenderer::GetMode(bool bRenderingMo
 {
     D2D1_TEXT_ANTIALIAS_MODE eTextMode;
     if 
(!Application::GetSettings().GetStyleSettings().GetUseFontAAFromSystem())
-        eTextMode = bAntiAlias ? lclGetSystemTextAntiAliasType() : 
D2D1_TEXT_ANTIALIAS_MODE_ALIASED;
+        // Currently only for file output - see GraphicExporter::filter
+        eTextMode = bAntiAlias ? D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE : 
D2D1_TEXT_ANTIALIAS_MODE_ALIASED;
     else if (BOOL bSmoothing; SystemParametersInfoW(SPI_GETFONTSMOOTHING, 0, 
&bSmoothing, 0))
         eTextMode = bSmoothing ? lclGetSystemTextAntiAliasType() : 
D2D1_TEXT_ANTIALIAS_MODE_ALIASED;
     else
commit 788fadea59b42ca429cb1c26e1b77a89ac1abb9a
Author:     Xisco Fauli <[email protected]>
AuthorDate: Mon Nov 4 23:02:22 2024 +0100
Commit:     Michael Stahl <[email protected]>
CommitDate: Wed Nov 27 11:17:43 2024 +0100

    libetonyek: upgrade to 0.1.12
    
    Generated with:
    ./autogen.sh
    ./configure
    make dist-xz
    
    Change-Id: I74ac661c5f8db9abf7644212d98b29c3ec5b422f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176036
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit 0a1025adeb3608b06df751225a97d84e5be87d48)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177342
    Reviewed-by: Michael Stahl <[email protected]>

diff --git a/download.lst b/download.lst
index d2de689e6c7b..933c58d4af6a 100644
--- a/download.lst
+++ b/download.lst
@@ -105,8 +105,8 @@ EPUBGEN_TARBALL := libepubgen-0.1.1.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-ETONYEK_SHA256SUM := 
b430435a6e8487888b761dc848b7981626eb814884963ffe25eb26a139301e9a
-ETONYEK_VERSION_MICRO := 10
+ETONYEK_SHA256SUM := 
b9fa82fbeb8cb7a701101060e4f3e1e4ef7c38f574b2859d3ecbe43604c21f83
+ETONYEK_VERSION_MICRO := 12
 ETONYEK_TARBALL := libetonyek-0.1.$(ETONYEK_VERSION_MICRO).tar.xz
 # three static lines
 # so that git cherry-pick
diff --git a/external/libetonyek/0001-allow-0-size-message.patch.1 
b/external/libetonyek/0001-allow-0-size-message.patch.1
deleted file mode 100644
index 62e584b815a0..000000000000
--- a/external/libetonyek/0001-allow-0-size-message.patch.1
+++ /dev/null
@@ -1,30 +0,0 @@
-From 54762245feee35ce6885f7443da8f8443fccd5b5 Mon Sep 17 00:00:00 2001
-From: David Tardon <[email protected]>
-Date: Wed, 26 May 2021 20:39:41 +0200
-Subject: [PATCH] allow 0-size message
-
-It likely means the input is broken, but there is no need to reject it.
-Let's just produce a dummy, empty message.
-
-Change-Id: I03a1e9827f21f6a0ce69d7e16dfcf2e9a0f2d44f
----
- src/lib/IWAMessage.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/lib/IWAMessage.cpp b/src/lib/IWAMessage.cpp
-index c01b1b6..9456444 100644
---- a/src/lib/IWAMessage.cpp
-+++ b/src/lib/IWAMessage.cpp
-@@ -42,7 +42,8 @@ IWAMessage::IWAMessage(const RVNGInputStreamPtr_t &input, 
unsigned long length)
-   : m_input(input)
-   , m_fields()
- {
--  assert(length > 0);
-+  if (length == 0)
-+    return;
- 
-   parse(length);
- }
--- 
-2.31.1
-
diff --git a/external/libetonyek/0001-fix-build-with-MSVC.patch.1 
b/external/libetonyek/0001-fix-build-with-MSVC.patch.1
deleted file mode 100644
index 2a72844dc79a..000000000000
--- a/external/libetonyek/0001-fix-build-with-MSVC.patch.1
+++ /dev/null
@@ -1,28 +0,0 @@
-From 1aa22c746b41a688296f4daf4fc35710d2045a33 Mon Sep 17 00:00:00 2001
-From: David Tardon <[email protected]>
-Date: Wed, 19 May 2021 19:43:43 +0200
-Subject: [PATCH] fix build with MSVC
-
-error C2664: 'libetonyek::IWORKFormula::IWORKFormula(const 
boost::optional<unsigned int> &)': cannot convert argument 1 from 'int' to 
'const boost::optional<unsigned int> &'
-
-Change-Id: Iaa3de2d0ef8f960495e5d5afebb75c5063955177
----
- src/lib/IWAParser.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/lib/IWAParser.cpp b/src/lib/IWAParser.cpp
-index 7fd95c3..a2bd292 100644
---- a/src/lib/IWAParser.cpp
-+++ b/src/lib/IWAParser.cpp
-@@ -3403,7 +3403,7 @@ bool IWAParser::parseFormula(const IWAMessage &msg, 
IWORKFormulaPtr_t &formula)
-   }
-   else
-   {
--    formula.reset(new IWORKFormula(0));
-+    formula.reset(new IWORKFormula(boost::make_optional(0u)));
-     formula->parse(stack[0]);
-   }
-   return ok;
--- 
-2.31.1
-
diff --git a/external/libetonyek/0002-fix-build-with-MSVC.patch.1 
b/external/libetonyek/0002-fix-build-with-MSVC.patch.1
deleted file mode 100644
index 0eadb0912f6a..000000000000
--- a/external/libetonyek/0002-fix-build-with-MSVC.patch.1
+++ /dev/null
@@ -1,55 +0,0 @@
-From 7b69af66227309e9c258beca3bc3934be454a221 Mon Sep 17 00:00:00 2001
-From: David Tardon <[email protected]>
-Date: Wed, 19 May 2021 21:11:40 +0200
-Subject: [PATCH] fix build with MSVC
-
-C:/PROGRA~2/MIB055~1/2019/COMMUN~1/VC/Tools/MSVC/1428~1.299/Include\xutility(138):
 error C2668: 'libetonyek::IWORKStyle::IWORKStyle': ambiguous call to 
overloaded function
-C:-C:-C:/PROGRA~2/MIB055~1/2019/COMMUN~1/VC/Tools/MSVC/1428~1.299/Include\xutility(137):
 note: while trying to match the argument list '(libetonyek::IWORKPropertyMap, 
const boost::none_t, _Ty)'
-        with
-        [
-            _Ty=nullptr
-        ]
-C:/PROGRA~2/MIB055~1/2019/COMMUN~1/VC/Tools/MSVC/1428~1.299/Include\memory(2186):
 note: see reference to function template instantiation 'void 
std::_Construct_in_place<_Ty,libetonyek::IWORKPropertyMap&,const 
boost::none_t&,nullptr>(_Ty &,libetonyek::IWORKPropertyMap &,const 
boost::none_t &,nullptr &&) noexcept(false)' being compiled
-        with
-        [
-            _Ty=libetonyek::IWORKStyle
-        ]
-C:/PROGRA~2/MIB055~1/2019/COMMUN~1/VC/Tools/MSVC/1428~1.299/Include\memory(2906):
 note: see reference to function template instantiation 
'std::_Ref_count_obj2<_Ty>::_Ref_count_obj2<libetonyek::IWORKPropertyMap&,const 
boost::none_t&,nullptr>(libetonyek::IWORKPropertyMap &,const boost::none_t 
&,nullptr &&)' being compiled
-        with
-        [
-            _Ty=libetonyek::IWORKStyle
-        ]
-C:/PROGRA~2/MIB055~1/2019/COMMUN~1/VC/Tools/MSVC/1428~1.299/Include\memory(2907):
 note: see reference to function template instantiation 
'std::_Ref_count_obj2<_Ty>::_Ref_count_obj2<libetonyek::IWORKPropertyMap&,const 
boost::none_t&,nullptr>(libetonyek::IWORKPropertyMap &,const boost::none_t 
&,nullptr &&)' being compiled
-        with
-        [
-            _Ty=libetonyek::IWORKStyle
-        ]
-C:/cygwin/home/tdf/lode/jenkins/workspace/gerrit_windows/workdir/UnpackedTarball/libetonyek/src/lib/IWAParser.cpp(2358):
 note: see reference to function template instantiation 
'std::shared_ptr<libetonyek::IWORKStyle> 
std::make_shared<libetonyek::IWORKStyle,libetonyek::IWORKPropertyMap&,const 
boost::none_t&,nullptr>(libetonyek::IWORKPropertyMap &,const boost::none_t 
&,nullptr &&)' being compiled
-
-Change-Id: Idf871474b2a20f252073846388d018cccc15bc11
----
- src/lib/IWAParser.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/lib/IWAParser.cpp b/src/lib/IWAParser.cpp
-index a2bd292..1fdeae7 100644
---- a/src/lib/IWAParser.cpp
-+++ b/src/lib/IWAParser.cpp
-@@ -2355,10 +2355,10 @@ void IWAParser::parseAuthorInComment(unsigned id)
-     IWORKPropertyMap props;
-     // normally yellow, but blue may be better in LO
-     props.put<property::FontColor>(IWORKColor(0,0,1,1));
--    spans[0]=std::make_shared<IWORKStyle>(props, boost::none, nullptr);
-+    spans[0]=std::make_shared<IWORKStyle>(props, boost::none, 
IWORKStylePtr_t());
-     // reset color to default, if not, comment will be blue colored
-     props.put<property::FontColor>(IWORKColor(0,0,0,1));
--    spans[unsigned(len)]=std::make_shared<IWORKStyle>(props, boost::none, 
nullptr);
-+    spans[unsigned(len)]=std::make_shared<IWORKStyle>(props, boost::none, 
IWORKStylePtr_t());
-     text.setSpans(spans);
-     text.parse(*m_currentText);
-   }
--- 
-2.31.1
-
diff --git a/external/libetonyek/UnpackedTarball_libetonyek.mk 
b/external/libetonyek/UnpackedTarball_libetonyek.mk
index 788cf7607710..e13737cbe6a8 100644
--- a/external/libetonyek/UnpackedTarball_libetonyek.mk
+++ b/external/libetonyek/UnpackedTarball_libetonyek.mk
@@ -19,12 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,libetonyek,\
        external/libetonyek/win_build.patch.1 \
        external/libetonyek/ubsan.patch \
        external/libetonyek/rpath.patch \
-       external/libetonyek/warnings.patch \
-       external/libetonyek/0001-fix-build-with-MSVC.patch.1 \
-       external/libetonyek/0002-fix-build-with-MSVC.patch.1 \
-       external/libetonyek/0001-allow-0-size-message.patch.1 \
        external/libetonyek/enumarith.patch \
-       external/libetonyek/include.patch \
 ))
 
 ifneq ($(OS),MACOSX)
diff --git a/external/libetonyek/include.patch 
b/external/libetonyek/include.patch
deleted file mode 100644
index 4052d8093e0f..000000000000
--- a/external/libetonyek/include.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/lib/IWORKShape.cpp
-+++ src/lib/IWORKShape.cpp
-@@ -12,6 +12,7 @@
- #include <algorithm>
- #include <cmath>
- #include <deque>
-+#include <iterator>
- 
- #include <glm/glm.hpp>
- #include <memory>
diff --git a/external/libetonyek/warnings.patch 
b/external/libetonyek/warnings.patch
deleted file mode 100644
index 841d70cb68e8..000000000000
--- a/external/libetonyek/warnings.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/lib/IWORKXMLContext.cpp
-+++ src/lib/IWORKXMLContext.cpp
-@@ -18,7 +18,7 @@
- {
- }
- 
--void IWORKXMLContext::CDATA(const char */*value*/)
-+void IWORKXMLContext::CDATA(const char * /*value*/)
- {
-   ETONYEK_DEBUG_MSG(("IWORKXMLContext::cData: find unexpected CDATA block
"));
- }

Reply via email to