* [Buildroot] [PATCHv2 1/6] minidlna: do not select BR2_PACKAGE_GETTEXT_TOOLS
2014-06-01 20:23 [Buildroot] [PATCHv2 0/6] gettext improvements Thomas Petazzoni
@ 2014-06-01 20:23 ` Thomas Petazzoni
2014-06-02 20:29 ` Bernd Kuhls
2014-06-08 20:55 ` Yann E. MORIN
2014-06-01 20:23 ` [Buildroot] [PATCHv2 2/6] gettext: remove support for gettext-tools on target Thomas Petazzoni
` (4 subsequent siblings)
5 siblings, 2 replies; 12+ messages in thread
From: Thomas Petazzoni @ 2014-06-01 20:23 UTC (permalink / raw)
To: buildroot
Commit 9ff640ae30ca588228030faf2c6fd13af292cb66 ("minidlna: needs
gettext and host-gettext tools if locale is enabled") modified the
minidlna package to fix gettext related issues. As part of this patch,
a select of BR2_PACKAGE_GETTEXT_TOOLS was added, which according to
the commit title is used to have host-gettext tools installed.
However, this is not what this option is about: this option is about
having gettext tools installed on the target.
Since this is not what minidlna needs, and we anyway plan to remove
this BR2_PACKAGE_GETTEXT_TOOLS option, this commit removes this
incorrect select statement.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Cc: Bernd Kuhls <berndkuhls@hotmail.com>
---
package/minidlna/Config.in | 1 -
1 file changed, 1 deletion(-)
diff --git a/package/minidlna/Config.in b/package/minidlna/Config.in
index 4a46b0c..5c5306d 100644
--- a/package/minidlna/Config.in
+++ b/package/minidlna/Config.in
@@ -14,7 +14,6 @@ config BR2_PACKAGE_MINIDLNA
select BR2_PACKAGE_LIBJPEG
select BR2_PACKAGE_SQLITE
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
- select BR2_PACKAGE_GETTEXT_TOOLS if BR2_NEEDS_GETTEXT_IF_LOCALE
help
MiniDLNA (aka ReadyDLNA) is server software with the aim of being
fully compliant with DLNA/UPnP-AV clients.
--
1.9.3
^ permalink raw reply related [flat|nested] 12+ messages in thread* [Buildroot] [PATCHv2 1/6] minidlna: do not select BR2_PACKAGE_GETTEXT_TOOLS
2014-06-01 20:23 ` [Buildroot] [PATCHv2 1/6] minidlna: do not select BR2_PACKAGE_GETTEXT_TOOLS Thomas Petazzoni
@ 2014-06-02 20:29 ` Bernd Kuhls
2014-06-08 20:55 ` Yann E. MORIN
1 sibling, 0 replies; 12+ messages in thread
From: Bernd Kuhls @ 2014-06-02 20:29 UTC (permalink / raw)
To: buildroot
Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote
in
news:1401654214-19384-2-git-send-email-thomas.petazzoni at free-electrons.com:
> diff --git a/package/minidlna/Config.in b/package/minidlna/Config.in
> index 4a46b0c..5c5306d 100644
> --- a/package/minidlna/Config.in
> +++ b/package/minidlna/Config.in
> @@ -14,7 +14,6 @@ config BR2_PACKAGE_MINIDLNA
> select BR2_PACKAGE_LIBJPEG
> select BR2_PACKAGE_SQLITE
> select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
> - select BR2_PACKAGE_GETTEXT_TOOLS if BR2_NEEDS_GETTEXT_IF_LOCALE
> help
> MiniDLNA (aka ReadyDLNA) is server software with the aim of
> being fully compliant with DLNA/UPnP-AV clients.
Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de>
using this minimal defconfig:
BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
BR2_TOOLCHAIN_BUILDROOT_INET_IPV6=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
BR2_PACKAGE_MINIDLNA=y
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCHv2 1/6] minidlna: do not select BR2_PACKAGE_GETTEXT_TOOLS
2014-06-01 20:23 ` [Buildroot] [PATCHv2 1/6] minidlna: do not select BR2_PACKAGE_GETTEXT_TOOLS Thomas Petazzoni
2014-06-02 20:29 ` Bernd Kuhls
@ 2014-06-08 20:55 ` Yann E. MORIN
1 sibling, 0 replies; 12+ messages in thread
From: Yann E. MORIN @ 2014-06-08 20:55 UTC (permalink / raw)
To: buildroot
Thomas, All,
On 2014-06-01 22:23 +0200, Thomas Petazzoni spake thusly:
> Commit 9ff640ae30ca588228030faf2c6fd13af292cb66 ("minidlna: needs
> gettext and host-gettext tools if locale is enabled") modified the
> minidlna package to fix gettext related issues. As part of this patch,
> a select of BR2_PACKAGE_GETTEXT_TOOLS was added, which according to
> the commit title is used to have host-gettext tools installed.
>
> However, this is not what this option is about: this option is about
> having gettext tools installed on the target.
>
> Since this is not what minidlna needs, and we anyway plan to remove
> this BR2_PACKAGE_GETTEXT_TOOLS option, this commit removes this
> incorrect select statement.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
> Cc: Bernd Kuhls <berndkuhls@hotmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Regards,
Yann E. MORIN.
> ---
> package/minidlna/Config.in | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/package/minidlna/Config.in b/package/minidlna/Config.in
> index 4a46b0c..5c5306d 100644
> --- a/package/minidlna/Config.in
> +++ b/package/minidlna/Config.in
> @@ -14,7 +14,6 @@ config BR2_PACKAGE_MINIDLNA
> select BR2_PACKAGE_LIBJPEG
> select BR2_PACKAGE_SQLITE
> select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
> - select BR2_PACKAGE_GETTEXT_TOOLS if BR2_NEEDS_GETTEXT_IF_LOCALE
> help
> MiniDLNA (aka ReadyDLNA) is server software with the aim of being
> fully compliant with DLNA/UPnP-AV clients.
> --
> 1.9.3
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| 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. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCHv2 2/6] gettext: remove support for gettext-tools on target
2014-06-01 20:23 [Buildroot] [PATCHv2 0/6] gettext improvements Thomas Petazzoni
2014-06-01 20:23 ` [Buildroot] [PATCHv2 1/6] minidlna: do not select BR2_PACKAGE_GETTEXT_TOOLS Thomas Petazzoni
@ 2014-06-01 20:23 ` Thomas Petazzoni
2014-06-08 21:27 ` Yann E. MORIN
2014-06-01 20:23 ` [Buildroot] [PATCHv2 3/6] gettext: optimize build time Thomas Petazzoni
` (3 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2014-06-01 20:23 UTC (permalink / raw)
To: buildroot
This commit removes the BR2_PACKAGE_GETTEXT_TOOLS option, which could
be used to install gettext tools on the target. This is not needed,
because Buildroot is not designed to provide a full development
environment on the target, and gettext translation files should be
processed on the build machine, using the host gettext tools.
Remove this option will allow to optimize the build time of gettext on
the target, by only building the gettext runtime libraries.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
---
Config.in.legacy | 12 ++++++++++++
package/gettext/Config.in | 14 --------------
package/gettext/gettext.mk | 4 ----
3 files changed, 12 insertions(+), 18 deletions(-)
diff --git a/Config.in.legacy b/Config.in.legacy
index 00661db..50f7363 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -99,6 +99,18 @@ comment "----------------------------------------------------"
endif
###############################################################################
+comment "Legacy options removed in 2014.08"
+
+config BR2_PACKAGE_GETTEXT_TOOLS
+ bool "support for gettext-tools on target has been removed"
+ select BR2_LEGACY
+ help
+ The option to install the gettext utilities on the target
+ has been removed. This is not necessary as Buildroot is not
+ designed to provide a full development environment on the
+ target. gettext tools should be used on the build machine
+ instead.
+
comment "Legacy options removed in 2014.05"
config BR2_PACKAGE_EVTEST_CAPTURE
diff --git a/package/gettext/Config.in b/package/gettext/Config.in
index d33dd3a..158b14e 100644
--- a/package/gettext/Config.in
+++ b/package/gettext/Config.in
@@ -13,20 +13,6 @@ config BR2_PACKAGE_GETTEXT
http://www.gnu.org/software/gettext/
-if BR2_PACKAGE_GETTEXT
-
-config BR2_PACKAGE_GETTEXT_TOOLS
- bool "Install gettext tools"
- depends on BR2_USE_MMU # fork()
- depends on BR2_LARGEFILE
- select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
- help
- This option allows to install the complete gettext suite in
- the target filesystem. This is typically not useful for
- correct operation of programs.
-
-endif
-
comment "gettext needs a toolchain w/ wchar"
depends on BR2_NEEDS_GETTEXT
depends on !BR2_USE_WCHAR
diff --git a/package/gettext/gettext.mk b/package/gettext/gettext.mk
index b5efa76..52a72db 100644
--- a/package/gettext/gettext.mk
+++ b/package/gettext/gettext.mk
@@ -46,16 +46,12 @@ ifeq ($(BR2_ENABLE_LOCALE),)
GETTEXT_CONF_OPT += --enable-nls
endif
-# When the gettext tools are not enabled in the configuration, we only
-# install libintl to the target.
-ifeq ($(BR2_PACKAGE_GETTEXT_TOOLS),)
# When static libs are preferred the .so files aren't created
ifeq ($(BR2_PREFER_STATIC_LIB),)
define GETTEXT_INSTALL_TARGET_CMDS
cp -dpf $(STAGING_DIR)/usr/lib/libintl*.so* $(TARGET_DIR)/usr/lib/
endef
endif
-endif # GETTEXT_TOOLS = n
# Disable interactive confirmation in host gettextize for package fixups
define HOST_GETTEXT_GETTEXTIZE_CONFIRMATION
--
1.9.3
^ permalink raw reply related [flat|nested] 12+ messages in thread* [Buildroot] [PATCHv2 2/6] gettext: remove support for gettext-tools on target
2014-06-01 20:23 ` [Buildroot] [PATCHv2 2/6] gettext: remove support for gettext-tools on target Thomas Petazzoni
@ 2014-06-08 21:27 ` Yann E. MORIN
0 siblings, 0 replies; 12+ messages in thread
From: Yann E. MORIN @ 2014-06-08 21:27 UTC (permalink / raw)
To: buildroot
Thomas, All,
On 2014-06-01 22:23 +0200, Thomas Petazzoni spake thusly:
> This commit removes the BR2_PACKAGE_GETTEXT_TOOLS option, which could
> be used to install gettext tools on the target. This is not needed,
> because Buildroot is not designed to provide a full development
> environment on the target, and gettext translation files should be
> processed on the build machine, using the host gettext tools.
>
> Remove this option will allow to optimize the build time of gettext on
> the target, by only building the gettext runtime libraries.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Regards,
Yann E. MORIN.
> ---
> Config.in.legacy | 12 ++++++++++++
> package/gettext/Config.in | 14 --------------
> package/gettext/gettext.mk | 4 ----
> 3 files changed, 12 insertions(+), 18 deletions(-)
>
> diff --git a/Config.in.legacy b/Config.in.legacy
> index 00661db..50f7363 100644
> --- a/Config.in.legacy
> +++ b/Config.in.legacy
> @@ -99,6 +99,18 @@ comment "----------------------------------------------------"
> endif
>
> ###############################################################################
> +comment "Legacy options removed in 2014.08"
> +
> +config BR2_PACKAGE_GETTEXT_TOOLS
> + bool "support for gettext-tools on target has been removed"
> + select BR2_LEGACY
> + help
> + The option to install the gettext utilities on the target
> + has been removed. This is not necessary as Buildroot is not
> + designed to provide a full development environment on the
> + target. gettext tools should be used on the build machine
> + instead.
> +
> comment "Legacy options removed in 2014.05"
>
> config BR2_PACKAGE_EVTEST_CAPTURE
> diff --git a/package/gettext/Config.in b/package/gettext/Config.in
> index d33dd3a..158b14e 100644
> --- a/package/gettext/Config.in
> +++ b/package/gettext/Config.in
> @@ -13,20 +13,6 @@ config BR2_PACKAGE_GETTEXT
>
> http://www.gnu.org/software/gettext/
>
> -if BR2_PACKAGE_GETTEXT
> -
> -config BR2_PACKAGE_GETTEXT_TOOLS
> - bool "Install gettext tools"
> - depends on BR2_USE_MMU # fork()
> - depends on BR2_LARGEFILE
> - select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
> - help
> - This option allows to install the complete gettext suite in
> - the target filesystem. This is typically not useful for
> - correct operation of programs.
> -
> -endif
> -
> comment "gettext needs a toolchain w/ wchar"
> depends on BR2_NEEDS_GETTEXT
> depends on !BR2_USE_WCHAR
> diff --git a/package/gettext/gettext.mk b/package/gettext/gettext.mk
> index b5efa76..52a72db 100644
> --- a/package/gettext/gettext.mk
> +++ b/package/gettext/gettext.mk
> @@ -46,16 +46,12 @@ ifeq ($(BR2_ENABLE_LOCALE),)
> GETTEXT_CONF_OPT += --enable-nls
> endif
>
> -# When the gettext tools are not enabled in the configuration, we only
> -# install libintl to the target.
> -ifeq ($(BR2_PACKAGE_GETTEXT_TOOLS),)
> # When static libs are preferred the .so files aren't created
> ifeq ($(BR2_PREFER_STATIC_LIB),)
> define GETTEXT_INSTALL_TARGET_CMDS
> cp -dpf $(STAGING_DIR)/usr/lib/libintl*.so* $(TARGET_DIR)/usr/lib/
> endef
> endif
> -endif # GETTEXT_TOOLS = n
>
> # Disable interactive confirmation in host gettextize for package fixups
> define HOST_GETTEXT_GETTEXTIZE_CONFIRMATION
> --
> 1.9.3
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| 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. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCHv2 3/6] gettext: optimize build time
2014-06-01 20:23 [Buildroot] [PATCHv2 0/6] gettext improvements Thomas Petazzoni
2014-06-01 20:23 ` [Buildroot] [PATCHv2 1/6] minidlna: do not select BR2_PACKAGE_GETTEXT_TOOLS Thomas Petazzoni
2014-06-01 20:23 ` [Buildroot] [PATCHv2 2/6] gettext: remove support for gettext-tools on target Thomas Petazzoni
@ 2014-06-01 20:23 ` Thomas Petazzoni
2014-06-08 22:26 ` Yann E. MORIN
2014-06-01 20:23 ` [Buildroot] [PATCHv2 4/6] gettext: allow building when BR2_NEEDS_GETTEXT is not selected Thomas Petazzoni
` (2 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2014-06-01 20:23 UTC (permalink / raw)
To: buildroot
This commit significantly reduces the build time of host-gettext and
gettext, by using the capacity of gettext to handle build things in a
certain subdirectory:
- For the host variant of gettext, we only need the gettext-tools,
available in the directory of the same name in the gettext sources.
- For the target variant of gettext, we only need the gettext library
libintl, available in the gettext-runtime directory in the gettext
sources.
So by using appropriate values of GETTEXT_SUBDIR and
HOST_GETTEXT_SUBDIR, we only build what's necessary. Moreover, by
manually patching gettext-tools/Makefile.in and
gettext-runtime/Makefile.in, we make sure to not build and install
things like examples, documentation and so on.
In addition to this, these changes avoid the need to autoreconfigure
the gettext package, which was particularly long.
Thanks to these changes, the build time of gettext goes from 1 minutes
and 37 seconds to just 24 seconds, and the build of host-gettext goes
from 2 minutes and 18 seconds to 1 minute and 13 seconds.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
---
.../gettext-03-option-to-disable-tools.patch | 42 ----------------------
.../gettext/gettext-04-remove-examples-tests.patch | 20 -----------
package/gettext/gettext.mk | 26 ++++++++------
3 files changed, 16 insertions(+), 72 deletions(-)
delete mode 100644 package/gettext/gettext-03-option-to-disable-tools.patch
delete mode 100644 package/gettext/gettext-04-remove-examples-tests.patch
diff --git a/package/gettext/gettext-03-option-to-disable-tools.patch b/package/gettext/gettext-03-option-to-disable-tools.patch
deleted file mode 100644
index 24a9996..0000000
--- a/package/gettext/gettext-03-option-to-disable-tools.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Add a --disable-tools option
-
-This patch adds a --disable-tools option that allows to disable the
-compilation of the gettext tools, which may not be necessary on a
-small embedded Linux system.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -37,6 +37,10 @@
-
- dnl Checks for library functions.
-
-+AC_ARG_ENABLE([tools], [--disable-tools do not build tools],
-+ [enable_tools=$enableval], [enable_tools=yes])
-+AM_CONDITIONAL([ENABLE_TOOLS], [test "$enable_tools" = "yes"])
-+
- AC_CONFIG_SUBDIRS([gettext-runtime gettext-tools])
-
- dnl Ensure that "configure --help" lists all the command line options that
-Index: b/Makefile.am
-===================================================================
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -20,7 +20,13 @@
- ACLOCAL = build-aux/fixaclocal @ACLOCAL@
- ACLOCAL_AMFLAGS = -I m4
-
--SUBDIRS = gnulib-local gettext-runtime gettext-tools
-+if ENABLE_TOOLS
-+TOOLS_SUBDIR = gettext-tools
-+else
-+TOOLS_SUBDIR =
-+endif
-+
-+SUBDIRS = gnulib-local gettext-runtime $(TOOLS_SUBDIR)
-
- EXTRA_DIST = \
- version.sh DEPENDENCIES PACKAGING HACKING ChangeLog.0 autogen.sh \
diff --git a/package/gettext/gettext-04-remove-examples-tests.patch b/package/gettext/gettext-04-remove-examples-tests.patch
deleted file mode 100644
index f7d88d9..0000000
--- a/package/gettext/gettext-04-remove-examples-tests.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Disable tests and examples
-
-This patch disables the gettext-tools tests and examples, which are
-generally not necessary.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/gettext-tools/Makefile.am
-===================================================================
---- a/gettext-tools/Makefile.am
-+++ b/gettext-tools/Makefile.am
-@@ -20,7 +20,7 @@
- ACLOCAL = ../build-aux/fixaclocal @ACLOCAL@
- ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
-
--SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests examples
-+SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4
-
- EXTRA_DIST = misc/DISCLAIM
- MOSTLYCLEANFILES = core *.stackdump
diff --git a/package/gettext/gettext.mk b/package/gettext/gettext.mk
index 52a72db..948ab9d 100644
--- a/package/gettext/gettext.mk
+++ b/package/gettext/gettext.mk
@@ -9,7 +9,6 @@ GETTEXT_SITE = $(BR2_GNU_MIRROR)/gettext
GETTEXT_INSTALL_STAGING = YES
GETTEXT_LICENSE = GPLv2+
GETTEXT_LICENSE_FILES = COPYING
-GETTEXT_AUTORECONF = YES
GETTEXT_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv)
HOST_GETTEXT_DEPENDENCIES = # we don't want the libiconv dependency
@@ -23,8 +22,7 @@ GETTEXT_CONF_OPT += \
--disable-native-java \
--disable-csharp \
--disable-relocatable \
- --without-emacs \
- --disable-tools
+ --without-emacs
HOST_GETTEXT_CONF_OPT = \
--disable-libasprintf \
@@ -37,6 +35,21 @@ HOST_GETTEXT_CONF_OPT = \
--disable-relocatable \
--without-emacs
+# For the target version, we only need the runtime, and for the host
+# version, we only need the tools.
+GETTEXT_SUBDIR = gettext-runtime
+HOST_GETTEXT_SUBDIR = gettext-tools
+
+# Disable the build of documentation and examples of gettext-tools,
+# and the build of documentation and tests of gettext-runtime.
+define HOST_GETTEXT_DISABLE_UNNEEDED
+ $(SED) '/^SUBDIRS/s/ doc //;/^SUBDIRS/s/examples$$//' $(@D)/gettext-tools/Makefile.in
+ $(SED) '/^SUBDIRS/s/ doc //;/^SUBDIRS/s/tests$$//' $(@D)/gettext-runtime/Makefile.in
+endef
+
+GETTEXT_POST_PATCH_HOOKS += HOST_GETTEXT_DISABLE_UNNEEDED
+HOST_GETTEXT_POST_PATCH_HOOKS += HOST_GETTEXT_DISABLE_UNNEEDED
+
# Force build with NLS support, otherwise libintl is not built
# This is needed because some packages (eg. libglib2) requires
# locales, but do not properly depend on BR2_ENABLE_LOCALE, and
@@ -46,13 +59,6 @@ ifeq ($(BR2_ENABLE_LOCALE),)
GETTEXT_CONF_OPT += --enable-nls
endif
-# When static libs are preferred the .so files aren't created
-ifeq ($(BR2_PREFER_STATIC_LIB),)
-define GETTEXT_INSTALL_TARGET_CMDS
- cp -dpf $(STAGING_DIR)/usr/lib/libintl*.so* $(TARGET_DIR)/usr/lib/
-endef
-endif
-
# Disable interactive confirmation in host gettextize for package fixups
define HOST_GETTEXT_GETTEXTIZE_CONFIRMATION
$(SED) '/read dummy/d' $(HOST_DIR)/usr/bin/gettextize
--
1.9.3
^ permalink raw reply related [flat|nested] 12+ messages in thread* [Buildroot] [PATCHv2 3/6] gettext: optimize build time
2014-06-01 20:23 ` [Buildroot] [PATCHv2 3/6] gettext: optimize build time Thomas Petazzoni
@ 2014-06-08 22:26 ` Yann E. MORIN
0 siblings, 0 replies; 12+ messages in thread
From: Yann E. MORIN @ 2014-06-08 22:26 UTC (permalink / raw)
To: buildroot
Thomas, All,
On 2014-06-01 22:23 +0200, Thomas Petazzoni spake thusly:
> This commit significantly reduces the build time of host-gettext and
> gettext, by using the capacity of gettext to handle build things in a
> certain subdirectory:
>
> - For the host variant of gettext, we only need the gettext-tools,
> available in the directory of the same name in the gettext sources.
>
> - For the target variant of gettext, we only need the gettext library
> libintl, available in the gettext-runtime directory in the gettext
> sources.
>
> So by using appropriate values of GETTEXT_SUBDIR and
> HOST_GETTEXT_SUBDIR, we only build what's necessary. Moreover, by
> manually patching gettext-tools/Makefile.in and
> gettext-runtime/Makefile.in, we make sure to not build and install
> things like examples, documentation and so on.
>
> In addition to this, these changes avoid the need to autoreconfigure
> the gettext package, which was particularly long.
>
> Thanks to these changes, the build time of gettext goes from 1 minutes
> and 37 seconds to just 24 seconds, and the build of host-gettext goes
> from 2 minutes and 18 seconds to 1 minute and 13 seconds.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
On my machine, I got these results:
Before patch After patch Improvement
gettext: 2min 39s 38s x 4.18
host-gettext: 3min 41s 1min 51s x 1.99
Woot! :-)
Not counting the fact that host-automake, host-autoconf, host-libtool,
and host-m4 are no longer needed!
I got the same set of libraries and utilities in the staging and target.
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Regards,
Yann E. MORIN.
> ---
> .../gettext-03-option-to-disable-tools.patch | 42 ----------------------
> .../gettext/gettext-04-remove-examples-tests.patch | 20 -----------
> package/gettext/gettext.mk | 26 ++++++++------
> 3 files changed, 16 insertions(+), 72 deletions(-)
> delete mode 100644 package/gettext/gettext-03-option-to-disable-tools.patch
> delete mode 100644 package/gettext/gettext-04-remove-examples-tests.patch
>
> diff --git a/package/gettext/gettext-03-option-to-disable-tools.patch b/package/gettext/gettext-03-option-to-disable-tools.patch
> deleted file mode 100644
> index 24a9996..0000000
> --- a/package/gettext/gettext-03-option-to-disable-tools.patch
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -Add a --disable-tools option
> -
> -This patch adds a --disable-tools option that allows to disable the
> -compilation of the gettext tools, which may not be necessary on a
> -small embedded Linux system.
> -
> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> -
> -Index: b/configure.ac
> -===================================================================
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -37,6 +37,10 @@
> -
> - dnl Checks for library functions.
> -
> -+AC_ARG_ENABLE([tools], [--disable-tools do not build tools],
> -+ [enable_tools=$enableval], [enable_tools=yes])
> -+AM_CONDITIONAL([ENABLE_TOOLS], [test "$enable_tools" = "yes"])
> -+
> - AC_CONFIG_SUBDIRS([gettext-runtime gettext-tools])
> -
> - dnl Ensure that "configure --help" lists all the command line options that
> -Index: b/Makefile.am
> -===================================================================
> ---- a/Makefile.am
> -+++ b/Makefile.am
> -@@ -20,7 +20,13 @@
> - ACLOCAL = build-aux/fixaclocal @ACLOCAL@
> - ACLOCAL_AMFLAGS = -I m4
> -
> --SUBDIRS = gnulib-local gettext-runtime gettext-tools
> -+if ENABLE_TOOLS
> -+TOOLS_SUBDIR = gettext-tools
> -+else
> -+TOOLS_SUBDIR =
> -+endif
> -+
> -+SUBDIRS = gnulib-local gettext-runtime $(TOOLS_SUBDIR)
> -
> - EXTRA_DIST = \
> - version.sh DEPENDENCIES PACKAGING HACKING ChangeLog.0 autogen.sh \
> diff --git a/package/gettext/gettext-04-remove-examples-tests.patch b/package/gettext/gettext-04-remove-examples-tests.patch
> deleted file mode 100644
> index f7d88d9..0000000
> --- a/package/gettext/gettext-04-remove-examples-tests.patch
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -Disable tests and examples
> -
> -This patch disables the gettext-tools tests and examples, which are
> -generally not necessary.
> -
> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> -
> -Index: b/gettext-tools/Makefile.am
> -===================================================================
> ---- a/gettext-tools/Makefile.am
> -+++ b/gettext-tools/Makefile.am
> -@@ -20,7 +20,7 @@
> - ACLOCAL = ../build-aux/fixaclocal @ACLOCAL@
> - ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
> -
> --SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests examples
> -+SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4
> -
> - EXTRA_DIST = misc/DISCLAIM
> - MOSTLYCLEANFILES = core *.stackdump
> diff --git a/package/gettext/gettext.mk b/package/gettext/gettext.mk
> index 52a72db..948ab9d 100644
> --- a/package/gettext/gettext.mk
> +++ b/package/gettext/gettext.mk
> @@ -9,7 +9,6 @@ GETTEXT_SITE = $(BR2_GNU_MIRROR)/gettext
> GETTEXT_INSTALL_STAGING = YES
> GETTEXT_LICENSE = GPLv2+
> GETTEXT_LICENSE_FILES = COPYING
> -GETTEXT_AUTORECONF = YES
>
> GETTEXT_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv)
> HOST_GETTEXT_DEPENDENCIES = # we don't want the libiconv dependency
> @@ -23,8 +22,7 @@ GETTEXT_CONF_OPT += \
> --disable-native-java \
> --disable-csharp \
> --disable-relocatable \
> - --without-emacs \
> - --disable-tools
> + --without-emacs
>
> HOST_GETTEXT_CONF_OPT = \
> --disable-libasprintf \
> @@ -37,6 +35,21 @@ HOST_GETTEXT_CONF_OPT = \
> --disable-relocatable \
> --without-emacs
>
> +# For the target version, we only need the runtime, and for the host
> +# version, we only need the tools.
> +GETTEXT_SUBDIR = gettext-runtime
> +HOST_GETTEXT_SUBDIR = gettext-tools
> +
> +# Disable the build of documentation and examples of gettext-tools,
> +# and the build of documentation and tests of gettext-runtime.
> +define HOST_GETTEXT_DISABLE_UNNEEDED
> + $(SED) '/^SUBDIRS/s/ doc //;/^SUBDIRS/s/examples$$//' $(@D)/gettext-tools/Makefile.in
> + $(SED) '/^SUBDIRS/s/ doc //;/^SUBDIRS/s/tests$$//' $(@D)/gettext-runtime/Makefile.in
> +endef
> +
> +GETTEXT_POST_PATCH_HOOKS += HOST_GETTEXT_DISABLE_UNNEEDED
> +HOST_GETTEXT_POST_PATCH_HOOKS += HOST_GETTEXT_DISABLE_UNNEEDED
> +
> # Force build with NLS support, otherwise libintl is not built
> # This is needed because some packages (eg. libglib2) requires
> # locales, but do not properly depend on BR2_ENABLE_LOCALE, and
> @@ -46,13 +59,6 @@ ifeq ($(BR2_ENABLE_LOCALE),)
> GETTEXT_CONF_OPT += --enable-nls
> endif
>
> -# When static libs are preferred the .so files aren't created
> -ifeq ($(BR2_PREFER_STATIC_LIB),)
> -define GETTEXT_INSTALL_TARGET_CMDS
> - cp -dpf $(STAGING_DIR)/usr/lib/libintl*.so* $(TARGET_DIR)/usr/lib/
> -endef
> -endif
> -
> # Disable interactive confirmation in host gettextize for package fixups
> define HOST_GETTEXT_GETTEXTIZE_CONFIRMATION
> $(SED) '/read dummy/d' $(HOST_DIR)/usr/bin/gettextize
> --
> 1.9.3
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| 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. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCHv2 4/6] gettext: allow building when BR2_NEEDS_GETTEXT is not selected
2014-06-01 20:23 [Buildroot] [PATCHv2 0/6] gettext improvements Thomas Petazzoni
` (2 preceding siblings ...)
2014-06-01 20:23 ` [Buildroot] [PATCHv2 3/6] gettext: optimize build time Thomas Petazzoni
@ 2014-06-01 20:23 ` Thomas Petazzoni
2014-06-01 20:23 ` [Buildroot] [PATCHv2 5/6] ecryptfs-utils: select gettext, needed for command line utilities Thomas Petazzoni
2014-06-01 20:23 ` [Buildroot] [PATCHv2 6/6] docs/manual: update documentation about gettext handling Thomas Petazzoni
5 siblings, 0 replies; 12+ messages in thread
From: Thomas Petazzoni @ 2014-06-01 20:23 UTC (permalink / raw)
To: buildroot
Until now, we thought that gettext was only needed for the target for
uClibc toolchains, to provide the gettext functions that are normally
provided directly by glibc.
However, the gettext runtime actually does more than providing the
equivalent of those C library functions: it also provides certain
command line tools, like 'gettext' to get translated strings from the
shell. This tool is for example used by certain ecryptfs-utils scripts
to get translated strings. It is therefore necessary to be able to
build the gettext package even for glibc toolchains.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
package/gettext/Config.in | 1 -
1 file changed, 1 deletion(-)
diff --git a/package/gettext/Config.in b/package/gettext/Config.in
index 158b14e..7871a48 100644
--- a/package/gettext/Config.in
+++ b/package/gettext/Config.in
@@ -1,6 +1,5 @@
config BR2_PACKAGE_GETTEXT
bool "gettext"
- depends on BR2_NEEDS_GETTEXT
depends on BR2_USE_WCHAR
help
The GNU `gettext' utilities are a set of tools that provide a
--
1.9.3
^ permalink raw reply related [flat|nested] 12+ messages in thread* [Buildroot] [PATCHv2 5/6] ecryptfs-utils: select gettext, needed for command line utilities
2014-06-01 20:23 [Buildroot] [PATCHv2 0/6] gettext improvements Thomas Petazzoni
` (3 preceding siblings ...)
2014-06-01 20:23 ` [Buildroot] [PATCHv2 4/6] gettext: allow building when BR2_NEEDS_GETTEXT is not selected Thomas Petazzoni
@ 2014-06-01 20:23 ` Thomas Petazzoni
2014-06-01 20:23 ` [Buildroot] [PATCHv2 6/6] docs/manual: update documentation about gettext handling Thomas Petazzoni
5 siblings, 0 replies; 12+ messages in thread
From: Thomas Petazzoni @ 2014-06-01 20:23 UTC (permalink / raw)
To: buildroot
The ecryptfs-utils package requires the 'gettext' program, which is
provided by the gettext package, to get translated strings. This is
needed regardless of whether the toolchain uses glibc or uClibc.
This issue was reported by 'ausjke' on IRC.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
package/ecryptfs-utils/Config.in | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/package/ecryptfs-utils/Config.in b/package/ecryptfs-utils/Config.in
index 076e1d4..7999ea5 100644
--- a/package/ecryptfs-utils/Config.in
+++ b/package/ecryptfs-utils/Config.in
@@ -2,6 +2,10 @@ config BR2_PACKAGE_ECRYPTFS_UTILS
bool "ecryptfs-utils"
select BR2_PACKAGE_KEYUTILS
select BR2_PACKAGE_LIBNSS
+ # runtime dependency only, some scripts are using the
+ # 'gettext' program to get translations
+ select BR2_PACKAGE_GETTEXT
+ depends on BR2_USE_WCHAR # gettext
depends on BR2_USE_MMU # keyutils
depends on !BR2_avr32 && !BR2_microblaze # keyutils
depends on BR2_LARGEFILE # libnss
@@ -23,8 +27,8 @@ config BR2_PACKAGE_ECRYPTFS_UTILS
http://ecryptfs.org
-comment "ecryptfs-utils needs a toolchain w/ largefile, threads"
+comment "ecryptfs-utils needs a toolchain w/ largefile, threads, wchar"
depends on !BR2_avr32 && !BR2_microblaze
depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT
depends on BR2_USE_MMU
- depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
+ depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
--
1.9.3
^ permalink raw reply related [flat|nested] 12+ messages in thread* [Buildroot] [PATCHv2 6/6] docs/manual: update documentation about gettext handling
2014-06-01 20:23 [Buildroot] [PATCHv2 0/6] gettext improvements Thomas Petazzoni
` (4 preceding siblings ...)
2014-06-01 20:23 ` [Buildroot] [PATCHv2 5/6] ecryptfs-utils: select gettext, needed for command line utilities Thomas Petazzoni
@ 2014-06-01 20:23 ` Thomas Petazzoni
2014-06-02 5:50 ` Thomas De Schampheleire
5 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2014-06-01 20:23 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
docs/manual/adding-packages-gettext.txt | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/docs/manual/adding-packages-gettext.txt b/docs/manual/adding-packages-gettext.txt
index d265607..580787f 100644
--- a/docs/manual/adding-packages-gettext.txt
+++ b/docs/manual/adding-packages-gettext.txt
@@ -8,10 +8,16 @@ library. Dependencies for this library are fairly complicated and
therefore, deserve some explanation.
The 'uClibc' C library doesn't implement gettext functionality;
-therefore with this C library, a separate gettext must be compiled. On
-the other hand, the 'glibc' C library does integrate its own gettext,
-and in this case the separate gettext library should not be compiled,
-because it creates various kinds of build failures.
+therefore with this C library, a separate gettext must be compiled,
+which will provide the libintl library.
+
+On the other hand, the 'glibc' C library does integrate its own
+gettext library functions, so it is not necessary to build a separate
+libintl library.
+
+However, certain packages will need some gettext utilities on the
+target, such as the +gettext+ program itself, which allows, from the
+command line, to retrieve translated strings.
Additionally, some packages (such as +libglib2+) do require gettext
unconditionally, while other packages (those who support
@@ -44,3 +50,11 @@ should:
* use +$(if $(BR2_NEEDS_GETTEXT),gettext)+ in the package
+DEPENDENCIES+ variable in the +.mk+ file.
+Packages that need the +gettext+ utilities on the target (should be
+rare) should:
+
+* use +select BR2_PACKAGE_GETTEXT+ in their +Config.in+ file,
+ indicating in a comment above that it's a runtime dependency only.
+
+* not add any dependency to their +.mk+ file +DEPENDENCIES+ variable.
+
--
1.9.3
^ permalink raw reply related [flat|nested] 12+ messages in thread* [Buildroot] [PATCHv2 6/6] docs/manual: update documentation about gettext handling
2014-06-01 20:23 ` [Buildroot] [PATCHv2 6/6] docs/manual: update documentation about gettext handling Thomas Petazzoni
@ 2014-06-02 5:50 ` Thomas De Schampheleire
0 siblings, 0 replies; 12+ messages in thread
From: Thomas De Schampheleire @ 2014-06-02 5:50 UTC (permalink / raw)
To: buildroot
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> schreef:
>Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
>---
> docs/manual/adding-packages-gettext.txt | 22 ++++++++++++++++++----
> 1 file changed, 18 insertions(+), 4 deletions(-)
>
>diff --git a/docs/manual/adding-packages-gettext.txt b/docs/manual/adding-packages-gettext.txt
>index d265607..580787f 100644
>--- a/docs/manual/adding-packages-gettext.txt
>+++ b/docs/manual/adding-packages-gettext.txt
>@@ -8,10 +8,16 @@ library. Dependencies for this library are fairly complicated and
> therefore, deserve some explanation.
>
> The 'uClibc' C library doesn't implement gettext functionality;
>-therefore with this C library, a separate gettext must be compiled. On
>-the other hand, the 'glibc' C library does integrate its own gettext,
>-and in this case the separate gettext library should not be compiled,
>-because it creates various kinds of build failures.
>+therefore with this C library, a separate gettext must be compiled,
>+which will provide the libintl library.
>+
>+On the other hand, the 'glibc' C library does integrate its own
>+gettext library functions, so it is not necessary to build a separate
>+libintl library.
>+
>+However, certain packages will need some gettext utilities on the
>+target, such as the +gettext+ program itself, which allows, from the
>+command line, to retrieve translated strings.
I would reorder as: ... which allows to retrieve translated strings, from the command line.
>
> Additionally, some packages (such as +libglib2+) do require gettext
> unconditionally, while other packages (those who support
>@@ -44,3 +50,11 @@ should:
> * use +$(if $(BR2_NEEDS_GETTEXT),gettext)+ in the package
> +DEPENDENCIES+ variable in the +.mk+ file.
>
>+Packages that need the +gettext+ utilities on the target (should be
>+rare) should:
>+
>+* use +select BR2_PACKAGE_GETTEXT+ in their +Config.in+ file,
>+ indicating in a comment above that it's a runtime dependency only.
>+
>+* not add any dependency to their +.mk+ file +DEPENDENCIES+ variable.
I would clarify: not add any gettext dependency...
Also, it should probably be file's, or rewrite as
... to the DEPENDENCIES variable in their .mk file.
Best regards,
Thomas
^ permalink raw reply [flat|nested] 12+ messages in thread