Skip to contentSkip to conversation

Rework the gettext handling

PATCH Superseded Yann E. MORIN 5 participants 33 messages Sep 16, 2012 – Sep 21, 2012 Kbuild

lore
Share & tools
lore
#0 lore raw

v3 cover Rework the gettext handling

Hello All!

This patch series is an aggregation of the gettext rework by Samuel, Maxime, Thomas, and I.

See this post for the 6 first patches:
http://lists.busybox.net/pipermail/buildroot/2012-July/055871.html

[PATCH 01/11] gettext: remove option to build statically [PATCH 02/11] gettext: remove the gettext-target make target, unused [PATCH 03/11] gettext: remove libintl handling
[PATCH 04/11] Remove all references to libintl
[PATCH 05/11] gettext: convert to autotools-package [PATCH 06/11] doc: update after gettext changes

The following 2 patches fix two packages in preparation for the end of the series:

[PATCH 07/11] package/lshw: add missing dependency on gettext [PATCH 08/11] package/pulseaudio: fix build-dependency on gettext

See this post for an explanation for the next 3 patches:
http://lists.busybox.net/pipermail/buildroot/2012-August/058042.html

[PATCH 09/11] toolchain/common: rename BR2_NEEDS_GETTEXT [PATCH 10/11] toolchain/common: introduce blind options
BR2_NEEDS_GETTEXT{,_IF_LOCALE}
[PATCH 11/11] packages: use the new gettext mechanism

The tests were done with two external uClibc-based toolchains built with crosstool-NG, one with locale support, the other without. All packages touched by the series were first built with both toolchains and the series not applied (to check for any non-series related issues, see gmpc below), then the series was fully applied, and the packages all re-built from scratch.

gmpc failed to build, even before the series was applied, because it does not link with -lm and thus misses some sumbols (eg. floor(3)). All other packages were built successfully (albeit using a great deal of electrons in the process! ;-) ). No test-run was done on my side.

Changes since v2:
- fix conversion to autotools to always build libintl, even if locales are disabled, to fix packages that always require NLS
- thus removed Arnout's Tested-by on patch 5/11, as it has changed
- rebase on-top latest tree
- also C: Samuel on the introductory message

Changes since v1:
- drop the gettext-before-all patch (Arnout, Thomas)
- keep and simplify build-dependency against gettext (Arnout)
- add config-dependency against gettext for diffutils, flex, ndisc6 and util-linux, in patch 11
- rebase on-top latest tree (and upgrade new package linux-pam in the process)
- update doc
- add Tested-by and Acked-by Arnout were he said so
- CC: Samuel Martin as a recognition for his original work on this topic, which this series is based on. (Arnout)

Regards,
Yann E. MORIN.

#1 lore raw

PATCH v3 1/11 gettext: remove option to build statically

From: Thomas Petazzoni <[email protected]>

---
 package/gettext/Config.in  |   12 ------------
 package/gettext/gettext.mk |    9 ---------
 2 files changed, 0 insertions(+), 21 deletions(-)
package/gettext/Config.in +0 -12
index fabfe1e..0ee4065 100644
@@ -12,18 +12,6 @@ config BR2_PACKAGE_GETTEXT
 comment "gettext requires a toolchain with WCHAR support"
 	depends on BR2_NEEDS_GETTEXT && !BR2_USE_WCHAR
 
