mirror of
https://git.yoctoproject.org/poky
synced 2026-05-01 15:32:12 +02:00
Changelog: 0.24: https://lists.gnu.org/archive/html/info-gnu/2025-02/msg00010.html 0.25: https://lists.gnu.org/archive/html/info-gnu/2025-05/msg00000.html 0.26: https://lists.gnu.org/archive/html/info-gnu/2025-07/msg00007.html - gettext-minimal-native recipe adapted to the new macro name (aclocal_DATA -> macros_DATA) - install Makevars.template to gettext-minimal-native to be able to update missing variables The file is renamed in the desitanion to Makevars.template.minimal, to avoid clashing with the full gettext package (some recipes have both as dependency). - autotools.bbclass: search for all po folders, and update the Makefile.in.in file in each of them. This is required, because without this the old Makefile.in.in files in these non ${S}/po folders are not updated with the new version of gettext, and the compilation routinely fails due to this. As part of the same change, also concatenate the source's Makevars files with the gettext Makevars.template: this allows all variables to be defined, even the new ones that the source didn't contain originally. First set the gettext template, and then append the source's original Makevars to it, so it should override the variables that it was setting originally, and keep the new variables at their default value. - Add new PACKAGECONFIG to use libselinux, and also fix libselinux discovery in autotools (use pkg-config instead of autotools discovery, because autotools' library search doesn't respect custom sysroot) Ptest results: ======================= All 626 tests passed (40 tests were not run) ======================= DURATION: 36 END: /usr/lib/gettext/ptest 2025-08-30T17:49 STOP: ptest-runner TOTAL: 1 FAIL: 0 With the previous version: All 545 tests passed (34 tests were not run) (From OE-Core rev: f4b240b4d2c4b424e5dc8f739d8702c736f32d13) Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
223 lines
11 KiB
BlitzBasic
223 lines
11 KiB
BlitzBasic
SUMMARY = "Utilities and libraries for producing multi-lingual messages"
|
|
DESCRIPTION = "GNU gettext is a set of tools that provides a framework to help other programs produce multi-lingual messages. \
|
|
These tools include a set of conventions about how programs should be written to support message catalogs, a directory and file \
|
|
naming organization for the message catalogs themselves, a runtime library supporting the retrieval of translated messages, and \
|
|
a few stand-alone programs to massage in various ways the sets of translatable and already translated strings."
|
|
SECTION = "libs"
|
|
LICENSE = "GPL-3.0-or-later & LGPL-2.1-or-later"
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e"
|
|
|
|
# without libxml in PACKAGECONFIG vendor copy of the lib will be used
|
|
LICENSE:append = " ${@bb.utils.contains('PACKAGECONFIG', 'libxml', '', '& MIT', d)}"
|
|
LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'libxml', '', 'file://libtextstyle/lib/libxml/COPYING;md5=2044417e2e5006b65a8b9067b683fcf1', d)}"
|
|
# without glib in PACKAGECONFIG vendor copy of the lib will be used
|
|
LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'glib', '', 'file://libtextstyle/lib/glib/ghash.c;md5=e3159f5ac38dfe77af5cc0ee104dab2d;beginline=10;endline=27', d)}"
|
|
|
|
DEPENDS = "gettext-native virtual/libiconv"
|
|
DEPENDS:class-native = "gettext-minimal-native"
|
|
PROVIDES = "virtual/libintl virtual/gettext"
|
|
PROVIDES:class-native = "virtual/gettext-native"
|
|
RCONFLICTS:${PN} = "proxy-libintl"
|
|
|
|
require gettext-sources.inc
|
|
SRC_URI += " \
|
|
file://use-pkgconfig.patch \
|
|
file://run-ptest \
|
|
file://serial-tests-config.patch \
|
|
file://0001-tests-autopoint-3-unset-MAKEFLAGS.patch \
|
|
file://0001-init-env.in-do-not-add-C-CXX-parameters.patch \
|
|
"
|
|
SRC_URI:append:libc-musl = " file://0001-Ignore-failing-tests-needing-BIG5-encoding-on-musl.patch"
|
|
|
|
inherit autotools texinfo pkgconfig ptest
|
|
|
|
EXTRA_OECONF += "--without-lispdir \
|
|
--disable-csharp \
|
|
--disable-libasprintf \
|
|
--disable-java \
|
|
--disable-native-java \
|
|
--disable-openmp \
|
|
--without-emacs \
|
|
--without-cvs \
|
|
--without-git \
|
|
--without-included-libcroco \
|
|
--cache-file=${B}/config.cache \
|
|
"
|
|
EXTRA_OECONF:append:class-target = " \
|
|
--with-bisonlocaledir=${datadir}/locale \
|
|
gt_cv_locale_fr_utf8=fr_FR \
|
|
gt_cv_locale_fr=fr_FR.ISO-8859-1 \
|
|
gt_cv_locale_de_utf8=de_DE \
|
|
gt_cv_locale_de=de_DE.ISO-8859-1 \
|
|
"
|
|
|
|
EXTRA_OECONF:append:libc-musl = "\
|
|
--enable-threads=posix \
|
|
gt_cv_func_printf_posix=yes \
|
|
"
|
|
PACKAGECONFIG ??= "glib libxml ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
|
|
PACKAGECONFIG:class-native = ""
|
|
PACKAGECONFIG:class-nativesdk = ""
|
|
|
|
PACKAGECONFIG[glib] = "--without-included-glib,--with-included-glib,glib-2.0"
|
|
PACKAGECONFIG[libxml] = "--without-included-libxml,--with-included-libxml,libxml2"
|
|
# Need paths here to avoid host contamination but this can cause RPATH warnings
|
|
# or problems if $libdir isn't $prefix/lib.
|
|
PACKAGECONFIG[libunistring] = "--with-libunistring-prefix=${STAGING_LIBDIR}/..,--with-included-libunistring,libunistring"
|
|
PACKAGECONFIG[msgcat-curses] = "--with-libncurses-prefix=${STAGING_LIBDIR}/..,--disable-curses,ncurses,"
|
|
PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux --disable-acl,attr libselinux"
|
|
|
|
do_install:append:libc-musl () {
|
|
rm -f ${D}${libdir}/charset.alias
|
|
rm -f ${D}${includedir}/libintl.h
|
|
rm -f ${D}${libdir}/libintl.la
|
|
}
|
|
|
|
# these lack the .x behind the .so, but shouldn't be in the -dev package
|
|
# Otherwise you get the following results:
|
|
# 7.4M glibc/images/ep93xx/Angstrom-console-image-glibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
|
|
# 25M uclibc/images/ep93xx/Angstrom-console-image-uclibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
|
|
# because gettext depends on gettext-dev, which pulls in more -dev packages:
|
|
# 15228 KiB /ep93xx/libstdc++-dev_4.2.2-r2_ep93xx.ipk
|
|
# 1300 KiB /ep93xx/uclibc-dev_0.9.29-r8_ep93xx.ipk
|
|
# 140 KiB /armv4t/gettext-dev_0.14.1-r6_armv4t.ipk
|
|
# 4 KiB /ep93xx/libgcc-s-dev_4.2.2-r2_ep93xx.ipk
|
|
|
|
PACKAGES =+ "libgettextlib libgettextsrc"
|
|
FILES:libgettextlib = "${libdir}/libgettextlib-*.so*"
|
|
FILES:libgettextsrc = "${libdir}/libgettextsrc-*.so*"
|
|
|
|
PACKAGES =+ "gettext-runtime gettext-runtime-dev gettext-runtime-doc"
|
|
|
|
FILES:${PN} += "${libdir}/${BPN}/"
|
|
|
|
# The its/Makefile.am has defined:
|
|
# itsdir = $(pkgdatadir)$(PACKAGE_SUFFIX)/its
|
|
# not itsdir = $(pkgdatadir), so use wildcard to match the version.
|
|
FILES:${PN} += "${datadir}/${BPN}-*/* \
|
|
${datadir}/${BPN}/m4/*"
|
|
|
|
FILES:gettext-runtime = "${bindir}/gettext \
|
|
${bindir}/ngettext \
|
|
${bindir}/envsubst \
|
|
${bindir}/gettext.sh \
|
|
${libdir}/libasprintf.so* \
|
|
${libdir}/GNU.Gettext.dll \
|
|
"
|
|
FILES:gettext-runtime-dev += "${libdir}/libasprintf.a \
|
|
${includedir}/autosprintf.h \
|
|
"
|
|
FILES:gettext-runtime-doc = "${mandir}/man1/gettext.* \
|
|
${mandir}/man1/ngettext.* \
|
|
${mandir}/man1/envsubst.* \
|
|
${mandir}/man1/.* \
|
|
${mandir}/man3/* \
|
|
${docdir}/gettext/gettext.* \
|
|
${docdir}/gettext/ngettext.* \
|
|
${docdir}/gettext/envsubst.* \
|
|
${docdir}/gettext/*.3.html \
|
|
${datadir}/gettext/ABOUT-NLS \
|
|
${docdir}/gettext/csharpdoc/* \
|
|
${docdir}/libasprintf/autosprintf.html \
|
|
${infodir}/autosprintf.info \
|
|
"
|
|
|
|
do_install:append() {
|
|
rm -f ${D}${libdir}/preloadable_libintl.so
|
|
}
|
|
|
|
do_install:append:class-native () {
|
|
rm ${D}${datadir}/aclocal/*
|
|
rm ${D}${datadir}/gettext/config.rpath
|
|
rm ${D}${datadir}/gettext/po/Makefile.in.in
|
|
rm ${D}${datadir}/gettext/po/remove-potcdate.sed
|
|
|
|
create_wrapper ${D}${bindir}/msgfmt \
|
|
GETTEXTDATADIR="${STAGING_DATADIR_NATIVE}/gettext-${PV}/"
|
|
|
|
}
|
|
|
|
do_compile_ptest() {
|
|
cd ${B}/gettext-tools/tests/
|
|
sed -i '/^buildtest-TESTS: /c buildtest-TESTS: $(TESTS) $(check_PROGRAMS)' Makefile
|
|
oe_runmake buildtest-TESTS
|
|
cd -
|
|
}
|
|
|
|
do_install_ptest() {
|
|
mkdir -p ${D}${PTEST_PATH}/tests
|
|
mkdir -p ${D}${PTEST_PATH}/src
|
|
mkdir -p ${D}${PTEST_PATH}/po
|
|
mkdir -p ${D}${PTEST_PATH}/misc
|
|
mkdir -p ${D}${PTEST_PATH}/its
|
|
mkdir -p ${D}${PTEST_PATH}/styles
|
|
mkdir -p ${D}${PTEST_PATH}/gnulib-lib
|
|
mkdir -p ${D}${PTEST_PATH}/examples
|
|
cp -rf ${S}/gettext-tools/its/* ${D}${PTEST_PATH}/its
|
|
cp -rf ${S}/gettext-tools/styles/* ${D}${PTEST_PATH}/styles
|
|
cp -rf ${S}/gettext-tools/gnulib-lib/gettext.h ${D}${PTEST_PATH}/gnulib-lib
|
|
cp -rf ${S}/gettext-tools/examples/hello-c ${D}${PTEST_PATH}/examples
|
|
cp -rf ${S}/gettext-tools/tests/* ${D}${PTEST_PATH}/tests
|
|
cp -rf ${B}/gettext-tools/tests/.libs/* ${D}${PTEST_PATH}/tests
|
|
cp -rf ${B}/gettext-runtime/intl/.libs/libgnuintl.so.8* ${D}${libdir}/
|
|
cp -rf ${B}/gettext-tools/tests/Makefile ${D}${PTEST_PATH}/tests
|
|
cp -rf ${B}/gettext-tools/tests/init-env ${D}${PTEST_PATH}/tests
|
|
sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile
|
|
sed -i -e 's:lang-c lang-c++:lang-c++:g' ${D}${PTEST_PATH}/tests/Makefile
|
|
install ${S}/gettext-tools/src/msgunfmt.tcl ${D}${PTEST_PATH}/src
|
|
install ${S}/gettext-tools/src/project-id ${D}${PTEST_PATH}/src
|
|
install ${B}/gettext-runtime/src/gettext.sh ${D}${PTEST_PATH}/src
|
|
install ${B}/gettext-runtime/src/ngettext ${D}${PTEST_PATH}/src
|
|
install ${B}/gettext-runtime/src/envsubst ${D}${PTEST_PATH}/src
|
|
install ${B}/gettext-runtime/src/gettext ${D}${PTEST_PATH}/src
|
|
install ${B}/gettext-tools/src/.libs/cldr-plurals ${D}${PTEST_PATH}/src
|
|
install ${S}/gettext-tools/po/gettext-tools.pot ${D}${PTEST_PATH}/po
|
|
install ${B}/gettext-tools/misc/* ${D}${PTEST_PATH}/misc
|
|
find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
|
|
chmod 0755 ${D}${PTEST_PATH}/tests/lang-vala ${D}${PTEST_PATH}/tests/plural-1 ${D}${PTEST_PATH}/tests/xgettext-tcl-4 \
|
|
${D}${PTEST_PATH}/tests/xgettext-vala-1 ${D}${PTEST_PATH}/tests/xgettext-po-2 ${D}${PTEST_PATH}/tests/xgettext-vala-6 \
|
|
${D}${PTEST_PATH}/tests/plural-3 ${D}${PTEST_PATH}/tests/plural-4 ${D}${PTEST_PATH}/tests/xgettext-java-8 ${D}${PTEST_PATH}/tests/xgettext-java-9 \
|
|
${D}${PTEST_PATH}/tests/msgfmt-21 ${D}${PTEST_PATH}/tests/format-modula2-1 ${D}${PTEST_PATH}/tests/format-modula2-2 \
|
|
${D}${PTEST_PATH}/tests/lang-go ${D}${PTEST_PATH}/tests/lang-ruby ${D}${PTEST_PATH}/tests/lang-modula2 ${D}${PTEST_PATH}/tests/lang-d
|
|
sed -i -e 's|${DEBUG_PREFIX_MAP}||g' ${D}${PTEST_PATH}/tests/init-env
|
|
}
|
|
|
|
do_install_ptest:append:libc-musl() {
|
|
# Force UTF-8 runtime and skip legacy fr_FR subcases
|
|
sed -i '3i export LANG=fr_FR.UTF-8; export LC_ALL=fr_FR.UTF-8' \
|
|
${D}${PTEST_PATH}/run-ptest
|
|
sed -i '3i export LOCALE_FR="none"; export LOCALE_FR_UTF8=fr_FR.UTF-8' \
|
|
${D}${PTEST_PATH}/run-ptest
|
|
sed -i -e 's|^LOCALE_FR="fr_FR.ISO-8859-1"|LOCALE_FR="none"|g' \
|
|
${D}${PTEST_PATH}/tests/init-env
|
|
}
|
|
|
|
RDEPENDS:${PN}-ptest += "coreutils make xz bash gawk autoconf locale-base-de-de locale-base-fr-fr"
|
|
RDEPENDS:${PN}-ptest:append:libc-glibc = "\
|
|
glibc-gconv-big5 \
|
|
glibc-charmap-big5 \
|
|
glibc-gconv-cp1251 \
|
|
glibc-charmap-cp1251 \
|
|
glibc-charmap-iso-8859-9 \
|
|
glibc-gconv-iso8859-9 \
|
|
glibc-charmap-koi8-r \
|
|
glibc-gconv-koi8-r \
|
|
glibc-gconv-iso8859-2 \
|
|
glibc-charmap-iso-8859-2 \
|
|
glibc-gconv-iso8859-1 \
|
|
glibc-charmap-iso-8859-1 \
|
|
glibc-gconv-euc-kr \
|
|
glibc-charmap-euc-kr \
|
|
glibc-gconv-euc-jp \
|
|
glibc-charmap-euc-jp \
|
|
glibc-gconv-gb18030 \
|
|
glibc-charmap-gb18030 \
|
|
"
|
|
|
|
RRECOMMENDS:${PN}-ptest:append:libc-glibc = "\
|
|
locale-base-de-de.iso-8859-1 \
|
|
locale-base-fr-fr.iso-8859-1 \
|
|
"
|
|
|
|
BBCLASSEXTEND = "native nativesdk"
|