generic-poky/meta/recipes-core/gettext/gettext_0.16.1.bb

125 lines
5.3 KiB
BlitzBasic
Raw Normal View History

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."
HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
SECTION = "libs"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=9ea3144f04c41cd2eada5d3f472e6ea5"
PR = "r6"
DEPENDS = "virtual/libiconv"
DEPENDS_class-native = ""
PROVIDES = "virtual/libintl virtual/gettext"
PROVIDES_class-native = "virtual/gettext-native"
SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
file://gettext-vpath.patch \
file://linklib_from_0.17.patch \
file://gettext-autoconf-lib-link-no-L.patch \
file://disable_java.patch \
file://fix_aclocal_version.patch \
file://fix_gnu_source_circular.patch \
file://hardcode_macro_version.patch \
"
SRC_URI[md5sum] = "3d9ad24301c6d6b17ec30704a13fe127"
SRC_URI[sha256sum] = "0bf850d1a079fb5a61f0a47b1a9efd35eb44032255375e1cedb0253bc27b376d"
PARALLEL_MAKE = ""
LDFLAGS_prepend_libc-uclibc = " -lrt -lpthread "
inherit autotools texinfo
EXTRA_OECONF += "--without-lispdir \
--disable-csharp \
--disable-libasprintf \
--disable-java \
--disable-native-java \
--disable-openmp \
--without-emacs \
"
gettext_0.16.1: use musl gettext implementation gettext uses internal symbols to detect whether the implementation is compatible with GNU gettext. However, these symbols don't are not part of the public API, they are specific to glibc. While musl implements the GNU gettext *API* version 1 and 2 http://www.openwall.com/lists/musl/2015/04/16/3 it doesn't implement glibc internals. This means that gettext fails to detect musl's working implementation. More recent versions of gettext have changed the way GNU gettext compatibility is done https://lists.gnu.org/archive/html/bug-gettext/2016-04/msg00000.html http://git.savannah.gnu.org/cgit/gettext.git/commit/gettext-runtime/m4/gettext.m4?id=b67399b40bc5bf3165b09e6a095ec941d4b30a97 and while we could backport the corresponding patch to gettext.m4, we avoid doing that so as to avoid any potential GPL-v3 issues. So instead we force ./configure to assume that the gettext implementation of the c-library (musl) is compatible. As a side-effect, this also reduces image sizes as the internal gettext implementation isn't built anymore, and it's otherwise packaged into the main gettext package which blows up the image as the main gettext package contains a lot of things. Similarly, libintl.h isn't generated anymore, as the one from musl is OK. (From OE-Core rev: 948f0bd162f0b1b0375db884e99a2338f47e8527) Signed-off-by: André Draszik <git@andred.net> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-18 16:15:00 +00:00
EXTRA_OECONF_append_libc-musl = "\
gt_cv_func_gnugettext1_libc=yes \
gt_cv_func_gnugettext2_libc=yes \
"
acpaths = '-I ${S}/autoconf-lib-link/m4/ \
-I ${S}/gettext-runtime/m4 \
-I ${S}/gettext-tools/m4'
do_configure_prepend() {
rm -f ${S}/config/m4/libtool.m4
}
do_install_append_libc-musl () {
rm -f ${D}${libdir}/charset.alias
}
# 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-staticdev gettext-runtime-doc"
FILES_${PN} += "${libdir}/${BPN}/*"
FILES_gettext-runtime = "${bindir}/gettext \
${bindir}/ngettext \
${bindir}/envsubst \
${bindir}/gettext.sh \
${libdir}/libasprintf${SODEV} \
${libdir}/GNU.Gettext.dll \
"
FILES_gettext-runtime_append_libc-uclibc = " ${libdir}/libintl.so.* \
${libdir}/charset.alias \
"
FILES_gettext-runtime-staticdev += "${libdir}/libasprintf.a"
FILES_gettext-runtime-dev += "${includedir}/autosprintf.h \
${libdir}/libasprintf${SOLIBDEV}"
FILES_gettext-runtime-dev_append_libc-uclibc = " ${libdir}/libintl.so \
${includedir}/libintl.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.sin
}
# Anyone inheriting gettext will have both gettext-native and gettext
# available, and we don't want to use older macros from the target gettext in
# a non-gplv3 build, so kill them and let dependent recipes rely on
# gettext-native.
SYSROOT_DIRS_BLACKLIST += "${datadir}/aclocal"
BBCLASSEXTEND = "native nativesdk"