-config BR2_PACKAGE_GETTEXT_STATIC
-	bool "Use libgettext.a instead of libgettext.so.*"
-	depends on BR2_PACKAGE_GETTEXT
-	depends on BR2_arm
-	help
-	  The GNU `gettext' utilities are a set of tools that provide a
-	  framework to help other GNU packages produce multi-lingual
-	  messages.
-
-	  http://www.gnu.org/software/gettext/
-
-
 config BR2_PACKAGE_LIBINTL
 	bool "libintl"
 	depends on BR2_NEEDS_GETTEXT
package/gettext/gettext.mk +0 -9
index 9778007..20bd672 100644
@@ -11,11 +11,7 @@ GETTEXT_CAT:=$(ZCAT)
 GETTEXT_BINARY:=gettext-runtime/src/gettext
 GETTEXT_TARGET_BINARY:=usr/bin/gettext
 
-ifeq ($(BR2_PACKAGE_GETTEXT_STATIC),y)
-LIBINTL_TARGET_BINARY:=usr/lib/libintl.a
-else
 LIBINTL_TARGET_BINARY:=usr/lib/libintl.so
-endif
 
 $(DL_DIR)/$(GETTEXT_SOURCE):
 	 $(call DOWNLOAD,$(GETTEXT_SITE)/$(GETTEXT_SOURCE))
@@ -147,11 +143,6 @@ $(TARGET_DIR)/usr/lib/libintl.so: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY)
 		libgettext*.so*.la libintl*.so*.la)
 	touch -c $@
 
-$(TARGET_DIR)/usr/lib/libintl.a: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY)
-	cp -dpf $(STAGING_DIR)/usr/lib/libgettext*.a $(TARGET_DIR)/usr/lib/
-	cp -dpf $(STAGING_DIR)/usr/lib/libintl*.a $(TARGET_DIR)/usr/lib/
-	touch -c $@
-
 libintl: $(TARGET_DIR)/$(LIBINTL_TARGET_BINARY)
 
 #############################################################
Signature · 1 line
1.7.2.5
#2 lore raw

PATCH v3 2/11 gettext: remove the gettext-target make target, unused

In reply to Yann E. MORIN

From: Thomas Petazzoni <[email protected]>

---
 package/gettext/gettext.mk |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)
package/gettext/gettext.mk +0 -4
index 20bd672..6b2c336 100644
@@ -130,10 +130,6 @@ gettext-dirclean:
 #
 #############################################################
 
-gettext-target: $(GETTEXT_DIR)/$(GETTEXT_BINARY)
-	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(GETTEXT_DIR) install
-	chmod +x $(TARGET_DIR)/usr/lib/libintl.so* # identify as needing to be stripped
-
 $(TARGET_DIR)/usr/lib/libintl.so: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY)
 	cp -dpf $(STAGING_DIR)/usr/lib/libgettext*.so* \
 		$(STAGING_DIR)/usr/lib/libintl*.so* $(TARGET_DIR)/usr/lib/
Signature · 1 line
1.7.2.5
#3 lore raw

PATCH v3 3/11 gettext: remove libintl handling

In reply to Yann E. MORIN

From: Thomas Petazzoni <[email protected]>

Now, the gettext package always:

* install everything to the staging directory
* install the libraries to the target directory

Note that this commit removes BR2_PACKAGE_LIBINTL without updating the packages, it is done in a separate commit to ease the review process.

---
 package/gettext/Config.in  |   14 ++++++--------
 package/gettext/gettext.mk |    7 +------
 2 files changed, 7 insertions(+), 14 deletions(-)
package/gettext/Config.in +6 -8
index 0ee4065..04f7de6 100644
@@ -7,17 +7,15 @@ config BR2_PACKAGE_GETTEXT
 	  framework to help other GNU packages produce multi-lingual
 	  messages.
 
+	  Only the gettext libraries will be installed in the
+	  target. The full gettext suite, including tools, will be
+	  installed in the staging directory.
+
 	  http://www.gnu.org/software/gettext/
 
 comment "gettext requires a toolchain with WCHAR support"
 	depends on BR2_NEEDS_GETTEXT && !BR2_USE_WCHAR
 
 config BR2_PACKAGE_LIBINTL
-	bool "libintl"
-	depends on BR2_NEEDS_GETTEXT
-	depends on BR2_USE_WCHAR
-	help
-	  Selecting this package installs all of gettext in the staging
-	  directory and the shared library for it's use in the target.
-
-	  http://www.gnu.org/software/gettext/
+	bool
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
package/gettext/gettext.mk +1 -6
index 6b2c336..4dff941 100644
@@ -112,7 +112,7 @@ $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY): $(GETTEXT_DIR)/$(GETTEXT_BINARY)
 gettext-legal-info:
 	@$(call legal-warning-pkg,gettext,legal-info not yet implemented)
 
-gettext: host-pkg-config $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY)
+gettext: host-pkg-config $(if $(BR2_PACKAGE_LIBICONV),libiconv) $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY) $(TARGET_DIR)/$(LIBINTL_TARGET_BINARY)
 
 gettext-unpacked: $(GETTEXT_DIR)/.unpacked
 
@@ -139,16 +139,11 @@ $(TARGET_DIR)/usr/lib/libintl.so: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY)
 		libgettext*.so*.la libintl*.so*.la)
 	touch -c $@
 
-libintl: $(TARGET_DIR)/$(LIBINTL_TARGET_BINARY)
-
 #############################################################
 #
 # Toplevel Makefile options
 #
 #############################################################
-ifeq ($(BR2_PACKAGE_LIBINTL),y)
-TARGETS+=libintl
-endif
 ifeq ($(BR2_PACKAGE_GETTEXT),y)
 TARGETS+=gettext
 endif
Signature · 1 line
1.7.2.5
#4 lore raw

PATCH v3 4/11 Remove all references to libintl

In reply to Yann E. MORIN

From: Thomas Petazzoni <[email protected]>

From now on, packages only need to select the BR2_PACKAGE_GETTEXT option and depend on the 'gettext' package to get the necessary i18n libraries installed on the target.

---
 package/avahi/Config.in                     |    1 -
 package/avahi/avahi.mk                      |    6 +++---
 package/axel/Config.in                      |    1 -
 package/axel/axel.mk                        |    2 +-
 package/binutils/Config.in                  |    1 -
 package/binutils/binutils.mk                |    2 +-
 package/diffutils/diffutils.mk              |    3 +--
 package/dnsmasq/Config.in                   |    1 -
 package/dnsmasq/dnsmasq.mk                  |    2 +-
 package/flex/flex.mk                        |    3 +--
 package/gdk-pixbuf/Config.in                |    1 -
 package/gdk-pixbuf/gdk-pixbuf.mk            |    2 +-
 package/gettext/Config.in                   |    4 ----
 package/glib-networking/Config.in           |    1 -
 package/glib-networking/glib-networking.mk  |    2 +-
 package/gmpc/Config.in                      |    1 -
 package/gmpc/gmpc.mk                        |    2 +-
 package/grep/Config.in                      |    1 -
 package/grep/grep.mk                        |    2 +-
 package/kbd/Config.in                       |    1 -
 package/kbd/kbd.mk                          |    2 +-
 package/libglib2/Config.in                  |    1 -
 package/libglib2/libglib2.mk                |    2 +-
 package/libsoup/Config.in                   |    1 -
 package/libsoup/libsoup.mk                  |    2 +-
 package/linux-pam/Config.in                 |    1 -
 package/linux-pam/linux-pam.mk              |    4 ++--
 package/lshw/lshw.mk                        |    2 +-
 package/make/Config.in                      |    1 -
 package/make/make.mk                        |    2 +-
 package/midori/Config.in                    |    1 -
 package/midori/midori.mk                    |    2 +-
 package/multimedia/pulseaudio/Config.in     |    2 +-
 package/multimedia/pulseaudio/pulseaudio.mk |    2 +-
 package/ndisc6/ndisc6.mk                    |    4 ++--
 package/pango/Config.in                     |    1 -
 package/pango/pango.mk                      |    2 +-
 package/psmisc/Config.in                    |    1 -
 package/psmisc/psmisc.mk                    |    2 +-
 package/quota/Config.in                     |    1 -
 package/quota/quota.mk                      |    2 +-
 package/sshfs/Config.in                     |    1 -
 package/sshfs/sshfs.mk                      |    2 +-
 package/sysstat/Config.in                   |    1 -
 package/sysstat/sysstat.mk                  |    2 +-
 package/ushare/Config.in                    |    1 -
 package/ushare/ushare.mk                    |    2 +-
 package/util-linux/util-linux.mk            |    4 ++--
 package/vala/Config.in                      |    1 -
 package/vala/vala.mk                        |    2 +-
 50 files changed, 33 insertions(+), 60 deletions(-)
package/avahi/Config.in +0 -1
index eb3ccb6..8ba33d5 100644
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_AVAHI
 	bool "avahi"
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Avahi is a system which facilitates service
 	  discovery on a local network.
package/avahi/avahi.mk +3 -3
index a26481d..03dc368 100644
@@ -85,7 +85,7 @@ AVAHI_CONF_OPT = --localstatedir=/var \
 		--with-autoipd-user=default \
 		--with-autoipd-group=default
 
-AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) host-intltool host-pkg-config
+AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) host-intltool host-pkg-config
 
 ifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),)
 AVAHI_DEPENDENCIES += libdaemon
@@ -133,8 +133,8 @@ else
 AVAHI_CONF_OPT += --disable-python
 endif
 
-ifeq ($(BR2_PACKAGE_LIBINTL),y)
-AVAHI_DEPENDENCIES += libintl
+ifeq ($(BR2_PACKAGE_GETTEXT),y)
+AVAHI_DEPENDENCIES += gettext
 AVAHI_MAKE_OPT = LIBS=-lintl
 endif
 
package/axel/Config.in +0 -1
index 98f4941..d823272 100644
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_AXEL
 	bool "axel"
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	help
 	  HTTP/FTP download accelerator.
package/axel/axel.mk +1 -1
index 893caf1..0ed8ad2 100644
@@ -10,7 +10,7 @@ AXEL_SITE = https://alioth.debian.org/frs/download.php/3015
 AXEL_LDFLAGS = -lpthread
 
 ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
-AXEL_DEPENDENCIES += gettext libintl
+AXEL_DEPENDENCIES += gettext
 AXEL_LDFLAGS += -lintl
 endif
 
package/binutils/Config.in +0 -1
index e068b20..6480370 100644
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_BINUTILS
 	bool "binutils"
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Install binutils on the target
 
package/binutils/binutils.mk +1 -1
index a91879a..d41cac4 100644
@@ -23,7 +23,7 @@ BINUTILS_SITE = ftp://www.at91.com/pub/buildroot
 endif
 BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
 BINUTILS_INSTALL_STAGING = YES
-BINUTILS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
+BINUTILS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
 
 # We need to specify host & target to avoid breaking ARM EABI
 BINUTILS_CONF_OPT = --disable-multilib --disable-werror \
package/diffutils/diffutils.mk +1 -2
index d6029a4..168d040 100644
@@ -7,8 +7,7 @@
 DIFFUTILS_VERSION = 3.2
 DIFFUTILS_SITE = $(BR2_GNU_MIRROR)/diffutils
 DIFFUTILS_DEPENDENCIES = \
-	$(if $(BR2_PACKAGE_GETTEXT),gettext) \
-	$(if $(BR2_PACKAGE_LIBINTL),libintl)
+	$(if $(BR2_PACKAGE_GETTEXT),gettext)
 
 ifeq ($(BR2_PACKAGE_BUSYBOX),y)
 DIFFUTILS_DEPENDENCIES += busybox
package/dnsmasq/Config.in +0 -1
index e67aa46..b76ddb2 100644
@@ -25,7 +25,6 @@ config BR2_PACKAGE_DNSMASQ_IDN
 	depends on BR2_USE_WCHAR
 	select BR2_PACKAGE_LIBIDN
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Enable IDN support in dnsmasq.
 	  This option is a big space taker since it pulls in many libraries.
package/dnsmasq/dnsmasq.mk +1 -1
index 1f714bf..e92a554 100644
@@ -24,7 +24,7 @@ endif
 
 # NLS requires IDN so only enable it (i18n) when IDN is true
 ifeq ($(BR2_PACKAGE_DNSMASQ_IDN),y)
-	DNSMASQ_DEPENDENCIES += libidn $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
+	DNSMASQ_DEPENDENCIES += libidn $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
 	DNSMASQ_MAKE_OPT += LDFLAGS+="-lidn $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),-lintl)"
 	DNSMASQ_COPTS += -DHAVE_IDN
 	DNSMASQ_I18N = $(if $(BR2_ENABLE_LOCALE),-i18n)
package/flex/flex.mk +1 -2
index 16f6801..2599cdc 100644
@@ -12,8 +12,7 @@ FLEX_SITE = $(BR2_DEBIAN_MIRROR)/debian/pool/main/f/flex
 FLEX_DIR = $(BUILD_DIR)/flex-$(FLEX_VERSION)
 FLEX_INSTALL_STAGING = YES
 FLEX_DEPENDENCIES = \
-	$(if $(BR2_PACKAGE_GETTEXT),gettext) \
-	$(if $(BR2_PACKAGE_LIBINTL),libintl)
+	$(if $(BR2_PACKAGE_GETTEXT),gettext)
 # we don't have a host-gettext/libintl
 HOST_FLEX_DEPENDENCIES =
 
package/gdk-pixbuf/Config.in +0 -1
index 28a0f12..33b5f7c 100644
@@ -3,7 +3,6 @@ config BR2_PACKAGE_GDK_PIXBUF
 	depends on BR2_USE_WCHAR # glib2
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  Gdk-Pixbuf is an image loader and scaler. It uses GObject
package/gdk-pixbuf/gdk-pixbuf.mk +1 -1
index 0d9e206..92a34bf 100644
@@ -40,7 +40,7 @@ GDK_PIXBUF_DEPENDENCIES += xlib_libX11
 endif
 
 GDK_PIXBUF_DEPENDENCIES += \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) \
+	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
 	$(if $(BR2_ENABLE_LOCALE),,libiconv) \
 	host-pkg-config libglib2
 
package/gettext/Config.in +0 -4
index 04f7de6..de19410 100644
@@ -15,7 +15,3 @@ config BR2_PACKAGE_GETTEXT
 
 comment "gettext requires a toolchain with WCHAR support"
 	depends on BR2_NEEDS_GETTEXT && !BR2_USE_WCHAR
-
-config BR2_PACKAGE_LIBINTL
-	bool
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
package/glib-networking/Config.in +0 -1
index 16f0d4a..dab35ea 100644
@@ -3,7 +3,6 @@ config BR2_PACKAGE_GLIB_NETWORKING
 	depends on BR2_USE_WCHAR # glib2
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT
 	help
 	  Network-related GIO modules for glib.
 
package/glib-networking/glib-networking.mk +1 -1
index 385ad47..823ba39 100644
@@ -13,7 +13,7 @@ GLIB_NETWORKING_SOURCE = glib-networking-$(GLIB_NETWORKING_VERSION).tar.xz
 GLIB_NETWORKING_INSTALL_STAGING = YES
 
 GLIB_NETWORKING_DEPENDENCIES = \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) \
+	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
 	host-pkg-config \
 	host-intltool \
 	libglib2
package/gmpc/Config.in +0 -1
index f86945c..9b38d1a 100644
@@ -5,7 +5,6 @@ config BR2_PACKAGE_GMPC
 	depends on BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_LIBMPD
 	select BR2_PACKAGE_LIBSOUP
package/gmpc/gmpc.mk +1 -1
index 51d0cd9..a136cf4 100644
@@ -11,6 +11,6 @@ GMPC_CONF_OPT = --disable-mmkeys --disable-unique
 GMPC_DEPENDENCIES = host-gob2 host-intltool host-pkg-config host-vala \
 	libglib2 libgtk2 libmpd libsoup sqlite \
 	xlib_libICE xlib_libSM xlib_libX11 \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
+	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
 
 $(eval $(autotools-package))
package/grep/Config.in +0 -1
index 1b39922..5906e69 100644
@@ -2,7 +2,6 @@ config BR2_PACKAGE_GREP
 	bool "grep"
 	depends on BR2_USE_WCHAR
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  The GNU regular expression matcher.
 
package/grep/grep.mk +1 -1
index a02fe2c..2636c83 100644
@@ -10,7 +10,7 @@ GREP_SOURCE = grep-$(GREP_VERSION).tar.xz
 GREP_LICENSE = GPLv3+
 GREP_LICENSE_FILES = COPYING
 GREP_CONF_OPT = --disable-perl-regexp --without-included-regex
-GREP_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
+GREP_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
 
 # link with iconv if enabled
 ifeq ($(BR2_PACKAGE_LIBICONV),y)
package/kbd/Config.in +0 -1
index a23b70a..44c3163 100644
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_KBD
 	bool "kbd"
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	# Uses fork()
 	depends on BR2_USE_MMU
 	help
package/kbd/kbd.mk +1 -1
index a52ad5a..325978e 100644
@@ -2,6 +2,6 @@ KBD_VERSION = 1.15.2
 KBD_SOURCE = kbd-$(KBD_VERSION).tar.gz
 KBD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kbd
 
-KBD_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
+KBD_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
 
 $(eval $(autotools-package))
package/libglib2/Config.in +0 -1
index d1d7231..5282885 100644
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_LIBGLIB2
 	bool "libglib2"
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_LIBFFI
 	select BR2_PACKAGE_ZLIB
package/libglib2/libglib2.mk +1 -1
index 2b2bd32..030cecb 100644
@@ -55,7 +55,7 @@ HOST_LIBGLIB2_CONF_OPT = \
 		--disable-gtk-doc \
 		--enable-debug=no \
 
-LIBGLIB2_DEPENDENCIES = host-pkg-config host-libglib2 libffi zlib $(if $(BR2_NEEDS_GETTEXT),gettext libintl)
+LIBGLIB2_DEPENDENCIES = host-pkg-config host-libglib2 libffi zlib $(if $(BR2_NEEDS_GETTEXT),gettext)
 
 HOST_LIBGLIB2_DEPENDENCIES = host-pkg-config host-libffi host-zlib
 
package/libsoup/Config.in +0 -1
index f40625d..57b425f 100644
@@ -4,7 +4,6 @@ config BR2_PACKAGE_LIBSOUP
 	select BR2_PACKAGE_LIBXML2
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT
 	help
 	  libsoup is an HTTP client/server library. It uses GObject
 	  and the GLib main loop, to integrate well with GNOME
package/libsoup/libsoup.mk +1 -1
index fe1a41c..30655ba 100644
@@ -19,7 +19,7 @@ endif
 
 LIBSOUP_CONF_OPT = --disable-glibtest --without-gnome
 
-LIBSOUP_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) host-pkg-config host-libglib2 libglib2 libxml2
+LIBSOUP_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) host-pkg-config host-libglib2 libglib2 libxml2
 
 ifeq ($(BR2_PACKAGE_LIBSOUP_SSL),y)
 LIBSOUP_DEPENDENCIES += glib-networking
package/linux-pam/Config.in +0 -1
index 722b875..7cfd814 100644
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_LINUX_PAM
 	bool "linux-pam"
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_FLEX
 	select BR2_PACKAGE_FLEX_LIBFL
package/linux-pam/linux-pam.mk +2 -2
index 48cb073..1a2e7f6 100644
@@ -15,12 +15,12 @@ LINUX_PAM_CONF_OPT = \
 	--disable-regenerate-docu \
 	--enable-securedir=/lib/security \
 	--libdir=/lib
-LINUX_PAM_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) flex
+LINUX_PAM_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) flex
 LINUX_PAM_AUTORECONF = YES
 LINUX_PAM_LICENSE = BSD-3c
 LINUX_PAM_LICENSE_FILES = Copyright
 
-ifeq ($(BR2_PACKAGE_LIBINTL),y)
+ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
 	LINUX_PAM_MAKE_OPT += LIBS=-lintl
 endif
 
package/lshw/lshw.mk +1 -1
index a53c107..68daa0d 100644
@@ -9,7 +9,7 @@ LSHW_SITE = http://ezix.org/software/files
 LSHW_MAKE_OPT = CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" AR="$(TARGET_AR)" \
 	RPM_OPT_FLAGS="$(TARGET_CFLAGS)" all
 LSHW_MAKE_ENV = LIBS="$(if $(BR2_NEEDS_GETTEXT),-lintl)"
-LSHW_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT),libintl)
+LSHW_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT),gettext)
 
 define LSHW_BUILD_CMDS
 	$(LSHW_MAKE_ENV) $(MAKE) -C $(@D)/src $(LSHW_MAKE_OPT)
package/make/Config.in +0 -1
index 364bb1e..ea2ae1b 100644
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_MAKE
 	bool "make"
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  A tool which controls the generation of executables and other
 	  non-source files of a program from the program's source files.
package/make/make.mk +1 -1
index a0981c7..02b2741 100644
@@ -7,7 +7,7 @@ MAKE_VERSION:=3.81
 MAKE_SOURCE:=make-$(MAKE_VERSION).tar.bz2
 MAKE_SITE:=$(BR2_GNU_MIRROR)/make
 
-MAKE_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
+MAKE_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
 
 MAKE_CONF_ENV = make_cv_sys_gnu_glob=no \
 		GLOBINC='-I$(@D)/glob' \
package/midori/Config.in +0 -1
index 49867e4..41f4515 100644
@@ -3,7 +3,6 @@ config BR2_PACKAGE_MIDORI
 	select BR2_PACKAGE_WEBKIT
 	select BR2_PACKAGE_LIBSEXY
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	depends on BR2_PACKAGE_LIBGTK2
 	depends on BR2_INSTALL_LIBSTDCPP # webkit
package/midori/midori.mk +1 -1
index 87559bb..33f94cf 100644
@@ -14,7 +14,7 @@ MIDORI_DEPENDENCIES = \
 	libgtk2 \
 	libsexy \
 	webkit \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) \
+	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
 	$(if $(BR2_PACKAGE_LIBICONV),libiconv)
 
 ifneq ($(BR2_PACKAGE_XORG7),y)
package/multimedia/pulseaudio/Config.in +1 -1
index 6e6d64c..6c767bb 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_PULSEAUDIO
 	select BR2_PACKAGE_JSON_C
 	select BR2_PACKAGE_LIBSNDFILE
 	select BR2_PACKAGE_SPEEX
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
 	help
 	  PulseAudio is a sound system for POSIX OSes, meaning that it
 	  is a proxy for your sound applications. It allows you to do
package/multimedia/pulseaudio/pulseaudio.mk +1 -1
index 13d8770..6f7d7d2 100644
@@ -16,7 +16,7 @@ PULSEAUDIO_CONF_OPT = \
 
 PULSEAUDIO_DEPENDENCIES = \
 	host-pkg-config libtool json-c libsndfile speex host-intltool \
-	$(if $(BR2_PACKAGE_LIBINTL),libintl) \
+	$(if $(BR2_PACKAGE_GETTEXT),gettext) \
 	$(if $(BR2_PACKAGE_LIBATOMIC_OPS),libatomic_ops) \
 	$(if $(BR2_PACKAGE_LIBSAMPLERATE),libsamplerate) \
 	$(if $(BR2_PACKAGE_ALSA_LIB),alsa-lib) \
package/ndisc6/ndisc6.mk +2 -2
index eb30e11..f58cc13 100644
@@ -10,8 +10,8 @@ NDISC6_SITE = http://www.remlab.net/files/ndisc6/
 NDISC6_CONF_ENV = CC="$(TARGET_CC) -std=gnu99"
 NDISC6_CONF_OPT = --localstatedir=/var --disable-rpath --disable-suid-install
 
-ifeq ($(BR2_PACKAGE_LIBINTL),y)
-NDISC6_DEPENDENCIES += libintl
+ifeq ($(BR2_PACKAGE_GETTEXT),y)
+NDISC6_DEPENDENCIES += gettext
 NDISC6_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -lintl"
 endif
 
package/pango/Config.in +0 -1
index 923c3d4..60e9931 100644
@@ -6,7 +6,6 @@ config BR2_PACKAGE_PANGO
 	select BR2_PACKAGE_EXPAT
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Pango is a library for laying out and rendering of text, with an
 	  emphasis on internationalization. Pango can be used anywhere that
package/pango/pango.mk +1 -1
index efb722d..86ab474 100644
@@ -41,7 +41,7 @@ PANGO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
 
 PANGO_CONF_OPT = --enable-explicit-deps=no --disable-debug
 
-PANGO_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) host-pkg-config libglib2 cairo
+PANGO_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) host-pkg-config libglib2 cairo
 
 ifeq ($(BR2_PACKAGE_XORG7),y)
         PANGO_CONF_OPT += --with-x \
package/psmisc/Config.in +0 -1
index a138204..cc8420b 100644
@@ -2,7 +2,6 @@ config BR2_PACKAGE_PSMISC
 	bool "psmisc"
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Helpful /proc related utilities such as pstree, fuser, and killall
 
package/psmisc/psmisc.mk +1 -1
index 3132b70..5d2333f 100644
@@ -8,7 +8,7 @@ PSMISC_VERSION = 22.16
 PSMISC_SITE = http://downloads.sourceforge.net/project/psmisc/psmisc
 PSMISC_LICENSE = GPLv2
 PSMISC_LICENSE_FILES = COPYING
-PSMISC_DEPENDENCIES = ncurses $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
+PSMISC_DEPENDENCIES = ncurses $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
 
 ifneq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
 # Don't force -fstack-protector
package/quota/Config.in +0 -1
index 6c2beff..3ad0b8c 100644
@@ -6,7 +6,6 @@ config BR2_PACKAGE_QUOTA
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_MOUNT
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Implementation of the disk quota system.
 
package/quota/quota.mk +1 -1
index 7602e93..abe3675 100644
@@ -11,7 +11,7 @@ QUOTA_SITE = http://downloads.sourceforge.net/project/linuxquota/quota-tools/$(Q
 QUOTA_MAKE_OPT = $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE"
 
 ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
-QUOTA_DEPENDENCIES = gettext libintl
+QUOTA_DEPENDENCIES = gettext
 QUOTA_MAKE_OPT += LDFLAGS="$(TARGET_LDFLAGS) -lintl"
 endif
 
package/sshfs/Config.in +0 -1
index 73d552f..37188ba 100644
@@ -3,7 +3,6 @@ config BR2_PACKAGE_SSHFS
 	select BR2_PACKAGE_LIBFUSE
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_OPENSSH
 	depends on BR2_LARGEFILE
package/sshfs/sshfs.mk +1 -1
index 67b9c7f..e72db0a 100644
@@ -9,7 +9,7 @@ SSHFS_SITE = http://downloads.sourceforge.net/project/fuse/sshfs-fuse/$(SSHFS_VE
 SSHFS_SOURCE = sshfs-fuse-$(SSHFS_VERSION).tar.gz
 SSHFS_DEPENDENCIES = \
 	libglib2 libfuse openssh \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl) \
+	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
 	$(if $(BR2_ENABLE_LOCALE),,libiconv)
 
 $(eval $(autotools-package))
package/sysstat/Config.in +0 -1
index 6e62ff1..ceba503 100644
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_SYSSTAT
 	bool "sysstat"
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	# Uses fork()
 	depends on BR2_USE_MMU
 	help
package/sysstat/sysstat.mk +1 -1
index 9d91a42..83609a0 100644
@@ -14,7 +14,7 @@ SYSSTAT_CONF_OPT += --disable-documentation
 endif
 
 ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
-SYSSTAT_DEPENDENCIES += gettext libintl
+SYSSTAT_DEPENDENCIES += gettext
 SYSSTAT_MAKE_OPT += CFLAGS+=-lintl
 endif
 
package/ushare/Config.in +0 -1
index acf025f..f7b2124 100644
@@ -3,7 +3,6 @@ config BR2_PACKAGE_USHARE
 	depends on BR2_LARGEFILE
 	select BR2_PACKAGE_LIBUPNP
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  uShare is a UPnP (TM) A/V & DLNA Media Server.
 	  It implements the server component that provides UPnP media devices
package/ushare/ushare.mk +1 -1
index 2d8bca5..78cbcda 100644
@@ -10,7 +10,7 @@ USHARE_SITE = http://ushare.geexbox.org/releases
 USHARE_DEPENDENCIES = host-pkg-config libupnp
 
 ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
-USHARE_DEPENDENCIES += gettext libintl
+USHARE_DEPENDENCIES += gettext
 USHARE_LDFLAGS += -lintl
 endif
 
package/util-linux/util-linux.mk +2 -2
index ddc9c12..71a6c53 100644
@@ -29,8 +29,8 @@ else
 UTIL_LINUX_CONF_OPT += --without-ncurses
 endif
 
-ifeq ($(BR2_PACKAGE_LIBINTL),y)
-UTIL_LINUX_DEPENDENCIES += libintl
+ifeq ($(BR2_PACKAGE_GETTEXT),y)
+UTIL_LINUX_DEPENDENCIES += gettext
 UTIL_LINUX_MAKE_OPT += LIBS=-lintl
 endif
 
package/vala/Config.in +0 -1
index 89b4459..e0d665c 100644
@@ -3,7 +3,6 @@ config BR2_PACKAGE_VALA
 	depends on BR2_USE_WCHAR # glib2
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
-	select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  Compiler for the GObject type system.
package/vala/vala.mk +1 -1
index 984043c..3ce8610 100644
@@ -10,7 +10,7 @@ VALA_VERSION = $(VALA_VERSION_MAJOR).$(VALA_VERSION_MINOR)
 VALA_SITE = http://download.gnome.org/sources/vala/$(VALA_VERSION_MAJOR)
 VALA_SOURCE = vala-$(VALA_VERSION).tar.xz
 VALA_DEPENDENCIES = host-flex libglib2 \
-		$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
+		$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
 HOST_VALA_DEPENDENCIES = host-flex host-libglib2
 
 $(eval $(autotools-package))
Signature · 1 line
1.7.2.5
#5 lore raw

PATCH v3 5/11 gettext: convert to autotools-package

In reply to Yann E. MORIN

From: Maxime Ripard <[email protected]>

[yann.morin.1998 at free.fr: add license info, build libintl if locales disabled]
CC Samuel Martin <[email protected]>
---
 package/gettext/Config.in  |   10 +++-
 package/gettext/gettext.mk |  172 ++++++++------------------------------------
 2 files changed, 40 insertions(+), 142 deletions(-)
package/gettext/Config.in +9 -1
index de19410..ee7d8cb 100644
@@ -7,11 +7,19 @@ config BR2_PACKAGE_GETTEXT
 	  framework to help other GNU packages produce multi-lingual
 	  messages.
 
-	  Only the gettext libraries will be installed in the
+	  Only the libintl library will be installed in the
 	  target. The full gettext suite, including tools, will be
 	  installed in the staging directory.
 
 	  http://www.gnu.org/software/gettext/
 
+config BR2_PACKAGE_GETTEXT_TOOLS
+	bool "Install gettext tools"
+	depends on BR2_PACKAGE_GETTEXT
+	help
+	  This option allows to install the complete gettext suite in
+	  the target filesystem. This is typically not useful for
+	  correct operation of programs.
+
 comment "gettext requires a toolchain with WCHAR support"
 	depends on BR2_NEEDS_GETTEXT && !BR2_USE_WCHAR
package/gettext/gettext.mk +31 -141

178 lines not on this page · raw message

Signature · 1 line
1.7.2.5
#6 lore raw

PATCH v3 5/11 gettext: convert to autotools-package

Quoted 8 lines · Yann E. MORIN

From: Maxime Ripard<[email protected]>

[yann.morin.1998 at free.fr: add license info, build libintl if locales disabled]
CC Samuel Martin<[email protected]>

patches 1-8, with an internal toolchain with everything enabled except LOCALE, with all 735 packages that build successfully (i.e. an allpackageyesconfig and removing the ones that fail to build (mainly because avr32linux.org has vanished)

With all the acks received so far, I propose to commit patches 1-6 (i.e.
including this one).

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#7 lore raw

PATCH v3 5/11 gettext: convert to autotools-package

Quoted 2 lines · Arnout Vandecappelle

With all the acks received so far, I propose to commit patches 1-6 (i.e.
including this one).

Grmbl, I have to learn: *first* read all mails, *then* start replying...

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#8 lore raw

PATCH v3 5/11 gettext: convert to autotools-package

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle <[email protected]> writes:

Quoted 2 lines · Arnout Vandecappelle
Quoted 2 lines

With all the acks received so far, I propose to commit patches 1-6 (i.e. including this one).

Arnout> Grmbl, I have to learn: *first* read all mails, *then* start replying...

;)

Signature · 1 line
Bye, Peter Korsgaard
#9 lore raw

PATCH v3 6/11 doc: update after gettext changes

In reply to Yann E. MORIN

From: Thomas Petazzoni <[email protected]>

---
 docs/manual/adding-packages-gettext.txt |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)
docs/manual/adding-packages-gettext.txt +2 -6
index 1ed834e..e0df1a4 100644
@@ -27,18 +27,14 @@ Therefore, Buildroot defines two configuration options:
 
 Therefore, packages that unconditionally need gettext should:
 
-* Use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT+ and possibly
-  +select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT+, if libintl is
-  also needed
+* Use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT+
 
 * Use +$(if $(BR2_NEEDS_GETTEXT),gettext)+ in the package
   +DEPENDENCIES+ variable
 
 Packages that need gettext only when locale support is enabled should:
 
-* Use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE+ and
-  possibly +select BR2_PACKAGE_LIBINTL if
-  BR2_NEEDS_GETTEXT_IF_LOCALE+, if libintl is also needed
+* Use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE+
 
 * Use +$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)+ in the package
   +DEPENDENCIES+ variable
Signature · 1 line
1.7.2.5
#10 lore raw

PATCH v3 7/11 package/lshw: add missing dependency on gettext

In reply to Yann E. MORIN

lshw.mk defines a build-dependency on gettext,
but not in its Config.in.

---
 package/lshw/Config.in |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
package/lshw/Config.in +1 -0
index 4960ac9..98beacd 100644
@@ -3,6 +3,7 @@ config BR2_PACKAGE_LSHW
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_WCHAR
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
 	help
 	  lshw (Hardware Lister) is a small tool to provide
 	  detailed information on the hardware configuration of the machine.
Signature · 1 line
1.7.2.5
#11 lore raw

PATCH v3 8/11 package/pulseaudio: fix build-dependency on gettext

In reply to Yann E. MORIN

In its Config.in, pulseaudio declares a dependency on gettext using the documented construct:
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT

but in its .mk file, declares a dependency on the package:

    PULSEAUDIO_DEPENDENCIES = [...] $(if $(BR2_PACKAGE_GETTEXT),gettext) [...]

instead of the documented:

    $(if $(BR2_NEEDS_GETTEXT),gettext)

Fix that.

---
 package/multimedia/pulseaudio/pulseaudio.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
package/multimedia/pulseaudio/pulseaudio.mk +1 -1
index 6f7d7d2..406dd8f 100644
@@ -16,7 +16,7 @@ PULSEAUDIO_CONF_OPT = \
 
 PULSEAUDIO_DEPENDENCIES = \
 	host-pkg-config libtool json-c libsndfile speex host-intltool \
-	$(if $(BR2_PACKAGE_GETTEXT),gettext) \
+	$(if $(BR2_NEEDS_GETTEXT),gettext) \
 	$(if $(BR2_PACKAGE_LIBATOMIC_OPS),libatomic_ops) \
 	$(if $(BR2_PACKAGE_LIBSAMPLERATE),libsamplerate) \
 	$(if $(BR2_PACKAGE_ALSA_LIB),alsa-lib) \
Signature · 1 line
1.7.2.5
#12 lore raw

PATCH v3 8/11 package/pulseaudio: fix build-dependency on gettext

Dear Yann E. MORIN,

Quoted 11 lines · Yann E. MORIN

In its Config.in, pulseaudio declares a dependency on gettext using the documented construct:
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT

but in its .mk file, declares a dependency on the package:

    PULSEAUDIO_DEPENDENCIES = [...] $(if $(BR2_PACKAGE_GETTEXT),gettext) [...]

instead of the documented:

    $(if $(BR2_NEEDS_GETTEXT),gettext)

Fix that.

Some other packages seem to suffer from the same problem, for example diffutils. Why are you fixing pulseaudio separately, and not diffutils, which gets fixed in your 11/11 patch:

-DIFFUTILS_DEPENDENCIES = \
- $(if $(BR2_PACKAGE_GETTEXT),gettext)
+DIFFUTILS_DEPENDENCIES = $(gettext)

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#13 lore raw

PATCH v3 8/11 package/pulseaudio: fix build-dependency on gettext

Thomas, All,

Quoted 17 lines · On Tuesday 18 September 2012 19:58:40 Thomas Petazzoni wrote:
Quoted 11 lines · Yann E. MORIN

In its Config.in, pulseaudio declares a dependency on gettext using the documented construct:
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT

but in its .mk file, declares a dependency on the package:

    PULSEAUDIO_DEPENDENCIES = [...] $(if $(BR2_PACKAGE_GETTEXT),gettext) [...]

instead of the documented:

    $(if $(BR2_NEEDS_GETTEXT),gettext)

Fix that.

Some other packages seem to suffer from the same problem, for example diffutils. Why are you fixing pulseaudio separately, and not diffutils, which gets fixed in your 11/11 patch:

Review

Quoted 3 lines
(quoted diff) +1 -2
-DIFFUTILS_DEPENDENCIES = \
-       $(if $(BR2_PACKAGE_GETTEXT),gettext)
+DIFFUTILS_DEPENDENCIES = $(gettext)

Yes, that's an oversight on my part. I quickly fixed it when I encountered the issue, and forgot to extract it into their own cset.

I'll separate that, wait for some more review a litle longer, and repost the series later.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#14 lore raw

PATCH v3 9/11 toolchain/common: rename BR2_NEEDS_GETTEXT

In reply to Yann E. MORIN

Rename the BR2_NEEDS_GETTEXT variable to a more explanatory name, BR2_NEEDS_EXTERNAL_GETTEXT.

Update manual and all packages accordingly.

---
 docs/manual/adding-packages-gettext.txt     |   12 ++++++------
 package/avahi/Config.in                     |    2 +-
 package/avahi/avahi.mk                      |    2 +-
 package/axel/Config.in                      |    2 +-
 package/axel/axel.mk                        |    2 +-
 package/binutils/Config.in                  |    2 +-
 package/binutils/binutils.mk                |    2 +-
 package/dnsmasq/Config.in                   |    2 +-
 package/dnsmasq/dnsmasq.mk                  |    4 ++--
 package/gdk-pixbuf/Config.in                |    2 +-
 package/gdk-pixbuf/gdk-pixbuf.mk            |    2 +-
 package/gettext/Config.in                   |    4 ++--
 package/glib-networking/Config.in           |    2 +-
 package/glib-networking/glib-networking.mk  |    2 +-
 package/gmpc/Config.in                      |    2 +-
 package/gmpc/gmpc.mk                        |    2 +-
 package/grep/Config.in                      |    2 +-
 package/grep/grep.mk                        |    2 +-
 package/kbd/Config.in                       |    2 +-
 package/kbd/kbd.mk                          |    2 +-
 package/libglib2/Config.in                  |    2 +-
 package/libglib2/libglib2.mk                |    2 +-
 package/libidn/Config.in                    |    2 +-
 package/libidn/libidn.mk                    |    2 +-
 package/libsoup/Config.in                   |    2 +-
 package/libsoup/libsoup.mk                  |    2 +-
 package/linux-pam/Config.in                 |    2 +-
 package/linux-pam/linux-pam.mk              |    2 +-
 package/lshw/Config.in                      |    2 +-
 package/lshw/lshw.mk                        |    4 ++--
 package/make/Config.in                      |    2 +-
 package/make/make.mk                        |    2 +-
 package/midori/Config.in                    |    2 +-
 package/midori/midori.mk                    |    2 +-
 package/multimedia/pulseaudio/Config.in     |    2 +-
 package/multimedia/pulseaudio/pulseaudio.mk |    2 +-
 package/pango/Config.in                     |    2 +-
 package/pango/pango.mk                      |    2 +-
 package/php/Config.ext                      |    2 +-
 package/php/php.mk                          |    2 +-
 package/psmisc/Config.in                    |    2 +-
 package/psmisc/psmisc.mk                    |    2 +-
 package/quota/Config.in                     |    2 +-
 package/quota/quota.mk                      |    2 +-
 package/sshfs/Config.in                     |    2 +-
 package/sshfs/sshfs.mk                      |    2 +-
 package/sysstat/Config.in                   |    2 +-
 package/sysstat/sysstat.mk                  |    2 +-
 package/ushare/Config.in                    |    2 +-
 package/ushare/ushare.mk                    |    2 +-
 package/vala/Config.in                      |    2 +-
 package/vala/vala.mk                        |    2 +-
 toolchain/toolchain-common.in               |    6 +++---
 53 files changed, 63 insertions(+), 63 deletions(-)
docs/manual/adding-packages-gettext.txt +6 -6
index e0df1a4..71da62a 100644
@@ -18,23 +18,23 @@ is enabled.
 
 Therefore, Buildroot defines two configuration options:
 
-* +BR2_NEEDS_GETTEXT+, which is true as soon as the toolchain doesn't
+* +BR2_NEEDS_EXTERNAL_GETTEXT+, which is true as soon as the toolchain doesn't
   provide its own gettext implementation
 
-* +BR2_NEEDS_GETTEXT_IF_LOCALE+, which is true if the toolchain
+* +BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE+, which is true if the toolchain
   doesn't provide its own gettext implementation and if locale support
   is enabled
 
 Therefore, packages that unconditionally need gettext should:
 
-* Use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT+
+* Use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT+
 
-* Use +$(if $(BR2_NEEDS_GETTEXT),gettext)+ in the package
+* Use +$(if $(BR2_NEEDS_EXTERNAL_GETTEXT),gettext)+ in the package
   +DEPENDENCIES+ variable
 
 Packages that need gettext only when locale support is enabled should:
 
-* Use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE+
+* Use +select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE+
 
-* Use +$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)+ in the package
+* Use +$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)+ in the package
   +DEPENDENCIES+ variable
package/avahi/Config.in +1 -1
index 8ba33d5..982966d 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_AVAHI
 	bool "avahi"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  Avahi is a system which facilitates service
 	  discovery on a local network.
package/avahi/avahi.mk +1 -1
index 03dc368..67b357e 100644
@@ -85,7 +85,7 @@ AVAHI_CONF_OPT = --localstatedir=/var \
 		--with-autoipd-user=default \
 		--with-autoipd-group=default
 
-AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) host-intltool host-pkg-config
+AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) host-intltool host-pkg-config
 
 ifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),)
 AVAHI_DEPENDENCIES += libdaemon
package/axel/Config.in +1 -1
index d823272..4c22286 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_AXEL
 	bool "axel"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	help
 	  HTTP/FTP download accelerator.
package/axel/axel.mk +1 -1
index 0ed8ad2..cfec43d 100644
@@ -9,7 +9,7 @@ AXEL_SITE = https://alioth.debian.org/frs/download.php/3015
 
 AXEL_LDFLAGS = -lpthread
 
-ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
+ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
 AXEL_DEPENDENCIES += gettext
 AXEL_LDFLAGS += -lintl
 endif
package/binutils/Config.in +1 -1
index 6480370..159bee1 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_BINUTILS
 	bool "binutils"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  Install binutils on the target
 
package/binutils/binutils.mk +1 -1
index d41cac4..27cdfd2 100644
@@ -23,7 +23,7 @@ BINUTILS_SITE = ftp://www.at91.com/pub/buildroot
 endif
 BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
 BINUTILS_INSTALL_STAGING = YES
-BINUTILS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
+BINUTILS_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
 
 # We need to specify host & target to avoid breaking ARM EABI
 BINUTILS_CONF_OPT = --disable-multilib --disable-werror \
package/dnsmasq/Config.in +1 -1
index b76ddb2..7b55a20 100644
@@ -24,7 +24,7 @@ config BR2_PACKAGE_DNSMASQ_IDN
 	bool "IDN support"
 	depends on BR2_USE_WCHAR
 	select BR2_PACKAGE_LIBIDN
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  Enable IDN support in dnsmasq.
 	  This option is a big space taker since it pulls in many libraries.
package/dnsmasq/dnsmasq.mk +2 -2
index e92a554..8ef4cd3 100644
@@ -24,8 +24,8 @@ endif
 
 # NLS requires IDN so only enable it (i18n) when IDN is true
 ifeq ($(BR2_PACKAGE_DNSMASQ_IDN),y)
-	DNSMASQ_DEPENDENCIES += libidn $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
-	DNSMASQ_MAKE_OPT += LDFLAGS+="-lidn $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),-lintl)"
+	DNSMASQ_DEPENDENCIES += libidn $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
+	DNSMASQ_MAKE_OPT += LDFLAGS+="-lidn $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),-lintl)"
 	DNSMASQ_COPTS += -DHAVE_IDN
 	DNSMASQ_I18N = $(if $(BR2_ENABLE_LOCALE),-i18n)
 endif
package/gdk-pixbuf/Config.in +1 -1
index 33b5f7c..e50ecbc 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_GDK_PIXBUF
 	bool "gdk-pixbuf"
 	depends on BR2_USE_WCHAR # glib2
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  Gdk-Pixbuf is an image loader and scaler. It uses GObject
package/gdk-pixbuf/gdk-pixbuf.mk +1 -1
index 92a34bf..1df409e 100644
@@ -40,7 +40,7 @@ GDK_PIXBUF_DEPENDENCIES += xlib_libX11
 endif
 
 GDK_PIXBUF_DEPENDENCIES += \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
+	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) \
 	$(if $(BR2_ENABLE_LOCALE),,libiconv) \
 	host-pkg-config libglib2
 
package/gettext/Config.in +2 -2
index ee7d8cb..56a8fe7 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_GETTEXT
 	bool "gettext"
-	depends on BR2_NEEDS_GETTEXT
+	depends on BR2_NEEDS_EXTERNAL_GETTEXT
 	depends on BR2_USE_WCHAR
 	help
 	  The GNU `gettext' utilities are a set of tools that provide a
