Merge pull request #562 from fosslinux/gettext-update

Gettext update
This commit is contained in:
Andrius Štikonas 2026-01-11 22:42:35 +00:00 committed by GitHub
commit 59e5a4341a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 698 additions and 118 deletions

View file

@ -156,7 +156,8 @@ do_file() {
prefix_ref=${reference}
# All git repositories we already use remove "v"s from the beginning
# of branch/tag names in the tarball prefix
if echo "${reference}" | grep -Eq "^v[0-9]"; then
# except for gitlab
if echo "${reference}" | grep -Eq "^v[0-9]" | grep -vq gitlab; then
prefix_ref=$(echo "${reference}" | sed "s/^v//")
fi
prefix=$(basename "${repo}" | sed "s/.git$//")-${prefix_ref}

117
parts.rst
View file

@ -1074,18 +1074,6 @@ patch 2.7.6
Our old patch was built with manual makefile and used mes libc.
This is a newer version which we need in order to import gnulib into gettext.
gettext 0.21
============
GNU Gettext is an internationalization and localization system used for writing
multilingual programs.
texinfo 6.7
===========
Texinfo is a typesetting syntax used for generating documentation. We can now use
``makeinfo`` script to convert ``.texi`` files into ``.info`` documentation format.
gcc 4.7.4
=========
@ -1104,6 +1092,65 @@ This version of binutils provides a more comprehensive set of programming tools
creating and managing binary programs. It also includes modern versions of the ``ld``
linker, the ``as`` assembler and the ``ar`` program.
musl 1.2.5
==========
With GCC and binutils supporting a musl-based toolchain natively, musl itself is rebuilt
with support for dynamic linking.
python 2.0.1
============
Everything is in place to bootstrap the useful programming language/utility
Python. While Python is largely written in C, many parts of the codebase are
generated from Python scripts, which only increases as Python matured over time.
We begin with Python 2.0.1, which has minimal generated code, most of which can
be removed. Lib/{keyword,token,symbol} scripts are rewritten in C and used to
regenerate parts of the standard library. Unicode support and sre (regex)
support is stripped out.
Using the stripped-down first version of Python 2.0.1, Python 2.0.1 is rebuilt,
including Unicode and regex support (required for future Python builds). The
first version is insufficient to run the Lib/{keyword,token,symbol} scripts, so
those continue to use the C versions.
Precompiled Python code at this point is highly unreproducible, so it is
deleted (JIT compiled instead). This makes Python itself slower, but this is of
little consequence.
python 2.3.7
============
Python 2.0.1 is sufficient to build Python 2.3.7.
Differences to 2.0.1:
* The new "ast" module, performing parsing of Python, is generated from a
parsing specification using Python code.
* 2.0.1 is insufficient to run 2.3.7's unicode regeneration, so Unicode
support is again stripped out.
Python 2.3.7 is then rebuilt to include Unicode support.
gperf 3.1
=========
``gperf`` is a perfect hash function generator (hash function is injective).
gettext 0.26
============
GNU Gettext is an internationalization and localization system used for writing
multilingual programs. Now that we have Python 2.3 and gperf, we can regenerate
all the pregenerated files in Gettext and so build it.
texinfo 6.7
===========
Texinfo is a typesetting syntax used for generating documentation. We can now use
``makeinfo`` script to convert ``.texi`` files into ``.info`` documentation format.
perl 5.15.7
===========
@ -1209,11 +1256,6 @@ perl 5.42.0
5.42 is the latest version of Perl! The Perl bootstrap is complete.
gperf 3.1
=========
``gperf`` is a perfect hash function generator (hash function is injective).
libunistring 0.9.10
===================
@ -1279,47 +1321,6 @@ We use the `gnu-autogen-bootstrapping <https://github.com/schierlm/gnu-autogen-b
project to rebuild those and create (slightly crippled) ``autogen`` that
is then able to build a full-featured version.
musl 1.2.5
==========
With GCC and binutils supporting a musl-based toolchain natively, musl itself is rebuilt
with support for dynamic linking.
python 2.0.1
============
Everything is in place to bootstrap the useful programming language/utility
Python. While Python is largely written in C, many parts of the codebase are
generated from Python scripts, which only increases as Python matured over time.
We begin with Python 2.0.1, which has minimal generated code, most of which can
be removed. Lib/{keyword,token,symbol} scripts are rewritten in C and used to
regenerate parts of the standard library. Unicode support and sre (regex)
support is stripped out.
Using the stripped-down first version of Python 2.0.1, Python 2.0.1 is rebuilt,
including Unicode and regex support (required for future Python builds). The
first version is insufficient to run the Lib/{keyword,token,symbol} scripts, so
those continue to use the C versions.
Precompiled Python code at this point is highly unreproducible, so it is
deleted (JIT compiled instead). This makes Python itself slower, but this is of
little consequence.
python 2.3.7
============
Python 2.0.1 is sufficient to build Python 2.3.7.
Differences to 2.0.1:
* The new "ast" module, performing parsing of Python, is generated from a
parsing specification using Python code.
* 2.0.1 is insufficient to run 2.3.7's unicode regeneration, so Unicode
support is again stripped out.
Python 2.3.7 is then rebuilt to include Unicode support.
python 2.5.6
============

View file

@ -9,7 +9,7 @@ b687370caaa654ba2fc622188240f50ea305a1c926accbced153df9179697adf autoconf-2.53_
b363f22b42418fb2507bf722b0a6b5b03410ac58c44c400767d650d828696eaa autoconf-2.69_0.tar.bz2
cde51b816fcce47742064f9dc0b4871e4194190be5065dc1852b39339cc9115b autoconf-2.71_0.tar.bz2
6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2
df5afd05f14dcc23fba79c5fbfda9694f85e5eae10b842b5cc0b58f0dbac5153 autogen-5.18.16_0.tar.bz2
8d0a3f35b7f67cfd5a5963ae08bf25282aed718466200f16c526b3c957385f5a autogen-5.18.16_0.tar.bz2
02a426e82a52d4a2cd7e73fe3dc5a2c58b3ed100f24a92c57e42511fd86e247c automake-1.10.3_0.tar.bz2
34925adeaa2876a5e068adeb17b71fe7c7105244c3cb5439d33f7406310674da automake-1.11.2_0.tar.bz2
7e36e9e4b3957c95b6de8ff475c9b37aa007e2f9735b01c0eaf14b711fdd112f automake-1.15.1_0.tar.bz2
@ -23,7 +23,7 @@ c5807850a377e4bb9aa4121d9781d145bdd80327626a9419630a75ce2c8d9c71 automake-1.9.6
86c58a6f3c68414ae4aa694831bd8326106c7d2dac6183470c875b0ac982be65 bash-5.2.15_0.tar.bz2
e5a0c306550ccfbea0b0e0a8ac121dfb1439759441916050778c448b02b8b301 bc-1.08.1_0.tar.bz2
6591838fbfcd64b88435cd948ebe6fcfd6c22b0993935bd0a19310e767da9e94 binutils-2.30_0.tar.bz2
e551655372836e16687ee02b14bb92ce37028c04a89b2bafaf1a90a2c692ff10 binutils-2.41_0.tar.bz2
3281578f74e40919d5c9378a766bf3ca5340840aec75b7a6441222166617017a binutils-2.41_0.tar.bz2
d5bec340bf90562db749f4dc7fead5c622eb27e439658628636bc601bfc237fa binutils-2.41_1.tar.bz2
5182bedc1c68f9908ed782dbb0a79c0a5b262fe8b1f9c6eea6d7e7186696827e bison-2.3_0.tar.bz2
b3b99ebf348f4a3ff1af29e958cab745232d3400d6604ab6ef8450538f6a0738 bison-3.4.1_0.tar.bz2
@ -54,17 +54,17 @@ c925739472260498342ba6dc3263da937abf5237e7e9102622bf5657ec98094a gawk-3.0.4_0.t
e119505fb6218deaaafbf5d31e0ce3dc1e60dae8475fe2a3f9230f9e9e8c7eaf gawk-5.3.0_0.tar.bz2
b4fafdabdbd8c1f9f7c96fc4677023a8151fe2afe0702e3dee920157b30deb98 gc-8.0.4_0.tar.bz2
ad41b30f9d8ecf4daf62f221705b59f40b8dbfc6b4fd2bdd692def41b9059133 gcc-10.5.0_0.tar.bz2
cb31f4298edf591b8c27ea76f35c5c97794629187f3e08169a8ef54cc738f2fb gcc-15.2.0_0.tar.bz2
519cb272f4e819024c788b38963cf6d98b3b96c6c343ddb2e4b6d12aebb50b39 gcc-15.2.0_0.tar.bz2
d34de902de6de9204abedb834c4c39fbb95b993e545fbb090de2b028fa1d4a61 gcc-4.0.4_0.tar.bz2
2f13b3306832d882536c97d0302f2ec1801193086dbbe62388f930858e5728a3 gcc-4.0.4_1.tar.bz2
931f105104b446dff5be30927e6e98d798844e6cd446b246f30def11984a9587 gcc-4.7.4_0.tar.bz2
b1df809b03347ae8360162c512bd7589611e735638c795cc54f0f032a8439727 gettext-0.21_0.tar.bz2
38b015fe07ed755377b78f8ac8815d8bb57fa8c79293110522231250a6ad8a6f gettext-0.26_0.tar.bz2
96f33b53c24f5f46a23c2b9eef8147e684c796889a83bdd39254a73393594a49 gmp-6.2.1_0.tar.bz2
8138c02c4fef718c97827f1d6476e2fc83433ff06eff4820b53589b5419b7e15 gperf-3.1_0.tar.bz2
8fb02e7145c2befab10bace272ef3004700b6ef0ef58d3573bd69de25e0c9e1b gperf-3.1_0.tar.bz2
c1989fc2855dbb0350c4e5b677028306614a9f4b5cb6c01fd459c5e1abf592b9 grep-2.4_0.tar.bz2
69a57d4a696f3559f821b50b9d5d4174e81801767ed8d0d00f1f3234e92ec251 grep-3.7_0.tar.bz2
3f3247c7d05fcef0d9f624a523afa01257207584045eb7efb7fb8f29fc782c7a grep-3.7_0.tar.bz2
d7a28778c1199604ba7af0e706c56c65fa345cae7e80646956f1be71ae30b448 grub-2.06_0.tar.bz2
9d6732935e6eb800b03f54c37e173d6a862fa1008aad51b7bf95fb6018599eb7 guile-3.0.9_0.tar.bz2
16c4e88be3f88314205f0296e77a0e7c81026eccdc5764bd2b91dec4bfdcbca0 guile-3.0.9_0.tar.bz2
893bb26efb8b1789702b8fd1a3ed72951990c8e38ab650c5220992405e79b96e gzip-1.13_0.tar.bz2
f27e1eaafa7ab198d2ed549aecfd8a1205d960f59a509789a159997565abd6d4 heirloom-devtools-070527_0.tar.bz2
8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2
@ -78,7 +78,7 @@ de10b5b3d1b721c8d8365d524c13f524b2c9cb5eff1f891698b1aa4915a73092 libffi-3.3_0.t
9e1932db252894478dc98985f931312cbe5ee0eb40db251c75c79dd01294b15b libmd-1.1.0_0.tar.bz2
311cc3a5ad4126b030b32bc1e9e787bd55caa861626d210bab4eb81e50244125 libtool-2.2.4_0.tar.bz2
a9ddd248e490623caeb0380089d03bc638e78af5c4fb65426f3b7f73521af604 libtool-2.4.7_0.tar.bz2
4f05d64d4504c03f13a3045f4db85c12bd456944bc9159f381b00fda4daced9d libunistring-0.9.10_0.tar.bz2
dc71ee51f5da2211b4e49f10375a0600b7d85f8ed581fe98d3b825ab1447b221 libunistring-0.9.10_0.tar.bz2
e34195462aa376c9ad92d77d68ef519c911100c06fe2f3929b260d0a811a4288 linux-4.14.341-openela_0.tar.bz2
c97644d0db5b3de127b048683afee6d31453441d97ba5dea71df5838b13542a4 linux-headers-4.14.341-openela_0.tar.bz2
748aafe25363c9777b2970b54d29d3f60d7ed3a07b0839415de37061f13358ff m4-1.4.19_0.tar.bz2
@ -139,15 +139,15 @@ c040926b75186c69914713973cf5c198813a51808663666fd3fca32f989ebbff python-3.1.5_1
cbb181be22b304f76a286300e3324f7e03e0316bf5662e0d6e416d68fb6514e4 python-3.4.10_0.tar.bz2
59fc4a344f0ee270b72a9cf21e9a03087520c2b1563be8b42470cf723941ef64 python-3.8.16_0.tar.bz2
18d517fa1195aa82e3e0eb7f261eb3addb9a43492040b16be04571639781577e sed-4.0.9_0.tar.bz2
3e7c9ab6da24fa44e115af66e077b5692f5293ffb7bc82c54fb91663900867d3 sed-4.8_0.tar.bz2
24519735491cf6e8fa79f1c3e123c830ca3529ddb61dfe393584dad32732a594 sed-4.8_0.tar.bz2
fe8bbc246d82e99c482337f1443c5313268823667dccebca6cd004e6cf6b4a7c shadow-4.14.3_0.tar.bz2
daf24af74bf78e7e0d1351113a76aea7aff1effd5219ee6fc775f59eff6d2437 tar-1.34_0.tar.bz2
b3675b0d72677f30559386e1756e85a0a5065d738bb6206457a5a8d51b8bd0ce tcc-0.9.27_0.tar.bz2
03454c87049198998bc2c8c2c04b7c3312551a7c233097eabc5e67a4a07bd056 tcc-0.9.27_1.tar.bz2
ab49972345d0c05f79b9370530829792e8c5c3b7fe283fc90e1dff26c2d0f6db tcc-0.9.27_2.tar.bz2
8576a7c99802bb462dd044ef7df7263192f1acfabde47462afd6145ffec1e4f1 tcc-0.9.27_3.tar.bz2
626d9b78a87a42fd68a59e0e9c67e008d9be29575628165e49e526c767f71c07 texinfo-6.7_0.tar.bz2
ac74bde2c277d6eb25125e0abfd353ad268a61b8f4a5308adfd6638046b409ac texinfo-6.7_0.tar.bz2
b54b1aa40dc08eec51982fd581a64a900e2598ba29acc6ca9c2b1b2321603b49 util-linux-2.19.1_0.tar.bz2
29572bca4d4d404cb9fa542462e3d167367448dba263970282cae11df2aa3879 which-2.21_0.tar.bz2
9075b6832d8d7b094775c8e6ead763851aec96f4559d8cd62ce0a25e7a8a70ab which-2.21_0.tar.bz2
d7357c5a73e4a0adb07220392316185716c42003fe7e63b63ba8493f12f3621b xz-5.6.4_0.tar.bz2
9b10db90e06129fd174d48edb60a6d1e2fa72944fccef420431f8e836adcf972 zlib-1.3.1_0.tar.bz2

View file

@ -135,13 +135,13 @@ src_configure() {
src_compile() {
make -C bfd headers
for dir in libiberty libsframe bfd opcodes libctf binutils gas gprof ld; do
make "${MAKEJOBS}" -C $dir tooldir=${PREFIX} CFLAGS="-std=c99"
make "${MAKEJOBS}" -C $dir tooldir=${PREFIX} CFLAGS="-std=c99" MAKEINFO=true
done
}
src_install() {
for dir in libiberty bfd opcodes libctf libsframe binutils gas gprof ld; do
make -C $dir tooldir=${PREFIX} DESTDIR="${DESTDIR}" install
make -C $dir tooldir=${PREFIX} DESTDIR="${DESTDIR}" MAKEINFO=true install
done
# Create triplet symlinks

View file

@ -197,7 +197,6 @@ src_configure() {
src_compile() {
ln -s . "build/build-${TARGET}"
for dir in libiberty libcpp libdecnumber gcc; do
# We have makeinfo now but it is not happy with gcc .info files, so skip it
make "${MAKEJOBS}" -C build/$dir LIBGCC2_INCLUDES=-I"${PREFIX}/include" \
STMP_FIXINC= GMPLIBS="-lmpc -lmpfr -lgmp" MAKEINFO=true
done

View file

@ -1,35 +0,0 @@
# SPDX-FileCopyrightText: 2021-22 Samuel Tyler <samuel@samuelt.me>
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
find . -name '*.info*' -delete
find . -name '*.gmo' -delete
# bison
rm gettext-runtime/intl/plural.c gettext-tools/src/{po-gram-gen,cldr-plural}.{c,h}
GNULIB_SRCDIR=$(realpath ../gnulib-7daa86f) ./autogen.sh
# Precompiled Java class
rm gettext-tools/gnulib-lib/javaversion.class
touch gettext-tools/gnulib-lib/javaversion.class
}
src_configure() {
INTLBISON=bison-3.6 \
TOOLS_BISON=bison-3.6 \
./configure --prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--enable-static \
--disable-shared \
--disable-java
}
src_compile() {
make "${MAKEJOBS}" MAKEINFO=true CFLAGS="-I${PWD}/libtextstyle/lib"
}
src_install() {
make MAKEINFO=true DESTDIR="${DESTDIR}" install
}

View file

@ -1,2 +0,0 @@
f https://mirrors.kernel.org/gnu/gettext/gettext-0.21.tar.xz d20fcbb537e02dcf1383197ba05bd0734ef7bf5db06bdb241eb69b7d16b73192
g https://https.git.savannah.gnu.org/git/gnulib.git~7daa86f _ 2d911c2f2ed97b347d6d360b742abdc98aa626d4f8f847ee682c7cde12e90871 gnulib-7daa86f.tar.gz

View file

@ -0,0 +1,398 @@
SPDX-FileCopyrightText: 2019 Bruno Haible <bruno@clisp.org>
SPDX-License-Identifier: GPL-3.0-or-later
This is the set of differences between the generated file and hand
modifications made for the file in gettext.
Applied after the regenerations occur.
--- a/include/libxml/globals.h 2025-12-31 10:27:50.432552177 +1100
+++ b/include/libxml/globals.h 2019-12-23 22:21:12.000000000 +1100
@@ -62,6 +91,8 @@
XMLPUBFUN xmlOutputBufferCreateFilenameFunc
XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func);
+#if !defined IN_LIBTEXTSTYLE
+
/*
* Externally global symbols which need to be protected for backwards
* compatibility support.
@@ -101,6 +132,8 @@
#undef xmlParserInputBufferCreateFilenameValue
#undef xmlOutputBufferCreateFilenameValue
+#endif
+
/**
* xmlRegisterNodeFunc:
* @node: the current node
--- a/globals.c 2025-12-31 10:42:52.577486689 +1100
+++ b/globals.c 2019-12-23 22:21:12.000000000 +1100
@@ -70,6 +99,8 @@
* *
************************************************************************/
+#if !defined IN_LIBTEXTSTYLE
+
/*
* Memory allocation routines
*/
@@ -79,6 +110,8 @@
#undef xmlMemStrdup
#undef xmlRealloc
+#endif
+
#if defined(DEBUG_MEMORY_LOCATION) || defined(DEBUG_MEMORY)
xmlFreeFunc xmlFree = (xmlFreeFunc) xmlMemFree;
xmlMallocFunc xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
@@ -150,6 +183,8 @@
#include <libxml/globals.h>
#include <libxml/SAX.h>
+#if !defined IN_LIBTEXTSTYLE
+
#undef docbDefaultSAXHandler
#undef htmlDefaultSAXHandler
#undef oldXMLWDcompatibility
@@ -179,6 +214,9 @@
#undef xmlParserInputBufferCreateFilenameValue
#undef xmlOutputBufferCreateFilenameValue
+
+#endif
+
/**
* xmlParserVersion:
*
@@ -702,7 +740,9 @@
}
#ifdef LIBXML_DOCB_ENABLED
+#if !defined IN_LIBTEXTSTYLE
#undef docbDefaultSAXHandler
+#endif
xmlSAXHandlerV1 *
__docbDefaultSAXHandler(void) {
if (IS_MAIN_THREAD)
@@ -713,7 +753,9 @@
#endif
#ifdef LIBXML_HTML_ENABLED
+#if !defined IN_LIBTEXTSTYLE
#undef htmlDefaultSAXHandler
+#endif
xmlSAXHandlerV1 *
__htmlDefaultSAXHandler(void) {
if (IS_MAIN_THREAD)
@@ -723,7 +765,9 @@
}
#endif
+#if !defined IN_LIBTEXTSTYLE
#undef xmlLastError
+#endif
xmlError *
__xmlLastError(void) {
if (IS_MAIN_THREAD)
@@ -738,7 +782,9 @@
* the right place for them :-)
*/
#if defined(LIBXML_THREAD_ALLOC_ENABLED) && defined(LIBXML_THREAD_ENABLED)
+#if !defined IN_LIBTEXTSTYLE
#undef xmlMalloc
+#endif
xmlMallocFunc *
__xmlMalloc(void){
if (IS_MAIN_THREAD)
@@ -747,7 +793,9 @@
return (&xmlGetGlobalState()->xmlMalloc);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlMallocAtomic
+#endif
xmlMallocFunc *
__xmlMallocAtomic(void){
if (IS_MAIN_THREAD)
@@ -756,7 +804,9 @@
return (&xmlGetGlobalState()->xmlMallocAtomic);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlRealloc
+#endif
xmlReallocFunc *
__xmlRealloc(void){
if (IS_MAIN_THREAD)
@@ -765,7 +815,9 @@
return (&xmlGetGlobalState()->xmlRealloc);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlFree
+#endif
xmlFreeFunc *
__xmlFree(void){
if (IS_MAIN_THREAD)
@@ -791,7 +843,9 @@
*/
+#if !defined IN_LIBTEXTSTYLE
#undef oldXMLWDcompatibility
+#endif
int *
__oldXMLWDcompatibility(void) {
if (IS_MAIN_THREAD)
@@ -800,7 +854,9 @@
return (&xmlGetGlobalState()->oldXMLWDcompatibility);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlBufferAllocScheme
+#endif
xmlBufferAllocationScheme *
__xmlBufferAllocScheme(void) {
if (IS_MAIN_THREAD)
@@ -817,7 +873,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDefaultBufferSize
+#endif
int *
__xmlDefaultBufferSize(void) {
if (IS_MAIN_THREAD)
@@ -834,7 +892,10 @@
return ret;
}
+#ifdef LIBXML_SAX1_ENABLED
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDefaultSAXHandler
+#endif
xmlSAXHandlerV1 *
__xmlDefaultSAXHandler(void) {
if (IS_MAIN_THREAD)
@@ -842,8 +903,11 @@
else
return (&xmlGetGlobalState()->xmlDefaultSAXHandler);
}
+#endif /* LIBXML_SAX1_ENABLED */
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDefaultSAXLocator
+#endif
xmlSAXLocator *
__xmlDefaultSAXLocator(void) {
if (IS_MAIN_THREAD)
@@ -852,7 +916,9 @@
return (&xmlGetGlobalState()->xmlDefaultSAXLocator);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDoValidityCheckingDefaultValue
+#endif
int *
__xmlDoValidityCheckingDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -869,7 +935,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlGenericError
+#endif
xmlGenericErrorFunc *
__xmlGenericError(void) {
if (IS_MAIN_THREAD)
@@ -878,7 +946,9 @@
return (&xmlGetGlobalState()->xmlGenericError);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlStructuredError
+#endif
xmlStructuredErrorFunc *
__xmlStructuredError(void) {
if (IS_MAIN_THREAD)
@@ -887,7 +957,9 @@
return (&xmlGetGlobalState()->xmlStructuredError);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlGenericErrorContext
+#endif
void * *
__xmlGenericErrorContext(void) {
if (IS_MAIN_THREAD)
@@ -896,7 +968,9 @@
return (&xmlGetGlobalState()->xmlGenericErrorContext);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlStructuredErrorContext
+#endif
void * *
__xmlStructuredErrorContext(void) {
if (IS_MAIN_THREAD)
@@ -905,7 +979,9 @@
return (&xmlGetGlobalState()->xmlStructuredErrorContext);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlGetWarningsDefaultValue
+#endif
int *
__xmlGetWarningsDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -922,7 +998,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlIndentTreeOutput
+#endif
int *
__xmlIndentTreeOutput(void) {
if (IS_MAIN_THREAD)
@@ -939,7 +1017,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlTreeIndentString
+#endif
const char * *
__xmlTreeIndentString(void) {
if (IS_MAIN_THREAD)
@@ -956,7 +1036,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlKeepBlanksDefaultValue
+#endif
int *
__xmlKeepBlanksDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -973,7 +1055,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlLineNumbersDefaultValue
+#endif
int *
__xmlLineNumbersDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -990,7 +1074,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlLoadExtDtdDefaultValue
+#endif
int *
__xmlLoadExtDtdDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1007,7 +1093,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlParserDebugEntities
+#endif
int *
__xmlParserDebugEntities(void) {
if (IS_MAIN_THREAD)
@@ -1024,7 +1112,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlParserVersion
+#endif
const char * *
__xmlParserVersion(void) {
if (IS_MAIN_THREAD)
@@ -1033,7 +1123,9 @@
return (&xmlGetGlobalState()->xmlParserVersion);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlPedanticParserDefaultValue
+#endif
int *
__xmlPedanticParserDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1050,7 +1142,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlSaveNoEmptyTags
+#endif
int *
__xmlSaveNoEmptyTags(void) {
if (IS_MAIN_THREAD)
@@ -1067,7 +1161,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlSubstituteEntitiesDefaultValue
+#endif
int *
__xmlSubstituteEntitiesDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1084,7 +1180,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlRegisterNodeDefaultValue
+#endif
xmlRegisterNodeFunc *
__xmlRegisterNodeDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1093,7 +1191,9 @@
return (&xmlGetGlobalState()->xmlRegisterNodeDefaultValue);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDeregisterNodeDefaultValue
+#endif
xmlDeregisterNodeFunc *
__xmlDeregisterNodeDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1102,7 +1202,9 @@
return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlParserInputBufferCreateFilenameValue
+#endif
xmlParserInputBufferCreateFilenameFunc *
__xmlParserInputBufferCreateFilenameValue(void) {
if (IS_MAIN_THREAD)
@@ -1111,7 +1213,9 @@
return (&xmlGetGlobalState()->xmlParserInputBufferCreateFilenameValue);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlOutputBufferCreateFilenameValue
+#endif
xmlOutputBufferCreateFilenameFunc *
__xmlOutputBufferCreateFilenameValue(void) {
if (IS_MAIN_THREAD)
@@ -1119,3 +1223,6 @@
else
return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue);
}
+
+#define bottom_globals
+#include "elfgcchack.h"

153
steps/gettext-0.26/pass1.sh Executable file
View file

@ -0,0 +1,153 @@
# SPDX-FileCopyrightText: 2021-22 Samuel Tyler <samuel@samuelt.me>
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
find . \( -name '*.info*' \
-o -name '*.gmo' \
-o -name '*.mo' \) -delete
find . \( -name '*.html*' -o -name '*.1*' \) \
-not -path "./gettext-runtime/intl-csharp/doc/*" \
-not -path "./gettext-tools/doc/tutorial.html" \
-not -path "./gettext-tools/doc/FAQ.html" \
-delete \
-exec touch {} +
# bison
rm gettext-runtime/intl/plural.{c,h} \
gettext-tools/src/{read-po-gram,cldr-plural}.{c,h}
# Misc files
find . -name "*.class" -delete -exec touch {} +
touch gettext-tools/gnulib-lib/javaversion.class
rm gettext-tools/m4/csharpexec-test.exe
touch gettext-tools/m4/csharpexec-test.exe
rm -r gettext-tools/tests/testdata/repo.tar.gz \
gettext-tools/tests/testdata/dprog.*.d \
gettext-tools/tests/mm-viet.comp.po \
gettext-tools/tests/qttest*.qm \
libtextstyle/{,gnulib-local}/tests/test-term-ostream-xterm-xf86-v32.out
touch libtextstyle/{,gnulib-local}/tests/test-term-ostream-xterm-xf86-v32.out
# gnulib-local/lib/libxml
local libxml2
libxml2=$(realpath ../libxml2-v2.9.9)
mv post-global-regen.patch "$libxml2"
pushd "$libxml2"
for i in include/libxml/globals.h globals.c; do
sed "/Everything starting from the line below/q" $i > $i.top
mv $i.top $i
done
rm include/libxml/xmlunicode.h xmlunicode.c \
include/libxml/chvalid.h chvalid.c
mv ../*-4.0.1.txt .
python2.3 genUnicode.py
python2.3 genChRanges.py
python2.3 build_glob.py
patch -Np1 -i post-global-regen.patch
popd
pushd gnulib-local/lib/libxml
for f in xmlunicode chvalid globals; do
cp "$libxml2/$f.c" "$f.c"
cp "$libxml2/include/libxml/$f.h" "$f.in.h"
done
popd
# Regenerate gnulib files
rm {gettext-runtime,gettext-runtime/intl,gettext-runtime/libasprintf,gettext-tools}/gnulib-lib/uniwidth/width*.h \
{gettext-runtime,gettext-runtime/intl,gettext-runtime/libasprintf,gettext-tools}/gnulib-lib/unictype/ctype*.h \
{gettext-runtime,gettext-runtime/intl,gettext-runtime/libasprintf,gettext-tools}/gnulib-lib/unicase/tolower.h \
gettext-tools/libgettextpo/uniwidth/width*.h \
gettext-tools/libgettextpo/unictype/ctype*.h \
gettext-tools/libgettextpo/unicase/tolower.h \
gettext-tools/gnulib-lib/unicase/{tocasefold,ignorable,cased}.h \
gettext-tools/gnulib-lib/unicase/special-casing-table.* \
gettext-tools/gnulib-lib/unictype/combiningclass.h \
gettext-tools/{gnulib-lib,libgettextpo}/unictype/pr_*.h \
gettext-tools/{gnulib-lib,libgettextpo}/unilbrk/{lbrktables.c,lbrkprop*.h} \
gettext-tools/gnulib-lib/uniname/{uninames.h,gen-uninames.lisp} \
gettext-tools/gnulib-lib/uninorm/{de,}composition-table* \
gettext-tools/gnulib-tests/unicase/test-{uc_tolower,ignorable,cased}.c \
gettext-tools/gnulib-tests/unictype/test-{ctype,pr,sy}_*.c
rm libtextstyle/lib/uniwidth/width*.h \
libtextstyle/lib/unictype/ctype_*.h \
libtextstyle/lib/unicase/tolower.h \
libtextstyle/lib/*-ostream.{c,h} \
libtextstyle/lib/*_ostream.* \
libtextstyle/lib/ostream.{c,h,vt.h,priv.h}
rm -r gettext-tools/gnulib-lib/libxml libtextstyle/lib/libxml
pushd ../gnulib-b5eb878
rm lib/unictype/ctype*.h \
lib/unicase/tolower.h \
lib/uniwidth/width*.h
pushd lib
gcc -Iunictype -o gen-uni-tables gen-uni-tables.c
mv ../../*-16.0.0.txt ../../PropList-3.0.1.txt .
./gen-uni-tables UnicodeData-16.0.0.txt \
PropList-16.0.0.txt \
DerivedCoreProperties-16.0.0.txt \
emoji-data-16.0.0.txt \
ArabicShaping-16.0.0.txt \
Scripts-16.0.0.txt \
Blocks-16.0.0.txt \
PropList-3.0.1.txt \
BidiMirroring-16.0.0.txt \
EastAsianWidth-16.0.0.txt \
LineBreak-16.0.0.txt \
WordBreakProperty-16.0.0.txt \
GraphemeBreakProperty-16.0.0.txt \
CompositionExclusions-16.0.0.txt \
SpecialCasing-16.0.0.txt \
CaseFolding-16.0.0.txt \
16.0.0
popd
popd
# gnulib + autotools
GNULIB_SRCDIR=$(realpath ../gnulib-b5eb878) ./autogen.sh
# archive.dir.tar
local archive temp
archive="$(realpath gettext-tools/misc/archive.dir.tar)"
temp="$(mktemp -d)"
pushd "$temp"
tar -xf "$archive"
sed -i.bak "s/%expect 10/%expect 7/" gettext-0.10.*/intl/plural.y
for f in gettext-0.10.*/intl/plural.y; do
touch -r "$f.bak" "$f"
touch -r "$f.bak" "$(dirname "$f")"
done
find . -path "*/intl/plural.c" | while read -r file; do
pushd "$(dirname "$file")"
rm plural.c
bison -o plural.c plural.y
touch -r plural.y plural.c
touch -r plural.y .
popd
done
tar -cf "$archive" gettext-*
popd
rm -rf "$temp"
}
src_configure() {
./configure --prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--enable-static \
--disable-shared \
--disable-java
}
src_compile() {
make "${MAKEJOBS}" MAKEINFO=true
}
src_install() {
make MAKEINFO=true DESTDIR="${DESTDIR}" install
}

View file

@ -0,0 +1,36 @@
SPDX-FileCopyrightText: 2025 Samuel Tyler <samuel@samuelt.me>
SPDX-License-Identifier: MIT
For whatever reason, the regeneration script for globals.{c,h} does not match
what it should be. This is probably because the files were hand edited
afterward. We do the proper fix and update the generation script.
--- libxml2-v2.9.9/build_glob.py 2019-01-04 05:14:17.000000000 +1100
+++ libxml2-v2.9.9/build_glob.py 2025-12-31 10:30:55.384538752 +1100
@@ -68,7 +68,7 @@
fields = string.split(line, ",")
# Update the header file
writeline(global_functions_hdr)
- global_functions_hdr.write("extern "+fields[0]+" *")
+ global_functions_hdr.write("XMLPUBFUN "+fields[0]+" * XMLCALL ")
if fields[2]:
global_functions_hdr.write("(*")
global_functions_hdr.write("__"+fields[1]+"(void)")
@@ -80,13 +80,13 @@
writeline(global_functions_hdr,"(*(__"+fields[1]+"()))")
writeline(global_functions_hdr,"#else")
if fields[2]:
- writeline(global_functions_hdr,"LIBXML_DLL_IMPORT extern "+fields[0]+" "+fields[1]+fields[2]+";")
+ writeline(global_functions_hdr,"XMLPUBVAR "+fields[0]+" "+fields[1]+fields[2]+";")
else:
- writeline(global_functions_hdr,"LIBXML_DLL_IMPORT extern "+fields[0]+" "+fields[1]+";")
+ writeline(global_functions_hdr,"XMLPUBVAR "+fields[0]+" "+fields[1]+";")
writeline(global_functions_hdr,"#endif")
# set/get for per-thread global defaults
if fields[3]:
- writeline(global_functions_hdr,fields[0]+" "+fields[1][:3]+"ThrDef"+fields[1][3:]+"("+fields[0]+" v);")
+ writeline(global_functions_hdr,"XMLPUBFUN "+fields[0]+" XMLCALL "+fields[1][:3]+"ThrDef"+fields[1][3:]+"("+fields[0]+" v);")
# Update the implementation file
writeline(global_functions_impl)
# writeline(global_functions_impl, "extern "+fields[0]+" "+fields[1]+";")

View file

@ -0,0 +1,21 @@
f https://mirrors.kernel.org/gnu/gettext/gettext-0.26.tar.xz d1fb86e260cfe7da6031f94d2e44c0da55903dbae0a2fa0fae78c91ae1b56f00
g https://https.git.savannah.gnu.org/git/gnulib.git~b5eb878 _ 02fa193c8b8242dcae324c9bb2d694633d891d32d50e5a8cf79f4053323aec70 gnulib-b5eb878.tar.gz
g https://gitlab.gnome.org/GNOME/libxml2.git~v2.9.9 https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.9.9/libxml2-v2.9.9.tar.gz d490df9133f8871d4678eb9e899313c3b238e455d45aaf64c9b10b76495b19e7 libxml2-v2.9.9.tar.gz
f http://ftp.unicode.org/Public/16.0.0/ucd/UnicodeData.txt ff58e5823bd095166564a006e47d111130813dcf8bf234ef79fa51a870edb48f UnicodeData-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/PropList.txt 53d614508e2a0b2305a8aa21cd60d993de9326cdf65993660dfcce4503548583 PropList-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/DerivedCoreProperties.txt 39d35161f2954497f69e08bdb9e701493f476a3d30222de20028feda36c1dabd DerivedCoreProperties-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/emoji/emoji-data.txt f1365a5173eee18e1f98b240cdc492e84a25f1ce7e0c9d1094eb29c41a22696a emoji-data-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/ArabicShaping.txt 764f420cedfc8b43d9fec251c957a5d55fc45d40f6573f162990ed1dce7e36e0 ArabicShaping-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/Scripts.txt 9e88f0a677df47311106340be8ede2ecdacd9c1c931831218d2be6d5508e0039 Scripts-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/Blocks.txt f3907b395d410f1b97342292ca6bc83dd12eb4b205f2a0c48efdef99e517d7b0 Blocks-16.0.0.txt
f http://ftp.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt 909eef4adbeddbdddcd9487c856fe8cdbb8912aa8eb315ed7885b6ef65f4dc4c
f http://ftp.unicode.org/Public/16.0.0/ucd/BidiMirroring.txt d7afdadd1bbd66f5a663ac0e8f7958f18fd9491fc0bc59ec5877cb82db71db7d BidiMirroring-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/EastAsianWidth.txt 43adc76c0686a42cb370764eb8cfe2b2a45b10b855e5572a2db4a0eecce15d5b EastAsianWidth-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/LineBreak.txt e97e4259d0d20fab150b9c7b4b28abfae5cd78ca97e7f4ac6ed20d685d5f4a7c LineBreak-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/auxiliary/WordBreakProperty.txt 476464e71a4b7b779b8ba7c5671f4338fea77da8e6b6b05fb82b3fdd14603779 WordBreakProperty-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/auxiliary/GraphemeBreakProperty.txt c29360bd6f7132811d701d29069541e827eb44bfc4c8fbde8c370d6982689dc1 GraphemeBreakProperty-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/CompositionExclusions.txt 89e83cf9cc8bef6c1f8bf77e42cf6f0341dfa42e66261f4dbe9b492e7a23c8ee CompositionExclusions-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/SpecialCasing.txt 8d5de354eef79f2395a54c9c7dcebbaf3d30fc962d0f85611ea97aa973a0c451 SpecialCasing-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/CaseFolding.txt 6f1f9c588eb4a5c718d9e8f93b782685e5c7fec872cf05e8e6878053599e09bb CaseFolding-16.0.0.txt
f http://ftp.unicode.org/Public/4.0-Update1/Blocks-4.0.1.txt c9dba71655b8787c381b3421ba2bf9a3df9e6168b5835f93fd3931c1eeff90cf Blocks-4.0.1.txt
f http://ftp.unicode.org/Public/4.0-Update1/UnicodeData-4.0.1.txt de54d68f2df927a20ea4a83dfd74a543ca7f3e3df2441576e7f6a185ec6fa217 UnicodeData-4.0.1.txt

View file

@ -3,7 +3,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
find . -name '*.info*' -delete
find . -name '*.info*' -delete -exec touch {} +
for d in doc tests lib src; do
cd $d
@ -17,3 +17,11 @@ src_prepare() {
src_configure() {
./configure --prefix="${PREFIX}"
}
src_compile() {
make "${MAKEJOBS}" MAKEINFO=true PREFIX="${PREFIX}"
}
src_install() {
make MAKEINFO=true PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" install
}

View file

@ -190,11 +190,16 @@ build: openssl-3.6.0
build: ca-certificates-3.119.1
build: curl-8.17.0
build: patch-2.8
build: gettext-0.21
build: texinfo-6.7
build: gcc-4.7.4
build: binutils-2.41
build: musl-1.2.5
build: python-2.0.1
build: python-2.0.1
build: python-2.3.7
build: python-2.3.7
build: gperf-3.1
build: gettext-0.26
build: texinfo-6.7
build: libunistring-0.9.10
build: libffi-3.3
build: libatomic_ops-7.6.10
@ -204,11 +209,6 @@ build: which-2.21
build: grep-3.7
build: sed-4.8
build: autogen-5.18.16
build: musl-1.2.5
build: python-2.0.1
build: python-2.0.1
build: python-2.3.7
build: python-2.3.7
build: python-2.5.6
build: python-3.1.5
build: python-3.1.5