Makefile.fetch                                                           |   
17 
 Repository.mk                                                            |   
15 
 RepositoryExternal.mk                                                    |    
2 
 configure.ac                                                             |   
20 
 connectivity/source/drivers/odbc/OPreparedStatement.cxx                  |    
2 
 connectivity/source/drivers/odbc/OTools.cxx                              |    
4 
 download.lst                                                             |   
68 
 external/Module_external.mk                                              |    
1 
 external/iODBC/README                                                    |    
1 
 external/iODBC/inc/odbc/iodbcunix.h                                      |  
160 
 external/iODBC/inc/odbc/sql.h                                            | 
1187 ++++
 external/iODBC/inc/odbc/sqlext.h                                         | 
2573 ++++++++++
 external/iODBC/inc/odbc/sqltypes.h                                       |  
429 +
 external/iODBC/inc/odbc/sqlucode.h                                       |  
818 +++
 external/more_fonts/ExternalPackage_karla.mk                             |   
19 
 external/more_fonts/ExternalPackage_opendyslexic.mk                      |   
19 
 external/more_fonts/ExternalPackage_opensans.mk                          |   
51 
 external/more_fonts/ExternalPackage_sourcesans.mk                        |   
27 
 external/more_fonts/Module_more_fonts.mk                                 |    
8 
 external/more_fonts/UnpackedTarball_karla.mk                             |   
14 
 external/more_fonts/UnpackedTarball_opendyslexic.mk                      |   
14 
 external/more_fonts/UnpackedTarball_opensans.mk                          |   
14 
 external/more_fonts/UnpackedTarball_sourcesans.mk                        |   
14 
 external/noto_font/ExternalPackage_noto.mk                               |  
134 
 external/noto_font/ExternalPackage_notosansjp.mk                         |   
17 
 external/noto_font/ExternalPackage_notosanskr.mk                         |   
17 
 external/noto_font/ExternalPackage_notosanssc.mk                         |   
17 
 external/noto_font/ExternalPackage_notosanstc.mk                         |   
17 
 external/noto_font/ExternalPackage_notoserifjp.mk                        |   
17 
 external/noto_font/ExternalPackage_notoserifkr.mk                        |   
17 
 external/noto_font/ExternalPackage_notoserifsc.mk                        |   
17 
 external/noto_font/ExternalPackage_notoseriftc.mk                        |   
17 
 external/noto_font/Makefile                                              |    
7 
 external/noto_font/Module_noto_font.mk                                   |   
33 
 external/noto_font/README                                                |    
1 
 external/noto_font/UnpackedTarball_noto.mk                               |   
46 
 external/noto_font/UnpackedTarball_notosansjp.mk                         |   
14 
 external/noto_font/UnpackedTarball_notosanskr.mk                         |   
14 
 external/noto_font/UnpackedTarball_notosanssc.mk                         |   
14 
 external/noto_font/UnpackedTarball_notosanstc.mk                         |   
14 
 external/noto_font/UnpackedTarball_notoserifjp.mk                        |   
14 
 external/noto_font/UnpackedTarball_notoserifkr.mk                        |   
14 
 external/noto_font/UnpackedTarball_notoserifsc.mk                        |   
14 
 external/noto_font/UnpackedTarball_notoseriftc.mk                        |   
14 
 external/unixODBC/README                                                 |    
1 
 external/unixODBC/inc/odbc/sql.h                                         |  
824 ---
 external/unixODBC/inc/odbc/sqlext.h                                      | 
2122 --------
 external/unixODBC/inc/odbc/sqltypes.h                                    |  
470 -
 external/unixODBC/inc/odbc/sqlucode.h                                    |  
789 ---
 instsetoo_native/inc_ooohelppack/windows/msi_templates/Property.idt      |    
8 
 instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt       |    
8 
 instsetoo_native/inc_sdkoo/windows/msi_templates/Property.idt            |    
8 
 officecfg/registry/data/org/openoffice/Office/Accelerators.xcu           |    
6 
 officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu |    
2 
 officecfg/registry/schema/org/openoffice/Office/Common.xcs               |    
4 
 officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs           |    
1 
 readlicense_oo/license/license.xml                                       |   
64 
 sc/source/filter/oox/workbookhelper.cxx                                  |    
2 
 solenv/clang-format/excludelist                                          |    
8 
 solenv/flatpak-external-tarballs.json.in                                 |   
13 
 60 files changed, 6041 insertions(+), 4235 deletions(-)

New commits:
commit 7ec7c09a57541a4f3e3e659c73b85061568b0359
Author:     Andras Timar <[email protected]>
AuthorDate: Wed Jul 3 11:09:34 2024 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 3 21:57:13 2026 +0100

    [cp] Revert "tdf#136604: Remove Source Sans Pro fonts"
    
    This reverts commit 5d42f4403d4e51f33ad8f2ce9efbed542978b521.
    
    Change-Id: I7699cf6d654ad61825123190ebb670976d9869f5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169927
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>

diff --git a/Makefile.fetch b/Makefile.fetch
index 71589262acd8..a2a73635d832 100644
--- a/Makefile.fetch
+++ b/Makefile.fetch
@@ -187,6 +187,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk 
$(SRCDIR)/download.lst $(S
                $(call 
fetch_Optional,MORE_FONTS,FONT_LIBERATION_NARROW_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_LIBERATION_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_LINLIBERTINEG_TARBALL) \
+               $(call fetch_Optional,MORE_FONTS,FONT_SOURCESANS_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_NOTO_KUFI_ARABIC_TARBALL) 
\
                $(call fetch_Optional,MORE_FONTS,FONT_NOTO_SANS_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_NOTO_SERIF_TARBALL) \
diff --git a/Repository.mk b/Repository.mk
index 0f923dc063b9..e6102358b681 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -1079,6 +1079,7 @@ $(eval $(call 
gb_Helper_register_packages_for_install,ooo_fonts,\
                fonts_opendyslexic \
                fonts_opensans \
                fonts_reem \
+               fonts_sourcesans \
                fonts_scheherazade \
                $(if $(WITH_DOCREPAIR_FONTS),fonts_agdasima,) \
                $(if $(WITH_DOCREPAIR_FONTS),fonts_bacasime_antique,) \
diff --git a/download.lst b/download.lst
index a1401c81ef49..c0f7e8167527 100644
--- a/download.lst
+++ b/download.lst
@@ -170,6 +170,11 @@ FONT_LINLIBERTINEG_TARBALL := 
e7a384790b13c29113e22e596ade9687-LinLibertineG-201
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
+FONT_SOURCESANS_SHA256SUM := 
e7bc9a1fec787a529e49f5a26b93dcdcf41506449dfc70f92cdef6d17eb6fb61
+FONT_SOURCESANS_TARBALL := 
edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
 FONT_NOTO_KUFI_ARABIC_SHA256SUM := 
34390882c196f032811f2a3db8982c1e839f69aae3e4c2c1fdd63203150690df
 FONT_NOTO_KUFI_ARABIC_TARBALL := NotoKufiArabic-v2.110.zip
 # three static lines
diff --git a/external/more_fonts/ExternalPackage_sourcesans.mk 
b/external/more_fonts/ExternalPackage_sourcesans.mk
new file mode 100644
index 000000000000..cd7ac29e92af
--- /dev/null
+++ b/external/more_fonts/ExternalPackage_sourcesans.mk
@@ -0,0 +1,27 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_sourcesans,font_sourcesans))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_sourcesans,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       SourceSansPro-BlackIt.ttf \
+       SourceSansPro-Black.ttf \
+       SourceSansPro-BoldIt.ttf \
+       SourceSansPro-Bold.ttf \
+       SourceSansPro-ExtraLightIt.ttf \
+       SourceSansPro-ExtraLight.ttf \
+       SourceSansPro-It.ttf \
+       SourceSansPro-LightIt.ttf \
+       SourceSansPro-Light.ttf \
+       SourceSansPro-Regular.ttf \
+       SourceSansPro-SemiboldIt.ttf \
+       SourceSansPro-Semibold.ttf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/more_fonts/Module_more_fonts.mk 
b/external/more_fonts/Module_more_fonts.mk
index e6c0fe1255f6..4c19bdc5289b 100644
--- a/external/more_fonts/Module_more_fonts.mk
+++ b/external/more_fonts/Module_more_fonts.mk
@@ -22,6 +22,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\
        ExternalPackage_liberation_narrow \
        ExternalPackage_libertineg \
        ExternalPackage_libre_hebrew \
+       ExternalPackage_sourcesans \
        ExternalPackage_noto_kufi_arabic \
        ExternalPackage_noto_naskh_arabic \
        ExternalPackage_noto_sans \
@@ -59,6 +60,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\
        UnpackedTarball_liberation_narrow \
        UnpackedTarball_libertineg \
        UnpackedTarball_libre_hebrew \
+       UnpackedTarball_sourcesans \
        UnpackedTarball_noto_kufi_arabic \
        UnpackedTarball_noto_naskh_arabic \
        UnpackedTarball_noto_sans \
diff --git a/external/more_fonts/UnpackedTarball_sourcesans.mk 
b/external/more_fonts/UnpackedTarball_sourcesans.mk
new file mode 100644
index 000000000000..65ff325535a1
--- /dev/null
+++ b/external/more_fonts/UnpackedTarball_sourcesans.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_sourcesans))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_sourcesans,$(FONT_SOURCESANS_TARBALL)))
+
+# vim: set noet sw=4 ts=4:
diff --git a/readlicense_oo/license/license.xml 
b/readlicense_oo/license/license.xml
index 2cc2c22aa9cc..26f15ecce36c 100644
--- a/readlicense_oo/license/license.xml
+++ b/readlicense_oo/license/license.xml
@@ -2871,6 +2871,15 @@
         "Scheherazade" and "SIL". This license is copied below, and is also 
available with a FAQ at:
         <a href="http://scripts.sil.org/OFL";>http://scripts.sil.org/OFL</a></p>
         <p><a href="#a__SIL_Open_Font_License__version_1_1">Jump to SIL Open 
Font License, Version 1.1</a></p>
+        <h2>Source Sans Pro</h2>
+        <p>The following software may be included in this product: Source Sans 
Pro fonts. Use of any of this software
+        is governed by the terms of the license below:</p>
+        <p>Copyright 2010, 2012 Adobe Systems Incorporated (<a 
href="http://www.adobe.com/";>http://www.adobe.com/</a>),
+        with Reserved Font Name 'Source'. All Rights Reserved. Source is a 
trademark of Adobe Systems Incorporated in
+        the United States and/or other countries.</p>
+        <p>This Font Software is licensed under the SIL Open Font License, 
Version 1.1. This license is copied below,
+        and is also available with a FAQ at: <a 
href="http://scripts.sil.org/OFL";>http://scripts.sil.org/OFL</a></p>
+        <p><a href="#a__SIL_Open_Font_License__version_1_1">Jump to SIL Open 
Font License, Version 1.1</a></p>
     </div>
     <div class="DICTIONARIES">
         <hr />
diff --git a/solenv/flatpak-external-tarballs.json.in 
b/solenv/flatpak-external-tarballs.json.in
index db8792a2ac2a..ca85b9e29c9e 100644
--- a/solenv/flatpak-external-tarballs.json.in
+++ b/solenv/flatpak-external-tarballs.json.in
@@ -76,6 +76,13 @@
         "dest": "external/tarballs",
         "dest-filename": "@FONT_LINLIBERTINEG_TARBALL@"
     },