@@ -22,4 +22,4 @@ config BR2_PACKAGE_GETTEXT_TOOLS
 	  correct operation of programs.
 
 comment "gettext requires a toolchain with WCHAR support"
-	depends on BR2_NEEDS_GETTEXT && !BR2_USE_WCHAR
+	depends on BR2_NEEDS_EXTERNAL_GETTEXT && !BR2_USE_WCHAR
package/glib-networking/Config.in +1 -1
index dab35ea..6ed312b 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_GLIB_NETWORKING
 	bool "glib-networking"
 	depends on BR2_USE_WCHAR # glib2
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
 	help
 	  Network-related GIO modules for glib.
 
package/glib-networking/glib-networking.mk +1 -1
index 823ba39..9f74c35 100644
@@ -13,7 +13,7 @@ GLIB_NETWORKING_SOURCE = glib-networking-$(GLIB_NETWORKING_VERSION).tar.xz
 GLIB_NETWORKING_INSTALL_STAGING = YES
 
 GLIB_NETWORKING_DEPENDENCIES = \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
+	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) \
 	host-pkg-config \
 	host-intltool \
 	libglib2
package/gmpc/Config.in +1 -1
index 9b38d1a..45b08d4 100644
@@ -4,7 +4,7 @@ config BR2_PACKAGE_GMPC
 	depends on BR2_USE_WCHAR # glib2
 	depends on BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_LIBMPD
 	select BR2_PACKAGE_LIBSOUP
