Since things are no longer installed in $(HOST_DIR)/usr, the callers
should also not refer to it.
This is a mechanical change with
git grep -l '$(HOST_DIR)/usr/share' | xargs sed -i 's%$(HOST_DIR)/usr/share%$(HOST_DIR)/share%g'
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since things are no longer installed in $(HOST_DIR)/usr, the callers
should also not refer to it.
This is a mechanical change with
git grep -l '$(HOST_DIR)/usr/bin' | xargs sed -i 's%$(HOST_DIR)/usr/bin%$(HOST_DIR)/bin%g'
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Only the initial patches of the gettext series have been applied, and
a bisectability problem has arised: when BR2_SYSTEM_ENABLE_NLS is
disabled, which is the default, gettext no longer builds libintl.
However, since packages have not yet been updated to the new gettext
logic, they still try to link against libintl, because they rely on
BR2_NEEDS_GETTEXT/BR2_NEEDS_GETTEXT_IF_LOCALE, which are true.
So, as a temporary measure, we adjust the gettext package so that it
unconditionally builds libintl for uClibc/musl, even when NLS is
disabled. This commit will be reverted once all packages have been
fixed.
Fixes:
http://autobuild.buildroot.net/results/a4cf71c34dcc5c750ea87a16014c2cb2d28cdebd/
(elfutils)
http://autobuild.buildroot.net/results/cb9ae18295b21b3f9399be6edd82273add375656/
(linux-pam)
http://autobuild.buildroot.net/results/4225e5dfb6bcf590d9c1068112472ee82bc87d6b/
(alsa-utils)
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit introduces a hidden option
BR2_PACKAGE_GETTEXT_PROVIDES_INTL that is used by gettext.mk to force
the build of libintl if the toolchain doesn't provide a full gettext
implementation.
For now, this hidden option is not selected by anything, but a
follow-up commit will introduce BR2_ENABLE_NLS, which will make use of
it.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
We want to use SPDX identifier for license string as much as possible.
SPDX short identifier for LGPLv2.1/LGPLv2.1+ is LGPL-2.1/LGPL-2.1+.
This change is done using following command.
find . -name "*.mk" | xargs sed -ri '/LICENSE( )?[\+:]?=/s/LGPLv2.1(\+)?/LGPL-2.1\1/g'
Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
We want to use SPDX identifier for license string as much as possible.
SPDX short identifier for GPLv3/GPLv3+ is GPL-3.0/GPL-3.0+.
This change is done using following command.
find . -name "*.mk" | xargs sed -ri '/LICENSE( )?[\+:]?=/s/\<GPLv3\>/GPL-3.0/g'
Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
gettextize copies a number of files from usr/share/gettext into the project
when it is run. One of these is ABOUT-NLS, which is simply a text file
explaining some details about gettext - So it isn't really critical but
autoreconf fails if gettext functionality is used and ABOUT-NLS is missing.
Normally this isn't an issue as the release tarball typically already
contains an ABOUT-NLS file, but as this is a generated file it normally
isn't checked into git so it fails for packages from git snapshots using
<foo>_GETTEXTIZE = YES (E.G. libuio):
configure.ac:42: error: required file './ABOUT-NLS' not found
As is evident from GETTEXT_REMOVE_UNNEEDED, this file normally gets
installed by gettext-runtime, but as we don't build/install that for the
host instead install it by hand.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The real functional change (to not wait for confirmation) was alredy handled
below in HOST_GETTEXT_GETTEXTIZE_CONFIRMATION, and we otherwise don't patch
upstream purely for cosmetical reasons so drop it.
gettextize is also quite noisy as is, so the single 'Press return' line imho
isn't a big issue:
>>> fetchmail 6.3.26 Gettextizing
Copying file config.rpath
Not copying intl/ directory.
Copying file po/Makefile.in.in
Copying file po/Makevars.template
Copying file po/Rules-quot
Copying file po/boldquot.sed
Copying file po/en@boldquot.header
Copying file po/en@quot.header
Copying file po/insert-header.sin
Copying file po/quot.sed
Copying file po/remove-potcdate.sin
Creating po/ChangeLog
Copying file m4/gettext.m4
Copying file m4/iconv.m4
Copying file m4/lib-ld.m4
Copying file m4/lib-link.m4
Copying file m4/lib-prefix.m4
Copying file m4/nls.m4
Copying file m4/po.m4
Copying file m4/progtest.m4
Creating m4/ChangeLog
Updating configure.ac (backup is in configure.ac~)
Creating ChangeLog
Please update po/Makevars so that it defines all the variables mentioned
in po/Makevars.template.
You can then remove po/Makevars.template.
Please run 'aclocal -I m4 -I m4-local' to regenerate the aclocal.m4 file.
You need aclocal from GNU automake 1.9 (or newer) to do this.
Then run 'autoconf' to regenerate the configure file.
You might also want to copy the convenience header file gettext.h
from the /home/peko/source/buildroot/output-test/host/usr/share/gettext directory into your package.
It is a wrapper around <libintl.h> that implements the configure --disable-nls
option.
Press Return to acknowledge the previous three paragraphs.
>>> fetchmail 6.3.26 Autoreconfiguring
CC: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Of host-gettext, we only build the tools. however some of those tools
have a --color option, which needs libxml2.
If the libxml2 development files are missing on the host, a bundled
subset of libxml2 is used, and all seems OK. But if they ar epresent,
then the host libxml2 is used. On some distros, lbxml2 is linked with
liblzma. And if we happend to _then_ build our host-liblzma, we may have
a conflict later when trying to run any of the host-gettext tools.
Always build host-gettext with our own host-libxml2 which is not linked
with liblzma.
Fixes https://bugs.busybox.net/show_bug.cgi?id=7886
Signed-off-by: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
[nicolas: added extended commit message]
Signed-off-by: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
[yann.morin.1998@free.fr: rebase; add comment; enhance commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The license is wrong, it's GPLv3+ rather than GPLv2+ now.
Also there's a specific clause for libintl that makes it LGPLv2.1+, see
gettext-runtime/COPYING.
Signed-off-by: Gustavo Zacarias <gustavo.zacarias@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS,
make the same change for FOO_CONF_OPT.
Sed command used:
find * -type f | xargs sed -i 's#_CONF_OPT\>#&S#g'
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Align the way we call gettextize to the way we call autoreconf:
- provide the $(GETTEXTIZE) variable
- pass $(HOST_CONFIGURE_OPTS) in the environment
- pass the fully-qualified path to autom4te
- use of -f even if the package provides its own options
Some eye-candy in the output of gettextize.
Thanks to Gustavo for pointing out the discrepancy between the way we
call gettextize and the way we call autoreconf, and to Thomas for the
live debug session. ;-)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
For some reason, gettext installs on the target a documentation file
named ABOUT-NLS in /usr/share/gettext, that is clearly not needed for
the proper execution of programs. This commit adds a post-install hook
in gettext.mk to get rid of this file.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
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>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
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>
Make the host gettextize tool non-interactive to avoid stalling for user
confirmation when using it to fix up a package.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Our current stripping strategy requires that shared libraries have the
executable permission. However, this is by far not something
recognized as a standard behavior: Debian/Ubuntu distributions for
example do not have executable permissions on their
libraries. Therefore, pushing to upstream packages fixes that add the
executable permissions is not easy.
As a result, this commit improves the stripping logic so that it not
only strips the files that are executable, but also the ones that
match '*.so*', which should match both the shared libraries and the
dlopen()'able plugins, as long as they have a .so extension.
Thanks to this addition, a number of manual "chmod +x" done by various
packages can be removed.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Since 97c687000 (pkg-autotools.mk: default host AUTORECONF{,_OPT} to the
target values) we automatically enable autoreconf for host builds if it
is enabled for the target, so these can go.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
libintl.so* is installed without +x permissions thus preventing
stripping. Fix it up in the post install target hooks.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Until now, the gettext source code was being patched differently for
the host and the target build, which is going to be incompatible with
out-of-tree build. The difference is that the gettext tools could be
disabled in the target build, but are always enabled on the host
build.
Therefore, this commit switches the gettext package to using proper
patches against the relevant configure.ac and Makefile.am
files. gettext is now being autoreconfigured. Configuration options
are also passed for the host variant, in order to disable the build of
a large number of things we don't care about.
Finally, the two existing patches are renamed to include a number in
their filename.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
In preparation for the removal of gettext as a hard dependency, we
need to be able to provide a host variant of gettext for the few
packages that require msgfmt.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
When static libraries are preferred we don't build dynamic libraries so
it fails on the install phase. So don't try to do it for those cases.
Fixes:
http://autobuild.buildroot.net/results/651537ae1909b039e0cfc5c104ee87f93a9e5792/
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[yann.morin.1998@free.fr: add license info, build libintl if locales disabled]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
CC: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
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.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[yann.morin.1998@free.fr: keep BR2_PACKAGE_LIBINTL as blind option]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
CC: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This modifies the definition of DOWNLOAD to receive two arguments:
the first one is the full URL of the file to download, whereas the second
(and optional) is the name the file will have once downloaded.
Same thing with the SOURCE_CHECK_WGET and SCP functions.
All calls to these functions have been changed to the shortest form of
the new API, except for toolchains acquisition. Since there is quite a
number of different toolchains this call to DOWNLOAD is better set to the
generic one.
Signed-off-by: Alvaro G. M <alvaro.gamez@hazent.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Stephan Hoffmann <sho@relinux.de>
Downloading Microblaze LE toolchain works on a clean install
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The CONFIG_UPDATE macro is no longer defined in
package/gnuconfig/gnuconfig.mk, but instead in
package/Makefile.autotools.in. It it also changed a little bit to take
the directory of the package sources as argument, and the AUTOTARGETS
infrastructure is updated to use this macro.
[Peter: drop echo in CONFIG_UPDATE]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>