+    {
+        "url": "https://dev-www.libreoffice.org/src/@FONT_SOURCESANS_TARBALL@";,
+        "sha256": "@FONT_SOURCESANS_SHA256SUM@",
+        "type": "file",
+        "dest": "external/tarballs",
+        "dest-filename": "@FONT_SOURCESANS_TARBALL@"
+    },
     {
         "url": "https://dev-www.libreoffice.org/src/@BOOST_TARBALL@";,
         "sha256": "@BOOST_SHA256SUM@",
commit 2a00d21210dc94c946063356f42c9b0b97101230
Author:     Andras Timar <[email protected]>
AuthorDate: Mon Mar 6 23:58:26 2023 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 3 21:53:16 2026 +0100

    [cp] Bundle Open Sans font
    
    Change-Id: I28b5514bc2f23a2aebd901af564fcb85aa7449a8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148370
    Tested-by: Andras Timar <[email protected]>
    Reviewed-by: Andras Timar <[email protected]>

diff --git a/Makefile.fetch b/Makefile.fetch
index 9b430902a619..71589262acd8 100644
--- a/Makefile.fetch
+++ b/Makefile.fetch
@@ -207,6 +207,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk 
$(SRCDIR)/download.lst $(S
                $(call fetch_Optional,MORE_FONTS,FONT_AMIRI_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_REEM_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_SCHEHERAZADE_TARBALL) \
+               $(call fetch_Optional,MORE_FONTS,FONT_OPEN_SANS_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_AGDASIMA_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_BACASIME_ANTIQUE_TARBALL) 
\
                $(call fetch_Optional,MORE_FONTS,FONT_BELANOSIMA_TARBALL) \
diff --git a/Repository.mk b/Repository.mk
index e11b82499ff0..0f923dc063b9 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -1077,6 +1077,7 @@ $(eval $(call 
gb_Helper_register_packages_for_install,ooo_fonts,\
                fonts_noto_serif_hebrew \
                fonts_noto_serif_lao \
                fonts_opendyslexic \
+               fonts_opensans \
                fonts_reem \
                fonts_scheherazade \
                $(if $(WITH_DOCREPAIR_FONTS),fonts_agdasima,) \
diff --git a/download.lst b/download.lst
index 8ef1e8752c0f..a1401c81ef49 100644
--- a/download.lst
+++ b/download.lst
@@ -320,6 +320,11 @@ FONT_OPENDYSLEXIC_TARBALL := 
opendyslexic-0.910.12-rc2-2019.10.17.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
+FONT_OPEN_SANS_TARBALL := Open_Sans.zip
+FONT_OPEN_SANS_SHA256SUM := 
85d79a39d26acb207ba13fb1007189d55355a0faf2cf7ccfe6a2edf2abac06d9
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
 FONT_AGDASIMA_TARBALL := Agdasima-2.002.zip
 FONT_AGDASIMA_SHA256SUM := 
b4c17499f8bc183320ffdcf1f8491c778dd68a237adc056dc08e1fcb2da488f3
 # three static lines
diff --git a/external/more_fonts/ExternalPackage_opensans.mk 
b/external/more_fonts/ExternalPackage_opensans.mk
new file mode 100644
index 000000000000..8a6b8d775eb7
--- /dev/null
+++ b/external/more_fonts/ExternalPackage_opensans.mk
@@ -0,0 +1,51 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_opensans,font_opensans))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_opensans,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       static/OpenSans_Condensed/OpenSans_Condensed-Bold.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-BoldItalic.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-ExtraBold.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-ExtraBoldItalic.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-Italic.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-Light.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-LightItalic.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-Medium.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-MediumItalic.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-Regular.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-SemiBold.ttf \
+       static/OpenSans_Condensed/OpenSans_Condensed-SemiBoldItalic.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Bold.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-BoldItalic.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-ExtraBold.ttf \
+       
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-ExtraBoldItalic.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Italic.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Light.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-LightItalic.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Medium.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-MediumItalic.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Regular.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-SemiBold.ttf \
+       static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-SemiBoldItalic.ttf 
\
+       static/OpenSans/OpenSans-Bold.ttf \
+       static/OpenSans/OpenSans-BoldItalic.ttf \
+       static/OpenSans/OpenSans-ExtraBold.ttf \
+       static/OpenSans/OpenSans-ExtraBoldItalic.ttf \
+       static/OpenSans/OpenSans-Italic.ttf \
+       static/OpenSans/OpenSans-Light.ttf \
+       static/OpenSans/OpenSans-LightItalic.ttf \
+       static/OpenSans/OpenSans-Medium.ttf \
+       static/OpenSans/OpenSans-MediumItalic.ttf \
+       static/OpenSans/OpenSans-Regular.ttf \
+       static/OpenSans/OpenSans-SemiBold.ttf \
+       static/OpenSans/OpenSans-SemiBoldItalic.ttf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/more_fonts/Module_more_fonts.mk 
b/external/more_fonts/Module_more_fonts.mk
index f2f61776dcdf..e6c0fe1255f6 100644
--- a/external/more_fonts/Module_more_fonts.mk
+++ b/external/more_fonts/Module_more_fonts.mk
@@ -39,6 +39,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\
        ExternalPackage_reem \
        ExternalPackage_scheherazade \
        ExternalPackage_opendyslexic \
+       ExternalPackage_opensans \
        $(if $(WITH_DOCREPAIR_FONTS),ExternalPackage_agdasima,) \
        $(if $(WITH_DOCREPAIR_FONTS),ExternalPackage_bacasime_antique,) \
        $(if $(WITH_DOCREPAIR_FONTS),ExternalPackage_belanosima,) \
@@ -75,6 +76,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\
        UnpackedTarball_reem \
        UnpackedTarball_scheherazade \
        UnpackedTarball_opendyslexic \
+       UnpackedTarball_opensans \
        $(if $(WITH_DOCREPAIR_FONTS),UnpackedTarball_agdasima,) \
        $(if $(WITH_DOCREPAIR_FONTS),UnpackedTarball_bacasime_antique,) \
        $(if $(WITH_DOCREPAIR_FONTS),UnpackedTarball_belanosima,) \
diff --git a/external/more_fonts/UnpackedTarball_opensans.mk 
b/external/more_fonts/UnpackedTarball_opensans.mk
new file mode 100644
index 000000000000..d49884c3b380
--- /dev/null
+++ b/external/more_fonts/UnpackedTarball_opensans.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_opensans))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_opensans,$(FONT_OPEN_SANS_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/readlicense_oo/license/license.xml 
b/readlicense_oo/license/license.xml
index 62635d91fb88..2cc2c22aa9cc 100644
--- a/readlicense_oo/license/license.xml
+++ b/readlicense_oo/license/license.xml
@@ -2851,6 +2851,10 @@
         <p>Copyright (c) 12/2012 - 2019</p>
         <p>This Font Software is licensed under the SIL Open Font License, 
Version 1.1 as shown below.</p>
         <p><a href="#a__SIL_Open_Font_License__version_1_1">Jump to SIL Open 
Font License, Version 1.1</a></p>
+        <h2>Open Sans</h2>
+        <p>Copyright 2020 The Open Sans Project Authors 
(https://github.com/googlefonts/opensans)</p>
+        <p>This Font Software is licensed under the SIL Open Font License, 
Version 1.1 as shown below.</p>
+        <p><a href="#a__SIL_Open_Font_License__version_1_1">Jump to SIL Open 
Font License, Version 1.1</a></p>
         <h2>Reem Kufi</h2>
         <p>The following software may be included in this product: Reem Kufi 
fonts. Use of any of this software is
         governed by the terms of the license below:</p>
commit 0555cb80d1fab337bd140daa74d251278d144f2c
Author:     Andras Timar <[email protected]>
AuthorDate: Wed Sep 18 15:42:30 2019 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 3 21:52:33 2026 +0100

    [cp] Bundle OpenDyslexic font
    
    Change-Id: Ib05a6d6418563fd9333821594f0aca5ab724f3e8
    Reviewed-on: https://gerrit.libreoffice.org/79099
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Andras Timar <[email protected]>

diff --git a/Makefile.fetch b/Makefile.fetch
index aa103aaa1e7a..9b430902a619 100644
--- a/Makefile.fetch
+++ b/Makefile.fetch
@@ -267,6 +267,9 @@ $(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk 
$(SRCDIR)/download.lst $(S
                $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SERIF_SC_TARBALL) \
                $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SERIF_TC_TARBALL) \
        ,$(call 
fetch_Download_item,https://noto-website-2.storage.googleapis.com/pkgs,$(item)))
+       $(foreach item, \
+               $(call fetch_Optional,MORE_FONTS,FONT_OPENDYSLEXIC_TARBALL) \
+       ,$(call 
fetch_Download_item,https://github.com/antijingoist/opendyslexic/releases/download/v0.91.12,$(item)))
        -@mkdir -p $(TARFILE_LOCATION)/cargo
        $(if $(call fetch_Optional,YRS,1),\
                CARGO_HOME=$(TARFILE_LOCATION)/cargo cargo fetch $(if 
$(verbose),--verbose,) --locked --manifest-path 
$(SRCDIR)/external/y-crdt/Cargo.toml)
diff --git a/Repository.mk b/Repository.mk
index 13647c04c119..e11b82499ff0 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -1076,6 +1076,7 @@ $(eval $(call 
gb_Helper_register_packages_for_install,ooo_fonts,\
                fonts_noto_serif_georgian \
                fonts_noto_serif_hebrew \
                fonts_noto_serif_lao \
+               fonts_opendyslexic \
                fonts_reem \
                fonts_scheherazade \
                $(if $(WITH_DOCREPAIR_FONTS),fonts_agdasima,) \
diff --git a/download.lst b/download.lst
index eafcb84a0804..8ef1e8752c0f 100644
--- a/download.lst
+++ b/download.lst
@@ -315,6 +315,11 @@ FONT_SCHEHERAZADE_TARBALL := Scheherazade-2.100.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
+FONT_OPENDYSLEXIC_SHA256SUM := 
b92d7fcb9409f2bcfd23b65ac71647256eb49c429f4fbb1cc870381fc93eb486
+FONT_OPENDYSLEXIC_TARBALL := opendyslexic-0.910.12-rc2-2019.10.17.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
 FONT_AGDASIMA_TARBALL := Agdasima-2.002.zip
 FONT_AGDASIMA_SHA256SUM := 
b4c17499f8bc183320ffdcf1f8491c778dd68a237adc056dc08e1fcb2da488f3
 # three static lines
diff --git a/external/more_fonts/ExternalPackage_opendyslexic.mk 
b/external/more_fonts/ExternalPackage_opendyslexic.mk
new file mode 100644
index 000000000000..0afaa9bf5be5
--- /dev/null
+++ b/external/more_fonts/ExternalPackage_opendyslexic.mk
@@ -0,0 +1,19 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_opendyslexic,font_opendyslexic))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_opendyslexic,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       OpenDyslexic-Bold-Italic.otf \
+       OpenDyslexic-Bold.otf \
+       OpenDyslexic-Italic.otf \
+       OpenDyslexic-Regular.otf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/more_fonts/Module_more_fonts.mk 
b/external/more_fonts/Module_more_fonts.mk
index 6a14c01ab0d6..f2f61776dcdf 100644
--- a/external/more_fonts/Module_more_fonts.mk
+++ b/external/more_fonts/Module_more_fonts.mk
@@ -38,6 +38,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\
        ExternalPackage_noto_serif_lao \
        ExternalPackage_reem \
        ExternalPackage_scheherazade \
+       ExternalPackage_opendyslexic \
        $(if $(WITH_DOCREPAIR_FONTS),ExternalPackage_agdasima,) \
        $(if $(WITH_DOCREPAIR_FONTS),ExternalPackage_bacasime_antique,) \
        $(if $(WITH_DOCREPAIR_FONTS),ExternalPackage_belanosima,) \
@@ -73,6 +74,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\
        UnpackedTarball_noto_serif_lao \
        UnpackedTarball_reem \
        UnpackedTarball_scheherazade \
+       UnpackedTarball_opendyslexic \
        $(if $(WITH_DOCREPAIR_FONTS),UnpackedTarball_agdasima,) \
        $(if $(WITH_DOCREPAIR_FONTS),UnpackedTarball_bacasime_antique,) \
        $(if $(WITH_DOCREPAIR_FONTS),UnpackedTarball_belanosima,) \
diff --git a/external/more_fonts/UnpackedTarball_opendyslexic.mk 
b/external/more_fonts/UnpackedTarball_opendyslexic.mk
new file mode 100644
index 000000000000..6a8f513deab8
--- /dev/null
+++ b/external/more_fonts/UnpackedTarball_opendyslexic.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_opendyslexic))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_opendyslexic,$(FONT_OPENDYSLEXIC_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/readlicense_oo/license/license.xml 
b/readlicense_oo/license/license.xml
index 177e795ee58b..62635d91fb88 100644
--- a/readlicense_oo/license/license.xml
+++ b/readlicense_oo/license/license.xml
@@ -2845,6 +2845,12 @@
         <p>This Font Software is licensed under the SIL Open Font License, 
Version 1.1. This license is copied below,
         and is also available with a FAQ at: <a 
href="http://scripts.sil.org/OFL";>http://scripts.sil.org/OFL</a></p>
         <p><a href="#a__SIL_Open_Font_License__version_1_1">Jump to SIL Open 
Font License, Version 1.1</a></p>
+        <h2>OpenDyslexic</h2>
+        <p>Copyright (c) 2019-07-29, Abbie Gonzalez 
(https://abbiecod.es|[email protected]),
+        with Reserved Font Name OpenDyslexic.</p>
+        <p>Copyright (c) 12/2012 - 2019</p>
+        <p>This Font Software is licensed under the SIL Open Font License, 
Version 1.1 as shown below.</p>
+        <p><a href="#a__SIL_Open_Font_License__version_1_1">Jump to SIL Open 
Font License, Version 1.1</a></p>
         <h2>Reem Kufi</h2>
         <p>The following software may be included in this product: Reem Kufi 
fonts. Use of any of this software is
         governed by the terms of the license below:</p>
diff --git a/solenv/flatpak-external-tarballs.json.in 
b/solenv/flatpak-external-tarballs.json.in
index d7ce9ebd4285..db8792a2ac2a 100644
--- a/solenv/flatpak-external-tarballs.json.in
+++ b/solenv/flatpak-external-tarballs.json.in
@@ -782,5 +782,11 @@
         "type": "file",
         "dest": "external/tarballs",
         "dest-filename": "@OPENSYMBOL_TTF@"
+    },
+    {
+        "url": 
"https://github.com/antijingoist/opendyslexic/releases/download/v0.9.10/@FONT_OPENDYSLEXIC_TARBALL@";,
+        "sha256": "@FONT_OPENDYSLEXIC_SHA256SUM@",
+        "type": "file",
+        "dest-filename": "@FONT_OPENDYSLEXIC_TARBALL@"
     }
 ]
commit f7e2d7994b039e81d920a69ef3cae20f59b7b6f0
Author:     Andras Timar <[email protected]>
AuthorDate: Fri Sep 18 14:24:51 2015 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 3 21:43:21 2026 +0100

    [cp] Bundle Karla font
    
    (cherry picked from commit 21dc27ab7834fe4d5783a9f4bd412c08cacc26b4)
    
    Change-Id: I666665c801367ff760b14b9f474952e9894b4791

diff --git a/Makefile.fetch b/Makefile.fetch
index b204d5716e0b..aa103aaa1e7a 100644
--- a/Makefile.fetch
+++ b/Makefile.fetch
@@ -183,6 +183,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk 
$(SRCDIR)/download.lst $(S
                $(call fetch_Optional,MORE_FONTS,FONT_CARLITO_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_DEJAVU_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_GENTIUM_TARBALL) \
+               $(call fetch_Optional,MORE_FONTS,FONT_KARLA_TARBALL) \
                $(call 
fetch_Optional,MORE_FONTS,FONT_LIBERATION_NARROW_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_LIBERATION_TARBALL) \
                $(call fetch_Optional,MORE_FONTS,FONT_LINLIBERTINEG_TARBALL) \
diff --git a/Repository.mk b/Repository.mk
index 0e0f210afcc5..13647c04c119 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -1057,6 +1057,7 @@ $(eval $(call 
gb_Helper_register_packages_for_install,ooo_fonts,\
                $(if $(MPL_SUBSET),,fonts_culmus) \
                fonts_dejavu \
                fonts_gentium \
+               fonts_karla \
                fonts_liberation \
                fonts_liberation_narrow \
                fonts_libertineg \
diff --git a/download.lst b/download.lst
index 748d8c55d81c..eafcb84a0804 100644
--- a/download.lst
+++ b/download.lst
@@ -150,8 +150,16 @@ FONT_GENTIUM_TARBALL := 
1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
+FONT_KARLA_SHA256SUM := 
c64cdbc55389c1bfb320dcef41a19f156bad271a99bc9253be118564dbb738b5
+FONT_KARLA_TARBALL := 2024-09-19-karla-main.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
 FONT_LIBERATION_NARROW_SHA256SUM := 
8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3
 FONT_LIBERATION_NARROW_TARBALL := liberation-narrow-fonts-ttf-1.07.6.tar.gz
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
 FONT_LIBERATION_SHA256SUM := 
7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0
 FONT_LIBERATION_TARBALL := liberation-fonts-ttf-2.1.5.tar.gz
 # three static lines
diff --git a/external/more_fonts/ExternalPackage_karla.mk 
b/external/more_fonts/ExternalPackage_karla.mk
new file mode 100644
index 000000000000..651ea18a1bbf
--- /dev/null
+++ b/external/more_fonts/ExternalPackage_karla.mk
@@ -0,0 +1,19 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_karla,font_karla))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_karla,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       fonts/ttf/Karla-Italic.ttf \
+       fonts/ttf/Karla-Regular.ttf \
+       fonts/ttf/Karla-BoldItalic.ttf \
+       fonts/ttf/Karla-Bold.ttf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/more_fonts/Module_more_fonts.mk 
b/external/more_fonts/Module_more_fonts.mk
index cb9cd075d728..6a14c01ab0d6 100644
--- a/external/more_fonts/Module_more_fonts.mk
+++ b/external/more_fonts/Module_more_fonts.mk
@@ -17,6 +17,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\
        $(if $(MPL_SUBSET),,ExternalPackage_culmus) \
        ExternalPackage_dejavu \
        ExternalPackage_gentium \
+       ExternalPackage_karla \
        ExternalPackage_liberation \
        ExternalPackage_liberation_narrow \
        ExternalPackage_libertineg \
@@ -51,6 +52,7 @@ $(eval $(call gb_Module_add_targets,more_fonts,\
        $(if $(MPL_SUBSET),,UnpackedTarball_culmus) \
        UnpackedTarball_dejavu \
        UnpackedTarball_gentium \
+       UnpackedTarball_karla \
        UnpackedTarball_liberation \
        UnpackedTarball_liberation_narrow \
        UnpackedTarball_libertineg \
diff --git a/external/more_fonts/UnpackedTarball_karla.mk 
b/external/more_fonts/UnpackedTarball_karla.mk
new file mode 100644
index 000000000000..a65c5bb36801
--- /dev/null
+++ b/external/more_fonts/UnpackedTarball_karla.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_karla))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,font_karla,$(FONT_KARLA_TARBALL)))
+
+# vim: set noet sw=4 ts=4:
diff --git a/readlicense_oo/license/license.xml 
b/readlicense_oo/license/license.xml
index 5b9b018cc81c..177e795ee58b 100644
--- a/readlicense_oo/license/license.xml
+++ b/readlicense_oo/license/license.xml
@@ -2686,6 +2686,14 @@
         <p>This Font Software is licensed under the SIL Open Font License, 
Version 1.1. This license is copied below,
         and is also available with a FAQ at: <a 
href="http://scripts.sil.org/OFL";>http://scripts.sil.org/OFL</a></p>
         <p><a href="#a__SIL_Open_Font_License__version_1_1">Jump to SIL Open 
Font License, Version 1.1</a></p>
+        <h2>Karla</h2>
+        <p>The following software may be included in this product: Karla 
fonts. Use of any of this software is governed
+        by the terms of the license below:</p>
+        <p>Copyright (c) 2011, Jonathan Pinhorn 
([email protected]), with Reserved Font Names “Karla” and
+        “Karla Tamil”.</p>
+        <p>This Font Software is licensed under the SIL Open Font License, 
Version 1.1. This license is copied below,
+        and is also available with a FAQ at: <a 
href="http://scripts.sil.org/OFL";>http://scripts.sil.org/OFL</a></p>
+        <p><a href="#a__SIL_Open_Font_License__version_1_1">Jump to SIL Open 
Font License, Version 1.1</a></p>
         <h2>Liberation</h2>
         <p>The following software may be included in this product: Liberation 
fonts. Use of any of this software is
         governed by the terms of the license below:</p>
commit 69714e1e2e895de52e731390dd8f535545d85cbc
Author:     Andras Timar <[email protected]>
AuthorDate: Mon Apr 23 16:41:51 2018 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 3 21:43:08 2026 +0100

    [cp] Optionally bundle even more Google Noto fonts
    
    Change-Id: I6c08476710ab541ff9b9407f5d874dbb038990df

diff --git a/Makefile.fetch b/Makefile.fetch
index 64c15b67b642..b204d5716e0b 100644
--- a/Makefile.fetch
+++ b/Makefile.fetch
@@ -255,6 +255,17 @@ $(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk 
$(SRCDIR)/download.lst $(S
                $(call fetch_Optional,ODFVALIDATOR,ODFVALIDATOR_JAR) \
                $(call fetch_Optional,OFFICEOTRON,OFFICEOTRON_JAR) \
        ,$(call 
fetch_Download_item,https://dev-www.libreoffice.org/extern,$(item)))
+       $(foreach item, \
+               $(call fetch_Optional,NOTO_FONT,FONT_NOTO_MORE_TARBALL) \
+               $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SANS_JP_TARBALL) \
+               $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SANS_KR_TARBALL) \
+               $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SANS_SC_TARBALL) \
+               $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SANS_TC_TARBALL) \
+               $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SERIF_JP_TARBALL) \
+               $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SERIF_KR_TARBALL) \
+               $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SERIF_SC_TARBALL) \
+               $(call fetch_Optional,NOTO_FONT,FONT_NOTO_SERIF_TC_TARBALL) \
+       ,$(call 
fetch_Download_item,https://noto-website-2.storage.googleapis.com/pkgs,$(item)))
        -@mkdir -p $(TARFILE_LOCATION)/cargo
        $(if $(call fetch_Optional,YRS,1),\
                CARGO_HOME=$(TARFILE_LOCATION)/cargo cargo fetch $(if 
$(verbose),--verbose,) --locked --manifest-path 
$(SRCDIR)/external/y-crdt/Cargo.toml)
diff --git a/Repository.mk b/Repository.mk
index 79eceddda888..0e0f210afcc5 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -1085,6 +1085,17 @@ $(eval $(call 
gb_Helper_register_packages_for_install,ooo_fonts,\
                $(if $(WITH_DOCREPAIR_FONTS),fonts_lumanosimo,) \
                $(if $(WITH_DOCREPAIR_FONTS),fonts_lunasima,) \
        ) \
+       $(call gb_Helper_optional,NOTO_FONT,\
+               fonts_notomore \
+               fonts_notosansjp \
+               fonts_notosanskr \
+               fonts_notosanssc \
+               fonts_notosanstc \
+               fonts_notoserifjp \
+               fonts_notoserifkr \
+               fonts_notoserifsc \
+               fonts_notoseriftc \
+       ) \
 ))
 
 $(eval $(call gb_Helper_register_packages_for_install,ooo_images,\
diff --git a/configure.ac b/configure.ac
index a1427b3d530d..512ade284bde 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2418,6 +2418,11 @@ libo_FUZZ_ARG_WITH(docrepair-fonts,
          for more details. This option has no effect when --without-fonts is 
used.]),
 ,)
 