package/gmpc/gmpc.mk +1 -1
index a136cf4..bdc10c5 100644
@@ -11,6 +11,6 @@ GMPC_CONF_OPT = --disable-mmkeys --disable-unique
 GMPC_DEPENDENCIES = host-gob2 host-intltool host-pkg-config host-vala \
 	libglib2 libgtk2 libmpd libsoup sqlite \
 	xlib_libICE xlib_libSM xlib_libX11 \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
+	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
 
 $(eval $(autotools-package))
package/grep/Config.in +1 -1
index 5906e69..fc4e5b9 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_GREP
 	bool "grep"
 	depends on BR2_USE_WCHAR
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  The GNU regular expression matcher.
 
package/grep/grep.mk +1 -1
index 2636c83..6c37847 100644
@@ -10,7 +10,7 @@ GREP_SOURCE = grep-$(GREP_VERSION).tar.xz
 GREP_LICENSE = GPLv3+
 GREP_LICENSE_FILES = COPYING
 GREP_CONF_OPT = --disable-perl-regexp --without-included-regex
-GREP_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
+GREP_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
 
 # link with iconv if enabled
 ifeq ($(BR2_PACKAGE_LIBICONV),y)
package/kbd/Config.in +1 -1
index 44c3163..939565f 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_KBD
 	bool "kbd"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	# Uses fork()
 	depends on BR2_USE_MMU
 	help
package/kbd/kbd.mk +1 -1
index 325978e..69a22c1 100644
@@ -2,6 +2,6 @@ KBD_VERSION = 1.15.2
 KBD_SOURCE = kbd-$(KBD_VERSION).tar.gz
 KBD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kbd
 
-KBD_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
+KBD_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
 
 $(eval $(autotools-package))
package/libglib2/Config.in +1 -1
index 5282885..50e95d5 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LIBGLIB2
 	bool "libglib2"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_LIBFFI
 	select BR2_PACKAGE_ZLIB
package/libglib2/libglib2.mk +1 -1
index 030cecb..7df1cd0 100644
@@ -55,7 +55,7 @@ HOST_LIBGLIB2_CONF_OPT = \
 		--disable-gtk-doc \
 		--enable-debug=no \
 
-LIBGLIB2_DEPENDENCIES = host-pkg-config host-libglib2 libffi zlib $(if $(BR2_NEEDS_GETTEXT),gettext)
+LIBGLIB2_DEPENDENCIES = host-pkg-config host-libglib2 libffi zlib $(if $(BR2_NEEDS_EXTERNAL_GETTEXT),gettext)
 
 HOST_LIBGLIB2_DEPENDENCIES = host-pkg-config host-libffi host-zlib
 
package/libidn/Config.in +1 -1
index dcf9724..9ef7a64 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LIBIDN
 	bool "libidn"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  Libidn's purpose is to encode and decode internationalized
 	  domain names.
package/libidn/libidn.mk +1 -1
index c55f2c5..3219dae 100644
@@ -9,7 +9,7 @@ LIBIDN_SITE = $(BR2_GNU_MIRROR)/libidn
 LIBIDN_INSTALL_STAGING = YES
 LIBIDN_CONF_ENV = EMACS="no"
 LIBIDN_CONF_OPT = --disable-java --enable-csharp=no
-LIBIDN_DEPENDENCIES = host-pkg-config $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+LIBIDN_DEPENDENCIES = host-pkg-config $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) $(if $(BR2_PACKAGE_LIBICONV),libiconv)
 
 define LIBIDN_REMOVE_BINARY
 	rm -f $(TARGET_DIR)/usr/bin/idn
package/libsoup/Config.in +1 -1
index 57b425f..5a4061a 100644
@@ -3,7 +3,7 @@ config BR2_PACKAGE_LIBSOUP
 	depends on BR2_USE_WCHAR # glib2 and gnutls
 	select BR2_PACKAGE_LIBXML2
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
 	help
 	  libsoup is an HTTP client/server library. It uses GObject
 	  and the GLib main loop, to integrate well with GNOME
package/libsoup/libsoup.mk +1 -1
index 30655ba..c14771d 100644
@@ -19,7 +19,7 @@ endif
 
 LIBSOUP_CONF_OPT = --disable-glibtest --without-gnome
 
-LIBSOUP_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) host-pkg-config host-libglib2 libglib2 libxml2
+LIBSOUP_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) host-pkg-config host-libglib2 libglib2 libxml2
 
 ifeq ($(BR2_PACKAGE_LIBSOUP_SSL),y)
 LIBSOUP_DEPENDENCIES += glib-networking
package/linux-pam/Config.in +1 -1
index 7cfd814..1b0bc6e 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LINUX_PAM
 	bool "linux-pam"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_FLEX
 	select BR2_PACKAGE_FLEX_LIBFL
 	depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR)
package/linux-pam/linux-pam.mk +1 -1
index 1a2e7f6..9bd1b1b 100644
@@ -15,7 +15,7 @@ LINUX_PAM_CONF_OPT = \
 	--disable-regenerate-docu \
 	--enable-securedir=/lib/security \
 	--libdir=/lib
-LINUX_PAM_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) flex
+LINUX_PAM_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) flex
 LINUX_PAM_AUTORECONF = YES
 LINUX_PAM_LICENSE = BSD-3c
 LINUX_PAM_LICENSE_FILES = Copyright
package/lshw/Config.in +1 -1
index 98beacd..45ca2b2 100644
@@ -3,7 +3,7 @@ config BR2_PACKAGE_LSHW
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_WCHAR
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
 	help
 	  lshw (Hardware Lister) is a small tool to provide
 	  detailed information on the hardware configuration of the machine.
package/lshw/lshw.mk +2 -2
index 68daa0d..5bdffc9 100644
@@ -8,8 +8,8 @@ LSHW_VERSION = B.02.16
 LSHW_SITE = http://ezix.org/software/files
 LSHW_MAKE_OPT = CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" AR="$(TARGET_AR)" \
 	RPM_OPT_FLAGS="$(TARGET_CFLAGS)" all
-LSHW_MAKE_ENV = LIBS="$(if $(BR2_NEEDS_GETTEXT),-lintl)"
-LSHW_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT),gettext)
+LSHW_MAKE_ENV = LIBS="$(if $(BR2_NEEDS_EXTERNAL_GETTEXT),-lintl)"
+LSHW_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT),gettext)
 
 define LSHW_BUILD_CMDS
 	$(LSHW_MAKE_ENV) $(MAKE) -C $(@D)/src $(LSHW_MAKE_OPT)
package/make/Config.in +1 -1
index ea2ae1b..d650649 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_MAKE
 	bool "make"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  A tool which controls the generation of executables and other
 	  non-source files of a program from the program's source files.
package/make/make.mk +1 -1
index 02b2741..b8fe323 100644
@@ -7,7 +7,7 @@ MAKE_VERSION:=3.81
 MAKE_SOURCE:=make-$(MAKE_VERSION).tar.bz2
 MAKE_SITE:=$(BR2_GNU_MIRROR)/make
 
-MAKE_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
+MAKE_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
 
 MAKE_CONF_ENV = make_cv_sys_gnu_glob=no \
 		GLOBINC='-I$(@D)/glob' \
package/midori/Config.in +1 -1
index 41f4515..5933699 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_MIDORI
 	bool "midori"
 	select BR2_PACKAGE_WEBKIT
 	select BR2_PACKAGE_LIBSEXY
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	depends on BR2_PACKAGE_LIBGTK2
 	depends on BR2_INSTALL_LIBSTDCPP # webkit
package/midori/midori.mk +1 -1
index 33f94cf..f98bd91 100644
@@ -14,7 +14,7 @@ MIDORI_DEPENDENCIES = \
 	libgtk2 \
 	libsexy \
 	webkit \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
+	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) \
 	$(if $(BR2_PACKAGE_LIBICONV),libiconv)
 
 ifneq ($(BR2_PACKAGE_XORG7),y)
package/multimedia/pulseaudio/Config.in +1 -1
index 6c767bb..927d347 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_PULSEAUDIO
 	select BR2_PACKAGE_JSON_C
 	select BR2_PACKAGE_LIBSNDFILE
 	select BR2_PACKAGE_SPEEX
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
 	help
 	  PulseAudio is a sound system for POSIX OSes, meaning that it
 	  is a proxy for your sound applications. It allows you to do
package/multimedia/pulseaudio/pulseaudio.mk +1 -1
index 406dd8f..439cb17 100644
@@ -16,7 +16,7 @@ PULSEAUDIO_CONF_OPT = \
 
 PULSEAUDIO_DEPENDENCIES = \
 	host-pkg-config libtool json-c libsndfile speex host-intltool \
-	$(if $(BR2_NEEDS_GETTEXT),gettext) \
+	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT),gettext) \
 	$(if $(BR2_PACKAGE_LIBATOMIC_OPS),libatomic_ops) \
 	$(if $(BR2_PACKAGE_LIBSAMPLERATE),libsamplerate) \
 	$(if $(BR2_PACKAGE_ALSA_LIB),alsa-lib) \
package/pango/Config.in +1 -1
index 60e9931..07ca298 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_PANGO
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_EXPAT
 	select BR2_PACKAGE_CAIRO
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  Pango is a library for laying out and rendering of text, with an
 	  emphasis on internationalization. Pango can be used anywhere that
package/pango/pango.mk +1 -1
index 86ab474..ed2e313 100644
@@ -41,7 +41,7 @@ PANGO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
 
 PANGO_CONF_OPT = --enable-explicit-deps=no --disable-debug
 
-PANGO_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) host-pkg-config libglib2 cairo
+PANGO_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) host-pkg-config libglib2 cairo
 
 ifeq ($(BR2_PACKAGE_XORG7),y)
         PANGO_CONF_OPT += --with-x \
package/php/Config.ext +1 -1
index 2cf71d3..33d64ec 100644
@@ -146,7 +146,7 @@ comment "Human language and character encoding support"
 
 config BR2_PACKAGE_PHP_EXT_GETTEXT
 	bool "Gettext"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
 	depends on BR2_USE_WCHAR
 	help
 	  Gettext support
package/php/php.mk +1 -1
index 2f8e99e..38aebdd 100644
@@ -87,7 +87,7 @@ endif
 
 ifeq ($(BR2_PACKAGE_PHP_EXT_GETTEXT),y)
 	PHP_CONF_OPT += --with-gettext=$(STAGING_DIR)/usr
-	PHP_DEPENDENCIES += $(if $(BR2_NEEDS_GETTEXT),gettext)
+	PHP_DEPENDENCIES += $(if $(BR2_NEEDS_EXTERNAL_GETTEXT),gettext)
 endif
 
 ifeq ($(BR2_PACKAGE_PHP_EXT_ICONV),y)
package/psmisc/Config.in +1 -1
index cc8420b..4832956 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_PSMISC
 	bool "psmisc"
 	select BR2_PACKAGE_NCURSES
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  Helpful /proc related utilities such as pstree, fuser, and killall
 
package/psmisc/psmisc.mk +1 -1
index 5d2333f..aaf08d1 100644
@@ -8,7 +8,7 @@ PSMISC_VERSION = 22.16
 PSMISC_SITE = http://downloads.sourceforge.net/project/psmisc/psmisc
 PSMISC_LICENSE = GPLv2
 PSMISC_LICENSE_FILES = COPYING
-PSMISC_DEPENDENCIES = ncurses $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
+PSMISC_DEPENDENCIES = ncurses $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
 
 ifneq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
 # Don't force -fstack-protector
package/quota/Config.in +1 -1
index 3ad0b8c..17f2278 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_QUOTA
 	depends on BR2_USE_WCHAR
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_MOUNT
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  Implementation of the disk quota system.
 
package/quota/quota.mk +1 -1
index abe3675..2be3fa4 100644
@@ -10,7 +10,7 @@ QUOTA_SITE = http://downloads.sourceforge.net/project/linuxquota/quota-tools/$(Q
 
 QUOTA_MAKE_OPT = $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE"
 
-ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
+ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
 QUOTA_DEPENDENCIES = gettext
 QUOTA_MAKE_OPT += LDFLAGS="$(TARGET_LDFLAGS) -lintl"
 endif
package/sshfs/Config.in +1 -1
index 37188ba..1416393 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_SSHFS
 	bool "sshfs (FUSE)"
 	select BR2_PACKAGE_LIBFUSE
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_OPENSSH
 	depends on BR2_LARGEFILE
package/sshfs/sshfs.mk +1 -1
index e72db0a..23e62e0 100644
@@ -9,7 +9,7 @@ SSHFS_SITE = http://downloads.sourceforge.net/project/fuse/sshfs-fuse/$(SSHFS_VE
 SSHFS_SOURCE = sshfs-fuse-$(SSHFS_VERSION).tar.gz
 SSHFS_DEPENDENCIES = \
 	libglib2 libfuse openssh \
-	$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \
+	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) \
 	$(if $(BR2_ENABLE_LOCALE),,libiconv)
 
 $(eval $(autotools-package))
