aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs
diff options
context:
space:
mode:
authorMichael Pratt <mcpratt@pm.me>2023-04-16 11:04:31 -0400
committerChristian Marangi <ansuelsmth@gmail.com>2023-05-04 06:07:30 +0200
commitd95d5d2a3a895f5374b56ab349f628578cd4149b (patch)
tree81a29b060e9cb3f1a120c2241875e5b869060f97 /package/libs
parentf7fbe77115924d831dfa7e5b9dc8903b4ccaaf07 (diff)
downloadupstream-d95d5d2a3a895f5374b56ab349f628578cd4149b.tar.gz
upstream-d95d5d2a3a895f5374b56ab349f628578cd4149b.tar.bz2
upstream-d95d5d2a3a895f5374b56ab349f628578cd4149b.zip
gettext-full: link to local libxml2
Some users have reported that gettext builds are attempting to link to libxml2 while it was supposed to be configured to use it's own built-in substitute. Configure gettext to require and link to our local libxml2 explicitly. Add a patch to revert upstream commit 87927a4e2 which forces libtextstyle to use the built-in libxml, no matter what the configuration is, making that option configurable again after the configure script is regenerated. Reported-by: Tianling Shen <cnsztl@immortalwrt.org> Signed-off-by: Michael Pratt <mcpratt@pm.me>
Diffstat (limited to 'package/libs')
-rw-r--r--package/libs/gettext-full/Makefile7
-rw-r--r--package/libs/gettext-full/patches/100-libxml-no-force-included.patch31
-rw-r--r--package/libs/gettext-full/patches/150-disable_libxml_iconv.patch22
3 files changed, 35 insertions, 25 deletions
diff --git a/package/libs/gettext-full/Makefile b/package/libs/gettext-full/Makefile
index 440cff1341..a92932f375 100644
--- a/package/libs/gettext-full/Makefile
+++ b/package/libs/gettext-full/Makefile
@@ -23,10 +23,10 @@ PKG_CPE_ID:=cpe:/a:gnu:gettext
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
-PKG_BUILD_DEPENDS:=gettext-full/host
+PKG_BUILD_DEPENDS:=gettext-full/host libxml2
PKG_BUILD_PARALLEL:=0
-HOST_BUILD_DEPENDS:=gperf/host
+HOST_BUILD_DEPENDS:=gperf/host libxml2/host
HOST_BUILD_PARALLEL:=0
PKG_SUBDIRS:= \
@@ -86,6 +86,7 @@ CONFIGURE_ARGS += \
--with-included-gettext \
--without-libintl-prefix \
--without-libexpat-prefix \
+ --with-libxml2-prefix=$(STAGING_DIR) \
--without-emacs
HOST_CONFIGURE_ARGS += \
@@ -96,7 +97,7 @@ HOST_CONFIGURE_ARGS += \
--disable-java \
--disable-openmp \
--without-emacs \
- --without-libxml2-prefix
+ --with-libxml2-prefix=$(STAGING_DIR_HOSTPKG)
HOST_CONFIGURE_VARS += \
EMACS="no" \
diff --git a/package/libs/gettext-full/patches/100-libxml-no-force-included.patch b/package/libs/gettext-full/patches/100-libxml-no-force-included.patch
new file mode 100644
index 0000000000..af5c0a47ee
--- /dev/null
+++ b/package/libs/gettext-full/patches/100-libxml-no-force-included.patch
@@ -0,0 +1,31 @@
+--- a/libtextstyle/gnulib-local/modules/libxml.diff
++++ /dev/null
+@@ -1,28 +0,0 @@
+-*** libxml.orig 2018-10-28 14:37:07.007164889 +0100
+---- libxml 2019-02-14 22:19:29.994771110 +0100
+-***************
+-*** 118,124 ****
+- fabs
+-
+- configure.ac:
+-! gl_LIBXML
+-
+- Makefile.am:
+- if INCLUDED_LIBXML
+---- 118,133 ----
+- fabs
+-
+- configure.ac:
+-! # In libtextstyle, we don't want to use an external libxml, because its
+-! # dependencies and their dynamic relocations have an impact on the startup
+-! # time of a program that is linked with it. As you can see by using
+-! # 'readelf -r ... | wc -l' and 'readelf -d ... | grep NEEDED':
+-! # - libxml2.so has more than 3300 relocations and depends on libicuuc.
+-! # - libicuuc.so has more than 4900 relocations and depends on libstdc++.
+-! # - libstdc++.so has more than 4600 relocations.
+-! # These are more than 12800 relocations, to perform at program startup.
+-! # So, force the use of the included libxml part.
+-! gl_LIBXML([yes])
+-
+- Makefile.am:
+- if INCLUDED_LIBXML
diff --git a/package/libs/gettext-full/patches/150-disable_libxml_iconv.patch b/package/libs/gettext-full/patches/150-disable_libxml_iconv.patch
deleted file mode 100644
index bf60ecbdb5..0000000000
--- a/package/libs/gettext-full/patches/150-disable_libxml_iconv.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/gettext-tools/gnulib-lib/libxml/xmlversion.in.h
-+++ b/gettext-tools/gnulib-lib/libxml/xmlversion.in.h
-@@ -302,7 +302,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(i
- *
- * Whether iconv support is available
- */
--#if 1
-+#if 0
- #define LIBXML_ICONV_ENABLED
- #endif
-
---- a/gnulib-local/lib/libxml/xmlversion.in.h
-+++ b/gnulib-local/lib/libxml/xmlversion.in.h
-@@ -302,7 +302,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(i
- *
- * Whether iconv support is available
- */
--#if 1
-+#if 0
- #define LIBXML_ICONV_ENABLED
- #endif
-