+AC_ARG_ENABLE(noto-font,
+    AS_HELP_STRING([--enable-noto-font],
+        [Add more Google Noto fonts.]),
+,)
+
 AC_ARG_WITH(epm,
     AS_HELP_STRING([--with-epm],
         [Decides which epm to use. Default is to use the one from the system if
@@ -14410,6 +14415,20 @@ fi
 AC_SUBST(WITH_FONTS)
 AC_SUBST(WITH_DOCREPAIR_FONTS)
 
+dnl Test whether to include more Google Noto fonts
+dnl ===================================================================
+AC_MSG_CHECKING([whether to include more Google Noto fonts])
+if test "$enable_noto_font" = "" -o "$enable_noto_font" = "no" -o 
"$with_fonts" = "no"; then
+    AC_MSG_RESULT([no])
+    WITH_NOTO_FONT=
+else
+    AC_MSG_RESULT([yes])
+    WITH_NOTO_FONT=TRUE
+    BUILD_TYPE="$BUILD_TYPE NOTO_FONT"
+    SCPDEFS="$SCPDEFS -DWITH_NOTO_FONT"
+fi
+AC_SUBST(WITH_NOTO_FONT)
+
 dnl ===================================================================
 dnl Test whether to enable online update service
 dnl ===================================================================
diff --git a/download.lst b/download.lst
index 7c92b336a3d6..748d8c55d81c 100644
--- a/download.lst
+++ b/download.lst
@@ -232,6 +232,51 @@ FONT_NOTO_SANS_LISU_TARBALL := NotoSansLisu-v2.102.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
+FONT_NOTO_MORE_SHA256SUM := 
837b4a9352fce32ad7f298fbf155af1da5b6f3f8dbd995eb63fdd8e82117e4ae
+FONT_NOTO_MORE_TARBALL := Noto-hinted.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
+FONT_NOTO_SANS_JP_SHA256SUM := 
6886c5526628c08f1e21a84f4658ab3daf6d0233de8dc54526ccf9f40bfab18e
+export FONT_NOTO_SANS_JP_TARBALL := NotoSansJP.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
+FONT_NOTO_SANS_KR_SHA256SUM := 
5147b755c29f16f82b706b1c7ff7982894fccbebcf99e6c5fb0d48c315604b98
+FONT_NOTO_SANS_KR_TARBALL := NotoSansKR.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
+FONT_NOTO_SANS_SC_SHA256SUM := 
bee1af8c0722cfb3eb1b2fa91a7f3dc011dca231c25c8fcd9d9d544699ababf9
+FONT_NOTO_SANS_SC_TARBALL := NotoSansSC.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
+FONT_NOTO_SANS_TC_SHA256SUM := 
ec9e8a4156593e1b3ff7cff843989f43f114f96eff0b5db9691ef3c2bdefb73e
+FONT_NOTO_SANS_TC_TARBALL := NotoSansTC.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
+FONT_NOTO_SERIF_JP_SHA256SUM := 
362438901cb871bf84b01ff4734c668dab57b4905f39e5ec76d8b68a7a7b5fa8
+FONT_NOTO_SERIF_JP_TARBALL := NotoSerifJP.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
+FONT_NOTO_SERIF_KR_SHA256SUM := 
3c0d276fb05aaefbbca808b4f8c7b1520b4b4e7c0be46296d6e8a5e42f559f5c
+FONT_NOTO_SERIF_KR_TARBALL := NotoSerifKR.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
+FONT_NOTO_SERIF_SC_SHA256SUM := 
00ed5970680a82453619ac5952c5631ea138372bbb0f864d156d91a0fd9c8279
+FONT_NOTO_SERIF_SC_TARBALL := NotoSerifSC.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
+FONT_NOTO_SERIF_TC_SHA256SUM := 
c33e04199f6d69056a6de0ebc5522dbe36e02f145208c71c9a4c803841151ad2
+FONT_NOTO_SERIF_TC_TARBALL := NotoSerifTC.zip
+# three static lines
+# so that git cherry-pick
+# will not run into conflicts
 FONT_CULMUS_SHA256SUM := 
6daed104481007752a76905000e71c0093c591c8ef3017d1b18222c277fc52e3
 FONT_CULMUS_TARBALL := culmus-0.140.tar.gz
 # three static lines
diff --git a/external/Module_external.mk b/external/Module_external.mk
index 830850e8b279..40b350698e7b 100644
--- a/external/Module_external.mk
+++ b/external/Module_external.mk
@@ -79,6 +79,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\
        $(call gb_Helper_optional,MSPUB,libmspub) \
        $(call gb_Helper_optional,MWAW,libmwaw) \
        $(call gb_Helper_optional,MYTHES,mythes) \
+       $(call gb_Helper_optional,NOTO_FONT,noto_font) \
        $(call gb_Helper_optional,NSS,nss) \
        $(call gb_Helper_optional,ODFGEN,libodfgen) \
        $(call gb_Helper_optional,OPENLDAP,openldap) \
diff --git a/external/noto_font/ExternalPackage_noto.mk 
b/external/noto_font/ExternalPackage_noto.mk
new file mode 100644
index 000000000000..c2b028e6e6a4
--- /dev/null
+++ b/external/noto_font/ExternalPackage_noto.mk
@@ -0,0 +1,134 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_notomore,font_notomore))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_notomore,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       NotoColorEmoji.ttf \
+       NotoEmoji-Regular.ttf \
+       NotoNastaliqUrdu-Regular.ttf \
+       NotoSansAvestan-Regular.ttf \
+       NotoSansBalinese-Regular.ttf \
+       NotoSansBamum-Regular.ttf \
+       NotoSansBatak-Regular.ttf \
+       NotoSansBengali-Bold.ttf \
+       NotoSansBengali-Regular.ttf \
+       NotoSansBrahmi-Regular.ttf \
+       NotoSansBuginese-Regular.ttf \
+       NotoSansBuhid-Regular.ttf \
+       NotoSansCanadianAboriginal-Regular.ttf \
+       NotoSansCarian-Regular.ttf \
+       NotoSansCham-Bold.ttf \
+       NotoSansCham-Regular.ttf \
+       NotoSansCherokee-Regular.ttf \
+       NotoSansCoptic-Regular.ttf \
+       NotoSansCuneiform-Regular.ttf \
+       NotoSansCypriot-Regular.ttf \
+       NotoSansDeseret-Regular.ttf \
+       NotoSansDevanagari-Bold.ttf \
+       NotoSansDevanagari-Regular.ttf \
+       NotoSansEgyptianHieroglyphs-Regular.ttf \
+       NotoSansEthiopic-Bold.ttf \
+       NotoSansEthiopic-Regular.ttf \
+       NotoSansGlagolitic-Regular.ttf \
+       NotoSansGothic-Regular.ttf \
+       NotoSansGujarati-Bold.ttf \
+       NotoSansGujarati-Regular.ttf \
+       NotoSansGurmukhi-Bold.ttf \
+       NotoSansGurmukhi-Regular.ttf \
+       NotoSansHanunoo-Regular.ttf \
+       NotoSansImperialAramaic-Regular.ttf \
+       NotoSansInscriptionalPahlavi-Regular.ttf \
+       NotoSansInscriptionalParthian-Regular.ttf \
+       NotoSansJavanese-Regular.ttf \
+       NotoSansKaithi-Regular.ttf \
+       NotoSansKannada-Bold.ttf \
+       NotoSansKannada-Regular.ttf \
+       NotoSansKayahLi-Regular.ttf \
+       NotoSansKharoshthi-Regular.ttf \
+       NotoSansKhmer-Bold.ttf \
+       NotoSansKhmer-Regular.ttf \
+       NotoSansLepcha-Regular.ttf \
+       NotoSansLimbu-Regular.ttf \
+       NotoSansLinearB-Regular.ttf \
+       NotoSansLycian-Regular.ttf \
+       NotoSansLydian-Regular.ttf \
+       NotoSansMalayalam-Bold.ttf \
+       NotoSansMalayalam-Regular.ttf \
+       NotoSansMandaic-Regular.ttf \
+       NotoSansMeeteiMayek-Regular.ttf \
+       NotoSansMongolian-Regular.ttf \
+       NotoSansMyanmar-Bold.ttf \
+       NotoSansMyanmar-Regular.ttf \
+       NotoSansNewTaiLue-Regular.ttf \
+       NotoSansNKo-Regular.ttf \
+       NotoSansOgham-Regular.ttf \
+       NotoSansOlChiki-Regular.ttf \
+       NotoSansOldItalic-Regular.ttf \
+       NotoSansOldPersian-Regular.ttf \
+       NotoSansOldSouthArabian-Regular.ttf \
+       NotoSansOldTurkic-Regular.ttf \
+       NotoSansOriya-Bold.ttf \
+       NotoSansOriya-Regular.ttf \
+       NotoSansOsmanya-Regular.ttf \
+       NotoSansPhagsPa-Regular.ttf \
+       NotoSansPhoenician-Regular.ttf \
+       NotoSansRejang-Regular.ttf \
+       NotoSansRunic-Regular.ttf \
+       NotoSansSamaritan-Regular.ttf \
+       NotoSansSaurashtra-Regular.ttf \
+       NotoSansShavian-Regular.ttf \
+       NotoSansSinhala-Bold.ttf \
+       NotoSansSinhala-Regular.ttf \
+       NotoSansSundanese-Regular.ttf \
+       NotoSansSylotiNagri-Regular.ttf \
+       NotoSansSymbols-Regular.ttf \
+       NotoSansSyriacEastern-Regular.ttf \
+       NotoSansSyriacEstrangela-Regular.ttf \
+       NotoSansSyriacWestern-Regular.ttf \
+       NotoSansTagalog-Regular.ttf \
+       NotoSansTagbanwa-Regular.ttf \
+       NotoSansTaiLe-Regular.ttf \
+       NotoSansTaiTham-Regular.ttf \
+       NotoSansTaiViet-Regular.ttf \
+       NotoSansTamil-Bold.ttf \
+       NotoSansTamil-Regular.ttf \
+       NotoSansTelugu-Bold.ttf \
+       NotoSansTelugu-Regular.ttf \
+       NotoSansThaana-Bold.ttf \
+       NotoSansThaana-Regular.ttf \
+       NotoSansThai-Bold.ttf \
+       NotoSansThai-Regular.ttf \
+       NotoSansTibetan-Bold.ttf \
+       NotoSansTibetan-Regular.ttf \
+       NotoSansTifinagh-Regular.ttf \
+       NotoSansUgaritic-Regular.ttf \
+       NotoSansVai-Regular.ttf \
+       NotoSansYi-Regular.ttf \
+       NotoSerifBengali-Bold.ttf \
+       NotoSerifBengali-Regular.ttf \
+       NotoSerifDevanagari-Bold.ttf \
+       NotoSerifDevanagari-Regular.ttf \
+       NotoSerifGujarati-Bold.ttf \
+       NotoSerifGujarati-Regular.ttf \
+       NotoSerifKannada-Bold.ttf \
+       NotoSerifKannada-Regular.ttf \
+       NotoSerifKhmer-Bold.ttf \
+       NotoSerifKhmer-Regular.ttf \
+       NotoSerifMalayalam-Bold.ttf \
+       NotoSerifMalayalam-Regular.ttf \
+       NotoSerifTamil-Bold.ttf \
+       NotoSerifTamil-Regular.ttf \
+       NotoSerifTelugu-Bold.ttf \
+       NotoSerifTelugu-Regular.ttf \
+       NotoSerifThai-Bold.ttf \
+       NotoSerifThai-Regular.ttf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/ExternalPackage_notosansjp.mk 
b/external/noto_font/ExternalPackage_notosansjp.mk
new file mode 100644
index 000000000000..6ea62377932c
--- /dev/null
+++ b/external/noto_font/ExternalPackage_notosansjp.mk
@@ -0,0 +1,17 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_notosansjp,font_notosansjp))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_notosansjp,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       NotoSansJP-Bold.otf \
+       NotoSansJP-Regular.otf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/ExternalPackage_notosanskr.mk 
b/external/noto_font/ExternalPackage_notosanskr.mk
new file mode 100644
index 000000000000..3669605ad336
--- /dev/null
+++ b/external/noto_font/ExternalPackage_notosanskr.mk
@@ -0,0 +1,17 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_notosanskr,font_notosanskr))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_notosanskr,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       NotoSansKR-Bold.otf \
+       NotoSansKR-Regular.otf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/ExternalPackage_notosanssc.mk 
b/external/noto_font/ExternalPackage_notosanssc.mk
new file mode 100644
index 000000000000..5e03db1574d3
--- /dev/null
+++ b/external/noto_font/ExternalPackage_notosanssc.mk
@@ -0,0 +1,17 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_notosanssc,font_notosanssc))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_notosanssc,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       NotoSansSC-Bold.otf \
+       NotoSansSC-Regular.otf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/ExternalPackage_notosanstc.mk 
b/external/noto_font/ExternalPackage_notosanstc.mk
new file mode 100644
index 000000000000..d230d7b07115
--- /dev/null
+++ b/external/noto_font/ExternalPackage_notosanstc.mk
@@ -0,0 +1,17 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_notosanstc,font_notosanstc))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_notosanstc,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       NotoSansTC-Bold.otf \
+       NotoSansTC-Regular.otf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/ExternalPackage_notoserifjp.mk 
b/external/noto_font/ExternalPackage_notoserifjp.mk
new file mode 100644
index 000000000000..2b9502c74849
--- /dev/null
+++ b/external/noto_font/ExternalPackage_notoserifjp.mk
@@ -0,0 +1,17 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_notoserifjp,font_notoserifjp))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_notoserifjp,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       NotoSerifJP-Bold.otf \
+       NotoSerifJP-Regular.otf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/ExternalPackage_notoserifkr.mk 
b/external/noto_font/ExternalPackage_notoserifkr.mk
new file mode 100644
index 000000000000..84b893537ac9
--- /dev/null
+++ b/external/noto_font/ExternalPackage_notoserifkr.mk
@@ -0,0 +1,17 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_notoserifkr,font_notoserifkr))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_notoserifkr,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       NotoSerifKR-Bold.otf \
+       NotoSerifKR-Regular.otf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/ExternalPackage_notoserifsc.mk 
b/external/noto_font/ExternalPackage_notoserifsc.mk
new file mode 100644
index 000000000000..73e2af1217f3
--- /dev/null
+++ b/external/noto_font/ExternalPackage_notoserifsc.mk
@@ -0,0 +1,17 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_notoserifsc,font_notoserifsc))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_notoserifsc,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       NotoSerifSC-Bold.otf \
+       NotoSerifSC-Regular.otf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/ExternalPackage_notoseriftc.mk 
b/external/noto_font/ExternalPackage_notoseriftc.mk
new file mode 100644
index 000000000000..0e74e6c97bff
--- /dev/null
+++ b/external/noto_font/ExternalPackage_notoseriftc.mk
@@ -0,0 +1,17 @@
+# -*- 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_ExternalPackage_ExternalPackage,fonts_notoseriftc,font_notoseriftc))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,fonts_notoseriftc,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
+       NotoSerifTC-Bold.otf \
+       NotoSerifTC-Regular.otf \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/Makefile b/external/noto_font/Makefile
new file mode 100644
index 000000000000..e4968cf85fb6
--- /dev/null
+++ b/external/noto_font/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/Module_noto_font.mk 
b/external/noto_font/Module_noto_font.mk
new file mode 100644
index 000000000000..d6fbcf8e37a0
--- /dev/null
+++ b/external/noto_font/Module_noto_font.mk
@@ -0,0 +1,33 @@
+# -*- 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_Module_Module,noto_font))
+
+$(eval $(call gb_Module_add_targets,noto_font,\
+       ExternalPackage_noto \
+       ExternalPackage_notosansjp \
+       ExternalPackage_notosanskr \
+       ExternalPackage_notosanssc \
+       ExternalPackage_notosanstc \
+       ExternalPackage_notoserifjp \
+       ExternalPackage_notoserifkr \
+       ExternalPackage_notoserifsc \
+       ExternalPackage_notoseriftc \
+       UnpackedTarball_noto \
+       UnpackedTarball_notosansjp \
+       UnpackedTarball_notosanskr \
+       UnpackedTarball_notosanssc \
+       UnpackedTarball_notosanstc \
+       UnpackedTarball_notoserifjp \
+       UnpackedTarball_notoserifkr \
+       UnpackedTarball_notoserifsc \
+       UnpackedTarball_notoseriftc \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/README b/external/noto_font/README
new file mode 100644
index 000000000000..96377c3d86e5
--- /dev/null
+++ b/external/noto_font/README
@@ -0,0 +1 @@
+This module packages Google Noto fonts.
diff --git a/external/noto_font/UnpackedTarball_noto.mk 
b/external/noto_font/UnpackedTarball_noto.mk
new file mode 100644
index 000000000000..6202fbb59468
--- /dev/null
+++ b/external/noto_font/UnpackedTarball_noto.mk
@@ -0,0 +1,46 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_notomore))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notomore,$(FONT_NOTO_MORE_TARBALL),0))
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_notosansjp))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notosansjp,$(FONT_NOTO_SANS_JP_TARBALL),0))
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_notosanskr))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notosanskr,$(FONT_NOTO_SANS_KR_TARBALL),0))
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_notosanssc))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notosanssc,$(FONT_NOTO_SANS_SC_TARBALL),0))
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_notosanstc))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notosanstc,$(FONT_NOTO_SANS_TC_TARBALL),0))
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_notoserifjp))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notoserifjp,$(FONT_NOTO_SERIF_JP_TARBALL),0))
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_notoserifkr))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notoserifkr,$(FONT_NOTO_SERIF_KR_TARBALL),0))
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_notoserifsc))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notoserifsc,$(FONT_NOTO_SERIF_SC_TARBALL),0))
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_notoseriftc))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notoseriftc,$(FONT_NOTO_SERIF_TC_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/UnpackedTarball_notosansjp.mk 
b/external/noto_font/UnpackedTarball_notosansjp.mk
new file mode 100644
index 000000000000..ed4b2275f71e
--- /dev/null
+++ b/external/noto_font/UnpackedTarball_notosansjp.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_notosansjp))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notosansjp,$(FONT_NOTO_SANS_JP_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/UnpackedTarball_notosanskr.mk 
b/external/noto_font/UnpackedTarball_notosanskr.mk
new file mode 100644
index 000000000000..0af2842bfb4f
--- /dev/null
+++ b/external/noto_font/UnpackedTarball_notosanskr.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_notosanskr))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notosanskr,$(FONT_NOTO_SANS_KR_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/UnpackedTarball_notosanssc.mk 
b/external/noto_font/UnpackedTarball_notosanssc.mk
new file mode 100644
index 000000000000..0e15ef6fc8e0
--- /dev/null
+++ b/external/noto_font/UnpackedTarball_notosanssc.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_notosanssc))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notosanssc,$(FONT_NOTO_SANS_SC_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/UnpackedTarball_notosanstc.mk 
b/external/noto_font/UnpackedTarball_notosanstc.mk
new file mode 100644
index 000000000000..702f04f79960
--- /dev/null
+++ b/external/noto_font/UnpackedTarball_notosanstc.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_notosanstc))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notosanstc,$(FONT_NOTO_SANS_TC_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/UnpackedTarball_notoserifjp.mk 
b/external/noto_font/UnpackedTarball_notoserifjp.mk
new file mode 100644
index 000000000000..44909731b26a
--- /dev/null
+++ b/external/noto_font/UnpackedTarball_notoserifjp.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_notoserifjp))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notoserifjp,$(FONT_NOTO_SERIF_JP_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/UnpackedTarball_notoserifkr.mk 
b/external/noto_font/UnpackedTarball_notoserifkr.mk
new file mode 100644
index 000000000000..dcc9ae8b7df8
--- /dev/null
+++ b/external/noto_font/UnpackedTarball_notoserifkr.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_notoserifkr))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notoserifkr,$(FONT_NOTO_SERIF_KR_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/UnpackedTarball_notoserifsc.mk 
b/external/noto_font/UnpackedTarball_notoserifsc.mk
new file mode 100644
index 000000000000..2564a414300c
--- /dev/null
+++ b/external/noto_font/UnpackedTarball_notoserifsc.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_notoserifsc))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notoserifsc,$(FONT_NOTO_SERIF_SC_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/noto_font/UnpackedTarball_notoseriftc.mk 
b/external/noto_font/UnpackedTarball_notoseriftc.mk
new file mode 100644
index 000000000000..5d960ab6057b
--- /dev/null
+++ b/external/noto_font/UnpackedTarball_notoseriftc.mk
@@ -0,0 +1,14 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,font_notoseriftc))
+
+$(eval $(call 
gb_UnpackedTarball_set_tarball,font_notoseriftc,$(FONT_NOTO_SERIF_TC_TARBALL),0))
+
+# vim: set noet sw=4 ts=4:
commit 18992ddb5aedf4c7d34ecf753f43609f32ce3284
Author:     Andras Timar <[email protected]>
AuthorDate: Tue Nov 30 12:45:40 2021 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 3 21:34:05 2026 +0100

    Replace unixODBC to iODBC that is BSD licensed
    
    Change-Id: Ia794fd97bb70b1e33385517971a174430d11cab7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126117
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Michael Meeks <[email protected]>

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index fe68e006919b..adb1512ae54d 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -50,7 +50,7 @@ else # !SYSTEM_ODBC_HEADERS
 
 define gb_LinkTarget__use_odbc_headers
 $(call gb_LinkTarget_set_include,$(1),\
-       -I$(SRCDIR)/external/unixODBC/inc \
+       -I$(SRCDIR)/external/iODBC/inc \
        $$(INCLUDE) \
 )
 