package/sysstat/Config.in +1 -1
index ceba503..834e99b 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_SYSSTAT
 	bool "sysstat"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	# Uses fork()
 	depends on BR2_USE_MMU
 	help
package/sysstat/sysstat.mk +1 -1
index 83609a0..794d70b 100644
@@ -13,7 +13,7 @@ ifneq ($(BR2_HAVE_DOCUMENTATION),y)
 SYSSTAT_CONF_OPT += --disable-documentation
 endif
 
-ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
+ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
 SYSSTAT_DEPENDENCIES += gettext
 SYSSTAT_MAKE_OPT += CFLAGS+=-lintl
 endif
package/ushare/Config.in +1 -1
index f7b2124..eb1d2b2 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_USHARE
 	bool "ushare"
 	depends on BR2_LARGEFILE
 	select BR2_PACKAGE_LIBUPNP
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	help
 	  uShare is a UPnP (TM) A/V & DLNA Media Server.
 	  It implements the server component that provides UPnP media devices
package/ushare/ushare.mk +1 -1
index 78cbcda..aa47618 100644
@@ -9,7 +9,7 @@ USHARE_SOURCE = ushare-$(USHARE_VERSION).tar.bz2
 USHARE_SITE = http://ushare.geexbox.org/releases
 USHARE_DEPENDENCIES = host-pkg-config libupnp
 
-ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
+ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
 USHARE_DEPENDENCIES += gettext
 USHARE_LDFLAGS += -lintl
 endif
package/vala/Config.in +1 -1
index e0d665c..0021895 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_VALA
 	bool "vala"
 	depends on BR2_USE_WCHAR # glib2
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  Compiler for the GObject type system.
package/vala/vala.mk +1 -1
index 3ce8610..fef51da 100644
@@ -10,7 +10,7 @@ VALA_VERSION = $(VALA_VERSION_MAJOR).$(VALA_VERSION_MINOR)
 VALA_SITE = http://download.gnome.org/sources/vala/$(VALA_VERSION_MAJOR)
 VALA_SOURCE = vala-$(VALA_VERSION).tar.xz
 VALA_DEPENDENCIES = host-flex libglib2 \
-		$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
+		$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
 HOST_VALA_DEPENDENCIES = host-flex host-libglib2
 
 $(eval $(autotools-package))
toolchain/toolchain-common.in +3 -3
index 6e0d159..091aaa1 100644
@@ -82,15 +82,15 @@ config BR2_GENERATE_LOCALE
 # locale support is enabled. See the documentation for how packages
 # should rely on the following two options.
 
-config BR2_NEEDS_GETTEXT
+config BR2_NEEDS_EXTERNAL_GETTEXT
 	bool
 	default y if BR2_TOOLCHAIN_BUILDROOT
 	default y if BR2_TOOLCHAIN_EXTERNAL_UCLIBC
 	default y if BR2_TOOLCHAIN_CTNG_uClibc
 
-config BR2_NEEDS_GETTEXT_IF_LOCALE
+config BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	bool
-	default y if (BR2_NEEDS_GETTEXT && BR2_ENABLE_LOCALE)
+	default y if (BR2_NEEDS_EXTERNAL_GETTEXT && BR2_ENABLE_LOCALE)
 
 config BR2_USE_MMU
 	bool "Enable MMU support" if BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel || BR2_sh || BR2_xtensa
Signature · 1 line
1.7.2.5
#15 lore raw

PATCH v3 9/11 toolchain/common: rename BR2_NEEDS_GETTEXT

Quoted 9 lines · Yann E. MORIN

Rename the BR2_NEEDS_GETTEXT variable to a more explanatory name, BR2_NEEDS_EXTERNAL_GETTEXT.

Update manual and all packages accordingly.

I don't think this one needs to be delayed either, right? Peter, Thomas?

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#16 lore raw

PATCH v3 9/11 toolchain/common: rename BR2_NEEDS_GETTEXT

Dear Arnout Vandecappelle,

Quoted 1 line · Arnout Vandecappelle

I don't think this one needs to be delayed either, right? Peter, Thomas?

Agreed.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#17 lore raw

PATCH v3 10/11 toolchain/common: introduce blind options BR2_NEEDS_GETTEXT{, _IF_LOCALE}

In reply to Yann E. MORIN

Introduce two new blind config options:
- BR2_NEEDS_GETTEXT
selects the gettext package if the toolchain does not provide it
- BR2_NEEDS_GETTEXT_IF_LOCALE
ditto, but only if locales are enabled

Packages can then select either if they require gettext (resp. if locales are enabled).

This will simplify the packages Config.in by no longer requiring that the 'select' be conditional, thus hiding the gory details out of packages, which don't really need to know about those details.

Also, introduce four new Makefile variables:
- $(gettext)
contains the needed dependencies for pacakges that need gettext
functioanlity: 'gettext' if the gettext pacakge is needed, empty otherwise
- $(gettext-if-locale)
ditto, but only if locales are enabled
- $(gettext-LDFLAGS)
contains the required LDFLAGS ("-lintl") if gettext is provided by the gettext package, empty otherwise
- $(gettext-LDFLAGS-if-locale)
ditto, but only if locales are enabled

Packages can then add either variable to their own LDFLAGS.

Note: those new options and variables are going to be used in the next patch, for now they are a no-op.

---
 Makefile                                |    1 +
 docs/manual/adding-packages-gettext.txt |   55 +++++++++++++++++++++++-------
 toolchain/toolchain-common.in           |   10 +++++-
 toolchain/toolchain-common.mk           |   35 +++++++++++++++++++
 4 files changed, 87 insertions(+), 14 deletions(-)
 create mode 100644 toolchain/toolchain-common.mk
Makefile +1 -0
index ba5da99..16cfdf1 100644
@@ -294,6 +294,7 @@ include support/dependencies/dependencies.mk
 # We also need the various per-package makefiles, which also add
 # each selected package to TARGETS if that package was selected
 # in the .config file.
+include toolchain/toolchain-common.mk
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 include toolchain/toolchain-buildroot.mk
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
docs/manual/adding-packages-gettext.txt +42 -13

65 lines not on this page · raw message

toolchain/toolchain-common.in +9 -1
index 091aaa1..4c55578 100644
@@ -80,7 +80,7 @@ config BR2_GENERATE_LOCALE
 # gettext isn't needed and shouldn't be built to avoid conflicts. Some
 # packages always need gettext, other packages only need gettext when
 # locale support is enabled. See the documentation for how packages
-# should rely on the following two options.
+# should rely on the following four options.
 
 config BR2_NEEDS_EXTERNAL_GETTEXT
 	bool
@@ -92,6 +92,14 @@ config BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
 	bool
 	default y if (BR2_NEEDS_EXTERNAL_GETTEXT && BR2_ENABLE_LOCALE)
 
+config BR2_NEEDS_GETTEXT
+	bool
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
+
+config BR2_NEEDS_GETTEXT_IF_LOCALE
+	bool
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+
 config BR2_USE_MMU
 	bool "Enable MMU support" if BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel || BR2_sh || BR2_xtensa
 	default y if !BR2_bfin
toolchain/toolchain-common.mk new file +35 -0
new file mode 100644
index 0000000..6333808
@@ -0,0 +1,35 @@
+# Common set of variables
+
+# $(gettext)
+#  - contains the needed dependencies for packages that need gettext
+#    functioanlity: 'gettext' if the gettext package is needed
+#  - empty otherwise
+#
+# $(gettext-if-locale)
+#  - contains the needed dependencies for packages that need gettext
+#    functioanlity: 'gettext' if the gettext package is needed, and
+#    locales are enabled
+#  - empty otherwise
+ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT),y)
+gettext = $(if $(BR2_PACKAGE_GETTEXT),gettext)
+endif
+ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
+gettext-if-locale = $(if $(BR2_PACKAGE_GETTEXT),gettext)
+endif
+
+# $(gettext-LDFLAGS)
+#  - set to "-lintl" if the toolchain does not provide gettext, and
+#    package gettext is selected
+#  - empty otherwise
+#
+# $(gettext-LDFLAGS-if-locale)
+#  - set to "-lintl" if the toolchain does not provide gettext, and
+#    locales are enabled, and package gettext is selected
+#  - empty otherwise
+#
+ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT),y)
+gettext-LDFLAGS = $(if $(BR2_PACKAGE_GETTEXT),-lintl)
+endif
+ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
+gettext-LDFLAGS-if-locale = $(if $(BR2_PACKAGE_GETTEXT),-lintl)
+endif
Signature · 1 line
1.7.2.5
#18 lore raw

PATCH v3 10/11 toolchain/common: introduce blind options BR2_NEEDS_GETTEXT{, _IF_LOCALE}

Dear Yann E. MORIN,

Quoted 6 lines · Yann E. MORIN

Introduce two new blind config options:
- BR2_NEEDS_GETTEXT
selects the gettext package if the toolchain does not provide it
- BR2_NEEDS_GETTEXT_IF_LOCALE
ditto, but only if locales are enabled

Quoted 6 lines

Packages can then select either if they require gettext (resp. if locales are enabled).

This will simplify the packages Config.in by no longer requiring that the 'select' be conditional, thus hiding the gory details out of packages, which don't really need to know about those details.

Nice.

Quoted 13 lines

Also, introduce four new Makefile variables:
- $(gettext)
contains the needed dependencies for pacakges that need gettext
functioanlity: 'gettext' if the gettext pacakge is needed, empty otherwise
- $(gettext-if-locale)
ditto, but only if locales are enabled
- $(gettext-LDFLAGS)
contains the required LDFLAGS ("-lintl") if gettext is provided by the gettext package, empty otherwise
- $(gettext-LDFLAGS-if-locale)
ditto, but only if locales are enabled

Quoted 1 line

Packages can then add either variable to their own LDFLAGS.

I am happy about the entire patch set, except those $(gettext), $(gettext-if-locale), $(gettext-LDFLAGS) and $(gettext-LDFLAGS-if-locale) variables. Even though they admittedly make the code a bit shorter, I think they needlessly hide what is really happening. I very much prefer an explicit:

FOO_DEPENDENCIES += $(if $(BR2_NEEDS_GETTEXT),gettext)

