summaryrefslogtreecommitdiffstats
path: root/external/liblangtag
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /external/liblangtag
parentInitial commit. (diff)
downloadlibreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz
libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'external/liblangtag')
-rw-r--r--external/liblangtag/ExternalPackage_liblangtag.mk20
-rw-r--r--external/liblangtag/ExternalPackage_liblangtag_data.mk37
-rw-r--r--external/liblangtag/ExternalProject_liblangtag.mk54
-rw-r--r--external/liblangtag/Makefile7
-rw-r--r--external/liblangtag/Module_liblangtag.mk25
-rw-r--r--external/liblangtag/README10
-rw-r--r--external/liblangtag/UnpackedTarball_liblangtag.mk35
-rw-r--r--external/liblangtag/clang-cl.patch.041
-rw-r--r--external/liblangtag/langtag-libtool-rpath.patch.023
-rw-r--r--external/liblangtag/liblangtag-bundled-soname.patch.010
10 files changed, 262 insertions, 0 deletions
diff --git a/external/liblangtag/ExternalPackage_liblangtag.mk b/external/liblangtag/ExternalPackage_liblangtag.mk
new file mode 100644
index 000000000..549f5eb36
--- /dev/null
+++ b/external/liblangtag/ExternalPackage_liblangtag.mk
@@ -0,0 +1,20 @@
+# -*- 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,liblangtag,liblangtag))
+
+$(eval $(call gb_ExternalPackage_use_external_project,liblangtag,liblangtag))
+
+ifeq ($(OS),MACOSX)
+$(eval $(call gb_ExternalPackage_add_file,liblangtag,$(LIBO_LIB_FOLDER)/liblangtag.1.dylib,liblangtag/.libs/liblangtag.1.dylib))
+else ifeq ($(DISABLE_DYNLOADING),)
+$(eval $(call gb_ExternalPackage_add_file,liblangtag,$(LIBO_LIB_FOLDER)/liblangtag-lo.so.1,liblangtag/.libs/liblangtag-lo.so.1.4.1))
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/liblangtag/ExternalPackage_liblangtag_data.mk b/external/liblangtag/ExternalPackage_liblangtag_data.mk
new file mode 100644
index 000000000..fee94a1b5
--- /dev/null
+++ b/external/liblangtag/ExternalPackage_liblangtag_data.mk
@@ -0,0 +1,37 @@
+# -*- 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,liblangtag_data,liblangtag))
+
+$(eval $(call gb_ExternalPackage_use_external_project,liblangtag_data,liblangtag))
+
+$(eval $(call gb_ExternalPackage_add_files,liblangtag_data,$(LIBO_SHARE_FOLDER)/liblangtag,\
+ data/language-subtag-registry.xml \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,liblangtag_data,$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47,\
+ data/common/bcp47/calendar.xml \
+ data/common/bcp47/collation.xml \
+ data/common/bcp47/currency.xml \
+ data/common/bcp47/number.xml \
+ data/common/bcp47/timezone.xml \
+ data/common/bcp47/transform.xml \
+ data/common/bcp47/transform_ime.xml \
+ data/common/bcp47/transform_keyboard.xml \
+ data/common/bcp47/transform_mt.xml \
+ data/common/bcp47/transform_private_use.xml \
+ data/common/bcp47/variant.xml \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,liblangtag_data,$(LIBO_SHARE_FOLDER)/liblangtag/common/supplemental,\
+ data/common/supplemental/likelySubtags.xml \
+ data/common/supplemental/supplementalMetadata.xml \
+))
+
+# vim: set shiftwidth=4 tabstop=4 noexpandtab:
diff --git a/external/liblangtag/ExternalProject_liblangtag.mk b/external/liblangtag/ExternalProject_liblangtag.mk
new file mode 100644
index 000000000..9e2553860
--- /dev/null
+++ b/external/liblangtag/ExternalProject_liblangtag.mk
@@ -0,0 +1,54 @@
+# -*- 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_ExternalProject_ExternalProject,liblangtag))
+
+$(eval $(call gb_ExternalProject_use_external,liblangtag,libxml2))
+
+$(eval $(call gb_ExternalProject_use_autoconf,liblangtag,build))
+
+$(eval $(call gb_ExternalProject_register_targets,liblangtag,\
+ build \
+))
+
+# disable ccache on windows, as it doesn't cope with the quoted defines
+# liblangtag uses (-DBUILDDIR="\"$(abs_top_builddir)\"" and similar).
+# Results in "cl : Command line error D8003 : missing source filename"
+$(call gb_ExternalProject_get_state_target,liblangtag,build):
+ $(call gb_Trace_StartRange,liblangtrag,EXTERNAL)
+ $(call gb_ExternalProject_run,build,\
+ MAKE=$(MAKE) $(gb_RUN_CONFIGURE) ./configure --disable-modules --disable-test --disable-introspection --with-pic \
+ $(if $(or $(DISABLE_DYNLOADING),$(filter MSC,$(COM))), \
+ --disable-shared --enable-static, \
+ --enable-shared --disable-static) \
+ $(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
+ $(if $(filter TRUE,$(HAVE_GCC_BUILTIN_ATOMIC)),"lt_cv_has_atomic=yes","lt_cv_has_atomic=no") \
+ CFLAGS='$(CFLAGS) -pthread \
+ $(call gb_ExternalProject_get_build_flags,liblangtag)' \
+ $(gb_CONFIGURE_PLATFORMS) \
+ $(if $(CROSS_COMPILING),$(if $(filter WNT,$(OS)),"lt_cv_c99_vsnprintf=yes" "ac_cv_va_copy=yes","ac_cv_va_copy=no")) \
+ LIBXML2_CFLAGS="$(LIBXML_CFLAGS)" \
+ LIBXML2_LIBS="$(if $(filter WNT,$(OS)),-L$(call gb_UnpackedTarball_get_dir,libxml2)/win32/bin.msvc -llibxml2,$(LIBXML_LIBS))" \
+ $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________URELIB) \
+ $(if $(filter-out LINUX FREEBSD,$(OS)),,LDFLAGS="-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-rpath,\\"\$$\$$ORIGIN) \
+ $(if $(filter-out SOLARIS,$(OS)),,LDFLAGS="-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-R$(COMMA)\\"\$$\$$ORIGIN) \
+ && $(if $(filter WNT,$(OS)),\
+ REAL_CC="$(shell cygpath -w $(lastword $(filter-out -%,$(CC))))" \
+ REAL_CC_FLAGS="$(filter -%,$(CC))") \
+ $(if $(verbose),V=1) \
+ $(MAKE) \
+ LIBO_TUNNEL_LIBRARY_PATH='$(subst ','\'',$(subst $$,$$$$,$(call gb_Helper_extend_ld_path,$(call gb_UnpackedTarball_get_dir,liblangtag)/liblangtag/.libs)))' \
+ $(if $(filter MACOSX,$(OS)),\
+ && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl URELIB \
+ $(EXTERNAL_WORKDIR)/liblangtag/.libs/liblangtag.1.dylib \
+ ) \
+ )
+ $(call gb_Trace_EndRange,liblangtrag,EXTERNAL)
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/liblangtag/Makefile b/external/liblangtag/Makefile
new file mode 100644
index 000000000..e4968cf85
--- /dev/null
+++ b/external/liblangtag/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/liblangtag/Module_liblangtag.mk b/external/liblangtag/Module_liblangtag.mk
new file mode 100644
index 000000000..dbb7dd5f1
--- /dev/null
+++ b/external/liblangtag/Module_liblangtag.mk
@@ -0,0 +1,25 @@
+# -*- 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,liblangtag))
+
+$(eval $(call gb_Module_add_targets,liblangtag,\
+ UnpackedTarball_liblangtag \
+ ExternalPackage_liblangtag_data \
+ ExternalProject_liblangtag \
+))
+
+
+ifneq ($(COM),MSC)
+$(eval $(call gb_Module_add_targets,liblangtag,\
+ ExternalPackage_liblangtag \
+))
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/liblangtag/README b/external/liblangtag/README
new file mode 100644
index 000000000..254e40a22
--- /dev/null
+++ b/external/liblangtag/README
@@ -0,0 +1,10 @@
+From [https://bitbucket.org/tagoh/liblangtag]. An interface for BCP47 language tags.
+
+Updated IANA Language Subtag Registry files are available as
+[https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry]
+and per convention are stored as a data/language-subtag-registry file in a
+language-subtag-registry-YYYY-MM-DD.tar.bz2 archive, with YYYY-MM-DD being the
+File-Date entry of the file, for example
+language-subtag-registry-2015-08-04.tar.bz2, and uploaded to the external
+sources repository to be included in the build of liblangtag. See download.lst
+LANGTAGREG_TARBALL and LANGTAGREG_SHA256SUM.
diff --git a/external/liblangtag/UnpackedTarball_liblangtag.mk b/external/liblangtag/UnpackedTarball_liblangtag.mk
new file mode 100644
index 000000000..16b9ea999
--- /dev/null
+++ b/external/liblangtag/UnpackedTarball_liblangtag.mk
@@ -0,0 +1,35 @@
+# -*- 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,liblangtag))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,liblangtag,$(LIBLANGTAG_TARBALL),,liblangtag))
+
+$(eval $(call gb_UnpackedTarball_set_pre_action,liblangtag,\
+ $(GNUTAR) -x -j -f $(gb_UnpackedTarget_TARFILE_LOCATION)/$(LANGTAGREG_TARBALL) \
+))
+
+$(eval $(call gb_UnpackedTarball_update_autoconf_configs,liblangtag))
+
+$(eval $(call gb_UnpackedTarball_set_patchlevel,liblangtag,0))
+
+ifneq ($(OS),MACOSX)
+ifneq ($(OS),WNT)
+$(eval $(call gb_UnpackedTarball_add_patches,liblangtag,\
+ external/liblangtag/liblangtag-bundled-soname.patch.0 \
+))
+endif
+endif
+
+$(eval $(call gb_UnpackedTarball_add_patches,liblangtag, \
+ $(if $(SYSTEM_LIBXML),,external/liblangtag/langtag-libtool-rpath.patch.0) \
+ external/liblangtag/clang-cl.patch.0 \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/liblangtag/clang-cl.patch.0 b/external/liblangtag/clang-cl.patch.0
new file mode 100644
index 000000000..94348b65f
--- /dev/null
+++ b/external/liblangtag/clang-cl.patch.0
@@ -0,0 +1,41 @@
+--- liblangtag/lt-macros.h
++++ liblangtag/lt-macros.h
+@@ -120,7 +120,7 @@
+ *
+ * See the GNU C documentation for more details.
+ */
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
++#if (defined __GNUC__ && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4))) || defined __clang__
+ # define LT_GNUC_PRINTF(format_idx, arg_idx) \
+ __attribute__((__format__ (__printf__, format_idx, arg_idx)))
+ # define LT_GNUC_UNUSED \
+@@ -136,7 +136,7 @@
+ * explicit %NULL.
+ * See the GNU C documentation for details.
+ */
+-#if __GNUC__ >= 4
++#if (defined __GNUC__ &&__GNUC__ >= 4) || defined __clang__
+ # define LT_GNUC_NULL_TERMINATED \
+ __attribute__((__sentinel__))
+ #else /* !__GNUC__ */
+@@ -220,17 +220,17 @@
+ *
+ * See the GNU C documentation for more details.
+ */
+-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
++#if defined __GNUC__ && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ #define LT_GNUC_DEPRECATED __attribute__((__deprecated__))
+ #else
+ #define LT_GNUC_DEPRECATED
+ #endif
+-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
++#if defined __GNUC__ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+ #define LT_GNUC_DEPRECATED_FOR(f) __attribute__((deprecated("Use " #f " instead")))
+ #else
+ #define LT_GNUC_DEPRECATED_FOR(f) LT_GNUC_DEPRECATED
+ #endif
+-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
++#if defined __GNUC__ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+ #define LT_GNUC_BEGIN_IGNORE_DEPRECATIONS \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
diff --git a/external/liblangtag/langtag-libtool-rpath.patch.0 b/external/liblangtag/langtag-libtool-rpath.patch.0
new file mode 100644
index 000000000..368832b8b
--- /dev/null
+++ b/external/liblangtag/langtag-libtool-rpath.patch.0
@@ -0,0 +1,23 @@
+Prevent libtool from adding annoying stuff to RPATH
+
+--- configure
++++ configure
+@@ -10730,6 +10730,7 @@
+ else
+ ld_shlibs=no
+ fi
++hardcode_libdir_flag_spec=
+ ;;
+
+ netbsd*)
+--- data/Makefile.in
++++ data/Makefile.in
+@@ -859,7 +859,7 @@
+ @CROSS_COMPILING_TRUE@language-subtag-registry.xml: language-subtag-registry reg2xml.c Makefile
+ @CROSS_COMPILING_TRUE@ @echo Warning: Unable to rebuild $@ when cross-compiling
+ @CROSS_COMPILING_FALSE@@REBUILD_DATA_TRUE@language-subtag-registry.xml: language-subtag-registry reg2xml$(EXEEXT) Makefile
+-@CROSS_COMPILING_FALSE@@REBUILD_DATA_TRUE@ $(AM_V_GEN) $(builddir)/reg2xml$(EXEEXT) $(srcdir)/language-subtag-registry $@.tmp || $(builddir)/reg2xml$(EXEEXT) $(builddir)/language-subtag-registry $@.tmp; \
++@CROSS_COMPILING_FALSE@@REBUILD_DATA_TRUE@ $(AM_V_GEN) $(LIBO_TUNNEL_LIBRARY_PATH) $(builddir)/reg2xml$(EXEEXT) $(srcdir)/language-subtag-registry $@.tmp || $(LIBO_TUNNEL_LIBRARY_PATH) $(builddir)/reg2xml$(EXEEXT) $(builddir)/language-subtag-registry $@.tmp; \
+ @CROSS_COMPILING_FALSE@@REBUILD_DATA_TRUE@ head -1 $@.tmp | grep -E '^<\?xml version'>/dev/null 2>&1 && mv $@.tmp $@ || (echo "E: $@ isn't an expected result"; rm $@.tmp)
+ @CROSS_COMPILING_FALSE@@REBUILD_DATA_FALSE@language-subtag-registry.xml:
+ @CROSS_COMPILING_FALSE@@REBUILD_DATA_FALSE@ @echo Warning: the rebuild of $@ is explicitly disabled.
diff --git a/external/liblangtag/liblangtag-bundled-soname.patch.0 b/external/liblangtag/liblangtag-bundled-soname.patch.0
new file mode 100644
index 000000000..4780d7a12
--- /dev/null
+++ b/external/liblangtag/liblangtag-bundled-soname.patch.0
@@ -0,0 +1,10 @@
+--- liblangtag/Makefile.in.orig 2015-08-07 11:57:42.256742305 +0200
++++ liblangtag/Makefile.in 2015-08-07 11:58:11.818741799 +0200
+@@ -638,6 +638,7 @@
+ liblangtag_la_LDFLAGS = \
+ $(LDFLAGS) \
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
++ -release lo \
+ $(NULL)
+
+ all: $(BUILT_SOURCES)