diff --git a/configure.ac b/configure.ac
index 46a8e1b5ba44..a1427b3d530d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -11419,6 +11419,7 @@ elif test "$enable_database_connectivity" = no; then
 else
     AC_MSG_RESULT([internal])
     SYSTEM_ODBC_HEADERS=
+    BUILD_TYPE="$BUILD_TYPE IODBC"
 fi
 AC_SUBST(SYSTEM_ODBC_HEADERS)
 
diff --git a/connectivity/source/drivers/odbc/OPreparedStatement.cxx 
b/connectivity/source/drivers/odbc/OPreparedStatement.cxx
index b1420dd023b5..be40d7203393 100644
--- a/connectivity/source/drivers/odbc/OPreparedStatement.cxx
+++ b/connectivity/source/drivers/odbc/OPreparedStatement.cxx
@@ -301,7 +301,7 @@ void OPreparedStatement::setParameter(const sal_Int32 
parameterIndex, const sal_
          * ODBC Programmer's reference > Developing Applications > Programming 
Considerations > Unicode >  Unicode Function Arguments
          *            http://support.microsoft.com/kb/294169
          *
-         * UnixODBC can be configured at compile-time so that the "W" variants 
expect
+         * iODBC can be configured at compile-time so that the "W" variants 
expect
          * UTF-16 or UTF-32 encoded strings, and character lengths are number 
of codepoints.
          * However, UTF-16 is the default, what all/most distributions do
          * and the established API that most drivers implement.
diff --git a/connectivity/source/drivers/odbc/OTools.cxx 
b/connectivity/source/drivers/odbc/OTools.cxx
index 0909b03f14b2..a5f7a6a75d85 100644
--- a/connectivity/source/drivers/odbc/OTools.cxx
+++ b/connectivity/source/drivers/odbc/OTools.cxx
@@ -65,7 +65,7 @@ size_t sqlTypeLen ( SQLSMALLINT _nType )
         return sizeof(SQLBIGINT);
     case SQL_C_UBIGINT:
         return sizeof(SQLUBIGINT);
-    /* UnixODBC gives this the same value as SQL_C_UBIGINT
+    /* iODBC gives this the same value as SQL_C_UBIGINT
     case SQL_C_BOOKMARK:
         return sizeof(BOOKMARK); */
     case SQL_C_TYPE_DATE:
@@ -99,7 +99,7 @@ size_t sqlTypeLen ( SQLSMALLINT _nType )
     case SQL_C_CHAR:
     case SQL_C_WCHAR:
     case SQL_C_BINARY:
-    // UnixODBC gives this the same value as SQL_C_BINARY
+    // iODBC gives this the same value as SQL_C_BINARY
     //case SQL_C_VARBOOKMARK:
     // Unknown datatype -> cannot predict length
     default:
diff --git a/external/iODBC/README b/external/iODBC/README
new file mode 100644
index 000000000000..df189dcd88e7
--- /dev/null
+++ b/external/iODBC/README
@@ -0,0 +1 @@
+iODBC is an open-source ODBC driver manager and SDK that facilitates the 
development of database-independent applications on Linux, FreeBSD, Unix and 
macOS platforms.  [http://www.iodbc.org/]
diff --git a/external/iODBC/inc/odbc/iodbcunix.h 
b/external/iODBC/inc/odbc/iodbcunix.h
new file mode 100644
index 000000000000..22e1518ba44a
--- /dev/null
+++ b/external/iODBC/inc/odbc/iodbcunix.h
@@ -0,0 +1,160 @@
+/*
+ *  iodbcunix.h
+ *
+ *  $Id$
+ *
+ *  ODBC defines for Unix
+ *
+ *  The iODBC driver manager.
+ *
+ *  Copyright (C) 1995 Ke Jin <[email protected]>
+ *  Copyright (C) 1996-2021 OpenLink Software <[email protected]>
+ *  All Rights Reserved.
+ *
+ *  This software is released under the terms of either of the following
+ *  licenses:
+ *
+ *      - GNU Library General Public License (see LICENSE.LGPL)
+ *      - The BSD License (see LICENSE.BSD).
+ *
+ *  Note that the only valid version of the LGPL license as far as this
+ *  project is concerned is the original GNU Library General Public License
+ *  Version 2, dated June 1991.
+ *
+ *  While not mandated by the BSD license, any patches you make to the
+ *  iODBC source code may be contributed back into the iODBC project
+ *  at your discretion. Contributions will benefit the Open Source and
+ *  Data Access community as a whole. Submissions may be made at:
+ *
+ *      http://www.iodbc.org
+ *
+ *
+ *  GNU Library Generic Public License Version 2
+ *  ============================================
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; only
+ *  Version 2 of the License dated June 1991.
+ *
+ *  This library 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
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ *  The BSD License
+ *  ===============
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *  1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *  3. Neither the name of OpenLink Software Inc. nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _IODBCUNIX_H
+#define _IODBCUNIX_H
+
+/*
+ *  Standard header files
+ */
+#include <stdlib.h>
+#include <unistd.h>
+
+#if defined(__WCHAR_TYPE__)
+#include <wchar.h>
+#endif
+
+
+/*
+ *  Windows-style declarations
+ */
+#define NEAR
+#define FAR
+#define EXPORT
+#define PASCAL
+#define VOID                   void
+#define CALLBACK
+#define _cdecl
+#define __stdcall
+
+
+/*
+ *  Boolean support
+ */
+#ifndef TRUE
+#define TRUE                   1
+#endif
+#ifndef FALSE
+#define FALSE                  0
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+ *  Windows-style typedefs
+ */
+#if defined (OBSOLETE_WINDOWS_TYPES)
+typedef unsigned char          BYTE;
+#endif
+typedef unsigned short         WORD;
+typedef unsigned int           DWORD;
+typedef char *                 LPSTR;
+typedef const char *           LPCSTR;
+typedef wchar_t *              LPWSTR;
+typedef const wchar_t *                LPCWSTR;
+typedef DWORD *                        LPDWORD;
+
+#if !defined(BOOL) && !defined(_OBJC_OBJC_H_)
+typedef int                    BOOL;
+#endif
+
+
+/*
+ *  Determine sizeof(long) in case it is not determined by configure/config.h
+ */
+#ifndef SIZEOF_LONG
+#if defined (_LP64)    || \
+    defined (__LP64__) || \
+    defined (__64BIT__)        || \
+    defined (__alpha)  || \
+    defined (__sparcv9)        || \
+    defined (__arch64__)
+#define SIZEOF_LONG    8               /* 64 bit operating systems */
+#else
+#define SIZEOF_LONG    4               /* 32 bit operating systems */
+#endif
+#endif /* SIZEOF_LONG */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _IODBCUNIX_H */
diff --git a/external/iODBC/inc/odbc/sql.h b/external/iODBC/inc/odbc/sql.h
new file mode 100644
index 000000000000..cabcb9691d8e
--- /dev/null
+++ b/external/iODBC/inc/odbc/sql.h
@@ -0,0 +1,1187 @@
+/*
+ *  sql.h
+ *
+ *  $Id$
+ *
+ *  ODBC defines
+ *
+ *  The iODBC driver manager.
+ *
+ *  Copyright (C) 1995 Ke Jin <[email protected]>
+ *  Copyright (C) 1996-2021 OpenLink Software <[email protected]>
+ *  All Rights Reserved.
+ *
+ *  This software is released under the terms of either of the following
+ *  licenses:
+ *
+ *      - GNU Library General Public License (see LICENSE.LGPL)
+ *      - The BSD License (see LICENSE.BSD).
+ *
+ *  Note that the only valid version of the LGPL license as far as this
+ *  project is concerned is the original GNU Library General Public License
+ *  Version 2, dated June 1991.
+ *
+ *  While not mandated by the BSD license, any patches you make to the
+ *  iODBC source code may be contributed back into the iODBC project
+ *  at your discretion. Contributions will benefit the Open Source and
+ *  Data Access community as a whole. Submissions may be made at:
+ *
+ *      http://www.iodbc.org
+ *
+ *
+ *  GNU Library Generic Public License Version 2
+ *  ============================================
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; only
+ *  Version 2 of the License dated June 1991.
+ *
+ *  This library 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
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ *  The BSD License
+ *  ===============
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *  1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *  3. Neither the name of OpenLink Software Inc. nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
+ *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _SQL_H
+#define _SQL_H
+
+/*
+ *  Set default specification to ODBC 3.51
+ */
+#ifndef ODBCVER
+#define ODBCVER                0x0351
+#endif
+
+#ifndef _SQLTYPES_H
+#include "sqltypes.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  Useful Constants
+ */
+#define SQL_MAX_MESSAGE_LENGTH                 512
+
+
+/*
+ *  Handle types
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_HANDLE_ENV                         1
+#define SQL_HANDLE_DBC                         2
+#define SQL_HANDLE_STMT                                3
+#define SQL_HANDLE_DESC                                4
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  Function return codes
+ */
+#define SQL_SUCCESS                            0
+#define SQL_SUCCESS_WITH_INFO                  1
+#define SQL_STILL_EXECUTING                    2
+#define SQL_ERROR                              (-1)
+#define SQL_INVALID_HANDLE                     (-2)
+#define SQL_NEED_DATA                          99
+#if (ODBCVER >= 0x0300)
+#define SQL_NO_DATA                            100
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  Test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO
+ */
+#define SQL_SUCCEEDED(rc)                      (((rc) & (~1)) == 0)
+
+
+/*
+ *  Special length values
+ */
+#define SQL_NULL_DATA                          (-1)
+#define SQL_DATA_AT_EXEC                       (-2)
+
+
+/*
+ *  Flags for null-terminated strings
+ */
+#define SQL_NTS                                        (-3)
+#define SQL_NTSL                               (-3L)
+
+
+/*
+ *  Standard SQL datatypes, using ANSI type numbering
+ */
+#define SQL_UNKNOWN_TYPE                       0
+#define SQL_CHAR                               1
+#define SQL_NUMERIC                            2
+#define SQL_DECIMAL                            3
+#define SQL_INTEGER                            4
+#define SQL_SMALLINT                           5
+#define SQL_FLOAT                              6
+#define SQL_REAL                               7
+#define SQL_DOUBLE                             8
+#if (ODBCVER >= 0x0300)
+#define SQL_DATETIME                           9
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_VARCHAR                            12
+
+
+/*
+ *  SQLGetTypeInfo request for all data types
+ */
+#define SQL_ALL_TYPES                          0
+
+
+/*
+ *  Statement attribute values for date/time data types
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_TYPE_DATE                          91
+#define SQL_TYPE_TIME                          92
+#define SQL_TYPE_TIMESTAMP                     93
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  Date/Time length constants
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DATE_LEN                           10
+#define SQL_TIME_LEN                           8       /* add P+1 if prec >0 */
+#define SQL_TIMESTAMP_LEN                      19      /* add P+1 if prec >0 */
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  NULL status constants
+ */
+#define SQL_NO_NULLS                           0
+#define SQL_NULLABLE                           1
+#define SQL_NULLABLE_UNKNOWN                   2
+
+
+/*
+ *  NULL Handles
+ */
+#define SQL_NULL_HENV                          0
+#define SQL_NULL_HDBC                          0
+#define SQL_NULL_HSTMT                         0
+#if (ODBCVER >= 0x0300)
+#define SQL_NULL_HDESC                         0
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  NULL handle for parent argument to SQLAllocHandle when allocating
+ *  a SQLHENV
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_NULL_HANDLE                                0L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  CLI option values
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_FALSE                              0
+#define SQL_TRUE                               1
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData()
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DEFAULT                            99
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLDataSources/SQLFetchScroll - FetchOrientation
+ */
+#define SQL_FETCH_NEXT                         1
+#define SQL_FETCH_FIRST                                2
+
+
+/*
+ *  SQLFetchScroll - FetchOrientation
+ */
+#define SQL_FETCH_LAST                         3
+#define SQL_FETCH_PRIOR                                4
+#define SQL_FETCH_ABSOLUTE                     5
+#define SQL_FETCH_RELATIVE                     6
+
+
+/*
+ *  SQLFreeStmt
+ */
+#define SQL_CLOSE                              0
+#define SQL_DROP                               1
+#define SQL_UNBIND                             2
+#define SQL_RESET_PARAMS                       3
+
+
+/*
+ *  SQLGetConnectAttr - connection attributes
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_ATTR_AUTO_IPD                      10001
+#define SQL_ATTR_METADATA_ID                   10014
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *   SQLGetData() code indicating that the application row descriptor
+ *   specifies the data type
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_ARD_TYPE                           (-99)
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetDescField - identifiers of fields in the SQL descriptor
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DESC_COUNT                         1001
+#define SQL_DESC_TYPE                          1002
+#define SQL_DESC_LENGTH                                1003
+#define SQL_DESC_OCTET_LENGTH_PTR              1004
+#define SQL_DESC_PRECISION                     1005
+#define SQL_DESC_SCALE                         1006
+#define SQL_DESC_DATETIME_INTERVAL_CODE                1007
+#define SQL_DESC_NULLABLE                      1008
+#define SQL_DESC_INDICATOR_PTR                 1009
+#define SQL_DESC_DATA_PTR                      1010
+#define SQL_DESC_NAME                          1011
+#define SQL_DESC_UNNAMED                       1012
+#define SQL_DESC_OCTET_LENGTH                  1013
+#define SQL_DESC_ALLOC_TYPE                    1099
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetDescField - SQL_DESC_ALLOC_TYPE
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DESC_ALLOC_AUTO                    1
+#define SQL_DESC_ALLOC_USER                    2
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetDescField - SQL_DESC_DATETIME_INTERVAL_CODE
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CODE_DATE                          1
+#define SQL_CODE_TIME                          2
+#define SQL_CODE_TIMESTAMP                     3
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetDescField - SQL_DESC_UNNAMED
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_NAMED                              0
+#define SQL_UNNAMED                            1
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetDiagField - identifiers of fields in the diagnostics area
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DIAG_RETURNCODE                    1
+#define SQL_DIAG_NUMBER                                2
+#define SQL_DIAG_ROW_COUNT                     3
+#define SQL_DIAG_SQLSTATE                      4
+#define SQL_DIAG_NATIVE                                5
+#define SQL_DIAG_MESSAGE_TEXT                  6
+#define SQL_DIAG_DYNAMIC_FUNCTION              7
+#define SQL_DIAG_CLASS_ORIGIN                  8
+#define SQL_DIAG_SUBCLASS_ORIGIN               9
+#define SQL_DIAG_CONNECTION_NAME               10
+#define SQL_DIAG_SERVER_NAME                   11
+#define SQL_DIAG_DYNAMIC_FUNCTION_CODE         12
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetDiagField - SQL_DIAG_DYNAMIC_FUNCTION_CODE
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DIAG_ALTER_DOMAIN                  3
+#define SQL_DIAG_ALTER_TABLE                   4
+#define SQL_DIAG_CALL                          7
+#define SQL_DIAG_CREATE_ASSERTION              6
+#define SQL_DIAG_CREATE_CHARACTER_SET          8
+#define SQL_DIAG_CREATE_COLLATION              10
+#define SQL_DIAG_CREATE_DOMAIN                 23
+#define SQL_DIAG_CREATE_INDEX                  (-1)
+#define SQL_DIAG_CREATE_SCHEMA                 64
+#define SQL_DIAG_CREATE_TABLE                  77
+#define SQL_DIAG_CREATE_TRANSLATION            79
+#define SQL_DIAG_CREATE_VIEW                   84
+#define SQL_DIAG_DELETE_WHERE                  19
+#define        SQL_DIAG_DROP_ASSERTION                 24
+#define        SQL_DIAG_DROP_CHARACTER_SET             25
+#define        SQL_DIAG_DROP_COLLATION                 26
+#define        SQL_DIAG_DROP_DOMAIN                    27
+#define SQL_DIAG_DROP_INDEX                    (-2)
+#define SQL_DIAG_DROP_SCHEMA                   31
+#define SQL_DIAG_DROP_TABLE                    32
+#define SQL_DIAG_DROP_TRANSLATION              33
+#define SQL_DIAG_DROP_VIEW                     36
+#define SQL_DIAG_DYNAMIC_DELETE_CURSOR         38
+#define SQL_DIAG_DYNAMIC_UPDATE_CURSOR         81
+#define SQL_DIAG_GRANT                         48
+#define SQL_DIAG_INSERT                                50
+#define SQL_DIAG_REVOKE                                59
+#define SQL_DIAG_SELECT_CURSOR                 85
+#define SQL_DIAG_UNKNOWN_STATEMENT             0
+#define SQL_DIAG_UPDATE_WHERE                  82
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetEnvAttr - environment attribute
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_ATTR_OUTPUT_NTS                    10001
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetFunctions
+ */
+#define SQL_API_SQLALLOCCONNECT                        1
+#define SQL_API_SQLALLOCENV                    2
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLALLOCHANDLE                 1001
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLALLOCSTMT                   3
+#define SQL_API_SQLBINDCOL                     4
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLBINDPARAM                   1002
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLCANCEL                      5
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLCLOSECURSOR                 1003
+#define SQL_API_SQLCOLATTRIBUTE                        6
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLCOLUMNS                     40
+#define SQL_API_SQLCONNECT                     7
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLCOPYDESC                    1004
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLDATASOURCES                 57
+#define SQL_API_SQLDESCRIBECOL                 8
+#define SQL_API_SQLDISCONNECT                  9
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLENDTRAN                     1005
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLERROR                       10
+#define SQL_API_SQLEXECDIRECT                  11
+#define SQL_API_SQLEXECUTE                     12
+#define SQL_API_SQLFETCH                       13
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLFETCHSCROLL                 1021
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLFREECONNECT                 14
+#define SQL_API_SQLFREEENV                     15
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLFREEHANDLE                  1006
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLFREESTMT                    16
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLGETCONNECTATTR              1007
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLGETCONNECTOPTION            42
+#define SQL_API_SQLGETCURSORNAME               17
+#define SQL_API_SQLGETDATA                     43
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLGETDESCFIELD                        1008
+#define SQL_API_SQLGETDESCREC                  1009
+#define SQL_API_SQLGETDIAGFIELD                        1010
+#define SQL_API_SQLGETDIAGREC                  1011
+#define SQL_API_SQLGETENVATTR                  1012
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLGETFUNCTIONS                        44
+#define SQL_API_SQLGETINFO                     45
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLGETSTMTATTR                 1014
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLGETSTMTOPTION               46
+#define SQL_API_SQLGETTYPEINFO                 47
+#define SQL_API_SQLNUMRESULTCOLS               18
+#define SQL_API_SQLPARAMDATA                   48
+#define SQL_API_SQLPREPARE                     19
+#define SQL_API_SQLPUTDATA                     49
+#define SQL_API_SQLROWCOUNT                    20
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLSETCONNECTATTR              1016
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLSETCONNECTOPTION            50
+#define SQL_API_SQLSETCURSORNAME               21
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLSETDESCFIELD                        1017
+#define SQL_API_SQLSETDESCREC                  1018
+#define SQL_API_SQLSETENVATTR                  1019
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLSETPARAM                    22
+#if (ODBCVER >= 0x0300)
+#define SQL_API_SQLSETSTMTATTR                 1020
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLSETSTMTOPTION               51
+#define SQL_API_SQLSPECIALCOLUMNS              52
+#define SQL_API_SQLSTATISTICS                  53
+#define SQL_API_SQLTABLES                      54
+#define SQL_API_SQLTRANSACT                    23
+
+
+/*
+ *  SQLGetInfo
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_MAX_DRIVER_CONNECTIONS             0
+#define SQL_MAXIMUM_DRIVER_CONNECTIONS         SQL_MAX_DRIVER_CONNECTIONS
+#define SQL_MAX_CONCURRENT_ACTIVITIES          1
+#define SQL_MAXIMUM_CONCURRENT_ACTIVITIES      SQL_MAX_CONCURRENT_ACTIVITIES
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_DATA_SOURCE_NAME                   2
+#define SQL_FETCH_DIRECTION                    8
+#define SQL_SERVER_NAME                                13
+#define SQL_SEARCH_PATTERN_ESCAPE              14
+#define SQL_DBMS_NAME                          17
+#define SQL_DBMS_VER                           18
+#define SQL_ACCESSIBLE_TABLES                  19
+#define SQL_ACCESSIBLE_PROCEDURES              20
+#define SQL_CURSOR_COMMIT_BEHAVIOR             23
+#define SQL_DATA_SOURCE_READ_ONLY              25
+#define SQL_DEFAULT_TXN_ISOLATION              26
+#define SQL_IDENTIFIER_CASE                    28
+#define SQL_IDENTIFIER_QUOTE_CHAR              29
+#define SQL_MAX_COLUMN_NAME_LEN                        30
+#define SQL_MAXIMUM_COLUMN_NAME_LENGTH         SQL_MAX_COLUMN_NAME_LEN
+#define SQL_MAX_CURSOR_NAME_LEN                        31
+#define SQL_MAXIMUM_CURSOR_NAME_LENGTH         SQL_MAX_CURSOR_NAME_LEN
+#define SQL_MAX_SCHEMA_NAME_LEN                        32
+#define SQL_MAXIMUM_SCHEMA_NAME_LENGTH         SQL_MAX_SCHEMA_NAME_LEN
+#define SQL_MAX_CATALOG_NAME_LEN               34
+#define SQL_MAXIMUM_CATALOG_NAME_LENGTH                SQL_MAX_CATALOG_NAME_LEN
+#define SQL_MAX_TABLE_NAME_LEN                 35
+#define SQL_SCROLL_CONCURRENCY                 43
+#define SQL_TXN_CAPABLE                                46
+#define SQL_TRANSACTION_CAPABLE                        SQL_TXN_CAPABLE
+#define SQL_USER_NAME                          47
+#define SQL_TXN_ISOLATION_OPTION               72
+#define SQL_TRANSACTION_ISOLATION_OPTION       SQL_TXN_ISOLATION_OPTION
+#define SQL_INTEGRITY                          73
+#define SQL_GETDATA_EXTENSIONS                 81
+#define SQL_NULL_COLLATION                     85
+#define SQL_ALTER_TABLE                                86
+#define SQL_ORDER_BY_COLUMNS_IN_SELECT         90
+#define SQL_SPECIAL_CHARACTERS                 94
+#define SQL_MAX_COLUMNS_IN_GROUP_BY            97
+#define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY                
SQL_MAX_COLUMNS_IN_GROUP_BY
+#define SQL_MAX_COLUMNS_IN_INDEX               98
+#define SQL_MAXIMUM_COLUMNS_IN_INDEX           SQL_MAX_COLUMNS_IN_INDEX
+#define SQL_MAX_COLUMNS_IN_ORDER_BY            99
+#define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY                
SQL_MAX_COLUMNS_IN_ORDER_BY
+#define SQL_MAX_COLUMNS_IN_SELECT              100
+#define SQL_MAXIMUM_COLUMNS_IN_SELECT          SQL_MAX_COLUMNS_IN_SELECT
+#define SQL_MAX_COLUMNS_IN_TABLE               101
+#define SQL_MAX_INDEX_SIZE                     102
+#define SQL_MAXIMUM_INDEX_SIZE                 SQL_MAX_INDEX_SIZE
+#define SQL_MAX_ROW_SIZE                       104
+#define SQL_MAXIMUM_ROW_SIZE                   SQL_MAX_ROW_SIZE
+#define SQL_MAX_STATEMENT_LEN                  105
+#define SQL_MAXIMUM_STATEMENT_LENGTH           SQL_MAX_STATEMENT_LEN
+#define SQL_MAX_TABLES_IN_SELECT               106
+#define SQL_MAXIMUM_TABLES_IN_SELECT           SQL_MAX_TABLES_IN_SELECT
+#define SQL_MAX_USER_NAME_LEN                  107
+#define SQL_MAXIMUM_USER_NAME_LENGTH           SQL_MAX_USER_NAME_LEN
+#if (ODBCVER >= 0x0300)
+#define SQL_OJ_CAPABILITIES                    115
+#define SQL_OUTER_JOIN_CAPABILITIES            SQL_OJ_CAPABILITIES
+#endif /* ODBCVER >= 0x0300 */
+
+#if (ODBCVER >= 0x0300)
+#define SQL_XOPEN_CLI_YEAR                     10000
+#define SQL_CURSOR_SENSITIVITY                 10001
+#define SQL_DESCRIBE_PARAMETER                 10002
+#define SQL_CATALOG_NAME                       10003
+#define SQL_COLLATION_SEQ                      10004
+#define SQL_MAX_IDENTIFIER_LEN                 10005
+#define SQL_MAXIMUM_IDENTIFIER_LENGTH          SQL_MAX_IDENTIFIER_LEN
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetInfo - SQL_ALTER_TABLE
+ */
+#if (ODBCVER >= 0x0200)
+#define SQL_AT_ADD_COLUMN                      0x00000001L
+#define SQL_AT_DROP_COLUMN                     0x00000002L
+#endif /* ODBCVER >= 0x0300 */
+
+#if (ODBCVER >= 0x0300)
+#define SQL_AT_ADD_CONSTRAINT                  0x00000008L
+/*
+ * The following bitmasks are ODBC extensions and defined in sqlext.h:
+ *
+ * #define SQL_AT_COLUMN_SINGLE                                0x00000020L
+ * #define SQL_AT_ADD_COLUMN_DEFAULT                   0x00000040L
+ * #define SQL_AT_ADD_COLUMN_COLLATION                 0x00000080L
+ * #define SQL_AT_SET_COLUMN_DEFAULT                   0x00000100L
+ * #define SQL_AT_DROP_COLUMN_DEFAULT                  0x00000200L
+ * #define SQL_AT_DROP_COLUMN_CASCADE                  0x00000400L
+ * #define SQL_AT_DROP_COLUMN_RESTRICT                 0x00000800L
+ * #define SQL_AT_ADD_TABLE_CONSTRAINT                 0x00001000L
+ * #define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE                0x00002000L
+ * #define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT       0x00004000L
+ * #define SQL_AT_CONSTRAINT_NAME_DEFINITION           0x00008000L
+ * #define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED                0x00010000L
+ * #define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE       0x00020000L
+ * #define SQL_AT_CONSTRAINT_DEFERRABLE                        0x00040000L
+ * #define SQL_AT_CONSTRAINT_NON_DEFERRABLE            0x00080000L
+ */
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetInfo - SQL_ASYNC_MODE
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_AM_NONE                            0
+#define SQL_AM_CONNECTION                      1
+#define SQL_AM_STATEMENT                       2
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetInfo - SQL_CURSOR_COMMIT_BEHAVIOR
+ */
+#define SQL_CB_DELETE                          0
+#define SQL_CB_CLOSE                           1
+#define SQL_CB_PRESERVE                                2
+
+
+/*
+ *  SQLGetInfo - SQL_FETCH_DIRECTION
+ */
+#define SQL_FD_FETCH_NEXT                      0x00000001L
+#define SQL_FD_FETCH_FIRST                     0x00000002L
+#define SQL_FD_FETCH_LAST                      0x00000004L
+#define SQL_FD_FETCH_PRIOR                     0x00000008L
+#define SQL_FD_FETCH_ABSOLUTE                  0x00000010L
+#define SQL_FD_FETCH_RELATIVE                  0x00000020L
+
+
+/*
+ *  SQLGetInfo - SQL_GETDATA_EXTENSIONS
+ */
+#define SQL_GD_ANY_COLUMN                      0x00000001L
+#define SQL_GD_ANY_ORDER                       0x00000002L
+
+
+/*
+ *  SQLGetInfo - SQL_IDENTIFIER_CASE
+ */
+#define SQL_IC_UPPER                           1
+#define SQL_IC_LOWER                           2
+#define SQL_IC_SENSITIVE                       3
+#define SQL_IC_MIXED                           4
+
+
+/*
+ *  SQLGetInfo - SQL_NULL_COLLATION
+ */
+#define SQL_NC_HIGH                            0
+#define SQL_NC_LOW                             1
+
+
+/*
+ *  SQLGetInfo - SQL_OJ_CAPABILITIES
+ */
+#if (ODBCVER >= 0x0201)
+#define SQL_OJ_LEFT                            0x00000001L
+#define SQL_OJ_RIGHT                           0x00000002L
+#define SQL_OJ_FULL                            0x00000004L
+#define SQL_OJ_NESTED                          0x00000008L
+#define SQL_OJ_NOT_ORDERED                     0x00000010L
+#define SQL_OJ_INNER                           0x00000020L
+#define SQL_OJ_ALL_COMPARISON_OPS              0x00000040L
+#endif
+
+
+/*
+ *  SQLGetInfo - SQL_SCROLL_CONCURRENCY
+ */
+#define SQL_SCCO_READ_ONLY                     0x00000001L
+#define SQL_SCCO_LOCK                          0x00000002L
+#define SQL_SCCO_OPT_ROWVER                    0x00000004L
+#define SQL_SCCO_OPT_VALUES                    0x00000008L
+
+
+/*
+ *  SQLGetInfo - SQL_TXN_CAPABLE
+ */
+#define SQL_TC_NONE                            0
+#define SQL_TC_DML                             1
+#define SQL_TC_ALL                             2
+#define SQL_TC_DDL_COMMIT                      3
+#define SQL_TC_DDL_IGNORE                      4
+
+
+/*
+ *  SQLGetInfo - SQL_TXN_ISOLATION_OPTION
+ */
+#define SQL_TXN_READ_UNCOMMITTED               0x00000001L
+#define SQL_TRANSACTION_READ_UNCOMMITTED       SQL_TXN_READ_UNCOMMITTED
+#define SQL_TXN_READ_COMMITTED                 0x00000002L
+#define SQL_TRANSACTION_READ_COMMITTED         SQL_TXN_READ_COMMITTED
+#define SQL_TXN_REPEATABLE_READ                        0x00000004L
+#define SQL_TRANSACTION_REPEATABLE_READ                SQL_TXN_REPEATABLE_READ
+#define SQL_TXN_SERIALIZABLE                   0x00000008L
+#define SQL_TRANSACTION_SERIALIZABLE           SQL_TXN_SERIALIZABLE
+
+
+/*
+ *  SQLGetStmtAttr - statement attributes
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_ATTR_APP_ROW_DESC                  10010
+#define SQL_ATTR_APP_PARAM_DESC                        10011
+#define SQL_ATTR_IMP_ROW_DESC                  10012
+#define SQL_ATTR_IMP_PARAM_DESC                        10013
+#define SQL_ATTR_CURSOR_SCROLLABLE             (-1)
+#define SQL_ATTR_CURSOR_SENSITIVITY            (-2)
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetStmtAttr - SQL_ATTR_CURSOR_SCROLLABLE
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_NONSCROLLABLE                      0
+#define SQL_SCROLLABLE                         1
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetStmtAttr - SQL_ATTR_CURSOR_SENSITIVITY
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_UNSPECIFIED                                0
+#define SQL_INSENSITIVE                                1
+#define SQL_SENSITIVE                          2
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLGetTypeInfo - SEARCHABLE
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_PRED_NONE                          0
+#define SQL_PRED_CHAR                          1
+#define SQL_PRED_BASIC                         2
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLSpecialColumns - Column scopes
+ */
+#define SQL_SCOPE_CURROW                       0
+#define SQL_SCOPE_TRANSACTION                  1
+#define SQL_SCOPE_SESSION                      2
+
+
+/*
+ *  SQLSpecialColumns - PSEUDO_COLUMN
+ */
+#define SQL_PC_UNKNOWN                         0
+#if (ODBCVER >= 0x0300)
+#define SQL_PC_NON_PSEUDO                      1
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_PC_PSEUDO                          2
+
+
+/*
+ *  SQLSpecialColumns - IdentifierType
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_ROW_IDENTIFIER                     1
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ *  SQLStatistics - fUnique
+ */
+#define SQL_INDEX_UNIQUE                       0
+#define SQL_INDEX_ALL                          1
+
+
+/*
+ *  SQLStatistics - TYPE
+ */
+#define SQL_INDEX_CLUSTERED                    1
+#define SQL_INDEX_HASHED                       2
+#define SQL_INDEX_OTHER                                3
+
+
+/*
+ *  SQLTransact/SQLEndTran
+ */
+#define SQL_COMMIT                             0
+#define SQL_ROLLBACK                           1
+
+
+/*
+ *  Function Prototypes
+ */
+SQLRETURN SQL_API SQLAllocConnect (
+    SQLHENV              EnvironmentHandle,
+    SQLHDBC            * ConnectionHandle);
+
+SQLRETURN SQL_API SQLAllocEnv (
+    SQLHENV            * EnvironmentHandle);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLAllocHandle (
+    SQLSMALLINT                  HandleType,
+    SQLHANDLE            InputHandle,
+    SQLHANDLE          * OutputHandle);
+#endif /* ODBCVER >= 0x0300 */
+
+SQLRETURN SQL_API SQLAllocStmt (
+    SQLHDBC              ConnectionHandle,
+    SQLHSTMT           * StatementHandle);
+
+SQLRETURN SQL_API SQLBindCol (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         ColumnNumber,
+    SQLSMALLINT                  TargetType,
+    SQLPOINTER           TargetValue,
+    SQLLEN               BufferLength,
+    SQLLEN             * StrLen_or_Ind);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLBindParam (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         ParameterNumber,
+    SQLSMALLINT                  ValueType,
+    SQLSMALLINT                  ParameterType,
+    SQLULEN              LengthPrecision,
+    SQLSMALLINT                  ParameterScale,
+    SQLPOINTER           ParameterValue,
+    SQLLEN             * StrLen_or_Ind);
+#endif
+
+SQLRETURN SQL_API SQLCancel (
+    SQLHSTMT             StatementHandle);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLCloseCursor (
+    SQLHSTMT             StatementHandle);
+
+/*
+ *  Using SQLLEN * instead of SQLPOINTER for NumericAttribute,
+ *  makes the prototype the same as SQLColAttributes (deprecated)
+ *  and clearer for 64bit ports
+ */
+SQLRETURN SQL_API SQLColAttribute (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         ColumnNumber,
+    SQLUSMALLINT         FieldIdentifier,
+    SQLPOINTER           CharacterAttribute,
+    SQLSMALLINT                  BufferLength,
+    SQLSMALLINT                * StringLength,
+    SQLLEN             * NumericAttribute);
+#endif
+
+SQLRETURN SQL_API SQLColumns (
+    SQLHSTMT             StatementHandle,
+    SQLCHAR            * CatalogName,
+    SQLSMALLINT                  NameLength1,
+    SQLCHAR            * SchemaName,
+    SQLSMALLINT                  NameLength2,
+    SQLCHAR            * TableName,
+    SQLSMALLINT                  NameLength3,
+    SQLCHAR            * ColumnName,
+    SQLSMALLINT                  NameLength4);
+
+SQLRETURN SQL_API SQLConnect (
+    SQLHDBC              ConnectionHandle,
+    SQLCHAR            * ServerName,
+    SQLSMALLINT                  NameLength1,
+    SQLCHAR            * UserName,
+    SQLSMALLINT                  NameLength2,
+    SQLCHAR            * Authentication,
+    SQLSMALLINT                  NameLength3);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLCopyDesc (
+    SQLHDESC             SourceDescHandle,
+    SQLHDESC             TargetDescHandle);
+#endif
+
+SQLRETURN SQL_API SQLDataSources (
+    SQLHENV              EnvironmentHandle,
+    SQLUSMALLINT         Direction,
+    SQLCHAR            * ServerName,
+    SQLSMALLINT                  BufferLength1,
+    SQLSMALLINT                * NameLength1,
+    SQLCHAR            * Description,
+    SQLSMALLINT                  BufferLength2,
+    SQLSMALLINT                * NameLength2);
+
+SQLRETURN SQL_API SQLDescribeCol (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         ColumnNumber,
+    SQLCHAR            * ColumnName,
+    SQLSMALLINT                  BufferLength,
+    SQLSMALLINT                * NameLength,
+    SQLSMALLINT                * DataType,
+    SQLULEN            * ColumnSize,
+    SQLSMALLINT                * DecimalDigits,
+    SQLSMALLINT                * Nullable);
+
+SQLRETURN SQL_API SQLDisconnect (
+    SQLHDBC              ConnectionHandle);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLEndTran (
+    SQLSMALLINT                  HandleType,
+    SQLHANDLE            Handle,
+    SQLSMALLINT                  CompletionType);
+#endif
+
+SQLRETURN SQL_API SQLError (
+    SQLHENV              EnvironmentHandle,
+    SQLHDBC              ConnectionHandle,
+    SQLHSTMT             StatementHandle,
+    SQLCHAR            * Sqlstate,
+    SQLINTEGER         * NativeError,
+    SQLCHAR            * MessageText,
+    SQLSMALLINT                  BufferLength,
+    SQLSMALLINT                * TextLength);
+
+SQLRETURN SQL_API SQLExecDirect (
+    SQLHSTMT             StatementHandle,
+    SQLCHAR            * StatementText,
+    SQLINTEGER           TextLength);
+
+SQLRETURN SQL_API SQLExecute (
+    SQLHSTMT             StatementHandle);
+
+SQLRETURN SQL_API SQLFetch (
+    SQLHSTMT             StatementHandle);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLFetchScroll (
+    SQLHSTMT             StatementHandle,
+    SQLSMALLINT                  FetchOrientation,
+    SQLLEN               FetchOffset);
+#endif
+
+SQLRETURN SQL_API SQLFreeConnect (
+    SQLHDBC              ConnectionHandle);
+
+SQLRETURN SQL_API SQLFreeEnv (
+    SQLHENV              EnvironmentHandle);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLFreeHandle (
+    SQLSMALLINT                  HandleType,
+    SQLHANDLE            Handle);
+#endif
+
+SQLRETURN SQL_API SQLFreeStmt (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         Option);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLGetConnectAttr (
+    SQLHDBC              ConnectionHandle,
+    SQLINTEGER           Attribute,
+    SQLPOINTER           Value,
+    SQLINTEGER           BufferLength,
+    SQLINTEGER         * StringLength);
+#endif
+
+SQLRETURN SQL_API SQLGetConnectOption (
+    SQLHDBC              ConnectionHandle,
+    SQLUSMALLINT         Option,
+    SQLPOINTER           Value);
+
+SQLRETURN SQL_API SQLGetCursorName (
+    SQLHSTMT             StatementHandle,
+    SQLCHAR            * CursorName,
+    SQLSMALLINT                  BufferLength,
+    SQLSMALLINT                * NameLength);
+
+SQLRETURN SQL_API SQLGetData (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         ColumnNumber,
+    SQLSMALLINT                  TargetType,
+    SQLPOINTER           TargetValue,
+    SQLLEN               BufferLength,
+    SQLLEN             * StrLen_or_Ind);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLGetDescField (
+    SQLHDESC             DescriptorHandle,
+    SQLSMALLINT                  RecNumber,
+    SQLSMALLINT                  FieldIdentifier,
+    SQLPOINTER           Value,
+    SQLINTEGER           BufferLength,
+    SQLINTEGER         * StringLength);
+
+SQLRETURN SQL_API SQLGetDescRec (
+    SQLHDESC             DescriptorHandle,
+    SQLSMALLINT                  RecNumber,
+    SQLCHAR            * Name,
+    SQLSMALLINT                  BufferLength,
+    SQLSMALLINT                * StringLength,
+    SQLSMALLINT                * Type,
+    SQLSMALLINT                * SubType,
+    SQLLEN             * Length,
+    SQLSMALLINT                * Precision,
+    SQLSMALLINT                * Scale,
+    SQLSMALLINT                * Nullable);
+
+SQLRETURN SQL_API SQLGetDiagField (
+    SQLSMALLINT                  HandleType,
+    SQLHANDLE            Handle,
+    SQLSMALLINT                  RecNumber,
+    SQLSMALLINT                  DiagIdentifier,
+    SQLPOINTER           DiagInfo,
+    SQLSMALLINT                  BufferLength,
+    SQLSMALLINT                * StringLength);
+
+SQLRETURN SQL_API SQLGetDiagRec (
+    SQLSMALLINT                  HandleType,
+    SQLHANDLE            Handle,
+    SQLSMALLINT                  RecNumber,
+    SQLCHAR            * Sqlstate,
+    SQLINTEGER         * NativeError,
+    SQLCHAR            * MessageText,
+    SQLSMALLINT                  BufferLength,
+    SQLSMALLINT                * TextLength);
+
+SQLRETURN SQL_API SQLGetEnvAttr (
+    SQLHENV              EnvironmentHandle,
+    SQLINTEGER           Attribute,
+    SQLPOINTER           Value,
+    SQLINTEGER           BufferLength,
+    SQLINTEGER         * StringLength);
+#endif /* ODBCVER >= 0x0300 */
+
+SQLRETURN SQL_API SQLGetFunctions (
+    SQLHDBC            ConnectionHandle,
+    SQLUSMALLINT       FunctionId,
+    SQLUSMALLINT *     Supported);
+
+SQLRETURN SQL_API SQLGetInfo (
+    SQLHDBC              ConnectionHandle,
+    SQLUSMALLINT         InfoType,
+    SQLPOINTER           InfoValue,
+    SQLSMALLINT                  BufferLength,
+    SQLSMALLINT                * StringLength);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLGetStmtAttr (
+    SQLHSTMT             StatementHandle,
+    SQLINTEGER           Attribute,
+    SQLPOINTER           Value,
+    SQLINTEGER           BufferLength,
+    SQLINTEGER         * StringLength);
+#endif /* ODBCVER >= 0x0300 */
+
+SQLRETURN SQL_API SQLGetStmtOption (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         Option,
+    SQLPOINTER           Value);
+
+SQLRETURN SQL_API SQLGetTypeInfo (
+    SQLHSTMT             StatementHandle,
+    SQLSMALLINT                  DataType);
+
+SQLRETURN SQL_API SQLNumResultCols (
+    SQLHSTMT             StatementHandle,
+    SQLSMALLINT                * ColumnCount);
+
+SQLRETURN SQL_API SQLParamData (
+    SQLHSTMT             StatementHandle,
+    SQLPOINTER         * Value);
+
+SQLRETURN SQL_API SQLPrepare (
+    SQLHSTMT             StatementHandle,
+    SQLCHAR            * StatementText,
+    SQLINTEGER           TextLength);
+
+SQLRETURN SQL_API SQLPutData (
+    SQLHSTMT             StatementHandle,
+    SQLPOINTER           Data,
+    SQLLEN               StrLen_or_Ind);
+
+SQLRETURN SQL_API SQLRowCount (
+    SQLHSTMT             StatementHandle,
+    SQLLEN             * RowCount);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLSetConnectAttr (
+    SQLHDBC              ConnectionHandle,
+    SQLINTEGER           Attribute,
+    SQLPOINTER           Value,
+    SQLINTEGER           StringLength);
+#endif /* ODBCVER >= 0x0300 */
+
+SQLRETURN SQL_API SQLSetConnectOption (
+    SQLHDBC              ConnectionHandle,
+    SQLUSMALLINT         Option,
+    SQLULEN              Value);
+
+SQLRETURN SQL_API SQLSetCursorName (
+    SQLHSTMT             StatementHandle,
+    SQLCHAR            * CursorName,
+    SQLSMALLINT                  NameLength);
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLSetDescField (
+    SQLHDESC             DescriptorHandle,
+    SQLSMALLINT                  RecNumber,
+    SQLSMALLINT                  FieldIdentifier,
+    SQLPOINTER           Value,
+    SQLINTEGER           BufferLength);
+
+SQLRETURN SQL_API SQLSetDescRec (
+    SQLHDESC             DescriptorHandle,
+    SQLSMALLINT                  RecNumber,
+    SQLSMALLINT                  Type,
+    SQLSMALLINT                  SubType,
+    SQLLEN               Length,
+    SQLSMALLINT                  Precision,
+    SQLSMALLINT                  Scale,
+    SQLPOINTER           Data,
+    SQLLEN             * StringLength,
+    SQLLEN             * Indicator);
+
+SQLRETURN SQL_API SQLSetEnvAttr (
+    SQLHENV              EnvironmentHandle,
+    SQLINTEGER           Attribute,
+    SQLPOINTER           Value,
+    SQLINTEGER           StringLength);
+#endif /* ODBCVER >= 0x0300 */
+
+
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLSetStmtAttr (
+    SQLHSTMT             StatementHandle,
+    SQLINTEGER           Attribute,
+    SQLPOINTER           Value,
+    SQLINTEGER           StringLength);
+#endif
+
+SQLRETURN SQL_API SQLSetStmtOption (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         Option,
+    SQLULEN              Value);
+
+SQLRETURN SQL_API SQLSpecialColumns (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         IdentifierType,
+    SQLCHAR            * CatalogName,
+    SQLSMALLINT                  NameLength1,
+    SQLCHAR            * SchemaName,
+    SQLSMALLINT                  NameLength2,
+    SQLCHAR            * TableName,
+    SQLSMALLINT                  NameLength3,
+    SQLUSMALLINT         Scope,
+    SQLUSMALLINT         Nullable);
+
+SQLRETURN SQL_API SQLStatistics (
+    SQLHSTMT             StatementHandle,
+    SQLCHAR            * CatalogName,
+    SQLSMALLINT                  NameLength1,
+    SQLCHAR            * SchemaName,
+    SQLSMALLINT                  NameLength2,
+    SQLCHAR            * TableName,
+    SQLSMALLINT                  NameLength3,
+    SQLUSMALLINT         Unique,
+    SQLUSMALLINT         Reserved);
+
+SQLRETURN SQL_API SQLTables (
+    SQLHSTMT             StatementHandle,
+    SQLCHAR            * CatalogName,
+    SQLSMALLINT                  NameLength1,
+    SQLCHAR            * SchemaName,
+    SQLSMALLINT                  NameLength2,
+    SQLCHAR            * TableName,
+    SQLSMALLINT                  NameLength3,
+    SQLCHAR            * TableType,
+    SQLSMALLINT                  NameLength4);
+
+SQLRETURN SQL_API SQLTransact (
+    SQLHENV              EnvironmentHandle,
+    SQLHDBC              ConnectionHandle,
+    SQLUSMALLINT         CompletionType);
+
+
+/*
+ *  Depreciated ODBC 1.0 function - Use SQLBindParameter
+ */
+SQLRETURN SQL_API SQLSetParam (
+    SQLHSTMT             StatementHandle,
+    SQLUSMALLINT         ParameterNumber,
+    SQLSMALLINT                  ValueType,
+    SQLSMALLINT                  ParameterType,
+    SQLULEN              LengthPrecision,
+    SQLSMALLINT                  ParameterScale,
+    SQLPOINTER           ParameterValue,
+    SQLLEN             * StrLen_or_Ind);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* _SQL_H */
diff --git a/external/iODBC/inc/odbc/sqlext.h b/external/iODBC/inc/odbc/sqlext.h
new file mode 100644
index 000000000000..035e03bc8f7f
--- /dev/null
+++ b/external/iODBC/inc/odbc/sqlext.h
@@ -0,0 +1,2573 @@
+/*
+ *  sqlext.h
+ *
+ *  $Id$
+ *
+ *  ODBC defines (ext)
+ *
+ *  The iODBC driver manager.
+ *
+ *  Copyright (C) 1995 Ke Jin <[email protected]>
+ *  Copyright (C) 1996-2021 OpenLink Software <[email protected]>
+ *  All Rights Reserved.
+ *
+ *  This software is released under the terms of either of the following
+ *  licenses:
+ *
+ *      - GNU Library General Public License (see LICENSE.LGPL)
+ *      - The BSD License (see LICENSE.BSD).
+ *
+ *  Note that the only valid version of the LGPL license as far as this
+ *  project is concerned is the original GNU Library General Public License
+ *  Version 2, dated June 1991.
+ *
+ *  While not mandated by the BSD license, any patches you make to the
+ *  iODBC source code may be contributed back into the iODBC project
+ *  at your discretion. Contributions will benefit the Open Source and
+ *  Data Access community as a whole. Submissions may be made at:
+ *
+ *      http://www.iodbc.org
+ *
+ *
+ *  GNU Library Generic Public License Version 2
+ *  ============================================
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
-e 
... etc. - the rest is truncated

Reply via email to