(which doesn't use any special construct)

rather than the more strange:

FOO_DEPENDENCIES += $(gettext)

I know I'm annoying by rejecting many new additional constructs, but I think such constructs are crossing the boundary of shortness vs. readability.

Of course, this is only my opinion, and if others are strongly in favor of this approach, then I'll learn to live with it, but I think it's a dangerous direction for the readability of .mk files. If you respin your patch set without those constructs, you'll have my Acked-by on the whole thing.

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#19 lore raw

PATCH v3 10/11 toolchain/common: introduce blind options BR2_NEEDS_GETTEXT{, _IF_LOCALE}

Hi Yann, Thomas, all,

2012/9/18 Thomas Petazzoni <[email protected]>:

Quoted 3 lines

Dear Yann E. MORIN,

On Mon, 17 Sep 2012 00:57:55 +0200, Yann E. MORIN wrote:

[...]

Quoted 13 lines
Quoted 13 lines

Also, introduce four new Makefile variables:
- $(gettext)
contains the needed dependencies for pacakges that need gettext
functioanlity: 'gettext' if the gettext pacakge is needed, empty otherwise
- $(gettext-if-locale)
ditto, but only if locales are enabled
- $(gettext-LDFLAGS)
contains the required LDFLAGS ("-lintl") if gettext is provided by the gettext package, empty otherwise
- $(gettext-LDFLAGS-if-locale)
ditto, but only if locales are enabled

Quoted 7 lines
Quoted 1 line

Packages can then add either variable to their own LDFLAGS.

I am happy about the entire patch set, except those $(gettext), $(gettext-if-locale), $(gettext-LDFLAGS) and $(gettext-LDFLAGS-if-locale) variables. Even though they admittedly make the code a bit shorter, I think they needlessly hide what is really happening. I very much prefer an explicit:

I disagree with Thomas.
True, this hides a bit the details, but I do not think it that's a bad thing. I mean gettext/locale support is somehow quite closely related to the toolchain, so, having these variables warns a bit more about what one is about to do.

Though, these variables hide some things, it's pretty easy to find out their definitions; and IMHO, there are other things more hidden than this in BR. ;-)
Besides, I think, the variable names are clear, and won't easily lead to mistakes or misunderstandings.

Yours,

Signature · 1 line
Sam
#20 lore raw

PATCH v3 10/11 toolchain/common: introduce blind options BR2_NEEDS_GETTEXT{, _IF_LOCALE}

In reply to Thomas Petazzoni

Thomas, All,

Quoted 22 lines · On Tuesday 18 September 2012 19:55:18 Thomas Petazzoni wrote:
Quoted 13 lines · Yann E. MORIN

Also, introduce four new Makefile variables:
- $(gettext)
contains the needed dependencies for pacakges that need gettext
functioanlity: 'gettext' if the gettext pacakge is needed, empty otherwise
- $(gettext-if-locale)
ditto, but only if locales are enabled
- $(gettext-LDFLAGS)
contains the required LDFLAGS ("-lintl") if gettext is provided by the gettext package, empty otherwise
- $(gettext-LDFLAGS-if-locale)
ditto, but only if locales are enabled

Quoted 1 line

Packages can then add either variable to their own LDFLAGS.

I am happy about the entire patch set, except those $(gettext), $(gettext-if-locale), $(gettext-LDFLAGS) and $(gettext-LDFLAGS-if-locale) variables. Even though they admittedly make the code a bit shorter, I think they needlessly hide what is really happening. I very much prefer an explicit:

Quoted 7 lines

FOO_DEPENDENCIES += $(if $(BR2_NEEDS_GETTEXT),gettext)

(which doesn't use any special construct)

rather than the more strange:

FOO_DEPENDENCIES += $(gettext)

My reasoning behind this was to keep the similar constructs in the Config.in and the package.mk.

In Config.in, a package declares its dependency on gettext, and buildroot does what is needed "behind the hood":
select BR2_NEEDS_GETTEXT

Then buildroot will or will not effectively select the gettext package, depending on the toolchain features.

(To be noted, in this case we are already /hidding/ stuff behind the
scenes, which could well be considered "crossing the line", too.)

I wanted to introduce a similar behavior in the .mk, hence the $(gettext*) variables, without the package to even have to deal with the depedencies by itself. A package would just have to declare a build-time dependency on the gettext _feature_, and buildroot would decide to build or not to build the gettext _package_ depending on the toolchain features.

Quoted 3 lines

I know I'm annoying by rejecting many new additional constructs, but I think such constructs are crossing the boundary of shortness vs. readability.

(No, you are not annoying; I do expect such discussions on such impacting changes. Yes, it's a bit frustrating, but this is absolutely needed. :-) )

I agree that this is somewhat crossing the line. But I also believe this change would make it easier to maintain packages, with a single, right way of expressing the dependency, and a single place we'd have to change if we'd have to, rather than scouting the tree for packages that needs gettext feature (although a trivial grep would probably do the trick, granted).

Also, leaving packages do the conditional test opens the door to packages doing it in their own way, eg:

if BR2_NEEDS_GETTEXT
FOO_DEPS += gettext
endif

vs.

  FOO_DEPS += $(if $(BR2_NEEDS_GETTEXT),gettext)

This is source for confusion, and thus should be avoided.

I know that semantically, this would not change much, but what if we were to rename those variables, so they are more in-line with the Config.in ones such as:
$(needs-gettext)
$(needs-gettext-if-locale)
$(needs-gettext_LDFLAGS)
$(needs-gettext-if-locale_LDFLAGS)

( Yes, I'm pushing for this change as much as I can! ;-) )

Quoted 5 lines

Of course, this is only my opinion, and if others are strongly in favor of this approach, then I'll learn to live with it, but I think it's a dangerous direction for the readability of .mk files. If you respin your patch set without those constructs, you'll have my Acked-by on the whole thing.

OK, so here's what I suggest:
- fix the 4 gettext mis-constructs in packages, as you pointed out in another mail,
- split the gettext abstraction in two parts: one for the Config.in stuff, and a second for the .mk stuff.

This way, at least the part of the series that we all agree on can be merged, and the litiguous parts can be refined/dropped.

Does that sound OK?

Thanks for the comments! :-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#21 lore raw

PATCH v3 10/11 toolchain/common: introduce blind options BR2_NEEDS_GETTEXT{, _IF_LOCALE}

Dear Yann E. MORIN,

Quoted 9 lines · Yann E. MORIN

I agree that this is somewhat crossing the line. But I also believe this change would make it easier to maintain packages, with a single, right way of expressing the dependency, and a single place we'd have to change if we'd have to, rather than scouting the tree for packages that needs gettext feature (although a trivial grep would probably do the trick, granted).

Also, leaving packages do the conditional test opens the door to packages doing it in their own way, eg:

Quoted 7 lines

if BR2_NEEDS_GETTEXT
FOO_DEPS += gettext
endif

vs.

  FOO_DEPS += $(if $(BR2_NEEDS_GETTEXT),gettext)

Those two ways are identical, so I don't mind what packages do between both cases. Depending on how the package .mk file is written, one way or the other might make more sense.

Quoted 10 lines

OK, so here's what I suggest:
- fix the 4 gettext mis-constructs in packages, as you pointed out in another mail,
- split the gettext abstraction in two parts: one for the Config.in stuff, and a second for the .mk stuff.

This way, at least the part of the series that we all agree on can be merged, and the litiguous parts can be refined/dropped.

Does that sound OK?

I am all in favor of merging your entire patch series, but I remain unconvinced on just the .mk macros themselves. That said, it seems other people are fine with it, so if it goes in, I will not be overly shocked. I don't think it's a good direction, but I can live with it.

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#22 lore raw

PATCH v3 10/11 toolchain/common: introduce blind options BR2_NEEDS_GETTEXT{, _IF_LOCALE}

In reply to Yann E. MORIN
Quoted 9 lines · Yann E. MORIN

I know that semantically, this would not change much, but what if we were to rename those variables, so they are more in-line with the Config.in ones such as:

   $(needs-gettext)
   $(needs-gettext-if-locale)
   $(needs-gettext_LDFLAGS)
   $(needs-gettext-if-locale_LDFLAGS)

( Yes, I'm pushing for this change as much as I can!;-) )

For what it's worth, I too am in favour of the $(needs-gettext*) constructs. As
mentioned in my previous mail, $(needs-gettext) itself should be left out. But I would name them:
$(gettext-deps-if-locale)
$(gettext-libs-if-locale)
Although the naming will never be fully self-explanatory.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#23 lore raw

PATCH v3 10/11 toolchain/common: introduce blind options BR2_NEEDS_GETTEXT{, _IF_LOCALE}

In reply to Yann E. MORIN
Quoted 5 lines · Yann E. MORIN

Introduce two new blind config options:
- BR2_NEEDS_GETTEXT
selects the gettext package if the toolchain does not provide it
- BR2_NEEDS_GETTEXT_IF_LOCALE
ditto, but only if locales are enabled

There are 18 packages that use NEEDS_GETTEXT_IF_LOCALE, and 11 packages that
use NEEDS_GETTEXT. However, for most of the latter, it looks like it should be an _IF_LOCALE dependency. Therefore, I think it's better to remove the BR2_NEEDS_GETTEXT support and leave it explicit for these packages. We can fix those 11 packages (now or later). Here's an initial analysis:

diffutils: should be _IF_LOCALE
flex: should be _IF_LOCALE
gdk-pixbuf: indirect dependency through libglib2
glib-networking: indirect dependency through libglib2
libglib2: _really_ depends on libintl
libsoup: indirect dependency through libglib2
lshw: add -DNONLS to CFLAGS
pulseaudio: indirect dependency through libglib2
ndisc6: should be _IF_LOCALE
php: gettext module obviously requires gettext
util-linux: should be _IF_LOCALE

So, only two packages left that need gettext even without LOCALE: libglib2 and
php. For php: gettext doesn't make much sense without LOCALE, so we can depend on LOCALE there. For libglib2: if you build that kind of bloat, you can live with the overhead of LOCALE, so I'd also depend on LOCALE there...

My proposal, therefore:

- only introduce BR2_NEEDS_GETTEXT_IF_LOCALE> ---

- Remove the NEEDS_GETTEXT part from the documentation

- we'll fix up these packages separately

- the patches for these packages are independent from patch 10/11 and 11/11 (if the NEEDS_GETTEXT symbol is not introduced), so they can be produced in parallel. Note that patch 9/11 is still in the way, but that's a mechanical change that should anyway be re-done prior to commit (in case a new package pops up using that symbol).

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#24 lore raw

PATCH v3 10/11 toolchain/common: introduce blind options BR2_NEEDS_GETTEXT{, _IF_LOCALE}

Dear Arnout Vandecappelle,

Quoted 13 lines · Arnout Vandecappelle

diffutils: should be _IF_LOCALE
flex: should be _IF_LOCALE
gdk-pixbuf: indirect dependency through libglib2
glib-networking: indirect dependency through libglib2
libglib2: _really_ depends on libintl
libsoup: indirect dependency through libglib2
lshw: add -DNONLS to CFLAGS
pulseaudio: indirect dependency through libglib2
ndisc6: should be _IF_LOCALE
php: gettext module obviously requires gettext
util-linux: should be _IF_LOCALE

Quoted 4 lines

So, only two packages left that need gettext even without LOCALE: libglib2 and
php. For php: gettext doesn't make much sense without LOCALE, so we can depend on LOCALE there. For libglib2: if you build that kind of bloat, you can live with the overhead of LOCALE, so I'd also depend on LOCALE there...

Ok. Just to make it clear: php itself does not depend on gettext, it's only the gettext module that does. So even if we adopt your solution, it remains to built the PHP interpreter with a toolchain that doesn't have locale support, only building the gettext module will not be possible, which indeed makes sense.

Quoted 6 lines

My proposal, therefore:

- only introduce BR2_NEEDS_GETTEXT_IF_LOCALE> ---

- Remove the NEEDS_GETTEXT part from the documentation

Quoted 7 lines

- we'll fix up these packages separately

- the patches for these packages are independent from patch 10/11 and 11/11 (if the NEEDS_GETTEXT symbol is not introduced), so they can be produced in parallel. Note that patch 9/11 is still in the way, but that's a mechanical change that should anyway be re-done prior to commit (in case a new package pops up using that symbol).

A full Acked-by from me on this approach. Thanks a lot for the in-depth analysis of the problem that leads to this simplification, really great.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#25 lore raw

PATCH v3 11/11 packages: use the new gettext mechanism

In reply to Yann E. MORIN

Now, packages that require the gettext functionality just need to add one of the following in their Config.in file:
- select BR2_NEEDS_GETTEXT
- select BR2_NEEDS_GETTEXT_IF_LOCALE

And add the appropriate $(gettext) or $(gettext--if-locale) to their build-dependencies in their .mk file.

Alternatively, if a package needs special link flags when gettext is not provided by the toolchain, then can use the appropriate $(gettext-LDFLAGS) or $(gettext-LDFLAGS-if-locale) to their own LDFLAGS.

Becasue of this, four packages that did not have a config-dependency on gettext but had a build-dependency, now have such a config-dependency (note that these packages were previously broken in case no other package would provide gettext). Those packages are:
diffutils, flex, ndisc6, util-linux

---
 package/avahi/Config.in                     |    2 +-
 package/avahi/avahi.mk                      |    7 ++-----
 package/axel/Config.in                      |    2 +-
 package/axel/axel.mk                        |    8 ++------
 package/binutils/Config.in                  |    2 +-
 package/binutils/binutils.mk                |    2 +-
 package/diffutils/Config.in                 |    1 +
 package/diffutils/diffutils.mk              |    3 +--
 package/dnsmasq/Config.in                   |    2 +-
 package/dnsmasq/dnsmasq.mk                  |    4 ++--
 package/flex/Config.in                      |    1 +
 package/flex/flex.mk                        |    3 +--
 package/gdk-pixbuf/Config.in                |    2 +-
 package/gdk-pixbuf/gdk-pixbuf.mk            |    2 +-
 package/glib-networking/Config.in           |    2 +-
 package/glib-networking/glib-networking.mk  |    2 +-
 package/gmpc/Config.in                      |    2 +-
 package/gmpc/gmpc.mk                        |    2 +-
 package/grep/Config.in                      |    2 +-
 package/grep/grep.mk                        |    2 +-
 package/kbd/Config.in                       |    2 +-
 package/kbd/kbd.mk                          |    3 +--
 package/libglib2/Config.in                  |    2 +-
 package/libglib2/libglib2.mk                |    2 +-
 package/libidn/Config.in                    |    2 +-
 package/libidn/libidn.mk                    |    2 +-
 package/libsoup/Config.in                   |    2 +-
 package/libsoup/libsoup.mk                  |    2 +-
 package/linux-pam/Config.in                 |    3 +--
 package/linux-pam/linux-pam.mk              |    6 ++----
 package/lshw/Config.in                      |    2 +-
 package/lshw/lshw.mk                        |    4 ++--
 package/make/Config.in                      |    2 +-
 package/make/make.mk                        |    2 +-
 package/midori/Config.in                    |    2 +-
 package/midori/midori.mk                    |    2 +-
 package/multimedia/pulseaudio/Config.in     |    2 +-
 package/multimedia/pulseaudio/pulseaudio.mk |    2 +-
 package/ndisc6/Config.in                    |    1 +
 package/ndisc6/ndisc6.mk                    |    6 ++----
 package/pango/Config.in                     |    2 +-
 package/pango/pango.mk                      |    2 +-
 package/php/Config.ext                      |    2 +-
 package/php/php.mk                          |    2 +-
 package/psmisc/Config.in                    |    2 +-
 package/psmisc/psmisc.mk                    |    2 +-
 package/quota/Config.in                     |    2 +-
 package/quota/quota.mk                      |    6 ++----
 package/sshfs/Config.in                     |    2 +-
 package/sshfs/sshfs.mk                      |    2 +-
 package/sysstat/Config.in                   |    2 +-
 package/sysstat/sysstat.mk                  |    6 ++----
 package/ushare/Config.in                    |    2 +-
 package/ushare/ushare.mk                    |    6 ++----
 package/util-linux/Config.in                |    1 +
 package/util-linux/util-linux.mk            |    6 ++----
 package/vala/Config.in                      |    2 +-
 package/vala/vala.mk                        |    3 +--
 58 files changed, 68 insertions(+), 88 deletions(-)
package/avahi/Config.in +1 -1
index 982966d..ed585ff 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_AVAHI
 	bool "avahi"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Avahi is a system which facilitates service
 	  discovery on a local network.
package/avahi/avahi.mk +2 -5
index 67b357e..b099ace 100644
@@ -85,7 +85,7 @@ AVAHI_CONF_OPT = --localstatedir=/var \
 		--with-autoipd-user=default \
 		--with-autoipd-group=default
 
-AVAHI_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) host-intltool host-pkg-config
+AVAHI_DEPENDENCIES = host-intltool host-pkg-config $(gettext-if-locale)
 
 ifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),)
 AVAHI_DEPENDENCIES += libdaemon
@@ -133,10 +133,7 @@ else
 AVAHI_CONF_OPT += --disable-python
 endif
 
-ifeq ($(BR2_PACKAGE_GETTEXT),y)
-AVAHI_DEPENDENCIES += gettext
-AVAHI_MAKE_OPT = LIBS=-lintl
-endif
+AVAHI_MAKE_OPT = LIBS="$(gettext-LDFLAGS-if-locale)"
 
 define AVAHI_REMOVE_INITSCRIPT
 	rm -rf $(TARGET_DIR)/etc/init.d/avahi-*
package/axel/Config.in +1 -1
index 4c22286..79b8d6b 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_AXEL
 	bool "axel"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	help
 	  HTTP/FTP download accelerator.
package/axel/axel.mk +2 -6
index cfec43d..96c7755 100644
@@ -7,12 +7,8 @@ AXEL_VERSION = 2.4
 AXEL_SOURCE = axel-$(AXEL_VERSION).tar.gz
 AXEL_SITE = https://alioth.debian.org/frs/download.php/3015
 
-AXEL_LDFLAGS = -lpthread
-
-ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
-AXEL_DEPENDENCIES += gettext
-AXEL_LDFLAGS += -lintl
-endif
+AXEL_DEPENDENCIES += $(gettext-if-locale)
+AXEL_LDFLAGS = -lpthread $(gettext-LDFLAGS-if-locale)
 
 ifneq ($(BR2_ENABLE_LOCALE),y)
 AXEL_DISABLE_I18N=--i18n=0
package/binutils/Config.in +1 -1
index 159bee1..d5203a2 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_BINUTILS
 	bool "binutils"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Install binutils on the target
 
package/binutils/binutils.mk +1 -1
index 27cdfd2..3abad62 100644
@@ -23,7 +23,7 @@ BINUTILS_SITE = ftp://www.at91.com/pub/buildroot
 endif
 BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
 BINUTILS_INSTALL_STAGING = YES
-BINUTILS_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
+BINUTILS_DEPENDENCIES = $(gettext-if-locale)
 
 # We need to specify host & target to avoid breaking ARM EABI
 BINUTILS_CONF_OPT = --disable-multilib --disable-werror \
package/diffutils/Config.in +1 -0
index 86da5d3..065e97b 100644
@@ -1,6 +1,7 @@
 config BR2_PACKAGE_DIFFUTILS
 	bool"diffutils"
 	depends on BR2_USE_WCHAR
+	select BR2_NEEDS_GETTEXT
 	help
 	  GNU diff. Compare files per line.
 
package/diffutils/diffutils.mk +1 -2
index 168d040..4e5603a 100644
@@ -6,8 +6,7 @@
 
 DIFFUTILS_VERSION = 3.2
 DIFFUTILS_SITE = $(BR2_GNU_MIRROR)/diffutils
-DIFFUTILS_DEPENDENCIES = \
-	$(if $(BR2_PACKAGE_GETTEXT),gettext)
+DIFFUTILS_DEPENDENCIES = $(gettext)
 
 ifeq ($(BR2_PACKAGE_BUSYBOX),y)
 DIFFUTILS_DEPENDENCIES += busybox
package/dnsmasq/Config.in +1 -1
index 7b55a20..3027256 100644
@@ -24,7 +24,7 @@ config BR2_PACKAGE_DNSMASQ_IDN
 	bool "IDN support"
 	depends on BR2_USE_WCHAR
 	select BR2_PACKAGE_LIBIDN
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Enable IDN support in dnsmasq.
 	  This option is a big space taker since it pulls in many libraries.
package/dnsmasq/dnsmasq.mk +2 -2
index 8ef4cd3..998bb41 100644
@@ -24,8 +24,8 @@ endif
 
 # NLS requires IDN so only enable it (i18n) when IDN is true
 ifeq ($(BR2_PACKAGE_DNSMASQ_IDN),y)
-	DNSMASQ_DEPENDENCIES += libidn $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
-	DNSMASQ_MAKE_OPT += LDFLAGS+="-lidn $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),-lintl)"
+	DNSMASQ_DEPENDENCIES += libidn $(gettext-if-locale)
+	DNSMASQ_MAKE_OPT += LDFLAGS+="-lidn $(gettext-LDFLAGS-if-locale)"
 	DNSMASQ_COPTS += -DHAVE_IDN
 	DNSMASQ_I18N = $(if $(BR2_ENABLE_LOCALE),-i18n)
 endif
package/flex/Config.in +1 -0
index b10eb00..f977d82 100644
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_FLEX
 	bool "flex"
+	select BR2_NEEDS_GETTEXT
 	help
 	  A fast lexical analyser generator.  A tool for generating
 	  programs that perform pattern-matching on text.
package/flex/flex.mk +1 -2
index 2599cdc..4c77fa0 100644
@@ -11,8 +11,7 @@ FLEX_PATCH = flex_$(FLEX_VERSION)-$(FLEX_PATCH_VERSION).diff.gz
 FLEX_SITE = $(BR2_DEBIAN_MIRROR)/debian/pool/main/f/flex
 FLEX_DIR = $(BUILD_DIR)/flex-$(FLEX_VERSION)
 FLEX_INSTALL_STAGING = YES
-FLEX_DEPENDENCIES = \
-	$(if $(BR2_PACKAGE_GETTEXT),gettext)
+FLEX_DEPENDENCIES = $(gettext)
 # we don't have a host-gettext/libintl
 HOST_FLEX_DEPENDENCIES =
 
package/gdk-pixbuf/Config.in +1 -1
index e50ecbc..40bd3b4 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_GDK_PIXBUF
 	bool "gdk-pixbuf"
 	depends on BR2_USE_WCHAR # glib2
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
+	select BR2_NEEDS_GETTEXT
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  Gdk-Pixbuf is an image loader and scaler. It uses GObject
package/gdk-pixbuf/gdk-pixbuf.mk +1 -1
index 1df409e..9c445b9 100644
@@ -40,7 +40,7 @@ GDK_PIXBUF_DEPENDENCIES += xlib_libX11
 endif
 
 GDK_PIXBUF_DEPENDENCIES += \
-	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) \
+	$(gettext) \
 	$(if $(BR2_ENABLE_LOCALE),,libiconv) \
 	host-pkg-config libglib2
 
package/glib-networking/Config.in +1 -1
index 6ed312b..41e113a 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_GLIB_NETWORKING
 	bool "glib-networking"
 	depends on BR2_USE_WCHAR # glib2
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
+	select BR2_NEEDS_GETTEXT
 	help
 	  Network-related GIO modules for glib.
 
package/glib-networking/glib-networking.mk +1 -1
index 9f74c35..9691329 100644
@@ -13,7 +13,7 @@ GLIB_NETWORKING_SOURCE = glib-networking-$(GLIB_NETWORKING_VERSION).tar.xz
 GLIB_NETWORKING_INSTALL_STAGING = YES
 
 GLIB_NETWORKING_DEPENDENCIES = \
-	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) \
+	$(gettext) \
 	host-pkg-config \
 	host-intltool \
 	libglib2
package/gmpc/Config.in +1 -1
index 45b08d4..95554b2 100644
@@ -4,7 +4,7 @@ config BR2_PACKAGE_GMPC
 	depends on BR2_USE_WCHAR # glib2
 	depends on BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_LIBMPD
 	select BR2_PACKAGE_LIBSOUP
package/gmpc/gmpc.mk +1 -1
index bdc10c5..4317b7a 100644
@@ -11,6 +11,6 @@ GMPC_CONF_OPT = --disable-mmkeys --disable-unique
 GMPC_DEPENDENCIES = host-gob2 host-intltool host-pkg-config host-vala \
 	libglib2 libgtk2 libmpd libsoup sqlite \
 	xlib_libICE xlib_libSM xlib_libX11 \
-	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
+	$(gettext-if-locale)
 
 $(eval $(autotools-package))
package/grep/Config.in +1 -1
index fc4e5b9..0c8c7ba 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_GREP
 	bool "grep"
 	depends on BR2_USE_WCHAR
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  The GNU regular expression matcher.
 
package/grep/grep.mk +1 -1
index 6c37847..b1c8307 100644
@@ -10,7 +10,7 @@ GREP_SOURCE = grep-$(GREP_VERSION).tar.xz
 GREP_LICENSE = GPLv3+
 GREP_LICENSE_FILES = COPYING
 GREP_CONF_OPT = --disable-perl-regexp --without-included-regex
-GREP_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
+GREP_DEPENDENCIES = $(gettext-if-locale)
 
 # link with iconv if enabled
 ifeq ($(BR2_PACKAGE_LIBICONV),y)
package/kbd/Config.in +1 -1
index 939565f..8a69736 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_KBD
 	bool "kbd"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	# Uses fork()
 	depends on BR2_USE_MMU
 	help
package/kbd/kbd.mk +1 -2
index 69a22c1..4f6b443 100644
@@ -1,7 +1,6 @@
 KBD_VERSION = 1.15.2
 KBD_SOURCE = kbd-$(KBD_VERSION).tar.gz
 KBD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kbd
-
-KBD_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
+KBD_DEPENDENCIES = $(gettext-if-locale)
 
 $(eval $(autotools-package))
package/libglib2/Config.in +1 -1
index 50e95d5..4b850eb 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LIBGLIB2
 	bool "libglib2"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
+	select BR2_NEEDS_GETTEXT
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_LIBFFI
 	select BR2_PACKAGE_ZLIB
package/libglib2/libglib2.mk +1 -1
index 7df1cd0..5b9bbfe 100644
@@ -55,7 +55,7 @@ HOST_LIBGLIB2_CONF_OPT = \
 		--disable-gtk-doc \
 		--enable-debug=no \
 
-LIBGLIB2_DEPENDENCIES = host-pkg-config host-libglib2 libffi zlib $(if $(BR2_NEEDS_EXTERNAL_GETTEXT),gettext)
+LIBGLIB2_DEPENDENCIES = host-pkg-config host-libglib2 libffi zlib $(gettext)
 
 HOST_LIBGLIB2_DEPENDENCIES = host-pkg-config host-libffi host-zlib
 
package/libidn/Config.in +1 -1
index 9ef7a64..8c3d200 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LIBIDN
 	bool "libidn"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Libidn's purpose is to encode and decode internationalized
 	  domain names.
package/libidn/libidn.mk +1 -1
index 3219dae..7859882 100644
@@ -9,7 +9,7 @@ LIBIDN_SITE = $(BR2_GNU_MIRROR)/libidn
 LIBIDN_INSTALL_STAGING = YES
 LIBIDN_CONF_ENV = EMACS="no"
 LIBIDN_CONF_OPT = --disable-java --enable-csharp=no
-LIBIDN_DEPENDENCIES = host-pkg-config $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+LIBIDN_DEPENDENCIES = host-pkg-config $(gettext-if-locale) $(if $(BR2_PACKAGE_LIBICONV),libiconv)
 
 define LIBIDN_REMOVE_BINARY
 	rm -f $(TARGET_DIR)/usr/bin/idn
package/libsoup/Config.in +1 -1
index 5a4061a..bd81c45 100644
@@ -3,7 +3,7 @@ config BR2_PACKAGE_LIBSOUP
 	depends on BR2_USE_WCHAR # glib2 and gnutls
 	select BR2_PACKAGE_LIBXML2
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
+	select BR2_NEEDS_GETTEXT
 	help
 	  libsoup is an HTTP client/server library. It uses GObject
 	  and the GLib main loop, to integrate well with GNOME
package/libsoup/libsoup.mk +1 -1
index c14771d..121af9a 100644
@@ -19,7 +19,7 @@ endif
 
 LIBSOUP_CONF_OPT = --disable-glibtest --without-gnome
 
-LIBSOUP_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) host-pkg-config host-libglib2 libglib2 libxml2
+LIBSOUP_DEPENDENCIES = $(gettext) host-pkg-config host-libglib2 libglib2 libxml2
 
 ifeq ($(BR2_PACKAGE_LIBSOUP_SSL),y)
 LIBSOUP_DEPENDENCIES += glib-networking
package/linux-pam/Config.in +1 -2
index 1b0bc6e..7051e89 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_LINUX_PAM
 	bool "linux-pam"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_FLEX
 	select BR2_PACKAGE_FLEX_LIBFL
 	depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR)
@@ -11,4 +11,3 @@ config BR2_PACKAGE_LINUX_PAM
 
 comment "linux-pam requires a toolchain with WCHAR and locale support"
 	depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR)
-
package/linux-pam/linux-pam.mk +2 -4
index 9bd1b1b..abc4d7a 100644
@@ -15,13 +15,11 @@ LINUX_PAM_CONF_OPT = \
 	--disable-regenerate-docu \
 	--enable-securedir=/lib/security \
 	--libdir=/lib
-LINUX_PAM_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) flex
+LINUX_PAM_DEPENDENCIES = $(gettext-if-locale) flex
 LINUX_PAM_AUTORECONF = YES
 LINUX_PAM_LICENSE = BSD-3c
 LINUX_PAM_LICENSE_FILES = Copyright
 
-ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
-	LINUX_PAM_MAKE_OPT += LIBS=-lintl
-endif
+LINUX_PAM_MAKE_OPT += LIBS="$(gettext-LDFLAGS-if-locale)"
 
 $(eval $(autotools-package))
package/lshw/Config.in +1 -1
index 45ca2b2..37f4e22 100644
@@ -3,7 +3,7 @@ config BR2_PACKAGE_LSHW
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_WCHAR
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
+	select BR2_NEEDS_GETTEXT
 	help
 	  lshw (Hardware Lister) is a small tool to provide
 	  detailed information on the hardware configuration of the machine.
package/lshw/lshw.mk +2 -2
index 5bdffc9..f99d7ab 100644
@@ -8,8 +8,8 @@ LSHW_VERSION = B.02.16
 LSHW_SITE = http://ezix.org/software/files
 LSHW_MAKE_OPT = CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" AR="$(TARGET_AR)" \
 	RPM_OPT_FLAGS="$(TARGET_CFLAGS)" all
-LSHW_MAKE_ENV = LIBS="$(if $(BR2_NEEDS_EXTERNAL_GETTEXT),-lintl)"
-LSHW_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT),gettext)
+LSHW_MAKE_ENV = LIBS="$(gettext-LDFLAGS)"
+LSHW_DEPENDENCIES = $(gettext)
 
 define LSHW_BUILD_CMDS
 	$(LSHW_MAKE_ENV) $(MAKE) -C $(@D)/src $(LSHW_MAKE_OPT)
package/make/Config.in +1 -1
index d650649..bc89986 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_MAKE
 	bool "make"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  A tool which controls the generation of executables and other
 	  non-source files of a program from the program's source files.
package/make/make.mk +1 -1
index b8fe323..94783bc 100644
@@ -7,7 +7,7 @@ MAKE_VERSION:=3.81
 MAKE_SOURCE:=make-$(MAKE_VERSION).tar.bz2
 MAKE_SITE:=$(BR2_GNU_MIRROR)/make
 
-MAKE_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
+MAKE_DEPENDENCIES = $(gettext-if-locale)
 
 MAKE_CONF_ENV = make_cv_sys_gnu_glob=no \
 		GLOBINC='-I$(@D)/glob' \
package/midori/Config.in +1 -1
index 5933699..b97e24f 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_MIDORI
 	bool "midori"
 	select BR2_PACKAGE_WEBKIT
 	select BR2_PACKAGE_LIBSEXY
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	depends on BR2_PACKAGE_LIBGTK2
 	depends on BR2_INSTALL_LIBSTDCPP # webkit
package/midori/midori.mk +1 -1
index f98bd91..e68249b 100644
@@ -14,7 +14,7 @@ MIDORI_DEPENDENCIES = \
 	libgtk2 \
 	libsexy \
 	webkit \
-	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) \
+	$(gettext-if-locale) \
 	$(if $(BR2_PACKAGE_LIBICONV),libiconv)
 
 ifneq ($(BR2_PACKAGE_XORG7),y)
package/multimedia/pulseaudio/Config.in +1 -1
index 927d347..7deb0f9 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_PULSEAUDIO
 	select BR2_PACKAGE_JSON_C
 	select BR2_PACKAGE_LIBSNDFILE
 	select BR2_PACKAGE_SPEEX
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
+	select BR2_NEEDS_GETTEXT
 	help
 	  PulseAudio is a sound system for POSIX OSes, meaning that it
 	  is a proxy for your sound applications. It allows you to do
package/multimedia/pulseaudio/pulseaudio.mk +1 -1
index 439cb17..8f31998 100644
@@ -16,7 +16,7 @@ PULSEAUDIO_CONF_OPT = \
 
 PULSEAUDIO_DEPENDENCIES = \
 	host-pkg-config libtool json-c libsndfile speex host-intltool \
-	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT),gettext) \
+	$(gettext) \
 	$(if $(BR2_PACKAGE_LIBATOMIC_OPS),libatomic_ops) \
 	$(if $(BR2_PACKAGE_LIBSAMPLERATE),libsamplerate) \
 	$(if $(BR2_PACKAGE_ALSA_LIB),alsa-lib) \
package/ndisc6/Config.in +1 -0
index 126bfa2..cd42b55 100644
@@ -4,6 +4,7 @@ comment "ndisc6 requires a toolchain with IPv6 support"
 config BR2_PACKAGE_NDISC6
 	bool "ndisc6 tools"
 	depends on BR2_INET_IPV6
+	select BR2_NEEDS_GETTEXT
 	help
 	  NDisc6 is a small collection of useful tools for IPv6 networking
 
package/ndisc6/ndisc6.mk +2 -4
index f58cc13..849b003 100644
@@ -10,10 +10,8 @@ NDISC6_SITE = http://www.remlab.net/files/ndisc6/
 NDISC6_CONF_ENV = CC="$(TARGET_CC) -std=gnu99"
 NDISC6_CONF_OPT = --localstatedir=/var --disable-rpath --disable-suid-install
 
-ifeq ($(BR2_PACKAGE_GETTEXT),y)
-NDISC6_DEPENDENCIES += gettext
-NDISC6_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -lintl"
-endif
+NDISC6_DEPENDENCIES = $(gettext)
+NDISC6_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) $(gettext-LDFLAGS)"
 
 NDISC6_BIN_ += dnssort # perl script
 NDISC6_BIN_$(BR2_PACKAGE_NDISC6_NAME2ADDR) += name2addr addr2name
package/pango/Config.in +1 -1
index 07ca298..c8d4796 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_PANGO
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_EXPAT
 	select BR2_PACKAGE_CAIRO
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Pango is a library for laying out and rendering of text, with an
 	  emphasis on internationalization. Pango can be used anywhere that
package/pango/pango.mk +1 -1
index ed2e313..c5cd3eb 100644
@@ -41,7 +41,7 @@ PANGO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
 
 PANGO_CONF_OPT = --enable-explicit-deps=no --disable-debug
 
-PANGO_DEPENDENCIES = $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) host-pkg-config libglib2 cairo
+PANGO_DEPENDENCIES = $(gettext-if-locale) host-pkg-config libglib2 cairo
 
 ifeq ($(BR2_PACKAGE_XORG7),y)
         PANGO_CONF_OPT += --with-x \
package/php/Config.ext +1 -1
index 33d64ec..47c9146 100644
@@ -146,7 +146,7 @@ comment "Human language and character encoding support"
 
 config BR2_PACKAGE_PHP_EXT_GETTEXT
 	bool "Gettext"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT
+	select BR2_NEEDS_GETTEXT
 	depends on BR2_USE_WCHAR
 	help
 	  Gettext support
package/php/php.mk +1 -1
index 38aebdd..6535bf9 100644
@@ -87,7 +87,7 @@ endif
 
 ifeq ($(BR2_PACKAGE_PHP_EXT_GETTEXT),y)
 	PHP_CONF_OPT += --with-gettext=$(STAGING_DIR)/usr
-	PHP_DEPENDENCIES += $(if $(BR2_NEEDS_EXTERNAL_GETTEXT),gettext)
+	PHP_DEPENDENCIES += $(gettext)
 endif
 
 ifeq ($(BR2_PACKAGE_PHP_EXT_ICONV),y)
package/psmisc/Config.in +1 -1
index 4832956..886e2d4 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_PSMISC
 	bool "psmisc"
 	select BR2_PACKAGE_NCURSES
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Helpful /proc related utilities such as pstree, fuser, and killall
 
package/psmisc/psmisc.mk +1 -1
index aaf08d1..df7d885 100644
@@ -8,7 +8,7 @@ PSMISC_VERSION = 22.16
 PSMISC_SITE = http://downloads.sourceforge.net/project/psmisc/psmisc
 PSMISC_LICENSE = GPLv2
 PSMISC_LICENSE_FILES = COPYING
-PSMISC_DEPENDENCIES = ncurses $(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
+PSMISC_DEPENDENCIES = ncurses $(gettext-if-locale)
 
 ifneq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
 # Don't force -fstack-protector
package/quota/Config.in +1 -1
index 17f2278..bcb6523 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_QUOTA
 	depends on BR2_USE_WCHAR
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_MOUNT
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  Implementation of the disk quota system.
 
package/quota/quota.mk +2 -4
index 2be3fa4..4ab14c5 100644
@@ -10,10 +10,8 @@ QUOTA_SITE = http://downloads.sourceforge.net/project/linuxquota/quota-tools/$(Q
 
 QUOTA_MAKE_OPT = $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE"
 
-ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
-QUOTA_DEPENDENCIES = gettext
-QUOTA_MAKE_OPT += LDFLAGS="$(TARGET_LDFLAGS) -lintl"
-endif
+QUOTA_DEPENDENCIES = $(gettext-if-locale)
+QUOTA_MAKE_OPT += LDFLAGS="$(TARGET_LDFLAGS) $(gettext-LDFLAGS-if-locale)"
 
 # Package uses autoconf but not automake.
 QUOTA_INSTALL_TARGET_OPT = \
package/sshfs/Config.in +1 -1
index 1416393..9024d53 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_SSHFS
 	bool "sshfs (FUSE)"
 	select BR2_PACKAGE_LIBFUSE
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_OPENSSH
 	depends on BR2_LARGEFILE
package/sshfs/sshfs.mk +1 -1
index 23e62e0..7ec254b 100644
@@ -9,7 +9,7 @@ SSHFS_SITE = http://downloads.sourceforge.net/project/fuse/sshfs-fuse/$(SSHFS_VE
 SSHFS_SOURCE = sshfs-fuse-$(SSHFS_VERSION).tar.gz
 SSHFS_DEPENDENCIES = \
 	libglib2 libfuse openssh \
-	$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext) \
+	$(gettext-if-locale) \
 	$(if $(BR2_ENABLE_LOCALE),,libiconv)
 
 $(eval $(autotools-package))
package/sysstat/Config.in +1 -1
index 834e99b..8d899cf 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_SYSSTAT
 	bool "sysstat"
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	# Uses fork()
 	depends on BR2_USE_MMU
 	help
package/sysstat/sysstat.mk +2 -4
index 794d70b..5aff21c 100644
@@ -13,10 +13,8 @@ ifneq ($(BR2_HAVE_DOCUMENTATION),y)
 SYSSTAT_CONF_OPT += --disable-documentation
 endif
 
-ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
-SYSSTAT_DEPENDENCIES += gettext
-SYSSTAT_MAKE_OPT += CFLAGS+=-lintl
-endif
+SYSSTATDEPENDENCIES += $(gettext-if-locale)
+SYSSTAT_MAKE_OPT += CFLAGS+=$(gettext-LDFLAGS-if-locale)
 
 # The isag tool is a post processing script that depends on tcl/tk
 # among other things. So we don't install it.
package/ushare/Config.in +1 -1
index eb1d2b2..c5fb516 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_USHARE
 	bool "ushare"
 	depends on BR2_LARGEFILE
 	select BR2_PACKAGE_LIBUPNP
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	help
 	  uShare is a UPnP (TM) A/V & DLNA Media Server.
 	  It implements the server component that provides UPnP media devices
package/ushare/ushare.mk +2 -4
index aa47618..697a384 100644
@@ -9,10 +9,8 @@ USHARE_SOURCE = ushare-$(USHARE_VERSION).tar.bz2
 USHARE_SITE = http://ushare.geexbox.org/releases
 USHARE_DEPENDENCIES = host-pkg-config libupnp
 
-ifeq ($(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),y)
-USHARE_DEPENDENCIES += gettext
-USHARE_LDFLAGS += -lintl
-endif
+USHARE_DEPENDENCIES += $(gettext-if-locale)
+USHARE_LDFLAGS += $(gettext-LDFLAGS-if-locale)
 
 define USHARE_CONFIGURE_CMDS
 	(cd $(@D); \
package/util-linux/Config.in +1 -0
index 43a8444..3f56a57 100644
@@ -2,6 +2,7 @@ config BR2_PACKAGE_UTIL_LINUX
 	bool "util-linux"
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_WCHAR
+	select BR2_NEEDS_GETTEXT
 	help
 	  Various useful/essential Linux utilities.
 
package/util-linux/util-linux.mk +2 -4
index 71a6c53..2260af1 100644
@@ -29,10 +29,8 @@ else
 UTIL_LINUX_CONF_OPT += --without-ncurses
 endif
 
-ifeq ($(BR2_PACKAGE_GETTEXT),y)
-UTIL_LINUX_DEPENDENCIES += gettext
-UTIL_LINUX_MAKE_OPT += LIBS=-lintl
-endif
+UTIL_LINUX_DEPENDENCIES += $(gettext)
+UTIL_LINUX_MAKE_OPT += LIBS="$(gettext-LDFLAGS)"
 
 #############################################
 #
package/vala/Config.in +1 -1
index 0021895..4e542c4 100644
@@ -2,7 +2,7 @@ config BR2_PACKAGE_VALA
 	bool "vala"
 	depends on BR2_USE_WCHAR # glib2
 	select BR2_PACKAGE_LIBGLIB2
-	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE
+	select BR2_NEEDS_GETTEXT_IF_LOCALE
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  Compiler for the GObject type system.
package/vala/vala.mk +1 -2
index fef51da..01bae20 100644
@@ -9,8 +9,7 @@ VALA_VERSION_MINOR = 6
 VALA_VERSION = $(VALA_VERSION_MAJOR).$(VALA_VERSION_MINOR)
 VALA_SITE = http://download.gnome.org/sources/vala/$(VALA_VERSION_MAJOR)
 VALA_SOURCE = vala-$(VALA_VERSION).tar.xz
-VALA_DEPENDENCIES = host-flex libglib2 \
-		$(if $(BR2_NEEDS_EXTERNAL_GETTEXT_IF_LOCALE),gettext)
+VALA_DEPENDENCIES = host-flex libglib2 $(gettext-if-locale)
 HOST_VALA_DEPENDENCIES = host-flex host-libglib2
 
 $(eval $(autotools-package))
Signature · 1 line
1.7.2.5
#26 lore raw

v3 cover Rework the gettext handling

In reply to Yann E. MORIN

Hi Yann,

2012/9/17 Yann E. MORIN <[email protected]>:

Quoted 60 lines

Hello All!

This patch series is an aggregation of the gettext rework by Samuel, Maxime, Thomas, and I.

See this post for the 6 first patches:
http://lists.busybox.net/pipermail/buildroot/2012-July/055871.html

[PATCH 01/11] gettext: remove option to build statically [PATCH 02/11] gettext: remove the gettext-target make target, unused [PATCH 03/11] gettext: remove libintl handling
[PATCH 04/11] Remove all references to libintl
[PATCH 05/11] gettext: convert to autotools-package [PATCH 06/11] doc: update after gettext changes

The following 2 patches fix two packages in preparation for the end of the series:

[PATCH 07/11] package/lshw: add missing dependency on gettext [PATCH 08/11] package/pulseaudio: fix build-dependency on gettext

See this post for an explanation for the next 3 patches:
http://lists.busybox.net/pipermail/buildroot/2012-August/058042.html

[PATCH 09/11] toolchain/common: rename BR2_NEEDS_GETTEXT [PATCH 10/11] toolchain/common: introduce blind options
BR2_NEEDS_GETTEXT{,_IF_LOCALE}
[PATCH 11/11] packages: use the new gettext mechanism

The tests were done with two external uClibc-based toolchains built with crosstool-NG, one with locale support, the other without. All packages touched by the series were first built with both toolchains and the series not applied (to check for any non-series related issues, see gmpc below), then the series was fully applied, and the packages all re-built from scratch.

gmpc failed to build, even before the series was applied, because it does not link with -lm and thus misses some sumbols (eg. floor(3)). All other packages were built successfully (albeit using a great deal of electrons in the process! ;-) ). No test-run was done on my side.

Changes since v2:
- fix conversion to autotools to always build libintl, even if locales are disabled, to fix packages that always require NLS
- thus removed Arnout's Tested-by on patch 5/11, as it has changed
- rebase on-top latest tree
- also C: Samuel on the introductory message

Changes since v1:
- drop the gettext-before-all patch (Arnout, Thomas)
- keep and simplify build-dependency against gettext (Arnout)
- add config-dependency against gettext for diffutils, flex, ndisc6 and util-linux, in patch 11
- rebase on-top latest tree (and upgrade new package linux-pam in the process)
- update doc
- add Tested-by and Acked-by Arnout were he said so
- CC: Samuel Martin as a recognition for his original work on this topic, which this series is based on. (Arnout)

Quoted 2 lines

Regards,
Yann E. MORIN.

You have my Acked-by for the whole series.

Again, thanks for this great work.

Yours,

Signature · 1 line
Sam
#27 lore raw

v3 cover Rework the gettext handling

In reply to Yann E. MORIN
Quoted 8 lines · Yann E. MORIN

Hello All!

This patch series is an aggregation of the gettext rework by Samuel, Maxime, Thomas, and I.

See this post for the 6 first patches:
http://lists.busybox.net/pipermail/buildroot/2012-July/055871.html

Quoted 6 lines

[PATCH 01/11] gettext: remove option to build statically [PATCH 02/11] gettext: remove the gettext-target make target, unused [PATCH 03/11] gettext: remove libintl handling
[PATCH 04/11] Remove all references to libintl
[PATCH 05/11] gettext: convert to autotools-package [PATCH 06/11] doc: update after gettext changes

[snip]

I'm still in the process of (re-)reviewing the patches, but I'm in favour
of committing 1-4 + 6 right away. They can benefit from some autobuild exposure before we continue with the rest. (Note: the ordering is a bit off, since the doc update is independent of the conversion to autotools-package).

Peter, do you agree?

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#28 lore raw

v3 cover Rework the gettext handling

In reply to Yann E. MORIN
Quoted 3 lines · Yann E. MORIN

- fix conversion to autotools to always build libintl, even if locales are disabled, to fix packages that always require NLS
- thus removed Arnout's Tested-by on patch 5/11, as it has changed

Goes to show how valuable my testing was :-(

How about finding and fixing the packages that require NLS?

But then, Samuel's remark becomes valid: if ENABLE_LOCALE is not true,
then libintl won't be built, so the -lintl becomes invalid. In fact, I would think that packages that select BR2_NEEDS_EXTERNAL_GETTEXT should actually depend on ENABLE_LOCALE... Or usually they should be ..._IF_LOCALE instead. For instance, I tried util-linux and it builds perfectly without locale and gettext.

Any chance of testing if the cases that have gettext without -if-locale
can be replaced with gettext-if-locale?

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#29 lore raw

v3 cover Rework the gettext handling

Arnout, All,

(Adding Samuel in Cc)

Quoted 4 lines · On Thursday 20 September 2012 00:53:12 Arnout Vandecappelle wrote:
Quoted 3 lines · Yann E. MORIN

- fix conversion to autotools to always build libintl, even if locales are disabled, to fix packages that always require NLS
- thus removed Arnout's Tested-by on patch 5/11, as it has changed

[--SNIP--]

Quoted 11 lines

How about finding and fixing the packages that require NLS?

But then, Samuel's remark becomes valid: if ENABLE_LOCALE is not true,
then libintl won't be built, so the -lintl becomes invalid. In fact, I would think that packages that select BR2_NEEDS_EXTERNAL_GETTEXT should actually depend on ENABLE_LOCALE... Or usually they should be ..._IF_LOCALE instead. For instance, I tried util-linux and it builds perfectly without locale and gettext.

Any chance of testing if the cases that have gettext without -if-locale
can be replaced with gettext-if-locale?

My goal with the series was not to fix anything (except for the required fixes), but rather to improve on the existing infrastructure.

Fixing anything that would break after the series, and that was already broken before the series, was not the goal. This can come in a later series [0], if such fixes are needed.

[0] Admitedly, it could (should?) even come before the series, but fixing packages is really different from improving the infrastructure.

That being said, we now have a few venues to deal with this series:
0- drop the series entirely,
1- postpone this series until after all packages have been fixed, 2- finalise the series so it is fully agreed-on, apply it, then fix
packages,
3- get a benevolent dictator to agree the whole series for good,
apply it, then we can fix the packages,
4- apply all agreed-on patches (eg. 1-4, 6), then fix all packages,
then refine/drop currently not agreed-on patches.
5- apply all agreed-on patches (eg. 1-4, 6), then refine/drop the
rest of the series, apply it, and fix packages,

Hopefully, we all agree that 0 is out-of-question. ;-)

Although 1 would be the best technical solution, it is (IMHO) not the best from a practical point of view.

Going with 2 means another long round-trip, as there is at least one opposition to this series (although I hope Thomas can be coerced into approving the series! ;-p ).

3 is not the best course of action, we still have not reached consensus on the technical (de)merits of the series (specifically the end of it).

I do not have a strong feeling between 4 and 5, although, from a personal position, I'd say we should go for 5, so I can get rid of this series entirely (and switch to other interesting stuff! ;-) ).

Also, we have not heard from Peter on this series, so maybe I'll pause working on it until he has a chance to express his opinion. Peter? ;-p

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#30 lore raw

v3 cover Rework the gettext handling

Dear Yann E. MORIN,

Quoted 2 lines · Yann E. MORIN

My goal with the series was not to fix anything (except for the required fixes), but rather to improve on the existing infrastructure.

Agreed.

Quoted 28 lines

Fixing anything that would break after the series, and that was already broken before the series, was not the goal. This can come in a later series [0], if such fixes are needed.

[0] Admitedly, it could (should?) even come before the series, but fixing packages is really different from improving the infrastructure.

That being said, we now have a few venues to deal with this series:
0- drop the series entirely,
1- postpone this series until after all packages have been fixed, 2- finalise the series so it is fully agreed-on, apply it, then fix
packages,
3- get a benevolent dictator to agree the whole series for good,
apply it, then we can fix the packages,
4- apply all agreed-on patches (eg. 1-4, 6), then fix all packages,
then refine/drop currently not agreed-on patches.
5- apply all agreed-on patches (eg. 1-4, 6), then refine/drop the
rest of the series, apply it, and fix packages,

Hopefully, we all agree that 0 is out-of-question. ;-)

Although 1 would be the best technical solution, it is (IMHO) not the best from a practical point of view.

Going with 2 means another long round-trip, as there is at least one opposition to this series (although I hope Thomas can be coerced into approving the series! ;-p ).

Quoted 6 lines

3 is not the best course of action, we still have not reached consensus on the technical (de)merits of the series (specifically the end of it).

I do not have a strong feeling between 4 and 5, although, from a personal position, I'd say we should go for 5, so I can get rid of this series entirely (and switch to other interesting stuff! ;-) ).

Peter, can you please apply now patches 1 to 8 in this series, so the volume of the series reduces and we can more easily work on an agreement for the remaining patches?

Thanks,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#31 lore raw

v3 cover Rework the gettext handling

In reply to Yann E. MORIN

Dear Yann E. MORIN,

Quoted 13 lines · Yann E. MORIN

This patch series is an aggregation of the gettext rework by Samuel, Maxime, Thomas, and I.

See this post for the 6 first patches:
http://lists.busybox.net/pipermail/buildroot/2012-July/055871.html

[PATCH 01/11] gettext: remove option to build statically [PATCH 02/11] gettext: remove the gettext-target make target, unused [PATCH 03/11] gettext: remove libintl handling
[PATCH 04/11] Remove all references to libintl
[PATCH 05/11] gettext: convert to autotools-package [PATCH 06/11] doc: update after gettext changes

Quoted 5 lines

The following 2 patches fix two packages in preparation for the end of the series:

[PATCH 07/11] package/lshw: add missing dependency on gettext [PATCH 08/11] package/pulseaudio: fix build-dependency on gettext

For patches 1 to 8,

Peter, please merge as soon as possible so we can make progress on this. Thanks!

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#32 lore raw

v3 cover Rework the gettext handling

In reply to Yann E. MORIN
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Yann" == Yann E MORIN <[email protected]> writes:

Yann> Hello All!
Yann> This patch series is an aggregation of the gettext rework by Samuel, Yann> Maxime, Thomas, and I.

Committed patch 1-8, thank you all and sorry for the slow response.

I'll try to find time to look at the remaining 3 patches this weekend.

Signature · 1 line
Bye, Peter Korsgaard